ssh-terminal
Version:
SSH Terminal component based on xterm.js for multiple frontend frameworks
79 lines • 612 kB
JavaScript
(function(Me,Pe){typeof exports=="object"&&typeof module!="undefined"?Pe(exports):typeof define=="function"&&define.amd?define(["exports"],Pe):(Me=typeof globalThis!="undefined"?globalThis:Me||self,Pe(Me.SSHTerminalVue2={}))})(this,function(Me){"use strict";var bc=Object.defineProperty,xc=Object.defineProperties;var wc=Object.getOwnPropertyDescriptors;var Cn=Object.getOwnPropertySymbols;var Tc=Object.prototype.hasOwnProperty,Ac=Object.prototype.propertyIsEnumerable;var Xi=(Me,Pe,He)=>Pe in Me?bc(Me,Pe,{enumerable:!0,configurable:!0,writable:!0,value:He}):Me[Pe]=He,$t=(Me,Pe)=>{for(var He in Pe||(Pe={}))Tc.call(Pe,He)&&Xi(Me,He,Pe[He]);if(Cn)for(var He of Cn(Pe))Ac.call(Pe,He)&&Xi(Me,He,Pe[He]);return Me},En=(Me,Pe)=>xc(Me,wc(Pe));var bn=(Me,Pe,He)=>(Xi(Me,typeof Pe!="symbol"?Pe+"":Pe,He),He);var qe=(Me,Pe,He)=>new Promise((cr,wr)=>{var ti=Ct=>{try{jt(He.next(Ct))}catch(Gt){wr(Gt)}},ri=Ct=>{try{jt(He.throw(Ct))}catch(Gt){wr(Gt)}},jt=Ct=>Ct.done?cr(Ct.value):Promise.resolve(Ct.value).then(ti,ri);jt((He=He.apply(Me,Pe)).next())});function Pe(e,t){for(var i=0;i<t.length;i++){const r=t[i];if(typeof r!="string"&&!Array.isArray(r)){for(const n in r)if(n!=="default"&&!(n in e)){const c=Object.getOwnPropertyDescriptor(r,n);c&&Object.defineProperty(e,n,c.get?c:{enumerable:!0,get:()=>r[n]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const He="",cr={name:"SSHTerminal",props:{computingId:{type:String,required:!0},userToken:{type:String,required:!0},websocketUrl:{type:String,default:"wss://ssh-proxy.dev.longvan.vn"},options:{type:Object,default:function(){return{}}}},data:function(){return{terminal:null}},mounted:function(){this.initTerminal(),window.addEventListener("resize",this.handleResize)},beforeDestroy:function(){this.terminal&&this.terminal.dispose(),window.removeEventListener("resize",this.handleResize)},methods:{initTerminal:function(){var e=this,t=this.$refs.terminalContainer;Promise.all([Promise.resolve().then(()=>Dn),Promise.resolve().then(()=>Ln),Promise.resolve().then(()=>kn)]).then(function(i){var r=i[0].createTerminal,n=i[1].default,c=i[2].default,a=c.createContextLogger("Vue2Terminal"),s={computingId:e.computingId,userToken:e.userToken,wsUrl:e.websocketUrl},l=n.validateComputingConfig(s);if(!l.isValid){a.error("Invalid Computing ID config in Vue2 component",{errors:l.errors}),e.$emit("error",{message:"Invalid Computing ID configuration",errors:l.errors});return}var o=n.validateTerminalOptions(e.options);if(!o.isValid){a.error("Invalid terminal options in Vue2 component",{errors:o.errors}),e.$emit("error",{message:"Invalid terminal options",errors:o.errors});return}try{e.terminal=r(t,s,e.options),a.info("Terminal created successfully with Computing ID"),e.$emit("ready",e.terminal)}catch(f){a.error("Failed to create terminal",{error:f.message}),e.$emit("error",{message:"Failed to create terminal",error:f.message})}}).catch(function(i){console.error("Failed to load terminal dependencies:",i),e.$emit("error",{message:"Failed to load terminal dependencies",error:i.message})})},handleResize:function(){this.terminal&&this.terminal.resize()}},render:function(e){return e("div",{ref:"terminalContainer",class:"ssh-terminal-container",style:{width:"100%",height:"100%",minHeight:"300px",backgroundColor:"#000"}})}};var wr=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function ti(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function ri(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var i=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};i.prototype=t.prototype}else i={};return Object.defineProperty(i,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(i,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}),i}var jt={exports:{}};(function(e,t){(function(i,r){e.exports=r()})(self,()=>(()=>{var i={4567:function(a,s,l){var o=this&&this.__decorate||function(v,S,C,b){var w,E=arguments.length,x=E<3?S:b===null?b=Object.getOwnPropertyDescriptor(S,C):b;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")x=Reflect.decorate(v,S,C,b);else for(var R=v.length-1;R>=0;R--)(w=v[R])&&(x=(E<3?w(x):E>3?w(S,C,x):w(S,C))||x);return E>3&&x&&Object.defineProperty(S,C,x),x},f=this&&this.__param||function(v,S){return function(C,b){S(C,b,v)}};Object.defineProperty(s,"__esModule",{value:!0}),s.AccessibilityManager=void 0;const u=l(9042),g=l(6114),y=l(9924),m=l(844),_=l(5596),h=l(4725),d=l(3656);let p=s.AccessibilityManager=class extends m.Disposable{constructor(v,S){super(),this._terminal=v,this._renderService=S,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 C=0;C<this._terminal.rows;C++)this._rowElements[C]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[C]);if(this._topBoundaryFocusListener=C=>this._handleBoundaryFocus(C,0),this._bottomBoundaryFocusListener=C=>this._handleBoundaryFocus(C,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 y.TimeBasedDebouncer(this._renderRows.bind(this))),!this._terminal.element)throw new Error("Cannot enable accessibility before Terminal.open");this._terminal.element.insertAdjacentElement("afterbegin",this._accessibilityContainer),this.register(this._terminal.onResize(C=>this._handleResize(C.rows))),this.register(this._terminal.onRender(C=>this._refreshRows(C.start,C.end))),this.register(this._terminal.onScroll(()=>this._refreshRows())),this.register(this._terminal.onA11yChar(C=>this._handleChar(C))),this.register(this._terminal.onLineFeed(()=>this._handleChar(`
`))),this.register(this._terminal.onA11yTab(C=>this._handleTab(C))),this.register(this._terminal.onKey(C=>this._handleKey(C.key))),this.register(this._terminal.onBlur(()=>this._clearLiveRegion())),this.register(this._renderService.onDimensionsChange(()=>this._refreshRowsDimensions())),this._screenDprMonitor=new _.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,m.toDisposable)(()=>{this._accessibilityContainer.remove(),this._rowElements.length=0}))}_handleTab(v){for(let S=0;S<v;S++)this._handleChar(" ")}_handleChar(v){this._liveRegionLineCount<21&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==v&&(this._charsToAnnounce+=v):this._charsToAnnounce+=v,v===`
`&&(this._liveRegionLineCount++,this._liveRegionLineCount===21&&(this._liveRegion.textContent+=u.tooMuchOutput)),g.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,g.isMac&&this._liveRegion.remove()}_handleKey(v){this._clearLiveRegion(),new RegExp("\\p{Control}","u").test(v)||this._charsToConsume.push(v)}_refreshRows(v,S){this._liveRegionDebouncer.refresh(v,S,this._terminal.rows)}_renderRows(v,S){const C=this._terminal.buffer,b=C.lines.length.toString();for(let w=v;w<=S;w++){const E=C.translateBufferLineToString(C.ydisp+w,!0),x=(C.ydisp+w+1).toString(),R=this._rowElements[w];R&&(E.length===0?R.innerText=" ":R.textContent=E,R.setAttribute("aria-posinset",x),R.setAttribute("aria-setsize",b))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce="")}_handleBoundaryFocus(v,S){const C=v.target,b=this._rowElements[S===0?1:this._rowElements.length-2];if(C.getAttribute("aria-posinset")===(S===0?"1":`${this._terminal.buffer.lines.length}`)||v.relatedTarget!==b)return;let w,E;if(S===0?(w=C,E=this._rowElements.pop(),this._rowContainer.removeChild(E)):(w=this._rowElements.shift(),E=C,this._rowContainer.removeChild(w)),w.removeEventListener("focus",this._topBoundaryFocusListener),E.removeEventListener("focus",this._bottomBoundaryFocusListener),S===0){const x=this._createAccessibilityTreeNode();this._rowElements.unshift(x),this._rowContainer.insertAdjacentElement("afterbegin",x)}else{const x=this._createAccessibilityTreeNode();this._rowElements.push(x),this._rowContainer.appendChild(x)}this._rowElements[0].addEventListener("focus",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._terminal.scrollLines(S===0?-1:1),this._rowElements[S===0?1:this._rowElements.length-2].focus(),v.preventDefault(),v.stopImmediatePropagation()}_handleResize(v){this._rowElements[this._rowElements.length-1].removeEventListener("focus",this._bottomBoundaryFocusListener);for(let S=this._rowContainer.children.length;S<this._terminal.rows;S++)this._rowElements[S]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[S]);for(;this._rowElements.length>v;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener("focus",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){const v=document.createElement("div");return v.setAttribute("role","listitem"),v.tabIndex=-1,this._refreshRowDimensions(v),v}_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 v=0;v<this._terminal.rows;v++)this._refreshRowDimensions(this._rowElements[v])}}_refreshRowDimensions(v){v.style.height=`${this._renderService.dimensions.css.cell.height}px`}};s.AccessibilityManager=p=o([f(1,h.IRenderService)],p)},3614:(a,s)=>{function l(g){return g.replace(/\r?\n/g,"\r")}function o(g,y){return y?"\x1B[200~"+g+"\x1B[201~":g}function f(g,y,m,_){g=o(g=l(g),m.decPrivateModes.bracketedPasteMode&&_.rawOptions.ignoreBracketedPasteMode!==!0),m.triggerDataEvent(g,!0),y.value=""}function u(g,y,m){const _=m.getBoundingClientRect(),h=g.clientX-_.left-10,d=g.clientY-_.top-10;y.style.width="20px",y.style.height="20px",y.style.left=`${h}px`,y.style.top=`${d}px`,y.style.zIndex="1000",y.focus()}Object.defineProperty(s,"__esModule",{value:!0}),s.rightClickHandler=s.moveTextAreaUnderMouseCursor=s.paste=s.handlePasteEvent=s.copyHandler=s.bracketTextForPaste=s.prepareTextForTerminal=void 0,s.prepareTextForTerminal=l,s.bracketTextForPaste=o,s.copyHandler=function(g,y){g.clipboardData&&g.clipboardData.setData("text/plain",y.selectionText),g.preventDefault()},s.handlePasteEvent=function(g,y,m,_){g.stopPropagation(),g.clipboardData&&f(g.clipboardData.getData("text/plain"),y,m,_)},s.paste=f,s.moveTextAreaUnderMouseCursor=u,s.rightClickHandler=function(g,y,m,_,h){u(g,y,m),h&&_.rightClickSelect(g),y.value=_.selectionText,y.select()}},7239:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.ColorContrastCache=void 0;const o=l(1505);s.ColorContrastCache=class{constructor(){this._color=new o.TwoKeyMap,this._css=new o.TwoKeyMap}setCss(f,u,g){this._css.set(f,u,g)}getCss(f,u){return this._css.get(f,u)}setColor(f,u,g){this._color.set(f,u,g)}getColor(f,u){return this._color.get(f,u)}clear(){this._color.clear(),this._css.clear()}}},3656:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.addDisposableDomListener=void 0,s.addDisposableDomListener=function(l,o,f,u){l.addEventListener(o,f,u);let g=!1;return{dispose:()=>{g||(g=!0,l.removeEventListener(o,f,u))}}}},6465:function(a,s,l){var o=this&&this.__decorate||function(h,d,p,v){var S,C=arguments.length,b=C<3?d:v===null?v=Object.getOwnPropertyDescriptor(d,p):v;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,d,p,v);else for(var w=h.length-1;w>=0;w--)(S=h[w])&&(b=(C<3?S(b):C>3?S(d,p,b):S(d,p))||b);return C>3&&b&&Object.defineProperty(d,p,b),b},f=this&&this.__param||function(h,d){return function(p,v){d(p,v,h)}};Object.defineProperty(s,"__esModule",{value:!0}),s.Linkifier2=void 0;const u=l(3656),g=l(8460),y=l(844),m=l(2585);let _=s.Linkifier2=class extends y.Disposable{get currentLink(){return this._currentLink}constructor(h){super(),this._bufferService=h,this._linkProviders=[],this._linkCacheDisposables=[],this._isMouseOut=!0,this._wasResized=!1,this._activeLine=-1,this._onShowLinkUnderline=this.register(new g.EventEmitter),this.onShowLinkUnderline=this._onShowLinkUnderline.event,this._onHideLinkUnderline=this.register(new g.EventEmitter),this.onHideLinkUnderline=this._onHideLinkUnderline.event,this.register((0,y.getDisposeArrayDisposable)(this._linkCacheDisposables)),this.register((0,y.toDisposable)(()=>{this._lastMouseEvent=void 0})),this.register(this._bufferService.onResize(()=>{this._clearCurrentLink(),this._wasResized=!0}))}registerLinkProvider(h){return this._linkProviders.push(h),{dispose:()=>{const d=this._linkProviders.indexOf(h);d!==-1&&this._linkProviders.splice(d,1)}}}attachToDom(h,d,p){this._element=h,this._mouseService=d,this._renderService=p,this.register((0,u.addDisposableDomListener)(this._element,"mouseleave",()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this.register((0,u.addDisposableDomListener)(this._element,"mousemove",this._handleMouseMove.bind(this))),this.register((0,u.addDisposableDomListener)(this._element,"mousedown",this._handleMouseDown.bind(this))),this.register((0,u.addDisposableDomListener)(this._element,"mouseup",this._handleMouseUp.bind(this)))}_handleMouseMove(h){if(this._lastMouseEvent=h,!this._element||!this._mouseService)return;const d=this._positionFromMouseEvent(h,this._element,this._mouseService);if(!d)return;this._isMouseOut=!1;const p=h.composedPath();for(let v=0;v<p.length;v++){const S=p[v];if(S.classList.contains("xterm"))break;if(S.classList.contains("xterm-hover"))return}this._lastBufferCell&&d.x===this._lastBufferCell.x&&d.y===this._lastBufferCell.y||(this._handleHover(d),this._lastBufferCell=d)}_handleHover(h){if(this._activeLine!==h.y||this._wasResized)return this._clearCurrentLink(),this._askForLink(h,!1),void(this._wasResized=!1);this._currentLink&&this._linkAtPosition(this._currentLink.link,h)||(this._clearCurrentLink(),this._askForLink(h,!0))}_askForLink(h,d){var p,v;this._activeProviderReplies&&d||((p=this._activeProviderReplies)===null||p===void 0||p.forEach(C=>{C==null||C.forEach(b=>{b.link.dispose&&b.link.dispose()})}),this._activeProviderReplies=new Map,this._activeLine=h.y);let S=!1;for(const[C,b]of this._linkProviders.entries())d?!((v=this._activeProviderReplies)===null||v===void 0)&&v.get(C)&&(S=this._checkLinkProviderResult(C,h,S)):b.provideLinks(h.y,w=>{var E,x;if(this._isMouseOut)return;const R=w==null?void 0:w.map(D=>({link:D}));(E=this._activeProviderReplies)===null||E===void 0||E.set(C,R),S=this._checkLinkProviderResult(C,h,S),((x=this._activeProviderReplies)===null||x===void 0?void 0:x.size)===this._linkProviders.length&&this._removeIntersectingLinks(h.y,this._activeProviderReplies)})}_removeIntersectingLinks(h,d){const p=new Set;for(let v=0;v<d.size;v++){const S=d.get(v);if(S)for(let C=0;C<S.length;C++){const b=S[C],w=b.link.range.start.y<h?0:b.link.range.start.x,E=b.link.range.end.y>h?this._bufferService.cols:b.link.range.end.x;for(let x=w;x<=E;x++){if(p.has(x)){S.splice(C--,1);break}p.add(x)}}}}_checkLinkProviderResult(h,d,p){var v;if(!this._activeProviderReplies)return p;const S=this._activeProviderReplies.get(h);let C=!1;for(let b=0;b<h;b++)this._activeProviderReplies.has(b)&&!this._activeProviderReplies.get(b)||(C=!0);if(!C&&S){const b=S.find(w=>this._linkAtPosition(w.link,d));b&&(p=!0,this._handleNewLink(b))}if(this._activeProviderReplies.size===this._linkProviders.length&&!p)for(let b=0;b<this._activeProviderReplies.size;b++){const w=(v=this._activeProviderReplies.get(b))===null||v===void 0?void 0:v.find(E=>this._linkAtPosition(E.link,d));if(w){p=!0,this._handleNewLink(w);break}}return p}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(h){if(!this._element||!this._mouseService||!this._currentLink)return;const d=this._positionFromMouseEvent(h,this._element,this._mouseService);d&&this._mouseDownLink===this._currentLink&&this._linkAtPosition(this._currentLink.link,d)&&this._currentLink.link.activate(h,this._currentLink.link.text)}_clearCurrentLink(h,d){this._element&&this._currentLink&&this._lastMouseEvent&&(!h||!d||this._currentLink.link.range.start.y>=h&&this._currentLink.link.range.end.y<=d)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,(0,y.disposeArray)(this._linkCacheDisposables))}_handleNewLink(h){if(!this._element||!this._lastMouseEvent||!this._mouseService)return;const d=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);d&&this._linkAtPosition(h.link,d)&&(this._currentLink=h,this._currentLink.state={decorations:{underline:h.link.decorations===void 0||h.link.decorations.underline,pointerCursor:h.link.decorations===void 0||h.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,h.link,this._lastMouseEvent),h.link.decorations={},Object.defineProperties(h.link.decorations,{pointerCursor:{get:()=>{var p,v;return(v=(p=this._currentLink)===null||p===void 0?void 0:p.state)===null||v===void 0?void 0:v.decorations.pointerCursor},set:p=>{var v,S;!((v=this._currentLink)===null||v===void 0)&&v.state&&this._currentLink.state.decorations.pointerCursor!==p&&(this._currentLink.state.decorations.pointerCursor=p,this._currentLink.state.isHovered&&((S=this._element)===null||S===void 0||S.classList.toggle("xterm-cursor-pointer",p)))}},underline:{get:()=>{var p,v;return(v=(p=this._currentLink)===null||p===void 0?void 0:p.state)===null||v===void 0?void 0:v.decorations.underline},set:p=>{var v,S,C;!((v=this._currentLink)===null||v===void 0)&&v.state&&((C=(S=this._currentLink)===null||S===void 0?void 0:S.state)===null||C===void 0?void 0:C.decorations.underline)!==p&&(this._currentLink.state.decorations.underline=p,this._currentLink.state.isHovered&&this._fireUnderlineEvent(h.link,p))}}}),this._renderService&&this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange(p=>{if(!this._currentLink)return;const v=p.start===0?0:p.start+1+this._bufferService.buffer.ydisp,S=this._bufferService.buffer.ydisp+1+p.end;if(this._currentLink.link.range.start.y>=v&&this._currentLink.link.range.end.y<=S&&(this._clearCurrentLink(v,S),this._lastMouseEvent&&this._element)){const C=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);C&&this._askForLink(C,!1)}})))}_linkHover(h,d,p){var v;!((v=this._currentLink)===null||v===void 0)&&v.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(d,!0),this._currentLink.state.decorations.pointerCursor&&h.classList.add("xterm-cursor-pointer")),d.hover&&d.hover(p,d.text)}_fireUnderlineEvent(h,d){const p=h.range,v=this._bufferService.buffer.ydisp,S=this._createLinkUnderlineEvent(p.start.x-1,p.start.y-v-1,p.end.x,p.end.y-v-1,void 0);(d?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(S)}_linkLeave(h,d,p){var v;!((v=this._currentLink)===null||v===void 0)&&v.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(d,!1),this._currentLink.state.decorations.pointerCursor&&h.classList.remove("xterm-cursor-pointer")),d.leave&&d.leave(p,d.text)}_linkAtPosition(h,d){const p=h.range.start.y*this._bufferService.cols+h.range.start.x,v=h.range.end.y*this._bufferService.cols+h.range.end.x,S=d.y*this._bufferService.cols+d.x;return p<=S&&S<=v}_positionFromMouseEvent(h,d,p){const v=p.getCoords(h,d,this._bufferService.cols,this._bufferService.rows);if(v)return{x:v[0],y:v[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(h,d,p,v,S){return{x1:h,y1:d,x2:p,y2:v,cols:this._bufferService.cols,fg:S}}};s.Linkifier2=_=o([f(0,m.IBufferService)],_)},9042:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.tooMuchOutput=s.promptLabel=void 0,s.promptLabel="Terminal input",s.tooMuchOutput="Too much output to announce, navigate to rows manually to read"},3730:function(a,s,l){var o=this&&this.__decorate||function(_,h,d,p){var v,S=arguments.length,C=S<3?h:p===null?p=Object.getOwnPropertyDescriptor(h,d):p;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")C=Reflect.decorate(_,h,d,p);else for(var b=_.length-1;b>=0;b--)(v=_[b])&&(C=(S<3?v(C):S>3?v(h,d,C):v(h,d))||C);return S>3&&C&&Object.defineProperty(h,d,C),C},f=this&&this.__param||function(_,h){return function(d,p){h(d,p,_)}};Object.defineProperty(s,"__esModule",{value:!0}),s.OscLinkProvider=void 0;const u=l(511),g=l(2585);let y=s.OscLinkProvider=class{constructor(_,h,d){this._bufferService=_,this._optionsService=h,this._oscLinkService=d}provideLinks(_,h){var d;const p=this._bufferService.buffer.lines.get(_-1);if(!p)return void h(void 0);const v=[],S=this._optionsService.rawOptions.linkHandler,C=new u.CellData,b=p.getTrimmedLength();let w=-1,E=-1,x=!1;for(let R=0;R<b;R++)if(E!==-1||p.hasContent(R)){if(p.loadCell(R,C),C.hasExtendedAttrs()&&C.extended.urlId){if(E===-1){E=R,w=C.extended.urlId;continue}x=C.extended.urlId!==w}else E!==-1&&(x=!0);if(x||E!==-1&&R===b-1){const D=(d=this._oscLinkService.getLinkData(w))===null||d===void 0?void 0:d.uri;if(D){const k={start:{x:E+1,y:_},end:{x:R+(x||R!==b-1?0:1),y:_}};let O=!1;if(!(S!=null&&S.allowNonHttpProtocols))try{const $=new URL(D);["http:","https:"].includes($.protocol)||(O=!0)}catch($){O=!0}O||v.push({text:D,range:k,activate:($,W)=>S?S.activate($,W,k):m(0,W),hover:($,W)=>{var q;return(q=S==null?void 0:S.hover)===null||q===void 0?void 0:q.call(S,$,W,k)},leave:($,W)=>{var q;return(q=S==null?void 0:S.leave)===null||q===void 0?void 0:q.call(S,$,W,k)}})}x=!1,C.hasExtendedAttrs()&&C.extended.urlId?(E=R,w=C.extended.urlId):(E=-1,w=-1)}}h(v)}};function m(_,h){if(confirm(`Do you want to navigate to ${h}?
WARNING: This link could potentially be dangerous`)){const d=window.open();if(d){try{d.opener=null}catch(p){}d.location.href=h}else console.warn("Opening link blocked as opener could not be cleared")}}s.OscLinkProvider=y=o([f(0,g.IBufferService),f(1,g.IOptionsService),f(2,g.IOscLinkService)],y)},6193:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.RenderDebouncer=void 0,s.RenderDebouncer=class{constructor(l,o){this._parentWindow=l,this._renderCallback=o,this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._parentWindow.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(l){return this._refreshCallbacks.push(l),this._animationFrame||(this._animationFrame=this._parentWindow.requestAnimationFrame(()=>this._innerRefresh())),this._animationFrame}refresh(l,o,f){this._rowCount=f,l=l!==void 0?l:0,o=o!==void 0?o:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,l):l,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,o):o,this._animationFrame||(this._animationFrame=this._parentWindow.requestAnimationFrame(()=>this._innerRefresh()))}_innerRefresh(){if(this._animationFrame=void 0,this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return void this._runRefreshCallbacks();const l=Math.max(this._rowStart,0),o=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(l,o),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(const l of this._refreshCallbacks)l(0);this._refreshCallbacks=[]}}},5596:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.ScreenDprMonitor=void 0;const o=l(844);class f extends o.Disposable{constructor(g){super(),this._parentWindow=g,this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this.register((0,o.toDisposable)(()=>{this.clearListener()}))}setListener(g){this._listener&&this.clearListener(),this._listener=g,this._outerListener=()=>{this._listener&&(this._listener(this._parentWindow.devicePixelRatio,this._currentDevicePixelRatio),this._updateDpr())},this._updateDpr()}_updateDpr(){var g;this._outerListener&&((g=this._resolutionMediaMatchList)===null||g===void 0||g.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)}}s.ScreenDprMonitor=f},3236:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.Terminal=void 0;const o=l(3614),f=l(3656),u=l(6465),g=l(9042),y=l(3730),m=l(1680),_=l(3107),h=l(5744),d=l(2950),p=l(1296),v=l(428),S=l(4269),C=l(5114),b=l(8934),w=l(3230),E=l(9312),x=l(4725),R=l(6731),D=l(8055),k=l(8969),O=l(8460),$=l(844),W=l(6114),q=l(8437),V=l(2584),L=l(7399),N=l(5941),P=l(9074),U=l(2585),Y=l(5435),ee=l(4567),le=typeof window!="undefined"?window.document:null;class se extends k.CoreTerminal{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}constructor(I={}){super(I),this.browser=W,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this.register(new $.MutableDisposable),this._onCursorMove=this.register(new O.EventEmitter),this.onCursorMove=this._onCursorMove.event,this._onKey=this.register(new O.EventEmitter),this.onKey=this._onKey.event,this._onRender=this.register(new O.EventEmitter),this.onRender=this._onRender.event,this._onSelectionChange=this.register(new O.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onTitleChange=this.register(new O.EventEmitter),this.onTitleChange=this._onTitleChange.event,this._onBell=this.register(new O.EventEmitter),this.onBell=this._onBell.event,this._onFocus=this.register(new O.EventEmitter),this._onBlur=this.register(new O.EventEmitter),this._onA11yCharEmitter=this.register(new O.EventEmitter),this._onA11yTabEmitter=this.register(new O.EventEmitter),this._onWillOpen=this.register(new O.EventEmitter),this._setup(),this.linkifier2=this.register(this._instantiationService.createInstance(u.Linkifier2)),this.linkifier2.registerLinkProvider(this._instantiationService.createInstance(y.OscLinkProvider)),this._decorationService=this._instantiationService.createInstance(P.DecorationService),this._instantiationService.setService(U.IDecorationService,this._decorationService),this.register(this._inputHandler.onRequestBell(()=>this._onBell.fire())),this.register(this._inputHandler.onRequestRefreshRows((K,G)=>this.refresh(K,G))),this.register(this._inputHandler.onRequestSendFocus(()=>this._reportFocus())),this.register(this._inputHandler.onRequestReset(()=>this.reset())),this.register(this._inputHandler.onRequestWindowsOptionsReport(K=>this._reportWindowsOptions(K))),this.register(this._inputHandler.onColor(K=>this._handleColorEvent(K))),this.register((0,O.forwardEvent)(this._inputHandler.onCursorMove,this._onCursorMove)),this.register((0,O.forwardEvent)(this._inputHandler.onTitleChange,this._onTitleChange)),this.register((0,O.forwardEvent)(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this.register((0,O.forwardEvent)(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this.register(this._bufferService.onResize(K=>this._afterResize(K.cols,K.rows))),this.register((0,$.toDisposable)(()=>{var K,G;this._customKeyEventHandler=void 0,(G=(K=this.element)===null||K===void 0?void 0:K.parentNode)===null||G===void 0||G.removeChild(this.element)}))}_handleColorEvent(I){if(this._themeService)for(const K of I){let G,j="";switch(K.index){case 256:G="foreground",j="10";break;case 257:G="background",j="11";break;case 258:G="cursor",j="12";break;default:G="ansi",j="4;"+K.index}switch(K.type){case 0:const ce=D.color.toColorRGB(G==="ansi"?this._themeService.colors.ansi[K.index]:this._themeService.colors[G]);this.coreService.triggerDataEvent(`${V.C0.ESC}]${j};${(0,N.toRgbString)(ce)}${V.C1_ESCAPED.ST}`);break;case 1:if(G==="ansi")this._themeService.modifyColors(re=>re.ansi[K.index]=D.rgba.toColor(...K.color));else{const re=G;this._themeService.modifyColors(de=>de[re]=D.rgba.toColor(...K.color))}break;case 2:this._themeService.restoreColor(K.index)}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(I){I?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(ee.AccessibilityManager,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(I){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(V.C0.ESC+"[I"),this.updateCursorStyle(I),this.element.classList.add("focus"),this._showCursor(),this._onFocus.fire()}blur(){var I;return(I=this.textarea)===null||I===void 0?void 0:I.blur()}_handleTextAreaBlur(){this.textarea.value="",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(V.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 I=this.buffer.ybase+this.buffer.y,K=this.buffer.lines.get(I);if(!K)return;const G=Math.min(this.buffer.x,this.cols-1),j=this._renderService.dimensions.css.cell.height,ce=K.getWidth(G),re=this._renderService.dimensions.css.cell.width*ce,de=this.buffer.y*this._renderService.dimensions.css.cell.height,xe=G*this._renderService.dimensions.css.cell.width;this.textarea.style.left=xe+"px",this.textarea.style.top=de+"px",this.textarea.style.width=re+"px",this.textarea.style.height=j+"px",this.textarea.style.lineHeight=j+"px",this.textarea.style.zIndex="-5"}_initGlobal(){this._bindKeys(),this.register((0,f.addDisposableDomListener)(this.element,"copy",K=>{this.hasSelection()&&(0,o.copyHandler)(K,this._selectionService)}));const I=K=>(0,o.handlePasteEvent)(K,this.textarea,this.coreService,this.optionsService);this.register((0,f.addDisposableDomListener)(this.textarea,"paste",I)),this.register((0,f.addDisposableDomListener)(this.element,"paste",I)),W.isFirefox?this.register((0,f.addDisposableDomListener)(this.element,"mousedown",K=>{K.button===2&&(0,o.rightClickHandler)(K,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this.register((0,f.addDisposableDomListener)(this.element,"contextmenu",K=>{(0,o.rightClickHandler)(K,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),W.isLinux&&this.register((0,f.addDisposableDomListener)(this.element,"auxclick",K=>{K.button===1&&(0,o.moveTextAreaUnderMouseCursor)(K,this.textarea,this.screenElement)}))}_bindKeys(){this.register((0,f.addDisposableDomListener)(this.textarea,"keyup",I=>this._keyUp(I),!0)),this.register((0,f.addDisposableDomListener)(this.textarea,"keydown",I=>this._keyDown(I),!0)),this.register((0,f.addDisposableDomListener)(this.textarea,"keypress",I=>this._keyPress(I),!0)),this.register((0,f.addDisposableDomListener)(this.textarea,"compositionstart",()=>this._compositionHelper.compositionstart())),this.register((0,f.addDisposableDomListener)(this.textarea,"compositionupdate",I=>this._compositionHelper.compositionupdate(I))),this.register((0,f.addDisposableDomListener)(this.textarea,"compositionend",()=>this._compositionHelper.compositionend())),this.register((0,f.addDisposableDomListener)(this.textarea,"input",I=>this._inputEvent(I),!0)),this.register(this.onRender(()=>this._compositionHelper.updateCompositionElements()))}open(I){var K;if(!I)throw new Error("Terminal requires a parent element.");I.isConnected||this._logService.debug("Terminal.open was called on an element that was not attached to the DOM"),this._document=I.ownerDocument,this.element=this._document.createElement("div"),this.element.dir="ltr",this.element.classList.add("terminal"),this.element.classList.add("xterm"),I.appendChild(this.element);const G=le.createDocumentFragment();this._viewportElement=le.createElement("div"),this._viewportElement.classList.add("xterm-viewport"),G.appendChild(this._viewportElement),this._viewportScrollArea=le.createElement("div"),this._viewportScrollArea.classList.add("xterm-scroll-area"),this._viewportElement.appendChild(this._viewportScrollArea),this.screenElement=le.createElement("div"),this.screenElement.classList.add("xterm-screen"),this._helperContainer=le.createElement("div"),this._helperContainer.classList.add("xterm-helpers"),this.screenElement.appendChild(this._helperContainer),G.appendChild(this.screenElement),this.textarea=le.createElement("textarea"),this.textarea.classList.add("xterm-helper-textarea"),this.textarea.setAttribute("aria-label",g.promptLabel),W.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(C.CoreBrowserService,this.textarea,(K=this._document.defaultView)!==null&&K!==void 0?K:window),this._instantiationService.setService(x.ICoreBrowserService,this._coreBrowserService),this.register((0,f.addDisposableDomListener)(this.textarea,"focus",j=>this._handleTextAreaFocus(j))),this.register((0,f.addDisposableDomListener)(this.textarea,"blur",()=>this._handleTextAreaBlur())),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(v.CharSizeService,this._document,this._helperContainer),this._instantiationService.setService(x.ICharSizeService,this._charSizeService),this._themeService=this._instantiationService.createInstance(R.ThemeService),this._instantiationService.setService(x.IThemeService,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(S.CharacterJoinerService),this._instantiationService.setService(x.ICharacterJoinerService,this._characterJoinerService),this._renderService=this.register(this._instantiationService.createInstance(w.RenderService,this.rows,this.screenElement)),this._instantiationService.setService(x.IRenderService,this._renderService),this.register(this._renderService.onRenderedViewportChange(j=>this._onRender.fire(j))),this.onResize(j=>this._renderService.resize(j.cols,j.rows)),this._compositionView=le.createElement("div"),this._compositionView.classList.add("composition-view"),this._compositionHelper=this._instantiationService.createInstance(d.CompositionHelper,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this.element.appendChild(G);try{this._onWillOpen.fire(this.element)}catch(j){}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this._mouseService=this._instantiationService.createInstance(b.MouseService),this._instantiationService.setService(x.IMouseService,this._mouseService),this.viewport=this._instantiationService.createInstance(m.Viewport,this._viewportElement,this._viewportScrollArea),this.viewport.onRequestScrollLines(j=>this.scrollLines(j.amount,j.suppressScrollEvent,1)),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(E.SelectionService,this.element,this.screenElement,this.linkifier2)),this._instantiationService.setService(x.ISelectionService,this._selectionService),this.register(this._selectionService.onRequestScrollLines(j=>this.scrollLines(j.amount,j.suppressScrollEvent))),this.register(this._selectionService.onSelectionChange(()=>this._onSelectionChange.fire())),this.register(this._selectionService.onRequestRedraw(j=>this._renderService.handleSelectionChanged(j.start,j.end,j.columnSelectMode))),this.register(this._selectionService.onLinuxMouseSelection(j=>{this.textarea.value=j,this.textarea.focus(),this.textarea.select()})),this.register(this._onScroll.event(j=>{this.viewport.syncScrollArea(),this._selectionService.refresh()})),this.register((0,f.addDisposableDomListener)(this._viewportElement,"scroll",()=>this._selectionService.refresh())),this.linkifier2.attachToDom(this.screenElement,this._mouseService,this._renderService),this.register(this._instantiationService.createInstance(_.BufferDecorationRenderer,this.screenElement)),this.register((0,f.addDisposableDomListener)(this.element,"mousedown",j=>this._selectionService.handleMouseDown(j))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add("enable-mouse-events")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(ee.AccessibilityManager,this)),this.register(this.optionsService.onSpecificOptionChange("screenReaderMode",j=>this._handleScreenReaderModeOptionChange(j))),this.options.overviewRulerWidth&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(h.OverviewRulerRenderer,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange("overviewRulerWidth",j=>{!this._overviewRulerRenderer&&j&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this.register(this._instantiationService.createInstance(h.OverviewRulerRenderer,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(p.DomRenderer,this.element,this.screenElement,this._viewportElement,this.linkifier2)}bindMouse(){const I=this,K=this.element;function G(re){const de=I._mouseService.getMouseReportCoords(re,I.screenElement);if(!de)return!1;let xe,Ae;switch(re.overrideType||re.type){case"mousemove":Ae=32,re.buttons===void 0?(xe=3,re.button!==void 0&&(xe=re.button<3?re.button:3)):xe=1&re.buttons?0:4&re.buttons?1:2&re.buttons?2:3;break;case"mouseup":Ae=0,xe=re.button<3?re.button:3;break;case"mousedown":Ae=1,xe=re.button<3?re.button:3;break;case"wheel":if(I.viewport.getLinesScrolled(re)===0)return!1;Ae=re.deltaY<0?0:1,xe=4;break;default:return!1}return!(Ae===void 0||xe===void 0||xe>4)&&I.coreMouseService.triggerMouseEvent({col:de.col,row:de.row,x:de.x,y:de.y,button:xe,action:Ae,ctrl:re.ctrlKey,alt:re.altKey,shift:re.shiftKey})}const j={mouseup:null,wheel:null,mousedrag:null,mousemove:null},ce={mouseup:re=>(G(re),re.buttons||(this._document.removeEventListener("mouseup",j.mouseup),j.mousedrag&&this._document.removeEventListener("mousemove",j.mousedrag)),this.cancel(re)),wheel:re=>(G(re),this.cancel(re,!0)),mousedrag:re=>{re.buttons&&G(re)},mousemove:re=>{re.buttons||G(re)}};this.register(this.coreMouseService.onProtocolChange(re=>{re?(this.optionsService.rawOptions.logLevel==="debug"&&this._logService.debug("Binding to mouse events:",this.coreMouseService.explainEvents(re)),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&re?j.mousemove||(K.addEventListener("mousemove",ce.mousemove),j.mousemove=ce.mousemove):(K.removeEventListener("mousemove",j.mousemove),j.mousemove=null),16&re?j.wheel||(K.addEventListener("wheel",ce.wheel,{passive:!1}),j.wheel=ce.wheel):(K.removeEventListener("wheel",j.wheel),j.wheel=null),2&re?j.mouseup||(K.addEventListener("mouseup",ce.mouseup),j.mouseup=ce.mouseup):(this._document.removeEventListener("mouseup",j.mouseup),K.removeEventListener("mouseup",j.mouseup),j.mouseup=null),4&re?j.mousedrag||(j.mousedrag=ce.mousedrag):(this._document.removeEventListener("mousemove",j.mousedrag),j.mousedrag=null)})),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this.register((0,f.addDisposableDomListener)(K,"mousedown",re=>{if(re.preventDefault(),this.focus(),this.coreMouseService.areMouseEventsActive&&!this._selectionService.shouldForceSelection(re))return G(re),j.mouseup&&this._document.addEventListener("mouseup",j.mouseup),j.mousedrag&&this._document.addEventListener("mousemove",j.mousedrag),this.cancel(re)})),this.register((0,f.addDisposableDomListener)(K,"wheel",re=>{if(!j.wheel){if(!this.buffer.hasScrollback){const de=this.viewport.getLinesScrolled(re);if(de===0)return;const xe=V.C0.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?"O":"[")+(re.deltaY<0?"A":"B");let Ae="";for(let lr=0;lr<Math.abs(de);lr++)Ae+=xe;return this.coreService.triggerDataEvent(Ae,!0),this.cancel(re,!0)}return this.viewport.handleWheel(re)?this.cancel(re):void 0}},{passive:!1})),this.register((0,f.addDisposableDomListener)(K,"touchstart",re=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchStart(re),this.cancel(re)},{passive:!0})),this.register((0,f.addDisposableDomListener)(K,"touchmove",re=>{if(!this.coreMouseService.areMouseEventsActive)return this.viewport.handleTouchMove(re)?void 0:this.cancel(re)},{passive:!1}))}refresh(I,K){var G;(G=this._renderService)===null||G===void 0||G.refreshRows(I,K)}updateCursorStyle(I){var K;!((K=this._selectionService)===null||K===void 0)&&K.shouldColumnSelect(I)?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(I,K,G=0){var j;G===1?(super.scrollLines(I,K,G),this.refresh(0,this.rows-1)):(j=this.viewport)===null||j===void 0||j.scrollLines(I)}paste(I){(0,o.paste)(I,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(I){this._customKeyEventHandler=I}registerLinkProvider(I){return this.linkifier2.registerLinkProvider(I)}registerCharacterJoiner(I){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");const K=this._characterJoinerService.register(I);return this.refresh(0,this.rows-1),K}deregisterCharacterJoiner(I){if(!this._characterJoinerService)throw new Error("Terminal must be opened first");this._characterJoinerService.deregister(I)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(I){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+I)}registerDecoration(I){return this._decorationService.registerDecoration(I)}hasSelection(){return!!this._selectionService&&this._selectionService.hasSelection}select(I,K,G){this._selectionService.setSelection(I,K,G)}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 I;(I=this._selectionService)===null||I===void 0||I.clearSelection()}selectAll(){var I;(I=this._selectionService)===null||I===void 0||I.selectAll()}selectLines(I,K){var G;(G=this._selectionService)===null||G===void 0||G.selectLines(I,K)}_keyDown(I){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&this._customKeyEventHandler(I)===!1)return!1;const K=this.browser.isMac&&this.options.macOptionIsMeta&&I.altKey;if(!K&&!this._compositionHelper.keydown(I))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(),!1;K||I.key!=="Dead"&&I.key!=="AltGraph"||(this._unprocessedDeadKey=!0);const G=(0,L.evaluateKeyboardEvent)(I,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(I),G.type===3||G.type===2){const j=this.rows-1;return this.scrollLines(G.type===2?-j:j),this.cancel(I,!0)}return G.type===1&&this.selectAll(),!!this._isThirdLevelShift(this.browser,I)||(G.cancel&&this.cancel(I,!0),!G.key||!!(I.key&&!I.ctrlKey&&!I.altKey&&!I.metaKey&&I.key.length===1&&I.key.charCodeAt(0)>=65&&I.key.charCodeAt(0)<=90)||(this._unprocessedDeadKey?(this._unprocessedDeadKey=!1,!0):(G.key!==V.C0.ETX&&G.key!==V.C0.CR||(this.textarea.value=""),this._onKey.fire({key:G.key,domEvent:I}),this._showCursor(),this.coreService.triggerDataEvent(G.key,!0),!this.optionsService.rawOptions.screenReaderMode||I.altKey||I.ctrlKey?this.cancel(I,!0):void(this._keyDownHandled=!0))))}_isThirdLevelShift(I,K){const G=I.isMac&&!this.options.macOptionIsMeta&&K.altKey&&!K.ctrlKey&&!K.metaKey||I.isWindows&&K.altKey&&K.ctrlKey&&!K.metaKey||I.isWindows&&K.getModifierState("AltGraph");return K.type==="keypress"?G:G&&(!K.keyCode||K.keyCode>47)}_keyUp(I){this._keyDownSeen=!1,this._customKeyEventHandler&&this._customKeyEventHandler(I)===!1||(function(K){return K.keyCode===16||K.keyCode===17||K.keyCode===18}(I)||this.focus(),this.updateCursorStyle(I),this._keyPressHandled=!1)}_keyPress(I){let K;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&this._customKeyEventHandler(I)===!1)return!1;if(this.cancel(I),I.charCode)K=I.charCode;else if(I.which===null||I.which===void 0)K=I.keyCode;else{if(I.which===0||I.charCode===0)return!1;K=I.which}return!(!K||(I.altKey||I.ctrlKey||I.metaKey)&&!this._isThirdLevelShift(this.browser,I)||(K=String.fromCharCode(K),this._onKey.fire({key:K,domEvent:I}),this._showCursor(),this.coreService.triggerDataEvent(K,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,0))}_inputEvent(I){if(I.data&&I.inputType==="insertText"&&(!I.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;const K=I.data;return this.coreService.triggerDataEvent(K,!0),this.cancel(I),!0}return!1}resize(I,K){I!==this.cols||K!==this.rows?super.resize(I,K):this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure()}_afterResize(I,K){var G,j;(G=this._charSizeService)===null||G===void 0||G.measure(),(j=this.viewport)===null||j===void 0||j.syncScrollArea(!0)}clear(){var I;if(this.buffer.ybase!==0||this.buffer.y!==0){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 K=1;K<this.rows;K++)this.buffer.lines.push(this.buffer.getBlankLine(q.DEFAULT_ATTR_DATA));this._onScroll.fire({position:this.buffer.ydisp,source:0}),(I=this.viewport)===null||I===void 0||I.reset(),this.refresh(0,this.rows-1)}}reset(){var I,K;this.options.rows=this.rows,this.options.cols=this.cols;const G=this._customKeyEventHandler;this._setup(),super.reset(),(I=this._selectionService)===null||I===void 0||I.reset(),this._decorationService.reset(),(K=this.viewport)===null||K===void 0||K.reset(),this._customKeyEventHandler=G,this.refresh(0,this.rows-1)}clearTextureAtlas(){var I;(I=this._renderService)===null||I===void 0||I.clearTextureAtlas()}_reportFocus(){var I;!((I=this.element)===null||I===void 0)&&I.classList.contains("focus")?this.coreService.triggerDataEvent(V.C0.ESC+"[I"):this.coreService.triggerDataEvent(V.C0.ESC+"[O")}_reportWindowsOptions(I){if(this._renderService)switch(I){case Y.WindowsOptionsReportType.GET_WIN_SIZE_PIXELS:const K=this._renderService.dimensions.css.canvas.width.toFixed(0),G=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${V.C0.ESC}[4;${G};${K}t`);break;case Y.WindowsOptionsReportType.GET_CELL_SIZE_PIXELS:const j=this._renderService.dimensions.css.cell.width.toFixed(0),ce=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${V.C0.ESC}[6;${ce};${j}t`)}}cancel(I,K){if(this.options.cancelEvents||K)return I.preventDefault(),I.stopPropagation(),!1}}s.Terminal=se},9924:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.TimeBasedDebouncer=void 0,s.TimeBasedDebouncer=class{constructor(l,o=1e3){this._renderCallback=l,this._debounceThresholdMS=o,this._lastRefreshMs=0,this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(l,o,f){this._rowCount=f,l=l!==void 0?l:0,o=o!==void 0?o:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,l):l,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,o):o;const u=Date.now();if(u-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=u,this._innerRefresh();else if(!this._additionalRefreshRequested){const g=u-this._lastRefreshMs,y=this._debounceThresholdMS-g;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout(()=>{this._lastRefreshMs=Date.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0},y)}}_innerRefresh(){if(this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return;const l=Math.max(this._rowStart,0),o=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(l,o)}}},1680:function(a,s,l){var o=this&&this.__decorate||function(d,p,v,S){var C,b=arguments.length,w=b<3?p:S===null?S=Object.getOwnPropertyDescriptor(p,v):S;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")w=Reflect.decorate(d,p,v,S);else for(var E=d.length-1;E>=0;E--)(C=d[E])&&(w=(b<3?C(w):b>3?C(p,v,w):C(p,v))||w);return b>3&&w&&Object.defineProperty(p,v,w),w},f=this&&this.__param||function(d,p){return function(v,S){p(v,S,d)}};Object.defineProperty(s,"__esModule",{value:!0}),s.Viewport=void 0;const u=l(3656),g=l(4725),y=l(8460),m=l(844),_=l(2585);let h=s.Viewport=class extends m.Disposable{constructor(d,p,v,S,C,b,w,E){super(),this._viewportElement=d,this._scrollArea=p,this._bufferService=v,this._optionsService=S,this._charSizeService=C,this._renderService=b,this._coreBrowserService=w,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._onRequestScrollLines=this.register(new y.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this.scrollBarWidth=this._viewportElement.offsetWidth-this._scrollArea.offsetWidth||15,this.register((0,u.addDisposableDomListener)(this._viewportElement,"scroll",this._handleScroll.bind(this))),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate(x=>this._activeBuffer=x.activeBuffer)),this._renderDimensions=this._renderService.dimensions,this.register(this._renderService.onDimensionsChange(x=>this._renderDimensions=x)),this._handleThemeChange(E.colors),this.register(E.onChangeColors(x=>this._handleThemeChange(x))),this.register(this._optionsService.onSpecificOptionChange("scrollback",()=>this.syncScrollArea())),setTimeout(()=>this.syncScrollArea())}_handleThemeChange(d){this._viewportElement.style.backgroundColor=d.background.css}reset(){this._currentRowHeight=0,this._currentDeviceCellHeight=0,this._lastRecordedBufferLength=0,this._lastRecordedViewportHeight=0,this._lastRecordedBufferHeight=0,this._lastTouchY=0,this._lastScrollTop=0,this._coreBrowserService.window.requestAnimationFrame(()=>this.syncScrollArea())}_refresh(d){if(d)return this._innerRefresh(),void(this._refreshAnimationFrame!==null&&this._coreBrowserService.window.cancelAnimationFrame(this._refreshAnimationFrame));this._refreshAnimationFrame===null&&(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 p=Math.round(this._currentRowHeight*this._lastRecordedBufferLength)+(this._lastRecordedViewportHeight-this._renderService.dimensions.css.canvas.height);this._lastRecordedBufferHeight!==p&&(this._lastRecordedBufferHeight=p,this._scrollArea.style.height=this._lastRecordedBufferHeight+"px")}const d=this._bufferService.buffer.ydisp*this._currentRowHeight;this._viewportElement.scrollTop!==d&&(this._ignoreNextScrollEvent=!0,this._viewportElement.scrollTop=d),this._refreshAnimationFrame=null}syncScrollArea(d=!1){if(this._lastRecordedBufferLength!==this._bufferService.buffer.lines.length)return this._lastRecordedBufferLength=this._bufferService.buffer.lines.length,void this._refresh(d);this._lastRecordedViewportHeight===this._renderService.dimensions.css.canvas.height&&this._lastScrollTop===this._activeBuffer.ydisp*this._currentRowHeight&&this._renderDimensions.device.cell.height===this._currentDeviceCellHeight||this._refresh(d)}_handleScroll(d){if(this._lastScrollTop=this._viewportElement.scrollTop,!this._viewportElement.offsetParent)return;if(this._ignoreNextScrollEvent)return this._ignoreNextScrollEvent=!1,void this._onRequestScrollLines.fire({amount:0,suppressScrollEvent:!0});const p=Math.round(this._lastScrollTop/this._currentRowHeight)-this._bufferService.buffer.ydisp;this._onRequestScrollLines.fire({amount:p,suppressScrollEvent:!0})}_smoothScroll(){if(this._isDisposed||this._smoothScrollState.origin===-1||this._smoothScrollState.target===-1)return;const d=this._smoothScrollPercent();this._viewportElement.scrollTop=this._smoothScrollState.origin+Math.round(d*(this._smoothScrollState.target-this._smoothScrollState.origin)),d<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(d,p){const v=this._viewportElement.scrollTop+this._lastRecordedViewportHeight;return!(p<0&&this._viewportElement.scrollTop!==0||p>0&&v<this._lastRecordedBufferHeight)||(d.cancelable&&d.preventDefault(),!1)}handleWheel(d){const p=this._getPixelsScrolled(d);return p!==0&&(this._optionsService.rawOptions.smoothScrollDuration?(this._smoothScrollState.startTime=Date.now(),this._smoothScrollPercent()<1?(this._smoothScrollState.origin=this._viewportElement.scrollTop,this._smoothScrollState.target===-1?this._smoothScrollState.target=this._viewportElement.scrollTop+p:this._smoothScrollState.target+=p,this._smoothScrollState.target=Math.max(Math.min(this._smoothScrollState.target,this._viewportElement.scrollHeight),0),this._smoothScroll()):this._clearSmoothScrollState()):this._viewportElement.scrollTop+=p,this._bubbleScroll(d,p))}scrollLines(d){if(d!==0)if(this._optionsService.rawOptions.smoothScrollDuration){const p=d*this._currentRowHeight;this._smoothScrollState.startTime=Date.now(),this._smoothScrollPercent()<1?(this._smoothScrollState.origin=this._viewportElement.scrollTop,this._smoothScrollState.target=this._smoothScrollState.origin+p,this._smoothScrollState.target=Math.max(Math.min(this._smoothScrollState.target,this._viewportElement.scrollHeight),0),this._smoothScroll()):this._clearSmoothScrollState()}else this._onRequestScrollLines.fire({amount:d,suppressScrollEvent:!1})}_getPixelsScrolled(d){if(d.deltaY===0||d.shiftKey)return 0;let p=this._applyScrollModifier(d.deltaY,d);return d.deltaMode===WheelEvent.DOM_DELTA_LINE?p*=this._currentRowHeight:d.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(p*=this._currentRowHeight*this._bufferService.rows),p}getBufferElements(d,p){var v;let S,C="";const b=[],w=p!=null?p:this._bufferService.buffer.lines.length,E=this._bufferService.buffer.lines;for(let x=d;x<w;x++){const R=E.get(x);if(!R)continue;const D=(v=E.get(x+1))===null||v===void 0?void 0:v.isWrapped;if(C+=R.translateToString(!D),!D||x===E.length-1){const k=document.createElement("div");k.textContent=C,b.push(k),C.length>0&&(S=k),C=""}}return{bufferElements:b,cursorElement:S}}getLinesScrolled(d){if(d.deltaY===0||d.shiftKey)return 0;let p=this._applyScrollModifier(d.deltaY,d);return d.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(p/=this._currentRowHeight+0,this._wheelPartialScroll+=p,p=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):d.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(p*=this._bufferService.rows),p}_applyScrollModifier(d,p){const v=this._optionsService.rawOptions.fastScrollModifier;return v==="alt"&&p.altKey||v==="ctrl"&&p.ctrlKey||v==="shift"&&p.shiftKey?d*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:d*this._optionsService.rawOptions.scrollSensitivity}handleTouchStart(d){this._lastTouchY=d.touches[0].pageY}handleTouchMove(d){const p=this._lastTouchY-d.touches[0].pageY;return this._lastTouchY=d.touches[0].pageY,p!==0&&(this._viewportElement.scrollTop+=p,this._bubbleScroll(d,p))}};s.Viewport=h=o([f(2,_.IBufferService),f(3,_.IOptionsService),f(4,g.ICharSizeService),f(5,g.IRenderService),f(6,g.ICoreBrowserService),f(7,g.IThemeService)],h)},3107:function(a,s,l){var o=this&&this.__decorate||function(h,d,p,v){var S,C=arguments.length,b=C<3?d:v===null?v=Object.getOwnPropertyDescriptor(d,p):v;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,d,p,v);else for(var w=h.length-1;w>=0;w--)(S=h[w])&&(b=(C<3?S(b):C>3?S(d,p,b):S(d,p))||b);return C>3&&b&&Object.defineProperty(d,p,b),b},f=this&&this.__param||function(h,d){return function(p,v){d(p,v,h)}};Object.defineProperty(s,"__esModule",{value:!0}),s.BufferDecorationRenderer=void 0;const u=l(3656),g=l(4725),y=l(844),m=l(2585);let _=s.BufferDecorationRenderer=class extends y.Disposable{constructor(h,d,p,v){super(),this._screenElement=h,this._bufferService=d,this._decorationService=p,this._renderService=v,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,u.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(S=>this._removeDecoration(S))),this.register((0,y.toDisposable)(()=>{this._container.remove(),this._decorationElements.clear()}))}_queueRefresh(){this._animationFrame===void 0&&(this._animationFrame=this._renderService.addRefreshCallback(()=>{this._doRefreshDecorations(),this._animationFrame=void 0}))}_doRefreshDecorations(){for(const h of this._decorationService.decorations)this._renderDecoration(h);this._dimensionsChanged=!1}_renderDecoration(h){this._refreshStyle(h),this._dimensionsChanged&&this._refreshXPosition(h)}_createElement(h){var d,p;const v=document.createElement("div");v.classList.add("xterm-decoration"),v.classList.toggle("xterm-decoration-top-layer",((d=h==null?void 0:h.options)===null||d===void 0?void 0:d.layer)==="top"),v.style.width=`${Math.round((h.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,v.style.height=(h.options.height||1)*this._renderService.dimensions.css.cell.height+"px",v.style.top=(h.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height+"px",v.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;const S=(p=h.options.x)!==null&&p!==void 0?p:0;return S&&S>this._bufferService.cols&&(v.style.display="none"),this._refreshXPosition(h,v),v}_refreshStyle(h){const d=h.marker.line-this._bufferService.buffers.active.ydisp;if(d<0||d>=this._bufferService.rows)h.element&&(h.element.style.display="none",h.onRenderEmitter.fire(h.element));else{let p=this._decorationElements.get(h);p||(p=this._createElement(h),h.element=p,this._decorationElements.set(h,p),this._container.appendChild(p),h.onDispose(()=>{this._decorationElements.delete(h),p.remove()})),p.style.top=d*this._renderService.dimensions.css.cell.height+"px",p.style.display=this._altBufferIsActive?"none":"block",h.onRenderEmitter.fire(p)}}_refreshXPosition(h,d=h.element){var p;if(!d)return;const v=(p=h.options.x)!==null&&p!==void 0?p:0;(h.options.anchor||"left")==="right"?d.style.right=v?v*this._renderService.dimensions.css.cell.width+"px":"":d.style.left=v?v*this._renderService.dimensions.css.cell.width+"px":""}_removeDecoration(h){var d;(d=this._decorationElements.get(h))===null||d===void 0||d.remove(),this._decorationElements.delete(h),h.dispose()}};s.BufferDecorationRenderer=_=o([f(1,m.IBufferService),f(2,m.IDecorationService),f(3,g.IRenderService)],_)},5871:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.ColorZoneStore=void 0,s.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(l){if(l.options.overviewRulerOptions){for(const o of this._zones)if(o.color===l.options.overviewRulerOptions.color&&o.position===l.options.overviewRulerOptions.position){if(this._lineIntersectsZone(o,l.marker.line))return;if(this._lineAdjacentToZone(o,l.marker.line,l.options.overviewRulerOptions.position))return void this._addLineToZone(o,l.marker.line)}if(this._zonePoolIndex<this._zonePool.length)return this._zonePool[this._zonePoolIndex].color=l.options.overviewRulerOptions.color,this._zonePool[this._zonePoolIndex].position=l.options.overviewRulerOptions.position,this._zonePool[this._zonePoolIndex].startBufferLine=l.marker.line,this._zonePool[this._zonePoolIndex].endBufferLine=l.marker.line,void this._zones.push(this._zonePool[this._zonePoolIndex++]);this._zones.push({color:l.options.overviewRulerOptions.color,position:l.options.overviewRulerOptions.position,startBufferLine:l.marker.line,endBufferLine:l.marker.line}),this._zonePool.push(this._zones[this._zones.length-1]),this._zonePoolIndex++}}setPadding(l){this._linePadding=l}_lineIntersectsZone(l,o){return o>=l.startBufferLine&&o<=l.endBufferLine}_lineAdjacentToZone(l,o,f){return o>=l.startBufferLine-this._linePadding[f||"full"]&&o<=l.endBufferLine+this._linePadding[f||"full"]}_addLineToZone(l,o){l.startBufferLine=Math.min(l.startBufferLine,o),l.endBufferLine=Math.max(l.endBufferLine,o)}}},5744:function(a,s,l){var o=this&&this.__decorate||function(S,C,b,w){var E,x=arguments.length,R=x<3?C:w===null?w=Object.getOwnPropertyDescriptor(C,b):w;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")R=Reflect.decorate(S,C,b,w);else for(var D=S.length-1;D>=0;D--)(E=S[D])&&(R=(x<3?E(R):x>3?E(C,b,R):E(C,b))||R);return x>3&&R&&Object.defineProperty(C,b,R),R},f=this&&this.__param||function(S,C){return function(b,w){C(b,w,S)}};Object.defineProperty(s,"__esModule",{value:!0}),s.OverviewRulerRenderer=void 0;const u=l(5871),g=l(3656),y=l(4725),m=l(844),_=l(2585),h={full:0,left:0,center:0,right:0},d={full:0,left:0,center:0,right:0},p={full:0,left:0,center:0,right:0};let v=s.OverviewRulerRenderer=class extends m.Disposable{get _width(){return this._optionsService.options.overviewRulerWidth||0}constructor(S,C,b,w,E,x,R){var D;super(),this._viewportElement=S,this._screenElement=C,this._bufferService=b,this._decorationService=w,this._renderService=E,this._optionsService=x,this._coreBrowseService=R,this._colorZoneStore=new u.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(),(D=this._viewportElement.parentElement)===null||D===void 0||D.insertBefore(this._canvas,this._viewportElement);const k=this._canvas.getContext("2d");if(!k)throw new Error("Ctx cannot be null");this._ctx=k,this._registerDecorationListeners(),this._registerBufferChangeListeners(),this._registerDimensionChangeListeners(),this.register((0,m.toDisposable)(()=>{var O;(O=this._canvas)===null||O===void 0||O.remove()}))}_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,g.addDisposableDomListener)(this._coreBrowseService.window,"resize",()=>this._queueRefresh(!0))),this._queueRefresh(!0)}_refreshDrawConstants(){const S=Math.floor(this._canvas.width/3),C=Math.ceil(this._canvas.width/3);d.full=this._canvas.width,d.left=S,d.center=C,d.right=S,this._refreshDrawHeightConstants(),p.full=0,p.left=0,p.center=d.left,p.right=d.left+d.center}_refreshDrawHeightConstants(){h.full=Math.round(2*this._coreBrowseService.dpr);const S=this._canvas.height/this._bufferService.buffer.lines.length,C=Math.round(Math.max(Math.min(S,12),6)*this._coreBrowseService.dpr);h.left=C,h.center=C,h.right=C}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*h.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*h.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*h.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*h.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 C of this._decorationService.decorations)this._colorZoneStore.addDecoration(C);this._ctx.lineWidth=1;const S=this._colorZoneStore.zones;for(const C of S)C.position!=="full"&&this._renderColorZone(C);for(const C of S)C.position==="full"&&this._renderColorZone(C);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderColorZone(S){this._ctx.fillStyle=S.color,this._ctx.fillRect(p[S.position||"full"],Math.round((this._canvas.height-1)*(S.startBufferLine/this._bufferService.buffers.active.lines.length)-h[S.position||"full"]/2),d[S.position||"full"],Math.round((this._canvas.height-1)*((S.endBufferLine-S.startBufferLine)/this._bufferService.buffers.active.lines.length)+h[S.position||"full"]))}_queueRefresh(S,C){this._shouldUpdateDimensions=S||this._shouldUpdateDimensions,this._shouldUpdateAnchor=C||this._shouldUpdateAnchor,this._animationFrame===void 0&&(this._animationFrame=this._coreBrowseService.window.requestAnimationFrame(()=>{this._refreshDecorations(),this._animationFrame=void 0}))}};s.OverviewRulerRenderer=v=o([f(2,_.IBufferService),f(3,_.IDecorationService),f(4,y.IRenderService),f(5,_.IOptionsService),f(6,y.ICoreBrowserService)],v)},2950:function(a,s,l){var o=this&&this.__decorate||function(_,h,d,p){var v,S=arguments.length,C=S<3?h:p===null?p=Object.getOwnPropertyDescriptor(h,d):p;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")C=Reflect.decorate(_,h,d,p);else for(var b=_.length-1;b>=0;b--)(v=_[b])&&(C=(S<3?v(C):S>3?v(h,d,C):v(h,d))||C);return S>3&&C&&Object.defineProperty(h,d,C),C},f=this&&this.__param||function(_,h){return function(d,p){h(d,p,_)}};Object.defineProperty(s,"__esModule",{value:!0}),s.CompositionHelper=void 0;const u=l(4725),g=l(2585),y=l(2584);let m=s.CompositionHelper=class{get isComposing(){return this._isComposing}constructor(_,h,d,p,v,S){this._textarea=_,this._compositionView=h,this._bufferService=d,this._optionsService=p,this._coreService=v,this._renderService=S,this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=""}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent="",this._dataAlreadySent="",this._compositionView.classList.add("active")}compositionupdate(_){this._compositionView.textContent=_.data,this.updateCompositionElements(),setTimeout(()=>{this._compositionPosition.end=this._textarea.value.length},0)}compositionend(){this._finalizeComposition(!0)}keydown(_){if(this._isComposing||this._isSendingComposition){if(_.keyCode===229||_.keyCode===16||_.keyCode===17||_.keyCode===18)return!1;this._finalizeComposition(!1)}return _.keyCode!==229||(this._handleAnyTextareaChanges(),!1)}_finalizeComposition(_){if(this._compositionView.classList.remove("active"),this._isComposing=!1,_){const h={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout(()=>{if(this._isSendingComposition){let d;this._isSendingComposition=!1,h.start+=this._dataAlreadySent.length,d=this._isComposing?this._textarea.value.substring(h.start,h.end):this._textarea.value.substring(h.start),d.length>0&&this._coreService.triggerDataEvent(d,!0)}},0)}else{this._isSendingComposition=!1;const h=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(h,!0)}}_handleAnyTextareaChanges(){const _=this._textarea.value;setTimeout(()=>{if(!this._isComposing){const h=this._textarea.value,d=h.replace(_,"");this._dataAlreadySent=d,h.length>_.length?this._coreService.triggerDataEvent(d,!0):h.length<_.length?this._coreService.triggerDataEvent(`${y.C0.DEL}`,!0):h.length===_.length&&h!==_&&this._coreService.triggerDataEvent(h,!0)}},0)}updateCompositionElements(_){if(this._isComposing){if(this._bufferService.buffer.isCursorInViewport){const h=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),d=this._renderService.dimensions.css.cell.height,p=this._bufferService.buffer.y*this._renderService.dimensions.css.cell.height,v=h*this._renderService.dimensions.css.cell.width;this._compositionView.style.left=v+"px",this._compositionView.style.top=p+"px",this._compositionView.style.height=d+"px",this._compositionView.style.lineHeight=d+"px",this._compositionView.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._compositionView.style.fontSize=this._optionsService.rawOptions.fontSize+"px";const S=this._compositionView.getBoundingClientRect();this._textarea.style.left=v+"px",this._textarea.style.top=p+"px",this._textarea.style.width=Math.max(S.width,1)+"px",this._textarea.style.height=Math.max(S.height,1)+"px",this._textarea.style.lineHeight=S.height+"px"}_||setTimeout(()=>this.updateCompositionElements(!0),0)}}};s.CompositionHelper=m=o([f(2,g.IBufferService),f(3,g.IOptionsService),f(4,g.ICoreService),f(5,u.IRenderService)],m)},9806:(a,s)=>{function l(o,f,u){const g=u.getBoundingClientRect(),y=o.getComputedStyle(u),m=parseInt(y.getPropertyValue("padding-left")),_=parseInt(y.getPropertyValue("padding-top"));return[f.clientX-g.left-m,f.clientY-g.top-_]}Object.defineProperty(s,"__esModule",{value:!0}),s.getCoords=s.getCoordsRelativeToElement=void 0,s.getCoordsRelativeToElement=l,s.getCoords=function(o,f,u,g,y,m,_,h,d){if(!m)return;const p=l(o,f,u);return p?(p[0]=Math.ceil((p[0]+(d?_/2:0))/_),p[1]=Math.ceil(p[1]/h),p[0]=Math.min(Math.max(p[0],1),g+(d?1:0)),p[1]=Math.min(Math.max(p[1],1),y),p):void 0}},9504:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.moveToCellSequence=void 0;const o=l(2584);function f(h,d,p,v){const S=h-u(h,p),C=d-u(d,p),b=Math.abs(S-C)-function(w,E,x){let R=0;const D=w-u(w,x),k=E-u(E,x);for(let O=0;O<Math.abs(D-k);O++){const $=g(w,E)==="A"?-1:1,W=x.buffer.lines.get(D+$*O);W!=null&&W.isWrapped&&R++}return R}(h,d,p);return _(b,m(g(h,d),v))}function u(h,d){let p=0,v=d.buffer.lines.get(h),S=v==null?void 0:v.isWrapped;for(;S&&h>=0&&h<d.rows;)p++,v=d.buffer.lines.get(--h),S=v==null?void 0:v.isWrapped;return p}function g(h,d){return h>d?"A":"B"}function y(h,d,p,v,S,C){let b=h,w=d,E="";for(;b!==p||w!==v;)b+=S?1:-1,S&&b>C.cols-1?(E+=C.buffer.translateBufferLineToString(w,!1,h,b),b=0,h=0,w++):!S&&b<0&&(E+=C.buffer.translateBufferLineToString(w,!1,0,h+1),b=C.cols-1,h=b,w--);return E+C.buffer.translateBufferLineToString(w,!1,h,b)}function m(h,d){const p=d?"O":"[";return o.C0.ESC+p+h}function _(h,d){h=Math.floor(h);let p="";for(let v=0;v<h;v++)p+=d;return p}s.moveToCellSequence=function(h,d,p,v){const S=p.buffer.x,C=p.buffer.y;if(!p.buffer.hasScrollback)return function(E,x,R,D,k,O){return f(x,D,k,O).length===0?"":_(y(E,x,E,x-u(x,k),!1,k).length,m("D",O))}(S,C,0,d,p,v)+f(C,d,p,v)+function(E,x,R,D,k,O){let $;$=f(x,D,k,O).length>0?D-u(D,k):x;const W=D,q=function(V,L,N,P,U,Y){let ee;return ee=f(N,P,U,Y).length>0?P-u(P,U):L,V<N&&ee<=P||V>=N&&ee<P?"C":"D"}(E,x,R,D,k,O);return _(y(E,$,R,W,q==="C",k).length,m(q,O))}(S,C,h,d,p,v);let b;if(C===d)return b=S>h?"D":"C",_(Math.abs(S-h),m(b,v));b=C>d?"D":"C";const w=Math.abs(C-d);return _(function(E,x){return x.cols-E}(C>d?h:S,p)+(w-1)*p.cols+1+((C>d?S:h)-1),m(b,v))}},1296:function(a,s,l){var o=this&&this.__decorate||function(k,O,$,W){var q,V=arguments.length,L=V<3?O:W===null?W=Object.getOwnPropertyDescriptor(O,$):W;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")L=Reflect.decorate(k,O,$,W);else for(var N=k.length-1;N>=0;N--)(q=k[N])&&(L=(V<3?q(L):V>3?q(O,$,L):q(O,$))||L);return V>3&&L&&Object.defineProperty(O,$,L),L},f=this&&this.__param||function(k,O){return function($,W){O($,W,k)}};Object.defineProperty(s,"__esModule",{value:!0}),s.DomRenderer=void 0;const u=l(3787),g=l(2550),y=l(2223),m=l(6171),_=l(4725),h=l(8055),d=l(8460),p=l(844),v=l(2585),S="xterm-dom-renderer-owner-",C="xterm-rows",b="xterm-fg-",w="xterm-bg-",E="xterm-focus",x="xterm-selection";let R=1,D=s.DomRenderer=class extends p.Disposable{constructor(k,O,$,W,q,V,L,N,P,U){super(),this._element=k,this._screenElement=O,this._viewportElement=$,this._linkifier2=W,this._charSizeService=V,this._optionsService=L,this._bufferService=N,this._coreBrowserService=P,this._themeService=U,this._terminalClass=R++,this._rowElements=[],this.onRequestRedraw=this.register(new d.EventEmitter).event,this._rowContainer=document.createElement("div"),this._rowContainer.classList.add(C),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(x),this._selectionContainer.setAttribute("aria-hidden","true"),this.dimensions=(0,m.createRenderDimensions)(),this._updateDimensions(),this.register(this._optionsService.onOptionChange(()=>this._handleOptionsChanged())),this.register(this._themeService.onChangeColors(Y=>this._injectCss(Y))),this._injectCss(this._themeService.colors),this._rowFactory=q.createInstance(u.DomRendererRowFactory,document),this._element.classList.add(S+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this.register(this._linkifier2.onShowLinkUnderline(Y=>this._handleLinkHover(Y))),this.register(this._linkifier2.onHideLinkUnderline(Y=>this._handleLinkLeave(Y))),this.register((0,p.toDisposable)(()=>{this._element.classList.remove(S+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()})),this._widthCache=new g.WidthCache(document),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){const k=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*k,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*k),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/k),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/k),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 $ of this._rowElements)$.style.width=`${this.dimensions.css.canvas.width}px`,$.style.height=`${this.dimensions.css.cell.height}px`,$.style.lineHeight=`${this.dimensions.css.cell.height}px`,$.style.overflow="hidden";this._dimensionsStyleElement||(this._dimensionsStyleElement=document.createElement("style"),this._screenElement.appendChild(this._dimensionsStyleElement));const O=`${this._terminalSelector} .${C} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=O,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(k){this._themeStyleElement||(this._themeStyleElement=document.createElement("style"),this._screenElement.appendChild(this._themeStyleElement));let O=`${this._terminalSelector} .${C} { color: ${k.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;O+=`${this._terminalSelector} .${C} .xterm-dim { color: ${h.color.multiplyOpacity(k.foreground,.5).css};}`,O+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`,O+="@keyframes blink_box_shadow_"+this._terminalClass+" { 50% { border-bottom-style: hidden; }}",O+="@keyframes blink_block_"+this._terminalClass+` { 0% { background-color: ${k.cursor.css}; color: ${k.cursorAccent.css}; } 50% { background-color: inherit; color: ${k.cursor.css}; }}`,O+=`${this._terminalSelector} .${C}.${E} .xterm-cursor.xterm-cursor-blink:not(.xterm-cursor-block) { animation: blink_box_shadow_`+this._terminalClass+` 1s step-end infinite;}${this._terminalSelector} .${C}.${E} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: blink_block_`+this._terminalClass+` 1s step-end infinite;}${this._terminalSelector} .${C} .xterm-cursor.xterm-cursor-block { background-color: ${k.cursor.css}; color: ${k.cursorAccent.css};}${this._terminalSelector} .${C} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${k.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${C} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${k.cursor.css} inset;}${this._terminalSelector} .${C} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${k.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,O+=`${this._terminalSelector} .${x} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${x} div { position: absolute; background-color: ${k.selectionBackgroundOpaque.css};}${this._terminalSelector} .${x} div { position: absolute; background-color: ${k.selectionInactiveBackgroundOpaque.css};}`;for(const[$,W]of k.ansi.entries())O+=`${this._terminalSelector} .${b}${$} { color: ${W.css}; }${this._terminalSelector} .${b}${$}.xterm-dim { color: ${h.color.multiplyOpacity(W,.5).css}; }${this._terminalSelector} .${w}${$} { background-color: ${W.css}; }`;O+=`${this._terminalSelector} .${b}${y.INVERTED_DEFAULT_COLOR} { color: ${h.color.opaque(k.background).css}; }${this._terminalSelector} .${b}${y.INVERTED_DEFAULT_COLOR}.xterm-dim { color: ${h.color.multiplyOpacity(h.color.opaque(k.background),.5).css}; }${this._terminalSelector} .${w}${y.INVERTED_DEFAULT_COLOR} { background-color: ${k.foreground.css}; }`,this._themeStyleElement.textContent=O}_setDefaultSpacing(){const k=this.dimensions.css.cell.width-this._widthCache.get("W",!1,!1);this._rowContainer.style.letterSpacing=`${k}px`,this._rowFactory.defaultSpacing=k}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(k,O){for(let $=this._rowElements.length;$<=O;$++){const W=document.createElement("div");this._rowContainer.appendChild(W),this._rowElements.push(W)}for(;this._rowElements.length>O;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(k,O){this._refreshRowElements(k,O),this._updateDimensions()}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(E)}handleFocus(){this._rowContainer.classList.add(E),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(k,O,$){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(k,O,$),this.renderRows(0,this._bufferService.rows-1),!k||!O)return;const W=k[1]-this._bufferService.buffer.ydisp,q=O[1]-this._bufferService.buffer.ydisp,V=Math.max(W,0),L=Math.min(q,this._bufferService.rows-1);if(V>=this._bufferService.rows||L<0)return;const N=document.createDocumentFragment();if($){const P=k[0]>O[0];N.appendChild(this._createSelectionElement(V,P?O[0]:k[0],P?k[0]:O[0],L-V+1))}else{const P=W===V?k[0]:0,U=V===q?O[0]:this._bufferService.cols;N.appendChild(this._createSelectionElement(V,P,U));const Y=L-V-1;if(N.appendChild(this._createSelectionElement(V+1,0,this._bufferService.cols,Y)),V!==L){const ee=q===L?O[0]:this._bufferService.cols;N.appendChild(this._createSelectionElement(L,0,ee))}}this._selectionContainer.appendChild(N)}_createSelectionElement(k,O,$,W=1){const q=document.createElement("div");return q.style.height=W*this.dimensions.css.cell.height+"px",q.style.top=k*this.dimensions.css.cell.height+"px",q.style.left=O*this.dimensions.css.cell.width+"px",q.style.width=this.dimensions.css.cell.width*($-O)+"px",q}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(const k of this._rowElements)k.replaceChildren()}renderRows(k,O){const $=this._bufferService.buffer,W=$.ybase+$.y,q=Math.min($.x,this._bufferService.cols-1),V=this._optionsService.rawOptions.cursorBlink,L=this._optionsService.rawOptions.cursorStyle,N=this._optionsService.rawOptions.cursorInactiveStyle;for(let P=k;P<=O;P++){const U=P+$.ydisp,Y=this._rowElements[P],ee=$.lines.get(U);if(!Y||!ee)break;Y.replaceChildren(...this._rowFactory.createRow(ee,U,U===W,L,N,q,V,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${S}${this._terminalClass}`}_handleLinkHover(k){this._setCellUnderline(k.x1,k.x2,k.y1,k.y2,k.cols,!0)}_handleLinkLeave(k){this._setCellUnderline(k.x1,k.x2,k.y1,k.y2,k.cols,!1)}_setCellUnderline(k,O,$,W,q,V){$<0&&(k=0),W<0&&(O=0);const L=this._bufferService.rows-1;$=Math.max(Math.min($,L),0),W=Math.max(Math.min(W,L),0),q=Math.min(q,this._bufferService.cols);const N=this._bufferService.buffer,P=N.ybase+N.y,U=Math.min(N.x,q-1),Y=this._optionsService.rawOptions.cursorBlink,ee=this._optionsService.rawOptions.cursorStyle,le=this._optionsService.rawOptions.cursorInactiveStyle;for(let se=$;se<=W;++se){const ge=se+N.ydisp,I=this._rowElements[se],K=N.lines.get(ge);if(!I||!K)break;I.replaceChildren(...this._rowFactory.createRow(K,ge,ge===P,ee,le,U,Y,this.dimensions.css.cell.width,this._widthCache,V?se===$?k:0:-1,V?(se===W?O:q)-1:-1))}}};s.DomRenderer=D=o([f(4,v.IInstantiationService),f(5,_.ICharSizeService),f(6,v.IOptionsService),f(7,v.IBufferService),f(8,_.ICoreBrowserService),f(9,_.IThemeService)],D)},3787:function(a,s,l){var o=this&&this.__decorate||function(b,w,E,x){var R,D=arguments.length,k=D<3?w:x===null?x=Object.getOwnPropertyDescriptor(w,E):x;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")k=Reflect.decorate(b,w,E,x);else for(var O=b.length-1;O>=0;O--)(R=b[O])&&(k=(D<3?R(k):D>3?R(w,E,k):R(w,E))||k);return D>3&&k&&Object.defineProperty(w,E,k),k},f=this&&this.__param||function(b,w){return function(E,x){w(E,x,b)}};Object.defineProperty(s,"__esModule",{value:!0}),s.DomRendererRowFactory=void 0;const u=l(2223),g=l(643),y=l(511),m=l(2585),_=l(8055),h=l(4725),d=l(4269),p=l(6171),v=l(3734);let S=s.DomRendererRowFactory=class{constructor(b,w,E,x,R,D,k){this._document=b,this._characterJoinerService=w,this._optionsService=E,this._coreBrowserService=x,this._coreService=R,this._decorationService=D,this._themeService=k,this._workCell=new y.CellData,this._columnSelectMode=!1,this.defaultSpacing=0}handleSelectionChanged(b,w,E){this._selectionStart=b,this._selectionEnd=w,this._columnSelectMode=E}createRow(b,w,E,x,R,D,k,O,$,W,q){const V=[],L=this._characterJoinerService.getJoinedCharacters(w),N=this._themeService.colors;let P,U=b.getNoBgTrimmedLength();E&&U<D+1&&(U=D+1);let Y=0,ee="",le=0,se=0,ge=0,I=!1,K=0,G=!1,j=0;const ce=[],re=W!==-1&&q!==-1;for(let de=0;de<U;de++){b.loadCell(de,this._workCell);let xe=this._workCell.getWidth();if(xe===0)continue;let Ae=!1,lr=de,Ce=this._workCell;if(L.length>0&&de===L[0][0]){Ae=!0;const Oe=L.shift();Ce=new d.JoinedCellData(this._workCell,b.translateToString(!0,Oe[0],Oe[1]),Oe[1]-Oe[0]),lr=Oe[1]-1,xe=Ce.getWidth()}const Cr=this._isCellInSelection(de,w),$i=E&&de===D,ji=re&&de>=W&&de<=q;let Gi=!1;this._decorationService.forEachDecorationAtCell(de,w,void 0,Oe=>{Gi=!0});let ei=Ce.getChars()||g.WHITESPACE_CELL_CHAR;if(ei===" "&&(Ce.isUnderline()||Ce.isOverline())&&(ei=" "),j=xe*O-$.get(ei,Ce.isBold(),Ce.isItalic()),P){if(Y&&(Cr&&G||!Cr&&!G&&Ce.bg===le)&&(Cr&&G&&N.selectionForeground||Ce.fg===se)&&Ce.extended.ext===ge&&ji===I&&j===K&&!$i&&!Ae&&!Gi){ee+=ei,Y++;continue}Y&&(P.textContent=ee),P=this._document.createElement("span"),Y=0,ee=""}else P=this._document.createElement("span");if(le=Ce.bg,se=Ce.fg,ge=Ce.extended.ext,I=ji,K=j,G=Cr,Ae&&D>=de&&D<=lr&&(D=de),!this._coreService.isCursorHidden&&$i){if(ce.push("xterm-cursor"),this._coreBrowserService.isFocused)k&&ce.push("xterm-cursor-blink"),ce.push(x==="bar"?"xterm-cursor-bar":x==="underline"?"xterm-cursor-underline":"xterm-cursor-block");else if(R)switch(R){case"outline":ce.push("xterm-cursor-outline");break;case"block":ce.push("xterm-cursor-block");break;case"bar":ce.push("xterm-cursor-bar");break;case"underline":ce.push("xterm-cursor-underline")}}if(Ce.isBold()&&ce.push("xterm-bold"),Ce.isItalic()&&ce.push("xterm-italic"),Ce.isDim()&&ce.push("xterm-dim"),ee=Ce.isInvisible()?g.WHITESPACE_CELL_CHAR:Ce.getChars()||g.WHITESPACE_CELL_CHAR,Ce.isUnderline()&&(ce.push(`xterm-underline-${Ce.extended.underlineStyle}`),ee===" "&&(ee=" "),!Ce.isUnderlineColorDefault()))if(Ce.isUnderlineColorRGB())P.style.textDecorationColor=`rgb(${v.AttributeData.toColorRGB(Ce.getUnderlineColor()).join(",")})`;else{let Oe=Ce.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&Ce.isBold()&&Oe<8&&(Oe+=8),P.style.textDecorationColor=N.ansi[Oe].css}Ce.isOverline()&&(ce.push("xterm-overline"),ee===" "&&(ee=" ")),Ce.isStrikethrough()&&ce.push("xterm-strikethrough"),ji&&(P.style.textDecoration="underline");let lt=Ce.getFgColor(),Er=Ce.getFgColorMode(),St=Ce.getBgColor(),br=Ce.getBgColorMode();const Qi=!!Ce.isInverse();if(Qi){const Oe=lt;lt=St,St=Oe;const Ec=Er;Er=br,br=Ec}let Ot,Yi,Mt,xr=!1;switch(this._decorationService.forEachDecorationAtCell(de,w,void 0,Oe=>{Oe.options.layer!=="top"&&xr||(Oe.backgroundColorRGB&&(br=50331648,St=Oe.backgroundColorRGB.rgba>>8&16777215,Ot=Oe.backgroundColorRGB),Oe.foregroundColorRGB&&(Er=50331648,lt=Oe.foregroundColorRGB.rgba>>8&16777215,Yi=Oe.foregroundColorRGB),xr=Oe.options.layer==="top")}),!xr&&Cr&&(Ot=this._coreBrowserService.isFocused?N.selectionBackgroundOpaque:N.selectionInactiveBackgroundOpaque,St=Ot.rgba>>8&16777215,br=50331648,xr=!0,N.selectionForeground&&(Er=50331648,lt=N.selectionForeground.rgba>>8&16777215,Yi=N.selectionForeground)),xr&&ce.push("xterm-decoration-top"),br){case 16777216:case 33554432:Mt=N.ansi[St],ce.push(`xterm-bg-${St}`);break;case 50331648:Mt=_.rgba.toColor(St>>16,St>>8&255,255&St),this._addStyle(P,`background-color:#${C((St>>>0).toString(16),"0",6)}`);break;default:Qi?(Mt=N.foreground,ce.push(`xterm-bg-${u.INVERTED_DEFAULT_COLOR}`)):Mt=N.background}switch(Ot||Ce.isDim()&&(Ot=_.color.multiplyOpacity(Mt,.5)),Er){case 16777216:case 33554432:Ce.isBold()&<<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(lt+=8),this._applyMinimumContrast(P,Mt,N.ansi[lt],Ce,Ot,void 0)||ce.push(`xterm-fg-${lt}`);break;case 50331648:const Oe=_.rgba.toColor(lt>>16&255,lt>>8&255,255<);this._applyMinimumContrast(P,Mt,Oe,Ce,Ot,Yi)||this._addStyle(P,`color:#${C(lt.toString(16),"0",6)}`);break;default:this._applyMinimumContrast(P,Mt,N.foreground,Ce,Ot,void 0)||Qi&&ce.push(`xterm-fg-${u.INVERTED_DEFAULT_COLOR}`)}ce.length&&(P.className=ce.join(" "),ce.length=0),$i||Ae||Gi?P.textContent=ee:Y++,j!==this.defaultSpacing&&(P.style.letterSpacing=`${j}px`),V.push(P),de=lr}return P&&Y&&(P.textContent=ee),V}_applyMinimumContrast(b,w,E,x,R,D){if(this._optionsService.rawOptions.minimumContrastRatio===1||(0,p.excludeFromContrastRatioDemands)(x.getCode()))return!1;const k=this._getContrastCache(x);let O;if(R||D||(O=k.getColor(w.rgba,E.rgba)),O===void 0){const $=this._optionsService.rawOptions.minimumContrastRatio/(x.isDim()?2:1);O=_.color.ensureContrastRatio(R||w,D||E,$),k.setColor((R||w).rgba,(D||E).rgba,O!=null?O:null)}return!!O&&(this._addStyle(b,`color:${O.css}`),!0)}_getContrastCache(b){return b.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(b,w){b.setAttribute("style",`${b.getAttribute("style")||""}${w};`)}_isCellInSelection(b,w){const E=this._selectionStart,x=this._selectionEnd;return!(!E||!x)&&(this._columnSelectMode?E[0]<=x[0]?b>=E[0]&&w>=E[1]&&b<x[0]&&w<=x[1]:b<E[0]&&w>=E[1]&&b>=x[0]&&w<=x[1]:w>E[1]&&w<x[1]||E[1]===x[1]&&w===E[1]&&b>=E[0]&&b<x[0]||E[1]<x[1]&&w===x[1]&&b<x[0]||E[1]<x[1]&&w===E[1]&&b>=E[0])}};function C(b,w,E){for(;b.length<E;)b=w+b;return b}s.DomRendererRowFactory=S=o([f(1,h.ICharacterJoinerService),f(2,m.IOptionsService),f(3,h.ICoreBrowserService),f(4,m.ICoreService),f(5,m.IDecorationService),f(6,h.IThemeService)],S)},2550:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.WidthCache=void 0,s.WidthCache=class{constructor(l){this._flat=new Float32Array(256),this._font="",this._fontSize=0,this._weight="normal",this._weightBold="bold",this._measureElements=[],this._container=l.createElement("div"),this._container.style.position="absolute",this._container.style.top="-50000px",this._container.style.width="50000px",this._container.style.whiteSpace="pre",this._container.style.fontKerning="none";const o=l.createElement("span"),f=l.createElement("span");f.style.fontWeight="bold";const u=l.createElement("span");u.style.fontStyle="italic";const g=l.createElement("span");g.style.fontWeight="bold",g.style.fontStyle="italic",this._measureElements=[o,f,u,g],this._container.appendChild(o),this._container.appendChild(f),this._container.appendChild(u),this._container.appendChild(g),l.body.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(l,o,f,u){l===this._font&&o===this._fontSize&&f===this._weight&&u===this._weightBold||(this._font=l,this._fontSize=o,this._weight=f,this._weightBold=u,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${f}`,this._measureElements[1].style.fontWeight=`${u}`,this._measureElements[2].style.fontWeight=`${f}`,this._measureElements[3].style.fontWeight=`${u}`,this.clear())}get(l,o,f){let u=0;if(!o&&!f&&l.length===1&&(u=l.charCodeAt(0))<256)return this._flat[u]!==-9999?this._flat[u]:this._flat[u]=this._measure(l,0);let g=l;o&&(g+="B"),f&&(g+="I");let y=this._holey.get(g);if(y===void 0){let m=0;o&&(m|=1),f&&(m|=2),y=this._measure(l,m),this._holey.set(g,y)}return y}_measure(l,o){const f=this._measureElements[o];return f.textContent=l.repeat(32),f.offsetWidth/32}}},2223:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.TEXT_BASELINE=s.DIM_OPACITY=s.INVERTED_DEFAULT_COLOR=void 0;const o=l(6114);s.INVERTED_DEFAULT_COLOR=257,s.DIM_OPACITY=.5,s.TEXT_BASELINE=o.isFirefox||o.isLegacyEdge?"bottom":"ideographic"},6171:(a,s)=>{function l(o){return 57508<=o&&o<=57558}Object.defineProperty(s,"__esModule",{value:!0}),s.createRenderDimensions=s.excludeFromContrastRatioDemands=s.isRestrictedPowerlineGlyph=s.isPowerlineGlyph=s.throwIfFalsy=void 0,s.throwIfFalsy=function(o){if(!o)throw new Error("value must not be falsy");return o},s.isPowerlineGlyph=l,s.isRestrictedPowerlineGlyph=function(o){return 57520<=o&&o<=57527},s.excludeFromContrastRatioDemands=function(o){return l(o)||function(f){return 9472<=f&&f<=9631}(o)},s.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:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.SelectionModel=void 0,s.SelectionModel=class{constructor(l){this._bufferService=l,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 l=this.selectionStart[0]+this.selectionStartLength;return l>this._bufferService.cols?l%this._bufferService.cols==0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(l/this._bufferService.cols)-1]:[l%this._bufferService.cols,this.selectionStart[1]+Math.floor(l/this._bufferService.cols)]:[l,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){const l=this.selectionStart[0]+this.selectionStartLength;return l>this._bufferService.cols?[l%this._bufferService.cols,this.selectionStart[1]+Math.floor(l/this._bufferService.cols)]:[Math.max(l,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){const l=this.selectionStart,o=this.selectionEnd;return!(!l||!o)&&(l[1]>o[1]||l[1]===o[1]&&l[0]>o[0])}handleTrim(l){return this.selectionStart&&(this.selectionStart[1]-=l),this.selectionEnd&&(this.selectionEnd[1]-=l),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}}},428:function(a,s,l){var o=this&&this.__decorate||function(h,d,p,v){var S,C=arguments.length,b=C<3?d:v===null?v=Object.getOwnPropertyDescriptor(d,p):v;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,d,p,v);else for(var w=h.length-1;w>=0;w--)(S=h[w])&&(b=(C<3?S(b):C>3?S(d,p,b):S(d,p))||b);return C>3&&b&&Object.defineProperty(d,p,b),b},f=this&&this.__param||function(h,d){return function(p,v){d(p,v,h)}};Object.defineProperty(s,"__esModule",{value:!0}),s.CharSizeService=void 0;const u=l(2585),g=l(8460),y=l(844);let m=s.CharSizeService=class extends y.Disposable{get hasValidSize(){return this.width>0&&this.height>0}constructor(h,d,p){super(),this._optionsService=p,this.width=0,this.height=0,this._onCharSizeChange=this.register(new g.EventEmitter),this.onCharSizeChange=this._onCharSizeChange.event,this._measureStrategy=new _(h,d,this._optionsService),this.register(this._optionsService.onMultipleOptionChange(["fontFamily","fontSize"],()=>this.measure()))}measure(){const h=this._measureStrategy.measure();h.width===this.width&&h.height===this.height||(this.width=h.width,this.height=h.height,this._onCharSizeChange.fire())}};s.CharSizeService=m=o([f(2,u.IOptionsService)],m);class _{constructor(d,p,v){this._document=d,this._parentElement=p,this._optionsService=v,this._result={width:0,height:0},this._measureElement=this._document.createElement("span"),this._measureElement.classList.add("xterm-char-measure-element"),this._measureElement.textContent="W".repeat(32),this._measureElement.setAttribute("aria-hidden","true"),this._measureElement.style.whiteSpace="pre",this._measureElement.style.fontKerning="none",this._parentElement.appendChild(this._measureElement)}measure(){this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`;const d={height:Number(this._measureElement.offsetHeight),width:Number(this._measureElement.offsetWidth)};return d.width!==0&&d.height!==0&&(this._result.width=d.width/32,this._result.height=Math.ceil(d.height)),this._result}}},4269:function(a,s,l){var o=this&&this.__decorate||function(d,p,v,S){var C,b=arguments.length,w=b<3?p:S===null?S=Object.getOwnPropertyDescriptor(p,v):S;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")w=Reflect.decorate(d,p,v,S);else for(var E=d.length-1;E>=0;E--)(C=d[E])&&(w=(b<3?C(w):b>3?C(p,v,w):C(p,v))||w);return b>3&&w&&Object.defineProperty(p,v,w),w},f=this&&this.__param||function(d,p){return function(v,S){p(v,S,d)}};Object.defineProperty(s,"__esModule",{value:!0}),s.CharacterJoinerService=s.JoinedCellData=void 0;const u=l(3734),g=l(643),y=l(511),m=l(2585);class _ extends u.AttributeData{constructor(p,v,S){super(),this.content=0,this.combinedData="",this.fg=p.fg,this.bg=p.bg,this.combinedData=v,this._width=S}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(p){throw new Error("not implemented")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}s.JoinedCellData=_;let h=s.CharacterJoinerService=class xn{constructor(p){this._bufferService=p,this._characterJoiners=[],this._nextCharacterJoinerId=0,this._workCell=new y.CellData}register(p){const v={id:this._nextCharacterJoinerId++,handler:p};return this._characterJoiners.push(v),v.id}deregister(p){for(let v=0;v<this._characterJoiners.length;v++)if(this._characterJoiners[v].id===p)return this._characterJoiners.splice(v,1),!0;return!1}getJoinedCharacters(p){if(this._characterJoiners.length===0)return[];const v=this._bufferService.buffer.lines.get(p);if(!v||v.length===0)return[];const S=[],C=v.translateToString(!0);let b=0,w=0,E=0,x=v.getFg(0),R=v.getBg(0);for(let D=0;D<v.getTrimmedLength();D++)if(v.loadCell(D,this._workCell),this._workCell.getWidth()!==0){if(this._workCell.fg!==x||this._workCell.bg!==R){if(D-b>1){const k=this._getJoinedRanges(C,E,w,v,b);for(let O=0;O<k.length;O++)S.push(k[O])}b=D,E=w,x=this._workCell.fg,R=this._workCell.bg}w+=this._workCell.getChars().length||g.WHITESPACE_CELL_CHAR.length}if(this._bufferService.cols-b>1){const D=this._getJoinedRanges(C,E,w,v,b);for(let k=0;k<D.length;k++)S.push(D[k])}return S}_getJoinedRanges(p,v,S,C,b){const w=p.substring(v,S);let E=[];try{E=this._characterJoiners[0].handler(w)}catch(x){console.error(x)}for(let x=1;x<this._characterJoiners.length;x++)try{const R=this._characterJoiners[x].handler(w);for(let D=0;D<R.length;D++)xn._mergeRanges(E,R[D])}catch(R){console.error(R)}return this._stringRangesToCellRanges(E,C,b),E}_stringRangesToCellRanges(p,v,S){let C=0,b=!1,w=0,E=p[C];if(E){for(let x=S;x<this._bufferService.cols;x++){const R=v.getWidth(x),D=v.getString(x).length||g.WHITESPACE_CELL_CHAR.length;if(R!==0){if(!b&&E[0]<=w&&(E[0]=x,b=!0),E[1]<=w){if(E[1]=x,E=p[++C],!E)break;E[0]<=w?(E[0]=x,b=!0):b=!1}w+=D}}E&&(E[1]=this._bufferService.cols)}}static _mergeRanges(p,v){let S=!1;for(let C=0;C<p.length;C++){const b=p[C];if(S){if(v[1]<=b[0])return p[C-1][1]=v[1],p;if(v[1]<=b[1])return p[C-1][1]=Math.max(v[1],b[1]),p.splice(C,1),p;p.splice(C,1),C--}else{if(v[1]<=b[0])return p.splice(C,0,v),p;if(v[1]<=b[1])return b[0]=Math.min(v[0],b[0]),p;v[0]<b[1]&&(b[0]=Math.min(v[0],b[0]),S=!0)}}return S?p[p.length-1][1]=v[1]:p.push(v),p}};s.CharacterJoinerService=h=o([f(0,m.IBufferService)],h)},5114:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.CoreBrowserService=void 0,s.CoreBrowserService=class{constructor(l,o){this._textarea=l,this.window=o,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 this._cachedIsFocused===void 0&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask(()=>this._cachedIsFocused=void 0)),this._cachedIsFocused}}},8934:function(a,s,l){var o=this&&this.__decorate||function(m,_,h,d){var p,v=arguments.length,S=v<3?_:d===null?d=Object.getOwnPropertyDescriptor(_,h):d;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")S=Reflect.decorate(m,_,h,d);else for(var C=m.length-1;C>=0;C--)(p=m[C])&&(S=(v<3?p(S):v>3?p(_,h,S):p(_,h))||S);return v>3&&S&&Object.defineProperty(_,h,S),S},f=this&&this.__param||function(m,_){return function(h,d){_(h,d,m)}};Object.defineProperty(s,"__esModule",{value:!0}),s.MouseService=void 0;const u=l(4725),g=l(9806);let y=s.MouseService=class{constructor(m,_){this._renderService=m,this._charSizeService=_}getCoords(m,_,h,d,p){return(0,g.getCoords)(window,m,_,h,d,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,p)}getMouseReportCoords(m,_){const h=(0,g.getCoordsRelativeToElement)(window,m,_);if(this._charSizeService.hasValidSize)return h[0]=Math.min(Math.max(h[0],0),this._renderService.dimensions.css.canvas.width-1),h[1]=Math.min(Math.max(h[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(h[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(h[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(h[0]),y:Math.floor(h[1])}}};s.MouseService=y=o([f(0,u.IRenderService),f(1,u.ICharSizeService)],y)},3230:function(a,s,l){var o=this&&this.__decorate||function(S,C,b,w){var E,x=arguments.length,R=x<3?C:w===null?w=Object.getOwnPropertyDescriptor(C,b):w;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")R=Reflect.decorate(S,C,b,w);else for(var D=S.length-1;D>=0;D--)(E=S[D])&&(R=(x<3?E(R):x>3?E(C,b,R):E(C,b))||R);return x>3&&R&&Object.defineProperty(C,b,R),R},f=this&&this.__param||function(S,C){return function(b,w){C(b,w,S)}};Object.defineProperty(s,"__esModule",{value:!0}),s.RenderService=void 0;const u=l(3656),g=l(6193),y=l(5596),m=l(4725),_=l(8460),h=l(844),d=l(7226),p=l(2585);let v=s.RenderService=class extends h.Disposable{get dimensions(){return this._renderer.value.dimensions}constructor(S,C,b,w,E,x,R,D){if(super(),this._rowCount=S,this._charSizeService=w,this._renderer=this.register(new h.MutableDisposable),this._pausedResizeTask=new d.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 _.EventEmitter),this.onDimensionsChange=this._onDimensionsChange.event,this._onRenderedViewportChange=this.register(new _.EventEmitter),this.onRenderedViewportChange=this._onRenderedViewportChange.event,this._onRender=this.register(new _.EventEmitter),this.onRender=this._onRender.event,this._onRefreshRequest=this.register(new _.EventEmitter),this.onRefreshRequest=this._onRefreshRequest.event,this._renderDebouncer=new g.RenderDebouncer(R.window,(k,O)=>this._renderRows(k,O)),this.register(this._renderDebouncer),this._screenDprMonitor=new y.ScreenDprMonitor(R.window),this._screenDprMonitor.setListener(()=>this.handleDevicePixelRatioChange()),this.register(this._screenDprMonitor),this.register(x.onResize(()=>this._fullRefresh())),this.register(x.buffers.onBufferActivate(()=>{var k;return(k=this._renderer.value)===null||k===void 0?void 0:k.clear()})),this.register(b.onOptionChange(()=>this._handleOptionsChanged())),this.register(this._charSizeService.onCharSizeChange(()=>this.handleCharSizeChanged())),this.register(E.onDecorationRegistered(()=>this._fullRefresh())),this.register(E.onDecorationRemoved(()=>this._fullRefresh())),this.register(b.onMultipleOptionChange(["customGlyphs","drawBoldTextInBrightColors","letterSpacing","lineHeight","fontFamily","fontSize","fontWeight","fontWeightBold","minimumContrastRatio"],()=>{this.clear(),this.handleResize(x.cols,x.rows),this._fullRefresh()})),this.register(b.onMultipleOptionChange(["cursorBlink","cursorStyle"],()=>this.refreshRows(x.buffer.y,x.buffer.y,!0))),this.register((0,u.addDisposableDomListener)(R.window,"resize",()=>this.handleDevicePixelRatioChange())),this.register(D.onChangeColors(()=>this._fullRefresh())),"IntersectionObserver"in R.window){const k=new R.window.IntersectionObserver(O=>this._handleIntersectionChange(O[O.length-1]),{threshold:0});k.observe(C),this.register({dispose:()=>k.disconnect()})}}_handleIntersectionChange(S){this._isPaused=S.isIntersecting===void 0?S.intersectionRatio===0:!S.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(S,C,b=!1){this._isPaused?this._needsFullRefresh=!0:(b||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(S,C,this._rowCount))}_renderRows(S,C){this._renderer.value&&(S=Math.min(S,this._rowCount-1),C=Math.min(C,this._rowCount-1),this._renderer.value.renderRows(S,C),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:S,end:C}),this._onRender.fire({start:S,end:C}),this._isNextRenderRedrawOnly=!0)}resize(S,C){this._rowCount=C,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(S){this._renderer.value=S,this._renderer.value.onRequestRedraw(C=>this.refreshRows(C.start,C.end,!0)),this._needsSelectionRefresh=!0,this._fullRefresh()}addRefreshCallback(S){return this._renderDebouncer.addRefreshCallback(S)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){var S,C;this._renderer.value&&((C=(S=this._renderer.value).clearTextureAtlas)===null||C===void 0||C.call(S),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(S,C){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set(()=>this._renderer.value.handleResize(S,C)):this._renderer.value.handleResize(S,C),this._fullRefresh())}handleCharSizeChanged(){var S;(S=this._renderer.value)===null||S===void 0||S.handleCharSizeChanged()}handleBlur(){var S;(S=this._renderer.value)===null||S===void 0||S.handleBlur()}handleFocus(){var S;(S=this._renderer.value)===null||S===void 0||S.handleFocus()}handleSelectionChanged(S,C,b){var w;this._selectionState.start=S,this._selectionState.end=C,this._selectionState.columnSelectMode=b,(w=this._renderer.value)===null||w===void 0||w.handleSelectionChanged(S,C,b)}handleCursorMove(){var S;(S=this._renderer.value)===null||S===void 0||S.handleCursorMove()}clear(){var S;(S=this._renderer.value)===null||S===void 0||S.clear()}};s.RenderService=v=o([f(2,p.IOptionsService),f(3,m.ICharSizeService),f(4,p.IDecorationService),f(5,p.IBufferService),f(6,m.ICoreBrowserService),f(7,m.IThemeService)],v)},9312:function(a,s,l){var o=this&&this.__decorate||function(E,x,R,D){var k,O=arguments.length,$=O<3?x:D===null?D=Object.getOwnPropertyDescriptor(x,R):D;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")$=Reflect.decorate(E,x,R,D);else for(var W=E.length-1;W>=0;W--)(k=E[W])&&($=(O<3?k($):O>3?k(x,R,$):k(x,R))||$);return O>3&&$&&Object.defineProperty(x,R,$),$},f=this&&this.__param||function(E,x){return function(R,D){x(R,D,E)}};Object.defineProperty(s,"__esModule",{value:!0}),s.SelectionService=void 0;const u=l(9806),g=l(9504),y=l(456),m=l(4725),_=l(8460),h=l(844),d=l(6114),p=l(4841),v=l(511),S=l(2585),C=String.fromCharCode(160),b=new RegExp(C,"g");let w=s.SelectionService=class extends h.Disposable{constructor(E,x,R,D,k,O,$,W,q){super(),this._element=E,this._screenElement=x,this._linkifier=R,this._bufferService=D,this._coreService=k,this._mouseService=O,this._optionsService=$,this._renderService=W,this._coreBrowserService=q,this._dragScrollAmount=0,this._enabled=!0,this._workCell=new v.CellData,this._mouseDownTimeStamp=0,this._oldHasSelection=!1,this._oldSelectionStart=void 0,this._oldSelectionEnd=void 0,this._onLinuxMouseSelection=this.register(new _.EventEmitter),this.onLinuxMouseSelection=this._onLinuxMouseSelection.event,this._onRedrawRequest=this.register(new _.EventEmitter),this.onRequestRedraw=this._onRedrawRequest.event,this._onSelectionChange=this.register(new _.EventEmitter),this.onSelectionChange=this._onSelectionChange.event,this._onRequestScrollLines=this.register(new _.EventEmitter),this.onRequestScrollLines=this._onRequestScrollLines.event,this._mouseMoveListener=V=>this._handleMouseMove(V),this._mouseUpListener=V=>this._handleMouseUp(V),this._coreService.onUserInput(()=>{this.hasSelection&&this.clearSelection()}),this._trimListener=this._bufferService.buffer.lines.onTrim(V=>this._handleTrim(V)),this.register(this._bufferService.buffers.onBufferActivate(V=>this._handleBufferActivate(V))),this.enable(),this._model=new y.SelectionModel(this._bufferService),this._activeSelectionMode=0,this.register((0,h.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,x=this._model.finalSelectionEnd;return!(!E||!x||E[0]===x[0]&&E[1]===x[1])}get selectionText(){const E=this._model.finalSelectionStart,x=this._model.finalSelectionEnd;if(!E||!x)return"";const R=this._bufferService.buffer,D=[];if(this._activeSelectionMode===3){if(E[0]===x[0])return"";const k=E[0]<x[0]?E[0]:x[0],O=E[0]<x[0]?x[0]:E[0];for(let $=E[1];$<=x[1];$++){const W=R.translateBufferLineToString($,!0,k,O);D.push(W)}}else{const k=E[1]===x[1]?x[0]:void 0;D.push(R.translateBufferLineToString(E[1],!0,E[0],k));for(let O=E[1]+1;O<=x[1]-1;O++){const $=R.lines.get(O),W=R.translateBufferLineToString(O,!0);$!=null&&$.isWrapped?D[D.length-1]+=W:D.push(W)}if(E[1]!==x[1]){const O=R.lines.get(x[1]),$=R.translateBufferLineToString(x[1],!0,0,x[0]);O&&O.isWrapped?D[D.length-1]+=$:D.push($)}}return D.map(k=>k.replace(b," ")).join(d.isWindows?`\r
`:`
`)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(E){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh())),d.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:this._activeSelectionMode===3})}_isClickInSelection(E){const x=this._getMouseBufferCoords(E),R=this._model.finalSelectionStart,D=this._model.finalSelectionEnd;return!!(R&&D&&x)&&this._areCoordsInSelection(x,R,D)}isCellInSelection(E,x){const R=this._model.finalSelectionStart,D=this._model.finalSelectionEnd;return!(!R||!D)&&this._areCoordsInSelection([E,x],R,D)}_areCoordsInSelection(E,x,R){return E[1]>x[1]&&E[1]<R[1]||x[1]===R[1]&&E[1]===x[1]&&E[0]>=x[0]&&E[0]<R[0]||x[1]<R[1]&&E[1]===R[1]&&E[0]<R[0]||x[1]<R[1]&&E[1]===x[1]&&E[0]>=x[0]}_selectWordAtCursor(E,x){var R,D;const k=(D=(R=this._linkifier.currentLink)===null||R===void 0?void 0:R.link)===null||D===void 0?void 0:D.range;if(k)return this._model.selectionStart=[k.start.x-1,k.start.y-1],this._model.selectionStartLength=(0,p.getRangeLength)(k,this._bufferService.cols),this._model.selectionEnd=void 0,!0;const O=this._getMouseBufferCoords(E);return!!O&&(this._selectWordAt(O,x),this._model.selectionEnd=void 0,!0)}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(E,x){this._model.clearSelection(),E=Math.max(E,0),x=Math.min(x,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,E],this._model.selectionEnd=[this._bufferService.cols,x],this.refresh(),this._onSelectionChange.fire()}_handleTrim(E){this._model.handleTrim(E)&&this.refresh()}_getMouseBufferCoords(E){const x=this._mouseService.getCoords(E,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(x)return x[0]--,x[1]--,x[1]+=this._bufferService.buffer.ydisp,x}_getMouseEventScrollAmount(E){let x=(0,u.getCoordsRelativeToElement)(this._coreBrowserService.window,E,this._screenElement)[1];const R=this._renderService.dimensions.css.canvas.height;return x>=0&&x<=R?0:(x>R&&(x-=R),x=Math.min(Math.max(x,-50),50),x/=50,x/Math.abs(x)+Math.round(14*x))}shouldForceSelection(E){return d.isMac?E.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:E.shiftKey}handleMouseDown(E){if(this._mouseDownTimeStamp=E.timeStamp,(E.button!==2||!this.hasSelection)&&E.button===0){if(!this._enabled){if(!this.shouldForceSelection(E))return;E.stopPropagation()}E.preventDefault(),this._dragScrollAmount=0,this._enabled&&E.shiftKey?this._handleIncrementalClick(E):E.detail===1?this._handleSingleClick(E):E.detail===2?this._handleDoubleClick(E):E.detail===3&&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 x=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);x&&x.length!==this._model.selectionStart[0]&&x.hasWidth(this._model.selectionStart[0])===0&&this._model.selectionStart[0]++}_handleDoubleClick(E){this._selectWordAtCursor(E,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(E){const x=this._getMouseBufferCoords(E);x&&(this._activeSelectionMode=2,this._selectLineAt(x[1]))}shouldColumnSelect(E){return E.altKey&&!(d.isMac&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(E){if(E.stopImmediatePropagation(),!this._model.selectionStart)return;const x=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);this._activeSelectionMode===2?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:this._activeSelectionMode===1&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(E),this._activeSelectionMode!==3&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));const R=this._bufferService.buffer;if(this._model.selectionEnd[1]<R.lines.length){const D=R.lines.get(this._model.selectionEnd[1]);D&&D.hasWidth(this._model.selectionEnd[0])===0&&this._model.selectionEnd[0]++}x&&x[0]===this._model.selectionEnd[0]&&x[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?(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(E.ydisp+this._bufferService.rows,E.lines.length-1)):(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=E.ydisp),this.refresh()}}_handleMouseUp(E){const x=E.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&x<500&&E.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){const R=this._mouseService.getCoords(E,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(R&&R[0]!==void 0&&R[1]!==void 0){const D=(0,g.moveToCellSequence)(R[0]-1,R[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(D,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){const E=this._model.finalSelectionStart,x=this._model.finalSelectionEnd,R=!(!E||!x||E[0]===x[0]&&E[1]===x[1]);R?E&&x&&(this._oldSelectionStart&&this._oldSelectionEnd&&E[0]===this._oldSelectionStart[0]&&E[1]===this._oldSelectionStart[1]&&x[0]===this._oldSelectionEnd[0]&&x[1]===this._oldSelectionEnd[1]||this._fireOnSelectionChange(E,x,R)):this._oldHasSelection&&this._fireOnSelectionChange(E,x,R)}_fireOnSelectionChange(E,x,R){this._oldSelectionStart=E,this._oldSelectionEnd=x,this._oldHasSelection=R,this._onSelectionChange.fire()}_handleBufferActivate(E){this.clearSelection(),this._trimListener.dispose(),this._trimListener=E.activeBuffer.lines.onTrim(x=>this._handleTrim(x))}_convertViewportColToCharacterIndex(E,x){let R=x;for(let D=0;x>=D;D++){const k=E.loadCell(D,this._workCell).getChars().length;this._workCell.getWidth()===0?R--:k>1&&x!==D&&(R+=k-1)}return R}setSelection(E,x,R){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[E,x],this._model.selectionStartLength=R,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(E){this._isClickInSelection(E)||(this._selectWordAtCursor(E,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(E,x,R=!0,D=!0){if(E[0]>=this._bufferService.cols)return;const k=this._bufferService.buffer,O=k.lines.get(E[1]);if(!O)return;const $=k.translateBufferLineToString(E[1],!1);let W=this._convertViewportColToCharacterIndex(O,E[0]),q=W;const V=E[0]-W;let L=0,N=0,P=0,U=0;if($.charAt(W)===" "){for(;W>0&&$.charAt(W-1)===" ";)W--;for(;q<$.length&&$.charAt(q+1)===" ";)q++}else{let le=E[0],se=E[0];O.getWidth(le)===0&&(L++,le--),O.getWidth(se)===2&&(N++,se++);const ge=O.getString(se).length;for(ge>1&&(U+=ge-1,q+=ge-1);le>0&&W>0&&!this._isCharWordSeparator(O.loadCell(le-1,this._workCell));){O.loadCell(le-1,this._workCell);const I=this._workCell.getChars().length;this._workCell.getWidth()===0?(L++,le--):I>1&&(P+=I-1,W-=I-1),W--,le--}for(;se<O.length&&q+1<$.length&&!this._isCharWordSeparator(O.loadCell(se+1,this._workCell));){O.loadCell(se+1,this._workCell);const I=this._workCell.getChars().length;this._workCell.getWidth()===2?(N++,se++):I>1&&(U+=I-1,q+=I-1),q++,se++}}q++;let Y=W+V-L+P,ee=Math.min(this._bufferService.cols,q-W+L+N-P-U);if(x||$.slice(W,q).trim()!==""){if(R&&Y===0&&O.getCodePoint(0)!==32){const le=k.lines.get(E[1]-1);if(le&&O.isWrapped&&le.getCodePoint(this._bufferService.cols-1)!==32){const se=this._getWordAt([this._bufferService.cols-1,E[1]-1],!1,!0,!1);if(se){const ge=this._bufferService.cols-se.start;Y-=ge,ee+=ge}}}if(D&&Y+ee===this._bufferService.cols&&O.getCodePoint(this._bufferService.cols-1)!==32){const le=k.lines.get(E[1]+1);if(le!=null&&le.isWrapped&&le.getCodePoint(0)!==32){const se=this._getWordAt([0,E[1]+1],!1,!1,!0);se&&(ee+=se.length)}}return{start:Y,length:ee}}}_selectWordAt(E,x){const R=this._getWordAt(E,x);if(R){for(;R.start<0;)R.start+=this._bufferService.cols,E[1]--;this._model.selectionStart=[R.start,E[1]],this._model.selectionStartLength=R.length}}_selectToWordAt(E){const x=this._getWordAt(E,!0);if(x){let R=E[1];for(;x.start<0;)x.start+=this._bufferService.cols,R--;if(!this._model.areSelectionValuesReversed())for(;x.start+x.length>this._bufferService.cols;)x.length-=this._bufferService.cols,R++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?x.start:x.start+x.length,R]}}_isCharWordSeparator(E){return E.getWidth()!==0&&this._optionsService.rawOptions.wordSeparator.indexOf(E.getChars())>=0}_selectLineAt(E){const x=this._bufferService.buffer.getWrappedRangeForLine(E),R={start:{x:0,y:x.first},end:{x:this._bufferService.cols-1,y:x.last}};this._model.selectionStart=[0,x.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=(0,p.getRangeLength)(R,this._bufferService.cols)}};s.SelectionService=w=o([f(3,S.IBufferService),f(4,S.ICoreService),f(5,m.IMouseService),f(6,S.IOptionsService),f(7,m.IRenderService),f(8,m.ICoreBrowserService)],w)},4725:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.IThemeService=s.ICharacterJoinerService=s.ISelectionService=s.IRenderService=s.IMouseService=s.ICoreBrowserService=s.ICharSizeService=void 0;const o=l(8343);s.ICharSizeService=(0,o.createDecorator)("CharSizeService"),s.ICoreBrowserService=(0,o.createDecorator)("CoreBrowserService"),s.IMouseService=(0,o.createDecorator)("MouseService"),s.IRenderService=(0,o.createDecorator)("RenderService"),s.ISelectionService=(0,o.createDecorator)("SelectionService"),s.ICharacterJoinerService=(0,o.createDecorator)("CharacterJoinerService"),s.IThemeService=(0,o.createDecorator)("ThemeService")},6731:function(a,s,l){var o=this&&this.__decorate||function(w,E,x,R){var D,k=arguments.length,O=k<3?E:R===null?R=Object.getOwnPropertyDescriptor(E,x):R;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")O=Reflect.decorate(w,E,x,R);else for(var $=w.length-1;$>=0;$--)(D=w[$])&&(O=(k<3?D(O):k>3?D(E,x,O):D(E,x))||O);return k>3&&O&&Object.defineProperty(E,x,O),O},f=this&&this.__param||function(w,E){return function(x,R){E(x,R,w)}};Object.defineProperty(s,"__esModule",{value:!0}),s.ThemeService=s.DEFAULT_ANSI_COLORS=void 0;const u=l(7239),g=l(8055),y=l(8460),m=l(844),_=l(2585),h=g.css.toColor("#ffffff"),d=g.css.toColor("#000000"),p=g.css.toColor("#ffffff"),v=g.css.toColor("#000000"),S={css:"rgba(255, 255, 255, 0.3)",rgba:4294967117};s.DEFAULT_ANSI_COLORS=Object.freeze((()=>{const w=[g.css.toColor("#2e3436"),g.css.toColor("#cc0000"),g.css.toColor("#4e9a06"),g.css.toColor("#c4a000"),g.css.toColor("#3465a4"),g.css.toColor("#75507b"),g.css.toColor("#06989a"),g.css.toColor("#d3d7cf"),g.css.toColor("#555753"),g.css.toColor("#ef2929"),g.css.toColor("#8ae234"),g.css.toColor("#fce94f"),g.css.toColor("#729fcf"),g.css.toColor("#ad7fa8"),g.css.toColor("#34e2e2"),g.css.toColor("#eeeeec")],E=[0,95,135,175,215,255];for(let x=0;x<216;x++){const R=E[x/36%6|0],D=E[x/6%6|0],k=E[x%6];w.push({css:g.channels.toCss(R,D,k),rgba:g.channels.toRgba(R,D,k)})}for(let x=0;x<24;x++){const R=8+10*x;w.push({css:g.channels.toCss(R,R,R),rgba:g.channels.toRgba(R,R,R)})}return w})());let C=s.ThemeService=class extends m.Disposable{get colors(){return this._colors}constructor(w){super(),this._optionsService=w,this._contrastCache=new u.ColorContrastCache,this._halfContrastCache=new u.ColorContrastCache,this._onChangeColors=this.register(new y.EventEmitter),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:h,background:d,cursor:p,cursorAccent:v,selectionForeground:void 0,selectionBackgroundTransparent:S,selectionBackgroundOpaque:g.color.blend(d,S),selectionInactiveBackgroundTransparent:S,selectionInactiveBackgroundOpaque:g.color.blend(d,S),ansi:s.DEFAULT_ANSI_COLORS.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},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)))}_setTheme(w={}){const E=this._colors;if(E.foreground=b(w.foreground,h),E.background=b(w.background,d),E.cursor=b(w.cursor,p),E.cursorAccent=b(w.cursorAccent,v),E.selectionBackgroundTransparent=b(w.selectionBackground,S),E.selectionBackgroundOpaque=g.color.blend(E.background,E.selectionBackgroundTransparent),E.selectionInactiveBackgroundTransparent=b(w.selectionInactiveBackground,E.selectionBackgroundTransparent),E.selectionInactiveBackgroundOpaque=g.color.blend(E.background,E.selectionInactiveBackgroundTransparent),E.selectionForeground=w.selectionForeground?b(w.selectionForeground,g.NULL_COLOR):void 0,E.selectionForeground===g.NULL_COLOR&&(E.selectionForeground=void 0),g.color.isOpaque(E.selectionBackgroundTransparent)&&(E.selectionBackgroundTransparent=g.color.opacity(E.selectionBackgroundTransparent,.3)),g.color.isOpaque(E.selectionInactiveBackgroundTransparent)&&(E.selectionInactiveBackgroundTransparent=g.color.opacity(E.selectionInactiveBackgroundTransparent,.3)),E.ansi=s.DEFAULT_ANSI_COLORS.slice(),E.ansi[0]=b(w.black,s.DEFAULT_ANSI_COLORS[0]),E.ansi[1]=b(w.red,s.DEFAULT_ANSI_COLORS[1]),E.ansi[2]=b(w.green,s.DEFAULT_ANSI_COLORS[2]),E.ansi[3]=b(w.yellow,s.DEFAULT_ANSI_COLORS[3]),E.ansi[4]=b(w.blue,s.DEFAULT_ANSI_COLORS[4]),E.ansi[5]=b(w.magenta,s.DEFAULT_ANSI_COLORS[5]),E.ansi[6]=b(w.cyan,s.DEFAULT_ANSI_COLORS[6]),E.ansi[7]=b(w.white,s.DEFAULT_ANSI_COLORS[7]),E.ansi[8]=b(w.brightBlack,s.DEFAULT_ANSI_COLORS[8]),E.ansi[9]=b(w.brightRed,s.DEFAULT_ANSI_COLORS[9]),E.ansi[10]=b(w.brightGreen,s.DEFAULT_ANSI_COLORS[10]),E.ansi[11]=b(w.brightYellow,s.DEFAULT_ANSI_COLORS[11]),E.ansi[12]=b(w.brightBlue,s.DEFAULT_ANSI_COLORS[12]),E.ansi[13]=b(w.brightMagenta,s.DEFAULT_ANSI_COLORS[13]),E.ansi[14]=b(w.brightCyan,s.DEFAULT_ANSI_COLORS[14]),E.ansi[15]=b(w.brightWhite,s.DEFAULT_ANSI_COLORS[15]),w.extendedAnsi){const x=Math.min(E.ansi.length-16,w.extendedAnsi.length);for(let R=0;R<x;R++)E.ansi[R+16]=b(w.extendedAnsi[R],s.DEFAULT_ANSI_COLORS[R+16])}this._contrastCache.clear(),this._halfContrastCache.clear(),this._updateRestoreColors(),this._onChangeColors.fire(this.colors)}restoreColor(w){this._restoreColor(w),this._onChangeColors.fire(this.colors)}_restoreColor(w){if(w!==void 0)switch(w){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[w]=this._restoreColors.ansi[w]}else for(let E=0;E<this._restoreColors.ansi.length;++E)this._colors.ansi[E]=this._restoreColors.ansi[E]}modifyColors(w){w(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 b(w,E){if(w!==void 0)try{return g.css.toColor(w)}catch(x){}return E}s.ThemeService=C=o([f(0,_.IOptionsService)],C)},6349:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.CircularList=void 0;const o=l(8460),f=l(844);class u extends f.Disposable{constructor(y){super(),this._maxLength=y,this.onDeleteEmitter=this.register(new o.EventEmitter),this.onDelete=this.onDeleteEmitter.event,this.onInsertEmitter=this.register(new o.EventEmitter),this.onInsert=this.onInsertEmitter.event,this.onTrimEmitter=this.register(new o.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(y){if(this._maxLength===y)return;const m=new Array(y);for(let _=0;_<Math.min(y,this.length);_++)m[_]=this._array[this._getCyclicIndex(_)];this._array=m,this._maxLength=y,this._startIndex=0}get length(){return this._length}set length(y){if(y>this._length)for(let m=this._length;m<y;m++)this._array[m]=void 0;this._length=y}get(y){return this._array[this._getCyclicIndex(y)]}set(y,m){this._array[this._getCyclicIndex(y)]=m}push(y){this._array[this._getCyclicIndex(this._length)]=y,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(y,m,..._){if(m){for(let h=y;h<this._length-m;h++)this._array[this._getCyclicIndex(h)]=this._array[this._getCyclicIndex(h+m)];this._length-=m,this.onDeleteEmitter.fire({index:y,amount:m})}for(let h=this._length-1;h>=y;h--)this._array[this._getCyclicIndex(h+_.length)]=this._array[this._getCyclicIndex(h)];for(let h=0;h<_.length;h++)this._array[this._getCyclicIndex(y+h)]=_[h];if(_.length&&this.onInsertEmitter.fire({index:y,amount:_.length}),this._length+_.length>this._maxLength){const h=this._length+_.length-this._maxLength;this._startIndex+=h,this._length=this._maxLength,this.onTrimEmitter.fire(h)}else this._length+=_.length}trimStart(y){y>this._length&&(y=this._length),this._startIndex+=y,this._length-=y,this.onTrimEmitter.fire(y)}shiftElements(y,m,_){if(!(m<=0)){if(y<0||y>=this._length)throw new Error("start argument out of range");if(y+_<0)throw new Error("Cannot shift elements in list beyond index 0");if(_>0){for(let d=m-1;d>=0;d--)this.set(y+d+_,this.get(y+d));const h=y+m+_-this._length;if(h>0)for(this._length+=h;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let h=0;h<m;h++)this.set(y+h+_,this.get(y+h))}}_getCyclicIndex(y){return(this._startIndex+y)%this._maxLength}}s.CircularList=u},1439:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.clone=void 0,s.clone=function l(o,f=5){if(typeof o!="object")return o;const u=Array.isArray(o)?[]:{};for(const g in o)u[g]=f<=1?o[g]:o[g]&&l(o[g],f-1);return u}},8055:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.contrastRatio=s.toPaddedHex=s.rgba=s.rgb=s.css=s.color=s.channels=s.NULL_COLOR=void 0;const o=l(6114);let f=0,u=0,g=0,y=0;var m,_,h,d,p;function v(C){const b=C.toString(16);return b.length<2?"0"+b:b}function S(C,b){return C<b?(b+.05)/(C+.05):(C+.05)/(b+.05)}s.NULL_COLOR={css:"#00000000",rgba:0},function(C){C.toCss=function(b,w,E,x){return x!==void 0?`#${v(b)}${v(w)}${v(E)}${v(x)}`:`#${v(b)}${v(w)}${v(E)}`},C.toRgba=function(b,w,E,x=255){return(b<<24|w<<16|E<<8|x)>>>0}}(m||(s.channels=m={})),function(C){function b(w,E){return y=Math.round(255*E),[f,u,g]=p.toChannels(w.rgba),{css:m.toCss(f,u,g,y),rgba:m.toRgba(f,u,g,y)}}C.blend=function(w,E){if(y=(255&E.rgba)/255,y===1)return{css:E.css,rgba:E.rgba};const x=E.rgba>>24&255,R=E.rgba>>16&255,D=E.rgba>>8&255,k=w.rgba>>24&255,O=w.rgba>>16&255,$=w.rgba>>8&255;return f=k+Math.round((x-k)*y),u=O+Math.round((R-O)*y),g=$+Math.round((D-$)*y),{css:m.toCss(f,u,g),rgba:m.toRgba(f,u,g)}},C.isOpaque=function(w){return(255&w.rgba)==255},C.ensureContrastRatio=function(w,E,x){const R=p.ensureContrastRatio(w.rgba,E.rgba,x);if(R)return p.toColor(R>>24&255,R>>16&255,R>>8&255)},C.opaque=function(w){const E=(255|w.rgba)>>>0;return[f,u,g]=p.toChannels(E),{css:m.toCss(f,u,g),rgba:E}},C.opacity=b,C.multiplyOpacity=function(w,E){return y=255&w.rgba,b(w,y*E/255)},C.toColorRGB=function(w){return[w.rgba>>24&255,w.rgba>>16&255,w.rgba>>8&255]}}(_||(s.color=_={})),function(C){let b,w;if(!o.isNode){const E=document.createElement("canvas");E.width=1,E.height=1;const x=E.getContext("2d",{willReadFrequently:!0});x&&(b=x,b.globalCompositeOperation="copy",w=b.createLinearGradient(0,0,1,1))}C.toColor=function(E){if(E.match(/#[\da-f]{3,8}/i))switch(E.length){case 4:return f=parseInt(E.slice(1,2).repeat(2),16),u=parseInt(E.slice(2,3).repeat(2),16),g=parseInt(E.slice(3,4).repeat(2),16),p.toColor(f,u,g);case 5:return f=parseInt(E.slice(1,2).repeat(2),16),u=parseInt(E.slice(2,3).repeat(2),16),g=parseInt(E.slice(3,4).repeat(2),16),y=parseInt(E.slice(4,5).repeat(2),16),p.toColor(f,u,g,y);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 x=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(x)return f=parseInt(x[1]),u=parseInt(x[2]),g=parseInt(x[3]),y=Math.round(255*(x[5]===void 0?1:parseFloat(x[5]))),p.toColor(f,u,g,y);if(!b||!w)throw new Error("css.toColor: Unsupported css format");if(b.fillStyle=w,b.fillStyle=E,typeof b.fillStyle!="string")throw new Error("css.toColor: Unsupported css format");if(b.fillRect(0,0,1,1),[f,u,g,y]=b.getImageData(0,0,1,1).data,y!==255)throw new Error("css.toColor: Unsupported css format");return{rgba:m.toRgba(f,u,g,y),css:E}}}(h||(s.css=h={})),function(C){function b(w,E,x){const R=w/255,D=E/255,k=x/255;return .2126*(R<=.03928?R/12.92:Math.pow((R+.055)/1.055,2.4))+.7152*(D<=.03928?D/12.92:Math.pow((D+.055)/1.055,2.4))+.0722*(k<=.03928?k/12.92:Math.pow((k+.055)/1.055,2.4))}C.relativeLuminance=function(w){return b(w>>16&255,w>>8&255,255&w)},C.relativeLuminance2=b}(d||(s.rgb=d={})),function(C){function b(E,x,R){const D=E>>24&255,k=E>>16&255,O=E>>8&255;let $=x>>24&255,W=x>>16&255,q=x>>8&255,V=S(d.relativeLuminance2($,W,q),d.relativeLuminance2(D,k,O));for(;V<R&&($>0||W>0||q>0);)$-=Math.max(0,Math.ceil(.1*$)),W-=Math.max(0,Math.ceil(.1*W)),q-=Math.max(0,Math.ceil(.1*q)),V=S(d.relativeLuminance2($,W,q),d.relativeLuminance2(D,k,O));return($<<24|W<<16|q<<8|255)>>>0}function w(E,x,R){const D=E>>24&255,k=E>>16&255,O=E>>8&255;let $=x>>24&255,W=x>>16&255,q=x>>8&255,V=S(d.relativeLuminance2($,W,q),d.relativeLuminance2(D,k,O));for(;V<R&&($<255||W<255||q<255);)$=Math.min(255,$+Math.ceil(.1*(255-$))),W=Math.min(255,W+Math.ceil(.1*(255-W))),q=Math.min(255,q+Math.ceil(.1*(255-q))),V=S(d.relativeLuminance2($,W,q),d.relativeLuminance2(D,k,O));return($<<24|W<<16|q<<8|255)>>>0}C.ensureContrastRatio=function(E,x,R){const D=d.relativeLuminance(E>>8),k=d.relativeLuminance(x>>8);if(S(D,k)<R){if(k<D){const W=b(E,x,R),q=S(D,d.relativeLuminance(W>>8));if(q<R){const V=w(E,x,R);return q>S(D,d.relativeLuminance(V>>8))?W:V}return W}const O=w(E,x,R),$=S(D,d.relativeLuminance(O>>8));if($<R){const W=b(E,x,R);return $>S(D,d.relativeLuminance(W>>8))?O:W}return O}},C.reduceLuminance=b,C.increaseLuminance=w,C.toChannels=function(E){return[E>>24&255,E>>16&255,E>>8&255,255&E]},C.toColor=function(E,x,R,D){return{css:m.toCss(E,x,R,D),rgba:m.toRgba(E,x,R,D)}}}(p||(s.rgba=p={})),s.toPaddedHex=v,s.contrastRatio=S},8969:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.CoreTerminal=void 0;const o=l(844),f=l(2585),u=l(4348),g=l(7866),y=l(744),m=l(7302),_=l(6975),h=l(8460),d=l(1753),p=l(1480),v=l(7994),S=l(9282),C=l(5435),b=l(5981),w=l(2660);let E=!1;class x extends o.Disposable{get onScroll(){return this._onScrollApi||(this._onScrollApi=this.register(new h.EventEmitter),this._onScroll.event(D=>{var k;(k=this._onScrollApi)===null||k===void 0||k.fire(D.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(D){for(const k in D)this.optionsService.options[k]=D[k]}constructor(D){super(),this._windowsWrappingHeuristics=this.register(new o.MutableDisposable),this._onBinary=this.register(new h.EventEmitter),this.onBinary=this._onBinary.event,this._onData=this.register(new h.EventEmitter),this.onData=this._onData.event,this._onLineFeed=this.register(new h.EventEmitter),this.onLineFeed=this._onLineFeed.event,this._onResize=this.register(new h.EventEmitter),this.onResize=this._onResize.event,this._onWriteParsed=this.register(new h.EventEmitter),this.onWriteParsed=this._onWriteParsed.event,this._onScroll=this.register(new h.EventEmitter),this._instantiationService=new u.InstantiationService,this.optionsService=this.register(new m.OptionsService(D)),this._instantiationService.setService(f.IOptionsService,this.optionsService),this._bufferService=this.register(this._instantiationService.createInstance(y.BufferService)),this._instantiationService.setService(f.IBufferService,this._bufferService),this._logService=this.register(this._instantiationService.createInstance(g.LogService)),this._instantiationService.setService(f.ILogService,this._logService),this.coreService=this.register(this._instantiationService.createInstance(_.CoreService)),this._instantiationService.setService(f.ICoreService,this.coreService),this.coreMouseService=this.register(this._instantiationService.createInstance(d.CoreMouseService)),this._instantiationService.setService(f.ICoreMouseService,this.coreMouseService),this.unicodeService=this.register(this._instantiationService.createInstance(p.UnicodeService)),this._instantiationService.setService(f.IUnicodeService,this.unicodeService),this._charsetService=this._instantiationService.createInstance(v.CharsetService),this._instantiationService.setService(f.ICharsetService,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(w.OscLinkService),this._instantiationService.setService(f.IOscLinkService,this._oscLinkService),this._inputHandler=this.register(new C.InputHandler(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this.register((0,h.forwardEvent)(this._inputHandler.onLineFeed,this._onLineFeed)),this.register(this._inputHandler),this.register((0,h.forwardEvent)(this._bufferService.onResize,this._onResize)),this.register((0,h.forwardEvent)(this.coreService.onData,this._onData)),this.register((0,h.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(k=>{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(k=>{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 b.WriteBuffer((k,O)=>this._inputHandler.parse(k,O))),this.register((0,h.forwardEvent)(this._writeBuffer.onWriteParsed,this._onWriteParsed))}write(D,k){this._writeBuffer.write(D,k)}writeSync(D,k){this._logService.logLevel<=f.LogLevelEnum.WARN&&!E&&(this._logService.warn("writeSync is unreliable and will be removed soon."),E=!0),this._writeBuffer.writeSync(D,k)}resize(D,k){isNaN(D)||isNaN(k)||(D=Math.max(D,y.MINIMUM_COLS),k=Math.max(k,y.MINIMUM_ROWS),this._bufferService.resize(D,k))}scroll(D,k=!1){this._bufferService.scroll(D,k)}scrollLines(D,k,O){this._bufferService.scrollLines(D,k,O)}scrollPages(D){this.scrollLines(D*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(D){const k=D-this._bufferService.buffer.ydisp;k!==0&&this.scrollLines(k)}registerEscHandler(D,k){return this._inputHandler.registerEscHandler(D,k)}registerDcsHandler(D,k){return this._inputHandler.registerDcsHandler(D,k)}registerCsiHandler(D,k){return this._inputHandler.registerCsiHandler(D,k)}registerOscHandler(D,k){return this._inputHandler.registerOscHandler(D,k)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let D=!1;const k=this.optionsService.rawOptions.windowsPty;k&&k.buildNumber!==void 0&&k.buildNumber!==void 0?D=k.backend==="conpty"&&k.buildNumber<21376:this.optionsService.rawOptions.windowsMode&&(D=!0),D?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){const D=[];D.push(this.onLineFeed(S.updateWindowsModeWrappedState.bind(null,this._bufferService))),D.push(this.registerCsiHandler({final:"H"},()=>((0,S.updateWindowsModeWrappedState)(this._bufferService),!1))),this._windowsWrappingHeuristics.value=(0,o.toDisposable)(()=>{for(const k of D)k.dispose()})}}}s.CoreTerminal=x},8460:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.forwardEvent=s.EventEmitter=void 0,s.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=l=>(this._listeners.push(l),{dispose:()=>{if(!this._disposed){for(let o=0;o<this._listeners.length;o++)if(this._listeners[o]===l)return void this._listeners.splice(o,1)}}})),this._event}fire(l,o){const f=[];for(let u=0;u<this._listeners.length;u++)f.push(this._listeners[u]);for(let u=0;u<f.length;u++)f[u].call(void 0,l,o)}dispose(){this.clearListeners(),this._disposed=!0}clearListeners(){this._listeners&&(this._listeners.length=0)}},s.forwardEvent=function(l,o){return l(f=>o.fire(f))}},5435:function(a,s,l){var o=this&&this.__decorate||function(V,L,N,P){var U,Y=arguments.length,ee=Y<3?L:P===null?P=Object.getOwnPropertyDescriptor(L,N):P;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")ee=Reflect.decorate(V,L,N,P);else for(var le=V.length-1;le>=0;le--)(U=V[le])&&(ee=(Y<3?U(ee):Y>3?U(L,N,ee):U(L,N))||ee);return Y>3&&ee&&Object.defineProperty(L,N,ee),ee},f=this&&this.__param||function(V,L){return function(N,P){L(N,P,V)}};Object.defineProperty(s,"__esModule",{value:!0}),s.InputHandler=s.WindowsOptionsReportType=void 0;const u=l(2584),g=l(7116),y=l(2015),m=l(844),_=l(482),h=l(8437),d=l(8460),p=l(643),v=l(511),S=l(3734),C=l(2585),b=l(6242),w=l(6351),E=l(5941),x={"(":0,")":1,"*":2,"+":3,"-":1,".":2},R=131072;function D(V,L){if(V>24)return L.setWinLines||!1;switch(V){case 1:return!!L.restoreWin;case 2:return!!L.minimizeWin;case 3:return!!L.setWinPosition;case 4:return!!L.setWinSizePixels;case 5:return!!L.raiseWin;case 6:return!!L.lowerWin;case 7:return!!L.refreshWin;case 8:return!!L.setWinSizeChars;case 9:return!!L.maximizeWin;case 10:return!!L.fullscreenWin;case 11:return!!L.getWinState;case 13:return!!L.getWinPosition;case 14:return!!L.getWinSizePixels;case 15:return!!L.getScreenSizePixels;case 16:return!!L.getCellSizePixels;case 18:return!!L.getWinSizeChars;case 19:return!!L.getScreenSizeChars;case 20:return!!L.getIconTitle;case 21:return!!L.getWinTitle;case 22:return!!L.pushTitle;case 23:return!!L.popTitle;case 24:return!!L.setWinLines}return!1}var k;(function(V){V[V.GET_WIN_SIZE_PIXELS=0]="GET_WIN_SIZE_PIXELS",V[V.GET_CELL_SIZE_PIXELS=1]="GET_CELL_SIZE_PIXELS"})(k||(s.WindowsOptionsReportType=k={}));let O=0;class $ extends m.Disposable{getAttrData(){return this._curAttrData}constructor(L,N,P,U,Y,ee,le,se,ge=new y.EscapeSequenceParser){super(),this._bufferService=L,this._charsetService=N,this._coreService=P,this._logService=U,this._optionsService=Y,this._oscLinkService=ee,this._coreMouseService=le,this._unicodeService=se,this._parser=ge,this._parseBuffer=new Uint32Array(4096),this._stringDecoder=new _.StringToUtf32,this._utf8Decoder=new _.Utf8ToUtf32,this._workCell=new v.CellData,this._windowTitle="",this._iconName="",this._windowTitleStack=[],this._iconNameStack=[],this._curAttrData=h.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=h.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 W(this._bufferService),this._activeBuffer=this._bufferService.buffer,this.register(this._bufferService.buffers.onBufferActivate(I=>this._activeBuffer=I.activeBuffer)),this._parser.setCsiHandlerFallback((I,K)=>{this._logService.debug("Unknown CSI code: ",{identifier:this._parser.identToString(I),params:K.toArray()})}),this._parser.setEscHandlerFallback(I=>{this._logService.debug("Unknown ESC code: ",{identifier:this._parser.identToString(I)})}),this._parser.setExecuteHandlerFallback(I=>{this._logService.debug("Unknown EXECUTE code: ",{code:I})}),this._parser.setOscHandlerFallback((I,K,G)=>{this._logService.debug("Unknown OSC code: ",{identifier:I,action:K,data:G})}),this._parser.setDcsHandlerFallback((I,K,G)=>{K==="HOOK"&&(G=G.toArray()),this._logService.debug("Unknown DCS code: ",{identifier:this._parser.identToString(I),action:K,payload:G})}),this._parser.setPrintHandler((I,K,G)=>this.print(I,K,G)),this._parser.registerCsiHandler({final:"@"},I=>this.insertChars(I)),this._parser.registerCsiHandler({intermediates:" ",final:"@"},I=>this.scrollLeft(I)),this._parser.registerCsiHandler({final:"A"},I=>this.cursorUp(I)),this._parser.registerCsiHandler({intermediates:" ",final:"A"},I=>this.scrollRight(I)),this._parser.registerCsiHandler({final:"B"},I=>this.cursorDown(I)),this._parser.registerCsiHandler({final:"C"},I=>this.cursorForward(I)),this._parser.registerCsiHandler({final:"D"},I=>this.cursorBackward(I)),this._parser.registerCsiHandler({final:"E"},I=>this.cursorNextLine(I)),this._parser.registerCsiHandler({final:"F"},I=>this.cursorPrecedingLine(I)),this._parser.registerCsiHandler({final:"G"},I=>this.cursorCharAbsolute(I)),this._parser.registerCsiHandler({final:"H"},I=>this.cursorPosition(I)),this._parser.registerCsiHandler({final:"I"},I=>this.cursorForwardTab(I)),this._parser.registerCsiHandler({final:"J"},I=>this.eraseInDisplay(I,!1)),this._parser.registerCsiHandler({prefix:"?",final:"J"},I=>this.eraseInDisplay(I,!0)),this._parser.registerCsiHandler({final:"K"},I=>this.eraseInLine(I,!1)),this._parser.registerCsiHandler({prefix:"?",final:"K"},I=>this.eraseInLine(I,!0)),this._parser.registerCsiHandler({final:"L"},I=>this.insertLines(I)),this._parser.registerCsiHandler({final:"M"},I=>this.deleteLines(I)),this._parser.registerCsiHandler({final:"P"},I=>this.deleteChars(I)),this._parser.registerCsiHandler({final:"S"},I=>this.scrollUp(I)),this._parser.registerCsiHandler({final:"T"},I=>this.scrollDown(I)),this._parser.registerCsiHandler({final:"X"},I=>this.eraseChars(I)),this._parser.registerCsiHandler({final:"Z"},I=>this.cursorBackwardTab(I)),this._parser.registerCsiHandler({final:"`"},I=>this.charPosAbsolute(I)),this._parser.registerCsiHandler({final:"a"},I=>this.hPositionRelative(I)),this._parser.registerCsiHandler({final:"b"},I=>this.repeatPrecedingCharacter(I)),this._parser.registerCsiHandler({final:"c"},I=>this.sendDeviceAttributesPrimary(I)),this._parser.registerCsiHandler({prefix:">",final:"c"},I=>this.sendDeviceAttributesSecondary(I)),this._parser.registerCsiHandler({final:"d"},I=>this.linePosAbsolute(I)),this._parser.registerCsiHandler({final:"e"},I=>this.vPositionRelative(I)),this._parser.registerCsiHandler({final:"f"},I=>this.hVPosition(I)),this._parser.registerCsiHandler({final:"g"},I=>this.tabClear(I)),this._parser.registerCsiHandler({final:"h"},I=>this.setMode(I)),this._parser.registerCsiHandler({prefix:"?",final:"h"},I=>this.setModePrivate(I)),this._parser.registerCsiHandler({final:"l"},I=>this.resetMode(I)),this._parser.registerCsiHandler({prefix:"?",final:"l"},I=>this.resetModePrivate(I)),this._parser.registerCsiHandler({final:"m"},I=>this.charAttributes(I)),this._parser.registerCsiHandler({final:"n"},I=>this.deviceStatus(I)),this._parser.registerCsiHandler({prefix:"?",final:"n"},I=>this.deviceStatusPrivate(I)),this._parser.registerCsiHandler({intermediates:"!",final:"p"},I=>this.softReset(I)),this._parser.registerCsiHandler({intermediates:" ",final:"q"},I=>this.setCursorStyle(I)),this._parser.registerCsiHandler({final:"r"},I=>this.setScrollRegion(I)),this._parser.registerCsiHandler({final:"s"},I=>this.saveCursor(I)),this._parser.registerCsiHandler({final:"t"},I=>this.windowOptions(I)),this._parser.registerCsiHandler({final:"u"},I=>this.restoreCursor(I)),this._parser.registerCsiHandler({intermediates:"'",final:"}"},I=>this.insertColumns(I)),this._parser.registerCsiHandler({intermediates:"'",final:"~"},I=>this.deleteColumns(I)),this._parser.registerCsiHandler({intermediates:'"',final:"q"},I=>this.selectProtected(I)),this._parser.registerCsiHandler({intermediates:"$",final:"p"},I=>this.requestMode(I,!0)),this._parser.registerCsiHandler({prefix:"?",intermediates:"$",final:"p"},I=>this.requestMode(I,!1)),this._parser.setExecuteHandler(u.C0.BEL,()=>this.bell()),this._parser.setExecuteHandler(u.C0.LF,()=>this.lineFeed()),this._parser.setExecuteHandler(u.C0.VT,()=>this.lineFeed()),this._parser.setExecuteHandler(u.C0.FF,()=>this.lineFeed()),this._parser.setExecuteHandler(u.C0.CR,()=>this.carriageReturn()),this._parser.setExecuteHandler(u.C0.BS,()=>this.backspace()),this._parser.setExecuteHandler(u.C0.HT,()=>this.tab()),this._parser.setExecuteHandler(u.C0.SO,()=>this.shiftOut()),this._parser.setExecuteHandler(u.C0.SI,()=>this.shiftIn()),this._parser.setExecuteHandler(u.C1.IND,()=>this.index()),this._parser.setExecuteHandler(u.C1.NEL,()=>this.nextLine()),this._parser.setExecuteHandler(u.C1.HTS,()=>this.tabSet()),this._parser.registerOscHandler(0,new b.OscHandler(I=>(this.setTitle(I),this.setIconName(I),!0))),this._parser.registerOscHandler(1,new b.OscHandler(I=>this.setIconName(I))),this._parser.registerOscHandler(2,new b.OscHandler(I=>this.setTitle(I))),this._parser.registerOscHandler(4,new b.OscHandler(I=>this.setOrReportIndexedColor(I))),this._parser.registerOscHandler(8,new b.OscHandler(I=>this.setHyperlink(I))),this._parser.registerOscHandler(10,new b.OscHandler(I=>this.setOrReportFgColor(I))),this._parser.registerOscHandler(11,new b.OscHandler(I=>this.setOrReportBgColor(I))),this._parser.registerOscHandler(12,new b.OscHandler(I=>this.setOrReportCursorColor(I))),this._parser.registerOscHandler(104,new b.OscHandler(I=>this.restoreIndexedColor(I))),this._parser.registerOscHandler(110,new b.OscHandler(I=>this.restoreFgColor(I))),this._parser.registerOscHandler(111,new b.OscHandler(I=>this.restoreBgColor(I))),this._parser.registerOscHandler(112,new b.OscHandler(I=>this.restoreCursorColor(I))),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 I in g.CHARSETS)this._parser.registerEscHandler({intermediates:"(",final:I},()=>this.selectCharset("("+I)),this._parser.registerEscHandler({intermediates:")",final:I},()=>this.selectCharset(")"+I)),this._parser.registerEscHandler({intermediates:"*",final:I},()=>this.selectCharset("*"+I)),this._parser.registerEscHandler({intermediates:"+",final:I},()=>this.selectCharset("+"+I)),this._parser.registerEscHandler({intermediates:"-",final:I},()=>this.selectCharset("-"+I)),this._parser.registerEscHandler({intermediates:".",final:I},()=>this.selectCharset("."+I)),this._parser.registerEscHandler({intermediates:"/",final:I},()=>this.selectCharset("/"+I));this._parser.registerEscHandler({intermediates:"#",final:"8"},()=>this.screenAlignmentPattern()),this._parser.setErrorHandler(I=>(this._logService.error("Parsing error: ",I),I)),this._parser.registerDcsHandler({intermediates:"$",final:"q"},new w.DcsHandler((I,K)=>this.requestStatusString(I,K)))}_preserveStack(L,N,P,U){this._parseStack.paused=!0,this._parseStack.cursorStartX=L,this._parseStack.cursorStartY=N,this._parseStack.decodedLength=P,this._parseStack.position=U}_logSlowResolvingAsync(L){this._logService.logLevel<=C.LogLevelEnum.WARN&&Promise.race([L,new Promise((N,P)=>setTimeout(()=>P("#SLOW_TIMEOUT"),5e3))]).catch(N=>{if(N!=="#SLOW_TIMEOUT")throw N;console.warn("async parser handler taking longer than 5000 ms")})}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(L,N){let P,U=this._activeBuffer.x,Y=this._activeBuffer.y,ee=0;const le=this._parseStack.paused;if(le){if(P=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,N))return this._logSlowResolvingAsync(P),P;U=this._parseStack.cursorStartX,Y=this._parseStack.cursorStartY,this._parseStack.paused=!1,L.length>R&&(ee=this._parseStack.position+R)}if(this._logService.logLevel<=C.LogLevelEnum.DEBUG&&this._logService.debug("parsing data"+(typeof L=="string"?` "${L}"`:` "${Array.prototype.map.call(L,se=>String.fromCharCode(se)).join("")}"`),typeof L=="string"?L.split("").map(se=>se.charCodeAt(0)):L),this._parseBuffer.length<L.length&&this._parseBuffer.length<R&&(this._parseBuffer=new Uint32Array(Math.min(L.length,R))),le||this._dirtyRowTracker.clearRange(),L.length>R)for(let se=ee;se<L.length;se+=R){const ge=se+R<L.length?se+R:L.length,I=typeof L=="string"?this._stringDecoder.decode(L.substring(se,ge),this._parseBuffer):this._utf8Decoder.decode(L.subarray(se,ge),this._parseBuffer);if(P=this._parser.parse(this._parseBuffer,I))return this._preserveStack(U,Y,I,se),this._logSlowResolvingAsync(P),P}else if(!le){const se=typeof L=="string"?this._stringDecoder.decode(L,this._parseBuffer):this._utf8Decoder.decode(L,this._parseBuffer);if(P=this._parser.parse(this._parseBuffer,se))return this._preserveStack(U,Y,se,0),this._logSlowResolvingAsync(P),P}this._activeBuffer.x===U&&this._activeBuffer.y===Y||this._onCursorMove.fire(),this._onRequestRefreshRows.fire(this._dirtyRowTracker.start,this._dirtyRowTracker.end)}print(L,N,P){let U,Y;const ee=this._charsetService.charset,le=this._optionsService.rawOptions.screenReaderMode,se=this._bufferService.cols,ge=this._coreService.decPrivateModes.wraparound,I=this._coreService.modes.insertMode,K=this._curAttrData;let G=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&P-N>0&&G.getWidth(this._activeBuffer.x-1)===2&&G.setCellFromCodePoint(this._activeBuffer.x-1,0,1,K.fg,K.bg,K.extended);for(let j=N;j<P;++j){if(U=L[j],Y=this._unicodeService.wcwidth(U),U<127&&ee){const ce=ee[String.fromCharCode(U)];ce&&(U=ce.charCodeAt(0))}if(le&&this._onA11yChar.fire((0,_.stringFromCodePoint)(U)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),Y||!this._activeBuffer.x){if(this._activeBuffer.x+Y-1>=se){if(ge){for(;this._activeBuffer.x<se;)G.setCellFromCodePoint(this._activeBuffer.x++,0,1,K.fg,K.bg,K.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),G=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)}else if(this._activeBuffer.x=se-1,Y===2)continue}if(I&&(G.insertCells(this._activeBuffer.x,Y,this._activeBuffer.getNullCell(K),K),G.getWidth(se-1)===2&&G.setCellFromCodePoint(se-1,p.NULL_CELL_CODE,p.NULL_CELL_WIDTH,K.fg,K.bg,K.extended)),G.setCellFromCodePoint(this._activeBuffer.x++,U,Y,K.fg,K.bg,K.extended),Y>0)for(;--Y;)G.setCellFromCodePoint(this._activeBuffer.x++,0,0,K.fg,K.bg,K.extended)}else G.getWidth(this._activeBuffer.x-1)?G.addCodepointToCell(this._activeBuffer.x-1,U):G.addCodepointToCell(this._activeBuffer.x-2,U)}P-N>0&&(G.loadCell(this._activeBuffer.x-1,this._workCell),this._workCell.getWidth()===2||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<se&&P-N>0&&G.getWidth(this._activeBuffer.x)===0&&!G.hasContent(this._activeBuffer.x)&&G.setCellFromCodePoint(this._activeBuffer.x,0,1,K.fg,K.bg,K.extended),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(L,N){return L.final!=="t"||L.prefix||L.intermediates?this._parser.registerCsiHandler(L,N):this._parser.registerCsiHandler(L,P=>!D(P.params[0],this._optionsService.rawOptions.windowOptions)||N(P))}registerDcsHandler(L,N){return this._parser.registerDcsHandler(L,new w.DcsHandler(N))}registerEscHandler(L,N){return this._parser.registerEscHandler(L,N)}registerOscHandler(L,N){return this._parser.registerOscHandler(L,new b.OscHandler(N))}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 L;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(this._activeBuffer.x===0&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&(!((L=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y))===null||L===void 0)&&L.isWrapped)){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;const N=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);N.hasWidth(this._activeBuffer.x)&&!N.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;const L=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-L),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(L=this._bufferService.cols-1){this._activeBuffer.x=Math.min(L,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(L,N){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=L,this._activeBuffer.y=this._activeBuffer.scrollTop+N):(this._activeBuffer.x=L,this._activeBuffer.y=N),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(L,N){this._restrictCursor(),this._setCursor(this._activeBuffer.x+L,this._activeBuffer.y+N)}cursorUp(L){const N=this._activeBuffer.y-this._activeBuffer.scrollTop;return N>=0?this._moveCursor(0,-Math.min(N,L.params[0]||1)):this._moveCursor(0,-(L.params[0]||1)),!0}cursorDown(L){const N=this._activeBuffer.scrollBottom-this._activeBuffer.y;return N>=0?this._moveCursor(0,Math.min(N,L.params[0]||1)):this._moveCursor(0,L.params[0]||1),!0}cursorForward(L){return this._moveCursor(L.params[0]||1,0),!0}cursorBackward(L){return this._moveCursor(-(L.params[0]||1),0),!0}cursorNextLine(L){return this.cursorDown(L),this._activeBuffer.x=0,!0}cursorPrecedingLine(L){return this.cursorUp(L),this._activeBuffer.x=0,!0}cursorCharAbsolute(L){return this._setCursor((L.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(L){return this._setCursor(L.length>=2?(L.params[1]||1)-1:0,(L.params[0]||1)-1),!0}charPosAbsolute(L){return this._setCursor((L.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(L){return this._moveCursor(L.params[0]||1,0),!0}linePosAbsolute(L){return this._setCursor(this._activeBuffer.x,(L.params[0]||1)-1),!0}vPositionRelative(L){return this._moveCursor(0,L.params[0]||1),!0}hVPosition(L){return this.cursorPosition(L),!0}tabClear(L){const N=L.params[0];return N===0?delete this._activeBuffer.tabs[this._activeBuffer.x]:N===3&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(L){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let N=L.params[0]||1;for(;N--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(L){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let N=L.params[0]||1;for(;N--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(L){const N=L.params[0];return N===1&&(this._curAttrData.bg|=536870912),N!==2&&N!==0||(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(L,N,P,U=!1,Y=!1){const ee=this._activeBuffer.lines.get(this._activeBuffer.ybase+L);ee.replaceCells(N,P,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData(),Y),U&&(ee.isWrapped=!1)}_resetBufferLine(L,N=!1){const P=this._activeBuffer.lines.get(this._activeBuffer.ybase+L);P&&(P.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),N),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+L),P.isWrapped=!1)}eraseInDisplay(L,N=!1){let P;switch(this._restrictCursor(this._bufferService.cols),L.params[0]){case 0:for(P=this._activeBuffer.y,this._dirtyRowTracker.markDirty(P),this._eraseInBufferLine(P++,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,N);P<this._bufferService.rows;P++)this._resetBufferLine(P,N);this._dirtyRowTracker.markDirty(P);break;case 1:for(P=this._activeBuffer.y,this._dirtyRowTracker.markDirty(P),this._eraseInBufferLine(P,0,this._activeBuffer.x+1,!0,N),this._activeBuffer.x+1>=this._bufferService.cols&&(this._activeBuffer.lines.get(P+1).isWrapped=!1);P--;)this._resetBufferLine(P,N);this._dirtyRowTracker.markDirty(0);break;case 2:for(P=this._bufferService.rows,this._dirtyRowTracker.markDirty(P-1);P--;)this._resetBufferLine(P,N);this._dirtyRowTracker.markDirty(0);break;case 3:const U=this._activeBuffer.lines.length-this._bufferService.rows;U>0&&(this._activeBuffer.lines.trimStart(U),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-U,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-U,0),this._onScroll.fire(0))}return!0}eraseInLine(L,N=!1){switch(this._restrictCursor(this._bufferService.cols),L.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,N);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,N);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,N)}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(L){this._restrictCursor();let N=L.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const P=this._activeBuffer.ybase+this._activeBuffer.y,U=this._bufferService.rows-1-this._activeBuffer.scrollBottom,Y=this._bufferService.rows-1+this._activeBuffer.ybase-U+1;for(;N--;)this._activeBuffer.lines.splice(Y-1,1),this._activeBuffer.lines.splice(P,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}deleteLines(L){this._restrictCursor();let N=L.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const P=this._activeBuffer.ybase+this._activeBuffer.y;let U;for(U=this._bufferService.rows-1-this._activeBuffer.scrollBottom,U=this._bufferService.rows-1+this._activeBuffer.ybase-U;N--;)this._activeBuffer.lines.splice(P,1),this._activeBuffer.lines.splice(U,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}insertChars(L){this._restrictCursor();const N=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return N&&(N.insertCells(this._activeBuffer.x,L.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}deleteChars(L){this._restrictCursor();const N=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return N&&(N.deleteCells(this._activeBuffer.x,L.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}scrollUp(L){let N=L.params[0]||1;for(;N--;)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(L){let N=L.params[0]||1;for(;N--;)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(h.DEFAULT_ATTR_DATA));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollLeft(L){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const N=L.params[0]||1;for(let P=this._activeBuffer.scrollTop;P<=this._activeBuffer.scrollBottom;++P){const U=this._activeBuffer.lines.get(this._activeBuffer.ybase+P);U.deleteCells(0,N,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),U.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollRight(L){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const N=L.params[0]||1;for(let P=this._activeBuffer.scrollTop;P<=this._activeBuffer.scrollBottom;++P){const U=this._activeBuffer.lines.get(this._activeBuffer.ybase+P);U.insertCells(0,N,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),U.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}insertColumns(L){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const N=L.params[0]||1;for(let P=this._activeBuffer.scrollTop;P<=this._activeBuffer.scrollBottom;++P){const U=this._activeBuffer.lines.get(this._activeBuffer.ybase+P);U.insertCells(this._activeBuffer.x,N,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),U.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}deleteColumns(L){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;const N=L.params[0]||1;for(let P=this._activeBuffer.scrollTop;P<=this._activeBuffer.scrollBottom;++P){const U=this._activeBuffer.lines.get(this._activeBuffer.ybase+P);U.deleteCells(this._activeBuffer.x,N,this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),U.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}eraseChars(L){this._restrictCursor();const N=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return N&&(N.replaceCells(this._activeBuffer.x,this._activeBuffer.x+(L.params[0]||1),this._activeBuffer.getNullCell(this._eraseAttrData()),this._eraseAttrData()),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}repeatPrecedingCharacter(L){if(!this._parser.precedingCodepoint)return!0;const N=L.params[0]||1,P=new Uint32Array(N);for(let U=0;U<N;++U)P[U]=this._parser.precedingCodepoint;return this.print(P,0,P.length),!0}sendDeviceAttributesPrimary(L){return L.params[0]>0||(this._is("xterm")||this._is("rxvt-unicode")||this._is("screen")?this._coreService.triggerDataEvent(u.C0.ESC+"[?1;2c"):this._is("linux")&&this._coreService.triggerDataEvent(u.C0.ESC+"[?6c")),!0}sendDeviceAttributesSecondary(L){return L.params[0]>0||(this._is("xterm")?this._coreService.triggerDataEvent(u.C0.ESC+"[>0;276;0c"):this._is("rxvt-unicode")?this._coreService.triggerDataEvent(u.C0.ESC+"[>85;95;0c"):this._is("linux")?this._coreService.triggerDataEvent(L.params[0]+"c"):this._is("screen")&&this._coreService.triggerDataEvent(u.C0.ESC+"[>83;40003;0c")),!0}_is(L){return(this._optionsService.rawOptions.termName+"").indexOf(L)===0}setMode(L){for(let N=0;N<L.length;N++)switch(L.params[N]){case 4:this._coreService.modes.insertMode=!0;break;case 20:this._optionsService.options.convertEol=!0}return!0}setModePrivate(L){for(let N=0;N<L.length;N++)switch(L.params[N]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._charsetService.setgCharset(0,g.DEFAULT_CHARSET),this._charsetService.setgCharset(1,g.DEFAULT_CHARSET),this._charsetService.setgCharset(2,g.DEFAULT_CHARSET),this._charsetService.setgCharset(3,g.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(L){for(let N=0;N<L.length;N++)switch(L.params[N]){case 4:this._coreService.modes.insertMode=!1;break;case 20:this._optionsService.options.convertEol=!1}return!0}resetModePrivate(L){for(let N=0;N<L.length;N++)switch(L.params[N]){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(),L.params[N]===1049&&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(L,N){const P=this._coreService.decPrivateModes,{activeProtocol:U,activeEncoding:Y}=this._coreMouseService,ee=this._coreService,{buffers:le,cols:se}=this._bufferService,{active:ge,alt:I}=le,K=this._optionsService.rawOptions,G=de=>de?1:2,j=L.params[0];return ce=j,re=N?j===2?4:j===4?G(ee.modes.insertMode):j===12?3:j===20?G(K.convertEol):0:j===1?G(P.applicationCursorKeys):j===3?K.windowOptions.setWinLines?se===80?2:se===132?1:0:0:j===6?G(P.origin):j===7?G(P.wraparound):j===8?3:j===9?G(U==="X10"):j===12?G(K.cursorBlink):j===25?G(!ee.isCursorHidden):j===45?G(P.reverseWraparound):j===66?G(P.applicationKeypad):j===67?4:j===1e3?G(U==="VT200"):j===1002?G(U==="DRAG"):j===1003?G(U==="ANY"):j===1004?G(P.sendFocus):j===1005?4:j===1006?G(Y==="SGR"):j===1015?4:j===1016?G(Y==="SGR_PIXELS"):j===1048?1:j===47||j===1047||j===1049?G(ge===I):j===2004?G(P.bracketedPasteMode):0,ee.triggerDataEvent(`${u.C0.ESC}[${N?"":"?"}${ce};${re}$y`),!0;var ce,re}_updateAttrColor(L,N,P,U,Y){return N===2?(L|=50331648,L&=-16777216,L|=S.AttributeData.fromColorRGB([P,U,Y])):N===5&&(L&=-50331904,L|=33554432|255&P),L}_extractColor(L,N,P){const U=[0,0,-1,0,0,0];let Y=0,ee=0;do{if(U[ee+Y]=L.params[N+ee],L.hasSubParams(N+ee)){const le=L.getSubParams(N+ee);let se=0;do U[1]===5&&(Y=1),U[ee+se+1+Y]=le[se];while(++se<le.length&&se+ee+1+Y<U.length);break}if(U[1]===5&&ee+Y>=2||U[1]===2&&ee+Y>=5)break;U[1]&&(Y=1)}while(++ee+N<L.length&&ee+Y<U.length);for(let le=2;le<U.length;++le)U[le]===-1&&(U[le]=0);switch(U[0]){case 38:P.fg=this._updateAttrColor(P.fg,U[1],U[3],U[4],U[5]);break;case 48:P.bg=this._updateAttrColor(P.bg,U[1],U[3],U[4],U[5]);break;case 58:P.extended=P.extended.clone(),P.extended.underlineColor=this._updateAttrColor(P.extended.underlineColor,U[1],U[3],U[4],U[5])}return ee}_processUnderline(L,N){N.extended=N.extended.clone(),(!~L||L>5)&&(L=1),N.extended.underlineStyle=L,N.fg|=268435456,L===0&&(N.fg&=-268435457),N.updateExtended()}_processSGR0(L){L.fg=h.DEFAULT_ATTR_DATA.fg,L.bg=h.DEFAULT_ATTR_DATA.bg,L.extended=L.extended.clone(),L.extended.underlineStyle=0,L.extended.underlineColor&=-67108864,L.updateExtended()}charAttributes(L){if(L.length===1&&L.params[0]===0)return this._processSGR0(this._curAttrData),!0;const N=L.length;let P;const U=this._curAttrData;for(let Y=0;Y<N;Y++)P=L.params[Y],P>=30&&P<=37?(U.fg&=-50331904,U.fg|=16777216|P-30):P>=40&&P<=47?(U.bg&=-50331904,U.bg|=16777216|P-40):P>=90&&P<=97?(U.fg&=-50331904,U.fg|=16777224|P-90):P>=100&&P<=107?(U.bg&=-50331904,U.bg|=16777224|P-100):P===0?this._processSGR0(U):P===1?U.fg|=134217728:P===3?U.bg|=67108864:P===4?(U.fg|=268435456,this._processUnderline(L.hasSubParams(Y)?L.getSubParams(Y)[0]:1,U)):P===5?U.fg|=536870912:P===7?U.fg|=67108864:P===8?U.fg|=1073741824:P===9?U.fg|=2147483648:P===2?U.bg|=134217728:P===21?this._processUnderline(2,U):P===22?(U.fg&=-134217729,U.bg&=-134217729):P===23?U.bg&=-67108865:P===24?(U.fg&=-268435457,this._processUnderline(0,U)):P===25?U.fg&=-536870913:P===27?U.fg&=-67108865:P===28?U.fg&=-1073741825:P===29?U.fg&=2147483647:P===39?(U.fg&=-67108864,U.fg|=16777215&h.DEFAULT_ATTR_DATA.fg):P===49?(U.bg&=-67108864,U.bg|=16777215&h.DEFAULT_ATTR_DATA.bg):P===38||P===48||P===58?Y+=this._extractColor(L,Y,U):P===53?U.bg|=1073741824:P===55?U.bg&=-1073741825:P===59?(U.extended=U.extended.clone(),U.extended.underlineColor=-1,U.updateExtended()):P===100?(U.fg&=-67108864,U.fg|=16777215&h.DEFAULT_ATTR_DATA.fg,U.bg&=-67108864,U.bg|=16777215&h.DEFAULT_ATTR_DATA.bg):this._logService.debug("Unknown SGR attribute: %d.",P);return!0}deviceStatus(L){switch(L.params[0]){case 5:this._coreService.triggerDataEvent(`${u.C0.ESC}[0n`);break;case 6:const N=this._activeBuffer.y+1,P=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${u.C0.ESC}[${N};${P}R`)}return!0}deviceStatusPrivate(L){if(L.params[0]===6){const N=this._activeBuffer.y+1,P=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${u.C0.ESC}[?${N};${P}R`)}return!0}softReset(L){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=h.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(L){const N=L.params[0]||1;switch(N){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 P=N%2==1;return this._optionsService.options.cursorBlink=P,!0}setScrollRegion(L){const N=L.params[0]||1;let P;return(L.length<2||(P=L.params[1])>this._bufferService.rows||P===0)&&(P=this._bufferService.rows),P>N&&(this._activeBuffer.scrollTop=N-1,this._activeBuffer.scrollBottom=P-1,this._setCursor(0,0)),!0}windowOptions(L){if(!D(L.params[0],this._optionsService.rawOptions.windowOptions))return!0;const N=L.length>1?L.params[1]:0;switch(L.params[0]){case 14:N!==2&&this._onRequestWindowsOptionsReport.fire(k.GET_WIN_SIZE_PIXELS);break;case 16:this._onRequestWindowsOptionsReport.fire(k.GET_CELL_SIZE_PIXELS);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${u.C0.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:N!==0&&N!==2||(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>10&&this._windowTitleStack.shift()),N!==0&&N!==1||(this._iconNameStack.push(this._iconName),this._iconNameStack.length>10&&this._iconNameStack.shift());break;case 23:N!==0&&N!==2||this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),N!==0&&N!==1||this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop())}return!0}saveCursor(L){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(L){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(L){return this._windowTitle=L,this._onTitleChange.fire(L),!0}setIconName(L){return this._iconName=L,!0}setOrReportIndexedColor(L){const N=[],P=L.split(";");for(;P.length>1;){const U=P.shift(),Y=P.shift();if(/^\d+$/.exec(U)){const ee=parseInt(U);if(q(ee))if(Y==="?")N.push({type:0,index:ee});else{const le=(0,E.parseColor)(Y);le&&N.push({type:1,index:ee,color:le})}}}return N.length&&this._onColor.fire(N),!0}setHyperlink(L){const N=L.split(";");return!(N.length<2)&&(N[1]?this._createHyperlink(N[0],N[1]):!N[0]&&this._finishHyperlink())}_createHyperlink(L,N){this._getCurrentLinkId()&&this._finishHyperlink();const P=L.split(":");let U;const Y=P.findIndex(ee=>ee.startsWith("id="));return Y!==-1&&(U=P[Y].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:U,uri:N}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(L,N){const P=L.split(";");for(let U=0;U<P.length&&!(N>=this._specialColors.length);++U,++N)if(P[U]==="?")this._onColor.fire([{type:0,index:this._specialColors[N]}]);else{const Y=(0,E.parseColor)(P[U]);Y&&this._onColor.fire([{type:1,index:this._specialColors[N],color:Y}])}return!0}setOrReportFgColor(L){return this._setOrReportSpecialColor(L,0)}setOrReportBgColor(L){return this._setOrReportSpecialColor(L,1)}setOrReportCursorColor(L){return this._setOrReportSpecialColor(L,2)}restoreIndexedColor(L){if(!L)return this._onColor.fire([{type:2}]),!0;const N=[],P=L.split(";");for(let U=0;U<P.length;++U)if(/^\d+$/.exec(P[U])){const Y=parseInt(P[U]);q(Y)&&N.push({type:2,index:Y})}return N.length&&this._onColor.fire(N),!0}restoreFgColor(L){return this._onColor.fire([{type:2,index:256}]),!0}restoreBgColor(L){return this._onColor.fire([{type:2,index:257}]),!0}restoreCursorColor(L){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,g.DEFAULT_CHARSET),!0}selectCharset(L){return L.length!==2?(this.selectDefaultCharset(),!0):(L[0]==="/"||this._charsetService.setgCharset(x[L[0]],g.CHARSETS[L[1]]||g.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 L=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,L,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=h.DEFAULT_ATTR_DATA.clone(),this._eraseAttrDataInternal=h.DEFAULT_ATTR_DATA.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=67108863&this._curAttrData.bg,this._eraseAttrDataInternal}setgLevel(L){return this._charsetService.setgLevel(L),!0}screenAlignmentPattern(){const L=new v.CellData;L.content=4194304|"E".charCodeAt(0),L.fg=this._curAttrData.fg,L.bg=this._curAttrData.bg,this._setCursor(0,0);for(let N=0;N<this._bufferService.rows;++N){const P=this._activeBuffer.ybase+this._activeBuffer.y+N,U=this._activeBuffer.lines.get(P);U&&(U.fill(L),U.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(L,N){const P=this._bufferService.buffer,U=this._optionsService.rawOptions;return(Y=>(this._coreService.triggerDataEvent(`${u.C0.ESC}${Y}${u.C0.ESC}\\`),!0))(L==='"q'?`P1$r${this._curAttrData.isProtected()?1:0}"q`:L==='"p'?'P1$r61;1"p':L==="r"?`P1$r${P.scrollTop+1};${P.scrollBottom+1}r`:L==="m"?"P1$r0m":L===" q"?`P1$r${{block:2,underline:4,bar:6}[U.cursorStyle]-(U.cursorBlink?1:0)} q`:"P0$r")}markRangeDirty(L,N){this._dirtyRowTracker.markRangeDirty(L,N)}}s.InputHandler=$;let W=class{constructor(V){this._bufferService=V,this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(V){V<this.start?this.start=V:V>this.end&&(this.end=V)}markRangeDirty(V,L){V>L&&(O=V,V=L,L=O),V<this.start&&(this.start=V),L>this.end&&(this.end=L)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};function q(V){return 0<=V&&V<256}W=o([f(0,C.IBufferService)],W)},844:(a,s)=>{function l(o){for(const f of o)f.dispose();o.length=0}Object.defineProperty(s,"__esModule",{value:!0}),s.getDisposeArrayDisposable=s.disposeArray=s.toDisposable=s.MutableDisposable=s.Disposable=void 0,s.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const o of this._disposables)o.dispose();this._disposables.length=0}register(o){return this._disposables.push(o),o}unregister(o){const f=this._disposables.indexOf(o);f!==-1&&this._disposables.splice(f,1)}},s.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(o){var f;this._isDisposed||o===this._value||((f=this._value)===null||f===void 0||f.dispose(),this._value=o)}clear(){this.value=void 0}dispose(){var o;this._isDisposed=!0,(o=this._value)===null||o===void 0||o.dispose(),this._value=void 0}},s.toDisposable=function(o){return{dispose:o}},s.disposeArray=l,s.getDisposeArrayDisposable=function(o){return{dispose:()=>l(o)}}},1505:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.FourKeyMap=s.TwoKeyMap=void 0;class l{constructor(){this._data={}}set(f,u,g){this._data[f]||(this._data[f]={}),this._data[f][u]=g}get(f,u){return this._data[f]?this._data[f][u]:void 0}clear(){this._data={}}}s.TwoKeyMap=l,s.FourKeyMap=class{constructor(){this._data=new l}set(o,f,u,g,y){this._data.get(o,f)||this._data.set(o,f,new l),this._data.get(o,f).set(u,g,y)}get(o,f,u,g){var y;return(y=this._data.get(o,f))===null||y===void 0?void 0:y.get(u,g)}clear(){this._data.clear()}}},6114:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.isChromeOS=s.isLinux=s.isWindows=s.isIphone=s.isIpad=s.isMac=s.getSafariVersion=s.isSafari=s.isLegacyEdge=s.isFirefox=s.isNode=void 0,s.isNode=typeof navigator=="undefined";const l=s.isNode?"node":navigator.userAgent,o=s.isNode?"node":navigator.platform;s.isFirefox=l.includes("Firefox"),s.isLegacyEdge=l.includes("Edge"),s.isSafari=/^((?!chrome|android).)*safari/i.test(l),s.getSafariVersion=function(){if(!s.isSafari)return 0;const f=l.match(/Version\/(\d+)/);return f===null||f.length<2?0:parseInt(f[1])},s.isMac=["Macintosh","MacIntel","MacPPC","Mac68K"].includes(o),s.isIpad=o==="iPad",s.isIphone=o==="iPhone",s.isWindows=["Windows","Win16","Win32","WinCE"].includes(o),s.isLinux=o.indexOf("Linux")>=0,s.isChromeOS=/\bCrOS\b/.test(l)},6106:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.SortedList=void 0;let l=0;s.SortedList=class{constructor(o){this._getKey=o,this._array=[]}clear(){this._array.length=0}insert(o){this._array.length!==0?(l=this._search(this._getKey(o)),this._array.splice(l,0,o)):this._array.push(o)}delete(o){if(this._array.length===0)return!1;const f=this._getKey(o);if(f===void 0||(l=this._search(f),l===-1)||this._getKey(this._array[l])!==f)return!1;do if(this._array[l]===o)return this._array.splice(l,1),!0;while(++l<this._array.length&&this._getKey(this._array[l])===f);return!1}*getKeyIterator(o){if(this._array.length!==0&&(l=this._search(o),!(l<0||l>=this._array.length)&&this._getKey(this._array[l])===o))do yield this._array[l];while(++l<this._array.length&&this._getKey(this._array[l])===o)}forEachByKey(o,f){if(this._array.length!==0&&(l=this._search(o),!(l<0||l>=this._array.length)&&this._getKey(this._array[l])===o))do f(this._array[l]);while(++l<this._array.length&&this._getKey(this._array[l])===o)}values(){return[...this._array].values()}_search(o){let f=0,u=this._array.length-1;for(;u>=f;){let g=f+u>>1;const y=this._getKey(this._array[g]);if(y>o)u=g-1;else{if(!(y<o)){for(;g>0&&this._getKey(this._array[g-1])===o;)g--;return g}f=g+1}}return f}}},7226:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.DebouncedIdleTask=s.IdleTaskQueue=s.PriorityTaskQueue=void 0;const o=l(6114);class f{constructor(){this._tasks=[],this._i=0}enqueue(y){this._tasks.push(y),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(y){this._idleCallback=void 0;let m=0,_=0,h=y.timeRemaining(),d=0;for(;this._i<this._tasks.length;){if(m=Date.now(),this._tasks[this._i]()||this._i++,m=Math.max(1,Date.now()-m),_=Math.max(m,_),d=y.timeRemaining(),1.5*_>d)return h-m<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(h-m))}ms`),void this._start();h=d}this.clear()}}class u extends f{_requestCallback(y){return setTimeout(()=>y(this._createDeadline(16)))}_cancelCallback(y){clearTimeout(y)}_createDeadline(y){const m=Date.now()+y;return{timeRemaining:()=>Math.max(0,m-Date.now())}}}s.PriorityTaskQueue=u,s.IdleTaskQueue=!o.isNode&&"requestIdleCallback"in window?class extends f{_requestCallback(g){return requestIdleCallback(g)}_cancelCallback(g){cancelIdleCallback(g)}}:u,s.DebouncedIdleTask=class{constructor(){this._queue=new s.IdleTaskQueue}set(g){this._queue.clear(),this._queue.enqueue(g)}flush(){this._queue.flush()}}},9282:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.updateWindowsModeWrappedState=void 0;const o=l(643);s.updateWindowsModeWrappedState=function(f){const u=f.buffer.lines.get(f.buffer.ybase+f.buffer.y-1),g=u==null?void 0:u.get(f.cols-1),y=f.buffer.lines.get(f.buffer.ybase+f.buffer.y);y&&g&&(y.isWrapped=g[o.CHAR_DATA_CODE_INDEX]!==o.NULL_CELL_CODE&&g[o.CHAR_DATA_CODE_INDEX]!==o.WHITESPACE_CELL_CODE)}},3734:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.ExtendedAttrs=s.AttributeData=void 0;class l{constructor(){this.fg=0,this.bg=0,this.extended=new o}static toColorRGB(u){return[u>>>16&255,u>>>8&255,255&u]}static fromColorRGB(u){return(255&u[0])<<16|(255&u[1])<<8|255&u[2]}clone(){const u=new l;return u.fg=this.fg,u.bg=this.bg,u.extended=this.extended.clone(),u}isInverse(){return 67108864&this.fg}isBold(){return 134217728&this.fg}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?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&this.fg)==50331648}isBgRGB(){return(50331648&this.bg)==50331648}isFgPalette(){return(50331648&this.fg)==16777216||(50331648&this.fg)==33554432}isBgPalette(){return(50331648&this.bg)==16777216||(50331648&this.bg)==33554432}isFgDefault(){return(50331648&this.fg)==0}isBgDefault(){return(50331648&this.bg)==0}isAttributeDefault(){return this.fg===0&&this.bg===0}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&this.extended.underlineColor)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==16777216||(50331648&this.extended.underlineColor)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return 268435456&this.bg&&~this.extended.underlineColor?(50331648&this.extended.underlineColor)==0:this.isFgDefault()}getUnderlineStyle(){return 268435456&this.fg?268435456&this.bg?this.extended.underlineStyle:1:0}}s.AttributeData=l;class o{get ext(){return this._urlId?-469762049&this._ext|this.underlineStyle<<26:this._ext}set ext(u){this._ext=u}get underlineStyle(){return this._urlId?5:(469762048&this._ext)>>26}set underlineStyle(u){this._ext&=-469762049,this._ext|=u<<26&469762048}get underlineColor(){return 67108863&this._ext}set underlineColor(u){this._ext&=-67108864,this._ext|=67108863&u}get urlId(){return this._urlId}set urlId(u){this._urlId=u}constructor(u=0,g=0){this._ext=0,this._urlId=0,this._ext=u,this._urlId=g}clone(){return new o(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}}s.ExtendedAttrs=o},9092:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.Buffer=s.MAX_BUFFER_SIZE=void 0;const o=l(6349),f=l(7226),u=l(3734),g=l(8437),y=l(4634),m=l(511),_=l(643),h=l(4863),d=l(7116);s.MAX_BUFFER_SIZE=4294967295,s.Buffer=class{constructor(p,v,S){this._hasScrollback=p,this._optionsService=v,this._bufferService=S,this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.tabs={},this.savedY=0,this.savedX=0,this.savedCurAttrData=g.DEFAULT_ATTR_DATA.clone(),this.savedCharset=d.DEFAULT_CHARSET,this.markers=[],this._nullCell=m.CellData.fromCharData([0,_.NULL_CELL_CHAR,_.NULL_CELL_WIDTH,_.NULL_CELL_CODE]),this._whitespaceCell=m.CellData.fromCharData([0,_.WHITESPACE_CELL_CHAR,_.WHITESPACE_CELL_WIDTH,_.WHITESPACE_CELL_CODE]),this._isClearing=!1,this._memoryCleanupQueue=new f.IdleTaskQueue,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new o.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(p){return p?(this._nullCell.fg=p.fg,this._nullCell.bg=p.bg,this._nullCell.extended=p.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new u.ExtendedAttrs),this._nullCell}getWhitespaceCell(p){return p?(this._whitespaceCell.fg=p.fg,this._whitespaceCell.bg=p.bg,this._whitespaceCell.extended=p.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new u.ExtendedAttrs),this._whitespaceCell}getBlankLine(p,v){return new g.BufferLine(this._bufferService.cols,this.getNullCell(p),v)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){const p=this.ybase+this.y-this.ydisp;return p>=0&&p<this._rows}_getCorrectBufferLength(p){if(!this._hasScrollback)return p;const v=p+this._optionsService.rawOptions.scrollback;return v>s.MAX_BUFFER_SIZE?s.MAX_BUFFER_SIZE:v}fillViewportRows(p){if(this.lines.length===0){p===void 0&&(p=g.DEFAULT_ATTR_DATA);let v=this._rows;for(;v--;)this.lines.push(this.getBlankLine(p))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new o.CircularList(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(p,v){const S=this.getNullCell(g.DEFAULT_ATTR_DATA);let C=0;const b=this._getCorrectBufferLength(v);if(b>this.lines.maxLength&&(this.lines.maxLength=b),this.lines.length>0){if(this._cols<p)for(let E=0;E<this.lines.length;E++)C+=+this.lines.get(E).resize(p,S);let w=0;if(this._rows<v)for(let E=this._rows;E<v;E++)this.lines.length<v+this.ybase&&(this._optionsService.rawOptions.windowsMode||this._optionsService.rawOptions.windowsPty.backend!==void 0||this._optionsService.rawOptions.windowsPty.buildNumber!==void 0?this.lines.push(new g.BufferLine(p,S)):this.ybase>0&&this.lines.length<=this.ybase+this.y+w+1?(this.ybase--,w++,this.ydisp>0&&this.ydisp--):this.lines.push(new g.BufferLine(p,S)));else for(let E=this._rows;E>v;E--)this.lines.length>v+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(b<this.lines.maxLength){const E=this.lines.length-b;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=b}this.x=Math.min(this.x,p-1),this.y=Math.min(this.y,v-1),w&&(this.y+=w),this.savedX=Math.min(this.savedX,p-1),this.scrollTop=0}if(this.scrollBottom=v-1,this._isReflowEnabled&&(this._reflow(p,v),this._cols>p))for(let w=0;w<this.lines.length;w++)C+=+this.lines.get(w).resize(p,S);this._cols=p,this._rows=v,this._memoryCleanupQueue.clear(),C>.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue(()=>this._batchedMemoryCleanup()))}_batchedMemoryCleanup(){let p=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,p=!1);let v=0;for(;this._memoryCleanupPosition<this.lines.length;)if(v+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory(),v>100)return!0;return p}get _isReflowEnabled(){const p=this._optionsService.rawOptions.windowsPty;return p&&p.buildNumber?this._hasScrollback&&p.backend==="conpty"&&p.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(p,v){this._cols!==p&&(p>this._cols?this._reflowLarger(p,v):this._reflowSmaller(p,v))}_reflowLarger(p,v){const S=(0,y.reflowLargerGetLinesToRemove)(this.lines,this._cols,p,this.ybase+this.y,this.getNullCell(g.DEFAULT_ATTR_DATA));if(S.length>0){const C=(0,y.reflowLargerCreateNewLayout)(this.lines,S);(0,y.reflowLargerApplyNewLayout)(this.lines,C.layout),this._reflowLargerAdjustViewport(p,v,C.countRemoved)}}_reflowLargerAdjustViewport(p,v,S){const C=this.getNullCell(g.DEFAULT_ATTR_DATA);let b=S;for(;b-- >0;)this.ybase===0?(this.y>0&&this.y--,this.lines.length<v&&this.lines.push(new g.BufferLine(p,C))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-S,0)}_reflowSmaller(p,v){const S=this.getNullCell(g.DEFAULT_ATTR_DATA),C=[];let b=0;for(let w=this.lines.length-1;w>=0;w--){let E=this.lines.get(w);if(!E||!E.isWrapped&&E.getTrimmedLength()<=p)continue;const x=[E];for(;E.isWrapped&&w>0;)E=this.lines.get(--w),x.unshift(E);const R=this.ybase+this.y;if(R>=w&&R<w+x.length)continue;const D=x[x.length-1].getTrimmedLength(),k=(0,y.reflowSmallerGetNewLineLengths)(x,this._cols,p),O=k.length-x.length;let $;$=this.ybase===0&&this.y!==this.lines.length-1?Math.max(0,this.y-this.lines.maxLength+O):Math.max(0,this.lines.length-this.lines.maxLength+O);const W=[];for(let U=0;U<O;U++){const Y=this.getBlankLine(g.DEFAULT_ATTR_DATA,!0);W.push(Y)}W.length>0&&(C.push({start:w+x.length+b,newLines:W}),b+=W.length),x.push(...W);let q=k.length-1,V=k[q];V===0&&(q--,V=k[q]);let L=x.length-O-1,N=D;for(;L>=0;){const U=Math.min(N,V);if(x[q]===void 0)break;if(x[q].copyCellsFrom(x[L],N-U,V-U,U,!0),V-=U,V===0&&(q--,V=k[q]),N-=U,N===0){L--;const Y=Math.max(L,0);N=(0,y.getWrappedLineTrimmedLength)(x,Y,this._cols)}}for(let U=0;U<x.length;U++)k[U]<p&&x[U].setCell(k[U],S);let P=O-$;for(;P-- >0;)this.ybase===0?this.y<v-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+b)-v&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+O,this.ybase+v-1)}if(C.length>0){const w=[],E=[];for(let q=0;q<this.lines.length;q++)E.push(this.lines.get(q));const x=this.lines.length;let R=x-1,D=0,k=C[D];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+b);let O=0;for(let q=Math.min(this.lines.maxLength-1,x+b-1);q>=0;q--)if(k&&k.start>R+O){for(let V=k.newLines.length-1;V>=0;V--)this.lines.set(q--,k.newLines[V]);q++,w.push({index:R+1,amount:k.newLines.length}),O+=k.newLines.length,k=C[++D]}else this.lines.set(q,E[R--]);let $=0;for(let q=w.length-1;q>=0;q--)w[q].index+=$,this.lines.onInsertEmitter.fire(w[q]),$+=w[q].amount;const W=Math.max(0,x+b-this.lines.maxLength);W>0&&this.lines.onTrimEmitter.fire(W)}}translateBufferLineToString(p,v,S=0,C){const b=this.lines.get(p);return b?b.translateToString(v,S,C):""}getWrappedRangeForLine(p){let v=p,S=p;for(;v>0&&this.lines.get(v).isWrapped;)v--;for(;S+1<this.lines.length&&this.lines.get(S+1).isWrapped;)S++;return{first:v,last:S}}setupTabStops(p){for(p!=null?this.tabs[p]||(p=this.prevStop(p)):(this.tabs={},p=0);p<this._cols;p+=this._optionsService.rawOptions.tabStopWidth)this.tabs[p]=!0}prevStop(p){for(p==null&&(p=this.x);!this.tabs[--p]&&p>0;);return p>=this._cols?this._cols-1:p<0?0:p}nextStop(p){for(p==null&&(p=this.x);!this.tabs[++p]&&p<this._cols;);return p>=this._cols?this._cols-1:p<0?0:p}clearMarkers(p){this._isClearing=!0;for(let v=0;v<this.markers.length;v++)this.markers[v].line===p&&(this.markers[v].dispose(),this.markers.splice(v--,1));this._isClearing=!1}clearAllMarkers(){this._isClearing=!0;for(let p=0;p<this.markers.length;p++)this.markers[p].dispose(),this.markers.splice(p--,1);this._isClearing=!1}addMarker(p){const v=new h.Marker(p);return this.markers.push(v),v.register(this.lines.onTrim(S=>{v.line-=S,v.line<0&&v.dispose()})),v.register(this.lines.onInsert(S=>{v.line>=S.index&&(v.line+=S.amount)})),v.register(this.lines.onDelete(S=>{v.line>=S.index&&v.line<S.index+S.amount&&v.dispose(),v.line>S.index&&(v.line-=S.amount)})),v.register(v.onDispose(()=>this._removeMarker(v))),v}_removeMarker(p){this._isClearing||this.markers.splice(this.markers.indexOf(p),1)}}},8437:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.BufferLine=s.DEFAULT_ATTR_DATA=void 0;const o=l(3734),f=l(511),u=l(643),g=l(482);s.DEFAULT_ATTR_DATA=Object.freeze(new o.AttributeData);let y=0;class m{constructor(h,d,p=!1){this.isWrapped=p,this._combined={},this._extendedAttrs={},this._data=new Uint32Array(3*h);const v=d||f.CellData.fromCharData([0,u.NULL_CELL_CHAR,u.NULL_CELL_WIDTH,u.NULL_CELL_CODE]);for(let S=0;S<h;++S)this.setCell(S,v);this.length=h}get(h){const d=this._data[3*h+0],p=2097151&d;return[this._data[3*h+1],2097152&d?this._combined[h]:p?(0,g.stringFromCodePoint)(p):"",d>>22,2097152&d?this._combined[h].charCodeAt(this._combined[h].length-1):p]}set(h,d){this._data[3*h+1]=d[u.CHAR_DATA_ATTR_INDEX],d[u.CHAR_DATA_CHAR_INDEX].length>1?(this._combined[h]=d[1],this._data[3*h+0]=2097152|h|d[u.CHAR_DATA_WIDTH_INDEX]<<22):this._data[3*h+0]=d[u.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|d[u.CHAR_DATA_WIDTH_INDEX]<<22}getWidth(h){return this._data[3*h+0]>>22}hasWidth(h){return 12582912&this._data[3*h+0]}getFg(h){return this._data[3*h+1]}getBg(h){return this._data[3*h+2]}hasContent(h){return 4194303&this._data[3*h+0]}getCodePoint(h){const d=this._data[3*h+0];return 2097152&d?this._combined[h].charCodeAt(this._combined[h].length-1):2097151&d}isCombined(h){return 2097152&this._data[3*h+0]}getString(h){const d=this._data[3*h+0];return 2097152&d?this._combined[h]:2097151&d?(0,g.stringFromCodePoint)(2097151&d):""}isProtected(h){return 536870912&this._data[3*h+2]}loadCell(h,d){return y=3*h,d.content=this._data[y+0],d.fg=this._data[y+1],d.bg=this._data[y+2],2097152&d.content&&(d.combinedData=this._combined[h]),268435456&d.bg&&(d.extended=this._extendedAttrs[h]),d}setCell(h,d){2097152&d.content&&(this._combined[h]=d.combinedData),268435456&d.bg&&(this._extendedAttrs[h]=d.extended),this._data[3*h+0]=d.content,this._data[3*h+1]=d.fg,this._data[3*h+2]=d.bg}setCellFromCodePoint(h,d,p,v,S,C){268435456&S&&(this._extendedAttrs[h]=C),this._data[3*h+0]=d|p<<22,this._data[3*h+1]=v,this._data[3*h+2]=S}addCodepointToCell(h,d){let p=this._data[3*h+0];2097152&p?this._combined[h]+=(0,g.stringFromCodePoint)(d):(2097151&p?(this._combined[h]=(0,g.stringFromCodePoint)(2097151&p)+(0,g.stringFromCodePoint)(d),p&=-2097152,p|=2097152):p=d|4194304,this._data[3*h+0]=p)}insertCells(h,d,p,v){if((h%=this.length)&&this.getWidth(h-1)===2&&this.setCellFromCodePoint(h-1,0,1,(v==null?void 0:v.fg)||0,(v==null?void 0:v.bg)||0,(v==null?void 0:v.extended)||new o.ExtendedAttrs),d<this.length-h){const S=new f.CellData;for(let C=this.length-h-d-1;C>=0;--C)this.setCell(h+d+C,this.loadCell(h+C,S));for(let C=0;C<d;++C)this.setCell(h+C,p)}else for(let S=h;S<this.length;++S)this.setCell(S,p);this.getWidth(this.length-1)===2&&this.setCellFromCodePoint(this.length-1,0,1,(v==null?void 0:v.fg)||0,(v==null?void 0:v.bg)||0,(v==null?void 0:v.extended)||new o.ExtendedAttrs)}deleteCells(h,d,p,v){if(h%=this.length,d<this.length-h){const S=new f.CellData;for(let C=0;C<this.length-h-d;++C)this.setCell(h+C,this.loadCell(h+d+C,S));for(let C=this.length-d;C<this.length;++C)this.setCell(C,p)}else for(let S=h;S<this.length;++S)this.setCell(S,p);h&&this.getWidth(h-1)===2&&this.setCellFromCodePoint(h-1,0,1,(v==null?void 0:v.fg)||0,(v==null?void 0:v.bg)||0,(v==null?void 0:v.extended)||new o.ExtendedAttrs),this.getWidth(h)!==0||this.hasContent(h)||this.setCellFromCodePoint(h,0,1,(v==null?void 0:v.fg)||0,(v==null?void 0:v.bg)||0,(v==null?void 0:v.extended)||new o.ExtendedAttrs)}replaceCells(h,d,p,v,S=!1){if(S)for(h&&this.getWidth(h-1)===2&&!this.isProtected(h-1)&&this.setCellFromCodePoint(h-1,0,1,(v==null?void 0:v.fg)||0,(v==null?void 0:v.bg)||0,(v==null?void 0:v.extended)||new o.ExtendedAttrs),d<this.length&&this.getWidth(d-1)===2&&!this.isProtected(d)&&this.setCellFromCodePoint(d,0,1,(v==null?void 0:v.fg)||0,(v==null?void 0:v.bg)||0,(v==null?void 0:v.extended)||new o.ExtendedAttrs);h<d&&h<this.length;)this.isProtected(h)||this.setCell(h,p),h++;else for(h&&this.getWidth(h-1)===2&&this.setCellFromCodePoint(h-1,0,1,(v==null?void 0:v.fg)||0,(v==null?void 0:v.bg)||0,(v==null?void 0:v.extended)||new o.ExtendedAttrs),d<this.length&&this.getWidth(d-1)===2&&this.setCellFromCodePoint(d,0,1,(v==null?void 0:v.fg)||0,(v==null?void 0:v.bg)||0,(v==null?void 0:v.extended)||new o.ExtendedAttrs);h<d&&h<this.length;)this.setCell(h++,p)}resize(h,d){if(h===this.length)return 4*this._data.length*2<this._data.buffer.byteLength;const p=3*h;if(h>this.length){if(this._data.buffer.byteLength>=4*p)this._data=new Uint32Array(this._data.buffer,0,p);else{const v=new Uint32Array(p);v.set(this._data),this._data=v}for(let v=this.length;v<h;++v)this.setCell(v,d)}else{this._data=this._data.subarray(0,p);const v=Object.keys(this._combined);for(let C=0;C<v.length;C++){const b=parseInt(v[C],10);b>=h&&delete this._combined[b]}const S=Object.keys(this._extendedAttrs);for(let C=0;C<S.length;C++){const b=parseInt(S[C],10);b>=h&&delete this._extendedAttrs[b]}}return this.length=h,4*p*2<this._data.buffer.byteLength}cleanupMemory(){if(4*this._data.length*2<this._data.buffer.byteLength){const h=new Uint32Array(this._data.length);return h.set(this._data),this._data=h,1}return 0}fill(h,d=!1){if(d)for(let p=0;p<this.length;++p)this.isProtected(p)||this.setCell(p,h);else{this._combined={},this._extendedAttrs={};for(let p=0;p<this.length;++p)this.setCell(p,h)}}copyFrom(h){this.length!==h.length?this._data=new Uint32Array(h._data):this._data.set(h._data),this.length=h.length,this._combined={};for(const d in h._combined)this._combined[d]=h._combined[d];this._extendedAttrs={};for(const d in h._extendedAttrs)this._extendedAttrs[d]=h._extendedAttrs[d];this.isWrapped=h.isWrapped}clone(){const h=new m(0);h._data=new Uint32Array(this._data),h.length=this.length;for(const d in this._combined)h._combined[d]=this._combined[d];for(const d in this._extendedAttrs)h._extendedAttrs[d]=this._extendedAttrs[d];return h.isWrapped=this.isWrapped,h}getTrimmedLength(){for(let h=this.length-1;h>=0;--h)if(4194303&this._data[3*h+0])return h+(this._data[3*h+0]>>22);return 0}getNoBgTrimmedLength(){for(let h=this.length-1;h>=0;--h)if(4194303&this._data[3*h+0]||50331648&this._data[3*h+2])return h+(this._data[3*h+0]>>22);return 0}copyCellsFrom(h,d,p,v,S){const C=h._data;if(S)for(let w=v-1;w>=0;w--){for(let E=0;E<3;E++)this._data[3*(p+w)+E]=C[3*(d+w)+E];268435456&C[3*(d+w)+2]&&(this._extendedAttrs[p+w]=h._extendedAttrs[d+w])}else for(let w=0;w<v;w++){for(let E=0;E<3;E++)this._data[3*(p+w)+E]=C[3*(d+w)+E];268435456&C[3*(d+w)+2]&&(this._extendedAttrs[p+w]=h._extendedAttrs[d+w])}const b=Object.keys(h._combined);for(let w=0;w<b.length;w++){const E=parseInt(b[w],10);E>=d&&(this._combined[E-d+p]=h._combined[E])}}translateToString(h=!1,d=0,p=this.length){h&&(p=Math.min(p,this.getTrimmedLength()));let v="";for(;d<p;){const S=this._data[3*d+0],C=2097151&S;v+=2097152&S?this._combined[d]:C?(0,g.stringFromCodePoint)(C):u.WHITESPACE_CELL_CHAR,d+=S>>22||1}return v}}s.BufferLine=m},4841:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.getRangeLength=void 0,s.getRangeLength=function(l,o){if(l.start.y>l.end.y)throw new Error(`Buffer range end (${l.end.x}, ${l.end.y}) cannot be before start (${l.start.x}, ${l.start.y})`);return o*(l.end.y-l.start.y)+(l.end.x-l.start.x+1)}},4634:(a,s)=>{function l(o,f,u){if(f===o.length-1)return o[f].getTrimmedLength();const g=!o[f].hasContent(u-1)&&o[f].getWidth(u-1)===1,y=o[f+1].getWidth(0)===2;return g&&y?u-1:u}Object.defineProperty(s,"__esModule",{value:!0}),s.getWrappedLineTrimmedLength=s.reflowSmallerGetNewLineLengths=s.reflowLargerApplyNewLayout=s.reflowLargerCreateNewLayout=s.reflowLargerGetLinesToRemove=void 0,s.reflowLargerGetLinesToRemove=function(o,f,u,g,y){const m=[];for(let _=0;_<o.length-1;_++){let h=_,d=o.get(++h);if(!d.isWrapped)continue;const p=[o.get(_)];for(;h<o.length&&d.isWrapped;)p.push(d),d=o.get(++h);if(g>=_&&g<h){_+=p.length-1;continue}let v=0,S=l(p,v,f),C=1,b=0;for(;C<p.length;){const E=l(p,C,f),x=E-b,R=u-S,D=Math.min(x,R);p[v].copyCellsFrom(p[C],b,S,D,!1),S+=D,S===u&&(v++,S=0),b+=D,b===E&&(C++,b=0),S===0&&v!==0&&p[v-1].getWidth(u-1)===2&&(p[v].copyCellsFrom(p[v-1],u-1,S++,1,!1),p[v-1].setCell(u-1,y))}p[v].replaceCells(S,u,y);let w=0;for(let E=p.length-1;E>0&&(E>v||p[E].getTrimmedLength()===0);E--)w++;w>0&&(m.push(_+p.length-w),m.push(w)),_+=p.length-1}return m},s.reflowLargerCreateNewLayout=function(o,f){const u=[];let g=0,y=f[g],m=0;for(let _=0;_<o.length;_++)if(y===_){const h=f[++g];o.onDeleteEmitter.fire({index:_-m,amount:h}),_+=h-1,m+=h,y=f[++g]}else u.push(_);return{layout:u,countRemoved:m}},s.reflowLargerApplyNewLayout=function(o,f){const u=[];for(let g=0;g<f.length;g++)u.push(o.get(f[g]));for(let g=0;g<u.length;g++)o.set(g,u[g]);o.length=f.length},s.reflowSmallerGetNewLineLengths=function(o,f,u){const g=[],y=o.map((d,p)=>l(o,p,f)).reduce((d,p)=>d+p);let m=0,_=0,h=0;for(;h<y;){if(y-h<u){g.push(y-h);break}m+=u;const d=l(o,_,f);m>d&&(m-=d,_++);const p=o[_].getWidth(m-1)===2;p&&m--;const v=p?u-1:u;g.push(v),h+=v}return g},s.getWrappedLineTrimmedLength=l},5295:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.BufferSet=void 0;const o=l(8460),f=l(844),u=l(9092);class g extends f.Disposable{constructor(m,_){super(),this._optionsService=m,this._bufferService=_,this._onBufferActivate=this.register(new o.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 u.Buffer(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new u.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(m){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(m),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(m,_){this._normal.resize(m,_),this._alt.resize(m,_),this.setupTabStops(m)}setupTabStops(m){this._normal.setupTabStops(m),this._alt.setupTabStops(m)}}s.BufferSet=g},511:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.CellData=void 0;const o=l(482),f=l(643),u=l(3734);class g extends u.AttributeData{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new u.ExtendedAttrs,this.combinedData=""}static fromCharData(m){const _=new g;return _.setFromCharData(m),_}isCombined(){return 2097152&this.content}getWidth(){return this.content>>22}getChars(){return 2097152&this.content?this.combinedData:2097151&this.content?(0,o.stringFromCodePoint)(2097151&this.content):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):2097151&this.content}setFromCharData(m){this.fg=m[f.CHAR_DATA_ATTR_INDEX],this.bg=0;let _=!1;if(m[f.CHAR_DATA_CHAR_INDEX].length>2)_=!0;else if(m[f.CHAR_DATA_CHAR_INDEX].length===2){const h=m[f.CHAR_DATA_CHAR_INDEX].charCodeAt(0);if(55296<=h&&h<=56319){const d=m[f.CHAR_DATA_CHAR_INDEX].charCodeAt(1);56320<=d&&d<=57343?this.content=1024*(h-55296)+d-56320+65536|m[f.CHAR_DATA_WIDTH_INDEX]<<22:_=!0}else _=!0}else this.content=m[f.CHAR_DATA_CHAR_INDEX].charCodeAt(0)|m[f.CHAR_DATA_WIDTH_INDEX]<<22;_&&(this.combinedData=m[f.CHAR_DATA_CHAR_INDEX],this.content=2097152|m[f.CHAR_DATA_WIDTH_INDEX]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}}s.CellData=g},643:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.WHITESPACE_CELL_CODE=s.WHITESPACE_CELL_WIDTH=s.WHITESPACE_CELL_CHAR=s.NULL_CELL_CODE=s.NULL_CELL_WIDTH=s.NULL_CELL_CHAR=s.CHAR_DATA_CODE_INDEX=s.CHAR_DATA_WIDTH_INDEX=s.CHAR_DATA_CHAR_INDEX=s.CHAR_DATA_ATTR_INDEX=s.DEFAULT_EXT=s.DEFAULT_ATTR=s.DEFAULT_COLOR=void 0,s.DEFAULT_COLOR=0,s.DEFAULT_ATTR=256|s.DEFAULT_COLOR<<9,s.DEFAULT_EXT=0,s.CHAR_DATA_ATTR_INDEX=0,s.CHAR_DATA_CHAR_INDEX=1,s.CHAR_DATA_WIDTH_INDEX=2,s.CHAR_DATA_CODE_INDEX=3,s.NULL_CELL_CHAR="",s.NULL_CELL_WIDTH=1,s.NULL_CELL_CODE=0,s.WHITESPACE_CELL_CHAR=" ",s.WHITESPACE_CELL_WIDTH=1,s.WHITESPACE_CELL_CODE=32},4863:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.Marker=void 0;const o=l(8460),f=l(844);class u{get id(){return this._id}constructor(y){this.line=y,this.isDisposed=!1,this._disposables=[],this._id=u._nextId++,this._onDispose=this.register(new o.EventEmitter),this.onDispose=this._onDispose.event}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),(0,f.disposeArray)(this._disposables),this._disposables.length=0)}register(y){return this._disposables.push(y),y}}s.Marker=u,u._nextId=1},7116:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.DEFAULT_CHARSET=s.CHARSETS=void 0,s.CHARSETS={},s.DEFAULT_CHARSET=s.CHARSETS.B,s.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:"≥","{":"π","|":"≠","}":"£","~":"·"},s.CHARSETS.A={"#":"£"},s.CHARSETS.B=void 0,s.CHARSETS[4]={"#":"£","@":"¾","[":"ij","\\":"½","]":"|","{":"¨","|":"f","}":"¼","~":"´"},s.CHARSETS.C=s.CHARSETS[5]={"[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},s.CHARSETS.R={"#":"£","@":"à","[":"°","\\":"ç","]":"§","{":"é","|":"ù","}":"è","~":"¨"},s.CHARSETS.Q={"@":"à","[":"â","\\":"ç","]":"ê","^":"î","`":"ô","{":"é","|":"ù","}":"è","~":"û"},s.CHARSETS.K={"@":"§","[":"Ä","\\":"Ö","]":"Ü","{":"ä","|":"ö","}":"ü","~":"ß"},s.CHARSETS.Y={"#":"£","@":"§","[":"°","\\":"ç","]":"é","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},s.CHARSETS.E=s.CHARSETS[6]={"@":"Ä","[":"Æ","\\":"Ø","]":"Å","^":"Ü","`":"ä","{":"æ","|":"ø","}":"å","~":"ü"},s.CHARSETS.Z={"#":"£","@":"§","[":"¡","\\":"Ñ","]":"¿","{":"°","|":"ñ","}":"ç"},s.CHARSETS.H=s.CHARSETS[7]={"@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},s.CHARSETS["="]={"#":"ù","@":"à","[":"é","\\":"ç","]":"ê","^":"î",_:"è","`":"ô","{":"ä","|":"ö","}":"ü","~":"û"}},2584:(a,s)=>{var l,o,f;Object.defineProperty(s,"__esModule",{value:!0}),s.C1_ESCAPED=s.C1=s.C0=void 0,function(u){u.NUL="\0",u.SOH="",u.STX="",u.ETX="",u.EOT="",u.ENQ="",u.ACK="",u.BEL="\x07",u.BS="\b",u.HT=" ",u.LF=`
`,u.VT="\v",u.FF="\f",u.CR="\r",u.SO="",u.SI="",u.DLE="",u.DC1="",u.DC2="",u.DC3="",u.DC4="",u.NAK="",u.SYN="",u.ETB="",u.CAN="",u.EM="",u.SUB="",u.ESC="\x1B",u.FS="",u.GS="",u.RS="",u.US="",u.SP=" ",u.DEL=""}(l||(s.C0=l={})),function(u){u.PAD="",u.HOP="",u.BPH="",u.NBH="",u.IND="",u.NEL="
",u.SSA="",u.ESA="",u.HTS="",u.HTJ="",u.VTS="",u.PLD="",u.PLU="",u.RI="",u.SS2="",u.SS3="",u.DCS="",u.PU1="",u.PU2="",u.STS="",u.CCH="",u.MW="",u.SPA="",u.EPA="",u.SOS="",u.SGCI="",u.SCI="",u.CSI="",u.ST="",u.OSC="",u.PM="",u.APC=""}(o||(s.C1=o={})),function(u){u.ST=`${l.ESC}\\`}(f||(s.C1_ESCAPED=f={}))},7399:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.evaluateKeyboardEvent=void 0;const o=l(2584),f={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:["'",'"']};s.evaluateKeyboardEvent=function(u,g,y,m){const _={type:0,cancel:!1,key:void 0},h=(u.shiftKey?1:0)|(u.altKey?2:0)|(u.ctrlKey?4:0)|(u.metaKey?8:0);switch(u.keyCode){case 0:u.key==="UIKeyInputUpArrow"?_.key=g?o.C0.ESC+"OA":o.C0.ESC+"[A":u.key==="UIKeyInputLeftArrow"?_.key=g?o.C0.ESC+"OD":o.C0.ESC+"[D":u.key==="UIKeyInputRightArrow"?_.key=g?o.C0.ESC+"OC":o.C0.ESC+"[C":u.key==="UIKeyInputDownArrow"&&(_.key=g?o.C0.ESC+"OB":o.C0.ESC+"[B");break;case 8:if(u.altKey){_.key=o.C0.ESC+o.C0.DEL;break}_.key=o.C0.DEL;break;case 9:if(u.shiftKey){_.key=o.C0.ESC+"[Z";break}_.key=o.C0.HT,_.cancel=!0;break;case 13:_.key=u.altKey?o.C0.ESC+o.C0.CR:o.C0.CR,_.cancel=!0;break;case 27:_.key=o.C0.ESC,u.altKey&&(_.key=o.C0.ESC+o.C0.ESC),_.cancel=!0;break;case 37:if(u.metaKey)break;h?(_.key=o.C0.ESC+"[1;"+(h+1)+"D",_.key===o.C0.ESC+"[1;3D"&&(_.key=o.C0.ESC+(y?"b":"[1;5D"))):_.key=g?o.C0.ESC+"OD":o.C0.ESC+"[D";break;case 39:if(u.metaKey)break;h?(_.key=o.C0.ESC+"[1;"+(h+1)+"C",_.key===o.C0.ESC+"[1;3C"&&(_.key=o.C0.ESC+(y?"f":"[1;5C"))):_.key=g?o.C0.ESC+"OC":o.C0.ESC+"[C";break;case 38:if(u.metaKey)break;h?(_.key=o.C0.ESC+"[1;"+(h+1)+"A",y||_.key!==o.C0.ESC+"[1;3A"||(_.key=o.C0.ESC+"[1;5A")):_.key=g?o.C0.ESC+"OA":o.C0.ESC+"[A";break;case 40:if(u.metaKey)break;h?(_.key=o.C0.ESC+"[1;"+(h+1)+"B",y||_.key!==o.C0.ESC+"[1;3B"||(_.key=o.C0.ESC+"[1;5B")):_.key=g?o.C0.ESC+"OB":o.C0.ESC+"[B";break;case 45:u.shiftKey||u.ctrlKey||(_.key=o.C0.ESC+"[2~");break;case 46:_.key=h?o.C0.ESC+"[3;"+(h+1)+"~":o.C0.ESC+"[3~";break;case 36:_.key=h?o.C0.ESC+"[1;"+(h+1)+"H":g?o.C0.ESC+"OH":o.C0.ESC+"[H";break;case 35:_.key=h?o.C0.ESC+"[1;"+(h+1)+"F":g?o.C0.ESC+"OF":o.C0.ESC+"[F";break;case 33:u.shiftKey?_.type=2:u.ctrlKey?_.key=o.C0.ESC+"[5;"+(h+1)+"~":_.key=o.C0.ESC+"[5~";break;case 34:u.shiftKey?_.type=3:u.ctrlKey?_.key=o.C0.ESC+"[6;"+(h+1)+"~":_.key=o.C0.ESC+"[6~";break;case 112:_.key=h?o.C0.ESC+"[1;"+(h+1)+"P":o.C0.ESC+"OP";break;case 113:_.key=h?o.C0.ESC+"[1;"+(h+1)+"Q":o.C0.ESC+"OQ";break;case 114:_.key=h?o.C0.ESC+"[1;"+(h+1)+"R":o.C0.ESC+"OR";break;case 115:_.key=h?o.C0.ESC+"[1;"+(h+1)+"S":o.C0.ESC+"OS";break;case 116:_.key=h?o.C0.ESC+"[15;"+(h+1)+"~":o.C0.ESC+"[15~";break;case 117:_.key=h?o.C0.ESC+"[17;"+(h+1)+"~":o.C0.ESC+"[17~";break;case 118:_.key=h?o.C0.ESC+"[18;"+(h+1)+"~":o.C0.ESC+"[18~";break;case 119:_.key=h?o.C0.ESC+"[19;"+(h+1)+"~":o.C0.ESC+"[19~";break;case 120:_.key=h?o.C0.ESC+"[20;"+(h+1)+"~":o.C0.ESC+"[20~";break;case 121:_.key=h?o.C0.ESC+"[21;"+(h+1)+"~":o.C0.ESC+"[21~";break;case 122:_.key=h?o.C0.ESC+"[23;"+(h+1)+"~":o.C0.ESC+"[23~";break;case 123:_.key=h?o.C0.ESC+"[24;"+(h+1)+"~":o.C0.ESC+"[24~";break;default:if(!u.ctrlKey||u.shiftKey||u.altKey||u.metaKey)if(y&&!m||!u.altKey||u.metaKey)!y||u.altKey||u.ctrlKey||u.shiftKey||!u.metaKey?u.key&&!u.ctrlKey&&!u.altKey&&!u.metaKey&&u.keyCode>=48&&u.key.length===1?_.key=u.key:u.key&&u.ctrlKey&&(u.key==="_"&&(_.key=o.C0.US),u.key==="@"&&(_.key=o.C0.NUL)):u.keyCode===65&&(_.type=1);else{const d=f[u.keyCode],p=d==null?void 0:d[u.shiftKey?1:0];if(p)_.key=o.C0.ESC+p;else if(u.keyCode>=65&&u.keyCode<=90){const v=u.ctrlKey?u.keyCode-64:u.keyCode+32;let S=String.fromCharCode(v);u.shiftKey&&(S=S.toUpperCase()),_.key=o.C0.ESC+S}else if(u.keyCode===32)_.key=o.C0.ESC+(u.ctrlKey?o.C0.NUL:" ");else if(u.key==="Dead"&&u.code.startsWith("Key")){let v=u.code.slice(3,4);u.shiftKey||(v=v.toLowerCase()),_.key=o.C0.ESC+v,_.cancel=!0}}else u.keyCode>=65&&u.keyCode<=90?_.key=String.fromCharCode(u.keyCode-64):u.keyCode===32?_.key=o.C0.NUL:u.keyCode>=51&&u.keyCode<=55?_.key=String.fromCharCode(u.keyCode-51+27):u.keyCode===56?_.key=o.C0.DEL:u.keyCode===219?_.key=o.C0.ESC:u.keyCode===220?_.key=o.C0.FS:u.keyCode===221&&(_.key=o.C0.GS)}return _}},482:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.Utf8ToUtf32=s.StringToUtf32=s.utf32ToString=s.stringFromCodePoint=void 0,s.stringFromCodePoint=function(l){return l>65535?(l-=65536,String.fromCharCode(55296+(l>>10))+String.fromCharCode(l%1024+56320)):String.fromCharCode(l)},s.utf32ToString=function(l,o=0,f=l.length){let u="";for(let g=o;g<f;++g){let y=l[g];y>65535?(y-=65536,u+=String.fromCharCode(55296+(y>>10))+String.fromCharCode(y%1024+56320)):u+=String.fromCharCode(y)}return u},s.StringToUtf32=class{constructor(){this._interim=0}clear(){this._interim=0}decode(l,o){const f=l.length;if(!f)return 0;let u=0,g=0;if(this._interim){const y=l.charCodeAt(g++);56320<=y&&y<=57343?o[u++]=1024*(this._interim-55296)+y-56320+65536:(o[u++]=this._interim,o[u++]=y),this._interim=0}for(let y=g;y<f;++y){const m=l.charCodeAt(y);if(55296<=m&&m<=56319){if(++y>=f)return this._interim=m,u;const _=l.charCodeAt(y);56320<=_&&_<=57343?o[u++]=1024*(m-55296)+_-56320+65536:(o[u++]=m,o[u++]=_)}else m!==65279&&(o[u++]=m)}return u}},s.Utf8ToUtf32=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(l,o){const f=l.length;if(!f)return 0;let u,g,y,m,_=0,h=0,d=0;if(this.interim[0]){let S=!1,C=this.interim[0];C&=(224&C)==192?31:(240&C)==224?15:7;let b,w=0;for(;(b=63&this.interim[++w])&&w<4;)C<<=6,C|=b;const E=(224&this.interim[0])==192?2:(240&this.interim[0])==224?3:4,x=E-w;for(;d<x;){if(d>=f)return 0;if(b=l[d++],(192&b)!=128){d--,S=!0;break}this.interim[w++]=b,C<<=6,C|=63&b}S||(E===2?C<128?d--:o[_++]=C:E===3?C<2048||C>=55296&&C<=57343||C===65279||(o[_++]=C):C<65536||C>1114111||(o[_++]=C)),this.interim.fill(0)}const p=f-4;let v=d;for(;v<f;){for(;!(!(v<p)||128&(u=l[v])||128&(g=l[v+1])||128&(y=l[v+2])||128&(m=l[v+3]));)o[_++]=u,o[_++]=g,o[_++]=y,o[_++]=m,v+=4;if(u=l[v++],u<128)o[_++]=u;else if((224&u)==192){if(v>=f)return this.interim[0]=u,_;if(g=l[v++],(192&g)!=128){v--;continue}if(h=(31&u)<<6|63&g,h<128){v--;continue}o[_++]=h}else if((240&u)==224){if(v>=f)return this.interim[0]=u,_;if(g=l[v++],(192&g)!=128){v--;continue}if(v>=f)return this.interim[0]=u,this.interim[1]=g,_;if(y=l[v++],(192&y)!=128){v--;continue}if(h=(15&u)<<12|(63&g)<<6|63&y,h<2048||h>=55296&&h<=57343||h===65279)continue;o[_++]=h}else if((248&u)==240){if(v>=f)return this.interim[0]=u,_;if(g=l[v++],(192&g)!=128){v--;continue}if(v>=f)return this.interim[0]=u,this.interim[1]=g,_;if(y=l[v++],(192&y)!=128){v--;continue}if(v>=f)return this.interim[0]=u,this.interim[1]=g,this.interim[2]=y,_;if(m=l[v++],(192&m)!=128){v--;continue}if(h=(7&u)<<18|(63&g)<<12|(63&y)<<6|63&m,h<65536||h>1114111)continue;o[_++]=h}}return _}}},225:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.UnicodeV6=void 0;const l=[[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]],o=[[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 f;s.UnicodeV6=class{constructor(){if(this.version="6",!f){f=new Uint8Array(65536),f.fill(1),f[0]=0,f.fill(0,1,32),f.fill(0,127,160),f.fill(2,4352,4448),f[9001]=2,f[9002]=2,f.fill(2,11904,42192),f[12351]=1,f.fill(2,44032,55204),f.fill(2,63744,64256),f.fill(2,65040,65050),f.fill(2,65072,65136),f.fill(2,65280,65377),f.fill(2,65504,65511);for(let u=0;u<l.length;++u)f.fill(0,l[u][0],l[u][1]+1)}}wcwidth(u){return u<32?0:u<127?1:u<65536?f[u]:function(g,y){let m,_=0,h=y.length-1;if(g<y[0][0]||g>y[h][1])return!1;for(;h>=_;)if(m=_+h>>1,g>y[m][1])_=m+1;else{if(!(g<y[m][0]))return!0;h=m-1}return!1}(u,o)?0:u>=131072&&u<=196605||u>=196608&&u<=262141?2:1}}},5981:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.WriteBuffer=void 0;const o=l(8460),f=l(844);class u extends f.Disposable{constructor(y){super(),this._action=y,this._writeBuffer=[],this._callbacks=[],this._pendingData=0,this._bufferOffset=0,this._isSyncWriting=!1,this._syncCalls=0,this._didUserInput=!1,this._onWriteParsed=this.register(new o.EventEmitter),this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(y,m){if(m!==void 0&&this._syncCalls>m)return void(this._syncCalls=0);if(this._pendingData+=y.length,this._writeBuffer.push(y),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;let _;for(this._isSyncWriting=!0;_=this._writeBuffer.shift();){this._action(_);const h=this._callbacks.shift();h&&h()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(y,m){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+=y.length,this._writeBuffer.push(y),this._callbacks.push(m),void this._innerWrite();setTimeout(()=>this._innerWrite())}this._pendingData+=y.length,this._writeBuffer.push(y),this._callbacks.push(m)}_innerWrite(y=0,m=!0){const _=y||Date.now();for(;this._writeBuffer.length>this._bufferOffset;){const h=this._writeBuffer[this._bufferOffset],d=this._action(h,m);if(d){const v=S=>Date.now()-_>=12?setTimeout(()=>this._innerWrite(0,S)):this._innerWrite(_,S);return void d.catch(S=>(queueMicrotask(()=>{throw S}),Promise.resolve(!1))).then(v)}const p=this._callbacks[this._bufferOffset];if(p&&p(),this._bufferOffset++,this._pendingData-=h.length,Date.now()-_>=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()}}s.WriteBuffer=u},5941:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.toRgbString=s.parseColor=void 0;const l=/^([\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})$/,o=/^[\da-f]+$/;function f(u,g){const y=u.toString(16),m=y.length<2?"0"+y:y;switch(g){case 4:return y[0];case 8:return m;case 12:return(m+m).slice(0,3);default:return m+m}}s.parseColor=function(u){if(!u)return;let g=u.toLowerCase();if(g.indexOf("rgb:")===0){g=g.slice(4);const y=l.exec(g);if(y){const m=y[1]?15:y[4]?255:y[7]?4095:65535;return[Math.round(parseInt(y[1]||y[4]||y[7]||y[10],16)/m*255),Math.round(parseInt(y[2]||y[5]||y[8]||y[11],16)/m*255),Math.round(parseInt(y[3]||y[6]||y[9]||y[12],16)/m*255)]}}else if(g.indexOf("#")===0&&(g=g.slice(1),o.exec(g)&&[3,6,9,12].includes(g.length))){const y=g.length/3,m=[0,0,0];for(let _=0;_<3;++_){const h=parseInt(g.slice(y*_,y*_+y),16);m[_]=y===1?h<<4:y===2?h:y===3?h>>4:h>>8}return m}},s.toRgbString=function(u,g=16){const[y,m,_]=u;return`rgb:${f(y,g)}/${f(m,g)}/${f(_,g)}`}},5770:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.PAYLOAD_LIMIT=void 0,s.PAYLOAD_LIMIT=1e7},6351:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.DcsHandler=s.DcsParser=void 0;const o=l(482),f=l(8742),u=l(5770),g=[];s.DcsParser=class{constructor(){this._handlers=Object.create(null),this._active=g,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=g}registerHandler(m,_){this._handlers[m]===void 0&&(this._handlers[m]=[]);const h=this._handlers[m];return h.push(_),{dispose:()=>{const d=h.indexOf(_);d!==-1&&h.splice(d,1)}}}clearHandler(m){this._handlers[m]&&delete this._handlers[m]}setHandlerFallback(m){this._handlerFb=m}reset(){if(this._active.length)for(let m=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;m>=0;--m)this._active[m].unhook(!1);this._stack.paused=!1,this._active=g,this._ident=0}hook(m,_){if(this.reset(),this._ident=m,this._active=this._handlers[m]||g,this._active.length)for(let h=this._active.length-1;h>=0;h--)this._active[h].hook(_);else this._handlerFb(this._ident,"HOOK",_)}put(m,_,h){if(this._active.length)for(let d=this._active.length-1;d>=0;d--)this._active[d].put(m,_,h);else this._handlerFb(this._ident,"PUT",(0,o.utf32ToString)(m,_,h))}unhook(m,_=!0){if(this._active.length){let h=!1,d=this._active.length-1,p=!1;if(this._stack.paused&&(d=this._stack.loopPosition-1,h=_,p=this._stack.fallThrough,this._stack.paused=!1),!p&&h===!1){for(;d>=0&&(h=this._active[d].unhook(m),h!==!0);d--)if(h instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=d,this._stack.fallThrough=!1,h;d--}for(;d>=0;d--)if(h=this._active[d].unhook(!1),h instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=d,this._stack.fallThrough=!0,h}else this._handlerFb(this._ident,"UNHOOK",m);this._active=g,this._ident=0}};const y=new f.Params;y.addParam(0),s.DcsHandler=class{constructor(m){this._handler=m,this._data="",this._params=y,this._hitLimit=!1}hook(m){this._params=m.length>1||m.params[0]?m.clone():y,this._data="",this._hitLimit=!1}put(m,_,h){this._hitLimit||(this._data+=(0,o.utf32ToString)(m,_,h),this._data.length>u.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}unhook(m){let _=!1;if(this._hitLimit)_=!1;else if(m&&(_=this._handler(this._data,this._params),_ instanceof Promise))return _.then(h=>(this._params=y,this._data="",this._hitLimit=!1,h));return this._params=y,this._data="",this._hitLimit=!1,_}}},2015:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.EscapeSequenceParser=s.VT500_TRANSITION_TABLE=s.TransitionTable=void 0;const o=l(844),f=l(8742),u=l(6242),g=l(6351);class y{constructor(d){this.table=new Uint8Array(d)}setDefault(d,p){this.table.fill(d<<4|p)}add(d,p,v,S){this.table[p<<8|d]=v<<4|S}addMany(d,p,v,S){for(let C=0;C<d.length;C++)this.table[p<<8|d[C]]=v<<4|S}}s.TransitionTable=y;const m=160;s.VT500_TRANSITION_TABLE=function(){const h=new y(4095),d=Array.apply(null,Array(256)).map((w,E)=>E),p=(w,E)=>d.slice(w,E),v=p(32,127),S=p(0,24);S.push(25),S.push.apply(S,p(28,32));const C=p(0,14);let b;for(b in h.setDefault(1,0),h.addMany(v,0,2,0),C)h.addMany([24,26,153,154],b,3,0),h.addMany(p(128,144),b,3,0),h.addMany(p(144,152),b,3,0),h.add(156,b,0,0),h.add(27,b,11,1),h.add(157,b,4,8),h.addMany([152,158,159],b,0,7),h.add(155,b,11,3),h.add(144,b,11,9);return h.addMany(S,0,3,0),h.addMany(S,1,3,1),h.add(127,1,0,1),h.addMany(S,8,0,8),h.addMany(S,3,3,3),h.add(127,3,0,3),h.addMany(S,4,3,4),h.add(127,4,0,4),h.addMany(S,6,3,6),h.addMany(S,5,3,5),h.add(127,5,0,5),h.addMany(S,2,3,2),h.add(127,2,0,2),h.add(93,1,4,8),h.addMany(v,8,5,8),h.add(127,8,5,8),h.addMany([156,27,24,26,7],8,6,0),h.addMany(p(28,32),8,0,8),h.addMany([88,94,95],1,0,7),h.addMany(v,7,0,7),h.addMany(S,7,0,7),h.add(156,7,0,0),h.add(127,7,0,7),h.add(91,1,11,3),h.addMany(p(64,127),3,7,0),h.addMany(p(48,60),3,8,4),h.addMany([60,61,62,63],3,9,4),h.addMany(p(48,60),4,8,4),h.addMany(p(64,127),4,7,0),h.addMany([60,61,62,63],4,0,6),h.addMany(p(32,64),6,0,6),h.add(127,6,0,6),h.addMany(p(64,127),6,0,0),h.addMany(p(32,48),3,9,5),h.addMany(p(32,48),5,9,5),h.addMany(p(48,64),5,0,6),h.addMany(p(64,127),5,7,0),h.addMany(p(32,48),4,9,5),h.addMany(p(32,48),1,9,2),h.addMany(p(32,48),2,9,2),h.addMany(p(48,127),2,10,0),h.addMany(p(48,80),1,10,0),h.addMany(p(81,88),1,10,0),h.addMany([89,90,92],1,10,0),h.addMany(p(96,127),1,10,0),h.add(80,1,11,9),h.addMany(S,9,0,9),h.add(127,9,0,9),h.addMany(p(28,32),9,0,9),h.addMany(p(32,48),9,9,12),h.addMany(p(48,60),9,8,10),h.addMany([60,61,62,63],9,9,10),h.addMany(S,11,0,11),h.addMany(p(32,128),11,0,11),h.addMany(p(28,32),11,0,11),h.addMany(S,10,0,10),h.add(127,10,0,10),h.addMany(p(28,32),10,0,10),h.addMany(p(48,60),10,8,10),h.addMany([60,61,62,63],10,0,11),h.addMany(p(32,48),10,9,12),h.addMany(S,12,0,12),h.add(127,12,0,12),h.addMany(p(28,32),12,0,12),h.addMany(p(32,48),12,9,12),h.addMany(p(48,64),12,0,11),h.addMany(p(64,127),12,12,13),h.addMany(p(64,127),10,12,13),h.addMany(p(64,127),9,12,13),h.addMany(S,13,13,13),h.addMany(v,13,13,13),h.add(127,13,0,13),h.addMany([27,156,24,26],13,14,0),h.add(m,0,2,0),h.add(m,8,5,8),h.add(m,6,0,6),h.add(m,11,0,11),h.add(m,13,13,13),h}();class _ extends o.Disposable{constructor(d=s.VT500_TRANSITION_TABLE){super(),this._transitions=d,this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0},this.initialState=0,this.currentState=this.initialState,this._params=new f.Params,this._params.addParam(0),this._collect=0,this.precedingCodepoint=0,this._printHandlerFb=(p,v,S)=>{},this._executeHandlerFb=p=>{},this._csiHandlerFb=(p,v)=>{},this._escHandlerFb=p=>{},this._errorHandlerFb=p=>p,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this.register((0,o.toDisposable)(()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)})),this._oscParser=this.register(new u.OscParser),this._dcsParser=this.register(new g.DcsParser),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:"\\"},()=>!0)}_identifier(d,p=[64,126]){let v=0;if(d.prefix){if(d.prefix.length>1)throw new Error("only one byte as prefix supported");if(v=d.prefix.charCodeAt(0),v&&60>v||v>63)throw new Error("prefix must be in range 0x3c .. 0x3f")}if(d.intermediates){if(d.intermediates.length>2)throw new Error("only two bytes as intermediates are supported");for(let C=0;C<d.intermediates.length;++C){const b=d.intermediates.charCodeAt(C);if(32>b||b>47)throw new Error("intermediate must be in range 0x20 .. 0x2f");v<<=8,v|=b}}if(d.final.length!==1)throw new Error("final must be a single byte");const S=d.final.charCodeAt(0);if(p[0]>S||S>p[1])throw new Error(`final must be in range ${p[0]} .. ${p[1]}`);return v<<=8,v|=S,v}identToString(d){const p=[];for(;d;)p.push(String.fromCharCode(255&d)),d>>=8;return p.reverse().join("")}setPrintHandler(d){this._printHandler=d}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(d,p){const v=this._identifier(d,[48,126]);this._escHandlers[v]===void 0&&(this._escHandlers[v]=[]);const S=this._escHandlers[v];return S.push(p),{dispose:()=>{const C=S.indexOf(p);C!==-1&&S.splice(C,1)}}}clearEscHandler(d){this._escHandlers[this._identifier(d,[48,126])]&&delete this._escHandlers[this._identifier(d,[48,126])]}setEscHandlerFallback(d){this._escHandlerFb=d}setExecuteHandler(d,p){this._executeHandlers[d.charCodeAt(0)]=p}clearExecuteHandler(d){this._executeHandlers[d.charCodeAt(0)]&&delete this._executeHandlers[d.charCodeAt(0)]}setExecuteHandlerFallback(d){this._executeHandlerFb=d}registerCsiHandler(d,p){const v=this._identifier(d);this._csiHandlers[v]===void 0&&(this._csiHandlers[v]=[]);const S=this._csiHandlers[v];return S.push(p),{dispose:()=>{const C=S.indexOf(p);C!==-1&&S.splice(C,1)}}}clearCsiHandler(d){this._csiHandlers[this._identifier(d)]&&delete this._csiHandlers[this._identifier(d)]}setCsiHandlerFallback(d){this._csiHandlerFb=d}registerDcsHandler(d,p){return this._dcsParser.registerHandler(this._identifier(d),p)}clearDcsHandler(d){this._dcsParser.clearHandler(this._identifier(d))}setDcsHandlerFallback(d){this._dcsParser.setHandlerFallback(d)}registerOscHandler(d,p){return this._oscParser.registerHandler(d,p)}clearOscHandler(d){this._oscParser.clearHandler(d)}setOscHandlerFallback(d){this._oscParser.setHandlerFallback(d)}setErrorHandler(d){this._errorHandler=d}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,this._parseStack.state!==0&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(d,p,v,S,C){this._parseStack.state=d,this._parseStack.handlers=p,this._parseStack.handlerPos=v,this._parseStack.transition=S,this._parseStack.chunkPos=C}parse(d,p,v){let S,C=0,b=0,w=0;if(this._parseStack.state)if(this._parseStack.state===2)this._parseStack.state=0,w=this._parseStack.chunkPos+1;else{if(v===void 0||this._parseStack.state===1)throw this._parseStack.state=1,new Error("improper continuation due to previous async handler, giving up parsing");const E=this._parseStack.handlers;let x=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(v===!1&&x>-1){for(;x>=0&&(S=E[x](this._params),S!==!0);x--)if(S instanceof Promise)return this._parseStack.handlerPos=x,S}this._parseStack.handlers=[];break;case 4:if(v===!1&&x>-1){for(;x>=0&&(S=E[x](),S!==!0);x--)if(S instanceof Promise)return this._parseStack.handlerPos=x,S}this._parseStack.handlers=[];break;case 6:if(C=d[this._parseStack.chunkPos],S=this._dcsParser.unhook(C!==24&&C!==26,v),S)return S;C===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(C=d[this._parseStack.chunkPos],S=this._oscParser.end(C!==24&&C!==26,v),S)return S;C===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0}this._parseStack.state=0,w=this._parseStack.chunkPos+1,this.precedingCodepoint=0,this.currentState=15&this._parseStack.transition}for(let E=w;E<p;++E){switch(C=d[E],b=this._transitions.table[this.currentState<<8|(C<160?C:m)],b>>4){case 2:for(let O=E+1;;++O){if(O>=p||(C=d[O])<32||C>126&&C<m){this._printHandler(d,E,O),E=O-1;break}if(++O>=p||(C=d[O])<32||C>126&&C<m){this._printHandler(d,E,O),E=O-1;break}if(++O>=p||(C=d[O])<32||C>126&&C<m){this._printHandler(d,E,O),E=O-1;break}if(++O>=p||(C=d[O])<32||C>126&&C<m){this._printHandler(d,E,O),E=O-1;break}}break;case 3:this._executeHandlers[C]?this._executeHandlers[C]():this._executeHandlerFb(C),this.precedingCodepoint=0;break;case 0:break;case 1:if(this._errorHandler({position:E,code:C,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:const x=this._csiHandlers[this._collect<<8|C];let R=x?x.length-1:-1;for(;R>=0&&(S=x[R](this._params),S!==!0);R--)if(S instanceof Promise)return this._preserveStack(3,x,R,b,E),S;R<0&&this._csiHandlerFb(this._collect<<8|C,this._params),this.precedingCodepoint=0;break;case 8:do switch(C){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(C-48)}while(++E<p&&(C=d[E])>47&&C<60);E--;break;case 9:this._collect<<=8,this._collect|=C;break;case 10:const D=this._escHandlers[this._collect<<8|C];let k=D?D.length-1:-1;for(;k>=0&&(S=D[k](),S!==!0);k--)if(S instanceof Promise)return this._preserveStack(4,D,k,b,E),S;k<0&&this._escHandlerFb(this._collect<<8|C),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|C,this._params);break;case 13:for(let O=E+1;;++O)if(O>=p||(C=d[O])===24||C===26||C===27||C>127&&C<m){this._dcsParser.put(d,E,O),E=O-1;break}break;case 14:if(S=this._dcsParser.unhook(C!==24&&C!==26),S)return this._preserveStack(6,[],0,b,E),S;C===27&&(b|=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 O=E+1;;O++)if(O>=p||(C=d[O])<32||C>127&&C<m){this._oscParser.put(d,E,O),E=O-1;break}break;case 6:if(S=this._oscParser.end(C!==24&&C!==26),S)return this._preserveStack(5,[],0,b,E),S;C===27&&(b|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingCodepoint=0}this.currentState=15&b}}}s.EscapeSequenceParser=_},6242:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.OscHandler=s.OscParser=void 0;const o=l(5770),f=l(482),u=[];s.OscParser=class{constructor(){this._state=0,this._active=u,this._id=-1,this._handlers=Object.create(null),this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(g,y){this._handlers[g]===void 0&&(this._handlers[g]=[]);const m=this._handlers[g];return m.push(y),{dispose:()=>{const _=m.indexOf(y);_!==-1&&m.splice(_,1)}}}clearHandler(g){this._handlers[g]&&delete this._handlers[g]}setHandlerFallback(g){this._handlerFb=g}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=u}reset(){if(this._state===2)for(let g=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;g>=0;--g)this._active[g].end(!1);this._stack.paused=!1,this._active=u,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||u,this._active.length)for(let g=this._active.length-1;g>=0;g--)this._active[g].start();else this._handlerFb(this._id,"START")}_put(g,y,m){if(this._active.length)for(let _=this._active.length-1;_>=0;_--)this._active[_].put(g,y,m);else this._handlerFb(this._id,"PUT",(0,f.utf32ToString)(g,y,m))}start(){this.reset(),this._state=1}put(g,y,m){if(this._state!==3){if(this._state===1)for(;y<m;){const _=g[y++];if(_===59){this._state=2,this._start();break}if(_<48||57<_)return void(this._state=3);this._id===-1&&(this._id=0),this._id=10*this._id+_-48}this._state===2&&m-y>0&&this._put(g,y,m)}}end(g,y=!0){if(this._state!==0){if(this._state!==3)if(this._state===1&&this._start(),this._active.length){let m=!1,_=this._active.length-1,h=!1;if(this._stack.paused&&(_=this._stack.loopPosition-1,m=y,h=this._stack.fallThrough,this._stack.paused=!1),!h&&m===!1){for(;_>=0&&(m=this._active[_].end(g),m!==!0);_--)if(m instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=_,this._stack.fallThrough=!1,m;_--}for(;_>=0;_--)if(m=this._active[_].end(!1),m instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=_,this._stack.fallThrough=!0,m}else this._handlerFb(this._id,"END",g);this._active=u,this._id=-1,this._state=0}}},s.OscHandler=class{constructor(g){this._handler=g,this._data="",this._hitLimit=!1}start(){this._data="",this._hitLimit=!1}put(g,y,m){this._hitLimit||(this._data+=(0,f.utf32ToString)(g,y,m),this._data.length>o.PAYLOAD_LIMIT&&(this._data="",this._hitLimit=!0))}end(g){let y=!1;if(this._hitLimit)y=!1;else if(g&&(y=this._handler(this._data),y instanceof Promise))return y.then(m=>(this._data="",this._hitLimit=!1,m));return this._data="",this._hitLimit=!1,y}}},8742:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.Params=void 0;const l=2147483647;class o{static fromArray(u){const g=new o;if(!u.length)return g;for(let y=Array.isArray(u[0])?1:0;y<u.length;++y){const m=u[y];if(Array.isArray(m))for(let _=0;_<m.length;++_)g.addSubParam(m[_]);else g.addParam(m)}return g}constructor(u=32,g=32){if(this.maxLength=u,this.maxSubParamsLength=g,g>256)throw new Error("maxSubParamsLength must not be greater than 256");this.params=new Int32Array(u),this.length=0,this._subParams=new Int32Array(g),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(u),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}clone(){const u=new o(this.maxLength,this.maxSubParamsLength);return u.params.set(this.params),u.length=this.length,u._subParams.set(this._subParams),u._subParamsLength=this._subParamsLength,u._subParamsIdx.set(this._subParamsIdx),u._rejectDigits=this._rejectDigits,u._rejectSubDigits=this._rejectSubDigits,u._digitIsSub=this._digitIsSub,u}toArray(){const u=[];for(let g=0;g<this.length;++g){u.push(this.params[g]);const y=this._subParamsIdx[g]>>8,m=255&this._subParamsIdx[g];m-y>0&&u.push(Array.prototype.slice.call(this._subParams,y,m))}return u}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(u){if(this._digitIsSub=!1,this.length>=this.maxLength)this._rejectDigits=!0;else{if(u<-1)throw new Error("values lesser than -1 are not allowed");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=u>l?l:u}}addSubParam(u){if(this._digitIsSub=!0,this.length)if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength)this._rejectSubDigits=!0;else{if(u<-1)throw new Error("values lesser than -1 are not allowed");this._subParams[this._subParamsLength++]=u>l?l:u,this._subParamsIdx[this.length-1]++}}hasSubParams(u){return(255&this._subParamsIdx[u])-(this._subParamsIdx[u]>>8)>0}getSubParams(u){const g=this._subParamsIdx[u]>>8,y=255&this._subParamsIdx[u];return y-g>0?this._subParams.subarray(g,y):null}getSubParamsAll(){const u={};for(let g=0;g<this.length;++g){const y=this._subParamsIdx[g]>>8,m=255&this._subParamsIdx[g];m-y>0&&(u[g]=this._subParams.slice(y,m))}return u}addDigit(u){let g;if(this._rejectDigits||!(g=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;const y=this._digitIsSub?this._subParams:this.params,m=y[g-1];y[g-1]=~m?Math.min(10*m+u,l):u}}s.Params=o},5741:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.AddonManager=void 0,s.AddonManager=class{constructor(){this._addons=[]}dispose(){for(let l=this._addons.length-1;l>=0;l--)this._addons[l].instance.dispose()}loadAddon(l,o){const f={instance:o,dispose:o.dispose,isDisposed:!1};this._addons.push(f),o.dispose=()=>this._wrappedAddonDispose(f),o.activate(l)}_wrappedAddonDispose(l){if(l.isDisposed)return;let o=-1;for(let f=0;f<this._addons.length;f++)if(this._addons[f]===l){o=f;break}if(o===-1)throw new Error("Could not dispose an addon that has not been loaded");l.isDisposed=!0,l.dispose.apply(l.instance),this._addons.splice(o,1)}}},8771:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.BufferApiView=void 0;const o=l(3785),f=l(511);s.BufferApiView=class{constructor(u,g){this._buffer=u,this.type=g}init(u){return this._buffer=u,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(u){const g=this._buffer.lines.get(u);if(g)return new o.BufferLineApiView(g)}getNullCell(){return new f.CellData}}},3785:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.BufferLineApiView=void 0;const o=l(511);s.BufferLineApiView=class{constructor(f){this._line=f}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(f,u){if(!(f<0||f>=this._line.length))return u?(this._line.loadCell(f,u),u):this._line.loadCell(f,new o.CellData)}translateToString(f,u,g){return this._line.translateToString(f,u,g)}}},8285:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.BufferNamespaceApi=void 0;const o=l(8771),f=l(8460),u=l(844);class g extends u.Disposable{constructor(m){super(),this._core=m,this._onBufferChange=this.register(new f.EventEmitter),this.onBufferChange=this._onBufferChange.event,this._normal=new o.BufferApiView(this._core.buffers.normal,"normal"),this._alternate=new o.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)}}s.BufferNamespaceApi=g},7975:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.ParserApi=void 0,s.ParserApi=class{constructor(l){this._core=l}registerCsiHandler(l,o){return this._core.registerCsiHandler(l,f=>o(f.toArray()))}addCsiHandler(l,o){return this.registerCsiHandler(l,o)}registerDcsHandler(l,o){return this._core.registerDcsHandler(l,(f,u)=>o(f,u.toArray()))}addDcsHandler(l,o){return this.registerDcsHandler(l,o)}registerEscHandler(l,o){return this._core.registerEscHandler(l,o)}addEscHandler(l,o){return this.registerEscHandler(l,o)}registerOscHandler(l,o){return this._core.registerOscHandler(l,o)}addOscHandler(l,o){return this.registerOscHandler(l,o)}}},7090:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.UnicodeApi=void 0,s.UnicodeApi=class{constructor(l){this._core=l}register(l){this._core.unicodeService.register(l)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(l){this._core.unicodeService.activeVersion=l}}},744:function(a,s,l){var o=this&&this.__decorate||function(h,d,p,v){var S,C=arguments.length,b=C<3?d:v===null?v=Object.getOwnPropertyDescriptor(d,p):v;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,d,p,v);else for(var w=h.length-1;w>=0;w--)(S=h[w])&&(b=(C<3?S(b):C>3?S(d,p,b):S(d,p))||b);return C>3&&b&&Object.defineProperty(d,p,b),b},f=this&&this.__param||function(h,d){return function(p,v){d(p,v,h)}};Object.defineProperty(s,"__esModule",{value:!0}),s.BufferService=s.MINIMUM_ROWS=s.MINIMUM_COLS=void 0;const u=l(8460),g=l(844),y=l(5295),m=l(2585);s.MINIMUM_COLS=2,s.MINIMUM_ROWS=1;let _=s.BufferService=class extends g.Disposable{get buffer(){return this.buffers.active}constructor(h){super(),this.isUserScrolling=!1,this._onResize=this.register(new u.EventEmitter),this.onResize=this._onResize.event,this._onScroll=this.register(new u.EventEmitter),this.onScroll=this._onScroll.event,this.cols=Math.max(h.rawOptions.cols||0,s.MINIMUM_COLS),this.rows=Math.max(h.rawOptions.rows||0,s.MINIMUM_ROWS),this.buffers=this.register(new y.BufferSet(h,this))}resize(h,d){this.cols=h,this.rows=d,this.buffers.resize(h,d),this._onResize.fire({cols:h,rows:d})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(h,d=!1){const p=this.buffer;let v;v=this._cachedBlankLine,v&&v.length===this.cols&&v.getFg(0)===h.fg&&v.getBg(0)===h.bg||(v=p.getBlankLine(h,d),this._cachedBlankLine=v),v.isWrapped=d;const S=p.ybase+p.scrollTop,C=p.ybase+p.scrollBottom;if(p.scrollTop===0){const b=p.lines.isFull;C===p.lines.length-1?b?p.lines.recycle().copyFrom(v):p.lines.push(v.clone()):p.lines.splice(C+1,0,v.clone()),b?this.isUserScrolling&&(p.ydisp=Math.max(p.ydisp-1,0)):(p.ybase++,this.isUserScrolling||p.ydisp++)}else{const b=C-S+1;p.lines.shiftElements(S+1,b-1,-1),p.lines.set(C,v.clone())}this.isUserScrolling||(p.ydisp=p.ybase),this._onScroll.fire(p.ydisp)}scrollLines(h,d,p){const v=this.buffer;if(h<0){if(v.ydisp===0)return;this.isUserScrolling=!0}else h+v.ydisp>=v.ybase&&(this.isUserScrolling=!1);const S=v.ydisp;v.ydisp=Math.max(Math.min(v.ydisp+h,v.ybase),0),S!==v.ydisp&&(d||this._onScroll.fire(v.ydisp))}};s.BufferService=_=o([f(0,m.IOptionsService)],_)},7994:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.CharsetService=void 0,s.CharsetService=class{constructor(){this.glevel=0,this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(l){this.glevel=l,this.charset=this._charsets[l]}setgCharset(l,o){this._charsets[l]=o,this.glevel===l&&(this.charset=o)}}},1753:function(a,s,l){var o=this&&this.__decorate||function(v,S,C,b){var w,E=arguments.length,x=E<3?S:b===null?b=Object.getOwnPropertyDescriptor(S,C):b;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")x=Reflect.decorate(v,S,C,b);else for(var R=v.length-1;R>=0;R--)(w=v[R])&&(x=(E<3?w(x):E>3?w(S,C,x):w(S,C))||x);return E>3&&x&&Object.defineProperty(S,C,x),x},f=this&&this.__param||function(v,S){return function(C,b){S(C,b,v)}};Object.defineProperty(s,"__esModule",{value:!0}),s.CoreMouseService=void 0;const u=l(2585),g=l(8460),y=l(844),m={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:v=>v.button!==4&&v.action===1&&(v.ctrl=!1,v.alt=!1,v.shift=!1,!0)},VT200:{events:19,restrict:v=>v.action!==32},DRAG:{events:23,restrict:v=>v.action!==32||v.button!==3},ANY:{events:31,restrict:v=>!0}};function _(v,S){let C=(v.ctrl?16:0)|(v.shift?4:0)|(v.alt?8:0);return v.button===4?(C|=64,C|=v.action):(C|=3&v.button,4&v.button&&(C|=64),8&v.button&&(C|=128),v.action===32?C|=32:v.action!==0||S||(C|=3)),C}const h=String.fromCharCode,d={DEFAULT:v=>{const S=[_(v,!1)+32,v.col+32,v.row+32];return S[0]>255||S[1]>255||S[2]>255?"":`\x1B[M${h(S[0])}${h(S[1])}${h(S[2])}`},SGR:v=>{const S=v.action===0&&v.button!==4?"m":"M";return`\x1B[<${_(v,!0)};${v.col};${v.row}${S}`},SGR_PIXELS:v=>{const S=v.action===0&&v.button!==4?"m":"M";return`\x1B[<${_(v,!0)};${v.x};${v.y}${S}`}};let p=s.CoreMouseService=class extends y.Disposable{constructor(v,S){super(),this._bufferService=v,this._coreService=S,this._protocols={},this._encodings={},this._activeProtocol="",this._activeEncoding="",this._lastEvent=null,this._onProtocolChange=this.register(new g.EventEmitter),this.onProtocolChange=this._onProtocolChange.event;for(const C of Object.keys(m))this.addProtocol(C,m[C]);for(const C of Object.keys(d))this.addEncoding(C,d[C]);this.reset()}addProtocol(v,S){this._protocols[v]=S}addEncoding(v,S){this._encodings[v]=S}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return this._protocols[this._activeProtocol].events!==0}set activeProtocol(v){if(!this._protocols[v])throw new Error(`unknown protocol "${v}"`);this._activeProtocol=v,this._onProtocolChange.fire(this._protocols[v].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(v){if(!this._encodings[v])throw new Error(`unknown encoding "${v}"`);this._activeEncoding=v}reset(){this.activeProtocol="NONE",this.activeEncoding="DEFAULT",this._lastEvent=null}triggerMouseEvent(v){if(v.col<0||v.col>=this._bufferService.cols||v.row<0||v.row>=this._bufferService.rows||v.button===4&&v.action===32||v.button===3&&v.action!==32||v.button!==4&&(v.action===2||v.action===3)||(v.col++,v.row++,v.action===32&&this._lastEvent&&this._equalEvents(this._lastEvent,v,this._activeEncoding==="SGR_PIXELS"))||!this._protocols[this._activeProtocol].restrict(v))return!1;const S=this._encodings[this._activeEncoding](v);return S&&(this._activeEncoding==="DEFAULT"?this._coreService.triggerBinaryEvent(S):this._coreService.triggerDataEvent(S,!0)),this._lastEvent=v,!0}explainEvents(v){return{down:!!(1&v),up:!!(2&v),drag:!!(4&v),move:!!(8&v),wheel:!!(16&v)}}_equalEvents(v,S,C){if(C){if(v.x!==S.x||v.y!==S.y)return!1}else if(v.col!==S.col||v.row!==S.row)return!1;return v.button===S.button&&v.action===S.action&&v.ctrl===S.ctrl&&v.alt===S.alt&&v.shift===S.shift}};s.CoreMouseService=p=o([f(0,u.IBufferService),f(1,u.ICoreService)],p)},6975:function(a,s,l){var o=this&&this.__decorate||function(p,v,S,C){var b,w=arguments.length,E=w<3?v:C===null?C=Object.getOwnPropertyDescriptor(v,S):C;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")E=Reflect.decorate(p,v,S,C);else for(var x=p.length-1;x>=0;x--)(b=p[x])&&(E=(w<3?b(E):w>3?b(v,S,E):b(v,S))||E);return w>3&&E&&Object.defineProperty(v,S,E),E},f=this&&this.__param||function(p,v){return function(S,C){v(S,C,p)}};Object.defineProperty(s,"__esModule",{value:!0}),s.CoreService=void 0;const u=l(1439),g=l(8460),y=l(844),m=l(2585),_=Object.freeze({insertMode:!1}),h=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,origin:!1,reverseWraparound:!1,sendFocus:!1,wraparound:!0});let d=s.CoreService=class extends y.Disposable{constructor(p,v,S){super(),this._bufferService=p,this._logService=v,this._optionsService=S,this.isCursorInitialized=!1,this.isCursorHidden=!1,this._onData=this.register(new g.EventEmitter),this.onData=this._onData.event,this._onUserInput=this.register(new g.EventEmitter),this.onUserInput=this._onUserInput.event,this._onBinary=this.register(new g.EventEmitter),this.onBinary=this._onBinary.event,this._onRequestScrollToBottom=this.register(new g.EventEmitter),this.onRequestScrollToBottom=this._onRequestScrollToBottom.event,this.modes=(0,u.clone)(_),this.decPrivateModes=(0,u.clone)(h)}reset(){this.modes=(0,u.clone)(_),this.decPrivateModes=(0,u.clone)(h)}triggerDataEvent(p,v=!1){if(this._optionsService.rawOptions.disableStdin)return;const S=this._bufferService.buffer;v&&this._optionsService.rawOptions.scrollOnUserInput&&S.ybase!==S.ydisp&&this._onRequestScrollToBottom.fire(),v&&this._onUserInput.fire(),this._logService.debug(`sending data "${p}"`,()=>p.split("").map(C=>C.charCodeAt(0))),this._onData.fire(p)}triggerBinaryEvent(p){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary "${p}"`,()=>p.split("").map(v=>v.charCodeAt(0))),this._onBinary.fire(p))}};s.CoreService=d=o([f(0,m.IBufferService),f(1,m.ILogService),f(2,m.IOptionsService)],d)},9074:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.DecorationService=void 0;const o=l(8055),f=l(8460),u=l(844),g=l(6106);let y=0,m=0;class _ extends u.Disposable{get decorations(){return this._decorations.values()}constructor(){super(),this._decorations=new g.SortedList(p=>p==null?void 0:p.marker.line),this._onDecorationRegistered=this.register(new f.EventEmitter),this.onDecorationRegistered=this._onDecorationRegistered.event,this._onDecorationRemoved=this.register(new f.EventEmitter),this.onDecorationRemoved=this._onDecorationRemoved.event,this.register((0,u.toDisposable)(()=>this.reset()))}registerDecoration(p){if(p.marker.isDisposed)return;const v=new h(p);if(v){const S=v.marker.onDispose(()=>v.dispose());v.onDispose(()=>{v&&(this._decorations.delete(v)&&this._onDecorationRemoved.fire(v),S.dispose())}),this._decorations.insert(v),this._onDecorationRegistered.fire(v)}return v}reset(){for(const p of this._decorations.values())p.dispose();this._decorations.clear()}*getDecorationsAtCell(p,v,S){var C,b,w;let E=0,x=0;for(const R of this._decorations.getKeyIterator(v))E=(C=R.options.x)!==null&&C!==void 0?C:0,x=E+((b=R.options.width)!==null&&b!==void 0?b:1),p>=E&&p<x&&(!S||((w=R.options.layer)!==null&&w!==void 0?w:"bottom")===S)&&(yield R)}forEachDecorationAtCell(p,v,S,C){this._decorations.forEachByKey(v,b=>{var w,E,x;y=(w=b.options.x)!==null&&w!==void 0?w:0,m=y+((E=b.options.width)!==null&&E!==void 0?E:1),p>=y&&p<m&&(!S||((x=b.options.layer)!==null&&x!==void 0?x:"bottom")===S)&&C(b)})}}s.DecorationService=_;class h extends u.Disposable{get isDisposed(){return this._isDisposed}get backgroundColorRGB(){return this._cachedBg===null&&(this.options.backgroundColor?this._cachedBg=o.css.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return this._cachedFg===null&&(this.options.foregroundColor?this._cachedFg=o.css.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}constructor(p){super(),this.options=p,this.onRenderEmitter=this.register(new f.EventEmitter),this.onRender=this.onRenderEmitter.event,this._onDispose=this.register(new f.EventEmitter),this.onDispose=this._onDispose.event,this._cachedBg=null,this._cachedFg=null,this.marker=p.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position="full")}dispose(){this._onDispose.fire(),super.dispose()}}},4348:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.InstantiationService=s.ServiceCollection=void 0;const o=l(2585),f=l(8343);class u{constructor(...y){this._entries=new Map;for(const[m,_]of y)this.set(m,_)}set(y,m){const _=this._entries.get(y);return this._entries.set(y,m),_}forEach(y){for(const[m,_]of this._entries.entries())y(m,_)}has(y){return this._entries.has(y)}get(y){return this._entries.get(y)}}s.ServiceCollection=u,s.InstantiationService=class{constructor(){this._services=new u,this._services.set(o.IInstantiationService,this)}setService(g,y){this._services.set(g,y)}getService(g){return this._services.get(g)}createInstance(g,...y){const m=(0,f.getServiceDependencies)(g).sort((d,p)=>d.index-p.index),_=[];for(const d of m){const p=this._services.get(d.id);if(!p)throw new Error(`[createInstance] ${g.name} depends on UNKNOWN service ${d.id}.`);_.push(p)}const h=m.length>0?m[0].index:y.length;if(y.length!==h)throw new Error(`[createInstance] First service dependency of ${g.name} at position ${h+1} conflicts with ${y.length} static arguments`);return new g(...y,..._)}}},7866:function(a,s,l){var o=this&&this.__decorate||function(h,d,p,v){var S,C=arguments.length,b=C<3?d:v===null?v=Object.getOwnPropertyDescriptor(d,p):v;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")b=Reflect.decorate(h,d,p,v);else for(var w=h.length-1;w>=0;w--)(S=h[w])&&(b=(C<3?S(b):C>3?S(d,p,b):S(d,p))||b);return C>3&&b&&Object.defineProperty(d,p,b),b},f=this&&this.__param||function(h,d){return function(p,v){d(p,v,h)}};Object.defineProperty(s,"__esModule",{value:!0}),s.traceCall=s.setTraceLogger=s.LogService=void 0;const u=l(844),g=l(2585),y={trace:g.LogLevelEnum.TRACE,debug:g.LogLevelEnum.DEBUG,info:g.LogLevelEnum.INFO,warn:g.LogLevelEnum.WARN,error:g.LogLevelEnum.ERROR,off:g.LogLevelEnum.OFF};let m,_=s.LogService=class extends u.Disposable{get logLevel(){return this._logLevel}constructor(h){super(),this._optionsService=h,this._logLevel=g.LogLevelEnum.OFF,this._updateLogLevel(),this.register(this._optionsService.onSpecificOptionChange("logLevel",()=>this._updateLogLevel())),m=this}_updateLogLevel(){this._logLevel=y[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(h){for(let d=0;d<h.length;d++)typeof h[d]=="function"&&(h[d]=h[d]())}_log(h,d,p){this._evalLazyOptionalParams(p),h.call(console,(this._optionsService.options.logger?"":"xterm.js: ")+d,...p)}trace(h,...d){var p,v;this._logLevel<=g.LogLevelEnum.TRACE&&this._log((v=(p=this._optionsService.options.logger)===null||p===void 0?void 0:p.trace.bind(this._optionsService.options.logger))!==null&&v!==void 0?v:console.log,h,d)}debug(h,...d){var p,v;this._logLevel<=g.LogLevelEnum.DEBUG&&this._log((v=(p=this._optionsService.options.logger)===null||p===void 0?void 0:p.debug.bind(this._optionsService.options.logger))!==null&&v!==void 0?v:console.log,h,d)}info(h,...d){var p,v;this._logLevel<=g.LogLevelEnum.INFO&&this._log((v=(p=this._optionsService.options.logger)===null||p===void 0?void 0:p.info.bind(this._optionsService.options.logger))!==null&&v!==void 0?v:console.info,h,d)}warn(h,...d){var p,v;this._logLevel<=g.LogLevelEnum.WARN&&this._log((v=(p=this._optionsService.options.logger)===null||p===void 0?void 0:p.warn.bind(this._optionsService.options.logger))!==null&&v!==void 0?v:console.warn,h,d)}error(h,...d){var p,v;this._logLevel<=g.LogLevelEnum.ERROR&&this._log((v=(p=this._optionsService.options.logger)===null||p===void 0?void 0:p.error.bind(this._optionsService.options.logger))!==null&&v!==void 0?v:console.error,h,d)}};s.LogService=_=o([f(0,g.IOptionsService)],_),s.setTraceLogger=function(h){m=h},s.traceCall=function(h,d,p){if(typeof p.value!="function")throw new Error("not supported");const v=p.value;p.value=function(...S){if(m.logLevel!==g.LogLevelEnum.TRACE)return v.apply(this,S);m.trace(`GlyphRenderer#${v.name}(${S.map(b=>JSON.stringify(b)).join(", ")})`);const C=v.apply(this,S);return m.trace(`GlyphRenderer#${v.name} return`,C),C}}},7302:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.OptionsService=s.DEFAULT_OPTIONS=void 0;const o=l(8460),f=l(844),u=l(6114);s.DEFAULT_OPTIONS={cols:80,rows:24,cursorBlink:!1,cursorStyle:"block",cursorWidth:1,cursorInactiveStyle:"outline",customGlyphs:!0,drawBoldTextInBrightColors:!0,fastScrollModifier:"alt",fastScrollSensitivity:5,fontFamily:"courier-new, courier, monospace",fontSize:15,fontWeight:"normal",fontWeightBold:"bold",ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:"info",logger:null,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:u.isMac,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:" ()[]{}',\"`",altClickMovesCursor:!0,convertEol:!1,termName:"xterm",cancelEvents:!1,overviewRulerWidth:0};const g=["normal","bold","100","200","300","400","500","600","700","800","900"];class y extends f.Disposable{constructor(_){super(),this._onOptionChange=this.register(new o.EventEmitter),this.onOptionChange=this._onOptionChange.event;const h=Object.assign({},s.DEFAULT_OPTIONS);for(const d in _)if(d in h)try{const p=_[d];h[d]=this._sanitizeAndValidateOption(d,p)}catch(p){console.error(p)}this.rawOptions=h,this.options=Object.assign({},h),this._setupOptions()}onSpecificOptionChange(_,h){return this.onOptionChange(d=>{d===_&&h(this.rawOptions[_])})}onMultipleOptionChange(_,h){return this.onOptionChange(d=>{_.indexOf(d)!==-1&&h()})}_setupOptions(){const _=d=>{if(!(d in s.DEFAULT_OPTIONS))throw new Error(`No option with key "${d}"`);return this.rawOptions[d]},h=(d,p)=>{if(!(d in s.DEFAULT_OPTIONS))throw new Error(`No option with key "${d}"`);p=this._sanitizeAndValidateOption(d,p),this.rawOptions[d]!==p&&(this.rawOptions[d]=p,this._onOptionChange.fire(d))};for(const d in this.rawOptions){const p={get:_.bind(this,d),set:h.bind(this,d)};Object.defineProperty(this.options,d,p)}}_sanitizeAndValidateOption(_,h){switch(_){case"cursorStyle":if(h||(h=s.DEFAULT_OPTIONS[_]),!function(d){return d==="block"||d==="underline"||d==="bar"}(h))throw new Error(`"${h}" is not a valid value for ${_}`);break;case"wordSeparator":h||(h=s.DEFAULT_OPTIONS[_]);break;case"fontWeight":case"fontWeightBold":if(typeof h=="number"&&1<=h&&h<=1e3)break;h=g.includes(h)?h:s.DEFAULT_OPTIONS[_];break;case"cursorWidth":h=Math.floor(h);case"lineHeight":case"tabStopWidth":if(h<1)throw new Error(`${_} cannot be less than 1, value: ${h}`);break;case"minimumContrastRatio":h=Math.max(1,Math.min(21,Math.round(10*h)/10));break;case"scrollback":if((h=Math.min(h,4294967295))<0)throw new Error(`${_} cannot be less than 0, value: ${h}`);break;case"fastScrollSensitivity":case"scrollSensitivity":if(h<=0)throw new Error(`${_} cannot be less than or equal to 0, value: ${h}`);break;case"rows":case"cols":if(!h&&h!==0)throw new Error(`${_} must be numeric, value: ${h}`);break;case"windowsPty":h=h!=null?h:{}}return h}}s.OptionsService=y},2660:function(a,s,l){var o=this&&this.__decorate||function(y,m,_,h){var d,p=arguments.length,v=p<3?m:h===null?h=Object.getOwnPropertyDescriptor(m,_):h;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")v=Reflect.decorate(y,m,_,h);else for(var S=y.length-1;S>=0;S--)(d=y[S])&&(v=(p<3?d(v):p>3?d(m,_,v):d(m,_))||v);return p>3&&v&&Object.defineProperty(m,_,v),v},f=this&&this.__param||function(y,m){return function(_,h){m(_,h,y)}};Object.defineProperty(s,"__esModule",{value:!0}),s.OscLinkService=void 0;const u=l(2585);let g=s.OscLinkService=class{constructor(y){this._bufferService=y,this._nextId=1,this._entriesWithId=new Map,this._dataByLinkId=new Map}registerLink(y){const m=this._bufferService.buffer;if(y.id===void 0){const S=m.addMarker(m.ybase+m.y),C={data:y,id:this._nextId++,lines:[S]};return S.onDispose(()=>this._removeMarkerFromLink(C,S)),this._dataByLinkId.set(C.id,C),C.id}const _=y,h=this._getEntryIdKey(_),d=this._entriesWithId.get(h);if(d)return this.addLineToLink(d.id,m.ybase+m.y),d.id;const p=m.addMarker(m.ybase+m.y),v={id:this._nextId++,key:this._getEntryIdKey(_),data:_,lines:[p]};return p.onDispose(()=>this._removeMarkerFromLink(v,p)),this._entriesWithId.set(v.key,v),this._dataByLinkId.set(v.id,v),v.id}addLineToLink(y,m){const _=this._dataByLinkId.get(y);if(_&&_.lines.every(h=>h.line!==m)){const h=this._bufferService.buffer.addMarker(m);_.lines.push(h),h.onDispose(()=>this._removeMarkerFromLink(_,h))}}getLinkData(y){var m;return(m=this._dataByLinkId.get(y))===null||m===void 0?void 0:m.data}_getEntryIdKey(y){return`${y.id};;${y.uri}`}_removeMarkerFromLink(y,m){const _=y.lines.indexOf(m);_!==-1&&(y.lines.splice(_,1),y.lines.length===0&&(y.data.id!==void 0&&this._entriesWithId.delete(y.key),this._dataByLinkId.delete(y.id)))}};s.OscLinkService=g=o([f(0,u.IBufferService)],g)},8343:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.createDecorator=s.getServiceDependencies=s.serviceRegistry=void 0;const l="di$target",o="di$dependencies";s.serviceRegistry=new Map,s.getServiceDependencies=function(f){return f[o]||[]},s.createDecorator=function(f){if(s.serviceRegistry.has(f))return s.serviceRegistry.get(f);const u=function(g,y,m){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");(function(_,h,d){h[l]===h?h[o].push({id:_,index:d}):(h[o]=[{id:_,index:d}],h[l]=h)})(u,g,m)};return u.toString=()=>f,s.serviceRegistry.set(f,u),u}},2585:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.IDecorationService=s.IUnicodeService=s.IOscLinkService=s.IOptionsService=s.ILogService=s.LogLevelEnum=s.IInstantiationService=s.ICharsetService=s.ICoreService=s.ICoreMouseService=s.IBufferService=void 0;const o=l(8343);var f;s.IBufferService=(0,o.createDecorator)("BufferService"),s.ICoreMouseService=(0,o.createDecorator)("CoreMouseService"),s.ICoreService=(0,o.createDecorator)("CoreService"),s.ICharsetService=(0,o.createDecorator)("CharsetService"),s.IInstantiationService=(0,o.createDecorator)("InstantiationService"),function(u){u[u.TRACE=0]="TRACE",u[u.DEBUG=1]="DEBUG",u[u.INFO=2]="INFO",u[u.WARN=3]="WARN",u[u.ERROR=4]="ERROR",u[u.OFF=5]="OFF"}(f||(s.LogLevelEnum=f={})),s.ILogService=(0,o.createDecorator)("LogService"),s.IOptionsService=(0,o.createDecorator)("OptionsService"),s.IOscLinkService=(0,o.createDecorator)("OscLinkService"),s.IUnicodeService=(0,o.createDecorator)("UnicodeService"),s.IDecorationService=(0,o.createDecorator)("DecorationService")},1480:(a,s,l)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.UnicodeService=void 0;const o=l(8460),f=l(225);s.UnicodeService=class{constructor(){this._providers=Object.create(null),this._active="",this._onChange=new o.EventEmitter,this.onChange=this._onChange.event;const u=new f.UnicodeV6;this.register(u),this._active=u.version,this._activeProvider=u}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(u){if(!this._providers[u])throw new Error(`unknown Unicode version "${u}"`);this._active=u,this._activeProvider=this._providers[u],this._onChange.fire(u)}register(u){this._providers[u.version]=u}wcwidth(u){return this._activeProvider.wcwidth(u)}getStringCellWidth(u){let g=0;const y=u.length;for(let m=0;m<y;++m){let _=u.charCodeAt(m);if(55296<=_&&_<=56319){if(++m>=y)return g+this.wcwidth(_);const h=u.charCodeAt(m);56320<=h&&h<=57343?_=1024*(_-55296)+h-56320+65536:g+=this.wcwidth(h)}g+=this.wcwidth(_)}return g}}}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return i[a].call(l.exports,l,l.exports,n),l.exports}var c={};return(()=>{var a=c;Object.defineProperty(a,"__esModule",{value:!0}),a.Terminal=void 0;const s=n(9042),l=n(3236),o=n(844),f=n(5741),u=n(8285),g=n(7975),y=n(7090),m=["cols","rows"];class _ extends o.Disposable{constructor(d){super(),this._core=this.register(new l.Terminal(d)),this._addonManager=this.register(new f.AddonManager),this._publicOptions=Object.assign({},this._core.options);const p=S=>this._core.options[S],v=(S,C)=>{this._checkReadonlyOptions(S),this._core.options[S]=C};for(const S in this._core.options){const C={get:p.bind(this,S),set:v.bind(this,S)};Object.defineProperty(this._publicOptions,S,C)}}_checkReadonlyOptions(d){if(m.includes(d))throw new Error(`Option "${d}" 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 g.ParserApi(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new y.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=this.register(new u.BufferNamespaceApi(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){const d=this._core.coreService.decPrivateModes;let p="none";switch(this._core.coreMouseService.activeProtocol){case"X10":p="x10";break;case"VT200":p="vt200";break;case"DRAG":p="drag";break;case"ANY":p="any"}return{applicationCursorKeysMode:d.applicationCursorKeys,applicationKeypadMode:d.applicationKeypad,bracketedPasteMode:d.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:p,originMode:d.origin,reverseWraparoundMode:d.reverseWraparound,sendFocusMode:d.sendFocus,wraparoundMode:d.wraparound}}get options(){return this._publicOptions}set options(d){for(const p in d)this._publicOptions[p]=d[p]}blur(){this._core.blur()}focus(){this._core.focus()}resize(d,p){this._verifyIntegers(d,p),this._core.resize(d,p)}open(d){this._core.open(d)}attachCustomKeyEventHandler(d){this._core.attachCustomKeyEventHandler(d)}registerLinkProvider(d){return this._core.registerLinkProvider(d)}registerCharacterJoiner(d){return this._checkProposedApi(),this._core.registerCharacterJoiner(d)}deregisterCharacterJoiner(d){this._checkProposedApi(),this._core.deregisterCharacterJoiner(d)}registerMarker(d=0){return this._verifyIntegers(d),this._core.registerMarker(d)}registerDecoration(d){var p,v,S;return this._checkProposedApi(),this._verifyPositiveIntegers((p=d.x)!==null&&p!==void 0?p:0,(v=d.width)!==null&&v!==void 0?v:0,(S=d.height)!==null&&S!==void 0?S:0),this._core.registerDecoration(d)}hasSelection(){return this._core.hasSelection()}select(d,p,v){this._verifyIntegers(d,p,v),this._core.select(d,p,v)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(d,p){this._verifyIntegers(d,p),this._core.selectLines(d,p)}dispose(){super.dispose()}scrollLines(d){this._verifyIntegers(d),this._core.scrollLines(d)}scrollPages(d){this._verifyIntegers(d),this._core.scrollPages(d)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(d){this._verifyIntegers(d),this._core.scrollToLine(d)}clear(){this._core.clear()}write(d,p){this._core.write(d,p)}writeln(d,p){this._core.write(d),this._core.write(`\r
`,p)}paste(d){this._core.paste(d)}refresh(d,p){this._verifyIntegers(d,p),this._core.refresh(d,p)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(d){this._addonManager.loadAddon(this,d)}static get strings(){return s}_verifyIntegers(...d){for(const p of d)if(p===1/0||isNaN(p)||p%1!=0)throw new Error("This API only accepts integers")}_verifyPositiveIntegers(...d){for(const p of d)if(p&&(p===1/0||isNaN(p)||p%1!=0||p<0))throw new Error("This API only accepts positive integers")}}a.Terminal=_})(),c})())})(jt);var Ct=jt.exports,Gt={exports:{}};(function(e,t){(function(i,r){e.exports=r()})(self,()=>(()=>{var i={};return(()=>{var r=i;Object.defineProperty(r,"__esModule",{value:!0}),r.FitAddon=void 0,r.FitAddon=class{activate(n){this._terminal=n}dispose(){}fit(){const n=this.proposeDimensions();if(!n||!this._terminal||isNaN(n.cols)||isNaN(n.rows))return;const c=this._terminal._core;this._terminal.rows===n.rows&&this._terminal.cols===n.cols||(c._renderService.clear(),this._terminal.resize(n.cols,n.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;const n=this._terminal._core,c=n._renderService.dimensions;if(c.css.cell.width===0||c.css.cell.height===0)return;const a=this._terminal.options.scrollback===0?0:n.viewport.scrollBarWidth,s=window.getComputedStyle(this._terminal.element.parentElement),l=parseInt(s.getPropertyValue("height")),o=Math.max(0,parseInt(s.getPropertyValue("width"))),f=window.getComputedStyle(this._terminal.element),u=l-(parseInt(f.getPropertyValue("padding-top"))+parseInt(f.getPropertyValue("padding-bottom"))),g=o-(parseInt(f.getPropertyValue("padding-right"))+parseInt(f.getPropertyValue("padding-left")))-a;return{cols:Math.max(2,Math.floor(g/c.css.cell.width)),rows:Math.max(1,Math.floor(u/c.css.cell.height))}}}})(),i})())})(Gt);var wn=Gt.exports,Zi={exports:{}};(function(e,t){(function(i,r){e.exports=r()})(self,()=>(()=>{var i={6:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.LinkComputer=s.WebLinkProvider=void 0,s.WebLinkProvider=class{constructor(o,f,u,g={}){this._terminal=o,this._regex=f,this._handler=u,this._options=g}provideLinks(o,f){const u=l.computeLink(o,this._regex,this._terminal,this._handler);f(this._addCallbacks(u))}_addCallbacks(o){return o.map(f=>(f.leave=this._options.leave,f.hover=(u,g)=>{if(this._options.hover){const{range:y}=f;this._options.hover(u,g,y)}},f))}};class l{static computeLink(f,u,g,y){const m=new RegExp(u.source,(u.flags||"")+"g"),[_,h]=l._getWindowedLineStrings(f-1,g),d=_.join("");let p;const v=[];for(;p=m.exec(d);){const S=p[0];try{const R=new URL(S),D=decodeURI(R.toString());if(S!==D&&S+"/"!==D)continue}catch(R){continue}const[C,b]=l._mapStrIdx(g,h,0,p.index),[w,E]=l._mapStrIdx(g,C,b,S.length);if(C===-1||b===-1||w===-1||E===-1)continue;const x={start:{x:b+1,y:C+1},end:{x:E,y:w+1}};v.push({range:x,text:S,activate:y})}return v}static _getWindowedLineStrings(f,u){let g,y=f,m=f,_=0,h="";const d=[];if(g=u.buffer.active.getLine(f)){const p=g.translateToString(!0);if(g.isWrapped&&p[0]!==" "){for(_=0;(g=u.buffer.active.getLine(--y))&&_<2048&&(h=g.translateToString(!0),_+=h.length,d.push(h),g.isWrapped&&h.indexOf(" ")===-1););d.reverse()}for(d.push(p),_=0;(g=u.buffer.active.getLine(++m))&&g.isWrapped&&_<2048&&(h=g.translateToString(!0),_+=h.length,d.push(h),h.indexOf(" ")===-1););}return[d,y]}static _mapStrIdx(f,u,g,y){const m=f.buffer.active,_=m.getNullCell();let h=g;for(;y;){const d=m.getLine(u);if(!d)return[-1,-1];for(let p=h;p<d.length;++p){d.getCell(p,_);const v=_.getChars();if(_.getWidth()&&(y-=v.length||1,p===d.length-1&&v==="")){const S=m.getLine(u+1);S&&S.isWrapped&&(S.getCell(0,_),_.getWidth()===2&&(y+=1))}if(y<0)return[u,p]}u++,h=0}return[u,h]}}s.LinkComputer=l}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return i[a](l,l.exports,n),l.exports}var c={};return(()=>{var a=c;Object.defineProperty(a,"__esModule",{value:!0}),a.WebLinksAddon=void 0;const s=n(6),l=/https?:[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function o(f,u){const g=window.open();if(g){try{g.opener=null}catch(y){}g.location.href=u}else console.warn("Opening link blocked as opener could not be cleared")}a.WebLinksAddon=class{constructor(f=o,u={}){this._handler=f,this._options=u}activate(f){this._terminal=f;const u=this._options,g=u.urlRegex||l;this._linkProvider=this._terminal.registerLinkProvider(new s.WebLinkProvider(this._terminal,g,this._handler,u))}dispose(){var f;(f=this._linkProvider)===null||f===void 0||f.dispose()}}})(),c})())})(Zi);var Tn=Zi.exports,Ji={exports:{}};(function(e,t){(function(i,r){e.exports=r()})(self,()=>(()=>{var i={345:(a,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.forwardEvent=s.EventEmitter=void 0,s.EventEmitter=class{constructor(){this._listeners=[],this._disposed=!1}get event(){return this._event||(this._event=l=>(this._listeners.push(l),{dispose:()=>{if(!this._disposed){for(let o=0;o<this._listeners.length;o++)if(this._listeners[o]===l)return void this._listeners.splice(o,1)}}})),this._event}fire(l,o){const f=[];for(let u=0;u<this._listeners.length;u++)f.push(this._listeners[u]);for(let u=0;u<f.length;u++)f[u].call(void 0,l,o)}dispose(){this.clearListeners(),this._disposed=!0}clearListeners(){this._listeners&&(this._listeners.length=0)}},s.forwardEvent=function(l,o){return l(f=>o.fire(f))}},859:(a,s)=>{function l(o){for(const f of o)f.dispose();o.length=0}Object.defineProperty(s,"__esModule",{value:!0}),s.getDisposeArrayDisposable=s.disposeArray=s.toDisposable=s.MutableDisposable=s.Disposable=void 0,s.Disposable=class{constructor(){this._disposables=[],this._isDisposed=!1}dispose(){this._isDisposed=!0;for(const o of this._disposables)o.dispose();this._disposables.length=0}register(o){return this._disposables.push(o),o}unregister(o){const f=this._disposables.indexOf(o);f!==-1&&this._disposables.splice(f,1)}},s.MutableDisposable=class{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(o){var f;this._isDisposed||o===this._value||((f=this._value)===null||f===void 0||f.dispose(),this._value=o)}clear(){this.value=void 0}dispose(){var o;this._isDisposed=!0,(o=this._value)===null||o===void 0||o.dispose(),this._value=void 0}},s.toDisposable=function(o){return{dispose:o}},s.disposeArray=l,s.getDisposeArrayDisposable=function(o){return{dispose:()=>l(o)}}}},r={};function n(a){var s=r[a];if(s!==void 0)return s.exports;var l=r[a]={exports:{}};return i[a](l,l.exports,n),l.exports}var c={};return(()=>{var a=c;Object.defineProperty(a,"__esModule",{value:!0}),a.SearchAddon=void 0;const s=n(345),l=n(859),o=" ~!@#$%^&*()+`-=[]{}|\\;:\"',./<>?";class f extends l.Disposable{constructor(g){var y;super(),this._highlightedLines=new Set,this._highlightDecorations=[],this._selectedDecoration=this.register(new l.MutableDisposable),this._linesCacheTimeoutId=0,this._onDidChangeResults=this.register(new s.EventEmitter),this.onDidChangeResults=this._onDidChangeResults.event,this._highlightLimit=(y=g==null?void 0:g.highlightLimit)!==null&&y!==void 0?y:1e3}activate(g){this._terminal=g,this.register(this._terminal.onWriteParsed(()=>this._updateMatches())),this.register(this._terminal.onResize(()=>this._updateMatches())),this.register((0,l.toDisposable)(()=>this.clearDecorations()))}_updateMatches(){var g;this._highlightTimeout&&window.clearTimeout(this._highlightTimeout),this._cachedSearchTerm&&(!((g=this._lastSearchOptions)===null||g===void 0)&&g.decorations)&&(this._highlightTimeout=setTimeout(()=>{const y=this._cachedSearchTerm;this._cachedSearchTerm=void 0,this.findPrevious(y,Object.assign(Object.assign({},this._lastSearchOptions),{incremental:!0,noScroll:!0}))},200))}clearDecorations(g){this._selectedDecoration.clear(),(0,l.disposeArray)(this._highlightDecorations),this._highlightDecorations=[],this._highlightedLines.clear(),g||(this._cachedSearchTerm=void 0)}findNext(g,y){if(!this._terminal)throw new Error("Cannot use addon until it has been loaded");this._lastSearchOptions=y,y!=null&&y.decorations&&(this._cachedSearchTerm!==void 0&&g===this._cachedSearchTerm||this._highlightAllMatches(g,y));const m=this._findNextAndSelect(g,y);return this._fireResults(y),this._cachedSearchTerm=g,m}_highlightAllMatches(g,y){if(!this._terminal)throw new Error("Cannot use addon until it has been loaded");if(!g||g.length===0)return void this.clearDecorations();y=y||{},this.clearDecorations(!0);const m=[];let _,h=this._find(g,0,0,y);for(;h&&((_==null?void 0:_.row)!==h.row||(_==null?void 0:_.col)!==h.col)&&!(m.length>=this._highlightLimit);)_=h,m.push(_),h=this._find(g,_.col+_.term.length>=this._terminal.cols?_.row+1:_.row,_.col+_.term.length>=this._terminal.cols?0:_.col+1,y);for(const d of m){const p=this._createResultDecoration(d,y.decorations);p&&(this._highlightedLines.add(p.marker.line),this._highlightDecorations.push({decoration:p,match:d,dispose(){p.dispose()}}))}}_find(g,y,m,_){var h;if(!this._terminal||!g||g.length===0)return(h=this._terminal)===null||h===void 0||h.clearSelection(),void this.clearDecorations();if(m>this._terminal.cols)throw new Error(`Invalid col: ${m} to search in terminal of ${this._terminal.cols} cols`);let d;this._initLinesCache();const p={startRow:y,startCol:m};if(d=this._findInLine(g,p,_),!d)for(let v=y+1;v<this._terminal.buffer.active.baseY+this._terminal.rows&&(p.startRow=v,p.startCol=0,d=this._findInLine(g,p,_),!d);v++);return d}_findNextAndSelect(g,y){var m;if(!this._terminal||!g||g.length===0)return(m=this._terminal)===null||m===void 0||m.clearSelection(),this.clearDecorations(),!1;const _=this._terminal.getSelectionPosition();this._terminal.clearSelection();let h=0,d=0;_&&(this._cachedSearchTerm===g?(h=_.end.x,d=_.end.y):(h=_.start.x,d=_.start.y)),this._initLinesCache();const p={startRow:d,startCol:h};let v=this._findInLine(g,p,y);if(!v)for(let S=d+1;S<this._terminal.buffer.active.baseY+this._terminal.rows&&(p.startRow=S,p.startCol=0,v=this._findInLine(g,p,y),!v);S++);if(!v&&d!==0)for(let S=0;S<d&&(p.startRow=S,p.startCol=0,v=this._findInLine(g,p,y),!v);S++);return!v&&_&&(p.startRow=_.start.y,p.startCol=0,v=this._findInLine(g,p,y)),this._selectResult(v,y==null?void 0:y.decorations,y==null?void 0:y.noScroll)}findPrevious(g,y){if(!this._terminal)throw new Error("Cannot use addon until it has been loaded");this._lastSearchOptions=y,y!=null&&y.decorations&&(this._cachedSearchTerm!==void 0&&g===this._cachedSearchTerm||this._highlightAllMatches(g,y));const m=this._findPreviousAndSelect(g,y);return this._fireResults(y),this._cachedSearchTerm=g,m}_fireResults(g){if(g!=null&&g.decorations){let y=-1;if(this._selectedDecoration.value){const m=this._selectedDecoration.value.match;for(let _=0;_<this._highlightDecorations.length;_++){const h=this._highlightDecorations[_].match;if(h.row===m.row&&h.col===m.col&&h.size===m.size){y=_;break}}}this._onDidChangeResults.fire({resultIndex:y,resultCount:this._highlightDecorations.length})}}_findPreviousAndSelect(g,y){var m;if(!this._terminal)throw new Error("Cannot use addon until it has been loaded");if(!this._terminal||!g||g.length===0)return(m=this._terminal)===null||m===void 0||m.clearSelection(),this.clearDecorations(),!1;const _=this._terminal.getSelectionPosition();this._terminal.clearSelection();let h=this._terminal.buffer.active.baseY+this._terminal.rows-1,d=this._terminal.cols;const p=!0;this._initLinesCache();const v={startRow:h,startCol:d};let S;if(_&&(v.startRow=h=_.start.y,v.startCol=d=_.start.x,this._cachedSearchTerm!==g&&(S=this._findInLine(g,v,y,!1),S||(v.startRow=h=_.end.y,v.startCol=d=_.end.x))),S||(S=this._findInLine(g,v,y,p)),!S){v.startCol=Math.max(v.startCol,this._terminal.cols);for(let C=h-1;C>=0&&(v.startRow=C,S=this._findInLine(g,v,y,p),!S);C--);}if(!S&&h!==this._terminal.buffer.active.baseY+this._terminal.rows-1)for(let C=this._terminal.buffer.active.baseY+this._terminal.rows-1;C>=h&&(v.startRow=C,S=this._findInLine(g,v,y,p),!S);C--);return this._selectResult(S,y==null?void 0:y.decorations,y==null?void 0:y.noScroll)}_initLinesCache(){const g=this._terminal;this._linesCache||(this._linesCache=new Array(g.buffer.active.length),this._cursorMoveListener=g.onCursorMove(()=>this._destroyLinesCache()),this._resizeListener=g.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(g,y,m){return(g===0||o.includes(y[g-1]))&&(g+m.length===y.length||o.includes(y[g+m.length]))}_findInLine(g,y,m={},_=!1){var h;const d=this._terminal,p=y.startRow,v=y.startCol,S=d.buffer.active.getLine(p);if(S!=null&&S.isWrapped)return _?void(y.startCol+=d.cols):(y.startRow--,y.startCol+=d.cols,this._findInLine(g,y,m));let C=(h=this._linesCache)===null||h===void 0?void 0:h[p];C||(C=this._translateBufferLineToStringWithWrap(p,!0),this._linesCache&&(this._linesCache[p]=C));const[b,w]=C,E=this._bufferColsToStringOffset(p,v),x=m.caseSensitive?g:g.toLowerCase(),R=m.caseSensitive?b:b.toLowerCase();let D=-1;if(m.regex){const k=RegExp(x,"g");let O;if(_)for(;O=k.exec(R.slice(0,E));)D=k.lastIndex-O[0].length,g=O[0],k.lastIndex-=g.length-1;else O=k.exec(R.slice(E)),O&&O[0].length>0&&(D=E+(k.lastIndex-O[0].length),g=O[0])}else _?E-x.length>=0&&(D=R.lastIndexOf(x,E-x.length)):D=R.indexOf(x,E);if(D>=0){if(m.wholeWord&&!this._isWholeWord(D,R,g))return;let k=0;for(;k<w.length-1&&D>=w[k+1];)k++;let O=k;for(;O<w.length-1&&D+g.length>=w[O+1];)O++;const $=D-w[k],W=D+g.length-w[O],q=this._stringLengthToBufferSize(p+k,$);return{term:g,col:q,row:p+k,size:this._stringLengthToBufferSize(p+O,W)-q+d.cols*(O-k)}}}_stringLengthToBufferSize(g,y){const m=this._terminal.buffer.active.getLine(g);if(!m)return 0;for(let _=0;_<y;_++){const h=m.getCell(_);if(!h)break;const d=h.getChars();d.length>1&&(y-=d.length-1);const p=m.getCell(_+1);p&&p.getWidth()===0&&y++}return y}_bufferColsToStringOffset(g,y){const m=this._terminal;let _=g,h=0,d=m.buffer.active.getLine(_);for(;y>0&&d;){for(let p=0;p<y&&p<m.cols;p++){const v=d.getCell(p);if(!v)break;v.getWidth()&&(h+=v.getCode()===0?1:v.getChars().length)}if(_++,d=m.buffer.active.getLine(_),d&&!d.isWrapped)break;y-=m.cols}return h}_translateBufferLineToStringWithWrap(g,y){var m;const _=this._terminal,h=[],d=[0];let p=_.buffer.active.getLine(g);for(;p;){const v=_.buffer.active.getLine(g+1),S=!!v&&v.isWrapped;let C=p.translateToString(!S&&y);if(S&&v){const b=p.getCell(p.length-1);b&&b.getCode()===0&&b.getWidth()===1&&((m=v.getCell(0))===null||m===void 0?void 0:m.getWidth())===2&&(C=C.slice(0,-1))}if(h.push(C),!S)break;d.push(d[d.length-1]+C.length),g++,p=v}return[h.join(""),d]}_selectResult(g,y,m){const _=this._terminal;if(this._selectedDecoration.clear(),!g)return _.clearSelection(),!1;if(_.select(g.col,g.row,g.size),y){const h=_.registerMarker(-_.buffer.active.baseY-_.buffer.active.cursorY+g.row);if(h){const d=_.registerDecoration({marker:h,x:g.col,width:g.size,backgroundColor:y.activeMatchBackground,layer:"top",overviewRulerOptions:{color:y.activeMatchColorOverviewRuler}});if(d){const p=[];p.push(h),p.push(d.onRender(v=>this._applyStyles(v,y.activeMatchBorder,!0))),p.push(d.onDispose(()=>(0,l.disposeArray)(p))),this._selectedDecoration.value={decoration:d,match:g,dispose(){d.dispose()}}}}}if(!m&&(g.row>=_.buffer.active.viewportY+_.rows||g.row<_.buffer.active.viewportY)){let h=g.row-_.buffer.active.viewportY;h-=Math.floor(_.rows/2),_.scrollLines(h)}return!0}_applyStyles(g,y,m){g.classList.contains("xterm-find-result-decoration")||(g.classList.add("xterm-find-result-decoration"),y&&(g.style.outline=`1px solid ${y}`)),m&&g.classList.add("xterm-find-active-result-decoration")}_createResultDecoration(g,y){const m=this._terminal,_=m.registerMarker(-m.buffer.active.baseY-m.buffer.active.cursorY+g.row);if(!_)return;const h=m.registerDecoration({marker:_,x:g.col,width:g.size,backgroundColor:y.matchBackground,overviewRulerOptions:this._highlightedLines.has(_.line)?void 0:{color:y.matchOverviewRuler,position:"center"}});if(h){const d=[];d.push(_),d.push(h.onRender(p=>this._applyStyles(p,y.matchBorder,!1))),d.push(h.onDispose(()=>(0,l.disposeArray)(d)))}return h}}a.SearchAddon=f})(),c})())})(Ji);var An=Ji.exports;class Bn{constructor(){this.keyPair=null,this.serverPublicKey=null,this.useWebCrypto=this._isSecureContext(),this.microRsa=null,console.log("🔧 EncryptionService constructor:",{protocol:window.location.protocol,hostname:window.location.hostname,isSecureContext:window.isSecureContext,hasWebCrypto:!!(window.crypto&&window.crypto.subtle),useWebCrypto:this.useWebCrypto}),this.useWebCrypto?console.log("✅ Will use Web Crypto API"):console.warn("🔓 HTTP environment detected - will use micro-rsa-dsa-dh fallback")}_isSecureContext(){if(typeof window=="undefined")return!1;const t=!!(window.crypto&&window.crypto.subtle),i=window.isSecureContext||window.location.protocol==="https:",r=window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"||window.location.hostname==="::1";if(console.log("🔧 _isSecureContext check:",{hasWebCrypto:t,isSecure:i,isLocalhost:r,protocol:window.location.protocol,hostname:window.location.hostname}),t&&(i||r))try{return window.crypto.subtle.generateKey&&window.crypto.subtle.encrypt?(console.log("✅ Web Crypto API methods are available"),!0):(console.warn("⚠️ Web Crypto API object exists but methods not available"),!1)}catch(n){return console.warn("⚠️ Web Crypto API test failed:",n.message),!1}return!i&&!r?(console.warn("🔧 HTTP environment detected - will use micro-rsa-dsa-dh fallback"),!1):t&&(i||r)}_loadNodeForge(){return qe(this,null,function*(){if(!this.nodeForge)try{const t=yield Promise.resolve().then(()=>Cc);this.nodeForge=t.default||t,console.log("✅ node-forge loaded for HTTP environment")}catch(t){console.error("❌ Failed to load node-forge from node_modules:",t),console.warn("⚠️ Using mock crypto implementation for testing"),this.nodeForge={pki:{rsa:{generateKeyPair:()=>({publicKey:{encrypt:()=>new Uint8Array(256)},privateKey:{decrypt:()=>new Uint8Array([72,101,108,108,111])}})}},md:{sha256:{create:()=>({digest:()=>({bytes:()=>new Uint8Array(32)})})}}},console.log("✅ Mock crypto implementation loaded")}return this.nodeForge})}_generateNodeForgeKeyPair(){return qe(this,null,function*(){const t=yield this._loadNodeForge();console.log("✅ node-forge loaded successfully");try{console.log("🔧 Generating RSA key pair with node-forge...");const i=t.pki.rsa.generateKeyPair({bits:2048});return this.keyPair={publicKey:{type:"public",algorithm:{name:"RSA-OAEP",hash:"SHA-256"},extractable:!0,usages:["encrypt"],nodeForge:i.publicKey,pem:t.pki.publicKeyToPem(i.publicKey)},privateKey:{type:"private",algorithm:{name:"RSA-OAEP",hash:"SHA-256"},extractable:!0,usages:["decrypt"],nodeForge:i.privateKey,pem:t.pki.privateKeyToPem(i.privateKey)}},console.log("🔧 RSA key pair generated successfully with node-forge"),this.keyPair}catch(i){throw console.error("❌ Failed to generate key pair with node-forge:",i),new Error("Key generation failed: "+i.message)}})}generateKeyPair(){return qe(this,null,function*(){try{if(this.useWebCrypto){console.log("🔧 Attempting Web Crypto API key generation...");try{this.keyPair=yield window.crypto.subtle.generateKey({name:"RSA-OAEP",modulusLength:2048,publicExponent:new Uint8Array([1,0,1]),hash:"SHA-256"},!0,["encrypt","decrypt"]),console.log("✅ Web Crypto API key generation successful")}catch(t){return console.error("❌ Web Crypto API failed in this environment:",t),console.warn("🔄 Falling back to node-forge..."),this.useWebCrypto=!1,yield this._generateNodeForgeKeyPair()}}else return yield this._generateNodeForgeKeyPair();return this.keyPair}catch(t){throw console.error("❌ Lỗi tạo key pair:",t),new Error("Không thể tạo key pair")}})}exportPublicKey(){return qe(this,arguments,function*(t=this.keyPair){try{if(this.useWebCrypto){const i=yield window.crypto.subtle.exportKey("spki",t.publicKey),r=String.fromCharCode(...new Uint8Array(i));return`-----BEGIN PUBLIC KEY-----
${window.btoa(r)}
-----END PUBLIC KEY-----`}else return console.warn("⚠️ Using mock public key export for HTTP testing"),`-----BEGIN PUBLIC KEY-----
${btoa("mock-public-key-data-for-testing")}
-----END PUBLIC KEY-----`}catch(i){throw console.error("❌ Lỗi export public key:",i),new Error("Không thể export public key")}})}importServerPublicKey(t){return qe(this,null,function*(){try{const i=t.replace(/\r\n/g,`
`).replace(/\r/g,`
`),r="-----BEGIN PUBLIC KEY-----",n="-----END PUBLIC KEY-----";if(!i.includes(r)||!i.includes(n))throw new Error("Invalid PEM format - missing headers");const c=i.indexOf(r)+r.length,a=i.indexOf(n);if(c===-1||a===-1||c>=a)throw new Error("Invalid PEM format - malformed headers");const l=i.substring(c,a).replace(/\s+/g,"");if(l.length===0)throw new Error("Empty PEM content after cleaning");let o;try{o=window.atob(l)}catch(u){throw new Error("Invalid base64 content in PEM")}const f=new Uint8Array(o.length);for(let u=0;u<o.length;u++)f[u]=o.charCodeAt(u);return this.useWebCrypto?(this.serverPublicKey=yield window.crypto.subtle.importKey("spki",f.buffer,{name:"RSA-OAEP",hash:"SHA-256"},!0,["encrypt"]),console.log("🔧 Server public key imported successfully:",this.serverPublicKey)):(console.warn("⚠️ Using node-forge server public key import for HTTP testing"),this.serverPublicKey={type:"node-forge-server-key",pem:t},console.log("✅ Server public key stored for node-forge")),this.serverPublicKey}catch(i){throw console.error("❌ Import server public key error:",i),new Error("Không thể import server public key: "+i.message)}})}encryptForServer(r){return qe(this,arguments,function*(t,i=this.serverPublicKey){try{if(console.log("🔧 encryptForServer called with:",{dataLength:t==null?void 0:t.length,hasPublicKey:!!i,useWebCrypto:this.useWebCrypto,publicKeyType:typeof i}),!i)throw new Error("Server public key chưa được import");if(this.useWebCrypto){console.log("🔧 Using Web Crypto API for encryption");const c=new TextEncoder().encode(t);console.log("🔧 Encoded data length:",c.length),console.log("🔧 Public key object:",i);const a=yield window.crypto.subtle.encrypt({name:"RSA-OAEP"},i,c);console.log("🔧 Encryption successful, result length:",a.byteLength);const s=btoa(String.fromCharCode(...new Uint8Array(a)));return console.log("🔧 Base64 result length:",s.length),s}else{console.warn("⚠️ Using node-forge RSA encryption for HTTP environment");try{const n=yield this._loadNodeForge();if(!i||!i.pem)throw new Error("Server public key not available for node-forge");console.log("🔧 Attempting node-forge RSA encryption...");try{const c=n.pki.publicKeyFromPem(i.pem);console.log("✅ Successfully parsed RSA public key with node-forge"),console.log("🔧 Encrypting with node-forge RSA-OAEP...");const a=c.encrypt(t,"RSA-OAEP",{md:n.md.sha256.create(),mgf1:{md:n.md.sha256.create()}}),s=btoa(a);return console.log("✅ RSA-OAEP encryption successful with node-forge"),console.log(`🔧 Encrypted data length: ${s.length} chars`),s}catch(c){console.error("❌ Real encryption failed, falling back to mock:",c),console.warn("⚠️ Using mock encryption as fallback");const a=new Uint8Array(256);if(window.crypto&&window.crypto.getRandomValues){window.crypto.getRandomValues(a);const l=new TextEncoder().encode(t);for(let o=0;o<l.length&&o<a.length;o++)a[o]^=l[o]}else{const l=new TextEncoder().encode(t);for(let o=0;o<a.length;o++)a[o]=(l[o%l.length]+o+42)%256}const s=btoa(String.fromCharCode(...a));return console.log("⚠️ Generated mock encryption result"),s}}catch(n){throw console.error("❌ node-forge encryption failed:",n),new Error("Không thể mã hóa với node-forge: "+n.message)}}}catch(n){throw console.error("❌ Lỗi mã hóa dữ liệu:",n),console.error("❌ Error stack:",n.stack),new Error("Không thể mã hóa dữ liệu: "+n.message)}})}decryptFromServer(t){return qe(this,null,function*(){try{if(!this.keyPair)throw new Error("Key pair chưa được tạo");if(this.useWebCrypto){console.log("🔧 Using Web Crypto API for decryption");const i=atob(t),r=new Uint8Array(i.length);for(let a=0;a<i.length;a++)r[a]=i.charCodeAt(a);const n=yield window.crypto.subtle.decrypt({name:"RSA-OAEP"},this.keyPair.privateKey,r);return new TextDecoder().decode(n)}else{console.log("🔧 Using node-forge for decryption"),yield this._loadNodeForge();const i=this.keyPair.privateKey.nodeForge,r=atob(t);return i.decrypt(r,"RSA-OAEP",{md:forge.md.sha256.create(),mgf1:{md:forge.md.sha256.create()}})}}catch(i){throw console.error("❌ Lỗi giải mã dữ liệu:",i),new Error("Không thể giải mã dữ liệu: "+i.message)}})}generateAESKey(){return qe(this,null,function*(){try{return yield window.crypto.subtle.generateKey({name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}catch(t){throw console.error("❌ Lỗi tạo AES key:",t),new Error("Không thể tạo AES key")}})}encryptAES(t,i){return qe(this,null,function*(){try{const n=new TextEncoder().encode(t),c=window.crypto.getRandomValues(new Uint8Array(12)),a=yield window.crypto.subtle.encrypt({name:"AES-GCM",iv:c},i,n),s=new Uint8Array(c.length+a.byteLength);return s.set(c),s.set(new Uint8Array(a),c.length),btoa(String.fromCharCode(...s))}catch(r){throw console.error("❌ Lỗi mã hóa AES:",r),new Error("Không thể mã hóa AES")}})}decryptAES(t,i){return qe(this,null,function*(){try{const r=atob(t),n=new Uint8Array(r.length);for(let o=0;o<r.length;o++)n[o]=r.charCodeAt(o);const c=n.slice(0,12),a=n.slice(12),s=yield window.crypto.subtle.decrypt({name:"AES-GCM",iv:c},i,a);return new TextDecoder().decode(s)}catch(r){throw console.error("❌ Lỗi giải mã AES:",r),new Error("Không thể giải mã AES")}})}hash(t){return qe(this,null,function*(){try{if(this.useWebCrypto){const r=new TextEncoder().encode(t),n=yield window.crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(n)).map(a=>a.toString(16).padStart(2,"0")).join("")}else if(console.warn("⚠️ Using mock hash for HTTP testing"),window.crypto&&window.crypto.getRandomValues){let i=0;for(let n=0;n<t.length;n++){const c=t.charCodeAt(n);i=(i<<5)-i+c,i=i&i}return Math.abs(i).toString(16).padStart(8,"0").repeat(8).substring(0,64)}else{let i=0;for(let r=0;r<t.length;r++)i=(i<<5)-i+t.charCodeAt(r),i=i&i;return Math.abs(i).toString(16).padStart(8,"0").repeat(8).substring(0,64)}}catch(i){throw console.error("❌ Lỗi tạo hash:",i),new Error("Không thể tạo hash")}})}generateRandomString(t=32){if(this.useWebCrypto){const i=new Uint8Array(t);return window.crypto.getRandomValues(i),Array.from(i,r=>r.toString(16).padStart(2,"0")).join("")}else{console.warn("⚠️ Using Math.random for random generation in HTTP environment");let i="";const r="0123456789abcdef";for(let n=0;n<t*2;n++)i+=r.charAt(Math.floor(Math.random()*r.length));return i}}}class In{static validateSSHConfig(t){const i=[];return t.host?typeof t.host!="string"?i.push("Host phải là string"):t.host.length>255?i.push("Host quá dài (tối đa 255 ký tự)"):this.isValidHost(t.host)||i.push("Host không hợp lệ"):i.push("Host là bắt buộc"),t.username?typeof t.username!="string"?i.push("Username phải là string"):t.username.length>32?i.push("Username quá dài (tối đa 32 ký tự)"):this.isValidUsername(t.username)||i.push("Username chứa ký tự không hợp lệ"):i.push("Username là bắt buộc"),t.password?typeof t.password!="string"?i.push("Password phải là string"):t.password.length<1?i.push("Password không được để trống"):t.password.length>128&&i.push("Password quá dài (tối đa 128 ký tự)"):i.push("Password là bắt buộc"),t.port!==void 0&&(Number.isInteger(t.port)?(t.port<1||t.port>65535)&&i.push("Port phải trong khoảng 1-65535"):i.push("Port phải là số nguyên")),t.wsUrl&&!this.isValidWebSocketURL(t.wsUrl)&&i.push("WebSocket URL không hợp lệ"),{isValid:i.length===0,errors:i}}static isValidHost(t){return/^(?:(?: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]?)$/.test(t)||/^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/.test(t)?!0:/^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)*[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/.test(t)}static isValidUsername(t){return/^[a-zA-Z0-9_-]+$/.test(t)}static isValidWebSocketURL(t){try{const i=new URL(t);return i.protocol==="ws:"||i.protocol==="wss:"}catch(i){return!1}}static validateEncryptionReadiness(t,i){const r=[];return t||r.push("Encryption service not initialized"),i||r.push("Server public key not available"),{isValid:r.length===0,errors:r}}static validateComputingConfig(t){const i=[];return t.computingId?typeof t.computingId!="string"?i.push("Computing ID must be a string"):/^[0-9.]+$/.test(t.computingId)?t.computingId.length>50&&i.push("Computing ID must not exceed 50 characters"):i.push("Computing ID must contain only numbers and dots"):i.push("Computing ID is required"),t.userToken?typeof t.userToken!="string"?i.push("User token must be a string"):t.userToken.length>8192&&i.push("User token is too large"):i.push("User token is required"),t.wsUrl&&!this.isValidWebSocketURL(t.wsUrl)&&i.push("Invalid WebSocket URL"),{isValid:i.length===0,errors:i}}static validateSecureConnection(t){const i=[],r=[];if(!t)return i.push("WebSocket URL is required"),{isValid:!1,errors:i,warnings:r};try{const n=new URL(t);n.protocol==="ws:"?r.push("Warning: Using unencrypted WebSocket (ws://). Consider using wss:// for better security."):n.protocol!=="wss:"&&i.push("Invalid WebSocket protocol. Only ws:// and wss:// are supported.")}catch(n){i.push("Invalid WebSocket URL format")}return{isValid:i.length===0,errors:i,warnings:r}}static sanitizeString(t,i=255){return typeof t!="string"?"":t.trim().slice(0,i).replace(/[\x00-\x1F\x7F]/g,"")}static validateTerminalOptions(t){const i=[];if(typeof t!="object"||t===null)return{isValid:!1,errors:["Options phải là object"]};if(t.fontSize!==void 0&&(!Number.isInteger(t.fontSize)||t.fontSize<8||t.fontSize>72)&&i.push("fontSize phải là số nguyên từ 8-72"),t.scrollback!==void 0&&(!Number.isInteger(t.scrollback)||t.scrollback<0||t.scrollback>1e4)&&i.push("scrollback phải là số nguyên từ 0-10000"),t.theme!==void 0)if(typeof t.theme!="object")i.push("theme phải là object");else{const r=["background","foreground","cursor","cursorAccent","selection"];for(const[n,c]of Object.entries(t.theme))r.includes(n)&&typeof c=="string"&&(this.isValidColor(c)||i.push(`theme.${n} không phải màu hợp lệ`))}return t.reconnection!==void 0&&(typeof t.reconnection!="object"?i.push("reconnection phải là object"):(t.reconnection.maxAttempts!==void 0&&(!Number.isInteger(t.reconnection.maxAttempts)||t.reconnection.maxAttempts<0||t.reconnection.maxAttempts>20)&&i.push("reconnection.maxAttempts phải là số nguyên từ 0-20"),t.reconnection.heartbeatInterval!==void 0&&(!Number.isInteger(t.reconnection.heartbeatInterval)||t.reconnection.heartbeatInterval<1e3||t.reconnection.heartbeatInterval>3e5)&&i.push("reconnection.heartbeatInterval phải là số nguyên từ 1000-300000ms"))),{isValid:i.length===0,errors:i}}static isValidColor(t){return/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(t)?!0:/^rgba?\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*(?:,\s*[\d.]+\s*)?\)$/.test(t)}static isValidJWTFormat(t){if(typeof t!="string")return!1;const i=t.split(".");return i.length===3&&i.every(r=>r.length>0)}static validateMessageSize(t,i=1e4){if(typeof t=="string")return t.length<=i;if(t instanceof ArrayBuffer)return t.byteLength<=i;try{return JSON.stringify(t).length<=i}catch(r){return!1}}static sanitizeForLogging(t){if(typeof t!="object"||t===null)return t;const i=["password","token","key","secret","auth","credential"],r={};for(const[n,c]of Object.entries(t)){const a=n.toLowerCase();i.some(s=>a.includes(s))?r[n]="***HIDDEN***":typeof c=="object"&&c!==null?r[n]=this.sanitizeForLogging(c):r[n]=c}return r}}const ut=In,Ln=Object.freeze(Object.defineProperty({__proto__:null,default:ut},Symbol.toStringTag,{value:"Module"})),or=class or{constructor(){this.isProduction=typeof window!="undefined"&&window.location.hostname!=="localhost"&&window.location.hostname!=="127.0.0.1",this.logLevel=this.isProduction?"error":"debug",this.maxLogLength=1e3}shouldLog(t){return or.LEVELS[t]>=or.LEVELS[this.logLevel]}sanitizeData(t){if(t==null)return t;const i=ut.sanitizeForLogging(t),r=JSON.stringify(i);return r.length>this.maxLogLength?En($t({},i),{_truncated:!0,_originalLength:r.length}):i}formatMessage(t,i,r=null){const c=`[${new Date().toISOString()}] [${t.toUpperCase()}] [CLIENT]`;if(r){const a=this.sanitizeData(r);return`${c} ${i} ${JSON.stringify(a)}`}return`${c} ${i}`}debug(t,i=null){this.shouldLog("debug")&&console.debug(this.formatMessage("debug",t,i))}info(t,i=null){this.shouldLog("info")&&console.info(this.formatMessage("info",t,i))}warn(t,i=null){this.shouldLog("warn")&&console.warn(this.formatMessage("warn",t,i))}error(t,i=null){this.shouldLog("error")&&console.error(this.formatMessage("error",t,i))}logConnection(t,i={}){const r=this.sanitizeData(i);this.info(`Connection ${t}`,r)}logAuth(t,i={}){const r=this.sanitizeData(i);this.info(`Auth ${t}`,r)}logSecurity(t,i={}){const r=this.sanitizeData(i);this.warn(`Security ${t}`,r)}logPerformance(t,i,r="ms"){this.debug(`Performance ${t}`,{value:i,unit:r})}log(t,i,r=null){this.shouldLog(t)&&console[t](this.formatMessage(t,i,r))}createContextLogger(t){return{debug:(i,r)=>this.debug(`[${t}] ${i}`,r),info:(i,r)=>this.info(`[${t}] ${i}`,r),warn:(i,r)=>this.warn(`[${t}] ${i}`,r),error:(i,r)=>this.error(`[${t}] ${i}`,r),logConnection:(i,r)=>this.logConnection(`[${t}] ${i}`,r),logAuth:(i,r)=>this.logAuth(`[${t}] ${i}`,r),logSecurity:(i,r)=>this.logSecurity(`[${t}] ${i}`,r),logPerformance:(i,r,n)=>this.logPerformance(`[${t}] ${i}`,r,n)}}createContext(t){return this.createContextLogger(t)}setLogLevel(t){or.LEVELS.hasOwnProperty(t)&&(this.logLevel=t)}getLogLevel(){return this.logLevel}setProductionMode(t){this.isProduction=t,this.logLevel=t?"error":"debug"}};bn(or,"LEVELS",{debug:0,info:1,warn:2,error:3});let Tr=or;const es=new Tr,kn=Object.freeze(Object.defineProperty({__proto__:null,SecureLogger:Tr,default:es},Symbol.toStringTag,{value:"Module"})),ts={fontSize:14,fontFamily:'Menlo, Monaco, "Courier New", monospace',theme:{background:"#000000",foreground:"#ffffff",cursor:"#ffffff",cursorAccent:"#000000",selection:"rgba(255, 255, 255, 0.3)"},cursorBlink:!0,cursorStyle:"block",scrollback:1e3,allowTransparency:!1,tabStopWidth:8,screenReaderMode:!1,convertEol:!0,disableStdin:!1,reconnection:{enabled:!0,maxAttempts:5,heartbeatInterval:3e4}};function Rn(e,t,i={}){var k,O;const r=es.createContextLogger("Terminal");if(!e)throw r.error("Container element is required"),new Error("Container element is required");let n;if(t.computingId&&t.userToken){if(n=ut.validateComputingConfig(t),!n.isValid)throw r.error("Invalid computing configuration",{errors:n.errors}),new Error(`Computing configuration invalid: ${n.errors.join(", ")}`)}else if(n=ut.validateSSHConfig(t),!n.isValid)throw r.error("Invalid SSH configuration",{errors:n.errors}),new Error(`SSH configuration invalid: ${n.errors.join(", ")}`);const a=ut.validateTerminalOptions(i);if(!a.isValid)throw r.error("Invalid terminal options",{errors:a.errors}),new Error(`Terminal options invalid: ${a.errors.join(", ")}`);const s=$t($t($t({},ts),i.theme?{theme:$t($t({},ts.theme),i.theme)}:{}),i),l=i.showConnectionLogs===!0,o=new Ct.Terminal(s),f=new wn.FitAddon,u=new Tn.WebLinksAddon,g=new An.SearchAddon;o.loadAddon(f),o.loadAddon(u),o.loadAddon(g),o.open(e),setTimeout(()=>{f.fit()},0);const y=t.wsUrl||"wss://ssh-proxy.dev.longvan.vn";if(!ut.isValidWebSocketURL(y))throw r.error("Invalid WebSocket URL",{wsUrl:y}),new Error("Invalid WebSocket URL");const m=ut.validateSecureConnection(y);if(!m.isValid)throw r.error("Insecure WebSocket connection",{errors:m.errors}),new Error(`Insecure connection: ${m.errors.join(", ")}`);m.warnings&&m.warnings.length>0&&m.warnings.forEach($=>{o.writeln(`⚠️ ${$}`)});let _=null,h=!1,d=null,p=null,v=0;const S=((k=s.reconnection)==null?void 0:k.maxAttempts)||5,C=((O=s.reconnection)==null?void 0:O.enabled)!==!1;let b=null,w=!1;const E=()=>{if(w)return;w=!0,v++;const $=Math.min(1e3*Math.pow(2,v-1),3e4);o.writeln(`\r
Attempting to reconnect (${v}/${S}) in ${$/1e3}s...\r
`),b=setTimeout(()=>{D()},$)},x=()=>qe(this,null,function*(){try{return d=new Bn,yield d.generateKeyPair(),!0}catch($){return r.error("Failed to initialize encryption",{error:$.message}),!1}}),R=()=>qe(this,null,function*(){try{const $=ut.validateEncryptionReadiness(d,p);if(!$.isValid)throw new Error(`Encryption not ready: ${$.errors.join(", ")}`);let W;if(t.computingId&&t.userToken){const q=yield d.encryptForServer(t.userToken,p);W={type:"encrypted-auth",computingId:t.computingId,encryptedToken:q,clientPublicKey:yield d.exportPublicKey()},l&&o.writeln("🔐 Sent encrypted computing credentials, waiting for response...")}else{const q=yield d.encryptForServer(t.password,p);W={type:"encrypted-auth",host:t.host,username:t.username,encryptedPassword:q,clientPublicKey:yield d.exportPublicKey()},l&&o.writeln("🔐 Sent encrypted SSH credentials, waiting for response...")}_.send(JSON.stringify(W))}catch($){throw r.error("Failed to send encrypted auth",{error:$.message}),o.writeln(`\r
❌ Encryption failed: ${$.message}\r
`),o.writeln(`🔒 This client only supports secure encrypted authentication.\r
`),o.writeln(`Please ensure the server supports RSA encryption.\r
`),_&&_.readyState===WebSocket.OPEN&&_.close(1e3,"Encryption required"),$}}),D=()=>qe(this,null,function*(){if(_&&_.readyState!==WebSocket.CLOSED&&_.close(),l&&o.writeln(`🔌 Connecting to ${y}...`),!(yield x())){o.writeln(`\r
❌ Failed to initialize encryption\r
`);return}try{_=new WebSocket(y)}catch(W){r.error("Failed to create WebSocket",{error:W.message,wsUrl:y}),o.writeln(`\r
❌ Failed to connect to ${y}: ${W.message}\r
`);return}_.onopen=()=>qe(this,null,function*(){h=!0,v=0,w=!1,l&&o.writeln(v>0?`\r
✅ Reconnected to SSH relay server\r
`:"✅ WebSocket connected to "+y),l&&o.writeln("🔑 Waiting for server public key...")}),_.onmessage=W=>qe(this,null,function*(){try{const q=JSON.parse(W.data);if(!ut.validateMessageSize(W.data,5e4)){r.logSecurity("message_too_large",{size:W.data.length});return}if(q.type==="welcome"){try{if(q.publicKey)p=yield d.importServerPublicKey(q.publicKey),l&&o.writeln("🔑 Server public key received"),yield R();else{o.writeln(`\r
❌ Server does not support encrypted authentication\r
`),o.writeln(`🔒 This client requires RSA encryption for security\r
`),o.writeln(`Please upgrade your server to support encrypted authentication\r
`),_&&_.readyState===WebSocket.OPEN&&_.close(1e3,"Encryption required");return}}catch(V){r.error("Failed to process welcome message",{error:V.message}),o.writeln(`\r
❌ Failed to process server welcome: ${V.message}\r
`),o.writeln(`🔒 Cannot establish secure connection\r
`),_&&_.readyState===WebSocket.OPEN&&_.close(1e3,"Encryption setup failed");return}return}if(q.type==="data")try{const V=window.atob(q.data),L=new Uint8Array(V.length);for(let P=0;P<V.length;P++)L[P]=V.charCodeAt(P);const N=new TextDecoder().decode(L);o.write(N)}catch(V){r.error("Failed to decode terminal data",{error:V.message});try{o.write(window.atob(q.data))}catch(L){o.write(q.data)}}else q.type==="error"?(r.error("Server error received",{code:q.code,message:q.message}),o.writeln(`\r
❌ Error: ${q.message}\r
`)):q.type==="status"&&q.status==="authenticated"?l&&o.writeln(`\r
✅ Connected to ${t.host} as ${t.username}\r
`):q.type==="status"&&q.status==="closed"?l&&o.writeln(`\r
🔌 SSH connection closed\r
`):q.type==="auth-success"?(l&&o.writeln(`\r
✅ Authentication successful!\r
`),q.host&&q.username&&(t.host=q.host,t.username=q.username,t.port=q.port||22)):q.type==="auth-error"?(r.logAuth("auth_failed",{message:q.message}),o.writeln(`\r
❌ Authentication failed: ${q.message}\r
`)):q.type==="ping"||q.type==="pong"||q.type==="resize"||r.warn("Unknown message type received",{type:q.type})}catch(q){o.write(W.data)}}),_.onclose=W=>{if(h=!1,W.code===1e3){o.writeln(`\r
Connection to SSH relay server closed normally\r
`);return}const V={1006:"Connection lost (network issue or server restart)",1001:"Server going away",1002:"Protocol error",1003:"Unsupported data type",1011:"Server error",1012:"Server restart",1013:"Server overloaded"}[W.code]||`Unknown error (Code: ${W.code})`;o.writeln(`\r
Connection to SSH relay server closed: ${V}\r
`),W.reason&&o.writeln(`Reason: ${W.reason}\r
`),C&&!w&&v<S?E():C&&v>=S?o.writeln(`\r
Max reconnection attempts reached. Please refresh the page or check your connection.\r
`):C||o.writeln(`\r
Connection lost. Auto-reconnection is disabled.\r
`)},_.onerror=W=>{h=!1,o.writeln(`\r
WebSocket error: ${W.message||"Unknown error"}\r
`),o.writeln(`\r
Please check if the SSH proxy server is running at ${y}\r
`)},o.onData(W=>{if(h&&_.readyState===WebSocket.OPEN){if(!ut.validateMessageSize(W,1e4)){r.warn("Terminal input too large",{size:W.length});return}let q;try{const L=new TextEncoder().encode(W),N=String.fromCharCode(...L);q=window.btoa(N)}catch(L){r.error("Failed to encode terminal data",{error:L.message});try{q=window.btoa(W)}catch(N){const P=W.replace(/[^\x00-\x7F]/g,"?");q=window.btoa(P)}}const V={type:"data",data:q};try{_.send(JSON.stringify(V))}catch(L){r.error("Failed to send terminal data",{error:L.message})}}})});return setTimeout(()=>{D()},100),f.fit(),{terminal:o,fitAddon:f,searchAddon:g,reconnect:()=>qe(this,null,function*(){yield D()}),resize:()=>{f.fit()},dispose:()=>{b&&clearTimeout(b),_&&_.close(),o.dispose()},search:($,W)=>{g.findNext($,W)},searchPrevious:($,W)=>{g.findPrevious($,W)}}}const Dn=Object.freeze(Object.defineProperty({__proto__:null,createTerminal:Rn},Symbol.toStringTag,{value:"Module"}));var _e={options:{usePureJavaScript:!1}},ii={},Pn=ii,rs={};ii.encode=function(e,t,i){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(i!==void 0&&typeof i!="number")throw new TypeError('"maxline" must be a number.');var r="";if(!(e instanceof Uint8Array))r=Nn(e,t);else{var n=0,c=t.length,a=t.charAt(0),s=[0];for(n=0;n<e.length;++n){for(var l=0,o=e[n];l<s.length;++l)o+=s[l]<<8,s[l]=o%c,o=o/c|0;for(;o>0;)s.push(o%c),o=o/c|0}for(n=0;e[n]===0&&n<e.length-1;++n)r+=a;for(n=s.length-1;n>=0;--n)r+=t[s[n]]}if(i){var f=new RegExp(".{1,"+i+"}","g");r=r.match(f).join(`\r
`)}return r},ii.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var i=rs[t];if(!i){i=rs[t]=[];for(var r=0;r<t.length;++r)i[t.charCodeAt(r)]=r}e=e.replace(/\s/g,"");for(var n=t.length,c=t.charAt(0),a=[0],r=0;r<e.length;r++){var s=i[e.charCodeAt(r)];if(s===void 0)return;for(var l=0,o=s;l<a.length;++l)o+=a[l]*n,a[l]=o&255,o>>=8;for(;o>0;)a.push(o&255),o>>=8}for(var f=0;e[f]===c&&f<e.length-1;++f)a.push(0);return typeof Buffer!="undefined"?Buffer.from(a.reverse()):new Uint8Array(a.reverse())};function Nn(e,t){var i=0,r=t.length,n=t.charAt(0),c=[0];for(i=0;i<e.length();++i){for(var a=0,s=e.at(i);a<c.length;++a)s+=c[a]<<8,c[a]=s%r,s=s/r|0;for(;s>0;)c.push(s%r),s=s/r|0}var l="";for(i=0;e.at(i)===0&&i<e.length()-1;++i)l+=n;for(i=c.length-1;i>=0;--i)l+=t[c[i]];return l}var is=_e,ss=Pn,H=is.util=is.util||{};(function(){if(typeof process!="undefined"&&process.nextTick&&!process.browser){H.nextTick=process.nextTick,typeof setImmediate=="function"?H.setImmediate=setImmediate:H.setImmediate=H.nextTick;return}if(typeof setImmediate=="function"){H.setImmediate=function(){return setImmediate.apply(void 0,arguments)},H.nextTick=function(a){return setImmediate(a)};return}if(H.setImmediate=function(a){setTimeout(a,0)},typeof window!="undefined"&&typeof window.postMessage=="function"){let a=function(s){if(s.source===window&&s.data===e){s.stopPropagation();var l=t.slice();t.length=0,l.forEach(function(o){o()})}};var e="forge.setImmediate",t=[];H.setImmediate=function(s){t.push(s),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver!="undefined"){var i=Date.now(),r=!0,n=document.createElement("div"),t=[];new MutationObserver(function(){var s=t.slice();t.length=0,s.forEach(function(l){l()})}).observe(n,{attributes:!0});var c=H.setImmediate;H.setImmediate=function(s){Date.now()-i>15?(i=Date.now(),c(s)):(t.push(s),t.length===1&&n.setAttribute("a",r=!r))}}H.nextTick=H.setImmediate})(),H.isNodejs=typeof process!="undefined"&&process.versions&&process.versions.node,H.globalScope=function(){return H.isNodejs?wr:typeof self=="undefined"?window:self}(),H.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"},H.isArrayBuffer=function(e){return typeof ArrayBuffer!="undefined"&&e instanceof ArrayBuffer},H.isArrayBufferView=function(e){return e&&H.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function hr(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}H.ByteBuffer=si;function si(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(H.isArrayBuffer(e)||H.isArrayBufferView(e))if(typeof Buffer!="undefined"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch(r){for(var i=0;i<t.length;++i)this.putByte(t[i])}}else(e instanceof si||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}H.ByteStringBuffer=si;var On=4096;H.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>On&&(this.data.substr(0,1),this._constructedStringLength=0)},H.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read},H.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0},H.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))},H.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var i=this.data;t>0;)t&1&&(i+=e),t>>>=1,t>0&&(e+=e);return this.data=i,this._optimizeConstructedString(t),this},H.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this},H.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(H.encodeUtf8(e))},H.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))},H.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))},H.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))},H.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))},H.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))},H.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))},H.ByteStringBuffer.prototype.putInt=function(e,t){hr(t);var i="";do t-=8,i+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(i)},H.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)},H.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())},H.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)},H.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e},H.ByteStringBuffer.prototype.getInt24=function(){var e=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,e},H.ByteStringBuffer.prototype.getInt32=function(){var e=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,e},H.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e},H.ByteStringBuffer.prototype.getInt24Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,e},H.ByteStringBuffer.prototype.getInt32Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,e},H.ByteStringBuffer.prototype.getInt=function(e){hr(e);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),e-=8;while(e>0);return t},H.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),i=2<<e-2;return t>=i&&(t-=i<<1),t},H.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t},H.ByteStringBuffer.prototype.bytes=function(e){return typeof e=="undefined"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},H.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)},H.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this},H.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)},H.ByteStringBuffer.prototype.copy=function(){var e=H.createBuffer(this.data);return e.read=this.read,e},H.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this},H.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this},H.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this},H.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.length;++t){var i=this.data.charCodeAt(t);i<16&&(e+="0"),e+=i.toString(16)}return e},H.ByteStringBuffer.prototype.toString=function(){return H.decodeUtf8(this.bytes())};function Mn(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var i=H.isArrayBuffer(e),r=H.isArrayBufferView(e);if(i||r){i?this.data=new DataView(e):this.data=new DataView(e.buffer,e.byteOffset,e.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,e!=null&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}H.DataBuffer=Mn,H.DataBuffer.prototype.length=function(){return this.write-this.read},H.DataBuffer.prototype.isEmpty=function(){return this.length()<=0},H.DataBuffer.prototype.accommodate=function(e,t){if(this.length()>=e)return this;t=Math.max(t||this.growSize,e);var i=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),r=new Uint8Array(this.length()+t);return r.set(i),this.data=new DataView(r.buffer),this},H.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this},H.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var i=0;i<t;++i)this.data.setUint8(e);return this},H.DataBuffer.prototype.putBytes=function(e,t){if(H.isArrayBufferView(e)){var i=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=i.byteLength-i.byteOffset;this.accommodate(r);var n=new Uint8Array(this.data.buffer,this.write);return n.set(i),this.write+=r,this}if(H.isArrayBuffer(e)){var i=new Uint8Array(e);this.accommodate(i.byteLength);var n=new Uint8Array(this.data.buffer);return n.set(i,this.write),this.write+=i.byteLength,this}if(e instanceof H.DataBuffer||typeof e=="object"&&typeof e.read=="number"&&typeof e.write=="number"&&H.isArrayBufferView(e.data)){var i=new Uint8Array(e.data.byteLength,e.read,e.length());this.accommodate(i.byteLength);var n=new Uint8Array(e.data.byteLength,this.write);return n.set(i),this.write+=i.byteLength,this}if(e instanceof H.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary",typeof e=="string"){var c;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),c=new Uint8Array(this.data.buffer,this.write),this.write+=H.binary.hex.decode(e,c,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),c=new Uint8Array(this.data.buffer,this.write),this.write+=H.binary.base64.decode(e,c,this.write),this;if(t==="utf8"&&(e=H.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),c=new Uint8Array(this.data.buffer,this.write),this.write+=H.binary.raw.decode(c),this;if(t==="utf16")return this.accommodate(e.length*2),c=new Uint16Array(this.data.buffer,this.write),this.write+=H.text.utf16.encode(c),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)},H.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this},H.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")},H.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this},H.DataBuffer.prototype.putInt24=function(e){return this.accommodate(3),this.data.setInt16(this.write,e>>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this},H.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this},H.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this},H.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this},H.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this},H.DataBuffer.prototype.putInt=function(e,t){hr(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this},H.DataBuffer.prototype.putSignedInt=function(e,t){return hr(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)},H.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)},H.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e},H.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e},H.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e},H.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e},H.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e},H.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e},H.DataBuffer.prototype.getInt=function(e){hr(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t},H.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),i=2<<e-2;return t>=i&&(t-=i<<1),t},H.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t},H.DataBuffer.prototype.bytes=function(e){return typeof e=="undefined"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},H.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)},H.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this},H.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)},H.DataBuffer.prototype.copy=function(){return new H.DataBuffer(this)},H.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this},H.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this},H.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this},H.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.byteLength;++t){var i=this.data.getUint8(t);i<16&&(e+="0"),e+=i.toString(16)}return e},H.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return H.binary.raw.encode(t);if(e==="hex")return H.binary.hex.encode(t);if(e==="base64")return H.binary.base64.encode(t);if(e==="utf8")return H.text.utf8.decode(t);if(e==="utf16")return H.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)},H.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=H.encodeUtf8(e)),new H.ByteBuffer(e)},H.fillString=function(e,t){for(var i="";t>0;)t&1&&(i+=e),t>>>=1,t>0&&(e+=e);return i},H.xorBytes=function(e,t,i){for(var r="",n="",c="",a=0,s=0;i>0;--i,++a)n=e.charCodeAt(a)^t.charCodeAt(a),s>=10&&(r+=c,c="",s=0),c+=String.fromCharCode(n),++s;return r+=c,r},H.hexToBytes=function(e){var t="",i=0;for(e.length&!0&&(i=1,t+=String.fromCharCode(parseInt(e[0],16)));i<e.length;i+=2)t+=String.fromCharCode(parseInt(e.substr(i,2),16));return t},H.bytesToHex=function(e){return H.createBuffer(e).toHex()},H.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var Tt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",At=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-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],ns="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";H.encode64=function(e,t){for(var i="",r="",n,c,a,s=0;s<e.length;)n=e.charCodeAt(s++),c=e.charCodeAt(s++),a=e.charCodeAt(s++),i+=Tt.charAt(n>>2),i+=Tt.charAt((n&3)<<4|c>>4),isNaN(c)?i+="==":(i+=Tt.charAt((c&15)<<2|a>>6),i+=isNaN(a)?"=":Tt.charAt(a&63)),t&&i.length>t&&(r+=i.substr(0,t)+`\r
`,i=i.substr(t));return r+=i,r},H.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",i,r,n,c,a=0;a<e.length;)i=At[e.charCodeAt(a++)-43],r=At[e.charCodeAt(a++)-43],n=At[e.charCodeAt(a++)-43],c=At[e.charCodeAt(a++)-43],t+=String.fromCharCode(i<<2|r>>4),n!==64&&(t+=String.fromCharCode((r&15)<<4|n>>2),c!==64&&(t+=String.fromCharCode((n&3)<<6|c)));return t},H.encodeUtf8=function(e){return unescape(encodeURIComponent(e))},H.decodeUtf8=function(e){return decodeURIComponent(escape(e))},H.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:ss.encode,decode:ss.decode}},H.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)},H.binary.raw.decode=function(e,t,i){var r=t;r||(r=new Uint8Array(e.length)),i=i||0;for(var n=i,c=0;c<e.length;++c)r[n++]=e.charCodeAt(c);return t?n-i:r},H.binary.hex.encode=H.bytesToHex,H.binary.hex.decode=function(e,t,i){var r=t;r||(r=new Uint8Array(Math.ceil(e.length/2))),i=i||0;var n=0,c=i;for(e.length&1&&(n=1,r[c++]=parseInt(e[0],16));n<e.length;n+=2)r[c++]=parseInt(e.substr(n,2),16);return t?c-i:r},H.binary.base64.encode=function(e,t){for(var i="",r="",n,c,a,s=0;s<e.byteLength;)n=e[s++],c=e[s++],a=e[s++],i+=Tt.charAt(n>>2),i+=Tt.charAt((n&3)<<4|c>>4),isNaN(c)?i+="==":(i+=Tt.charAt((c&15)<<2|a>>6),i+=isNaN(a)?"=":Tt.charAt(a&63)),t&&i.length>t&&(r+=i.substr(0,t)+`\r
`,i=i.substr(t));return r+=i,r},H.binary.base64.decode=function(e,t,i){var r=t;r||(r=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),i=i||0;for(var n,c,a,s,l=0,o=i;l<e.length;)n=At[e.charCodeAt(l++)-43],c=At[e.charCodeAt(l++)-43],a=At[e.charCodeAt(l++)-43],s=At[e.charCodeAt(l++)-43],r[o++]=n<<2|c>>4,a!==64&&(r[o++]=(c&15)<<4|a>>2,s!==64&&(r[o++]=(a&3)<<6|s));return t?o-i:r.subarray(0,o)},H.binary.base58.encode=function(e,t){return H.binary.baseN.encode(e,ns,t)},H.binary.base58.decode=function(e,t){return H.binary.baseN.decode(e,ns,t)},H.text={utf8:{},utf16:{}},H.text.utf8.encode=function(e,t,i){e=H.encodeUtf8(e);var r=t;r||(r=new Uint8Array(e.length)),i=i||0;for(var n=i,c=0;c<e.length;++c)r[n++]=e.charCodeAt(c);return t?n-i:r},H.text.utf8.decode=function(e){return H.decodeUtf8(String.fromCharCode.apply(null,e))},H.text.utf16.encode=function(e,t,i){var r=t;r||(r=new Uint8Array(e.length*2));var n=new Uint16Array(r.buffer);i=i||0;for(var c=i,a=i,s=0;s<e.length;++s)n[a++]=e.charCodeAt(s),c+=2;return t?c-i:r},H.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))},H.deflate=function(e,t,i){if(t=H.decode64(e.deflate(H.encode64(t)).rval),i){var r=2,n=t.charCodeAt(1);n&32&&(r=6),t=t.substring(r,t.length-4)}return t},H.inflate=function(e,t,i){var r=e.inflate(H.encode64(t)).rval;return r===null?null:H.decode64(r)};var ni=function(e,t,i){if(!e)throw new Error("WebStorage not available.");var r;if(i===null?r=e.removeItem(t):(i=H.encode64(JSON.stringify(i)),r=e.setItem(t,i)),typeof r!="undefined"&&r.rval!==!0){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}},ai=function(e,t){if(!e)throw new Error("WebStorage not available.");var i=e.getItem(t);if(e.init)if(i.rval===null){if(i.error){var r=new Error(i.error.message);throw r.id=i.error.id,r.name=i.error.name,r}i=null}else i=i.rval;return i!==null&&(i=JSON.parse(H.decode64(i))),i},Un=function(e,t,i,r){var n=ai(e,t);n===null&&(n={}),n[i]=r,ni(e,t,n)},Fn=function(e,t,i){var r=ai(e,t);return r!==null&&(r=i in r?r[i]:null),r},Hn=function(e,t,i){var r=ai(e,t);if(r!==null&&i in r){delete r[i];var n=!0;for(var c in r){n=!1;break}n&&(r=null),ni(e,t,r)}},Vn=function(e,t){ni(e,t,null)},Ar=function(e,t,i){var r=null;typeof i=="undefined"&&(i=["web","flash"]);var n,c=!1,a=null;for(var s in i){n=i[s];try{if(n==="flash"||n==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");r=e.apply(this,t),c=n==="flash"}(n==="web"||n==="both")&&(t[0]=localStorage,r=e.apply(this,t),c=!0)}catch(l){a=l}if(c)break}if(!c)throw a;return r};H.setItem=function(e,t,i,r,n){Ar(Un,arguments,n)},H.getItem=function(e,t,i,r){return Ar(Fn,arguments,r)},H.removeItem=function(e,t,i,r){Ar(Hn,arguments,r)},H.clearItems=function(e,t,i){Ar(Vn,arguments,i)},H.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0},H.format=function(e){for(var t=/%./g,i,r,n=0,c=[],a=0;i=t.exec(e);){r=e.substring(a,t.lastIndex-2),r.length>0&&c.push(r),a=t.lastIndex;var s=i[0][1];switch(s){case"s":case"o":n<arguments.length?c.push(arguments[n+++1]):c.push("<?>");break;case"%":c.push("%");break;default:c.push("<%"+s+"?>")}}return c.push(e.substring(a)),c.join("")},H.formatNumber=function(e,t,i,r){var n=e,c=isNaN(t=Math.abs(t))?2:t,a=i===void 0?",":i,s=r===void 0?".":r,l=n<0?"-":"",o=parseInt(n=Math.abs(+n||0).toFixed(c),10)+"",f=o.length>3?o.length%3:0;return l+(f?o.substr(0,f)+s:"")+o.substr(f).replace(/(\d{3})(?=\d)/g,"$1"+s)+(c?a+Math.abs(n-o).toFixed(c).slice(2):"")},H.formatSize=function(e){return e>=1073741824?e=H.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=H.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=H.formatNumber(e/1024,0)+" KiB":e=H.formatNumber(e,0)+" bytes",e},H.bytesFromIP=function(e){return e.indexOf(".")!==-1?H.bytesFromIPv4(e):e.indexOf(":")!==-1?H.bytesFromIPv6(e):null},H.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=H.createBuffer(),i=0;i<e.length;++i){var r=parseInt(e[i],10);if(isNaN(r))return null;t.putByte(r)}return t.getBytes()},H.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(a){return a.length===0&&++t,!0});for(var i=(8-e.length+t)*2,r=H.createBuffer(),n=0;n<8;++n){if(!e[n]||e[n].length===0){r.fillWithByte(0,i),i=0;continue}var c=H.hexToBytes(e[n]);c.length<2&&r.putByte(0),r.putBytes(c)}return r.getBytes()},H.bytesToIP=function(e){return e.length===4?H.bytesToIPv4(e):e.length===16?H.bytesToIPv6(e):null},H.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],i=0;i<e.length;++i)t.push(e.charCodeAt(i));return t.join(".")},H.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],i=[],r=0,n=0;n<e.length;n+=2){for(var c=H.bytesToHex(e[n]+e[n+1]);c[0]==="0"&&c!=="0";)c=c.substr(1);if(c==="0"){var a=i[i.length-1],s=t.length;!a||s!==a.end+1?i.push({start:s,end:s}):(a.end=s,a.end-a.start>i[r].end-i[r].start&&(r=i.length-1))}t.push(c)}if(i.length>0){var l=i[r];l.end-l.start>0&&(t.splice(l.start,l.end-l.start+1,""),l.start===0&&t.unshift(""),l.end===7&&t.push(""))}return t.join(":")},H.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in H&&!e.update)return t(null,H.cores);if(typeof navigator!="undefined"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return H.cores=navigator.hardwareConcurrency,t(null,H.cores);if(typeof Worker=="undefined")return H.cores=1,t(null,H.cores);if(typeof Blob=="undefined")return H.cores=2,t(null,H.cores);var i=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(a){var s=Date.now(),l=s+4;self.postMessage({st:s,et:l})})}.toString(),")()"],{type:"application/javascript"}));r([],5,16);function r(a,s,l){if(s===0){var o=Math.floor(a.reduce(function(f,u){return f+u},0)/a.length);return H.cores=Math.max(1,o),URL.revokeObjectURL(i),t(null,H.cores)}n(l,function(f,u){a.push(c(l,u)),r(a,s-1,l)})}function n(a,s){for(var l=[],o=[],f=0;f<a;++f){var u=new Worker(i);u.addEventListener("message",function(g){if(o.push(g.data),o.length===a){for(var y=0;y<a;++y)l[y].terminate();s(null,o)}}),l.push(u)}for(var f=0;f<a;++f)l[f].postMessage(f)}function c(a,s){for(var l=[],o=0;o<a;++o)for(var f=s[o],u=l[o]=[],g=0;g<a;++g)if(o!==g){var y=s[g];(f.st>y.st&&f.st<y.et||y.st>f.st&&y.st<f.et)&&u.push(g)}return l.reduce(function(m,_){return Math.max(m,_.length)},0)}};var Ve=_e;Ve.cipher=Ve.cipher||{},Ve.cipher.algorithms=Ve.cipher.algorithms||{},Ve.cipher.createCipher=function(e,t){var i=e;if(typeof i=="string"&&(i=Ve.cipher.getAlgorithm(i),i&&(i=i())),!i)throw new Error("Unsupported algorithm: "+e);return new Ve.cipher.BlockCipher({algorithm:i,key:t,decrypt:!1})},Ve.cipher.createDecipher=function(e,t){var i=e;if(typeof i=="string"&&(i=Ve.cipher.getAlgorithm(i),i&&(i=i())),!i)throw new Error("Unsupported algorithm: "+e);return new Ve.cipher.BlockCipher({algorithm:i,key:t,decrypt:!0})},Ve.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Ve.cipher.algorithms[e]=t},Ve.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Ve.cipher.algorithms?Ve.cipher.algorithms[e]:null};var oi=Ve.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};oi.prototype.start=function(e){e=e||{};var t={};for(var i in e)t[i]=e[i];t.decrypt=this._decrypt,this._finish=!1,this._input=Ve.util.createBuffer(),this.output=e.output||Ve.util.createBuffer(),this.mode.start(t)},oi.prototype.update=function(e){for(e&&this._input.putBuffer(e);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()},oi.prototype.finish=function(e){e&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(i){return e(this.blockSize,i,!1)},this.mode.unpad=function(i){return e(this.blockSize,i,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))};var Ke=_e;Ke.cipher=Ke.cipher||{};var ye=Ke.cipher.modes=Ke.cipher.modes||{};ye.ecb=function(e){e=e||{},this.name="ECB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)},ye.ecb.prototype.start=function(e){},ye.ecb.prototype.encrypt=function(e,t,i){if(e.length()<this.blockSize&&!(i&&e.length()>0))return!0;for(var r=0;r<this._ints;++r)this._inBlock[r]=e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var r=0;r<this._ints;++r)t.putInt32(this._outBlock[r])},ye.ecb.prototype.decrypt=function(e,t,i){if(e.length()<this.blockSize&&!(i&&e.length()>0))return!0;for(var r=0;r<this._ints;++r)this._inBlock[r]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var r=0;r<this._ints;++r)t.putInt32(this._outBlock[r])},ye.ecb.prototype.pad=function(e,t){var i=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(i,i),!0},ye.ecb.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var i=e.length(),r=e.at(i-1);return r>this.blockSize<<2?!1:(e.truncate(r),!0)},ye.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)},ye.cbc.prototype.start=function(e){if(e.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in e)this._iv=Br(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")},ye.cbc.prototype.encrypt=function(e,t,i){if(e.length()<this.blockSize&&!(i&&e.length()>0))return!0;for(var r=0;r<this._ints;++r)this._inBlock[r]=this._prev[r]^e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var r=0;r<this._ints;++r)t.putInt32(this._outBlock[r]);this._prev=this._outBlock},ye.cbc.prototype.decrypt=function(e,t,i){if(e.length()<this.blockSize&&!(i&&e.length()>0))return!0;for(var r=0;r<this._ints;++r)this._inBlock[r]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var r=0;r<this._ints;++r)t.putInt32(this._prev[r]^this._outBlock[r]);this._prev=this._inBlock.slice(0)},ye.cbc.prototype.pad=function(e,t){var i=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(i,i),!0},ye.cbc.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var i=e.length(),r=e.at(i-1);return r>this.blockSize<<2?!1:(e.truncate(r),!0)},ye.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=Ke.util.createBuffer(),this._partialBytes=0},ye.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Br(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},ye.cfb.prototype.encrypt=function(e,t,i){var r=e.length();if(r===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&r>=this.blockSize){for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32()^this._outBlock[n],t.putInt32(this._inBlock[n]);return}var c=(this.blockSize-r)%this.blockSize;c>0&&(c=this.blockSize-c),this._partialOutput.clear();for(var n=0;n<this._ints;++n)this._partialBlock[n]=e.getInt32()^this._outBlock[n],this._partialOutput.putInt32(this._partialBlock[n]);if(c>0)e.read-=this.blockSize;else for(var n=0;n<this._ints;++n)this._inBlock[n]=this._partialBlock[n];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),c>0&&!i)return t.putBytes(this._partialOutput.getBytes(c-this._partialBytes)),this._partialBytes=c,!0;t.putBytes(this._partialOutput.getBytes(r-this._partialBytes)),this._partialBytes=0},ye.cfb.prototype.decrypt=function(e,t,i){var r=e.length();if(r===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&r>=this.blockSize){for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32(),t.putInt32(this._inBlock[n]^this._outBlock[n]);return}var c=(this.blockSize-r)%this.blockSize;c>0&&(c=this.blockSize-c),this._partialOutput.clear();for(var n=0;n<this._ints;++n)this._partialBlock[n]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[n]^this._outBlock[n]);if(c>0)e.read-=this.blockSize;else for(var n=0;n<this._ints;++n)this._inBlock[n]=this._partialBlock[n];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),c>0&&!i)return t.putBytes(this._partialOutput.getBytes(c-this._partialBytes)),this._partialBytes=c,!0;t.putBytes(this._partialOutput.getBytes(r-this._partialBytes)),this._partialBytes=0},ye.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Ke.util.createBuffer(),this._partialBytes=0},ye.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Br(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},ye.ofb.prototype.encrypt=function(e,t,i){var r=e.length();if(e.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&r>=this.blockSize){for(var n=0;n<this._ints;++n)t.putInt32(e.getInt32()^this._outBlock[n]),this._inBlock[n]=this._outBlock[n];return}var c=(this.blockSize-r)%this.blockSize;c>0&&(c=this.blockSize-c),this._partialOutput.clear();for(var n=0;n<this._ints;++n)this._partialOutput.putInt32(e.getInt32()^this._outBlock[n]);if(c>0)e.read-=this.blockSize;else for(var n=0;n<this._ints;++n)this._inBlock[n]=this._outBlock[n];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),c>0&&!i)return t.putBytes(this._partialOutput.getBytes(c-this._partialBytes)),this._partialBytes=c,!0;t.putBytes(this._partialOutput.getBytes(r-this._partialBytes)),this._partialBytes=0},ye.ofb.prototype.decrypt=ye.ofb.prototype.encrypt,ye.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Ke.util.createBuffer(),this._partialBytes=0},ye.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Br(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},ye.ctr.prototype.encrypt=function(e,t,i){var r=e.length();if(r===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&r>=this.blockSize)for(var n=0;n<this._ints;++n)t.putInt32(e.getInt32()^this._outBlock[n]);else{var c=(this.blockSize-r)%this.blockSize;c>0&&(c=this.blockSize-c),this._partialOutput.clear();for(var n=0;n<this._ints;++n)this._partialOutput.putInt32(e.getInt32()^this._outBlock[n]);if(c>0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),c>0&&!i)return t.putBytes(this._partialOutput.getBytes(c-this._partialBytes)),this._partialBytes=c,!0;t.putBytes(this._partialOutput.getBytes(r-this._partialBytes)),this._partialBytes=0}Ir(this._inBlock)},ye.ctr.prototype.decrypt=ye.ctr.prototype.encrypt,ye.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=Ke.util.createBuffer(),this._partialBytes=0,this._R=3774873600},ye.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Ke.util.createBuffer(e.iv);this._cipherLength=0;var i;if("additionalData"in e?i=Ke.util.createBuffer(e.additionalData):i=Ke.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Ke.util.createBuffer(e.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var r=t.length();if(r===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(li(r*8)))}this._inBlock=this._j0.slice(0),Ir(this._inBlock),this._partialBytes=0,i=Ke.util.createBuffer(i),this._aDataLength=li(i.length()*8);var n=i.length()%this.blockSize;for(n&&i.fillWithByte(0,this.blockSize-n),this._s=[0,0,0,0];i.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[i.getInt32(),i.getInt32(),i.getInt32(),i.getInt32()])},ye.gcm.prototype.encrypt=function(e,t,i){var r=e.length();if(r===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&r>=this.blockSize){for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]^=e.getInt32());this._cipherLength+=this.blockSize}else{var c=(this.blockSize-r)%this.blockSize;c>0&&(c=this.blockSize-c),this._partialOutput.clear();for(var n=0;n<this._ints;++n)this._partialOutput.putInt32(e.getInt32()^this._outBlock[n]);if(c<=0||i){if(i){var a=r%this.blockSize;this._cipherLength+=a,this._partialOutput.truncate(this.blockSize-a)}else this._cipherLength+=this.blockSize;for(var n=0;n<this._ints;++n)this._outBlock[n]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),c>0&&!i)return e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(c-this._partialBytes)),this._partialBytes=c,!0;t.putBytes(this._partialOutput.getBytes(r-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),Ir(this._inBlock)},ye.gcm.prototype.decrypt=function(e,t,i){var r=e.length();if(r<this.blockSize&&!(i&&r>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),Ir(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]^this._hashBlock[n]);r<this.blockSize?this._cipherLength+=r%this.blockSize:this._cipherLength+=this.blockSize},ye.gcm.prototype.afterFinish=function(e,t){var i=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Ke.util.createBuffer();var r=this._aDataLength.concat(li(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,r);var n=[];this.cipher.encrypt(this._j0,n);for(var c=0;c<this._ints;++c)this.tag.putInt32(this._s[c]^n[c]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(i=!1),i},ye.gcm.prototype.multiply=function(e,t){for(var i=[0,0,0,0],r=t.slice(0),n=0;n<128;++n){var c=e[n/32|0]&1<<31-n%32;c&&(i[0]^=r[0],i[1]^=r[1],i[2]^=r[2],i[3]^=r[3]),this.pow(r,r)}return i},ye.gcm.prototype.pow=function(e,t){for(var i=e[3]&1,r=3;r>0;--r)t[r]=e[r]>>>1|(e[r-1]&1)<<31;t[0]=e[0]>>>1,i&&(t[0]^=this._R)},ye.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],i=0;i<32;++i){var r=i/8|0,n=e[r]>>>(7-i%8)*4&15,c=this._m[i][n];t[0]^=c[0],t[1]^=c[1],t[2]^=c[2],t[3]^=c[3]}return t},ye.gcm.prototype.ghash=function(e,t,i){return t[0]^=i[0],t[1]^=i[1],t[2]^=i[2],t[3]^=i[3],this.tableMultiply(t)},ye.gcm.prototype.generateHashTable=function(e,t){for(var i=8/t,r=4*i,n=16*i,c=new Array(n),a=0;a<n;++a){var s=[0,0,0,0],l=a/r|0,o=(r-1-a%r)*t;s[l]=1<<t-1<<o,c[a]=this.generateSubHashTable(this.multiply(s,e),t)}return c},ye.gcm.prototype.generateSubHashTable=function(e,t){var i=1<<t,r=i>>>1,n=new Array(i);n[r]=e.slice(0);for(var c=r>>>1;c>0;)this.pow(n[2*c],n[c]=[]),c>>=1;for(c=2;c<r;){for(var a=1;a<c;++a){var s=n[c],l=n[a];n[c+a]=[s[0]^l[0],s[1]^l[1],s[2]^l[2],s[3]^l[3]]}c*=2}for(n[0]=[0,0,0,0],c=r+1;c<i;++c){var o=n[c^r];n[c]=[e[0]^o[0],e[1]^o[1],e[2]^o[2],e[3]^o[3]]}return n};function Br(e,t){if(typeof e=="string"&&(e=Ke.util.createBuffer(e)),Ke.util.isArray(e)&&e.length>4){var i=e;e=Ke.util.createBuffer();for(var r=0;r<i.length;++r)e.putByte(i[r])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!Ke.util.isArray(e)){for(var n=[],c=t/4,r=0;r<c;++r)n.push(e.getInt32());e=n}return e}function Ir(e){e[e.length-1]=e[e.length-1]+1&4294967295}function li(e){return[e/4294967296|0,e&4294967295]}var Le=_e;Le.aes=Le.aes||{},Le.aes.startEncrypting=function(e,t,i,r){var n=Lr({key:e,output:i,decrypt:!1,mode:r});return n.start(t),n},Le.aes.createEncryptionCipher=function(e,t){return Lr({key:e,output:null,decrypt:!1,mode:t})},Le.aes.startDecrypting=function(e,t,i,r){var n=Lr({key:e,output:i,decrypt:!0,mode:r});return n.start(t),n},Le.aes.createDecryptionCipher=function(e,t){return Lr({key:e,output:null,decrypt:!0,mode:t})},Le.aes.Algorithm=function(e,t){ci||os();var i=this;i.name=e,i.mode=new t({blockSize:16,cipher:{encrypt:function(r,n){return ui(i._w,r,n,!1)},decrypt:function(r,n){return ui(i._w,r,n,!0)}}}),i._init=!1},Le.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t=e.key,i;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=Le.util.createBuffer(t);else if(Le.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){i=t,t=Le.util.createBuffer();for(var r=0;r<i.length;++r)t.putByte(i[r])}if(!Le.util.isArray(t)){i=t,t=[];var n=i.length();if(n===16||n===24||n===32){n=n>>>2;for(var r=0;r<n;++r)t.push(i.getInt32())}}if(!Le.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var c=this.mode.name,a=["CFB","OFB","CTR","GCM"].indexOf(c)!==-1;this._w=ls(t,e.decrypt&&!a),this._init=!0}},Le.aes._expandKey=function(e,t){return ci||os(),ls(e,t)},Le.aes._updateBlock=ui,Qt("AES-ECB",Le.cipher.modes.ecb),Qt("AES-CBC",Le.cipher.modes.cbc),Qt("AES-CFB",Le.cipher.modes.cfb),Qt("AES-OFB",Le.cipher.modes.ofb),Qt("AES-CTR",Le.cipher.modes.ctr),Qt("AES-GCM",Le.cipher.modes.gcm);function Qt(e,t){var i=function(){return new Le.aes.Algorithm(e,t)};Le.cipher.registerAlgorithm(e,i)}var ci=!1,Yt=4,Qe,hi,as,Ut,ct;function os(){ci=!0,as=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;Qe=new Array(256),hi=new Array(256),Ut=new Array(4),ct=new Array(4);for(var t=0;t<4;++t)Ut[t]=new Array(256),ct[t]=new Array(256);for(var i=0,r=0,n,c,a,s,l,o,f,t=0;t<256;++t){s=r^r<<1^r<<2^r<<3^r<<4,s=s>>8^s&255^99,Qe[i]=s,hi[s]=i,l=e[s],n=e[i],c=e[n],a=e[c],o=l<<24^s<<16^s<<8^(s^l),f=(n^c^a)<<24^(i^a)<<16^(i^c^a)<<8^(i^n^a);for(var u=0;u<4;++u)Ut[u][i]=o,ct[u][s]=f,o=o<<24|o>>>8,f=f<<24|f>>>8;i===0?i=r=1:(i=n^e[e[e[n^a]]],r^=e[e[r]])}}function ls(e,t){for(var i=e.slice(0),r,n=1,c=i.length,a=c+6+1,s=Yt*a,l=c;l<s;++l)r=i[l-1],l%c===0?(r=Qe[r>>>16&255]<<24^Qe[r>>>8&255]<<16^Qe[r&255]<<8^Qe[r>>>24]^as[n]<<24,n++):c>6&&l%c===4&&(r=Qe[r>>>24]<<24^Qe[r>>>16&255]<<16^Qe[r>>>8&255]<<8^Qe[r&255]),i[l]=i[l-c]^r;if(t){var o,f=ct[0],u=ct[1],g=ct[2],y=ct[3],m=i.slice(0);s=i.length;for(var l=0,_=s-Yt;l<s;l+=Yt,_-=Yt)if(l===0||l===s-Yt)m[l]=i[_],m[l+1]=i[_+3],m[l+2]=i[_+2],m[l+3]=i[_+1];else for(var h=0;h<Yt;++h)o=i[_+h],m[l+(3&-h)]=f[Qe[o>>>24]]^u[Qe[o>>>16&255]]^g[Qe[o>>>8&255]]^y[Qe[o&255]];i=m}return i}function ui(e,t,i,r){var n=e.length/4-1,c,a,s,l,o;r?(c=ct[0],a=ct[1],s=ct[2],l=ct[3],o=hi):(c=Ut[0],a=Ut[1],s=Ut[2],l=Ut[3],o=Qe);var f,u,g,y,m,_,h;f=t[0]^e[0],u=t[r?3:1]^e[1],g=t[2]^e[2],y=t[r?1:3]^e[3];for(var d=3,p=1;p<n;++p)m=c[f>>>24]^a[u>>>16&255]^s[g>>>8&255]^l[y&255]^e[++d],_=c[u>>>24]^a[g>>>16&255]^s[y>>>8&255]^l[f&255]^e[++d],h=c[g>>>24]^a[y>>>16&255]^s[f>>>8&255]^l[u&255]^e[++d],y=c[y>>>24]^a[f>>>16&255]^s[u>>>8&255]^l[g&255]^e[++d],f=m,u=_,g=h;i[0]=o[f>>>24]<<24^o[u>>>16&255]<<16^o[g>>>8&255]<<8^o[y&255]^e[++d],i[r?3:1]=o[u>>>24]<<24^o[g>>>16&255]<<16^o[y>>>8&255]<<8^o[f&255]^e[++d],i[2]=o[g>>>24]<<24^o[y>>>16&255]<<16^o[f>>>8&255]<<8^o[u&255]^e[++d],i[r?1:3]=o[y>>>24]<<24^o[f>>>16&255]<<16^o[u>>>8&255]<<8^o[g&255]^e[++d]}function Lr(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),i="AES-"+t,r;e.decrypt?r=Le.cipher.createDecipher(i,e.key):r=Le.cipher.createCipher(i,e.key);var n=r.start;return r.start=function(c,a){var s=null;a instanceof Le.util.ByteBuffer&&(s=a,a={}),a=a||{},a.output=s,a.iv=c,n.call(r,a)},r}var ur=_e;ur.pki=ur.pki||{};var fi=ur.pki.oids=ur.oids=ur.oids||{};function J(e,t){fi[e]=t,fi[t]=e}function Be(e,t){fi[e]=t}J("1.2.840.113549.1.1.1","rsaEncryption"),J("1.2.840.113549.1.1.4","md5WithRSAEncryption"),J("1.2.840.113549.1.1.5","sha1WithRSAEncryption"),J("1.2.840.113549.1.1.7","RSAES-OAEP"),J("1.2.840.113549.1.1.8","mgf1"),J("1.2.840.113549.1.1.9","pSpecified"),J("1.2.840.113549.1.1.10","RSASSA-PSS"),J("1.2.840.113549.1.1.11","sha256WithRSAEncryption"),J("1.2.840.113549.1.1.12","sha384WithRSAEncryption"),J("1.2.840.113549.1.1.13","sha512WithRSAEncryption"),J("1.3.101.112","EdDSA25519"),J("1.2.840.10040.4.3","dsa-with-sha1"),J("1.3.14.3.2.7","desCBC"),J("1.3.14.3.2.26","sha1"),J("1.3.14.3.2.29","sha1WithRSASignature"),J("2.16.840.1.101.3.4.2.1","sha256"),J("2.16.840.1.101.3.4.2.2","sha384"),J("2.16.840.1.101.3.4.2.3","sha512"),J("2.16.840.1.101.3.4.2.4","sha224"),J("2.16.840.1.101.3.4.2.5","sha512-224"),J("2.16.840.1.101.3.4.2.6","sha512-256"),J("1.2.840.113549.2.2","md2"),J("1.2.840.113549.2.5","md5"),J("1.2.840.113549.1.7.1","data"),J("1.2.840.113549.1.7.2","signedData"),J("1.2.840.113549.1.7.3","envelopedData"),J("1.2.840.113549.1.7.4","signedAndEnvelopedData"),J("1.2.840.113549.1.7.5","digestedData"),J("1.2.840.113549.1.7.6","encryptedData"),J("1.2.840.113549.1.9.1","emailAddress"),J("1.2.840.113549.1.9.2","unstructuredName"),J("1.2.840.113549.1.9.3","contentType"),J("1.2.840.113549.1.9.4","messageDigest"),J("1.2.840.113549.1.9.5","signingTime"),J("1.2.840.113549.1.9.6","counterSignature"),J("1.2.840.113549.1.9.7","challengePassword"),J("1.2.840.113549.1.9.8","unstructuredAddress"),J("1.2.840.113549.1.9.14","extensionRequest"),J("1.2.840.113549.1.9.20","friendlyName"),J("1.2.840.113549.1.9.21","localKeyId"),J("1.2.840.113549.1.9.22.1","x509Certificate"),J("1.2.840.113549.1.12.10.1.1","keyBag"),J("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag"),J("1.2.840.113549.1.12.10.1.3","certBag"),J("1.2.840.113549.1.12.10.1.4","crlBag"),J("1.2.840.113549.1.12.10.1.5","secretBag"),J("1.2.840.113549.1.12.10.1.6","safeContentsBag"),J("1.2.840.113549.1.5.13","pkcs5PBES2"),J("1.2.840.113549.1.5.12","pkcs5PBKDF2"),J("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4"),J("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4"),J("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC"),J("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC"),J("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC"),J("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC"),J("1.2.840.113549.2.7","hmacWithSHA1"),J("1.2.840.113549.2.8","hmacWithSHA224"),J("1.2.840.113549.2.9","hmacWithSHA256"),J("1.2.840.113549.2.10","hmacWithSHA384"),J("1.2.840.113549.2.11","hmacWithSHA512"),J("1.2.840.113549.3.7","des-EDE3-CBC"),J("2.16.840.1.101.3.4.1.2","aes128-CBC"),J("2.16.840.1.101.3.4.1.22","aes192-CBC"),J("2.16.840.1.101.3.4.1.42","aes256-CBC"),J("2.5.4.3","commonName"),J("2.5.4.4","surname"),J("2.5.4.5","serialNumber"),J("2.5.4.6","countryName"),J("2.5.4.7","localityName"),J("2.5.4.8","stateOrProvinceName"),J("2.5.4.9","streetAddress"),J("2.5.4.10","organizationName"),J("2.5.4.11","organizationalUnitName"),J("2.5.4.12","title"),J("2.5.4.13","description"),J("2.5.4.15","businessCategory"),J("2.5.4.17","postalCode"),J("2.5.4.42","givenName"),J("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName"),J("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName"),J("2.16.840.1.113730.1.1","nsCertType"),J("2.16.840.1.113730.1.13","nsComment"),Be("2.5.29.1","authorityKeyIdentifier"),Be("2.5.29.2","keyAttributes"),Be("2.5.29.3","certificatePolicies"),Be("2.5.29.4","keyUsageRestriction"),Be("2.5.29.5","policyMapping"),Be("2.5.29.6","subtreesConstraint"),Be("2.5.29.7","subjectAltName"),Be("2.5.29.8","issuerAltName"),Be("2.5.29.9","subjectDirectoryAttributes"),Be("2.5.29.10","basicConstraints"),Be("2.5.29.11","nameConstraints"),Be("2.5.29.12","policyConstraints"),Be("2.5.29.13","basicConstraints"),J("2.5.29.14","subjectKeyIdentifier"),J("2.5.29.15","keyUsage"),Be("2.5.29.16","privateKeyUsagePeriod"),J("2.5.29.17","subjectAltName"),J("2.5.29.18","issuerAltName"),J("2.5.29.19","basicConstraints"),Be("2.5.29.20","cRLNumber"),Be("2.5.29.21","cRLReason"),Be("2.5.29.22","expirationDate"),Be("2.5.29.23","instructionCode"),Be("2.5.29.24","invalidityDate"),Be("2.5.29.25","cRLDistributionPoints"),Be("2.5.29.26","issuingDistributionPoint"),Be("2.5.29.27","deltaCRLIndicator"),Be("2.5.29.28","issuingDistributionPoint"),Be("2.5.29.29","certificateIssuer"),Be("2.5.29.30","nameConstraints"),J("2.5.29.31","cRLDistributionPoints"),J("2.5.29.32","certificatePolicies"),Be("2.5.29.33","policyMappings"),Be("2.5.29.34","policyConstraints"),J("2.5.29.35","authorityKeyIdentifier"),Be("2.5.29.36","policyConstraints"),J("2.5.29.37","extKeyUsage"),Be("2.5.29.46","freshestCRL"),Be("2.5.29.54","inhibitAnyPolicy"),J("1.3.6.1.4.1.11129.2.4.2","timestampList"),J("1.3.6.1.5.5.7.1.1","authorityInfoAccess"),J("1.3.6.1.5.5.7.3.1","serverAuth"),J("1.3.6.1.5.5.7.3.2","clientAuth"),J("1.3.6.1.5.5.7.3.3","codeSigning"),J("1.3.6.1.5.5.7.3.4","emailProtection"),J("1.3.6.1.5.5.7.3.8","timeStamping");var Re=_e,ne=Re.asn1=Re.asn1||{};ne.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192},ne.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30},ne.create=function(e,t,i,r,n){if(Re.util.isArray(r)){for(var c=[],a=0;a<r.length;++a)r[a]!==void 0&&c.push(r[a]);r=c}var s={tagClass:e,type:t,constructed:i,composed:i||Re.util.isArray(r),value:r};return n&&"bitStringContents"in n&&(s.bitStringContents=n.bitStringContents,s.original=ne.copy(s)),s},ne.copy=function(e,t){var i;if(Re.util.isArray(e)){i=[];for(var r=0;r<e.length;++r)i.push(ne.copy(e[r],t));return i}return typeof e=="string"?e:(i={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:ne.copy(e.value,t)},t&&!t.excludeBitStringContents&&(i.bitStringContents=e.bitStringContents),i)},ne.equals=function(e,t,i){if(Re.util.isArray(e)){if(!Re.util.isArray(t)||e.length!==t.length)return!1;for(var r=0;r<e.length;++r)if(!ne.equals(e[r],t[r]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var n=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&ne.equals(e.value,t.value);return i&&i.includeBitStringContents&&(n=n&&e.bitStringContents===t.bitStringContents),n},ne.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var i,r=t&128;return r?i=e.getInt((t&127)<<3):i=t,i}};function fr(e,t,i){if(i>t){var r=new Error("Too few bytes to parse DER.");throw r.available=e.length(),r.remaining=t,r.requested=i,r}}var Kn=function(e,t){var i=e.getByte();if(t--,i!==128){var r,n=i&128;if(!n)r=i;else{var c=i&127;fr(e,t,c),r=e.getInt(c<<3)}if(r<0)throw new Error("Negative length: "+r);return r}};ne.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=Re.util.createBuffer(e));var i=e.length(),r=kr(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var n=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw n.byteCount=i,n.remaining=e.length(),n}return r};function kr(e,t,i,r){var n;fr(e,t,2);var c=e.getByte();t--;var a=c&192,s=c&31;n=e.length();var l=Kn(e,t);if(t-=n-e.length(),l!==void 0&&l>t){if(r.strict){var o=new Error("Too few bytes to read ASN.1 value.");throw o.available=e.length(),o.remaining=t,o.requested=l,o}l=t}var f,u,g=(c&32)===32;if(g)if(f=[],l===void 0)for(;;){if(fr(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}n=e.length(),f.push(kr(e,t,i+1,r)),t-=n-e.length()}else for(;l>0;)n=e.length(),f.push(kr(e,l,i+1,r)),t-=n-e.length(),l-=n-e.length();if(f===void 0&&a===ne.Class.UNIVERSAL&&s===ne.Type.BITSTRING&&(u=e.bytes(l)),f===void 0&&r.decodeBitStrings&&a===ne.Class.UNIVERSAL&&s===ne.Type.BITSTRING&&l>1){var y=e.read,m=t,_=0;if(s===ne.Type.BITSTRING&&(fr(e,t,1),_=e.getByte(),t--),_===0)try{n=e.length();var h={strict:!0,decodeBitStrings:!0},d=kr(e,t,i+1,h),p=n-e.length();t-=p,s==ne.Type.BITSTRING&&p++;var v=d.tagClass;p===l&&(v===ne.Class.UNIVERSAL||v===ne.Class.CONTEXT_SPECIFIC)&&(f=[d])}catch(C){}f===void 0&&(e.read=y,t=m)}if(f===void 0){if(l===void 0){if(r.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");l=t}if(s===ne.Type.BMPSTRING)for(f="";l>0;l-=2)fr(e,t,2),f+=String.fromCharCode(e.getInt16()),t-=2;else f=e.getBytes(l),t-=l}var S=u===void 0?null:{bitStringContents:u};return ne.create(a,s,g,f,S)}ne.toDer=function(e){var t=Re.util.createBuffer(),i=e.tagClass|e.type,r=Re.util.createBuffer(),n=!1;if("bitStringContents"in e&&(n=!0,e.original&&(n=ne.equals(e,e.original))),n)r.putBytes(e.bitStringContents);else if(e.composed){e.constructed?i|=32:r.putByte(0);for(var c=0;c<e.value.length;++c)e.value[c]!==void 0&&r.putBuffer(ne.toDer(e.value[c]))}else if(e.type===ne.Type.BMPSTRING)for(var c=0;c<e.value.length;++c)r.putInt16(e.value.charCodeAt(c));else e.type===ne.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?r.putBytes(e.value.substr(1)):r.putBytes(e.value);if(t.putByte(i),r.length()<=127)t.putByte(r.length()&127);else{var a=r.length(),s="";do s+=String.fromCharCode(a&255),a=a>>>8;while(a>0);t.putByte(s.length|128);for(var c=s.length-1;c>=0;--c)t.putByte(s.charCodeAt(c))}return t.putBuffer(r),t},ne.oidToDer=function(e){var t=e.split("."),i=Re.util.createBuffer();i.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var r,n,c,a,s=2;s<t.length;++s){r=!0,n=[],c=parseInt(t[s],10);do a=c&127,c=c>>>7,r||(a|=128),n.push(a),r=!1;while(c>0);for(var l=n.length-1;l>=0;--l)i.putByte(n[l])}return i},ne.derToOid=function(e){var t;typeof e=="string"&&(e=Re.util.createBuffer(e));var i=e.getByte();t=Math.floor(i/40)+"."+i%40;for(var r=0;e.length()>0;)i=e.getByte(),r=r<<7,i&128?r+=i&127:(t+="."+(r+i),r=0);return t},ne.utcTimeToDate=function(e){var t=new Date,i=parseInt(e.substr(0,2),10);i=i>=50?1900+i:2e3+i;var r=parseInt(e.substr(2,2),10)-1,n=parseInt(e.substr(4,2),10),c=parseInt(e.substr(6,2),10),a=parseInt(e.substr(8,2),10),s=0;if(e.length>11){var l=e.charAt(10),o=10;l!=="+"&&l!=="-"&&(s=parseInt(e.substr(10,2),10),o+=2)}if(t.setUTCFullYear(i,r,n),t.setUTCHours(c,a,s,0),o&&(l=e.charAt(o),l==="+"||l==="-")){var f=parseInt(e.substr(o+1,2),10),u=parseInt(e.substr(o+4,2),10),g=f*60+u;g*=6e4,l==="+"?t.setTime(+t-g):t.setTime(+t+g)}return t},ne.generalizedTimeToDate=function(e){var t=new Date,i=parseInt(e.substr(0,4),10),r=parseInt(e.substr(4,2),10)-1,n=parseInt(e.substr(6,2),10),c=parseInt(e.substr(8,2),10),a=parseInt(e.substr(10,2),10),s=parseInt(e.substr(12,2),10),l=0,o=0,f=!1;e.charAt(e.length-1)==="Z"&&(f=!0);var u=e.length-5,g=e.charAt(u);if(g==="+"||g==="-"){var y=parseInt(e.substr(u+1,2),10),m=parseInt(e.substr(u+4,2),10);o=y*60+m,o*=6e4,g==="+"&&(o*=-1),f=!0}return e.charAt(14)==="."&&(l=parseFloat(e.substr(14),10)*1e3),f?(t.setUTCFullYear(i,r,n),t.setUTCHours(c,a,s,l),t.setTime(+t+o)):(t.setFullYear(i,r,n),t.setHours(c,a,s,l)),t},ne.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",i=[];i.push((""+e.getUTCFullYear()).substr(2)),i.push(""+(e.getUTCMonth()+1)),i.push(""+e.getUTCDate()),i.push(""+e.getUTCHours()),i.push(""+e.getUTCMinutes()),i.push(""+e.getUTCSeconds());for(var r=0;r<i.length;++r)i[r].length<2&&(t+="0"),t+=i[r];return t+="Z",t},ne.dateToGeneralizedTime=function(e){if(typeof e=="string")return e;var t="",i=[];i.push(""+e.getUTCFullYear()),i.push(""+(e.getUTCMonth()+1)),i.push(""+e.getUTCDate()),i.push(""+e.getUTCHours()),i.push(""+e.getUTCMinutes()),i.push(""+e.getUTCSeconds());for(var r=0;r<i.length;++r)i[r].length<2&&(t+="0"),t+=i[r];return t+="Z",t},ne.integerToDer=function(e){var t=Re.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var i=new Error("Integer too large; max is 32-bits.");throw i.integer=e,i},ne.derToInteger=function(e){typeof e=="string"&&(e=Re.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)},ne.validate=function(e,t,i,r){var n=!1;if((e.tagClass===t.tagClass||typeof t.tagClass=="undefined")&&(e.type===t.type||typeof t.type=="undefined"))if(e.constructed===t.constructed||typeof t.constructed=="undefined"){if(n=!0,t.value&&Re.util.isArray(t.value))for(var c=0,a=0;n&&a<t.value.length;++a)n=t.value[a].optional||!1,e.value[c]&&(n=ne.validate(e.value[c],t.value[a],i,r),n?++c:t.value[a].optional&&(n=!0)),!n&&r&&r.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(n&&i&&(t.capture&&(i[t.capture]=e.value),t.captureAsn1&&(i[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(i[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e))if(e.bitStringContents.length<2)i[t.captureBitStringValue]="";else{var s=e.bitStringContents.charCodeAt(0);if(s!==0)throw new Error("captureBitStringValue only supported for zero unused bits");i[t.captureBitStringValue]=e.bitStringContents.slice(1)}}else r&&r.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else r&&(e.tagClass!==t.tagClass&&r.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&r.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return n};var cs=/[^\\u0000-\\u00ff]/;ne.prettyPrint=function(e,t,i){var r="";t=t||0,i=i||2,t>0&&(r+=`
`);for(var n="",c=0;c<t*i;++c)n+=" ";switch(r+=n+"Tag: ",e.tagClass){case ne.Class.UNIVERSAL:r+="Universal:";break;case ne.Class.APPLICATION:r+="Application:";break;case ne.Class.CONTEXT_SPECIFIC:r+="Context-Specific:";break;case ne.Class.PRIVATE:r+="Private:";break}if(e.tagClass===ne.Class.UNIVERSAL)switch(r+=e.type,e.type){case ne.Type.NONE:r+=" (None)";break;case ne.Type.BOOLEAN:r+=" (Boolean)";break;case ne.Type.INTEGER:r+=" (Integer)";break;case ne.Type.BITSTRING:r+=" (Bit string)";break;case ne.Type.OCTETSTRING:r+=" (Octet string)";break;case ne.Type.NULL:r+=" (Null)";break;case ne.Type.OID:r+=" (Object Identifier)";break;case ne.Type.ODESC:r+=" (Object Descriptor)";break;case ne.Type.EXTERNAL:r+=" (External or Instance of)";break;case ne.Type.REAL:r+=" (Real)";break;case ne.Type.ENUMERATED:r+=" (Enumerated)";break;case ne.Type.EMBEDDED:r+=" (Embedded PDV)";break;case ne.Type.UTF8:r+=" (UTF8)";break;case ne.Type.ROID:r+=" (Relative Object Identifier)";break;case ne.Type.SEQUENCE:r+=" (Sequence)";break;case ne.Type.SET:r+=" (Set)";break;case ne.Type.PRINTABLESTRING:r+=" (Printable String)";break;case ne.Type.IA5String:r+=" (IA5String (ASCII))";break;case ne.Type.UTCTIME:r+=" (UTC time)";break;case ne.Type.GENERALIZEDTIME:r+=" (Generalized time)";break;case ne.Type.BMPSTRING:r+=" (BMP String)";break}else r+=e.type;if(r+=`
`,r+=n+"Constructed: "+e.constructed+`
`,e.composed){for(var a=0,s="",c=0;c<e.value.length;++c)e.value[c]!==void 0&&(a+=1,s+=ne.prettyPrint(e.value[c],t+1,i),c+1<e.value.length&&(s+=","));r+=n+"Sub values: "+a+s}else{if(r+=n+"Value: ",e.type===ne.Type.OID){var l=ne.derToOid(e.value);r+=l,Re.pki&&Re.pki.oids&&l in Re.pki.oids&&(r+=" ("+Re.pki.oids[l]+") ")}if(e.type===ne.Type.INTEGER)try{r+=ne.derToInteger(e.value)}catch(f){r+="0x"+Re.util.bytesToHex(e.value)}else if(e.type===ne.Type.BITSTRING){if(e.value.length>1?r+="0x"+Re.util.bytesToHex(e.value.slice(1)):r+="(none)",e.value.length>0){var o=e.value.charCodeAt(0);o==1?r+=" (1 unused bit shown)":o>1&&(r+=" ("+o+" unused bits shown)")}}else if(e.type===ne.Type.OCTETSTRING)cs.test(e.value)||(r+="("+e.value+") "),r+="0x"+Re.util.bytesToHex(e.value);else if(e.type===ne.Type.UTF8)try{r+=Re.util.decodeUtf8(e.value)}catch(f){if(f.message==="URI malformed")r+="0x"+Re.util.bytesToHex(e.value)+" (malformed UTF8)";else throw f}else e.type===ne.Type.PRINTABLESTRING||e.type===ne.Type.IA5String?r+=e.value:cs.test(e.value)?r+="0x"+Re.util.bytesToHex(e.value):e.value.length===0?r+="[null]":r+=e.value}return r};var Rr=_e;Rr.md=Rr.md||{},Rr.md.algorithms=Rr.md.algorithms||{};var Et=_e,Wn=Et.hmac=Et.hmac||{};Wn.create=function(){var e=null,t=null,i=null,r=null,n={};return n.start=function(c,a){if(c!==null)if(typeof c=="string")if(c=c.toLowerCase(),c in Et.md.algorithms)t=Et.md.algorithms[c].create();else throw new Error('Unknown hash algorithm "'+c+'"');else t=c;if(a===null)a=e;else{if(typeof a=="string")a=Et.util.createBuffer(a);else if(Et.util.isArray(a)){var s=a;a=Et.util.createBuffer();for(var l=0;l<s.length;++l)a.putByte(s[l])}var o=a.length();o>t.blockLength&&(t.start(),t.update(a.bytes()),a=t.digest()),i=Et.util.createBuffer(),r=Et.util.createBuffer(),o=a.length();for(var l=0;l<o;++l){var s=a.at(l);i.putByte(54^s),r.putByte(92^s)}if(o<t.blockLength)for(var s=t.blockLength-o,l=0;l<s;++l)i.putByte(54),r.putByte(92);e=a,i=i.bytes(),r=r.bytes()}t.start(),t.update(i)},n.update=function(c){t.update(c)},n.getMac=function(){var c=t.digest().bytes();return t.start(),t.update(r),t.update(c),t.digest()},n.digest=n.getMac,n};var ft=_e,hs=ft.md5=ft.md5||{};ft.md.md5=ft.md.algorithms.md5=hs,hs.create=function(){us||zn();var e=null,t=ft.util.createBuffer(),i=new Array(16),r={algorithm:"md5",blockLength:64,digestLength:16,messageLength:0,fullMessageLength:null,messageLengthSize:8};return r.start=function(){r.messageLength=0,r.fullMessageLength=r.messageLength64=[];for(var n=r.messageLengthSize/4,c=0;c<n;++c)r.fullMessageLength.push(0);return t=ft.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878},r},r.start(),r.update=function(n,c){c==="utf8"&&(n=ft.util.encodeUtf8(n));var a=n.length;r.messageLength+=a,a=[a/4294967296>>>0,a>>>0];for(var s=r.fullMessageLength.length-1;s>=0;--s)r.fullMessageLength[s]+=a[1],a[1]=a[0]+(r.fullMessageLength[s]/4294967296>>>0),r.fullMessageLength[s]=r.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(n),fs(e,i,t),(t.read>2048||t.length()===0)&&t.compact(),r},r.digest=function(){var n=ft.util.createBuffer();n.putBytes(t.bytes());var c=r.fullMessageLength[r.fullMessageLength.length-1]+r.messageLengthSize,a=c&r.blockLength-1;n.putBytes(di.substr(0,r.blockLength-a));for(var s,l=0,o=r.fullMessageLength.length-1;o>=0;--o)s=r.fullMessageLength[o]*8+l,l=s/4294967296>>>0,n.putInt32Le(s>>>0);var f={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3};fs(f,i,n);var u=ft.util.createBuffer();return u.putInt32Le(f.h0),u.putInt32Le(f.h1),u.putInt32Le(f.h2),u.putInt32Le(f.h3),u},r};var di=null,Dr=null,dr=null,Xt=null,us=!1;function zn(){di=String.fromCharCode(128),di+=ft.util.fillString(String.fromCharCode(0),64),Dr=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,6,11,0,5,10,15,4,9,14,3,8,13,2,7,12,5,8,11,14,1,4,7,10,13,0,3,6,9,12,15,2,0,7,14,5,12,3,10,1,8,15,6,13,4,11,2,9],dr=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],Xt=new Array(64);for(var e=0;e<64;++e)Xt[e]=Math.floor(Math.abs(Math.sin(e+1))*4294967296);us=!0}function fs(e,t,i){for(var r,n,c,a,s,l,o,f,u=i.length();u>=64;){for(n=e.h0,c=e.h1,a=e.h2,s=e.h3,f=0;f<16;++f)t[f]=i.getInt32Le(),l=s^c&(a^s),r=n+l+Xt[f]+t[f],o=dr[f],n=s,s=a,a=c,c+=r<<o|r>>>32-o;for(;f<32;++f)l=a^s&(c^a),r=n+l+Xt[f]+t[Dr[f]],o=dr[f],n=s,s=a,a=c,c+=r<<o|r>>>32-o;for(;f<48;++f)l=c^a^s,r=n+l+Xt[f]+t[Dr[f]],o=dr[f],n=s,s=a,a=c,c+=r<<o|r>>>32-o;for(;f<64;++f)l=a^(c|~s),r=n+l+Xt[f]+t[Dr[f]],o=dr[f],n=s,s=a,a=c,c+=r<<o|r>>>32-o;e.h0=e.h0+n|0,e.h1=e.h1+c|0,e.h2=e.h2+a|0,e.h3=e.h3+s|0,u-=64}}var Pr=_e,ds=Pr.pem=Pr.pem||{};ds.encode=function(e,t){t=t||{};var i="-----BEGIN "+e.type+`-----\r
`,r;if(e.procType&&(r={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},i+=Nr(r)),e.contentDomain&&(r={name:"Content-Domain",values:[e.contentDomain]},i+=Nr(r)),e.dekInfo&&(r={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&r.values.push(e.dekInfo.parameters),i+=Nr(r)),e.headers)for(var n=0;n<e.headers.length;++n)i+=Nr(e.headers[n]);return e.procType&&(i+=`\r
`),i+=Pr.util.encode64(e.body,t.maxline||64)+`\r
`,i+="-----END "+e.type+`-----\r
`,i},ds.decode=function(e){for(var t=[],i=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,r=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,n=/\r?\n/,c;c=i.exec(e),!!c;){var a=c[1];a==="NEW CERTIFICATE REQUEST"&&(a="CERTIFICATE REQUEST");var s={type:a,procType:null,contentDomain:null,dekInfo:null,headers:[],body:Pr.util.decode64(c[3])};if(t.push(s),!!c[2]){for(var l=c[2].split(n),o=0;c&&o<l.length;){for(var f=l[o].replace(/\s+$/,""),u=o+1;u<l.length;++u){var g=l[u];if(!/\s/.test(g[0]))break;f+=g,o=u}if(c=f.match(r),c){for(var y={name:c[1],values:[]},m=c[2].split(","),_=0;_<m.length;++_)y.values.push(qn(m[_]));if(s.procType)if(!s.contentDomain&&y.name==="Content-Domain")s.contentDomain=m[0]||"";else if(!s.dekInfo&&y.name==="DEK-Info"){if(y.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');s.dekInfo={algorithm:m[0],parameters:m[1]||null}}else s.headers.push(y);else{if(y.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(y.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');s.procType={version:m[0],type:m[1]}}}++o}if(s.procType==="ENCRYPTED"&&!s.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function Nr(e){for(var t=e.name+": ",i=[],r=function(l,o){return" "+o},n=0;n<e.values.length;++n)i.push(e.values[n].replace(/^(\S+\r\n)/,r));t+=i.join(",")+`\r
`;for(var c=0,a=-1,n=0;n<t.length;++n,++c)if(c>65&&a!==-1){var s=t[a];s===","?(++a,t=t.substr(0,a)+`\r
`+t.substr(a)):t=t.substr(0,a)+`\r
`+s+t.substr(a+1),c=n-a-1,a=-1,++n}else(t[n]===" "||t[n]===" "||t[n]===",")&&(a=n);return t}function qn(e){return e.replace(/^\s+/,"")}var Ne=_e;Ne.des=Ne.des||{},Ne.des.startEncrypting=function(e,t,i,r){var n=Or({key:e,output:i,decrypt:!1,mode:r||(t===null?"ECB":"CBC")});return n.start(t),n},Ne.des.createEncryptionCipher=function(e,t){return Or({key:e,output:null,decrypt:!1,mode:t})},Ne.des.startDecrypting=function(e,t,i,r){var n=Or({key:e,output:i,decrypt:!0,mode:r||(t===null?"ECB":"CBC")});return n.start(t),n},Ne.des.createDecryptionCipher=function(e,t){return Or({key:e,output:null,decrypt:!0,mode:t})},Ne.des.Algorithm=function(e,t){var i=this;i.name=e,i.mode=new t({blockSize:8,cipher:{encrypt:function(r,n){return ps(i._keys,r,n,!1)},decrypt:function(r,n){return ps(i._keys,r,n,!0)}}}),i._init=!1},Ne.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=Ne.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=ea(t),this._init=!0}},dt("DES-ECB",Ne.cipher.modes.ecb),dt("DES-CBC",Ne.cipher.modes.cbc),dt("DES-CFB",Ne.cipher.modes.cfb),dt("DES-OFB",Ne.cipher.modes.ofb),dt("DES-CTR",Ne.cipher.modes.ctr),dt("3DES-ECB",Ne.cipher.modes.ecb),dt("3DES-CBC",Ne.cipher.modes.cbc),dt("3DES-CFB",Ne.cipher.modes.cfb),dt("3DES-OFB",Ne.cipher.modes.ofb),dt("3DES-CTR",Ne.cipher.modes.ctr);function dt(e,t){var i=function(){return new Ne.des.Algorithm(e,t)};Ne.cipher.registerAlgorithm(e,i)}var $n=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],jn=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],Gn=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],Qn=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],Yn=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],Xn=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],Zn=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],Jn=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function ea(e){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],i=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],r=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],n=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],c=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],a=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],s=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],l=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],o=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],f=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],u=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],g=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],y=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],m=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],_=e.length()>8?3:1,h=[],d=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],p=0,v,S=0;S<_;S++){var C=e.getInt32(),b=e.getInt32();v=(C>>>4^b)&252645135,b^=v,C^=v<<4,v=(b>>>-16^C)&65535,C^=v,b^=v<<-16,v=(C>>>2^b)&858993459,b^=v,C^=v<<2,v=(b>>>-16^C)&65535,C^=v,b^=v<<-16,v=(C>>>1^b)&1431655765,b^=v,C^=v<<1,v=(b>>>8^C)&16711935,C^=v,b^=v<<8,v=(C>>>1^b)&1431655765,b^=v,C^=v<<1,v=C<<8|b>>>20&240,C=b<<24|b<<8&16711680|b>>>8&65280|b>>>24&240,b=v;for(var w=0;w<d.length;++w){d[w]?(C=C<<2|C>>>26,b=b<<2|b>>>26):(C=C<<1|C>>>27,b=b<<1|b>>>27),C&=-15,b&=-15;var E=t[C>>>28]|i[C>>>24&15]|r[C>>>20&15]|n[C>>>16&15]|c[C>>>12&15]|a[C>>>8&15]|s[C>>>4&15],x=l[b>>>28]|o[b>>>24&15]|f[b>>>20&15]|u[b>>>16&15]|g[b>>>12&15]|y[b>>>8&15]|m[b>>>4&15];v=(x>>>16^E)&65535,h[p++]=E^v,h[p++]=x^v<<16}}return h}function ps(e,t,i,r){var n=e.length===32?3:9,c;n===3?c=r?[30,-2,-2]:[0,32,2]:c=r?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var a,s=t[0],l=t[1];a=(s>>>4^l)&252645135,l^=a,s^=a<<4,a=(s>>>16^l)&65535,l^=a,s^=a<<16,a=(l>>>2^s)&858993459,s^=a,l^=a<<2,a=(l>>>8^s)&16711935,s^=a,l^=a<<8,a=(s>>>1^l)&1431655765,l^=a,s^=a<<1,s=s<<1|s>>>31,l=l<<1|l>>>31;for(var o=0;o<n;o+=3){for(var f=c[o+1],u=c[o+2],g=c[o];g!=f;g+=u){var y=l^e[g],m=(l>>>4|l<<28)^e[g+1];a=s,s=l,l=a^(jn[y>>>24&63]|Qn[y>>>16&63]|Xn[y>>>8&63]|Jn[y&63]|$n[m>>>24&63]|Gn[m>>>16&63]|Yn[m>>>8&63]|Zn[m&63])}a=s,s=l,l=a}s=s>>>1|s<<31,l=l>>>1|l<<31,a=(s>>>1^l)&1431655765,l^=a,s^=a<<1,a=(l>>>8^s)&16711935,s^=a,l^=a<<8,a=(l>>>2^s)&858993459,s^=a,l^=a<<2,a=(s>>>16^l)&65535,l^=a,s^=a<<16,a=(s>>>4^l)&252645135,l^=a,s^=a<<4,i[0]=s,i[1]=l}function Or(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),i="DES-"+t,r;e.decrypt?r=Ne.cipher.createDecipher(i,e.key):r=Ne.cipher.createCipher(i,e.key);var n=r.start;return r.start=function(c,a){var s=null;a instanceof Ne.util.ByteBuffer&&(s=a,a={}),a=a||{},a.output=s,a.iv=c,n.call(r,a)},r}const pi=ri(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));var Ye=_e,ta=Ye.pkcs5=Ye.pkcs5||{},bt;Ye.util.isNodejs&&!Ye.options.usePureJavaScript&&(bt=pi),Ye.pbkdf2=ta.pbkdf2=function(e,t,i,r,n,c){if(typeof n=="function"&&(c=n,n=null),Ye.util.isNodejs&&!Ye.options.usePureJavaScript&&bt.pbkdf2&&(n===null||typeof n!="object")&&(bt.pbkdf2Sync.length>4||!n||n==="sha1"))return typeof n!="string"&&(n="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),c?bt.pbkdf2Sync.length===4?bt.pbkdf2(e,t,i,r,function(v,S){if(v)return c(v);c(null,S.toString("binary"))}):bt.pbkdf2(e,t,i,r,n,function(v,S){if(v)return c(v);c(null,S.toString("binary"))}):bt.pbkdf2Sync.length===4?bt.pbkdf2Sync(e,t,i,r).toString("binary"):bt.pbkdf2Sync(e,t,i,r,n).toString("binary");if((typeof n=="undefined"||n===null)&&(n="sha1"),typeof n=="string"){if(!(n in Ye.md.algorithms))throw new Error("Unknown hash algorithm: "+n);n=Ye.md[n].create()}var a=n.digestLength;if(r>4294967295*a){var s=new Error("Derived key is too long.");if(c)return c(s);throw s}var l=Math.ceil(r/a),o=r-(l-1)*a,f=Ye.hmac.create();f.start(n,e);var u="",g,y,m;if(!c){for(var _=1;_<=l;++_){f.start(null,null),f.update(t),f.update(Ye.util.int32ToBytes(_)),g=m=f.digest().getBytes();for(var h=2;h<=i;++h)f.start(null,null),f.update(m),y=f.digest().getBytes(),g=Ye.util.xorBytes(g,y,a),m=y;u+=_<l?g:g.substr(0,o)}return u}var _=1,h;function d(){if(_>l)return c(null,u);f.start(null,null),f.update(t),f.update(Ye.util.int32ToBytes(_)),g=m=f.digest().getBytes(),h=2,p()}function p(){if(h<=i)return f.start(null,null),f.update(m),y=f.digest().getBytes(),g=Ye.util.xorBytes(g,y,a),m=y,++h,Ye.util.setImmediate(p);u+=_<l?g:g.substr(0,o),++_,d()}d()};var pt=_e,vs=pt.sha256=pt.sha256||{};pt.md.sha256=pt.md.algorithms.sha256=vs,vs.create=function(){gs||ra();var e=null,t=pt.util.createBuffer(),i=new Array(64),r={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return r.start=function(){r.messageLength=0,r.fullMessageLength=r.messageLength64=[];for(var n=r.messageLengthSize/4,c=0;c<n;++c)r.fullMessageLength.push(0);return t=pt.util.createBuffer(),e={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},r},r.start(),r.update=function(n,c){c==="utf8"&&(n=pt.util.encodeUtf8(n));var a=n.length;r.messageLength+=a,a=[a/4294967296>>>0,a>>>0];for(var s=r.fullMessageLength.length-1;s>=0;--s)r.fullMessageLength[s]+=a[1],a[1]=a[0]+(r.fullMessageLength[s]/4294967296>>>0),r.fullMessageLength[s]=r.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(n),ys(e,i,t),(t.read>2048||t.length()===0)&&t.compact(),r},r.digest=function(){var n=pt.util.createBuffer();n.putBytes(t.bytes());var c=r.fullMessageLength[r.fullMessageLength.length-1]+r.messageLengthSize,a=c&r.blockLength-1;n.putBytes(vi.substr(0,r.blockLength-a));for(var s,l,o=r.fullMessageLength[0]*8,f=0;f<r.fullMessageLength.length-1;++f)s=r.fullMessageLength[f+1]*8,l=s/4294967296>>>0,o+=l,n.putInt32(o>>>0),o=s>>>0;n.putInt32(o);var u={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};ys(u,i,n);var g=pt.util.createBuffer();return g.putInt32(u.h0),g.putInt32(u.h1),g.putInt32(u.h2),g.putInt32(u.h3),g.putInt32(u.h4),g.putInt32(u.h5),g.putInt32(u.h6),g.putInt32(u.h7),g},r};var vi=null,gs=!1,_s=null;function ra(){vi=String.fromCharCode(128),vi+=pt.util.fillString(String.fromCharCode(0),64),_s=[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],gs=!0}function ys(e,t,i){for(var r,n,c,a,s,l,o,f,u,g,y,m,_,h,d,p=i.length();p>=64;){for(o=0;o<16;++o)t[o]=i.getInt32();for(;o<64;++o)r=t[o-2],r=(r>>>17|r<<15)^(r>>>19|r<<13)^r>>>10,n=t[o-15],n=(n>>>7|n<<25)^(n>>>18|n<<14)^n>>>3,t[o]=r+t[o-7]+n+t[o-16]|0;for(f=e.h0,u=e.h1,g=e.h2,y=e.h3,m=e.h4,_=e.h5,h=e.h6,d=e.h7,o=0;o<64;++o)a=(m>>>6|m<<26)^(m>>>11|m<<21)^(m>>>25|m<<7),s=h^m&(_^h),c=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),l=f&u|g&(f^u),r=d+a+s+_s[o]+t[o],n=c+l,d=h,h=_,_=m,m=y+r>>>0,y=g,g=u,u=f,f=r+n>>>0;e.h0=e.h0+f|0,e.h1=e.h1+u|0,e.h2=e.h2+g|0,e.h3=e.h3+y|0,e.h4=e.h4+m|0,e.h5=e.h5+_|0,e.h6=e.h6+h|0,e.h7=e.h7+d|0,p-=64}}var vt=_e,Mr=null;vt.util.isNodejs&&!vt.options.usePureJavaScript&&!process.versions["node-webkit"]&&(Mr=pi);var ia=vt.prng=vt.prng||{};ia.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},i=e.md,r=new Array(32),n=0;n<32;++n)r[n]=i.create();t.pools=r,t.pool=0,t.generate=function(o,f){if(!f)return t.generateSync(o);var u=t.plugin.cipher,g=t.plugin.increment,y=t.plugin.formatKey,m=t.plugin.formatSeed,_=vt.util.createBuffer();t.key=null,h();function h(d){if(d)return f(d);if(_.length()>=o)return f(null,_.getBytes(o));if(t.generated>1048575&&(t.key=null),t.key===null)return vt.util.nextTick(function(){c(h)});var p=u(t.key,t.seed);t.generated+=p.length,_.putBytes(p),t.key=y(u(t.key,g(t.seed))),t.seed=m(u(t.key,t.seed)),vt.util.setImmediate(h)}},t.generateSync=function(o){var f=t.plugin.cipher,u=t.plugin.increment,g=t.plugin.formatKey,y=t.plugin.formatSeed;t.key=null;for(var m=vt.util.createBuffer();m.length()<o;){t.generated>1048575&&(t.key=null),t.key===null&&a();var _=f(t.key,t.seed);t.generated+=_.length,m.putBytes(_),t.key=g(f(t.key,u(t.seed))),t.seed=y(f(t.key,t.seed))}return m.getBytes(o)};function c(o){if(t.pools[0].messageLength>=32)return s(),o();var f=32-t.pools[0].messageLength<<5;t.seedFile(f,function(u,g){if(u)return o(u);t.collect(g),s(),o()})}function a(){if(t.pools[0].messageLength>=32)return s();var o=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(o)),s()}function s(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var o=t.plugin.md.create();o.update(t.keyBytes);for(var f=1,u=0;u<32;++u)t.reseeds%f===0&&(o.update(t.pools[u].digest().getBytes()),t.pools[u].start()),f=f<<1;t.keyBytes=o.digest().getBytes(),o.start(),o.update(t.keyBytes);var g=o.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(g),t.generated=0}function l(o){var f=null,u=vt.util.globalScope,g=u.crypto||u.msCrypto;g&&g.getRandomValues&&(f=function(C){return g.getRandomValues(C)});var y=vt.util.createBuffer();if(f)for(;y.length()<o;){var m=Math.max(1,Math.min(o-y.length(),65536)/4),_=new Uint32Array(Math.floor(m));try{f(_);for(var h=0;h<_.length;++h)y.putInt32(_[h])}catch(C){if(!(typeof QuotaExceededError!="undefined"&&C instanceof QuotaExceededError))throw C}}if(y.length()<o)for(var d,p,v,S=Math.floor(Math.random()*65536);y.length()<o;){p=16807*(S&65535),d=16807*(S>>16),p+=(d&32767)<<16,p+=d>>15,p=(p&2147483647)+(p>>31),S=p&4294967295;for(var h=0;h<3;++h)v=S>>>(h<<3),v^=Math.floor(Math.random()*256),y.putByte(v&255)}return y.getBytes(o)}return Mr?(t.seedFile=function(o,f){Mr.randomBytes(o,function(u,g){if(u)return f(u);f(null,g.toString())})},t.seedFileSync=function(o){return Mr.randomBytes(o).toString()}):(t.seedFile=function(o,f){try{f(null,l(o))}catch(u){f(u)}},t.seedFileSync=l),t.collect=function(o){for(var f=o.length,u=0;u<f;++u)t.pools[t.pool].update(o.substr(u,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(o,f){for(var u="",g=0;g<f;g+=8)u+=String.fromCharCode(o>>g&255);t.collect(u)},t.registerWorker=function(o){if(o===self)t.seedFile=function(u,g){function y(m){var _=m.data;_.forge&&_.forge.prng&&(self.removeEventListener("message",y),g(_.forge.prng.err,_.forge.prng.bytes))}self.addEventListener("message",y),self.postMessage({forge:{prng:{needed:u}}})};else{var f=function(u){var g=u.data;g.forge&&g.forge.prng&&t.seedFile(g.forge.prng.needed,function(y,m){o.postMessage({forge:{prng:{err:y,bytes:m}}})})};o.addEventListener("message",f)}},t};var We=_e;(function(){if(We.random&&We.random.getBytes){We.random;return}(function(e){var t={},i=new Array(4),r=We.util.createBuffer();t.formatKey=function(u){var g=We.util.createBuffer(u);return u=new Array(4),u[0]=g.getInt32(),u[1]=g.getInt32(),u[2]=g.getInt32(),u[3]=g.getInt32(),We.aes._expandKey(u,!1)},t.formatSeed=function(u){var g=We.util.createBuffer(u);return u=new Array(4),u[0]=g.getInt32(),u[1]=g.getInt32(),u[2]=g.getInt32(),u[3]=g.getInt32(),u},t.cipher=function(u,g){return We.aes._updateBlock(u,g,i,!1),r.putInt32(i[0]),r.putInt32(i[1]),r.putInt32(i[2]),r.putInt32(i[3]),r.getBytes()},t.increment=function(u){return++u[3],u},t.md=We.md.sha256;function n(){var u=We.prng.create(t);return u.getBytes=function(g,y){return u.generate(g,y)},u.getBytesSync=function(g){return u.generate(g)},u}var c=n(),a=null,s=We.util.globalScope,l=s.crypto||s.msCrypto;if(l&&l.getRandomValues&&(a=function(u){return l.getRandomValues(u)}),We.options.usePureJavaScript||!We.util.isNodejs&&!a){if(c.collectInt(+new Date,32),typeof navigator!="undefined"){var o="";for(var f in navigator)try{typeof navigator[f]=="string"&&(o+=navigator[f])}catch(u){}c.collect(o),o=null}e&&(e().mousemove(function(u){c.collectInt(u.clientX,16),c.collectInt(u.clientY,16)}),e().keypress(function(u){c.collectInt(u.charCode,8)}))}if(!We.random)We.random=c;else for(var f in c)We.random[f]=c[f];We.random.createInstance=n,We.random})(typeof jQuery!="undefined"?jQuery:null)})();var Je=_e,gi=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],ms=[1,2,3,5],sa=function(e,t){return e<<t&65535|(e&65535)>>16-t},na=function(e,t){return(e&65535)>>t|e<<16-t&65535};Je.rc2=Je.rc2||{},Je.rc2.expandKey=function(e,t){typeof e=="string"&&(e=Je.util.createBuffer(e)),t=t||128;var i=e,r=e.length(),n=t,c=Math.ceil(n/8),a=255>>(n&7),s;for(s=r;s<128;s++)i.putByte(gi[i.at(s-1)+i.at(s-r)&255]);for(i.setAt(128-c,gi[i.at(128-c)&a]),s=127-c;s>=0;s--)i.setAt(s,gi[i.at(s+1)^i.at(s+c)]);return i};var Ss=function(e,t,i){var r=!1,n=null,c=null,a=null,s,l,o,f,u=[];for(e=Je.rc2.expandKey(e,t),o=0;o<64;o++)u.push(e.getInt16Le());i?(s=function(m){for(o=0;o<4;o++)m[o]+=u[f]+(m[(o+3)%4]&m[(o+2)%4])+(~m[(o+3)%4]&m[(o+1)%4]),m[o]=sa(m[o],ms[o]),f++},l=function(m){for(o=0;o<4;o++)m[o]+=u[m[(o+3)%4]&63]}):(s=function(m){for(o=3;o>=0;o--)m[o]=na(m[o],ms[o]),m[o]-=u[f]+(m[(o+3)%4]&m[(o+2)%4])+(~m[(o+3)%4]&m[(o+1)%4]),f--},l=function(m){for(o=3;o>=0;o--)m[o]-=u[m[(o+3)%4]&63]});var g=function(m){var _=[];for(o=0;o<4;o++){var h=n.getInt16Le();a!==null&&(i?h^=a.getInt16Le():a.putInt16Le(h)),_.push(h&65535)}f=i?0:63;for(var d=0;d<m.length;d++)for(var p=0;p<m[d][0];p++)m[d][1](_);for(o=0;o<4;o++)a!==null&&(i?a.putInt16Le(_[o]):_[o]^=a.getInt16Le()),c.putInt16Le(_[o])},y=null;return y={start:function(m,_){m&&typeof m=="string"&&(m=Je.util.createBuffer(m)),r=!1,n=Je.util.createBuffer(),c=_||new Je.util.createBuffer,a=m,y.output=c},update:function(m){for(r||n.putBuffer(m);n.length()>=8;)g([[5,s],[1,l],[6,s],[1,l],[5,s]])},finish:function(m){var _=!0;if(i)if(m)_=m(8,n,!i);else{var h=n.length()===8?8:8-n.length();n.fillWithByte(h,h)}if(_&&(r=!0,y.update()),!i&&(_=n.length()===0,_))if(m)_=m(8,c,!i);else{var d=c.length(),p=c.at(d-1);p>d?_=!1:c.truncate(p)}return _}},y};Je.rc2.startEncrypting=function(e,t,i){var r=Je.rc2.createEncryptionCipher(e,128);return r.start(t,i),r},Je.rc2.createEncryptionCipher=function(e,t){return Ss(e,t,!0)},Je.rc2.startDecrypting=function(e,t,i){var r=Je.rc2.createDecryptionCipher(e,128);return r.start(t,i),r},Je.rc2.createDecryptionCipher=function(e,t){return Ss(e,t,!1)};var _i=_e;_i.jsbn=_i.jsbn||{};var xt;function X(e,t,i){this.data=[],e!=null&&(typeof e=="number"?this.fromNumber(e,t,i):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}_i.jsbn.BigInteger=X;function we(){return new X(null)}function aa(e,t,i,r,n,c){for(;--c>=0;){var a=t*this.data[e++]+i.data[r]+n;n=Math.floor(a/67108864),i.data[r++]=a&67108863}return n}function oa(e,t,i,r,n,c){for(var a=t&32767,s=t>>15;--c>=0;){var l=this.data[e]&32767,o=this.data[e++]>>15,f=s*l+o*a;l=a*l+((f&32767)<<15)+i.data[r]+(n&1073741823),n=(l>>>30)+(f>>>15)+s*o+(n>>>30),i.data[r++]=l&1073741823}return n}function Cs(e,t,i,r,n,c){for(var a=t&16383,s=t>>14;--c>=0;){var l=this.data[e]&16383,o=this.data[e++]>>14,f=s*l+o*a;l=a*l+((f&16383)<<14)+i.data[r]+n,n=(l>>28)+(f>>14)+s*o,i.data[r++]=l&268435455}return n}typeof navigator=="undefined"?(X.prototype.am=Cs,xt=28):navigator.appName=="Microsoft Internet Explorer"?(X.prototype.am=oa,xt=30):navigator.appName!="Netscape"?(X.prototype.am=aa,xt=26):(X.prototype.am=Cs,xt=28),X.prototype.DB=xt,X.prototype.DM=(1<<xt)-1,X.prototype.DV=1<<xt;var yi=52;X.prototype.FV=Math.pow(2,yi),X.prototype.F1=yi-xt,X.prototype.F2=2*xt-yi;var la="0123456789abcdefghijklmnopqrstuvwxyz",Ur=new Array,Zt,it;for(Zt="0".charCodeAt(0),it=0;it<=9;++it)Ur[Zt++]=it;for(Zt="a".charCodeAt(0),it=10;it<36;++it)Ur[Zt++]=it;for(Zt="A".charCodeAt(0),it=10;it<36;++it)Ur[Zt++]=it;function Es(e){return la.charAt(e)}function bs(e,t){var i=Ur[e.charCodeAt(t)];return i==null?-1:i}function ca(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function ha(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0}function Bt(e){var t=we();return t.fromInt(e),t}function ua(e,t){var i;if(t==16)i=4;else if(t==8)i=3;else if(t==256)i=8;else if(t==2)i=1;else if(t==32)i=5;else if(t==4)i=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var r=e.length,n=!1,c=0;--r>=0;){var a=i==8?e[r]&255:bs(e,r);if(a<0){e.charAt(r)=="-"&&(n=!0);continue}n=!1,c==0?this.data[this.t++]=a:c+i>this.DB?(this.data[this.t-1]|=(a&(1<<this.DB-c)-1)<<c,this.data[this.t++]=a>>this.DB-c):this.data[this.t-1]|=a<<c,c+=i,c>=this.DB&&(c-=this.DB)}i==8&&e[0]&128&&(this.s=-1,c>0&&(this.data[this.t-1]|=(1<<this.DB-c)-1<<c)),this.clamp(),n&&X.ZERO.subTo(this,this)}function fa(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function da(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var i=(1<<t)-1,r,n=!1,c="",a=this.t,s=this.DB-a*this.DB%t;if(a-- >0)for(s<this.DB&&(r=this.data[a]>>s)>0&&(n=!0,c=Es(r));a>=0;)s<t?(r=(this.data[a]&(1<<s)-1)<<t-s,r|=this.data[--a]>>(s+=this.DB-t)):(r=this.data[a]>>(s-=t)&i,s<=0&&(s+=this.DB,--a)),r>0&&(n=!0),n&&(c+=Es(r));return n?c:"0"}function pa(){var e=we();return X.ZERO.subTo(this,e),e}function va(){return this.s<0?this.negate():this}function ga(e){var t=this.s-e.s;if(t!=0)return t;var i=this.t;if(t=i-e.t,t!=0)return this.s<0?-t:t;for(;--i>=0;)if((t=this.data[i]-e.data[i])!=0)return t;return 0}function Fr(e){var t=1,i;return(i=e>>>16)!=0&&(e=i,t+=16),(i=e>>8)!=0&&(e=i,t+=8),(i=e>>4)!=0&&(e=i,t+=4),(i=e>>2)!=0&&(e=i,t+=2),(i=e>>1)!=0&&(e=i,t+=1),t}function _a(){return this.t<=0?0:this.DB*(this.t-1)+Fr(this.data[this.t-1]^this.s&this.DM)}function ya(e,t){var i;for(i=this.t-1;i>=0;--i)t.data[i+e]=this.data[i];for(i=e-1;i>=0;--i)t.data[i]=0;t.t=this.t+e,t.s=this.s}function ma(e,t){for(var i=e;i<this.t;++i)t.data[i-e]=this.data[i];t.t=Math.max(this.t-e,0),t.s=this.s}function Sa(e,t){var i=e%this.DB,r=this.DB-i,n=(1<<r)-1,c=Math.floor(e/this.DB),a=this.s<<i&this.DM,s;for(s=this.t-1;s>=0;--s)t.data[s+c+1]=this.data[s]>>r|a,a=(this.data[s]&n)<<i;for(s=c-1;s>=0;--s)t.data[s]=0;t.data[c]=a,t.t=this.t+c+1,t.s=this.s,t.clamp()}function Ca(e,t){t.s=this.s;var i=Math.floor(e/this.DB);if(i>=this.t){t.t=0;return}var r=e%this.DB,n=this.DB-r,c=(1<<r)-1;t.data[0]=this.data[i]>>r;for(var a=i+1;a<this.t;++a)t.data[a-i-1]|=(this.data[a]&c)<<n,t.data[a-i]=this.data[a]>>r;r>0&&(t.data[this.t-i-1]|=(this.s&c)<<n),t.t=this.t-i,t.clamp()}function Ea(e,t){for(var i=0,r=0,n=Math.min(e.t,this.t);i<n;)r+=this.data[i]-e.data[i],t.data[i++]=r&this.DM,r>>=this.DB;if(e.t<this.t){for(r-=e.s;i<this.t;)r+=this.data[i],t.data[i++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;i<e.t;)r-=e.data[i],t.data[i++]=r&this.DM,r>>=this.DB;r-=e.s}t.s=r<0?-1:0,r<-1?t.data[i++]=this.DV+r:r>0&&(t.data[i++]=r),t.t=i,t.clamp()}function ba(e,t){var i=this.abs(),r=e.abs(),n=i.t;for(t.t=n+r.t;--n>=0;)t.data[n]=0;for(n=0;n<r.t;++n)t.data[n+i.t]=i.am(0,r.data[n],t,n,0,i.t);t.s=0,t.clamp(),this.s!=e.s&&X.ZERO.subTo(t,t)}function xa(e){for(var t=this.abs(),i=e.t=2*t.t;--i>=0;)e.data[i]=0;for(i=0;i<t.t-1;++i){var r=t.am(i,t.data[i],e,2*i,0,1);(e.data[i+t.t]+=t.am(i+1,2*t.data[i],e,2*i+1,r,t.t-i-1))>=t.DV&&(e.data[i+t.t]-=t.DV,e.data[i+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(i,t.data[i],e,2*i,0,1)),e.s=0,e.clamp()}function wa(e,t,i){var r=e.abs();if(!(r.t<=0)){var n=this.abs();if(n.t<r.t){t!=null&&t.fromInt(0),i!=null&&this.copyTo(i);return}i==null&&(i=we());var c=we(),a=this.s,s=e.s,l=this.DB-Fr(r.data[r.t-1]);l>0?(r.lShiftTo(l,c),n.lShiftTo(l,i)):(r.copyTo(c),n.copyTo(i));var o=c.t,f=c.data[o-1];if(f!=0){var u=f*(1<<this.F1)+(o>1?c.data[o-2]>>this.F2:0),g=this.FV/u,y=(1<<this.F1)/u,m=1<<this.F2,_=i.t,h=_-o,d=t==null?we():t;for(c.dlShiftTo(h,d),i.compareTo(d)>=0&&(i.data[i.t++]=1,i.subTo(d,i)),X.ONE.dlShiftTo(o,d),d.subTo(c,c);c.t<o;)c.data[c.t++]=0;for(;--h>=0;){var p=i.data[--_]==f?this.DM:Math.floor(i.data[_]*g+(i.data[_-1]+m)*y);if((i.data[_]+=c.am(0,p,i,h,0,o))<p)for(c.dlShiftTo(h,d),i.subTo(d,i);i.data[_]<--p;)i.subTo(d,i)}t!=null&&(i.drShiftTo(o,t),a!=s&&X.ZERO.subTo(t,t)),i.t=o,i.clamp(),l>0&&i.rShiftTo(l,i),a<0&&X.ZERO.subTo(i,i)}}}function Ta(e){var t=we();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(X.ZERO)>0&&e.subTo(t,t),t}function Ft(e){this.m=e}function Aa(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function Ba(e){return e}function Ia(e){e.divRemTo(this.m,null,e)}function La(e,t,i){e.multiplyTo(t,i),this.reduce(i)}function ka(e,t){e.squareTo(t),this.reduce(t)}Ft.prototype.convert=Aa,Ft.prototype.revert=Ba,Ft.prototype.reduce=Ia,Ft.prototype.mulTo=La,Ft.prototype.sqrTo=ka;function Ra(){if(this.t<1)return 0;var e=this.data[0];if(!(e&1))return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function Ht(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function Da(e){var t=we();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(X.ZERO)>0&&this.m.subTo(t,t),t}function Pa(e){var t=we();return e.copyTo(t),this.reduce(t),t}function Na(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var i=e.data[t]&32767,r=i*this.mpl+((i*this.mph+(e.data[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(i=t+this.m.t,e.data[i]+=this.m.am(0,r,e,t,0,this.m.t);e.data[i]>=e.DV;)e.data[i]-=e.DV,e.data[++i]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function Oa(e,t){e.squareTo(t),this.reduce(t)}function Ma(e,t,i){e.multiplyTo(t,i),this.reduce(i)}Ht.prototype.convert=Da,Ht.prototype.revert=Pa,Ht.prototype.reduce=Na,Ht.prototype.mulTo=Ma,Ht.prototype.sqrTo=Oa;function Ua(){return(this.t>0?this.data[0]&1:this.s)==0}function Fa(e,t){if(e>4294967295||e<1)return X.ONE;var i=we(),r=we(),n=t.convert(this),c=Fr(e)-1;for(n.copyTo(i);--c>=0;)if(t.sqrTo(i,r),(e&1<<c)>0)t.mulTo(r,n,i);else{var a=i;i=r,r=a}return t.revert(i)}function Ha(e,t){var i;return e<256||t.isEven()?i=new Ft(t):i=new Ht(t),this.exp(e,i)}X.prototype.copyTo=ca,X.prototype.fromInt=ha,X.prototype.fromString=ua,X.prototype.clamp=fa,X.prototype.dlShiftTo=ya,X.prototype.drShiftTo=ma,X.prototype.lShiftTo=Sa,X.prototype.rShiftTo=Ca,X.prototype.subTo=Ea,X.prototype.multiplyTo=ba,X.prototype.squareTo=xa,X.prototype.divRemTo=wa,X.prototype.invDigit=Ra,X.prototype.isEven=Ua,X.prototype.exp=Fa,X.prototype.toString=da,X.prototype.negate=pa,X.prototype.abs=va,X.prototype.compareTo=ga,X.prototype.bitLength=_a,X.prototype.mod=Ta,X.prototype.modPowInt=Ha,X.ZERO=Bt(0),X.ONE=Bt(1);function Va(){var e=we();return this.copyTo(e),e}function Ka(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function Wa(){return this.t==0?this.s:this.data[0]<<24>>24}function za(){return this.t==0?this.s:this.data[0]<<16>>16}function qa(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function $a(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function ja(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),i=Math.pow(e,t),r=Bt(i),n=we(),c=we(),a="";for(this.divRemTo(r,n,c);n.signum()>0;)a=(i+c.intValue()).toString(e).substr(1)+a,n.divRemTo(r,n,c);return c.intValue().toString(e)+a}function Ga(e,t){this.fromInt(0),t==null&&(t=10);for(var i=this.chunkSize(t),r=Math.pow(t,i),n=!1,c=0,a=0,s=0;s<e.length;++s){var l=bs(e,s);if(l<0){e.charAt(s)=="-"&&this.signum()==0&&(n=!0);continue}a=t*a+l,++c>=i&&(this.dMultiply(r),this.dAddOffset(a,0),c=0,a=0)}c>0&&(this.dMultiply(Math.pow(t,c)),this.dAddOffset(a,0)),n&&X.ZERO.subTo(this,this)}function Qa(e,t,i){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,i),this.testBit(e-1)||this.bitwiseTo(X.ONE.shiftLeft(e-1),mi,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(X.ONE.shiftLeft(e-1),this);else{var r=new Array,n=e&7;r.length=(e>>3)+1,t.nextBytes(r),n>0?r[0]&=(1<<n)-1:r[0]=0,this.fromString(r,256)}}function Ya(){var e=this.t,t=new Array;t[0]=this.s;var i=this.DB-e*this.DB%8,r,n=0;if(e-- >0)for(i<this.DB&&(r=this.data[e]>>i)!=(this.s&this.DM)>>i&&(t[n++]=r|this.s<<this.DB-i);e>=0;)i<8?(r=(this.data[e]&(1<<i)-1)<<8-i,r|=this.data[--e]>>(i+=this.DB-8)):(r=this.data[e]>>(i-=8)&255,i<=0&&(i+=this.DB,--e)),r&128&&(r|=-256),n==0&&(this.s&128)!=(r&128)&&++n,(n>0||r!=this.s)&&(t[n++]=r);return t}function Xa(e){return this.compareTo(e)==0}function Za(e){return this.compareTo(e)<0?this:e}function Ja(e){return this.compareTo(e)>0?this:e}function eo(e,t,i){var r,n,c=Math.min(e.t,this.t);for(r=0;r<c;++r)i.data[r]=t(this.data[r],e.data[r]);if(e.t<this.t){for(n=e.s&this.DM,r=c;r<this.t;++r)i.data[r]=t(this.data[r],n);i.t=this.t}else{for(n=this.s&this.DM,r=c;r<e.t;++r)i.data[r]=t(n,e.data[r]);i.t=e.t}i.s=t(this.s,e.s),i.clamp()}function to(e,t){return e&t}function ro(e){var t=we();return this.bitwiseTo(e,to,t),t}function mi(e,t){return e|t}function io(e){var t=we();return this.bitwiseTo(e,mi,t),t}function xs(e,t){return e^t}function so(e){var t=we();return this.bitwiseTo(e,xs,t),t}function ws(e,t){return e&~t}function no(e){var t=we();return this.bitwiseTo(e,ws,t),t}function ao(){for(var e=we(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e}function oo(e){var t=we();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function lo(e){var t=we();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function co(e){if(e==0)return-1;var t=0;return e&65535||(e>>=16,t+=16),e&255||(e>>=8,t+=8),e&15||(e>>=4,t+=4),e&3||(e>>=2,t+=2),e&1||++t,t}function ho(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+co(this.data[e]);return this.s<0?this.t*this.DB:-1}function uo(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function fo(){for(var e=0,t=this.s&this.DM,i=0;i<this.t;++i)e+=uo(this.data[i]^t);return e}function po(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function vo(e,t){var i=X.ONE.shiftLeft(e);return this.bitwiseTo(i,t,i),i}function go(e){return this.changeBit(e,mi)}function _o(e){return this.changeBit(e,ws)}function yo(e){return this.changeBit(e,xs)}function mo(e,t){for(var i=0,r=0,n=Math.min(e.t,this.t);i<n;)r+=this.data[i]+e.data[i],t.data[i++]=r&this.DM,r>>=this.DB;if(e.t<this.t){for(r+=e.s;i<this.t;)r+=this.data[i],t.data[i++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;i<e.t;)r+=e.data[i],t.data[i++]=r&this.DM,r>>=this.DB;r+=e.s}t.s=r<0?-1:0,r>0?t.data[i++]=r:r<-1&&(t.data[i++]=this.DV+r),t.t=i,t.clamp()}function So(e){var t=we();return this.addTo(e,t),t}function Co(e){var t=we();return this.subTo(e,t),t}function Eo(e){var t=we();return this.multiplyTo(e,t),t}function bo(e){var t=we();return this.divRemTo(e,t,null),t}function xo(e){var t=we();return this.divRemTo(e,null,t),t}function wo(e){var t=we(),i=we();return this.divRemTo(e,t,i),new Array(t,i)}function To(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function Ao(e,t){if(e!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function pr(){}function Ts(e){return e}function Bo(e,t,i){e.multiplyTo(t,i)}function Io(e,t){e.squareTo(t)}pr.prototype.convert=Ts,pr.prototype.revert=Ts,pr.prototype.mulTo=Bo,pr.prototype.sqrTo=Io;function Lo(e){return this.exp(e,new pr)}function ko(e,t,i){var r=Math.min(this.t+e.t,t);for(i.s=0,i.t=r;r>0;)i.data[--r]=0;var n;for(n=i.t-this.t;r<n;++r)i.data[r+this.t]=this.am(0,e.data[r],i,r,0,this.t);for(n=Math.min(e.t,t);r<n;++r)this.am(0,e.data[r],i,r,0,t-r);i.clamp()}function Ro(e,t,i){--t;var r=i.t=this.t+e.t-t;for(i.s=0;--r>=0;)i.data[r]=0;for(r=Math.max(t-this.t,0);r<e.t;++r)i.data[this.t+r-t]=this.am(t-r,e.data[r],i,0,0,this.t+r-t);i.clamp(),i.drShiftTo(1,i)}function Jt(e){this.r2=we(),this.q3=we(),X.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function Do(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=we();return e.copyTo(t),this.reduce(t),t}function Po(e){return e}function No(e){for(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);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function Oo(e,t){e.squareTo(t),this.reduce(t)}function Mo(e,t,i){e.multiplyTo(t,i),this.reduce(i)}Jt.prototype.convert=Do,Jt.prototype.revert=Po,Jt.prototype.reduce=No,Jt.prototype.mulTo=Mo,Jt.prototype.sqrTo=Oo;function Uo(e,t){var i=e.bitLength(),r,n=Bt(1),c;if(i<=0)return n;i<18?r=1:i<48?r=3:i<144?r=4:i<768?r=5:r=6,i<8?c=new Ft(t):t.isEven()?c=new Jt(t):c=new Ht(t);var a=new Array,s=3,l=r-1,o=(1<<r)-1;if(a[1]=c.convert(this),r>1){var f=we();for(c.sqrTo(a[1],f);s<=o;)a[s]=we(),c.mulTo(f,a[s-2],a[s]),s+=2}var u=e.t-1,g,y=!0,m=we(),_;for(i=Fr(e.data[u])-1;u>=0;){for(i>=l?g=e.data[u]>>i-l&o:(g=(e.data[u]&(1<<i+1)-1)<<l-i,u>0&&(g|=e.data[u-1]>>this.DB+i-l)),s=r;!(g&1);)g>>=1,--s;if((i-=s)<0&&(i+=this.DB,--u),y)a[g].copyTo(n),y=!1;else{for(;s>1;)c.sqrTo(n,m),c.sqrTo(m,n),s-=2;s>0?c.sqrTo(n,m):(_=n,n=m,m=_),c.mulTo(m,a[g],n)}for(;u>=0&&!(e.data[u]&1<<i);)c.sqrTo(n,m),_=n,n=m,m=_,--i<0&&(i=this.DB-1,--u)}return c.revert(n)}function Fo(e){var t=this.s<0?this.negate():this.clone(),i=e.s<0?e.negate():e.clone();if(t.compareTo(i)<0){var r=t;t=i,i=r}var n=t.getLowestSetBit(),c=i.getLowestSetBit();if(c<0)return t;for(n<c&&(c=n),c>0&&(t.rShiftTo(c,t),i.rShiftTo(c,i));t.signum()>0;)(n=t.getLowestSetBit())>0&&t.rShiftTo(n,t),(n=i.getLowestSetBit())>0&&i.rShiftTo(n,i),t.compareTo(i)>=0?(t.subTo(i,t),t.rShiftTo(1,t)):(i.subTo(t,i),i.rShiftTo(1,i));return c>0&&i.lShiftTo(c,i),i}function Ho(e){if(e<=0)return 0;var t=this.DV%e,i=this.s<0?e-1:0;if(this.t>0)if(t==0)i=this.data[0]%e;else for(var r=this.t-1;r>=0;--r)i=(t*i+this.data[r])%e;return i}function Vo(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return X.ZERO;for(var i=e.clone(),r=this.clone(),n=Bt(1),c=Bt(0),a=Bt(0),s=Bt(1);i.signum()!=0;){for(;i.isEven();)i.rShiftTo(1,i),t?((!n.isEven()||!c.isEven())&&(n.addTo(this,n),c.subTo(e,c)),n.rShiftTo(1,n)):c.isEven()||c.subTo(e,c),c.rShiftTo(1,c);for(;r.isEven();)r.rShiftTo(1,r),t?((!a.isEven()||!s.isEven())&&(a.addTo(this,a),s.subTo(e,s)),a.rShiftTo(1,a)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);i.compareTo(r)>=0?(i.subTo(r,i),t&&n.subTo(a,n),c.subTo(s,c)):(r.subTo(i,r),t&&a.subTo(n,a),s.subTo(c,s))}if(r.compareTo(X.ONE)!=0)return X.ZERO;if(s.compareTo(e)>=0)return s.subtract(e);if(s.signum()<0)s.addTo(e,s);else return s;return s.signum()<0?s.add(e):s}var ht=[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],Ko=(1<<26)/ht[ht.length-1];function Wo(e){var t,i=this.abs();if(i.t==1&&i.data[0]<=ht[ht.length-1]){for(t=0;t<ht.length;++t)if(i.data[0]==ht[t])return!0;return!1}if(i.isEven())return!1;for(t=1;t<ht.length;){for(var r=ht[t],n=t+1;n<ht.length&&r<Ko;)r*=ht[n++];for(r=i.modInt(r);t<n;)if(r%ht[t++]==0)return!1}return i.millerRabin(e)}function zo(e){var t=this.subtract(X.ONE),i=t.getLowestSetBit();if(i<=0)return!1;for(var r=t.shiftRight(i),n=qo(),c,a=0;a<e;++a){do c=new X(this.bitLength(),n);while(c.compareTo(X.ONE)<=0||c.compareTo(t)>=0);var s=c.modPow(r,this);if(s.compareTo(X.ONE)!=0&&s.compareTo(t)!=0){for(var l=1;l++<i&&s.compareTo(t)!=0;)if(s=s.modPowInt(2,this),s.compareTo(X.ONE)==0)return!1;if(s.compareTo(t)!=0)return!1}}return!0}function qo(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}X.prototype.chunkSize=qa,X.prototype.toRadix=ja,X.prototype.fromRadix=Ga,X.prototype.fromNumber=Qa,X.prototype.bitwiseTo=eo,X.prototype.changeBit=vo,X.prototype.addTo=mo,X.prototype.dMultiply=To,X.prototype.dAddOffset=Ao,X.prototype.multiplyLowerTo=ko,X.prototype.multiplyUpperTo=Ro,X.prototype.modInt=Ho,X.prototype.millerRabin=zo,X.prototype.clone=Va,X.prototype.intValue=Ka,X.prototype.byteValue=Wa,X.prototype.shortValue=za,X.prototype.signum=$a,X.prototype.toByteArray=Ya,X.prototype.equals=Xa,X.prototype.min=Za,X.prototype.max=Ja,X.prototype.and=ro,X.prototype.or=io,X.prototype.xor=so,X.prototype.andNot=no,X.prototype.not=ao,X.prototype.shiftLeft=oo,X.prototype.shiftRight=lo,X.prototype.getLowestSetBit=ho,X.prototype.bitCount=fo,X.prototype.testBit=po,X.prototype.setBit=go,X.prototype.clearBit=_o,X.prototype.flipBit=yo,X.prototype.add=So,X.prototype.subtract=Co,X.prototype.multiply=Eo,X.prototype.divide=bo,X.prototype.remainder=xo,X.prototype.divideAndRemainder=wo,X.prototype.modPow=Uo,X.prototype.modInverse=Vo,X.prototype.pow=Lo,X.prototype.gcd=Fo,X.prototype.isProbablePrime=Wo;var gt=_e,As=gt.sha1=gt.sha1||{};gt.md.sha1=gt.md.algorithms.sha1=As,As.create=function(){Bs||$o();var e=null,t=gt.util.createBuffer(),i=new Array(80),r={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return r.start=function(){r.messageLength=0,r.fullMessageLength=r.messageLength64=[];for(var n=r.messageLengthSize/4,c=0;c<n;++c)r.fullMessageLength.push(0);return t=gt.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},r},r.start(),r.update=function(n,c){c==="utf8"&&(n=gt.util.encodeUtf8(n));var a=n.length;r.messageLength+=a,a=[a/4294967296>>>0,a>>>0];for(var s=r.fullMessageLength.length-1;s>=0;--s)r.fullMessageLength[s]+=a[1],a[1]=a[0]+(r.fullMessageLength[s]/4294967296>>>0),r.fullMessageLength[s]=r.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(n),Is(e,i,t),(t.read>2048||t.length()===0)&&t.compact(),r},r.digest=function(){var n=gt.util.createBuffer();n.putBytes(t.bytes());var c=r.fullMessageLength[r.fullMessageLength.length-1]+r.messageLengthSize,a=c&r.blockLength-1;n.putBytes(Si.substr(0,r.blockLength-a));for(var s,l,o=r.fullMessageLength[0]*8,f=0;f<r.fullMessageLength.length-1;++f)s=r.fullMessageLength[f+1]*8,l=s/4294967296>>>0,o+=l,n.putInt32(o>>>0),o=s>>>0;n.putInt32(o);var u={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};Is(u,i,n);var g=gt.util.createBuffer();return g.putInt32(u.h0),g.putInt32(u.h1),g.putInt32(u.h2),g.putInt32(u.h3),g.putInt32(u.h4),g},r};var Si=null,Bs=!1;function $o(){Si=String.fromCharCode(128),Si+=gt.util.fillString(String.fromCharCode(0),64),Bs=!0}function Is(e,t,i){for(var r,n,c,a,s,l,o,f,u=i.length();u>=64;){for(n=e.h0,c=e.h1,a=e.h2,s=e.h3,l=e.h4,f=0;f<16;++f)r=i.getInt32(),t[f]=r,o=s^c&(a^s),r=(n<<5|n>>>27)+o+l+1518500249+r,l=s,s=a,a=(c<<30|c>>>2)>>>0,c=n,n=r;for(;f<20;++f)r=t[f-3]^t[f-8]^t[f-14]^t[f-16],r=r<<1|r>>>31,t[f]=r,o=s^c&(a^s),r=(n<<5|n>>>27)+o+l+1518500249+r,l=s,s=a,a=(c<<30|c>>>2)>>>0,c=n,n=r;for(;f<32;++f)r=t[f-3]^t[f-8]^t[f-14]^t[f-16],r=r<<1|r>>>31,t[f]=r,o=c^a^s,r=(n<<5|n>>>27)+o+l+1859775393+r,l=s,s=a,a=(c<<30|c>>>2)>>>0,c=n,n=r;for(;f<40;++f)r=t[f-6]^t[f-16]^t[f-28]^t[f-32],r=r<<2|r>>>30,t[f]=r,o=c^a^s,r=(n<<5|n>>>27)+o+l+1859775393+r,l=s,s=a,a=(c<<30|c>>>2)>>>0,c=n,n=r;for(;f<60;++f)r=t[f-6]^t[f-16]^t[f-28]^t[f-32],r=r<<2|r>>>30,t[f]=r,o=c&a|s&(c^a),r=(n<<5|n>>>27)+o+l+2400959708+r,l=s,s=a,a=(c<<30|c>>>2)>>>0,c=n,n=r;for(;f<80;++f)r=t[f-6]^t[f-16]^t[f-28]^t[f-32],r=r<<2|r>>>30,t[f]=r,o=c^a^s,r=(n<<5|n>>>27)+o+l+3395469782+r,l=s,s=a,a=(c<<30|c>>>2)>>>0,c=n,n=r;e.h0=e.h0+n|0,e.h1=e.h1+c|0,e.h2=e.h2+a|0,e.h3=e.h3+s|0,e.h4=e.h4+l|0,u-=64}}var _t=_e,Ls=_t.pkcs1=_t.pkcs1||{};Ls.encode_rsa_oaep=function(e,t,i){var r,n,c,a;typeof i=="string"?(r=i,n=arguments[3]||void 0,c=arguments[4]||void 0):i&&(r=i.label||void 0,n=i.seed||void 0,c=i.md||void 0,i.mgf1&&i.mgf1.md&&(a=i.mgf1.md)),c?c.start():c=_t.md.sha1.create(),a||(a=c);var s=Math.ceil(e.n.bitLength()/8),l=s-2*c.digestLength-2;if(t.length>l){var o=new Error("RSAES-OAEP input message length is too long.");throw o.length=t.length,o.maxLength=l,o}r||(r=""),c.update(r,"raw");for(var f=c.digest(),u="",g=l-t.length,y=0;y<g;y++)u+="\0";var m=f.getBytes()+u+""+t;if(!n)n=_t.random.getBytes(c.digestLength);else if(n.length!==c.digestLength){var o=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw o.seedLength=n.length,o.digestLength=c.digestLength,o}var _=Hr(n,s-c.digestLength-1,a),h=_t.util.xorBytes(m,_,m.length),d=Hr(h,c.digestLength,a),p=_t.util.xorBytes(n,d,n.length);return"\0"+p+h},Ls.decode_rsa_oaep=function(e,t,i){var r,n,c;typeof i=="string"?(r=i,n=arguments[3]||void 0):i&&(r=i.label||void 0,n=i.md||void 0,i.mgf1&&i.mgf1.md&&(c=i.mgf1.md));var a=Math.ceil(e.n.bitLength()/8);if(t.length!==a){var h=new Error("RSAES-OAEP encoded message length is invalid.");throw h.length=t.length,h.expectedLength=a,h}if(n===void 0?n=_t.md.sha1.create():n.start(),c||(c=n),a<2*n.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");r||(r=""),n.update(r,"raw");for(var s=n.digest().getBytes(),l=t.charAt(0),o=t.substring(1,n.digestLength+1),f=t.substring(1+n.digestLength),u=Hr(f,n.digestLength,c),g=_t.util.xorBytes(o,u,o.length),y=Hr(g,a-n.digestLength-1,c),m=_t.util.xorBytes(f,y,f.length),_=m.substring(0,n.digestLength),h=l!=="\0",d=0;d<n.digestLength;++d)h|=s.charAt(d)!==_.charAt(d);for(var p=1,v=n.digestLength,S=n.digestLength;S<m.length;S++){var C=m.charCodeAt(S),b=C&1^1,w=p?65534:0;h|=C&w,p=p&b,v+=p}if(h||m.charCodeAt(v)!==1)throw new Error("Invalid RSAES-OAEP padding.");return m.substring(v+1)};function Hr(e,t,i){i||(i=_t.md.sha1.create());for(var r="",n=Math.ceil(t/i.digestLength),c=0;c<n;++c){var a=String.fromCharCode(c>>24&255,c>>16&255,c>>8&255,c&255);i.start(),i.update(e+a),r+=i.digest().getBytes()}return r.substring(0,t)}var It=_e;(function(){if(It.prime){It.prime;return}var e=It.prime=It.prime||{},t=It.jsbn.BigInteger,i=[6,4,2,4,2,4,6,2],r=new t(null);r.fromInt(30);var n=function(u,g){return u|g};e.generateProbablePrime=function(u,g,y){typeof g=="function"&&(y=g,g={}),g=g||{};var m=g.algorithm||"PRIMEINC";typeof m=="string"&&(m={name:m}),m.options=m.options||{};var _=g.prng||It.random,h={nextBytes:function(d){for(var p=_.getBytesSync(d.length),v=0;v<d.length;++v)d[v]=p.charCodeAt(v)}};if(m.name==="PRIMEINC")return c(u,h,m.options,y);throw new Error("Invalid prime generation algorithm: "+m.name)};function c(u,g,y,m){return"workers"in y?l(u,g,y,m):a(u,g,y,m)}function a(u,g,y,m){var _=o(u,g),h=0,d=f(_.bitLength());"millerRabinTests"in y&&(d=y.millerRabinTests);var p=10;"maxBlockTime"in y&&(p=y.maxBlockTime),s(_,u,g,h,d,p,m)}function s(u,g,y,m,_,h,d){var p=+new Date;do{if(u.bitLength()>g&&(u=o(g,y)),u.isProbablePrime(_))return d(null,u);u.dAddOffset(i[m++%8],0)}while(h<0||+new Date-p<h);It.util.setImmediate(function(){s(u,g,y,m,_,h,d)})}function l(u,g,y,m){if(typeof Worker=="undefined")return a(u,g,y,m);var _=o(u,g),h=y.workers,d=y.workLoad||100,p=d*30/8,v=y.workerScript||"forge/prime.worker.js";if(h===-1)return It.util.estimateCores(function(C,b){C&&(b=2),h=b-1,S()});S();function S(){h=Math.max(1,h);for(var C=[],b=0;b<h;++b)C[b]=new Worker(v);for(var b=0;b<h;++b)C[b].addEventListener("message",E);var w=!1;function E(x){if(!w){var R=x.data;if(R.found){for(var D=0;D<C.length;++D)C[D].terminate();return w=!0,m(null,new t(R.prime,16))}_.bitLength()>u&&(_=o(u,g));var k=_.toString(16);x.target.postMessage({hex:k,workLoad:d}),_.dAddOffset(p,0)}}}}function o(u,g){var y=new t(u,g),m=u-1;return y.testBit(m)||y.bitwiseTo(t.ONE.shiftLeft(m),n,y),y.dAddOffset(31-y.mod(r).byteValue(),0),y}function f(u){return u<=100?27:u<=150?18:u<=200?15:u<=250?12:u<=300?9:u<=350?8:u<=400?7:u<=500?6:u<=600?5:u<=800?4:u<=1250?3:2}})();var he=_e;if(typeof Te=="undefined")var Te=he.jsbn.BigInteger;var Ci=he.util.isNodejs?pi:null,z=he.asn1,st=he.util;he.pki=he.pki||{},he.pki.rsa=he.rsa=he.rsa||{};var pe=he.pki,jo=[6,4,2,4,2,4,6,2],Go={name:"PrivateKeyInfo",tagClass:z.Class.UNIVERSAL,type:z.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:z.Class.UNIVERSAL,type:z.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:z.Class.UNIVERSAL,type:z.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:z.Class.UNIVERSAL,type:z.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:z.Class.UNIVERSAL,type:z.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},Qo={name:"RSAPrivateKey",tagClass:z.Class.UNIVERSAL,type:z.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:z.Class.UNIVERSAL,type:z.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:z.Class.UNIVERSAL,type:z.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:z.Class.UNIVERSAL,type:z.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:z.Class.UNIVERSAL,type:z.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:z.Class.UNIVERSAL,type:z.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:z.Class.UNIVERSAL,type:z.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:z.Class.UNIVERSAL,type:z.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:z.Class.UNIVERSAL,type:z.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:z.Class.UNIVERSAL,type:z.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},Yo={name:"RSAPublicKey",tagClass:z.Class.UNIVERSAL,type:z.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:z.Class.UNIVERSAL,type:z.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:z.Class.UNIVERSAL,type:z.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},Xo=he.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:z.Class.UNIVERSAL,type:z.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:z.Class.UNIVERSAL,type:z.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:z.Class.UNIVERSAL,type:z.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:z.Class.UNIVERSAL,type:z.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:z.Class.UNIVERSAL,type:z.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},Zo={name:"DigestInfo",tagClass:z.Class.UNIVERSAL,type:z.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:z.Class.UNIVERSAL,type:z.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:z.Class.UNIVERSAL,type:z.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:z.Class.UNIVERSAL,type:z.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:z.Class.UNIVERSAL,type:z.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},Jo=function(e){var t;if(e.algorithm in pe.oids)t=pe.oids[e.algorithm];else{var i=new Error("Unknown message digest algorithm.");throw i.algorithm=e.algorithm,i}var r=z.oidToDer(t).getBytes(),n=z.create(z.Class.UNIVERSAL,z.Type.SEQUENCE,!0,[]),c=z.create(z.Class.UNIVERSAL,z.Type.SEQUENCE,!0,[]);c.value.push(z.create(z.Class.UNIVERSAL,z.Type.OID,!1,r)),c.value.push(z.create(z.Class.UNIVERSAL,z.Type.NULL,!1,""));var a=z.create(z.Class.UNIVERSAL,z.Type.OCTETSTRING,!1,e.digest().getBytes());return n.value.push(c),n.value.push(a),z.toDer(n).getBytes()},ks=function(e,t,i){if(i)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(Te.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(Te.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var r;do r=new Te(he.util.bytesToHex(he.random.getBytes(t.n.bitLength()/8)),16);while(r.compareTo(t.n)>=0||!r.gcd(t.n).equals(Te.ONE));e=e.multiply(r.modPow(t.e,t.n)).mod(t.n);for(var n=e.mod(t.p).modPow(t.dP,t.p),c=e.mod(t.q).modPow(t.dQ,t.q);n.compareTo(c)<0;)n=n.add(t.p);var a=n.subtract(c).multiply(t.qInv).mod(t.p).multiply(t.q).add(c);return a=a.multiply(r.modInverse(t.n)).mod(t.n),a};pe.rsa.encrypt=function(e,t,i){var r=i,n,c=Math.ceil(t.n.bitLength()/8);i!==!1&&i!==!0?(r=i===2,n=Rs(e,t,i)):(n=he.util.createBuffer(),n.putBytes(e));for(var a=new Te(n.toHex(),16),s=ks(a,t,r),l=s.toString(16),o=he.util.createBuffer(),f=c-Math.ceil(l.length/2);f>0;)o.putByte(0),--f;return o.putBytes(he.util.hexToBytes(l)),o.getBytes()},pe.rsa.decrypt=function(e,t,i,r){var n=Math.ceil(t.n.bitLength()/8);if(e.length!==n){var c=new Error("Encrypted message length is invalid.");throw c.length=e.length,c.expected=n,c}var a=new Te(he.util.createBuffer(e).toHex(),16);if(a.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var s=ks(a,t,i),l=s.toString(16),o=he.util.createBuffer(),f=n-Math.ceil(l.length/2);f>0;)o.putByte(0),--f;return o.putBytes(he.util.hexToBytes(l)),r!==!1?Vr(o.getBytes(),t,i):o.getBytes()},pe.rsa.createKeyPairGenerationState=function(e,t,i){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,i=i||{};var r=i.prng||he.random,n={nextBytes:function(s){for(var l=r.getBytesSync(s.length),o=0;o<s.length;++o)s[o]=l.charCodeAt(o)}},c=i.algorithm||"PRIMEINC",a;if(c==="PRIMEINC")a={algorithm:c,state:0,bits:e,rng:n,eInt:t||65537,e:new Te(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},a.e.fromInt(a.eInt);else throw new Error("Invalid key generation algorithm: "+c);return a},pe.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var i=new Te(null);i.fromInt(30);for(var r=0,n=function(u,g){return u|g},c=+new Date,a,s=0;e.keys===null&&(t<=0||s<t);){if(e.state===0){var l=e.p===null?e.pBits:e.qBits,o=l-1;e.pqState===0?(e.num=new Te(l,e.rng),e.num.testBit(o)||e.num.bitwiseTo(Te.ONE.shiftLeft(o),n,e.num),e.num.dAddOffset(31-e.num.mod(i).byteValue(),0),r=0,++e.pqState):e.pqState===1?e.num.bitLength()>l?e.pqState=0:e.num.isProbablePrime(tl(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(jo[r++%8],0):e.pqState===2?e.pqState=e.num.subtract(Te.ONE).gcd(e.e).compareTo(Te.ONE)===0?3:0:e.pqState===3&&(e.pqState=0,e.p===null?e.p=e.num:e.q=e.num,e.p!==null&&e.q!==null&&++e.state,e.num=null)}else if(e.state===1)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(e.state===2)e.p1=e.p.subtract(Te.ONE),e.q1=e.q.subtract(Te.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(Te.ONE)===0?++e.state:(e.p=null,e.q=null,e.state=0);else if(e.state===4)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(e.state===5){var f=e.e.modInverse(e.phi);e.keys={privateKey:pe.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:pe.rsa.setPublicKey(e.n,e.e)}}a=+new Date,s+=a-c,c=a}return e.keys!==null},pe.rsa.generateKeyPair=function(e,t,i,r){if(arguments.length===1?typeof e=="object"?(i=e,e=void 0):typeof e=="function"&&(r=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(r=t,t=void 0):typeof t!="number"&&(i=t,t=void 0):(i=e,r=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof i=="function"&&(r=i,i=void 0):(r=i,i=t,t=void 0)),i=i||{},e===void 0&&(e=i.bits||2048),t===void 0&&(t=i.e||65537),!he.options.usePureJavaScript&&!i.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(r){if(Ds("generateKeyPair"))return Ci.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(s,l,o){if(s)return r(s);r(null,{privateKey:pe.privateKeyFromPem(o),publicKey:pe.publicKeyFromPem(l)})});if(Ps("generateKey")&&Ps("exportKey"))return st.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:Os(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(s){return st.globalScope.crypto.subtle.exportKey("pkcs8",s.privateKey)}).then(void 0,function(s){r(s)}).then(function(s){if(s){var l=pe.privateKeyFromAsn1(z.fromDer(he.util.createBuffer(s)));r(null,{privateKey:l,publicKey:pe.setRsaPublicKey(l.n,l.e)})}});if(Ns("generateKey")&&Ns("exportKey")){var n=st.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:Os(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);n.oncomplete=function(s){var l=s.target.result,o=st.globalScope.msCrypto.subtle.exportKey("pkcs8",l.privateKey);o.oncomplete=function(f){var u=f.target.result,g=pe.privateKeyFromAsn1(z.fromDer(he.util.createBuffer(u)));r(null,{privateKey:g,publicKey:pe.setRsaPublicKey(g.n,g.e)})},o.onerror=function(f){r(f)}},n.onerror=function(s){r(s)};return}}else if(Ds("generateKeyPairSync")){var c=Ci.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:pe.privateKeyFromPem(c.privateKey),publicKey:pe.publicKeyFromPem(c.publicKey)}}}var a=pe.rsa.createKeyPairGenerationState(e,t,i);if(!r)return pe.rsa.stepKeyPairGenerationState(a,0),a.keys;el(a,i,r)},pe.setRsaPublicKey=pe.rsa.setPublicKey=function(e,t){var i={n:e,e:t};return i.encrypt=function(r,n,c){if(typeof n=="string"?n=n.toUpperCase():n===void 0&&(n="RSAES-PKCS1-V1_5"),n==="RSAES-PKCS1-V1_5")n={encode:function(s,l,o){return Rs(s,l,2).getBytes()}};else if(n==="RSA-OAEP"||n==="RSAES-OAEP")n={encode:function(s,l){return he.pkcs1.encode_rsa_oaep(l,s,c)}};else if(["RAW","NONE","NULL",null].indexOf(n)!==-1)n={encode:function(s){return s}};else if(typeof n=="string")throw new Error('Unsupported encryption scheme: "'+n+'".');var a=n.encode(r,i,!0);return pe.rsa.encrypt(a,i,!0)},i.verify=function(r,n,c,a){typeof c=="string"?c=c.toUpperCase():c===void 0&&(c="RSASSA-PKCS1-V1_5"),a===void 0&&(a={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in a||(a._parseAllDigestBytes=!0),c==="RSASSA-PKCS1-V1_5"?c={verify:function(l,o){o=Vr(o,i,!0);var f=z.fromDer(o,{parseAllBytes:a._parseAllDigestBytes}),u={},g=[];if(!z.validate(f,Zo,u,g)){var y=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw y.errors=g,y}var m=z.derToOid(u.algorithmIdentifier);if(!(m===he.oids.md2||m===he.oids.md5||m===he.oids.sha1||m===he.oids.sha224||m===he.oids.sha256||m===he.oids.sha384||m===he.oids.sha512||m===he.oids["sha512-224"]||m===he.oids["sha512-256"])){var y=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw y.oid=m,y}if((m===he.oids.md2||m===he.oids.md5)&&!("parameters"in u))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return l===u.digest}}:(c==="NONE"||c==="NULL"||c===null)&&(c={verify:function(l,o){return o=Vr(o,i,!0),l===o}});var s=pe.rsa.decrypt(n,i,!0,!1);return c.verify(r,s,i.n.bitLength())},i},pe.setRsaPrivateKey=pe.rsa.setPrivateKey=function(e,t,i,r,n,c,a,s){var l={n:e,e:t,d:i,p:r,q:n,dP:c,dQ:a,qInv:s};return l.decrypt=function(o,f,u){typeof f=="string"?f=f.toUpperCase():f===void 0&&(f="RSAES-PKCS1-V1_5");var g=pe.rsa.decrypt(o,l,!1,!1);if(f==="RSAES-PKCS1-V1_5")f={decode:Vr};else if(f==="RSA-OAEP"||f==="RSAES-OAEP")f={decode:function(y,m){return he.pkcs1.decode_rsa_oaep(m,y,u)}};else if(["RAW","NONE","NULL",null].indexOf(f)!==-1)f={decode:function(y){return y}};else throw new Error('Unsupported encryption scheme: "'+f+'".');return f.decode(g,l,!1)},l.sign=function(o,f){var u=!1;typeof f=="string"&&(f=f.toUpperCase()),f===void 0||f==="RSASSA-PKCS1-V1_5"?(f={encode:Jo},u=1):(f==="NONE"||f==="NULL"||f===null)&&(f={encode:function(){return o}},u=1);var g=f.encode(o,l.n.bitLength());return pe.rsa.encrypt(g,l,u)},l},pe.wrapRsaPrivateKey=function(e){return z.create(z.Class.UNIVERSAL,z.Type.SEQUENCE,!0,[z.create(z.Class.UNIVERSAL,z.Type.INTEGER,!1,z.integerToDer(0).getBytes()),z.create(z.Class.UNIVERSAL,z.Type.SEQUENCE,!0,[z.create(z.Class.UNIVERSAL,z.Type.OID,!1,z.oidToDer(pe.oids.rsaEncryption).getBytes()),z.create(z.Class.UNIVERSAL,z.Type.NULL,!1,"")]),z.create(z.Class.UNIVERSAL,z.Type.OCTETSTRING,!1,z.toDer(e).getBytes())])},pe.privateKeyFromAsn1=function(e){var t={},i=[];if(z.validate(e,Go,t,i)&&(e=z.fromDer(he.util.createBuffer(t.privateKey))),t={},i=[],!z.validate(e,Qo,t,i)){var r=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw r.errors=i,r}var n,c,a,s,l,o,f,u;return n=he.util.createBuffer(t.privateKeyModulus).toHex(),c=he.util.createBuffer(t.privateKeyPublicExponent).toHex(),a=he.util.createBuffer(t.privateKeyPrivateExponent).toHex(),s=he.util.createBuffer(t.privateKeyPrime1).toHex(),l=he.util.createBuffer(t.privateKeyPrime2).toHex(),o=he.util.createBuffer(t.privateKeyExponent1).toHex(),f=he.util.createBuffer(t.privateKeyExponent2).toHex(),u=he.util.createBuffer(t.privateKeyCoefficient).toHex(),pe.setRsaPrivateKey(new Te(n,16),new Te(c,16),new Te(a,16),new Te(s,16),new Te(l,16),new Te(o,16),new Te(f,16),new Te(u,16))},pe.privateKeyToAsn1=pe.privateKeyToRSAPrivateKey=function(e){return z.create(z.Class.UNIVERSAL,z.Type.SEQUENCE,!0,[z.create(z.Class.UNIVERSAL,z.Type.INTEGER,!1,z.integerToDer(0).getBytes()),z.create(z.Class.UNIVERSAL,z.Type.INTEGER,!1,yt(e.n)),z.create(z.Class.UNIVERSAL,z.Type.INTEGER,!1,yt(e.e)),z.create(z.Class.UNIVERSAL,z.Type.INTEGER,!1,yt(e.d)),z.create(z.Class.UNIVERSAL,z.Type.INTEGER,!1,yt(e.p)),z.create(z.Class.UNIVERSAL,z.Type.INTEGER,!1,yt(e.q)),z.create(z.Class.UNIVERSAL,z.Type.INTEGER,!1,yt(e.dP)),z.create(z.Class.UNIVERSAL,z.Type.INTEGER,!1,yt(e.dQ)),z.create(z.Class.UNIVERSAL,z.Type.INTEGER,!1,yt(e.qInv))])},pe.publicKeyFromAsn1=function(e){var t={},i=[];if(z.validate(e,Xo,t,i)){var r=z.derToOid(t.publicKeyOid);if(r!==pe.oids.rsaEncryption){var n=new Error("Cannot read public key. Unknown OID.");throw n.oid=r,n}e=t.rsaPublicKey}if(i=[],!z.validate(e,Yo,t,i)){var n=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw n.errors=i,n}var c=he.util.createBuffer(t.publicKeyModulus).toHex(),a=he.util.createBuffer(t.publicKeyExponent).toHex();return pe.setRsaPublicKey(new Te(c,16),new Te(a,16))},pe.publicKeyToAsn1=pe.publicKeyToSubjectPublicKeyInfo=function(e){return z.create(z.Class.UNIVERSAL,z.Type.SEQUENCE,!0,[z.create(z.Class.UNIVERSAL,z.Type.SEQUENCE,!0,[z.create(z.Class.UNIVERSAL,z.Type.OID,!1,z.oidToDer(pe.oids.rsaEncryption).getBytes()),z.create(z.Class.UNIVERSAL,z.Type.NULL,!1,"")]),z.create(z.Class.UNIVERSAL,z.Type.BITSTRING,!1,[pe.publicKeyToRSAPublicKey(e)])])},pe.publicKeyToRSAPublicKey=function(e){return z.create(z.Class.UNIVERSAL,z.Type.SEQUENCE,!0,[z.create(z.Class.UNIVERSAL,z.Type.INTEGER,!1,yt(e.n)),z.create(z.Class.UNIVERSAL,z.Type.INTEGER,!1,yt(e.e))])};function Rs(e,t,i){var r=he.util.createBuffer(),n=Math.ceil(t.n.bitLength()/8);if(e.length>n-11){var c=new Error("Message is too long for PKCS#1 v1.5 padding.");throw c.length=e.length,c.max=n-11,c}r.putByte(0),r.putByte(i);var a=n-3-e.length,s;if(i===0||i===1){s=i===0?0:255;for(var l=0;l<a;++l)r.putByte(s)}else for(;a>0;){for(var o=0,f=he.random.getBytes(a),l=0;l<a;++l)s=f.charCodeAt(l),s===0?++o:r.putByte(s);a=o}return r.putByte(0),r.putBytes(e),r}function Vr(e,t,i,r){var n=Math.ceil(t.n.bitLength()/8),c=he.util.createBuffer(e),a=c.getByte(),s=c.getByte();if(a!==0||i&&s!==0&&s!==1||!i&&s!=2||i&&s===0&&typeof r=="undefined")throw new Error("Encryption block is invalid.");var l=0;if(s===0){l=n-3-r;for(var o=0;o<l;++o)if(c.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(s===1)for(l=0;c.length()>1;){if(c.getByte()!==255){--c.read;break}++l}else if(s===2)for(l=0;c.length()>1;){if(c.getByte()===0){--c.read;break}++l}var f=c.getByte();if(f!==0||l!==n-3-c.length())throw new Error("Encryption block is invalid.");return c.getBytes()}function el(e,t,i){typeof t=="function"&&(i=t,t={}),t=t||{};var r={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(r.prng=t.prng),n();function n(){c(e.pBits,function(s,l){if(s)return i(s);if(e.p=l,e.q!==null)return a(s,e.q);c(e.qBits,a)})}function c(s,l){he.prime.generateProbablePrime(s,r,l)}function a(s,l){if(s)return i(s);if(e.q=l,e.p.compareTo(e.q)<0){var o=e.p;e.p=e.q,e.q=o}if(e.p.subtract(Te.ONE).gcd(e.e).compareTo(Te.ONE)!==0){e.p=null,n();return}if(e.q.subtract(Te.ONE).gcd(e.e).compareTo(Te.ONE)!==0){e.q=null,c(e.qBits,a);return}if(e.p1=e.p.subtract(Te.ONE),e.q1=e.q.subtract(Te.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(Te.ONE)!==0){e.p=e.q=null,n();return}if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits){e.q=null,c(e.qBits,a);return}var f=e.e.modInverse(e.phi);e.keys={privateKey:pe.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:pe.rsa.setPublicKey(e.n,e.e)},i(null,e.keys)}}function yt(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var i=he.util.hexToBytes(t);return i.length>1&&(i.charCodeAt(0)===0&&!(i.charCodeAt(1)&128)||i.charCodeAt(0)===255&&(i.charCodeAt(1)&128)===128)?i.substr(1):i}function tl(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function Ds(e){return he.util.isNodejs&&typeof Ci[e]=="function"}function Ps(e){return typeof st.globalScope!="undefined"&&typeof st.globalScope.crypto=="object"&&typeof st.globalScope.crypto.subtle=="object"&&typeof st.globalScope.crypto.subtle[e]=="function"}function Ns(e){return typeof st.globalScope!="undefined"&&typeof st.globalScope.msCrypto=="object"&&typeof st.globalScope.msCrypto.subtle=="object"&&typeof st.globalScope.msCrypto.subtle[e]=="function"}function Os(e){for(var t=he.util.hexToBytes(e.toString(16)),i=new Uint8Array(t.length),r=0;r<t.length;++r)i[r]=t.charCodeAt(r);return i}var oe=_e;if(typeof rl=="undefined")var rl=oe.jsbn.BigInteger;var Q=oe.asn1,ve=oe.pki=oe.pki||{};ve.pbe=oe.pbe=oe.pbe||{};var Vt=ve.oids,il={name:"EncryptedPrivateKeyInfo",tagClass:Q.Class.UNIVERSAL,type:Q.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:Q.Class.UNIVERSAL,type:Q.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:Q.Class.UNIVERSAL,type:Q.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:Q.Class.UNIVERSAL,type:Q.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:Q.Class.UNIVERSAL,type:Q.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},sl={name:"PBES2Algorithms",tagClass:Q.Class.UNIVERSAL,type:Q.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:Q.Class.UNIVERSAL,type:Q.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:Q.Class.UNIVERSAL,type:Q.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:Q.Class.UNIVERSAL,type:Q.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:Q.Class.UNIVERSAL,type:Q.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:Q.Class.UNIVERSAL,type:Q.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:Q.Class.UNIVERSAL,type:Q.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:Q.Class.UNIVERSAL,type:Q.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:Q.Class.UNIVERSAL,type:Q.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:Q.Class.UNIVERSAL,type:Q.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:Q.Class.UNIVERSAL,type:Q.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:Q.Class.UNIVERSAL,type:Q.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},nl={name:"pkcs-12PbeParams",tagClass:Q.Class.UNIVERSAL,type:Q.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:Q.Class.UNIVERSAL,type:Q.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:Q.Class.UNIVERSAL,type:Q.Type.INTEGER,constructed:!1,capture:"iterations"}]};ve.encryptPrivateKeyInfo=function(e,t,i){i=i||{},i.saltSize=i.saltSize||8,i.count=i.count||2048,i.algorithm=i.algorithm||"aes128",i.prfAlgorithm=i.prfAlgorithm||"sha1";var r=oe.random.getBytesSync(i.saltSize),n=i.count,c=Q.integerToDer(n),a,s,l;if(i.algorithm.indexOf("aes")===0||i.algorithm==="des"){var o,f,u;switch(i.algorithm){case"aes128":a=16,o=16,f=Vt["aes128-CBC"],u=oe.aes.createEncryptionCipher;break;case"aes192":a=24,o=16,f=Vt["aes192-CBC"],u=oe.aes.createEncryptionCipher;break;case"aes256":a=32,o=16,f=Vt["aes256-CBC"],u=oe.aes.createEncryptionCipher;break;case"des":a=8,o=8,f=Vt.desCBC,u=oe.des.createEncryptionCipher;break;default:var g=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw g.algorithm=i.algorithm,g}var y="hmacWith"+i.prfAlgorithm.toUpperCase(),m=Fs(y),_=oe.pkcs5.pbkdf2(t,r,n,a,m),h=oe.random.getBytesSync(o),d=u(_);d.start(h),d.update(Q.toDer(e)),d.finish(),l=d.output.getBytes();var p=al(r,c,a,y);s=Q.create(Q.Class.UNIVERSAL,Q.Type.SEQUENCE,!0,[Q.create(Q.Class.UNIVERSAL,Q.Type.OID,!1,Q.oidToDer(Vt.pkcs5PBES2).getBytes()),Q.create(Q.Class.UNIVERSAL,Q.Type.SEQUENCE,!0,[Q.create(Q.Class.UNIVERSAL,Q.Type.SEQUENCE,!0,[Q.create(Q.Class.UNIVERSAL,Q.Type.OID,!1,Q.oidToDer(Vt.pkcs5PBKDF2).getBytes()),p]),Q.create(Q.Class.UNIVERSAL,Q.Type.SEQUENCE,!0,[Q.create(Q.Class.UNIVERSAL,Q.Type.OID,!1,Q.oidToDer(f).getBytes()),Q.create(Q.Class.UNIVERSAL,Q.Type.OCTETSTRING,!1,h)])])])}else if(i.algorithm==="3des"){a=24;var v=new oe.util.ByteBuffer(r),_=ve.pbe.generatePkcs12Key(t,v,1,n,a),h=ve.pbe.generatePkcs12Key(t,v,2,n,a),d=oe.des.createEncryptionCipher(_);d.start(h),d.update(Q.toDer(e)),d.finish(),l=d.output.getBytes(),s=Q.create(Q.Class.UNIVERSAL,Q.Type.SEQUENCE,!0,[Q.create(Q.Class.UNIVERSAL,Q.Type.OID,!1,Q.oidToDer(Vt["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),Q.create(Q.Class.UNIVERSAL,Q.Type.SEQUENCE,!0,[Q.create(Q.Class.UNIVERSAL,Q.Type.OCTETSTRING,!1,r),Q.create(Q.Class.UNIVERSAL,Q.Type.INTEGER,!1,c.getBytes())])])}else{var g=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw g.algorithm=i.algorithm,g}var S=Q.create(Q.Class.UNIVERSAL,Q.Type.SEQUENCE,!0,[s,Q.create(Q.Class.UNIVERSAL,Q.Type.OCTETSTRING,!1,l)]);return S},ve.decryptPrivateKeyInfo=function(e,t){var i=null,r={},n=[];if(!Q.validate(e,il,r,n)){var c=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw c.errors=n,c}var a=Q.derToOid(r.encryptionOid),s=ve.pbe.getCipher(a,r.encryptionParams,t),l=oe.util.createBuffer(r.encryptedData);return s.update(l),s.finish()&&(i=Q.fromDer(s.output)),i},ve.encryptedPrivateKeyToPem=function(e,t){var i={type:"ENCRYPTED PRIVATE KEY",body:Q.toDer(e).getBytes()};return oe.pem.encode(i,{maxline:t})},ve.encryptedPrivateKeyFromPem=function(e){var t=oe.pem.decode(e)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){var i=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw i.headerType=t.type,i}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return Q.fromDer(t.body)},ve.encryptRsaPrivateKey=function(e,t,i){if(i=i||{},!i.legacy){var r=ve.wrapRsaPrivateKey(ve.privateKeyToAsn1(e));return r=ve.encryptPrivateKeyInfo(r,t,i),ve.encryptedPrivateKeyToPem(r)}var n,c,a,s;switch(i.algorithm){case"aes128":n="AES-128-CBC",a=16,c=oe.random.getBytesSync(16),s=oe.aes.createEncryptionCipher;break;case"aes192":n="AES-192-CBC",a=24,c=oe.random.getBytesSync(16),s=oe.aes.createEncryptionCipher;break;case"aes256":n="AES-256-CBC",a=32,c=oe.random.getBytesSync(16),s=oe.aes.createEncryptionCipher;break;case"3des":n="DES-EDE3-CBC",a=24,c=oe.random.getBytesSync(8),s=oe.des.createEncryptionCipher;break;case"des":n="DES-CBC",a=8,c=oe.random.getBytesSync(8),s=oe.des.createEncryptionCipher;break;default:var l=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+i.algorithm+'".');throw l.algorithm=i.algorithm,l}var o=oe.pbe.opensslDeriveBytes(t,c.substr(0,8),a),f=s(o);f.start(c),f.update(Q.toDer(ve.privateKeyToAsn1(e))),f.finish();var u={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:n,parameters:oe.util.bytesToHex(c).toUpperCase()},body:f.output.getBytes()};return oe.pem.encode(u)},ve.decryptRsaPrivateKey=function(e,t){var i=null,r=oe.pem.decode(e)[0];if(r.type!=="ENCRYPTED PRIVATE KEY"&&r.type!=="PRIVATE KEY"&&r.type!=="RSA PRIVATE KEY"){var n=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw n.headerType=n,n}if(r.procType&&r.procType.type==="ENCRYPTED"){var c,a;switch(r.dekInfo.algorithm){case"DES-CBC":c=8,a=oe.des.createDecryptionCipher;break;case"DES-EDE3-CBC":c=24,a=oe.des.createDecryptionCipher;break;case"AES-128-CBC":c=16,a=oe.aes.createDecryptionCipher;break;case"AES-192-CBC":c=24,a=oe.aes.createDecryptionCipher;break;case"AES-256-CBC":c=32,a=oe.aes.createDecryptionCipher;break;case"RC2-40-CBC":c=5,a=function(u){return oe.rc2.createDecryptionCipher(u,40)};break;case"RC2-64-CBC":c=8,a=function(u){return oe.rc2.createDecryptionCipher(u,64)};break;case"RC2-128-CBC":c=16,a=function(u){return oe.rc2.createDecryptionCipher(u,128)};break;default:var n=new Error('Could not decrypt private key; unsupported encryption algorithm "'+r.dekInfo.algorithm+'".');throw n.algorithm=r.dekInfo.algorithm,n}var s=oe.util.hexToBytes(r.dekInfo.parameters),l=oe.pbe.opensslDeriveBytes(t,s.substr(0,8),c),o=a(l);if(o.start(s),o.update(oe.util.createBuffer(r.body)),o.finish())i=o.output.getBytes();else return i}else i=r.body;return r.type==="ENCRYPTED PRIVATE KEY"?i=ve.decryptPrivateKeyInfo(Q.fromDer(i),t):i=Q.fromDer(i),i!==null&&(i=ve.privateKeyFromAsn1(i)),i},ve.pbe.generatePkcs12Key=function(e,t,i,r,n,c){var a,s;if(typeof c=="undefined"||c===null){if(!("sha1"in oe.md))throw new Error('"sha1" hash algorithm unavailable.');c=oe.md.sha1.create()}var l=c.digestLength,o=c.blockLength,f=new oe.util.ByteBuffer,u=new oe.util.ByteBuffer;if(e!=null){for(s=0;s<e.length;s++)u.putInt16(e.charCodeAt(s));u.putInt16(0)}var g=u.length(),y=t.length(),m=new oe.util.ByteBuffer;m.fillWithByte(i,o);var _=o*Math.ceil(y/o),h=new oe.util.ByteBuffer;for(s=0;s<_;s++)h.putByte(t.at(s%y));var d=o*Math.ceil(g/o),p=new oe.util.ByteBuffer;for(s=0;s<d;s++)p.putByte(u.at(s%g));var v=h;v.putBuffer(p);for(var S=Math.ceil(n/l),C=1;C<=S;C++){var b=new oe.util.ByteBuffer;b.putBytes(m.bytes()),b.putBytes(v.bytes());for(var w=0;w<r;w++)c.start(),c.update(b.getBytes()),b=c.digest();var E=new oe.util.ByteBuffer;for(s=0;s<o;s++)E.putByte(b.at(s%l));var x=Math.ceil(y/o)+Math.ceil(g/o),R=new oe.util.ByteBuffer;for(a=0;a<x;a++){var D=new oe.util.ByteBuffer(v.getBytes(o)),k=511;for(s=E.length()-1;s>=0;s--)k=k>>8,k+=E.at(s)+D.at(s),D.setAt(s,k&255);R.putBuffer(D)}v=R,f.putBuffer(b)}return f.truncate(f.length()-n),f},ve.pbe.getCipher=function(e,t,i){switch(e){case ve.oids.pkcs5PBES2:return ve.pbe.getCipherForPBES2(e,t,i);case ve.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case ve.oids["pbewithSHAAnd40BitRC2-CBC"]:return ve.pbe.getCipherForPKCS12PBE(e,t,i);default:var r=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw r.oid=e,r.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],r}},ve.pbe.getCipherForPBES2=function(e,t,i){var r={},n=[];if(!Q.validate(t,sl,r,n)){var c=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw c.errors=n,c}if(e=Q.derToOid(r.kdfOid),e!==ve.oids.pkcs5PBKDF2){var c=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw c.oid=e,c.supportedOids=["pkcs5PBKDF2"],c}if(e=Q.derToOid(r.encOid),e!==ve.oids["aes128-CBC"]&&e!==ve.oids["aes192-CBC"]&&e!==ve.oids["aes256-CBC"]&&e!==ve.oids["des-EDE3-CBC"]&&e!==ve.oids.desCBC){var c=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw c.oid=e,c.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],c}var a=r.kdfSalt,s=oe.util.createBuffer(r.kdfIterationCount);s=s.getInt(s.length()<<3);var l,o;switch(ve.oids[e]){case"aes128-CBC":l=16,o=oe.aes.createDecryptionCipher;break;case"aes192-CBC":l=24,o=oe.aes.createDecryptionCipher;break;case"aes256-CBC":l=32,o=oe.aes.createDecryptionCipher;break;case"des-EDE3-CBC":l=24,o=oe.des.createDecryptionCipher;break;case"desCBC":l=8,o=oe.des.createDecryptionCipher;break}var f=Us(r.prfOid),u=oe.pkcs5.pbkdf2(i,a,s,l,f),g=r.encIv,y=o(u);return y.start(g),y},ve.pbe.getCipherForPKCS12PBE=function(e,t,i){var r={},n=[];if(!Q.validate(t,nl,r,n)){var c=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw c.errors=n,c}var a=oe.util.createBuffer(r.salt),s=oe.util.createBuffer(r.iterations);s=s.getInt(s.length()<<3);var l,o,f;switch(e){case ve.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:l=24,o=8,f=oe.des.startDecrypting;break;case ve.oids["pbewithSHAAnd40BitRC2-CBC"]:l=5,o=8,f=function(_,h){var d=oe.rc2.createDecryptionCipher(_,40);return d.start(h,null),d};break;default:var c=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw c.oid=e,c}var u=Us(r.prfOid),g=ve.pbe.generatePkcs12Key(i,a,1,s,l,u);u.start();var y=ve.pbe.generatePkcs12Key(i,a,2,s,o,u);return f(g,y)},ve.pbe.opensslDeriveBytes=function(e,t,i,r){if(typeof r=="undefined"||r===null){if(!("md5"in oe.md))throw new Error('"md5" hash algorithm unavailable.');r=oe.md.md5.create()}t===null&&(t="");for(var n=[Ms(r,e+t)],c=16,a=1;c<i;++a,c+=16)n.push(Ms(r,n[a-1]+e+t));return n.join("").substr(0,i)};function Ms(e,t){return e.start().update(t).digest().getBytes()}function Us(e){var t;if(!e)t="hmacWithSHA1";else if(t=ve.oids[Q.derToOid(e)],!t){var i=new Error("Unsupported PRF OID.");throw i.oid=e,i.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],i}return Fs(t)}function Fs(e){var t=oe.md;switch(e){case"hmacWithSHA224":t=oe.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var i=new Error("Unsupported PRF algorithm.");throw i.algorithm=e,i.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],i}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function al(e,t,i,r){var n=Q.create(Q.Class.UNIVERSAL,Q.Type.SEQUENCE,!0,[Q.create(Q.Class.UNIVERSAL,Q.Type.OCTETSTRING,!1,e),Q.create(Q.Class.UNIVERSAL,Q.Type.INTEGER,!1,t.getBytes())]);return r!=="hmacWithSHA1"&&n.value.push(Q.create(Q.Class.UNIVERSAL,Q.Type.INTEGER,!1,oe.util.hexToBytes(i.toString(16))),Q.create(Q.Class.UNIVERSAL,Q.Type.SEQUENCE,!0,[Q.create(Q.Class.UNIVERSAL,Q.Type.OID,!1,Q.oidToDer(ve.oids[r]).getBytes()),Q.create(Q.Class.UNIVERSAL,Q.Type.NULL,!1,"")])),n}var er=_e,ae=er.asn1,tr=er.pkcs7asn1=er.pkcs7asn1||{};er.pkcs7=er.pkcs7||{},er.pkcs7.asn1=tr;var Hs={name:"ContentInfo",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.ContentType",tagClass:ae.Class.UNIVERSAL,type:ae.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:ae.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,captureAsn1:"content"}]};tr.contentInfoValidator=Hs;var Vs={name:"EncryptedContentInfo",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentType",tagClass:ae.Class.UNIVERSAL,type:ae.Type.OID,constructed:!1,capture:"contentType"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentEncryptionAlgorithm.algorithm",tagClass:ae.Class.UNIVERSAL,type:ae.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm.parameter",tagClass:ae.Class.UNIVERSAL,captureAsn1:"encParameter"}]},{name:"EncryptedContentInfo.encryptedContent",tagClass:ae.Class.CONTEXT_SPECIFIC,type:0,capture:"encryptedContent",captureAsn1:"encryptedContentAsn1"}]};tr.envelopedDataValidator={name:"EnvelopedData",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,value:[{name:"EnvelopedData.Version",tagClass:ae.Class.UNIVERSAL,type:ae.Type.INTEGER,constructed:!1,capture:"version"},{name:"EnvelopedData.RecipientInfos",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SET,constructed:!0,captureAsn1:"recipientInfos"}].concat(Vs)},tr.encryptedDataValidator={name:"EncryptedData",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedData.Version",tagClass:ae.Class.UNIVERSAL,type:ae.Type.INTEGER,constructed:!1,capture:"version"}].concat(Vs)};var ol={name:"SignerInfo",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.version",tagClass:ae.Class.UNIVERSAL,type:ae.Type.INTEGER,constructed:!1},{name:"SignerInfo.issuerAndSerialNumber",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.issuerAndSerialNumber.issuer",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"SignerInfo.issuerAndSerialNumber.serialNumber",tagClass:ae.Class.UNIVERSAL,type:ae.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"SignerInfo.digestAlgorithm",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.digestAlgorithm.algorithm",tagClass:ae.Class.UNIVERSAL,type:ae.Type.OID,constructed:!1,capture:"digestAlgorithm"},{name:"SignerInfo.digestAlgorithm.parameter",tagClass:ae.Class.UNIVERSAL,constructed:!1,captureAsn1:"digestParameter",optional:!0}]},{name:"SignerInfo.authenticatedAttributes",tagClass:ae.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"authenticatedAttributes"},{name:"SignerInfo.digestEncryptionAlgorithm",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,capture:"signatureAlgorithm"},{name:"SignerInfo.encryptedDigest",tagClass:ae.Class.UNIVERSAL,type:ae.Type.OCTETSTRING,constructed:!1,capture:"signature"},{name:"SignerInfo.unauthenticatedAttributes",tagClass:ae.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,capture:"unauthenticatedAttributes"}]};tr.signedDataValidator={name:"SignedData",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,value:[{name:"SignedData.Version",tagClass:ae.Class.UNIVERSAL,type:ae.Type.INTEGER,constructed:!1,capture:"version"},{name:"SignedData.DigestAlgorithms",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SET,constructed:!0,captureAsn1:"digestAlgorithms"},Hs,{name:"SignedData.Certificates",tagClass:ae.Class.CONTEXT_SPECIFIC,type:0,optional:!0,captureAsn1:"certificates"},{name:"SignedData.CertificateRevocationLists",tagClass:ae.Class.CONTEXT_SPECIFIC,type:1,optional:!0,captureAsn1:"crls"},{name:"SignedData.SignerInfos",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SET,capture:"signerInfos",optional:!0,value:[ol]}]},tr.recipientInfoValidator={name:"RecipientInfo",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.version",tagClass:ae.Class.UNIVERSAL,type:ae.Type.INTEGER,constructed:!1,capture:"version"},{name:"RecipientInfo.issuerAndSerial",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.issuerAndSerial.issuer",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"RecipientInfo.issuerAndSerial.serialNumber",tagClass:ae.Class.UNIVERSAL,type:ae.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"RecipientInfo.keyEncryptionAlgorithm",tagClass:ae.Class.UNIVERSAL,type:ae.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.keyEncryptionAlgorithm.algorithm",tagClass:ae.Class.UNIVERSAL,type:ae.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"RecipientInfo.keyEncryptionAlgorithm.parameter",tagClass:ae.Class.UNIVERSAL,constructed:!1,captureAsn1:"encParameter",optional:!0}]},{name:"RecipientInfo.encryptedKey",tagClass:ae.Class.UNIVERSAL,type:ae.Type.OCTETSTRING,constructed:!1,capture:"encKey"}]};var Kt=_e;Kt.mgf=Kt.mgf||{};var ll=Kt.mgf.mgf1=Kt.mgf1=Kt.mgf1||{};ll.create=function(e){var t={generate:function(i,r){for(var n=new Kt.util.ByteBuffer,c=Math.ceil(r/e.digestLength),a=0;a<c;a++){var s=new Kt.util.ByteBuffer;s.putInt32(a),e.start(),e.update(i+s.getBytes()),n.putBuffer(e.digest())}return n.truncate(n.length()-r),n.getBytes()}};return t};var Kr=_e;Kr.mgf=Kr.mgf||{},Kr.mgf.mgf1=Kr.mgf1;var Wt=_e,cl=Wt.pss=Wt.pss||{};cl.create=function(e){arguments.length===3&&(e={md:arguments[0],mgf:arguments[1],saltLength:arguments[2]});var t=e.md,i=e.mgf,r=t.digestLength,n=e.salt||null;typeof n=="string"&&(n=Wt.util.createBuffer(n));var c;if("saltLength"in e)c=e.saltLength;else if(n!==null)c=n.length();else throw new Error("Salt length not specified or specific salt not given.");if(n!==null&&n.length()!==c)throw new Error("Given salt length does not match length of given salt.");var a=e.prng||Wt.random,s={};return s.encode=function(l,o){var f,u=o-1,g=Math.ceil(u/8),y=l.digest().getBytes();if(g<r+c+2)throw new Error("Message is too long to encrypt.");var m;n===null?m=a.getBytesSync(c):m=n.bytes();var _=new Wt.util.ByteBuffer;_.fillWithByte(0,8),_.putBytes(y),_.putBytes(m),t.start(),t.update(_.getBytes());var h=t.digest().getBytes(),d=new Wt.util.ByteBuffer;d.fillWithByte(0,g-c-r-2),d.putByte(1),d.putBytes(m);var p=d.getBytes(),v=g-r-1,S=i.generate(h,v),C="";for(f=0;f<v;f++)C+=String.fromCharCode(p.charCodeAt(f)^S.charCodeAt(f));var b=65280>>8*g-u&255;return C=String.fromCharCode(C.charCodeAt(0)&~b)+C.substr(1),C+h+String.fromCharCode(188)},s.verify=function(l,o,f){var u,g=f-1,y=Math.ceil(g/8);if(o=o.substr(-y),y<r+c+2)throw new Error("Inconsistent parameters to PSS signature verification.");if(o.charCodeAt(y-1)!==188)throw new Error("Encoded message does not end in 0xBC.");var m=y-r-1,_=o.substr(0,m),h=o.substr(m,r),d=65280>>8*y-g&255;if(_.charCodeAt(0)&d)throw new Error("Bits beyond keysize not zero as expected.");var p=i.generate(h,m),v="";for(u=0;u<m;u++)v+=String.fromCharCode(_.charCodeAt(u)^p.charCodeAt(u));v=String.fromCharCode(v.charCodeAt(0)&~d)+v.substr(1);var S=y-r-c-2;for(u=0;u<S;u++)if(v.charCodeAt(u)!==0)throw new Error("Leftmost octets not zero as expected");if(v.charCodeAt(S)!==1)throw new Error("Inconsistent PSS signature, 0x01 marker not found");var C=v.substr(-c),b=new Wt.util.ByteBuffer;b.fillWithByte(0,8),b.putBytes(l),b.putBytes(C),t.start(),t.update(b.getBytes());var w=t.digest().getBytes();return h===w},s};var ue=_e,T=ue.asn1,te=ue.pki=ue.pki||{},be=te.oids,Ue={};Ue.CN=be.commonName,Ue.commonName="CN",Ue.C=be.countryName,Ue.countryName="C",Ue.L=be.localityName,Ue.localityName="L",Ue.ST=be.stateOrProvinceName,Ue.stateOrProvinceName="ST",Ue.O=be.organizationName,Ue.organizationName="O",Ue.OU=be.organizationalUnitName,Ue.organizationalUnitName="OU",Ue.E=be.emailAddress,Ue.emailAddress="E";var Ks=ue.pki.rsa.publicKeyValidator,hl={name:"Certificate",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,captureAsn1:"tbsCertificate",value:[{name:"Certificate.TBSCertificate.version",tagClass:T.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.version.integer",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"certVersion"}]},{name:"Certificate.TBSCertificate.serialNumber",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"certSerialNumber"},{name:"Certificate.TBSCertificate.signature",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate.signature.algorithm",tagClass:T.Class.UNIVERSAL,type:T.Type.OID,constructed:!1,capture:"certinfoSignatureOid"},{name:"Certificate.TBSCertificate.signature.parameters",tagClass:T.Class.UNIVERSAL,optional:!0,captureAsn1:"certinfoSignatureParams"}]},{name:"Certificate.TBSCertificate.issuer",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,captureAsn1:"certIssuer"},{name:"Certificate.TBSCertificate.validity",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate.validity.notBefore (utc)",tagClass:T.Class.UNIVERSAL,type:T.Type.UTCTIME,constructed:!1,optional:!0,capture:"certValidity1UTCTime"},{name:"Certificate.TBSCertificate.validity.notBefore (generalized)",tagClass:T.Class.UNIVERSAL,type:T.Type.GENERALIZEDTIME,constructed:!1,optional:!0,capture:"certValidity2GeneralizedTime"},{name:"Certificate.TBSCertificate.validity.notAfter (utc)",tagClass:T.Class.UNIVERSAL,type:T.Type.UTCTIME,constructed:!1,optional:!0,capture:"certValidity3UTCTime"},{name:"Certificate.TBSCertificate.validity.notAfter (generalized)",tagClass:T.Class.UNIVERSAL,type:T.Type.GENERALIZEDTIME,constructed:!1,optional:!0,capture:"certValidity4GeneralizedTime"}]},{name:"Certificate.TBSCertificate.subject",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,captureAsn1:"certSubject"},Ks,{name:"Certificate.TBSCertificate.issuerUniqueID",tagClass:T.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.issuerUniqueID.id",tagClass:T.Class.UNIVERSAL,type:T.Type.BITSTRING,constructed:!1,captureBitStringValue:"certIssuerUniqueId"}]},{name:"Certificate.TBSCertificate.subjectUniqueID",tagClass:T.Class.CONTEXT_SPECIFIC,type:2,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.subjectUniqueID.id",tagClass:T.Class.UNIVERSAL,type:T.Type.BITSTRING,constructed:!1,captureBitStringValue:"certSubjectUniqueId"}]},{name:"Certificate.TBSCertificate.extensions",tagClass:T.Class.CONTEXT_SPECIFIC,type:3,constructed:!0,captureAsn1:"certExtensions",optional:!0}]},{name:"Certificate.signatureAlgorithm",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.signatureAlgorithm.algorithm",tagClass:T.Class.UNIVERSAL,type:T.Type.OID,constructed:!1,capture:"certSignatureOid"},{name:"Certificate.TBSCertificate.signature.parameters",tagClass:T.Class.UNIVERSAL,optional:!0,captureAsn1:"certSignatureParams"}]},{name:"Certificate.signatureValue",tagClass:T.Class.UNIVERSAL,type:T.Type.BITSTRING,constructed:!1,captureBitStringValue:"certSignature"}]},ul={name:"rsapss",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"rsapss.hashAlgorithm",tagClass:T.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,value:[{name:"rsapss.hashAlgorithm.AlgorithmIdentifier",tagClass:T.Class.UNIVERSAL,type:T.Class.SEQUENCE,constructed:!0,optional:!0,value:[{name:"rsapss.hashAlgorithm.AlgorithmIdentifier.algorithm",tagClass:T.Class.UNIVERSAL,type:T.Type.OID,constructed:!1,capture:"hashOid"}]}]},{name:"rsapss.maskGenAlgorithm",tagClass:T.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier",tagClass:T.Class.UNIVERSAL,type:T.Class.SEQUENCE,constructed:!0,optional:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.algorithm",tagClass:T.Class.UNIVERSAL,type:T.Type.OID,constructed:!1,capture:"maskGenOid"},{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.params",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.params.algorithm",tagClass:T.Class.UNIVERSAL,type:T.Type.OID,constructed:!1,capture:"maskGenHashOid"}]}]}]},{name:"rsapss.saltLength",tagClass:T.Class.CONTEXT_SPECIFIC,type:2,optional:!0,value:[{name:"rsapss.saltLength.saltLength",tagClass:T.Class.UNIVERSAL,type:T.Class.INTEGER,constructed:!1,capture:"saltLength"}]},{name:"rsapss.trailerField",tagClass:T.Class.CONTEXT_SPECIFIC,type:3,optional:!0,value:[{name:"rsapss.trailer.trailer",tagClass:T.Class.UNIVERSAL,type:T.Class.INTEGER,constructed:!1,capture:"trailer"}]}]},fl={name:"CertificationRequestInfo",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,captureAsn1:"certificationRequestInfo",value:[{name:"CertificationRequestInfo.integer",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"certificationRequestInfoVersion"},{name:"CertificationRequestInfo.subject",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,captureAsn1:"certificationRequestInfoSubject"},Ks,{name:"CertificationRequestInfo.attributes",tagClass:T.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"certificationRequestInfoAttributes",value:[{name:"CertificationRequestInfo.attributes",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"CertificationRequestInfo.attributes.type",tagClass:T.Class.UNIVERSAL,type:T.Type.OID,constructed:!1},{name:"CertificationRequestInfo.attributes.value",tagClass:T.Class.UNIVERSAL,type:T.Type.SET,constructed:!0}]}]}]},dl={name:"CertificationRequest",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,captureAsn1:"csr",value:[fl,{name:"CertificationRequest.signatureAlgorithm",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"CertificationRequest.signatureAlgorithm.algorithm",tagClass:T.Class.UNIVERSAL,type:T.Type.OID,constructed:!1,capture:"csrSignatureOid"},{name:"CertificationRequest.signatureAlgorithm.parameters",tagClass:T.Class.UNIVERSAL,optional:!0,captureAsn1:"csrSignatureParams"}]},{name:"CertificationRequest.signature",tagClass:T.Class.UNIVERSAL,type:T.Type.BITSTRING,constructed:!1,captureBitStringValue:"csrSignature"}]};te.RDNAttributesAsArray=function(e,t){for(var i=[],r,n,c,a=0;a<e.value.length;++a){r=e.value[a];for(var s=0;s<r.value.length;++s)c={},n=r.value[s],c.type=T.derToOid(n.value[0].value),c.value=n.value[1].value,c.valueTagClass=n.value[1].type,c.type in be&&(c.name=be[c.type],c.name in Ue&&(c.shortName=Ue[c.name])),t&&(t.update(c.type),t.update(c.value)),i.push(c)}return i},te.CRIAttributesAsArray=function(e){for(var t=[],i=0;i<e.length;++i)for(var r=e[i],n=T.derToOid(r.value[0].value),c=r.value[1].value,a=0;a<c.length;++a){var s={};if(s.type=n,s.value=c[a].value,s.valueTagClass=c[a].type,s.type in be&&(s.name=be[s.type],s.name in Ue&&(s.shortName=Ue[s.name])),s.type===be.extensionRequest){s.extensions=[];for(var l=0;l<s.value.length;++l)s.extensions.push(te.certificateExtensionFromAsn1(s.value[l]))}t.push(s)}return t};function Lt(e,t){typeof t=="string"&&(t={shortName:t});for(var i=null,r,n=0;i===null&&n<e.attributes.length;++n)r=e.attributes[n],(t.type&&t.type===r.type||t.name&&t.name===r.name||t.shortName&&t.shortName===r.shortName)&&(i=r);return i}var Wr=function(e,t,i){var r={};if(e!==be["RSASSA-PSS"])return r;i&&(r={hash:{algorithmOid:be.sha1},mgf:{algorithmOid:be.mgf1,hash:{algorithmOid:be.sha1}},saltLength:20});var n={},c=[];if(!T.validate(t,ul,n,c)){var a=new Error("Cannot read RSASSA-PSS parameter block.");throw a.errors=c,a}return n.hashOid!==void 0&&(r.hash=r.hash||{},r.hash.algorithmOid=T.derToOid(n.hashOid)),n.maskGenOid!==void 0&&(r.mgf=r.mgf||{},r.mgf.algorithmOid=T.derToOid(n.maskGenOid),r.mgf.hash=r.mgf.hash||{},r.mgf.hash.algorithmOid=T.derToOid(n.maskGenHashOid)),n.saltLength!==void 0&&(r.saltLength=n.saltLength.charCodeAt(0)),r},zr=function(e){switch(be[e.signatureOid]){case"sha1WithRSAEncryption":case"sha1WithRSASignature":return ue.md.sha1.create();case"md5WithRSAEncryption":return ue.md.md5.create();case"sha256WithRSAEncryption":return ue.md.sha256.create();case"sha384WithRSAEncryption":return ue.md.sha384.create();case"sha512WithRSAEncryption":return ue.md.sha512.create();case"RSASSA-PSS":return ue.md.sha256.create();default:var t=new Error("Could not compute "+e.type+" digest. Unknown signature OID.");throw t.signatureOid=e.signatureOid,t}},Ws=function(e){var t=e.certificate,i;switch(t.signatureOid){case be.sha1WithRSAEncryption:case be.sha1WithRSASignature:break;case be["RSASSA-PSS"]:var r,n;if(r=be[t.signatureParameters.mgf.hash.algorithmOid],r===void 0||ue.md[r]===void 0){var c=new Error("Unsupported MGF hash function.");throw c.oid=t.signatureParameters.mgf.hash.algorithmOid,c.name=r,c}if(n=be[t.signatureParameters.mgf.algorithmOid],n===void 0||ue.mgf[n]===void 0){var c=new Error("Unsupported MGF function.");throw c.oid=t.signatureParameters.mgf.algorithmOid,c.name=n,c}if(n=ue.mgf[n].create(ue.md[r].create()),r=be[t.signatureParameters.hash.algorithmOid],r===void 0||ue.md[r]===void 0){var c=new Error("Unsupported RSASSA-PSS hash function.");throw c.oid=t.signatureParameters.hash.algorithmOid,c.name=r,c}i=ue.pss.create(ue.md[r].create(),n,t.signatureParameters.saltLength);break}return t.publicKey.verify(e.md.digest().getBytes(),e.signature,i)};te.certificateFromPem=function(e,t,i){var r=ue.pem.decode(e)[0];if(r.type!=="CERTIFICATE"&&r.type!=="X509 CERTIFICATE"&&r.type!=="TRUSTED CERTIFICATE"){var n=new Error('Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".');throw n.headerType=r.type,n}if(r.procType&&r.procType.type==="ENCRYPTED")throw new Error("Could not convert certificate from PEM; PEM is encrypted.");var c=T.fromDer(r.body,i);return te.certificateFromAsn1(c,t)},te.certificateToPem=function(e,t){var i={type:"CERTIFICATE",body:T.toDer(te.certificateToAsn1(e)).getBytes()};return ue.pem.encode(i,{maxline:t})},te.publicKeyFromPem=function(e){var t=ue.pem.decode(e)[0];if(t.type!=="PUBLIC KEY"&&t.type!=="RSA PUBLIC KEY"){var i=new Error('Could not convert public key from PEM; PEM header type is not "PUBLIC KEY" or "RSA PUBLIC KEY".');throw i.headerType=t.type,i}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert public key from PEM; PEM is encrypted.");var r=T.fromDer(t.body);return te.publicKeyFromAsn1(r)},te.publicKeyToPem=function(e,t){var i={type:"PUBLIC KEY",body:T.toDer(te.publicKeyToAsn1(e)).getBytes()};return ue.pem.encode(i,{maxline:t})},te.publicKeyToRSAPublicKeyPem=function(e,t){var i={type:"RSA PUBLIC KEY",body:T.toDer(te.publicKeyToRSAPublicKey(e)).getBytes()};return ue.pem.encode(i,{maxline:t})},te.getPublicKeyFingerprint=function(e,t){t=t||{};var i=t.md||ue.md.sha1.create(),r=t.type||"RSAPublicKey",n;switch(r){case"RSAPublicKey":n=T.toDer(te.publicKeyToRSAPublicKey(e)).getBytes();break;case"SubjectPublicKeyInfo":n=T.toDer(te.publicKeyToAsn1(e)).getBytes();break;default:throw new Error('Unknown fingerprint type "'+t.type+'".')}i.start(),i.update(n);var c=i.digest();if(t.encoding==="hex"){var a=c.toHex();return t.delimiter?a.match(/.{2}/g).join(t.delimiter):a}else{if(t.encoding==="binary")return c.getBytes();if(t.encoding)throw new Error('Unknown encoding "'+t.encoding+'".')}return c},te.certificationRequestFromPem=function(e,t,i){var r=ue.pem.decode(e)[0];if(r.type!=="CERTIFICATE REQUEST"){var n=new Error('Could not convert certification request from PEM; PEM header type is not "CERTIFICATE REQUEST".');throw n.headerType=r.type,n}if(r.procType&&r.procType.type==="ENCRYPTED")throw new Error("Could not convert certification request from PEM; PEM is encrypted.");var c=T.fromDer(r.body,i);return te.certificationRequestFromAsn1(c,t)},te.certificationRequestToPem=function(e,t){var i={type:"CERTIFICATE REQUEST",body:T.toDer(te.certificationRequestToAsn1(e)).getBytes()};return ue.pem.encode(i,{maxline:t})},te.createCertificate=function(){var e={};return e.version=2,e.serialNumber="00",e.signatureOid=null,e.signature=null,e.siginfo={},e.siginfo.algorithmOid=null,e.validity={},e.validity.notBefore=new Date,e.validity.notAfter=new Date,e.issuer={},e.issuer.getField=function(t){return Lt(e.issuer,t)},e.issuer.addField=function(t){nt([t]),e.issuer.attributes.push(t)},e.issuer.attributes=[],e.issuer.hash=null,e.subject={},e.subject.getField=function(t){return Lt(e.subject,t)},e.subject.addField=function(t){nt([t]),e.subject.attributes.push(t)},e.subject.attributes=[],e.subject.hash=null,e.extensions=[],e.publicKey=null,e.md=null,e.setSubject=function(t,i){nt(t),e.subject.attributes=t,delete e.subject.uniqueId,i&&(e.subject.uniqueId=i),e.subject.hash=null},e.setIssuer=function(t,i){nt(t),e.issuer.attributes=t,delete e.issuer.uniqueId,i&&(e.issuer.uniqueId=i),e.issuer.hash=null},e.setExtensions=function(t){for(var i=0;i<t.length;++i)zs(t[i],{cert:e});e.extensions=t},e.getExtension=function(t){typeof t=="string"&&(t={name:t});for(var i=null,r,n=0;i===null&&n<e.extensions.length;++n)r=e.extensions[n],(t.id&&r.id===t.id||t.name&&r.name===t.name)&&(i=r);return i},e.sign=function(t,i){e.md=i||ue.md.sha1.create();var r=be[e.md.algorithm+"WithRSAEncryption"];if(!r){var n=new Error("Could not compute certificate digest. Unknown message digest algorithm OID.");throw n.algorithm=e.md.algorithm,n}e.signatureOid=e.siginfo.algorithmOid=r,e.tbsCertificate=te.getTBSCertificate(e);var c=T.toDer(e.tbsCertificate);e.md.update(c.getBytes()),e.signature=t.sign(e.md)},e.verify=function(t){var i=!1;if(!e.issued(t)){var r=t.issuer,n=e.subject,c=new Error("The parent certificate did not issue the given child certificate; the child certificate's issuer does not match the parent's subject.");throw c.expectedIssuer=n.attributes,c.actualIssuer=r.attributes,c}var a=t.md;if(a===null){a=zr({signatureOid:t.signatureOid,type:"certificate"});var s=t.tbsCertificate||te.getTBSCertificate(t),l=T.toDer(s);a.update(l.getBytes())}return a!==null&&(i=Ws({certificate:e,md:a,signature:t.signature})),i},e.isIssuer=function(t){var i=!1,r=e.issuer,n=t.subject;if(r.hash&&n.hash)i=r.hash===n.hash;else if(r.attributes.length===n.attributes.length){i=!0;for(var c,a,s=0;i&&s<r.attributes.length;++s)c=r.attributes[s],a=n.attributes[s],(c.type!==a.type||c.value!==a.value)&&(i=!1)}return i},e.issued=function(t){return t.isIssuer(e)},e.generateSubjectKeyIdentifier=function(){return te.getPublicKeyFingerprint(e.publicKey,{type:"RSAPublicKey"})},e.verifySubjectKeyIdentifier=function(){for(var t=be.subjectKeyIdentifier,i=0;i<e.extensions.length;++i){var r=e.extensions[i];if(r.id===t){var n=e.generateSubjectKeyIdentifier().getBytes();return ue.util.hexToBytes(r.subjectKeyIdentifier)===n}}return!1},e},te.certificateFromAsn1=function(e,t){var i={},r=[];if(!T.validate(e,hl,i,r)){var n=new Error("Cannot read X.509 certificate. ASN.1 object is not an X509v3 Certificate.");throw n.errors=r,n}var c=T.derToOid(i.publicKeyOid);if(c!==te.oids.rsaEncryption)throw new Error("Cannot read public key. OID is not RSA.");var a=te.createCertificate();a.version=i.certVersion?i.certVersion.charCodeAt(0):0;var s=ue.util.createBuffer(i.certSerialNumber);a.serialNumber=s.toHex(),a.signatureOid=ue.asn1.derToOid(i.certSignatureOid),a.signatureParameters=Wr(a.signatureOid,i.certSignatureParams,!0),a.siginfo.algorithmOid=ue.asn1.derToOid(i.certinfoSignatureOid),a.siginfo.parameters=Wr(a.siginfo.algorithmOid,i.certinfoSignatureParams,!1),a.signature=i.certSignature;var l=[];if(i.certValidity1UTCTime!==void 0&&l.push(T.utcTimeToDate(i.certValidity1UTCTime)),i.certValidity2GeneralizedTime!==void 0&&l.push(T.generalizedTimeToDate(i.certValidity2GeneralizedTime)),i.certValidity3UTCTime!==void 0&&l.push(T.utcTimeToDate(i.certValidity3UTCTime)),i.certValidity4GeneralizedTime!==void 0&&l.push(T.generalizedTimeToDate(i.certValidity4GeneralizedTime)),l.length>2)throw new Error("Cannot read notBefore/notAfter validity times; more than two times were provided in the certificate.");if(l.length<2)throw new Error("Cannot read notBefore/notAfter validity times; they were not provided as either UTCTime or GeneralizedTime.");if(a.validity.notBefore=l[0],a.validity.notAfter=l[1],a.tbsCertificate=i.tbsCertificate,t){a.md=zr({signatureOid:a.signatureOid,type:"certificate"});var o=T.toDer(a.tbsCertificate);a.md.update(o.getBytes())}var f=ue.md.sha1.create(),u=T.toDer(i.certIssuer);f.update(u.getBytes()),a.issuer.getField=function(m){return Lt(a.issuer,m)},a.issuer.addField=function(m){nt([m]),a.issuer.attributes.push(m)},a.issuer.attributes=te.RDNAttributesAsArray(i.certIssuer),i.certIssuerUniqueId&&(a.issuer.uniqueId=i.certIssuerUniqueId),a.issuer.hash=f.digest().toHex();var g=ue.md.sha1.create(),y=T.toDer(i.certSubject);return g.update(y.getBytes()),a.subject.getField=function(m){return Lt(a.subject,m)},a.subject.addField=function(m){nt([m]),a.subject.attributes.push(m)},a.subject.attributes=te.RDNAttributesAsArray(i.certSubject),i.certSubjectUniqueId&&(a.subject.uniqueId=i.certSubjectUniqueId),a.subject.hash=g.digest().toHex(),i.certExtensions?a.extensions=te.certificateExtensionsFromAsn1(i.certExtensions):a.extensions=[],a.publicKey=te.publicKeyFromAsn1(i.subjectPublicKeyInfo),a},te.certificateExtensionsFromAsn1=function(e){for(var t=[],i=0;i<e.value.length;++i)for(var r=e.value[i],n=0;n<r.value.length;++n)t.push(te.certificateExtensionFromAsn1(r.value[n]));return t},te.certificateExtensionFromAsn1=function(e){var t={};if(t.id=T.derToOid(e.value[0].value),t.critical=!1,e.value[1].type===T.Type.BOOLEAN?(t.critical=e.value[1].value.charCodeAt(0)!==0,t.value=e.value[2].value):t.value=e.value[1].value,t.id in be){if(t.name=be[t.id],t.name==="keyUsage"){var i=T.fromDer(t.value),r=0,n=0;i.value.length>1&&(r=i.value.charCodeAt(1),n=i.value.length>2?i.value.charCodeAt(2):0),t.digitalSignature=(r&128)===128,t.nonRepudiation=(r&64)===64,t.keyEncipherment=(r&32)===32,t.dataEncipherment=(r&16)===16,t.keyAgreement=(r&8)===8,t.keyCertSign=(r&4)===4,t.cRLSign=(r&2)===2,t.encipherOnly=(r&1)===1,t.decipherOnly=(n&128)===128}else if(t.name==="basicConstraints"){var i=T.fromDer(t.value);i.value.length>0&&i.value[0].type===T.Type.BOOLEAN?t.cA=i.value[0].value.charCodeAt(0)!==0:t.cA=!1;var c=null;i.value.length>0&&i.value[0].type===T.Type.INTEGER?c=i.value[0].value:i.value.length>1&&(c=i.value[1].value),c!==null&&(t.pathLenConstraint=T.derToInteger(c))}else if(t.name==="extKeyUsage")for(var i=T.fromDer(t.value),a=0;a<i.value.length;++a){var s=T.derToOid(i.value[a].value);s in be?t[be[s]]=!0:t[s]=!0}else if(t.name==="nsCertType"){var i=T.fromDer(t.value),r=0;i.value.length>1&&(r=i.value.charCodeAt(1)),t.client=(r&128)===128,t.server=(r&64)===64,t.email=(r&32)===32,t.objsign=(r&16)===16,t.reserved=(r&8)===8,t.sslCA=(r&4)===4,t.emailCA=(r&2)===2,t.objCA=(r&1)===1}else if(t.name==="subjectAltName"||t.name==="issuerAltName"){t.altNames=[];for(var l,i=T.fromDer(t.value),o=0;o<i.value.length;++o){l=i.value[o];var f={type:l.type,value:l.value};switch(t.altNames.push(f),l.type){case 1:case 2:case 6:break;case 7:f.ip=ue.util.bytesToIP(l.value);break;case 8:f.oid=T.derToOid(l.value);break}}}else if(t.name==="subjectKeyIdentifier"){var i=T.fromDer(t.value);t.subjectKeyIdentifier=ue.util.bytesToHex(i.value)}}return t},te.certificationRequestFromAsn1=function(e,t){var i={},r=[];if(!T.validate(e,dl,i,r)){var n=new Error("Cannot read PKCS#10 certificate request. ASN.1 object is not a PKCS#10 CertificationRequest.");throw n.errors=r,n}var c=T.derToOid(i.publicKeyOid);if(c!==te.oids.rsaEncryption)throw new Error("Cannot read public key. OID is not RSA.");var a=te.createCertificationRequest();if(a.version=i.csrVersion?i.csrVersion.charCodeAt(0):0,a.signatureOid=ue.asn1.derToOid(i.csrSignatureOid),a.signatureParameters=Wr(a.signatureOid,i.csrSignatureParams,!0),a.siginfo.algorithmOid=ue.asn1.derToOid(i.csrSignatureOid),a.siginfo.parameters=Wr(a.siginfo.algorithmOid,i.csrSignatureParams,!1),a.signature=i.csrSignature,a.certificationRequestInfo=i.certificationRequestInfo,t){a.md=zr({signatureOid:a.signatureOid,type:"certification request"});var s=T.toDer(a.certificationRequestInfo);a.md.update(s.getBytes())}var l=ue.md.sha1.create();return a.subject.getField=function(o){return Lt(a.subject,o)},a.subject.addField=function(o){nt([o]),a.subject.attributes.push(o)},a.subject.attributes=te.RDNAttributesAsArray(i.certificationRequestInfoSubject,l),a.subject.hash=l.digest().toHex(),a.publicKey=te.publicKeyFromAsn1(i.subjectPublicKeyInfo),a.getAttribute=function(o){return Lt(a,o)},a.addAttribute=function(o){nt([o]),a.attributes.push(o)},a.attributes=te.CRIAttributesAsArray(i.certificationRequestInfoAttributes||[]),a},te.createCertificationRequest=function(){var e={};return e.version=0,e.signatureOid=null,e.signature=null,e.siginfo={},e.siginfo.algorithmOid=null,e.subject={},e.subject.getField=function(t){return Lt(e.subject,t)},e.subject.addField=function(t){nt([t]),e.subject.attributes.push(t)},e.subject.attributes=[],e.subject.hash=null,e.publicKey=null,e.attributes=[],e.getAttribute=function(t){return Lt(e,t)},e.addAttribute=function(t){nt([t]),e.attributes.push(t)},e.md=null,e.setSubject=function(t){nt(t),e.subject.attributes=t,e.subject.hash=null},e.setAttributes=function(t){nt(t),e.attributes=t},e.sign=function(t,i){e.md=i||ue.md.sha1.create();var r=be[e.md.algorithm+"WithRSAEncryption"];if(!r){var n=new Error("Could not compute certification request digest. Unknown message digest algorithm OID.");throw n.algorithm=e.md.algorithm,n}e.signatureOid=e.siginfo.algorithmOid=r,e.certificationRequestInfo=te.getCertificationRequestInfo(e);var c=T.toDer(e.certificationRequestInfo);e.md.update(c.getBytes()),e.signature=t.sign(e.md)},e.verify=function(){var t=!1,i=e.md;if(i===null){i=zr({signatureOid:e.signatureOid,type:"certification request"});var r=e.certificationRequestInfo||te.getCertificationRequestInfo(e),n=T.toDer(r);i.update(n.getBytes())}return i!==null&&(t=Ws({certificate:e,md:i,signature:e.signature})),t},e};function rr(e){for(var t=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[]),i,r,n=e.attributes,c=0;c<n.length;++c){i=n[c];var a=i.value,s=T.Type.PRINTABLESTRING;"valueTagClass"in i&&(s=i.valueTagClass,s===T.Type.UTF8&&(a=ue.util.encodeUtf8(a))),r=T.create(T.Class.UNIVERSAL,T.Type.SET,!0,[T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(i.type).getBytes()),T.create(T.Class.UNIVERSAL,s,!1,a)])]),t.value.push(r)}return t}function nt(e){for(var t,i=0;i<e.length;++i){if(t=e[i],typeof t.name=="undefined"&&(t.type&&t.type in te.oids?t.name=te.oids[t.type]:t.shortName&&t.shortName in Ue&&(t.name=te.oids[Ue[t.shortName]])),typeof t.type=="undefined")if(t.name&&t.name in te.oids)t.type=te.oids[t.name];else{var r=new Error("Attribute type not specified.");throw r.attribute=t,r}if(typeof t.shortName=="undefined"&&t.name&&t.name in Ue&&(t.shortName=Ue[t.name]),t.type===be.extensionRequest&&(t.valueConstructed=!0,t.valueTagClass=T.Type.SEQUENCE,!t.value&&t.extensions)){t.value=[];for(var n=0;n<t.extensions.length;++n)t.value.push(te.certificateExtensionToAsn1(zs(t.extensions[n])))}if(typeof t.value=="undefined"){var r=new Error("Attribute value not specified.");throw r.attribute=t,r}}}function zs(e,t){if(t=t||{},typeof e.name=="undefined"&&e.id&&e.id in te.oids&&(e.name=te.oids[e.id]),typeof e.id=="undefined")if(e.name&&e.name in te.oids)e.id=te.oids[e.name];else{var i=new Error("Extension ID not specified.");throw i.extension=e,i}if(typeof e.value!="undefined")return e;if(e.name==="keyUsage"){var r=0,n=0,c=0;e.digitalSignature&&(n|=128,r=7),e.nonRepudiation&&(n|=64,r=6),e.keyEncipherment&&(n|=32,r=5),e.dataEncipherment&&(n|=16,r=4),e.keyAgreement&&(n|=8,r=3),e.keyCertSign&&(n|=4,r=2),e.cRLSign&&(n|=2,r=1),e.encipherOnly&&(n|=1,r=0),e.decipherOnly&&(c|=128,r=7);var a=String.fromCharCode(r);c!==0?a+=String.fromCharCode(n)+String.fromCharCode(c):n!==0&&(a+=String.fromCharCode(n)),e.value=T.create(T.Class.UNIVERSAL,T.Type.BITSTRING,!1,a)}else if(e.name==="basicConstraints")e.value=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[]),e.cA&&e.value.value.push(T.create(T.Class.UNIVERSAL,T.Type.BOOLEAN,!1,String.fromCharCode(255))),"pathLenConstraint"in e&&e.value.value.push(T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,T.integerToDer(e.pathLenConstraint).getBytes()));else if(e.name==="extKeyUsage"){e.value=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[]);var s=e.value.value;for(var l in e)e[l]===!0&&(l in be?s.push(T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(be[l]).getBytes())):l.indexOf(".")!==-1&&s.push(T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(l).getBytes())))}else if(e.name==="nsCertType"){var r=0,n=0;e.client&&(n|=128,r=7),e.server&&(n|=64,r=6),e.email&&(n|=32,r=5),e.objsign&&(n|=16,r=4),e.reserved&&(n|=8,r=3),e.sslCA&&(n|=4,r=2),e.emailCA&&(n|=2,r=1),e.objCA&&(n|=1,r=0);var a=String.fromCharCode(r);n!==0&&(a+=String.fromCharCode(n)),e.value=T.create(T.Class.UNIVERSAL,T.Type.BITSTRING,!1,a)}else if(e.name==="subjectAltName"||e.name==="issuerAltName"){e.value=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[]);for(var o,f=0;f<e.altNames.length;++f){o=e.altNames[f];var a=o.value;if(o.type===7&&o.ip){if(a=ue.util.bytesFromIP(o.ip),a===null){var i=new Error('Extension "ip" value is not a valid IPv4 or IPv6 address.');throw i.extension=e,i}}else o.type===8&&(o.oid?a=T.oidToDer(T.oidToDer(o.oid)):a=T.oidToDer(a));e.value.value.push(T.create(T.Class.CONTEXT_SPECIFIC,o.type,!1,a))}}else if(e.name==="nsComment"&&t.cert){if(!/^[\x00-\x7F]*$/.test(e.comment)||e.comment.length<1||e.comment.length>128)throw new Error('Invalid "nsComment" content.');e.value=T.create(T.Class.UNIVERSAL,T.Type.IA5STRING,!1,e.comment)}else if(e.name==="subjectKeyIdentifier"&&t.cert){var u=t.cert.generateSubjectKeyIdentifier();e.subjectKeyIdentifier=u.toHex(),e.value=T.create(T.Class.UNIVERSAL,T.Type.OCTETSTRING,!1,u.getBytes())}else if(e.name==="authorityKeyIdentifier"&&t.cert){e.value=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[]);var s=e.value.value;if(e.keyIdentifier){var g=e.keyIdentifier===!0?t.cert.generateSubjectKeyIdentifier().getBytes():e.keyIdentifier;s.push(T.create(T.Class.CONTEXT_SPECIFIC,0,!1,g))}if(e.authorityCertIssuer){var y=[T.create(T.Class.CONTEXT_SPECIFIC,4,!0,[rr(e.authorityCertIssuer===!0?t.cert.issuer:e.authorityCertIssuer)])];s.push(T.create(T.Class.CONTEXT_SPECIFIC,1,!0,y))}if(e.serialNumber){var m=ue.util.hexToBytes(e.serialNumber===!0?t.cert.serialNumber:e.serialNumber);s.push(T.create(T.Class.CONTEXT_SPECIFIC,2,!1,m))}}else if(e.name==="cRLDistributionPoints"){e.value=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[]);for(var s=e.value.value,_=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[]),h=T.create(T.Class.CONTEXT_SPECIFIC,0,!0,[]),o,f=0;f<e.altNames.length;++f){o=e.altNames[f];var a=o.value;if(o.type===7&&o.ip){if(a=ue.util.bytesFromIP(o.ip),a===null){var i=new Error('Extension "ip" value is not a valid IPv4 or IPv6 address.');throw i.extension=e,i}}else o.type===8&&(o.oid?a=T.oidToDer(T.oidToDer(o.oid)):a=T.oidToDer(a));h.value.push(T.create(T.Class.CONTEXT_SPECIFIC,o.type,!1,a))}_.value.push(T.create(T.Class.CONTEXT_SPECIFIC,0,!0,[h])),s.push(_)}if(typeof e.value=="undefined"){var i=new Error("Extension value not specified.");throw i.extension=e,i}return e}function Ei(e,t){switch(e){case be["RSASSA-PSS"]:var i=[];return t.hash.algorithmOid!==void 0&&i.push(T.create(T.Class.CONTEXT_SPECIFIC,0,!0,[T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(t.hash.algorithmOid).getBytes()),T.create(T.Class.UNIVERSAL,T.Type.NULL,!1,"")])])),t.mgf.algorithmOid!==void 0&&i.push(T.create(T.Class.CONTEXT_SPECIFIC,1,!0,[T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(t.mgf.algorithmOid).getBytes()),T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(t.mgf.hash.algorithmOid).getBytes()),T.create(T.Class.UNIVERSAL,T.Type.NULL,!1,"")])])])),t.saltLength!==void 0&&i.push(T.create(T.Class.CONTEXT_SPECIFIC,2,!0,[T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,T.integerToDer(t.saltLength).getBytes())])),T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,i);default:return T.create(T.Class.UNIVERSAL,T.Type.NULL,!1,"")}}function pl(e){var t=T.create(T.Class.CONTEXT_SPECIFIC,0,!0,[]);if(e.attributes.length===0)return t;for(var i=e.attributes,r=0;r<i.length;++r){var n=i[r],c=n.value,a=T.Type.UTF8;"valueTagClass"in n&&(a=n.valueTagClass),a===T.Type.UTF8&&(c=ue.util.encodeUtf8(c));var s=!1;"valueConstructed"in n&&(s=n.valueConstructed);var l=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(n.type).getBytes()),T.create(T.Class.UNIVERSAL,T.Type.SET,!0,[T.create(T.Class.UNIVERSAL,a,s,c)])]);t.value.push(l)}return t}var vl=new Date("1950-01-01T00:00:00Z"),gl=new Date("2050-01-01T00:00:00Z");function qs(e){return e>=vl&&e<gl?T.create(T.Class.UNIVERSAL,T.Type.UTCTIME,!1,T.dateToUtcTime(e)):T.create(T.Class.UNIVERSAL,T.Type.GENERALIZEDTIME,!1,T.dateToGeneralizedTime(e))}te.getTBSCertificate=function(e){var t=qs(e.validity.notBefore),i=qs(e.validity.notAfter),r=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.CONTEXT_SPECIFIC,0,!0,[T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,T.integerToDer(e.version).getBytes())]),T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,ue.util.hexToBytes(e.serialNumber)),T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(e.siginfo.algorithmOid).getBytes()),Ei(e.siginfo.algorithmOid,e.siginfo.parameters)]),rr(e.issuer),T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[t,i]),rr(e.subject),te.publicKeyToAsn1(e.publicKey)]);return e.issuer.uniqueId&&r.value.push(T.create(T.Class.CONTEXT_SPECIFIC,1,!0,[T.create(T.Class.UNIVERSAL,T.Type.BITSTRING,!1,String.fromCharCode(0)+e.issuer.uniqueId)])),e.subject.uniqueId&&r.value.push(T.create(T.Class.CONTEXT_SPECIFIC,2,!0,[T.create(T.Class.UNIVERSAL,T.Type.BITSTRING,!1,String.fromCharCode(0)+e.subject.uniqueId)])),e.extensions.length>0&&r.value.push(te.certificateExtensionsToAsn1(e.extensions)),r},te.getCertificationRequestInfo=function(e){var t=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,T.integerToDer(e.version).getBytes()),rr(e.subject),te.publicKeyToAsn1(e.publicKey),pl(e)]);return t},te.distinguishedNameToAsn1=function(e){return rr(e)},te.certificateToAsn1=function(e){var t=e.tbsCertificate||te.getTBSCertificate(e);return T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[t,T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(e.signatureOid).getBytes()),Ei(e.signatureOid,e.signatureParameters)]),T.create(T.Class.UNIVERSAL,T.Type.BITSTRING,!1,String.fromCharCode(0)+e.signature)])},te.certificateExtensionsToAsn1=function(e){var t=T.create(T.Class.CONTEXT_SPECIFIC,3,!0,[]),i=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[]);t.value.push(i);for(var r=0;r<e.length;++r)i.value.push(te.certificateExtensionToAsn1(e[r]));return t},te.certificateExtensionToAsn1=function(e){var t=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[]);t.value.push(T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(e.id).getBytes())),e.critical&&t.value.push(T.create(T.Class.UNIVERSAL,T.Type.BOOLEAN,!1,String.fromCharCode(255)));var i=e.value;return typeof e.value!="string"&&(i=T.toDer(i).getBytes()),t.value.push(T.create(T.Class.UNIVERSAL,T.Type.OCTETSTRING,!1,i)),t},te.certificationRequestToAsn1=function(e){var t=e.certificationRequestInfo||te.getCertificationRequestInfo(e);return T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[t,T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(e.signatureOid).getBytes()),Ei(e.signatureOid,e.signatureParameters)]),T.create(T.Class.UNIVERSAL,T.Type.BITSTRING,!1,String.fromCharCode(0)+e.signature)])},te.createCaStore=function(e){var t={certs:{}};t.getIssuer=function(a){var s=i(a.issuer);return s},t.addCertificate=function(a){if(typeof a=="string"&&(a=ue.pki.certificateFromPem(a)),r(a.subject),!t.hasCertificate(a))if(a.subject.hash in t.certs){var s=t.certs[a.subject.hash];ue.util.isArray(s)||(s=[s]),s.push(a),t.certs[a.subject.hash]=s}else t.certs[a.subject.hash]=a},t.hasCertificate=function(a){typeof a=="string"&&(a=ue.pki.certificateFromPem(a));var s=i(a.subject);if(!s)return!1;ue.util.isArray(s)||(s=[s]);for(var l=T.toDer(te.certificateToAsn1(a)).getBytes(),o=0;o<s.length;++o){var f=T.toDer(te.certificateToAsn1(s[o])).getBytes();if(l===f)return!0}return!1},t.listAllCertificates=function(){var a=[];for(var s in t.certs)if(t.certs.hasOwnProperty(s)){var l=t.certs[s];if(!ue.util.isArray(l))a.push(l);else for(var o=0;o<l.length;++o)a.push(l[o])}return a},t.removeCertificate=function(a){var s;if(typeof a=="string"&&(a=ue.pki.certificateFromPem(a)),r(a.subject),!t.hasCertificate(a))return null;var l=i(a.subject);if(!ue.util.isArray(l))return s=t.certs[a.subject.hash],delete t.certs[a.subject.hash],s;for(var o=T.toDer(te.certificateToAsn1(a)).getBytes(),f=0;f<l.length;++f){var u=T.toDer(te.certificateToAsn1(l[f])).getBytes();o===u&&(s=l[f],l.splice(f,1))}return l.length===0&&delete t.certs[a.subject.hash],s};function i(a){return r(a),t.certs[a.hash]||null}function r(a){if(!a.hash){var s=ue.md.sha1.create();a.attributes=te.RDNAttributesAsArray(rr(a),s),a.hash=s.digest().toHex()}}if(e)for(var n=0;n<e.length;++n){var c=e[n];t.addCertificate(c)}return t},te.certificateError={bad_certificate:"forge.pki.BadCertificate",unsupported_certificate:"forge.pki.UnsupportedCertificate",certificate_revoked:"forge.pki.CertificateRevoked",certificate_expired:"forge.pki.CertificateExpired",certificate_unknown:"forge.pki.CertificateUnknown",unknown_ca:"forge.pki.UnknownCertificateAuthority"},te.verifyCertificateChain=function(e,t,i){typeof i=="function"&&(i={verify:i}),i=i||{},t=t.slice(0);var r=t.slice(0),n=i.validityCheckDate;typeof n=="undefined"&&(n=new Date);var c=!0,a=null,s=0;do{var l=t.shift(),o=null,f=!1;if(n&&(n<l.validity.notBefore||n>l.validity.notAfter)&&(a={message:"Certificate is not valid yet or has expired.",error:te.certificateError.certificate_expired,notBefore:l.validity.notBefore,notAfter:l.validity.notAfter,now:n}),a===null){if(o=t[0]||e.getIssuer(l),o===null&&l.isIssuer(l)&&(f=!0,o=l),o){var u=o;ue.util.isArray(u)||(u=[u]);for(var g=!1;!g&&u.length>0;){o=u.shift();try{g=o.verify(l)}catch(C){}}g||(a={message:"Certificate signature is invalid.",error:te.certificateError.bad_certificate})}a===null&&(!o||f)&&!e.hasCertificate(l)&&(a={message:"Certificate is not trusted.",error:te.certificateError.unknown_ca})}if(a===null&&o&&!l.isIssuer(o)&&(a={message:"Certificate issuer is invalid.",error:te.certificateError.bad_certificate}),a===null)for(var y={keyUsage:!0,basicConstraints:!0},m=0;a===null&&m<l.extensions.length;++m){var _=l.extensions[m];_.critical&&!(_.name in y)&&(a={message:"Certificate has an unsupported critical extension.",error:te.certificateError.unsupported_certificate})}if(a===null&&(!c||t.length===0&&(!o||f))){var h=l.getExtension("basicConstraints"),d=l.getExtension("keyUsage");if(d!==null&&(!d.keyCertSign||h===null)&&(a={message:"Certificate keyUsage or basicConstraints conflict or indicate that the certificate is not a CA. If the certificate is the only one in the chain or isn't the first then the certificate must be a valid CA.",error:te.certificateError.bad_certificate}),a===null&&h!==null&&!h.cA&&(a={message:"Certificate basicConstraints indicates the certificate is not a CA.",error:te.certificateError.bad_certificate}),a===null&&d!==null&&"pathLenConstraint"in h){var p=s-1;p>h.pathLenConstraint&&(a={message:"Certificate basicConstraints pathLenConstraint violated.",error:te.certificateError.bad_certificate})}}var v=a===null?!0:a.error,S=i.verify?i.verify(v,s,r):v;if(S===!0)a=null;else throw v===!0&&(a={message:"The application rejected the certificate.",error:te.certificateError.bad_certificate}),(S||S===0)&&(typeof S=="object"&&!ue.util.isArray(S)?(S.message&&(a.message=S.message),S.error&&(a.error=S.error)):typeof S=="string"&&(a.error=S)),a;c=!1,++s}while(t.length>0);return!0};var ke=_e,M=ke.asn1,me=ke.pki,vr=ke.pkcs12=ke.pkcs12||{},$s={name:"ContentInfo",tagClass:M.Class.UNIVERSAL,type:M.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.contentType",tagClass:M.Class.UNIVERSAL,type:M.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:M.Class.CONTEXT_SPECIFIC,constructed:!0,captureAsn1:"content"}]},_l={name:"PFX",tagClass:M.Class.UNIVERSAL,type:M.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.version",tagClass:M.Class.UNIVERSAL,type:M.Type.INTEGER,constructed:!1,capture:"version"},$s,{name:"PFX.macData",tagClass:M.Class.UNIVERSAL,type:M.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"mac",value:[{name:"PFX.macData.mac",tagClass:M.Class.UNIVERSAL,type:M.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.macData.mac.digestAlgorithm",tagClass:M.Class.UNIVERSAL,type:M.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.macData.mac.digestAlgorithm.algorithm",tagClass:M.Class.UNIVERSAL,type:M.Type.OID,constructed:!1,capture:"macAlgorithm"},{name:"PFX.macData.mac.digestAlgorithm.parameters",tagClass:M.Class.UNIVERSAL,captureAsn1:"macAlgorithmParameters"}]},{name:"PFX.macData.mac.digest",tagClass:M.Class.UNIVERSAL,type:M.Type.OCTETSTRING,constructed:!1,capture:"macDigest"}]},{name:"PFX.macData.macSalt",tagClass:M.Class.UNIVERSAL,type:M.Type.OCTETSTRING,constructed:!1,capture:"macSalt"},{name:"PFX.macData.iterations",tagClass:M.Class.UNIVERSAL,type:M.Type.INTEGER,constructed:!1,optional:!0,capture:"macIterations"}]}]},yl={name:"SafeBag",tagClass:M.Class.UNIVERSAL,type:M.Type.SEQUENCE,constructed:!0,value:[{name:"SafeBag.bagId",tagClass:M.Class.UNIVERSAL,type:M.Type.OID,constructed:!1,capture:"bagId"},{name:"SafeBag.bagValue",tagClass:M.Class.CONTEXT_SPECIFIC,constructed:!0,captureAsn1:"bagValue"},{name:"SafeBag.bagAttributes",tagClass:M.Class.UNIVERSAL,type:M.Type.SET,constructed:!0,optional:!0,capture:"bagAttributes"}]},ml={name:"Attribute",tagClass:M.Class.UNIVERSAL,type:M.Type.SEQUENCE,constructed:!0,value:[{name:"Attribute.attrId",tagClass:M.Class.UNIVERSAL,type:M.Type.OID,constructed:!1,capture:"oid"},{name:"Attribute.attrValues",tagClass:M.Class.UNIVERSAL,type:M.Type.SET,constructed:!0,capture:"values"}]},Sl={name:"CertBag",tagClass:M.Class.UNIVERSAL,type:M.Type.SEQUENCE,constructed:!0,value:[{name:"CertBag.certId",tagClass:M.Class.UNIVERSAL,type:M.Type.OID,constructed:!1,capture:"certId"},{name:"CertBag.certValue",tagClass:M.Class.CONTEXT_SPECIFIC,constructed:!0,value:[{name:"CertBag.certValue[0]",tagClass:M.Class.UNIVERSAL,type:M.Class.OCTETSTRING,constructed:!1,capture:"cert"}]}]};function gr(e,t,i,r){for(var n=[],c=0;c<e.length;c++)for(var a=0;a<e[c].safeBags.length;a++){var s=e[c].safeBags[a];if(!(r!==void 0&&s.type!==r)){if(t===null){n.push(s);continue}s.attributes[t]!==void 0&&s.attributes[t].indexOf(i)>=0&&n.push(s)}}return n}vr.pkcs12FromAsn1=function(e,t,i){typeof t=="string"?(i=t,t=!0):t===void 0&&(t=!0);var r={},n=[];if(!M.validate(e,_l,r,n)){var c=new Error("Cannot read PKCS#12 PFX. ASN.1 object is not an PKCS#12 PFX.");throw c.errors=c,c}var a={version:r.version.charCodeAt(0),safeContents:[],getBags:function(h){var d={},p;return"localKeyId"in h?p=h.localKeyId:"localKeyIdHex"in h&&(p=ke.util.hexToBytes(h.localKeyIdHex)),p===void 0&&!("friendlyName"in h)&&"bagType"in h&&(d[h.bagType]=gr(a.safeContents,null,null,h.bagType)),p!==void 0&&(d.localKeyId=gr(a.safeContents,"localKeyId",p,h.bagType)),"friendlyName"in h&&(d.friendlyName=gr(a.safeContents,"friendlyName",h.friendlyName,h.bagType)),d},getBagsByFriendlyName:function(h,d){return gr(a.safeContents,"friendlyName",h,d)},getBagsByLocalKeyId:function(h,d){return gr(a.safeContents,"localKeyId",h,d)}};if(r.version.charCodeAt(0)!==3){var c=new Error("PKCS#12 PFX of version other than 3 not supported.");throw c.version=r.version.charCodeAt(0),c}if(M.derToOid(r.contentType)!==me.oids.data){var c=new Error("Only PKCS#12 PFX in password integrity mode supported.");throw c.oid=M.derToOid(r.contentType),c}var s=r.content.value[0];if(s.tagClass!==M.Class.UNIVERSAL||s.type!==M.Type.OCTETSTRING)throw new Error("PKCS#12 authSafe content data is not an OCTET STRING.");if(s=bi(s),r.mac){var l=null,o=0,f=M.derToOid(r.macAlgorithm);switch(f){case me.oids.sha1:l=ke.md.sha1.create(),o=20;break;case me.oids.sha256:l=ke.md.sha256.create(),o=32;break;case me.oids.sha384:l=ke.md.sha384.create(),o=48;break;case me.oids.sha512:l=ke.md.sha512.create(),o=64;break;case me.oids.md5:l=ke.md.md5.create(),o=16;break}if(l===null)throw new Error("PKCS#12 uses unsupported MAC algorithm: "+f);var u=new ke.util.ByteBuffer(r.macSalt),g="macIterations"in r?parseInt(ke.util.bytesToHex(r.macIterations),16):1,y=vr.generateKey(i,u,3,g,o,l),m=ke.hmac.create();m.start(l,y),m.update(s.value);var _=m.getMac();if(_.getBytes()!==r.macDigest)throw new Error("PKCS#12 MAC could not be verified. Invalid password?")}return Cl(a,s.value,t,i),a};function bi(e){if(e.composed||e.constructed){for(var t=ke.util.createBuffer(),i=0;i<e.value.length;++i)t.putBytes(e.value[i].value);e.composed=e.constructed=!1,e.value=t.getBytes()}return e}function Cl(e,t,i,r){if(t=M.fromDer(t,i),t.tagClass!==M.Class.UNIVERSAL||t.type!==M.Type.SEQUENCE||t.constructed!==!0)throw new Error("PKCS#12 AuthenticatedSafe expected to be a SEQUENCE OF ContentInfo");for(var n=0;n<t.value.length;n++){var c=t.value[n],a={},s=[];if(!M.validate(c,$s,a,s)){var l=new Error("Cannot read ContentInfo.");throw l.errors=s,l}var o={encrypted:!1},f=null,u=a.content.value[0];switch(M.derToOid(a.contentType)){case me.oids.data:if(u.tagClass!==M.Class.UNIVERSAL||u.type!==M.Type.OCTETSTRING)throw new Error("PKCS#12 SafeContents Data is not an OCTET STRING.");f=bi(u).value;break;case me.oids.encryptedData:f=El(u,r),o.encrypted=!0;break;default:var l=new Error("Unsupported PKCS#12 contentType.");throw l.contentType=M.derToOid(a.contentType),l}o.safeBags=bl(f,i,r),e.safeContents.push(o)}}function El(e,t){var i={},r=[];if(!M.validate(e,ke.pkcs7.asn1.encryptedDataValidator,i,r)){var n=new Error("Cannot read EncryptedContentInfo.");throw n.errors=r,n}var c=M.derToOid(i.contentType);if(c!==me.oids.data){var n=new Error("PKCS#12 EncryptedContentInfo ContentType is not Data.");throw n.oid=c,n}c=M.derToOid(i.encAlgorithm);var a=me.pbe.getCipher(c,i.encParameter,t),s=bi(i.encryptedContentAsn1),l=ke.util.createBuffer(s.value);if(a.update(l),!a.finish())throw new Error("Failed to decrypt PKCS#12 SafeContents.");return a.output.getBytes()}function bl(e,t,i){if(!t&&e.length===0)return[];if(e=M.fromDer(e,t),e.tagClass!==M.Class.UNIVERSAL||e.type!==M.Type.SEQUENCE||e.constructed!==!0)throw new Error("PKCS#12 SafeContents expected to be a SEQUENCE OF SafeBag.");for(var r=[],n=0;n<e.value.length;n++){var c=e.value[n],a={},s=[];if(!M.validate(c,yl,a,s)){var l=new Error("Cannot read SafeBag.");throw l.errors=s,l}var o={type:M.derToOid(a.bagId),attributes:xl(a.bagAttributes)};r.push(o);var f,u,g=a.bagValue.value[0];switch(o.type){case me.oids.pkcs8ShroudedKeyBag:if(g=me.decryptPrivateKeyInfo(g,i),g===null)throw new Error("Unable to decrypt PKCS#8 ShroudedKeyBag, wrong password?");case me.oids.keyBag:try{o.key=me.privateKeyFromAsn1(g)}catch(m){o.key=null,o.asn1=g}continue;case me.oids.certBag:f=Sl,u=function(){if(M.derToOid(a.certId)!==me.oids.x509Certificate){var m=new Error("Unsupported certificate type, only X.509 supported.");throw m.oid=M.derToOid(a.certId),m}var _=M.fromDer(a.cert,t);try{o.cert=me.certificateFromAsn1(_,!0)}catch(h){o.cert=null,o.asn1=_}};break;default:var l=new Error("Unsupported PKCS#12 SafeBag type.");throw l.oid=o.type,l}if(f!==void 0&&!M.validate(g,f,a,s)){var l=new Error("Cannot read PKCS#12 "+f.name);throw l.errors=s,l}u()}return r}function xl(e){var t={};if(e!==void 0)for(var i=0;i<e.length;++i){var r={},n=[];if(!M.validate(e[i],ml,r,n)){var c=new Error("Cannot read PKCS#12 BagAttribute.");throw c.errors=n,c}var a=M.derToOid(r.oid);if(me.oids[a]!==void 0){t[me.oids[a]]=[];for(var s=0;s<r.values.length;++s)t[me.oids[a]].push(r.values[s].value)}}return t}vr.toPkcs12Asn1=function(e,t,i,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||r.encAlgorithm||"aes128","useMac"in r||(r.useMac=!0),"localKeyId"in r||(r.localKeyId=null),"generateLocalKeyId"in r||(r.generateLocalKeyId=!0);var n=r.localKeyId,c;if(n!==null)n=ke.util.hexToBytes(n);else if(r.generateLocalKeyId)if(t){var a=ke.util.isArray(t)?t[0]:t;typeof a=="string"&&(a=me.certificateFromPem(a));var s=ke.md.sha1.create();s.update(M.toDer(me.certificateToAsn1(a)).getBytes()),n=s.digest().getBytes()}else n=ke.random.getBytes(20);var l=[];n!==null&&l.push(M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.OID,!1,M.oidToDer(me.oids.localKeyId).getBytes()),M.create(M.Class.UNIVERSAL,M.Type.SET,!0,[M.create(M.Class.UNIVERSAL,M.Type.OCTETSTRING,!1,n)])])),"friendlyName"in r&&l.push(M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.OID,!1,M.oidToDer(me.oids.friendlyName).getBytes()),M.create(M.Class.UNIVERSAL,M.Type.SET,!0,[M.create(M.Class.UNIVERSAL,M.Type.BMPSTRING,!1,r.friendlyName)])])),l.length>0&&(c=M.create(M.Class.UNIVERSAL,M.Type.SET,!0,l));var o=[],f=[];t!==null&&(ke.util.isArray(t)?f=t:f=[t]);for(var u=[],g=0;g<f.length;++g){t=f[g],typeof t=="string"&&(t=me.certificateFromPem(t));var y=g===0?c:void 0,m=me.certificateToAsn1(t),_=M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.OID,!1,M.oidToDer(me.oids.certBag).getBytes()),M.create(M.Class.CONTEXT_SPECIFIC,0,!0,[M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.OID,!1,M.oidToDer(me.oids.x509Certificate).getBytes()),M.create(M.Class.CONTEXT_SPECIFIC,0,!0,[M.create(M.Class.UNIVERSAL,M.Type.OCTETSTRING,!1,M.toDer(m).getBytes())])])]),y]);u.push(_)}if(u.length>0){var h=M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,u),d=M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.OID,!1,M.oidToDer(me.oids.data).getBytes()),M.create(M.Class.CONTEXT_SPECIFIC,0,!0,[M.create(M.Class.UNIVERSAL,M.Type.OCTETSTRING,!1,M.toDer(h).getBytes())])]);o.push(d)}var p=null;if(e!==null){var v=me.wrapRsaPrivateKey(me.privateKeyToAsn1(e));i===null?p=M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.OID,!1,M.oidToDer(me.oids.keyBag).getBytes()),M.create(M.Class.CONTEXT_SPECIFIC,0,!0,[v]),c]):p=M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.OID,!1,M.oidToDer(me.oids.pkcs8ShroudedKeyBag).getBytes()),M.create(M.Class.CONTEXT_SPECIFIC,0,!0,[me.encryptPrivateKeyInfo(v,i,r)]),c]);var S=M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[p]),C=M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.OID,!1,M.oidToDer(me.oids.data).getBytes()),M.create(M.Class.CONTEXT_SPECIFIC,0,!0,[M.create(M.Class.UNIVERSAL,M.Type.OCTETSTRING,!1,M.toDer(S).getBytes())])]);o.push(C)}var b=M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,o),w;if(r.useMac){var s=ke.md.sha1.create(),E=new ke.util.ByteBuffer(ke.random.getBytes(r.saltSize)),x=r.count,e=vr.generateKey(i,E,3,x,20),R=ke.hmac.create();R.start(s,e),R.update(M.toDer(b).getBytes());var D=R.getMac();w=M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.OID,!1,M.oidToDer(me.oids.sha1).getBytes()),M.create(M.Class.UNIVERSAL,M.Type.NULL,!1,"")]),M.create(M.Class.UNIVERSAL,M.Type.OCTETSTRING,!1,D.getBytes())]),M.create(M.Class.UNIVERSAL,M.Type.OCTETSTRING,!1,E.getBytes()),M.create(M.Class.UNIVERSAL,M.Type.INTEGER,!1,M.integerToDer(x).getBytes())])}return M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.INTEGER,!1,M.integerToDer(3).getBytes()),M.create(M.Class.UNIVERSAL,M.Type.SEQUENCE,!0,[M.create(M.Class.UNIVERSAL,M.Type.OID,!1,M.oidToDer(me.oids.data).getBytes()),M.create(M.Class.CONTEXT_SPECIFIC,0,!0,[M.create(M.Class.UNIVERSAL,M.Type.OCTETSTRING,!1,M.toDer(b).getBytes())])]),w])},vr.generateKey=ke.pbe.generatePkcs12Key;var kt=_e,xi=kt.asn1,ir=kt.pki=kt.pki||{};ir.pemToDer=function(e){var t=kt.pem.decode(e)[0];if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert PEM to DER; PEM is encrypted.");return kt.util.createBuffer(t.body)},ir.privateKeyFromPem=function(e){var t=kt.pem.decode(e)[0];if(t.type!=="PRIVATE KEY"&&t.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "PRIVATE KEY" or "RSA PRIVATE KEY".');throw i.headerType=t.type,i}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert private key from PEM; PEM is encrypted.");var r=xi.fromDer(t.body);return ir.privateKeyFromAsn1(r)},ir.privateKeyToPem=function(e,t){var i={type:"RSA PRIVATE KEY",body:xi.toDer(ir.privateKeyToAsn1(e)).getBytes()};return kt.pem.encode(i,{maxline:t})},ir.privateKeyInfoToPem=function(e,t){var i={type:"PRIVATE KEY",body:xi.toDer(e).getBytes()};return kt.pem.encode(i,{maxline:t})};var Z=_e,qr=function(e,t,i,r){var n=Z.util.createBuffer(),c=e.length>>1,a=c+(e.length&1),s=e.substr(0,a),l=e.substr(c,a),o=Z.util.createBuffer(),f=Z.hmac.create();i=t+i;var u=Math.ceil(r/16),g=Math.ceil(r/20);f.start("MD5",s);var y=Z.util.createBuffer();o.putBytes(i);for(var m=0;m<u;++m)f.start(null,null),f.update(o.getBytes()),o.putBuffer(f.digest()),f.start(null,null),f.update(o.bytes()+i),y.putBuffer(f.digest());f.start("SHA1",l);var _=Z.util.createBuffer();o.clear(),o.putBytes(i);for(var m=0;m<g;++m)f.start(null,null),f.update(o.getBytes()),o.putBuffer(f.digest()),f.start(null,null),f.update(o.bytes()+i),_.putBuffer(f.digest());return n.putBytes(Z.util.xorBytes(y.getBytes(),_.getBytes(),r)),n},wl=function(e,t,i){var r=Z.hmac.create();r.start("SHA1",e);var n=Z.util.createBuffer();return n.putInt32(t[0]),n.putInt32(t[1]),n.putByte(i.type),n.putByte(i.version.major),n.putByte(i.version.minor),n.putInt16(i.length),n.putBytes(i.fragment.bytes()),r.update(n.getBytes()),r.digest().getBytes()},Tl=function(e,t,i){var r=!1;try{var n=e.deflate(t.fragment.getBytes());t.fragment=Z.util.createBuffer(n),t.length=n.length,r=!0}catch(c){}return r},Al=function(e,t,i){var r=!1;try{var n=e.inflate(t.fragment.getBytes());t.fragment=Z.util.createBuffer(n),t.length=n.length,r=!0}catch(c){}return r},tt=function(e,t){var i=0;switch(t){case 1:i=e.getByte();break;case 2:i=e.getInt16();break;case 3:i=e.getInt24();break;case 4:i=e.getInt32();break}return Z.util.createBuffer(e.getBytes(i))},at=function(e,t,i){e.putInt(i.length(),t<<3),e.putBuffer(i)},B={};B.Versions={TLS_1_0:{major:3,minor:1},TLS_1_1:{major:3,minor:2},TLS_1_2:{major:3,minor:3}},B.SupportedVersions=[B.Versions.TLS_1_1,B.Versions.TLS_1_0],B.Version=B.SupportedVersions[0],B.MaxFragment=16384-1024,B.ConnectionEnd={server:0,client:1},B.PRFAlgorithm={tls_prf_sha256:0},B.BulkCipherAlgorithm={none:null,rc4:0,des3:1,aes:2},B.CipherType={stream:0,block:1,aead:2},B.MACAlgorithm={none:null,hmac_md5:0,hmac_sha1:1,hmac_sha256:2,hmac_sha384:3,hmac_sha512:4},B.CompressionMethod={none:0,deflate:1},B.ContentType={change_cipher_spec:20,alert:21,handshake:22,application_data:23,heartbeat:24},B.HandshakeType={hello_request:0,client_hello:1,server_hello:2,certificate:11,server_key_exchange:12,certificate_request:13,server_hello_done:14,certificate_verify:15,client_key_exchange:16,finished:20},B.Alert={},B.Alert.Level={warning:1,fatal:2},B.Alert.Description={close_notify:0,unexpected_message:10,bad_record_mac:20,decryption_failed:21,record_overflow:22,decompression_failure:30,handshake_failure:40,bad_certificate:42,unsupported_certificate:43,certificate_revoked:44,certificate_expired:45,certificate_unknown:46,illegal_parameter:47,unknown_ca:48,access_denied:49,decode_error:50,decrypt_error:51,export_restriction:60,protocol_version:70,insufficient_security:71,internal_error:80,user_canceled:90,no_renegotiation:100},B.HeartbeatMessageType={heartbeat_request:1,heartbeat_response:2},B.CipherSuites={},B.getCipherSuite=function(e){var t=null;for(var i in B.CipherSuites){var r=B.CipherSuites[i];if(r.id[0]===e.charCodeAt(0)&&r.id[1]===e.charCodeAt(1)){t=r;break}}return t},B.handleUnexpected=function(e,t){var i=!e.open&&e.entity===B.ConnectionEnd.client;i||e.error(e,{message:"Unexpected message. Received TLS record out of order.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.unexpected_message}})},B.handleHelloRequest=function(e,t,i){!e.handshaking&&e.handshakes>0&&(B.queue(e,B.createAlert(e,{level:B.Alert.Level.warning,description:B.Alert.Description.no_renegotiation})),B.flush(e)),e.process()},B.parseHelloMessage=function(e,t,i){var r=null,n=e.entity===B.ConnectionEnd.client;if(i<38)e.error(e,{message:n?"Invalid ServerHello message. Message too short.":"Invalid ClientHello message. Message too short.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.illegal_parameter}});else{var c=t.fragment,a=c.length();if(r={version:{major:c.getByte(),minor:c.getByte()},random:Z.util.createBuffer(c.getBytes(32)),session_id:tt(c,1),extensions:[]},n?(r.cipher_suite=c.getBytes(2),r.compression_method=c.getByte()):(r.cipher_suites=tt(c,2),r.compression_methods=tt(c,1)),a=i-(a-c.length()),a>0){for(var s=tt(c,2);s.length()>0;)r.extensions.push({type:[s.getByte(),s.getByte()],data:tt(s,2)});if(!n)for(var l=0;l<r.extensions.length;++l){var o=r.extensions[l];if(o.type[0]===0&&o.type[1]===0)for(var f=tt(o.data,2);f.length()>0;){var u=f.getByte();if(u!==0)break;e.session.extensions.server_name.serverNameList.push(tt(f,2).getBytes())}}}if(e.session.version&&(r.version.major!==e.session.version.major||r.version.minor!==e.session.version.minor))return e.error(e,{message:"TLS version change is disallowed during renegotiation.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.protocol_version}});if(n)e.session.cipherSuite=B.getCipherSuite(r.cipher_suite);else for(var g=Z.util.createBuffer(r.cipher_suites.bytes());g.length()>0&&(e.session.cipherSuite=B.getCipherSuite(g.getBytes(2)),e.session.cipherSuite===null););if(e.session.cipherSuite===null)return e.error(e,{message:"No cipher suites in common.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.handshake_failure},cipherSuite:Z.util.bytesToHex(r.cipher_suite)});n?e.session.compressionMethod=r.compression_method:e.session.compressionMethod=B.CompressionMethod.none}return r},B.createSecurityParameters=function(e,t){var i=e.entity===B.ConnectionEnd.client,r=t.random.bytes(),n=i?e.session.sp.client_random:r,c=i?r:B.createRandom().getBytes();e.session.sp={entity:e.entity,prf_algorithm:B.PRFAlgorithm.tls_prf_sha256,bulk_cipher_algorithm:null,cipher_type:null,enc_key_length:null,block_length:null,fixed_iv_length:null,record_iv_length:null,mac_algorithm:null,mac_length:null,mac_key_length:null,compression_algorithm:e.session.compressionMethod,pre_master_secret:null,master_secret:null,client_random:n,server_random:c}},B.handleServerHello=function(e,t,i){var r=B.parseHelloMessage(e,t,i);if(!e.fail){if(r.version.minor<=e.version.minor)e.version.minor=r.version.minor;else return e.error(e,{message:"Incompatible TLS version.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.protocol_version}});e.session.version=e.version;var n=r.session_id.bytes();n.length>0&&n===e.session.id?(e.expect=Gs,e.session.resuming=!0,e.session.sp.server_random=r.random.bytes()):(e.expect=Il,e.session.resuming=!1,B.createSecurityParameters(e,r)),e.session.id=n,e.process()}},B.handleClientHello=function(e,t,i){var r=B.parseHelloMessage(e,t,i);if(!e.fail){var n=r.session_id.bytes(),c=null;if(e.sessionCache&&(c=e.sessionCache.getSession(n),c===null?n="":(c.version.major!==r.version.major||c.version.minor>r.version.minor)&&(c=null,n="")),n.length===0&&(n=Z.random.getBytes(32)),e.session.id=n,e.session.clientHelloVersion=r.version,e.session.sp={},c)e.version=e.session.version=c.version,e.session.sp=c.sp;else{for(var a,s=1;s<B.SupportedVersions.length&&(a=B.SupportedVersions[s],!(a.minor<=r.version.minor));++s);e.version={major:a.major,minor:a.minor},e.session.version=e.version}c!==null?(e.expect=Ti,e.session.resuming=!0,e.session.sp.client_random=r.random.bytes()):(e.expect=e.verifyClient!==!1?Ol:wi,e.session.resuming=!1,B.createSecurityParameters(e,r)),e.open=!0,B.queue(e,B.createRecord(e,{type:B.ContentType.handshake,data:B.createServerHello(e)})),e.session.resuming?(B.queue(e,B.createRecord(e,{type:B.ContentType.change_cipher_spec,data:B.createChangeCipherSpec()})),e.state.pending=B.createConnectionState(e),e.state.current.write=e.state.pending.write,B.queue(e,B.createRecord(e,{type:B.ContentType.handshake,data:B.createFinished(e)}))):(B.queue(e,B.createRecord(e,{type:B.ContentType.handshake,data:B.createCertificate(e)})),e.fail||(B.queue(e,B.createRecord(e,{type:B.ContentType.handshake,data:B.createServerKeyExchange(e)})),e.verifyClient!==!1&&B.queue(e,B.createRecord(e,{type:B.ContentType.handshake,data:B.createCertificateRequest(e)})),B.queue(e,B.createRecord(e,{type:B.ContentType.handshake,data:B.createServerHelloDone(e)})))),B.flush(e),e.process()}},B.handleCertificate=function(e,t,i){if(i<3)return e.error(e,{message:"Invalid Certificate message. Message too short.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.illegal_parameter}});var r=t.fragment,n={certificate_list:tt(r,3)},c,a,s=[];try{for(;n.certificate_list.length()>0;)c=tt(n.certificate_list,3),a=Z.asn1.fromDer(c),c=Z.pki.certificateFromAsn1(a,!0),s.push(c)}catch(o){return e.error(e,{message:"Could not parse certificate list.",cause:o,send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.bad_certificate}})}var l=e.entity===B.ConnectionEnd.client;(l||e.verifyClient===!0)&&s.length===0?e.error(e,{message:l?"No server certificate provided.":"No client certificate provided.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.illegal_parameter}}):s.length===0?e.expect=l?js:wi:(l?e.session.serverCertificate=s[0]:e.session.clientCertificate=s[0],B.verifyCertificateChain(e,s)&&(e.expect=l?js:wi)),e.process()},B.handleServerKeyExchange=function(e,t,i){if(i>0)return e.error(e,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.unsupported_certificate}});e.expect=Ll,e.process()},B.handleClientKeyExchange=function(e,t,i){if(i<48)return e.error(e,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.unsupported_certificate}});var r=t.fragment,n={enc_pre_master_secret:tt(r,2).getBytes()},c=null;if(e.getPrivateKey)try{c=e.getPrivateKey(e,e.session.serverCertificate),c=Z.pki.privateKeyFromPem(c)}catch(l){e.error(e,{message:"Could not get private key.",cause:l,send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.internal_error}})}if(c===null)return e.error(e,{message:"No private key set.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.internal_error}});try{var a=e.session.sp;a.pre_master_secret=c.decrypt(n.enc_pre_master_secret);var s=e.session.clientHelloVersion;if(s.major!==a.pre_master_secret.charCodeAt(0)||s.minor!==a.pre_master_secret.charCodeAt(1))throw new Error("TLS version rollback attack detected.")}catch(l){a.pre_master_secret=Z.random.getBytes(48)}e.expect=Ti,e.session.clientCertificate!==null&&(e.expect=Ml),e.process()},B.handleCertificateRequest=function(e,t,i){if(i<3)return e.error(e,{message:"Invalid CertificateRequest. Message too short.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.illegal_parameter}});var r=t.fragment,n={certificate_types:tt(r,1),certificate_authorities:tt(r,2)};e.session.certificateRequest=n,e.expect=kl,e.process()},B.handleCertificateVerify=function(e,t,i){if(i<2)return e.error(e,{message:"Invalid CertificateVerify. Message too short.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.illegal_parameter}});var r=t.fragment;r.read-=4;var n=r.bytes();r.read+=4;var c={signature:tt(r,2).getBytes()},a=Z.util.createBuffer();a.putBuffer(e.session.md5.digest()),a.putBuffer(e.session.sha1.digest()),a=a.getBytes();try{var s=e.session.clientCertificate;if(!s.publicKey.verify(a,c.signature,"NONE"))throw new Error("CertificateVerify signature does not match.");e.session.md5.update(n),e.session.sha1.update(n)}catch(l){return e.error(e,{message:"Bad signature in CertificateVerify.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.handshake_failure}})}e.expect=Ti,e.process()},B.handleServerHelloDone=function(e,t,i){if(i>0)return e.error(e,{message:"Invalid ServerHelloDone message. Invalid length.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.record_overflow}});if(e.serverCertificate===null){var r={message:"No server certificate provided. Not enough security.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.insufficient_security}},n=0,c=e.verify(e,r.alert.description,n,[]);if(c!==!0)return(c||c===0)&&(typeof c=="object"&&!Z.util.isArray(c)?(c.message&&(r.message=c.message),c.alert&&(r.alert.description=c.alert)):typeof c=="number"&&(r.alert.description=c)),e.error(e,r)}e.session.certificateRequest!==null&&(t=B.createRecord(e,{type:B.ContentType.handshake,data:B.createCertificate(e)}),B.queue(e,t)),t=B.createRecord(e,{type:B.ContentType.handshake,data:B.createClientKeyExchange(e)}),B.queue(e,t),e.expect=Pl;var a=function(s,l){s.session.certificateRequest!==null&&s.session.clientCertificate!==null&&B.queue(s,B.createRecord(s,{type:B.ContentType.handshake,data:B.createCertificateVerify(s,l)})),B.queue(s,B.createRecord(s,{type:B.ContentType.change_cipher_spec,data:B.createChangeCipherSpec()})),s.state.pending=B.createConnectionState(s),s.state.current.write=s.state.pending.write,B.queue(s,B.createRecord(s,{type:B.ContentType.handshake,data:B.createFinished(s)})),s.expect=Gs,B.flush(s),s.process()};if(e.session.certificateRequest===null||e.session.clientCertificate===null)return a(e,null);B.getClientSignature(e,a)},B.handleChangeCipherSpec=function(e,t){if(t.fragment.getByte()!==1)return e.error(e,{message:"Invalid ChangeCipherSpec message received.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.illegal_parameter}});var i=e.entity===B.ConnectionEnd.client;(e.session.resuming&&i||!e.session.resuming&&!i)&&(e.state.pending=B.createConnectionState(e)),e.state.current.read=e.state.pending.read,(!e.session.resuming&&i||e.session.resuming&&!i)&&(e.state.pending=null),e.expect=i?Rl:Ul,e.process()},B.handleFinished=function(e,t,i){var r=t.fragment;r.read-=4;var n=r.bytes();r.read+=4;var c=t.fragment.getBytes();r=Z.util.createBuffer(),r.putBuffer(e.session.md5.digest()),r.putBuffer(e.session.sha1.digest());var a=e.entity===B.ConnectionEnd.client,s=a?"server finished":"client finished",l=e.session.sp,o=12,f=qr;if(r=f(l.master_secret,s,r.getBytes(),o),r.getBytes()!==c)return e.error(e,{message:"Invalid verify_data in Finished message.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.decrypt_error}});e.session.md5.update(n),e.session.sha1.update(n),(e.session.resuming&&a||!e.session.resuming&&!a)&&(B.queue(e,B.createRecord(e,{type:B.ContentType.change_cipher_spec,data:B.createChangeCipherSpec()})),e.state.current.write=e.state.pending.write,e.state.pending=null,B.queue(e,B.createRecord(e,{type:B.ContentType.handshake,data:B.createFinished(e)}))),e.expect=a?Dl:Fl,e.handshaking=!1,++e.handshakes,e.peerCertificate=a?e.session.serverCertificate:e.session.clientCertificate,B.flush(e),e.isConnected=!0,e.connected(e),e.process()},B.handleAlert=function(e,t){var i=t.fragment,r={level:i.getByte(),description:i.getByte()},n;switch(r.description){case B.Alert.Description.close_notify:n="Connection closed.";break;case B.Alert.Description.unexpected_message:n="Unexpected message.";break;case B.Alert.Description.bad_record_mac:n="Bad record MAC.";break;case B.Alert.Description.decryption_failed:n="Decryption failed.";break;case B.Alert.Description.record_overflow:n="Record overflow.";break;case B.Alert.Description.decompression_failure:n="Decompression failed.";break;case B.Alert.Description.handshake_failure:n="Handshake failure.";break;case B.Alert.Description.bad_certificate:n="Bad certificate.";break;case B.Alert.Description.unsupported_certificate:n="Unsupported certificate.";break;case B.Alert.Description.certificate_revoked:n="Certificate revoked.";break;case B.Alert.Description.certificate_expired:n="Certificate expired.";break;case B.Alert.Description.certificate_unknown:n="Certificate unknown.";break;case B.Alert.Description.illegal_parameter:n="Illegal parameter.";break;case B.Alert.Description.unknown_ca:n="Unknown certificate authority.";break;case B.Alert.Description.access_denied:n="Access denied.";break;case B.Alert.Description.decode_error:n="Decode error.";break;case B.Alert.Description.decrypt_error:n="Decrypt error.";break;case B.Alert.Description.export_restriction:n="Export restriction.";break;case B.Alert.Description.protocol_version:n="Unsupported protocol version.";break;case B.Alert.Description.insufficient_security:n="Insufficient security.";break;case B.Alert.Description.internal_error:n="Internal error.";break;case B.Alert.Description.user_canceled:n="User canceled.";break;case B.Alert.Description.no_renegotiation:n="Renegotiation not supported.";break;default:n="Unknown error.";break}if(r.description===B.Alert.Description.close_notify)return e.close();e.error(e,{message:n,send:!1,origin:e.entity===B.ConnectionEnd.client?"server":"client",alert:r}),e.process()},B.handleHandshake=function(e,t){var i=t.fragment,r=i.getByte(),n=i.getInt24();if(n>i.length())return e.fragmented=t,t.fragment=Z.util.createBuffer(),i.read-=4,e.process();e.fragmented=null,i.read-=4;var c=i.bytes(n+4);i.read+=4,r in jr[e.entity][e.expect]?(e.entity===B.ConnectionEnd.server&&!e.open&&!e.fail&&(e.handshaking=!0,e.session={version:null,extensions:{server_name:{serverNameList:[]}},cipherSuite:null,compressionMethod:null,serverCertificate:null,clientCertificate:null,md5:Z.md.md5.create(),sha1:Z.md.sha1.create()}),r!==B.HandshakeType.hello_request&&r!==B.HandshakeType.certificate_verify&&r!==B.HandshakeType.finished&&(e.session.md5.update(c),e.session.sha1.update(c)),jr[e.entity][e.expect][r](e,t,n)):B.handleUnexpected(e,t)},B.handleApplicationData=function(e,t){e.data.putBuffer(t.fragment),e.dataReady(e),e.process()},B.handleHeartbeat=function(e,t){var i=t.fragment,r=i.getByte(),n=i.getInt16(),c=i.getBytes(n);if(r===B.HeartbeatMessageType.heartbeat_request){if(e.handshaking||n>c.length)return e.process();B.queue(e,B.createRecord(e,{type:B.ContentType.heartbeat,data:B.createHeartbeat(B.HeartbeatMessageType.heartbeat_response,c)})),B.flush(e)}else if(r===B.HeartbeatMessageType.heartbeat_response){if(c!==e.expectedHeartbeatPayload)return e.process();e.heartbeatReceived&&e.heartbeatReceived(e,Z.util.createBuffer(c))}e.process()};var Bl=0,Il=1,js=2,Ll=3,kl=4,Gs=5,Rl=6,Dl=7,Pl=8,Nl=0,Ol=1,wi=2,Ml=3,Ti=4,Ul=5,Fl=6,A=B.handleUnexpected,Qs=B.handleChangeCipherSpec,$e=B.handleAlert,Xe=B.handleHandshake,Ys=B.handleApplicationData,je=B.handleHeartbeat,Ai=[];Ai[B.ConnectionEnd.client]=[[A,$e,Xe,A,je],[A,$e,Xe,A,je],[A,$e,Xe,A,je],[A,$e,Xe,A,je],[A,$e,Xe,A,je],[Qs,$e,A,A,je],[A,$e,Xe,A,je],[A,$e,Xe,Ys,je],[A,$e,Xe,A,je]],Ai[B.ConnectionEnd.server]=[[A,$e,Xe,A,je],[A,$e,Xe,A,je],[A,$e,Xe,A,je],[A,$e,Xe,A,je],[Qs,$e,A,A,je],[A,$e,Xe,A,je],[A,$e,Xe,Ys,je],[A,$e,Xe,A,je]];var Rt=B.handleHelloRequest,Hl=B.handleServerHello,Xs=B.handleCertificate,Zs=B.handleServerKeyExchange,Bi=B.handleCertificateRequest,$r=B.handleServerHelloDone,Js=B.handleFinished,jr=[];jr[B.ConnectionEnd.client]=[[A,A,Hl,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A],[Rt,A,A,A,A,A,A,A,A,A,A,Xs,Zs,Bi,$r,A,A,A,A,A,A],[Rt,A,A,A,A,A,A,A,A,A,A,A,Zs,Bi,$r,A,A,A,A,A,A],[Rt,A,A,A,A,A,A,A,A,A,A,A,A,Bi,$r,A,A,A,A,A,A],[Rt,A,A,A,A,A,A,A,A,A,A,A,A,A,$r,A,A,A,A,A,A],[Rt,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A],[Rt,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,Js],[Rt,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A],[Rt,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A]];var Vl=B.handleClientHello,Kl=B.handleClientKeyExchange,Wl=B.handleCertificateVerify;jr[B.ConnectionEnd.server]=[[A,Vl,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A],[A,A,A,A,A,A,A,A,A,A,A,Xs,A,A,A,A,A,A,A,A,A],[A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,Kl,A,A,A,A],[A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,Wl,A,A,A,A,A],[A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A],[A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,Js],[A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A],[A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A]],B.generateKeys=function(e,t){var i=qr,r=t.client_random+t.server_random;e.session.resuming||(t.master_secret=i(t.pre_master_secret,"master secret",r,48).bytes(),t.pre_master_secret=null),r=t.server_random+t.client_random;var n=2*t.mac_key_length+2*t.enc_key_length,c=e.version.major===B.Versions.TLS_1_0.major&&e.version.minor===B.Versions.TLS_1_0.minor;c&&(n+=2*t.fixed_iv_length);var a=i(t.master_secret,"key expansion",r,n),s={client_write_MAC_key:a.getBytes(t.mac_key_length),server_write_MAC_key:a.getBytes(t.mac_key_length),client_write_key:a.getBytes(t.enc_key_length),server_write_key:a.getBytes(t.enc_key_length)};return c&&(s.client_write_IV=a.getBytes(t.fixed_iv_length),s.server_write_IV=a.getBytes(t.fixed_iv_length)),s},B.createConnectionState=function(e){var t=e.entity===B.ConnectionEnd.client,i=function(){var c={sequenceNumber:[0,0],macKey:null,macLength:0,macFunction:null,cipherState:null,cipherFunction:function(a){return!0},compressionState:null,compressFunction:function(a){return!0},updateSequenceNumber:function(){c.sequenceNumber[1]===4294967295?(c.sequenceNumber[1]=0,++c.sequenceNumber[0]):++c.sequenceNumber[1]}};return c},r={read:i(),write:i()};if(r.read.update=function(c,a){return r.read.cipherFunction(a,r.read)?r.read.compressFunction(c,a,r.read)||c.error(c,{message:"Could not decompress record.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.decompression_failure}}):c.error(c,{message:"Could not decrypt record or bad MAC.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.bad_record_mac}}),!c.fail},r.write.update=function(c,a){return r.write.compressFunction(c,a,r.write)?r.write.cipherFunction(a,r.write)||c.error(c,{message:"Could not encrypt record.",send:!1,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.internal_error}}):c.error(c,{message:"Could not compress record.",send:!1,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.internal_error}}),!c.fail},e.session){var n=e.session.sp;switch(e.session.cipherSuite.initSecurityParameters(n),n.keys=B.generateKeys(e,n),r.read.macKey=t?n.keys.server_write_MAC_key:n.keys.client_write_MAC_key,r.write.macKey=t?n.keys.client_write_MAC_key:n.keys.server_write_MAC_key,e.session.cipherSuite.initConnectionState(r,e,n),n.compression_algorithm){case B.CompressionMethod.none:break;case B.CompressionMethod.deflate:r.read.compressFunction=Al,r.write.compressFunction=Tl;break;default:throw new Error("Unsupported compression algorithm.")}}return r},B.createRandom=function(){var e=new Date,t=+e+e.getTimezoneOffset()*6e4,i=Z.util.createBuffer();return i.putInt32(t),i.putBytes(Z.random.getBytes(28)),i},B.createRecord=function(e,t){if(!t.data)return null;var i={type:t.type,version:{major:e.version.major,minor:e.version.minor},length:t.data.length(),fragment:t.data};return i},B.createAlert=function(e,t){var i=Z.util.createBuffer();return i.putByte(t.level),i.putByte(t.description),B.createRecord(e,{type:B.ContentType.alert,data:i})},B.createClientHello=function(e){e.session.clientHelloVersion={major:e.version.major,minor:e.version.minor};for(var t=Z.util.createBuffer(),i=0;i<e.cipherSuites.length;++i){var r=e.cipherSuites[i];t.putByte(r.id[0]),t.putByte(r.id[1])}var n=t.length(),c=Z.util.createBuffer();c.putByte(B.CompressionMethod.none);var a=c.length(),s=Z.util.createBuffer();if(e.virtualHost){var l=Z.util.createBuffer();l.putByte(0),l.putByte(0);var o=Z.util.createBuffer();o.putByte(0),at(o,2,Z.util.createBuffer(e.virtualHost));var f=Z.util.createBuffer();at(f,2,o),at(l,2,f),s.putBuffer(l)}var u=s.length();u>0&&(u+=2);var g=e.session.id,y=g.length+1+2+4+28+2+n+1+a+u,m=Z.util.createBuffer();return m.putByte(B.HandshakeType.client_hello),m.putInt24(y),m.putByte(e.version.major),m.putByte(e.version.minor),m.putBytes(e.session.sp.client_random),at(m,1,Z.util.createBuffer(g)),at(m,2,t),at(m,1,c),u>0&&at(m,2,s),m},B.createServerHello=function(e){var t=e.session.id,i=t.length+1+2+4+28+2+1,r=Z.util.createBuffer();return r.putByte(B.HandshakeType.server_hello),r.putInt24(i),r.putByte(e.version.major),r.putByte(e.version.minor),r.putBytes(e.session.sp.server_random),at(r,1,Z.util.createBuffer(t)),r.putByte(e.session.cipherSuite.id[0]),r.putByte(e.session.cipherSuite.id[1]),r.putByte(e.session.compressionMethod),r},B.createCertificate=function(e){var t=e.entity===B.ConnectionEnd.client,i=null;if(e.getCertificate){var r;t?r=e.session.certificateRequest:r=e.session.extensions.server_name.serverNameList,i=e.getCertificate(e,r)}var n=Z.util.createBuffer();if(i!==null)try{Z.util.isArray(i)||(i=[i]);for(var c=null,a=0;a<i.length;++a){var s=Z.pem.decode(i[a])[0];if(s.type!=="CERTIFICATE"&&s.type!=="X509 CERTIFICATE"&&s.type!=="TRUSTED CERTIFICATE"){var l=new Error('Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".');throw l.headerType=s.type,l}if(s.procType&&s.procType.type==="ENCRYPTED")throw new Error("Could not convert certificate from PEM; PEM is encrypted.");var o=Z.util.createBuffer(s.body);c===null&&(c=Z.asn1.fromDer(o.bytes(),!1));var f=Z.util.createBuffer();at(f,3,o),n.putBuffer(f)}i=Z.pki.certificateFromAsn1(c),t?e.session.clientCertificate=i:e.session.serverCertificate=i}catch(y){return e.error(e,{message:"Could not send certificate list.",cause:y,send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.bad_certificate}})}var u=3+n.length(),g=Z.util.createBuffer();return g.putByte(B.HandshakeType.certificate),g.putInt24(u),at(g,3,n),g},B.createClientKeyExchange=function(e){var t=Z.util.createBuffer();t.putByte(e.session.clientHelloVersion.major),t.putByte(e.session.clientHelloVersion.minor),t.putBytes(Z.random.getBytes(46));var i=e.session.sp;i.pre_master_secret=t.getBytes();var r=e.session.serverCertificate.publicKey;t=r.encrypt(i.pre_master_secret);var n=t.length+2,c=Z.util.createBuffer();return c.putByte(B.HandshakeType.client_key_exchange),c.putInt24(n),c.putInt16(t.length),c.putBytes(t),c},B.createServerKeyExchange=function(e){var t=Z.util.createBuffer();return t},B.getClientSignature=function(e,t){var i=Z.util.createBuffer();i.putBuffer(e.session.md5.digest()),i.putBuffer(e.session.sha1.digest()),i=i.getBytes(),e.getSignature=e.getSignature||function(r,n,c){var a=null;if(r.getPrivateKey)try{a=r.getPrivateKey(r,r.session.clientCertificate),a=Z.pki.privateKeyFromPem(a)}catch(s){r.error(r,{message:"Could not get private key.",cause:s,send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.internal_error}})}a===null?r.error(r,{message:"No private key set.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.internal_error}}):n=a.sign(n,null),c(r,n)},e.getSignature(e,i,t)},B.createCertificateVerify=function(e,t){var i=t.length+2,r=Z.util.createBuffer();return r.putByte(B.HandshakeType.certificate_verify),r.putInt24(i),r.putInt16(t.length),r.putBytes(t),r},B.createCertificateRequest=function(e){var t=Z.util.createBuffer();t.putByte(1);var i=Z.util.createBuffer();for(var r in e.caStore.certs){var n=e.caStore.certs[r],c=Z.pki.distinguishedNameToAsn1(n.subject),a=Z.asn1.toDer(c);i.putInt16(a.length()),i.putBuffer(a)}var s=1+t.length()+2+i.length(),l=Z.util.createBuffer();return l.putByte(B.HandshakeType.certificate_request),l.putInt24(s),at(l,1,t),at(l,2,i),l},B.createServerHelloDone=function(e){var t=Z.util.createBuffer();return t.putByte(B.HandshakeType.server_hello_done),t.putInt24(0),t},B.createChangeCipherSpec=function(){var e=Z.util.createBuffer();return e.putByte(1),e},B.createFinished=function(e){var t=Z.util.createBuffer();t.putBuffer(e.session.md5.digest()),t.putBuffer(e.session.sha1.digest());var i=e.entity===B.ConnectionEnd.client,r=e.session.sp,n=12,c=qr,a=i?"client finished":"server finished";t=c(r.master_secret,a,t.getBytes(),n);var s=Z.util.createBuffer();return s.putByte(B.HandshakeType.finished),s.putInt24(t.length()),s.putBuffer(t),s},B.createHeartbeat=function(e,t,i){typeof i=="undefined"&&(i=t.length);var r=Z.util.createBuffer();r.putByte(e),r.putInt16(i),r.putBytes(t);var n=r.length(),c=Math.max(16,n-i-3);return r.putBytes(Z.random.getBytes(c)),r},B.queue=function(e,t){if(t&&!(t.fragment.length()===0&&(t.type===B.ContentType.handshake||t.type===B.ContentType.alert||t.type===B.ContentType.change_cipher_spec))){if(t.type===B.ContentType.handshake){var i=t.fragment.bytes();e.session.md5.update(i),e.session.sha1.update(i),i=null}var r;if(t.fragment.length()<=B.MaxFragment)r=[t];else{r=[];for(var n=t.fragment.bytes();n.length>B.MaxFragment;)r.push(B.createRecord(e,{type:t.type,data:Z.util.createBuffer(n.slice(0,B.MaxFragment))})),n=n.slice(B.MaxFragment);n.length>0&&r.push(B.createRecord(e,{type:t.type,data:Z.util.createBuffer(n)}))}for(var c=0;c<r.length&&!e.fail;++c){var a=r[c],s=e.state.current.write;s.update(e,a)&&e.records.push(a)}}},B.flush=function(e){for(var t=0;t<e.records.length;++t){var i=e.records[t];e.tlsData.putByte(i.type),e.tlsData.putByte(i.version.major),e.tlsData.putByte(i.version.minor),e.tlsData.putInt16(i.fragment.length()),e.tlsData.putBuffer(e.records[t].fragment)}return e.records=[],e.tlsDataReady(e)};var Ii=function(e){switch(e){case!0:return!0;case Z.pki.certificateError.bad_certificate:return B.Alert.Description.bad_certificate;case Z.pki.certificateError.unsupported_certificate:return B.Alert.Description.unsupported_certificate;case Z.pki.certificateError.certificate_revoked:return B.Alert.Description.certificate_revoked;case Z.pki.certificateError.certificate_expired:return B.Alert.Description.certificate_expired;case Z.pki.certificateError.certificate_unknown:return B.Alert.Description.certificate_unknown;case Z.pki.certificateError.unknown_ca:return B.Alert.Description.unknown_ca;default:return B.Alert.Description.bad_certificate}},zl=function(e){switch(e){case!0:return!0;case B.Alert.Description.bad_certificate:return Z.pki.certificateError.bad_certificate;case B.Alert.Description.unsupported_certificate:return Z.pki.certificateError.unsupported_certificate;case B.Alert.Description.certificate_revoked:return Z.pki.certificateError.certificate_revoked;case B.Alert.Description.certificate_expired:return Z.pki.certificateError.certificate_expired;case B.Alert.Description.certificate_unknown:return Z.pki.certificateError.certificate_unknown;case B.Alert.Description.unknown_ca:return Z.pki.certificateError.unknown_ca;default:return Z.pki.certificateError.bad_certificate}};B.verifyCertificateChain=function(e,t){try{var i={};for(var r in e.verifyOptions)i[r]=e.verifyOptions[r];i.verify=function(c,a,s){var l=Ii(c),o=e.verify(e,c,a,s);if(o!==!0){if(typeof o=="object"&&!Z.util.isArray(o)){var f=new Error("The application rejected the certificate.");throw f.send=!0,f.alert={level:B.Alert.Level.fatal,description:B.Alert.Description.bad_certificate},o.message&&(f.message=o.message),o.alert&&(f.alert.description=o.alert),f}o!==c&&(o=zl(o))}return o},Z.pki.verifyCertificateChain(e.caStore,t,i)}catch(c){var n=c;(typeof n!="object"||Z.util.isArray(n))&&(n={send:!0,alert:{level:B.Alert.Level.fatal,description:Ii(c)}}),"send"in n||(n.send=!0),"alert"in n||(n.alert={level:B.Alert.Level.fatal,description:Ii(n.error)}),e.error(e,n)}return!e.fail},B.createSessionCache=function(e,t){var i=null;if(e&&e.getSession&&e.setSession&&e.order)i=e;else{i={},i.cache=e||{},i.capacity=Math.max(t||100,1),i.order=[];for(var r in e)i.order.length<=t?i.order.push(r):delete e[r];i.getSession=function(n){var c=null,a=null;if(n?a=Z.util.bytesToHex(n):i.order.length>0&&(a=i.order[0]),a!==null&&a in i.cache){c=i.cache[a],delete i.cache[a];for(var s in i.order)if(i.order[s]===a){i.order.splice(s,1);break}}return c},i.setSession=function(n,c){if(i.order.length===i.capacity){var a=i.order.shift();delete i.cache[a]}var a=Z.util.bytesToHex(n);i.order.push(a),i.cache[a]=c}}return i},B.createConnection=function(e){var t=null;e.caStore?Z.util.isArray(e.caStore)?t=Z.pki.createCaStore(e.caStore):t=e.caStore:t=Z.pki.createCaStore();var i=e.cipherSuites||null;if(i===null){i=[];for(var r in B.CipherSuites)i.push(B.CipherSuites[r])}var n=e.server?B.ConnectionEnd.server:B.ConnectionEnd.client,c=e.sessionCache?B.createSessionCache(e.sessionCache):null,a={version:{major:B.Version.major,minor:B.Version.minor},entity:n,sessionId:e.sessionId,caStore:t,sessionCache:c,cipherSuites:i,connected:e.connected,virtualHost:e.virtualHost||null,verifyClient:e.verifyClient||!1,verify:e.verify||function(f,u,g,y){return u},verifyOptions:e.verifyOptions||{},getCertificate:e.getCertificate||null,getPrivateKey:e.getPrivateKey||null,getSignature:e.getSignature||null,input:Z.util.createBuffer(),tlsData:Z.util.createBuffer(),data:Z.util.createBuffer(),tlsDataReady:e.tlsDataReady,dataReady:e.dataReady,heartbeatReceived:e.heartbeatReceived,closed:e.closed,error:function(f,u){u.origin=u.origin||(f.entity===B.ConnectionEnd.client?"client":"server"),u.send&&(B.queue(f,B.createAlert(f,u.alert)),B.flush(f));var g=u.fatal!==!1;g&&(f.fail=!0),e.error(f,u),g&&f.close(!1)},deflate:e.deflate||null,inflate:e.inflate||null};a.reset=function(f){a.version={major:B.Version.major,minor:B.Version.minor},a.record=null,a.session=null,a.peerCertificate=null,a.state={pending:null,current:null},a.expect=a.entity===B.ConnectionEnd.client?Bl:Nl,a.fragmented=null,a.records=[],a.open=!1,a.handshakes=0,a.handshaking=!1,a.isConnected=!1,a.fail=!(f||typeof f=="undefined"),a.input.clear(),a.tlsData.clear(),a.data.clear(),a.state.current=B.createConnectionState(a)},a.reset();var s=function(f,u){var g=u.type-B.ContentType.change_cipher_spec,y=Ai[f.entity][f.expect];g in y?y[g](f,u):B.handleUnexpected(f,u)},l=function(f){var u=0,g=f.input,y=g.length();if(y<5)u=5-y;else{f.record={type:g.getByte(),version:{major:g.getByte(),minor:g.getByte()},length:g.getInt16(),fragment:Z.util.createBuffer(),ready:!1};var m=f.record.version.major===f.version.major;m&&f.session&&f.session.version&&(m=f.record.version.minor===f.version.minor),m||f.error(f,{message:"Incompatible TLS version.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.protocol_version}})}return u},o=function(f){var u=0,g=f.input,y=g.length();if(y<f.record.length)u=f.record.length-y;else{f.record.fragment.putBytes(g.getBytes(f.record.length)),g.compact();var m=f.state.current.read;m.update(f,f.record)&&(f.fragmented!==null&&(f.fragmented.type===f.record.type?(f.fragmented.fragment.putBuffer(f.record.fragment),f.record=f.fragmented):f.error(f,{message:"Invalid fragmented record.",send:!0,alert:{level:B.Alert.Level.fatal,description:B.Alert.Description.unexpected_message}})),f.record.ready=!0)}return u};return a.handshake=function(f){if(a.entity!==B.ConnectionEnd.client)a.error(a,{message:"Cannot initiate handshake as a server.",fatal:!1});else if(a.handshaking)a.error(a,{message:"Handshake already in progress.",fatal:!1});else{a.fail&&!a.open&&a.handshakes===0&&(a.fail=!1),a.handshaking=!0,f=f||"";var u=null;f.length>0&&(a.sessionCache&&(u=a.sessionCache.getSession(f)),u===null&&(f="")),f.length===0&&a.sessionCache&&(u=a.sessionCache.getSession(),u!==null&&(f=u.id)),a.session={id:f,version:null,cipherSuite:null,compressionMethod:null,serverCertificate:null,certificateRequest:null,clientCertificate:null,sp:{},md5:Z.md.md5.create(),sha1:Z.md.sha1.create()},u&&(a.version=u.version,a.session.sp=u.sp),a.session.sp.client_random=B.createRandom().getBytes(),a.open=!0,B.queue(a,B.createRecord(a,{type:B.ContentType.handshake,data:B.createClientHello(a)})),B.flush(a)}},a.process=function(f){var u=0;return f&&a.input.putBytes(f),a.fail||(a.record!==null&&a.record.ready&&a.record.fragment.isEmpty()&&(a.record=null),a.record===null&&(u=l(a)),!a.fail&&a.record!==null&&!a.record.ready&&(u=o(a)),!a.fail&&a.record!==null&&a.record.ready&&s(a,a.record)),u},a.prepare=function(f){return B.queue(a,B.createRecord(a,{type:B.ContentType.application_data,data:Z.util.createBuffer(f)})),B.flush(a)},a.prepareHeartbeatRequest=function(f,u){return f instanceof Z.util.ByteBuffer&&(f=f.bytes()),typeof u=="undefined"&&(u=f.length),a.expectedHeartbeatPayload=f,B.queue(a,B.createRecord(a,{type:B.ContentType.heartbeat,data:B.createHeartbeat(B.HeartbeatMessageType.heartbeat_request,f,u)})),B.flush(a)},a.close=function(f){if(!a.fail&&a.sessionCache&&a.session){var u={id:a.session.id,version:a.session.version,sp:a.session.sp};u.sp.keys=null,a.sessionCache.setSession(u.id,u)}a.open&&(a.open=!1,a.input.clear(),(a.isConnected||a.handshaking)&&(a.isConnected=a.handshaking=!1,B.queue(a,B.createAlert(a,{level:B.Alert.Level.warning,description:B.Alert.Description.close_notify})),B.flush(a)),a.closed(a)),a.reset(f)},a},Z.tls=Z.tls||{};for(var Li in B)typeof B[Li]!="function"&&(Z.tls[Li]=B[Li]);Z.tls.prf_tls1=qr,Z.tls.hmac_sha1=wl,Z.tls.createSessionCache=B.createSessionCache,Z.tls.createConnection=B.createConnection;var Dt=_e,ot=Dt.tls;ot.CipherSuites.TLS_RSA_WITH_AES_128_CBC_SHA={id:[0,47],name:"TLS_RSA_WITH_AES_128_CBC_SHA",initSecurityParameters:function(e){e.bulk_cipher_algorithm=ot.BulkCipherAlgorithm.aes,e.cipher_type=ot.CipherType.block,e.enc_key_length=16,e.block_length=16,e.fixed_iv_length=16,e.record_iv_length=16,e.mac_algorithm=ot.MACAlgorithm.hmac_sha1,e.mac_length=20,e.mac_key_length=20},initConnectionState:en},ot.CipherSuites.TLS_RSA_WITH_AES_256_CBC_SHA={id:[0,53],name:"TLS_RSA_WITH_AES_256_CBC_SHA",initSecurityParameters:function(e){e.bulk_cipher_algorithm=ot.BulkCipherAlgorithm.aes,e.cipher_type=ot.CipherType.block,e.enc_key_length=32,e.block_length=16,e.fixed_iv_length=16,e.record_iv_length=16,e.mac_algorithm=ot.MACAlgorithm.hmac_sha1,e.mac_length=20,e.mac_key_length=20},initConnectionState:en};function en(e,t,i){var r=t.entity===Dt.tls.ConnectionEnd.client;e.read.cipherState={init:!1,cipher:Dt.cipher.createDecipher("AES-CBC",r?i.keys.server_write_key:i.keys.client_write_key),iv:r?i.keys.server_write_IV:i.keys.client_write_IV},e.write.cipherState={init:!1,cipher:Dt.cipher.createCipher("AES-CBC",r?i.keys.client_write_key:i.keys.server_write_key),iv:r?i.keys.client_write_IV:i.keys.server_write_IV},e.read.cipherFunction=Gl,e.write.cipherFunction=ql,e.read.macLength=e.write.macLength=i.mac_length,e.read.macFunction=e.write.macFunction=ot.hmac_sha1}function ql(e,t){var i=!1,r=t.macFunction(t.macKey,t.sequenceNumber,e);e.fragment.putBytes(r),t.updateSequenceNumber();var n;e.version.minor===ot.Versions.TLS_1_0.minor?n=t.cipherState.init?null:t.cipherState.iv:n=Dt.random.getBytesSync(16),t.cipherState.init=!0;var c=t.cipherState.cipher;return c.start({iv:n}),e.version.minor>=ot.Versions.TLS_1_1.minor&&c.output.putBytes(n),c.update(e.fragment),c.finish($l)&&(e.fragment=c.output,e.length=e.fragment.length(),i=!0),i}function $l(e,t,i){if(!i){var r=e-t.length()%e;t.fillWithByte(r-1,r)}return!0}function jl(e,t,i){var r=!0;if(i){for(var n=t.length(),c=t.last(),a=n-1-c;a<n-1;++a)r=r&&t.at(a)==c;r&&t.truncate(c+1)}return r}function Gl(e,t){var i=!1,r;e.version.minor===ot.Versions.TLS_1_0.minor?r=t.cipherState.init?null:t.cipherState.iv:r=e.fragment.getBytes(16),t.cipherState.init=!0;var n=t.cipherState.cipher;n.start({iv:r}),n.update(e.fragment),i=n.finish(jl);var c=t.macLength,a=Dt.random.getBytesSync(c),s=n.output.length();s>=c?(e.fragment=n.output.getBytes(s-c),a=n.output.getBytes(c)):e.fragment=n.output.getBytes(),e.fragment=Dt.util.createBuffer(e.fragment),e.length=e.fragment.length();var l=t.macFunction(t.macKey,t.sequenceNumber,e);return t.updateSequenceNumber(),i=Ql(t.macKey,a,l)&&i,i}function Ql(e,t,i){var r=Dt.hmac.create();return r.start("SHA1",e),r.update(t),t=r.digest().getBytes(),r.start(null,null),r.update(i),i=r.digest().getBytes(),t===i}var De=_e,_r=De.sha512=De.sha512||{};De.md.sha512=De.md.algorithms.sha512=_r;var tn=De.sha384=De.sha512.sha384=De.sha512.sha384||{};tn.create=function(){return _r.create("SHA-384")},De.md.sha384=De.md.algorithms.sha384=tn,De.sha512.sha256=De.sha512.sha256||{create:function(){return _r.create("SHA-512/256")}},De.md["sha512/256"]=De.md.algorithms["sha512/256"]=De.sha512.sha256,De.sha512.sha224=De.sha512.sha224||{create:function(){return _r.create("SHA-512/224")}},De.md["sha512/224"]=De.md.algorithms["sha512/224"]=De.sha512.sha224,_r.create=function(e){if(rn||Yl(),typeof e=="undefined"&&(e="SHA-512"),!(e in zt))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=zt[e],i=null,r=De.util.createBuffer(),n=new Array(80),c=0;c<80;++c)n[c]=new Array(2);var a=64;switch(e){case"SHA-384":a=48;break;case"SHA-512/256":a=32;break;case"SHA-512/224":a=28;break}var s={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:a,messageLength:0,fullMessageLength:null,messageLengthSize:16};return s.start=function(){s.messageLength=0,s.fullMessageLength=s.messageLength128=[];for(var l=s.messageLengthSize/4,o=0;o<l;++o)s.fullMessageLength.push(0);r=De.util.createBuffer(),i=new Array(t.length);for(var o=0;o<t.length;++o)i[o]=t[o].slice(0);return s},s.start(),s.update=function(l,o){o==="utf8"&&(l=De.util.encodeUtf8(l));var f=l.length;s.messageLength+=f,f=[f/4294967296>>>0,f>>>0];for(var u=s.fullMessageLength.length-1;u>=0;--u)s.fullMessageLength[u]+=f[1],f[1]=f[0]+(s.fullMessageLength[u]/4294967296>>>0),s.fullMessageLength[u]=s.fullMessageLength[u]>>>0,f[0]=f[1]/4294967296>>>0;return r.putBytes(l),sn(i,n,r),(r.read>2048||r.length()===0)&&r.compact(),s},s.digest=function(){var l=De.util.createBuffer();l.putBytes(r.bytes());var o=s.fullMessageLength[s.fullMessageLength.length-1]+s.messageLengthSize,f=o&s.blockLength-1;l.putBytes(ki.substr(0,s.blockLength-f));for(var u,g,y=s.fullMessageLength[0]*8,m=0;m<s.fullMessageLength.length-1;++m)u=s.fullMessageLength[m+1]*8,g=u/4294967296>>>0,y+=g,l.putInt32(y>>>0),y=u>>>0;l.putInt32(y);for(var _=new Array(i.length),m=0;m<i.length;++m)_[m]=i[m].slice(0);sn(_,n,l);var h=De.util.createBuffer(),d;e==="SHA-512"?d=_.length:e==="SHA-384"?d=_.length-2:d=_.length-4;for(var m=0;m<d;++m)h.putInt32(_[m][0]),(m!==d-1||e!=="SHA-512/224")&&h.putInt32(_[m][1]);return h},s};var ki=null,rn=!1,Ri=null,zt=null;function Yl(){ki=String.fromCharCode(128),ki+=De.util.fillString(String.fromCharCode(0),128),Ri=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],zt={},zt["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],zt["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],zt["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],zt["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],rn=!0}function sn(e,t,i){for(var r,n,c,a,s,l,o,f,u,g,y,m,_,h,d,p,v,S,C,b,w,E,x,R,D,k,O,$,W,q,V,L,N,P,U,Y=i.length();Y>=128;){for(W=0;W<16;++W)t[W][0]=i.getInt32()>>>0,t[W][1]=i.getInt32()>>>0;for(;W<80;++W)L=t[W-2],q=L[0],V=L[1],r=((q>>>19|V<<13)^(V>>>29|q<<3)^q>>>6)>>>0,n=((q<<13|V>>>19)^(V<<3|q>>>29)^(q<<26|V>>>6))>>>0,P=t[W-15],q=P[0],V=P[1],c=((q>>>1|V<<31)^(q>>>8|V<<24)^q>>>7)>>>0,a=((q<<31|V>>>1)^(q<<24|V>>>8)^(q<<25|V>>>7))>>>0,N=t[W-7],U=t[W-16],V=n+N[1]+a+U[1],t[W][0]=r+N[0]+c+U[0]+(V/4294967296>>>0)>>>0,t[W][1]=V>>>0;for(_=e[0][0],h=e[0][1],d=e[1][0],p=e[1][1],v=e[2][0],S=e[2][1],C=e[3][0],b=e[3][1],w=e[4][0],E=e[4][1],x=e[5][0],R=e[5][1],D=e[6][0],k=e[6][1],O=e[7][0],$=e[7][1],W=0;W<80;++W)o=((w>>>14|E<<18)^(w>>>18|E<<14)^(E>>>9|w<<23))>>>0,f=((w<<18|E>>>14)^(w<<14|E>>>18)^(E<<23|w>>>9))>>>0,u=(D^w&(x^D))>>>0,g=(k^E&(R^k))>>>0,s=((_>>>28|h<<4)^(h>>>2|_<<30)^(h>>>7|_<<25))>>>0,l=((_<<4|h>>>28)^(h<<30|_>>>2)^(h<<25|_>>>7))>>>0,y=(_&d|v&(_^d))>>>0,m=(h&p|S&(h^p))>>>0,V=$+f+g+Ri[W][1]+t[W][1],r=O+o+u+Ri[W][0]+t[W][0]+(V/4294967296>>>0)>>>0,n=V>>>0,V=l+m,c=s+y+(V/4294967296>>>0)>>>0,a=V>>>0,O=D,$=k,D=x,k=R,x=w,R=E,V=b+n,w=C+r+(V/4294967296>>>0)>>>0,E=V>>>0,C=v,b=S,v=d,S=p,d=_,p=h,V=n+a,_=r+c+(V/4294967296>>>0)>>>0,h=V>>>0;V=e[0][1]+h,e[0][0]=e[0][0]+_+(V/4294967296>>>0)>>>0,e[0][1]=V>>>0,V=e[1][1]+p,e[1][0]=e[1][0]+d+(V/4294967296>>>0)>>>0,e[1][1]=V>>>0,V=e[2][1]+S,e[2][0]=e[2][0]+v+(V/4294967296>>>0)>>>0,e[2][1]=V>>>0,V=e[3][1]+b,e[3][0]=e[3][0]+C+(V/4294967296>>>0)>>>0,e[3][1]=V>>>0,V=e[4][1]+E,e[4][0]=e[4][0]+w+(V/4294967296>>>0)>>>0,e[4][1]=V>>>0,V=e[5][1]+R,e[5][0]=e[5][0]+x+(V/4294967296>>>0)>>>0,e[5][1]=V>>>0,V=e[6][1]+k,e[6][0]=e[6][0]+D+(V/4294967296>>>0)>>>0,e[6][1]=V>>>0,V=e[7][1]+$,e[7][0]=e[7][0]+O+(V/4294967296>>>0)>>>0,e[7][1]=V>>>0,Y-=128}}var Di={},Xl=_e,ze=Xl.asn1;Di.privateKeyValidator={name:"PrivateKeyInfo",tagClass:ze.Class.UNIVERSAL,type:ze.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:ze.Class.UNIVERSAL,type:ze.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:ze.Class.UNIVERSAL,type:ze.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:ze.Class.UNIVERSAL,type:ze.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:ze.Class.UNIVERSAL,type:ze.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},Di.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:ze.Class.UNIVERSAL,type:ze.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:ze.Class.UNIVERSAL,type:ze.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:ze.Class.UNIVERSAL,type:ze.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{tagClass:ze.Class.UNIVERSAL,type:ze.Type.BITSTRING,constructed:!1,composed:!0,captureBitStringValue:"ed25519PublicKey"}]};var Ge=_e,nn=Di,Zl=nn.publicKeyValidator,Jl=nn.privateKeyValidator;if(typeof ec=="undefined")var ec=Ge.jsbn.BigInteger;var Pi=Ge.util.ByteBuffer,et=typeof Buffer=="undefined"?Uint8Array:Buffer;Ge.pki=Ge.pki||{},Ge.pki.ed25519=Ge.ed25519=Ge.ed25519||{};var Se=Ge.ed25519;Se.constants={},Se.constants.PUBLIC_KEY_BYTE_LENGTH=32,Se.constants.PRIVATE_KEY_BYTE_LENGTH=64,Se.constants.SEED_BYTE_LENGTH=32,Se.constants.SIGN_BYTE_LENGTH=64,Se.constants.HASH_BYTE_LENGTH=64,Se.generateKeyPair=function(e){e=e||{};var t=e.seed;if(t===void 0)t=Ge.random.getBytesSync(Se.constants.SEED_BYTE_LENGTH);else if(typeof t=="string"){if(t.length!==Se.constants.SEED_BYTE_LENGTH)throw new TypeError('"seed" must be '+Se.constants.SEED_BYTE_LENGTH+" bytes in length.")}else if(!(t instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, Uint8Array, or a binary string.');t=wt({message:t,encoding:"binary"});for(var i=new et(Se.constants.PUBLIC_KEY_BYTE_LENGTH),r=new et(Se.constants.PRIVATE_KEY_BYTE_LENGTH),n=0;n<32;++n)r[n]=t[n];return sc(i,r),{publicKey:i,privateKey:r}},Se.privateKeyFromAsn1=function(e){var t={},i=[],r=Ge.asn1.validate(e,Jl,t,i);if(!r){var n=new Error("Invalid Key.");throw n.errors=i,n}var c=Ge.asn1.derToOid(t.privateKeyOid),a=Ge.oids.EdDSA25519;if(c!==a)throw new Error('Invalid OID "'+c+'"; OID must be "'+a+'".');var s=t.privateKey,l=wt({message:Ge.asn1.fromDer(s).value,encoding:"binary"});return{privateKeyBytes:l}},Se.publicKeyFromAsn1=function(e){var t={},i=[],r=Ge.asn1.validate(e,Zl,t,i);if(!r){var n=new Error("Invalid Key.");throw n.errors=i,n}var c=Ge.asn1.derToOid(t.publicKeyOid),a=Ge.oids.EdDSA25519;if(c!==a)throw new Error('Invalid OID "'+c+'"; OID must be "'+a+'".');var s=t.ed25519PublicKey;if(s.length!==Se.constants.PUBLIC_KEY_BYTE_LENGTH)throw new Error("Key length is invalid.");return wt({message:s,encoding:"binary"})},Se.publicKeyFromPrivateKey=function(e){e=e||{};var t=wt({message:e.privateKey,encoding:"binary"});if(t.length!==Se.constants.PRIVATE_KEY_BYTE_LENGTH)throw new TypeError('"options.privateKey" must have a byte length of '+Se.constants.PRIVATE_KEY_BYTE_LENGTH);for(var i=new et(Se.constants.PUBLIC_KEY_BYTE_LENGTH),r=0;r<i.length;++r)i[r]=t[32+r];return i},Se.sign=function(e){e=e||{};var t=wt(e),i=wt({message:e.privateKey,encoding:"binary"});if(i.length===Se.constants.SEED_BYTE_LENGTH){var r=Se.generateKeyPair({seed:i});i=r.privateKey}else if(i.length!==Se.constants.PRIVATE_KEY_BYTE_LENGTH)throw new TypeError('"options.privateKey" must have a byte length of '+Se.constants.SEED_BYTE_LENGTH+" or "+Se.constants.PRIVATE_KEY_BYTE_LENGTH);var n=new et(Se.constants.SIGN_BYTE_LENGTH+t.length);nc(n,t,t.length,i);for(var c=new et(Se.constants.SIGN_BYTE_LENGTH),a=0;a<c.length;++a)c[a]=n[a];return c},Se.verify=function(e){e=e||{};var t=wt(e);if(e.signature===void 0)throw new TypeError('"options.signature" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a binary string.');var i=wt({message:e.signature,encoding:"binary"});if(i.length!==Se.constants.SIGN_BYTE_LENGTH)throw new TypeError('"options.signature" must have a byte length of '+Se.constants.SIGN_BYTE_LENGTH);var r=wt({message:e.publicKey,encoding:"binary"});if(r.length!==Se.constants.PUBLIC_KEY_BYTE_LENGTH)throw new TypeError('"options.publicKey" must have a byte length of '+Se.constants.PUBLIC_KEY_BYTE_LENGTH);var n=new et(Se.constants.SIGN_BYTE_LENGTH+t.length),c=new et(Se.constants.SIGN_BYTE_LENGTH+t.length),a;for(a=0;a<Se.constants.SIGN_BYTE_LENGTH;++a)n[a]=i[a];for(a=0;a<t.length;++a)n[a+Se.constants.SIGN_BYTE_LENGTH]=t[a];return ac(c,n,n.length,r)>=0};function wt(e){var t=e.message;if(t instanceof Uint8Array||t instanceof et)return t;var i=e.encoding;if(t===void 0)if(e.md)t=e.md.digest().getBytes(),i="binary";else throw new TypeError('"options.message" or "options.md" not specified.');if(typeof t=="string"&&!i)throw new TypeError('"options.encoding" must be "binary" or "utf8".');if(typeof t=="string"){if(typeof Buffer!="undefined")return Buffer.from(t,i);t=new Pi(t,i)}else if(!(t instanceof Pi))throw new TypeError('"options.message" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a string with "options.encoding" specifying its encoding.');for(var r=new et(t.length()),n=0;n<r.length;++n)r[n]=t.at(n);return r}var Ni=fe(),Gr=fe([1]),tc=fe([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),rc=fe([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),an=fe([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),on=fe([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),Oi=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]),ic=fe([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function yr(e,t){var i=Ge.md.sha512.create(),r=new Pi(e);i.update(r.getBytes(t),"binary");var n=i.digest().getBytes();if(typeof Buffer!="undefined")return Buffer.from(n,"binary");for(var c=new et(Se.constants.HASH_BYTE_LENGTH),a=0;a<64;++a)c[a]=n.charCodeAt(a);return c}function sc(e,t){var i=[fe(),fe(),fe(),fe()],r,n=yr(t,32);for(n[0]&=248,n[31]&=127,n[31]|=64,Hi(i,n),Fi(e,i),r=0;r<32;++r)t[r+32]=e[r];return 0}function nc(e,t,i,r){var n,c,a=new Float64Array(64),s=[fe(),fe(),fe(),fe()],l=yr(r,32);l[0]&=248,l[31]&=127,l[31]|=64;var o=i+64;for(n=0;n<i;++n)e[64+n]=t[n];for(n=0;n<32;++n)e[32+n]=l[32+n];var f=yr(e.subarray(32),i+32);for(Mi(f),Hi(s,f),Fi(e,s),n=32;n<64;++n)e[n]=r[n];var u=yr(e,i+64);for(Mi(u),n=32;n<64;++n)a[n]=0;for(n=0;n<32;++n)a[n]=f[n];for(n=0;n<32;++n)for(c=0;c<32;c++)a[n+c]+=u[n]*l[c];return ln(e.subarray(32),a),o}function ac(e,t,i,r){var n,c,a=new et(32),s=[fe(),fe(),fe(),fe()],l=[fe(),fe(),fe(),fe()];if(c=-1,i<64||oc(l,r))return-1;for(n=0;n<i;++n)e[n]=t[n];for(n=0;n<32;++n)e[n+32]=r[n];var o=yr(e,i);if(Mi(o),dn(s,l,o),Hi(l,t.subarray(32)),Ui(s,l),Fi(a,s),i-=64,un(t,0,a,0)){for(n=0;n<i;++n)e[n]=0;return-1}for(n=0;n<i;++n)e[n]=t[n+64];return c=i,c}function ln(e,t){var i,r,n,c;for(r=63;r>=32;--r){for(i=0,n=r-32,c=r-12;n<c;++n)t[n]+=i-16*t[r]*Oi[n-(r-32)],i=t[n]+128>>8,t[n]-=i*256;t[n]+=i,t[r]=0}for(i=0,n=0;n<32;++n)t[n]+=i-(t[31]>>4)*Oi[n],i=t[n]>>8,t[n]&=255;for(n=0;n<32;++n)t[n]-=i*Oi[n];for(r=0;r<32;++r)t[r+1]+=t[r]>>8,e[r]=t[r]&255}function Mi(e){for(var t=new Float64Array(64),i=0;i<64;++i)t[i]=e[i],e[i]=0;ln(e,t)}function Ui(e,t){var i=fe(),r=fe(),n=fe(),c=fe(),a=fe(),s=fe(),l=fe(),o=fe(),f=fe();nr(i,e[1],e[0]),nr(f,t[1],t[0]),Ie(i,i,f),sr(r,e[0],e[1]),sr(f,t[0],t[1]),Ie(r,r,f),Ie(n,e[3],t[3]),Ie(n,n,rc),Ie(c,e[2],t[2]),sr(c,c,c),nr(a,r,i),nr(s,c,n),sr(l,c,n),sr(o,r,i),Ie(e[0],a,s),Ie(e[1],o,l),Ie(e[2],l,s),Ie(e[3],a,o)}function cn(e,t,i){for(var r=0;r<4;++r)pn(e[r],t[r],i)}function Fi(e,t){var i=fe(),r=fe(),n=fe();uc(n,t[2]),Ie(i,t[0],n),Ie(r,t[1],n),Qr(e,r),e[31]^=fn(i)<<7}function Qr(e,t){var i,r,n,c=fe(),a=fe();for(i=0;i<16;++i)a[i]=t[i];for(Vi(a),Vi(a),Vi(a),r=0;r<2;++r){for(c[0]=a[0]-65517,i=1;i<15;++i)c[i]=a[i]-65535-(c[i-1]>>16&1),c[i-1]&=65535;c[15]=a[15]-32767-(c[14]>>16&1),n=c[15]>>16&1,c[14]&=65535,pn(a,c,1-n)}for(i=0;i<16;i++)e[2*i]=a[i]&255,e[2*i+1]=a[i]>>8}function oc(e,t){var i=fe(),r=fe(),n=fe(),c=fe(),a=fe(),s=fe(),l=fe();return Pt(e[2],Gr),lc(e[1],t),qt(n,e[1]),Ie(c,n,tc),nr(n,n,e[2]),sr(c,e[2],c),qt(a,c),qt(s,a),Ie(l,s,a),Ie(i,l,n),Ie(i,i,c),cc(i,i),Ie(i,i,n),Ie(i,i,c),Ie(i,i,c),Ie(e[0],i,c),qt(r,e[0]),Ie(r,r,c),hn(r,n)&&Ie(e[0],e[0],ic),qt(r,e[0]),Ie(r,r,c),hn(r,n)?-1:(fn(e[0])===t[31]>>7&&nr(e[0],Ni,e[0]),Ie(e[3],e[0],e[1]),0)}function lc(e,t){var i;for(i=0;i<16;++i)e[i]=t[2*i]+(t[2*i+1]<<8);e[15]&=32767}function cc(e,t){var i=fe(),r;for(r=0;r<16;++r)i[r]=t[r];for(r=250;r>=0;--r)qt(i,i),r!==1&&Ie(i,i,t);for(r=0;r<16;++r)e[r]=i[r]}function hn(e,t){var i=new et(32),r=new et(32);return Qr(i,e),Qr(r,t),un(i,0,r,0)}function un(e,t,i,r){return hc(e,t,i,r,32)}function hc(e,t,i,r,n){var c,a=0;for(c=0;c<n;++c)a|=e[t+c]^i[r+c];return(1&a-1>>>8)-1}function fn(e){var t=new et(32);return Qr(t,e),t[0]&1}function dn(e,t,i){var r,n;for(Pt(e[0],Ni),Pt(e[1],Gr),Pt(e[2],Gr),Pt(e[3],Ni),n=255;n>=0;--n)r=i[n/8|0]>>(n&7)&1,cn(e,t,r),Ui(t,e),Ui(e,e),cn(e,t,r)}function Hi(e,t){var i=[fe(),fe(),fe(),fe()];Pt(i[0],an),Pt(i[1],on),Pt(i[2],Gr),Ie(i[3],an,on),dn(e,i,t)}function Pt(e,t){var i;for(i=0;i<16;i++)e[i]=t[i]|0}function uc(e,t){var i=fe(),r;for(r=0;r<16;++r)i[r]=t[r];for(r=253;r>=0;--r)qt(i,i),r!==2&&r!==4&&Ie(i,i,t);for(r=0;r<16;++r)e[r]=i[r]}function Vi(e){var t,i,r=1;for(t=0;t<16;++t)i=e[t]+r+65535,r=Math.floor(i/65536),e[t]=i-r*65536;e[0]+=r-1+37*(r-1)}function pn(e,t,i){for(var r,n=~(i-1),c=0;c<16;++c)r=n&(e[c]^t[c]),e[c]^=r,t[c]^=r}function fe(e){var t,i=new Float64Array(16);if(e)for(t=0;t<e.length;++t)i[t]=e[t];return i}function sr(e,t,i){for(var r=0;r<16;++r)e[r]=t[r]+i[r]}function nr(e,t,i){for(var r=0;r<16;++r)e[r]=t[r]-i[r]}function qt(e,t){Ie(e,t,t)}function Ie(e,t,i){var r,n,c=0,a=0,s=0,l=0,o=0,f=0,u=0,g=0,y=0,m=0,_=0,h=0,d=0,p=0,v=0,S=0,C=0,b=0,w=0,E=0,x=0,R=0,D=0,k=0,O=0,$=0,W=0,q=0,V=0,L=0,N=0,P=i[0],U=i[1],Y=i[2],ee=i[3],le=i[4],se=i[5],ge=i[6],I=i[7],K=i[8],G=i[9],j=i[10],ce=i[11],re=i[12],de=i[13],xe=i[14],Ae=i[15];r=t[0],c+=r*P,a+=r*U,s+=r*Y,l+=r*ee,o+=r*le,f+=r*se,u+=r*ge,g+=r*I,y+=r*K,m+=r*G,_+=r*j,h+=r*ce,d+=r*re,p+=r*de,v+=r*xe,S+=r*Ae,r=t[1],a+=r*P,s+=r*U,l+=r*Y,o+=r*ee,f+=r*le,u+=r*se,g+=r*ge,y+=r*I,m+=r*K,_+=r*G,h+=r*j,d+=r*ce,p+=r*re,v+=r*de,S+=r*xe,C+=r*Ae,r=t[2],s+=r*P,l+=r*U,o+=r*Y,f+=r*ee,u+=r*le,g+=r*se,y+=r*ge,m+=r*I,_+=r*K,h+=r*G,d+=r*j,p+=r*ce,v+=r*re,S+=r*de,C+=r*xe,b+=r*Ae,r=t[3],l+=r*P,o+=r*U,f+=r*Y,u+=r*ee,g+=r*le,y+=r*se,m+=r*ge,_+=r*I,h+=r*K,d+=r*G,p+=r*j,v+=r*ce,S+=r*re,C+=r*de,b+=r*xe,w+=r*Ae,r=t[4],o+=r*P,f+=r*U,u+=r*Y,g+=r*ee,y+=r*le,m+=r*se,_+=r*ge,h+=r*I,d+=r*K,p+=r*G,v+=r*j,S+=r*ce,C+=r*re,b+=r*de,w+=r*xe,E+=r*Ae,r=t[5],f+=r*P,u+=r*U,g+=r*Y,y+=r*ee,m+=r*le,_+=r*se,h+=r*ge,d+=r*I,p+=r*K,v+=r*G,S+=r*j,C+=r*ce,b+=r*re,w+=r*de,E+=r*xe,x+=r*Ae,r=t[6],u+=r*P,g+=r*U,y+=r*Y,m+=r*ee,_+=r*le,h+=r*se,d+=r*ge,p+=r*I,v+=r*K,S+=r*G,C+=r*j,b+=r*ce,w+=r*re,E+=r*de,x+=r*xe,R+=r*Ae,r=t[7],g+=r*P,y+=r*U,m+=r*Y,_+=r*ee,h+=r*le,d+=r*se,p+=r*ge,v+=r*I,S+=r*K,C+=r*G,b+=r*j,w+=r*ce,E+=r*re,x+=r*de,R+=r*xe,D+=r*Ae,r=t[8],y+=r*P,m+=r*U,_+=r*Y,h+=r*ee,d+=r*le,p+=r*se,v+=r*ge,S+=r*I,C+=r*K,b+=r*G,w+=r*j,E+=r*ce,x+=r*re,R+=r*de,D+=r*xe,k+=r*Ae,r=t[9],m+=r*P,_+=r*U,h+=r*Y,d+=r*ee,p+=r*le,v+=r*se,S+=r*ge,C+=r*I,b+=r*K,w+=r*G,E+=r*j,x+=r*ce,R+=r*re,D+=r*de,k+=r*xe,O+=r*Ae,r=t[10],_+=r*P,h+=r*U,d+=r*Y,p+=r*ee,v+=r*le,S+=r*se,C+=r*ge,b+=r*I,w+=r*K,E+=r*G,x+=r*j,R+=r*ce,D+=r*re,k+=r*de,O+=r*xe,$+=r*Ae,r=t[11],h+=r*P,d+=r*U,p+=r*Y,v+=r*ee,S+=r*le,C+=r*se,b+=r*ge,w+=r*I,E+=r*K,x+=r*G,R+=r*j,D+=r*ce,k+=r*re,O+=r*de,$+=r*xe,W+=r*Ae,r=t[12],d+=r*P,p+=r*U,v+=r*Y,S+=r*ee,C+=r*le,b+=r*se,w+=r*ge,E+=r*I,x+=r*K,R+=r*G,D+=r*j,k+=r*ce,O+=r*re,$+=r*de,W+=r*xe,q+=r*Ae,r=t[13],p+=r*P,v+=r*U,S+=r*Y,C+=r*ee,b+=r*le,w+=r*se,E+=r*ge,x+=r*I,R+=r*K,D+=r*G,k+=r*j,O+=r*ce,$+=r*re,W+=r*de,q+=r*xe,V+=r*Ae,r=t[14],v+=r*P,S+=r*U,C+=r*Y,b+=r*ee,w+=r*le,E+=r*se,x+=r*ge,R+=r*I,D+=r*K,k+=r*G,O+=r*j,$+=r*ce,W+=r*re,q+=r*de,V+=r*xe,L+=r*Ae,r=t[15],S+=r*P,C+=r*U,b+=r*Y,w+=r*ee,E+=r*le,x+=r*se,R+=r*ge,D+=r*I,k+=r*K,O+=r*G,$+=r*j,W+=r*ce,q+=r*re,V+=r*de,L+=r*xe,N+=r*Ae,c+=38*C,a+=38*b,s+=38*w,l+=38*E,o+=38*x,f+=38*R,u+=38*D,g+=38*k,y+=38*O,m+=38*$,_+=38*W,h+=38*q,d+=38*V,p+=38*L,v+=38*N,n=1,r=c+n+65535,n=Math.floor(r/65536),c=r-n*65536,r=a+n+65535,n=Math.floor(r/65536),a=r-n*65536,r=s+n+65535,n=Math.floor(r/65536),s=r-n*65536,r=l+n+65535,n=Math.floor(r/65536),l=r-n*65536,r=o+n+65535,n=Math.floor(r/65536),o=r-n*65536,r=f+n+65535,n=Math.floor(r/65536),f=r-n*65536,r=u+n+65535,n=Math.floor(r/65536),u=r-n*65536,r=g+n+65535,n=Math.floor(r/65536),g=r-n*65536,r=y+n+65535,n=Math.floor(r/65536),y=r-n*65536,r=m+n+65535,n=Math.floor(r/65536),m=r-n*65536,r=_+n+65535,n=Math.floor(r/65536),_=r-n*65536,r=h+n+65535,n=Math.floor(r/65536),h=r-n*65536,r=d+n+65535,n=Math.floor(r/65536),d=r-n*65536,r=p+n+65535,n=Math.floor(r/65536),p=r-n*65536,r=v+n+65535,n=Math.floor(r/65536),v=r-n*65536,r=S+n+65535,n=Math.floor(r/65536),S=r-n*65536,c+=n-1+37*(n-1),n=1,r=c+n+65535,n=Math.floor(r/65536),c=r-n*65536,r=a+n+65535,n=Math.floor(r/65536),a=r-n*65536,r=s+n+65535,n=Math.floor(r/65536),s=r-n*65536,r=l+n+65535,n=Math.floor(r/65536),l=r-n*65536,r=o+n+65535,n=Math.floor(r/65536),o=r-n*65536,r=f+n+65535,n=Math.floor(r/65536),f=r-n*65536,r=u+n+65535,n=Math.floor(r/65536),u=r-n*65536,r=g+n+65535,n=Math.floor(r/65536),g=r-n*65536,r=y+n+65535,n=Math.floor(r/65536),y=r-n*65536,r=m+n+65535,n=Math.floor(r/65536),m=r-n*65536,r=_+n+65535,n=Math.floor(r/65536),_=r-n*65536,r=h+n+65535,n=Math.floor(r/65536),h=r-n*65536,r=d+n+65535,n=Math.floor(r/65536),d=r-n*65536,r=p+n+65535,n=Math.floor(r/65536),p=r-n*65536,r=v+n+65535,n=Math.floor(r/65536),v=r-n*65536,r=S+n+65535,n=Math.floor(r/65536),S=r-n*65536,c+=n-1+37*(n-1),e[0]=c,e[1]=a,e[2]=s,e[3]=l,e[4]=o,e[5]=f,e[6]=u,e[7]=g,e[8]=y,e[9]=m,e[10]=_,e[11]=h,e[12]=d,e[13]=p,e[14]=v,e[15]=S}var rt=_e;rt.kem=rt.kem||{};var vn=rt.jsbn.BigInteger;rt.kem.rsa={},rt.kem.rsa.create=function(e,t){t=t||{};var i=t.prng||rt.random,r={};return r.encrypt=function(n,c){var a=Math.ceil(n.n.bitLength()/8),s;do s=new vn(rt.util.bytesToHex(i.getBytesSync(a)),16).mod(n.n);while(s.compareTo(vn.ONE)<=0);s=rt.util.hexToBytes(s.toString(16));var l=a-s.length;l>0&&(s=rt.util.fillString(String.fromCharCode(0),l)+s);var o=n.encrypt(s,"NONE"),f=e.generate(s,c);return{encapsulation:o,key:f}},r.decrypt=function(n,c,a){var s=n.decrypt(c,"NONE");return e.generate(s,a)},r},rt.kem.kdf1=function(e,t){gn(this,e,0,t||e.digestLength)},rt.kem.kdf2=function(e,t){gn(this,e,1,t||e.digestLength)};function gn(e,t,i,r){e.generate=function(n,c){for(var a=new rt.util.ByteBuffer,s=Math.ceil(c/r)+i,l=new rt.util.ByteBuffer,o=i;o<s;++o){l.putInt32(o),t.start(),t.update(n+l.getBytes());var f=t.digest();a.putBytes(f.getBytes(r))}return a.truncate(a.length()-c),a.getBytes()}}var Ee=_e;Ee.log=Ee.log||{},Ee.log.levels=["none","error","warning","info","debug","verbose","max"];var Yr={},Ki=[],mr=null;Ee.log.LEVEL_LOCKED=2,Ee.log.NO_LEVEL_CHECK=4,Ee.log.INTERPOLATE=8;for(var Nt=0;Nt<Ee.log.levels.length;++Nt){var _n=Ee.log.levels[Nt];Yr[_n]={index:Nt,name:_n.toUpperCase()}}Ee.log.logMessage=function(e){for(var t=Yr[e.level].index,i=0;i<Ki.length;++i){var r=Ki[i];if(r.flags&Ee.log.NO_LEVEL_CHECK)r.f(e);else{var n=Yr[r.level].index;t<=n&&r.f(r,e)}}},Ee.log.prepareStandard=function(e){"standard"in e||(e.standard=Yr[e.level].name+" ["+e.category+"] "+e.message)},Ee.log.prepareFull=function(e){if(!("full"in e)){var t=[e.message];t=t.concat([]),e.full=Ee.util.format.apply(this,t)}},Ee.log.prepareStandardFull=function(e){"standardFull"in e||(Ee.log.prepareStandard(e),e.standardFull=e.standard)};for(var yn=["error","warning","info","debug","verbose"],Nt=0;Nt<yn.length;++Nt)(function(t){Ee.log[t]=function(i,r){var n=Array.prototype.slice.call(arguments).slice(2),c={timestamp:new Date,level:t,category:i,message:r,arguments:n};Ee.log.logMessage(c)}})(yn[Nt]);if(Ee.log.makeLogger=function(e){var t={flags:0,f:e};return Ee.log.setLevel(t,"none"),t},Ee.log.setLevel=function(e,t){var i=!1;if(e&&!(e.flags&Ee.log.LEVEL_LOCKED))for(var r=0;r<Ee.log.levels.length;++r){var n=Ee.log.levels[r];if(t==n){e.level=t,i=!0;break}}return i},Ee.log.lock=function(e,t){typeof t=="undefined"||t?e.flags|=Ee.log.LEVEL_LOCKED:e.flags&=~Ee.log.LEVEL_LOCKED},Ee.log.addLogger=function(e){Ki.push(e)},typeof console!="undefined"&&"log"in console){var Sr;if(console.error&&console.warn&&console.info&&console.debug){var fc={error:console.error,warning:console.warn,info:console.info,debug:console.debug,verbose:console.debug},Wi=function(e,t){Ee.log.prepareStandard(t);var i=fc[t.level],r=[t.standard];r=r.concat(t.arguments.slice()),i.apply(console,r)};Sr=Ee.log.makeLogger(Wi)}else{var Wi=function(t,i){Ee.log.prepareStandardFull(i),console.log(i.standardFull)};Sr=Ee.log.makeLogger(Wi)}Ee.log.setLevel(Sr,"debug"),Ee.log.addLogger(Sr),mr=Sr}else console={log:function(){}};if(mr!==null&&typeof window!="undefined"&&window.location){var Xr=new URL(window.location.href).searchParams;if(Xr.has("console.level")&&Ee.log.setLevel(mr,Xr.get("console.level").slice(-1)[0]),Xr.has("console.lock")){var dc=Xr.get("console.lock").slice(-1)[0];dc=="true"&&Ee.log.lock(mr)}}Ee.log.consoleLogger=mr;var ie=_e,F=ie.asn1,Ze=ie.pkcs7=ie.pkcs7||{};Ze.messageFromPem=function(e){var t=ie.pem.decode(e)[0];if(t.type!=="PKCS7"){var i=new Error('Could not convert PKCS#7 message from PEM; PEM header type is not "PKCS#7".');throw i.headerType=t.type,i}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert PKCS#7 message from PEM; PEM is encrypted.");var r=F.fromDer(t.body);return Ze.messageFromAsn1(r)},Ze.messageToPem=function(e,t){var i={type:"PKCS7",body:F.toDer(e.toAsn1()).getBytes()};return ie.pem.encode(i,{maxline:t})},Ze.messageFromAsn1=function(e){var t={},i=[];if(!F.validate(e,Ze.asn1.contentInfoValidator,t,i)){var r=new Error("Cannot read PKCS#7 message. ASN.1 object is not an PKCS#7 ContentInfo.");throw r.errors=i,r}var n=F.derToOid(t.contentType),c;switch(n){case ie.pki.oids.envelopedData:c=Ze.createEnvelopedData();break;case ie.pki.oids.encryptedData:c=Ze.createEncryptedData();break;case ie.pki.oids.signedData:c=Ze.createSignedData();break;default:throw new Error("Cannot read PKCS#7 message. ContentType with OID "+n+" is not (yet) supported.")}return c.fromAsn1(t.content.value[0]),c},Ze.createSignedData=function(){var e=null;return e={type:ie.pki.oids.signedData,version:1,certificates:[],crls:[],signers:[],digestAlgorithmIdentifiers:[],contentInfo:null,signerInfos:[],fromAsn1:function(r){if(qi(e,r,Ze.asn1.signedDataValidator),e.certificates=[],e.crls=[],e.digestAlgorithmIdentifiers=[],e.contentInfo=null,e.signerInfos=[],e.rawCapture.certificates)for(var n=e.rawCapture.certificates.value,c=0;c<n.length;++c)e.certificates.push(ie.pki.certificateFromAsn1(n[c]))},toAsn1:function(){e.contentInfo||e.sign();for(var r=[],n=0;n<e.certificates.length;++n)r.push(ie.pki.certificateToAsn1(e.certificates[n]));var c=[],a=F.create(F.Class.CONTEXT_SPECIFIC,0,!0,[F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.INTEGER,!1,F.integerToDer(e.version).getBytes()),F.create(F.Class.UNIVERSAL,F.Type.SET,!0,e.digestAlgorithmIdentifiers),e.contentInfo])]);return r.length>0&&a.value[0].value.push(F.create(F.Class.CONTEXT_SPECIFIC,0,!0,r)),c.length>0&&a.value[0].value.push(F.create(F.Class.CONTEXT_SPECIFIC,1,!0,c)),a.value[0].value.push(F.create(F.Class.UNIVERSAL,F.Type.SET,!0,e.signerInfos)),F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.OID,!1,F.oidToDer(e.type).getBytes()),a])},addSigner:function(r){var n=r.issuer,c=r.serialNumber;if(r.certificate){var a=r.certificate;typeof a=="string"&&(a=ie.pki.certificateFromPem(a)),n=a.issuer.attributes,c=a.serialNumber}var s=r.key;if(!s)throw new Error("Could not add PKCS#7 signer; no private key specified.");typeof s=="string"&&(s=ie.pki.privateKeyFromPem(s));var l=r.digestAlgorithm||ie.pki.oids.sha1;switch(l){case ie.pki.oids.sha1:case ie.pki.oids.sha256:case ie.pki.oids.sha384:case ie.pki.oids.sha512:case ie.pki.oids.md5:break;default:throw new Error("Could not add PKCS#7 signer; unknown message digest algorithm: "+l)}var o=r.authenticatedAttributes||[];if(o.length>0){for(var f=!1,u=!1,g=0;g<o.length;++g){var y=o[g];if(!f&&y.type===ie.pki.oids.contentType){if(f=!0,u)break;continue}if(!u&&y.type===ie.pki.oids.messageDigest){if(u=!0,f)break;continue}}if(!f||!u)throw new Error("Invalid signer.authenticatedAttributes. If signer.authenticatedAttributes is specified, then it must contain at least two attributes, PKCS #9 content-type and PKCS #9 message-digest.")}e.signers.push({key:s,version:1,issuer:n,serialNumber:c,digestAlgorithm:l,signatureAlgorithm:ie.pki.oids.rsaEncryption,signature:null,authenticatedAttributes:o,unauthenticatedAttributes:[]})},sign:function(r){if(r=r||{},(typeof e.content!="object"||e.contentInfo===null)&&(e.contentInfo=F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.OID,!1,F.oidToDer(ie.pki.oids.data).getBytes())]),"content"in e)){var n;e.content instanceof ie.util.ByteBuffer?n=e.content.bytes():typeof e.content=="string"&&(n=ie.util.encodeUtf8(e.content)),r.detached?e.detachedContent=F.create(F.Class.UNIVERSAL,F.Type.OCTETSTRING,!1,n):e.contentInfo.value.push(F.create(F.Class.CONTEXT_SPECIFIC,0,!0,[F.create(F.Class.UNIVERSAL,F.Type.OCTETSTRING,!1,n)]))}if(e.signers.length!==0){var c=t();i(c)}},verify:function(){throw new Error("PKCS#7 signature verification not yet implemented.")},addCertificate:function(r){typeof r=="string"&&(r=ie.pki.certificateFromPem(r)),e.certificates.push(r)},addCertificateRevokationList:function(r){throw new Error("PKCS#7 CRL support not yet implemented.")}},e;function t(){for(var r={},n=0;n<e.signers.length;++n){var c=e.signers[n],a=c.digestAlgorithm;a in r||(r[a]=ie.md[ie.pki.oids[a]].create()),c.authenticatedAttributes.length===0?c.md=r[a]:c.md=ie.md[ie.pki.oids[a]].create()}e.digestAlgorithmIdentifiers=[];for(var a in r)e.digestAlgorithmIdentifiers.push(F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.OID,!1,F.oidToDer(a).getBytes()),F.create(F.Class.UNIVERSAL,F.Type.NULL,!1,"")]));return r}function i(r){var n;if(e.detachedContent?n=e.detachedContent:(n=e.contentInfo.value[1],n=n.value[0]),!n)throw new Error("Could not sign PKCS#7 message; there is no content to sign.");var c=F.derToOid(e.contentInfo.value[0].value),a=F.toDer(n);a.getByte(),F.getBerValueLength(a),a=a.getBytes();for(var s in r)r[s].start().update(a);for(var l=new Date,o=0;o<e.signers.length;++o){var f=e.signers[o];if(f.authenticatedAttributes.length===0){if(c!==ie.pki.oids.data)throw new Error("Invalid signer; authenticatedAttributes must be present when the ContentInfo content type is not PKCS#7 Data.")}else{f.authenticatedAttributesAsn1=F.create(F.Class.CONTEXT_SPECIFIC,0,!0,[]);for(var u=F.create(F.Class.UNIVERSAL,F.Type.SET,!0,[]),g=0;g<f.authenticatedAttributes.length;++g){var y=f.authenticatedAttributes[g];y.type===ie.pki.oids.messageDigest?y.value=r[f.digestAlgorithm].digest():y.type===ie.pki.oids.signingTime&&(y.value||(y.value=l)),u.value.push(zi(y)),f.authenticatedAttributesAsn1.value.push(zi(y))}a=F.toDer(u).getBytes(),f.md.start().update(a)}f.signature=f.key.sign(f.md,"RSASSA-PKCS1-V1_5")}e.signerInfos=mc(e.signers)}},Ze.createEncryptedData=function(){var e=null;return e={type:ie.pki.oids.encryptedData,version:0,encryptedContent:{algorithm:ie.pki.oids["aes256-CBC"]},fromAsn1:function(t){qi(e,t,Ze.asn1.encryptedDataValidator)},decrypt:function(t){t!==void 0&&(e.encryptedContent.key=t),mn(e)}},e},Ze.createEnvelopedData=function(){var e=null;return e={type:ie.pki.oids.envelopedData,version:0,recipients:[],encryptedContent:{algorithm:ie.pki.oids["aes256-CBC"]},fromAsn1:function(t){var i=qi(e,t,Ze.asn1.envelopedDataValidator);e.recipients=gc(i.recipientInfos.value)},toAsn1:function(){return F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.OID,!1,F.oidToDer(e.type).getBytes()),F.create(F.Class.CONTEXT_SPECIFIC,0,!0,[F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.INTEGER,!1,F.integerToDer(e.version).getBytes()),F.create(F.Class.UNIVERSAL,F.Type.SET,!0,_c(e.recipients)),F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,Sc(e.encryptedContent))])])])},findRecipient:function(t){for(var i=t.issuer.attributes,r=0;r<e.recipients.length;++r){var n=e.recipients[r],c=n.issuer;if(n.serialNumber===t.serialNumber&&c.length===i.length){for(var a=!0,s=0;s<i.length;++s)if(c[s].type!==i[s].type||c[s].value!==i[s].value){a=!1;break}if(a)return n}}return null},decrypt:function(t,i){if(e.encryptedContent.key===void 0&&t!==void 0&&i!==void 0)switch(t.encryptedContent.algorithm){case ie.pki.oids.rsaEncryption:case ie.pki.oids.desCBC:var r=i.decrypt(t.encryptedContent.content);e.encryptedContent.key=ie.util.createBuffer(r);break;default:throw new Error("Unsupported asymmetric cipher, OID "+t.encryptedContent.algorithm)}mn(e)},addRecipient:function(t){e.recipients.push({version:0,issuer:t.issuer.attributes,serialNumber:t.serialNumber,encryptedContent:{algorithm:ie.pki.oids.rsaEncryption,key:t.publicKey}})},encrypt:function(t,i){if(e.encryptedContent.content===void 0){i=i||e.encryptedContent.algorithm,t=t||e.encryptedContent.key;var r,n,c;switch(i){case ie.pki.oids["aes128-CBC"]:r=16,n=16,c=ie.aes.createEncryptionCipher;break;case ie.pki.oids["aes192-CBC"]:r=24,n=16,c=ie.aes.createEncryptionCipher;break;case ie.pki.oids["aes256-CBC"]:r=32,n=16,c=ie.aes.createEncryptionCipher;break;case ie.pki.oids["des-EDE3-CBC"]:r=24,n=8,c=ie.des.createEncryptionCipher;break;default:throw new Error("Unsupported symmetric cipher, OID "+i)}if(t===void 0)t=ie.util.createBuffer(ie.random.getBytes(r));else if(t.length()!=r)throw new Error("Symmetric key has wrong length; got "+t.length()+" bytes, expected "+r+".");e.encryptedContent.algorithm=i,e.encryptedContent.key=t,e.encryptedContent.parameter=ie.util.createBuffer(ie.random.getBytes(n));var a=c(t);if(a.start(e.encryptedContent.parameter.copy()),a.update(e.content),!a.finish())throw new Error("Symmetric encryption failed.");e.encryptedContent.content=a.output}for(var s=0;s<e.recipients.length;++s){var l=e.recipients[s];if(l.encryptedContent.content===void 0)switch(l.encryptedContent.algorithm){case ie.pki.oids.rsaEncryption:l.encryptedContent.content=l.encryptedContent.key.encrypt(e.encryptedContent.key.data);break;default:throw new Error("Unsupported asymmetric cipher, OID "+l.encryptedContent.algorithm)}}}},e};function pc(e){var t={},i=[];if(!F.validate(e,Ze.asn1.recipientInfoValidator,t,i)){var r=new Error("Cannot read PKCS#7 RecipientInfo. ASN.1 object is not an PKCS#7 RecipientInfo.");throw r.errors=i,r}return{version:t.version.charCodeAt(0),issuer:ie.pki.RDNAttributesAsArray(t.issuer),serialNumber:ie.util.createBuffer(t.serial).toHex(),encryptedContent:{algorithm:F.derToOid(t.encAlgorithm),parameter:t.encParameter?t.encParameter.value:void 0,content:t.encKey}}}function vc(e){return F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.INTEGER,!1,F.integerToDer(e.version).getBytes()),F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[ie.pki.distinguishedNameToAsn1({attributes:e.issuer}),F.create(F.Class.UNIVERSAL,F.Type.INTEGER,!1,ie.util.hexToBytes(e.serialNumber))]),F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.OID,!1,F.oidToDer(e.encryptedContent.algorithm).getBytes()),F.create(F.Class.UNIVERSAL,F.Type.NULL,!1,"")]),F.create(F.Class.UNIVERSAL,F.Type.OCTETSTRING,!1,e.encryptedContent.content)])}function gc(e){for(var t=[],i=0;i<e.length;++i)t.push(pc(e[i]));return t}function _c(e){for(var t=[],i=0;i<e.length;++i)t.push(vc(e[i]));return t}function yc(e){var t=F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.INTEGER,!1,F.integerToDer(e.version).getBytes()),F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[ie.pki.distinguishedNameToAsn1({attributes:e.issuer}),F.create(F.Class.UNIVERSAL,F.Type.INTEGER,!1,ie.util.hexToBytes(e.serialNumber))]),F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.OID,!1,F.oidToDer(e.digestAlgorithm).getBytes()),F.create(F.Class.UNIVERSAL,F.Type.NULL,!1,"")])]);if(e.authenticatedAttributesAsn1&&t.value.push(e.authenticatedAttributesAsn1),t.value.push(F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.OID,!1,F.oidToDer(e.signatureAlgorithm).getBytes()),F.create(F.Class.UNIVERSAL,F.Type.NULL,!1,"")])),t.value.push(F.create(F.Class.UNIVERSAL,F.Type.OCTETSTRING,!1,e.signature)),e.unauthenticatedAttributes.length>0){for(var i=F.create(F.Class.CONTEXT_SPECIFIC,1,!0,[]),r=0;r<e.unauthenticatedAttributes.length;++r){var n=e.unauthenticatedAttributes[r];i.values.push(zi(n))}t.value.push(i)}return t}function mc(e){for(var t=[],i=0;i<e.length;++i)t.push(yc(e[i]));return t}function zi(e){var t;if(e.type===ie.pki.oids.contentType)t=F.create(F.Class.UNIVERSAL,F.Type.OID,!1,F.oidToDer(e.value).getBytes());else if(e.type===ie.pki.oids.messageDigest)t=F.create(F.Class.UNIVERSAL,F.Type.OCTETSTRING,!1,e.value.bytes());else if(e.type===ie.pki.oids.signingTime){var i=new Date("1950-01-01T00:00:00Z"),r=new Date("2050-01-01T00:00:00Z"),n=e.value;if(typeof n=="string"){var c=Date.parse(n);isNaN(c)?n.length===13?n=F.utcTimeToDate(n):n=F.generalizedTimeToDate(n):n=new Date(c)}n>=i&&n<r?t=F.create(F.Class.UNIVERSAL,F.Type.UTCTIME,!1,F.dateToUtcTime(n)):t=F.create(F.Class.UNIVERSAL,F.Type.GENERALIZEDTIME,!1,F.dateToGeneralizedTime(n))}return F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.OID,!1,F.oidToDer(e.type).getBytes()),F.create(F.Class.UNIVERSAL,F.Type.SET,!0,[t])])}function Sc(e){return[F.create(F.Class.UNIVERSAL,F.Type.OID,!1,F.oidToDer(ie.pki.oids.data).getBytes()),F.create(F.Class.UNIVERSAL,F.Type.SEQUENCE,!0,[F.create(F.Class.UNIVERSAL,F.Type.OID,!1,F.oidToDer(e.algorithm).getBytes()),e.parameter?F.create(F.Class.UNIVERSAL,F.Type.OCTETSTRING,!1,e.parameter.getBytes()):void 0]),F.create(F.Class.CONTEXT_SPECIFIC,0,!0,[F.create(F.Class.UNIVERSAL,F.Type.OCTETSTRING,!1,e.content.getBytes())])]}function qi(e,t,i){var r={},n=[];if(!F.validate(t,i,r,n)){var c=new Error("Cannot read PKCS#7 message. ASN.1 object is not a supported PKCS#7 message.");throw c.errors=c,c}var a=F.derToOid(r.contentType);if(a!==ie.pki.oids.data)throw new Error("Unsupported PKCS#7 message. Only wrapped ContentType Data supported.");if(r.encryptedContent){var s="";if(ie.util.isArray(r.encryptedContent))for(var l=0;l<r.encryptedContent.length;++l){if(r.encryptedContent[l].type!==F.Type.OCTETSTRING)throw new Error("Malformed PKCS#7 message, expecting encrypted content constructed of only OCTET STRING objects.");s+=r.encryptedContent[l].value}else s=r.encryptedContent;e.encryptedContent={algorithm:F.derToOid(r.encAlgorithm),parameter:ie.util.createBuffer(r.encParameter.value),content:ie.util.createBuffer(s)}}if(r.content){var s="";if(ie.util.isArray(r.content))for(var l=0;l<r.content.length;++l){if(r.content[l].type!==F.Type.OCTETSTRING)throw new Error("Malformed PKCS#7 message, expecting content constructed of only OCTET STRING objects.");s+=r.content[l].value}else s=r.content;e.content=ie.util.createBuffer(s)}return e.version=r.version.charCodeAt(0),e.rawCapture=r,r}function mn(e){if(e.encryptedContent.key===void 0)throw new Error("Symmetric key not available.");if(e.content===void 0){var t;switch(e.encryptedContent.algorithm){case ie.pki.oids["aes128-CBC"]:case ie.pki.oids["aes192-CBC"]:case ie.pki.oids["aes256-CBC"]:t=ie.aes.createDecryptionCipher(e.encryptedContent.key);break;case ie.pki.oids.desCBC:case ie.pki.oids["des-EDE3-CBC"]:t=ie.des.createDecryptionCipher(e.encryptedContent.key);break;default:throw new Error("Unsupported symmetric cipher, OID "+e.encryptedContent.algorithm)}if(t.start(e.encryptedContent.parameter),t.update(e.encryptedContent.content),!t.finish())throw new Error("Symmetric decryption failed.");e.content=t.output}}var Fe=_e,Zr=Fe.ssh=Fe.ssh||{};Zr.privateKeyToPutty=function(e,t,i){i=i||"",t=t||"";var r="ssh-rsa",n=t===""?"none":"aes256-cbc",c="PuTTY-User-Key-File-2: "+r+`\r
`;c+="Encryption: "+n+`\r
`,c+="Comment: "+i+`\r
`;var a=Fe.util.createBuffer();ar(a,r),mt(a,e.e),mt(a,e.n);var s=Fe.util.encode64(a.bytes(),64),l=Math.floor(s.length/66)+1;c+="Public-Lines: "+l+`\r
`,c+=s;var o=Fe.util.createBuffer();mt(o,e.d),mt(o,e.p),mt(o,e.q),mt(o,e.qInv);var f;if(!t)f=Fe.util.encode64(o.bytes(),64);else{var u=o.length()+16-1;u-=u%16;var g=Jr(o.bytes());g.truncate(g.length()-u+o.length()),o.putBuffer(g);var y=Fe.util.createBuffer();y.putBuffer(Jr("\0\0\0\0",t)),y.putBuffer(Jr("\0\0\0",t));var m=Fe.aes.createEncryptionCipher(y.truncate(8),"CBC");m.start(Fe.util.createBuffer().fillWithByte(0,16)),m.update(o.copy()),m.finish();var _=m.output;_.truncate(16),f=Fe.util.encode64(_.bytes(),64)}l=Math.floor(f.length/66)+1,c+=`\r
Private-Lines: `+l+`\r
`,c+=f;var h=Jr("putty-private-key-file-mac-key",t),d=Fe.util.createBuffer();ar(d,r),ar(d,n),ar(d,i),d.putInt32(a.length()),d.putBuffer(a),d.putInt32(o.length()),d.putBuffer(o);var p=Fe.hmac.create();return p.start("sha1",h),p.update(d.bytes()),c+=`\r
Private-MAC: `+p.digest().toHex()+`\r
`,c},Zr.publicKeyToOpenSSH=function(e,t){var i="ssh-rsa";t=t||"";var r=Fe.util.createBuffer();return ar(r,i),mt(r,e.e),mt(r,e.n),i+" "+Fe.util.encode64(r.bytes())+" "+t},Zr.privateKeyToOpenSSH=function(e,t){return t?Fe.pki.encryptRsaPrivateKey(e,t,{legacy:!0,algorithm:"aes128"}):Fe.pki.privateKeyToPem(e)},Zr.getPublicKeyFingerprint=function(e,t){t=t||{};var i=t.md||Fe.md.md5.create(),r="ssh-rsa",n=Fe.util.createBuffer();ar(n,r),mt(n,e.e),mt(n,e.n),i.start(),i.update(n.getBytes());var c=i.digest();if(t.encoding==="hex"){var a=c.toHex();return t.delimiter?a.match(/.{2}/g).join(t.delimiter):a}else{if(t.encoding==="binary")return c.getBytes();if(t.encoding)throw new Error('Unknown encoding "'+t.encoding+'".')}return c};function mt(e,t){var i=t.toString(16);i[0]>="8"&&(i="00"+i);var r=Fe.util.hexToBytes(i);e.putInt32(r.length),e.putBytes(r)}function ar(e,t){e.putInt32(t.length),e.putString(t)}function Jr(){for(var e=Fe.md.sha1.create(),t=arguments.length,i=0;i<t;++i)e.update(arguments[i]);return e.digest()}var Sn=_e;const Cc=Pe({__proto__:null,default:ti(Sn)},[Sn]);Me.SSHTerminal=cr,Me.Vue2SSHTerminal=cr,Me.default=cr,Object.defineProperties(Me,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});