@tachybase/plugin-auth-saml 1.3.16 → 1.3.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("@tachybase/client"),require("@tachybase/module-auth/client"),require("react/jsx-runtime"),require("react"),require("@tachybase/schema"),require("@tachybase/sdk"),require("@ant-design/icons"),require("antd"),require("react-i18next"),require("react-router-dom")):typeof define=="function"&&define.amd?define(["exports","@tachybase/client","@tachybase/module-auth/client","react/jsx-runtime","react","@tachybase/schema","@tachybase/sdk","@ant-design/icons","antd","react-i18next","react-router-dom"],t):(e=typeof globalThis!="undefined"?globalThis:e||self,t(e["@tachybase/plugin-auth-saml"]={},e["@tachybase/client"],e["@tachybase/module-auth"],e.jsxRuntime,e.react,e["@tachybase/schema"],e["@tachybase/sdk"],e["@ant-design/icons"],e.antd,e["react-i18next"],e["react-router-dom"]))})(this,function(e,t,u,r,l,y,g,i,a,m,v){"use strict";var I=(e,t,u)=>new Promise((r,l)=>{var y=a=>{try{i(u.next(a))}catch(m){l(m)}},g=a=>{try{i(u.throw(a))}catch(m){l(m)}},i=a=>a.done?r(a.value):Promise.resolve(a.value).then(y,g);i((u=u.apply(e,t)).next())});const F="SAML",C="saml";function q(o){return t.i18n.t(o,{ns:C})}function S(){return m.useTranslation(C)}const j={type:"object",properties:{saml:{type:"object",properties:{ssoUrl:{title:'{{t("SSO URL")}}',"x-component":"Input","x-decorator":"FormItem",required:!0},certificate:{title:'{{t("Public Certificate")}}',"x-component":"Input.TextArea","x-decorator":"FormItem",required:!0},idpIssuer:{title:"idP Issuer","x-component":"Input","x-decorator":"FormItem"},http:{title:'{{t("http")}}',"x-component":"Checkbox","x-decorator":"FormItem"},userBindField:{type:"string",title:'{{t("Use this field to bind the user")}}',"x-component":"Select","x-decorator":"FormItem",default:"email",enum:[{label:q("Email"),value:"email"},{label:q("Username"),value:"username"}],required:!0}}},public:{type:"object",properties:{autoSignup:{"x-decorator":"FormItem",type:"boolean",title:'{{t("Sign up automatically when the user does not exist")}}',"x-component":"Checkbox",default:!0}}},usage:{type:"void","x-component":"Usage"}}},k=y.observer(()=>{var c;const o=y.useForm(),f=t.useRecord(),{t:d}=S(),h=t.useApp(),s=(c=o.values.name)!=null?c:f.name,x=l.useMemo(()=>{var P;const n=h.getOptions(),p=(P=n==null?void 0:n.apiClient)==null?void 0:P.baseURL,{protocol:w,host:B}=window.location,A=g.getSubAppName(h.getPublicPath())||"main";return p.startsWith("http")?`${p}saml:redirect?authenticator=${s}&__appName=${A}`:`${w}//${B}${p}saml:redirect?authenticator=${s}&__appName=${A}`},[h,s]),b=n=>{navigator.clipboard.writeText(n),a.message.success(d("Copied"))};return r.jsxs(a.Card,{title:d("Usage"),type:"inner",children:[r.jsx(t.FormItem,{label:d("SP Issuer/EntityID"),children:r.jsx(t.Input,{value:s,disabled:!0,addonBefore:r.jsx(i.CopyOutlined,{onClick:()=>b(s)})})}),r.jsx(t.FormItem,{label:d("ACS URL"),children:r.jsx(t.Input,{value:x,disabled:!0,addonBefore:r.jsx(i.CopyOutlined,{onClick:()=>b(x)})})})]})},{displayName:"Usage"}),L=()=>{const{t:o}=S();return r.jsx(t.SchemaComponent,{scope:{t:o},components:{Usage:k},schema:j})},T=({authenticator:o})=>{const{t:f}=S(),d=t.useAPIClient(),h=v.useLocation(),s=new URLSearchParams(h.search),x=s.get("redirect"),b=()=>I(
|
|
1
|
+
(function(e,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("@tachybase/client"),require("@tachybase/module-auth/client"),require("react/jsx-runtime"),require("react"),require("@tachybase/schema"),require("@tachybase/sdk"),require("@ant-design/icons"),require("antd"),require("react-i18next"),require("react-router-dom")):typeof define=="function"&&define.amd?define(["exports","@tachybase/client","@tachybase/module-auth/client","react/jsx-runtime","react","@tachybase/schema","@tachybase/sdk","@ant-design/icons","antd","react-i18next","react-router-dom"],t):(e=typeof globalThis!="undefined"?globalThis:e||self,t(e["@tachybase/plugin-auth-saml"]={},e["@tachybase/client"],e["@tachybase/module-auth"],e.jsxRuntime,e.react,e["@tachybase/schema"],e["@tachybase/sdk"],e["@ant-design/icons"],e.antd,e["react-i18next"],e["react-router-dom"]))})(this,function(e,t,u,r,l,y,g,i,a,m,v){"use strict";var I=(e,t,u)=>new Promise((r,l)=>{var y=a=>{try{i(u.next(a))}catch(m){l(m)}},g=a=>{try{i(u.throw(a))}catch(m){l(m)}},i=a=>a.done?r(a.value):Promise.resolve(a.value).then(y,g);i((u=u.apply(e,t)).next())});const F="SAML",C="saml";function q(o){return t.i18n.t(o,{ns:C})}function S(){return m.useTranslation(C)}const j={type:"object",properties:{saml:{type:"object",properties:{ssoUrl:{title:'{{t("SSO URL")}}',"x-component":"Input","x-decorator":"FormItem",required:!0},certificate:{title:'{{t("Public Certificate")}}',"x-component":"Input.TextArea","x-decorator":"FormItem",required:!0},idpIssuer:{title:"idP Issuer","x-component":"Input","x-decorator":"FormItem"},http:{title:'{{t("http")}}',"x-component":"Checkbox","x-decorator":"FormItem"},userBindField:{type:"string",title:'{{t("Use this field to bind the user")}}',"x-component":"Select","x-decorator":"FormItem",default:"email",enum:[{label:q("Email"),value:"email"},{label:q("Username"),value:"username"}],required:!0}}},public:{type:"object",properties:{autoSignup:{"x-decorator":"FormItem",type:"boolean",title:'{{t("Sign up automatically when the user does not exist")}}',"x-component":"Checkbox",default:!0}}},usage:{type:"void","x-component":"Usage"}}},k=y.observer(()=>{var c;const o=y.useForm(),f=t.useRecord(),{t:d}=S(),h=t.useApp(),s=(c=o.values.name)!=null?c:f.name,x=l.useMemo(()=>{var P;const n=h.getOptions(),p=(P=n==null?void 0:n.apiClient)==null?void 0:P.baseURL,{protocol:w,host:B}=window.location,A=g.getSubAppName(h.getPublicPath())||"main";return p.startsWith("http")?`${p}saml:redirect?authenticator=${s}&__appName=${A}`:`${w}//${B}${p}saml:redirect?authenticator=${s}&__appName=${A}`},[h,s]),b=n=>{navigator.clipboard.writeText(n),a.message.success(d("Copied"))};return r.jsxs(a.Card,{title:d("Usage"),type:"inner",children:[r.jsx(t.FormItem,{label:d("SP Issuer/EntityID"),children:r.jsx(t.Input,{value:s,disabled:!0,addonBefore:r.jsx(i.CopyOutlined,{onClick:()=>b(s)})})}),r.jsx(t.FormItem,{label:d("ACS URL"),children:r.jsx(t.Input,{value:x,disabled:!0,addonBefore:r.jsx(i.CopyOutlined,{onClick:()=>b(x)})})})]})},{displayName:"Usage"}),L=()=>{const{t:o}=S();return r.jsx(t.SchemaComponent,{scope:{t:o},components:{Usage:k},schema:j})},T=({authenticator:o})=>{const{t:f}=S(),d=t.useAPIClient(),h=v.useLocation(),s=new URLSearchParams(h.search),x=s.get("redirect"),b=()=>I(null,null,function*(){var p;const c=yield d.request({method:"post",url:"saml:getAuthUrl",headers:{"X-Authenticator":o.name},data:{redirect:x}}),n=(p=c==null?void 0:c.data)==null?void 0:p.data;window.location.replace(n)});return l.useEffect(()=>{const c=s.get("authenticator"),n=s.get("error");if(c===o.name&&n){a.message.error(n);return}}),r.jsx(a.Space,{direction:"vertical",className:t.css`
|
|
2
2
|
display: flex;
|
|
3
3
|
`,children:r.jsx(a.Button,{shape:"round",block:!0,icon:r.jsx(i.LoginOutlined,{}),onClick:b,children:f(o.title)})})};class U extends t.Plugin{load(){return I(this,null,function*(){this.app.pm.get(u).registerType(F,{components:{SignInButton:T,AdminSettingsForm:L}})})}}e.SamlPlugin=U,e.default=U,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/dist/externalVersion.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
module.exports = {
|
|
2
2
|
"react": "18.3.1",
|
|
3
|
-
"@tachybase/client": "1.3.
|
|
4
|
-
"@tachybase/schema": "1.3.
|
|
5
|
-
"@tachybase/sdk": "1.3.
|
|
3
|
+
"@tachybase/client": "1.3.18",
|
|
4
|
+
"@tachybase/schema": "1.3.18",
|
|
5
|
+
"@tachybase/sdk": "1.3.18",
|
|
6
6
|
"@ant-design/icons": "5.3.7",
|
|
7
7
|
"antd": "5.22.5",
|
|
8
|
-
"@tachybase/module-auth": "1.3.
|
|
8
|
+
"@tachybase/module-auth": "1.3.18",
|
|
9
9
|
"react-router-dom": "6.28.1",
|
|
10
|
-
"@tachybase/server": "1.3.
|
|
11
|
-
"@tachybase/auth": "1.3.
|
|
10
|
+
"@tachybase/server": "1.3.18",
|
|
11
|
+
"@tachybase/auth": "1.3.18",
|
|
12
12
|
"react-i18next": "15.2.0",
|
|
13
|
-
"@tachybase/actions": "1.3.
|
|
13
|
+
"@tachybase/actions": "1.3.18"
|
|
14
14
|
};
|
package/dist/index.js
CHANGED
|
@@ -26,12 +26,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var index_exports = {};
|
|
30
|
+
__export(index_exports, {
|
|
31
31
|
default: () => import_server.default
|
|
32
32
|
});
|
|
33
|
-
module.exports = __toCommonJS(
|
|
34
|
-
__reExport(
|
|
33
|
+
module.exports = __toCommonJS(index_exports);
|
|
34
|
+
__reExport(index_exports, require("./server"), module.exports);
|
|
35
35
|
var import_server = __toESM(require("./server"));
|
|
36
36
|
// Annotate the CommonJS export names for ESM import in node:
|
|
37
37
|
0 && (module.exports = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(){var e={7775:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.getSigner=r.getDigestAlgorithm=r.getSigningAlgorithm=void 0;const i=n(6982);function getSigningAlgorithm(e){switch(e){case"sha256":return"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";case"sha512":return"http://www.w3.org/2001/04/xmldsig-more#rsa-sha512";case"sha1":default:return"http://www.w3.org/2000/09/xmldsig#rsa-sha1"}}r.getSigningAlgorithm=getSigningAlgorithm;function getDigestAlgorithm(e){switch(e){case"sha256":return"http://www.w3.org/2001/04/xmlenc#sha256";case"sha512":return"http://www.w3.org/2001/04/xmlenc#sha512";case"sha1":default:return"http://www.w3.org/2000/09/xmldsig#sha1"}}r.getDigestAlgorithm=getDigestAlgorithm;function getSigner(e){switch(e){case"sha256":return i.createSign("RSA-SHA256");case"sha512":return i.createSign("RSA-SHA512");case"sha1":default:return i.createSign("RSA-SHA1")}}r.getSigner=getSigner},5232:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.removeCertPEMHeaderAndFooter=r.generateUniqueId=r.certToPEM=r.keyToPEM=void 0;const i=n(6982);const o=n(8581);const keyToPEM=e=>{(0,o.assertRequired)(e,"key is required");if(typeof e!=="string")return e;if(e.split(/\r?\n/).length!==1)return e;const r=e.match(/.{1,64}/g);if(r){const e=["-----BEGIN PRIVATE KEY-----",...r,"-----END PRIVATE KEY-----",""].join("\n");return e}throw new Error("Invalid key")};r.keyToPEM=keyToPEM;const certToPEM=e=>{const r=e.match(/.{1,64}/g);(0,o.assertRequired)(r,"cert is invalid");let n=r.join("\n");if(n.indexOf("-BEGIN CERTIFICATE-")===-1)n="-----BEGIN CERTIFICATE-----\n"+n;if(n.indexOf("-END CERTIFICATE-")===-1)n=n+"\n-----END CERTIFICATE-----\n";return n};r.certToPEM=certToPEM;const generateUniqueId=()=>"_"+i.randomBytes(20).toString("hex");r.generateUniqueId=generateUniqueId;const removeCertPEMHeaderAndFooter=e=>{e=e.replace(/-----BEGIN CERTIFICATE-----\r?\n?/,"");e=e.replace(/-----END CERTIFICATE-----\r?\n?/,"");e=e.replace(/\r\n/g,"\n");return e};r.removeCertPEMHeaderAndFooter=removeCertPEMHeaderAndFooter},2064:function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.dateStringToTimestamp=r.generateInstant=void 0;const generateInstant=()=>(new Date).toISOString();r.generateInstant=generateInstant;const dateStringToTimestamp=(e,r)=>{const n=Date.parse(e);if(isNaN(n)){throw new Error(`Error parsing ${r}: '${e}' is not a valid date`)}return n};r.dateStringToTimestamp=dateStringToTimestamp},3982:function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.InMemoryCacheProvider=void 0;class InMemoryCacheProvider{constructor(e){var r;this.lastPrune=0;this.cacheKeys={};this.options={...e,keyExpirationPeriodMs:(r=e.keyExpirationPeriodMs)!==null&&r!==void 0?r:288e5};this.prune=()=>{const e=(new Date).getTime();if(e>this.lastPrune+this.options.keyExpirationPeriodMs){const r=Object.keys(this.cacheKeys);const n=[];r.forEach((r=>{if(e>=this.cacheKeys[r].createdAt+this.options.keyExpirationPeriodMs){n.push(r)}}));n.forEach((e=>this.removeAsync(e)));this.lastPrune=e}};this.removeKeyIfExpired=async(e,r)=>{if(this.cacheKeys[e]&&r>=this.cacheKeys[e].createdAt+this.options.keyExpirationPeriodMs){await this.removeAsync(e)}}}async saveAsync(e,r){this.prune();const n=(new Date).getTime();await this.removeKeyIfExpired(e,n);if(!this.cacheKeys[e]){this.cacheKeys[e]={createdAt:n,value:r};return this.cacheKeys[e]}else{return null}}async getAsync(e){this.prune();const r=(new Date).getTime();await this.removeKeyIfExpired(e,r);if(this.cacheKeys[e]){return this.cacheKeys[e].value}else{return null}}async removeAsync(e){if(e!=null&&this.cacheKeys[e]){delete this.cacheKeys[e];return e}else{return null}}}r.InMemoryCacheProvider=InMemoryCacheProvider},1800:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.generateServiceProviderMetadata=void 0;const i=n(5232);const o=n(8748);const s=n(8581);const a=n(9392);const generateServiceProviderMetadata=e=>{const{issuer:r,callbackUrl:n,logoutCallbackUrl:u,identifierFormat:l,wantAssertionsSigned:c,decryptionPvk:p,privateKey:h,metadataContactPerson:f,metadataOrganization:d,generateUniqueId:m}=e;let{signingCerts:g,decryptionCert:y}=e;if(p!=null){if(!y){throw new Error("Missing decryptionCert while generating metadata for decrypting service provider")}}else{y=null}if(h!=null){if(!g){throw new Error("Missing signingCert while generating metadata for signing service provider messages")}g=!Array.isArray(g)?[g]:g}else{g=null}const w={EntityDescriptor:{"@xmlns":"urn:oasis:names:tc:SAML:2.0:metadata","@xmlns:ds":"http://www.w3.org/2000/09/xmldsig#","@entityID":r,"@ID":m(),SPSSODescriptor:{"@protocolSupportEnumeration":"urn:oasis:names:tc:SAML:2.0:protocol","@AuthnRequestsSigned":"false"},...f?{ContactPerson:f}:{},...d?{Organization:d}:{}}};if(y!=null||g!=null){w.EntityDescriptor.SPSSODescriptor.KeyDescriptor=[];if((0,o.isValidSamlSigningOptions)(e)){(0,s.assertRequired)(g,"Missing signingCert while generating metadata for signing service provider messages");w.EntityDescriptor.SPSSODescriptor["@AuthnRequestsSigned"]=true;const e=Array.isArray(g)?g:[g];const r=e.map((e=>({"@use":"signing","ds:KeyInfo":{"ds:X509Data":{"ds:X509Certificate":{"#text":(0,i.removeCertPEMHeaderAndFooter)(e)}}}})));w.EntityDescriptor.SPSSODescriptor.KeyDescriptor.push(r)}if(p!=null){(0,s.assertRequired)(y,"Missing decryptionCert while generating metadata for decrypting service provider");y=(0,i.removeCertPEMHeaderAndFooter)(y);w.EntityDescriptor.SPSSODescriptor.KeyDescriptor.push({"@use":"encryption","ds:KeyInfo":{"ds:X509Data":{"ds:X509Certificate":{"#text":y}}},EncryptionMethod:[{"@Algorithm":"http://www.w3.org/2009/xmlenc11#aes256-gcm"},{"@Algorithm":"http://www.w3.org/2009/xmlenc11#aes128-gcm"},{"@Algorithm":"http://www.w3.org/2001/04/xmlenc#aes256-cbc"},{"@Algorithm":"http://www.w3.org/2001/04/xmlenc#aes128-cbc"}]})}}if(u!=null){w.EntityDescriptor.SPSSODescriptor.SingleLogoutService={"@Binding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST","@Location":u}}if(l!=null){w.EntityDescriptor.SPSSODescriptor.NameIDFormat=l}if(c){w.EntityDescriptor.SPSSODescriptor["@WantAssertionsSigned"]=true}w.EntityDescriptor.SPSSODescriptor.AssertionConsumerService={"@index":"1","@isDefault":"true","@Binding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST","@Location":n};let v=(0,a.buildXmlBuilderObject)(w,true);if(e.signMetadata===true&&(0,o.isValidSamlSigningOptions)(e)){v=(0,s.signXmlMetadata)(v,{privateKey:e.privateKey,signatureAlgorithm:e.signatureAlgorithm,xmlSignatureTransforms:e.xmlSignatureTransforms,digestAlgorithm:e.digestAlgorithm})}return v};r.generateServiceProviderMetadata=generateServiceProviderMetadata},9165:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.signAuthnRequestPost=r.signSamlPost=void 0;const i=n(9392);const o='/*[local-name(.)="AuthnRequest" and namespace-uri(.)="urn:oasis:names:tc:SAML:2.0:protocol"]';const s='/*[local-name(.)="Issuer" and namespace-uri(.)="urn:oasis:names:tc:SAML:2.0:assertion"]';function signSamlPost(e,r,n){return(0,i.signXml)(e,r,{reference:r+s,action:"after"},n)}r.signSamlPost=signSamlPost;function signAuthnRequestPost(e,r){return signSamlPost(e,o,r)}r.signAuthnRequestPost=signAuthnRequestPost},5720:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.SAML=void 0;const i=n(2366);const o=(0,i.default)("node-saml");const s=n(3106);const a=n(6982);const u=n(7016);const l=n(3480);const c=n(9023);const p=n(3982);const h=n(7775);const f=n(8748);const d=n(8581);const m=n(9392);const g=n(5232);const y=n(2064);const w=n(9165);const v=n(1800);const b=c.promisify(s.inflateRaw);const N=c.promisify(s.deflateRaw);class SAML{constructor(e){this.options=this.initialize(e);this.cacheProvider=this.options.cacheProvider}initialize(e){var r,n,i,o,s,a,u,l,c,h,m,y,w,v,b,N,E,T,D,S,A,O,x,I,L,P,C,M;if(!e){throw new TypeError("SamlOptions required on construction")}(0,d.assertRequired)(e.issuer,"issuer is required");(0,d.assertRequired)(e.cert,"cert is required");(0,d.assertBooleanIfPresent)(e.passive);(0,d.assertBooleanIfPresent)(e.disableRequestedAuthnContext);(0,d.assertBooleanIfPresent)(e.forceAuthn);(0,d.assertBooleanIfPresent)(e.skipRequestCompression);(0,d.assertBooleanIfPresent)(e.disableRequestAcsUrl);(0,d.assertBooleanIfPresent)(e.allowCreate);(0,d.assertBooleanIfPresent)(e.wantAssertionsSigned);(0,d.assertBooleanIfPresent)(e.wantAuthnResponseSigned);(0,d.assertBooleanIfPresent)(e.signMetadata);const X={...e,passive:(r=e.passive)!==null&&r!==void 0?r:false,disableRequestedAuthnContext:(n=e.disableRequestedAuthnContext)!==null&&n!==void 0?n:false,additionalParams:(i=e.additionalParams)!==null&&i!==void 0?i:{},additionalAuthorizeParams:(o=e.additionalAuthorizeParams)!==null&&o!==void 0?o:{},additionalLogoutParams:(s=e.additionalLogoutParams)!==null&&s!==void 0?s:{},forceAuthn:(a=e.forceAuthn)!==null&&a!==void 0?a:false,skipRequestCompression:(u=e.skipRequestCompression)!==null&&u!==void 0?u:false,disableRequestAcsUrl:(l=e.disableRequestAcsUrl)!==null&&l!==void 0?l:false,acceptedClockSkewMs:(c=e.acceptedClockSkewMs)!==null&&c!==void 0?c:0,maxAssertionAgeMs:(h=e.maxAssertionAgeMs)!==null&&h!==void 0?h:0,path:(m=e.path)!==null&&m!==void 0?m:"/saml/consume",host:(y=e.host)!==null&&y!==void 0?y:"localhost",issuer:e.issuer,audience:(v=(w=e.audience)!==null&&w!==void 0?w:e.issuer)!==null&&v!==void 0?v:"unknown_audience",identifierFormat:e.identifierFormat===undefined?"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress":e.identifierFormat,allowCreate:(b=e.allowCreate)!==null&&b!==void 0?b:true,spNameQualifier:e.spNameQualifier,wantAssertionsSigned:(N=e.wantAssertionsSigned)!==null&&N!==void 0?N:true,wantAuthnResponseSigned:(E=e.wantAuthnResponseSigned)!==null&&E!==void 0?E:true,authnContext:(T=e.authnContext)!==null&&T!==void 0?T:["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"],validateInResponseTo:(D=e.validateInResponseTo)!==null&&D!==void 0?D:f.ValidateInResponseTo.never,cert:e.cert,requestIdExpirationPeriodMs:(S=e.requestIdExpirationPeriodMs)!==null&&S!==void 0?S:288e5,cacheProvider:(A=e.cacheProvider)!==null&&A!==void 0?A:new p.InMemoryCacheProvider({keyExpirationPeriodMs:e.requestIdExpirationPeriodMs}),logoutUrl:(x=(O=e.logoutUrl)!==null&&O!==void 0?O:e.entryPoint)!==null&&x!==void 0?x:"",signatureAlgorithm:(I=e.signatureAlgorithm)!==null&&I!==void 0?I:"sha1",authnRequestBinding:(L=e.authnRequestBinding)!==null&&L!==void 0?L:"HTTP-Redirect",generateUniqueId:(P=e.generateUniqueId)!==null&&P!==void 0?P:g.generateUniqueId,signMetadata:(C=e.signMetadata)!==null&&C!==void 0?C:false,racComparison:(M=e.racComparison)!==null&&M!==void 0?M:"exact"};if(!["exact","minimum","maximum","better"].includes(X.racComparison)){throw new TypeError("racComparison must be one of ['exact', 'minimum', 'maximum', 'better']")}return X}getCallbackUrl(e){if(this.options.callbackUrl){return this.options.callbackUrl}else{const r=new u.URL("http://localhost");if(e){r.host=e}else{r.host=this.options.host}if(this.options.protocol){r.protocol=this.options.protocol}r.pathname=this.options.path;return r.toString()}}signRequest(e){(0,d.assertRequired)(this.options.privateKey,"privateKey is required");const r={};e.SigAlg=h.getSigningAlgorithm(this.options.signatureAlgorithm);const n=h.getSigner(this.options.signatureAlgorithm);if(e.SAMLRequest){r.SAMLRequest=e.SAMLRequest}if(e.SAMLResponse){r.SAMLResponse=e.SAMLResponse}if(e.RelayState){r.RelayState=e.RelayState}if(e.SigAlg){r.SigAlg=e.SigAlg}n.update(l.stringify(r));e.Signature=n.sign((0,g.keyToPEM)(this.options.privateKey),"base64")}async generateAuthorizeRequestAsync(e,r,n){(0,d.assertRequired)(this.options.entryPoint,"entryPoint is required");const i=this.options.generateUniqueId();const o=(0,y.generateInstant)();if(this.mustValidateInResponseTo(true)){await this.cacheProvider.saveAsync(i,o)}const s={"samlp:AuthnRequest":{"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol","@ID":i,"@Version":"2.0","@IssueInstant":o,"@ProtocolBinding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST","@Destination":this.options.entryPoint,"saml:Issuer":{"@xmlns:saml":"urn:oasis:names:tc:SAML:2.0:assertion","#text":this.options.issuer}}};if(e)s["samlp:AuthnRequest"]["@IsPassive"]=true;if(this.options.forceAuthn===true){s["samlp:AuthnRequest"]["@ForceAuthn"]=true}if(!this.options.disableRequestAcsUrl){s["samlp:AuthnRequest"]["@AssertionConsumerServiceURL"]=this.getCallbackUrl(n)}const a=this.options.samlAuthnRequestExtensions;if(a!=null){if(typeof a!="object"){throw new TypeError("samlAuthnRequestExtensions should be Object")}s["samlp:AuthnRequest"]["samlp:Extensions"]={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol",...a}}const u={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol","@AllowCreate":this.options.allowCreate};if(this.options.identifierFormat!=null){u["@Format"]=this.options.identifierFormat}if(this.options.spNameQualifier!=null){u["@SPNameQualifier"]=this.options.spNameQualifier}s["samlp:AuthnRequest"]["samlp:NameIDPolicy"]=u;if(!this.options.disableRequestedAuthnContext){const e=[];this.options.authnContext.forEach((function(r){e.push({"@xmlns:saml":"urn:oasis:names:tc:SAML:2.0:assertion","#text":r})}));s["samlp:AuthnRequest"]["samlp:RequestedAuthnContext"]={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol","@Comparison":this.options.racComparison,"saml:AuthnContextClassRef":e}}if(this.options.attributeConsumingServiceIndex!=null){s["samlp:AuthnRequest"]["@AttributeConsumingServiceIndex"]=this.options.attributeConsumingServiceIndex}if(this.options.providerName!=null){s["samlp:AuthnRequest"]["@ProviderName"]=this.options.providerName}if(this.options.scoping!=null){const e={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol"};if(typeof this.options.scoping.proxyCount==="number"){e["@ProxyCount"]=this.options.scoping.proxyCount}if(this.options.scoping.idpList){e["samlp:IDPList"]=this.options.scoping.idpList.map((e=>{const r={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol"};if(e.entries){r["samlp:IDPEntry"]=e.entries.map((e=>{const r={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol"};r["@ProviderID"]=e.providerId;if(e.name){r["@Name"]=e.name}if(e.loc){r["@Loc"]=e.loc}return r}))}if(e.getComplete){r["samlp:GetComplete"]=e.getComplete}return r}))}if(this.options.scoping.requesterId){e["samlp:RequesterID"]=this.options.scoping.requesterId}s["samlp:AuthnRequest"]["samlp:Scoping"]=e}let l=(0,m.buildXmlBuilderObject)(s,false);if(r&&(0,f.isValidSamlSigningOptions)(this.options)){l=(0,w.signAuthnRequestPost)(l,this.options)}return l}async _generateLogoutRequest(e){const r=this.options.generateUniqueId();const n=(0,y.generateInstant)();const i={"samlp:LogoutRequest":{"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol","@xmlns:saml":"urn:oasis:names:tc:SAML:2.0:assertion","@ID":r,"@Version":"2.0","@IssueInstant":n,"@Destination":this.options.logoutUrl,"saml:Issuer":{"@xmlns:saml":"urn:oasis:names:tc:SAML:2.0:assertion","#text":this.options.issuer},"samlp:Extensions":{},"saml:NameID":{"@Format":e.nameIDFormat,"#text":e.nameID}}};const o=this.options.samlLogoutRequestExtensions;if(o!=null){if(typeof o!="object"){throw new TypeError("samlLogoutRequestExtensions should be Object")}i["samlp:LogoutRequest"]["samlp:Extensions"]={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol",...o}}else{delete i["samlp:LogoutRequest"]["samlp:Extensions"]}if(e.nameQualifier!=null){i["samlp:LogoutRequest"]["saml:NameID"]["@NameQualifier"]=e.nameQualifier}if(e.spNameQualifier!=null){i["samlp:LogoutRequest"]["saml:NameID"]["@SPNameQualifier"]=e.spNameQualifier}if(e.sessionIndex){i["samlp:LogoutRequest"]["saml2p:SessionIndex"]={"@xmlns:saml2p":"urn:oasis:names:tc:SAML:2.0:protocol","#text":e.sessionIndex}}await this.cacheProvider.saveAsync(r,n);return(0,m.buildXmlBuilderObject)(i,false)}_generateLogoutResponse(e,r){const n=this.options.generateUniqueId();const i=(0,y.generateInstant)();const o={"samlp:StatusCode":{"@Value":"urn:oasis:names:tc:SAML:2.0:status:Success"}};const s={"samlp:StatusCode":{"@Value":"urn:oasis:names:tc:SAML:2.0:status:Requester","samlp:StatusCode":{"@Value":"urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal"}}};const a={"samlp:LogoutResponse":{"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol","@xmlns:saml":"urn:oasis:names:tc:SAML:2.0:assertion","@ID":n,"@Version":"2.0","@IssueInstant":i,"@Destination":this.options.logoutUrl,"@InResponseTo":e.ID,"saml:Issuer":{"#text":this.options.issuer},"samlp:Status":r?o:s}};return(0,m.buildXmlBuilderObject)(a,false)}async _requestToUrlAsync(e,r,n,i){(0,d.assertRequired)(this.options.entryPoint,"entryPoint is required");const o=e||r;(0,d.assertRequired)(o,"either request or response is required");let s;if(this.options.skipRequestCompression){s=Buffer.from(o,"utf8")}else{s=await N(o)}const a=s.toString("base64");let l=new u.URL(this.options.entryPoint);if(n==="logout"){if(this.options.logoutUrl){l=new u.URL(this.options.logoutUrl)}}else if(n!=="authorize"){throw new Error("Unknown operation: "+n)}const c=e?{SAMLRequest:a}:{SAMLResponse:a};Object.keys(i).forEach((e=>{c[e]=i[e]}));if((0,f.isValidSamlSigningOptions)(this.options)){if(!this.options.entryPoint){throw new Error('"entryPoint" config parameter is required for signed messages')}this.signRequest(c)}Object.keys(c).forEach((e=>{l.searchParams.set(e,c[e])}));return l.toString()}_getAdditionalParams(e,r,n){const i={};if(typeof e==="string"&&e.length>0){i.RelayState=e}return Object.assign(i,this.options.additionalParams,r==="logout"?this.options.additionalLogoutParams:this.options.additionalAuthorizeParams,n!==null&&n!==void 0?n:{})}async getAuthorizeUrlAsync(e,r,n){const i=await this.generateAuthorizeRequestAsync(this.options.passive,false,r);const o="authorize";const s=n?n.additionalParams||{}:{};return await this._requestToUrlAsync(i,null,o,this._getAdditionalParams(e,o,s))}async getAuthorizeFormAsync(e,r){(0,d.assertRequired)(this.options.entryPoint,"entryPoint is required");const quoteattr=function(e,r){const n=r?" ":"\n";return(""+e).replace(/&/g,"&").replace(/'/g,"'").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">").replace(/\r\n/g,n).replace(/[\r\n]/g,n)};const n=await this.generateAuthorizeRequestAsync(this.options.passive,true,r);let i;if(this.options.skipRequestCompression){i=Buffer.from(n,"utf8")}else{i=await N(n)}const o="authorize";const s=this._getAdditionalParams(e,o);const a={SAMLRequest:i.toString("base64")};Object.keys(s).forEach((e=>{a[e]=s[e]||""}));const u=Object.keys(a).map((e=>'<input type="hidden" name="'+e+'" value="'+quoteattr(a[e])+'" />')).join("\r\n");return["<!DOCTYPE html>","<html>","<head>",'<meta charset="utf-8">','<meta http-equiv="x-ua-compatible" content="ie=edge">',"</head>",'<body onload="document.forms[0].submit()">',"<noscript>","<p><strong>Note:</strong> Since your browser does not support JavaScript, you must press the button below once to proceed.</p>","</noscript>",'<form method="post" action="'+encodeURI(this.options.entryPoint)+'">',u,'<input type="submit" value="Submit" />',"</form>",'<script>document.forms[0].style.display="none";<\/script>',"</body>","</html>"].join("\r\n")}async getLogoutUrlAsync(e,r,n){const i=await this._generateLogoutRequest(e);const o="logout";const s=n?n.additionalParams||{}:{};return await this._requestToUrlAsync(i,null,o,this._getAdditionalParams(r,o,s))}getLogoutResponseUrl(e,r,n,i,o){c.callbackify((()=>this.getLogoutResponseUrlAsync(e,r,n,i)))(o)}async getLogoutResponseUrlAsync(e,r,n,i){const o=this._generateLogoutResponse(e,i);const s="logout";const a=n?n.additionalParams||{}:{};return await this._requestToUrlAsync(null,o,s,this._getAdditionalParams(r,s,a))}async certsToCheck(){let e;if(typeof this.options.cert==="function"){e=await c.promisify(this.options.cert)().then((e=>{(0,d.assertRequired)(e,"callback didn't return cert");if(!Array.isArray(e)){e=[e]}return e}))}else if(Array.isArray(this.options.cert)){e=this.options.cert}else{e=[this.options.cert]}e.forEach((e=>{(0,d.assertRequired)(e,"unknown cert found")}));return e}async validatePostResponseAsync(e){var r,n,i,s;let a;let u;let l=null;try{a=Buffer.from(e.SAMLResponse,"base64").toString("utf8");u=await(0,m.parseDomFromString)(a);const o=m.xpath.selectAttributes(u,"/*[local-name()='Response']/@InResponseTo");if(o){l=o.length?o[0].nodeValue:null;await this.validateInResponseTo(l)}const c=await this.certsToCheck();let p=false;if((0,m.validateSignature)(a,u.documentElement,c)){p=true}if(this.options.wantAuthnResponseSigned===true&&p===false){throw new Error("Invalid document signature")}const h=m.xpath.selectElements(u,"/*[local-name()='Response']/*[local-name()='Assertion']");const g=m.xpath.selectElements(u,"/*[local-name()='Response']/*[local-name()='EncryptedAssertion']");if(h.length+g.length>1){throw new Error("Invalid signature: multiple assertions")}if(h.length==1){if((this.options.wantAssertionsSigned||!p)&&!(0,m.validateSignature)(a,h[0],c)){throw new Error("Invalid signature")}return await this.processValidlySignedAssertionAsync(h[0].toString(),a,l)}if(g.length==1){(0,d.assertRequired)(this.options.decryptionPvk,"No decryption key for encrypted SAML response");const e=g[0].toString();const r=await(0,m.decryptXml)(e,this.options.decryptionPvk);const n=await(0,m.parseDomFromString)(r);const i=m.xpath.selectElements(n,"/*[local-name()='Assertion']");if(i.length!=1)throw new Error("Invalid EncryptedAssertion content");if((this.options.wantAssertionsSigned||!p)&&!(0,m.validateSignature)(r,i[0],c)){throw new Error("Invalid signature from encrypted assertion")}return await this.processValidlySignedAssertionAsync(i[0].toString(),a,l)}const y=await(0,m.parseXml2JsFromString)(a);const w=y.Response;if(w){if(!("Assertion"in w)){const e=w.Status;if(e){const o=e[0].StatusCode;if(o&&((r=o[0].$)===null||r===void 0?void 0:r.Value)==="urn:oasis:names:tc:SAML:2.0:status:Responder"){const e=o[0].StatusCode;if(e&&((n=e[0].$)===null||n===void 0?void 0:n.Value)==="urn:oasis:names:tc:SAML:2.0:status:NoPassive"){if(!p){throw new Error("Invalid signature: NoPassive")}return{profile:null,loggedOut:false}}}if(o&&((i=o[0].$)===null||i===void 0?void 0:i.Value)){const r=o[0].$.Value.match(/[^:]*$/);if(r&&r[0]!="Success"){let n="unspecified";if(e[0].StatusMessage){n=e[0].StatusMessage[0]._||n}else if(o[0].StatusCode){const e=(s=o[0].StatusCode[0].$)===null||s===void 0?void 0:s.Value.match(/[^:]*$/);n=e?e[0]:n}const i=(0,m.buildXml2JsObject)("Status",e[0]);throw new f.ErrorWithXmlStatus("SAML provider returned "+r+" error: "+n,i)}}}}throw new Error("Missing SAML assertion")}else{if(!p){throw new Error("Invalid signature: No response found")}const e=y.LogoutResponse;if(e){return{profile:null,loggedOut:true}}else{throw new Error("Unknown SAML response message")}}}catch(e){o("validatePostResponse resulted in an error: %s",e);if(this.mustValidateInResponseTo(Boolean(l))){await this.cacheProvider.removeAsync(l)}throw e}}async validateInResponseTo(e){if(this.mustValidateInResponseTo(Boolean(e))){if(e){const r=await this.cacheProvider.getAsync(e);if(!r)throw new Error("InResponseTo is not valid");return}else{throw new Error("InResponseTo is missing from response")}}}async validateRedirectAsync(e,r){const n=e.SAMLRequest?"SAMLRequest":"SAMLResponse";const i=Buffer.from(e[n],"base64");const o=await b(i);const s=await(0,m.parseDomFromString)(o.toString());const a=await(0,m.parseXml2JsFromString)(o);n==="SAMLResponse"?await this.verifyLogoutResponse(a):this.verifyLogoutRequest(a);await this.hasValidSignatureForRedirect(e,r);return await this.processValidlySignedSamlLogoutAsync(a,s)}async hasValidSignatureForRedirect(e,r){const n=r.split("&");const getParam=e=>{const r=n.filter((r=>new RegExp(e).test(r)));return r[0]};if(e.Signature){let r=getParam("SAMLRequest")||getParam("SAMLResponse");if(getParam("RelayState")){r+="&"+getParam("RelayState")}r+="&"+getParam("SigAlg");const n=await this.certsToCheck();const i=n.some((n=>this.validateSignatureForRedirect(r,e.Signature,e.SigAlg,n)));if(!i){throw new Error("Invalid query signature")}}else{return true}}validateSignatureForRedirect(e,r,n,i){function hasMatch(e){const r=n.toLowerCase().replace(/.*#(.*)$/,"$1");return e.toLowerCase()===r}const o=a.getHashes().findIndex(hasMatch);let s;if(o>-1){s=a.getHashes()[o]}else{throw new Error(n+" is not supported")}const u=a.createVerify(s);u.update(e);return u.verify((0,g.certToPEM)(i),r,"base64")}verifyLogoutRequest(e){this.verifyIssuer(e.LogoutRequest);const r=(new Date).getTime();const n=e.LogoutRequest.$;const i=this.checkTimestampsValidityError(r,n.NotBefore,n.NotOnOrAfter);if(i){throw i}}async verifyLogoutResponse(e){const r=e.LogoutResponse.Status[0].StatusCode[0].$.Value;if(r!=="urn:oasis:names:tc:SAML:2.0:status:Success")throw new Error("Bad status code: "+r);this.verifyIssuer(e.LogoutResponse);const n=e.LogoutResponse.$.InResponseTo;if(n){return this.validateInResponseTo(n)}return}verifyIssuer(e){if(this.options.idpIssuer!=null){const r=e.Issuer;if(r){if(r[0]._!==this.options.idpIssuer)throw new Error("Unknown SAML issuer. Expected: "+this.options.idpIssuer+" Received: "+r[0]._)}else{throw new Error("Missing SAML issuer")}}}async processValidlySignedAssertionAsync(e,r,n){let i;const o=(new Date).getTime();const s={};const a=await(0,m.parseXml2JsFromString)(e);const u=a;const l=a.Assertion;e:{const e=l.Issuer;if(e&&e[0]._){s.issuer=e[0]._}if(n!=null){s.inResponseTo=n}const r=l.AuthnStatement;if(r){if(r[0].$&&r[0].$.SessionIndex){s.sessionIndex=r[0].$.SessionIndex}}const a=l.Subject;let u;let c=null;let p=null;if(a){const e=a[0].NameID;if(e&&e[0]._){s.nameID=e[0]._;if(e[0].$&&e[0].$.Format){s.nameIDFormat=e[0].$.Format;s.nameQualifier=e[0].$.NameQualifier;s.spNameQualifier=e[0].$.SPNameQualifier}}p=a[0].SubjectConfirmation;u=p===null||p===void 0?void 0:p.find((e=>{var r;const n=(r=e.SubjectConfirmationData)===null||r===void 0?void 0:r[0];if(n===null||n===void 0?void 0:n.$){const e=n.$.NotBefore;const r=n.$.NotOnOrAfter;const i=this.calcMaxAgeAssertionTime(this.options.maxAssertionAgeMs,r,l.$.IssueInstant);const s=this.checkTimestampsValidityError(o,e,r,i);if(s===null)return true}return false}));if(u!=null){c=u.SubjectConfirmationData[0]}}if(this.mustValidateInResponseTo(Boolean(n))){if(u){if(c===null||c===void 0?void 0:c.$){const e=c.$.InResponseTo;if(n&&e&&e!=n){await this.cacheProvider.removeAsync(n);throw new Error("InResponseTo does not match subjectInResponseTo")}else if(e){let r=false;const i=await this.cacheProvider.getAsync(e);if(i){const e=new Date(i);if(o<e.getTime()+this.options.requestIdExpirationPeriodMs)r=true}await this.cacheProvider.removeAsync(n);if(!r){throw new Error("SubjectInResponseTo is not valid")}break e}}}else{if(p!=null&&u==null){i="No valid subject confirmation found among those available in the SAML assertion";throw new Error(i)}else{await this.cacheProvider.removeAsync(n);break e}}}else{break e}}const c=l.Conditions?l.Conditions[0]:null;if(l.Conditions&&l.Conditions.length>1){i="Unable to process multiple conditions in SAML assertion";throw new Error(i)}if(c&&c.$){const e=this.calcMaxAgeAssertionTime(this.options.maxAssertionAgeMs,c.$.NotOnOrAfter,l.$.IssueInstant);const r=this.checkTimestampsValidityError(o,c.$.NotBefore,c.$.NotOnOrAfter,e);if(r)throw r}if(this.options.audience!==false){const e=this.checkAudienceValidityError(this.options.audience,c.AudienceRestriction);if(e)throw e}const p=l.AttributeStatement;if(p){const e=[].concat(...p.filter((e=>Array.isArray(e.Attribute))).map((e=>e.Attribute)));const attrValueMapper=e=>{const r=Object.keys(e).some((e=>e!=="_"&&e!=="$"));return r?e:e._};if(e.length>0){const r={};e.forEach((e=>{if(!Object.prototype.hasOwnProperty.call(e,"AttributeValue")){return}const n=e.$.Name;const i=e.AttributeValue.length===1?attrValueMapper(e.AttributeValue[0]):e.AttributeValue.map(attrValueMapper);r[n]=i;if(Object.prototype.hasOwnProperty.call(s,n)){return}s[n]=i}));s.attributes=r}}if(!s.mail&&s["urn:oid:0.9.2342.19200300.100.1.3"]){s.mail=s["urn:oid:0.9.2342.19200300.100.1.3"]}if(!s.email&&s.mail){s.email=s.mail}s.getAssertionXml=()=>e.toString();s.getAssertion=()=>u;s.getSamlResponseXml=()=>r;return{profile:s,loggedOut:false}}checkTimestampsValidityError(e,r,n,i){if(this.options.acceptedClockSkewMs==-1)return null;if(r){const n=(0,y.dateStringToTimestamp)(r,"NotBefore");if(e+this.options.acceptedClockSkewMs<n)return new Error("SAML assertion not yet valid")}if(n){const r=(0,y.dateStringToTimestamp)(n,"NotOnOrAfter");if(e-this.options.acceptedClockSkewMs>=r)return new Error("SAML assertion expired: clocks skewed too much")}if(i){if(e-this.options.acceptedClockSkewMs>=i)return new Error("SAML assertion expired: assertion too old")}return null}checkAudienceValidityError(e,r){if(!r||r.length<1){return new Error("SAML assertion has no AudienceRestriction")}const n=r.map((r=>{if(!r.Audience||!r.Audience[0]||!r.Audience[0]._){return new Error("SAML assertion AudienceRestriction has no Audience value")}if(r.Audience[0]._!==e){return new Error("SAML assertion audience mismatch")}return null})).filter((e=>e!==null));if(n.length>0){return n[0]}return null}async validatePostRequestAsync(e){const r=Buffer.from(e.SAMLRequest,"base64").toString("utf8");const n=await(0,m.parseDomFromString)(r);const i=await(0,m.parseXml2JsFromString)(r);const o=await this.certsToCheck();if(!(0,m.validateSignature)(r,n.documentElement,o)){throw new Error("Invalid signature on documentElement")}return await this.processValidlySignedPostRequestAsync(i,n)}async processValidlySignedPostRequestAsync(e,r){var n;const i=e.LogoutRequest;this.verifyLogoutRequest(e);if(i){const e={};if(i.$.ID){e.ID=i.$.ID}else{throw new Error("Missing SAML LogoutRequest ID")}const o=i.Issuer;if(o&&o[0]._){e.issuer=o[0]._}else{throw new Error("Missing SAML issuer")}const s=await(0,m.getNameIdAsync)(r,(n=this.options.decryptionPvk)!==null&&n!==void 0?n:null);if(s.value){e.nameID=s.value;if(s.format){e.nameIDFormat=s.format}}else{throw new Error("Missing SAML NameID")}const a=i.SessionIndex;if(a){e.sessionIndex=a[0]._}return{profile:e,loggedOut:true}}else{throw new Error("Unknown SAML request message")}}async processValidlySignedSamlLogoutAsync(e,r){const n=e.LogoutResponse;const i=e.LogoutRequest;if(n){return{profile:null,loggedOut:true}}else if(i){return await this.processValidlySignedPostRequestAsync(e,r)}else{throw new Error("Unknown SAML response message")}}generateServiceProviderMetadata(e,r){const n=this.getCallbackUrl();return(0,v.generateServiceProviderMetadata)({...this.options,callbackUrl:n,decryptionCert:e,signingCerts:r})}calcMaxAgeAssertionTime(e,r,n){const i=(0,y.dateStringToTimestamp)(r,"NotOnOrAfter");const o=(0,y.dateStringToTimestamp)(n,"IssueInstant");if(e===0){return i}const s=o+e;return s<i?s:i}mustValidateInResponseTo(e){return this.options.validateInResponseTo===f.ValidateInResponseTo.always||this.options.validateInResponseTo===f.ValidateInResponseTo.ifPresent&&e}}r.SAML=SAML},8748:function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.ErrorWithXmlStatus=r.ValidateInResponseTo=r.isValidSamlSigningOptions=void 0;const isValidSamlSigningOptions=e=>e.privateKey!=null;r.isValidSamlSigningOptions=isValidSamlSigningOptions;var n;(function(e){e["never"]="never";e["ifPresent"]="ifPresent";e["always"]="always"})(n=r.ValidateInResponseTo||(r.ValidateInResponseTo={}));class ErrorWithXmlStatus extends Error{constructor(e,r){super(e);this.xmlStatus=r}}r.ErrorWithXmlStatus=ErrorWithXmlStatus},8581:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.signXmlMetadata=r.signXmlResponse=r.assertBooleanIfPresent=r.assertRequired=void 0;const i=n(9392);function assertRequired(e,r){if(e===undefined||e===null||typeof e==="string"&&e.length===0){throw new TypeError(r!==null&&r!==void 0?r:"value does not exist")}}r.assertRequired=assertRequired;function assertBooleanIfPresent(e,r){if(e!=null&&typeof e!="boolean"){throw new TypeError(r!==null&&r!==void 0?r:"value is set but not boolean")}}r.assertBooleanIfPresent=assertBooleanIfPresent;function signXmlResponse(e,r){const n='//*[local-name(.)="Response" and namespace-uri(.)="urn:oasis:names:tc:SAML:2.0:protocol"]';return(0,i.signXml)(e,n,{reference:n,action:"append"},r)}r.signXmlResponse=signXmlResponse;function signXmlMetadata(e,r){const n='//*[local-name(.)="EntityDescriptor" and namespace-uri(.)="urn:oasis:names:tc:SAML:2.0:metadata"]';return(0,i.signXml)(e,n,{reference:n,action:"prepend"},r)}r.signXmlMetadata=signXmlMetadata},9392:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.getNameIdAsync=r.promiseWithNameId=r.buildXmlBuilderObject=r.buildXml2JsObject=r.parseXml2JsFromString=r.parseDomFromString=r.signXml=r.validateXmlSignatureForCert=r.validateSignature=r.decryptXml=r.xpath=void 0;const i=n(9023);const o=n(6877);const s=n(197);const a=n(8737);const u=n(8123);const l=n(4512);const c=n(8748);const p=n(7775);const h=n(8581);const f=n(5232);const selectXPath=(e,r,n)=>{const i=o.xpath(r,n);if(!e(i)){throw new Error("invalid xpath return type")}return i};const attributesXPathTypeGuard=e=>e.every((e=>{if(typeof e!="object"){return false}return typeof e.nodeType==="number"&&e.nodeType===e.ATTRIBUTE_NODE}));const elementsXPathTypeGuard=e=>e.every((e=>{if(typeof e!="object"){return false}return typeof e.nodeType==="number"&&e.nodeType===e.ELEMENT_NODE}));r.xpath={selectAttributes:(e,r)=>selectXPath(attributesXPathTypeGuard,e,r),selectElements:(e,r)=>selectXPath(elementsXPathTypeGuard,e,r)};const decryptXml=async(e,r)=>i.promisify(s.decrypt).bind(s)(e,{key:r});r.decryptXml=decryptXml;const normalizeNewlines=e=>e.replace(/\r\n?/g,"\n");const validateSignature=(e,n,i)=>{const o=".//*["+"local-name(.)='Signature' and "+"namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#' and "+"descendant::*[local-name(.)='Reference' and @URI='#"+n.getAttribute("ID")+"']"+"]";const s=r.xpath.selectElements(n,o);if(s.length!==1){return false}const a=".//*["+"local-name(.)='Transform' and "+"namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#' and "+"ancestor::*[local-name(.)='Reference' and @URI='#"+n.getAttribute("ID")+"']"+"]";const u=r.xpath.selectElements(n,a);if(u.length>2){throw new Error("Invalid signature, too many transforms")}const l=s[0];return i.some((i=>(0,r.validateXmlSignatureForCert)(l,(0,f.certToPEM)(i),e,n)))};r.validateSignature=validateSignature;const validateXmlSignatureForCert=(e,n,i,s)=>{const a=new o.SignedXml;a.keyInfoProvider={file:"",getKeyInfo:()=>"<X509Data></X509Data>",getKey:()=>Buffer.from(n)};a.loadSignature(e);if(a.references.length!=1)return false;const u=a.references[0].uri;(0,h.assertRequired)(u,"signature reference uri not found");const l=u[0]==="#"?u.substring(1):u;const c=s.getAttribute("ID")?"ID":"Id";if(s.getAttribute(c)!=l)return false;const p=r.xpath.selectElements(s.ownerDocument,"//*[@"+c+"='"+l+"']");if(p.length>1){return false}i=normalizeNewlines(i);return a.checkSignature(i)};r.validateXmlSignatureForCert=validateXmlSignatureForCert;const signXml=(e,r,n,i)=>{var s;const a=["http://www.w3.org/2000/09/xmldsig#enveloped-signature","http://www.w3.org/2001/10/xml-exc-c14n#"];if(!e)throw new Error("samlMessage is required");if(!n)throw new Error("location is required");if(!i)throw new Error("options is required");if(!(0,c.isValidSamlSigningOptions)(i))throw new Error("options.privateKey is required");const u=(s=i.xmlSignatureTransforms)!==null&&s!==void 0?s:a;const l=new o.SignedXml;if(i.signatureAlgorithm!=null){l.signatureAlgorithm=p.getSigningAlgorithm(i.signatureAlgorithm)}l.addReference(r,u,p.getDigestAlgorithm(i.digestAlgorithm));l.signingKey=i.privateKey;l.computeSignature(e,{location:n});return l.getSignedXml()};r.signXml=signXml;const parseDomFromString=e=>new Promise((function(r,n){function errHandler(e){return n(new Error(e))}const i=new a.DOMParser({locator:{},errorHandler:{error:errHandler,fatalError:errHandler}}).parseFromString(e,"text/xml");if(!Object.prototype.hasOwnProperty.call(i,"documentElement")){return n(new Error("Not a valid XML document"))}return r(i)}));r.parseDomFromString=parseDomFromString;const parseXml2JsFromString=async e=>{const r={explicitRoot:true,explicitCharkey:true,tagNameProcessors:[u.processors.stripPrefix]};const n=new u.Parser(r);return n.parseStringPromise(e)};r.parseXml2JsFromString=parseXml2JsFromString;const buildXml2JsObject=(e,r)=>{const n={rootName:e,headless:true};return new u.Builder(n).buildObject(r)};r.buildXml2JsObject=buildXml2JsObject;const buildXmlBuilderObject=(e,r)=>{const n=r?{pretty:true,indent:" ",newline:"\n"}:{};return l.create(e).end(n)};r.buildXmlBuilderObject=buildXmlBuilderObject;const promiseWithNameId=async e=>{const n=r.xpath.selectAttributes(e,"@Format");return{value:e.textContent,format:n&&n[0]&&n[0].nodeValue}};r.promiseWithNameId=promiseWithNameId;const getNameIdAsync=async(e,n)=>{const i=r.xpath.selectElements(e,"/*[local-name()='LogoutRequest']/*[local-name()='NameID']");const o=r.xpath.selectElements(e,"/*[local-name()='LogoutRequest']/*[local-name()='EncryptedID']");if(i.length+o.length>1){throw new Error("Invalid LogoutRequest")}if(i.length===1){return(0,r.promiseWithNameId)(i[0])}if(o.length===1){(0,h.assertRequired)(n,"No decryption key found getting name ID for encrypted SAML response");const e=r.xpath.selectElements(o[0],"./*[local-name()='EncryptedData']");if(e.length!==1){throw new Error("Invalid LogoutRequest")}const i=e[0].toString();const s=await(0,r.decryptXml)(i,n);const a=await(0,r.parseDomFromString)(s);const u=r.xpath.selectElements(a,"/*[local-name()='NameID']");if(u.length!==1){throw new Error("Invalid EncryptedAssertion content")}return await(0,r.promiseWithNameId)(u[0])}throw new Error("Missing SAML NameID")};r.getNameIdAsync=getNameIdAsync},5741:function(e,r){"use strict";function find(e,r,n){if(n===undefined){n=Array.prototype}if(e&&typeof n.find==="function"){return n.find.call(e,r)}for(var i=0;i<e.length;i++){if(Object.prototype.hasOwnProperty.call(e,i)){var o=e[i];if(r.call(undefined,o,i,e)){return o}}}}function freeze(e,r){if(r===undefined){r=Object}return r&&typeof r.freeze==="function"?r.freeze(e):e}function assign(e,r){if(e===null||typeof e!=="object"){throw new TypeError("target is not an object")}for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}return e}var n=freeze({HTML:"text/html",isHTML:function(e){return e===n.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"});var i=freeze({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(e){return e===i.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});r.assign=assign;r.find=find;r.freeze=freeze;r.MIME_TYPE=n;r.NAMESPACE=i},6425:function(e,r,n){var i;var o=n(5741);var s=n(6537);var a=n(1510);var u=n(8197);var l=s.DOMImplementation;var c=o.NAMESPACE;var p=u.ParseError;var h=u.XMLReader;function normalizeLineEndings(e){return e.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n")}function DOMParser(e){this.options=e||{locator:{}}}DOMParser.prototype.parseFromString=function(e,r){var n=this.options;var i=new h;var o=n.domBuilder||new DOMHandler;var s=n.errorHandler;var u=n.locator;var l=n.xmlns||{};var p=/\/x?html?$/.test(r);var f=p?a.HTML_ENTITIES:a.XML_ENTITIES;if(u){o.setDocumentLocator(u)}i.errorHandler=buildErrorHandler(s,o,u);i.domBuilder=n.domBuilder||o;if(p){l[""]=c.HTML}l.xml=l.xml||c.XML;var d=n.normalizeLineEndings||normalizeLineEndings;if(e&&typeof e==="string"){i.parse(d(e),l,f)}else{i.errorHandler.error("invalid doc source")}return o.doc};function buildErrorHandler(e,r,n){if(!e){if(r instanceof DOMHandler){return r}e=r}var i={};var o=e instanceof Function;n=n||{};function build(r){var s=e[r];if(!s&&o){s=e.length==2?function(n){e(r,n)}:e}i[r]=s&&function(e){s("[xmldom "+r+"]\t"+e+_locator(n))}||function(){}}build("warning");build("error");build("fatalError");return i}function DOMHandler(){this.cdata=false}function position(e,r){r.lineNumber=e.lineNumber;r.columnNumber=e.columnNumber}DOMHandler.prototype={startDocument:function(){this.doc=(new l).createDocument(null,null,null);if(this.locator){this.doc.documentURI=this.locator.systemId}},startElement:function(e,r,n,i){var o=this.doc;var s=o.createElementNS(e,n||r);var a=i.length;appendElement(this,s);this.currentElement=s;this.locator&&position(this.locator,s);for(var u=0;u<a;u++){var e=i.getURI(u);var l=i.getValue(u);var n=i.getQName(u);var c=o.createAttributeNS(e,n);this.locator&&position(i.getLocator(u),c);c.value=c.nodeValue=l;s.setAttributeNode(c)}},endElement:function(e,r,n){var i=this.currentElement;var o=i.tagName;this.currentElement=i.parentNode},startPrefixMapping:function(e,r){},endPrefixMapping:function(e){},processingInstruction:function(e,r){var n=this.doc.createProcessingInstruction(e,r);this.locator&&position(this.locator,n);appendElement(this,n)},ignorableWhitespace:function(e,r,n){},characters:function(e,r,n){e=_toString.apply(this,arguments);if(e){if(this.cdata){var i=this.doc.createCDATASection(e)}else{var i=this.doc.createTextNode(e)}if(this.currentElement){this.currentElement.appendChild(i)}else if(/^\s*$/.test(e)){this.doc.appendChild(i)}this.locator&&position(this.locator,i)}},skippedEntity:function(e){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(e){if(this.locator=e){e.lineNumber=0}},comment:function(e,r,n){e=_toString.apply(this,arguments);var i=this.doc.createComment(e);this.locator&&position(this.locator,i);appendElement(this,i)},startCDATA:function(){this.cdata=true},endCDATA:function(){this.cdata=false},startDTD:function(e,r,n){var i=this.doc.implementation;if(i&&i.createDocumentType){var o=i.createDocumentType(e,r,n);this.locator&&position(this.locator,o);appendElement(this,o);this.doc.doctype=o}},warning:function(e){console.warn("[xmldom warning]\t"+e,_locator(this.locator))},error:function(e){console.error("[xmldom error]\t"+e,_locator(this.locator))},fatalError:function(e){throw new p(e,this.locator)}};function _locator(e){if(e){return"\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]"}}function _toString(e,r,n){if(typeof e=="string"){return e.substr(r,n)}else{if(e.length>=r+n||r){return new java.lang.String(e,r,n)+""}return e}}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,(function(e){DOMHandler.prototype[e]=function(){return null}}));function appendElement(e,r){if(!e.currentElement){e.doc.appendChild(r)}else{e.currentElement.appendChild(r)}}i=DOMHandler;i=normalizeLineEndings;r.DOMParser=DOMParser},6537:function(e,r,n){var i=n(5741);var o=i.find;var s=i.NAMESPACE;function notEmptyString(e){return e!==""}function splitOnASCIIWhitespace(e){return e?e.split(/[\t\n\f\r ]+/).filter(notEmptyString):[]}function orderedSetReducer(e,r){if(!e.hasOwnProperty(r)){e[r]=true}return e}function toOrderedSet(e){if(!e)return[];var r=splitOnASCIIWhitespace(e);return Object.keys(r.reduce(orderedSetReducer,{}))}function arrayIncludes(e){return function(r){return e&&e.indexOf(r)!==-1}}function copy(e,r){for(var n in e){if(Object.prototype.hasOwnProperty.call(e,n)){r[n]=e[n]}}}function _extends(e,r){var n=e.prototype;if(!(n instanceof r)){function t(){}t.prototype=r.prototype;t=new t;copy(n,t);e.prototype=n=t}if(n.constructor!=e){if(typeof e!="function"){console.error("unknown Class:"+e)}n.constructor=e}}var a={};var u=a.ELEMENT_NODE=1;var l=a.ATTRIBUTE_NODE=2;var c=a.TEXT_NODE=3;var p=a.CDATA_SECTION_NODE=4;var h=a.ENTITY_REFERENCE_NODE=5;var f=a.ENTITY_NODE=6;var d=a.PROCESSING_INSTRUCTION_NODE=7;var m=a.COMMENT_NODE=8;var g=a.DOCUMENT_NODE=9;var y=a.DOCUMENT_TYPE_NODE=10;var w=a.DOCUMENT_FRAGMENT_NODE=11;var v=a.NOTATION_NODE=12;var b={};var N={};var E=b.INDEX_SIZE_ERR=(N[1]="Index size error",1);var T=b.DOMSTRING_SIZE_ERR=(N[2]="DOMString size error",2);var D=b.HIERARCHY_REQUEST_ERR=(N[3]="Hierarchy request error",3);var S=b.WRONG_DOCUMENT_ERR=(N[4]="Wrong document",4);var A=b.INVALID_CHARACTER_ERR=(N[5]="Invalid character",5);var O=b.NO_DATA_ALLOWED_ERR=(N[6]="No data allowed",6);var x=b.NO_MODIFICATION_ALLOWED_ERR=(N[7]="No modification allowed",7);var I=b.NOT_FOUND_ERR=(N[8]="Not found",8);var L=b.NOT_SUPPORTED_ERR=(N[9]="Not supported",9);var P=b.INUSE_ATTRIBUTE_ERR=(N[10]="Attribute in use",10);var C=b.INVALID_STATE_ERR=(N[11]="Invalid state",11);var M=b.SYNTAX_ERR=(N[12]="Syntax error",12);var X=b.INVALID_MODIFICATION_ERR=(N[13]="Invalid modification",13);var R=b.NAMESPACE_ERR=(N[14]="Invalid namespace",14);var _=b.INVALID_ACCESS_ERR=(N[15]="Invalid access",15);function DOMException(e,r){if(r instanceof Error){var n=r}else{n=this;Error.call(this,N[e]);this.message=N[e];if(Error.captureStackTrace)Error.captureStackTrace(this,DOMException)}n.code=e;if(r)this.message=this.message+": "+r;return n}DOMException.prototype=Error.prototype;copy(b,DOMException);function NodeList(){}NodeList.prototype={length:0,item:function(e){return e>=0&&e<this.length?this[e]:null},toString:function(e,r){for(var n=[],i=0;i<this.length;i++){serializeToString(this[i],n,e,r)}return n.join("")},filter:function(e){return Array.prototype.filter.call(this,e)},indexOf:function(e){return Array.prototype.indexOf.call(this,e)}};function LiveNodeList(e,r){this._node=e;this._refresh=r;_updateLiveList(this)}function _updateLiveList(e){var r=e._node._inc||e._node.ownerDocument._inc;if(e._inc!==r){var n=e._refresh(e._node);__set__(e,"length",n.length);if(!e.$$length||n.length<e.$$length){for(var i=n.length;i in e;i++){if(Object.prototype.hasOwnProperty.call(e,i)){delete e[i]}}}copy(n,e);e._inc=r}}LiveNodeList.prototype.item=function(e){_updateLiveList(this);return this[e]||null};_extends(LiveNodeList,NodeList);function NamedNodeMap(){}function _findNodeIndex(e,r){var n=e.length;while(n--){if(e[n]===r){return n}}}function _addNamedNode(e,r,n,i){if(i){r[_findNodeIndex(r,i)]=n}else{r[r.length++]=n}if(e){n.ownerElement=e;var o=e.ownerDocument;if(o){i&&_onRemoveAttribute(o,e,i);_onAddAttribute(o,e,n)}}}function _removeNamedNode(e,r,n){var i=_findNodeIndex(r,n);if(i>=0){var o=r.length-1;while(i<o){r[i]=r[++i]}r.length=o;if(e){var s=e.ownerDocument;if(s){_onRemoveAttribute(s,e,n);n.ownerElement=null}}}else{throw new DOMException(I,new Error(e.tagName+"@"+n))}}NamedNodeMap.prototype={length:0,item:NodeList.prototype.item,getNamedItem:function(e){var r=this.length;while(r--){var n=this[r];if(n.nodeName==e){return n}}},setNamedItem:function(e){var r=e.ownerElement;if(r&&r!=this._ownerElement){throw new DOMException(P)}var n=this.getNamedItem(e.nodeName);_addNamedNode(this._ownerElement,this,e,n);return n},setNamedItemNS:function(e){var r=e.ownerElement,n;if(r&&r!=this._ownerElement){throw new DOMException(P)}n=this.getNamedItemNS(e.namespaceURI,e.localName);_addNamedNode(this._ownerElement,this,e,n);return n},removeNamedItem:function(e){var r=this.getNamedItem(e);_removeNamedNode(this._ownerElement,this,r);return r},removeNamedItemNS:function(e,r){var n=this.getNamedItemNS(e,r);_removeNamedNode(this._ownerElement,this,n);return n},getNamedItemNS:function(e,r){var n=this.length;while(n--){var i=this[n];if(i.localName==r&&i.namespaceURI==e){return i}}return null}};function DOMImplementation(){}DOMImplementation.prototype={hasFeature:function(e,r){return true},createDocument:function(e,r,n){var i=new Document;i.implementation=this;i.childNodes=new NodeList;i.doctype=n||null;if(n){i.appendChild(n)}if(r){var o=i.createElementNS(e,r);i.appendChild(o)}return i},createDocumentType:function(e,r,n){var i=new DocumentType;i.name=e;i.nodeName=e;i.publicId=r||"";i.systemId=n||"";return i}};function Node(){}Node.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(e,r){return _insertBefore(this,e,r)},replaceChild:function(e,r){_insertBefore(this,e,r,assertPreReplacementValidityInDocument);if(r){this.removeChild(r)}},removeChild:function(e){return _removeChild(this,e)},appendChild:function(e){return this.insertBefore(e,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(e){return cloneNode(this.ownerDocument||this,this,e)},normalize:function(){var e=this.firstChild;while(e){var r=e.nextSibling;if(r&&r.nodeType==c&&e.nodeType==c){this.removeChild(r);e.appendData(r.data)}else{e.normalize();e=r}}},isSupported:function(e,r){return this.ownerDocument.implementation.hasFeature(e,r)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(e){var r=this;while(r){var n=r._nsMap;if(n){for(var i in n){if(Object.prototype.hasOwnProperty.call(n,i)&&n[i]===e){return i}}}r=r.nodeType==l?r.ownerDocument:r.parentNode}return null},lookupNamespaceURI:function(e){var r=this;while(r){var n=r._nsMap;if(n){if(Object.prototype.hasOwnProperty.call(n,e)){return n[e]}}r=r.nodeType==l?r.ownerDocument:r.parentNode}return null},isDefaultNamespace:function(e){var r=this.lookupPrefix(e);return r==null}};function _xmlEncoder(e){return e=="<"&&"<"||e==">"&&">"||e=="&"&&"&"||e=='"'&&"""||"&#"+e.charCodeAt()+";"}copy(a,Node);copy(a,Node.prototype);function _visitNode(e,r){if(r(e)){return true}if(e=e.firstChild){do{if(_visitNode(e,r)){return true}}while(e=e.nextSibling)}}function Document(){this.ownerDocument=this}function _onAddAttribute(e,r,n){e&&e._inc++;var i=n.namespaceURI;if(i===s.XMLNS){r._nsMap[n.prefix?n.localName:""]=n.value}}function _onRemoveAttribute(e,r,n,i){e&&e._inc++;var o=n.namespaceURI;if(o===s.XMLNS){delete r._nsMap[n.prefix?n.localName:""]}}function _onUpdateChild(e,r,n){if(e&&e._inc){e._inc++;var i=r.childNodes;if(n){i[i.length++]=n}else{var o=r.firstChild;var s=0;while(o){i[s++]=o;o=o.nextSibling}i.length=s;delete i[i.length]}}}function _removeChild(e,r){var n=r.previousSibling;var i=r.nextSibling;if(n){n.nextSibling=i}else{e.firstChild=i}if(i){i.previousSibling=n}else{e.lastChild=n}r.parentNode=null;r.previousSibling=null;r.nextSibling=null;_onUpdateChild(e.ownerDocument,e);return r}function hasValidParentNodeType(e){return e&&(e.nodeType===Node.DOCUMENT_NODE||e.nodeType===Node.DOCUMENT_FRAGMENT_NODE||e.nodeType===Node.ELEMENT_NODE)}function hasInsertableNodeType(e){return e&&(isElementNode(e)||isTextNode(e)||isDocTypeNode(e)||e.nodeType===Node.DOCUMENT_FRAGMENT_NODE||e.nodeType===Node.COMMENT_NODE||e.nodeType===Node.PROCESSING_INSTRUCTION_NODE)}function isDocTypeNode(e){return e&&e.nodeType===Node.DOCUMENT_TYPE_NODE}function isElementNode(e){return e&&e.nodeType===Node.ELEMENT_NODE}function isTextNode(e){return e&&e.nodeType===Node.TEXT_NODE}function isElementInsertionPossible(e,r){var n=e.childNodes||[];if(o(n,isElementNode)||isDocTypeNode(r)){return false}var i=o(n,isDocTypeNode);return!(r&&i&&n.indexOf(i)>n.indexOf(r))}function isElementReplacementPossible(e,r){var n=e.childNodes||[];function hasElementChildThatIsNotChild(e){return isElementNode(e)&&e!==r}if(o(n,hasElementChildThatIsNotChild)){return false}var i=o(n,isDocTypeNode);return!(r&&i&&n.indexOf(i)>n.indexOf(r))}function assertPreInsertionValidity1to5(e,r,n){if(!hasValidParentNodeType(e)){throw new DOMException(D,"Unexpected parent node type "+e.nodeType)}if(n&&n.parentNode!==e){throw new DOMException(I,"child not in parent")}if(!hasInsertableNodeType(r)||isDocTypeNode(r)&&e.nodeType!==Node.DOCUMENT_NODE){throw new DOMException(D,"Unexpected node type "+r.nodeType+" for parent node type "+e.nodeType)}}function assertPreInsertionValidityInDocument(e,r,n){var i=e.childNodes||[];var s=r.childNodes||[];if(r.nodeType===Node.DOCUMENT_FRAGMENT_NODE){var a=s.filter(isElementNode);if(a.length>1||o(s,isTextNode)){throw new DOMException(D,"More than one element or text in fragment")}if(a.length===1&&!isElementInsertionPossible(e,n)){throw new DOMException(D,"Element in fragment can not be inserted before doctype")}}if(isElementNode(r)){if(!isElementInsertionPossible(e,n)){throw new DOMException(D,"Only one element can be added and only after doctype")}}if(isDocTypeNode(r)){if(o(i,isDocTypeNode)){throw new DOMException(D,"Only one doctype is allowed")}var u=o(i,isElementNode);if(n&&i.indexOf(u)<i.indexOf(n)){throw new DOMException(D,"Doctype can only be inserted before an element")}if(!n&&u){throw new DOMException(D,"Doctype can not be appended since element is present")}}}function assertPreReplacementValidityInDocument(e,r,n){var i=e.childNodes||[];var s=r.childNodes||[];if(r.nodeType===Node.DOCUMENT_FRAGMENT_NODE){var a=s.filter(isElementNode);if(a.length>1||o(s,isTextNode)){throw new DOMException(D,"More than one element or text in fragment")}if(a.length===1&&!isElementReplacementPossible(e,n)){throw new DOMException(D,"Element in fragment can not be inserted before doctype")}}if(isElementNode(r)){if(!isElementReplacementPossible(e,n)){throw new DOMException(D,"Only one element can be added and only after doctype")}}if(isDocTypeNode(r)){function hasDoctypeChildThatIsNotChild(e){return isDocTypeNode(e)&&e!==n}if(o(i,hasDoctypeChildThatIsNotChild)){throw new DOMException(D,"Only one doctype is allowed")}var u=o(i,isElementNode);if(n&&i.indexOf(u)<i.indexOf(n)){throw new DOMException(D,"Doctype can only be inserted before an element")}}}function _insertBefore(e,r,n,i){assertPreInsertionValidity1to5(e,r,n);if(e.nodeType===Node.DOCUMENT_NODE){(i||assertPreInsertionValidityInDocument)(e,r,n)}var o=r.parentNode;if(o){o.removeChild(r)}if(r.nodeType===w){var s=r.firstChild;if(s==null){return r}var a=r.lastChild}else{s=a=r}var u=n?n.previousSibling:e.lastChild;s.previousSibling=u;a.nextSibling=n;if(u){u.nextSibling=s}else{e.firstChild=s}if(n==null){e.lastChild=a}else{n.previousSibling=a}do{s.parentNode=e}while(s!==a&&(s=s.nextSibling));_onUpdateChild(e.ownerDocument||e,e);if(r.nodeType==w){r.firstChild=r.lastChild=null}return r}function _appendSingleChild(e,r){if(r.parentNode){r.parentNode.removeChild(r)}r.parentNode=e;r.previousSibling=e.lastChild;r.nextSibling=null;if(r.previousSibling){r.previousSibling.nextSibling=r}else{e.firstChild=r}e.lastChild=r;_onUpdateChild(e.ownerDocument,e,r);return r}Document.prototype={nodeName:"#document",nodeType:g,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,r){if(e.nodeType==w){var n=e.firstChild;while(n){var i=n.nextSibling;this.insertBefore(n,r);n=i}return e}_insertBefore(this,e,r);e.ownerDocument=this;if(this.documentElement===null&&e.nodeType===u){this.documentElement=e}return e},removeChild:function(e){if(this.documentElement==e){this.documentElement=null}return _removeChild(this,e)},replaceChild:function(e,r){_insertBefore(this,e,r,assertPreReplacementValidityInDocument);e.ownerDocument=this;if(r){this.removeChild(r)}if(isElementNode(e)){this.documentElement=e}},importNode:function(e,r){return importNode(this,e,r)},getElementById:function(e){var r=null;_visitNode(this.documentElement,(function(n){if(n.nodeType==u){if(n.getAttribute("id")==e){r=n;return true}}}));return r},getElementsByClassName:function(e){var r=toOrderedSet(e);return new LiveNodeList(this,(function(n){var i=[];if(r.length>0){_visitNode(n.documentElement,(function(o){if(o!==n&&o.nodeType===u){var s=o.getAttribute("class");if(s){var a=e===s;if(!a){var l=toOrderedSet(s);a=r.every(arrayIncludes(l))}if(a){i.push(o)}}}}))}return i}))},createElement:function(e){var r=new Element;r.ownerDocument=this;r.nodeName=e;r.tagName=e;r.localName=e;r.childNodes=new NodeList;var n=r.attributes=new NamedNodeMap;n._ownerElement=r;return r},createDocumentFragment:function(){var e=new DocumentFragment;e.ownerDocument=this;e.childNodes=new NodeList;return e},createTextNode:function(e){var r=new Text;r.ownerDocument=this;r.appendData(e);return r},createComment:function(e){var r=new Comment;r.ownerDocument=this;r.appendData(e);return r},createCDATASection:function(e){var r=new CDATASection;r.ownerDocument=this;r.appendData(e);return r},createProcessingInstruction:function(e,r){var n=new ProcessingInstruction;n.ownerDocument=this;n.tagName=n.nodeName=n.target=e;n.nodeValue=n.data=r;return n},createAttribute:function(e){var r=new Attr;r.ownerDocument=this;r.name=e;r.nodeName=e;r.localName=e;r.specified=true;return r},createEntityReference:function(e){var r=new EntityReference;r.ownerDocument=this;r.nodeName=e;return r},createElementNS:function(e,r){var n=new Element;var i=r.split(":");var o=n.attributes=new NamedNodeMap;n.childNodes=new NodeList;n.ownerDocument=this;n.nodeName=r;n.tagName=r;n.namespaceURI=e;if(i.length==2){n.prefix=i[0];n.localName=i[1]}else{n.localName=r}o._ownerElement=n;return n},createAttributeNS:function(e,r){var n=new Attr;var i=r.split(":");n.ownerDocument=this;n.nodeName=r;n.name=r;n.namespaceURI=e;n.specified=true;if(i.length==2){n.prefix=i[0];n.localName=i[1]}else{n.localName=r}return n}};_extends(Document,Node);function Element(){this._nsMap={}}Element.prototype={nodeType:u,hasAttribute:function(e){return this.getAttributeNode(e)!=null},getAttribute:function(e){var r=this.getAttributeNode(e);return r&&r.value||""},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,r){var n=this.ownerDocument.createAttribute(e);n.value=n.nodeValue=""+r;this.setAttributeNode(n)},removeAttribute:function(e){var r=this.getAttributeNode(e);r&&this.removeAttributeNode(r)},appendChild:function(e){if(e.nodeType===w){return this.insertBefore(e,null)}else{return _appendSingleChild(this,e)}},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,r){var n=this.getAttributeNodeNS(e,r);n&&this.removeAttributeNode(n)},hasAttributeNS:function(e,r){return this.getAttributeNodeNS(e,r)!=null},getAttributeNS:function(e,r){var n=this.getAttributeNodeNS(e,r);return n&&n.value||""},setAttributeNS:function(e,r,n){var i=this.ownerDocument.createAttributeNS(e,r);i.value=i.nodeValue=""+n;this.setAttributeNode(i)},getAttributeNodeNS:function(e,r){return this.attributes.getNamedItemNS(e,r)},getElementsByTagName:function(e){return new LiveNodeList(this,(function(r){var n=[];_visitNode(r,(function(i){if(i!==r&&i.nodeType==u&&(e==="*"||i.tagName==e)){n.push(i)}}));return n}))},getElementsByTagNameNS:function(e,r){return new LiveNodeList(this,(function(n){var i=[];_visitNode(n,(function(o){if(o!==n&&o.nodeType===u&&(e==="*"||o.namespaceURI===e)&&(r==="*"||o.localName==r)){i.push(o)}}));return i}))}};Document.prototype.getElementsByTagName=Element.prototype.getElementsByTagName;Document.prototype.getElementsByTagNameNS=Element.prototype.getElementsByTagNameNS;_extends(Element,Node);function Attr(){}Attr.prototype.nodeType=l;_extends(Attr,Node);function CharacterData(){}CharacterData.prototype={data:"",substringData:function(e,r){return this.data.substring(e,e+r)},appendData:function(e){e=this.data+e;this.nodeValue=this.data=e;this.length=e.length},insertData:function(e,r){this.replaceData(e,0,r)},appendChild:function(e){throw new Error(N[D])},deleteData:function(e,r){this.replaceData(e,r,"")},replaceData:function(e,r,n){var i=this.data.substring(0,e);var o=this.data.substring(e+r);n=i+n+o;this.nodeValue=this.data=n;this.length=n.length}};_extends(CharacterData,Node);function Text(){}Text.prototype={nodeName:"#text",nodeType:c,splitText:function(e){var r=this.data;var n=r.substring(e);r=r.substring(0,e);this.data=this.nodeValue=r;this.length=r.length;var i=this.ownerDocument.createTextNode(n);if(this.parentNode){this.parentNode.insertBefore(i,this.nextSibling)}return i}};_extends(Text,CharacterData);function Comment(){}Comment.prototype={nodeName:"#comment",nodeType:m};_extends(Comment,CharacterData);function CDATASection(){}CDATASection.prototype={nodeName:"#cdata-section",nodeType:p};_extends(CDATASection,CharacterData);function DocumentType(){}DocumentType.prototype.nodeType=y;_extends(DocumentType,Node);function Notation(){}Notation.prototype.nodeType=v;_extends(Notation,Node);function Entity(){}Entity.prototype.nodeType=f;_extends(Entity,Node);function EntityReference(){}EntityReference.prototype.nodeType=h;_extends(EntityReference,Node);function DocumentFragment(){}DocumentFragment.prototype.nodeName="#document-fragment";DocumentFragment.prototype.nodeType=w;_extends(DocumentFragment,Node);function ProcessingInstruction(){}ProcessingInstruction.prototype.nodeType=d;_extends(ProcessingInstruction,Node);function XMLSerializer(){}XMLSerializer.prototype.serializeToString=function(e,r,n){return nodeSerializeToString.call(e,r,n)};Node.prototype.toString=nodeSerializeToString;function nodeSerializeToString(e,r){var n=[];var i=this.nodeType==9&&this.documentElement||this;var o=i.prefix;var s=i.namespaceURI;if(s&&o==null){var o=i.lookupPrefix(s);if(o==null){var a=[{namespace:s,prefix:null}]}}serializeToString(this,n,e,r,a);return n.join("")}function needNamespaceDefine(e,r,n){var i=e.prefix||"";var o=e.namespaceURI;if(!o){return false}if(i==="xml"&&o===s.XML||o===s.XMLNS){return false}var a=n.length;while(a--){var u=n[a];if(u.prefix===i){return u.namespace!==o}}return true}function addSerializedAttribute(e,r,n){e.push(" ",r,'="',n.replace(/[<>&"\t\n\r]/g,_xmlEncoder),'"')}function serializeToString(e,r,n,i,o){if(!o){o=[]}if(i){e=i(e);if(e){if(typeof e=="string"){r.push(e);return}}else{return}}switch(e.nodeType){case u:var a=e.attributes;var f=a.length;var v=e.firstChild;var b=e.tagName;n=s.isHTML(e.namespaceURI)||n;var N=b;if(!n&&!e.prefix&&e.namespaceURI){var E;for(var T=0;T<a.length;T++){if(a.item(T).name==="xmlns"){E=a.item(T).value;break}}if(!E){for(var D=o.length-1;D>=0;D--){var S=o[D];if(S.prefix===""&&S.namespace===e.namespaceURI){E=S.namespace;break}}}if(E!==e.namespaceURI){for(var D=o.length-1;D>=0;D--){var S=o[D];if(S.namespace===e.namespaceURI){if(S.prefix){N=S.prefix+":"+b}break}}}}r.push("<",N);for(var A=0;A<f;A++){var O=a.item(A);if(O.prefix=="xmlns"){o.push({prefix:O.localName,namespace:O.value})}else if(O.nodeName=="xmlns"){o.push({prefix:"",namespace:O.value})}}for(var A=0;A<f;A++){var O=a.item(A);if(needNamespaceDefine(O,n,o)){var x=O.prefix||"";var I=O.namespaceURI;addSerializedAttribute(r,x?"xmlns:"+x:"xmlns",I);o.push({prefix:x,namespace:I})}serializeToString(O,r,n,i,o)}if(b===N&&needNamespaceDefine(e,n,o)){var x=e.prefix||"";var I=e.namespaceURI;addSerializedAttribute(r,x?"xmlns:"+x:"xmlns",I);o.push({prefix:x,namespace:I})}if(v||n&&!/^(?:meta|link|img|br|hr|input)$/i.test(b)){r.push(">");if(n&&/^script$/i.test(b)){while(v){if(v.data){r.push(v.data)}else{serializeToString(v,r,n,i,o.slice())}v=v.nextSibling}}else{while(v){serializeToString(v,r,n,i,o.slice());v=v.nextSibling}}r.push("</",N,">")}else{r.push("/>")}return;case g:case w:var v=e.firstChild;while(v){serializeToString(v,r,n,i,o.slice());v=v.nextSibling}return;case l:return addSerializedAttribute(r,e.name,e.value);case c:return r.push(e.data.replace(/[<&>]/g,_xmlEncoder));case p:return r.push("<![CDATA[",e.data,"]]>");case m:return r.push("\x3c!--",e.data,"--\x3e");case y:var L=e.publicId;var P=e.systemId;r.push("<!DOCTYPE ",e.name);if(L){r.push(" PUBLIC ",L);if(P&&P!="."){r.push(" ",P)}r.push(">")}else if(P&&P!="."){r.push(" SYSTEM ",P,">")}else{var C=e.internalSubset;if(C){r.push(" [",C,"]")}r.push(">")}return;case d:return r.push("<?",e.target," ",e.data,"?>");case h:return r.push("&",e.nodeName,";");default:r.push("??",e.nodeName)}}function importNode(e,r,n){var i;switch(r.nodeType){case u:i=r.cloneNode(false);i.ownerDocument=e;case w:break;case l:n=true;break}if(!i){i=r.cloneNode(false)}i.ownerDocument=e;i.parentNode=null;if(n){var o=r.firstChild;while(o){i.appendChild(importNode(e,o,n));o=o.nextSibling}}return i}function cloneNode(e,r,n){var i=new r.constructor;for(var o in r){if(Object.prototype.hasOwnProperty.call(r,o)){var s=r[o];if(typeof s!="object"){if(s!=i[o]){i[o]=s}}}}if(r.childNodes){i.childNodes=new NodeList}i.ownerDocument=e;switch(i.nodeType){case u:var a=r.attributes;var c=i.attributes=new NamedNodeMap;var p=a.length;c._ownerElement=i;for(var h=0;h<p;h++){i.setAttributeNode(cloneNode(e,a.item(h),true))}break;case l:n=true}if(n){var f=r.firstChild;while(f){i.appendChild(cloneNode(e,f,n));f=f.nextSibling}}return i}function __set__(e,r,n){e[r]=n}try{if(Object.defineProperty){Object.defineProperty(LiveNodeList.prototype,"length",{get:function(){_updateLiveList(this);return this.$$length}});Object.defineProperty(Node.prototype,"textContent",{get:function(){return getTextContent(this)},set:function(e){switch(this.nodeType){case u:case w:while(this.firstChild){this.removeChild(this.firstChild)}if(e||String(e)){this.appendChild(this.ownerDocument.createTextNode(e))}break;default:this.data=e;this.value=e;this.nodeValue=e}}});function getTextContent(e){switch(e.nodeType){case u:case w:var r=[];e=e.firstChild;while(e){if(e.nodeType!==7&&e.nodeType!==8){r.push(getTextContent(e))}e=e.nextSibling}return r.join("");default:return e.nodeValue}}__set__=function(e,r,n){e["$$"+r]=n}}}catch(B){}r.DocumentType=DocumentType;r.DOMException=DOMException;r.DOMImplementation=DOMImplementation;r.Element=Element;r.Node=Node;r.NodeList=NodeList;r.XMLSerializer=XMLSerializer},1510:function(e,r,n){"use strict";var i=n(5741).freeze;r.XML_ENTITIES=i({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'});r.HTML_ENTITIES=i({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",GT:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"",InvisibleTimes:"",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",LT:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"",NegativeThickSpace:"",NegativeThinSpace:"",NegativeVeryThinSpace:"",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:" ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"",zwnj:""});r.entityMap=r.HTML_ENTITIES},8737:function(e,r,n){var i=n(6537);r.DOMImplementation=i.DOMImplementation;r.XMLSerializer=i.XMLSerializer;r.DOMParser=n(6425).DOMParser},8197:function(e,r,n){var i=n(5741).NAMESPACE;var o=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;var s=new RegExp("[\\-\\.0-9"+o.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]");var a=new RegExp("^"+o.source+s.source+"*(?::"+o.source+s.source+"*)?$");var u=0;var l=1;var c=2;var p=3;var h=4;var f=5;var d=6;var m=7;function ParseError(e,r){this.message=e;this.locator=r;if(Error.captureStackTrace)Error.captureStackTrace(this,ParseError)}ParseError.prototype=new Error;ParseError.prototype.name=ParseError.name;function XMLReader(){}XMLReader.prototype={parse:function(e,r,n){var i=this.domBuilder;i.startDocument();_copy(r,r={});parse(e,r,n,i,this.errorHandler);i.endDocument()}};function parse(e,r,n,o,s){function fixedFromCharCode(e){if(e>65535){e-=65536;var r=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(r,n)}else{return String.fromCharCode(e)}}function entityReplacer(e){var r=e.slice(1,-1);if(Object.hasOwnProperty.call(n,r)){return n[r]}else if(r.charAt(0)==="#"){return fixedFromCharCode(parseInt(r.substr(1).replace("x","0x")))}else{s.error("entity not found:"+e);return e}}function appendText(r){if(r>f){var n=e.substring(f,r).replace(/&#?\w+;/g,entityReplacer);c&&position(f);o.characters(n,0,r-f);f=r}}function position(r,n){while(r>=u&&(n=l.exec(e))){a=n.index;u=a+n[0].length;c.lineNumber++}c.columnNumber=r-a+1}var a=0;var u=0;var l=/.*(?:\r\n?|\n)|.*$/g;var c=o.locator;var p=[{currentNSMap:r}];var h={};var f=0;while(true){try{var d=e.indexOf("<",f);if(d<0){if(!e.substr(f).match(/^\s*$/)){var m=o.doc;var g=m.createTextNode(e.substr(f));m.appendChild(g);o.currentElement=g}return}if(d>f){appendText(d)}switch(e.charAt(d+1)){case"/":var y=e.indexOf(">",d+3);var w=e.substring(d+2,y).replace(/[ \t\n\r]+$/g,"");var v=p.pop();if(y<0){w=e.substring(d+2).replace(/[\s<].*/,"");s.error("end tag name: "+w+" is not complete:"+v.tagName);y=d+1+w.length}else if(w.match(/\s</)){w=w.replace(/[\s<].*/,"");s.error("end tag name: "+w+" maybe not complete");y=d+1+w.length}var b=v.localNSMap;var N=v.tagName==w;var E=N||v.tagName&&v.tagName.toLowerCase()==w.toLowerCase();if(E){o.endElement(v.uri,v.localName,w);if(b){for(var T in b){if(Object.prototype.hasOwnProperty.call(b,T)){o.endPrefixMapping(T)}}}if(!N){s.fatalError("end tag name: "+w+" is not match the current start tagName:"+v.tagName)}}else{p.push(v)}y++;break;case"?":c&&position(d);y=parseInstruction(e,d,o);break;case"!":c&&position(d);y=parseDCC(e,d,o,s);break;default:c&&position(d);var D=new ElementAttributes;var S=p[p.length-1].currentNSMap;var y=parseElementStartPart(e,d,D,S,entityReplacer,s);var A=D.length;if(!D.closed&&fixSelfClosed(e,y,D.tagName,h)){D.closed=true;if(!n.nbsp){s.warning("unclosed xml attribute")}}if(c&&A){var O=copyLocator(c,{});for(var x=0;x<A;x++){var I=D[x];position(I.offset);I.locator=copyLocator(c,{})}o.locator=O;if(appendElement(D,o,S)){p.push(D)}o.locator=c}else{if(appendElement(D,o,S)){p.push(D)}}if(i.isHTML(D.uri)&&!D.closed){y=parseHtmlSpecialContent(e,y,D.tagName,entityReplacer,o)}else{y++}}}catch(e){if(e instanceof ParseError){throw e}s.error("element parse error: "+e);y=-1}if(y>f){f=y}else{appendText(Math.max(d,f)+1)}}}function copyLocator(e,r){r.lineNumber=e.lineNumber;r.columnNumber=e.columnNumber;return r}function parseElementStartPart(e,r,n,o,s,a){function addAttribute(e,r,i){if(n.attributeNames.hasOwnProperty(e)){a.fatalError("Attribute "+e+" redefined")}n.addValue(e,r.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,s),i)}var g;var y;var w=++r;var v=u;while(true){var b=e.charAt(w);switch(b){case"=":if(v===l){g=e.slice(r,w);v=p}else if(v===c){v=p}else{throw new Error("attribute equal must after attrName")}break;case"'":case'"':if(v===p||v===l){if(v===l){a.warning('attribute value must after "="');g=e.slice(r,w)}r=w+1;w=e.indexOf(b,r);if(w>0){y=e.slice(r,w);addAttribute(g,y,r-1);v=f}else{throw new Error("attribute value no end '"+b+"' match")}}else if(v==h){y=e.slice(r,w);addAttribute(g,y,r);a.warning('attribute "'+g+'" missed start quot('+b+")!!");r=w+1;v=f}else{throw new Error('attribute value must after "="')}break;case"/":switch(v){case u:n.setTagName(e.slice(r,w));case f:case d:case m:v=m;n.closed=true;case h:case l:break;case c:n.closed=true;break;default:throw new Error("attribute invalid close char('/')")}break;case"":a.error("unexpected end of input");if(v==u){n.setTagName(e.slice(r,w))}return w;case">":switch(v){case u:n.setTagName(e.slice(r,w));case f:case d:case m:break;case h:case l:y=e.slice(r,w);if(y.slice(-1)==="/"){n.closed=true;y=y.slice(0,-1)}case c:if(v===c){y=g}if(v==h){a.warning('attribute "'+y+'" missed quot(")!');addAttribute(g,y,r)}else{if(!i.isHTML(o[""])||!y.match(/^(?:disabled|checked|selected)$/i)){a.warning('attribute "'+y+'" missed value!! "'+y+'" instead!!')}addAttribute(y,y,r)}break;case p:throw new Error("attribute value missed!!")}return w;case"":b=" ";default:if(b<=" "){switch(v){case u:n.setTagName(e.slice(r,w));v=d;break;case l:g=e.slice(r,w);v=c;break;case h:var y=e.slice(r,w);a.warning('attribute "'+y+'" missed quot(")!!');addAttribute(g,y,r);case f:v=d;break}}else{switch(v){case c:var N=n.tagName;if(!i.isHTML(o[""])||!g.match(/^(?:disabled|checked|selected)$/i)){a.warning('attribute "'+g+'" missed value!! "'+g+'" instead2!!')}addAttribute(g,g,r);r=w;v=l;break;case f:a.warning('attribute space is required"'+g+'"!!');case d:v=l;r=w;break;case p:v=h;r=w;break;case m:throw new Error("elements closed character '/' and '>' must be connected to")}}}w++}}function appendElement(e,r,n){var o=e.tagName;var s=null;var a=e.length;while(a--){var u=e[a];var l=u.qName;var c=u.value;var p=l.indexOf(":");if(p>0){var h=u.prefix=l.slice(0,p);var f=l.slice(p+1);var d=h==="xmlns"&&f}else{f=l;h=null;d=l==="xmlns"&&""}u.localName=f;if(d!==false){if(s==null){s={};_copy(n,n={})}n[d]=s[d]=c;u.uri=i.XMLNS;r.startPrefixMapping(d,c)}}var a=e.length;while(a--){u=e[a];var h=u.prefix;if(h){if(h==="xml"){u.uri=i.XML}if(h!=="xmlns"){u.uri=n[h||""]}}}var p=o.indexOf(":");if(p>0){h=e.prefix=o.slice(0,p);f=e.localName=o.slice(p+1)}else{h=null;f=e.localName=o}var m=e.uri=n[h||""];r.startElement(m,f,o,e);if(e.closed){r.endElement(m,f,o);if(s){for(h in s){if(Object.prototype.hasOwnProperty.call(s,h)){r.endPrefixMapping(h)}}}}else{e.currentNSMap=n;e.localNSMap=s;return true}}function parseHtmlSpecialContent(e,r,n,i,o){if(/^(?:script|textarea)$/i.test(n)){var s=e.indexOf("</"+n+">",r);var a=e.substring(r+1,s);if(/[&<]/.test(a)){if(/^script$/i.test(n)){o.characters(a,0,a.length);return s}a=a.replace(/&#?\w+;/g,i);o.characters(a,0,a.length);return s}}return r+1}function fixSelfClosed(e,r,n,i){var o=i[n];if(o==null){o=e.lastIndexOf("</"+n+">");if(o<r){o=e.lastIndexOf("</"+n)}i[n]=o}return o<r}function _copy(e,r){for(var n in e){if(Object.prototype.hasOwnProperty.call(e,n)){r[n]=e[n]}}}function parseDCC(e,r,n,i){var o=e.charAt(r+2);switch(o){case"-":if(e.charAt(r+3)==="-"){var s=e.indexOf("--\x3e",r+4);if(s>r){n.comment(e,r+4,s-r-4);return s+3}else{i.error("Unclosed comment");return-1}}else{return-1}default:if(e.substr(r+3,6)=="CDATA["){var s=e.indexOf("]]>",r+9);n.startCDATA();n.characters(e,r+9,s-r-9);n.endCDATA();return s+3}var a=split(e,r);var u=a.length;if(u>1&&/!doctype/i.test(a[0][0])){var l=a[1][0];var c=false;var p=false;if(u>3){if(/^public$/i.test(a[2][0])){c=a[3][0];p=u>4&&a[4][0]}else if(/^system$/i.test(a[2][0])){p=a[3][0]}}var h=a[u-1];n.startDTD(l,c,p);n.endDTD();return h.index+h[0].length}}return-1}function parseInstruction(e,r,n){var i=e.indexOf("?>",r);if(i){var o=e.substring(r,i).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(o){var s=o[0].length;n.processingInstruction(o[1],o[2]);return i+2}else{return-1}}return-1}function ElementAttributes(){this.attributeNames={}}ElementAttributes.prototype={setTagName:function(e){if(!a.test(e)){throw new Error("invalid tagName:"+e)}this.tagName=e},addValue:function(e,r,n){if(!a.test(e)){throw new Error("invalid attribute:"+e)}this.attributeNames[e]=this.length;this[this.length++]={qName:e,value:r,offset:n}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}};function split(e,r){var n;var i=[];var o=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;o.lastIndex=r;o.exec(e);while(n=o.exec(e)){i.push(n);if(n[1])return i}}r.XMLReader=XMLReader;r.ParseError=ParseError},8798:function(e,r,n){r.formatArgs=formatArgs;r.save=save;r.load=load;r.useColors=useColors;r.storage=localstorage();r.destroy=(()=>{let e=false;return()=>{if(!e){e=true;console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}}})();r.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)){return true}if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)){return false}let e;return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(r){r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff);if(!this.useColors){return}const n="color: "+this.color;r.splice(1,0,n,"color: inherit");let i=0;let o=0;r[0].replace(/%[a-zA-Z%]/g,(e=>{if(e==="%%"){return}i++;if(e==="%c"){o=i}}));r.splice(o,0,n)}r.log=console.debug||console.log||(()=>{});function save(e){try{if(e){r.storage.setItem("debug",e)}else{r.storage.removeItem("debug")}}catch(e){}}function load(){let e;try{e=r.storage.getItem("debug")}catch(e){}if(!e&&typeof process!=="undefined"&&"env"in process){e=process.env.DEBUG}return e}function localstorage(){try{return localStorage}catch(e){}}e.exports=n(8337)(r);const{formatters:i}=e.exports;i.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},8337:function(e,r,n){function setup(e){createDebug.debug=createDebug;createDebug.default=createDebug;createDebug.coerce=coerce;createDebug.disable=disable;createDebug.enable=enable;createDebug.enabled=enabled;createDebug.humanize=n(2134);createDebug.destroy=destroy;Object.keys(e).forEach((r=>{createDebug[r]=e[r]}));createDebug.names=[];createDebug.skips=[];createDebug.formatters={};function selectColor(e){let r=0;for(let n=0;n<e.length;n++){r=(r<<5)-r+e.charCodeAt(n);r|=0}return createDebug.colors[Math.abs(r)%createDebug.colors.length]}createDebug.selectColor=selectColor;function createDebug(e){let r;let n=null;let i;let o;function debug(...e){if(!debug.enabled){return}const n=debug;const i=Number(new Date);const o=i-(r||i);n.diff=o;n.prev=r;n.curr=i;r=i;e[0]=createDebug.coerce(e[0]);if(typeof e[0]!=="string"){e.unshift("%O")}let s=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((r,i)=>{if(r==="%%"){return"%"}s++;const o=createDebug.formatters[i];if(typeof o==="function"){const i=e[s];r=o.call(n,i);e.splice(s,1);s--}return r}));createDebug.formatArgs.call(n,e);const a=n.log||createDebug.log;a.apply(n,e)}debug.namespace=e;debug.useColors=createDebug.useColors();debug.color=createDebug.selectColor(e);debug.extend=extend;debug.destroy=createDebug.destroy;Object.defineProperty(debug,"enabled",{enumerable:true,configurable:false,get:()=>{if(n!==null){return n}if(i!==createDebug.namespaces){i=createDebug.namespaces;o=createDebug.enabled(e)}return o},set:e=>{n=e}});if(typeof createDebug.init==="function"){createDebug.init(debug)}return debug}function extend(e,r){const n=createDebug(this.namespace+(typeof r==="undefined"?":":r)+e);n.log=this.log;return n}function enable(e){createDebug.save(e);createDebug.namespaces=e;createDebug.names=[];createDebug.skips=[];const r=(typeof e==="string"?e:"").trim().replace(" ",",").split(",").filter(Boolean);for(const e of r){if(e[0]==="-"){createDebug.skips.push(e.slice(1))}else{createDebug.names.push(e)}}}function matchesTemplate(e,r){let n=0;let i=0;let o=-1;let s=0;while(n<e.length){if(i<r.length&&(r[i]===e[n]||r[i]==="*")){if(r[i]==="*"){o=i;s=n;i++}else{n++;i++}}else if(o!==-1){i=o+1;s++;n=s}else{return false}}while(i<r.length&&r[i]==="*"){i++}return i===r.length}function disable(){const e=[...createDebug.names,...createDebug.skips.map((e=>"-"+e))].join(",");createDebug.enable("");return e}function enabled(e){for(const r of createDebug.skips){if(matchesTemplate(e,r)){return false}}for(const r of createDebug.names){if(matchesTemplate(e,r)){return true}}return false}function coerce(e){if(e instanceof Error){return e.stack||e.message}return e}function destroy(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}createDebug.enable(createDebug.load());return createDebug}e.exports=setup},2366:function(e,r,n){if(typeof process==="undefined"||process.type==="renderer"||process.browser===true||process.__nwjs){e.exports=n(8798)}else{e.exports=n(6500)}},6500:function(e,r,n){const i=n(2018);const o=n(9023);r.init=init;r.log=log;r.formatArgs=formatArgs;r.save=save;r.load=load;r.useColors=useColors;r.destroy=o.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");r.colors=[6,2,3,4,5,1];try{const e=n(5414);if(e&&(e.stderr||e).level>=2){r.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}}catch(e){}r.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,r)=>{const n=r.substring(6).toLowerCase().replace(/_([a-z])/g,((e,r)=>r.toUpperCase()));let i=process.env[r];if(/^(yes|on|true|enabled)$/i.test(i)){i=true}else if(/^(no|off|false|disabled)$/i.test(i)){i=false}else if(i==="null"){i=null}else{i=Number(i)}e[n]=i;return e}),{});function useColors(){return"colors"in r.inspectOpts?Boolean(r.inspectOpts.colors):i.isatty(process.stderr.fd)}function formatArgs(r){const{namespace:n,useColors:i}=this;if(i){const i=this.color;const o="[3"+(i<8?i:"8;5;"+i);const s=` ${o};1m${n} [0m`;r[0]=s+r[0].split("\n").join("\n"+s);r.push(o+"m+"+e.exports.humanize(this.diff)+"[0m")}else{r[0]=getDate()+n+" "+r[0]}}function getDate(){if(r.inspectOpts.hideDate){return""}return(new Date).toISOString()+" "}function log(...e){return process.stderr.write(o.formatWithOptions(r.inspectOpts,...e)+"\n")}function save(e){if(e){process.env.DEBUG=e}else{delete process.env.DEBUG}}function load(){return process.env.DEBUG}function init(e){e.inspectOpts={};const n=Object.keys(r.inspectOpts);for(let i=0;i<n.length;i++){e.inspectOpts[n[i]]=r.inspectOpts[n[i]]}}e.exports=n(8337)(r);const{formatters:s}=e.exports;s.o=function(e){this.inspectOpts.colors=this.useColors;return o.inspect(e,this.inspectOpts).split("\n").map((e=>e.trim())).join(" ")};s.O=function(e){this.inspectOpts.colors=this.useColors;return o.inspect(e,this.inspectOpts)}},846:function(e){"use strict";
|
|
1
|
+
(function(){var e={7775:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.getSigner=r.getDigestAlgorithm=r.getSigningAlgorithm=void 0;const i=n(6982);function getSigningAlgorithm(e){switch(e){case"sha256":return"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256";case"sha512":return"http://www.w3.org/2001/04/xmldsig-more#rsa-sha512";case"sha1":default:return"http://www.w3.org/2000/09/xmldsig#rsa-sha1"}}r.getSigningAlgorithm=getSigningAlgorithm;function getDigestAlgorithm(e){switch(e){case"sha256":return"http://www.w3.org/2001/04/xmlenc#sha256";case"sha512":return"http://www.w3.org/2001/04/xmlenc#sha512";case"sha1":default:return"http://www.w3.org/2000/09/xmldsig#sha1"}}r.getDigestAlgorithm=getDigestAlgorithm;function getSigner(e){switch(e){case"sha256":return i.createSign("RSA-SHA256");case"sha512":return i.createSign("RSA-SHA512");case"sha1":default:return i.createSign("RSA-SHA1")}}r.getSigner=getSigner},5232:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.removeCertPEMHeaderAndFooter=r.generateUniqueId=r.certToPEM=r.keyToPEM=void 0;const i=n(6982);const o=n(8581);const keyToPEM=e=>{(0,o.assertRequired)(e,"key is required");if(typeof e!=="string")return e;if(e.split(/\r?\n/).length!==1)return e;const r=e.match(/.{1,64}/g);if(r){const e=["-----BEGIN PRIVATE KEY-----",...r,"-----END PRIVATE KEY-----",""].join("\n");return e}throw new Error("Invalid key")};r.keyToPEM=keyToPEM;const certToPEM=e=>{const r=e.match(/.{1,64}/g);(0,o.assertRequired)(r,"cert is invalid");let n=r.join("\n");if(n.indexOf("-BEGIN CERTIFICATE-")===-1)n="-----BEGIN CERTIFICATE-----\n"+n;if(n.indexOf("-END CERTIFICATE-")===-1)n=n+"\n-----END CERTIFICATE-----\n";return n};r.certToPEM=certToPEM;const generateUniqueId=()=>"_"+i.randomBytes(20).toString("hex");r.generateUniqueId=generateUniqueId;const removeCertPEMHeaderAndFooter=e=>{e=e.replace(/-----BEGIN CERTIFICATE-----\r?\n?/,"");e=e.replace(/-----END CERTIFICATE-----\r?\n?/,"");e=e.replace(/\r\n/g,"\n");return e};r.removeCertPEMHeaderAndFooter=removeCertPEMHeaderAndFooter},2064:function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.dateStringToTimestamp=r.generateInstant=void 0;const generateInstant=()=>(new Date).toISOString();r.generateInstant=generateInstant;const dateStringToTimestamp=(e,r)=>{const n=Date.parse(e);if(isNaN(n)){throw new Error(`Error parsing ${r}: '${e}' is not a valid date`)}return n};r.dateStringToTimestamp=dateStringToTimestamp},3982:function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.InMemoryCacheProvider=void 0;class InMemoryCacheProvider{constructor(e){var r;this.lastPrune=0;this.cacheKeys={};this.options={...e,keyExpirationPeriodMs:(r=e.keyExpirationPeriodMs)!==null&&r!==void 0?r:288e5};this.prune=()=>{const e=(new Date).getTime();if(e>this.lastPrune+this.options.keyExpirationPeriodMs){const r=Object.keys(this.cacheKeys);const n=[];r.forEach((r=>{if(e>=this.cacheKeys[r].createdAt+this.options.keyExpirationPeriodMs){n.push(r)}}));n.forEach((e=>this.removeAsync(e)));this.lastPrune=e}};this.removeKeyIfExpired=async(e,r)=>{if(this.cacheKeys[e]&&r>=this.cacheKeys[e].createdAt+this.options.keyExpirationPeriodMs){await this.removeAsync(e)}}}async saveAsync(e,r){this.prune();const n=(new Date).getTime();await this.removeKeyIfExpired(e,n);if(!this.cacheKeys[e]){this.cacheKeys[e]={createdAt:n,value:r};return this.cacheKeys[e]}else{return null}}async getAsync(e){this.prune();const r=(new Date).getTime();await this.removeKeyIfExpired(e,r);if(this.cacheKeys[e]){return this.cacheKeys[e].value}else{return null}}async removeAsync(e){if(e!=null&&this.cacheKeys[e]){delete this.cacheKeys[e];return e}else{return null}}}r.InMemoryCacheProvider=InMemoryCacheProvider},1800:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.generateServiceProviderMetadata=void 0;const i=n(5232);const o=n(8748);const s=n(8581);const a=n(9392);const generateServiceProviderMetadata=e=>{const{issuer:r,callbackUrl:n,logoutCallbackUrl:u,identifierFormat:l,wantAssertionsSigned:c,decryptionPvk:p,privateKey:h,metadataContactPerson:f,metadataOrganization:d,generateUniqueId:m}=e;let{signingCerts:g,decryptionCert:y}=e;if(p!=null){if(!y){throw new Error("Missing decryptionCert while generating metadata for decrypting service provider")}}else{y=null}if(h!=null){if(!g){throw new Error("Missing signingCert while generating metadata for signing service provider messages")}g=!Array.isArray(g)?[g]:g}else{g=null}const w={EntityDescriptor:{"@xmlns":"urn:oasis:names:tc:SAML:2.0:metadata","@xmlns:ds":"http://www.w3.org/2000/09/xmldsig#","@entityID":r,"@ID":m(),SPSSODescriptor:{"@protocolSupportEnumeration":"urn:oasis:names:tc:SAML:2.0:protocol","@AuthnRequestsSigned":"false"},...f?{ContactPerson:f}:{},...d?{Organization:d}:{}}};if(y!=null||g!=null){w.EntityDescriptor.SPSSODescriptor.KeyDescriptor=[];if((0,o.isValidSamlSigningOptions)(e)){(0,s.assertRequired)(g,"Missing signingCert while generating metadata for signing service provider messages");w.EntityDescriptor.SPSSODescriptor["@AuthnRequestsSigned"]=true;const e=Array.isArray(g)?g:[g];const r=e.map((e=>({"@use":"signing","ds:KeyInfo":{"ds:X509Data":{"ds:X509Certificate":{"#text":(0,i.removeCertPEMHeaderAndFooter)(e)}}}})));w.EntityDescriptor.SPSSODescriptor.KeyDescriptor.push(r)}if(p!=null){(0,s.assertRequired)(y,"Missing decryptionCert while generating metadata for decrypting service provider");y=(0,i.removeCertPEMHeaderAndFooter)(y);w.EntityDescriptor.SPSSODescriptor.KeyDescriptor.push({"@use":"encryption","ds:KeyInfo":{"ds:X509Data":{"ds:X509Certificate":{"#text":y}}},EncryptionMethod:[{"@Algorithm":"http://www.w3.org/2009/xmlenc11#aes256-gcm"},{"@Algorithm":"http://www.w3.org/2009/xmlenc11#aes128-gcm"},{"@Algorithm":"http://www.w3.org/2001/04/xmlenc#aes256-cbc"},{"@Algorithm":"http://www.w3.org/2001/04/xmlenc#aes128-cbc"}]})}}if(u!=null){w.EntityDescriptor.SPSSODescriptor.SingleLogoutService={"@Binding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST","@Location":u}}if(l!=null){w.EntityDescriptor.SPSSODescriptor.NameIDFormat=l}if(c){w.EntityDescriptor.SPSSODescriptor["@WantAssertionsSigned"]=true}w.EntityDescriptor.SPSSODescriptor.AssertionConsumerService={"@index":"1","@isDefault":"true","@Binding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST","@Location":n};let v=(0,a.buildXmlBuilderObject)(w,true);if(e.signMetadata===true&&(0,o.isValidSamlSigningOptions)(e)){v=(0,s.signXmlMetadata)(v,{privateKey:e.privateKey,signatureAlgorithm:e.signatureAlgorithm,xmlSignatureTransforms:e.xmlSignatureTransforms,digestAlgorithm:e.digestAlgorithm})}return v};r.generateServiceProviderMetadata=generateServiceProviderMetadata},9165:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.signAuthnRequestPost=r.signSamlPost=void 0;const i=n(9392);const o='/*[local-name(.)="AuthnRequest" and namespace-uri(.)="urn:oasis:names:tc:SAML:2.0:protocol"]';const s='/*[local-name(.)="Issuer" and namespace-uri(.)="urn:oasis:names:tc:SAML:2.0:assertion"]';function signSamlPost(e,r,n){return(0,i.signXml)(e,r,{reference:r+s,action:"after"},n)}r.signSamlPost=signSamlPost;function signAuthnRequestPost(e,r){return signSamlPost(e,o,r)}r.signAuthnRequestPost=signAuthnRequestPost},5720:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.SAML=void 0;const i=n(6449);const o=(0,i.default)("node-saml");const s=n(3106);const a=n(6982);const u=n(7016);const l=n(3480);const c=n(9023);const p=n(3982);const h=n(7775);const f=n(8748);const d=n(8581);const m=n(9392);const g=n(5232);const y=n(2064);const w=n(9165);const v=n(1800);const b=c.promisify(s.inflateRaw);const N=c.promisify(s.deflateRaw);class SAML{constructor(e){this.options=this.initialize(e);this.cacheProvider=this.options.cacheProvider}initialize(e){var r,n,i,o,s,a,u,l,c,h,m,y,w,v,b,N,E,T,D,S,A,O,x,I,L,P,C,M;if(!e){throw new TypeError("SamlOptions required on construction")}(0,d.assertRequired)(e.issuer,"issuer is required");(0,d.assertRequired)(e.cert,"cert is required");(0,d.assertBooleanIfPresent)(e.passive);(0,d.assertBooleanIfPresent)(e.disableRequestedAuthnContext);(0,d.assertBooleanIfPresent)(e.forceAuthn);(0,d.assertBooleanIfPresent)(e.skipRequestCompression);(0,d.assertBooleanIfPresent)(e.disableRequestAcsUrl);(0,d.assertBooleanIfPresent)(e.allowCreate);(0,d.assertBooleanIfPresent)(e.wantAssertionsSigned);(0,d.assertBooleanIfPresent)(e.wantAuthnResponseSigned);(0,d.assertBooleanIfPresent)(e.signMetadata);const X={...e,passive:(r=e.passive)!==null&&r!==void 0?r:false,disableRequestedAuthnContext:(n=e.disableRequestedAuthnContext)!==null&&n!==void 0?n:false,additionalParams:(i=e.additionalParams)!==null&&i!==void 0?i:{},additionalAuthorizeParams:(o=e.additionalAuthorizeParams)!==null&&o!==void 0?o:{},additionalLogoutParams:(s=e.additionalLogoutParams)!==null&&s!==void 0?s:{},forceAuthn:(a=e.forceAuthn)!==null&&a!==void 0?a:false,skipRequestCompression:(u=e.skipRequestCompression)!==null&&u!==void 0?u:false,disableRequestAcsUrl:(l=e.disableRequestAcsUrl)!==null&&l!==void 0?l:false,acceptedClockSkewMs:(c=e.acceptedClockSkewMs)!==null&&c!==void 0?c:0,maxAssertionAgeMs:(h=e.maxAssertionAgeMs)!==null&&h!==void 0?h:0,path:(m=e.path)!==null&&m!==void 0?m:"/saml/consume",host:(y=e.host)!==null&&y!==void 0?y:"localhost",issuer:e.issuer,audience:(v=(w=e.audience)!==null&&w!==void 0?w:e.issuer)!==null&&v!==void 0?v:"unknown_audience",identifierFormat:e.identifierFormat===undefined?"urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress":e.identifierFormat,allowCreate:(b=e.allowCreate)!==null&&b!==void 0?b:true,spNameQualifier:e.spNameQualifier,wantAssertionsSigned:(N=e.wantAssertionsSigned)!==null&&N!==void 0?N:true,wantAuthnResponseSigned:(E=e.wantAuthnResponseSigned)!==null&&E!==void 0?E:true,authnContext:(T=e.authnContext)!==null&&T!==void 0?T:["urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"],validateInResponseTo:(D=e.validateInResponseTo)!==null&&D!==void 0?D:f.ValidateInResponseTo.never,cert:e.cert,requestIdExpirationPeriodMs:(S=e.requestIdExpirationPeriodMs)!==null&&S!==void 0?S:288e5,cacheProvider:(A=e.cacheProvider)!==null&&A!==void 0?A:new p.InMemoryCacheProvider({keyExpirationPeriodMs:e.requestIdExpirationPeriodMs}),logoutUrl:(x=(O=e.logoutUrl)!==null&&O!==void 0?O:e.entryPoint)!==null&&x!==void 0?x:"",signatureAlgorithm:(I=e.signatureAlgorithm)!==null&&I!==void 0?I:"sha1",authnRequestBinding:(L=e.authnRequestBinding)!==null&&L!==void 0?L:"HTTP-Redirect",generateUniqueId:(P=e.generateUniqueId)!==null&&P!==void 0?P:g.generateUniqueId,signMetadata:(C=e.signMetadata)!==null&&C!==void 0?C:false,racComparison:(M=e.racComparison)!==null&&M!==void 0?M:"exact"};if(!["exact","minimum","maximum","better"].includes(X.racComparison)){throw new TypeError("racComparison must be one of ['exact', 'minimum', 'maximum', 'better']")}return X}getCallbackUrl(e){if(this.options.callbackUrl){return this.options.callbackUrl}else{const r=new u.URL("http://localhost");if(e){r.host=e}else{r.host=this.options.host}if(this.options.protocol){r.protocol=this.options.protocol}r.pathname=this.options.path;return r.toString()}}signRequest(e){(0,d.assertRequired)(this.options.privateKey,"privateKey is required");const r={};e.SigAlg=h.getSigningAlgorithm(this.options.signatureAlgorithm);const n=h.getSigner(this.options.signatureAlgorithm);if(e.SAMLRequest){r.SAMLRequest=e.SAMLRequest}if(e.SAMLResponse){r.SAMLResponse=e.SAMLResponse}if(e.RelayState){r.RelayState=e.RelayState}if(e.SigAlg){r.SigAlg=e.SigAlg}n.update(l.stringify(r));e.Signature=n.sign((0,g.keyToPEM)(this.options.privateKey),"base64")}async generateAuthorizeRequestAsync(e,r,n){(0,d.assertRequired)(this.options.entryPoint,"entryPoint is required");const i=this.options.generateUniqueId();const o=(0,y.generateInstant)();if(this.mustValidateInResponseTo(true)){await this.cacheProvider.saveAsync(i,o)}const s={"samlp:AuthnRequest":{"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol","@ID":i,"@Version":"2.0","@IssueInstant":o,"@ProtocolBinding":"urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST","@Destination":this.options.entryPoint,"saml:Issuer":{"@xmlns:saml":"urn:oasis:names:tc:SAML:2.0:assertion","#text":this.options.issuer}}};if(e)s["samlp:AuthnRequest"]["@IsPassive"]=true;if(this.options.forceAuthn===true){s["samlp:AuthnRequest"]["@ForceAuthn"]=true}if(!this.options.disableRequestAcsUrl){s["samlp:AuthnRequest"]["@AssertionConsumerServiceURL"]=this.getCallbackUrl(n)}const a=this.options.samlAuthnRequestExtensions;if(a!=null){if(typeof a!="object"){throw new TypeError("samlAuthnRequestExtensions should be Object")}s["samlp:AuthnRequest"]["samlp:Extensions"]={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol",...a}}const u={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol","@AllowCreate":this.options.allowCreate};if(this.options.identifierFormat!=null){u["@Format"]=this.options.identifierFormat}if(this.options.spNameQualifier!=null){u["@SPNameQualifier"]=this.options.spNameQualifier}s["samlp:AuthnRequest"]["samlp:NameIDPolicy"]=u;if(!this.options.disableRequestedAuthnContext){const e=[];this.options.authnContext.forEach((function(r){e.push({"@xmlns:saml":"urn:oasis:names:tc:SAML:2.0:assertion","#text":r})}));s["samlp:AuthnRequest"]["samlp:RequestedAuthnContext"]={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol","@Comparison":this.options.racComparison,"saml:AuthnContextClassRef":e}}if(this.options.attributeConsumingServiceIndex!=null){s["samlp:AuthnRequest"]["@AttributeConsumingServiceIndex"]=this.options.attributeConsumingServiceIndex}if(this.options.providerName!=null){s["samlp:AuthnRequest"]["@ProviderName"]=this.options.providerName}if(this.options.scoping!=null){const e={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol"};if(typeof this.options.scoping.proxyCount==="number"){e["@ProxyCount"]=this.options.scoping.proxyCount}if(this.options.scoping.idpList){e["samlp:IDPList"]=this.options.scoping.idpList.map((e=>{const r={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol"};if(e.entries){r["samlp:IDPEntry"]=e.entries.map((e=>{const r={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol"};r["@ProviderID"]=e.providerId;if(e.name){r["@Name"]=e.name}if(e.loc){r["@Loc"]=e.loc}return r}))}if(e.getComplete){r["samlp:GetComplete"]=e.getComplete}return r}))}if(this.options.scoping.requesterId){e["samlp:RequesterID"]=this.options.scoping.requesterId}s["samlp:AuthnRequest"]["samlp:Scoping"]=e}let l=(0,m.buildXmlBuilderObject)(s,false);if(r&&(0,f.isValidSamlSigningOptions)(this.options)){l=(0,w.signAuthnRequestPost)(l,this.options)}return l}async _generateLogoutRequest(e){const r=this.options.generateUniqueId();const n=(0,y.generateInstant)();const i={"samlp:LogoutRequest":{"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol","@xmlns:saml":"urn:oasis:names:tc:SAML:2.0:assertion","@ID":r,"@Version":"2.0","@IssueInstant":n,"@Destination":this.options.logoutUrl,"saml:Issuer":{"@xmlns:saml":"urn:oasis:names:tc:SAML:2.0:assertion","#text":this.options.issuer},"samlp:Extensions":{},"saml:NameID":{"@Format":e.nameIDFormat,"#text":e.nameID}}};const o=this.options.samlLogoutRequestExtensions;if(o!=null){if(typeof o!="object"){throw new TypeError("samlLogoutRequestExtensions should be Object")}i["samlp:LogoutRequest"]["samlp:Extensions"]={"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol",...o}}else{delete i["samlp:LogoutRequest"]["samlp:Extensions"]}if(e.nameQualifier!=null){i["samlp:LogoutRequest"]["saml:NameID"]["@NameQualifier"]=e.nameQualifier}if(e.spNameQualifier!=null){i["samlp:LogoutRequest"]["saml:NameID"]["@SPNameQualifier"]=e.spNameQualifier}if(e.sessionIndex){i["samlp:LogoutRequest"]["saml2p:SessionIndex"]={"@xmlns:saml2p":"urn:oasis:names:tc:SAML:2.0:protocol","#text":e.sessionIndex}}await this.cacheProvider.saveAsync(r,n);return(0,m.buildXmlBuilderObject)(i,false)}_generateLogoutResponse(e,r){const n=this.options.generateUniqueId();const i=(0,y.generateInstant)();const o={"samlp:StatusCode":{"@Value":"urn:oasis:names:tc:SAML:2.0:status:Success"}};const s={"samlp:StatusCode":{"@Value":"urn:oasis:names:tc:SAML:2.0:status:Requester","samlp:StatusCode":{"@Value":"urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal"}}};const a={"samlp:LogoutResponse":{"@xmlns:samlp":"urn:oasis:names:tc:SAML:2.0:protocol","@xmlns:saml":"urn:oasis:names:tc:SAML:2.0:assertion","@ID":n,"@Version":"2.0","@IssueInstant":i,"@Destination":this.options.logoutUrl,"@InResponseTo":e.ID,"saml:Issuer":{"#text":this.options.issuer},"samlp:Status":r?o:s}};return(0,m.buildXmlBuilderObject)(a,false)}async _requestToUrlAsync(e,r,n,i){(0,d.assertRequired)(this.options.entryPoint,"entryPoint is required");const o=e||r;(0,d.assertRequired)(o,"either request or response is required");let s;if(this.options.skipRequestCompression){s=Buffer.from(o,"utf8")}else{s=await N(o)}const a=s.toString("base64");let l=new u.URL(this.options.entryPoint);if(n==="logout"){if(this.options.logoutUrl){l=new u.URL(this.options.logoutUrl)}}else if(n!=="authorize"){throw new Error("Unknown operation: "+n)}const c=e?{SAMLRequest:a}:{SAMLResponse:a};Object.keys(i).forEach((e=>{c[e]=i[e]}));if((0,f.isValidSamlSigningOptions)(this.options)){if(!this.options.entryPoint){throw new Error('"entryPoint" config parameter is required for signed messages')}this.signRequest(c)}Object.keys(c).forEach((e=>{l.searchParams.set(e,c[e])}));return l.toString()}_getAdditionalParams(e,r,n){const i={};if(typeof e==="string"&&e.length>0){i.RelayState=e}return Object.assign(i,this.options.additionalParams,r==="logout"?this.options.additionalLogoutParams:this.options.additionalAuthorizeParams,n!==null&&n!==void 0?n:{})}async getAuthorizeUrlAsync(e,r,n){const i=await this.generateAuthorizeRequestAsync(this.options.passive,false,r);const o="authorize";const s=n?n.additionalParams||{}:{};return await this._requestToUrlAsync(i,null,o,this._getAdditionalParams(e,o,s))}async getAuthorizeFormAsync(e,r){(0,d.assertRequired)(this.options.entryPoint,"entryPoint is required");const quoteattr=function(e,r){const n=r?" ":"\n";return(""+e).replace(/&/g,"&").replace(/'/g,"'").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">").replace(/\r\n/g,n).replace(/[\r\n]/g,n)};const n=await this.generateAuthorizeRequestAsync(this.options.passive,true,r);let i;if(this.options.skipRequestCompression){i=Buffer.from(n,"utf8")}else{i=await N(n)}const o="authorize";const s=this._getAdditionalParams(e,o);const a={SAMLRequest:i.toString("base64")};Object.keys(s).forEach((e=>{a[e]=s[e]||""}));const u=Object.keys(a).map((e=>'<input type="hidden" name="'+e+'" value="'+quoteattr(a[e])+'" />')).join("\r\n");return["<!DOCTYPE html>","<html>","<head>",'<meta charset="utf-8">','<meta http-equiv="x-ua-compatible" content="ie=edge">',"</head>",'<body onload="document.forms[0].submit()">',"<noscript>","<p><strong>Note:</strong> Since your browser does not support JavaScript, you must press the button below once to proceed.</p>","</noscript>",'<form method="post" action="'+encodeURI(this.options.entryPoint)+'">',u,'<input type="submit" value="Submit" />',"</form>",'<script>document.forms[0].style.display="none";<\/script>',"</body>","</html>"].join("\r\n")}async getLogoutUrlAsync(e,r,n){const i=await this._generateLogoutRequest(e);const o="logout";const s=n?n.additionalParams||{}:{};return await this._requestToUrlAsync(i,null,o,this._getAdditionalParams(r,o,s))}getLogoutResponseUrl(e,r,n,i,o){c.callbackify((()=>this.getLogoutResponseUrlAsync(e,r,n,i)))(o)}async getLogoutResponseUrlAsync(e,r,n,i){const o=this._generateLogoutResponse(e,i);const s="logout";const a=n?n.additionalParams||{}:{};return await this._requestToUrlAsync(null,o,s,this._getAdditionalParams(r,s,a))}async certsToCheck(){let e;if(typeof this.options.cert==="function"){e=await c.promisify(this.options.cert)().then((e=>{(0,d.assertRequired)(e,"callback didn't return cert");if(!Array.isArray(e)){e=[e]}return e}))}else if(Array.isArray(this.options.cert)){e=this.options.cert}else{e=[this.options.cert]}e.forEach((e=>{(0,d.assertRequired)(e,"unknown cert found")}));return e}async validatePostResponseAsync(e){var r,n,i,s;let a;let u;let l=null;try{a=Buffer.from(e.SAMLResponse,"base64").toString("utf8");u=await(0,m.parseDomFromString)(a);const o=m.xpath.selectAttributes(u,"/*[local-name()='Response']/@InResponseTo");if(o){l=o.length?o[0].nodeValue:null;await this.validateInResponseTo(l)}const c=await this.certsToCheck();let p=false;if((0,m.validateSignature)(a,u.documentElement,c)){p=true}if(this.options.wantAuthnResponseSigned===true&&p===false){throw new Error("Invalid document signature")}const h=m.xpath.selectElements(u,"/*[local-name()='Response']/*[local-name()='Assertion']");const g=m.xpath.selectElements(u,"/*[local-name()='Response']/*[local-name()='EncryptedAssertion']");if(h.length+g.length>1){throw new Error("Invalid signature: multiple assertions")}if(h.length==1){if((this.options.wantAssertionsSigned||!p)&&!(0,m.validateSignature)(a,h[0],c)){throw new Error("Invalid signature")}return await this.processValidlySignedAssertionAsync(h[0].toString(),a,l)}if(g.length==1){(0,d.assertRequired)(this.options.decryptionPvk,"No decryption key for encrypted SAML response");const e=g[0].toString();const r=await(0,m.decryptXml)(e,this.options.decryptionPvk);const n=await(0,m.parseDomFromString)(r);const i=m.xpath.selectElements(n,"/*[local-name()='Assertion']");if(i.length!=1)throw new Error("Invalid EncryptedAssertion content");if((this.options.wantAssertionsSigned||!p)&&!(0,m.validateSignature)(r,i[0],c)){throw new Error("Invalid signature from encrypted assertion")}return await this.processValidlySignedAssertionAsync(i[0].toString(),a,l)}const y=await(0,m.parseXml2JsFromString)(a);const w=y.Response;if(w){if(!("Assertion"in w)){const e=w.Status;if(e){const o=e[0].StatusCode;if(o&&((r=o[0].$)===null||r===void 0?void 0:r.Value)==="urn:oasis:names:tc:SAML:2.0:status:Responder"){const e=o[0].StatusCode;if(e&&((n=e[0].$)===null||n===void 0?void 0:n.Value)==="urn:oasis:names:tc:SAML:2.0:status:NoPassive"){if(!p){throw new Error("Invalid signature: NoPassive")}return{profile:null,loggedOut:false}}}if(o&&((i=o[0].$)===null||i===void 0?void 0:i.Value)){const r=o[0].$.Value.match(/[^:]*$/);if(r&&r[0]!="Success"){let n="unspecified";if(e[0].StatusMessage){n=e[0].StatusMessage[0]._||n}else if(o[0].StatusCode){const e=(s=o[0].StatusCode[0].$)===null||s===void 0?void 0:s.Value.match(/[^:]*$/);n=e?e[0]:n}const i=(0,m.buildXml2JsObject)("Status",e[0]);throw new f.ErrorWithXmlStatus("SAML provider returned "+r+" error: "+n,i)}}}}throw new Error("Missing SAML assertion")}else{if(!p){throw new Error("Invalid signature: No response found")}const e=y.LogoutResponse;if(e){return{profile:null,loggedOut:true}}else{throw new Error("Unknown SAML response message")}}}catch(e){o("validatePostResponse resulted in an error: %s",e);if(this.mustValidateInResponseTo(Boolean(l))){await this.cacheProvider.removeAsync(l)}throw e}}async validateInResponseTo(e){if(this.mustValidateInResponseTo(Boolean(e))){if(e){const r=await this.cacheProvider.getAsync(e);if(!r)throw new Error("InResponseTo is not valid");return}else{throw new Error("InResponseTo is missing from response")}}}async validateRedirectAsync(e,r){const n=e.SAMLRequest?"SAMLRequest":"SAMLResponse";const i=Buffer.from(e[n],"base64");const o=await b(i);const s=await(0,m.parseDomFromString)(o.toString());const a=await(0,m.parseXml2JsFromString)(o);n==="SAMLResponse"?await this.verifyLogoutResponse(a):this.verifyLogoutRequest(a);await this.hasValidSignatureForRedirect(e,r);return await this.processValidlySignedSamlLogoutAsync(a,s)}async hasValidSignatureForRedirect(e,r){const n=r.split("&");const getParam=e=>{const r=n.filter((r=>new RegExp(e).test(r)));return r[0]};if(e.Signature){let r=getParam("SAMLRequest")||getParam("SAMLResponse");if(getParam("RelayState")){r+="&"+getParam("RelayState")}r+="&"+getParam("SigAlg");const n=await this.certsToCheck();const i=n.some((n=>this.validateSignatureForRedirect(r,e.Signature,e.SigAlg,n)));if(!i){throw new Error("Invalid query signature")}}else{return true}}validateSignatureForRedirect(e,r,n,i){function hasMatch(e){const r=n.toLowerCase().replace(/.*#(.*)$/,"$1");return e.toLowerCase()===r}const o=a.getHashes().findIndex(hasMatch);let s;if(o>-1){s=a.getHashes()[o]}else{throw new Error(n+" is not supported")}const u=a.createVerify(s);u.update(e);return u.verify((0,g.certToPEM)(i),r,"base64")}verifyLogoutRequest(e){this.verifyIssuer(e.LogoutRequest);const r=(new Date).getTime();const n=e.LogoutRequest.$;const i=this.checkTimestampsValidityError(r,n.NotBefore,n.NotOnOrAfter);if(i){throw i}}async verifyLogoutResponse(e){const r=e.LogoutResponse.Status[0].StatusCode[0].$.Value;if(r!=="urn:oasis:names:tc:SAML:2.0:status:Success")throw new Error("Bad status code: "+r);this.verifyIssuer(e.LogoutResponse);const n=e.LogoutResponse.$.InResponseTo;if(n){return this.validateInResponseTo(n)}return}verifyIssuer(e){if(this.options.idpIssuer!=null){const r=e.Issuer;if(r){if(r[0]._!==this.options.idpIssuer)throw new Error("Unknown SAML issuer. Expected: "+this.options.idpIssuer+" Received: "+r[0]._)}else{throw new Error("Missing SAML issuer")}}}async processValidlySignedAssertionAsync(e,r,n){let i;const o=(new Date).getTime();const s={};const a=await(0,m.parseXml2JsFromString)(e);const u=a;const l=a.Assertion;e:{const e=l.Issuer;if(e&&e[0]._){s.issuer=e[0]._}if(n!=null){s.inResponseTo=n}const r=l.AuthnStatement;if(r){if(r[0].$&&r[0].$.SessionIndex){s.sessionIndex=r[0].$.SessionIndex}}const a=l.Subject;let u;let c=null;let p=null;if(a){const e=a[0].NameID;if(e&&e[0]._){s.nameID=e[0]._;if(e[0].$&&e[0].$.Format){s.nameIDFormat=e[0].$.Format;s.nameQualifier=e[0].$.NameQualifier;s.spNameQualifier=e[0].$.SPNameQualifier}}p=a[0].SubjectConfirmation;u=p===null||p===void 0?void 0:p.find((e=>{var r;const n=(r=e.SubjectConfirmationData)===null||r===void 0?void 0:r[0];if(n===null||n===void 0?void 0:n.$){const e=n.$.NotBefore;const r=n.$.NotOnOrAfter;const i=this.calcMaxAgeAssertionTime(this.options.maxAssertionAgeMs,r,l.$.IssueInstant);const s=this.checkTimestampsValidityError(o,e,r,i);if(s===null)return true}return false}));if(u!=null){c=u.SubjectConfirmationData[0]}}if(this.mustValidateInResponseTo(Boolean(n))){if(u){if(c===null||c===void 0?void 0:c.$){const e=c.$.InResponseTo;if(n&&e&&e!=n){await this.cacheProvider.removeAsync(n);throw new Error("InResponseTo does not match subjectInResponseTo")}else if(e){let r=false;const i=await this.cacheProvider.getAsync(e);if(i){const e=new Date(i);if(o<e.getTime()+this.options.requestIdExpirationPeriodMs)r=true}await this.cacheProvider.removeAsync(n);if(!r){throw new Error("SubjectInResponseTo is not valid")}break e}}}else{if(p!=null&&u==null){i="No valid subject confirmation found among those available in the SAML assertion";throw new Error(i)}else{await this.cacheProvider.removeAsync(n);break e}}}else{break e}}const c=l.Conditions?l.Conditions[0]:null;if(l.Conditions&&l.Conditions.length>1){i="Unable to process multiple conditions in SAML assertion";throw new Error(i)}if(c&&c.$){const e=this.calcMaxAgeAssertionTime(this.options.maxAssertionAgeMs,c.$.NotOnOrAfter,l.$.IssueInstant);const r=this.checkTimestampsValidityError(o,c.$.NotBefore,c.$.NotOnOrAfter,e);if(r)throw r}if(this.options.audience!==false){const e=this.checkAudienceValidityError(this.options.audience,c.AudienceRestriction);if(e)throw e}const p=l.AttributeStatement;if(p){const e=[].concat(...p.filter((e=>Array.isArray(e.Attribute))).map((e=>e.Attribute)));const attrValueMapper=e=>{const r=Object.keys(e).some((e=>e!=="_"&&e!=="$"));return r?e:e._};if(e.length>0){const r={};e.forEach((e=>{if(!Object.prototype.hasOwnProperty.call(e,"AttributeValue")){return}const n=e.$.Name;const i=e.AttributeValue.length===1?attrValueMapper(e.AttributeValue[0]):e.AttributeValue.map(attrValueMapper);r[n]=i;if(Object.prototype.hasOwnProperty.call(s,n)){return}s[n]=i}));s.attributes=r}}if(!s.mail&&s["urn:oid:0.9.2342.19200300.100.1.3"]){s.mail=s["urn:oid:0.9.2342.19200300.100.1.3"]}if(!s.email&&s.mail){s.email=s.mail}s.getAssertionXml=()=>e.toString();s.getAssertion=()=>u;s.getSamlResponseXml=()=>r;return{profile:s,loggedOut:false}}checkTimestampsValidityError(e,r,n,i){if(this.options.acceptedClockSkewMs==-1)return null;if(r){const n=(0,y.dateStringToTimestamp)(r,"NotBefore");if(e+this.options.acceptedClockSkewMs<n)return new Error("SAML assertion not yet valid")}if(n){const r=(0,y.dateStringToTimestamp)(n,"NotOnOrAfter");if(e-this.options.acceptedClockSkewMs>=r)return new Error("SAML assertion expired: clocks skewed too much")}if(i){if(e-this.options.acceptedClockSkewMs>=i)return new Error("SAML assertion expired: assertion too old")}return null}checkAudienceValidityError(e,r){if(!r||r.length<1){return new Error("SAML assertion has no AudienceRestriction")}const n=r.map((r=>{if(!r.Audience||!r.Audience[0]||!r.Audience[0]._){return new Error("SAML assertion AudienceRestriction has no Audience value")}if(r.Audience[0]._!==e){return new Error("SAML assertion audience mismatch")}return null})).filter((e=>e!==null));if(n.length>0){return n[0]}return null}async validatePostRequestAsync(e){const r=Buffer.from(e.SAMLRequest,"base64").toString("utf8");const n=await(0,m.parseDomFromString)(r);const i=await(0,m.parseXml2JsFromString)(r);const o=await this.certsToCheck();if(!(0,m.validateSignature)(r,n.documentElement,o)){throw new Error("Invalid signature on documentElement")}return await this.processValidlySignedPostRequestAsync(i,n)}async processValidlySignedPostRequestAsync(e,r){var n;const i=e.LogoutRequest;this.verifyLogoutRequest(e);if(i){const e={};if(i.$.ID){e.ID=i.$.ID}else{throw new Error("Missing SAML LogoutRequest ID")}const o=i.Issuer;if(o&&o[0]._){e.issuer=o[0]._}else{throw new Error("Missing SAML issuer")}const s=await(0,m.getNameIdAsync)(r,(n=this.options.decryptionPvk)!==null&&n!==void 0?n:null);if(s.value){e.nameID=s.value;if(s.format){e.nameIDFormat=s.format}}else{throw new Error("Missing SAML NameID")}const a=i.SessionIndex;if(a){e.sessionIndex=a[0]._}return{profile:e,loggedOut:true}}else{throw new Error("Unknown SAML request message")}}async processValidlySignedSamlLogoutAsync(e,r){const n=e.LogoutResponse;const i=e.LogoutRequest;if(n){return{profile:null,loggedOut:true}}else if(i){return await this.processValidlySignedPostRequestAsync(e,r)}else{throw new Error("Unknown SAML response message")}}generateServiceProviderMetadata(e,r){const n=this.getCallbackUrl();return(0,v.generateServiceProviderMetadata)({...this.options,callbackUrl:n,decryptionCert:e,signingCerts:r})}calcMaxAgeAssertionTime(e,r,n){const i=(0,y.dateStringToTimestamp)(r,"NotOnOrAfter");const o=(0,y.dateStringToTimestamp)(n,"IssueInstant");if(e===0){return i}const s=o+e;return s<i?s:i}mustValidateInResponseTo(e){return this.options.validateInResponseTo===f.ValidateInResponseTo.always||this.options.validateInResponseTo===f.ValidateInResponseTo.ifPresent&&e}}r.SAML=SAML},8748:function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.ErrorWithXmlStatus=r.ValidateInResponseTo=r.isValidSamlSigningOptions=void 0;const isValidSamlSigningOptions=e=>e.privateKey!=null;r.isValidSamlSigningOptions=isValidSamlSigningOptions;var n;(function(e){e["never"]="never";e["ifPresent"]="ifPresent";e["always"]="always"})(n=r.ValidateInResponseTo||(r.ValidateInResponseTo={}));class ErrorWithXmlStatus extends Error{constructor(e,r){super(e);this.xmlStatus=r}}r.ErrorWithXmlStatus=ErrorWithXmlStatus},8581:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.signXmlMetadata=r.signXmlResponse=r.assertBooleanIfPresent=r.assertRequired=void 0;const i=n(9392);function assertRequired(e,r){if(e===undefined||e===null||typeof e==="string"&&e.length===0){throw new TypeError(r!==null&&r!==void 0?r:"value does not exist")}}r.assertRequired=assertRequired;function assertBooleanIfPresent(e,r){if(e!=null&&typeof e!="boolean"){throw new TypeError(r!==null&&r!==void 0?r:"value is set but not boolean")}}r.assertBooleanIfPresent=assertBooleanIfPresent;function signXmlResponse(e,r){const n='//*[local-name(.)="Response" and namespace-uri(.)="urn:oasis:names:tc:SAML:2.0:protocol"]';return(0,i.signXml)(e,n,{reference:n,action:"append"},r)}r.signXmlResponse=signXmlResponse;function signXmlMetadata(e,r){const n='//*[local-name(.)="EntityDescriptor" and namespace-uri(.)="urn:oasis:names:tc:SAML:2.0:metadata"]';return(0,i.signXml)(e,n,{reference:n,action:"prepend"},r)}r.signXmlMetadata=signXmlMetadata},9392:function(e,r,n){"use strict";Object.defineProperty(r,"__esModule",{value:true});r.getNameIdAsync=r.promiseWithNameId=r.buildXmlBuilderObject=r.buildXml2JsObject=r.parseXml2JsFromString=r.parseDomFromString=r.signXml=r.validateXmlSignatureForCert=r.validateSignature=r.decryptXml=r.xpath=void 0;const i=n(9023);const o=n(6877);const s=n(197);const a=n(8737);const u=n(8123);const l=n(4512);const c=n(8748);const p=n(7775);const h=n(8581);const f=n(5232);const selectXPath=(e,r,n)=>{const i=o.xpath(r,n);if(!e(i)){throw new Error("invalid xpath return type")}return i};const attributesXPathTypeGuard=e=>e.every((e=>{if(typeof e!="object"){return false}return typeof e.nodeType==="number"&&e.nodeType===e.ATTRIBUTE_NODE}));const elementsXPathTypeGuard=e=>e.every((e=>{if(typeof e!="object"){return false}return typeof e.nodeType==="number"&&e.nodeType===e.ELEMENT_NODE}));r.xpath={selectAttributes:(e,r)=>selectXPath(attributesXPathTypeGuard,e,r),selectElements:(e,r)=>selectXPath(elementsXPathTypeGuard,e,r)};const decryptXml=async(e,r)=>i.promisify(s.decrypt).bind(s)(e,{key:r});r.decryptXml=decryptXml;const normalizeNewlines=e=>e.replace(/\r\n?/g,"\n");const validateSignature=(e,n,i)=>{const o=".//*["+"local-name(.)='Signature' and "+"namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#' and "+"descendant::*[local-name(.)='Reference' and @URI='#"+n.getAttribute("ID")+"']"+"]";const s=r.xpath.selectElements(n,o);if(s.length!==1){return false}const a=".//*["+"local-name(.)='Transform' and "+"namespace-uri(.)='http://www.w3.org/2000/09/xmldsig#' and "+"ancestor::*[local-name(.)='Reference' and @URI='#"+n.getAttribute("ID")+"']"+"]";const u=r.xpath.selectElements(n,a);if(u.length>2){throw new Error("Invalid signature, too many transforms")}const l=s[0];return i.some((i=>(0,r.validateXmlSignatureForCert)(l,(0,f.certToPEM)(i),e,n)))};r.validateSignature=validateSignature;const validateXmlSignatureForCert=(e,n,i,s)=>{const a=new o.SignedXml;a.keyInfoProvider={file:"",getKeyInfo:()=>"<X509Data></X509Data>",getKey:()=>Buffer.from(n)};a.loadSignature(e);if(a.references.length!=1)return false;const u=a.references[0].uri;(0,h.assertRequired)(u,"signature reference uri not found");const l=u[0]==="#"?u.substring(1):u;const c=s.getAttribute("ID")?"ID":"Id";if(s.getAttribute(c)!=l)return false;const p=r.xpath.selectElements(s.ownerDocument,"//*[@"+c+"='"+l+"']");if(p.length>1){return false}i=normalizeNewlines(i);return a.checkSignature(i)};r.validateXmlSignatureForCert=validateXmlSignatureForCert;const signXml=(e,r,n,i)=>{var s;const a=["http://www.w3.org/2000/09/xmldsig#enveloped-signature","http://www.w3.org/2001/10/xml-exc-c14n#"];if(!e)throw new Error("samlMessage is required");if(!n)throw new Error("location is required");if(!i)throw new Error("options is required");if(!(0,c.isValidSamlSigningOptions)(i))throw new Error("options.privateKey is required");const u=(s=i.xmlSignatureTransforms)!==null&&s!==void 0?s:a;const l=new o.SignedXml;if(i.signatureAlgorithm!=null){l.signatureAlgorithm=p.getSigningAlgorithm(i.signatureAlgorithm)}l.addReference(r,u,p.getDigestAlgorithm(i.digestAlgorithm));l.signingKey=i.privateKey;l.computeSignature(e,{location:n});return l.getSignedXml()};r.signXml=signXml;const parseDomFromString=e=>new Promise((function(r,n){function errHandler(e){return n(new Error(e))}const i=new a.DOMParser({locator:{},errorHandler:{error:errHandler,fatalError:errHandler}}).parseFromString(e,"text/xml");if(!Object.prototype.hasOwnProperty.call(i,"documentElement")){return n(new Error("Not a valid XML document"))}return r(i)}));r.parseDomFromString=parseDomFromString;const parseXml2JsFromString=async e=>{const r={explicitRoot:true,explicitCharkey:true,tagNameProcessors:[u.processors.stripPrefix]};const n=new u.Parser(r);return n.parseStringPromise(e)};r.parseXml2JsFromString=parseXml2JsFromString;const buildXml2JsObject=(e,r)=>{const n={rootName:e,headless:true};return new u.Builder(n).buildObject(r)};r.buildXml2JsObject=buildXml2JsObject;const buildXmlBuilderObject=(e,r)=>{const n=r?{pretty:true,indent:" ",newline:"\n"}:{};return l.create(e).end(n)};r.buildXmlBuilderObject=buildXmlBuilderObject;const promiseWithNameId=async e=>{const n=r.xpath.selectAttributes(e,"@Format");return{value:e.textContent,format:n&&n[0]&&n[0].nodeValue}};r.promiseWithNameId=promiseWithNameId;const getNameIdAsync=async(e,n)=>{const i=r.xpath.selectElements(e,"/*[local-name()='LogoutRequest']/*[local-name()='NameID']");const o=r.xpath.selectElements(e,"/*[local-name()='LogoutRequest']/*[local-name()='EncryptedID']");if(i.length+o.length>1){throw new Error("Invalid LogoutRequest")}if(i.length===1){return(0,r.promiseWithNameId)(i[0])}if(o.length===1){(0,h.assertRequired)(n,"No decryption key found getting name ID for encrypted SAML response");const e=r.xpath.selectElements(o[0],"./*[local-name()='EncryptedData']");if(e.length!==1){throw new Error("Invalid LogoutRequest")}const i=e[0].toString();const s=await(0,r.decryptXml)(i,n);const a=await(0,r.parseDomFromString)(s);const u=r.xpath.selectElements(a,"/*[local-name()='NameID']");if(u.length!==1){throw new Error("Invalid EncryptedAssertion content")}return await(0,r.promiseWithNameId)(u[0])}throw new Error("Missing SAML NameID")};r.getNameIdAsync=getNameIdAsync},5741:function(e,r){"use strict";function find(e,r,n){if(n===undefined){n=Array.prototype}if(e&&typeof n.find==="function"){return n.find.call(e,r)}for(var i=0;i<e.length;i++){if(Object.prototype.hasOwnProperty.call(e,i)){var o=e[i];if(r.call(undefined,o,i,e)){return o}}}}function freeze(e,r){if(r===undefined){r=Object}return r&&typeof r.freeze==="function"?r.freeze(e):e}function assign(e,r){if(e===null||typeof e!=="object"){throw new TypeError("target is not an object")}for(var n in r){if(Object.prototype.hasOwnProperty.call(r,n)){e[n]=r[n]}}return e}var n=freeze({HTML:"text/html",isHTML:function(e){return e===n.HTML},XML_APPLICATION:"application/xml",XML_TEXT:"text/xml",XML_XHTML_APPLICATION:"application/xhtml+xml",XML_SVG_IMAGE:"image/svg+xml"});var i=freeze({HTML:"http://www.w3.org/1999/xhtml",isHTML:function(e){return e===i.HTML},SVG:"http://www.w3.org/2000/svg",XML:"http://www.w3.org/XML/1998/namespace",XMLNS:"http://www.w3.org/2000/xmlns/"});r.assign=assign;r.find=find;r.freeze=freeze;r.MIME_TYPE=n;r.NAMESPACE=i},6425:function(e,r,n){var i;var o=n(5741);var s=n(6537);var a=n(1510);var u=n(8197);var l=s.DOMImplementation;var c=o.NAMESPACE;var p=u.ParseError;var h=u.XMLReader;function normalizeLineEndings(e){return e.replace(/\r[\n\u0085]/g,"\n").replace(/[\r\u0085\u2028]/g,"\n")}function DOMParser(e){this.options=e||{locator:{}}}DOMParser.prototype.parseFromString=function(e,r){var n=this.options;var i=new h;var o=n.domBuilder||new DOMHandler;var s=n.errorHandler;var u=n.locator;var l=n.xmlns||{};var p=/\/x?html?$/.test(r);var f=p?a.HTML_ENTITIES:a.XML_ENTITIES;if(u){o.setDocumentLocator(u)}i.errorHandler=buildErrorHandler(s,o,u);i.domBuilder=n.domBuilder||o;if(p){l[""]=c.HTML}l.xml=l.xml||c.XML;var d=n.normalizeLineEndings||normalizeLineEndings;if(e&&typeof e==="string"){i.parse(d(e),l,f)}else{i.errorHandler.error("invalid doc source")}return o.doc};function buildErrorHandler(e,r,n){if(!e){if(r instanceof DOMHandler){return r}e=r}var i={};var o=e instanceof Function;n=n||{};function build(r){var s=e[r];if(!s&&o){s=e.length==2?function(n){e(r,n)}:e}i[r]=s&&function(e){s("[xmldom "+r+"]\t"+e+_locator(n))}||function(){}}build("warning");build("error");build("fatalError");return i}function DOMHandler(){this.cdata=false}function position(e,r){r.lineNumber=e.lineNumber;r.columnNumber=e.columnNumber}DOMHandler.prototype={startDocument:function(){this.doc=(new l).createDocument(null,null,null);if(this.locator){this.doc.documentURI=this.locator.systemId}},startElement:function(e,r,n,i){var o=this.doc;var s=o.createElementNS(e,n||r);var a=i.length;appendElement(this,s);this.currentElement=s;this.locator&&position(this.locator,s);for(var u=0;u<a;u++){var e=i.getURI(u);var l=i.getValue(u);var n=i.getQName(u);var c=o.createAttributeNS(e,n);this.locator&&position(i.getLocator(u),c);c.value=c.nodeValue=l;s.setAttributeNode(c)}},endElement:function(e,r,n){var i=this.currentElement;var o=i.tagName;this.currentElement=i.parentNode},startPrefixMapping:function(e,r){},endPrefixMapping:function(e){},processingInstruction:function(e,r){var n=this.doc.createProcessingInstruction(e,r);this.locator&&position(this.locator,n);appendElement(this,n)},ignorableWhitespace:function(e,r,n){},characters:function(e,r,n){e=_toString.apply(this,arguments);if(e){if(this.cdata){var i=this.doc.createCDATASection(e)}else{var i=this.doc.createTextNode(e)}if(this.currentElement){this.currentElement.appendChild(i)}else if(/^\s*$/.test(e)){this.doc.appendChild(i)}this.locator&&position(this.locator,i)}},skippedEntity:function(e){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(e){if(this.locator=e){e.lineNumber=0}},comment:function(e,r,n){e=_toString.apply(this,arguments);var i=this.doc.createComment(e);this.locator&&position(this.locator,i);appendElement(this,i)},startCDATA:function(){this.cdata=true},endCDATA:function(){this.cdata=false},startDTD:function(e,r,n){var i=this.doc.implementation;if(i&&i.createDocumentType){var o=i.createDocumentType(e,r,n);this.locator&&position(this.locator,o);appendElement(this,o);this.doc.doctype=o}},warning:function(e){console.warn("[xmldom warning]\t"+e,_locator(this.locator))},error:function(e){console.error("[xmldom error]\t"+e,_locator(this.locator))},fatalError:function(e){throw new p(e,this.locator)}};function _locator(e){if(e){return"\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]"}}function _toString(e,r,n){if(typeof e=="string"){return e.substr(r,n)}else{if(e.length>=r+n||r){return new java.lang.String(e,r,n)+""}return e}}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,(function(e){DOMHandler.prototype[e]=function(){return null}}));function appendElement(e,r){if(!e.currentElement){e.doc.appendChild(r)}else{e.currentElement.appendChild(r)}}i=DOMHandler;i=normalizeLineEndings;r.DOMParser=DOMParser},6537:function(e,r,n){var i=n(5741);var o=i.find;var s=i.NAMESPACE;function notEmptyString(e){return e!==""}function splitOnASCIIWhitespace(e){return e?e.split(/[\t\n\f\r ]+/).filter(notEmptyString):[]}function orderedSetReducer(e,r){if(!e.hasOwnProperty(r)){e[r]=true}return e}function toOrderedSet(e){if(!e)return[];var r=splitOnASCIIWhitespace(e);return Object.keys(r.reduce(orderedSetReducer,{}))}function arrayIncludes(e){return function(r){return e&&e.indexOf(r)!==-1}}function copy(e,r){for(var n in e){if(Object.prototype.hasOwnProperty.call(e,n)){r[n]=e[n]}}}function _extends(e,r){var n=e.prototype;if(!(n instanceof r)){function t(){}t.prototype=r.prototype;t=new t;copy(n,t);e.prototype=n=t}if(n.constructor!=e){if(typeof e!="function"){console.error("unknown Class:"+e)}n.constructor=e}}var a={};var u=a.ELEMENT_NODE=1;var l=a.ATTRIBUTE_NODE=2;var c=a.TEXT_NODE=3;var p=a.CDATA_SECTION_NODE=4;var h=a.ENTITY_REFERENCE_NODE=5;var f=a.ENTITY_NODE=6;var d=a.PROCESSING_INSTRUCTION_NODE=7;var m=a.COMMENT_NODE=8;var g=a.DOCUMENT_NODE=9;var y=a.DOCUMENT_TYPE_NODE=10;var w=a.DOCUMENT_FRAGMENT_NODE=11;var v=a.NOTATION_NODE=12;var b={};var N={};var E=b.INDEX_SIZE_ERR=(N[1]="Index size error",1);var T=b.DOMSTRING_SIZE_ERR=(N[2]="DOMString size error",2);var D=b.HIERARCHY_REQUEST_ERR=(N[3]="Hierarchy request error",3);var S=b.WRONG_DOCUMENT_ERR=(N[4]="Wrong document",4);var A=b.INVALID_CHARACTER_ERR=(N[5]="Invalid character",5);var O=b.NO_DATA_ALLOWED_ERR=(N[6]="No data allowed",6);var x=b.NO_MODIFICATION_ALLOWED_ERR=(N[7]="No modification allowed",7);var I=b.NOT_FOUND_ERR=(N[8]="Not found",8);var L=b.NOT_SUPPORTED_ERR=(N[9]="Not supported",9);var P=b.INUSE_ATTRIBUTE_ERR=(N[10]="Attribute in use",10);var C=b.INVALID_STATE_ERR=(N[11]="Invalid state",11);var M=b.SYNTAX_ERR=(N[12]="Syntax error",12);var X=b.INVALID_MODIFICATION_ERR=(N[13]="Invalid modification",13);var R=b.NAMESPACE_ERR=(N[14]="Invalid namespace",14);var _=b.INVALID_ACCESS_ERR=(N[15]="Invalid access",15);function DOMException(e,r){if(r instanceof Error){var n=r}else{n=this;Error.call(this,N[e]);this.message=N[e];if(Error.captureStackTrace)Error.captureStackTrace(this,DOMException)}n.code=e;if(r)this.message=this.message+": "+r;return n}DOMException.prototype=Error.prototype;copy(b,DOMException);function NodeList(){}NodeList.prototype={length:0,item:function(e){return e>=0&&e<this.length?this[e]:null},toString:function(e,r){for(var n=[],i=0;i<this.length;i++){serializeToString(this[i],n,e,r)}return n.join("")},filter:function(e){return Array.prototype.filter.call(this,e)},indexOf:function(e){return Array.prototype.indexOf.call(this,e)}};function LiveNodeList(e,r){this._node=e;this._refresh=r;_updateLiveList(this)}function _updateLiveList(e){var r=e._node._inc||e._node.ownerDocument._inc;if(e._inc!==r){var n=e._refresh(e._node);__set__(e,"length",n.length);if(!e.$$length||n.length<e.$$length){for(var i=n.length;i in e;i++){if(Object.prototype.hasOwnProperty.call(e,i)){delete e[i]}}}copy(n,e);e._inc=r}}LiveNodeList.prototype.item=function(e){_updateLiveList(this);return this[e]||null};_extends(LiveNodeList,NodeList);function NamedNodeMap(){}function _findNodeIndex(e,r){var n=e.length;while(n--){if(e[n]===r){return n}}}function _addNamedNode(e,r,n,i){if(i){r[_findNodeIndex(r,i)]=n}else{r[r.length++]=n}if(e){n.ownerElement=e;var o=e.ownerDocument;if(o){i&&_onRemoveAttribute(o,e,i);_onAddAttribute(o,e,n)}}}function _removeNamedNode(e,r,n){var i=_findNodeIndex(r,n);if(i>=0){var o=r.length-1;while(i<o){r[i]=r[++i]}r.length=o;if(e){var s=e.ownerDocument;if(s){_onRemoveAttribute(s,e,n);n.ownerElement=null}}}else{throw new DOMException(I,new Error(e.tagName+"@"+n))}}NamedNodeMap.prototype={length:0,item:NodeList.prototype.item,getNamedItem:function(e){var r=this.length;while(r--){var n=this[r];if(n.nodeName==e){return n}}},setNamedItem:function(e){var r=e.ownerElement;if(r&&r!=this._ownerElement){throw new DOMException(P)}var n=this.getNamedItem(e.nodeName);_addNamedNode(this._ownerElement,this,e,n);return n},setNamedItemNS:function(e){var r=e.ownerElement,n;if(r&&r!=this._ownerElement){throw new DOMException(P)}n=this.getNamedItemNS(e.namespaceURI,e.localName);_addNamedNode(this._ownerElement,this,e,n);return n},removeNamedItem:function(e){var r=this.getNamedItem(e);_removeNamedNode(this._ownerElement,this,r);return r},removeNamedItemNS:function(e,r){var n=this.getNamedItemNS(e,r);_removeNamedNode(this._ownerElement,this,n);return n},getNamedItemNS:function(e,r){var n=this.length;while(n--){var i=this[n];if(i.localName==r&&i.namespaceURI==e){return i}}return null}};function DOMImplementation(){}DOMImplementation.prototype={hasFeature:function(e,r){return true},createDocument:function(e,r,n){var i=new Document;i.implementation=this;i.childNodes=new NodeList;i.doctype=n||null;if(n){i.appendChild(n)}if(r){var o=i.createElementNS(e,r);i.appendChild(o)}return i},createDocumentType:function(e,r,n){var i=new DocumentType;i.name=e;i.nodeName=e;i.publicId=r||"";i.systemId=n||"";return i}};function Node(){}Node.prototype={firstChild:null,lastChild:null,previousSibling:null,nextSibling:null,attributes:null,parentNode:null,childNodes:null,ownerDocument:null,nodeValue:null,namespaceURI:null,prefix:null,localName:null,insertBefore:function(e,r){return _insertBefore(this,e,r)},replaceChild:function(e,r){_insertBefore(this,e,r,assertPreReplacementValidityInDocument);if(r){this.removeChild(r)}},removeChild:function(e){return _removeChild(this,e)},appendChild:function(e){return this.insertBefore(e,null)},hasChildNodes:function(){return this.firstChild!=null},cloneNode:function(e){return cloneNode(this.ownerDocument||this,this,e)},normalize:function(){var e=this.firstChild;while(e){var r=e.nextSibling;if(r&&r.nodeType==c&&e.nodeType==c){this.removeChild(r);e.appendData(r.data)}else{e.normalize();e=r}}},isSupported:function(e,r){return this.ownerDocument.implementation.hasFeature(e,r)},hasAttributes:function(){return this.attributes.length>0},lookupPrefix:function(e){var r=this;while(r){var n=r._nsMap;if(n){for(var i in n){if(Object.prototype.hasOwnProperty.call(n,i)&&n[i]===e){return i}}}r=r.nodeType==l?r.ownerDocument:r.parentNode}return null},lookupNamespaceURI:function(e){var r=this;while(r){var n=r._nsMap;if(n){if(Object.prototype.hasOwnProperty.call(n,e)){return n[e]}}r=r.nodeType==l?r.ownerDocument:r.parentNode}return null},isDefaultNamespace:function(e){var r=this.lookupPrefix(e);return r==null}};function _xmlEncoder(e){return e=="<"&&"<"||e==">"&&">"||e=="&"&&"&"||e=='"'&&"""||"&#"+e.charCodeAt()+";"}copy(a,Node);copy(a,Node.prototype);function _visitNode(e,r){if(r(e)){return true}if(e=e.firstChild){do{if(_visitNode(e,r)){return true}}while(e=e.nextSibling)}}function Document(){this.ownerDocument=this}function _onAddAttribute(e,r,n){e&&e._inc++;var i=n.namespaceURI;if(i===s.XMLNS){r._nsMap[n.prefix?n.localName:""]=n.value}}function _onRemoveAttribute(e,r,n,i){e&&e._inc++;var o=n.namespaceURI;if(o===s.XMLNS){delete r._nsMap[n.prefix?n.localName:""]}}function _onUpdateChild(e,r,n){if(e&&e._inc){e._inc++;var i=r.childNodes;if(n){i[i.length++]=n}else{var o=r.firstChild;var s=0;while(o){i[s++]=o;o=o.nextSibling}i.length=s;delete i[i.length]}}}function _removeChild(e,r){var n=r.previousSibling;var i=r.nextSibling;if(n){n.nextSibling=i}else{e.firstChild=i}if(i){i.previousSibling=n}else{e.lastChild=n}r.parentNode=null;r.previousSibling=null;r.nextSibling=null;_onUpdateChild(e.ownerDocument,e);return r}function hasValidParentNodeType(e){return e&&(e.nodeType===Node.DOCUMENT_NODE||e.nodeType===Node.DOCUMENT_FRAGMENT_NODE||e.nodeType===Node.ELEMENT_NODE)}function hasInsertableNodeType(e){return e&&(isElementNode(e)||isTextNode(e)||isDocTypeNode(e)||e.nodeType===Node.DOCUMENT_FRAGMENT_NODE||e.nodeType===Node.COMMENT_NODE||e.nodeType===Node.PROCESSING_INSTRUCTION_NODE)}function isDocTypeNode(e){return e&&e.nodeType===Node.DOCUMENT_TYPE_NODE}function isElementNode(e){return e&&e.nodeType===Node.ELEMENT_NODE}function isTextNode(e){return e&&e.nodeType===Node.TEXT_NODE}function isElementInsertionPossible(e,r){var n=e.childNodes||[];if(o(n,isElementNode)||isDocTypeNode(r)){return false}var i=o(n,isDocTypeNode);return!(r&&i&&n.indexOf(i)>n.indexOf(r))}function isElementReplacementPossible(e,r){var n=e.childNodes||[];function hasElementChildThatIsNotChild(e){return isElementNode(e)&&e!==r}if(o(n,hasElementChildThatIsNotChild)){return false}var i=o(n,isDocTypeNode);return!(r&&i&&n.indexOf(i)>n.indexOf(r))}function assertPreInsertionValidity1to5(e,r,n){if(!hasValidParentNodeType(e)){throw new DOMException(D,"Unexpected parent node type "+e.nodeType)}if(n&&n.parentNode!==e){throw new DOMException(I,"child not in parent")}if(!hasInsertableNodeType(r)||isDocTypeNode(r)&&e.nodeType!==Node.DOCUMENT_NODE){throw new DOMException(D,"Unexpected node type "+r.nodeType+" for parent node type "+e.nodeType)}}function assertPreInsertionValidityInDocument(e,r,n){var i=e.childNodes||[];var s=r.childNodes||[];if(r.nodeType===Node.DOCUMENT_FRAGMENT_NODE){var a=s.filter(isElementNode);if(a.length>1||o(s,isTextNode)){throw new DOMException(D,"More than one element or text in fragment")}if(a.length===1&&!isElementInsertionPossible(e,n)){throw new DOMException(D,"Element in fragment can not be inserted before doctype")}}if(isElementNode(r)){if(!isElementInsertionPossible(e,n)){throw new DOMException(D,"Only one element can be added and only after doctype")}}if(isDocTypeNode(r)){if(o(i,isDocTypeNode)){throw new DOMException(D,"Only one doctype is allowed")}var u=o(i,isElementNode);if(n&&i.indexOf(u)<i.indexOf(n)){throw new DOMException(D,"Doctype can only be inserted before an element")}if(!n&&u){throw new DOMException(D,"Doctype can not be appended since element is present")}}}function assertPreReplacementValidityInDocument(e,r,n){var i=e.childNodes||[];var s=r.childNodes||[];if(r.nodeType===Node.DOCUMENT_FRAGMENT_NODE){var a=s.filter(isElementNode);if(a.length>1||o(s,isTextNode)){throw new DOMException(D,"More than one element or text in fragment")}if(a.length===1&&!isElementReplacementPossible(e,n)){throw new DOMException(D,"Element in fragment can not be inserted before doctype")}}if(isElementNode(r)){if(!isElementReplacementPossible(e,n)){throw new DOMException(D,"Only one element can be added and only after doctype")}}if(isDocTypeNode(r)){function hasDoctypeChildThatIsNotChild(e){return isDocTypeNode(e)&&e!==n}if(o(i,hasDoctypeChildThatIsNotChild)){throw new DOMException(D,"Only one doctype is allowed")}var u=o(i,isElementNode);if(n&&i.indexOf(u)<i.indexOf(n)){throw new DOMException(D,"Doctype can only be inserted before an element")}}}function _insertBefore(e,r,n,i){assertPreInsertionValidity1to5(e,r,n);if(e.nodeType===Node.DOCUMENT_NODE){(i||assertPreInsertionValidityInDocument)(e,r,n)}var o=r.parentNode;if(o){o.removeChild(r)}if(r.nodeType===w){var s=r.firstChild;if(s==null){return r}var a=r.lastChild}else{s=a=r}var u=n?n.previousSibling:e.lastChild;s.previousSibling=u;a.nextSibling=n;if(u){u.nextSibling=s}else{e.firstChild=s}if(n==null){e.lastChild=a}else{n.previousSibling=a}do{s.parentNode=e}while(s!==a&&(s=s.nextSibling));_onUpdateChild(e.ownerDocument||e,e);if(r.nodeType==w){r.firstChild=r.lastChild=null}return r}function _appendSingleChild(e,r){if(r.parentNode){r.parentNode.removeChild(r)}r.parentNode=e;r.previousSibling=e.lastChild;r.nextSibling=null;if(r.previousSibling){r.previousSibling.nextSibling=r}else{e.firstChild=r}e.lastChild=r;_onUpdateChild(e.ownerDocument,e,r);return r}Document.prototype={nodeName:"#document",nodeType:g,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,r){if(e.nodeType==w){var n=e.firstChild;while(n){var i=n.nextSibling;this.insertBefore(n,r);n=i}return e}_insertBefore(this,e,r);e.ownerDocument=this;if(this.documentElement===null&&e.nodeType===u){this.documentElement=e}return e},removeChild:function(e){if(this.documentElement==e){this.documentElement=null}return _removeChild(this,e)},replaceChild:function(e,r){_insertBefore(this,e,r,assertPreReplacementValidityInDocument);e.ownerDocument=this;if(r){this.removeChild(r)}if(isElementNode(e)){this.documentElement=e}},importNode:function(e,r){return importNode(this,e,r)},getElementById:function(e){var r=null;_visitNode(this.documentElement,(function(n){if(n.nodeType==u){if(n.getAttribute("id")==e){r=n;return true}}}));return r},getElementsByClassName:function(e){var r=toOrderedSet(e);return new LiveNodeList(this,(function(n){var i=[];if(r.length>0){_visitNode(n.documentElement,(function(o){if(o!==n&&o.nodeType===u){var s=o.getAttribute("class");if(s){var a=e===s;if(!a){var l=toOrderedSet(s);a=r.every(arrayIncludes(l))}if(a){i.push(o)}}}}))}return i}))},createElement:function(e){var r=new Element;r.ownerDocument=this;r.nodeName=e;r.tagName=e;r.localName=e;r.childNodes=new NodeList;var n=r.attributes=new NamedNodeMap;n._ownerElement=r;return r},createDocumentFragment:function(){var e=new DocumentFragment;e.ownerDocument=this;e.childNodes=new NodeList;return e},createTextNode:function(e){var r=new Text;r.ownerDocument=this;r.appendData(e);return r},createComment:function(e){var r=new Comment;r.ownerDocument=this;r.appendData(e);return r},createCDATASection:function(e){var r=new CDATASection;r.ownerDocument=this;r.appendData(e);return r},createProcessingInstruction:function(e,r){var n=new ProcessingInstruction;n.ownerDocument=this;n.tagName=n.nodeName=n.target=e;n.nodeValue=n.data=r;return n},createAttribute:function(e){var r=new Attr;r.ownerDocument=this;r.name=e;r.nodeName=e;r.localName=e;r.specified=true;return r},createEntityReference:function(e){var r=new EntityReference;r.ownerDocument=this;r.nodeName=e;return r},createElementNS:function(e,r){var n=new Element;var i=r.split(":");var o=n.attributes=new NamedNodeMap;n.childNodes=new NodeList;n.ownerDocument=this;n.nodeName=r;n.tagName=r;n.namespaceURI=e;if(i.length==2){n.prefix=i[0];n.localName=i[1]}else{n.localName=r}o._ownerElement=n;return n},createAttributeNS:function(e,r){var n=new Attr;var i=r.split(":");n.ownerDocument=this;n.nodeName=r;n.name=r;n.namespaceURI=e;n.specified=true;if(i.length==2){n.prefix=i[0];n.localName=i[1]}else{n.localName=r}return n}};_extends(Document,Node);function Element(){this._nsMap={}}Element.prototype={nodeType:u,hasAttribute:function(e){return this.getAttributeNode(e)!=null},getAttribute:function(e){var r=this.getAttributeNode(e);return r&&r.value||""},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,r){var n=this.ownerDocument.createAttribute(e);n.value=n.nodeValue=""+r;this.setAttributeNode(n)},removeAttribute:function(e){var r=this.getAttributeNode(e);r&&this.removeAttributeNode(r)},appendChild:function(e){if(e.nodeType===w){return this.insertBefore(e,null)}else{return _appendSingleChild(this,e)}},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,r){var n=this.getAttributeNodeNS(e,r);n&&this.removeAttributeNode(n)},hasAttributeNS:function(e,r){return this.getAttributeNodeNS(e,r)!=null},getAttributeNS:function(e,r){var n=this.getAttributeNodeNS(e,r);return n&&n.value||""},setAttributeNS:function(e,r,n){var i=this.ownerDocument.createAttributeNS(e,r);i.value=i.nodeValue=""+n;this.setAttributeNode(i)},getAttributeNodeNS:function(e,r){return this.attributes.getNamedItemNS(e,r)},getElementsByTagName:function(e){return new LiveNodeList(this,(function(r){var n=[];_visitNode(r,(function(i){if(i!==r&&i.nodeType==u&&(e==="*"||i.tagName==e)){n.push(i)}}));return n}))},getElementsByTagNameNS:function(e,r){return new LiveNodeList(this,(function(n){var i=[];_visitNode(n,(function(o){if(o!==n&&o.nodeType===u&&(e==="*"||o.namespaceURI===e)&&(r==="*"||o.localName==r)){i.push(o)}}));return i}))}};Document.prototype.getElementsByTagName=Element.prototype.getElementsByTagName;Document.prototype.getElementsByTagNameNS=Element.prototype.getElementsByTagNameNS;_extends(Element,Node);function Attr(){}Attr.prototype.nodeType=l;_extends(Attr,Node);function CharacterData(){}CharacterData.prototype={data:"",substringData:function(e,r){return this.data.substring(e,e+r)},appendData:function(e){e=this.data+e;this.nodeValue=this.data=e;this.length=e.length},insertData:function(e,r){this.replaceData(e,0,r)},appendChild:function(e){throw new Error(N[D])},deleteData:function(e,r){this.replaceData(e,r,"")},replaceData:function(e,r,n){var i=this.data.substring(0,e);var o=this.data.substring(e+r);n=i+n+o;this.nodeValue=this.data=n;this.length=n.length}};_extends(CharacterData,Node);function Text(){}Text.prototype={nodeName:"#text",nodeType:c,splitText:function(e){var r=this.data;var n=r.substring(e);r=r.substring(0,e);this.data=this.nodeValue=r;this.length=r.length;var i=this.ownerDocument.createTextNode(n);if(this.parentNode){this.parentNode.insertBefore(i,this.nextSibling)}return i}};_extends(Text,CharacterData);function Comment(){}Comment.prototype={nodeName:"#comment",nodeType:m};_extends(Comment,CharacterData);function CDATASection(){}CDATASection.prototype={nodeName:"#cdata-section",nodeType:p};_extends(CDATASection,CharacterData);function DocumentType(){}DocumentType.prototype.nodeType=y;_extends(DocumentType,Node);function Notation(){}Notation.prototype.nodeType=v;_extends(Notation,Node);function Entity(){}Entity.prototype.nodeType=f;_extends(Entity,Node);function EntityReference(){}EntityReference.prototype.nodeType=h;_extends(EntityReference,Node);function DocumentFragment(){}DocumentFragment.prototype.nodeName="#document-fragment";DocumentFragment.prototype.nodeType=w;_extends(DocumentFragment,Node);function ProcessingInstruction(){}ProcessingInstruction.prototype.nodeType=d;_extends(ProcessingInstruction,Node);function XMLSerializer(){}XMLSerializer.prototype.serializeToString=function(e,r,n){return nodeSerializeToString.call(e,r,n)};Node.prototype.toString=nodeSerializeToString;function nodeSerializeToString(e,r){var n=[];var i=this.nodeType==9&&this.documentElement||this;var o=i.prefix;var s=i.namespaceURI;if(s&&o==null){var o=i.lookupPrefix(s);if(o==null){var a=[{namespace:s,prefix:null}]}}serializeToString(this,n,e,r,a);return n.join("")}function needNamespaceDefine(e,r,n){var i=e.prefix||"";var o=e.namespaceURI;if(!o){return false}if(i==="xml"&&o===s.XML||o===s.XMLNS){return false}var a=n.length;while(a--){var u=n[a];if(u.prefix===i){return u.namespace!==o}}return true}function addSerializedAttribute(e,r,n){e.push(" ",r,'="',n.replace(/[<>&"\t\n\r]/g,_xmlEncoder),'"')}function serializeToString(e,r,n,i,o){if(!o){o=[]}if(i){e=i(e);if(e){if(typeof e=="string"){r.push(e);return}}else{return}}switch(e.nodeType){case u:var a=e.attributes;var f=a.length;var v=e.firstChild;var b=e.tagName;n=s.isHTML(e.namespaceURI)||n;var N=b;if(!n&&!e.prefix&&e.namespaceURI){var E;for(var T=0;T<a.length;T++){if(a.item(T).name==="xmlns"){E=a.item(T).value;break}}if(!E){for(var D=o.length-1;D>=0;D--){var S=o[D];if(S.prefix===""&&S.namespace===e.namespaceURI){E=S.namespace;break}}}if(E!==e.namespaceURI){for(var D=o.length-1;D>=0;D--){var S=o[D];if(S.namespace===e.namespaceURI){if(S.prefix){N=S.prefix+":"+b}break}}}}r.push("<",N);for(var A=0;A<f;A++){var O=a.item(A);if(O.prefix=="xmlns"){o.push({prefix:O.localName,namespace:O.value})}else if(O.nodeName=="xmlns"){o.push({prefix:"",namespace:O.value})}}for(var A=0;A<f;A++){var O=a.item(A);if(needNamespaceDefine(O,n,o)){var x=O.prefix||"";var I=O.namespaceURI;addSerializedAttribute(r,x?"xmlns:"+x:"xmlns",I);o.push({prefix:x,namespace:I})}serializeToString(O,r,n,i,o)}if(b===N&&needNamespaceDefine(e,n,o)){var x=e.prefix||"";var I=e.namespaceURI;addSerializedAttribute(r,x?"xmlns:"+x:"xmlns",I);o.push({prefix:x,namespace:I})}if(v||n&&!/^(?:meta|link|img|br|hr|input)$/i.test(b)){r.push(">");if(n&&/^script$/i.test(b)){while(v){if(v.data){r.push(v.data)}else{serializeToString(v,r,n,i,o.slice())}v=v.nextSibling}}else{while(v){serializeToString(v,r,n,i,o.slice());v=v.nextSibling}}r.push("</",N,">")}else{r.push("/>")}return;case g:case w:var v=e.firstChild;while(v){serializeToString(v,r,n,i,o.slice());v=v.nextSibling}return;case l:return addSerializedAttribute(r,e.name,e.value);case c:return r.push(e.data.replace(/[<&>]/g,_xmlEncoder));case p:return r.push("<![CDATA[",e.data,"]]>");case m:return r.push("\x3c!--",e.data,"--\x3e");case y:var L=e.publicId;var P=e.systemId;r.push("<!DOCTYPE ",e.name);if(L){r.push(" PUBLIC ",L);if(P&&P!="."){r.push(" ",P)}r.push(">")}else if(P&&P!="."){r.push(" SYSTEM ",P,">")}else{var C=e.internalSubset;if(C){r.push(" [",C,"]")}r.push(">")}return;case d:return r.push("<?",e.target," ",e.data,"?>");case h:return r.push("&",e.nodeName,";");default:r.push("??",e.nodeName)}}function importNode(e,r,n){var i;switch(r.nodeType){case u:i=r.cloneNode(false);i.ownerDocument=e;case w:break;case l:n=true;break}if(!i){i=r.cloneNode(false)}i.ownerDocument=e;i.parentNode=null;if(n){var o=r.firstChild;while(o){i.appendChild(importNode(e,o,n));o=o.nextSibling}}return i}function cloneNode(e,r,n){var i=new r.constructor;for(var o in r){if(Object.prototype.hasOwnProperty.call(r,o)){var s=r[o];if(typeof s!="object"){if(s!=i[o]){i[o]=s}}}}if(r.childNodes){i.childNodes=new NodeList}i.ownerDocument=e;switch(i.nodeType){case u:var a=r.attributes;var c=i.attributes=new NamedNodeMap;var p=a.length;c._ownerElement=i;for(var h=0;h<p;h++){i.setAttributeNode(cloneNode(e,a.item(h),true))}break;case l:n=true}if(n){var f=r.firstChild;while(f){i.appendChild(cloneNode(e,f,n));f=f.nextSibling}}return i}function __set__(e,r,n){e[r]=n}try{if(Object.defineProperty){Object.defineProperty(LiveNodeList.prototype,"length",{get:function(){_updateLiveList(this);return this.$$length}});Object.defineProperty(Node.prototype,"textContent",{get:function(){return getTextContent(this)},set:function(e){switch(this.nodeType){case u:case w:while(this.firstChild){this.removeChild(this.firstChild)}if(e||String(e)){this.appendChild(this.ownerDocument.createTextNode(e))}break;default:this.data=e;this.value=e;this.nodeValue=e}}});function getTextContent(e){switch(e.nodeType){case u:case w:var r=[];e=e.firstChild;while(e){if(e.nodeType!==7&&e.nodeType!==8){r.push(getTextContent(e))}e=e.nextSibling}return r.join("");default:return e.nodeValue}}__set__=function(e,r,n){e["$$"+r]=n}}}catch(B){}r.DocumentType=DocumentType;r.DOMException=DOMException;r.DOMImplementation=DOMImplementation;r.Element=Element;r.Node=Node;r.NodeList=NodeList;r.XMLSerializer=XMLSerializer},1510:function(e,r,n){"use strict";var i=n(5741).freeze;r.XML_ENTITIES=i({amp:"&",apos:"'",gt:">",lt:"<",quot:'"'});r.HTML_ENTITIES=i({Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",Gt:"≫",GT:">",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"",InvisibleTimes:"",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",Lt:"≪",LT:"<",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"",NegativeThickSpace:"",NegativeThinSpace:"",NegativeVeryThinSpace:"",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:" ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"",zwnj:""});r.entityMap=r.HTML_ENTITIES},8737:function(e,r,n){var i=n(6537);r.DOMImplementation=i.DOMImplementation;r.XMLSerializer=i.XMLSerializer;r.DOMParser=n(6425).DOMParser},8197:function(e,r,n){var i=n(5741).NAMESPACE;var o=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/;var s=new RegExp("[\\-\\.0-9"+o.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]");var a=new RegExp("^"+o.source+s.source+"*(?::"+o.source+s.source+"*)?$");var u=0;var l=1;var c=2;var p=3;var h=4;var f=5;var d=6;var m=7;function ParseError(e,r){this.message=e;this.locator=r;if(Error.captureStackTrace)Error.captureStackTrace(this,ParseError)}ParseError.prototype=new Error;ParseError.prototype.name=ParseError.name;function XMLReader(){}XMLReader.prototype={parse:function(e,r,n){var i=this.domBuilder;i.startDocument();_copy(r,r={});parse(e,r,n,i,this.errorHandler);i.endDocument()}};function parse(e,r,n,o,s){function fixedFromCharCode(e){if(e>65535){e-=65536;var r=55296+(e>>10),n=56320+(e&1023);return String.fromCharCode(r,n)}else{return String.fromCharCode(e)}}function entityReplacer(e){var r=e.slice(1,-1);if(Object.hasOwnProperty.call(n,r)){return n[r]}else if(r.charAt(0)==="#"){return fixedFromCharCode(parseInt(r.substr(1).replace("x","0x")))}else{s.error("entity not found:"+e);return e}}function appendText(r){if(r>f){var n=e.substring(f,r).replace(/&#?\w+;/g,entityReplacer);c&&position(f);o.characters(n,0,r-f);f=r}}function position(r,n){while(r>=u&&(n=l.exec(e))){a=n.index;u=a+n[0].length;c.lineNumber++}c.columnNumber=r-a+1}var a=0;var u=0;var l=/.*(?:\r\n?|\n)|.*$/g;var c=o.locator;var p=[{currentNSMap:r}];var h={};var f=0;while(true){try{var d=e.indexOf("<",f);if(d<0){if(!e.substr(f).match(/^\s*$/)){var m=o.doc;var g=m.createTextNode(e.substr(f));m.appendChild(g);o.currentElement=g}return}if(d>f){appendText(d)}switch(e.charAt(d+1)){case"/":var y=e.indexOf(">",d+3);var w=e.substring(d+2,y).replace(/[ \t\n\r]+$/g,"");var v=p.pop();if(y<0){w=e.substring(d+2).replace(/[\s<].*/,"");s.error("end tag name: "+w+" is not complete:"+v.tagName);y=d+1+w.length}else if(w.match(/\s</)){w=w.replace(/[\s<].*/,"");s.error("end tag name: "+w+" maybe not complete");y=d+1+w.length}var b=v.localNSMap;var N=v.tagName==w;var E=N||v.tagName&&v.tagName.toLowerCase()==w.toLowerCase();if(E){o.endElement(v.uri,v.localName,w);if(b){for(var T in b){if(Object.prototype.hasOwnProperty.call(b,T)){o.endPrefixMapping(T)}}}if(!N){s.fatalError("end tag name: "+w+" is not match the current start tagName:"+v.tagName)}}else{p.push(v)}y++;break;case"?":c&&position(d);y=parseInstruction(e,d,o);break;case"!":c&&position(d);y=parseDCC(e,d,o,s);break;default:c&&position(d);var D=new ElementAttributes;var S=p[p.length-1].currentNSMap;var y=parseElementStartPart(e,d,D,S,entityReplacer,s);var A=D.length;if(!D.closed&&fixSelfClosed(e,y,D.tagName,h)){D.closed=true;if(!n.nbsp){s.warning("unclosed xml attribute")}}if(c&&A){var O=copyLocator(c,{});for(var x=0;x<A;x++){var I=D[x];position(I.offset);I.locator=copyLocator(c,{})}o.locator=O;if(appendElement(D,o,S)){p.push(D)}o.locator=c}else{if(appendElement(D,o,S)){p.push(D)}}if(i.isHTML(D.uri)&&!D.closed){y=parseHtmlSpecialContent(e,y,D.tagName,entityReplacer,o)}else{y++}}}catch(e){if(e instanceof ParseError){throw e}s.error("element parse error: "+e);y=-1}if(y>f){f=y}else{appendText(Math.max(d,f)+1)}}}function copyLocator(e,r){r.lineNumber=e.lineNumber;r.columnNumber=e.columnNumber;return r}function parseElementStartPart(e,r,n,o,s,a){function addAttribute(e,r,i){if(n.attributeNames.hasOwnProperty(e)){a.fatalError("Attribute "+e+" redefined")}n.addValue(e,r.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,s),i)}var g;var y;var w=++r;var v=u;while(true){var b=e.charAt(w);switch(b){case"=":if(v===l){g=e.slice(r,w);v=p}else if(v===c){v=p}else{throw new Error("attribute equal must after attrName")}break;case"'":case'"':if(v===p||v===l){if(v===l){a.warning('attribute value must after "="');g=e.slice(r,w)}r=w+1;w=e.indexOf(b,r);if(w>0){y=e.slice(r,w);addAttribute(g,y,r-1);v=f}else{throw new Error("attribute value no end '"+b+"' match")}}else if(v==h){y=e.slice(r,w);addAttribute(g,y,r);a.warning('attribute "'+g+'" missed start quot('+b+")!!");r=w+1;v=f}else{throw new Error('attribute value must after "="')}break;case"/":switch(v){case u:n.setTagName(e.slice(r,w));case f:case d:case m:v=m;n.closed=true;case h:case l:break;case c:n.closed=true;break;default:throw new Error("attribute invalid close char('/')")}break;case"":a.error("unexpected end of input");if(v==u){n.setTagName(e.slice(r,w))}return w;case">":switch(v){case u:n.setTagName(e.slice(r,w));case f:case d:case m:break;case h:case l:y=e.slice(r,w);if(y.slice(-1)==="/"){n.closed=true;y=y.slice(0,-1)}case c:if(v===c){y=g}if(v==h){a.warning('attribute "'+y+'" missed quot(")!');addAttribute(g,y,r)}else{if(!i.isHTML(o[""])||!y.match(/^(?:disabled|checked|selected)$/i)){a.warning('attribute "'+y+'" missed value!! "'+y+'" instead!!')}addAttribute(y,y,r)}break;case p:throw new Error("attribute value missed!!")}return w;case"":b=" ";default:if(b<=" "){switch(v){case u:n.setTagName(e.slice(r,w));v=d;break;case l:g=e.slice(r,w);v=c;break;case h:var y=e.slice(r,w);a.warning('attribute "'+y+'" missed quot(")!!');addAttribute(g,y,r);case f:v=d;break}}else{switch(v){case c:var N=n.tagName;if(!i.isHTML(o[""])||!g.match(/^(?:disabled|checked|selected)$/i)){a.warning('attribute "'+g+'" missed value!! "'+g+'" instead2!!')}addAttribute(g,g,r);r=w;v=l;break;case f:a.warning('attribute space is required"'+g+'"!!');case d:v=l;r=w;break;case p:v=h;r=w;break;case m:throw new Error("elements closed character '/' and '>' must be connected to")}}}w++}}function appendElement(e,r,n){var o=e.tagName;var s=null;var a=e.length;while(a--){var u=e[a];var l=u.qName;var c=u.value;var p=l.indexOf(":");if(p>0){var h=u.prefix=l.slice(0,p);var f=l.slice(p+1);var d=h==="xmlns"&&f}else{f=l;h=null;d=l==="xmlns"&&""}u.localName=f;if(d!==false){if(s==null){s={};_copy(n,n={})}n[d]=s[d]=c;u.uri=i.XMLNS;r.startPrefixMapping(d,c)}}var a=e.length;while(a--){u=e[a];var h=u.prefix;if(h){if(h==="xml"){u.uri=i.XML}if(h!=="xmlns"){u.uri=n[h||""]}}}var p=o.indexOf(":");if(p>0){h=e.prefix=o.slice(0,p);f=e.localName=o.slice(p+1)}else{h=null;f=e.localName=o}var m=e.uri=n[h||""];r.startElement(m,f,o,e);if(e.closed){r.endElement(m,f,o);if(s){for(h in s){if(Object.prototype.hasOwnProperty.call(s,h)){r.endPrefixMapping(h)}}}}else{e.currentNSMap=n;e.localNSMap=s;return true}}function parseHtmlSpecialContent(e,r,n,i,o){if(/^(?:script|textarea)$/i.test(n)){var s=e.indexOf("</"+n+">",r);var a=e.substring(r+1,s);if(/[&<]/.test(a)){if(/^script$/i.test(n)){o.characters(a,0,a.length);return s}a=a.replace(/&#?\w+;/g,i);o.characters(a,0,a.length);return s}}return r+1}function fixSelfClosed(e,r,n,i){var o=i[n];if(o==null){o=e.lastIndexOf("</"+n+">");if(o<r){o=e.lastIndexOf("</"+n)}i[n]=o}return o<r}function _copy(e,r){for(var n in e){if(Object.prototype.hasOwnProperty.call(e,n)){r[n]=e[n]}}}function parseDCC(e,r,n,i){var o=e.charAt(r+2);switch(o){case"-":if(e.charAt(r+3)==="-"){var s=e.indexOf("--\x3e",r+4);if(s>r){n.comment(e,r+4,s-r-4);return s+3}else{i.error("Unclosed comment");return-1}}else{return-1}default:if(e.substr(r+3,6)=="CDATA["){var s=e.indexOf("]]>",r+9);n.startCDATA();n.characters(e,r+9,s-r-9);n.endCDATA();return s+3}var a=split(e,r);var u=a.length;if(u>1&&/!doctype/i.test(a[0][0])){var l=a[1][0];var c=false;var p=false;if(u>3){if(/^public$/i.test(a[2][0])){c=a[3][0];p=u>4&&a[4][0]}else if(/^system$/i.test(a[2][0])){p=a[3][0]}}var h=a[u-1];n.startDTD(l,c,p);n.endDTD();return h.index+h[0].length}}return-1}function parseInstruction(e,r,n){var i=e.indexOf("?>",r);if(i){var o=e.substring(r,i).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);if(o){var s=o[0].length;n.processingInstruction(o[1],o[2]);return i+2}else{return-1}}return-1}function ElementAttributes(){this.attributeNames={}}ElementAttributes.prototype={setTagName:function(e){if(!a.test(e)){throw new Error("invalid tagName:"+e)}this.tagName=e},addValue:function(e,r,n){if(!a.test(e)){throw new Error("invalid attribute:"+e)}this.attributeNames[e]=this.length;this[this.length++]={qName:e,value:r,offset:n}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}};function split(e,r){var n;var i=[];var o=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;o.lastIndex=r;o.exec(e);while(n=o.exec(e)){i.push(n);if(n[1])return i}}r.XMLReader=XMLReader;r.ParseError=ParseError},5313:function(e,r,n){r.formatArgs=formatArgs;r.save=save;r.load=load;r.useColors=useColors;r.storage=localstorage();r.destroy=(()=>{let e=false;return()=>{if(!e){e=true;console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}}})();r.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)){return true}if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)){return false}let e;return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(r){r[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+r[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff);if(!this.useColors){return}const n="color: "+this.color;r.splice(1,0,n,"color: inherit");let i=0;let o=0;r[0].replace(/%[a-zA-Z%]/g,(e=>{if(e==="%%"){return}i++;if(e==="%c"){o=i}}));r.splice(o,0,n)}r.log=console.debug||console.log||(()=>{});function save(e){try{if(e){r.storage.setItem("debug",e)}else{r.storage.removeItem("debug")}}catch(e){}}function load(){let e;try{e=r.storage.getItem("debug")||r.storage.getItem("DEBUG")}catch(e){}if(!e&&typeof process!=="undefined"&&"env"in process){e=process.env.DEBUG}return e}function localstorage(){try{return localStorage}catch(e){}}e.exports=n(5384)(r);const{formatters:i}=e.exports;i.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},5384:function(e,r,n){function setup(e){createDebug.debug=createDebug;createDebug.default=createDebug;createDebug.coerce=coerce;createDebug.disable=disable;createDebug.enable=enable;createDebug.enabled=enabled;createDebug.humanize=n(2134);createDebug.destroy=destroy;Object.keys(e).forEach((r=>{createDebug[r]=e[r]}));createDebug.names=[];createDebug.skips=[];createDebug.formatters={};function selectColor(e){let r=0;for(let n=0;n<e.length;n++){r=(r<<5)-r+e.charCodeAt(n);r|=0}return createDebug.colors[Math.abs(r)%createDebug.colors.length]}createDebug.selectColor=selectColor;function createDebug(e){let r;let n=null;let i;let o;function debug(...e){if(!debug.enabled){return}const n=debug;const i=Number(new Date);const o=i-(r||i);n.diff=o;n.prev=r;n.curr=i;r=i;e[0]=createDebug.coerce(e[0]);if(typeof e[0]!=="string"){e.unshift("%O")}let s=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((r,i)=>{if(r==="%%"){return"%"}s++;const o=createDebug.formatters[i];if(typeof o==="function"){const i=e[s];r=o.call(n,i);e.splice(s,1);s--}return r}));createDebug.formatArgs.call(n,e);const a=n.log||createDebug.log;a.apply(n,e)}debug.namespace=e;debug.useColors=createDebug.useColors();debug.color=createDebug.selectColor(e);debug.extend=extend;debug.destroy=createDebug.destroy;Object.defineProperty(debug,"enabled",{enumerable:true,configurable:false,get:()=>{if(n!==null){return n}if(i!==createDebug.namespaces){i=createDebug.namespaces;o=createDebug.enabled(e)}return o},set:e=>{n=e}});if(typeof createDebug.init==="function"){createDebug.init(debug)}return debug}function extend(e,r){const n=createDebug(this.namespace+(typeof r==="undefined"?":":r)+e);n.log=this.log;return n}function enable(e){createDebug.save(e);createDebug.namespaces=e;createDebug.names=[];createDebug.skips=[];const r=(typeof e==="string"?e:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const e of r){if(e[0]==="-"){createDebug.skips.push(e.slice(1))}else{createDebug.names.push(e)}}}function matchesTemplate(e,r){let n=0;let i=0;let o=-1;let s=0;while(n<e.length){if(i<r.length&&(r[i]===e[n]||r[i]==="*")){if(r[i]==="*"){o=i;s=n;i++}else{n++;i++}}else if(o!==-1){i=o+1;s++;n=s}else{return false}}while(i<r.length&&r[i]==="*"){i++}return i===r.length}function disable(){const e=[...createDebug.names,...createDebug.skips.map((e=>"-"+e))].join(",");createDebug.enable("");return e}function enabled(e){for(const r of createDebug.skips){if(matchesTemplate(e,r)){return false}}for(const r of createDebug.names){if(matchesTemplate(e,r)){return true}}return false}function coerce(e){if(e instanceof Error){return e.stack||e.message}return e}function destroy(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}createDebug.enable(createDebug.load());return createDebug}e.exports=setup},6449:function(e,r,n){if(typeof process==="undefined"||process.type==="renderer"||process.browser===true||process.__nwjs){e.exports=n(5313)}else{e.exports=n(249)}},249:function(e,r,n){const i=n(2018);const o=n(9023);r.init=init;r.log=log;r.formatArgs=formatArgs;r.save=save;r.load=load;r.useColors=useColors;r.destroy=o.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");r.colors=[6,2,3,4,5,1];try{const e=n(5414);if(e&&(e.stderr||e).level>=2){r.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}}catch(e){}r.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,r)=>{const n=r.substring(6).toLowerCase().replace(/_([a-z])/g,((e,r)=>r.toUpperCase()));let i=process.env[r];if(/^(yes|on|true|enabled)$/i.test(i)){i=true}else if(/^(no|off|false|disabled)$/i.test(i)){i=false}else if(i==="null"){i=null}else{i=Number(i)}e[n]=i;return e}),{});function useColors(){return"colors"in r.inspectOpts?Boolean(r.inspectOpts.colors):i.isatty(process.stderr.fd)}function formatArgs(r){const{namespace:n,useColors:i}=this;if(i){const i=this.color;const o="[3"+(i<8?i:"8;5;"+i);const s=` ${o};1m${n} [0m`;r[0]=s+r[0].split("\n").join("\n"+s);r.push(o+"m+"+e.exports.humanize(this.diff)+"[0m")}else{r[0]=getDate()+n+" "+r[0]}}function getDate(){if(r.inspectOpts.hideDate){return""}return(new Date).toISOString()+" "}function log(...e){return process.stderr.write(o.formatWithOptions(r.inspectOpts,...e)+"\n")}function save(e){if(e){process.env.DEBUG=e}else{delete process.env.DEBUG}}function load(){return process.env.DEBUG}function init(e){e.inspectOpts={};const n=Object.keys(r.inspectOpts);for(let i=0;i<n.length;i++){e.inspectOpts[n[i]]=r.inspectOpts[n[i]]}}e.exports=n(5384)(r);const{formatters:s}=e.exports;s.o=function(e){this.inspectOpts.colors=this.useColors;return o.inspect(e,this.inspectOpts).split("\n").map((e=>e.trim())).join(" ")};s.O=function(e){this.inspectOpts.colors=this.useColors;return o.inspect(e,this.inspectOpts)}},846:function(e){"use strict";
|
|
2
2
|
/*!
|
|
3
3
|
* escape-html
|
|
4
4
|
* Copyright(c) 2012-2013 TJ Holowaychuk
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@node-saml/node-saml","version":"4.0.5","description":"SAML 2.0 implementation for Node.js","keywords":["saml","adfs","sso","shibboleth"],"repository":{"type":"git","url":"https://github.com/node-saml/node-saml.git"},"license":"MIT","author":{"name":"Henri Bergius","email":"henri.bergius@iki.fi","url":"http://bergie.iki.fi"},"contributors":["Michael Bosworth","Herbert Vojčík","Peter Loer","Mark Stosberg","Chris Barth","Andrii Kostenko","Andreas Zoellner"],"main":"./lib","files":["lib","README.md","LICENSE"],"scripts":{"build":"tsc","changelog":"gren changelog --override --generate --head master","lint":"eslint --ext .ts \"**/*.ts\" --cache && npm run prettier-check","lint-watch":"onchange -k -p 100 \"**/*.ts\" -- eslint {{file}}","lint:fix":"eslint --ext .ts --fix src && npm run prettier-format","prepare":"tsc","prettier-check":"prettier --config .prettierrc.json --check .","prettier-format":"prettier --config .prettierrc.json --write .","prettier-watch":"onchange -k -p 100 \".\" -- prettier --config .prettierrc.json --write {{file}}","prerelease":"git clean -xfd && npm ci && npm test && npm run build","release":"release-it","test":"npm run prettier-check && npm run lint && npm run tsc && nyc mocha","test-watch":"mocha --watch","tsc":"tsc","tsc-watch":"tsc --watch","watch":"concurrently --kill-others \"npm:*-watch\""},"dependencies":{"@types/debug":"^4.1.7","@types/passport":"^1.0.11","@types/xml-crypto":"^1.4.2","@types/xml-encryption":"^1.2.1","@types/xml2js":"^0.4.11","@xmldom/xmldom":"^0.8.6","debug":"^4.3.4","xml-crypto":"^3.0.1","xml-encryption":"^3.0.2","xml2js":"^0.5.0","xmlbuilder":"^15.1.1"},"devDependencies":{"@cjbarth/github-release-notes":"^3.0.0","@istanbuljs/nyc-config-typescript":"^1.0.2","@types/chai":"^4.3.3","@types/mocha":"^10.0.0","@types/node":"^14.18.33","@types/sinon":"^10.0.13","@typescript-eslint/eslint-plugin":"^5.45.0","@typescript-eslint/parser":"^5.43.0","body-parser":"^1.20.1","chai":"^4.3.6","choma":"^1.2.1","concurrently":"^7.6.0","eslint":"^8.29.0","eslint-config-prettier":"^8.5.0","eslint-plugin-deprecation":"^1.3.3","eslint-plugin-prettier":"^4.2.1","express":"^4.18.2","mocha":"^10.1.0","nyc":"^15.1.0","onchange":"^7.1.0","prettier":"^2.8.0","prettier-plugin-packagejson":"^2.3.0","release-it":"^15.5.0","sinon":"^14.0.1","ts-node":"^10.9.1","typescript":">=4.0.0 <4.9.0"},"engines":{"node":">= 14"},"publishConfig":{"access":"public"},"_lastModified":"2025-07-
|
|
1
|
+
{"name":"@node-saml/node-saml","version":"4.0.5","description":"SAML 2.0 implementation for Node.js","keywords":["saml","adfs","sso","shibboleth"],"repository":{"type":"git","url":"https://github.com/node-saml/node-saml.git"},"license":"MIT","author":{"name":"Henri Bergius","email":"henri.bergius@iki.fi","url":"http://bergie.iki.fi"},"contributors":["Michael Bosworth","Herbert Vojčík","Peter Loer","Mark Stosberg","Chris Barth","Andrii Kostenko","Andreas Zoellner"],"main":"./lib","files":["lib","README.md","LICENSE"],"scripts":{"build":"tsc","changelog":"gren changelog --override --generate --head master","lint":"eslint --ext .ts \"**/*.ts\" --cache && npm run prettier-check","lint-watch":"onchange -k -p 100 \"**/*.ts\" -- eslint {{file}}","lint:fix":"eslint --ext .ts --fix src && npm run prettier-format","prepare":"tsc","prettier-check":"prettier --config .prettierrc.json --check .","prettier-format":"prettier --config .prettierrc.json --write .","prettier-watch":"onchange -k -p 100 \".\" -- prettier --config .prettierrc.json --write {{file}}","prerelease":"git clean -xfd && npm ci && npm test && npm run build","release":"release-it","test":"npm run prettier-check && npm run lint && npm run tsc && nyc mocha","test-watch":"mocha --watch","tsc":"tsc","tsc-watch":"tsc --watch","watch":"concurrently --kill-others \"npm:*-watch\""},"dependencies":{"@types/debug":"^4.1.7","@types/passport":"^1.0.11","@types/xml-crypto":"^1.4.2","@types/xml-encryption":"^1.2.1","@types/xml2js":"^0.4.11","@xmldom/xmldom":"^0.8.6","debug":"^4.3.4","xml-crypto":"^3.0.1","xml-encryption":"^3.0.2","xml2js":"^0.5.0","xmlbuilder":"^15.1.1"},"devDependencies":{"@cjbarth/github-release-notes":"^3.0.0","@istanbuljs/nyc-config-typescript":"^1.0.2","@types/chai":"^4.3.3","@types/mocha":"^10.0.0","@types/node":"^14.18.33","@types/sinon":"^10.0.13","@typescript-eslint/eslint-plugin":"^5.45.0","@typescript-eslint/parser":"^5.43.0","body-parser":"^1.20.1","chai":"^4.3.6","choma":"^1.2.1","concurrently":"^7.6.0","eslint":"^8.29.0","eslint-config-prettier":"^8.5.0","eslint-plugin-deprecation":"^1.3.3","eslint-plugin-prettier":"^4.2.1","express":"^4.18.2","mocha":"^10.1.0","nyc":"^15.1.0","onchange":"^7.1.0","prettier":"^2.8.0","prettier-plugin-packagejson":"^2.3.0","release-it":"^15.5.0","sinon":"^14.0.1","ts-node":"^10.9.1","typescript":">=4.0.0 <4.9.0"},"engines":{"node":">= 14"},"publishConfig":{"access":"public"},"_lastModified":"2025-07-17T07:49:09.796Z"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tachybase/plugin-auth-saml",
|
|
3
3
|
"displayName": "Auth: SAML 2.0",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.18",
|
|
5
5
|
"description": "SAML 2.0 authentication.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"Authentication"
|
|
@@ -16,17 +16,17 @@
|
|
|
16
16
|
"react": "~18.3.1",
|
|
17
17
|
"react-i18next": "^15.2.0",
|
|
18
18
|
"react-router-dom": "6.28.1",
|
|
19
|
-
"@tachybase/schema": "1.3.
|
|
19
|
+
"@tachybase/schema": "1.3.18"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"@tachybase/actions": "1.3.
|
|
23
|
-
"@tachybase/
|
|
24
|
-
"@tachybase/auth": "1.3.
|
|
25
|
-
"@tachybase/
|
|
26
|
-
"@tachybase/sdk": "1.3.
|
|
27
|
-
"@tachybase/module-auth": "1.3.
|
|
28
|
-
"@tachybase/server": "1.3.
|
|
29
|
-
"@tachybase/test": "1.3.
|
|
22
|
+
"@tachybase/actions": "1.3.18",
|
|
23
|
+
"@tachybase/client": "1.3.18",
|
|
24
|
+
"@tachybase/auth": "1.3.18",
|
|
25
|
+
"@tachybase/database": "1.3.18",
|
|
26
|
+
"@tachybase/sdk": "1.3.18",
|
|
27
|
+
"@tachybase/module-auth": "1.3.18",
|
|
28
|
+
"@tachybase/server": "1.3.18",
|
|
29
|
+
"@tachybase/test": "1.3.18"
|
|
30
30
|
},
|
|
31
31
|
"description.zh-CN": "通过 SAML 2.0 协议认证身份。",
|
|
32
32
|
"displayName.zh-CN": "认证:SAML 2.0",
|