diff --git a/CHANGELOG.rst b/CHANGELOG.rst index e33a2f16..39ea6dad 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -3,6 +3,16 @@ CHANGELOG .. The text for the changelog is manually generated for now. +Version v0.27.0 +--------------- + +:date: Jan 21, 2025 + +* Save the ``ReadTheDocsData`` event into the global object (:pr:`474`) +* Improve File Tree Diff UI element to be more discrete (:pr:`494`) +* Add VitePress as a known documentation tool (:pr:`505`) +* Packages: updated via ncu -u (:pr:`509`) + Version v0.26.0 --------------- diff --git a/bumpver.toml b/bumpver.toml index 67c23fc5..7e66b946 100644 --- a/bumpver.toml +++ b/bumpver.toml @@ -1,5 +1,5 @@ [bumpver] -current_version = "0.26.0" +current_version = "0.27.0" version_pattern = "MAJOR.MINOR.PATCH[TAG]" commit_message = "Release {new_version}" tag_message = "{new_version}" diff --git a/dist/readthedocs-addons.js b/dist/readthedocs-addons.js index c695d72e..6ea09a8e 100644 --- a/dist/readthedocs-addons.js +++ b/dist/readthedocs-addons.js @@ -4,7 +4,7 @@ || ${s} === "boolean" || ${o} === null`).assign(c,a._`[${o}]`)}}r.else(),p(e),r.endIf(),r.if(a._`${c} !== undefined`,(()=>{r.assign(o,c),function({gen:e,parentData:t,parentDataProperty:n},r){e.if(a._`${t} !== undefined`,(()=>e.assign(a._`${t}[${n}]`,r)))}(e,c)}))}(e,t,s):p(e)}))}return l};const u=new Set(["string","number","integer","boolean","null"]);function d(e,t,n,r=c.Correct){const o=r===c.Correct?a.operators.EQ:a.operators.NEQ;let i;switch(e){case"null":return a._`${t} ${o} null`;case"array":i=a._`Array.isArray(${t})`;break;case"object":i=a._`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":i=s(a._`!(${t} % 1) && !isNaN(${t})`);break;case"number":i=s();break;default:return a._`typeof ${t} ${o} ${e}`}return r===c.Correct?i:(0,a.not)(i);function s(e=a.nil){return(0,a.and)(a._`typeof ${t} == "number"`,e,n?a._`isFinite(${t})`:a.nil)}}function f(e,t,n,r){if(1===e.length)return d(e[0],t,n,r);let o;const i=(0,s.toHash)(e);if(i.array&&i.object){const e=a._`typeof ${t} != "object"`;o=i.null?e:a._`!${t} || ${e}`,delete i.null,delete i.array,delete i.object}else o=a.nil;i.number&&delete i.integer;for(const e in i)o=(0,a.and)(o,d(e,t,n,r));return o}t.checkDataType=d,t.checkDataTypes=f;const h={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>"string"==typeof e?a._`{type: ${e}}`:a._`{type: ${t}}`};function p(e){const t=function(e){const{gen:t,data:n,schema:r}=e,o=(0,s.schemaRefOrVal)(e,r,"type");return{gen:t,keyword:"type",data:n,schema:r.type,schemaCode:o,schemaValue:o,parentSchema:r,params:{},it:e}}(e);(0,i.reportError)(t,h)}t.reportTypeError=p},7870:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assignDefaults=void 0;const r=n(9029),o=n(4227);function i(e,t,n){const{gen:i,compositeRule:a,data:s,opts:c}=e;if(void 0===n)return;const l=r._`${s}${(0,r.getProperty)(t)}`;if(a)return void(0,o.checkStrictMode)(e,`default is ignored for: ${l}`);let u=r._`${l} === undefined`;"empty"===c.useDefaults&&(u=r._`${u} || ${l} === null || ${l} === ""`),i.if(u,r._`${l} = ${(0,r.stringify)(n)}`)}t.assignDefaults=function(e,t){const{properties:n,items:r}=e.schema;if("object"===t&&n)for(const t in n)i(e,t,n[t].default);else"array"===t&&Array.isArray(r)&&r.forEach(((t,n)=>i(e,n,t.default)))}},2586:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;const r=n(8727),o=n(208),i=n(7887),a=n(208),s=n(7870),c=n(3673),l=n(4495),u=n(9029),d=n(2023),f=n(6939),h=n(4227),p=n(8708);function m({gen:e,validateName:t,schema:n,schemaEnv:r,opts:o},i){o.code.es5?e.func(t,u._`${d.default.data}, ${d.default.valCxt}`,r.$async,(()=>{e.code(u._`"use strict"; ${g(n,o)}`),function(e,t){e.if(d.default.valCxt,(()=>{e.var(d.default.instancePath,u._`${d.default.valCxt}.${d.default.instancePath}`),e.var(d.default.parentData,u._`${d.default.valCxt}.${d.default.parentData}`),e.var(d.default.parentDataProperty,u._`${d.default.valCxt}.${d.default.parentDataProperty}`),e.var(d.default.rootData,u._`${d.default.valCxt}.${d.default.rootData}`),t.dynamicRef&&e.var(d.default.dynamicAnchors,u._`${d.default.valCxt}.${d.default.dynamicAnchors}`)}),(()=>{e.var(d.default.instancePath,u._`""`),e.var(d.default.parentData,u._`undefined`),e.var(d.default.parentDataProperty,u._`undefined`),e.var(d.default.rootData,d.default.data),t.dynamicRef&&e.var(d.default.dynamicAnchors,u._`{}`)}))}(e,o),e.code(i)})):e.func(t,u._`${d.default.data}, ${function(e){return u._`{${d.default.instancePath}="", ${d.default.parentData}, ${d.default.parentDataProperty}, ${d.default.rootData}=${d.default.data}${e.dynamicRef?u._`, ${d.default.dynamicAnchors}={}`:u.nil}}={}`}(o)}`,r.$async,(()=>e.code(g(n,o)).code(i)))}function g(e,t){const n="object"==typeof e&&e[t.schemaId];return n&&(t.code.source||t.code.process)?u._`/*# sourceURL=${n} */`:u.nil}function y(e,t){v(e)&&(b(e),A(e))?function(e,t){const{schema:n,gen:r,opts:o}=e;o.$comment&&n.$comment&&M(e);(function(e){const t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,f.resolveUrl)(e.opts.uriResolver,e.baseId,t))})(e),function(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}(e);const i=r.const("_errs",d.default.errors);w(e,i),r.var(t,u._`${i} === ${d.default.errors}`)}(e,t):(0,r.boolOrEmptySchema)(e,t)}function A({schema:e,self:t}){if("boolean"==typeof e)return!e;for(const n in e)if(t.RULES.all[n])return!0;return!1}function v(e){return"boolean"!=typeof e.schema}function b(e){(0,h.checkUnknownRules)(e),function(e){const{schema:t,errSchemaPath:n,opts:r,self:o}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,h.schemaHasRulesButRef)(t,o.RULES)&&o.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}(e)}function w(e,t){if(e.opts.jtd)return E(e,[],!1,t);const n=(0,o.getSchemaTypes)(e.schema);E(e,n,!(0,o.coerceAndCheckDataType)(e,n),t)}function M({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:o}){const i=n.$comment;if(!0===o.$comment)e.code(u._`${d.default.self}.logger.log(${i})`);else if("function"==typeof o.$comment){const n=u.str`${r}/$comment`,o=e.scopeValue("root",{ref:t.root});e.code(u._`${d.default.self}.opts.$comment(${i}, ${n}, ${o}.schema)`)}}function E(e,t,n,r){const{gen:o,schema:s,data:c,allErrors:l,opts:f,self:p}=e,{RULES:m}=p;function g(h){(0,i.shouldUseGroup)(s,h)&&(h.type?(o.if((0,a.checkDataType)(h.type,c,f.strictNumbers)),C(e,h),1===t.length&&t[0]===h.type&&n&&(o.else(),(0,a.reportTypeError)(e)),o.endIf()):C(e,h),l||o.if(u._`${d.default.errors} === ${r||0}`))}!s.$ref||!f.ignoreKeywordsWithRef&&(0,h.schemaHasRulesButRef)(s,m)?(f.jtd||function(e,t){if(e.schemaEnv.meta||!e.opts.strictTypes)return;(function(e,t){if(!t.length)return;if(!e.dataTypes.length)return void(e.dataTypes=t);t.forEach((t=>{j(e.dataTypes,t)||x(e,`type "${t}" not allowed by context "${e.dataTypes.join(",")}"`)})),function(e,t){const n=[];for(const r of e.dataTypes)j(t,r)?n.push(r):t.includes("integer")&&"number"===r&&n.push("integer");e.dataTypes=n}(e,t)})(e,t),e.opts.allowUnionTypes||function(e,t){t.length>1&&(2!==t.length||!t.includes("null"))&&x(e,"use allowUnionTypes to allow union type keyword")}(e,t);!function(e,t){const n=e.self.RULES.all;for(const r in n){const o=n[r];if("object"==typeof o&&(0,i.shouldUseRule)(e.schema,o)){const{type:n}=o.definition;n.length&&!n.some((e=>L(t,e)))&&x(e,`missing type "${n.join(",")}" for keyword "${r}"`)}}}(e,e.dataTypes)}(e,t),o.block((()=>{for(const e of m.rules)g(e);g(m.post)}))):o.block((()=>S(e,"$ref",m.all.$ref.definition)))}function C(e,t){const{gen:n,schema:r,opts:{useDefaults:o}}=e;o&&(0,s.assignDefaults)(e,t.type),n.block((()=>{for(const n of t.rules)(0,i.shouldUseRule)(r,n)&&S(e,n.keyword,n.definition,t.type)}))}function L(e,t){return e.includes(t)||"number"===t&&e.includes("integer")}function j(e,t){return e.includes(t)||"integer"===t&&e.includes("number")}function x(e,t){t+=` at "${e.schemaEnv.baseId+e.errSchemaPath}" (strictTypes)`,(0,h.checkStrictMode)(e,t,e.opts.strictTypes)}t.validateFunctionCode=function(e){v(e)&&(b(e),A(e))?function(e){const{schema:t,opts:n,gen:r}=e;m(e,(()=>{n.$comment&&t.$comment&&M(e),function(e){const{schema:t,opts:n}=e;void 0!==t.default&&n.useDefaults&&n.strictSchema&&(0,h.checkStrictMode)(e,"default is ignored in the schema root")}(e),r.let(d.default.vErrors,null),r.let(d.default.errors,0),n.unevaluated&&function(e){const{gen:t,validateName:n}=e;e.evaluated=t.const("evaluated",u._`${n}.evaluated`),t.if(u._`${e.evaluated}.dynamicProps`,(()=>t.assign(u._`${e.evaluated}.props`,u._`undefined`))),t.if(u._`${e.evaluated}.dynamicItems`,(()=>t.assign(u._`${e.evaluated}.items`,u._`undefined`)))}(e),w(e),function(e){const{gen:t,schemaEnv:n,validateName:r,ValidationError:o,opts:i}=e;n.$async?t.if(u._`${d.default.errors} === 0`,(()=>t.return(d.default.data)),(()=>t.throw(u._`new ${o}(${d.default.vErrors})`))):(t.assign(u._`${r}.errors`,d.default.vErrors),i.unevaluated&&function({gen:e,evaluated:t,props:n,items:r}){n instanceof u.Name&&e.assign(u._`${t}.props`,n);r instanceof u.Name&&e.assign(u._`${t}.items`,r)}(e),t.return(u._`${d.default.errors} === 0`))}(e)}))}(e):m(e,(()=>(0,r.topBoolOrEmptySchema)(e)))};class N{constructor(e,t,n){if((0,c.validateKeywordUsage)(e,t,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,h.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const("vSchema",_(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,c.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(t.schemaType)}`);("code"in t?t.trackErrors:!1!==t.errors)&&(this.errsCount=e.gen.const("_errs",d.default.errors))}result(e,t,n){this.failResult((0,u.not)(e),t,n)}failResult(e,t,n){this.gen.if(e),n?n():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,t){this.failResult((0,u.not)(e),void 0,t)}fail(e){if(void 0===e)return this.error(),void(this.allErrors||this.gen.if(!1));this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);const{schemaCode:t}=this;this.fail(u._`${t} !== undefined && (${(0,u.or)(this.invalid$data(),e)})`)}error(e,t,n){if(t)return this.setParams(t),this._error(e,n),void this.setParams({});this._error(e,n)}_error(e,t){(e?p.reportExtraError:p.reportError)(this,this.def.error,t)}$dataError(){(0,p.reportError)(this,this.def.$dataError||p.keyword$DataError)}reset(){if(void 0===this.errsCount)throw new Error('add "trackErrors" to keyword definition');(0,p.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,t){t?Object.assign(this.params,e):this.params=e}block$data(e,t,n=u.nil){this.gen.block((()=>{this.check$data(e,n),t()}))}check$data(e=u.nil,t=u.nil){if(!this.$data)return;const{gen:n,schemaCode:r,schemaType:o,def:i}=this;n.if((0,u.or)(u._`${r} === undefined`,t)),e!==u.nil&&n.assign(e,!0),(o.length||i.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==u.nil&&n.assign(e,!1)),n.else()}invalid$data(){const{gen:e,schemaCode:t,schemaType:n,def:r,it:o}=this;return(0,u.or)(function(){if(n.length){if(!(t instanceof u.Name))throw new Error("ajv implementation error");const e=Array.isArray(n)?n:[n];return u._`${(0,a.checkDataTypes)(e,t,o.opts.strictNumbers,a.DataType.Wrong)}`}return u.nil}(),function(){if(r.validateSchema){const n=e.scopeValue("validate$data",{ref:r.validateSchema});return u._`!${n}(${t})`}return u.nil}())}subschema(e,t){const n=(0,l.getSubschema)(this.it,e);(0,l.extendSubschemaData)(n,this.it,e),(0,l.extendSubschemaMode)(n,e);const r={...this.it,...n,items:void 0,props:void 0};return y(r,t),r}mergeEvaluated(e,t){const{it:n,gen:r}=this;n.opts.unevaluated&&(!0!==n.props&&void 0!==e.props&&(n.props=h.mergeEvaluated.props(r,e.props,n.props,t)),!0!==n.items&&void 0!==e.items&&(n.items=h.mergeEvaluated.items(r,e.items,n.items,t)))}mergeValidEvaluated(e,t){const{it:n,gen:r}=this;if(n.opts.unevaluated&&(!0!==n.props||!0!==n.items))return r.if(t,(()=>this.mergeEvaluated(e,u.Name))),!0}}function S(e,t,n,r){const o=new N(e,n,t);"code"in n?n.code(o,r):o.$data&&n.validate?(0,c.funcKeywordCode)(o,n):"macro"in n?(0,c.macroKeywordCode)(o,n):(n.compile||n.validate)&&(0,c.funcKeywordCode)(o,n)}t.KeywordCxt=N;const T=/^\/(?:[^~]|~0|~1)*$/,k=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function _(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let o,i;if(""===e)return d.default.rootData;if("/"===e[0]){if(!T.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);o=e,i=d.default.rootData}else{const a=k.exec(e);if(!a)throw new Error(`Invalid JSON-pointer: ${e}`);const s=+a[1];if(o=a[2],"#"===o){if(s>=t)throw new Error(c("property/index",s));return r[t-s]}if(s>t)throw new Error(c("data",s));if(i=n[t-s],!o)return i}let a=i;const s=o.split("/");for(const e of s)e&&(i=u._`${i}${(0,u.getProperty)((0,h.unescapeJsonPointer)(e))}`,a=u._`${a} && ${i}`);return a;function c(e,n){return`Cannot access ${e} ${n} levels up, current level is ${t}`}}t.getData=_},3673:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;const r=n(9029),o=n(2023),i=n(5765),a=n(8708);function s(e){const{gen:t,data:n,it:o}=e;t.if(o.parentData,(()=>t.assign(n,r._`${o.parentData}[${o.parentDataProperty}]`)))}function c(e,t,n){if(void 0===n)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword","function"==typeof n?{ref:n}:{ref:n,code:(0,r.stringify)(n)})}t.macroKeywordCode=function(e,t){const{gen:n,keyword:o,schema:i,parentSchema:a,it:s}=e,l=t.macro.call(s.self,i,a,s),u=c(n,o,l);!1!==s.opts.validateSchema&&s.self.validateSchema(l,!0);const d=n.name("valid");e.subschema({schema:l,schemaPath:r.nil,errSchemaPath:`${s.errSchemaPath}/${o}`,topSchemaRef:u,compositeRule:!0},d),e.pass(d,(()=>e.error(!0)))},t.funcKeywordCode=function(e,t){var n;const{gen:l,keyword:u,schema:d,parentSchema:f,$data:h,it:p}=e;!function({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}(p,t);const m=!h&&t.compile?t.compile.call(p.self,d,f,p):t.validate,g=c(l,u,m),y=l.let("valid");function A(n=(t.async?r._`await `:r.nil)){const a=p.opts.passContext?o.default.this:o.default.self,s=!("compile"in t&&!h||!1===t.schema);l.assign(y,r._`${n}${(0,i.callValidateCode)(e,g,a,s)}`,t.modifying)}function v(e){var n;l.if((0,r.not)(null!==(n=t.valid)&&void 0!==n?n:y),e)}e.block$data(y,(function(){if(!1===t.errors)A(),t.modifying&&s(e),v((()=>e.error()));else{const n=t.async?function(){const e=l.let("ruleErrs",null);return l.try((()=>A(r._`await `)),(t=>l.assign(y,!1).if(r._`${t} instanceof ${p.ValidationError}`,(()=>l.assign(e,r._`${t}.errors`)),(()=>l.throw(t))))),e}():function(){const e=r._`${g}.errors`;return l.assign(e,null),A(r.nil),e}();t.modifying&&s(e),v((()=>function(e,t){const{gen:n}=e;n.if(r._`Array.isArray(${t})`,(()=>{n.assign(o.default.vErrors,r._`${o.default.vErrors} === null ? ${t} : ${o.default.vErrors}.concat(${t})`).assign(o.default.errors,r._`${o.default.vErrors}.length`),(0,a.extendErrors)(e)}),(()=>e.error()))}(e,n)))}})),e.ok(null!==(n=t.valid)&&void 0!==n?n:y)},t.validSchemaType=function(e,t,n=!1){return!t.length||t.some((t=>"array"===t?Array.isArray(e):"object"===t?e&&"object"==typeof e&&!Array.isArray(e):typeof e==t||n&&void 0===e))},t.validateKeywordUsage=function({schema:e,opts:t,self:n,errSchemaPath:r},o,i){if(Array.isArray(o.keyword)?!o.keyword.includes(i):o.keyword!==i)throw new Error("ajv implementation error");const a=o.dependencies;if(null==a?void 0:a.some((t=>!Object.prototype.hasOwnProperty.call(e,t))))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(o.validateSchema){if(!o.validateSchema(e[i])){const e=`keyword "${i}" value is invalid at path "${r}": `+n.errorsText(o.validateSchema.errors);if("log"!==t.validateSchema)throw new Error(e);n.logger.error(e)}}}},4495:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;const r=n(9029),o=n(4227);t.getSubschema=function(e,{keyword:t,schemaProp:n,schema:i,schemaPath:a,errSchemaPath:s,topSchemaRef:c}){if(void 0!==t&&void 0!==i)throw new Error('both "keyword" and "schema" passed, only one allowed');if(void 0!==t){const i=e.schema[t];return void 0===n?{schema:i,schemaPath:r._`${e.schemaPath}${(0,r.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:i[n],schemaPath:r._`${e.schemaPath}${(0,r.getProperty)(t)}${(0,r.getProperty)(n)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,o.escapeFragment)(n)}`}}if(void 0!==i){if(void 0===a||void 0===s||void 0===c)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:i,schemaPath:a,topSchemaRef:c,errSchemaPath:s}}throw new Error('either "keyword" or "schema" must be passed')},t.extendSubschemaData=function(e,t,{dataProp:n,dataPropType:i,data:a,dataTypes:s,propertyName:c}){if(void 0!==a&&void 0!==n)throw new Error('both "data" and "dataProp" passed, only one allowed');const{gen:l}=t;if(void 0!==n){const{errorPath:a,dataPathArr:s,opts:c}=t;u(l.let("data",r._`${t.data}${(0,r.getProperty)(n)}`,!0)),e.errorPath=r.str`${a}${(0,o.getErrorPath)(n,i,c.jsPropertySyntax)}`,e.parentDataProperty=r._`${n}`,e.dataPathArr=[...s,e.parentDataProperty]}if(void 0!==a){u(a instanceof r.Name?a:l.let("data",a,!0)),void 0!==c&&(e.propertyName=c)}function u(n){e.data=n,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,n]}s&&(e.dataTypes=s)},t.extendSubschemaMode=function(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:o,allErrors:i}){void 0!==r&&(e.compositeRule=r),void 0!==o&&(e.createErrors=o),void 0!==i&&(e.allErrors=i),e.jtdDiscriminator=t,e.jtdMetadata=n}},4042:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var r=n(2586);Object.defineProperty(t,"KeywordCxt",{enumerable:!0,get:function(){return r.KeywordCxt}});var o=n(9029);Object.defineProperty(t,"_",{enumerable:!0,get:function(){return o._}}),Object.defineProperty(t,"str",{enumerable:!0,get:function(){return o.str}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return o.stringify}}),Object.defineProperty(t,"nil",{enumerable:!0,get:function(){return o.nil}}),Object.defineProperty(t,"Name",{enumerable:!0,get:function(){return o.Name}}),Object.defineProperty(t,"CodeGen",{enumerable:!0,get:function(){return o.CodeGen}});const i=n(3558),a=n(4551),s=n(396),c=n(3835),l=n(9029),u=n(6939),d=n(208),f=n(4227),h=n(3837),p=n(5944),m=(e,t)=>new RegExp(e,t);m.code="new RegExp";const g=["removeAdditional","useDefaults","coerceTypes"],y=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),A={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},v={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'};function b(e){var t,n,r,o,i,a,s,c,l,u,d,f,h,g,y,A,v,b,w,M,E,C,L,j,x;const N=e.strict,S=null===(t=e.code)||void 0===t?void 0:t.optimize,T=!0===S||void 0===S?1:S||0,k=null!==(r=null===(n=e.code)||void 0===n?void 0:n.regExp)&&void 0!==r?r:m,_=null!==(o=e.uriResolver)&&void 0!==o?o:p.default;return{strictSchema:null===(a=null!==(i=e.strictSchema)&&void 0!==i?i:N)||void 0===a||a,strictNumbers:null===(c=null!==(s=e.strictNumbers)&&void 0!==s?s:N)||void 0===c||c,strictTypes:null!==(u=null!==(l=e.strictTypes)&&void 0!==l?l:N)&&void 0!==u?u:"log",strictTuples:null!==(f=null!==(d=e.strictTuples)&&void 0!==d?d:N)&&void 0!==f?f:"log",strictRequired:null!==(g=null!==(h=e.strictRequired)&&void 0!==h?h:N)&&void 0!==g&&g,code:e.code?{...e.code,optimize:T,regExp:k}:{optimize:T,regExp:k},loopRequired:null!==(y=e.loopRequired)&&void 0!==y?y:200,loopEnum:null!==(A=e.loopEnum)&&void 0!==A?A:200,meta:null===(v=e.meta)||void 0===v||v,messages:null===(b=e.messages)||void 0===b||b,inlineRefs:null===(w=e.inlineRefs)||void 0===w||w,schemaId:null!==(M=e.schemaId)&&void 0!==M?M:"$id",addUsedSchema:null===(E=e.addUsedSchema)||void 0===E||E,validateSchema:null===(C=e.validateSchema)||void 0===C||C,validateFormats:null===(L=e.validateFormats)||void 0===L||L,unicodeRegExp:null===(j=e.unicodeRegExp)||void 0===j||j,int32range:null===(x=e.int32range)||void 0===x||x,uriResolver:_}}class w{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...b(e)};const{es5:t,lines:n}=this.opts.code;this.scope=new l.ValueScope({scope:{},prefixes:y,es5:t,lines:n}),this.logger=function(e){if(!1===e)return N;if(void 0===e)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}(e.logger);const r=e.validateFormats;e.validateFormats=!1,this.RULES=(0,s.getRules)(),M.call(this,A,e,"NOT SUPPORTED"),M.call(this,v,e,"DEPRECATED","warn"),this._metaOpts=x.call(this),e.formats&&L.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&j.call(this,e.keywords),"object"==typeof e.meta&&this.addMetaSchema(e.meta),C.call(this),e.validateFormats=r}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:e,meta:t,schemaId:n}=this.opts;let r=h;"id"===n&&(r={...h},r.id=r.$id,delete r.$id),t&&e&&this.addMetaSchema(r,r[n],!1)}defaultMeta(){const{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta="object"==typeof e?e[t]||e:void 0}validate(e,t){let n;if("string"==typeof e){if(n=this.getSchema(e),!n)throw new Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);const r=n(t);return"$async"in n||(this.errors=n.errors),r}compile(e,t){const n=this._addSchema(e,t);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,t){if("function"!=typeof this.opts.loadSchema)throw new Error("options.loadSchema should be a function");const{loadSchema:n}=this.opts;return r.call(this,e,t);async function r(e,t){await o.call(this,e.$schema);const n=this._addSchema(e,t);return n.validate||i.call(this,n)}async function o(e){e&&!this.getSchema(e)&&await r.call(this,{$ref:e},!0)}async function i(e){try{return this._compileSchemaEnv(e)}catch(t){if(!(t instanceof a.default))throw t;return s.call(this,t),await c.call(this,t.missingSchema),i.call(this,e)}}function s({missingSchema:e,missingRef:t}){if(this.refs[e])throw new Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`)}async function c(e){const n=await l.call(this,e);this.refs[e]||await o.call(this,n.$schema),this.refs[e]||this.addSchema(n,e,t)}async function l(e){const t=this._loading[e];if(t)return t;try{return await(this._loading[e]=n(e))}finally{delete this._loading[e]}}}addSchema(e,t,n,r=this.opts.validateSchema){if(Array.isArray(e)){for(const t of e)this.addSchema(t,void 0,n,r);return this}let o;if("object"==typeof e){const{schemaId:t}=this.opts;if(o=e[t],void 0!==o&&"string"!=typeof o)throw new Error(`schema ${t} must be string`)}return t=(0,u.normalizeId)(t||o),this._checkUnique(t),this.schemas[t]=this._addSchema(e,n,t,r,!0),this}addMetaSchema(e,t,n=this.opts.validateSchema){return this.addSchema(e,t,!0,n),this}validateSchema(e,t){if("boolean"==typeof e)return!0;let n;if(n=e.$schema,void 0!==n&&"string"!=typeof n)throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;const r=this.validate(n,e);if(!r&&t){const e="schema is invalid: "+this.errorsText();if("log"!==this.opts.validateSchema)throw new Error(e);this.logger.error(e)}return r}getSchema(e){let t;for(;"string"==typeof(t=E.call(this,e));)e=t;if(void 0===t){const{schemaId:n}=this.opts,r=new c.SchemaEnv({schema:{},schemaId:n});if(t=c.resolveSchema.call(this,r,e),!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{const t=E.call(this,e);return"object"==typeof t&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case"object":{const t=e;this._cache.delete(t);let n=e[this.opts.schemaId];return n&&(n=(0,u.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(const t of e)this.addKeyword(t);return this}addKeyword(e,t){let n;if("string"==typeof e)n=e,"object"==typeof t&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),t.keyword=n);else{if("object"!=typeof e||void 0!==t)throw new Error("invalid addKeywords parameters");if(n=(t=e).keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}if(T.call(this,n,t),!t)return(0,f.eachItem)(n,(e=>k.call(this,e))),this;D.call(this,t);const r={...t,type:(0,d.getJSONTypes)(t.type),schemaType:(0,d.getJSONTypes)(t.schemaType)};return(0,f.eachItem)(n,0===r.type.length?e=>k.call(this,e,r):e=>r.type.forEach((t=>k.call(this,e,r,t)))),this}getKeyword(e){const t=this.RULES.all[e];return"object"==typeof t?t.definition:!!t}removeKeyword(e){const{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(const n of t.rules){const t=n.rules.findIndex((t=>t.keyword===e));t>=0&&n.rules.splice(t,1)}return this}addFormat(e,t){return"string"==typeof t&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=", ",dataVar:n="data"}={}){return e&&0!==e.length?e.map((e=>`${n}${e.instancePath} ${e.message}`)).reduce(((e,n)=>e+t+n)):"No errors"}$dataMetaSchema(e,t){const n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(const r of t){const t=r.split("/").slice(1);let o=e;for(const e of t)o=o[e];for(const e in n){const t=n[e];if("object"!=typeof t)continue;const{$data:r}=t.definition,i=o[e];r&&i&&(o[e]=O(i))}}return e}_removeAllSchemas(e,t){for(const n in e){const r=e[n];t&&!t.test(n)||("string"==typeof r?delete e[n]:r&&!r.meta&&(this._cache.delete(r.schema),delete e[n]))}}_addSchema(e,t,n,r=this.opts.validateSchema,o=this.opts.addUsedSchema){let i;const{schemaId:a}=this.opts;if("object"==typeof e)i=e[a];else{if(this.opts.jtd)throw new Error("schema must be object");if("boolean"!=typeof e)throw new Error("schema must be object or boolean")}let s=this._cache.get(e);if(void 0!==s)return s;n=(0,u.normalizeId)(i||n);const l=u.getSchemaRefs.call(this,e,n);return s=new c.SchemaEnv({schema:e,schemaId:a,meta:t,baseId:n,localRefs:l}),this._cache.set(s.schema,s),o&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=s),r&&this.validateSchema(e,!0),s}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw new Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):c.compileSchema.call(this,e),!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){const t=this.opts;this.opts=this._metaOpts;try{c.compileSchema.call(this,e)}finally{this.opts=t}}}function M(e,t,n,r="error"){for(const o in e){const i=o;i in t&&this.logger[r](`${n}: option ${o}. ${e[i]}`)}}function E(e){return e=(0,u.normalizeId)(e),this.schemas[e]||this.refs[e]}function C(){const e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(const t in e)this.addSchema(e[t],t)}function L(){for(const e in this.opts.formats){const t=this.opts.formats[e];t&&this.addFormat(e,t)}}function j(e){if(Array.isArray(e))this.addVocabulary(e);else{this.logger.warn("keywords option as map is deprecated, pass array");for(const t in e){const n=e[t];n.keyword||(n.keyword=t),this.addKeyword(n)}}}function x(){const e={...this.opts};for(const t of g)delete e[t];return e}w.ValidationError=i.default,w.MissingRefError=a.default,t.default=w;const N={log(){},warn(){},error(){}};const S=/^[a-z_$][a-z0-9_$:-]*$/i;function T(e,t){const{RULES:n}=this;if((0,f.eachItem)(e,(e=>{if(n.keywords[e])throw new Error(`Keyword ${e} is already defined`);if(!S.test(e))throw new Error(`Keyword ${e} has invalid name`)})),t&&t.$data&&!("code"in t)&&!("validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function k(e,t,n){var r;const o=null==t?void 0:t.post;if(n&&o)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:i}=this;let a=o?i.post:i.rules.find((({type:e})=>e===n));if(a||(a={type:n,rules:[]},i.rules.push(a)),i.keywords[e]=!0,!t)return;const s={keyword:e,definition:{...t,type:(0,d.getJSONTypes)(t.type),schemaType:(0,d.getJSONTypes)(t.schemaType)}};t.before?_.call(this,a,s,t.before):a.rules.push(s),i.all[e]=s,null===(r=t.implements)||void 0===r||r.forEach((e=>this.addKeyword(e)))}function _(e,t,n){const r=e.rules.findIndex((e=>e.keyword===n));r>=0?e.rules.splice(r,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function D(e){let{metaSchema:t}=e;void 0!==t&&(e.$data&&this.opts.$data&&(t=O(t)),e.validateSchema=this.compile(t,!0))}const I={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function O(e){return{anyOf:[e,I]}}},6250:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(2017);r.code='require("ajv/dist/runtime/equal").default',t.default=r},3853:(e,t)=>{"use strict";function n(e){const t=e.length;let n,r=0,o=0;for(;o=55296&&n<=56319&&o{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(8343);r.code='require("ajv/dist/runtime/uri").default',t.default=r},3558:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});class n extends Error{constructor(e){super("validation failed"),this.errors=e,this.ajv=this.validation=!0}}t.default=n},5457:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateAdditionalItems=void 0;const r=n(9029),o=n(4227),i={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:{message:({params:{len:e}})=>r.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>r._`{limit: ${e}}`},code(e){const{parentSchema:t,it:n}=e,{items:r}=t;Array.isArray(r)?a(e,r):(0,o.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas')}};function a(e,t){const{gen:n,schema:i,data:a,keyword:s,it:c}=e;c.items=!0;const l=n.const("len",r._`${a}.length`);if(!1===i)e.setParams({len:t.length}),e.pass(r._`${l} <= ${t.length}`);else if("object"==typeof i&&!(0,o.alwaysValidSchema)(c,i)){const i=n.var("valid",r._`${l} <= ${t.length}`);n.if((0,r.not)(i),(()=>function(i){n.forRange("i",t.length,l,(t=>{e.subschema({keyword:s,dataProp:t,dataPropType:o.Type.Num},i),c.allErrors||n.if((0,r.not)(i),(()=>n.break()))}))}(i))),e.ok(i)}}t.validateAdditionalItems=a,t.default=i},8660:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5765),o=n(9029),i=n(2023),a=n(4227),s={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:{message:"must NOT have additional properties",params:({params:e})=>o._`{additionalProperty: ${e.additionalProperty}}`},code(e){const{gen:t,schema:n,parentSchema:s,data:c,errsCount:l,it:u}=e;if(!l)throw new Error("ajv implementation error");const{allErrors:d,opts:f}=u;if(u.props=!0,"all"!==f.removeAdditional&&(0,a.alwaysValidSchema)(u,n))return;const h=(0,r.allSchemaProperties)(s.properties),p=(0,r.allSchemaProperties)(s.patternProperties);function m(e){t.code(o._`delete ${c}[${e}]`)}function g(r){if("all"===f.removeAdditional||f.removeAdditional&&!1===n)m(r);else{if(!1===n)return e.setParams({additionalProperty:r}),e.error(),void(d||t.break());if("object"==typeof n&&!(0,a.alwaysValidSchema)(u,n)){const n=t.name("valid");"failing"===f.removeAdditional?(y(r,n,!1),t.if((0,o.not)(n),(()=>{e.reset(),m(r)}))):(y(r,n),d||t.if((0,o.not)(n),(()=>t.break())))}}}function y(t,n,r){const o={keyword:"additionalProperties",dataProp:t,dataPropType:a.Type.Str};!1===r&&Object.assign(o,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(o,n)}t.forIn("key",c,(n=>{h.length||p.length?t.if(function(n){let i;if(h.length>8){const e=(0,a.schemaRefOrVal)(u,s.properties,"properties");i=(0,r.isOwnProperty)(t,e,n)}else i=h.length?(0,o.or)(...h.map((e=>o._`${n} === ${e}`))):o.nil;return p.length&&(i=(0,o.or)(i,...p.map((t=>o._`${(0,r.usePattern)(e,t)}.test(${n})`)))),(0,o.not)(i)}(n),(()=>g(n))):g(n)})),e.ok(o._`${l} === ${i.default.errors}`)}};t.default=s},5844:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4227),o={keyword:"allOf",schemaType:"array",code(e){const{gen:t,schema:n,it:o}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");const i=t.name("valid");n.forEach(((t,n)=>{if((0,r.alwaysValidSchema)(o,t))return;const a=e.subschema({keyword:"allOf",schemaProp:n},i);e.ok(i),e.mergeEvaluated(a)}))}};t.default=o},6505:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:n(5765).validateUnion,error:{message:"must match a schema in anyOf"}};t.default=r},2661:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:{message:({params:{min:e,max:t}})=>void 0===t?r.str`must contain at least ${e} valid item(s)`:r.str`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>void 0===t?r._`{minContains: ${e}}`:r._`{minContains: ${e}, maxContains: ${t}}`},code(e){const{gen:t,schema:n,parentSchema:i,data:a,it:s}=e;let c,l;const{minContains:u,maxContains:d}=i;s.opts.next?(c=void 0===u?1:u,l=d):c=1;const f=t.const("len",r._`${a}.length`);if(e.setParams({min:c,max:l}),void 0===l&&0===c)return void(0,o.checkStrictMode)(s,'"minContains" == 0 without "maxContains": "contains" keyword ignored');if(void 0!==l&&c>l)return(0,o.checkStrictMode)(s,'"minContains" > "maxContains" is always invalid'),void e.fail();if((0,o.alwaysValidSchema)(s,n)){let t=r._`${f} >= ${c}`;return void 0!==l&&(t=r._`${t} && ${f} <= ${l}`),void e.pass(t)}s.items=!0;const h=t.name("valid");function p(){const e=t.name("_valid"),n=t.let("count",0);m(e,(()=>t.if(e,(()=>function(e){t.code(r._`${e}++`),void 0===l?t.if(r._`${e} >= ${c}`,(()=>t.assign(h,!0).break())):(t.if(r._`${e} > ${l}`,(()=>t.assign(h,!1).break())),1===c?t.assign(h,!0):t.if(r._`${e} >= ${c}`,(()=>t.assign(h,!0))))}(n)))))}function m(n,r){t.forRange("i",0,f,(t=>{e.subschema({keyword:"contains",dataProp:t,dataPropType:o.Type.Num,compositeRule:!0},n),r()}))}void 0===l&&1===c?m(h,(()=>t.if(h,(()=>t.break())))):0===c?(t.let(h,!0),void 0!==l&&t.if(r._`${a}.length > 0`,p)):(t.let(h,!1),p()),e.result(h,(()=>e.reset()))}};t.default=i},3025:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;const r=n(9029),o=n(4227),i=n(5765);t.error={message:({params:{property:e,depsCount:t,deps:n}})=>{const o=1===t?"property":"properties";return r.str`must have ${o} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:o}})=>r._`{property: ${e}, missingProperty: ${o}, depsCount: ${t}, - deps: ${n}}`};const a={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,n]=function({schema:e}){const t={},n={};for(const r in e){if("__proto__"===r)continue;(Array.isArray(e[r])?t:n)[r]=e[r]}return[t,n]}(e);s(e,t),c(e,n)}};function s(e,t=e.schema){const{gen:n,data:o,it:a}=e;if(0===Object.keys(t).length)return;const s=n.let("missing");for(const c in t){const l=t[c];if(0===l.length)continue;const u=(0,i.propertyInData)(n,o,c,a.opts.ownProperties);e.setParams({property:c,depsCount:l.length,deps:l.join(", ")}),a.allErrors?n.if(u,(()=>{for(const t of l)(0,i.checkReportMissingProp)(e,t)})):(n.if(r._`${u} && (${(0,i.checkMissingProp)(e,l,s)})`),(0,i.reportMissingProp)(e,s),n.else())}}function c(e,t=e.schema){const{gen:n,data:r,keyword:a,it:s}=e,c=n.name("valid");for(const l in t)(0,o.alwaysValidSchema)(s,t[l])||(n.if((0,i.propertyInData)(n,r,l,s.opts.ownProperties),(()=>{const t=e.subschema({keyword:a,schemaProp:l},c);e.mergeValidEvaluated(t,c)}),(()=>n.var(c,!0))),e.ok(c))}t.validatePropertyDeps=s,t.validateSchemaDeps=c,t.default=a},1239:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:e})=>r.str`must match "${e.ifClause}" schema`,params:({params:e})=>r._`{failingKeyword: ${e.ifClause}}`},code(e){const{gen:t,parentSchema:n,it:i}=e;void 0===n.then&&void 0===n.else&&(0,o.checkStrictMode)(i,'"if" without "then" and "else" is ignored');const s=a(i,"then"),c=a(i,"else");if(!s&&!c)return;const l=t.let("valid",!0),u=t.name("_valid");if(function(){const t=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},u);e.mergeEvaluated(t)}(),e.reset(),s&&c){const n=t.let("ifClause");e.setParams({ifClause:n}),t.if(u,d("then",n),d("else",n))}else s?t.if(u,d("then")):t.if((0,r.not)(u),d("else"));function d(n,o){return()=>{const i=e.subschema({keyword:n},u);t.assign(l,u),e.mergeValidEvaluated(i,l),o?t.assign(o,r._`${n}`):e.setParams({ifClause:n})}}e.pass(l,(()=>e.error(!0)))}};function a(e,t){const n=e.schema[t];return void 0!==n&&!(0,o.alwaysValidSchema)(e,n)}t.default=i},6378:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5457),o=n(5354),i=n(494),a=n(3966),s=n(2661),c=n(3025),l=n(9713),u=n(8660),d=n(117),f=n(5333),h=n(7923),p=n(6505),m=n(6163),g=n(5844),y=n(1239),A=n(4426);t.default=function(e=!1){const t=[h.default,p.default,m.default,g.default,y.default,A.default,l.default,u.default,c.default,d.default,f.default];return e?t.push(o.default,a.default):t.push(r.default,i.default),t.push(s.default),t}},494:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;const r=n(9029),o=n(4227),i=n(5765),a={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{schema:t,it:n}=e;if(Array.isArray(t))return s(e,"additionalItems",t);n.items=!0,(0,o.alwaysValidSchema)(n,t)||e.ok((0,i.validateArray)(e))}};function s(e,t,n=e.schema){const{gen:i,parentSchema:a,data:s,keyword:c,it:l}=e;!function(e){const{opts:r,errSchemaPath:i}=l,a=n.length,s=a===e.minItems&&(a===e.maxItems||!1===e[t]);if(r.strictTuples&&!s){const e=`"${c}" is ${a}-tuple, but minItems or maxItems/${t} are not specified or different at path "${i}"`;(0,o.checkStrictMode)(l,e,r.strictTuples)}}(a),l.opts.unevaluated&&n.length&&!0!==l.items&&(l.items=o.mergeEvaluated.items(i,n.length,l.items));const u=i.name("valid"),d=i.const("len",r._`${s}.length`);n.forEach(((t,n)=>{(0,o.alwaysValidSchema)(l,t)||(i.if(r._`${d} > ${n}`,(()=>e.subschema({keyword:c,schemaProp:n,dataProp:n},u))),e.ok(u))}))}t.validateTuple=s,t.default=a},3966:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i=n(5765),a=n(5457),s={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:e}})=>r.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>r._`{limit: ${e}}`},code(e){const{schema:t,parentSchema:n,it:r}=e,{prefixItems:s}=n;r.items=!0,(0,o.alwaysValidSchema)(r,t)||(s?(0,a.validateAdditionalItems)(e,s):e.ok((0,i.validateArray)(e)))}};t.default=s},7923:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4227),o={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){const{gen:t,schema:n,it:o}=e;if((0,r.alwaysValidSchema)(o,n))return void e.fail();const i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,(()=>e.reset()),(()=>e.error()))},error:{message:"must NOT be valid"}};t.default=o},6163:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:e})=>r._`{passingSchemas: ${e.passing}}`},code(e){const{gen:t,schema:n,parentSchema:i,it:a}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(a.opts.discriminator&&i.discriminator)return;const s=n,c=t.let("valid",!1),l=t.let("passing",null),u=t.name("_valid");e.setParams({passing:l}),t.block((function(){s.forEach(((n,i)=>{let s;(0,o.alwaysValidSchema)(a,n)?t.var(u,!0):s=e.subschema({keyword:"oneOf",schemaProp:i,compositeRule:!0},u),i>0&&t.if(r._`${u} && ${c}`).assign(c,!1).assign(l,r._`[${l}, ${i}]`).else(),t.if(u,(()=>{t.assign(c,!0),t.assign(l,i),s&&e.mergeEvaluated(s,r.Name)}))}))})),e.result(c,(()=>e.reset()),(()=>e.error(!0)))}};t.default=i},5333:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5765),o=n(9029),i=n(4227),a=n(4227),s={keyword:"patternProperties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,data:s,parentSchema:c,it:l}=e,{opts:u}=l,d=(0,r.allSchemaProperties)(n),f=d.filter((e=>(0,i.alwaysValidSchema)(l,n[e])));if(0===d.length||f.length===d.length&&(!l.opts.unevaluated||!0===l.props))return;const h=u.strictSchema&&!u.allowMatchingProperties&&c.properties,p=t.name("valid");!0===l.props||l.props instanceof o.Name||(l.props=(0,a.evaluatedPropsToName)(t,l.props));const{props:m}=l;function g(e){for(const t in h)new RegExp(e).test(t)&&(0,i.checkStrictMode)(l,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}function y(n){t.forIn("key",s,(i=>{t.if(o._`${(0,r.usePattern)(e,n)}.test(${i})`,(()=>{const r=f.includes(n);r||e.subschema({keyword:"patternProperties",schemaProp:n,dataProp:i,dataPropType:a.Type.Str},p),l.opts.unevaluated&&!0!==m?t.assign(o._`${m}[${i}]`,!0):r||l.allErrors||t.if((0,o.not)(p),(()=>t.break()))}))}))}!function(){for(const e of d)h&&g(e),l.allErrors?y(e):(t.var(p,!0),y(e),t.if(p))}()}};t.default=s},5354:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(494),o={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,r.validateTuple)(e,"items")};t.default=o},117:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(2586),o=n(5765),i=n(4227),a=n(8660),s={keyword:"properties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,parentSchema:s,data:c,it:l}=e;"all"===l.opts.removeAdditional&&void 0===s.additionalProperties&&a.default.code(new r.KeywordCxt(l,a.default,"additionalProperties"));const u=(0,o.allSchemaProperties)(n);for(const e of u)l.definedProperties.add(e);l.opts.unevaluated&&u.length&&!0!==l.props&&(l.props=i.mergeEvaluated.props(t,(0,i.toHash)(u),l.props));const d=u.filter((e=>!(0,i.alwaysValidSchema)(l,n[e])));if(0===d.length)return;const f=t.name("valid");for(const n of d)h(n)?p(n):(t.if((0,o.propertyInData)(t,c,n,l.opts.ownProperties)),p(n),l.allErrors||t.else().var(f,!0),t.endIf()),e.it.definedProperties.add(n),e.ok(f);function h(e){return l.opts.useDefaults&&!l.compositeRule&&void 0!==n[e].default}function p(t){e.subschema({keyword:"properties",schemaProp:t,dataProp:t},f)}}};t.default=s},9713:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:({params:e})=>r._`{propertyName: ${e.propertyName}}`},code(e){const{gen:t,schema:n,data:i,it:a}=e;if((0,o.alwaysValidSchema)(a,n))return;const s=t.name("valid");t.forIn("key",i,(n=>{e.setParams({propertyName:n}),e.subschema({keyword:"propertyNames",data:n,dataTypes:["string"],propertyName:n,compositeRule:!0},s),t.if((0,r.not)(s),(()=>{e.error(!0),a.allErrors||t.break()}))})),e.ok(s)}};t.default=i},4426:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4227),o={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){void 0===t.if&&(0,r.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};t.default=o},5765:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;const r=n(9029),o=n(4227),i=n(2023),a=n(4227);function s(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:r._`Object.prototype.hasOwnProperty`})}function c(e,t,n){return r._`${s(e)}.call(${t}, ${n})`}function l(e,t,n,o){const i=r._`${t}${(0,r.getProperty)(n)} === undefined`;return o?(0,r.or)(i,(0,r.not)(c(e,t,n))):i}function u(e){return e?Object.keys(e).filter((e=>"__proto__"!==e)):[]}t.checkReportMissingProp=function(e,t){const{gen:n,data:o,it:i}=e;n.if(l(n,o,t,i.opts.ownProperties),(()=>{e.setParams({missingProperty:r._`${t}`},!0),e.error()}))},t.checkMissingProp=function({gen:e,data:t,it:{opts:n}},o,i){return(0,r.or)(...o.map((o=>(0,r.and)(l(e,t,o,n.ownProperties),r._`${i} = ${o}`))))},t.reportMissingProp=function(e,t){e.setParams({missingProperty:t},!0),e.error()},t.hasPropFunc=s,t.isOwnProperty=c,t.propertyInData=function(e,t,n,o){const i=r._`${t}${(0,r.getProperty)(n)} !== undefined`;return o?r._`${i} && ${c(e,t,n)}`:i},t.noPropertyInData=l,t.allSchemaProperties=u,t.schemaProperties=function(e,t){return u(t).filter((n=>!(0,o.alwaysValidSchema)(e,t[n])))},t.callValidateCode=function({schemaCode:e,data:t,it:{gen:n,topSchemaRef:o,schemaPath:a,errorPath:s},it:c},l,u,d){const f=d?r._`${e}, ${t}, ${o}${a}`:t,h=[[i.default.instancePath,(0,r.strConcat)(i.default.instancePath,s)],[i.default.parentData,c.parentData],[i.default.parentDataProperty,c.parentDataProperty],[i.default.rootData,i.default.rootData]];c.opts.dynamicRef&&h.push([i.default.dynamicAnchors,i.default.dynamicAnchors]);const p=r._`${f}, ${n.object(...h)}`;return u!==r.nil?r._`${l}.call(${u}, ${p})`:r._`${l}(${p})`};const d=r._`new RegExp`;t.usePattern=function({gen:e,it:{opts:t}},n){const o=t.unicodeRegExp?"u":"",{regExp:i}=t.code,s=i(n,o);return e.scopeValue("pattern",{key:s.toString(),ref:s,code:r._`${"new RegExp"===i.code?d:(0,a.useFunc)(e,i)}(${n}, ${o})`})},t.validateArray=function(e){const{gen:t,data:n,keyword:i,it:a}=e,s=t.name("valid");if(a.allErrors){const e=t.let("valid",!0);return c((()=>t.assign(e,!1))),e}return t.var(s,!0),c((()=>t.break())),s;function c(a){const c=t.const("len",r._`${n}.length`);t.forRange("i",0,c,(n=>{e.subschema({keyword:i,dataProp:n,dataPropType:o.Type.Num},s),t.if((0,r.not)(s),a)}))}},t.validateUnion=function(e){const{gen:t,schema:n,keyword:i,it:a}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some((e=>(0,o.alwaysValidSchema)(a,e)))&&!a.opts.unevaluated)return;const s=t.let("valid",!1),c=t.name("_valid");t.block((()=>n.forEach(((n,o)=>{const a=e.subschema({keyword:i,schemaProp:o,compositeRule:!0},c);t.assign(s,r._`${s} || ${c}`);e.mergeValidEvaluated(a,c)||t.if((0,r.not)(s))})))),e.result(s,(()=>e.reset()),(()=>e.error(!0)))}},3463:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=n},2128:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3463),o=n(3693),i=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",r.default,o.default];t.default=i},3693:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;const r=n(4551),o=n(5765),i=n(9029),a=n(2023),s=n(3835),c=n(4227),l={keyword:"$ref",schemaType:"string",code(e){const{gen:t,schema:n,it:o}=e,{baseId:a,schemaEnv:c,validateName:l,opts:f,self:h}=o,{root:p}=c;if(("#"===n||"#/"===n)&&a===p.baseId)return function(){if(c===p)return d(e,l,c,c.$async);const n=t.scopeValue("root",{ref:p});return d(e,i._`${n}.validate`,p,p.$async)}();const m=s.resolveRef.call(h,p,a,n);if(void 0===m)throw new r.default(o.opts.uriResolver,a,n);return m instanceof s.SchemaEnv?function(t){const n=u(e,t);d(e,n,t,t.$async)}(m):function(r){const o=t.scopeValue("schema",!0===f.code.source?{ref:r,code:(0,i.stringify)(r)}:{ref:r}),a=t.name("valid"),s=e.subschema({schema:r,dataTypes:[],schemaPath:i.nil,topSchemaRef:o,errSchemaPath:n},a);e.mergeEvaluated(s),e.ok(a)}(m)}};function u(e,t){const{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):i._`${n.scopeValue("wrapper",{ref:t})}.validate`}function d(e,t,n,r){const{gen:s,it:l}=e,{allErrors:u,schemaEnv:d,opts:f}=l,h=f.passContext?a.default.this:i.nil;function p(e){const t=i._`${e}.errors`;s.assign(a.default.vErrors,i._`${a.default.vErrors} === null ? ${t} : ${a.default.vErrors}.concat(${t})`),s.assign(a.default.errors,i._`${a.default.vErrors}.length`)}function m(e){var t;if(!l.opts.unevaluated)return;const r=null===(t=null==n?void 0:n.validate)||void 0===t?void 0:t.evaluated;if(!0!==l.props)if(r&&!r.dynamicProps)void 0!==r.props&&(l.props=c.mergeEvaluated.props(s,r.props,l.props));else{const t=s.var("props",i._`${e}.evaluated.props`);l.props=c.mergeEvaluated.props(s,t,l.props,i.Name)}if(!0!==l.items)if(r&&!r.dynamicItems)void 0!==r.items&&(l.items=c.mergeEvaluated.items(s,r.items,l.items));else{const t=s.var("items",i._`${e}.evaluated.items`);l.items=c.mergeEvaluated.items(s,t,l.items,i.Name)}}r?function(){if(!d.$async)throw new Error("async schema referenced by sync schema");const n=s.let("valid");s.try((()=>{s.code(i._`await ${(0,o.callValidateCode)(e,t,h)}`),m(t),u||s.assign(n,!0)}),(e=>{s.if(i._`!(${e} instanceof ${l.ValidationError})`,(()=>s.throw(e))),p(e),u||s.assign(n,!1)})),e.ok(n)}():e.result((0,o.callValidateCode)(e,t,h),(()=>m(t)),(()=>p(t)))}t.getValidate=u,t.callRef=d,t.default=l},6653:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(7652),i=n(3835),a=n(4551),s=n(4227),c={keyword:"discriminator",type:"object",schemaType:"object",error:{message:({params:{discrError:e,tagName:t}})=>e===o.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>r._`{error: ${e}, tag: ${n}, tagValue: ${t}}`},code(e){const{gen:t,data:n,schema:c,parentSchema:l,it:u}=e,{oneOf:d}=l;if(!u.opts.discriminator)throw new Error("discriminator: requires discriminator option");const f=c.propertyName;if("string"!=typeof f)throw new Error("discriminator: requires propertyName");if(c.mapping)throw new Error("discriminator: mapping is not supported");if(!d)throw new Error("discriminator: requires oneOf keyword");const h=t.let("valid",!1),p=t.const("tag",r._`${n}${(0,r.getProperty)(f)}`);function m(n){const o=t.name("valid"),i=e.subschema({keyword:"oneOf",schemaProp:n},o);return e.mergeEvaluated(i,r.Name),o}t.if(r._`typeof ${p} == "string"`,(()=>function(){const n=function(){var e;const t={},n=o(l);let r=!0;for(let t=0;te.error(!1,{discrError:o.DiscrError.Tag,tag:p,tagName:f}))),e.ok(h)}};t.default=c},7652:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0,function(e){e.Tag="tag",e.Mapping="mapping"}(n||(t.DiscrError=n={}))},6144:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(2128),o=n(7060),i=n(6378),a=n(7532),s=n(9857),c=[r.default,o.default,(0,i.default)(),a.default,s.metadataVocabulary,s.contentVocabulary];t.default=c},4737:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>r.str`must match format "${e}"`,params:({schemaCode:e})=>r._`{format: ${e}}`},code(e,t){const{gen:n,data:o,$data:i,schema:a,schemaCode:s,it:c}=e,{opts:l,errSchemaPath:u,schemaEnv:d,self:f}=c;l.validateFormats&&(i?function(){const i=n.scopeValue("formats",{ref:f.formats,code:l.code.formats}),a=n.const("fDef",r._`${i}[${s}]`),c=n.let("fType"),u=n.let("format");n.if(r._`typeof ${a} == "object" && !(${a} instanceof RegExp)`,(()=>n.assign(c,r._`${a}.type || "string"`).assign(u,r._`${a}.validate`)),(()=>n.assign(c,r._`"string"`).assign(u,a))),e.fail$data((0,r.or)(!1===l.strictSchema?r.nil:r._`${s} && !${u}`,function(){const e=d.$async?r._`(${a}.async ? await ${u}(${o}) : ${u}(${o}))`:r._`${u}(${o})`,n=r._`(typeof ${u} == "function" ? ${e} : ${u}.test(${o}))`;return r._`${u} && ${u} !== true && ${c} === ${t} && !${n}`}()))}():function(){const i=f.formats[a];if(!i)return void function(){if(!1===l.strictSchema)return void f.logger.warn(e());throw new Error(e());function e(){return`unknown format "${a}" ignored in schema at path "${u}"`}}();if(!0===i)return;const[s,c,h]=function(e){const t=e instanceof RegExp?(0,r.regexpCode)(e):l.code.formats?r._`${l.code.formats}${(0,r.getProperty)(a)}`:void 0,o=n.scopeValue("formats",{key:a,ref:e,code:t});if("object"==typeof e&&!(e instanceof RegExp))return[e.type||"string",e.validate,r._`${o}.validate`];return["string",e,o]}(i);s===t&&e.pass(function(){if("object"==typeof i&&!(i instanceof RegExp)&&i.async){if(!d.$async)throw new Error("async format in sync schema");return r._`await ${h}(${o})`}return"function"==typeof c?r._`${h}(${o})`:r._`${h}.test(${o})`}())}())}};t.default=o},7532:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=[n(4737).default];t.default=r},9857:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]},7935:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i=n(6250),a={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:({schemaCode:e})=>r._`{allowedValue: ${e}}`},code(e){const{gen:t,data:n,$data:a,schemaCode:s,schema:c}=e;a||c&&"object"==typeof c?e.fail$data(r._`!${(0,o.useFunc)(t,i.default)}(${n}, ${s})`):e.fail(r._`${c} !== ${n}`)}};t.default=a},8643:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i=n(6250),a={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:({schemaCode:e})=>r._`{allowedValues: ${e}}`},code(e){const{gen:t,data:n,$data:a,schema:s,schemaCode:c,it:l}=e;if(!a&&0===s.length)throw new Error("enum must have non-empty array");const u=s.length>=l.opts.loopEnum;let d;const f=()=>null!=d?d:d=(0,o.useFunc)(t,i.default);let h;if(u||a)h=t.let("valid"),e.block$data(h,(function(){t.assign(h,!1),t.forOf("v",c,(e=>t.if(r._`${f()}(${n}, ${e})`,(()=>t.assign(h,!0).break()))))}));else{if(!Array.isArray(s))throw new Error("ajv implementation error");const e=t.const("vSchema",c);h=(0,r.or)(...s.map(((t,o)=>function(e,t){const o=s[t];return"object"==typeof o&&null!==o?r._`${f()}(${n}, ${e}[${t}])`:r._`${n} === ${o}`}(e,o))))}e.pass(h)}};t.default=a},7060:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5882),o=n(3439),i=n(7307),a=n(422),s=n(4486),c=n(4003),l=n(1163),u=n(617),d=n(7935),f=n(8643),h=[r.default,o.default,i.default,a.default,s.default,c.default,l.default,u.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},d.default,f.default];t.default=h},1163:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxItems"===e?"more":"fewer";return r.str`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:o}=e,i="maxItems"===t?r.operators.GT:r.operators.LT;e.fail$data(r._`${n}.length ${i} ${o}`)}};t.default=o},7307:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i=n(3853),a={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxLength"===e?"more":"fewer";return r.str`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:a,it:s}=e,c="maxLength"===t?r.operators.GT:r.operators.LT,l=!1===s.opts.unicode?r._`${n}.length`:r._`${(0,o.useFunc)(e.gen,i.default)}(${n})`;e.fail$data(r._`${l} ${c} ${a}`)}};t.default=a},5882:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=r.operators,i={maximum:{okStr:"<=",ok:o.LTE,fail:o.GT},minimum:{okStr:">=",ok:o.GTE,fail:o.LT},exclusiveMaximum:{okStr:"<",ok:o.LT,fail:o.GTE},exclusiveMinimum:{okStr:">",ok:o.GT,fail:o.LTE}},a={message:({keyword:e,schemaCode:t})=>r.str`must be ${i[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>r._`{comparison: ${i[e].okStr}, limit: ${t}}`},s={keyword:Object.keys(i),type:"number",schemaType:"number",$data:!0,error:a,code(e){const{keyword:t,data:n,schemaCode:o}=e;e.fail$data(r._`${n} ${i[t].fail} ${o} || isNaN(${n})`)}};t.default=s},4486:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxProperties"===e?"more":"fewer";return r.str`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:o}=e,i="maxProperties"===t?r.operators.GT:r.operators.LT;e.fail$data(r._`Object.keys(${n}).length ${i} ${o}`)}};t.default=o},3439:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:e})=>r.str`must be multiple of ${e}`,params:({schemaCode:e})=>r._`{multipleOf: ${e}}`},code(e){const{gen:t,data:n,schemaCode:o,it:i}=e,a=i.opts.multipleOfPrecision,s=t.let("res"),c=a?r._`Math.abs(Math.round(${s}) - ${s}) > 1e-${a}`:r._`${s} !== parseInt(${s})`;e.fail$data(r._`(${o} === 0 || (${s} = ${n}/${o}, ${c}))`)}};t.default=o},422:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5765),o=n(9029),i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>o.str`must match pattern "${e}"`,params:({schemaCode:e})=>o._`{pattern: ${e}}`},code(e){const{data:t,$data:n,schema:i,schemaCode:a,it:s}=e,c=s.opts.unicodeRegExp?"u":"",l=n?o._`(new RegExp(${a}, ${c}))`:(0,r.usePattern)(e,i);e.fail$data(o._`!${l}.test(${t})`)}};t.default=i},4003:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5765),o=n(9029),i=n(4227),a={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:e}})=>o.str`must have required property '${e}'`,params:({params:{missingProperty:e}})=>o._`{missingProperty: ${e}}`},code(e){const{gen:t,schema:n,schemaCode:a,data:s,$data:c,it:l}=e,{opts:u}=l;if(!c&&0===n.length)return;const d=n.length>=u.loopRequired;if(l.allErrors?function(){if(d||c)e.block$data(o.nil,f);else for(const t of n)(0,r.checkReportMissingProp)(e,t)}():function(){const i=t.let("missing");if(d||c){const n=t.let("valid",!0);e.block$data(n,(()=>function(n,i){e.setParams({missingProperty:n}),t.forOf(n,a,(()=>{t.assign(i,(0,r.propertyInData)(t,s,n,u.ownProperties)),t.if((0,o.not)(i),(()=>{e.error(),t.break()}))}),o.nil)}(i,n))),e.ok(n)}else t.if((0,r.checkMissingProp)(e,n,i)),(0,r.reportMissingProp)(e,i),t.else()}(),u.strictRequired){const t=e.parentSchema.properties,{definedProperties:r}=e.it;for(const e of n)if(void 0===(null==t?void 0:t[e])&&!r.has(e)){const t=`required property "${e}" is not defined at "${l.schemaEnv.baseId+l.errSchemaPath}" (strictRequired)`;(0,i.checkStrictMode)(l,t,l.opts.strictRequired)}}function f(){t.forOf("prop",a,(n=>{e.setParams({missingProperty:n}),t.if((0,r.noPropertyInData)(t,s,n,u.ownProperties),(()=>e.error()))}))}}};t.default=a},617:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(208),o=n(9029),i=n(4227),a=n(6250),s={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:e,j:t}})=>o.str`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>o._`{i: ${e}, j: ${t}}`},code(e){const{gen:t,data:n,$data:s,schema:c,parentSchema:l,schemaCode:u,it:d}=e;if(!s&&!c)return;const f=t.let("valid"),h=l.items?(0,r.getSchemaTypes)(l.items):[];function p(i,a){const s=t.name("item"),c=(0,r.checkDataTypes)(h,s,d.opts.strictNumbers,r.DataType.Wrong),l=t.const("indices",o._`{}`);t.for(o._`;${i}--;`,(()=>{t.let(s,o._`${n}[${i}]`),t.if(c,o._`continue`),h.length>1&&t.if(o._`typeof ${s} == "string"`,o._`${s} += "_"`),t.if(o._`typeof ${l}[${s}] == "number"`,(()=>{t.assign(a,o._`${l}[${s}]`),e.error(),t.assign(f,!1).break()})).code(o._`${l}[${s}] = ${i}`)}))}function m(r,s){const c=(0,i.useFunc)(t,a.default),l=t.name("outer");t.label(l).for(o._`;${r}--;`,(()=>t.for(o._`${s} = ${r}; ${s}--;`,(()=>t.if(o._`${c}(${n}[${r}], ${n}[${s}])`,(()=>{e.error(),t.assign(f,!1).break(l)}))))))}e.block$data(f,(function(){const r=t.let("i",o._`${n}.length`),i=t.let("j");e.setParams({i:r,j:i}),t.assign(f,!0),t.if(o._`${r} > 1`,(()=>(h.length>0&&!h.some((e=>"object"===e||"array"===e))?p:m)(r,i)))}),o._`${u} === false`),e.ok(f)}};t.default=s},2374:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,'/* Example copied from */\n/* https://www.w3schools.com/howto/howto_css_switch.asp */\n\n/* The switch - the box around the slider */\n:host .switch {\n position: relative;\n display: inline-block;\n width: 60px;\n height: 34px;\n}\n\n/* Hide default HTML checkbox */\n:host .switch input {\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n/* The slider */\n:host .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #ccc;\n -webkit-transition: 0.4s;\n transition: 0.4s;\n}\n\n:host .slider:before {\n position: absolute;\n content: "";\n height: 26px;\n width: 26px;\n left: 4px;\n bottom: 4px;\n background-color: white;\n -webkit-transition: 0.4s;\n transition: 0.4s;\n}\n\n:host input:checked + .slider {\n background-color: #2196f3;\n}\n\n:host input:focus + .slider {\n box-shadow: 0 0 1px #2196f3;\n}\n\n:host input:checked + .slider:before {\n -webkit-transform: translateX(26px);\n -ms-transform: translateX(26px);\n transform: translateX(26px);\n}\n\n/* Rounded sliders */\n:host .slider.round {\n border-radius: 34px;\n}\n\n:host .slider.round:before {\n border-radius: 50%;\n}\n',"",{version:3,sources:["webpack://./src/docdiff.css"],names:[],mappings:"AAAA,wBAAwB;AACxB,yDAAyD;;AAEzD,2CAA2C;AAC3C;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,YAAY;AACd;;AAEA,+BAA+B;AAC/B;EACE,UAAU;EACV,QAAQ;EACR,SAAS;AACX;;AAEA,eAAe;AACf;EACE,kBAAkB;EAClB,eAAe;EACf,MAAM;EACN,OAAO;EACP,QAAQ;EACR,SAAS;EACT,sBAAsB;EACtB,wBAAwB;EACxB,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,WAAW;EACX,SAAS;EACT,WAAW;EACX,uBAAuB;EACvB,wBAAwB;EACxB,gBAAgB;AAClB;;AAEA;EACE,yBAAyB;AAC3B;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,mCAAmC;EACnC,+BAA+B;EAC/B,2BAA2B;AAC7B;;AAEA,oBAAoB;AACpB;EACE,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;AACpB",sourcesContent:['/* Example copied from */\n/* https://www.w3schools.com/howto/howto_css_switch.asp */\n\n/* The switch - the box around the slider */\n:host .switch {\n position: relative;\n display: inline-block;\n width: 60px;\n height: 34px;\n}\n\n/* Hide default HTML checkbox */\n:host .switch input {\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n/* The slider */\n:host .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #ccc;\n -webkit-transition: 0.4s;\n transition: 0.4s;\n}\n\n:host .slider:before {\n position: absolute;\n content: "";\n height: 26px;\n width: 26px;\n left: 4px;\n bottom: 4px;\n background-color: white;\n -webkit-transition: 0.4s;\n transition: 0.4s;\n}\n\n:host input:checked + .slider {\n background-color: #2196f3;\n}\n\n:host input:focus + .slider {\n box-shadow: 0 0 1px #2196f3;\n}\n\n:host input:checked + .slider:before {\n -webkit-transform: translateX(26px);\n -ms-transform: translateX(26px);\n transform: translateX(26px);\n}\n\n/* Rounded sliders */\n:host .slider.round {\n border-radius: 34px;\n}\n\n:host .slider.round:before {\n border-radius: 50%;\n}\n'],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},3329:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,".doc-diff-added {\n background-color: rgb(171, 242, 188);\n text-decoration: none;\n}\n\n.doc-diff-modified {\n}\n\n.doc-diff-removed {\n background-color: rgba(255, 129, 130, 0.4);\n text-decoration: none;\n}\n","",{version:3,sources:["webpack://./src/docdiff.document.css"],names:[],mappings:"AAAA;EACE,oCAAoC;EACpC,qBAAqB;AACvB;;AAEA;AACA;;AAEA;EACE,0CAA0C;EAC1C,qBAAqB;AACvB",sourcesContent:[".doc-diff-added {\n background-color: rgb(171, 242, 188);\n text-decoration: none;\n}\n\n.doc-diff-modified {\n}\n\n.doc-diff-removed {\n background-color: rgba(255, 129, 130, 0.4);\n text-decoration: none;\n}\n"],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},6650:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,'/*\n * Specific styles based on documentation tools and themes\n *\n * Usage of `@layer` at-rule pushes this rules down a step in\n * precedence/priority. This allows a user `:root` rule to override these\n * values.\n **/\n@layer defaults {\n :root[data-readthedocs-tool="docusaurus"] {\n --readthedocs-flyout-header-font-size: 0.9rem;\n }\n\n :root[data-readthedocs-tool="mkdocs-material"] {\n --readthedocs-font-size: 0.58rem;\n --readthedocs-flyout-header-font-size: 0.7rem;\n --readthedocs-flyout-font-size: 0.58rem;\n }\n\n :root[data-readthedocs-tool="antora"] {\n --readthedocs-font-size: 0.7rem;\n --readthedocs-flyout-header-font-size: 0.8rem;\n --readthedocs-flyout-font-size: 0.7rem;\n }\n\n :root[data-readthedocs-tool="mdbook"] {\n --readthedocs-font-size: 1.3rem;\n --readthedocs-flyout-header-font-size: 1.5rem;\n --readthedocs-flyout-font-size: 1.3rem;\n }\n\n :root[data-readthedocs-tool="sphinx"][data-readthedocs-tool-theme="furo"] {\n --readthedocs-font-size: 0.725rem;\n --readthedocs-flyout-header-font-size: 0.845rem;\n --readthedocs-flyout-font-size: 0.725rem;\n }\n\n :root[data-readthedocs-tool="sphinx"][data-readthedocs-tool-theme="immaterial"] {\n --readthedocs-font-size: 0.58rem;\n --readthedocs-flyout-header-font-size: 0.7rem;\n --readthedocs-flyout-font-size: 0.58rem;\n }\n}\n',"",{version:3,sources:["webpack://./src/doctools.css"],names:[],mappings:"AAAA;;;;;;GAMG;AACH;EACE;IACE,6CAA6C;EAC/C;;EAEA;IACE,gCAAgC;IAChC,6CAA6C;IAC7C,uCAAuC;EACzC;;EAEA;IACE,+BAA+B;IAC/B,6CAA6C;IAC7C,sCAAsC;EACxC;;EAEA;IACE,+BAA+B;IAC/B,6CAA6C;IAC7C,sCAAsC;EACxC;;EAEA;IACE,iCAAiC;IACjC,+CAA+C;IAC/C,wCAAwC;EAC1C;;EAEA;IACE,gCAAgC;IAChC,6CAA6C;IAC7C,uCAAuC;EACzC;AACF",sourcesContent:['/*\n * Specific styles based on documentation tools and themes\n *\n * Usage of `@layer` at-rule pushes this rules down a step in\n * precedence/priority. This allows a user `:root` rule to override these\n * values.\n **/\n@layer defaults {\n :root[data-readthedocs-tool="docusaurus"] {\n --readthedocs-flyout-header-font-size: 0.9rem;\n }\n\n :root[data-readthedocs-tool="mkdocs-material"] {\n --readthedocs-font-size: 0.58rem;\n --readthedocs-flyout-header-font-size: 0.7rem;\n --readthedocs-flyout-font-size: 0.58rem;\n }\n\n :root[data-readthedocs-tool="antora"] {\n --readthedocs-font-size: 0.7rem;\n --readthedocs-flyout-header-font-size: 0.8rem;\n --readthedocs-flyout-font-size: 0.7rem;\n }\n\n :root[data-readthedocs-tool="mdbook"] {\n --readthedocs-font-size: 1.3rem;\n --readthedocs-flyout-header-font-size: 1.5rem;\n --readthedocs-flyout-font-size: 1.3rem;\n }\n\n :root[data-readthedocs-tool="sphinx"][data-readthedocs-tool-theme="furo"] {\n --readthedocs-font-size: 0.725rem;\n --readthedocs-flyout-header-font-size: 0.845rem;\n --readthedocs-flyout-font-size: 0.725rem;\n }\n\n :root[data-readthedocs-tool="sphinx"][data-readthedocs-tool-theme="immaterial"] {\n --readthedocs-font-size: 0.58rem;\n --readthedocs-flyout-header-font-size: 0.7rem;\n --readthedocs-flyout-font-size: 0.58rem;\n }\n}\n'],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},4333:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,'/* Read the Docs promotional block, only applicable to RTD.org\n\nTo support sphinx_rtd_theme, a `wy-menu` element is added. Other themes are\ntargeted using the theme identifier and use custom elements instead of a CSS\nframework html structure.\n\n*/\n\ndiv.ethical-sidebar,\ndiv.ethical-footer {\n display: block !important;\n}\n.ethical-sidebar,\n.ethical-footer {\n padding: 0.5em;\n margin: 1em 0;\n}\n.ethical-sidebar img,\n.ethical-footer img {\n width: 120px;\n height: 90px;\n display: inline-block;\n}\n.ethical-sidebar .ethical-callout,\n.ethical-footer .ethical-callout {\n padding-top: 1em;\n clear: both;\n}\n.ethical-sidebar .ethical-pixel,\n.ethical-footer .ethical-pixel,\n.ethical-fixedfooter .ethical-pixel {\n display: none !important;\n}\n.ethical-sidebar .ethical-text,\n.ethical-footer .ethical-text {\n margin-top: 1em;\n}\n.ethical-sidebar .ethical-image-link,\n.ethical-footer .ethical-image-link {\n border: 0;\n}\n\n.ethical-sidebar .ea-cta,\n.ethical-footer .ea-cta {\n display: block;\n border: 1px solid #ccc;\n border-radius: 0.5em;\n margin-top: 0.5em;\n margin-left: 1em;\n margin-right: 1em;\n}\n\n.ethical-sidebar,\n.ethical-footer {\n background-color: #eee;\n border: 1px solid #ccc;\n border-radius: 5px;\n color: #0a0a0a;\n font-size: 14px;\n line-height: 20px;\n}\n\n/* Techstack badging */\n.ethical-sidebar ul {\n margin: 0 !important;\n padding-left: 0;\n list-style: none;\n}\n.ethical-sidebar ul li {\n display: inline-block;\n background-color: lightskyblue;\n color: black;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n margin: 0.25em;\n border-radius: 0.25rem;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n line-height: 1.41;\n}\n.ethical-sidebar ul li:not(:last-child) {\n margin-right: 0.25rem;\n}\n\n.ethical-sidebar a,\n.ethical-sidebar a:visited,\n.ethical-sidebar a:hover,\n.ethical-sidebar a:active,\n.ethical-footer a,\n.ethical-footer a:visited,\n.ethical-footer a:hover,\n.ethical-footer a:active {\n color: #0a0a0a;\n text-decoration: none !important;\n border-bottom: 0 !important;\n}\n\n.ethical-callout a {\n color: #707070 !important;\n text-decoration: none !important;\n}\n\n/* Sidebar promotions */\n.ethical-sidebar {\n text-align: center;\n max-width: 300px;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* Footer promotions */\n.ethical-footer {\n text-align: left;\n\n font-size: 14px;\n line-height: 20px;\n}\n.ethical-footer img {\n float: right;\n margin-left: 25px;\n}\n.ethical-footer .ethical-callout {\n text-align: center;\n}\n.ethical-footer small {\n font-size: 10px;\n}\n\n/* Fixed footer promotions */\n.ethical-fixedfooter {\n box-sizing: border-box;\n position: fixed;\n bottom: 0;\n left: 0;\n z-index: 100;\n background-color: #eee;\n border-top: 1px solid #bfbfbf;\n font-size: 12px;\n line-height: 1.5;\n padding: 0.5em 1.5em;\n text-align: center;\n color: #404040;\n width: 100%; /* Fallback for Opera Mini */\n width: 100vw;\n}\n@media (min-width: 769px) {\n /* Improve viewing on non-mobile */\n .ethical-fixedfooter {\n font-size: 13px;\n padding: 1em 1.5em;\n }\n}\n.ethical-fixedfooter .ethical-text:before {\n margin-right: 4px;\n padding: 2px 6px;\n border-radius: 3px;\n background-color: #4caf50;\n color: #fff;\n content: "Sponsored";\n}\n.ethical-fixedfooter .ethical-callout {\n color: #999;\n padding-left: 6px;\n white-space: nowrap;\n}\n.ethical-fixedfooter a,\n.ethical-fixedfooter a:hover,\n.ethical-fixedfooter a:active,\n.ethical-fixedfooter a:visited {\n color: #404040;\n text-decoration: none;\n}\n.ethical-fixedfooter .ethical-close {\n position: absolute;\n top: 0;\n right: 5px;\n font-size: 20px;\n line-height: 20px;\n}\n\n/* RTD Theme specific customizations */\n.wy-nav-side .ethical-rtd {\n /* RTD theme doesn\'t correctly set the sidebar width */\n max-width: 300px;\n padding: 0 1em;\n}\n.ethical-rtd .ethical-sidebar {\n /* RTD theme doesn\'t set sidebar text color */\n color: #b3b3b3;\n\n font-size: 14px;\n line-height: 20px;\n}\n\n@media (min-width: 769px) {\n /* Make sure the fixed footer ad is under the RTD theme version selector */\n .wy-body-for-nav .ethical-fixedfooter {\n padding-left: 300px;\n }\n}\n\n/* Alabaster specific customizations */\n.ethical-alabaster a.ethical-image-link {\n /* Alabaster adds a border even to image links on hover */\n border: 0 !important;\n}\n.ethical-alabaster hr {\n /* Alabaster needs some extra spacing before the footer ad */\n margin-top: 2em;\n}\n.ethical-alabaster::before {\n /* Alabaster\'s search box above the ad is floating */\n clear: both;\n content: "";\n display: table;\n margin-top: 3em;\n}\n\n/* Dark theme */\n.ethical-dark-theme .ethical-sidebar {\n background-color: #4e4b4b;\n border: 1px solid #a0a0a0;\n color: #c2c2c2 !important;\n}\n.ethical-dark-theme a,\n.ethical-dark-theme a:visited {\n color: #e6e6e6 !important;\n border-bottom: 0 !important;\n}\n.ethical-dark-theme .ethical-callout a {\n color: #b3b3b3 !important;\n}\n.ethical-dark-theme .ethical-sidebar .ea-cta,\n.ethical-dark-theme .ethical-footer .ea-cta {\n border-color: #a0a0a0;\n}\n\n/* Docusaurus */\n.ethical-docusaurus {\n margin-left: 10% !important;\n margin-right: 10% !important;\n}\n\n/* Docsify */\n.ethical-docsify {\n margin-left: 10% !important;\n margin-right: 10% !important;\n}\n',"",{version:3,sources:["webpack://./src/ethicalads.css"],names:[],mappings:"AAAA;;;;;;CAMC;;AAED;;EAEE,yBAAyB;AAC3B;AACA;;EAEE,cAAc;EACd,aAAa;AACf;AACA;;EAEE,YAAY;EACZ,YAAY;EACZ,qBAAqB;AACvB;AACA;;EAEE,gBAAgB;EAChB,WAAW;AACb;AACA;;;EAGE,wBAAwB;AAC1B;AACA;;EAEE,eAAe;AACjB;AACA;;EAEE,SAAS;AACX;;AAEA;;EAEE,cAAc;EACd,sBAAsB;EACtB,oBAAoB;EACpB,iBAAiB;EACjB,gBAAgB;EAChB,iBAAiB;AACnB;;AAEA;;EAEE,sBAAsB;EACtB,sBAAsB;EACtB,kBAAkB;EAClB,cAAc;EACd,eAAe;EACf,iBAAiB;AACnB;;AAEA,sBAAsB;AACtB;EACE,oBAAoB;EACpB,eAAe;EACf,gBAAgB;AAClB;AACA;EACE,qBAAqB;EACrB,8BAA8B;EAC9B,YAAY;EACZ,qBAAqB;EACrB,cAAc;EACd,gBAAgB;EAChB,cAAc;EACd,sBAAsB;EACtB,kBAAkB;EAClB,wBAAwB;EACxB,mBAAmB;EACnB,iBAAiB;AACnB;AACA;EACE,qBAAqB;AACvB;;AAEA;;;;;;;;EAQE,cAAc;EACd,gCAAgC;EAChC,2BAA2B;AAC7B;;AAEA;EACE,yBAAyB;EACzB,gCAAgC;AAClC;;AAEA,uBAAuB;AACvB;EACE,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;AACpB;;AAEA,sBAAsB;AACtB;EACE,gBAAgB;;EAEhB,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,YAAY;EACZ,iBAAiB;AACnB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,eAAe;AACjB;;AAEA,4BAA4B;AAC5B;EACE,sBAAsB;EACtB,eAAe;EACf,SAAS;EACT,OAAO;EACP,YAAY;EACZ,sBAAsB;EACtB,6BAA6B;EAC7B,eAAe;EACf,gBAAgB;EAChB,oBAAoB;EACpB,kBAAkB;EAClB,cAAc;EACd,WAAW,EAAE,4BAA4B;EACzC,YAAY;AACd;AACA;EACE,kCAAkC;EAClC;IACE,eAAe;IACf,kBAAkB;EACpB;AACF;AACA;EACE,iBAAiB;EACjB,gBAAgB;EAChB,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;EACX,oBAAoB;AACtB;AACA;EACE,WAAW;EACX,iBAAiB;EACjB,mBAAmB;AACrB;AACA;;;;EAIE,cAAc;EACd,qBAAqB;AACvB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,UAAU;EACV,eAAe;EACf,iBAAiB;AACnB;;AAEA,sCAAsC;AACtC;EACE,sDAAsD;EACtD,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,6CAA6C;EAC7C,cAAc;;EAEd,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE,0EAA0E;EAC1E;IACE,mBAAmB;EACrB;AACF;;AAEA,sCAAsC;AACtC;EACE,yDAAyD;EACzD,oBAAoB;AACtB;AACA;EACE,4DAA4D;EAC5D,eAAe;AACjB;AACA;EACE,oDAAoD;EACpD,WAAW;EACX,WAAW;EACX,cAAc;EACd,eAAe;AACjB;;AAEA,eAAe;AACf;EACE,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;AAC3B;AACA;;EAEE,yBAAyB;EACzB,2BAA2B;AAC7B;AACA;EACE,yBAAyB;AAC3B;AACA;;EAEE,qBAAqB;AACvB;;AAEA,eAAe;AACf;EACE,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA,YAAY;AACZ;EACE,2BAA2B;EAC3B,4BAA4B;AAC9B",sourcesContent:['/* Read the Docs promotional block, only applicable to RTD.org\n\nTo support sphinx_rtd_theme, a `wy-menu` element is added. Other themes are\ntargeted using the theme identifier and use custom elements instead of a CSS\nframework html structure.\n\n*/\n\ndiv.ethical-sidebar,\ndiv.ethical-footer {\n display: block !important;\n}\n.ethical-sidebar,\n.ethical-footer {\n padding: 0.5em;\n margin: 1em 0;\n}\n.ethical-sidebar img,\n.ethical-footer img {\n width: 120px;\n height: 90px;\n display: inline-block;\n}\n.ethical-sidebar .ethical-callout,\n.ethical-footer .ethical-callout {\n padding-top: 1em;\n clear: both;\n}\n.ethical-sidebar .ethical-pixel,\n.ethical-footer .ethical-pixel,\n.ethical-fixedfooter .ethical-pixel {\n display: none !important;\n}\n.ethical-sidebar .ethical-text,\n.ethical-footer .ethical-text {\n margin-top: 1em;\n}\n.ethical-sidebar .ethical-image-link,\n.ethical-footer .ethical-image-link {\n border: 0;\n}\n\n.ethical-sidebar .ea-cta,\n.ethical-footer .ea-cta {\n display: block;\n border: 1px solid #ccc;\n border-radius: 0.5em;\n margin-top: 0.5em;\n margin-left: 1em;\n margin-right: 1em;\n}\n\n.ethical-sidebar,\n.ethical-footer {\n background-color: #eee;\n border: 1px solid #ccc;\n border-radius: 5px;\n color: #0a0a0a;\n font-size: 14px;\n line-height: 20px;\n}\n\n/* Techstack badging */\n.ethical-sidebar ul {\n margin: 0 !important;\n padding-left: 0;\n list-style: none;\n}\n.ethical-sidebar ul li {\n display: inline-block;\n background-color: lightskyblue;\n color: black;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n margin: 0.25em;\n border-radius: 0.25rem;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n line-height: 1.41;\n}\n.ethical-sidebar ul li:not(:last-child) {\n margin-right: 0.25rem;\n}\n\n.ethical-sidebar a,\n.ethical-sidebar a:visited,\n.ethical-sidebar a:hover,\n.ethical-sidebar a:active,\n.ethical-footer a,\n.ethical-footer a:visited,\n.ethical-footer a:hover,\n.ethical-footer a:active {\n color: #0a0a0a;\n text-decoration: none !important;\n border-bottom: 0 !important;\n}\n\n.ethical-callout a {\n color: #707070 !important;\n text-decoration: none !important;\n}\n\n/* Sidebar promotions */\n.ethical-sidebar {\n text-align: center;\n max-width: 300px;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* Footer promotions */\n.ethical-footer {\n text-align: left;\n\n font-size: 14px;\n line-height: 20px;\n}\n.ethical-footer img {\n float: right;\n margin-left: 25px;\n}\n.ethical-footer .ethical-callout {\n text-align: center;\n}\n.ethical-footer small {\n font-size: 10px;\n}\n\n/* Fixed footer promotions */\n.ethical-fixedfooter {\n box-sizing: border-box;\n position: fixed;\n bottom: 0;\n left: 0;\n z-index: 100;\n background-color: #eee;\n border-top: 1px solid #bfbfbf;\n font-size: 12px;\n line-height: 1.5;\n padding: 0.5em 1.5em;\n text-align: center;\n color: #404040;\n width: 100%; /* Fallback for Opera Mini */\n width: 100vw;\n}\n@media (min-width: 769px) {\n /* Improve viewing on non-mobile */\n .ethical-fixedfooter {\n font-size: 13px;\n padding: 1em 1.5em;\n }\n}\n.ethical-fixedfooter .ethical-text:before {\n margin-right: 4px;\n padding: 2px 6px;\n border-radius: 3px;\n background-color: #4caf50;\n color: #fff;\n content: "Sponsored";\n}\n.ethical-fixedfooter .ethical-callout {\n color: #999;\n padding-left: 6px;\n white-space: nowrap;\n}\n.ethical-fixedfooter a,\n.ethical-fixedfooter a:hover,\n.ethical-fixedfooter a:active,\n.ethical-fixedfooter a:visited {\n color: #404040;\n text-decoration: none;\n}\n.ethical-fixedfooter .ethical-close {\n position: absolute;\n top: 0;\n right: 5px;\n font-size: 20px;\n line-height: 20px;\n}\n\n/* RTD Theme specific customizations */\n.wy-nav-side .ethical-rtd {\n /* RTD theme doesn\'t correctly set the sidebar width */\n max-width: 300px;\n padding: 0 1em;\n}\n.ethical-rtd .ethical-sidebar {\n /* RTD theme doesn\'t set sidebar text color */\n color: #b3b3b3;\n\n font-size: 14px;\n line-height: 20px;\n}\n\n@media (min-width: 769px) {\n /* Make sure the fixed footer ad is under the RTD theme version selector */\n .wy-body-for-nav .ethical-fixedfooter {\n padding-left: 300px;\n }\n}\n\n/* Alabaster specific customizations */\n.ethical-alabaster a.ethical-image-link {\n /* Alabaster adds a border even to image links on hover */\n border: 0 !important;\n}\n.ethical-alabaster hr {\n /* Alabaster needs some extra spacing before the footer ad */\n margin-top: 2em;\n}\n.ethical-alabaster::before {\n /* Alabaster\'s search box above the ad is floating */\n clear: both;\n content: "";\n display: table;\n margin-top: 3em;\n}\n\n/* Dark theme */\n.ethical-dark-theme .ethical-sidebar {\n background-color: #4e4b4b;\n border: 1px solid #a0a0a0;\n color: #c2c2c2 !important;\n}\n.ethical-dark-theme a,\n.ethical-dark-theme a:visited {\n color: #e6e6e6 !important;\n border-bottom: 0 !important;\n}\n.ethical-dark-theme .ethical-callout a {\n color: #b3b3b3 !important;\n}\n.ethical-dark-theme .ethical-sidebar .ea-cta,\n.ethical-dark-theme .ethical-footer .ea-cta {\n border-color: #a0a0a0;\n}\n\n/* Docusaurus */\n.ethical-docusaurus {\n margin-left: 10% !important;\n margin-right: 10% !important;\n}\n\n/* Docsify */\n.ethical-docsify {\n margin-left: 10% !important;\n margin-right: 10% !important;\n}\n'],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},9358:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,".file-dropdown {\n position: fixed;\n top: 0;\n right: 1rem;\n background-color: #f8f9fa;\n padding: 0.25rem 0.75rem;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 2000;\n border-radius: 0 0 6px 6px;\n font-size: 0.85rem;\n}\n\n.diff-controls {\n display: flex;\n gap: 0.75rem;\n align-items: center;\n}\n\n.diff-controls select {\n flex: 1;\n padding: 0.25rem 0.5rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n appearance: revert;\n}\n\n.diff-checkbox {\n display: flex;\n align-items: center;\n gap: 0.35rem;\n font-size: 0.85rem;\n color: #333;\n white-space: nowrap;\n cursor: pointer;\n}\n\n.diff-checkbox input {\n margin: 0;\n}\n","",{version:3,sources:["webpack://./src/filetreediff.css"],names:[],mappings:"AAAA;EACE,eAAe;EACf,MAAM;EACN,WAAW;EACX,yBAAyB;EACzB,wBAAwB;EACxB,wCAAwC;EACxC,aAAa;EACb,0BAA0B;EAC1B,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,YAAY;EACZ,mBAAmB;AACrB;;AAEA;EACE,OAAO;EACP,uBAAuB;EACvB,sBAAsB;EACtB,kBAAkB;EAClB,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,kBAAkB;EAClB,WAAW;EACX,mBAAmB;EACnB,eAAe;AACjB;;AAEA;EACE,SAAS;AACX",sourcesContent:[".file-dropdown {\n position: fixed;\n top: 0;\n right: 1rem;\n background-color: #f8f9fa;\n padding: 0.25rem 0.75rem;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n z-index: 2000;\n border-radius: 0 0 6px 6px;\n font-size: 0.85rem;\n}\n\n.diff-controls {\n display: flex;\n gap: 0.75rem;\n align-items: center;\n}\n\n.diff-controls select {\n flex: 1;\n padding: 0.25rem 0.5rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n appearance: revert;\n}\n\n.diff-checkbox {\n display: flex;\n align-items: center;\n gap: 0.35rem;\n font-size: 0.85rem;\n color: #333;\n white-space: nowrap;\n cursor: pointer;\n}\n\n.diff-checkbox input {\n margin: 0;\n}\n"],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},5348:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,'/* Flyout styles */\n\n:host {\n /* These variables are used more than once, use a local variable so we can set\n * a default in this addon */\n --addons-flyout-font-size: var(\n --readthedocs-flyout-font-size,\n var(--readthedocs-font-size, 0.8rem)\n );\n --addons-flyout-line-height: var(--readthedocs-flyout-line-height, 1.25em);\n}\n\n.container {\n position: fixed;\n max-width: var(--readthedocs-flyout-max-width, 25em);\n width: auto;\n height: auto;\n max-height: calc(100% - 100px);\n overflow-y: auto;\n line-height: var(--addons-flyout-line-height);\n}\n\n.container.bottom-right {\n right: 20px;\n bottom: 50px;\n}\n\n.container.bottom-left {\n left: 20px;\n bottom: 50px;\n}\n\n.container.top-left {\n left: 20px;\n top: 50px;\n}\n\n.container.top-right {\n right: 20px;\n top: 50px;\n}\n\n:host > div {\n font-family: var(\n --readthedocs-flyout-font-family,\n "Lato",\n "proxima-nova",\n "Helvetica Neue",\n "Arial",\n "sans-serif"\n );\n font-size: var(--addons-flyout-font-size);\n line-height: 1.2em;\n color: var(--readthedocs-flyout-color, rgb(128, 128, 128));\n background-color: var(--readthedocs-flyout-background-color, rgb(39, 39, 37));\n z-index: 3000;\n padding: 0 10px;\n overflow-y: auto;\n}\n\nheader {\n display: flex;\n flex-flow: row nowrap;\n gap: 1em;\n align-items: center;\n cursor: pointer;\n background-color: var(--readthedocs-flyout-background-color, rgb(39, 39, 37));\n position: sticky;\n top: 0px;\n font-size: var(--readthedocs-flyout-header-font-size, 1.25em);\n}\n\nheader > img.logo {\n /* Total height of 1.5 + 0.5 + 0.5 = 2.5em */\n max-height: 1.5em;\n width: auto;\n padding: 0.5em 0em;\n /* Don\'t grow past content size, do shrink down to min-content */\n flex: 0 1 auto;\n}\n\nheader > span {\n color: var(--readthedocs-flyout-current-version-color, #27ae60);\n /* Total height of 1 + 0.75 + 0.75 = 2.5em */\n padding: 0.75em 0em;\n line-height: 1em;\n /* Don\'t grow past content size or shrink below min-content */\n flex: 0 0 auto;\n /* Trim content to get ellipsis on wide content */\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\nheader > span.version {\n /* Grow to fill parent based on content width, shrink content when needed (for ellipsis) */\n flex: 0 1 auto;\n}\n\n/* Give the flex box extra spacing to the left of the first span item. This puts\n * automatic spacing between the logo and the text detail spans */\nheader > span:first-of-type {\n margin-left: auto;\n}\n\nheader > span svg.icon {\n color: rgb(128, 128, 128);\n height: 1em;\n padding-right: 0.25em;\n vertical-align: middle;\n}\n\nmain {\n padding: 5px;\n padding-bottom: 15px;\n margin-top: 5px;\n}\n\nmain.closed {\n display: none;\n}\n\ndl {\n margin: 0;\n padding: 0;\n}\n\ndl > dt {\n font-size: var(\n --readthedocs-flyout-dt-font-size,\n calc(var(--addons-flyout-font-size) * 1.125)\n );\n color: var(--readthedocs-flyout-section-heading-color, rgb(128, 128, 128));\n}\n\ndl > dd {\n display: inline-block;\n margin: 0;\n font-size: var(\n --readthedocs-flyout-dd-font-size,\n calc(var(--addons-flyout-font-size) * 1.125)\n );\n}\n\ndd a {\n text-decoration: none;\n color: var(--readthedocs-flyout-item-link-color, rgb(252, 252, 252));\n padding: 6px;\n display: inline-block;\n}\n\ndd form {\n padding: 6px;\n margin: 0;\n}\n\ndd input {\n padding: 6px;\n font-size: 80%;\n}\n\nhr {\n display: block;\n height: 1px;\n border: 0;\n margin: 20px 0;\n padding: 0;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: var(--readthedocs-flyout-divider-color, #413d3d);\n}\n\nsmall a {\n text-decoration: none;\n color: var(--readthedocs-flyout-link-color, rgb(42, 128, 185));\n}\n',"",{version:3,sources:["webpack://./src/flyout.css"],names:[],mappings:"AAAA,kBAAkB;;AAElB;EACE;8BAC4B;EAC5B;;;GAGC;EACD,0EAA0E;AAC5E;;AAEA;EACE,eAAe;EACf,oDAAoD;EACpD,WAAW;EACX,YAAY;EACZ,8BAA8B;EAC9B,gBAAgB;EAChB,6CAA6C;AAC/C;;AAEA;EACE,WAAW;EACX,YAAY;AACd;;AAEA;EACE,UAAU;EACV,YAAY;AACd;;AAEA;EACE,UAAU;EACV,SAAS;AACX;;AAEA;EACE,WAAW;EACX,SAAS;AACX;;AAEA;EACE;;;;;;;GAOC;EACD,yCAAyC;EACzC,kBAAkB;EAClB,0DAA0D;EAC1D,6EAA6E;EAC7E,aAAa;EACb,eAAe;EACf,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,qBAAqB;EACrB,QAAQ;EACR,mBAAmB;EACnB,eAAe;EACf,6EAA6E;EAC7E,gBAAgB;EAChB,QAAQ;EACR,6DAA6D;AAC/D;;AAEA;EACE,4CAA4C;EAC5C,iBAAiB;EACjB,WAAW;EACX,kBAAkB;EAClB,gEAAgE;EAChE,cAAc;AAChB;;AAEA;EACE,+DAA+D;EAC/D,4CAA4C;EAC5C,mBAAmB;EACnB,gBAAgB;EAChB,6DAA6D;EAC7D,cAAc;EACd,iDAAiD;EACjD,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE,0FAA0F;EAC1F,cAAc;AAChB;;AAEA;iEACiE;AACjE;EACE,iBAAiB;AACnB;;AAEA;EACE,yBAAyB;EACzB,WAAW;EACX,qBAAqB;EACrB,sBAAsB;AACxB;;AAEA;EACE,YAAY;EACZ,oBAAoB;EACpB,eAAe;AACjB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,SAAS;EACT,UAAU;AACZ;;AAEA;EACE;;;GAGC;EACD,0EAA0E;AAC5E;;AAEA;EACE,qBAAqB;EACrB,SAAS;EACT;;;GAGC;AACH;;AAEA;EACE,qBAAqB;EACrB,oEAAoE;EACpE,YAAY;EACZ,qBAAqB;AACvB;;AAEA;EACE,YAAY;EACZ,SAAS;AACX;;AAEA;EACE,YAAY;EACZ,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,WAAW;EACX,SAAS;EACT,cAAc;EACd,UAAU;EACV,qBAAqB;EACrB,uBAAuB;EACvB,kEAAkE;AACpE;;AAEA;EACE,qBAAqB;EACrB,8DAA8D;AAChE",sourcesContent:['/* Flyout styles */\n\n:host {\n /* These variables are used more than once, use a local variable so we can set\n * a default in this addon */\n --addons-flyout-font-size: var(\n --readthedocs-flyout-font-size,\n var(--readthedocs-font-size, 0.8rem)\n );\n --addons-flyout-line-height: var(--readthedocs-flyout-line-height, 1.25em);\n}\n\n.container {\n position: fixed;\n max-width: var(--readthedocs-flyout-max-width, 25em);\n width: auto;\n height: auto;\n max-height: calc(100% - 100px);\n overflow-y: auto;\n line-height: var(--addons-flyout-line-height);\n}\n\n.container.bottom-right {\n right: 20px;\n bottom: 50px;\n}\n\n.container.bottom-left {\n left: 20px;\n bottom: 50px;\n}\n\n.container.top-left {\n left: 20px;\n top: 50px;\n}\n\n.container.top-right {\n right: 20px;\n top: 50px;\n}\n\n:host > div {\n font-family: var(\n --readthedocs-flyout-font-family,\n "Lato",\n "proxima-nova",\n "Helvetica Neue",\n "Arial",\n "sans-serif"\n );\n font-size: var(--addons-flyout-font-size);\n line-height: 1.2em;\n color: var(--readthedocs-flyout-color, rgb(128, 128, 128));\n background-color: var(--readthedocs-flyout-background-color, rgb(39, 39, 37));\n z-index: 3000;\n padding: 0 10px;\n overflow-y: auto;\n}\n\nheader {\n display: flex;\n flex-flow: row nowrap;\n gap: 1em;\n align-items: center;\n cursor: pointer;\n background-color: var(--readthedocs-flyout-background-color, rgb(39, 39, 37));\n position: sticky;\n top: 0px;\n font-size: var(--readthedocs-flyout-header-font-size, 1.25em);\n}\n\nheader > img.logo {\n /* Total height of 1.5 + 0.5 + 0.5 = 2.5em */\n max-height: 1.5em;\n width: auto;\n padding: 0.5em 0em;\n /* Don\'t grow past content size, do shrink down to min-content */\n flex: 0 1 auto;\n}\n\nheader > span {\n color: var(--readthedocs-flyout-current-version-color, #27ae60);\n /* Total height of 1 + 0.75 + 0.75 = 2.5em */\n padding: 0.75em 0em;\n line-height: 1em;\n /* Don\'t grow past content size or shrink below min-content */\n flex: 0 0 auto;\n /* Trim content to get ellipsis on wide content */\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\nheader > span.version {\n /* Grow to fill parent based on content width, shrink content when needed (for ellipsis) */\n flex: 0 1 auto;\n}\n\n/* Give the flex box extra spacing to the left of the first span item. This puts\n * automatic spacing between the logo and the text detail spans */\nheader > span:first-of-type {\n margin-left: auto;\n}\n\nheader > span svg.icon {\n color: rgb(128, 128, 128);\n height: 1em;\n padding-right: 0.25em;\n vertical-align: middle;\n}\n\nmain {\n padding: 5px;\n padding-bottom: 15px;\n margin-top: 5px;\n}\n\nmain.closed {\n display: none;\n}\n\ndl {\n margin: 0;\n padding: 0;\n}\n\ndl > dt {\n font-size: var(\n --readthedocs-flyout-dt-font-size,\n calc(var(--addons-flyout-font-size) * 1.125)\n );\n color: var(--readthedocs-flyout-section-heading-color, rgb(128, 128, 128));\n}\n\ndl > dd {\n display: inline-block;\n margin: 0;\n font-size: var(\n --readthedocs-flyout-dd-font-size,\n calc(var(--addons-flyout-font-size) * 1.125)\n );\n}\n\ndd a {\n text-decoration: none;\n color: var(--readthedocs-flyout-item-link-color, rgb(252, 252, 252));\n padding: 6px;\n display: inline-block;\n}\n\ndd form {\n padding: 6px;\n margin: 0;\n}\n\ndd input {\n padding: 6px;\n font-size: 80%;\n}\n\nhr {\n display: block;\n height: 1px;\n border: 0;\n margin: 20px 0;\n padding: 0;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: var(--readthedocs-flyout-divider-color, #413d3d);\n}\n\nsmall a {\n text-decoration: none;\n color: var(--readthedocs-flyout-link-color, rgb(42, 128, 185));\n}\n'],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},6938:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,".tooltip {\n display: none;\n max-width: 650px;\n pointer-events: auto;\n z-index: 9999999;\n max-height: 80vh;\n min-height: 100px;\n position: absolute;\n margin-bottom: 20px;\n top: 0;\n border: none;\n border-radius: 5px;\n background: #fff;\n box-shadow: 0 0 10px 6px rgba(0, 0, 0, 0.1);\n}\n\n.tooltip .tooltip-content {\n box-sizing: border-box;\n max-height: 100%;\n max-width: 100%;\n overflow: auto;\n padding: 18px;\n color: #8d8d8d;\n font-size: 80%;\n line-height: 18px;\n}\n\n.tooltip .tooltip-content .headerlink {\n visibility: hidden;\n}\n\n.tooltip .tooltip-content p {\n font-size: 100%;\n}\n\n.tooltip .arrow {\n position: absolute;\n background: #fff;\n width: 8px;\n height: 8px;\n transform: rotate(45deg);\n}\n\n.link-preview {\n border-bottom: 1px dotted;\n}\n","",{version:3,sources:["webpack://./src/linkpreviews.css"],names:[],mappings:"AAAA;EACE,aAAa;EACb,gBAAgB;EAChB,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;EACnB,MAAM;EACN,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;EAChB,2CAA2C;AAC7C;;AAEA;EACE,sBAAsB;EACtB,gBAAgB;EAChB,eAAe;EACf,cAAc;EACd,aAAa;EACb,cAAc;EACd,cAAc;EACd,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,UAAU;EACV,WAAW;EACX,wBAAwB;AAC1B;;AAEA;EACE,yBAAyB;AAC3B",sourcesContent:[".tooltip {\n display: none;\n max-width: 650px;\n pointer-events: auto;\n z-index: 9999999;\n max-height: 80vh;\n min-height: 100px;\n position: absolute;\n margin-bottom: 20px;\n top: 0;\n border: none;\n border-radius: 5px;\n background: #fff;\n box-shadow: 0 0 10px 6px rgba(0, 0, 0, 0.1);\n}\n\n.tooltip .tooltip-content {\n box-sizing: border-box;\n max-height: 100%;\n max-width: 100%;\n overflow: auto;\n padding: 18px;\n color: #8d8d8d;\n font-size: 80%;\n line-height: 18px;\n}\n\n.tooltip .tooltip-content .headerlink {\n visibility: hidden;\n}\n\n.tooltip .tooltip-content p {\n font-size: 100%;\n}\n\n.tooltip .arrow {\n position: absolute;\n background: #fff;\n width: 8px;\n height: 8px;\n transform: rotate(45deg);\n}\n\n.link-preview {\n border-bottom: 1px dotted;\n}\n"],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},5032:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,':host {\n --addons-notification-font-size: var(\n --readthedocs-notification-font-size,\n var(--readthedocs-font-size, 1rem)\n );\n}\n\n:host > div {\n margin: 1rem 0rem;\n padding-top: var(--addons-notification-font-size);\n padding-bottom: var(--addons-notification-font-size);\n overflow: auto;\n border-radius: 0.5rem;\n font-family: var(\n --readthedocs-notification-font-family,\n "Lato",\n "proxima-nova",\n "Helvetica Neue",\n "Arial",\n "sans-serif"\n );\n font-size: var(--addons-notification-font-size);\n color: var(--readthedocs-notification-color, rgb(64, 64, 64));\n background-color: var(\n --readthedocs-notification-background-color,\n rgb(234, 234, 234)\n );\n}\n\n:host(.floating) > div {\n position: fixed;\n top: 2rem;\n left: 20%; /* (100 - width) / 2 */\n width: 60%;\n z-index: 1750;\n}\n\n:host(.toast) > div {\n position: fixed;\n padding-top: calc(var(--addons-notification-font-size) * 0.75);\n padding-bottom: calc(var(--addons-notification-font-size) * 0.75);\n margin: 0.75rem 0rem;\n top: 2rem;\n right: 2rem;\n z-index: 1750;\n font-size: var(\n --readthedocs-notification-toast-font-size,\n calc(var(--addons-notification-font-size) * 0.85)\n );\n width: 35rem;\n max-width: calc(100vw - 4rem);\n}\n\n@media (max-width: 640px) {\n :host(.toast) > div {\n right: 0.5rem;\n }\n\n :host(.floating) > div {\n width: 95%;\n left: 2%;\n }\n}\n\n:host(.raised) > div {\n box-shadow:\n 0 2px 4px 0 rgba(34, 36, 38, 0.12),\n 0 2px 10px 0 rgba(34, 36, 38, 0.15);\n}\n\n:host(.titled) > div {\n padding: 0rem;\n text-align: center;\n}\n\n:host > div > svg.header.icon {\n height: calc(var(--addons-notification-font-size) * 2);\n padding: 0.5rem 1.5rem;\n float: left;\n}\n\n:host(.toast) > div > svg.header.icon {\n height: calc(var(--addons-notification-font-size) * 1.5);\n}\n\n:host(.titled) > div > svg.header.icon {\n display: none;\n}\n\n:host(.inverted) > div {\n color: var(--readthedocs-notification-color, rgb(234, 234, 234));\n background-color: var(\n --readthedocs-notification-background-color,\n rgb(64, 64, 64)\n );\n}\n\n:host > div a {\n color: var(--readthedocs-notification-link-color, rgb(8, 140, 219));\n text-decoration: none;\n}\n\n:host(.inverted) > div a {\n color: var(--readthedocs-notification-link-color, rgb(134, 203, 243));\n}\n\n:host > div > .title {\n padding: 0.25rem var(--addons-notification-font-size);\n margin-bottom: 0.25rem;\n line-height: var(--addons-notification-font-size);\n font-weight: bold;\n}\n:host > div > div.content {\n line-height: var(--addons-notification-font-size);\n font-size: calc(var(--addons-notification-font-size) * 0.85);\n padding: 0 calc(var(--addons-notification-font-size) * 1.5);\n}\n\n:host(.toast) > div > .title {\n padding: 0rem var(--addons-notification-font-size);\n}\n\n:host(.titled) > div > .title {\n display: block;\n margin: 0rem;\n padding: 0.1rem var(--addons-notification-font-size);\n line-height: calc(var(--addons-notification-font-size) * 2);\n border-radius: 0.5rem 0.5rem 0 0;\n color: var(--readthedocs-notification-title-color, rgb(96, 96, 96));\n background-color: var(\n --readthedocs-notification-title-background-color,\n rgb(224, 224, 224)\n );\n vertical-align: middle;\n font-weight: bold;\n}\n:host(.titled) > div > div.content {\n margin-top: 1rem;\n margin-bottom: 1rem;\n padding: 0rem 0.65rem 0rem 0.65rem;\n}\n\n:host(.inverted) > div > .title {\n color: var(--readthedocs-notification-title-color, rgba(255, 255, 255, 0.9));\n}\n\n:host(.inverted.titled) > div > .title {\n background-color: var(\n --readthedocs-notification-title-background-color,\n rgb(48, 48, 48)\n );\n}\n\n:host > div > .title > .right {\n float: right;\n}\n\n:host > div > .title > .right > svg {\n display: inline-block;\n height: var(--addons-notification-font-size);\n vertical-align: middle;\n cursor: pointer;\n color: var(--readthedocs-notification-title-color, rgba(96, 96, 96));\n font-weight: normal;\n}\n\n:host(.inverted) > div > .title > .right > svg {\n color: var(--readthedocs-notification-title-color, rgba(255, 255, 255, 0.9));\n}\n:host(.titled) > div > .title > .right > svg {\n margin: 0.5rem 0rem;\n}\n',"",{version:3,sources:["webpack://./src/notification.css"],names:[],mappings:"AAAA;EACE;;;GAGC;AACH;;AAEA;EACE,iBAAiB;EACjB,iDAAiD;EACjD,oDAAoD;EACpD,cAAc;EACd,qBAAqB;EACrB;;;;;;;GAOC;EACD,+CAA+C;EAC/C,6DAA6D;EAC7D;;;GAGC;AACH;;AAEA;EACE,eAAe;EACf,SAAS;EACT,SAAS,EAAE,sBAAsB;EACjC,UAAU;EACV,aAAa;AACf;;AAEA;EACE,eAAe;EACf,8DAA8D;EAC9D,iEAAiE;EACjE,oBAAoB;EACpB,SAAS;EACT,WAAW;EACX,aAAa;EACb;;;GAGC;EACD,YAAY;EACZ,6BAA6B;AAC/B;;AAEA;EACE;IACE,aAAa;EACf;;EAEA;IACE,UAAU;IACV,QAAQ;EACV;AACF;;AAEA;EACE;;uCAEqC;AACvC;;AAEA;EACE,aAAa;EACb,kBAAkB;AACpB;;AAEA;EACE,sDAAsD;EACtD,sBAAsB;EACtB,WAAW;AACb;;AAEA;EACE,wDAAwD;AAC1D;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,gEAAgE;EAChE;;;GAGC;AACH;;AAEA;EACE,mEAAmE;EACnE,qBAAqB;AACvB;;AAEA;EACE,qEAAqE;AACvE;;AAEA;EACE,qDAAqD;EACrD,sBAAsB;EACtB,iDAAiD;EACjD,iBAAiB;AACnB;AACA;EACE,iDAAiD;EACjD,4DAA4D;EAC5D,2DAA2D;AAC7D;;AAEA;EACE,kDAAkD;AACpD;;AAEA;EACE,cAAc;EACd,YAAY;EACZ,oDAAoD;EACpD,2DAA2D;EAC3D,gCAAgC;EAChC,mEAAmE;EACnE;;;GAGC;EACD,sBAAsB;EACtB,iBAAiB;AACnB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,kCAAkC;AACpC;;AAEA;EACE,4EAA4E;AAC9E;;AAEA;EACE;;;GAGC;AACH;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,qBAAqB;EACrB,4CAA4C;EAC5C,sBAAsB;EACtB,eAAe;EACf,oEAAoE;EACpE,mBAAmB;AACrB;;AAEA;EACE,4EAA4E;AAC9E;AACA;EACE,mBAAmB;AACrB",sourcesContent:[':host {\n --addons-notification-font-size: var(\n --readthedocs-notification-font-size,\n var(--readthedocs-font-size, 1rem)\n );\n}\n\n:host > div {\n margin: 1rem 0rem;\n padding-top: var(--addons-notification-font-size);\n padding-bottom: var(--addons-notification-font-size);\n overflow: auto;\n border-radius: 0.5rem;\n font-family: var(\n --readthedocs-notification-font-family,\n "Lato",\n "proxima-nova",\n "Helvetica Neue",\n "Arial",\n "sans-serif"\n );\n font-size: var(--addons-notification-font-size);\n color: var(--readthedocs-notification-color, rgb(64, 64, 64));\n background-color: var(\n --readthedocs-notification-background-color,\n rgb(234, 234, 234)\n );\n}\n\n:host(.floating) > div {\n position: fixed;\n top: 2rem;\n left: 20%; /* (100 - width) / 2 */\n width: 60%;\n z-index: 1750;\n}\n\n:host(.toast) > div {\n position: fixed;\n padding-top: calc(var(--addons-notification-font-size) * 0.75);\n padding-bottom: calc(var(--addons-notification-font-size) * 0.75);\n margin: 0.75rem 0rem;\n top: 2rem;\n right: 2rem;\n z-index: 1750;\n font-size: var(\n --readthedocs-notification-toast-font-size,\n calc(var(--addons-notification-font-size) * 0.85)\n );\n width: 35rem;\n max-width: calc(100vw - 4rem);\n}\n\n@media (max-width: 640px) {\n :host(.toast) > div {\n right: 0.5rem;\n }\n\n :host(.floating) > div {\n width: 95%;\n left: 2%;\n }\n}\n\n:host(.raised) > div {\n box-shadow:\n 0 2px 4px 0 rgba(34, 36, 38, 0.12),\n 0 2px 10px 0 rgba(34, 36, 38, 0.15);\n}\n\n:host(.titled) > div {\n padding: 0rem;\n text-align: center;\n}\n\n:host > div > svg.header.icon {\n height: calc(var(--addons-notification-font-size) * 2);\n padding: 0.5rem 1.5rem;\n float: left;\n}\n\n:host(.toast) > div > svg.header.icon {\n height: calc(var(--addons-notification-font-size) * 1.5);\n}\n\n:host(.titled) > div > svg.header.icon {\n display: none;\n}\n\n:host(.inverted) > div {\n color: var(--readthedocs-notification-color, rgb(234, 234, 234));\n background-color: var(\n --readthedocs-notification-background-color,\n rgb(64, 64, 64)\n );\n}\n\n:host > div a {\n color: var(--readthedocs-notification-link-color, rgb(8, 140, 219));\n text-decoration: none;\n}\n\n:host(.inverted) > div a {\n color: var(--readthedocs-notification-link-color, rgb(134, 203, 243));\n}\n\n:host > div > .title {\n padding: 0.25rem var(--addons-notification-font-size);\n margin-bottom: 0.25rem;\n line-height: var(--addons-notification-font-size);\n font-weight: bold;\n}\n:host > div > div.content {\n line-height: var(--addons-notification-font-size);\n font-size: calc(var(--addons-notification-font-size) * 0.85);\n padding: 0 calc(var(--addons-notification-font-size) * 1.5);\n}\n\n:host(.toast) > div > .title {\n padding: 0rem var(--addons-notification-font-size);\n}\n\n:host(.titled) > div > .title {\n display: block;\n margin: 0rem;\n padding: 0.1rem var(--addons-notification-font-size);\n line-height: calc(var(--addons-notification-font-size) * 2);\n border-radius: 0.5rem 0.5rem 0 0;\n color: var(--readthedocs-notification-title-color, rgb(96, 96, 96));\n background-color: var(\n --readthedocs-notification-title-background-color,\n rgb(224, 224, 224)\n );\n vertical-align: middle;\n font-weight: bold;\n}\n:host(.titled) > div > div.content {\n margin-top: 1rem;\n margin-bottom: 1rem;\n padding: 0rem 0.65rem 0rem 0.65rem;\n}\n\n:host(.inverted) > div > .title {\n color: var(--readthedocs-notification-title-color, rgba(255, 255, 255, 0.9));\n}\n\n:host(.inverted.titled) > div > .title {\n background-color: var(\n --readthedocs-notification-title-background-color,\n rgb(48, 48, 48)\n );\n}\n\n:host > div > .title > .right {\n float: right;\n}\n\n:host > div > .title > .right > svg {\n display: inline-block;\n height: var(--addons-notification-font-size);\n vertical-align: middle;\n cursor: pointer;\n color: var(--readthedocs-notification-title-color, rgba(96, 96, 96));\n font-weight: normal;\n}\n\n:host(.inverted) > div > .title > .right > svg {\n color: var(--readthedocs-notification-title-color, rgba(255, 255, 255, 0.9));\n}\n:host(.titled) > div > .title > .right > svg {\n margin: 0.5rem 0rem;\n}\n'],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},6801:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,':host > div {\n font-family: var(\n --readthedocs-search-font-family,\n "Lato",\n "proxima-nova",\n "Helvetica Neue",\n "Arial",\n "sans-serif"\n );\n font-size: var(--readthedocs-search-font-size, 16px);\n\n /* TODO: make some of this variables */\n color: var(--readthedocs-search-color, rgb(64, 64, 64));\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 3000;\n line-height: 1rem;\n}\n\n:host > div a {\n color: var(--readthedocs-search-result-section-color, #2980b9);\n text-decoration: none;\n cursor: pointer;\n}\n\n:host > div code {\n background: var(--readthedocs-search-footer-code-background-color, #fff);\n padding: 2px 5px;\n border: solid 1px var(--readthedocs-search-footer-code-border-color, #e1e4e5);\n color: #333;\n white-space: pre-wrap;\n word-wrap: break-word;\n font-size: 0.875em;\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",\n "Courier New", monospace;\n border-radius: 0;\n}\n\n:host > div .background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1250;\n width: 100%;\n height: 100%;\n background-color: var(\n --readthedocs-search-backdrop-color,\n rgba(0, 0, 0, 0.3)\n );\n backdrop-filter: blur(3px);\n}\n\n:host > div > div.content {\n margin: 5em auto auto auto;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 100000;\n height: 80%;\n width: 60%;\n max-width: 43em;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n border: 1px solid var(--readthedocs-search-content-border-color, #e0e0e0);\n border-radius: 0.7rem;\n line-height: 1.75rem;\n background-color: var(--readthedocs-search-content-background-color, #fcfcfc);\n box-shadow:\n rgba(0, 0, 0, 0.05) 5px 5px 5px 5px,\n rgba(0, 0, 0, 0.05) -5px -5px 5px 5px;\n text-align: left;\n}\n\n:host > div form {\n background-color: var(--readthedocs-search-input-background-color, #eaeaea);\n margin: 0.5rem;\n border-radius: 0.25em;\n font-size: 1.05em;\n padding: 5px;\n display: flex;\n}\n\n:host > div form.focus {\n outline: 2px solid #6ea0ec;\n border-shadow: inset 0 0 1px white transparent;\n}\n\n:host > div form > label {\n font-size: 1.15em;\n padding-left: 5px;\n color: #333;\n}\n\n:host > div form label svg {\n height: 1em;\n position: relative;\n top: 5px;\n}\n\n:host > div form > input {\n border: 0;\n outline: none;\n background: inherit;\n width: max-content;\n font-size: 1.15em;\n box-shadow: none;\n width: 100%;\n padding: 6px;\n line-height: 1;\n}\n\n:host > div .results {\n margin-top: 10px;\n padding: 0.5em;\n overflow-y: scroll;\n height: 100%;\n hyphens: auto;\n}\n\ndiv.hit-block {\n padding-top: 3px;\n border-top: 1px solid rgb(224, 224, 224);\n display: flex;\n flex-direction: column;\n margin-bottom: 10px;\n}\n\ndiv.hit-block a.hit-block-heading {\n display: flex;\n align-items: center;\n}\n\ndiv.hit-block .hit-block-heading-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\ndiv.hit-block a.hit-block-heading i,\ndiv.hit-block .hit-block-heading-container .close-icon {\n font-size: 1.15em;\n width: 1em;\n padding-right: 10px;\n color: rgba(0, 0, 0, 0.54);\n padding-top: 5px;\n}\n\nbutton.close-icon {\n border: none;\n margin: 0;\n padding: 0;\n padding-right: 10px;\n margin-bottom: 15px;\n overflow: visible;\n\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n\n background: transparent;\n cursor: pointer;\n}\n\nbutton.close-icon svg {\n pointer-events: none;\n}\n\ndiv.hit-block a.hit-block-heading i svg,\ndiv.hit-block .hit-block-heading-container svg {\n width: 1em;\n}\n\n:host > div .results a.hit {\n width: 100%;\n display: inline-block;\n padding: 0.15em calc(1.15em + 10px);\n box-sizing: border-box;\n}\n\n:host > div .results a.hit:hover,\n:host > div .results .hit .active {\n background-color: rgb(245, 245, 245);\n}\n\n:host > div .results h2 {\n display: inline-block;\n font-weight: 700;\n margin-top: 3px;\n margin-bottom: 5px;\n font-size: 1em;\n color: black;\n line-height: inherit;\n}\n\n:host > div .results h2:hover {\n border-bottom-color: black;\n}\n\n:host > div .results a.hit > div {\n display: flex;\n flex-direction: column;\n}\n\n:host > div .results .hit .subheading {\n color: var(\n --readthedocs-search-result-section-subheading-color,\n rgba(0, 0, 0, 0.64)\n );\n font-weight: 700;\n font-size: 15px;\n margin-right: 10px;\n overflow-x: hidden;\n margin: inherit;\n line-height: inherit;\n}\n\n:host > div .results .hit .content {\n margin: 0;\n text-decoration: none;\n color: rgba(0, 0, 0, 0.54);\n font-size: 15px;\n display: block;\n margin-bottom: 5px;\n margin-bottom: 0;\n line-height: inherit;\n text-align: left;\n}\n\n:host > div .results span {\n font-style: normal;\n}\n\n:host > div .results .hit h2 span {\n background-color: #e5f6ff;\n padding-bottom: 3px;\n border-bottom-color: black;\n}\n\n:host > div .results .hit span {\n color: var(--readthedocs-search-result-section-highlight-color, #6ea0ec);\n font-style: italic;\n font-weight: bold;\n}\n\n:host div.content > div.footer {\n width: 100%;\n display: inline-block;\n height: 30px;\n background-color: var(\n --readthedocs-search-footer-background-color,\n rgb(234, 234, 234)\n );\n color: #404040;\n}\n\n:host > div .credits {\n float: right;\n margin: 0 15px;\n font-size: small;\n padding-top: 3px;\n}\n\n:host > div .credits a img {\n display: inline-block;\n width: 100px;\n vertical-align: middle;\n}\n\n/* TODO: find an example for domain role and style it properly */\n:host > div .readthedocs-search-result-hit--domain-role {\n font-size: 80%;\n letter-spacing: 1px;\n}\n\n:host > div .filters-title {\n display: block;\n font-size: 0.9rem;\n position: absolute;\n top: 0;\n left: 14px;\n background: rgb(252, 252, 252);\n margin: 0 5px;\n padding: 0 5px;\n}\n\n:host > div .filters {\n position: relative;\n padding-top: 0.9rem;\n margin: 0 0.5em;\n}\n\n:host > div .filters ul {\n display: block;\n margin: 0;\n padding: 5px 14px;\n border-radius: 0.3rem;\n border-style: solid;\n border-width: 1px;\n border-color: var(--readthedocs-search-filters-border-color, #e0e0e0);\n border-bottom: 1px solid #e0e0e0;\n}\n\n:host > div .filters li {\n display: inline-block;\n margin: 0 0 0 15px;\n}\n\n:host > div .filters li label {\n padding: 3px;\n}\n\n:host > div .filters label {\n font-size: 0.9rem;\n}\n\n:host > div .no-results {\n text-align: center;\n margin-top: 1.15em;\n padding: 15px;\n margin: 0 auto;\n width: 80%;\n}\n\n:host > div .no-results > p.title {\n margin-top: 0;\n margin-bottom: 0.5em;\n}\n\n:host > div .no-results > svg {\n height: 5.5rem;\n margin-bottom: 1.15em;\n}\n\n:host > div .no-results > div.footer p {\n font-size: small;\n}\n\n:host > div .no-results > .tips {\n padding: 0;\n text-align: left;\n font-size: 15px;\n margin-bottom: 1.15em;\n}\n\n:host > div .no-results > .tips ul {\n padding: 0 0 0 0.7em;\n margin: 0;\n}\n:host > div .no-results > .tips li {\n list-style-position: inside;\n list-style-type: "\\BB ";\n margin: 0;\n}\n\n:host > div .help {\n display: inline-block;\n font-size: small;\n margin: 0 15px;\n padding: 0;\n}\n\n:host > div .help li {\n list-style: none;\n display: inline-block;\n margin: 0 0.4em;\n}\n',"",{version:3,sources:["webpack://./src/search.css"],names:[],mappings:"AAAA;EACE;;;;;;;GAOC;EACD,oDAAoD;;EAEpD,sCAAsC;EACtC,uDAAuD;EACvD,eAAe;EACf,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,aAAa;EACb,iBAAiB;AACnB;;AAEA;EACE,8DAA8D;EAC9D,qBAAqB;EACrB,eAAe;AACjB;;AAEA;EACE,wEAAwE;EACxE,gBAAgB;EAChB,6EAA6E;EAC7E,WAAW;EACX,qBAAqB;EACrB,qBAAqB;EACrB,kBAAkB;EAClB;4BAC0B;EAC1B,gBAAgB;AAClB;;AAEA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,aAAa;EACb,WAAW;EACX,YAAY;EACZ;;;GAGC;EACD,0BAA0B;AAC5B;;AAEA;EACE,0BAA0B;EAC1B,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,QAAQ;EACR,SAAS;EACT,eAAe;EACf,WAAW;EACX,UAAU;EACV,eAAe;EACf,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,yEAAyE;EACzE,qBAAqB;EACrB,oBAAoB;EACpB,6EAA6E;EAC7E;;yCAEuC;EACvC,gBAAgB;AAClB;;AAEA;EACE,2EAA2E;EAC3E,cAAc;EACd,qBAAqB;EACrB,iBAAiB;EACjB,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,0BAA0B;EAC1B,8CAA8C;AAChD;;AAEA;EACE,iBAAiB;EACjB,iBAAiB;EACjB,WAAW;AACb;;AAEA;EACE,WAAW;EACX,kBAAkB;EAClB,QAAQ;AACV;;AAEA;EACE,SAAS;EACT,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,iBAAiB;EACjB,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,cAAc;EACd,kBAAkB;EAClB,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,gBAAgB;EAChB,wCAAwC;EACxC,aAAa;EACb,sBAAsB;EACtB,mBAAmB;AACrB;;AAEA;EACE,aAAa;EACb,mBAAmB;AACrB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;AAChC;;AAEA;;EAEE,iBAAiB;EACjB,UAAU;EACV,mBAAmB;EACnB,0BAA0B;EAC1B,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,SAAS;EACT,UAAU;EACV,mBAAmB;EACnB,mBAAmB;EACnB,iBAAiB;;EAEjB,qBAAqB;EACrB,UAAU;EACV,WAAW;EACX,sBAAsB;;EAEtB,uBAAuB;EACvB,eAAe;AACjB;;AAEA;EACE,oBAAoB;AACtB;;AAEA;;EAEE,UAAU;AACZ;;AAEA;EACE,WAAW;EACX,qBAAqB;EACrB,mCAAmC;EACnC,sBAAsB;AACxB;;AAEA;;EAEE,oCAAoC;AACtC;;AAEA;EACE,qBAAqB;EACrB,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,cAAc;EACd,YAAY;EACZ,oBAAoB;AACtB;;AAEA;EACE,0BAA0B;AAC5B;;AAEA;EACE,aAAa;EACb,sBAAsB;AACxB;;AAEA;EACE;;;GAGC;EACD,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,kBAAkB;EAClB,eAAe;EACf,oBAAoB;AACtB;;AAEA;EACE,SAAS;EACT,qBAAqB;EACrB,0BAA0B;EAC1B,eAAe;EACf,cAAc;EACd,kBAAkB;EAClB,gBAAgB;EAChB,oBAAoB;EACpB,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,yBAAyB;EACzB,mBAAmB;EACnB,0BAA0B;AAC5B;;AAEA;EACE,wEAAwE;EACxE,kBAAkB;EAClB,iBAAiB;AACnB;;AAEA;EACE,WAAW;EACX,qBAAqB;EACrB,YAAY;EACZ;;;GAGC;EACD,cAAc;AAChB;;AAEA;EACE,YAAY;EACZ,cAAc;EACd,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;EACrB,YAAY;EACZ,sBAAsB;AACxB;;AAEA,gEAAgE;AAChE;EACE,cAAc;EACd,mBAAmB;AACrB;;AAEA;EACE,cAAc;EACd,iBAAiB;EACjB,kBAAkB;EAClB,MAAM;EACN,UAAU;EACV,8BAA8B;EAC9B,aAAa;EACb,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,mBAAmB;EACnB,eAAe;AACjB;;AAEA;EACE,cAAc;EACd,SAAS;EACT,iBAAiB;EACjB,qBAAqB;EACrB,mBAAmB;EACnB,iBAAiB;EACjB,qEAAqE;EACrE,gCAAgC;AAClC;;AAEA;EACE,qBAAqB;EACrB,kBAAkB;AACpB;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;EAClB,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,UAAU;AACZ;;AAEA;EACE,aAAa;EACb,oBAAoB;AACtB;;AAEA;EACE,cAAc;EACd,qBAAqB;AACvB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,UAAU;EACV,gBAAgB;EAChB,eAAe;EACf,qBAAqB;AACvB;;AAEA;EACE,oBAAoB;EACpB,SAAS;AACX;AACA;EACE,2BAA2B;EAC3B,wBAAwB;EACxB,SAAS;AACX;;AAEA;EACE,qBAAqB;EACrB,gBAAgB;EAChB,cAAc;EACd,UAAU;AACZ;;AAEA;EACE,gBAAgB;EAChB,qBAAqB;EACrB,eAAe;AACjB",sourcesContent:[':host > div {\n font-family: var(\n --readthedocs-search-font-family,\n "Lato",\n "proxima-nova",\n "Helvetica Neue",\n "Arial",\n "sans-serif"\n );\n font-size: var(--readthedocs-search-font-size, 16px);\n\n /* TODO: make some of this variables */\n color: var(--readthedocs-search-color, rgb(64, 64, 64));\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 3000;\n line-height: 1rem;\n}\n\n:host > div a {\n color: var(--readthedocs-search-result-section-color, #2980b9);\n text-decoration: none;\n cursor: pointer;\n}\n\n:host > div code {\n background: var(--readthedocs-search-footer-code-background-color, #fff);\n padding: 2px 5px;\n border: solid 1px var(--readthedocs-search-footer-code-border-color, #e1e4e5);\n color: #333;\n white-space: pre-wrap;\n word-wrap: break-word;\n font-size: 0.875em;\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",\n "Courier New", monospace;\n border-radius: 0;\n}\n\n:host > div .background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1250;\n width: 100%;\n height: 100%;\n background-color: var(\n --readthedocs-search-backdrop-color,\n rgba(0, 0, 0, 0.3)\n );\n backdrop-filter: blur(3px);\n}\n\n:host > div > div.content {\n margin: 5em auto auto auto;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 100000;\n height: 80%;\n width: 60%;\n max-width: 43em;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n border: 1px solid var(--readthedocs-search-content-border-color, #e0e0e0);\n border-radius: 0.7rem;\n line-height: 1.75rem;\n background-color: var(--readthedocs-search-content-background-color, #fcfcfc);\n box-shadow:\n rgba(0, 0, 0, 0.05) 5px 5px 5px 5px,\n rgba(0, 0, 0, 0.05) -5px -5px 5px 5px;\n text-align: left;\n}\n\n:host > div form {\n background-color: var(--readthedocs-search-input-background-color, #eaeaea);\n margin: 0.5rem;\n border-radius: 0.25em;\n font-size: 1.05em;\n padding: 5px;\n display: flex;\n}\n\n:host > div form.focus {\n outline: 2px solid #6ea0ec;\n border-shadow: inset 0 0 1px white transparent;\n}\n\n:host > div form > label {\n font-size: 1.15em;\n padding-left: 5px;\n color: #333;\n}\n\n:host > div form label svg {\n height: 1em;\n position: relative;\n top: 5px;\n}\n\n:host > div form > input {\n border: 0;\n outline: none;\n background: inherit;\n width: max-content;\n font-size: 1.15em;\n box-shadow: none;\n width: 100%;\n padding: 6px;\n line-height: 1;\n}\n\n:host > div .results {\n margin-top: 10px;\n padding: 0.5em;\n overflow-y: scroll;\n height: 100%;\n hyphens: auto;\n}\n\ndiv.hit-block {\n padding-top: 3px;\n border-top: 1px solid rgb(224, 224, 224);\n display: flex;\n flex-direction: column;\n margin-bottom: 10px;\n}\n\ndiv.hit-block a.hit-block-heading {\n display: flex;\n align-items: center;\n}\n\ndiv.hit-block .hit-block-heading-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\ndiv.hit-block a.hit-block-heading i,\ndiv.hit-block .hit-block-heading-container .close-icon {\n font-size: 1.15em;\n width: 1em;\n padding-right: 10px;\n color: rgba(0, 0, 0, 0.54);\n padding-top: 5px;\n}\n\nbutton.close-icon {\n border: none;\n margin: 0;\n padding: 0;\n padding-right: 10px;\n margin-bottom: 15px;\n overflow: visible;\n\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n\n background: transparent;\n cursor: pointer;\n}\n\nbutton.close-icon svg {\n pointer-events: none;\n}\n\ndiv.hit-block a.hit-block-heading i svg,\ndiv.hit-block .hit-block-heading-container svg {\n width: 1em;\n}\n\n:host > div .results a.hit {\n width: 100%;\n display: inline-block;\n padding: 0.15em calc(1.15em + 10px);\n box-sizing: border-box;\n}\n\n:host > div .results a.hit:hover,\n:host > div .results .hit .active {\n background-color: rgb(245, 245, 245);\n}\n\n:host > div .results h2 {\n display: inline-block;\n font-weight: 700;\n margin-top: 3px;\n margin-bottom: 5px;\n font-size: 1em;\n color: black;\n line-height: inherit;\n}\n\n:host > div .results h2:hover {\n border-bottom-color: black;\n}\n\n:host > div .results a.hit > div {\n display: flex;\n flex-direction: column;\n}\n\n:host > div .results .hit .subheading {\n color: var(\n --readthedocs-search-result-section-subheading-color,\n rgba(0, 0, 0, 0.64)\n );\n font-weight: 700;\n font-size: 15px;\n margin-right: 10px;\n overflow-x: hidden;\n margin: inherit;\n line-height: inherit;\n}\n\n:host > div .results .hit .content {\n margin: 0;\n text-decoration: none;\n color: rgba(0, 0, 0, 0.54);\n font-size: 15px;\n display: block;\n margin-bottom: 5px;\n margin-bottom: 0;\n line-height: inherit;\n text-align: left;\n}\n\n:host > div .results span {\n font-style: normal;\n}\n\n:host > div .results .hit h2 span {\n background-color: #e5f6ff;\n padding-bottom: 3px;\n border-bottom-color: black;\n}\n\n:host > div .results .hit span {\n color: var(--readthedocs-search-result-section-highlight-color, #6ea0ec);\n font-style: italic;\n font-weight: bold;\n}\n\n:host div.content > div.footer {\n width: 100%;\n display: inline-block;\n height: 30px;\n background-color: var(\n --readthedocs-search-footer-background-color,\n rgb(234, 234, 234)\n );\n color: #404040;\n}\n\n:host > div .credits {\n float: right;\n margin: 0 15px;\n font-size: small;\n padding-top: 3px;\n}\n\n:host > div .credits a img {\n display: inline-block;\n width: 100px;\n vertical-align: middle;\n}\n\n/* TODO: find an example for domain role and style it properly */\n:host > div .readthedocs-search-result-hit--domain-role {\n font-size: 80%;\n letter-spacing: 1px;\n}\n\n:host > div .filters-title {\n display: block;\n font-size: 0.9rem;\n position: absolute;\n top: 0;\n left: 14px;\n background: rgb(252, 252, 252);\n margin: 0 5px;\n padding: 0 5px;\n}\n\n:host > div .filters {\n position: relative;\n padding-top: 0.9rem;\n margin: 0 0.5em;\n}\n\n:host > div .filters ul {\n display: block;\n margin: 0;\n padding: 5px 14px;\n border-radius: 0.3rem;\n border-style: solid;\n border-width: 1px;\n border-color: var(--readthedocs-search-filters-border-color, #e0e0e0);\n border-bottom: 1px solid #e0e0e0;\n}\n\n:host > div .filters li {\n display: inline-block;\n margin: 0 0 0 15px;\n}\n\n:host > div .filters li label {\n padding: 3px;\n}\n\n:host > div .filters label {\n font-size: 0.9rem;\n}\n\n:host > div .no-results {\n text-align: center;\n margin-top: 1.15em;\n padding: 15px;\n margin: 0 auto;\n width: 80%;\n}\n\n:host > div .no-results > p.title {\n margin-top: 0;\n margin-bottom: 0.5em;\n}\n\n:host > div .no-results > svg {\n height: 5.5rem;\n margin-bottom: 1.15em;\n}\n\n:host > div .no-results > div.footer p {\n font-size: small;\n}\n\n:host > div .no-results > .tips {\n padding: 0;\n text-align: left;\n font-size: 15px;\n margin-bottom: 1.15em;\n}\n\n:host > div .no-results > .tips ul {\n padding: 0 0 0 0.7em;\n margin: 0;\n}\n:host > div .no-results > .tips li {\n list-style-position: inside;\n list-style-type: "\\BB ";\n margin: 0;\n}\n\n:host > div .help {\n display: inline-block;\n font-size: small;\n margin: 0 15px;\n padding: 0;\n}\n\n:host > div .help li {\n list-style: none;\n display: inline-block;\n margin: 0 0.4em;\n}\n'],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},6314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(r)for(var s=0;s0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},1354:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),i="/*# ".concat(o," */");return[t].concat([i]).join("\n")}return[t].join("\n")}},2189:e=>{var t=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32},n=-1;t.Diff=function(e,t){return[e,t]},t.prototype.diff_main=function(e,n,r,o){void 0===o&&(o=this.Diff_Timeout<=0?Number.MAX_VALUE:(new Date).getTime()+1e3*this.Diff_Timeout);var i=o;if(null==e||null==n)throw new Error("Null input. (diff_main)");if(e==n)return e?[new t.Diff(0,e)]:[];void 0===r&&(r=!0);var a=r,s=this.diff_commonPrefix(e,n),c=e.substring(0,s);e=e.substring(s),n=n.substring(s),s=this.diff_commonSuffix(e,n);var l=e.substring(e.length-s);e=e.substring(0,e.length-s),n=n.substring(0,n.length-s);var u=this.diff_compute_(e,n,a,i);return c&&u.unshift(new t.Diff(0,c)),l&&u.push(new t.Diff(0,l)),this.diff_cleanupMerge(u),u},t.prototype.diff_compute_=function(e,r,o,i){var a;if(!e)return[new t.Diff(1,r)];if(!r)return[new t.Diff(n,e)];var s=e.length>r.length?e:r,c=e.length>r.length?r:e,l=s.indexOf(c);if(-1!=l)return a=[new t.Diff(1,s.substring(0,l)),new t.Diff(0,c),new t.Diff(1,s.substring(l+c.length))],e.length>r.length&&(a[0][0]=a[2][0]=n),a;if(1==c.length)return[new t.Diff(n,e),new t.Diff(1,r)];var u=this.diff_halfMatch_(e,r);if(u){var d=u[0],f=u[1],h=u[2],p=u[3],m=u[4],g=this.diff_main(d,h,o,i),y=this.diff_main(f,p,o,i);return g.concat([new t.Diff(0,m)],y)}return o&&e.length>100&&r.length>100?this.diff_lineMode_(e,r,i):this.diff_bisect_(e,r,i)},t.prototype.diff_lineMode_=function(e,r,o){var i=this.diff_linesToChars_(e,r);e=i.chars1,r=i.chars2;var a=i.lineArray,s=this.diff_main(e,r,!1,o);this.diff_charsToLines_(s,a),this.diff_cleanupSemantic(s),s.push(new t.Diff(0,""));for(var c=0,l=0,u=0,d="",f="";c=1&&u>=1){s.splice(c-l-u,l+u),c=c-l-u;for(var h=this.diff_main(d,f,!1,o),p=h.length-1;p>=0;p--)s.splice(c,0,h[p]);c+=h.length}u=0,l=0,d="",f=""}c++}return s.pop(),s},t.prototype.diff_bisect_=function(e,r,o){for(var i=e.length,a=r.length,s=Math.ceil((i+a)/2),c=s,l=2*s,u=new Array(l),d=new Array(l),f=0;fo);v++){for(var b=-v+m;b<=v-g;b+=2){for(var w=c+b,M=(x=b==-v||b!=v&&u[w-1]i)g+=2;else if(M>a)m+=2;else if(p){if((L=c+h-b)>=0&&L=(C=i-d[L]))return this.diff_bisectSplit_(e,r,x,M,o)}}for(var E=-v+y;E<=v-A;E+=2){for(var C,L=c+E,j=(C=E==-v||E!=v&&d[L-1]i)A+=2;else if(j>a)y+=2;else if(!p){if((w=c+h-E)>=0&&w=(C=i-C))return this.diff_bisectSplit_(e,r,x,M,o)}}}}return[new t.Diff(n,e),new t.Diff(1,r)]},t.prototype.diff_bisectSplit_=function(e,t,n,r,o){var i=e.substring(0,n),a=t.substring(0,r),s=e.substring(n),c=t.substring(r),l=this.diff_main(i,a,!1,o),u=this.diff_main(s,c,!1,o);return l.concat(u)},t.prototype.diff_linesToChars_=function(e,t){var n=[],r={};function o(e){for(var t="",o=0,a=-1,s=n.length;ar?e=e.substring(n-r):nt.length?e:t,r=e.length>t.length?t:e;if(n.length<4||2*r.length=e.length?[r,i,a,s,u]:null}var a,s,c,l,u,d=i(n,r,Math.ceil(n.length/4)),f=i(n,r,Math.ceil(n.length/2));return d||f?(a=f?d&&d[4].length>f[4].length?d:f:d,e.length>t.length?(s=a[0],c=a[1],l=a[2],u=a[3]):(l=a[0],u=a[1],s=a[2],c=a[3]),[s,c,l,u,a[4]]):null},t.prototype.diff_cleanupSemantic=function(e){for(var r=!1,o=[],i=0,a=null,s=0,c=0,l=0,u=0,d=0;s0?o[i-1]:-1,c=0,l=0,u=0,d=0,a=null,r=!0)),s++;for(r&&this.diff_cleanupMerge(e),this.diff_cleanupSemanticLossless(e),s=1;s=m?(p>=f.length/2||p>=h.length/2)&&(e.splice(s,0,new t.Diff(0,h.substring(0,p))),e[s-1][1]=f.substring(0,f.length-p),e[s+1][1]=h.substring(p),s++):(m>=f.length/2||m>=h.length/2)&&(e.splice(s,0,new t.Diff(0,f.substring(0,m))),e[s-1][0]=1,e[s-1][1]=h.substring(0,h.length-m),e[s+1][0]=n,e[s+1][1]=f.substring(m),s++),s++}s++}},t.prototype.diff_cleanupSemanticLossless=function(e){function n(e,n){if(!e||!n)return 6;var r=e.charAt(e.length-1),o=n.charAt(0),i=r.match(t.nonAlphaNumericRegex_),a=o.match(t.nonAlphaNumericRegex_),s=i&&r.match(t.whitespaceRegex_),c=a&&o.match(t.whitespaceRegex_),l=s&&r.match(t.linebreakRegex_),u=c&&o.match(t.linebreakRegex_),d=l&&e.match(t.blanklineEndRegex_),f=u&&n.match(t.blanklineStartRegex_);return d||f?5:l||u?4:i&&!s&&c?3:s||c?2:i||a?1:0}for(var r=1;r=f&&(f=h,l=o,u=i,d=a)}e[r-1][1]!=l&&(l?e[r-1][1]=l:(e.splice(r-1,1),r--),e[r][1]=u,d?e[r+1][1]=d:(e.splice(r+1,1),r--))}r++}},t.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,t.whitespaceRegex_=/\s/,t.linebreakRegex_=/[\r\n]/,t.blanklineEndRegex_=/\n\r?\n$/,t.blanklineStartRegex_=/^\r?\n\r?\n/,t.prototype.diff_cleanupEfficiency=function(e){for(var r=!1,o=[],i=0,a=null,s=0,c=!1,l=!1,u=!1,d=!1;s0?o[i-1]:-1,u=d=!1),r=!0)),s++;r&&this.diff_cleanupMerge(e)},t.prototype.diff_cleanupMerge=function(e){e.push(new t.Diff(0,""));for(var r,o=0,i=0,a=0,s="",c="";o1?(0!==i&&0!==a&&(0!==(r=this.diff_commonPrefix(c,s))&&(o-i-a>0&&0==e[o-i-a-1][0]?e[o-i-a-1][1]+=c.substring(0,r):(e.splice(0,0,new t.Diff(0,c.substring(0,r))),o++),c=c.substring(r),s=s.substring(r)),0!==(r=this.diff_commonSuffix(c,s))&&(e[o][1]=c.substring(c.length-r)+e[o][1],c=c.substring(0,c.length-r),s=s.substring(0,s.length-r))),o-=i+a,e.splice(o,i+a),s.length&&(e.splice(o,0,new t.Diff(n,s)),o++),c.length&&(e.splice(o,0,new t.Diff(1,c)),o++),o++):0!==o&&0==e[o-1][0]?(e[o-1][1]+=e[o][1],e.splice(o,1)):o++,a=0,i=0,s="",c=""}""===e[e.length-1][1]&&e.pop();var l=!1;for(o=1;ot));r++)a=o,s=i;return e.length!=r&&e[r][0]===n?s:s+(t-a)},t.prototype.diff_prettyHtml=function(e){for(var t=[],r=/&/g,o=//g,a=/\n/g,s=0;s");switch(c){case 1:t[s]=''+l+"";break;case n:t[s]=''+l+"";break;case 0:t[s]=""+l+""}}return t.join("")},t.prototype.diff_text1=function(e){for(var t=[],n=0;nthis.Match_MaxBits)throw new Error("Pattern too long for this browser.");var r=this.match_alphabet_(t),o=this;function i(e,r){var i=e/t.length,a=Math.abs(n-r);return o.Match_Distance?i+a/o.Match_Distance:a?1:i}var a=this.Match_Threshold,s=e.indexOf(t,n);-1!=s&&(a=Math.min(i(0,s),a),-1!=(s=e.lastIndexOf(t,n+t.length))&&(a=Math.min(i(0,s),a)));var c,l,u=1<=p;y--){var A=r[e.charAt(y-1)];if(g[y]=0===h?(g[y+1]<<1|1)&A:(g[y+1]<<1|1)&A|(d[y+1]|d[y])<<1|1|d[y+1],g[y]&u){var v=i(h,y-1);if(v<=a){if(a=v,!((s=y-1)>n))break;p=Math.max(1,2*n-s)}}}if(i(h+1,n)>a)break;d=g}return s},t.prototype.match_alphabet_=function(e){for(var t={},n=0;n2&&(this.diff_cleanupSemantic(a),this.diff_cleanupEfficiency(a));else if(e&&"object"==typeof e&&void 0===r&&void 0===o)a=e,i=this.diff_text1(a);else if("string"==typeof e&&r&&"object"==typeof r&&void 0===o)i=e,a=r;else{if("string"!=typeof e||"string"!=typeof r||!o||"object"!=typeof o)throw new Error("Unknown call format to patch_make.");i=e,a=o}if(0===a.length)return[];for(var s=[],c=new t.patch_obj,l=0,u=0,d=0,f=i,h=i,p=0;p=2*this.Patch_Margin&&l&&(this.patch_addContext_(c,f),s.push(c),c=new t.patch_obj,l=0,f=h,u=d)}1!==m&&(u+=g.length),m!==n&&(d+=g.length)}return l&&(this.patch_addContext_(c,f),s.push(c)),s},t.prototype.patch_deepCopy=function(e){for(var n=[],r=0;rthis.Match_MaxBits?-1!=(s=this.match_main(t,u.substring(0,this.Match_MaxBits),l))&&(-1==(d=this.match_main(t,u.substring(u.length-this.Match_MaxBits),l+u.length-this.Match_MaxBits))||s>=d)&&(s=-1):s=this.match_main(t,u,l),-1==s)i[a]=!1,o-=e[a].length2-e[a].length1;else if(i[a]=!0,o=s-l,u==(c=-1==d?t.substring(s,s+u.length):t.substring(s,d+this.Match_MaxBits)))t=t.substring(0,s)+this.diff_text2(e[a].diffs)+t.substring(s+u.length);else{var f=this.diff_main(u,c,!1);if(u.length>this.Match_MaxBits&&this.diff_levenshtein(f)/u.length>this.Patch_DeleteThreshold)i[a]=!1;else{this.diff_cleanupSemanticLossless(f);for(var h,p=0,m=0;ma[0][1].length){var s=n-a[0][1].length;a[0][1]=r.substring(a[0][1].length)+a[0][1],i.start1-=s,i.start2-=s,i.length1+=s,i.length2+=s}if(0==(a=(i=e[e.length-1]).diffs).length||0!=a[a.length-1][0])a.push(new t.Diff(0,r)),i.length1+=n,i.length2+=n;else if(n>a[a.length-1][1].length){s=n-a[a.length-1][1].length;a[a.length-1][1]+=r.substring(0,s),i.length1+=s,i.length2+=s}return r},t.prototype.patch_splitMax=function(e){for(var r=this.Match_MaxBits,o=0;o2*r?(l.length1+=f.length,a+=f.length,u=!1,l.diffs.push(new t.Diff(d,f)),i.diffs.shift()):(f=f.substring(0,r-l.length1-this.Patch_Margin),l.length1+=f.length,a+=f.length,0===d?(l.length2+=f.length,s+=f.length):u=!1,l.diffs.push(new t.Diff(d,f)),f==i.diffs[0][1]?i.diffs.shift():i.diffs[0][1]=i.diffs[0][1].substring(f.length))}c=(c=this.diff_text2(l.diffs)).substring(c.length-this.Patch_Margin);var h=this.diff_text1(i.diffs).substring(0,this.Patch_Margin);""!==h&&(l.length1+=h.length,l.length2+=h.length,0!==l.diffs.length&&0===l.diffs[l.diffs.length-1][0]?l.diffs[l.diffs.length-1][1]+=h:l.diffs.push(new t.Diff(0,h))),u||e.splice(++o,0,l)}}},t.prototype.patch_toText=function(e){for(var t=[],n=0;n{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,o,i;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(o=r;0!=o--;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(i=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(n,i[o]))return!1;for(o=r;0!=o--;){var a=i[o];if(!e(t[a],n[a]))return!1}return!0}return t!=t&&n!=n}},7106:e=>{"use strict";var t=e.exports=function(e,t,r){"function"==typeof t&&(r=t,t={}),n(t,"function"==typeof(r=t.cb||r)?r:r.pre||function(){},r.post||function(){},e,"",e)};function n(e,r,o,i,a,s,c,l,u,d){if(i&&"object"==typeof i&&!Array.isArray(i)){for(var f in r(i,a,s,c,l,u,d),i){var h=i[f];if(Array.isArray(h)){if(f in t.arrayKeywords)for(var p=0;p{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8274),o=new Set;o.add("IMG"),o.add("VIDEO"),o.add("IFRAME"),o.add("OBJECT"),o.add("SVG");var i=new Set;i.add("BDO"),i.add("BDI"),i.add("Q"),i.add("CITE"),i.add("CODE"),i.add("DATA"),i.add("TIME"),i.add("VAR"),i.add("DFN"),i.add("ABBR"),i.add("STRONG"),i.add("EM"),i.add("BIG"),i.add("SMALL"),i.add("MARK"),i.add("SUB"),i.add("SUP"),i.add("SAMP"),i.add("KBD"),i.add("B"),i.add("I"),i.add("S"),i.add("U"),i.add("SPAN"),t.optionsToConfig=function(e){var t=void 0===e?{}:e,n=t.addedClass,a=void 0===n?"vdd-added":n,s=t.modifiedClass,c=void 0===s?"vdd-modified":s,l=t.removedClass,u=void 0===l?"vdd-removed":l,d=t.skipModified,f=void 0!==d&&d,h=t.skipChildren,p=t.skipSelf,m=t.diffText;return{addedClass:a,diffText:void 0===m?r.diffText:m,modifiedClass:c,removedClass:u,skipModified:f,skipChildren:function(e){if(!r.isElement(e)&&!r.isDocumentFragment(e)&&!r.isDocument(e))return!0;if(h){var t=h(e);if("boolean"==typeof t)return t}return o.has(e.nodeName)},skipSelf:function(e){if(!r.isText(e)&&!r.isElement(e))return!0;if(p){var t=p(e);if("boolean"==typeof t)return t}return i.has(e.nodeName)}}}},3741:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2189),o=n(9804),i=n(7154),a=n(8274),s=function(e){return"TH"===e?"TD":e},c=function(e,t){return new i.DomIterator(e,t).reduce((function(e,t){return e+(a.isText(t)?t.data:a.charForNodeName(s(t.nodeName)))}),"")},l=function(e){return a.isText(e)?e.length:1},u=function(e){return"TR"===e.nodeName},d={skipChildren:u,skipSelf:function(e){return!u(e)}};t.visualDomDiff=function e(t,n,u){var f,h;void 0===u&&(u={});var p,m,g,y,A,v=n.ownerDocument||n,b=o.optionsToConfig(u),w=b.addedClass,M=b.diffText,E=b.modifiedClass,C=b.removedClass,L=b.skipSelf,j=b.skipChildren,x=function(e){return!L(e)},N=function(e,t){return a.getAncestors(e,t).filter(x).length},S=function(e){return a.isElement(e)&&L(e)},T=function(e,t){return a.getAncestors(e,t).filter(S).reverse()},k=function(e){return V.has(e)?1:G.has(e)?-1:0},_=M(c(t,b),c(n,b)),D=0,I=new i.DomIterator(t,b),O=new i.DomIterator(n,b),z=0,B=0,$=0;g=_[D++],f=I.next(),p=f.done,y=f.value,h=O.next(),m=h.done,A=h.value;var P=v.createDocumentFragment(),R=P,U=0,Y=P,Q=0,q=null,F=null,G=new Set,V=new Set,W=new Set,H=new Map,Z=new Array,K=new Map;function X(){for(var e=N(y,t);U>e;){if(!R.parentNode)return a.never();R===q&&(q=null),R=R.parentNode,U--}if(U!==e)return a.never()}function J(){for(var e=N(A,n);Q>e;){if(!Y.parentNode)return a.never();Y===F&&(F=null),Y=Y.parentNode,Q--}if(Q!==e)return a.never()}function ee(e){if(R!==Y||F||q)return a.never();if(a.isText(e)){var r=T(y,t),o=T(A,n);H.set(e,o);var i=r.length;if(i!==o.length)W.add(e);else for(var s=0;st)return a.never()}function oe(e){var t,n=l(y);if((B+=e)===n)t=I.next(),p=t.done,y=t.value,B=0;else if(B>n)return a.never()}function ie(e){var t,n=l(A);if(($+=e)===n)t=O.next(),m=t.done,A=t.value,$=0;else if($>n)return a.never()}for(;g;)if(g[0]===r.DIFF_DELETE){if(p)return a.never();X();var ae=Math.min(g[1].length-z,l(y)-B),se=g[1].substring(z,z+ae);te(a.isText(y)?v.createTextNode(se):y.cloneNode(!1)),re(ae),oe(ae)}else if(g[0]===r.DIFF_INSERT){if(m)return a.never();J();var ce=Math.min(g[1].length-z,l(A)-$);se=g[1].substring(z,z+ce);ne(a.isText(A)?v.createTextNode(se):A.cloneNode(!1)),re(ce),ie(ce)}else{if(p||m)return a.never();X(),J();var le=Math.min(g[1].length-z,l(y)-B,l(A)-$);se=g[1].substring(z,z+le);R===Y&&(a.isText(y)&&a.isText(A)||s(y.nodeName)===s(A.nodeName)&&!j(y)&&!j(A)||a.areNodesEqual(y,A))?ee(a.isText(A)?v.createTextNode(se):A.cloneNode(!1)):(te(a.isText(y)?v.createTextNode(se):y.cloneNode(!1)),ne(a.isText(A)?v.createTextNode(se):A.cloneNode(!1))),re(le),oe(le),ie(le)}return G.forEach((function(e){for(var t=e.parentNode,n=e.previousSibling;n&&V.has(n);)t.insertBefore(e,n),n=e.previousSibling})),Z.forEach((function(t){var n=t.newTable,r=t.oldTable,o=t.outputTable;if(!a.isTableValid(r,!0)||!a.isTableValid(n,!0)||!a.isTableValid(o,!1)){new i.DomIterator(o).forEach((function(e){V.delete(e),G.delete(e),W.delete(e),H.delete(e)}));var s=o.parentNode,c=r.cloneNode(!0),l=n.cloneNode(!0);return s.insertBefore(c,o),s.insertBefore(l,o),s.removeChild(o),G.add(c),void V.add(l)}var f=[];new i.DomIterator(o,d).some((function(e){var t=K.get(e);if(!t)return!1;var n=t.oldRow,r=t.newRow,o=n.childNodes.length,i=r.childNodes.length,a=Math.max(o,i),s=Math.min(o,i);if(e.childNodes.length===a)for(var c=e.childNodes,l=0,u=c.length;l{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){this.rootNode=e,this.config=t,this.descend=!0,this.nextNode=this.rootNode,this.skipSelf(this.nextNode)&&this.next()}return e.prototype.toArray=function(){for(var e,t=[],n=this.next(),r=n.done,o=n.value;!r;)t.push(o),r=(e=this.next()).done,o=e.value;return t},e.prototype.forEach=function(e){for(var t,n=this.next(),r=n.done,o=n.value;!r;)e(o),r=(t=this.next()).done,o=t.value},e.prototype.reduce=function(e,t){for(var n,r=t,o=this.next(),i=o.done,a=o.value;!i;)r=e(r,a),i=(n=this.next()).done,a=n.value;return r},e.prototype.some=function(e){for(var t,n=this.next(),r=n.done,o=n.value;!r;){if(e(o))return!0;r=(t=this.next()).done,o=t.value}return!1},e.prototype.next=function(){if(!this.nextNode)return{done:!0,value:this.rootNode};var e=this.nextNode;return this.descend&&this.nextNode.firstChild&&!this.skipChildren(this.nextNode)?this.nextNode=this.nextNode.firstChild:this.nextNode===this.rootNode?this.nextNode=null:this.nextNode.nextSibling?(this.nextNode=this.nextNode.nextSibling,this.descend=!0):(this.nextNode=this.nextNode.parentNode,this.descend=!1,this.next()),this.nextNode&&this.skipSelf(this.nextNode)&&this.next(),{done:!1,value:e}},e.prototype.skipSelf=function(e){return!(!this.config||!this.config.skipSelf)&&this.config.skipSelf(e)},e.prototype.skipChildren=function(e){return!(!this.config||!this.config.skipChildren)&&this.config.skipChildren(e)},e}();t.DomIterator=n},8968:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(1635).__exportStar(n(3741),t)},8274:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2189);function o(e){return e.nodeType===e.ELEMENT_NODE}function i(e){return e.nodeType===e.TEXT_NODE}function a(e){return e.nodeType===e.COMMENT_NODE}function s(e,t){return e===t}function c(e,t,n){if(void 0===n&&(n=s),e.length!==t.length)return!1;for(var r=0,o=e.length;r="豈"?t++:(n[1]=a.substring(0,a.length-1),o[1]=l+s.substring(0,s.length-1),i[1]=l+c,0===n[1].length&&e.splice(t,1))}else t++}}t.isElement=o,t.isText=i,t.isDocument=function(e){return e.nodeType===e.DOCUMENT_NODE},t.isDocumentFragment=function(e){return e.nodeType===e.DOCUMENT_FRAGMENT_NODE},t.isComment=a,t.strictEqual=s,t.areArraysEqual=c,t.areNodesEqual=function e(t,n,r){if(void 0===r&&(r=!1),t===n)return!0;if(t.nodeType!==n.nodeType||t.nodeName!==n.nodeName)return!1;if(i(t)||a(t)){if(t.data!==n.data)return!1}else if(o(t)){var s=l(t).sort();if(!c(s,l(n).sort()))return!1;for(var u=0,d=s.length;u0&&i.push([r.DIFF_EQUAL,l.substring(0,p)]),f.diff_cleanupSemantic(i),h(o,i),i.length=0,o.push([r.DIFF_EQUAL,l.substring(p,u-m)]),m>0&&i.push([r.DIFF_EQUAL,l.substring(u-m)])}else i.push(c)}else i.push(c)}return f.diff_cleanupSemantic(i),h(o,i),i.length=0,f.diff_cleanupMerge(o),d(o),o},t.markUpNode=function(e,t,n){var r=e.ownerDocument,i=e.parentNode,a=e.previousSibling;if(o(e))e.classList.add(n);else if(a&&a.nodeName===t&&a.classList.contains(n))a.appendChild(e);else{var s=r.createElement(t);s.classList.add(n),i.insertBefore(s,e),s.appendChild(e)}},t.isTableValid=function(e,t){var n;return function(e){var t=e.childNodes,n=t.length,o=0;o{"use strict";const{normalizeIPv6:r,normalizeIPv4:o,removeDotSegments:i,recomposeAuthority:a,normalizeComponentEncoding:s}=n(4834),c=n(343);function l(e,t,n,r){const o={};return r||(e=h(u(e,n),n),t=h(u(t,n),n)),!(n=n||{}).tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=i(t.path||""),o.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=i(t.path||""),o.query=t.query):(t.path?("/"===t.path.charAt(0)?o.path=i(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:o.path=t.path:o.path="/"+t.path,o.path=i(o.path)),o.query=t.query):(o.path=e.path,void 0!==t.query?o.query=t.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=t.fragment,o}function u(e,t){const n={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},r=Object.assign({},t),o=[],s=c[(r.scheme||n.scheme||"").toLowerCase()];s&&s.serialize&&s.serialize(n,r),void 0!==n.path&&(r.skipEscape?n.path=unescape(n.path):(n.path=escape(n.path),void 0!==n.scheme&&(n.path=n.path.split("%3A").join(":")))),"suffix"!==r.reference&&n.scheme&&(o.push(n.scheme),o.push(":"));const l=a(n,r);if(void 0!==l&&("suffix"!==r.reference&&o.push("//"),o.push(l),n.path&&"/"!==n.path.charAt(0)&&o.push("/")),void 0!==n.path){let e=n.path;r.absolutePath||s&&s.absolutePath||(e=i(e)),void 0===l&&(e=e.replace(/^\/\//u,"/%2F")),o.push(e)}return void 0!==n.query&&(o.push("?"),o.push(n.query)),void 0!==n.fragment&&(o.push("#"),o.push(n.fragment)),o.join("")}const d=Array.from({length:127},((e,t)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(t))));const f=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function h(e,t){const n=Object.assign({},t),i={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},a=-1!==e.indexOf("%");let s=!1;"suffix"===n.reference&&(e=(n.scheme?n.scheme+":":"")+"//"+e);const l=e.match(f);if(l){if(i.scheme=l[1],i.userinfo=l[3],i.host=l[4],i.port=parseInt(l[5],10),i.path=l[6]||"",i.query=l[7],i.fragment=l[8],isNaN(i.port)&&(i.port=l[5]),i.host){const e=o(i.host);if(!1===e.isIPV4){const t=r(e.host,{isIPV4:!1});i.host=t.host.toLowerCase(),s=t.isIPV6}else i.host=e.host,s=!0}void 0!==i.scheme||void 0!==i.userinfo||void 0!==i.host||void 0!==i.port||i.path||void 0!==i.query?void 0===i.scheme?i.reference="relative":void 0===i.fragment?i.reference="absolute":i.reference="uri":i.reference="same-document",n.reference&&"suffix"!==n.reference&&n.reference!==i.reference&&(i.error=i.error||"URI is not a "+n.reference+" reference.");const e=c[(n.scheme||i.scheme||"").toLowerCase()];if(!(n.unicodeSupport||e&&e.unicodeSupport)&&i.host&&(n.domainHost||e&&e.domainHost)&&!1===s&&function(e){let t=0;for(let n=0,r=e.length;n126||d[t])return!0;return!1}(i.host))try{i.host=URL.domainToASCII(i.host.toLowerCase())}catch(e){i.error=i.error||"Host's domain name can not be converted to ASCII: "+e}(!e||e&&!e.skipNormalize)&&(a&&void 0!==i.scheme&&(i.scheme=unescape(i.scheme)),a&&void 0!==i.userinfo&&(i.userinfo=unescape(i.userinfo)),a&&void 0!==i.host&&(i.host=unescape(i.host)),void 0!==i.path&&i.path.length&&(i.path=escape(unescape(i.path))),void 0!==i.fragment&&i.fragment.length&&(i.fragment=encodeURI(decodeURIComponent(i.fragment)))),e&&e.parse&&e.parse(i,n)}else i.error=i.error||"URI can not be parsed.";return i}const p={SCHEMES:c,normalize:function(e,t){return"string"==typeof e?e=u(h(e,t),t):"object"==typeof e&&(e=h(u(e,t),t)),e},resolve:function(e,t,n){const r=Object.assign({scheme:"null"},n);return u(l(h(e,r),h(t,r),r,!0),{...r,skipEscape:!0})},resolveComponents:l,equal:function(e,t,n){return"string"==typeof e?(e=unescape(e),e=u(s(h(e,n),!0),{...n,skipEscape:!0})):"object"==typeof e&&(e=u(s(e,!0),{...n,skipEscape:!0})),"string"==typeof t?(t=unescape(t),t=u(s(h(t,n),!0),{...n,skipEscape:!0})):"object"==typeof t&&(t=u(s(t,!0),{...n,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()},serialize:u,parse:h};e.exports=p,e.exports.default=p,e.exports.fastUri=p},343:e=>{"use strict";const t=/^[\da-f]{8}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{12}$/iu,n=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function r(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}function o(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function i(e){const t="https"===String(e.scheme).toLowerCase();return e.port!==(t?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}const a={scheme:"http",domainHost:!0,parse:o,serialize:i},s={scheme:"ws",domainHost:!0,parse:function(e){return e.secure=r(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e},serialize:function(e){if(e.port!==(r(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"==typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){const[t,n]=e.resourceName.split("?");e.path=t&&"/"!==t?t:void 0,e.query=n,e.resourceName=void 0}return e.fragment=void 0,e}},c={http:a,https:{scheme:"https",domainHost:a.domainHost,parse:o,serialize:i},ws:s,wss:{scheme:"wss",domainHost:s.domainHost,parse:s.parse,serialize:s.serialize},urn:{scheme:"urn",parse:function(e,t){if(!e.path)return e.error="URN can not be parsed",e;const r=e.path.match(n);if(r){const n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];const o=`${n}:${t.nid||e.nid}`,i=c[o];e.path=void 0,i&&(e=i.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e},serialize:function(e,t){const n=t.scheme||e.scheme||"urn",r=e.nid.toLowerCase(),o=`${n}:${t.nid||r}`,i=c[o];i&&(e=i.serialize(e,t));const a=e,s=e.nss;return a.path=`${r||t.nid}:${s}`,t.skipEscape=!0,a},skipNormalize:!0},"urn:uuid":{scheme:"urn:uuid",parse:function(e,n){const r=e;return r.uuid=r.nss,r.nss=void 0,n.tolerant||r.uuid&&t.test(r.uuid)||(r.error=r.error||"UUID is not valid."),r},serialize:function(e){const t=e;return t.nss=(e.uuid||"").toLowerCase(),t},skipNormalize:!0}};e.exports=c},4914:e=>{"use strict";e.exports={HEX:{0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15}}},4834:(e,t,n)=>{"use strict";const{HEX:r}=n(4914);function o(e){if(c(e,".")<3)return{host:e,isIPV4:!1};const t=e.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u)||[],[n]=t;return n?{host:s(n,"."),isIPV4:!0}:{host:e,isIPV4:!1}}function i(e,t=!1){let n="",o=!0;for(const t of e){if(void 0===r[t])return;"0"!==t&&!0===o&&(o=!1),o||(n+=t)}return t&&0===n.length&&(n="0"),n}function a(e,t={}){if(c(e,":")<2)return{host:e,isIPV6:!1};const n=function(e){let t=0;const n={error:!1,address:"",zone:""},r=[],o=[];let a=!1,s=!1,c=!1;function l(){if(o.length){if(!1===a){const e=i(o);if(void 0===e)return n.error=!0,!1;r.push(e)}o.length=0}return!0}for(let i=0;i7){n.error=!0;break}i-1>=0&&":"===e[i-1]&&(s=!0)}}return o.length&&(a?n.zone=o.join(""):c?r.push(o.join("")):r.push(i(o))),n.address=r.join(""),n}(e);if(n.error)return{host:e,isIPV6:!1};{let e=n.address,t=n.address;return n.zone&&(e+="%"+n.zone,t+="%25"+n.zone),{host:e,escapedHost:t,isIPV6:!0}}}function s(e,t){let n="",r=!0;const o=e.length;for(let i=0;i{"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>O,__assign:()=>i,__asyncDelegator:()=>L,__asyncGenerator:()=>C,__asyncValues:()=>j,__await:()=>E,__awaiter:()=>p,__classPrivateFieldGet:()=>_,__classPrivateFieldIn:()=>I,__classPrivateFieldSet:()=>D,__createBinding:()=>g,__decorate:()=>s,__disposeResources:()=>B,__esDecorate:()=>l,__exportStar:()=>y,__extends:()=>o,__generator:()=>m,__importDefault:()=>k,__importStar:()=>T,__makeTemplateObject:()=>x,__metadata:()=>h,__param:()=>c,__propKey:()=>d,__read:()=>v,__rest:()=>a,__rewriteRelativeImportExtension:()=>$,__runInitializers:()=>u,__setFunctionName:()=>f,__spread:()=>b,__spreadArray:()=>M,__spreadArrays:()=>w,__values:()=>A,default:()=>P});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function c(e,t){return function(n,r){t(n,r,e)}}function l(e,t,n,r,o,i){function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,c=r.kind,l="getter"===c?"get":"setter"===c?"set":"value",u=!t&&e?r.static?e:e.prototype:null,d=t||(u?Object.getOwnPropertyDescriptor(u,r.name):{}),f=!1,h=n.length-1;h>=0;h--){var p={};for(var m in r)p[m]="access"===m?{}:r[m];for(var m in r.access)p.access[m]=r.access[m];p.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");i.push(a(e||null))};var g=(0,n[h])("accessor"===c?{get:d.get,set:d.set}:d[l],p);if("accessor"===c){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw new TypeError("Object expected");(s=a(g.get))&&(d.get=s),(s=a(g.set))&&(d.set=s),(s=a(g.init))&&o.unshift(s)}else(s=a(g))&&("field"===c?o.unshift(s):d[l]=s)}u&&Object.defineProperty(u,r.name,d),f=!0}function u(e,t,n){for(var r=arguments.length>2,o=0;o0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function b(){for(var e=[],t=0;t1||s(e,t)}))},t&&(r[e]=t(r[e])))}function s(e,t){try{(n=o[e](t)).value instanceof E?Promise.resolve(n.value.v).then(c,l):u(i[0][2],n)}catch(e){u(i[0][3],e)}var n}function c(e){s("next",e)}function l(e){s("throw",e)}function u(e,t){e(t),i.shift(),i.length&&s(i[0][0],i[0][1])}}function L(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:E(e[r](t)),done:!1}:o?o(t):t}:o}}function j(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=A(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}function x(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var N=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},S=function(e){return S=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},S(e)};function T(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=S(e),r=0;r{"use strict";e.exports=JSON.parse('{"$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON AnySchema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},2079:e=>{"use strict";e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={id:r,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{"use strict"; + deps: ${n}}`};const a={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,n]=function({schema:e}){const t={},n={};for(const r in e){if("__proto__"===r)continue;(Array.isArray(e[r])?t:n)[r]=e[r]}return[t,n]}(e);s(e,t),c(e,n)}};function s(e,t=e.schema){const{gen:n,data:o,it:a}=e;if(0===Object.keys(t).length)return;const s=n.let("missing");for(const c in t){const l=t[c];if(0===l.length)continue;const u=(0,i.propertyInData)(n,o,c,a.opts.ownProperties);e.setParams({property:c,depsCount:l.length,deps:l.join(", ")}),a.allErrors?n.if(u,(()=>{for(const t of l)(0,i.checkReportMissingProp)(e,t)})):(n.if(r._`${u} && (${(0,i.checkMissingProp)(e,l,s)})`),(0,i.reportMissingProp)(e,s),n.else())}}function c(e,t=e.schema){const{gen:n,data:r,keyword:a,it:s}=e,c=n.name("valid");for(const l in t)(0,o.alwaysValidSchema)(s,t[l])||(n.if((0,i.propertyInData)(n,r,l,s.opts.ownProperties),(()=>{const t=e.subschema({keyword:a,schemaProp:l},c);e.mergeValidEvaluated(t,c)}),(()=>n.var(c,!0))),e.ok(c))}t.validatePropertyDeps=s,t.validateSchemaDeps=c,t.default=a},1239:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:{message:({params:e})=>r.str`must match "${e.ifClause}" schema`,params:({params:e})=>r._`{failingKeyword: ${e.ifClause}}`},code(e){const{gen:t,parentSchema:n,it:i}=e;void 0===n.then&&void 0===n.else&&(0,o.checkStrictMode)(i,'"if" without "then" and "else" is ignored');const s=a(i,"then"),c=a(i,"else");if(!s&&!c)return;const l=t.let("valid",!0),u=t.name("_valid");if(function(){const t=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},u);e.mergeEvaluated(t)}(),e.reset(),s&&c){const n=t.let("ifClause");e.setParams({ifClause:n}),t.if(u,d("then",n),d("else",n))}else s?t.if(u,d("then")):t.if((0,r.not)(u),d("else"));function d(n,o){return()=>{const i=e.subschema({keyword:n},u);t.assign(l,u),e.mergeValidEvaluated(i,l),o?t.assign(o,r._`${n}`):e.setParams({ifClause:n})}}e.pass(l,(()=>e.error(!0)))}};function a(e,t){const n=e.schema[t];return void 0!==n&&!(0,o.alwaysValidSchema)(e,n)}t.default=i},6378:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5457),o=n(5354),i=n(494),a=n(3966),s=n(2661),c=n(3025),l=n(9713),u=n(8660),d=n(117),f=n(5333),h=n(7923),p=n(6505),m=n(6163),g=n(5844),y=n(1239),A=n(4426);t.default=function(e=!1){const t=[h.default,p.default,m.default,g.default,y.default,A.default,l.default,u.default,c.default,d.default,f.default];return e?t.push(o.default,a.default):t.push(r.default,i.default),t.push(s.default),t}},494:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateTuple=void 0;const r=n(9029),o=n(4227),i=n(5765),a={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{schema:t,it:n}=e;if(Array.isArray(t))return s(e,"additionalItems",t);n.items=!0,(0,o.alwaysValidSchema)(n,t)||e.ok((0,i.validateArray)(e))}};function s(e,t,n=e.schema){const{gen:i,parentSchema:a,data:s,keyword:c,it:l}=e;!function(e){const{opts:r,errSchemaPath:i}=l,a=n.length,s=a===e.minItems&&(a===e.maxItems||!1===e[t]);if(r.strictTuples&&!s){const e=`"${c}" is ${a}-tuple, but minItems or maxItems/${t} are not specified or different at path "${i}"`;(0,o.checkStrictMode)(l,e,r.strictTuples)}}(a),l.opts.unevaluated&&n.length&&!0!==l.items&&(l.items=o.mergeEvaluated.items(i,n.length,l.items));const u=i.name("valid"),d=i.const("len",r._`${s}.length`);n.forEach(((t,n)=>{(0,o.alwaysValidSchema)(l,t)||(i.if(r._`${d} > ${n}`,(()=>e.subschema({keyword:c,schemaProp:n,dataProp:n},u))),e.ok(u))}))}t.validateTuple=s,t.default=a},3966:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i=n(5765),a=n(5457),s={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:{message:({params:{len:e}})=>r.str`must NOT have more than ${e} items`,params:({params:{len:e}})=>r._`{limit: ${e}}`},code(e){const{schema:t,parentSchema:n,it:r}=e,{prefixItems:s}=n;r.items=!0,(0,o.alwaysValidSchema)(r,t)||(s?(0,a.validateAdditionalItems)(e,s):e.ok((0,i.validateArray)(e)))}};t.default=s},7923:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4227),o={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){const{gen:t,schema:n,it:o}=e;if((0,r.alwaysValidSchema)(o,n))return void e.fail();const i=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},i),e.failResult(i,(()=>e.reset()),(()=>e.error()))},error:{message:"must NOT be valid"}};t.default=o},6163:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:{message:"must match exactly one schema in oneOf",params:({params:e})=>r._`{passingSchemas: ${e.passing}}`},code(e){const{gen:t,schema:n,parentSchema:i,it:a}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(a.opts.discriminator&&i.discriminator)return;const s=n,c=t.let("valid",!1),l=t.let("passing",null),u=t.name("_valid");e.setParams({passing:l}),t.block((function(){s.forEach(((n,i)=>{let s;(0,o.alwaysValidSchema)(a,n)?t.var(u,!0):s=e.subschema({keyword:"oneOf",schemaProp:i,compositeRule:!0},u),i>0&&t.if(r._`${u} && ${c}`).assign(c,!1).assign(l,r._`[${l}, ${i}]`).else(),t.if(u,(()=>{t.assign(c,!0),t.assign(l,i),s&&e.mergeEvaluated(s,r.Name)}))}))})),e.result(c,(()=>e.reset()),(()=>e.error(!0)))}};t.default=i},5333:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5765),o=n(9029),i=n(4227),a=n(4227),s={keyword:"patternProperties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,data:s,parentSchema:c,it:l}=e,{opts:u}=l,d=(0,r.allSchemaProperties)(n),f=d.filter((e=>(0,i.alwaysValidSchema)(l,n[e])));if(0===d.length||f.length===d.length&&(!l.opts.unevaluated||!0===l.props))return;const h=u.strictSchema&&!u.allowMatchingProperties&&c.properties,p=t.name("valid");!0===l.props||l.props instanceof o.Name||(l.props=(0,a.evaluatedPropsToName)(t,l.props));const{props:m}=l;function g(e){for(const t in h)new RegExp(e).test(t)&&(0,i.checkStrictMode)(l,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}function y(n){t.forIn("key",s,(i=>{t.if(o._`${(0,r.usePattern)(e,n)}.test(${i})`,(()=>{const r=f.includes(n);r||e.subschema({keyword:"patternProperties",schemaProp:n,dataProp:i,dataPropType:a.Type.Str},p),l.opts.unevaluated&&!0!==m?t.assign(o._`${m}[${i}]`,!0):r||l.allErrors||t.if((0,o.not)(p),(()=>t.break()))}))}))}!function(){for(const e of d)h&&g(e),l.allErrors?y(e):(t.var(p,!0),y(e),t.if(p))}()}};t.default=s},5354:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(494),o={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,r.validateTuple)(e,"items")};t.default=o},117:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(2586),o=n(5765),i=n(4227),a=n(8660),s={keyword:"properties",type:"object",schemaType:"object",code(e){const{gen:t,schema:n,parentSchema:s,data:c,it:l}=e;"all"===l.opts.removeAdditional&&void 0===s.additionalProperties&&a.default.code(new r.KeywordCxt(l,a.default,"additionalProperties"));const u=(0,o.allSchemaProperties)(n);for(const e of u)l.definedProperties.add(e);l.opts.unevaluated&&u.length&&!0!==l.props&&(l.props=i.mergeEvaluated.props(t,(0,i.toHash)(u),l.props));const d=u.filter((e=>!(0,i.alwaysValidSchema)(l,n[e])));if(0===d.length)return;const f=t.name("valid");for(const n of d)h(n)?p(n):(t.if((0,o.propertyInData)(t,c,n,l.opts.ownProperties)),p(n),l.allErrors||t.else().var(f,!0),t.endIf()),e.it.definedProperties.add(n),e.ok(f);function h(e){return l.opts.useDefaults&&!l.compositeRule&&void 0!==n[e].default}function p(t){e.subschema({keyword:"properties",schemaProp:t,dataProp:t},f)}}};t.default=s},9713:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:{message:"property name must be valid",params:({params:e})=>r._`{propertyName: ${e.propertyName}}`},code(e){const{gen:t,schema:n,data:i,it:a}=e;if((0,o.alwaysValidSchema)(a,n))return;const s=t.name("valid");t.forIn("key",i,(n=>{e.setParams({propertyName:n}),e.subschema({keyword:"propertyNames",data:n,dataTypes:["string"],propertyName:n,compositeRule:!0},s),t.if((0,r.not)(s),(()=>{e.error(!0),a.allErrors||t.break()}))})),e.ok(s)}};t.default=i},4426:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(4227),o={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){void 0===t.if&&(0,r.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};t.default=o},5765:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;const r=n(9029),o=n(4227),i=n(2023),a=n(4227);function s(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:r._`Object.prototype.hasOwnProperty`})}function c(e,t,n){return r._`${s(e)}.call(${t}, ${n})`}function l(e,t,n,o){const i=r._`${t}${(0,r.getProperty)(n)} === undefined`;return o?(0,r.or)(i,(0,r.not)(c(e,t,n))):i}function u(e){return e?Object.keys(e).filter((e=>"__proto__"!==e)):[]}t.checkReportMissingProp=function(e,t){const{gen:n,data:o,it:i}=e;n.if(l(n,o,t,i.opts.ownProperties),(()=>{e.setParams({missingProperty:r._`${t}`},!0),e.error()}))},t.checkMissingProp=function({gen:e,data:t,it:{opts:n}},o,i){return(0,r.or)(...o.map((o=>(0,r.and)(l(e,t,o,n.ownProperties),r._`${i} = ${o}`))))},t.reportMissingProp=function(e,t){e.setParams({missingProperty:t},!0),e.error()},t.hasPropFunc=s,t.isOwnProperty=c,t.propertyInData=function(e,t,n,o){const i=r._`${t}${(0,r.getProperty)(n)} !== undefined`;return o?r._`${i} && ${c(e,t,n)}`:i},t.noPropertyInData=l,t.allSchemaProperties=u,t.schemaProperties=function(e,t){return u(t).filter((n=>!(0,o.alwaysValidSchema)(e,t[n])))},t.callValidateCode=function({schemaCode:e,data:t,it:{gen:n,topSchemaRef:o,schemaPath:a,errorPath:s},it:c},l,u,d){const f=d?r._`${e}, ${t}, ${o}${a}`:t,h=[[i.default.instancePath,(0,r.strConcat)(i.default.instancePath,s)],[i.default.parentData,c.parentData],[i.default.parentDataProperty,c.parentDataProperty],[i.default.rootData,i.default.rootData]];c.opts.dynamicRef&&h.push([i.default.dynamicAnchors,i.default.dynamicAnchors]);const p=r._`${f}, ${n.object(...h)}`;return u!==r.nil?r._`${l}.call(${u}, ${p})`:r._`${l}(${p})`};const d=r._`new RegExp`;t.usePattern=function({gen:e,it:{opts:t}},n){const o=t.unicodeRegExp?"u":"",{regExp:i}=t.code,s=i(n,o);return e.scopeValue("pattern",{key:s.toString(),ref:s,code:r._`${"new RegExp"===i.code?d:(0,a.useFunc)(e,i)}(${n}, ${o})`})},t.validateArray=function(e){const{gen:t,data:n,keyword:i,it:a}=e,s=t.name("valid");if(a.allErrors){const e=t.let("valid",!0);return c((()=>t.assign(e,!1))),e}return t.var(s,!0),c((()=>t.break())),s;function c(a){const c=t.const("len",r._`${n}.length`);t.forRange("i",0,c,(n=>{e.subschema({keyword:i,dataProp:n,dataPropType:o.Type.Num},s),t.if((0,r.not)(s),a)}))}},t.validateUnion=function(e){const{gen:t,schema:n,keyword:i,it:a}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some((e=>(0,o.alwaysValidSchema)(a,e)))&&!a.opts.unevaluated)return;const s=t.let("valid",!1),c=t.name("_valid");t.block((()=>n.forEach(((n,o)=>{const a=e.subschema({keyword:i,schemaProp:o,compositeRule:!0},c);t.assign(s,r._`${s} || ${c}`);e.mergeValidEvaluated(a,c)||t.if((0,r.not)(s))})))),e.result(s,(()=>e.reset()),(()=>e.error(!0)))}},3463:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t.default=n},2128:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(3463),o=n(3693),i=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",r.default,o.default];t.default=i},3693:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.callRef=t.getValidate=void 0;const r=n(4551),o=n(5765),i=n(9029),a=n(2023),s=n(3835),c=n(4227),l={keyword:"$ref",schemaType:"string",code(e){const{gen:t,schema:n,it:o}=e,{baseId:a,schemaEnv:c,validateName:l,opts:f,self:h}=o,{root:p}=c;if(("#"===n||"#/"===n)&&a===p.baseId)return function(){if(c===p)return d(e,l,c,c.$async);const n=t.scopeValue("root",{ref:p});return d(e,i._`${n}.validate`,p,p.$async)}();const m=s.resolveRef.call(h,p,a,n);if(void 0===m)throw new r.default(o.opts.uriResolver,a,n);return m instanceof s.SchemaEnv?function(t){const n=u(e,t);d(e,n,t,t.$async)}(m):function(r){const o=t.scopeValue("schema",!0===f.code.source?{ref:r,code:(0,i.stringify)(r)}:{ref:r}),a=t.name("valid"),s=e.subschema({schema:r,dataTypes:[],schemaPath:i.nil,topSchemaRef:o,errSchemaPath:n},a);e.mergeEvaluated(s),e.ok(a)}(m)}};function u(e,t){const{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):i._`${n.scopeValue("wrapper",{ref:t})}.validate`}function d(e,t,n,r){const{gen:s,it:l}=e,{allErrors:u,schemaEnv:d,opts:f}=l,h=f.passContext?a.default.this:i.nil;function p(e){const t=i._`${e}.errors`;s.assign(a.default.vErrors,i._`${a.default.vErrors} === null ? ${t} : ${a.default.vErrors}.concat(${t})`),s.assign(a.default.errors,i._`${a.default.vErrors}.length`)}function m(e){var t;if(!l.opts.unevaluated)return;const r=null===(t=null==n?void 0:n.validate)||void 0===t?void 0:t.evaluated;if(!0!==l.props)if(r&&!r.dynamicProps)void 0!==r.props&&(l.props=c.mergeEvaluated.props(s,r.props,l.props));else{const t=s.var("props",i._`${e}.evaluated.props`);l.props=c.mergeEvaluated.props(s,t,l.props,i.Name)}if(!0!==l.items)if(r&&!r.dynamicItems)void 0!==r.items&&(l.items=c.mergeEvaluated.items(s,r.items,l.items));else{const t=s.var("items",i._`${e}.evaluated.items`);l.items=c.mergeEvaluated.items(s,t,l.items,i.Name)}}r?function(){if(!d.$async)throw new Error("async schema referenced by sync schema");const n=s.let("valid");s.try((()=>{s.code(i._`await ${(0,o.callValidateCode)(e,t,h)}`),m(t),u||s.assign(n,!0)}),(e=>{s.if(i._`!(${e} instanceof ${l.ValidationError})`,(()=>s.throw(e))),p(e),u||s.assign(n,!1)})),e.ok(n)}():e.result((0,o.callValidateCode)(e,t,h),(()=>m(t)),(()=>p(t)))}t.getValidate=u,t.callRef=d,t.default=l},6653:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(7652),i=n(3835),a=n(4551),s=n(4227),c={keyword:"discriminator",type:"object",schemaType:"object",error:{message:({params:{discrError:e,tagName:t}})=>e===o.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>r._`{error: ${e}, tag: ${n}, tagValue: ${t}}`},code(e){const{gen:t,data:n,schema:c,parentSchema:l,it:u}=e,{oneOf:d}=l;if(!u.opts.discriminator)throw new Error("discriminator: requires discriminator option");const f=c.propertyName;if("string"!=typeof f)throw new Error("discriminator: requires propertyName");if(c.mapping)throw new Error("discriminator: mapping is not supported");if(!d)throw new Error("discriminator: requires oneOf keyword");const h=t.let("valid",!1),p=t.const("tag",r._`${n}${(0,r.getProperty)(f)}`);function m(n){const o=t.name("valid"),i=e.subschema({keyword:"oneOf",schemaProp:n},o);return e.mergeEvaluated(i,r.Name),o}t.if(r._`typeof ${p} == "string"`,(()=>function(){const n=function(){var e;const t={},n=o(l);let r=!0;for(let t=0;te.error(!1,{discrError:o.DiscrError.Tag,tag:p,tagName:f}))),e.ok(h)}};t.default=c},7652:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.DiscrError=void 0,function(e){e.Tag="tag",e.Mapping="mapping"}(n||(t.DiscrError=n={}))},6144:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(2128),o=n(7060),i=n(6378),a=n(7532),s=n(9857),c=[r.default,o.default,(0,i.default)(),a.default,s.metadataVocabulary,s.contentVocabulary];t.default=c},4737:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>r.str`must match format "${e}"`,params:({schemaCode:e})=>r._`{format: ${e}}`},code(e,t){const{gen:n,data:o,$data:i,schema:a,schemaCode:s,it:c}=e,{opts:l,errSchemaPath:u,schemaEnv:d,self:f}=c;l.validateFormats&&(i?function(){const i=n.scopeValue("formats",{ref:f.formats,code:l.code.formats}),a=n.const("fDef",r._`${i}[${s}]`),c=n.let("fType"),u=n.let("format");n.if(r._`typeof ${a} == "object" && !(${a} instanceof RegExp)`,(()=>n.assign(c,r._`${a}.type || "string"`).assign(u,r._`${a}.validate`)),(()=>n.assign(c,r._`"string"`).assign(u,a))),e.fail$data((0,r.or)(!1===l.strictSchema?r.nil:r._`${s} && !${u}`,function(){const e=d.$async?r._`(${a}.async ? await ${u}(${o}) : ${u}(${o}))`:r._`${u}(${o})`,n=r._`(typeof ${u} == "function" ? ${e} : ${u}.test(${o}))`;return r._`${u} && ${u} !== true && ${c} === ${t} && !${n}`}()))}():function(){const i=f.formats[a];if(!i)return void function(){if(!1===l.strictSchema)return void f.logger.warn(e());throw new Error(e());function e(){return`unknown format "${a}" ignored in schema at path "${u}"`}}();if(!0===i)return;const[s,c,h]=function(e){const t=e instanceof RegExp?(0,r.regexpCode)(e):l.code.formats?r._`${l.code.formats}${(0,r.getProperty)(a)}`:void 0,o=n.scopeValue("formats",{key:a,ref:e,code:t});if("object"==typeof e&&!(e instanceof RegExp))return[e.type||"string",e.validate,r._`${o}.validate`];return["string",e,o]}(i);s===t&&e.pass(function(){if("object"==typeof i&&!(i instanceof RegExp)&&i.async){if(!d.$async)throw new Error("async format in sync schema");return r._`await ${h}(${o})`}return"function"==typeof c?r._`${h}(${o})`:r._`${h}.test(${o})`}())}())}};t.default=o},7532:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=[n(4737).default];t.default=r},9857:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.contentVocabulary=t.metadataVocabulary=void 0,t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"],t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]},7935:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i=n(6250),a={keyword:"const",$data:!0,error:{message:"must be equal to constant",params:({schemaCode:e})=>r._`{allowedValue: ${e}}`},code(e){const{gen:t,data:n,$data:a,schemaCode:s,schema:c}=e;a||c&&"object"==typeof c?e.fail$data(r._`!${(0,o.useFunc)(t,i.default)}(${n}, ${s})`):e.fail(r._`${c} !== ${n}`)}};t.default=a},8643:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i=n(6250),a={keyword:"enum",schemaType:"array",$data:!0,error:{message:"must be equal to one of the allowed values",params:({schemaCode:e})=>r._`{allowedValues: ${e}}`},code(e){const{gen:t,data:n,$data:a,schema:s,schemaCode:c,it:l}=e;if(!a&&0===s.length)throw new Error("enum must have non-empty array");const u=s.length>=l.opts.loopEnum;let d;const f=()=>null!=d?d:d=(0,o.useFunc)(t,i.default);let h;if(u||a)h=t.let("valid"),e.block$data(h,(function(){t.assign(h,!1),t.forOf("v",c,(e=>t.if(r._`${f()}(${n}, ${e})`,(()=>t.assign(h,!0).break()))))}));else{if(!Array.isArray(s))throw new Error("ajv implementation error");const e=t.const("vSchema",c);h=(0,r.or)(...s.map(((t,o)=>function(e,t){const o=s[t];return"object"==typeof o&&null!==o?r._`${f()}(${n}, ${e}[${t}])`:r._`${n} === ${o}`}(e,o))))}e.pass(h)}};t.default=a},7060:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5882),o=n(3439),i=n(7307),a=n(422),s=n(4486),c=n(4003),l=n(1163),u=n(617),d=n(7935),f=n(8643),h=[r.default,o.default,i.default,a.default,s.default,c.default,l.default,u.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},d.default,f.default];t.default=h},1163:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxItems"===e?"more":"fewer";return r.str`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:o}=e,i="maxItems"===t?r.operators.GT:r.operators.LT;e.fail$data(r._`${n}.length ${i} ${o}`)}};t.default=o},7307:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=n(4227),i=n(3853),a={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxLength"===e?"more":"fewer";return r.str`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:a,it:s}=e,c="maxLength"===t?r.operators.GT:r.operators.LT,l=!1===s.opts.unicode?r._`${n}.length`:r._`${(0,o.useFunc)(e.gen,i.default)}(${n})`;e.fail$data(r._`${l} ${c} ${a}`)}};t.default=a},5882:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o=r.operators,i={maximum:{okStr:"<=",ok:o.LTE,fail:o.GT},minimum:{okStr:">=",ok:o.GTE,fail:o.LT},exclusiveMaximum:{okStr:"<",ok:o.LT,fail:o.GTE},exclusiveMinimum:{okStr:">",ok:o.GT,fail:o.LTE}},a={message:({keyword:e,schemaCode:t})=>r.str`must be ${i[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>r._`{comparison: ${i[e].okStr}, limit: ${t}}`},s={keyword:Object.keys(i),type:"number",schemaType:"number",$data:!0,error:a,code(e){const{keyword:t,data:n,schemaCode:o}=e;e.fail$data(r._`${n} ${i[t].fail} ${o} || isNaN(${n})`)}};t.default=s},4486:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:{message({keyword:e,schemaCode:t}){const n="maxProperties"===e?"more":"fewer";return r.str`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>r._`{limit: ${e}}`},code(e){const{keyword:t,data:n,schemaCode:o}=e,i="maxProperties"===t?r.operators.GT:r.operators.LT;e.fail$data(r._`Object.keys(${n}).length ${i} ${o}`)}};t.default=o},3439:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(9029),o={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:{message:({schemaCode:e})=>r.str`must be multiple of ${e}`,params:({schemaCode:e})=>r._`{multipleOf: ${e}}`},code(e){const{gen:t,data:n,schemaCode:o,it:i}=e,a=i.opts.multipleOfPrecision,s=t.let("res"),c=a?r._`Math.abs(Math.round(${s}) - ${s}) > 1e-${a}`:r._`${s} !== parseInt(${s})`;e.fail$data(r._`(${o} === 0 || (${s} = ${n}/${o}, ${c}))`)}};t.default=o},422:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5765),o=n(9029),i={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:{message:({schemaCode:e})=>o.str`must match pattern "${e}"`,params:({schemaCode:e})=>o._`{pattern: ${e}}`},code(e){const{data:t,$data:n,schema:i,schemaCode:a,it:s}=e,c=s.opts.unicodeRegExp?"u":"",l=n?o._`(new RegExp(${a}, ${c}))`:(0,r.usePattern)(e,i);e.fail$data(o._`!${l}.test(${t})`)}};t.default=i},4003:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(5765),o=n(9029),i=n(4227),a={keyword:"required",type:"object",schemaType:"array",$data:!0,error:{message:({params:{missingProperty:e}})=>o.str`must have required property '${e}'`,params:({params:{missingProperty:e}})=>o._`{missingProperty: ${e}}`},code(e){const{gen:t,schema:n,schemaCode:a,data:s,$data:c,it:l}=e,{opts:u}=l;if(!c&&0===n.length)return;const d=n.length>=u.loopRequired;if(l.allErrors?function(){if(d||c)e.block$data(o.nil,f);else for(const t of n)(0,r.checkReportMissingProp)(e,t)}():function(){const i=t.let("missing");if(d||c){const n=t.let("valid",!0);e.block$data(n,(()=>function(n,i){e.setParams({missingProperty:n}),t.forOf(n,a,(()=>{t.assign(i,(0,r.propertyInData)(t,s,n,u.ownProperties)),t.if((0,o.not)(i),(()=>{e.error(),t.break()}))}),o.nil)}(i,n))),e.ok(n)}else t.if((0,r.checkMissingProp)(e,n,i)),(0,r.reportMissingProp)(e,i),t.else()}(),u.strictRequired){const t=e.parentSchema.properties,{definedProperties:r}=e.it;for(const e of n)if(void 0===(null==t?void 0:t[e])&&!r.has(e)){const t=`required property "${e}" is not defined at "${l.schemaEnv.baseId+l.errSchemaPath}" (strictRequired)`;(0,i.checkStrictMode)(l,t,l.opts.strictRequired)}}function f(){t.forOf("prop",a,(n=>{e.setParams({missingProperty:n}),t.if((0,r.noPropertyInData)(t,s,n,u.ownProperties),(()=>e.error()))}))}}};t.default=a},617:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(208),o=n(9029),i=n(4227),a=n(6250),s={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:{message:({params:{i:e,j:t}})=>o.str`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>o._`{i: ${e}, j: ${t}}`},code(e){const{gen:t,data:n,$data:s,schema:c,parentSchema:l,schemaCode:u,it:d}=e;if(!s&&!c)return;const f=t.let("valid"),h=l.items?(0,r.getSchemaTypes)(l.items):[];function p(i,a){const s=t.name("item"),c=(0,r.checkDataTypes)(h,s,d.opts.strictNumbers,r.DataType.Wrong),l=t.const("indices",o._`{}`);t.for(o._`;${i}--;`,(()=>{t.let(s,o._`${n}[${i}]`),t.if(c,o._`continue`),h.length>1&&t.if(o._`typeof ${s} == "string"`,o._`${s} += "_"`),t.if(o._`typeof ${l}[${s}] == "number"`,(()=>{t.assign(a,o._`${l}[${s}]`),e.error(),t.assign(f,!1).break()})).code(o._`${l}[${s}] = ${i}`)}))}function m(r,s){const c=(0,i.useFunc)(t,a.default),l=t.name("outer");t.label(l).for(o._`;${r}--;`,(()=>t.for(o._`${s} = ${r}; ${s}--;`,(()=>t.if(o._`${c}(${n}[${r}], ${n}[${s}])`,(()=>{e.error(),t.assign(f,!1).break(l)}))))))}e.block$data(f,(function(){const r=t.let("i",o._`${n}.length`),i=t.let("j");e.setParams({i:r,j:i}),t.assign(f,!0),t.if(o._`${r} > 1`,(()=>(h.length>0&&!h.some((e=>"object"===e||"array"===e))?p:m)(r,i)))}),o._`${u} === false`),e.ok(f)}};t.default=s},2374:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,'/* Example copied from */\n/* https://www.w3schools.com/howto/howto_css_switch.asp */\n\n/* The switch - the box around the slider */\n:host .switch {\n position: relative;\n display: inline-block;\n width: 60px;\n height: 34px;\n}\n\n/* Hide default HTML checkbox */\n:host .switch input {\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n/* The slider */\n:host .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #ccc;\n -webkit-transition: 0.4s;\n transition: 0.4s;\n}\n\n:host .slider:before {\n position: absolute;\n content: "";\n height: 26px;\n width: 26px;\n left: 4px;\n bottom: 4px;\n background-color: white;\n -webkit-transition: 0.4s;\n transition: 0.4s;\n}\n\n:host input:checked + .slider {\n background-color: #2196f3;\n}\n\n:host input:focus + .slider {\n box-shadow: 0 0 1px #2196f3;\n}\n\n:host input:checked + .slider:before {\n -webkit-transform: translateX(26px);\n -ms-transform: translateX(26px);\n transform: translateX(26px);\n}\n\n/* Rounded sliders */\n:host .slider.round {\n border-radius: 34px;\n}\n\n:host .slider.round:before {\n border-radius: 50%;\n}\n',"",{version:3,sources:["webpack://./src/docdiff.css"],names:[],mappings:"AAAA,wBAAwB;AACxB,yDAAyD;;AAEzD,2CAA2C;AAC3C;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,YAAY;AACd;;AAEA,+BAA+B;AAC/B;EACE,UAAU;EACV,QAAQ;EACR,SAAS;AACX;;AAEA,eAAe;AACf;EACE,kBAAkB;EAClB,eAAe;EACf,MAAM;EACN,OAAO;EACP,QAAQ;EACR,SAAS;EACT,sBAAsB;EACtB,wBAAwB;EACxB,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,WAAW;EACX,SAAS;EACT,WAAW;EACX,uBAAuB;EACvB,wBAAwB;EACxB,gBAAgB;AAClB;;AAEA;EACE,yBAAyB;AAC3B;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,mCAAmC;EACnC,+BAA+B;EAC/B,2BAA2B;AAC7B;;AAEA,oBAAoB;AACpB;EACE,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;AACpB",sourcesContent:['/* Example copied from */\n/* https://www.w3schools.com/howto/howto_css_switch.asp */\n\n/* The switch - the box around the slider */\n:host .switch {\n position: relative;\n display: inline-block;\n width: 60px;\n height: 34px;\n}\n\n/* Hide default HTML checkbox */\n:host .switch input {\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n/* The slider */\n:host .slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #ccc;\n -webkit-transition: 0.4s;\n transition: 0.4s;\n}\n\n:host .slider:before {\n position: absolute;\n content: "";\n height: 26px;\n width: 26px;\n left: 4px;\n bottom: 4px;\n background-color: white;\n -webkit-transition: 0.4s;\n transition: 0.4s;\n}\n\n:host input:checked + .slider {\n background-color: #2196f3;\n}\n\n:host input:focus + .slider {\n box-shadow: 0 0 1px #2196f3;\n}\n\n:host input:checked + .slider:before {\n -webkit-transform: translateX(26px);\n -ms-transform: translateX(26px);\n transform: translateX(26px);\n}\n\n/* Rounded sliders */\n:host .slider.round {\n border-radius: 34px;\n}\n\n:host .slider.round:before {\n border-radius: 50%;\n}\n'],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},3329:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,".doc-diff-added {\n background-color: rgb(171, 242, 188);\n text-decoration: none;\n}\n\n.doc-diff-modified {\n}\n\n.doc-diff-removed {\n background-color: rgba(255, 129, 130, 0.4);\n text-decoration: none;\n}\n","",{version:3,sources:["webpack://./src/docdiff.document.css"],names:[],mappings:"AAAA;EACE,oCAAoC;EACpC,qBAAqB;AACvB;;AAEA;AACA;;AAEA;EACE,0CAA0C;EAC1C,qBAAqB;AACvB",sourcesContent:[".doc-diff-added {\n background-color: rgb(171, 242, 188);\n text-decoration: none;\n}\n\n.doc-diff-modified {\n}\n\n.doc-diff-removed {\n background-color: rgba(255, 129, 130, 0.4);\n text-decoration: none;\n}\n"],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},6650:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,'/*\n * Specific styles based on documentation tools and themes\n *\n * Usage of `@layer` at-rule pushes this rules down a step in\n * precedence/priority. This allows a user `:root` rule to override these\n * values.\n **/\n@layer defaults {\n :root[data-readthedocs-tool="docusaurus"] {\n --readthedocs-flyout-header-font-size: 0.9rem;\n }\n\n :root[data-readthedocs-tool="mkdocs-material"] {\n --readthedocs-font-size: 0.58rem;\n --readthedocs-flyout-header-font-size: 0.7rem;\n --readthedocs-flyout-font-size: 0.58rem;\n }\n\n :root[data-readthedocs-tool="antora"] {\n --readthedocs-font-size: 0.7rem;\n --readthedocs-flyout-header-font-size: 0.8rem;\n --readthedocs-flyout-font-size: 0.7rem;\n }\n\n :root[data-readthedocs-tool="mdbook"] {\n --readthedocs-font-size: 1.3rem;\n --readthedocs-flyout-header-font-size: 1.5rem;\n --readthedocs-flyout-font-size: 1.3rem;\n }\n\n :root[data-readthedocs-tool="sphinx"][data-readthedocs-tool-theme="furo"] {\n --readthedocs-font-size: 0.725rem;\n --readthedocs-flyout-header-font-size: 0.845rem;\n --readthedocs-flyout-font-size: 0.725rem;\n }\n\n :root[data-readthedocs-tool="sphinx"][data-readthedocs-tool-theme="immaterial"] {\n --readthedocs-font-size: 0.58rem;\n --readthedocs-flyout-header-font-size: 0.7rem;\n --readthedocs-flyout-font-size: 0.58rem;\n }\n}\n',"",{version:3,sources:["webpack://./src/doctools.css"],names:[],mappings:"AAAA;;;;;;GAMG;AACH;EACE;IACE,6CAA6C;EAC/C;;EAEA;IACE,gCAAgC;IAChC,6CAA6C;IAC7C,uCAAuC;EACzC;;EAEA;IACE,+BAA+B;IAC/B,6CAA6C;IAC7C,sCAAsC;EACxC;;EAEA;IACE,+BAA+B;IAC/B,6CAA6C;IAC7C,sCAAsC;EACxC;;EAEA;IACE,iCAAiC;IACjC,+CAA+C;IAC/C,wCAAwC;EAC1C;;EAEA;IACE,gCAAgC;IAChC,6CAA6C;IAC7C,uCAAuC;EACzC;AACF",sourcesContent:['/*\n * Specific styles based on documentation tools and themes\n *\n * Usage of `@layer` at-rule pushes this rules down a step in\n * precedence/priority. This allows a user `:root` rule to override these\n * values.\n **/\n@layer defaults {\n :root[data-readthedocs-tool="docusaurus"] {\n --readthedocs-flyout-header-font-size: 0.9rem;\n }\n\n :root[data-readthedocs-tool="mkdocs-material"] {\n --readthedocs-font-size: 0.58rem;\n --readthedocs-flyout-header-font-size: 0.7rem;\n --readthedocs-flyout-font-size: 0.58rem;\n }\n\n :root[data-readthedocs-tool="antora"] {\n --readthedocs-font-size: 0.7rem;\n --readthedocs-flyout-header-font-size: 0.8rem;\n --readthedocs-flyout-font-size: 0.7rem;\n }\n\n :root[data-readthedocs-tool="mdbook"] {\n --readthedocs-font-size: 1.3rem;\n --readthedocs-flyout-header-font-size: 1.5rem;\n --readthedocs-flyout-font-size: 1.3rem;\n }\n\n :root[data-readthedocs-tool="sphinx"][data-readthedocs-tool-theme="furo"] {\n --readthedocs-font-size: 0.725rem;\n --readthedocs-flyout-header-font-size: 0.845rem;\n --readthedocs-flyout-font-size: 0.725rem;\n }\n\n :root[data-readthedocs-tool="sphinx"][data-readthedocs-tool-theme="immaterial"] {\n --readthedocs-font-size: 0.58rem;\n --readthedocs-flyout-header-font-size: 0.7rem;\n --readthedocs-flyout-font-size: 0.58rem;\n }\n}\n'],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},4333:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,'/* Read the Docs promotional block, only applicable to RTD.org\n\nTo support sphinx_rtd_theme, a `wy-menu` element is added. Other themes are\ntargeted using the theme identifier and use custom elements instead of a CSS\nframework html structure.\n\n*/\n\ndiv.ethical-sidebar,\ndiv.ethical-footer {\n display: block !important;\n}\n.ethical-sidebar,\n.ethical-footer {\n padding: 0.5em;\n margin: 1em 0;\n}\n.ethical-sidebar img,\n.ethical-footer img {\n width: 120px;\n height: 90px;\n display: inline-block;\n}\n.ethical-sidebar .ethical-callout,\n.ethical-footer .ethical-callout {\n padding-top: 1em;\n clear: both;\n}\n.ethical-sidebar .ethical-pixel,\n.ethical-footer .ethical-pixel,\n.ethical-fixedfooter .ethical-pixel {\n display: none !important;\n}\n.ethical-sidebar .ethical-text,\n.ethical-footer .ethical-text {\n margin-top: 1em;\n}\n.ethical-sidebar .ethical-image-link,\n.ethical-footer .ethical-image-link {\n border: 0;\n}\n\n.ethical-sidebar .ea-cta,\n.ethical-footer .ea-cta {\n display: block;\n border: 1px solid #ccc;\n border-radius: 0.5em;\n margin-top: 0.5em;\n margin-left: 1em;\n margin-right: 1em;\n}\n\n.ethical-sidebar,\n.ethical-footer {\n background-color: #eee;\n border: 1px solid #ccc;\n border-radius: 5px;\n color: #0a0a0a;\n font-size: 14px;\n line-height: 20px;\n}\n\n/* Techstack badging */\n.ethical-sidebar ul {\n margin: 0 !important;\n padding-left: 0;\n list-style: none;\n}\n.ethical-sidebar ul li {\n display: inline-block;\n background-color: lightskyblue;\n color: black;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n margin: 0.25em;\n border-radius: 0.25rem;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n line-height: 1.41;\n}\n.ethical-sidebar ul li:not(:last-child) {\n margin-right: 0.25rem;\n}\n\n.ethical-sidebar a,\n.ethical-sidebar a:visited,\n.ethical-sidebar a:hover,\n.ethical-sidebar a:active,\n.ethical-footer a,\n.ethical-footer a:visited,\n.ethical-footer a:hover,\n.ethical-footer a:active {\n color: #0a0a0a;\n text-decoration: none !important;\n border-bottom: 0 !important;\n}\n\n.ethical-callout a {\n color: #707070 !important;\n text-decoration: none !important;\n}\n\n/* Sidebar promotions */\n.ethical-sidebar {\n text-align: center;\n max-width: 300px;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* Footer promotions */\n.ethical-footer {\n text-align: left;\n\n font-size: 14px;\n line-height: 20px;\n}\n.ethical-footer img {\n float: right;\n margin-left: 25px;\n}\n.ethical-footer .ethical-callout {\n text-align: center;\n}\n.ethical-footer small {\n font-size: 10px;\n}\n\n/* Fixed footer promotions */\n.ethical-fixedfooter {\n box-sizing: border-box;\n position: fixed;\n bottom: 0;\n left: 0;\n z-index: 100;\n background-color: #eee;\n border-top: 1px solid #bfbfbf;\n font-size: 12px;\n line-height: 1.5;\n padding: 0.5em 1.5em;\n text-align: center;\n color: #404040;\n width: 100%; /* Fallback for Opera Mini */\n width: 100vw;\n}\n@media (min-width: 769px) {\n /* Improve viewing on non-mobile */\n .ethical-fixedfooter {\n font-size: 13px;\n padding: 1em 1.5em;\n }\n}\n.ethical-fixedfooter .ethical-text:before {\n margin-right: 4px;\n padding: 2px 6px;\n border-radius: 3px;\n background-color: #4caf50;\n color: #fff;\n content: "Sponsored";\n}\n.ethical-fixedfooter .ethical-callout {\n color: #999;\n padding-left: 6px;\n white-space: nowrap;\n}\n.ethical-fixedfooter a,\n.ethical-fixedfooter a:hover,\n.ethical-fixedfooter a:active,\n.ethical-fixedfooter a:visited {\n color: #404040;\n text-decoration: none;\n}\n.ethical-fixedfooter .ethical-close {\n position: absolute;\n top: 0;\n right: 5px;\n font-size: 20px;\n line-height: 20px;\n}\n\n/* RTD Theme specific customizations */\n.wy-nav-side .ethical-rtd {\n /* RTD theme doesn\'t correctly set the sidebar width */\n max-width: 300px;\n padding: 0 1em;\n}\n.ethical-rtd .ethical-sidebar {\n /* RTD theme doesn\'t set sidebar text color */\n color: #b3b3b3;\n\n font-size: 14px;\n line-height: 20px;\n}\n\n@media (min-width: 769px) {\n /* Make sure the fixed footer ad is under the RTD theme version selector */\n .wy-body-for-nav .ethical-fixedfooter {\n padding-left: 300px;\n }\n}\n\n/* Alabaster specific customizations */\n.ethical-alabaster a.ethical-image-link {\n /* Alabaster adds a border even to image links on hover */\n border: 0 !important;\n}\n.ethical-alabaster hr {\n /* Alabaster needs some extra spacing before the footer ad */\n margin-top: 2em;\n}\n.ethical-alabaster::before {\n /* Alabaster\'s search box above the ad is floating */\n clear: both;\n content: "";\n display: table;\n margin-top: 3em;\n}\n\n/* Dark theme */\n.ethical-dark-theme .ethical-sidebar {\n background-color: #4e4b4b;\n border: 1px solid #a0a0a0;\n color: #c2c2c2 !important;\n}\n.ethical-dark-theme a,\n.ethical-dark-theme a:visited {\n color: #e6e6e6 !important;\n border-bottom: 0 !important;\n}\n.ethical-dark-theme .ethical-callout a {\n color: #b3b3b3 !important;\n}\n.ethical-dark-theme .ethical-sidebar .ea-cta,\n.ethical-dark-theme .ethical-footer .ea-cta {\n border-color: #a0a0a0;\n}\n\n/* Docusaurus */\n.ethical-docusaurus {\n margin-left: 10% !important;\n margin-right: 10% !important;\n}\n\n/* Docsify */\n.ethical-docsify {\n margin-left: 10% !important;\n margin-right: 10% !important;\n}\n',"",{version:3,sources:["webpack://./src/ethicalads.css"],names:[],mappings:"AAAA;;;;;;CAMC;;AAED;;EAEE,yBAAyB;AAC3B;AACA;;EAEE,cAAc;EACd,aAAa;AACf;AACA;;EAEE,YAAY;EACZ,YAAY;EACZ,qBAAqB;AACvB;AACA;;EAEE,gBAAgB;EAChB,WAAW;AACb;AACA;;;EAGE,wBAAwB;AAC1B;AACA;;EAEE,eAAe;AACjB;AACA;;EAEE,SAAS;AACX;;AAEA;;EAEE,cAAc;EACd,sBAAsB;EACtB,oBAAoB;EACpB,iBAAiB;EACjB,gBAAgB;EAChB,iBAAiB;AACnB;;AAEA;;EAEE,sBAAsB;EACtB,sBAAsB;EACtB,kBAAkB;EAClB,cAAc;EACd,eAAe;EACf,iBAAiB;AACnB;;AAEA,sBAAsB;AACtB;EACE,oBAAoB;EACpB,eAAe;EACf,gBAAgB;AAClB;AACA;EACE,qBAAqB;EACrB,8BAA8B;EAC9B,YAAY;EACZ,qBAAqB;EACrB,cAAc;EACd,gBAAgB;EAChB,cAAc;EACd,sBAAsB;EACtB,kBAAkB;EAClB,wBAAwB;EACxB,mBAAmB;EACnB,iBAAiB;AACnB;AACA;EACE,qBAAqB;AACvB;;AAEA;;;;;;;;EAQE,cAAc;EACd,gCAAgC;EAChC,2BAA2B;AAC7B;;AAEA;EACE,yBAAyB;EACzB,gCAAgC;AAClC;;AAEA,uBAAuB;AACvB;EACE,kBAAkB;EAClB,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;AACpB;;AAEA,sBAAsB;AACtB;EACE,gBAAgB;;EAEhB,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,YAAY;EACZ,iBAAiB;AACnB;AACA;EACE,kBAAkB;AACpB;AACA;EACE,eAAe;AACjB;;AAEA,4BAA4B;AAC5B;EACE,sBAAsB;EACtB,eAAe;EACf,SAAS;EACT,OAAO;EACP,YAAY;EACZ,sBAAsB;EACtB,6BAA6B;EAC7B,eAAe;EACf,gBAAgB;EAChB,oBAAoB;EACpB,kBAAkB;EAClB,cAAc;EACd,WAAW,EAAE,4BAA4B;EACzC,YAAY;AACd;AACA;EACE,kCAAkC;EAClC;IACE,eAAe;IACf,kBAAkB;EACpB;AACF;AACA;EACE,iBAAiB;EACjB,gBAAgB;EAChB,kBAAkB;EAClB,yBAAyB;EACzB,WAAW;EACX,oBAAoB;AACtB;AACA;EACE,WAAW;EACX,iBAAiB;EACjB,mBAAmB;AACrB;AACA;;;;EAIE,cAAc;EACd,qBAAqB;AACvB;AACA;EACE,kBAAkB;EAClB,MAAM;EACN,UAAU;EACV,eAAe;EACf,iBAAiB;AACnB;;AAEA,sCAAsC;AACtC;EACE,sDAAsD;EACtD,gBAAgB;EAChB,cAAc;AAChB;AACA;EACE,6CAA6C;EAC7C,cAAc;;EAEd,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE,0EAA0E;EAC1E;IACE,mBAAmB;EACrB;AACF;;AAEA,sCAAsC;AACtC;EACE,yDAAyD;EACzD,oBAAoB;AACtB;AACA;EACE,4DAA4D;EAC5D,eAAe;AACjB;AACA;EACE,oDAAoD;EACpD,WAAW;EACX,WAAW;EACX,cAAc;EACd,eAAe;AACjB;;AAEA,eAAe;AACf;EACE,yBAAyB;EACzB,yBAAyB;EACzB,yBAAyB;AAC3B;AACA;;EAEE,yBAAyB;EACzB,2BAA2B;AAC7B;AACA;EACE,yBAAyB;AAC3B;AACA;;EAEE,qBAAqB;AACvB;;AAEA,eAAe;AACf;EACE,2BAA2B;EAC3B,4BAA4B;AAC9B;;AAEA,YAAY;AACZ;EACE,2BAA2B;EAC3B,4BAA4B;AAC9B",sourcesContent:['/* Read the Docs promotional block, only applicable to RTD.org\n\nTo support sphinx_rtd_theme, a `wy-menu` element is added. Other themes are\ntargeted using the theme identifier and use custom elements instead of a CSS\nframework html structure.\n\n*/\n\ndiv.ethical-sidebar,\ndiv.ethical-footer {\n display: block !important;\n}\n.ethical-sidebar,\n.ethical-footer {\n padding: 0.5em;\n margin: 1em 0;\n}\n.ethical-sidebar img,\n.ethical-footer img {\n width: 120px;\n height: 90px;\n display: inline-block;\n}\n.ethical-sidebar .ethical-callout,\n.ethical-footer .ethical-callout {\n padding-top: 1em;\n clear: both;\n}\n.ethical-sidebar .ethical-pixel,\n.ethical-footer .ethical-pixel,\n.ethical-fixedfooter .ethical-pixel {\n display: none !important;\n}\n.ethical-sidebar .ethical-text,\n.ethical-footer .ethical-text {\n margin-top: 1em;\n}\n.ethical-sidebar .ethical-image-link,\n.ethical-footer .ethical-image-link {\n border: 0;\n}\n\n.ethical-sidebar .ea-cta,\n.ethical-footer .ea-cta {\n display: block;\n border: 1px solid #ccc;\n border-radius: 0.5em;\n margin-top: 0.5em;\n margin-left: 1em;\n margin-right: 1em;\n}\n\n.ethical-sidebar,\n.ethical-footer {\n background-color: #eee;\n border: 1px solid #ccc;\n border-radius: 5px;\n color: #0a0a0a;\n font-size: 14px;\n line-height: 20px;\n}\n\n/* Techstack badging */\n.ethical-sidebar ul {\n margin: 0 !important;\n padding-left: 0;\n list-style: none;\n}\n.ethical-sidebar ul li {\n display: inline-block;\n background-color: lightskyblue;\n color: black;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n margin: 0.25em;\n border-radius: 0.25rem;\n text-align: center;\n vertical-align: baseline;\n white-space: nowrap;\n line-height: 1.41;\n}\n.ethical-sidebar ul li:not(:last-child) {\n margin-right: 0.25rem;\n}\n\n.ethical-sidebar a,\n.ethical-sidebar a:visited,\n.ethical-sidebar a:hover,\n.ethical-sidebar a:active,\n.ethical-footer a,\n.ethical-footer a:visited,\n.ethical-footer a:hover,\n.ethical-footer a:active {\n color: #0a0a0a;\n text-decoration: none !important;\n border-bottom: 0 !important;\n}\n\n.ethical-callout a {\n color: #707070 !important;\n text-decoration: none !important;\n}\n\n/* Sidebar promotions */\n.ethical-sidebar {\n text-align: center;\n max-width: 300px;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* Footer promotions */\n.ethical-footer {\n text-align: left;\n\n font-size: 14px;\n line-height: 20px;\n}\n.ethical-footer img {\n float: right;\n margin-left: 25px;\n}\n.ethical-footer .ethical-callout {\n text-align: center;\n}\n.ethical-footer small {\n font-size: 10px;\n}\n\n/* Fixed footer promotions */\n.ethical-fixedfooter {\n box-sizing: border-box;\n position: fixed;\n bottom: 0;\n left: 0;\n z-index: 100;\n background-color: #eee;\n border-top: 1px solid #bfbfbf;\n font-size: 12px;\n line-height: 1.5;\n padding: 0.5em 1.5em;\n text-align: center;\n color: #404040;\n width: 100%; /* Fallback for Opera Mini */\n width: 100vw;\n}\n@media (min-width: 769px) {\n /* Improve viewing on non-mobile */\n .ethical-fixedfooter {\n font-size: 13px;\n padding: 1em 1.5em;\n }\n}\n.ethical-fixedfooter .ethical-text:before {\n margin-right: 4px;\n padding: 2px 6px;\n border-radius: 3px;\n background-color: #4caf50;\n color: #fff;\n content: "Sponsored";\n}\n.ethical-fixedfooter .ethical-callout {\n color: #999;\n padding-left: 6px;\n white-space: nowrap;\n}\n.ethical-fixedfooter a,\n.ethical-fixedfooter a:hover,\n.ethical-fixedfooter a:active,\n.ethical-fixedfooter a:visited {\n color: #404040;\n text-decoration: none;\n}\n.ethical-fixedfooter .ethical-close {\n position: absolute;\n top: 0;\n right: 5px;\n font-size: 20px;\n line-height: 20px;\n}\n\n/* RTD Theme specific customizations */\n.wy-nav-side .ethical-rtd {\n /* RTD theme doesn\'t correctly set the sidebar width */\n max-width: 300px;\n padding: 0 1em;\n}\n.ethical-rtd .ethical-sidebar {\n /* RTD theme doesn\'t set sidebar text color */\n color: #b3b3b3;\n\n font-size: 14px;\n line-height: 20px;\n}\n\n@media (min-width: 769px) {\n /* Make sure the fixed footer ad is under the RTD theme version selector */\n .wy-body-for-nav .ethical-fixedfooter {\n padding-left: 300px;\n }\n}\n\n/* Alabaster specific customizations */\n.ethical-alabaster a.ethical-image-link {\n /* Alabaster adds a border even to image links on hover */\n border: 0 !important;\n}\n.ethical-alabaster hr {\n /* Alabaster needs some extra spacing before the footer ad */\n margin-top: 2em;\n}\n.ethical-alabaster::before {\n /* Alabaster\'s search box above the ad is floating */\n clear: both;\n content: "";\n display: table;\n margin-top: 3em;\n}\n\n/* Dark theme */\n.ethical-dark-theme .ethical-sidebar {\n background-color: #4e4b4b;\n border: 1px solid #a0a0a0;\n color: #c2c2c2 !important;\n}\n.ethical-dark-theme a,\n.ethical-dark-theme a:visited {\n color: #e6e6e6 !important;\n border-bottom: 0 !important;\n}\n.ethical-dark-theme .ethical-callout a {\n color: #b3b3b3 !important;\n}\n.ethical-dark-theme .ethical-sidebar .ea-cta,\n.ethical-dark-theme .ethical-footer .ea-cta {\n border-color: #a0a0a0;\n}\n\n/* Docusaurus */\n.ethical-docusaurus {\n margin-left: 10% !important;\n margin-right: 10% !important;\n}\n\n/* Docsify */\n.ethical-docsify {\n margin-left: 10% !important;\n margin-right: 10% !important;\n}\n'],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},9358:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,"/* Using --addons-* prefix variables for consistency and to allow for overrides */\n:host {\n --addons-filetreediff-background-color: var(\n --readthedocs-filetreediff-background-color,\n #f8f9fa\n );\n --addons-filetreediff-border-color: var(\n --readthedocs-filetreediff-border-color,\n #ddd\n );\n --addons-filetreediff-font-size: var(\n --readthedocs-filetreediff-font-size,\n 0.85rem\n );\n --addons-filetreediff-label-color: var(\n --readthedocs-filetreediff-label-color,\n #333\n );\n}\n\n:host > div {\n position: fixed;\n top: 0;\n right: 1rem;\n background-color: var(--addons-filetreediff-background-color);\n padding: 0.25rem 0.75rem;\n box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n z-index: 2000;\n border-radius: 0 0 0.375rem 0.375rem;\n font-size: var(--addons-filetreediff-font-size);\n}\n\n:host > div > div {\n display: flex;\n gap: 0.75rem;\n align-items: center;\n}\n\n:host > div > div > select {\n flex: 1;\n padding: 0.25rem 0.5rem;\n border: 0.06rem solid var(--addons-filetreediff-border-color);\n border-radius: 0.25rem;\n appearance: revert;\n}\n\n:host > div > div > label {\n display: flex;\n align-items: center;\n gap: 0.35rem;\n font-size: var(--addons-filetreediff-font-size);\n color: var(--addons-filetreediff-label-color);\n white-space: nowrap;\n cursor: pointer;\n}\n\n:host > div > div > label > input {\n margin: 0;\n}\n","",{version:3,sources:["webpack://./src/filetreediff.css"],names:[],mappings:"AAAA,iFAAiF;AACjF;EACE;;;GAGC;EACD;;;GAGC;EACD;;;GAGC;EACD;;;GAGC;AACH;;AAEA;EACE,eAAe;EACf,MAAM;EACN,WAAW;EACX,6DAA6D;EAC7D,wBAAwB;EACxB,+CAA+C;EAC/C,aAAa;EACb,oCAAoC;EACpC,+CAA+C;AACjD;;AAEA;EACE,aAAa;EACb,YAAY;EACZ,mBAAmB;AACrB;;AAEA;EACE,OAAO;EACP,uBAAuB;EACvB,6DAA6D;EAC7D,sBAAsB;EACtB,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,+CAA+C;EAC/C,6CAA6C;EAC7C,mBAAmB;EACnB,eAAe;AACjB;;AAEA;EACE,SAAS;AACX",sourcesContent:["/* Using --addons-* prefix variables for consistency and to allow for overrides */\n:host {\n --addons-filetreediff-background-color: var(\n --readthedocs-filetreediff-background-color,\n #f8f9fa\n );\n --addons-filetreediff-border-color: var(\n --readthedocs-filetreediff-border-color,\n #ddd\n );\n --addons-filetreediff-font-size: var(\n --readthedocs-filetreediff-font-size,\n 0.85rem\n );\n --addons-filetreediff-label-color: var(\n --readthedocs-filetreediff-label-color,\n #333\n );\n}\n\n:host > div {\n position: fixed;\n top: 0;\n right: 1rem;\n background-color: var(--addons-filetreediff-background-color);\n padding: 0.25rem 0.75rem;\n box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);\n z-index: 2000;\n border-radius: 0 0 0.375rem 0.375rem;\n font-size: var(--addons-filetreediff-font-size);\n}\n\n:host > div > div {\n display: flex;\n gap: 0.75rem;\n align-items: center;\n}\n\n:host > div > div > select {\n flex: 1;\n padding: 0.25rem 0.5rem;\n border: 0.06rem solid var(--addons-filetreediff-border-color);\n border-radius: 0.25rem;\n appearance: revert;\n}\n\n:host > div > div > label {\n display: flex;\n align-items: center;\n gap: 0.35rem;\n font-size: var(--addons-filetreediff-font-size);\n color: var(--addons-filetreediff-label-color);\n white-space: nowrap;\n cursor: pointer;\n}\n\n:host > div > div > label > input {\n margin: 0;\n}\n"],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},5348:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,'/* Flyout styles */\n\n:host {\n /* These variables are used more than once, use a local variable so we can set\n * a default in this addon */\n --addons-flyout-font-size: var(\n --readthedocs-flyout-font-size,\n var(--readthedocs-font-size, 0.8rem)\n );\n --addons-flyout-line-height: var(--readthedocs-flyout-line-height, 1.25em);\n}\n\n.container {\n position: fixed;\n max-width: var(--readthedocs-flyout-max-width, 25em);\n width: auto;\n height: auto;\n max-height: calc(100% - 100px);\n overflow-y: auto;\n line-height: var(--addons-flyout-line-height);\n}\n\n.container.bottom-right {\n right: 20px;\n bottom: 50px;\n}\n\n.container.bottom-left {\n left: 20px;\n bottom: 50px;\n}\n\n.container.top-left {\n left: 20px;\n top: 50px;\n}\n\n.container.top-right {\n right: 20px;\n top: 50px;\n}\n\n:host > div {\n font-family: var(\n --readthedocs-flyout-font-family,\n "Lato",\n "proxima-nova",\n "Helvetica Neue",\n "Arial",\n "sans-serif"\n );\n font-size: var(--addons-flyout-font-size);\n line-height: 1.2em;\n color: var(--readthedocs-flyout-color, rgb(128, 128, 128));\n background-color: var(--readthedocs-flyout-background-color, rgb(39, 39, 37));\n z-index: 3000;\n padding: 0 10px;\n overflow-y: auto;\n}\n\nheader {\n display: flex;\n flex-flow: row nowrap;\n gap: 1em;\n align-items: center;\n cursor: pointer;\n background-color: var(--readthedocs-flyout-background-color, rgb(39, 39, 37));\n position: sticky;\n top: 0px;\n font-size: var(--readthedocs-flyout-header-font-size, 1.25em);\n}\n\nheader > img.logo {\n /* Total height of 1.5 + 0.5 + 0.5 = 2.5em */\n max-height: 1.5em;\n width: auto;\n padding: 0.5em 0em;\n /* Don\'t grow past content size, do shrink down to min-content */\n flex: 0 1 auto;\n}\n\nheader > span {\n color: var(--readthedocs-flyout-current-version-color, #27ae60);\n /* Total height of 1 + 0.75 + 0.75 = 2.5em */\n padding: 0.75em 0em;\n line-height: 1em;\n /* Don\'t grow past content size or shrink below min-content */\n flex: 0 0 auto;\n /* Trim content to get ellipsis on wide content */\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\nheader > span.version {\n /* Grow to fill parent based on content width, shrink content when needed (for ellipsis) */\n flex: 0 1 auto;\n}\n\n/* Give the flex box extra spacing to the left of the first span item. This puts\n * automatic spacing between the logo and the text detail spans */\nheader > span:first-of-type {\n margin-left: auto;\n}\n\nheader > span svg.icon {\n color: rgb(128, 128, 128);\n height: 1em;\n padding-right: 0.25em;\n vertical-align: middle;\n}\n\nmain {\n padding: 5px;\n padding-bottom: 15px;\n margin-top: 5px;\n}\n\nmain.closed {\n display: none;\n}\n\ndl {\n margin: 0;\n padding: 0;\n}\n\ndl > dt {\n font-size: var(\n --readthedocs-flyout-dt-font-size,\n calc(var(--addons-flyout-font-size) * 1.125)\n );\n color: var(--readthedocs-flyout-section-heading-color, rgb(128, 128, 128));\n}\n\ndl > dd {\n display: inline-block;\n margin: 0;\n font-size: var(\n --readthedocs-flyout-dd-font-size,\n calc(var(--addons-flyout-font-size) * 1.125)\n );\n}\n\ndd a {\n text-decoration: none;\n color: var(--readthedocs-flyout-item-link-color, rgb(252, 252, 252));\n padding: 6px;\n display: inline-block;\n}\n\ndd form {\n padding: 6px;\n margin: 0;\n}\n\ndd input {\n padding: 6px;\n font-size: 80%;\n}\n\nhr {\n display: block;\n height: 1px;\n border: 0;\n margin: 20px 0;\n padding: 0;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: var(--readthedocs-flyout-divider-color, #413d3d);\n}\n\nsmall a {\n text-decoration: none;\n color: var(--readthedocs-flyout-link-color, rgb(42, 128, 185));\n}\n',"",{version:3,sources:["webpack://./src/flyout.css"],names:[],mappings:"AAAA,kBAAkB;;AAElB;EACE;8BAC4B;EAC5B;;;GAGC;EACD,0EAA0E;AAC5E;;AAEA;EACE,eAAe;EACf,oDAAoD;EACpD,WAAW;EACX,YAAY;EACZ,8BAA8B;EAC9B,gBAAgB;EAChB,6CAA6C;AAC/C;;AAEA;EACE,WAAW;EACX,YAAY;AACd;;AAEA;EACE,UAAU;EACV,YAAY;AACd;;AAEA;EACE,UAAU;EACV,SAAS;AACX;;AAEA;EACE,WAAW;EACX,SAAS;AACX;;AAEA;EACE;;;;;;;GAOC;EACD,yCAAyC;EACzC,kBAAkB;EAClB,0DAA0D;EAC1D,6EAA6E;EAC7E,aAAa;EACb,eAAe;EACf,gBAAgB;AAClB;;AAEA;EACE,aAAa;EACb,qBAAqB;EACrB,QAAQ;EACR,mBAAmB;EACnB,eAAe;EACf,6EAA6E;EAC7E,gBAAgB;EAChB,QAAQ;EACR,6DAA6D;AAC/D;;AAEA;EACE,4CAA4C;EAC5C,iBAAiB;EACjB,WAAW;EACX,kBAAkB;EAClB,gEAAgE;EAChE,cAAc;AAChB;;AAEA;EACE,+DAA+D;EAC/D,4CAA4C;EAC5C,mBAAmB;EACnB,gBAAgB;EAChB,6DAA6D;EAC7D,cAAc;EACd,iDAAiD;EACjD,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE,0FAA0F;EAC1F,cAAc;AAChB;;AAEA;iEACiE;AACjE;EACE,iBAAiB;AACnB;;AAEA;EACE,yBAAyB;EACzB,WAAW;EACX,qBAAqB;EACrB,sBAAsB;AACxB;;AAEA;EACE,YAAY;EACZ,oBAAoB;EACpB,eAAe;AACjB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,SAAS;EACT,UAAU;AACZ;;AAEA;EACE;;;GAGC;EACD,0EAA0E;AAC5E;;AAEA;EACE,qBAAqB;EACrB,SAAS;EACT;;;GAGC;AACH;;AAEA;EACE,qBAAqB;EACrB,oEAAoE;EACpE,YAAY;EACZ,qBAAqB;AACvB;;AAEA;EACE,YAAY;EACZ,SAAS;AACX;;AAEA;EACE,YAAY;EACZ,cAAc;AAChB;;AAEA;EACE,cAAc;EACd,WAAW;EACX,SAAS;EACT,cAAc;EACd,UAAU;EACV,qBAAqB;EACrB,uBAAuB;EACvB,kEAAkE;AACpE;;AAEA;EACE,qBAAqB;EACrB,8DAA8D;AAChE",sourcesContent:['/* Flyout styles */\n\n:host {\n /* These variables are used more than once, use a local variable so we can set\n * a default in this addon */\n --addons-flyout-font-size: var(\n --readthedocs-flyout-font-size,\n var(--readthedocs-font-size, 0.8rem)\n );\n --addons-flyout-line-height: var(--readthedocs-flyout-line-height, 1.25em);\n}\n\n.container {\n position: fixed;\n max-width: var(--readthedocs-flyout-max-width, 25em);\n width: auto;\n height: auto;\n max-height: calc(100% - 100px);\n overflow-y: auto;\n line-height: var(--addons-flyout-line-height);\n}\n\n.container.bottom-right {\n right: 20px;\n bottom: 50px;\n}\n\n.container.bottom-left {\n left: 20px;\n bottom: 50px;\n}\n\n.container.top-left {\n left: 20px;\n top: 50px;\n}\n\n.container.top-right {\n right: 20px;\n top: 50px;\n}\n\n:host > div {\n font-family: var(\n --readthedocs-flyout-font-family,\n "Lato",\n "proxima-nova",\n "Helvetica Neue",\n "Arial",\n "sans-serif"\n );\n font-size: var(--addons-flyout-font-size);\n line-height: 1.2em;\n color: var(--readthedocs-flyout-color, rgb(128, 128, 128));\n background-color: var(--readthedocs-flyout-background-color, rgb(39, 39, 37));\n z-index: 3000;\n padding: 0 10px;\n overflow-y: auto;\n}\n\nheader {\n display: flex;\n flex-flow: row nowrap;\n gap: 1em;\n align-items: center;\n cursor: pointer;\n background-color: var(--readthedocs-flyout-background-color, rgb(39, 39, 37));\n position: sticky;\n top: 0px;\n font-size: var(--readthedocs-flyout-header-font-size, 1.25em);\n}\n\nheader > img.logo {\n /* Total height of 1.5 + 0.5 + 0.5 = 2.5em */\n max-height: 1.5em;\n width: auto;\n padding: 0.5em 0em;\n /* Don\'t grow past content size, do shrink down to min-content */\n flex: 0 1 auto;\n}\n\nheader > span {\n color: var(--readthedocs-flyout-current-version-color, #27ae60);\n /* Total height of 1 + 0.75 + 0.75 = 2.5em */\n padding: 0.75em 0em;\n line-height: 1em;\n /* Don\'t grow past content size or shrink below min-content */\n flex: 0 0 auto;\n /* Trim content to get ellipsis on wide content */\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\nheader > span.version {\n /* Grow to fill parent based on content width, shrink content when needed (for ellipsis) */\n flex: 0 1 auto;\n}\n\n/* Give the flex box extra spacing to the left of the first span item. This puts\n * automatic spacing between the logo and the text detail spans */\nheader > span:first-of-type {\n margin-left: auto;\n}\n\nheader > span svg.icon {\n color: rgb(128, 128, 128);\n height: 1em;\n padding-right: 0.25em;\n vertical-align: middle;\n}\n\nmain {\n padding: 5px;\n padding-bottom: 15px;\n margin-top: 5px;\n}\n\nmain.closed {\n display: none;\n}\n\ndl {\n margin: 0;\n padding: 0;\n}\n\ndl > dt {\n font-size: var(\n --readthedocs-flyout-dt-font-size,\n calc(var(--addons-flyout-font-size) * 1.125)\n );\n color: var(--readthedocs-flyout-section-heading-color, rgb(128, 128, 128));\n}\n\ndl > dd {\n display: inline-block;\n margin: 0;\n font-size: var(\n --readthedocs-flyout-dd-font-size,\n calc(var(--addons-flyout-font-size) * 1.125)\n );\n}\n\ndd a {\n text-decoration: none;\n color: var(--readthedocs-flyout-item-link-color, rgb(252, 252, 252));\n padding: 6px;\n display: inline-block;\n}\n\ndd form {\n padding: 6px;\n margin: 0;\n}\n\ndd input {\n padding: 6px;\n font-size: 80%;\n}\n\nhr {\n display: block;\n height: 1px;\n border: 0;\n margin: 20px 0;\n padding: 0;\n border-top-width: 1px;\n border-top-style: solid;\n border-top-color: var(--readthedocs-flyout-divider-color, #413d3d);\n}\n\nsmall a {\n text-decoration: none;\n color: var(--readthedocs-flyout-link-color, rgb(42, 128, 185));\n}\n'],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},6938:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,".tooltip {\n display: none;\n max-width: 650px;\n pointer-events: auto;\n z-index: 9999999;\n max-height: 80vh;\n min-height: 100px;\n position: absolute;\n margin-bottom: 20px;\n top: 0;\n border: none;\n border-radius: 5px;\n background: #fff;\n box-shadow: 0 0 10px 6px rgba(0, 0, 0, 0.1);\n}\n\n.tooltip .tooltip-content {\n box-sizing: border-box;\n max-height: 100%;\n max-width: 100%;\n overflow: auto;\n padding: 18px;\n color: #8d8d8d;\n font-size: 80%;\n line-height: 18px;\n}\n\n.tooltip .tooltip-content .headerlink {\n visibility: hidden;\n}\n\n.tooltip .tooltip-content p {\n font-size: 100%;\n}\n\n.tooltip .arrow {\n position: absolute;\n background: #fff;\n width: 8px;\n height: 8px;\n transform: rotate(45deg);\n}\n\n.link-preview {\n border-bottom: 1px dotted;\n}\n","",{version:3,sources:["webpack://./src/linkpreviews.css"],names:[],mappings:"AAAA;EACE,aAAa;EACb,gBAAgB;EAChB,oBAAoB;EACpB,gBAAgB;EAChB,gBAAgB;EAChB,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;EACnB,MAAM;EACN,YAAY;EACZ,kBAAkB;EAClB,gBAAgB;EAChB,2CAA2C;AAC7C;;AAEA;EACE,sBAAsB;EACtB,gBAAgB;EAChB,eAAe;EACf,cAAc;EACd,aAAa;EACb,cAAc;EACd,cAAc;EACd,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,kBAAkB;EAClB,gBAAgB;EAChB,UAAU;EACV,WAAW;EACX,wBAAwB;AAC1B;;AAEA;EACE,yBAAyB;AAC3B",sourcesContent:[".tooltip {\n display: none;\n max-width: 650px;\n pointer-events: auto;\n z-index: 9999999;\n max-height: 80vh;\n min-height: 100px;\n position: absolute;\n margin-bottom: 20px;\n top: 0;\n border: none;\n border-radius: 5px;\n background: #fff;\n box-shadow: 0 0 10px 6px rgba(0, 0, 0, 0.1);\n}\n\n.tooltip .tooltip-content {\n box-sizing: border-box;\n max-height: 100%;\n max-width: 100%;\n overflow: auto;\n padding: 18px;\n color: #8d8d8d;\n font-size: 80%;\n line-height: 18px;\n}\n\n.tooltip .tooltip-content .headerlink {\n visibility: hidden;\n}\n\n.tooltip .tooltip-content p {\n font-size: 100%;\n}\n\n.tooltip .arrow {\n position: absolute;\n background: #fff;\n width: 8px;\n height: 8px;\n transform: rotate(45deg);\n}\n\n.link-preview {\n border-bottom: 1px dotted;\n}\n"],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},5032:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,':host {\n --addons-notification-font-size: var(\n --readthedocs-notification-font-size,\n var(--readthedocs-font-size, 1rem)\n );\n}\n\n:host > div {\n margin: 1rem 0rem;\n padding-top: var(--addons-notification-font-size);\n padding-bottom: var(--addons-notification-font-size);\n overflow: auto;\n border-radius: 0.5rem;\n font-family: var(\n --readthedocs-notification-font-family,\n "Lato",\n "proxima-nova",\n "Helvetica Neue",\n "Arial",\n "sans-serif"\n );\n font-size: var(--addons-notification-font-size);\n color: var(--readthedocs-notification-color, rgb(64, 64, 64));\n background-color: var(\n --readthedocs-notification-background-color,\n rgb(234, 234, 234)\n );\n}\n\n:host(.floating) > div {\n position: fixed;\n top: 2rem;\n left: 20%; /* (100 - width) / 2 */\n width: 60%;\n z-index: 1750;\n}\n\n:host(.toast) > div {\n position: fixed;\n padding-top: calc(var(--addons-notification-font-size) * 0.75);\n padding-bottom: calc(var(--addons-notification-font-size) * 0.75);\n margin: 0.75rem 0rem;\n top: 2rem;\n right: 2rem;\n z-index: 1750;\n font-size: var(\n --readthedocs-notification-toast-font-size,\n calc(var(--addons-notification-font-size) * 0.85)\n );\n width: 35rem;\n max-width: calc(100vw - 4rem);\n}\n\n@media (max-width: 640px) {\n :host(.toast) > div {\n right: 0.5rem;\n }\n\n :host(.floating) > div {\n width: 95%;\n left: 2%;\n }\n}\n\n:host(.raised) > div {\n box-shadow:\n 0 2px 4px 0 rgba(34, 36, 38, 0.12),\n 0 2px 10px 0 rgba(34, 36, 38, 0.15);\n}\n\n:host(.titled) > div {\n padding: 0rem;\n text-align: center;\n}\n\n:host > div > svg.header.icon {\n height: calc(var(--addons-notification-font-size) * 2);\n padding: 0.5rem 1.5rem;\n float: left;\n}\n\n:host(.toast) > div > svg.header.icon {\n height: calc(var(--addons-notification-font-size) * 1.5);\n}\n\n:host(.titled) > div > svg.header.icon {\n display: none;\n}\n\n:host(.inverted) > div {\n color: var(--readthedocs-notification-color, rgb(234, 234, 234));\n background-color: var(\n --readthedocs-notification-background-color,\n rgb(64, 64, 64)\n );\n}\n\n:host > div a {\n color: var(--readthedocs-notification-link-color, rgb(8, 140, 219));\n text-decoration: none;\n}\n\n:host(.inverted) > div a {\n color: var(--readthedocs-notification-link-color, rgb(134, 203, 243));\n}\n\n:host > div > .title {\n padding: 0.25rem var(--addons-notification-font-size);\n margin-bottom: 0.25rem;\n line-height: var(--addons-notification-font-size);\n font-weight: bold;\n}\n:host > div > div.content {\n line-height: var(--addons-notification-font-size);\n font-size: calc(var(--addons-notification-font-size) * 0.85);\n padding: 0 calc(var(--addons-notification-font-size) * 1.5);\n}\n\n:host(.toast) > div > .title {\n padding: 0rem var(--addons-notification-font-size);\n}\n\n:host(.titled) > div > .title {\n display: block;\n margin: 0rem;\n padding: 0.1rem var(--addons-notification-font-size);\n line-height: calc(var(--addons-notification-font-size) * 2);\n border-radius: 0.5rem 0.5rem 0 0;\n color: var(--readthedocs-notification-title-color, rgb(96, 96, 96));\n background-color: var(\n --readthedocs-notification-title-background-color,\n rgb(224, 224, 224)\n );\n vertical-align: middle;\n font-weight: bold;\n}\n:host(.titled) > div > div.content {\n margin-top: 1rem;\n margin-bottom: 1rem;\n padding: 0rem 0.65rem 0rem 0.65rem;\n}\n\n:host(.inverted) > div > .title {\n color: var(--readthedocs-notification-title-color, rgba(255, 255, 255, 0.9));\n}\n\n:host(.inverted.titled) > div > .title {\n background-color: var(\n --readthedocs-notification-title-background-color,\n rgb(48, 48, 48)\n );\n}\n\n:host > div > .title > .right {\n float: right;\n}\n\n:host > div > .title > .right > svg {\n display: inline-block;\n height: var(--addons-notification-font-size);\n vertical-align: middle;\n cursor: pointer;\n color: var(--readthedocs-notification-title-color, rgba(96, 96, 96));\n font-weight: normal;\n}\n\n:host(.inverted) > div > .title > .right > svg {\n color: var(--readthedocs-notification-title-color, rgba(255, 255, 255, 0.9));\n}\n:host(.titled) > div > .title > .right > svg {\n margin: 0.5rem 0rem;\n}\n',"",{version:3,sources:["webpack://./src/notification.css"],names:[],mappings:"AAAA;EACE;;;GAGC;AACH;;AAEA;EACE,iBAAiB;EACjB,iDAAiD;EACjD,oDAAoD;EACpD,cAAc;EACd,qBAAqB;EACrB;;;;;;;GAOC;EACD,+CAA+C;EAC/C,6DAA6D;EAC7D;;;GAGC;AACH;;AAEA;EACE,eAAe;EACf,SAAS;EACT,SAAS,EAAE,sBAAsB;EACjC,UAAU;EACV,aAAa;AACf;;AAEA;EACE,eAAe;EACf,8DAA8D;EAC9D,iEAAiE;EACjE,oBAAoB;EACpB,SAAS;EACT,WAAW;EACX,aAAa;EACb;;;GAGC;EACD,YAAY;EACZ,6BAA6B;AAC/B;;AAEA;EACE;IACE,aAAa;EACf;;EAEA;IACE,UAAU;IACV,QAAQ;EACV;AACF;;AAEA;EACE;;uCAEqC;AACvC;;AAEA;EACE,aAAa;EACb,kBAAkB;AACpB;;AAEA;EACE,sDAAsD;EACtD,sBAAsB;EACtB,WAAW;AACb;;AAEA;EACE,wDAAwD;AAC1D;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,gEAAgE;EAChE;;;GAGC;AACH;;AAEA;EACE,mEAAmE;EACnE,qBAAqB;AACvB;;AAEA;EACE,qEAAqE;AACvE;;AAEA;EACE,qDAAqD;EACrD,sBAAsB;EACtB,iDAAiD;EACjD,iBAAiB;AACnB;AACA;EACE,iDAAiD;EACjD,4DAA4D;EAC5D,2DAA2D;AAC7D;;AAEA;EACE,kDAAkD;AACpD;;AAEA;EACE,cAAc;EACd,YAAY;EACZ,oDAAoD;EACpD,2DAA2D;EAC3D,gCAAgC;EAChC,mEAAmE;EACnE;;;GAGC;EACD,sBAAsB;EACtB,iBAAiB;AACnB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,kCAAkC;AACpC;;AAEA;EACE,4EAA4E;AAC9E;;AAEA;EACE;;;GAGC;AACH;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,qBAAqB;EACrB,4CAA4C;EAC5C,sBAAsB;EACtB,eAAe;EACf,oEAAoE;EACpE,mBAAmB;AACrB;;AAEA;EACE,4EAA4E;AAC9E;AACA;EACE,mBAAmB;AACrB",sourcesContent:[':host {\n --addons-notification-font-size: var(\n --readthedocs-notification-font-size,\n var(--readthedocs-font-size, 1rem)\n );\n}\n\n:host > div {\n margin: 1rem 0rem;\n padding-top: var(--addons-notification-font-size);\n padding-bottom: var(--addons-notification-font-size);\n overflow: auto;\n border-radius: 0.5rem;\n font-family: var(\n --readthedocs-notification-font-family,\n "Lato",\n "proxima-nova",\n "Helvetica Neue",\n "Arial",\n "sans-serif"\n );\n font-size: var(--addons-notification-font-size);\n color: var(--readthedocs-notification-color, rgb(64, 64, 64));\n background-color: var(\n --readthedocs-notification-background-color,\n rgb(234, 234, 234)\n );\n}\n\n:host(.floating) > div {\n position: fixed;\n top: 2rem;\n left: 20%; /* (100 - width) / 2 */\n width: 60%;\n z-index: 1750;\n}\n\n:host(.toast) > div {\n position: fixed;\n padding-top: calc(var(--addons-notification-font-size) * 0.75);\n padding-bottom: calc(var(--addons-notification-font-size) * 0.75);\n margin: 0.75rem 0rem;\n top: 2rem;\n right: 2rem;\n z-index: 1750;\n font-size: var(\n --readthedocs-notification-toast-font-size,\n calc(var(--addons-notification-font-size) * 0.85)\n );\n width: 35rem;\n max-width: calc(100vw - 4rem);\n}\n\n@media (max-width: 640px) {\n :host(.toast) > div {\n right: 0.5rem;\n }\n\n :host(.floating) > div {\n width: 95%;\n left: 2%;\n }\n}\n\n:host(.raised) > div {\n box-shadow:\n 0 2px 4px 0 rgba(34, 36, 38, 0.12),\n 0 2px 10px 0 rgba(34, 36, 38, 0.15);\n}\n\n:host(.titled) > div {\n padding: 0rem;\n text-align: center;\n}\n\n:host > div > svg.header.icon {\n height: calc(var(--addons-notification-font-size) * 2);\n padding: 0.5rem 1.5rem;\n float: left;\n}\n\n:host(.toast) > div > svg.header.icon {\n height: calc(var(--addons-notification-font-size) * 1.5);\n}\n\n:host(.titled) > div > svg.header.icon {\n display: none;\n}\n\n:host(.inverted) > div {\n color: var(--readthedocs-notification-color, rgb(234, 234, 234));\n background-color: var(\n --readthedocs-notification-background-color,\n rgb(64, 64, 64)\n );\n}\n\n:host > div a {\n color: var(--readthedocs-notification-link-color, rgb(8, 140, 219));\n text-decoration: none;\n}\n\n:host(.inverted) > div a {\n color: var(--readthedocs-notification-link-color, rgb(134, 203, 243));\n}\n\n:host > div > .title {\n padding: 0.25rem var(--addons-notification-font-size);\n margin-bottom: 0.25rem;\n line-height: var(--addons-notification-font-size);\n font-weight: bold;\n}\n:host > div > div.content {\n line-height: var(--addons-notification-font-size);\n font-size: calc(var(--addons-notification-font-size) * 0.85);\n padding: 0 calc(var(--addons-notification-font-size) * 1.5);\n}\n\n:host(.toast) > div > .title {\n padding: 0rem var(--addons-notification-font-size);\n}\n\n:host(.titled) > div > .title {\n display: block;\n margin: 0rem;\n padding: 0.1rem var(--addons-notification-font-size);\n line-height: calc(var(--addons-notification-font-size) * 2);\n border-radius: 0.5rem 0.5rem 0 0;\n color: var(--readthedocs-notification-title-color, rgb(96, 96, 96));\n background-color: var(\n --readthedocs-notification-title-background-color,\n rgb(224, 224, 224)\n );\n vertical-align: middle;\n font-weight: bold;\n}\n:host(.titled) > div > div.content {\n margin-top: 1rem;\n margin-bottom: 1rem;\n padding: 0rem 0.65rem 0rem 0.65rem;\n}\n\n:host(.inverted) > div > .title {\n color: var(--readthedocs-notification-title-color, rgba(255, 255, 255, 0.9));\n}\n\n:host(.inverted.titled) > div > .title {\n background-color: var(\n --readthedocs-notification-title-background-color,\n rgb(48, 48, 48)\n );\n}\n\n:host > div > .title > .right {\n float: right;\n}\n\n:host > div > .title > .right > svg {\n display: inline-block;\n height: var(--addons-notification-font-size);\n vertical-align: middle;\n cursor: pointer;\n color: var(--readthedocs-notification-title-color, rgba(96, 96, 96));\n font-weight: normal;\n}\n\n:host(.inverted) > div > .title > .right > svg {\n color: var(--readthedocs-notification-title-color, rgba(255, 255, 255, 0.9));\n}\n:host(.titled) > div > .title > .right > svg {\n margin: 0.5rem 0rem;\n}\n'],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},6801:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),i=n(6314),a=n.n(i)()(o());a.push([e.id,':host > div {\n font-family: var(\n --readthedocs-search-font-family,\n "Lato",\n "proxima-nova",\n "Helvetica Neue",\n "Arial",\n "sans-serif"\n );\n font-size: var(--readthedocs-search-font-size, 16px);\n\n /* TODO: make some of this variables */\n color: var(--readthedocs-search-color, rgb(64, 64, 64));\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 3000;\n line-height: 1rem;\n}\n\n:host > div a {\n color: var(--readthedocs-search-result-section-color, #2980b9);\n text-decoration: none;\n cursor: pointer;\n}\n\n:host > div code {\n background: var(--readthedocs-search-footer-code-background-color, #fff);\n padding: 2px 5px;\n border: solid 1px var(--readthedocs-search-footer-code-border-color, #e1e4e5);\n color: #333;\n white-space: pre-wrap;\n word-wrap: break-word;\n font-size: 0.875em;\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",\n "Courier New", monospace;\n border-radius: 0;\n}\n\n:host > div .background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1250;\n width: 100%;\n height: 100%;\n background-color: var(\n --readthedocs-search-backdrop-color,\n rgba(0, 0, 0, 0.3)\n );\n backdrop-filter: blur(3px);\n}\n\n:host > div > div.content {\n margin: 5em auto auto auto;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 100000;\n height: 80%;\n width: 60%;\n max-width: 43em;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n border: 1px solid var(--readthedocs-search-content-border-color, #e0e0e0);\n border-radius: 0.7rem;\n line-height: 1.75rem;\n background-color: var(--readthedocs-search-content-background-color, #fcfcfc);\n box-shadow:\n rgba(0, 0, 0, 0.05) 5px 5px 5px 5px,\n rgba(0, 0, 0, 0.05) -5px -5px 5px 5px;\n text-align: left;\n}\n\n:host > div form {\n background-color: var(--readthedocs-search-input-background-color, #eaeaea);\n margin: 0.5rem;\n border-radius: 0.25em;\n font-size: 1.05em;\n padding: 5px;\n display: flex;\n}\n\n:host > div form.focus {\n outline: 2px solid #6ea0ec;\n border-shadow: inset 0 0 1px white transparent;\n}\n\n:host > div form > label {\n font-size: 1.15em;\n padding-left: 5px;\n color: #333;\n}\n\n:host > div form label svg {\n height: 1em;\n position: relative;\n top: 5px;\n}\n\n:host > div form > input {\n border: 0;\n outline: none;\n background: inherit;\n width: max-content;\n font-size: 1.15em;\n box-shadow: none;\n width: 100%;\n padding: 6px;\n line-height: 1;\n}\n\n:host > div .results {\n margin-top: 10px;\n padding: 0.5em;\n overflow-y: scroll;\n height: 100%;\n hyphens: auto;\n}\n\ndiv.hit-block {\n padding-top: 3px;\n border-top: 1px solid rgb(224, 224, 224);\n display: flex;\n flex-direction: column;\n margin-bottom: 10px;\n}\n\ndiv.hit-block a.hit-block-heading {\n display: flex;\n align-items: center;\n}\n\ndiv.hit-block .hit-block-heading-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\ndiv.hit-block a.hit-block-heading i,\ndiv.hit-block .hit-block-heading-container .close-icon {\n font-size: 1.15em;\n width: 1em;\n padding-right: 10px;\n color: rgba(0, 0, 0, 0.54);\n padding-top: 5px;\n}\n\nbutton.close-icon {\n border: none;\n margin: 0;\n padding: 0;\n padding-right: 10px;\n margin-bottom: 15px;\n overflow: visible;\n\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n\n background: transparent;\n cursor: pointer;\n}\n\nbutton.close-icon svg {\n pointer-events: none;\n}\n\ndiv.hit-block a.hit-block-heading i svg,\ndiv.hit-block .hit-block-heading-container svg {\n width: 1em;\n}\n\n:host > div .results a.hit {\n width: 100%;\n display: inline-block;\n padding: 0.15em calc(1.15em + 10px);\n box-sizing: border-box;\n}\n\n:host > div .results a.hit:hover,\n:host > div .results .hit .active {\n background-color: rgb(245, 245, 245);\n}\n\n:host > div .results h2 {\n display: inline-block;\n font-weight: 700;\n margin-top: 3px;\n margin-bottom: 5px;\n font-size: 1em;\n color: black;\n line-height: inherit;\n}\n\n:host > div .results h2:hover {\n border-bottom-color: black;\n}\n\n:host > div .results a.hit > div {\n display: flex;\n flex-direction: column;\n}\n\n:host > div .results .hit .subheading {\n color: var(\n --readthedocs-search-result-section-subheading-color,\n rgba(0, 0, 0, 0.64)\n );\n font-weight: 700;\n font-size: 15px;\n margin-right: 10px;\n overflow-x: hidden;\n margin: inherit;\n line-height: inherit;\n}\n\n:host > div .results .hit .content {\n margin: 0;\n text-decoration: none;\n color: rgba(0, 0, 0, 0.54);\n font-size: 15px;\n display: block;\n margin-bottom: 5px;\n margin-bottom: 0;\n line-height: inherit;\n text-align: left;\n}\n\n:host > div .results span {\n font-style: normal;\n}\n\n:host > div .results .hit h2 span {\n background-color: #e5f6ff;\n padding-bottom: 3px;\n border-bottom-color: black;\n}\n\n:host > div .results .hit span {\n color: var(--readthedocs-search-result-section-highlight-color, #6ea0ec);\n font-style: italic;\n font-weight: bold;\n}\n\n:host div.content > div.footer {\n width: 100%;\n display: inline-block;\n height: 30px;\n background-color: var(\n --readthedocs-search-footer-background-color,\n rgb(234, 234, 234)\n );\n color: #404040;\n}\n\n:host > div .credits {\n float: right;\n margin: 0 15px;\n font-size: small;\n padding-top: 3px;\n}\n\n:host > div .credits a img {\n display: inline-block;\n width: 100px;\n vertical-align: middle;\n}\n\n/* TODO: find an example for domain role and style it properly */\n:host > div .readthedocs-search-result-hit--domain-role {\n font-size: 80%;\n letter-spacing: 1px;\n}\n\n:host > div .filters-title {\n display: block;\n font-size: 0.9rem;\n position: absolute;\n top: 0;\n left: 14px;\n background: rgb(252, 252, 252);\n margin: 0 5px;\n padding: 0 5px;\n}\n\n:host > div .filters {\n position: relative;\n padding-top: 0.9rem;\n margin: 0 0.5em;\n}\n\n:host > div .filters ul {\n display: block;\n margin: 0;\n padding: 5px 14px;\n border-radius: 0.3rem;\n border-style: solid;\n border-width: 1px;\n border-color: var(--readthedocs-search-filters-border-color, #e0e0e0);\n border-bottom: 1px solid #e0e0e0;\n}\n\n:host > div .filters li {\n display: inline-block;\n margin: 0 0 0 15px;\n}\n\n:host > div .filters li label {\n padding: 3px;\n}\n\n:host > div .filters label {\n font-size: 0.9rem;\n}\n\n:host > div .no-results {\n text-align: center;\n margin-top: 1.15em;\n padding: 15px;\n margin: 0 auto;\n width: 80%;\n}\n\n:host > div .no-results > p.title {\n margin-top: 0;\n margin-bottom: 0.5em;\n}\n\n:host > div .no-results > svg {\n height: 5.5rem;\n margin-bottom: 1.15em;\n}\n\n:host > div .no-results > div.footer p {\n font-size: small;\n}\n\n:host > div .no-results > .tips {\n padding: 0;\n text-align: left;\n font-size: 15px;\n margin-bottom: 1.15em;\n}\n\n:host > div .no-results > .tips ul {\n padding: 0 0 0 0.7em;\n margin: 0;\n}\n:host > div .no-results > .tips li {\n list-style-position: inside;\n list-style-type: "\\BB ";\n margin: 0;\n}\n\n:host > div .help {\n display: inline-block;\n font-size: small;\n margin: 0 15px;\n padding: 0;\n}\n\n:host > div .help li {\n list-style: none;\n display: inline-block;\n margin: 0 0.4em;\n}\n',"",{version:3,sources:["webpack://./src/search.css"],names:[],mappings:"AAAA;EACE;;;;;;;GAOC;EACD,oDAAoD;;EAEpD,sCAAsC;EACtC,uDAAuD;EACvD,eAAe;EACf,MAAM;EACN,OAAO;EACP,WAAW;EACX,YAAY;EACZ,aAAa;EACb,iBAAiB;AACnB;;AAEA;EACE,8DAA8D;EAC9D,qBAAqB;EACrB,eAAe;AACjB;;AAEA;EACE,wEAAwE;EACxE,gBAAgB;EAChB,6EAA6E;EAC7E,WAAW;EACX,qBAAqB;EACrB,qBAAqB;EACrB,kBAAkB;EAClB;4BAC0B;EAC1B,gBAAgB;AAClB;;AAEA;EACE,eAAe;EACf,MAAM;EACN,OAAO;EACP,aAAa;EACb,WAAW;EACX,YAAY;EACZ;;;GAGC;EACD,0BAA0B;AAC5B;;AAEA;EACE,0BAA0B;EAC1B,kBAAkB;EAClB,MAAM;EACN,OAAO;EACP,QAAQ;EACR,SAAS;EACT,eAAe;EACf,WAAW;EACX,UAAU;EACV,eAAe;EACf,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,yEAAyE;EACzE,qBAAqB;EACrB,oBAAoB;EACpB,6EAA6E;EAC7E;;yCAEuC;EACvC,gBAAgB;AAClB;;AAEA;EACE,2EAA2E;EAC3E,cAAc;EACd,qBAAqB;EACrB,iBAAiB;EACjB,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,0BAA0B;EAC1B,8CAA8C;AAChD;;AAEA;EACE,iBAAiB;EACjB,iBAAiB;EACjB,WAAW;AACb;;AAEA;EACE,WAAW;EACX,kBAAkB;EAClB,QAAQ;AACV;;AAEA;EACE,SAAS;EACT,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,iBAAiB;EACjB,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,cAAc;AAChB;;AAEA;EACE,gBAAgB;EAChB,cAAc;EACd,kBAAkB;EAClB,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,gBAAgB;EAChB,wCAAwC;EACxC,aAAa;EACb,sBAAsB;EACtB,mBAAmB;AACrB;;AAEA;EACE,aAAa;EACb,mBAAmB;AACrB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,8BAA8B;AAChC;;AAEA;;EAEE,iBAAiB;EACjB,UAAU;EACV,mBAAmB;EACnB,0BAA0B;EAC1B,gBAAgB;AAClB;;AAEA;EACE,YAAY;EACZ,SAAS;EACT,UAAU;EACV,mBAAmB;EACnB,mBAAmB;EACnB,iBAAiB;;EAEjB,qBAAqB;EACrB,UAAU;EACV,WAAW;EACX,sBAAsB;;EAEtB,uBAAuB;EACvB,eAAe;AACjB;;AAEA;EACE,oBAAoB;AACtB;;AAEA;;EAEE,UAAU;AACZ;;AAEA;EACE,WAAW;EACX,qBAAqB;EACrB,mCAAmC;EACnC,sBAAsB;AACxB;;AAEA;;EAEE,oCAAoC;AACtC;;AAEA;EACE,qBAAqB;EACrB,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,cAAc;EACd,YAAY;EACZ,oBAAoB;AACtB;;AAEA;EACE,0BAA0B;AAC5B;;AAEA;EACE,aAAa;EACb,sBAAsB;AACxB;;AAEA;EACE;;;GAGC;EACD,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,kBAAkB;EAClB,eAAe;EACf,oBAAoB;AACtB;;AAEA;EACE,SAAS;EACT,qBAAqB;EACrB,0BAA0B;EAC1B,eAAe;EACf,cAAc;EACd,kBAAkB;EAClB,gBAAgB;EAChB,oBAAoB;EACpB,gBAAgB;AAClB;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,yBAAyB;EACzB,mBAAmB;EACnB,0BAA0B;AAC5B;;AAEA;EACE,wEAAwE;EACxE,kBAAkB;EAClB,iBAAiB;AACnB;;AAEA;EACE,WAAW;EACX,qBAAqB;EACrB,YAAY;EACZ;;;GAGC;EACD,cAAc;AAChB;;AAEA;EACE,YAAY;EACZ,cAAc;EACd,gBAAgB;EAChB,gBAAgB;AAClB;;AAEA;EACE,qBAAqB;EACrB,YAAY;EACZ,sBAAsB;AACxB;;AAEA,gEAAgE;AAChE;EACE,cAAc;EACd,mBAAmB;AACrB;;AAEA;EACE,cAAc;EACd,iBAAiB;EACjB,kBAAkB;EAClB,MAAM;EACN,UAAU;EACV,8BAA8B;EAC9B,aAAa;EACb,cAAc;AAChB;;AAEA;EACE,kBAAkB;EAClB,mBAAmB;EACnB,eAAe;AACjB;;AAEA;EACE,cAAc;EACd,SAAS;EACT,iBAAiB;EACjB,qBAAqB;EACrB,mBAAmB;EACnB,iBAAiB;EACjB,qEAAqE;EACrE,gCAAgC;AAClC;;AAEA;EACE,qBAAqB;EACrB,kBAAkB;AACpB;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;EAClB,kBAAkB;EAClB,aAAa;EACb,cAAc;EACd,UAAU;AACZ;;AAEA;EACE,aAAa;EACb,oBAAoB;AACtB;;AAEA;EACE,cAAc;EACd,qBAAqB;AACvB;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,UAAU;EACV,gBAAgB;EAChB,eAAe;EACf,qBAAqB;AACvB;;AAEA;EACE,oBAAoB;EACpB,SAAS;AACX;AACA;EACE,2BAA2B;EAC3B,wBAAwB;EACxB,SAAS;AACX;;AAEA;EACE,qBAAqB;EACrB,gBAAgB;EAChB,cAAc;EACd,UAAU;AACZ;;AAEA;EACE,gBAAgB;EAChB,qBAAqB;EACrB,eAAe;AACjB",sourcesContent:[':host > div {\n font-family: var(\n --readthedocs-search-font-family,\n "Lato",\n "proxima-nova",\n "Helvetica Neue",\n "Arial",\n "sans-serif"\n );\n font-size: var(--readthedocs-search-font-size, 16px);\n\n /* TODO: make some of this variables */\n color: var(--readthedocs-search-color, rgb(64, 64, 64));\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 3000;\n line-height: 1rem;\n}\n\n:host > div a {\n color: var(--readthedocs-search-result-section-color, #2980b9);\n text-decoration: none;\n cursor: pointer;\n}\n\n:host > div code {\n background: var(--readthedocs-search-footer-code-background-color, #fff);\n padding: 2px 5px;\n border: solid 1px var(--readthedocs-search-footer-code-border-color, #e1e4e5);\n color: #333;\n white-space: pre-wrap;\n word-wrap: break-word;\n font-size: 0.875em;\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",\n "Courier New", monospace;\n border-radius: 0;\n}\n\n:host > div .background {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1250;\n width: 100%;\n height: 100%;\n background-color: var(\n --readthedocs-search-backdrop-color,\n rgba(0, 0, 0, 0.3)\n );\n backdrop-filter: blur(3px);\n}\n\n:host > div > div.content {\n margin: 5em auto auto auto;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 100000;\n height: 80%;\n width: 60%;\n max-width: 43em;\n overflow-y: hidden;\n display: flex;\n flex-direction: column;\n border: 1px solid var(--readthedocs-search-content-border-color, #e0e0e0);\n border-radius: 0.7rem;\n line-height: 1.75rem;\n background-color: var(--readthedocs-search-content-background-color, #fcfcfc);\n box-shadow:\n rgba(0, 0, 0, 0.05) 5px 5px 5px 5px,\n rgba(0, 0, 0, 0.05) -5px -5px 5px 5px;\n text-align: left;\n}\n\n:host > div form {\n background-color: var(--readthedocs-search-input-background-color, #eaeaea);\n margin: 0.5rem;\n border-radius: 0.25em;\n font-size: 1.05em;\n padding: 5px;\n display: flex;\n}\n\n:host > div form.focus {\n outline: 2px solid #6ea0ec;\n border-shadow: inset 0 0 1px white transparent;\n}\n\n:host > div form > label {\n font-size: 1.15em;\n padding-left: 5px;\n color: #333;\n}\n\n:host > div form label svg {\n height: 1em;\n position: relative;\n top: 5px;\n}\n\n:host > div form > input {\n border: 0;\n outline: none;\n background: inherit;\n width: max-content;\n font-size: 1.15em;\n box-shadow: none;\n width: 100%;\n padding: 6px;\n line-height: 1;\n}\n\n:host > div .results {\n margin-top: 10px;\n padding: 0.5em;\n overflow-y: scroll;\n height: 100%;\n hyphens: auto;\n}\n\ndiv.hit-block {\n padding-top: 3px;\n border-top: 1px solid rgb(224, 224, 224);\n display: flex;\n flex-direction: column;\n margin-bottom: 10px;\n}\n\ndiv.hit-block a.hit-block-heading {\n display: flex;\n align-items: center;\n}\n\ndiv.hit-block .hit-block-heading-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\ndiv.hit-block a.hit-block-heading i,\ndiv.hit-block .hit-block-heading-container .close-icon {\n font-size: 1.15em;\n width: 1em;\n padding-right: 10px;\n color: rgba(0, 0, 0, 0.54);\n padding-top: 5px;\n}\n\nbutton.close-icon {\n border: none;\n margin: 0;\n padding: 0;\n padding-right: 10px;\n margin-bottom: 15px;\n overflow: visible;\n\n display: inline-block;\n width: 1em;\n height: 1em;\n vertical-align: middle;\n\n background: transparent;\n cursor: pointer;\n}\n\nbutton.close-icon svg {\n pointer-events: none;\n}\n\ndiv.hit-block a.hit-block-heading i svg,\ndiv.hit-block .hit-block-heading-container svg {\n width: 1em;\n}\n\n:host > div .results a.hit {\n width: 100%;\n display: inline-block;\n padding: 0.15em calc(1.15em + 10px);\n box-sizing: border-box;\n}\n\n:host > div .results a.hit:hover,\n:host > div .results .hit .active {\n background-color: rgb(245, 245, 245);\n}\n\n:host > div .results h2 {\n display: inline-block;\n font-weight: 700;\n margin-top: 3px;\n margin-bottom: 5px;\n font-size: 1em;\n color: black;\n line-height: inherit;\n}\n\n:host > div .results h2:hover {\n border-bottom-color: black;\n}\n\n:host > div .results a.hit > div {\n display: flex;\n flex-direction: column;\n}\n\n:host > div .results .hit .subheading {\n color: var(\n --readthedocs-search-result-section-subheading-color,\n rgba(0, 0, 0, 0.64)\n );\n font-weight: 700;\n font-size: 15px;\n margin-right: 10px;\n overflow-x: hidden;\n margin: inherit;\n line-height: inherit;\n}\n\n:host > div .results .hit .content {\n margin: 0;\n text-decoration: none;\n color: rgba(0, 0, 0, 0.54);\n font-size: 15px;\n display: block;\n margin-bottom: 5px;\n margin-bottom: 0;\n line-height: inherit;\n text-align: left;\n}\n\n:host > div .results span {\n font-style: normal;\n}\n\n:host > div .results .hit h2 span {\n background-color: #e5f6ff;\n padding-bottom: 3px;\n border-bottom-color: black;\n}\n\n:host > div .results .hit span {\n color: var(--readthedocs-search-result-section-highlight-color, #6ea0ec);\n font-style: italic;\n font-weight: bold;\n}\n\n:host div.content > div.footer {\n width: 100%;\n display: inline-block;\n height: 30px;\n background-color: var(\n --readthedocs-search-footer-background-color,\n rgb(234, 234, 234)\n );\n color: #404040;\n}\n\n:host > div .credits {\n float: right;\n margin: 0 15px;\n font-size: small;\n padding-top: 3px;\n}\n\n:host > div .credits a img {\n display: inline-block;\n width: 100px;\n vertical-align: middle;\n}\n\n/* TODO: find an example for domain role and style it properly */\n:host > div .readthedocs-search-result-hit--domain-role {\n font-size: 80%;\n letter-spacing: 1px;\n}\n\n:host > div .filters-title {\n display: block;\n font-size: 0.9rem;\n position: absolute;\n top: 0;\n left: 14px;\n background: rgb(252, 252, 252);\n margin: 0 5px;\n padding: 0 5px;\n}\n\n:host > div .filters {\n position: relative;\n padding-top: 0.9rem;\n margin: 0 0.5em;\n}\n\n:host > div .filters ul {\n display: block;\n margin: 0;\n padding: 5px 14px;\n border-radius: 0.3rem;\n border-style: solid;\n border-width: 1px;\n border-color: var(--readthedocs-search-filters-border-color, #e0e0e0);\n border-bottom: 1px solid #e0e0e0;\n}\n\n:host > div .filters li {\n display: inline-block;\n margin: 0 0 0 15px;\n}\n\n:host > div .filters li label {\n padding: 3px;\n}\n\n:host > div .filters label {\n font-size: 0.9rem;\n}\n\n:host > div .no-results {\n text-align: center;\n margin-top: 1.15em;\n padding: 15px;\n margin: 0 auto;\n width: 80%;\n}\n\n:host > div .no-results > p.title {\n margin-top: 0;\n margin-bottom: 0.5em;\n}\n\n:host > div .no-results > svg {\n height: 5.5rem;\n margin-bottom: 1.15em;\n}\n\n:host > div .no-results > div.footer p {\n font-size: small;\n}\n\n:host > div .no-results > .tips {\n padding: 0;\n text-align: left;\n font-size: 15px;\n margin-bottom: 1.15em;\n}\n\n:host > div .no-results > .tips ul {\n padding: 0 0 0 0.7em;\n margin: 0;\n}\n:host > div .no-results > .tips li {\n list-style-position: inside;\n list-style-type: "\\BB ";\n margin: 0;\n}\n\n:host > div .help {\n display: inline-block;\n font-size: small;\n margin: 0 15px;\n padding: 0;\n}\n\n:host > div .help li {\n list-style: none;\n display: inline-block;\n margin: 0 0.4em;\n}\n'],sourceRoot:""}]);var s=new CSSStyleSheet;s.replaceSync(a.toString());const c=s},6314:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(r)for(var s=0;s0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),t.push(u))}},t}},1354:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),i="/*# ".concat(o," */");return[t].concat([i]).join("\n")}return[t].join("\n")}},2189:e=>{var t=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32},n=-1;t.Diff=function(e,t){return[e,t]},t.prototype.diff_main=function(e,n,r,o){void 0===o&&(o=this.Diff_Timeout<=0?Number.MAX_VALUE:(new Date).getTime()+1e3*this.Diff_Timeout);var i=o;if(null==e||null==n)throw new Error("Null input. (diff_main)");if(e==n)return e?[new t.Diff(0,e)]:[];void 0===r&&(r=!0);var a=r,s=this.diff_commonPrefix(e,n),c=e.substring(0,s);e=e.substring(s),n=n.substring(s),s=this.diff_commonSuffix(e,n);var l=e.substring(e.length-s);e=e.substring(0,e.length-s),n=n.substring(0,n.length-s);var u=this.diff_compute_(e,n,a,i);return c&&u.unshift(new t.Diff(0,c)),l&&u.push(new t.Diff(0,l)),this.diff_cleanupMerge(u),u},t.prototype.diff_compute_=function(e,r,o,i){var a;if(!e)return[new t.Diff(1,r)];if(!r)return[new t.Diff(n,e)];var s=e.length>r.length?e:r,c=e.length>r.length?r:e,l=s.indexOf(c);if(-1!=l)return a=[new t.Diff(1,s.substring(0,l)),new t.Diff(0,c),new t.Diff(1,s.substring(l+c.length))],e.length>r.length&&(a[0][0]=a[2][0]=n),a;if(1==c.length)return[new t.Diff(n,e),new t.Diff(1,r)];var u=this.diff_halfMatch_(e,r);if(u){var d=u[0],f=u[1],h=u[2],p=u[3],m=u[4],g=this.diff_main(d,h,o,i),y=this.diff_main(f,p,o,i);return g.concat([new t.Diff(0,m)],y)}return o&&e.length>100&&r.length>100?this.diff_lineMode_(e,r,i):this.diff_bisect_(e,r,i)},t.prototype.diff_lineMode_=function(e,r,o){var i=this.diff_linesToChars_(e,r);e=i.chars1,r=i.chars2;var a=i.lineArray,s=this.diff_main(e,r,!1,o);this.diff_charsToLines_(s,a),this.diff_cleanupSemantic(s),s.push(new t.Diff(0,""));for(var c=0,l=0,u=0,d="",f="";c=1&&u>=1){s.splice(c-l-u,l+u),c=c-l-u;for(var h=this.diff_main(d,f,!1,o),p=h.length-1;p>=0;p--)s.splice(c,0,h[p]);c+=h.length}u=0,l=0,d="",f=""}c++}return s.pop(),s},t.prototype.diff_bisect_=function(e,r,o){for(var i=e.length,a=r.length,s=Math.ceil((i+a)/2),c=s,l=2*s,u=new Array(l),d=new Array(l),f=0;fo);v++){for(var b=-v+m;b<=v-g;b+=2){for(var w=c+b,M=(x=b==-v||b!=v&&u[w-1]i)g+=2;else if(M>a)m+=2;else if(p){if((L=c+h-b)>=0&&L=(C=i-d[L]))return this.diff_bisectSplit_(e,r,x,M,o)}}for(var E=-v+y;E<=v-A;E+=2){for(var C,L=c+E,j=(C=E==-v||E!=v&&d[L-1]i)A+=2;else if(j>a)y+=2;else if(!p){if((w=c+h-E)>=0&&w=(C=i-C))return this.diff_bisectSplit_(e,r,x,M,o)}}}}return[new t.Diff(n,e),new t.Diff(1,r)]},t.prototype.diff_bisectSplit_=function(e,t,n,r,o){var i=e.substring(0,n),a=t.substring(0,r),s=e.substring(n),c=t.substring(r),l=this.diff_main(i,a,!1,o),u=this.diff_main(s,c,!1,o);return l.concat(u)},t.prototype.diff_linesToChars_=function(e,t){var n=[],r={};function o(e){for(var t="",o=0,a=-1,s=n.length;ar?e=e.substring(n-r):nt.length?e:t,r=e.length>t.length?t:e;if(n.length<4||2*r.length=e.length?[r,i,a,s,u]:null}var a,s,c,l,u,d=i(n,r,Math.ceil(n.length/4)),f=i(n,r,Math.ceil(n.length/2));return d||f?(a=f?d&&d[4].length>f[4].length?d:f:d,e.length>t.length?(s=a[0],c=a[1],l=a[2],u=a[3]):(l=a[0],u=a[1],s=a[2],c=a[3]),[s,c,l,u,a[4]]):null},t.prototype.diff_cleanupSemantic=function(e){for(var r=!1,o=[],i=0,a=null,s=0,c=0,l=0,u=0,d=0;s0?o[i-1]:-1,c=0,l=0,u=0,d=0,a=null,r=!0)),s++;for(r&&this.diff_cleanupMerge(e),this.diff_cleanupSemanticLossless(e),s=1;s=m?(p>=f.length/2||p>=h.length/2)&&(e.splice(s,0,new t.Diff(0,h.substring(0,p))),e[s-1][1]=f.substring(0,f.length-p),e[s+1][1]=h.substring(p),s++):(m>=f.length/2||m>=h.length/2)&&(e.splice(s,0,new t.Diff(0,f.substring(0,m))),e[s-1][0]=1,e[s-1][1]=h.substring(0,h.length-m),e[s+1][0]=n,e[s+1][1]=f.substring(m),s++),s++}s++}},t.prototype.diff_cleanupSemanticLossless=function(e){function n(e,n){if(!e||!n)return 6;var r=e.charAt(e.length-1),o=n.charAt(0),i=r.match(t.nonAlphaNumericRegex_),a=o.match(t.nonAlphaNumericRegex_),s=i&&r.match(t.whitespaceRegex_),c=a&&o.match(t.whitespaceRegex_),l=s&&r.match(t.linebreakRegex_),u=c&&o.match(t.linebreakRegex_),d=l&&e.match(t.blanklineEndRegex_),f=u&&n.match(t.blanklineStartRegex_);return d||f?5:l||u?4:i&&!s&&c?3:s||c?2:i||a?1:0}for(var r=1;r=f&&(f=h,l=o,u=i,d=a)}e[r-1][1]!=l&&(l?e[r-1][1]=l:(e.splice(r-1,1),r--),e[r][1]=u,d?e[r+1][1]=d:(e.splice(r+1,1),r--))}r++}},t.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,t.whitespaceRegex_=/\s/,t.linebreakRegex_=/[\r\n]/,t.blanklineEndRegex_=/\n\r?\n$/,t.blanklineStartRegex_=/^\r?\n\r?\n/,t.prototype.diff_cleanupEfficiency=function(e){for(var r=!1,o=[],i=0,a=null,s=0,c=!1,l=!1,u=!1,d=!1;s0?o[i-1]:-1,u=d=!1),r=!0)),s++;r&&this.diff_cleanupMerge(e)},t.prototype.diff_cleanupMerge=function(e){e.push(new t.Diff(0,""));for(var r,o=0,i=0,a=0,s="",c="";o1?(0!==i&&0!==a&&(0!==(r=this.diff_commonPrefix(c,s))&&(o-i-a>0&&0==e[o-i-a-1][0]?e[o-i-a-1][1]+=c.substring(0,r):(e.splice(0,0,new t.Diff(0,c.substring(0,r))),o++),c=c.substring(r),s=s.substring(r)),0!==(r=this.diff_commonSuffix(c,s))&&(e[o][1]=c.substring(c.length-r)+e[o][1],c=c.substring(0,c.length-r),s=s.substring(0,s.length-r))),o-=i+a,e.splice(o,i+a),s.length&&(e.splice(o,0,new t.Diff(n,s)),o++),c.length&&(e.splice(o,0,new t.Diff(1,c)),o++),o++):0!==o&&0==e[o-1][0]?(e[o-1][1]+=e[o][1],e.splice(o,1)):o++,a=0,i=0,s="",c=""}""===e[e.length-1][1]&&e.pop();var l=!1;for(o=1;ot));r++)a=o,s=i;return e.length!=r&&e[r][0]===n?s:s+(t-a)},t.prototype.diff_prettyHtml=function(e){for(var t=[],r=/&/g,o=//g,a=/\n/g,s=0;s");switch(c){case 1:t[s]=''+l+"";break;case n:t[s]=''+l+"";break;case 0:t[s]=""+l+""}}return t.join("")},t.prototype.diff_text1=function(e){for(var t=[],n=0;nthis.Match_MaxBits)throw new Error("Pattern too long for this browser.");var r=this.match_alphabet_(t),o=this;function i(e,r){var i=e/t.length,a=Math.abs(n-r);return o.Match_Distance?i+a/o.Match_Distance:a?1:i}var a=this.Match_Threshold,s=e.indexOf(t,n);-1!=s&&(a=Math.min(i(0,s),a),-1!=(s=e.lastIndexOf(t,n+t.length))&&(a=Math.min(i(0,s),a)));var c,l,u=1<=p;y--){var A=r[e.charAt(y-1)];if(g[y]=0===h?(g[y+1]<<1|1)&A:(g[y+1]<<1|1)&A|(d[y+1]|d[y])<<1|1|d[y+1],g[y]&u){var v=i(h,y-1);if(v<=a){if(a=v,!((s=y-1)>n))break;p=Math.max(1,2*n-s)}}}if(i(h+1,n)>a)break;d=g}return s},t.prototype.match_alphabet_=function(e){for(var t={},n=0;n2&&(this.diff_cleanupSemantic(a),this.diff_cleanupEfficiency(a));else if(e&&"object"==typeof e&&void 0===r&&void 0===o)a=e,i=this.diff_text1(a);else if("string"==typeof e&&r&&"object"==typeof r&&void 0===o)i=e,a=r;else{if("string"!=typeof e||"string"!=typeof r||!o||"object"!=typeof o)throw new Error("Unknown call format to patch_make.");i=e,a=o}if(0===a.length)return[];for(var s=[],c=new t.patch_obj,l=0,u=0,d=0,f=i,h=i,p=0;p=2*this.Patch_Margin&&l&&(this.patch_addContext_(c,f),s.push(c),c=new t.patch_obj,l=0,f=h,u=d)}1!==m&&(u+=g.length),m!==n&&(d+=g.length)}return l&&(this.patch_addContext_(c,f),s.push(c)),s},t.prototype.patch_deepCopy=function(e){for(var n=[],r=0;rthis.Match_MaxBits?-1!=(s=this.match_main(t,u.substring(0,this.Match_MaxBits),l))&&(-1==(d=this.match_main(t,u.substring(u.length-this.Match_MaxBits),l+u.length-this.Match_MaxBits))||s>=d)&&(s=-1):s=this.match_main(t,u,l),-1==s)i[a]=!1,o-=e[a].length2-e[a].length1;else if(i[a]=!0,o=s-l,u==(c=-1==d?t.substring(s,s+u.length):t.substring(s,d+this.Match_MaxBits)))t=t.substring(0,s)+this.diff_text2(e[a].diffs)+t.substring(s+u.length);else{var f=this.diff_main(u,c,!1);if(u.length>this.Match_MaxBits&&this.diff_levenshtein(f)/u.length>this.Patch_DeleteThreshold)i[a]=!1;else{this.diff_cleanupSemanticLossless(f);for(var h,p=0,m=0;ma[0][1].length){var s=n-a[0][1].length;a[0][1]=r.substring(a[0][1].length)+a[0][1],i.start1-=s,i.start2-=s,i.length1+=s,i.length2+=s}if(0==(a=(i=e[e.length-1]).diffs).length||0!=a[a.length-1][0])a.push(new t.Diff(0,r)),i.length1+=n,i.length2+=n;else if(n>a[a.length-1][1].length){s=n-a[a.length-1][1].length;a[a.length-1][1]+=r.substring(0,s),i.length1+=s,i.length2+=s}return r},t.prototype.patch_splitMax=function(e){for(var r=this.Match_MaxBits,o=0;o2*r?(l.length1+=f.length,a+=f.length,u=!1,l.diffs.push(new t.Diff(d,f)),i.diffs.shift()):(f=f.substring(0,r-l.length1-this.Patch_Margin),l.length1+=f.length,a+=f.length,0===d?(l.length2+=f.length,s+=f.length):u=!1,l.diffs.push(new t.Diff(d,f)),f==i.diffs[0][1]?i.diffs.shift():i.diffs[0][1]=i.diffs[0][1].substring(f.length))}c=(c=this.diff_text2(l.diffs)).substring(c.length-this.Patch_Margin);var h=this.diff_text1(i.diffs).substring(0,this.Patch_Margin);""!==h&&(l.length1+=h.length,l.length2+=h.length,0!==l.diffs.length&&0===l.diffs[l.diffs.length-1][0]?l.diffs[l.diffs.length-1][1]+=h:l.diffs.push(new t.Diff(0,h))),u||e.splice(++o,0,l)}}},t.prototype.patch_toText=function(e){for(var t=[],n=0;n{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,o,i;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(o=r;0!=o--;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(i=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(n,i[o]))return!1;for(o=r;0!=o--;){var a=i[o];if(!e(t[a],n[a]))return!1}return!0}return t!=t&&n!=n}},7106:e=>{"use strict";var t=e.exports=function(e,t,r){"function"==typeof t&&(r=t,t={}),n(t,"function"==typeof(r=t.cb||r)?r:r.pre||function(){},r.post||function(){},e,"",e)};function n(e,r,o,i,a,s,c,l,u,d){if(i&&"object"==typeof i&&!Array.isArray(i)){for(var f in r(i,a,s,c,l,u,d),i){var h=i[f];if(Array.isArray(h)){if(f in t.arrayKeywords)for(var p=0;p{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(8274),o=new Set;o.add("IMG"),o.add("VIDEO"),o.add("IFRAME"),o.add("OBJECT"),o.add("SVG");var i=new Set;i.add("BDO"),i.add("BDI"),i.add("Q"),i.add("CITE"),i.add("CODE"),i.add("DATA"),i.add("TIME"),i.add("VAR"),i.add("DFN"),i.add("ABBR"),i.add("STRONG"),i.add("EM"),i.add("BIG"),i.add("SMALL"),i.add("MARK"),i.add("SUB"),i.add("SUP"),i.add("SAMP"),i.add("KBD"),i.add("B"),i.add("I"),i.add("S"),i.add("U"),i.add("SPAN"),t.optionsToConfig=function(e){var t=void 0===e?{}:e,n=t.addedClass,a=void 0===n?"vdd-added":n,s=t.modifiedClass,c=void 0===s?"vdd-modified":s,l=t.removedClass,u=void 0===l?"vdd-removed":l,d=t.skipModified,f=void 0!==d&&d,h=t.skipChildren,p=t.skipSelf,m=t.diffText;return{addedClass:a,diffText:void 0===m?r.diffText:m,modifiedClass:c,removedClass:u,skipModified:f,skipChildren:function(e){if(!r.isElement(e)&&!r.isDocumentFragment(e)&&!r.isDocument(e))return!0;if(h){var t=h(e);if("boolean"==typeof t)return t}return o.has(e.nodeName)},skipSelf:function(e){if(!r.isText(e)&&!r.isElement(e))return!0;if(p){var t=p(e);if("boolean"==typeof t)return t}return i.has(e.nodeName)}}}},3741:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2189),o=n(9804),i=n(7154),a=n(8274),s=function(e){return"TH"===e?"TD":e},c=function(e,t){return new i.DomIterator(e,t).reduce((function(e,t){return e+(a.isText(t)?t.data:a.charForNodeName(s(t.nodeName)))}),"")},l=function(e){return a.isText(e)?e.length:1},u=function(e){return"TR"===e.nodeName},d={skipChildren:u,skipSelf:function(e){return!u(e)}};t.visualDomDiff=function e(t,n,u){var f,h;void 0===u&&(u={});var p,m,g,y,A,v=n.ownerDocument||n,b=o.optionsToConfig(u),w=b.addedClass,M=b.diffText,E=b.modifiedClass,C=b.removedClass,L=b.skipSelf,j=b.skipChildren,x=function(e){return!L(e)},N=function(e,t){return a.getAncestors(e,t).filter(x).length},S=function(e){return a.isElement(e)&&L(e)},T=function(e,t){return a.getAncestors(e,t).filter(S).reverse()},k=function(e){return V.has(e)?1:G.has(e)?-1:0},_=M(c(t,b),c(n,b)),D=0,I=new i.DomIterator(t,b),O=new i.DomIterator(n,b),z=0,B=0,$=0;g=_[D++],f=I.next(),p=f.done,y=f.value,h=O.next(),m=h.done,A=h.value;var P=v.createDocumentFragment(),R=P,U=0,Y=P,Q=0,q=null,F=null,G=new Set,V=new Set,W=new Set,H=new Map,Z=new Array,K=new Map;function X(){for(var e=N(y,t);U>e;){if(!R.parentNode)return a.never();R===q&&(q=null),R=R.parentNode,U--}if(U!==e)return a.never()}function J(){for(var e=N(A,n);Q>e;){if(!Y.parentNode)return a.never();Y===F&&(F=null),Y=Y.parentNode,Q--}if(Q!==e)return a.never()}function ee(e){if(R!==Y||F||q)return a.never();if(a.isText(e)){var r=T(y,t),o=T(A,n);H.set(e,o);var i=r.length;if(i!==o.length)W.add(e);else for(var s=0;st)return a.never()}function oe(e){var t,n=l(y);if((B+=e)===n)t=I.next(),p=t.done,y=t.value,B=0;else if(B>n)return a.never()}function ie(e){var t,n=l(A);if(($+=e)===n)t=O.next(),m=t.done,A=t.value,$=0;else if($>n)return a.never()}for(;g;)if(g[0]===r.DIFF_DELETE){if(p)return a.never();X();var ae=Math.min(g[1].length-z,l(y)-B),se=g[1].substring(z,z+ae);te(a.isText(y)?v.createTextNode(se):y.cloneNode(!1)),re(ae),oe(ae)}else if(g[0]===r.DIFF_INSERT){if(m)return a.never();J();var ce=Math.min(g[1].length-z,l(A)-$);se=g[1].substring(z,z+ce);ne(a.isText(A)?v.createTextNode(se):A.cloneNode(!1)),re(ce),ie(ce)}else{if(p||m)return a.never();X(),J();var le=Math.min(g[1].length-z,l(y)-B,l(A)-$);se=g[1].substring(z,z+le);R===Y&&(a.isText(y)&&a.isText(A)||s(y.nodeName)===s(A.nodeName)&&!j(y)&&!j(A)||a.areNodesEqual(y,A))?ee(a.isText(A)?v.createTextNode(se):A.cloneNode(!1)):(te(a.isText(y)?v.createTextNode(se):y.cloneNode(!1)),ne(a.isText(A)?v.createTextNode(se):A.cloneNode(!1))),re(le),oe(le),ie(le)}return G.forEach((function(e){for(var t=e.parentNode,n=e.previousSibling;n&&V.has(n);)t.insertBefore(e,n),n=e.previousSibling})),Z.forEach((function(t){var n=t.newTable,r=t.oldTable,o=t.outputTable;if(!a.isTableValid(r,!0)||!a.isTableValid(n,!0)||!a.isTableValid(o,!1)){new i.DomIterator(o).forEach((function(e){V.delete(e),G.delete(e),W.delete(e),H.delete(e)}));var s=o.parentNode,c=r.cloneNode(!0),l=n.cloneNode(!0);return s.insertBefore(c,o),s.insertBefore(l,o),s.removeChild(o),G.add(c),void V.add(l)}var f=[];new i.DomIterator(o,d).some((function(e){var t=K.get(e);if(!t)return!1;var n=t.oldRow,r=t.newRow,o=n.childNodes.length,i=r.childNodes.length,a=Math.max(o,i),s=Math.min(o,i);if(e.childNodes.length===a)for(var c=e.childNodes,l=0,u=c.length;l{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){this.rootNode=e,this.config=t,this.descend=!0,this.nextNode=this.rootNode,this.skipSelf(this.nextNode)&&this.next()}return e.prototype.toArray=function(){for(var e,t=[],n=this.next(),r=n.done,o=n.value;!r;)t.push(o),r=(e=this.next()).done,o=e.value;return t},e.prototype.forEach=function(e){for(var t,n=this.next(),r=n.done,o=n.value;!r;)e(o),r=(t=this.next()).done,o=t.value},e.prototype.reduce=function(e,t){for(var n,r=t,o=this.next(),i=o.done,a=o.value;!i;)r=e(r,a),i=(n=this.next()).done,a=n.value;return r},e.prototype.some=function(e){for(var t,n=this.next(),r=n.done,o=n.value;!r;){if(e(o))return!0;r=(t=this.next()).done,o=t.value}return!1},e.prototype.next=function(){if(!this.nextNode)return{done:!0,value:this.rootNode};var e=this.nextNode;return this.descend&&this.nextNode.firstChild&&!this.skipChildren(this.nextNode)?this.nextNode=this.nextNode.firstChild:this.nextNode===this.rootNode?this.nextNode=null:this.nextNode.nextSibling?(this.nextNode=this.nextNode.nextSibling,this.descend=!0):(this.nextNode=this.nextNode.parentNode,this.descend=!1,this.next()),this.nextNode&&this.skipSelf(this.nextNode)&&this.next(),{done:!1,value:e}},e.prototype.skipSelf=function(e){return!(!this.config||!this.config.skipSelf)&&this.config.skipSelf(e)},e.prototype.skipChildren=function(e){return!(!this.config||!this.config.skipChildren)&&this.config.skipChildren(e)},e}();t.DomIterator=n},8968:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n(1635).__exportStar(n(3741),t)},8274:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2189);function o(e){return e.nodeType===e.ELEMENT_NODE}function i(e){return e.nodeType===e.TEXT_NODE}function a(e){return e.nodeType===e.COMMENT_NODE}function s(e,t){return e===t}function c(e,t,n){if(void 0===n&&(n=s),e.length!==t.length)return!1;for(var r=0,o=e.length;r="豈"?t++:(n[1]=a.substring(0,a.length-1),o[1]=l+s.substring(0,s.length-1),i[1]=l+c,0===n[1].length&&e.splice(t,1))}else t++}}t.isElement=o,t.isText=i,t.isDocument=function(e){return e.nodeType===e.DOCUMENT_NODE},t.isDocumentFragment=function(e){return e.nodeType===e.DOCUMENT_FRAGMENT_NODE},t.isComment=a,t.strictEqual=s,t.areArraysEqual=c,t.areNodesEqual=function e(t,n,r){if(void 0===r&&(r=!1),t===n)return!0;if(t.nodeType!==n.nodeType||t.nodeName!==n.nodeName)return!1;if(i(t)||a(t)){if(t.data!==n.data)return!1}else if(o(t)){var s=l(t).sort();if(!c(s,l(n).sort()))return!1;for(var u=0,d=s.length;u0&&i.push([r.DIFF_EQUAL,l.substring(0,p)]),f.diff_cleanupSemantic(i),h(o,i),i.length=0,o.push([r.DIFF_EQUAL,l.substring(p,u-m)]),m>0&&i.push([r.DIFF_EQUAL,l.substring(u-m)])}else i.push(c)}else i.push(c)}return f.diff_cleanupSemantic(i),h(o,i),i.length=0,f.diff_cleanupMerge(o),d(o),o},t.markUpNode=function(e,t,n){var r=e.ownerDocument,i=e.parentNode,a=e.previousSibling;if(o(e))e.classList.add(n);else if(a&&a.nodeName===t&&a.classList.contains(n))a.appendChild(e);else{var s=r.createElement(t);s.classList.add(n),i.insertBefore(s,e),s.appendChild(e)}},t.isTableValid=function(e,t){var n;return function(e){var t=e.childNodes,n=t.length,o=0;o{"use strict";const{normalizeIPv6:r,normalizeIPv4:o,removeDotSegments:i,recomposeAuthority:a,normalizeComponentEncoding:s}=n(4834),c=n(343);function l(e,t,n,r){const o={};return r||(e=h(u(e,n),n),t=h(u(t,n),n)),!(n=n||{}).tolerant&&t.scheme?(o.scheme=t.scheme,o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=i(t.path||""),o.query=t.query):(void 0!==t.userinfo||void 0!==t.host||void 0!==t.port?(o.userinfo=t.userinfo,o.host=t.host,o.port=t.port,o.path=i(t.path||""),o.query=t.query):(t.path?("/"===t.path.charAt(0)?o.path=i(t.path):(void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?o.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:o.path=t.path:o.path="/"+t.path,o.path=i(o.path)),o.query=t.query):(o.path=e.path,void 0!==t.query?o.query=t.query:o.query=e.query),o.userinfo=e.userinfo,o.host=e.host,o.port=e.port),o.scheme=e.scheme),o.fragment=t.fragment,o}function u(e,t){const n={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},r=Object.assign({},t),o=[],s=c[(r.scheme||n.scheme||"").toLowerCase()];s&&s.serialize&&s.serialize(n,r),void 0!==n.path&&(r.skipEscape?n.path=unescape(n.path):(n.path=escape(n.path),void 0!==n.scheme&&(n.path=n.path.split("%3A").join(":")))),"suffix"!==r.reference&&n.scheme&&(o.push(n.scheme),o.push(":"));const l=a(n,r);if(void 0!==l&&("suffix"!==r.reference&&o.push("//"),o.push(l),n.path&&"/"!==n.path.charAt(0)&&o.push("/")),void 0!==n.path){let e=n.path;r.absolutePath||s&&s.absolutePath||(e=i(e)),void 0===l&&(e=e.replace(/^\/\//u,"/%2F")),o.push(e)}return void 0!==n.query&&(o.push("?"),o.push(n.query)),void 0!==n.fragment&&(o.push("#"),o.push(n.fragment)),o.join("")}const d=Array.from({length:127},((e,t)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(t))));const f=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function h(e,t){const n=Object.assign({},t),i={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},a=-1!==e.indexOf("%");let s=!1;"suffix"===n.reference&&(e=(n.scheme?n.scheme+":":"")+"//"+e);const l=e.match(f);if(l){if(i.scheme=l[1],i.userinfo=l[3],i.host=l[4],i.port=parseInt(l[5],10),i.path=l[6]||"",i.query=l[7],i.fragment=l[8],isNaN(i.port)&&(i.port=l[5]),i.host){const e=o(i.host);if(!1===e.isIPV4){const t=r(e.host,{isIPV4:!1});i.host=t.host.toLowerCase(),s=t.isIPV6}else i.host=e.host,s=!0}void 0!==i.scheme||void 0!==i.userinfo||void 0!==i.host||void 0!==i.port||i.path||void 0!==i.query?void 0===i.scheme?i.reference="relative":void 0===i.fragment?i.reference="absolute":i.reference="uri":i.reference="same-document",n.reference&&"suffix"!==n.reference&&n.reference!==i.reference&&(i.error=i.error||"URI is not a "+n.reference+" reference.");const e=c[(n.scheme||i.scheme||"").toLowerCase()];if(!(n.unicodeSupport||e&&e.unicodeSupport)&&i.host&&(n.domainHost||e&&e.domainHost)&&!1===s&&function(e){let t=0;for(let n=0,r=e.length;n126||d[t])return!0;return!1}(i.host))try{i.host=URL.domainToASCII(i.host.toLowerCase())}catch(e){i.error=i.error||"Host's domain name can not be converted to ASCII: "+e}(!e||e&&!e.skipNormalize)&&(a&&void 0!==i.scheme&&(i.scheme=unescape(i.scheme)),a&&void 0!==i.userinfo&&(i.userinfo=unescape(i.userinfo)),a&&void 0!==i.host&&(i.host=unescape(i.host)),void 0!==i.path&&i.path.length&&(i.path=escape(unescape(i.path))),void 0!==i.fragment&&i.fragment.length&&(i.fragment=encodeURI(decodeURIComponent(i.fragment)))),e&&e.parse&&e.parse(i,n)}else i.error=i.error||"URI can not be parsed.";return i}const p={SCHEMES:c,normalize:function(e,t){return"string"==typeof e?e=u(h(e,t),t):"object"==typeof e&&(e=h(u(e,t),t)),e},resolve:function(e,t,n){const r=Object.assign({scheme:"null"},n);return u(l(h(e,r),h(t,r),r,!0),{...r,skipEscape:!0})},resolveComponents:l,equal:function(e,t,n){return"string"==typeof e?(e=unescape(e),e=u(s(h(e,n),!0),{...n,skipEscape:!0})):"object"==typeof e&&(e=u(s(e,!0),{...n,skipEscape:!0})),"string"==typeof t?(t=unescape(t),t=u(s(h(t,n),!0),{...n,skipEscape:!0})):"object"==typeof t&&(t=u(s(t,!0),{...n,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()},serialize:u,parse:h};e.exports=p,e.exports.default=p,e.exports.fastUri=p},343:e=>{"use strict";const t=/^[\da-f]{8}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{12}$/iu,n=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function r(e){return"boolean"==typeof e.secure?e.secure:"wss"===String(e.scheme).toLowerCase()}function o(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function i(e){const t="https"===String(e.scheme).toLowerCase();return e.port!==(t?443:80)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}const a={scheme:"http",domainHost:!0,parse:o,serialize:i},s={scheme:"ws",domainHost:!0,parse:function(e){return e.secure=r(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e},serialize:function(e){if(e.port!==(r(e)?443:80)&&""!==e.port||(e.port=void 0),"boolean"==typeof e.secure&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){const[t,n]=e.resourceName.split("?");e.path=t&&"/"!==t?t:void 0,e.query=n,e.resourceName=void 0}return e.fragment=void 0,e}},c={http:a,https:{scheme:"https",domainHost:a.domainHost,parse:o,serialize:i},ws:s,wss:{scheme:"wss",domainHost:s.domainHost,parse:s.parse,serialize:s.serialize},urn:{scheme:"urn",parse:function(e,t){if(!e.path)return e.error="URN can not be parsed",e;const r=e.path.match(n);if(r){const n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];const o=`${n}:${t.nid||e.nid}`,i=c[o];e.path=void 0,i&&(e=i.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e},serialize:function(e,t){const n=t.scheme||e.scheme||"urn",r=e.nid.toLowerCase(),o=`${n}:${t.nid||r}`,i=c[o];i&&(e=i.serialize(e,t));const a=e,s=e.nss;return a.path=`${r||t.nid}:${s}`,t.skipEscape=!0,a},skipNormalize:!0},"urn:uuid":{scheme:"urn:uuid",parse:function(e,n){const r=e;return r.uuid=r.nss,r.nss=void 0,n.tolerant||r.uuid&&t.test(r.uuid)||(r.error=r.error||"UUID is not valid."),r},serialize:function(e){const t=e;return t.nss=(e.uuid||"").toLowerCase(),t},skipNormalize:!0}};e.exports=c},4914:e=>{"use strict";e.exports={HEX:{0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15}}},4834:(e,t,n)=>{"use strict";const{HEX:r}=n(4914);function o(e){if(c(e,".")<3)return{host:e,isIPV4:!1};const t=e.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u)||[],[n]=t;return n?{host:s(n,"."),isIPV4:!0}:{host:e,isIPV4:!1}}function i(e,t=!1){let n="",o=!0;for(const t of e){if(void 0===r[t])return;"0"!==t&&!0===o&&(o=!1),o||(n+=t)}return t&&0===n.length&&(n="0"),n}function a(e,t={}){if(c(e,":")<2)return{host:e,isIPV6:!1};const n=function(e){let t=0;const n={error:!1,address:"",zone:""},r=[],o=[];let a=!1,s=!1,c=!1;function l(){if(o.length){if(!1===a){const e=i(o);if(void 0===e)return n.error=!0,!1;r.push(e)}o.length=0}return!0}for(let i=0;i7){n.error=!0;break}i-1>=0&&":"===e[i-1]&&(s=!0)}}return o.length&&(a?n.zone=o.join(""):c?r.push(o.join("")):r.push(i(o))),n.address=r.join(""),n}(e);if(n.error)return{host:e,isIPV6:!1};{let e=n.address,t=n.address;return n.zone&&(e+="%"+n.zone,t+="%25"+n.zone),{host:e,escapedHost:t,isIPV6:!0}}}function s(e,t){let n="",r=!0;const o=e.length;for(let i=0;i{"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>O,__assign:()=>i,__asyncDelegator:()=>L,__asyncGenerator:()=>C,__asyncValues:()=>j,__await:()=>E,__awaiter:()=>p,__classPrivateFieldGet:()=>_,__classPrivateFieldIn:()=>I,__classPrivateFieldSet:()=>D,__createBinding:()=>g,__decorate:()=>s,__disposeResources:()=>B,__esDecorate:()=>l,__exportStar:()=>y,__extends:()=>o,__generator:()=>m,__importDefault:()=>k,__importStar:()=>T,__makeTemplateObject:()=>x,__metadata:()=>h,__param:()=>c,__propKey:()=>d,__read:()=>v,__rest:()=>a,__rewriteRelativeImportExtension:()=>$,__runInitializers:()=>u,__setFunctionName:()=>f,__spread:()=>b,__spreadArray:()=>M,__spreadArrays:()=>w,__values:()=>A,default:()=>P});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var i=function(){return i=Object.assign||function(e){for(var t,n=1,r=arguments.length;n=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a}function c(e,t){return function(n,r){t(n,r,e)}}function l(e,t,n,r,o,i){function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var s,c=r.kind,l="getter"===c?"get":"setter"===c?"set":"value",u=!t&&e?r.static?e:e.prototype:null,d=t||(u?Object.getOwnPropertyDescriptor(u,r.name):{}),f=!1,h=n.length-1;h>=0;h--){var p={};for(var m in r)p[m]="access"===m?{}:r[m];for(var m in r.access)p.access[m]=r.access[m];p.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");i.push(a(e||null))};var g=(0,n[h])("accessor"===c?{get:d.get,set:d.set}:d[l],p);if("accessor"===c){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw new TypeError("Object expected");(s=a(g.get))&&(d.get=s),(s=a(g.set))&&(d.set=s),(s=a(g.init))&&o.unshift(s)}else(s=a(g))&&("field"===c?o.unshift(s):d[l]=s)}u&&Object.defineProperty(u,r.name,d),f=!0}function u(e,t,n){for(var r=arguments.length>2,o=0;o0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,i=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=i.return)&&n.call(i)}finally{if(o)throw o.error}}return a}function b(){for(var e=[],t=0;t1||s(e,t)}))},t&&(r[e]=t(r[e])))}function s(e,t){try{(n=o[e](t)).value instanceof E?Promise.resolve(n.value.v).then(c,l):u(i[0][2],n)}catch(e){u(i[0][3],e)}var n}function c(e){s("next",e)}function l(e){s("throw",e)}function u(e,t){e(t),i.shift(),i.length&&s(i[0][0],i[0][1])}}function L(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:E(e[r](t)),done:!1}:o?o(t):t}:o}}function j(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=A(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}function x(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var N=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},S=function(e){return S=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},S(e)};function T(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=S(e),r=0;r{"use strict";e.exports=JSON.parse('{"$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON AnySchema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},2079:e=>{"use strict";e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={id:r,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{"use strict"; /** * @license * Copyright 2019 Google LLC @@ -22,7 +22,7 @@ const E=globalThis,C=E.trustedTypes,L=C?C.createPolicy("lit-html",{createHTML:e= * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ -class se extends M{constructor(){super(...arguments),this.renderOptions={host:this},this.o=void 0}createRenderRoot(){const e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this.o=((e,t,n)=>{const r=n?.renderBefore??t;let o=r._$litPart$;if(void 0===o){const e=n?.renderBefore??null;r._$litPart$=o=new ee(t.insertBefore(k(),e),e,void 0,n??{})}return o._$AI(e),o})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this.o?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this.o?.setConnected(!1)}render(){return F}}se._$litElement$=!0,se.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:se});const ce=globalThis.litElementPolyfillSupport;ce?.({LitElement:se});function le(e,t){return t=t||{},new Promise((function(n,r){var o=new XMLHttpRequest,i=[],a=[],s={},c=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:c,headers:{keys:function(){return i},entries:function(){return a},get:function(e){return s[e.toLowerCase()]},has:function(e){return e.toLowerCase()in s}}}};for(var l in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(e,t,n){i.push(t=t.toLowerCase()),a.push([t,n]),s[t]=s[t]?s[t]+","+n:n})),n(c())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(l,t.headers[l]);o.send(t.body||null)}))}(globalThis.litElementVersions??=[]).push("4.1.0");var ue=n(3282),de=new(n.n(ue)())({allErrors:!0,schemas:[{$id:"http://v1.schemas.readthedocs.org/addons.analytics.json",type:"object",required:["addons","projects","versions"],properties:{addons:{type:"object",required:["analytics"],properties:{analytics:{type:"object",required:["code","enabled"],properties:{code:{type:["string","null"]},enabled:{type:"boolean"}}}}},projects:{type:"object",required:["current"],properties:{current:{type:"object",required:["slug","language","programming_language"],properties:{slug:{type:"string"},language:{type:"object",required:["code"],properties:{code:{type:"string"}}},programming_language:{type:"object",required:["code"],properties:{code:{type:"string"}}}}}}},versions:{type:"object",required:["current"],properties:{current:{type:"object",required:["slug","type"],properties:{slug:{type:"string"},type:{type:"string"}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.docdiff.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["options","doc_diff"],properties:{options:{type:"object",required:["root_selector"],properties:{root_selector:{type:["string","null"]}}},doc_diff:{type:"object",required:["base_url","enabled"],properties:{base_url:{type:"string"},enabled:{type:"boolean"}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.ethicalads.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["ethicalads"],properties:{ethicalads:{type:"object",required:["ad_free","campaign_types","enabled","keywords","publisher"],properties:{ad_free:{type:"boolean"},campaign_types:{type:"array"},enabled:{type:"boolean"},keywords:{type:"array"},publisher:{type:"string"}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.flyout.json",type:"object",required:["addons","projects","versions"],properties:{addons:{type:"object",required:["flyout"],properties:{flyout:{type:"object",required:["enabled"],properties:{enabled:{type:"boolean"},vcs:{type:"object",properties:{view_url:{type:"string"}}}}}}},projects:{type:"object",required:["current","translations"],properties:{current:{type:"object",required:["slug","urls","versioning_scheme"],properties:{slug:{type:"string"},urls:{type:"object",required:["home","builds","downloads"],properties:{home:{type:"string"},builds:{type:"string"},downloads:{type:"string"}}},versioning_scheme:{enum:["multiple_versions_with_translations","multiple_versions_without_translations","single_version_without_translations"]}}},translations:{type:"array"}}},versions:{type:"object",required:["current","active"],properties:{active:{type:"array"},current:{type:"object",required:["slug","downloads"],properties:{slug:{type:"string"},downloads:{type:"object"}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.hotkeys.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["hotkeys"],properties:{hotkeys:{type:"object",required:["enabled","doc_diff","search"],properties:{enabled:{type:"boolean"},doc_diff:{type:"object",required:["enabled","trigger"],properties:{enabled:{type:"boolean"},trigger:{type:"string"}}},search:{type:"object",required:["enabled","trigger"],properties:{enabled:{type:"boolean"},trigger:{type:"string"}}}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.notifications.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["notifications"],properties:{enabled:{type:"object",properties:{enabled:{type:"boolean"}}}}},builds:{type:"object",required:["current"],properties:{current:{type:"object",required:["urls"],properties:{urls:{type:"object",required:["build"],properties:{build:{type:"string"}}}}}}},projects:{type:"object",properties:{current:{type:"object",properties:{slug:{type:"string"},versioning_scheme:{enum:["multiple_versions_with_translations","multiple_versions_without_translations","single_version_without_translations"]},repository:{type:"object",required:["url"],properties:{url:{type:"string"}}},language:{type:"object",required:["code"],properties:{code:{type:"string"}}}}}}},versions:{type:"object",required:["current","active"],properties:{active:{type:"array"},current:{type:"object",required:["slug","urls","type","aliases"],properties:{aliases:{type:"array"},slug:{type:"string"},type:{enum:["branch","tag","external"]},urls:{type:"object",required:["documentation","vcs"],properties:{documentation:{type:"string"},vcs:{type:"string"}}}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.search.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["search"],properties:{search:{type:"object",required:["enabled","default_filter","filters"],properties:{enabled:{type:"boolean"},default_filter:{type:"string"},filters:{type:"array"}}}}},projects:{type:"object",required:["current"],properties:{current:{type:"object",required:["slug"],properties:{slug:{type:"string"}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.linkpreviews.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["options","linkpreviews"],properties:{options:{type:"object",required:["root_selector"],properties:{root_selector:{type:["string","null"]}}},linkpreviews:{type:"object",required:["enabled"],properties:{enabled:{type:"boolean"}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.filetreediff.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["filetreediff"],properties:{filetreediff:{type:"object",required:["enabled","diff"],properties:{enabled:{type:"boolean"},diff:{type:"object",properties:{added:{type:"array"},deleted:{type:"array"},modified:{type:"array"}}}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.customscript.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["customscript"],properties:{customscript:{type:"object",required:["enabled"],properties:{enabled:{type:"boolean"},src:{type:["string","null"]}}}}}}}]}),fe=n(1794),he=n.n(fe),pe="sphinx",me="mkdocs-material",ge="docusaurus",ye="pelican",Ae="asciidoctor",ve="jekyll",be="docsify",we="antora",Me="fallback";function Ee(e){return Ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ee(e)}function Ce(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Le(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Le(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function Le(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n link[href*=docsify]").length}},{key:"isSphinx",value:function(){return this.isSphinxAlabasterLikeTheme()||this.isSphinxReadTheDocsLikeTheme()||this.isSphinxFuroLikeTheme()||this.isSphinxBookThemeLikeTheme()||this.isSphinxImmaterialLikeTheme()}},{key:"isMaterialMkDocs",value:function(){return this.isMaterialMkDocsTheme()}},{key:"isDocusaurus",value:function(){return this.isDocusaurusTheme()}},{key:"isPelican",value:function(){return 1===document.querySelectorAll('meta[name="generator"][content="Pelican"]').length}},{key:"isAsciiDoctor",value:function(){return 1===document.querySelectorAll('meta[name="generator"][content*="Asciidoctor"]').length}},{key:"isJekyll",value:function(){return 1===document.querySelectorAll('meta[name="generator"][content*="Jekyll"]').length}},{key:"isMkDocs",value:function(){var e;return!(null===(e=document)||void 0===e||null===(e=e.lastChild)||void 0===e||!e.textContent.includes("MkDocs version :"))}},{key:"isSphinxAlabasterLikeTheme",value:function(){return!!document.querySelectorAll(['link[href^="_static/alabaster.css"]','link[href^="_static/flask.css"]','link[href^="_static/jinja.css"]','link[href^="_static/click.css"]','link[href^="_static/celery.css"]','link[href^="_static/babel.css"]','link[href^="_static/platter.css"]','link[href^="_static/werkzeug.css"]'].join(", ")).length}},{key:"isSphinxReadTheDocsLikeTheme",value:function(){return 1===document.querySelectorAll('script[src^="_static/js/theme.js"]').length}},{key:"isSphinxFuroLikeTheme",value:function(){return 1===document.querySelectorAll('link[href^="_static/styles/furo.css"]').length}},{key:"isSphinxBookThemeLikeTheme",value:function(){return 1===document.querySelectorAll('link[href^="_static/styles/sphinx-book-theme.css"]').length}},{key:"isSphinxImmaterialLikeTheme",value:function(){return!!document.querySelectorAll('link[href^="_static/sphinx_immaterial_theme"]','a[href="https://github.com/jbms/sphinx-immaterial/"][rel="noopener"]').length}},{key:"isMaterialMkDocsTheme",value:function(){return 1===document.querySelectorAll('meta[name="generator"][content*="mkdocs-material"]').length}},{key:"isDocusaurusTheme",value:function(){return 1===document.querySelectorAll('meta[name="generator"][content*="Docusaurus"]').length}}])}();ke(Qe,"DEFAULT_ROOT_SELECTOR",ke(ke(ke(ke(ke(ke(ke(ke(ke({},pe,"[role=main]"),me,"main > div > div.md-content"),be,"article#main"),Ae,"div#content"),ye,"article"),ge,"article div.markdown"),we,"article"),ve,"article"),Me,["article","main","div.body","div.document","body"])),ke(Qe,"DEFAULT_LINK_SELECTOR",ke(ke({},pe,"a.internal"),Me,["p a"]));var qe=new Qe;function Fe(e){return Fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fe(e)}function Ge(e,t){for(var n=0;n' tag in the HTML.");this._initialized=!0}},{key:"data",value:function(){return this._initialized||this.initialize(),this._data}},{key:"httpStatus",value:function(){var e=Ue("readthedocs-http-status");return e}}])}();function ot(e,t){var n=Ue("readthedocs-project-slug"),r=Ue("readthedocs-version-slug"),o={"client-version":Oe,"api-version":t};e&&(o.url=window.location.href),n&&r&&(o["project-slug"]=n,o["version-slug"]=r);var i=Ie+"?"+new URLSearchParams(o);return window.location.href.startsWith("http://localhost")&&!ze&&(i="/_/readthedocs-addons.json"),i}function it(e){return new Promise((function(t,n){le(ot(e,De),{method:"GET"}).then((function(e){return e.ok?e.json():n("Error hitting addons API endpoint")})).then((function(n){return function(e){return new Promise((function(t,n){var r=Ue("readthedocs-addons-api-version");return void 0!==r&&r!==De&&(ot(e,r),le("/_/readthedocs-addons.json",{method:"GET"}).then((function(e){return e.ok?t(e.json()):n("Error hitting addons API endpoint for user api-version")}))),t(void 0)})).catch((function(e){console.error(e)}))}(e).then((function(e){return function(e,t,n){var r=new CustomEvent(e,{detail:n});t.dispatchEvent(r)}(tt,document,new rt(void 0!==e?e:n))})),t(n)}))})).catch((function(e){console.error(e)}))} +class se extends M{constructor(){super(...arguments),this.renderOptions={host:this},this.o=void 0}createRenderRoot(){const e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){const t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this.o=((e,t,n)=>{const r=n?.renderBefore??t;let o=r._$litPart$;if(void 0===o){const e=n?.renderBefore??null;r._$litPart$=o=new ee(t.insertBefore(k(),e),e,void 0,n??{})}return o._$AI(e),o})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this.o?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this.o?.setConnected(!1)}render(){return F}}se._$litElement$=!0,se.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:se});const ce=globalThis.litElementPolyfillSupport;ce?.({LitElement:se});function le(e,t){return t=t||{},new Promise((function(n,r){var o=new XMLHttpRequest,i=[],a=[],s={},c=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:c,headers:{keys:function(){return i},entries:function(){return a},get:function(e){return s[e.toLowerCase()]},has:function(e){return e.toLowerCase()in s}}}};for(var l in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(e,t,n){i.push(t=t.toLowerCase()),a.push([t,n]),s[t]=s[t]?s[t]+","+n:n})),n(c())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(l,t.headers[l]);o.send(t.body||null)}))}(globalThis.litElementVersions??=[]).push("4.1.0");var ue=n(3282),de=new(n.n(ue)())({allErrors:!0,schemas:[{$id:"http://v1.schemas.readthedocs.org/addons.analytics.json",type:"object",required:["addons","projects","versions"],properties:{addons:{type:"object",required:["analytics"],properties:{analytics:{type:"object",required:["code","enabled"],properties:{code:{type:["string","null"]},enabled:{type:"boolean"}}}}},projects:{type:"object",required:["current"],properties:{current:{type:"object",required:["slug","language","programming_language"],properties:{slug:{type:"string"},language:{type:"object",required:["code"],properties:{code:{type:"string"}}},programming_language:{type:"object",required:["code"],properties:{code:{type:"string"}}}}}}},versions:{type:"object",required:["current"],properties:{current:{type:"object",required:["slug","type"],properties:{slug:{type:"string"},type:{type:"string"}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.docdiff.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["options","doc_diff"],properties:{options:{type:"object",required:["root_selector"],properties:{root_selector:{type:["string","null"]}}},doc_diff:{type:"object",required:["base_url","enabled"],properties:{base_url:{type:"string"},enabled:{type:"boolean"}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.ethicalads.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["ethicalads"],properties:{ethicalads:{type:"object",required:["ad_free","campaign_types","enabled","keywords","publisher"],properties:{ad_free:{type:"boolean"},campaign_types:{type:"array"},enabled:{type:"boolean"},keywords:{type:"array"},publisher:{type:"string"}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.flyout.json",type:"object",required:["addons","projects","versions"],properties:{addons:{type:"object",required:["flyout"],properties:{flyout:{type:"object",required:["enabled"],properties:{enabled:{type:"boolean"},vcs:{type:"object",properties:{view_url:{type:"string"}}}}}}},projects:{type:"object",required:["current","translations"],properties:{current:{type:"object",required:["slug","urls","versioning_scheme"],properties:{slug:{type:"string"},urls:{type:"object",required:["home","builds","downloads"],properties:{home:{type:"string"},builds:{type:"string"},downloads:{type:"string"}}},versioning_scheme:{enum:["multiple_versions_with_translations","multiple_versions_without_translations","single_version_without_translations"]}}},translations:{type:"array"}}},versions:{type:"object",required:["current","active"],properties:{active:{type:"array"},current:{type:"object",required:["slug","downloads"],properties:{slug:{type:"string"},downloads:{type:"object"}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.hotkeys.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["hotkeys"],properties:{hotkeys:{type:"object",required:["enabled","doc_diff","search"],properties:{enabled:{type:"boolean"},doc_diff:{type:"object",required:["enabled","trigger"],properties:{enabled:{type:"boolean"},trigger:{type:"string"}}},search:{type:"object",required:["enabled","trigger"],properties:{enabled:{type:"boolean"},trigger:{type:"string"}}}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.notifications.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["notifications"],properties:{enabled:{type:"object",properties:{enabled:{type:"boolean"}}}}},builds:{type:"object",required:["current"],properties:{current:{type:"object",required:["urls"],properties:{urls:{type:"object",required:["build"],properties:{build:{type:"string"}}}}}}},projects:{type:"object",properties:{current:{type:"object",properties:{slug:{type:"string"},versioning_scheme:{enum:["multiple_versions_with_translations","multiple_versions_without_translations","single_version_without_translations"]},repository:{type:"object",required:["url"],properties:{url:{type:"string"}}},language:{type:"object",required:["code"],properties:{code:{type:"string"}}}}}}},versions:{type:"object",required:["current","active"],properties:{active:{type:"array"},current:{type:"object",required:["slug","urls","type","aliases"],properties:{aliases:{type:"array"},slug:{type:"string"},type:{enum:["branch","tag","external"]},urls:{type:"object",required:["documentation","vcs"],properties:{documentation:{type:"string"},vcs:{type:"string"}}}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.search.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["search"],properties:{search:{type:"object",required:["enabled","default_filter","filters"],properties:{enabled:{type:"boolean"},default_filter:{type:"string"},filters:{type:"array"}}}}},projects:{type:"object",required:["current"],properties:{current:{type:"object",required:["slug"],properties:{slug:{type:"string"}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.linkpreviews.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["options","linkpreviews"],properties:{options:{type:"object",required:["root_selector"],properties:{root_selector:{type:["string","null"]}}},linkpreviews:{type:"object",required:["enabled"],properties:{enabled:{type:"boolean"}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.filetreediff.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["filetreediff"],properties:{filetreediff:{type:"object",required:["enabled","diff"],properties:{enabled:{type:"boolean"},diff:{type:"object",properties:{added:{type:"array"},deleted:{type:"array"},modified:{type:"array"}}}}}}}}},{$id:"http://v1.schemas.readthedocs.org/addons.customscript.json",type:"object",required:["addons"],properties:{addons:{type:"object",required:["customscript"],properties:{customscript:{type:"object",required:["enabled"],properties:{enabled:{type:"boolean"},src:{type:["string","null"]}}}}}}}]}),fe=n(1794),he=n.n(fe),pe="sphinx",me="mkdocs-material",ge="docusaurus",ye="pelican",Ae="asciidoctor",ve="jekyll",be="docsify",we="antora",Me="fallback";function Ee(e){return Ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ee(e)}function Ce(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Le(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Le(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function Le(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n link[href*=docsify]").length}},{key:"isSphinx",value:function(){return this.isSphinxAlabasterLikeTheme()||this.isSphinxReadTheDocsLikeTheme()||this.isSphinxFuroLikeTheme()||this.isSphinxBookThemeLikeTheme()||this.isSphinxImmaterialLikeTheme()}},{key:"isMaterialMkDocs",value:function(){return this.isMaterialMkDocsTheme()}},{key:"isDocusaurus",value:function(){return this.isDocusaurusTheme()}},{key:"isPelican",value:function(){return 1===document.querySelectorAll('meta[name="generator"][content="Pelican"]').length}},{key:"isAsciiDoctor",value:function(){return 1===document.querySelectorAll('meta[name="generator"][content*="Asciidoctor"]').length}},{key:"isJekyll",value:function(){return 1===document.querySelectorAll('meta[name="generator"][content*="Jekyll"]').length}},{key:"isMkDocs",value:function(){var e;return!(null===(e=document)||void 0===e||null===(e=e.lastChild)||void 0===e||!e.textContent.includes("MkDocs version :"))}},{key:"isSphinxAlabasterLikeTheme",value:function(){return!!document.querySelectorAll(['link[href^="_static/alabaster.css"]','link[href^="_static/flask.css"]','link[href^="_static/jinja.css"]','link[href^="_static/click.css"]','link[href^="_static/celery.css"]','link[href^="_static/babel.css"]','link[href^="_static/platter.css"]','link[href^="_static/werkzeug.css"]'].join(", ")).length}},{key:"isSphinxReadTheDocsLikeTheme",value:function(){return 1===document.querySelectorAll('script[src^="_static/js/theme.js"]').length}},{key:"isSphinxFuroLikeTheme",value:function(){return 1===document.querySelectorAll('link[href^="_static/styles/furo.css"]').length}},{key:"isSphinxBookThemeLikeTheme",value:function(){return 1===document.querySelectorAll('link[href^="_static/styles/sphinx-book-theme.css"]').length}},{key:"isSphinxImmaterialLikeTheme",value:function(){return!!document.querySelectorAll('link[href^="_static/sphinx_immaterial_theme"]','a[href="https://github.com/jbms/sphinx-immaterial/"][rel="noopener"]').length}},{key:"isMaterialMkDocsTheme",value:function(){return 1===document.querySelectorAll('meta[name="generator"][content*="mkdocs-material"]').length}},{key:"isDocusaurusTheme",value:function(){return 1===document.querySelectorAll('meta[name="generator"][content*="Docusaurus"]').length}}])}();ke(Qe,"DEFAULT_ROOT_SELECTOR",ke(ke(ke(ke(ke(ke(ke(ke(ke({},pe,"[role=main]"),me,"main > div > div.md-content"),be,"article#main"),Ae,"div#content"),ye,"article"),ge,"article div.markdown"),we,"article"),ve,"article"),Me,["article","main","div.body","div.document","body"])),ke(Qe,"DEFAULT_LINK_SELECTOR",ke(ke({},pe,"a.internal"),Me,["p a"]));var qe=new Qe;function Fe(e){return Fe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Fe(e)}function Ge(e,t){for(var n=0;n' tag in the HTML.");this._initialized=!0}},{key:"data",value:function(){return this._initialized||this.initialize(),this._data}},{key:"httpStatus",value:function(){var e=Ue("readthedocs-http-status");return e}}])}();function ot(e,t){var n=Ue("readthedocs-project-slug"),r=Ue("readthedocs-version-slug"),o={"client-version":Oe,"api-version":t};e&&(o.url=window.location.href),n&&r&&(o["project-slug"]=n,o["version-slug"]=r);var i=Ie+"?"+new URLSearchParams(o);return window.location.href.startsWith("http://localhost")&&!ze&&(i="/_/readthedocs-addons.json"),i}function it(e){return new Promise((function(t,n){le(ot(e,De),{method:"GET"}).then((function(e){return e.ok?e.json():n("Error hitting addons API endpoint")})).then((function(n){return function(e){return new Promise((function(t,n){var r=Ue("readthedocs-addons-api-version");return void 0!==r&&r!==De&&(ot(e,r),le("/_/readthedocs-addons.json",{method:"GET"}).then((function(e){return e.ok?t(e.json()):n("Error hitting addons API endpoint for user api-version")}))),t(void 0)})).catch((function(e){console.error(e)}))}(e).then((function(e){var t=void 0!==e?e:n;return globalThis.ReadTheDocsEventData=new rt(t),function(e,t,n){var r=new CustomEvent(e,{detail:n});t.dispatchEvent(r)}(tt,document,new rt(t))})),t(n)}))})).catch((function(e){console.error(e)}))} /*! * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) @@ -40,5 +40,5 @@ const vi=1,bi=2,wi=e=>(...t)=>({_$litDirective$:e,values:t});class Mi{constructo * Copyright 2017 Google LLC * SPDX-License-Identifier: BSD-3-Clause */ -class Ei extends Mi{constructor(e){if(super(e),this.it=G,e.type!==bi)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===G||null==e)return this._t=void 0,this.it=e;if(e===F)return e;if("string"!=typeof e)throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;const t=[e];return t.raw=t,this._t={_$litType$:this.constructor.resultType,strings:t,values:[]}}}Ei.directiveName="unsafeHTML",Ei.resultType=1;const Ci=wi(Ei),Li=wi(class extends Mi{constructor(e){if(super(e),e.type!==vi||"class"!==e.name||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){if(void 0===this.st){this.st=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!this.nt?.has(e)&&this.st.add(e);return this.render(t)}const n=e.element.classList;for(const e of this.st)e in t||(n.remove(e),this.st.delete(e));for(const e in t){const r=!!t[e];r===this.st.has(e)||this.nt?.has(e)||(r?(n.add(e),this.st.add(e)):(n.remove(e),this.st.delete(e)))}return F}});var ji,xi,Ni,Si,Ti,ki,_i,Di,Ii,Oi,zi,Bi,$i;function Pi(e){return Pi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pi(e)}function Ri(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i,a,s=[],c=!0,l=!1;try{if(i=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=i.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,o=e}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||Qi(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ui(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function Yi(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Qi(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function Qi(e,t){if(e){if("string"==typeof e)return qi(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?qi(e,t):void 0}}function qi(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n\n
\n
\n
\n
\n ','\n
\n ','\n
\n \n
\n \n '])),!this.show,this.triggerCloseModal,Li(this.cssFormFocusClasses),this.inputIcon.node[0],this.queryInput,this.selectResultKeyboard,this.queryInputFocus,this.queryInputFocus,this.renderFilters(),this.results||this.renderRecentSearches(),Re("https://about.readthedocs.com/","search"),"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJzdmciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSI2OTQgMTk3IDIwMDAgNDAwIj4KPGcgaWQ9ImxvZ28iIHRyYW5zZm9ybT0ibWF0cml4KDAuNTU3NTM2NDQsMCwwLDAuNTU3NTM2NDQsNjguMzA4MTM1LDEwNTAuMTI2MikiPgoJPHBhdGggc3R5bGU9ImZpbGw6IzMyMzIyQSIgZD0iTTE0MDguMS0xMTgxLjdjLTcuNSwxLTEyLjcsNy44LTExLjcsMTUuMyAgIGMwLjcsNS40LDQuNiw5LjksOS45LDExLjNjMCwwLDMzLjIsMTEsODkuNywxNS42YzQ1LjQsMy43LDk2LjktMy4yLDk2LjktMy4yYzcuNS0wLjIsMTMuNS02LjUsMTMuMi0xNHMtNi41LTEzLjUtMTQtMTMuMiAgIGMtMC45LDAtMS44LDAuMS0yLjYsMC4zYzAsMC01MC40LDYuMi05MS4zLDIuOWMtNTQtNC40LTgzLjQtMTQuMy04My40LTE0LjNDMTQxMi42LTExODEuNywxNDEwLjMtMTE4MiwxNDA4LjEtMTE4MS43eiAgICBNMTQwOC4xLTEyNDkuM2MtNy41LDEtMTIuNyw3LjgtMTEuNywxNS4zYzAuNyw1LjQsNC42LDkuOSw5LjksMTEuM2MwLDAsMzMuMiwxMSw4OS43LDE1LjZjNDUuNCwzLjcsOTYuOS0zLjIsOTYuOS0zLjIgICBjNy41LTAuMiwxMy41LTYuNSwxMy4yLTE0cy02LjUtMTMuNS0xNC0xMy4yYy0wLjksMC0xLjgsMC4xLTIuNiwwLjNjMCwwLTUwLjQsNi4yLTkxLjMsMi45Yy01NC00LjQtODMuNC0xNC4zLTgzLjQtMTQuMyAgIEMxNDEyLjYtMTI0OS4zLDE0MTAuMy0xMjQ5LjYsMTQwOC4xLTEyNDkuM3ogTTE0MDguMS0xMzE2LjljLTcuNSwxLTEyLjcsNy44LTExLjcsMTUuM2MwLjcsNS40LDQuNiw5LjksOS45LDExLjMgICBjMCwwLDMzLjIsMTEsODkuNywxNS42YzQ1LjQsMy43LDk2LjktMy4yLDk2LjktMy4yYzcuNS0wLjIsMTMuNS02LjUsMTMuMi0xNHMtNi41LTEzLjUtMTQtMTMuMmMtMC45LDAtMS44LDAuMS0yLjYsMC4zICAgYzAsMC01MC40LDYuMi05MS4zLDIuOWMtNTQtNC40LTgzLjQtMTQuMy04My40LTE0LjNDMTQxMi42LTEzMTYuOSwxNDEwLjMtMTMxNy4yLDE0MDguMS0xMzE2Ljl6IE0xNDA4LjEtMTM4NC40ICAgYy03LjUsMS0xMi43LDcuOC0xMS43LDE1LjNjMC43LDUuNCw0LjYsOS45LDkuOSwxMS4zYzAsMCwzMy4yLDExLDg5LjcsMTUuNmM0NS40LDMuNyw5Ni45LTMuMiw5Ni45LTMuMmM3LjUtMC4yLDEzLjUtNi41LDEzLjItMTQgICBzLTYuNS0xMy41LTE0LTEzLjJjLTAuOSwwLTEuOCwwLjEtMi42LDAuM2MwLDAtNTAuNCw2LjItOTEuMywyLjljLTU0LTQuNC04My40LTE0LjMtODMuNC0xNC4zICAgQzE0MTIuNi0xMzg0LjUsMTQxMC4zLTEzODQuNywxNDA4LjEtMTM4NC40eiBNMTMxMy40LTE0NTUuN2MtNzEsMC41LTk3LjUsMjIuMy05Ny41LDIyLjN2NTMwLjNjMCwwLDI1LjgtMjIuMywxMDktMTguOSAgIGM4My4yLDMuNCwxMDAuMywzMi42LDIwMi41LDM0LjZjMTAyLjIsMi4xLDEyNy45LTE1LjcsMTI3LjktMTUuN2wxLjUtNTQwLjZjMCwwLTQ2LDEzLTEzNS41LDEzLjdzLTExMS0yMi44LTE5My4yLTI1LjUgICBDMTMyMy0xNDU1LjYsMTMxOC4xLTE0NTUuNywxMzEzLjQtMTQ1NS43eiBNMTM3Mi44LTE0MjEuMWMwLDAsNDMsMTQuMiwxMjIuNSwxOC4yYzY3LjIsMy4zLDEzNC41LTYuNiwxMzQuNS02LjZ2NDgwLjUgICBjMCwwLTM0LjEsMTcuOS0xMTkuMywxMS44Yy02Ni00LjctMTM4LjctMjkuNy0xMzguNy0yOS43TDEzNzIuOC0xNDIxLjF6IE0xMzMxLjMtMTQwOC42YzcuNiwwLDEzLjcsNi4yLDEzLjcsMTMuNyAgIHMtNi4yLDEzLjctMTMuNywxMy43YzAsMC0yMi4zLDAuMS0zNS44LDEuNWMtMjIuOCwyLjMtMzguMywxMC42LTM4LjMsMTAuNmMtNi43LDMuNS0xNSwxLTE4LjUtNS43cy0xLTE1LDUuNy0xOC41YzAsMCwwLDAsMCwwICAgYzAsMCwyMC4yLTEwLjcsNDguNC0xMy41QzEzMDkuMS0xNDA4LjUsMTMzMS4zLTE0MDguNiwxMzMxLjMtMTQwOC42eiBNMTMxOC4xLTEzNDAuOGM3LjYtMC4yLDEzLjMsMCwxMy4zLDAgICBjNy41LDAuOSwxMi45LDcuOCwxMiwxNS4zYy0wLjgsNi4zLTUuNywxMS4yLTEyLDEyYzAsMC0yMi4zLDAuMS0zNS44LDEuNWMtMjIuOCwyLjMtMzguMywxMC42LTM4LjMsMTAuNmMtNi43LDMuNS0xNSwwLjktMTguNS01LjggICBjLTMuNS02LjctMC45LTE1LDUuOC0xOC41YzAsMCwyMC4yLTEwLjcsNDguNC0xMy41QzEzMDAuOS0xMzQwLjEsMTMxMC41LTEzNDAuNiwxMzE4LjEtMTM0MC44eiBNMTMzMS4zLTEyNzMuMyAgIGM3LjYsMCwxMy43LDYuMiwxMy43LDEzLjdjMCw3LjYtNi4yLDEzLjctMTMuNywxMy43YzAsMC0yMi4zLTAuMS0zNS44LDEuMmMtMjIuOCwyLjMtMzguMywxMC42LTM4LjMsMTAuNiAgIGMtNi43LDMuNS0xNSwwLjktMTguNS01LjhjLTMuNS02LjctMC45LTE1LDUuOC0xOC41YzAsMCwyMC4yLTEwLjcsNDguNC0xMy41QzEzMDkuMS0xMjczLjQsMTMzMS4zLTEyNzMuMywxMzMxLjMtMTI3My4zeiIvPgo8L2c+CjxnIGlkPSJ0ZXh0Ij4KCTxwYXRoIHN0eWxlPSJmaWxsOiMzMjMyMkEiIGQ9Ik0xMTI4LjYsNDkxLjlWNDcwbDguOS0wLjhjNS4yLTAuNSw3LjgtMy4xLDcuOC03LjZWMzM2bC0xNS40LTAuOHYtMjNoNzMuOCAgIGMyMC45LDAsMzYuOSwzLjksNDguMSwxMS42YzExLjIsNy43LDE2LjgsMjAuNSwxNi44LDM4LjFjMCwxMi4zLTMuMiwyMi4zLTkuNywzMC4zYy02LjMsNy45LTEzLjksMTMuNy0yMi43LDE3LjMgICBjNi41LDIuMywxMS42LDcuOCwxNS40LDE2LjVsMTkuNSw0Mi40bDE1LjQsMC41djIzaC02Ni44VjQ3MGw3LjgtMC44YzQuMS0wLjUsNi4yLTIuMiw2LjItNC45YzAtMS4xLTAuNC0yLjMtMS4xLTMuOGwtMTIuNy0yNyAgIGMtMi00LjUtNC4yLTcuNy02LjgtOS41Yy0yLjMtMi01LjgtMy0xMC4zLTNoLTI0LjZ2NDdsMTcuNiwwLjh2MjNMMTEyOC42LDQ5MS45IE0xMTc4LjMsMzk1LjRoMjMuNWMyMi4yLDAsMzMuMi05LjksMzMuMi0yOS43ICAgYzAtMTEuNC0zLTE4LjctOC45LTIyLjJjLTUuOC0zLjQtMTUuMS01LjEtMjguMS01LjFoLTE5LjdWMzk1LjQiLz4KCTxwYXRoIHN0eWxlPSJmaWxsOiMzMjMyMkEiIGQ9Ik0xMzU2LDM1MS45YzEzLjUsMCwyNC4yLDMuMywzMi4yLDEwYzcuOSw2LjUsMTEuOSwxNS43LDExLjksMjcuNmMwLDcuOS0xLjcsMTUtNS4xLDIxLjEgICBjLTMuNCw1LjktNy43LDEwLjYtMTIuNywxNC4xYy01LDMuNC0xMS4yLDYuMi0xOC40LDguNGMtMTIuMSwzLjYtMjUuNyw1LjQtNDAuOCw1LjRjMC41LDkuNSwzLjUsMTcuMyw4LjksMjMuMiAgIGM1LjQsNS44LDEzLjcsOC42LDI0LjksOC42YzExLjIsMCwyMi4zLTQsMzMuNS0xMS45bDEwLjMsMjEuOWMtMy42LDMuMi05LjcsNi42LTE4LjQsMTBjLTguNSwzLjQtMTguMiw1LjEtMjkuMiw1LjEgICBjLTIyLDAtMzguMS02LTQ4LjQtMTguMWMtMTAuMy0xMi4zLTE1LjQtMjktMTUuNC01MC4zYzAtMjEuMyw1LjktMzkuMSwxNy42LTUzLjVDMTMxOC41LDM1OS4xLDEzMzQuOSwzNTEuOSwxMzU2LDM1MS45ICAgIE0xMzQzLjYsNDEzLjhjNi43LTEuMywxMi44LTMuOSwxOC40LTcuOGM1LjYtNC4xLDguNC05LDguNC0xNC42YzAtMTEtNS40LTE2LjUtMTYuMi0xNi41Yy0xMC4xLDAtMTcuOCw0LjEtMjMuMiwxMi4yICAgYy01LjQsNy45LTguNCwxNy41LTguOSwyOC42QzEzMjkuOSw0MTUuNSwxMzM3LjEsNDE0LjksMTM0My42LDQxMy44Ii8+Cgk8cGF0aCBzdHlsZT0iZmlsbDojMzIzMjJBIiBkPSJNMTUyOS42LDM2MS40djEwMC41YzAsMi45LDAuNSw0LjksMS40LDUuOWMxLjEsMS4xLDIuOSwxLjcsNS40LDEuOWw4LjYsMC41djIxLjZoLTQzdi0xNS43ICAgbC0wLjgtMC4zYy05LDEzLTIxLjQsMTkuNS0zNywxOS41Yy0xOC40LDAtMzItNS45LTQwLjgtMTcuNmMtOC44LTExLjctMTMuMi0yNy43LTEzLjItNDguMWMwLTI0LjUsNS45LTQzLjYsMTcuOC01Ny4zICAgYzExLjktMTMuNywyOS43LTIwLjUsNTMuNS0yMC41QzE0OTYuOCwzNTEuOSwxNTEyLjksMzU1LjEsMTUyOS42LDM2MS40IE0xNDk4LjMsNDQ4Ljl2LTcwYy01LTIuMy0xMi0zLjUtMjAuOC0zLjUgICBjLTEyLjEsMC0yMC44LDQuOS0yNi4yLDE0LjZjLTUuNCw5LjctOC4xLDIyLjYtOC4xLDM4LjdjMCwyOS4yLDkuNCw0My44LDI4LjEsNDMuOGM3LjksMCwxNC40LTIuMywxOS41LTcgICBDMTQ5NS43LDQ2MC42LDE0OTguMyw0NTUuMSwxNDk4LjMsNDQ4LjkiLz4KCTxwYXRoIHN0eWxlPSJmaWxsOiMzMjMyMkEiIGQ9Ik0xNjE2LjMsMzUxLjljNy43LDAsMTUuMSwxLjEsMjIuMiwzLjJ2LTI3LjNjMC00LTIuMy02LjEtNy02LjVsLTExLjYtMC44di0yMS40aDUwLjN2MTY0LjMgICBjMC4yLDQuMSwyLjQsNi4yLDYuOCw2LjJsOS41LDAuNXYyMS42aC00My44VjQ3NmwtMC44LTAuM2MtOC4xLDEzLjItMjAuNCwxOS43LTM2LjgsMTkuN2MtMjAuNSwwLTM1LTYuOC00My4yLTIwLjUgICBjLTcuNi0xMi40LTExLjQtMjcuNy0xMS40LTQ1LjdjMC0yMy40LDUuOC00Mi4yLDE3LjMtNTYuMkMxNTc5LjMsMzU4LjksMTU5NS41LDM1MS45LDE2MTYuMywzNTEuOSBNMTYzOC40LDQ0OS44di03MCAgIGMtNi41LTIuOS0xMy4zLTQuMy0yMC41LTQuM2MtMTEuOSwwLTIwLjYsNC44LTI2LjIsMTQuM2MtNS40LDkuNi04LjEsMjEuNy04LjEsMzYuNWMwLDMwLjMsOS43LDQ1LjQsMjkuMiw0NS40ICAgYzcuNCwwLDEzLjUtMi4xLDE4LjQtNi4yQzE2MzYsNDYxLjEsMTYzOC40LDQ1NS45LDE2MzguNCw0NDkuOCIvPgoJPHBhdGggc3R5bGU9ImZpbGw6IzMyMzIyQSIgZD0iTTE3OTEuNyw0NzAuNmMwLDAtMTIuNSw0LjctMTkuMiw0LjdzLTkuMi0zLjMtOS4yLTExLjhjMC0zLjgsMC41LTguOCwxLjQtMTQuOWwxMC4yLTYzLjFoMzIuNiAgIGwyLjgtMTcuN2gtMzIuNmw1LjctMzQuNUwxNzYwLDMzOGwtNC43LDI5LjhsLTIzLjYsMi40bC0yLjYsMTUuNGgyMy40TDE3NDIsNDUxYy0wLjksNS40LTEuNCwxMC42LTEuNCwxNS4xICAgYzAsMTguNyw3LjgsMjguMSwyMy45LDI4LjFjMTMuMiwwLDMxLTEwLjksMzEtMTAuOUwxNzkxLjcsNDcwLjYiLz4KCTxwYXRoIHN0eWxlPSJmaWxsOiMzMjMyMkEiIGQ9Ik0xODY1LDMwOS44bC00My4zLDEuMmwtMi4xLDEzbDE5LjksNC43bC0yNiwxNjMuMmgyMi41bDcuOC00Mi42YzAsMCwxOC43LTY1LDQ5LjQtNjUgICBjOS41LDAsMTIuMyw2LjksMTIuMywxNS42YzAsMy4zLTAuNSw2LjktMC45LDEwLjRsLTEzLjUsODEuNmw0My4zLTIuNGwyLjEtMTNsLTE5LjktMy41bDEwLjYtNjYuMmMwLjctNSwxLjItOS43LDEuMi0xNCAgIGMwLTE3LTYuOS0yOC42LTI1LjgtMjguNmMtMzUuOSwwLTU0LjksNDUuNi01NS44LDQ4LjJMMTg2NSwzMDkuOCIvPgoJPHBhdGggc3R5bGU9ImZpbGw6IzMyMzIyQSIgZD0iTTIwMzUsNDY0LjdjMCwwLTIxLjUsMTAuNi0zOC44LDEwLjZjLTE3LjcsMC0yNi03LjgtMjYtMjQuNmMwLTMuMSwwLjItNi42LDAuNy0xMC4yICAgYzQ5LDAsODMtMTguNCw4My00NS42YzAtMTguNy0xNS4xLTMwLjctMzktMzAuN2MtMzcuNiwwLTY4LjMsMzguNS02OC4zLDg3LjVjMCwyNiwxNi42LDQyLjYsNDIuNiw0Mi42YzI3LjksMCw1My0xNy41LDUzLTE3LjUgICBMMjAzNSw0NjQuNyBNMTk3Myw0MjRjNi4xLTI0LjgsMjMuNC00Mi4xLDQwLjctNDIuMWMxMi4xLDAsMTcuNyw1LDE3LjcsMTUuNEMyMDMxLjUsNDEyLjksMjAwNi42LDQyNCwxOTczLDQyNCIvPgoJPHBhdGggc3R5bGU9ImZpbGw6IzMyMzIyQSIgZD0iTTIwOTMuNyw0OTEuOVY0NzBsOC45LTAuOGM1LjItMC41LDcuOC0zLjEsNy44LTcuNlYzMzZsLTE1LjQtMC44di0yM2g3NC4xICAgYzI2LjUsMCw0Ny4xLDcsNjEuOSwyMS4xYzE1LDE0LjEsMjIuNCwzNC45LDIyLjQsNjIuNGMwLDE3LjEtMi4zLDMyLjEtNi44LDQ0LjljLTQuNSwxMi42LTEwLjYsMjIuNS0xOC40LDI5LjcgICBjLTE1LjUsMTQuNC0zNC44LDIxLjYtNTcuOCwyMS42TDIwOTMuNyw0OTEuOSBNMjE0My40LDMzOC40VjQ2NmgyNy42YzE1LjUsMCwyNy42LTUuNiwzNi4yLTE2LjhjOC42LTExLjIsMTMtMjcuNCwxMy00OC43ICAgYzAtNDEuNC0xNy42LTYyLjItNTIuNy02Mi4ySDIxNDMuNCIvPgoJPHBhdGggc3R5bGU9ImZpbGw6IzMyMzIyQSIgZD0iTTIzMzAsNDcyLjJjMTkuNiwwLDI5LjUtMTUuOSwyOS41LTQ3LjZjMC0xNi0yLjMtMjguMi02LjgtMzYuNWMtNC4zLTguMy0xMS43LTEyLjQtMjIuMi0xMi40ICAgYy0xMC4zLDAtMTcuOCw0LTIyLjcsMTEuOWMtNC45LDcuOS03LjMsMTguNy03LjMsMzIuNGMwLDI1LjQsNC43LDQxLjQsMTQuMSw0Ny44QzIzMTguOCw0NzAuNywyMzIzLjksNDcyLjIsMjMzMCw0NzIuMiAgICBNMjI2Ny45LDQyMy44YzAtMTMuMywyLTI0LjksNS45LTM0LjZjNC05LjksOS4zLTE3LjUsMTUuOS0yMi43YzEyLjgtOS43LDI2LjktMTQuNiw0Mi40LTE0LjZjMTAuOCwwLDE5LjksMS44LDI3LjMsNS40ICAgYzcuNiwzLjQsMTMuNCw3LjUsMTcuNiwxMi4yYzQuMyw0LjUsNy45LDExLjIsMTAuOCwyMGMzLjEsOC42LDQuNiwxOC45LDQuNiwzMC44YzAsMjQuOS02LDQzLjctMTguMSw1Ni41ICAgYy0xMi4xLDEyLjgtMjcuNiwxOS4yLTQ2LjUsMTkuMmMtMTguNywwLTMzLjQtNi00NC4xLTE4LjFDMjI3My4yLDQ2NS42LDIyNjcuOSw0NDcuNiwyMjY3LjksNDIzLjgiLz4KCTxwYXRoIHN0eWxlPSJmaWxsOiMzMjMyMkEiIGQ9Ik0yNDM4LjIsNDIyLjVjMCwxNS4zLDIuOSwyNy4yLDguNiwzNS43YzUuOCw4LjUsMTQuMSwxMi43LDI0LjksMTIuN2MxMSwwLDIxLjgtMy45LDMyLjQtMTEuNiAgIGwxMS42LDIwLjhjLTEyLjgsMTAuNS0yOC44LDE1LjctNDguMSwxNS43Yy0xOS4zLDAtMzQuNS02LTQ1LjctMTguMWMtMTEtMTIuMy0xNi41LTMwLjMtMTYuNS01NC4xczYuMy00MS42LDE4LjktNTMuNSAgIGMxMi44LTEyLjEsMjcuMS0xOC4xLDQzLTE4LjFjMTYsMCwzMC45LDMuNyw0NC42LDExLjF2MzUuMWwtMjQuOSwxLjl2LTEzYzAtNC45LTEuOC03LjgtNS40LTguOWMtMy40LTEuMy03LTEuOS0xMC44LTEuOSAgIEMyNDQ5LjEsMzc2LjIsMjQzOC4yLDM5MS42LDI0MzguMiw0MjIuNSIvPgoJPHBhdGggc3R5bGU9ImZpbGw6IzMyMzIyQSIgZD0iTTI1OTIuOSwzNzYuNWMtNC4zLTEuNi05LjYtMi40LTE1LjctMi40Yy02LjEsMC0xMS4xLDEuNC0xNC45LDQuM2MtMy42LDIuNy01LjQsNi4xLTUuNCwxMC4zICAgYzAsNCwwLjYsNy4xLDEuOSw5LjVjMS40LDIuMiwzLjYsNC4xLDYuNSw1LjdjNC41LDIuMyw5LjksNC40LDE2LjIsNi4yYzYuMywxLjYsMTEsMywxNC4xLDQuMWMzLjEsMC45LDYuOCwyLjUsMTEuNCw0LjkgICBjNC43LDIuMyw4LjIsNC45LDEwLjUsNy42YzYuMyw2LjcsOS41LDE1LjIsOS41LDI1LjdjMCwxMy41LTUsMjQuMS0xNC45LDMxLjljLTkuNyw3LjYtMjIuMiwxMS40LTM3LjMsMTEuNCAgIGMtMjIsMC0zOC42LTIuOC00OS43LTguNHYtMzcuNmwyNC4zLTEuOXYxM2MwLDcuOSw3LjYsMTEuOSwyMi43LDExLjlzMjIuNy01LjUsMjIuNy0xNi41YzAtNC0xLjQtNy4yLTQuMS05LjcgICBjLTIuNS0yLjUtNS00LjItNy42LTUuMWMtMi41LTAuOS01LjYtMS44LTkuMi0yLjdjLTMuNC0wLjktNi44LTEuOC0xMC4zLTIuN2MtMy4yLTAuOS02LjgtMi4xLTEwLjgtMy41Yy0zLjgtMS42LTgtMy45LTEyLjctNi44ICAgYy05LjItNS45LTEzLjgtMTUuOS0xMy44LTI5LjdjMC0xNC4xLDUtMjQuOSwxNC45LTMyLjRjOS45LTcuNiwyMi4zLTExLjQsMzcuMy0xMS40YzE1LjEsMCwzMC4xLDMuNiw0NC45LDEwLjh2MzIuNGwtMjQuMywxLjkgICB2LTExLjRDMjU5OS4xLDM4MS4yLDI1OTcsMzc4LjEsMjU5Mi45LDM3Ni41Ii8+CjwvZz4KPGRpdiB4bWxucz0iIiBpZD0ic2FrYS1ndWktcm9vdCI+PGRpdj48ZGl2PjxzdHlsZS8+PC9kaXY+PC9kaXY+PC9kaXY+PC9zdmc+")}},{key:"renderNoResultsFound",value:function(){var e=xo(To,{title:"Not found"}),t=this.getUserQuery();this.results=q(xi||(xi=Ui(['\n
\n ','\n

No results for "','"

\n
\n

Try using the following special queries:

\n
    \n
  • \n Exact phrase: use double quotes to match a whole\n pharse: "adding a subproject".\n
  • \n
  • \n Prefix: use an asterisk at the end of any term to\n prefix a result: environ*.\n
  • \n
  • \n Fuzziness: add a tilde and a number to indicate\n the fuzziness of the word: getter~2.\n
  • \n
\n
\n\n \n
\n '])),e.node[0],t)}},{key:"renderFilters",value:function(){var e=this;return this.config.addons.search.filters.length?q(Ni||(Ni=Ui(['\n
\n Filters\n
    \n ',"\n
\n
\n "])),this.filters.map((function(t,n){return q(Si||(Si=Ui(["\n
  • \n \n \n
  • \n "])),e.filterClicked,n,t.value,n,t.name)}))):G}},{key:"renderResults",value:function(e){var t=this,n=xo(zo,{title:"Result",classes:["header","icon"]});this.results=q(Ti||(Ti=Ui(['\n
    \n ',"\n
    \n "])),e.results.map((function(e,r){return q(ki||(ki=Ui(['
    \n \n ',"\n

    "," ","

    \n \n\n ","\n
    "])),t.followResultLink,e.path,n.node[0],e.title,t.renderExternalProject(e),e.blocks.map((function(n,o){return q(_i||(_i=Ui(["",""])),t.renderBlockResult(n,"".concat(n.id,"-").concat(r,"-").concat(o),e))})))})))}},{key:"followResultLink",value:function(e){var t=new CustomEvent(He);document.dispatchEvent(t)}},{key:"renderBlockResult",value:function(e,t,n){var r=this,o=e.title;e.highlights.title.length&&(o=Ci(e.highlights.title[0]));var i=e.content.substring(0,80)+" ...";return e.highlights.content.length&&(i=i.length>80?Ci("... "+e.highlights.content[0].substring(0,80)+" ..."):Ci(e.highlights.content[0])),q(Di||(Di=Ui(["\n \n
    \n

    ','

    \n

    ',"

    \n
    \n \n "])),this.mouseenterResultHit,(function(){return r.storeRecentSearch(e,n)}),n.path,e.id,t,o,i)}},{key:"renderRecentSearches",value:function(){var e=this,t=this.getRecentSearches();if(!t||!t.length)return q(Ii||(Ii=Ui(["

    No recent searches

    "])));if(this.hideRecentSearches)return G;t.reverse();var n=xo($o,{title:"Result",classes:["header","icon"]}),r=xo(Po,{title:"Clear recent search",classes:["header","icon"]});return q(Oi||(Oi=Ui(['\n
    \n

    Recent:

    \n ',"\n
    \n "])),t.map((function(t){var o=t.block,i=t.result;return q(zi||(zi=Ui(['
    \n
    \n \n ',"\n

    "," ",'

    \n
    \n (from project ',") \n "])),e.project.slug):G}},{key:"closeModal",value:function(e){this.show=!1,document.activeElement.blur()}},{key:"showModal",value:function(e){this.show=!0}},{key:"updated",value:function(e){var t=this.shadowRoot.querySelector("input[type=search]");null!=t&&t.focus()}},{key:"queryInputFocus",value:function(e){"focusin"===e.type?this.cssFormFocusClasses={focus:!0}:"focusout"===e.type&&(this.cssFormFocusClasses={focus:!1})}},{key:"selectNextResult",value:function(e){var t,n,r=this.renderRoot.querySelectorAll("a.hit"),o=Yi(r.entries());try{for(o.s();!(n=o.n()).done;){var i=Ri(n.value,2),a=i[0],s=i[1];if(s.classList.contains("active")){s,t=a;break}}}catch(e){o.e(e)}finally{o.f()}var c=r.length>0?r.length-1:0,l=0;void 0!==t&&(l=e?t+1:t-1),l>c?l=0:l<0&&(l=c);var u,d=Yi(this.renderRoot.querySelectorAll("a.hit.active"));try{for(d.s();!(u=d.n()).done;){u.value.classList.remove("active")}}catch(e){d.e(e)}finally{d.f()}var f=r[l];f.classList.add("active"),f.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"})}},{key:"selectResultKeyboard",value:function(e){if("ArrowDown"===e.key&&(e.preventDefault(),this.selectNextResult(!0)),"ArrowUp"===e.key&&(e.preventDefault(),this.selectNextResult(!1)),"Enter"===e.key){e.preventDefault();var t=this.renderRoot.querySelector("a.hit.active");null!==t&&t.click()}"Escape"===e.key&&(e.preventDefault(),this.triggerCloseModal())}},{key:"getUserQuery",value:function(){return this.renderRoot.querySelector("input[type=search]").value}},{key:"showSpinIcon",value:function(){"circle-notch"!==this.inputIcon.iconName&&(this.inputIcon=xo(So,{title:"Spinner",classes:["spinner","fa-spin"]}))}},{key:"showMagnifierIcon",value:function(){this.inputIcon=xo(Bo,{title:"Search"})}},{key:"removeAllResults",value:function(){this.results=null}},{key:"fetchResults",value:function(e){var t=this;this.removeAllResults(),this.showSpinIcon();return Pe((function(){t.hideRecentSearches=!0;var n="/_/api/v3/search/?"+new URLSearchParams({q:e}).toString();window.location.href.startsWith("http://localhost")&&(n="/_/readthedocs-search.json"),fetch(n,{method:"GET",headers:{"X-RTD-Hosting-Integrations-Version":Oe}}).then((function(e){if(!e.ok)throw new Error;return e.json()})).then((function(e){e.results.length>0?t.renderResults(e):t.renderNoResultsFound(),t.showMagnifierIcon()})).catch((function(e){console.error(e),t.removeAllResults()}))}),250)}},{key:"getCurrentFilter",value:function(){var e,t=[],n=Yi(this.renderRoot.querySelectorAll(".filters input[type=checkbox]:checked"));try{for(n.s();!(e=n.n()).done;){var r=e.value;t.push(r.value)}}catch(e){n.e(e)}finally{n.f()}return t.join(" ")||this.defaultFilter.value}},{key:"queryInput",value:function(e){var t=this,n=this.getUserQuery();if(n.length>=3){null!==this.currentQueryRequest&&this.currentQueryRequest.cancel(),n=this.getCurrentFilter()+" "+n,this.currentQueryRequest=this.fetchResults(n),this.currentQueryRequest()}else{this.hideRecentSearches=!1,Pe((function(){t.removeAllResults()}),300)()}}},{key:"filterClicked",value:function(e){this.queryInput()}},{key:"mouseenterResultHit",value:function(e){var t,n=Yi(this.renderRoot.querySelectorAll("a.hit.active"));try{for(n.s();!(t=n.n()).done;){t.value.classList.remove("active")}}catch(e){n.e(e)}finally{n.f()}}},{key:"triggerCloseModal",value:function(){var e=new CustomEvent(He);document.dispatchEvent(e)}},{key:"connectedCallback",value:function(){Zi(t,"connectedCallback",this,3)([]),document.addEventListener(We,this._handleShowModal),document.addEventListener(He,this._handleCloseModal)}},{key:"disconnectedCallback",value:function(){document.removeEventListener(We,this._handleShowModal),document.removeEventListener(He,this._handleCloseModal),Zi(t,"disconnectedCallback",this,3)([])}}])}(se);ta(ra,"elementName","readthedocs-search"),ta(ra,"properties",{config:{state:!0},filters:{state:!0},show:{state:!0},inputIcon:{state:!0},results:{state:!0},hideRecentSearches:{state:!0},cssFormFocusClasses:{state:!0},triggerKeycode:{type:Number,attribute:"trigger-keycode"},triggerSelector:{type:String,attribute:"trigger-selector"},triggerEvent:{type:String,attribute:"trigger-event"}}),ta(ra,"styles",Ai.A);var oa=function(e){function t(e){var n;Fi(this,t),n=Wi(this,t);var r=document.querySelectorAll("readthedocs-search");r.length||(r=[new ra],document.body.append(r[0]),r[0].requestUpdate());var o,i=Yi(r);try{for(i.s();!(o=i.n()).done;){o.value.loadConfig(e)}}catch(e){i.e(e)}finally{i.f()}return n}return Ji(t,e),Vi(t)}($e);ta(oa,"jsonValidationURI","http://v1.schemas.readthedocs.org/addons.search.json"),ta(oa,"addonEnabledPath","addons.search.enabled"),ta(oa,"addonName","Search"),ta(oa,"enabledOnHttpStatus",[200,404]),customElements.define("readthedocs-search",ra);var ia=n(2374),aa=n(3329),sa=n(8968);function ca(e){return ca="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ca(e)}function la(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ua(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ua(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function ua(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.length)&&(t=e.length);for(var n=0,r=Array(t);n\n '," ","\n "])),e.node[0],this.config.versions.current.slug));var r=xo(Io,{classes:["icon"]}),o=G;return this.config.projects.translations.length>0&&(o=q(Sa||(Sa=Ka(['\n ',"\n "," "])),t.node[0],this.config.projects.current.language.code)),q(Ta||(Ta=Ka(['\n
    \n \n '," ",'\n ',"\n
    \n "])),this._toggleOpen,this.readthedocsLogo,o,n,r.node[0])}},{key:"renderFooter",value:function(){return q(ka||(ka=Ka(['\n \n \n Addons documentation\n \n Hosted by\n Read the Docs\n \n '])),Re("https://docs.readthedocs.io/page/addons.html","flyout"),Re("https://about.readthedocs.com/","flyout"))}},{key:"showSearch",value:function(){var e=new CustomEvent(Je);document.dispatchEvent(e);var t=new CustomEvent(We);document.dispatchEvent(t)}},{key:"renderSearch",value:function(){return he().get(this.config,"addons.search.enabled",!1)?q(_a||(_a=Ka(['\n
    \n
    Search
    \n
    \n
    \n \n \n
    \n
    \n '])),this.showSearch):G}},{key:"renderVCS",value:function(){if(!this.config.addons.flyout.vcs||!this.config.addons.flyout.vcs.view_url)return G;var e=this.config.addons.flyout.vcs;return q(Da||(Da=Ka(["\n
    \n
    On ",'
    \n
    \n View\n
    \n
    \n '])),e.name,e.view_url)}},{key:"renderReadTheDocs",value:function(){return q(Ia||(Ia=Ka(['\n
    \n
    On Read the Docs
    \n
    \n Project Home\n
    \n
    \n Builds\n
    \n
    \n '])),Re(this.config.projects.current.urls.home.replace("readthedocs.org","app.readthedocs.org").replace("readthedocs.com","app.readthedocs.com").replace("app.app.","app."),"flyout"),Re(this.config.projects.current.urls.builds.replace("readthedocs.org","app.readthedocs.org").replace("readthedocs.com","app.readthedocs.com").replace("app.app.","app."),"flyout"))}},{key:"renderDownloads",value:function(){if(!Object.keys(this.config.versions.current.downloads).length)return G;var e={pdf:"PDF",epub:"EPUB",htmlzip:"HTML"};return q(Oa||(Oa=Ka(['\n
    \n
    Downloads
    \n ',"\n
    \n "])),Object.entries(this.config.versions.current.downloads).map((function(t){var n=Wa(t,2),r=n[0],o=n[1];return q(za||(za=Ka(['
    \n ',"\n
    "])),o,e[r])})))}},{key:"renderVersions",value:function(){var e=this;if(!this.config.versions.active.length||"single_version_without_translations"===this.config.projects.current.versioning_scheme)return G;return q(Pa||(Pa=Ka(['\n
    \n
    Versions
    \n ',"\n
    \n "])),this.config.versions.active.map((function(t){return q(Ra||(Ra=Ka(["
    ","
    "])),function(t){var n=Ye(t.urls.documentation),r=q(Ba||(Ba=Ka(['',""])),n,t.slug);return e.config.versions.current.slug==t.slug?q($a||($a=Ka(["",""])),r):r}(t))})))}},{key:"renderLanguages",value:function(){var e=this;if(!this.config.projects.translations.length)return G;var t=this.config.projects.translations.concat(this.config.projects.current);return t=t.sort((function(e,t){return e.language.code.localeCompare(t.language.code)})),q(Qa||(Qa=Ka(['\n
    \n
    Languages
    \n ',"\n
    \n "])),t.map((function(t){return q(qa||(qa=Ka(["
    ","
    "])),function(t){var n=Ye(t.urls.documentation),r=q(Ua||(Ua=Ka(['',""])),n,t.language.code);return e.config.projects.current.slug===t.slug?q(Ya||(Ya=Ka(["",""])),r):r}(t))})))}},{key:"updateCSSClasses",value:function(){this.classes={floating:this.floating,container:!0},this.classes[this.position]=!0}},{key:"render",value:function(){return null===this.config?G:(this.updateCSSClasses(),q(Fa||(Fa=Ka(["\n
    \n ","\n
    \n "," ","\n "," ","\n "," ","\n
    \n ","\n
    \n
    \n "])),Li(this.classes),this.renderHeader(),Li({closed:!this.opened}),this.renderLanguages(),this.renderVersions(),this.renderDownloads(),this.renderReadTheDocs(),this.renderVCS(),this.renderSearch(),this.renderFooter()))}},{key:"connectedCallback",value:function(){rs(t,"connectedCallback",this,3)([]),document.addEventListener(Xe,this._showFlyout),document.addEventListener(Je,this._hideFlyout),window.addEventListener("click",this._onOutsideClick)}},{key:"disconnectedCallback",value:function(){document.removeEventListener(Xe,this.showFlyout),document.removeEventListener(Je,this.hideFlyout),window.removeEventListener("click",this._onOutsideClick),rs(t,"disconnectedCallback",this,3)([])}}])}(se);cs(us,"elementName","readthedocs-flyout"),cs(us,"properties",{config:{state:!0},opened:{type:Boolean},floating:{type:Boolean},position:{type:String}}),cs(us,"styles",Ga.A);var ds=function(e){function t(e){var n;Xa(this,t),n=ts(this,t);var r=document.querySelectorAll("readthedocs-flyout");r.length||(r=[new us],document.body.append(r[0]),r[0].requestUpdate());var o,i=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Ha(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}(r);try{for(i.s();!(o=i.n()).done;){o.value.loadConfig(e)}}catch(e){i.e(e)}finally{i.f()}return n}return as(t,e),es(t)}($e);cs(ds,"jsonValidationURI","http://v1.schemas.readthedocs.org/addons.flyout.json"),cs(ds,"addonEnabledPath","addons.flyout.enabled"),cs(ds,"addonName","Flyout"),customElements.define("readthedocs-flyout",us);var fs=n(4333);function hs(e){return hs="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},hs(e)}function ps(e,t){for(var n=0;n div.wy-side-scroll",i=document.querySelector(o),this.elementAboveTheFold(i)&&(e.setAttribute("data-ea-type","readthedocs-sidebar"),e.classList.add("ethical-rtd"),e.classList.add("ethical-dark-theme"),a=!0)):qe.isSphinxFuroLikeTheme()?(o=".sidebar-tree",i=document.querySelector(o),this.elementAboveTheFold(i)&&(e.classList.add("ethical-alabaster"),e.setAttribute("data-ea-type","readthedocs-sidebar"),e.setAttribute("id","furo-sidebar-ad-placement"),a=!0)):qe.isSphinxBookThemeLikeTheme()?(o=".sidebar-primary-items__start.sidebar-primary__section",i=document.querySelector(o),this.elementAboveTheFold(i)&&(e.classList.add("ethical-alabaster"),e.setAttribute("data-ea-type","readthedocs-sidebar"),a=!0)):qe.isSphinxAlabasterLikeTheme()?(o="div.sphinxsidebar > div.sphinxsidebarwrapper",i=document.querySelector(o),this.elementAboveTheFold(i)&&(e.classList.add("ethical-alabaster"),e.setAttribute("data-ea-type","readthedocs-sidebar"),a=!0)):qe.isMaterialMkDocsTheme()?(o=".md-sidebar__scrollwrap",i=document.querySelector(o),this.elementAboveTheFold(i)&&(e.classList.add("ethical-alabaster"),e.setAttribute("data-ea-type","readthedocs-sidebar"),a=!0)):qe.isDocusaurusTheme()?(o=".menu.thin-scrollbar.menu_SIkG",i=document.querySelector(o),this.elementAboveTheFold(i)&&(e.classList.add("ethical-alabaster"),e.classList.add("ethical-docusaurus"),e.setAttribute("data-ea-type","readthedocs-sidebar"),e.setAttribute("data-ea-style","image"),a=!0)):qe.isDocsify()?(o="main > aside > div.sidebar-nav",i=document.querySelector(o),this.elementAboveTheFold(i)&&(e.classList.add("ethical-alabaster"),e.classList.add("ethical-docsify"),e.setAttribute("data-ea-type","readthedocs-sidebar"),e.setAttribute("data-ea-style","image"),a=!0)):qe.isAntora()?(o="aside nav.nav-menu",i=document.querySelector(o),this.elementAboveTheFold(i)&&(e.classList.add("ethical-alabaster"),e.setAttribute("data-ea-type","readthedocs-sidebar"),e.setAttribute("data-ea-style","image"),a=!0)):qe.isMdBook()?(o="nav#sidebar mdbook-sidebar-scrollbox",i=document.querySelector(o),this.elementAboveTheFold(i)&&(e.classList.add("ethical-alabaster"),e.setAttribute("data-ea-type","readthedocs-sidebar"),e.setAttribute("data-ea-style","image"),a=!0)):qe.isVitePress()&&(o="aside",i=document.querySelector(o),this.elementAboveTheFold(i)&&(e.classList.add("ethical-alabaster"),e.setAttribute("data-ea-type","readthedocs-sidebar"),e.setAttribute("data-ea-style","image"),a=!0)),o&&a){var s=document.querySelector(o);s&&s.append(e)}else if(window.innerWidth>1300){e.setAttribute("data-ea-type","image"),e.setAttribute("data-ea-style","stickybox"),this.addEaPlacementToElement(e);var c=document.body;c.insertBefore(e,c.lastChild)}}var l=this.config.addons.ethicalads,u=he().get(l,"keywords",[]),d=he().get(l,"campaign_types",[]);return null!==e&&(e.setAttribute("data-ea-manual","true"),e.setAttribute("data-ea-publisher",l.publisher),u.length&&e.setAttribute("data-ea-keywords",u.join("|")),d.length&&e.setAttribute("data-ea-campaign-types",d.join("|"))),e}},{key:"elementAboveTheFold",value:function(e){var t=document.createElement("div");e.append(t);var n=t.offsetTop;return t.remove(),!(!n||n-window.scrollY+300>window.innerHeight)}},{key:"addEaPlacementToElement",value:function(e){he().get(this.config,"addons.flyout.enabled",!1)&&e.setAttribute("data-ea-placement-bottom","90px")}},{key:"loadEthicalAdLibrary",value:function(){var e,t=document.createElement("script");t.setAttribute("id",Es),t.setAttribute("type","text/javascript"),t.setAttribute("async",!0),e="docs.readthedocs.io"===window.location.hostname||window.location.hostname.endsWith(".devthedocs.org")?"https://media.ethicalads.io/media/client/beta/ethicalads.min.js":"https://media.ethicalads.io/media/client/ethicalads.min.js",t.setAttribute("src",e),document.head.appendChild(t),document.getElementById(Es).addEventListener("load",(function(){"undefined"!=typeof ethicalads&ðicalads.load()}))}},{key:"addWidthListener",value:function(){var e=document.querySelector("#readthedocs-ea");e&&"stickybox"===e.dataset.eaStyle&&window.addEventListener("resize",(function(){window.innerWidth<=1300?e.style.display="none":e.style.display=""}))}},{key:"injectEthicalAds",value:function(){this.createAdPlacement(),this.addWidthListener(),this.loadEthicalAdLibrary()}}],[{key:"isEnabled",value:function(e,n){return function(e,t,n,r){var o=ys(As(1&r?e.prototype:e),t,n);return 2&r&&"function"==typeof o?function(e){return o.apply(n,e)}:o}(t,"isEnabled",this,2)([e,n])&&!1===e.addons.ethicalads.ad_free}}])}($e);bs(Cs,"jsonValidationURI","http://v1.schemas.readthedocs.org/addons.ethicalads.json"),bs(Cs,"addonEnabledPath","addons.ethicalads.enabled"),bs(Cs,"addonName","EthicalAds");const Ls={alt:"Alt",cmd:"Cmd",ctrl:"Ctrl",shift:"Shift",joinWith:" + ",hideKey:"never"};let js=Ls;const xs=()=>({alphanumeric:/^Key([A-Z01-9])$/,alpha:/^Key([A-Z])$/,always:/^Key(.*)$/,never:/^(.*)$/}[js.hideKey]);function Ns(e){return{character:-1!==[16,17,18,91,93,224].indexOf(e.keyCode)?null:e.code.replace(xs(),"$1"),modifiers:{cmd:e.metaKey,ctrl:e.ctrlKey,alt:e.altKey,shift:e.shiftKey}}}const Ss=e=>function(e){const t=Ns(e),n=Object.entries(t.modifiers).reduce(((e,[t,n])=>(n&&e.push(js[t]),e)),[]);return t.character&&n.push(t.character),n}(e).join(js.joinWith);function Ts(e){return Ts="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ts(e)}function ks(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return _s(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_s(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function _s(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);ne.concat(t,t+"-"+Ws[0],t+"-"+Ws[1])),[]),Zs=Math.min,Ks=Math.max,Xs=Math.round,Js=(Math.floor,e=>({x:e,y:e})),ec={left:"right",right:"left",bottom:"top",top:"bottom"},tc={start:"end",end:"start"};function nc(e,t,n){return Ks(e,Zs(t,n))}function rc(e,t){return"function"==typeof e?e(t):e}function oc(e){return e.split("-")[0]}function ic(e){return e.split("-")[1]}function ac(e){return"x"===e?"y":"x"}function sc(e){return"y"===e?"height":"width"}function cc(e){return["top","bottom"].includes(oc(e))?"y":"x"}function lc(e){return ac(cc(e))}function uc(e){return e.replace(/start|end/g,(e=>tc[e]))}function dc(e){return e.replace(/left|right|bottom|top/g,(e=>ec[e]))}function fc(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}function hc(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function pc(e,t,n){let{reference:r,floating:o}=e;const i=cc(t),a=lc(t),s=sc(a),c=oc(t),l="y"===i,u=r.x+r.width/2-o.width/2,d=r.y+r.height/2-o.height/2,f=r[s]/2-o[s]/2;let h;switch(c){case"top":h={x:u,y:r.y-o.height};break;case"bottom":h={x:u,y:r.y+r.height};break;case"right":h={x:r.x+r.width,y:d};break;case"left":h={x:r.x-o.width,y:d};break;default:h={x:r.x,y:r.y}}switch(ic(t)){case"start":h[a]-=f*(n&&l?-1:1);break;case"end":h[a]+=f*(n&&l?-1:1)}return h}async function mc(e,t){var n;void 0===t&&(t={});const{x:r,y:o,platform:i,rects:a,elements:s,strategy:c}=e,{boundary:l="clippingAncestors",rootBoundary:u="viewport",elementContext:d="floating",altBoundary:f=!1,padding:h=0}=rc(t,e),p=fc(h),m=s[f?"floating"===d?"reference":"floating":d],g=hc(await i.getClippingRect({element:null==(n=await(null==i.isElement?void 0:i.isElement(m)))||n?m:m.contextElement||await(null==i.getDocumentElement?void 0:i.getDocumentElement(s.floating)),boundary:l,rootBoundary:u,strategy:c})),y="floating"===d?{x:r,y:o,width:a.floating.width,height:a.floating.height}:a.reference,A=await(null==i.getOffsetParent?void 0:i.getOffsetParent(s.floating)),v=await(null==i.isElement?void 0:i.isElement(A))&&await(null==i.getScale?void 0:i.getScale(A))||{x:1,y:1},b=hc(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:s,rect:y,offsetParent:A,strategy:c}):y);return{top:(g.top-b.top+p.top)/v.y,bottom:(b.bottom-g.bottom+p.bottom)/v.y,left:(g.left-b.left+p.left)/v.x,right:(b.right-g.right+p.right)/v.x}}function gc(){return"undefined"!=typeof window}function yc(e){return bc(e)?(e.nodeName||"").toLowerCase():"#document"}function Ac(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function vc(e){var t;return null==(t=(bc(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function bc(e){return!!gc()&&(e instanceof Node||e instanceof Ac(e).Node)}function wc(e){return!!gc()&&(e instanceof Element||e instanceof Ac(e).Element)}function Mc(e){return!!gc()&&(e instanceof HTMLElement||e instanceof Ac(e).HTMLElement)}function Ec(e){return!(!gc()||"undefined"==typeof ShadowRoot)&&(e instanceof ShadowRoot||e instanceof Ac(e).ShadowRoot)}function Cc(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=Tc(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function Lc(e){return["table","td","th"].includes(yc(e))}function jc(e){return[":popover-open",":modal"].some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function xc(e){const t=Nc(),n=wc(e)?Tc(e):e;return["transform","translate","scale","rotate","perspective"].some((e=>!!n[e]&&"none"!==n[e]))||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","translate","scale","rotate","perspective","filter"].some((e=>(n.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(n.contain||"").includes(e)))}function Nc(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function Sc(e){return["html","body","#document"].includes(yc(e))}function Tc(e){return Ac(e).getComputedStyle(e)}function kc(e){return wc(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function _c(e){if("html"===yc(e))return e;const t=e.assignedSlot||e.parentNode||Ec(e)&&e.host||vc(e);return Ec(t)?t.host:t}function Dc(e){const t=_c(e);return Sc(t)?e.ownerDocument?e.ownerDocument.body:e.body:Mc(t)&&Cc(t)?t:Dc(t)}function Ic(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);const o=Dc(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=Ac(o);if(i){const e=Oc(a);return t.concat(a,a.visualViewport||[],Cc(o)?o:[],e&&n?Ic(e):[])}return t.concat(o,Ic(o,[],n))}function Oc(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function zc(e){const t=Tc(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=Mc(e),i=o?e.offsetWidth:n,a=o?e.offsetHeight:r,s=Xs(n)!==i||Xs(r)!==a;return s&&(n=i,r=a),{width:n,height:r,$:s}}function Bc(e){return wc(e)?e:e.contextElement}function $c(e){const t=Bc(e);if(!Mc(t))return Js(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:i}=zc(t);let a=(i?Xs(n.width):n.width)/r,s=(i?Xs(n.height):n.height)/o;return a&&Number.isFinite(a)||(a=1),s&&Number.isFinite(s)||(s=1),{x:a,y:s}}const Pc=Js(0);function Rc(e){const t=Ac(e);return Nc()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:Pc}function Uc(e,t,n,r){void 0===t&&(t=!1),void 0===n&&(n=!1);const o=e.getBoundingClientRect(),i=Bc(e);let a=Js(1);t&&(r?wc(r)&&(a=$c(r)):a=$c(e));const s=function(e,t,n){return void 0===t&&(t=!1),!(!n||t&&n!==Ac(e))&&t}(i,n,r)?Rc(i):Js(0);let c=(o.left+s.x)/a.x,l=(o.top+s.y)/a.y,u=o.width/a.x,d=o.height/a.y;if(i){const e=Ac(i),t=r&&wc(r)?Ac(r):r;let n=e,o=Oc(n);for(;o&&r&&t!==n;){const e=$c(o),t=o.getBoundingClientRect(),r=Tc(o),i=t.left+(o.clientLeft+parseFloat(r.paddingLeft))*e.x,a=t.top+(o.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=i,l+=a,n=Ac(o),o=Oc(n)}}return hc({width:u,height:d,x:c,y:l})}function Yc(e,t){const n=kc(e).scrollLeft;return t?t.left+n:Uc(vc(e)).left+n}function Qc(e,t,n){void 0===n&&(n=!1);const r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-(n?0:Yc(e,r)),y:r.top+t.scrollTop}}function qc(e,t,n){let r;if("viewport"===t)r=function(e,t){const n=Ac(e),r=vc(e),o=n.visualViewport;let i=r.clientWidth,a=r.clientHeight,s=0,c=0;if(o){i=o.width,a=o.height;const e=Nc();(!e||e&&"fixed"===t)&&(s=o.offsetLeft,c=o.offsetTop)}return{width:i,height:a,x:s,y:c}}(e,n);else if("document"===t)r=function(e){const t=vc(e),n=kc(e),r=e.ownerDocument.body,o=Ks(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=Ks(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+Yc(e);const s=-n.scrollTop;return"rtl"===Tc(r).direction&&(a+=Ks(t.clientWidth,r.clientWidth)-o),{width:o,height:i,x:a,y:s}}(vc(e));else if(wc(t))r=function(e,t){const n=Uc(e,!0,"fixed"===t),r=n.top+e.clientTop,o=n.left+e.clientLeft,i=Mc(e)?$c(e):Js(1);return{width:e.clientWidth*i.x,height:e.clientHeight*i.y,x:o*i.x,y:r*i.y}}(t,n);else{const n=Rc(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return hc(r)}function Fc(e,t){const n=_c(e);return!(n===t||!wc(n)||Sc(n))&&("fixed"===Tc(n).position||Fc(n,t))}function Gc(e,t,n){const r=Mc(t),o=vc(t),i="fixed"===n,a=Uc(e,!0,i,t);let s={scrollLeft:0,scrollTop:0};const c=Js(0);if(r||!r&&!i)if(("body"!==yc(t)||Cc(o))&&(s=kc(t)),r){const e=Uc(t,!0,i,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else o&&(c.x=Yc(o));const l=!o||r||i?Js(0):Qc(o,s);return{x:a.left+s.scrollLeft-c.x-l.x,y:a.top+s.scrollTop-c.y-l.y,width:a.width,height:a.height}}function Vc(e){return"static"===Tc(e).position}function Wc(e,t){if(!Mc(e)||"fixed"===Tc(e).position)return null;if(t)return t(e);let n=e.offsetParent;return vc(e)===n&&(n=n.ownerDocument.body),n}function Hc(e,t){const n=Ac(e);if(jc(e))return n;if(!Mc(e)){let t=_c(e);for(;t&&!Sc(t);){if(wc(t)&&!Vc(t))return t;t=_c(t)}return n}let r=Wc(e,t);for(;r&&Lc(r)&&Vc(r);)r=Wc(r,t);return r&&Sc(r)&&Vc(r)&&!xc(r)?n:r||function(e){let t=_c(e);for(;Mc(t)&&!Sc(t);){if(xc(t))return t;if(jc(t))return null;t=_c(t)}return null}(e)||n}const Zc={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const i="fixed"===o,a=vc(r),s=!!t&&jc(t.floating);if(r===a||s&&i)return n;let c={scrollLeft:0,scrollTop:0},l=Js(1);const u=Js(0),d=Mc(r);if((d||!d&&!i)&&(("body"!==yc(r)||Cc(a))&&(c=kc(r)),Mc(r))){const e=Uc(r);l=$c(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}const f=!a||d||i?Js(0):Qc(a,c,!0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}},getDocumentElement:vc,getClippingRect:function(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const i=[..."clippingAncestors"===n?jc(t)?[]:function(e,t){const n=t.get(e);if(n)return n;let r=Ic(e,[],!1).filter((e=>wc(e)&&"body"!==yc(e))),o=null;const i="fixed"===Tc(e).position;let a=i?_c(e):e;for(;wc(a)&&!Sc(a);){const t=Tc(a),n=xc(a);n||"fixed"!==t.position||(o=null),(i?!n&&!o:!n&&"static"===t.position&&o&&["absolute","fixed"].includes(o.position)||Cc(a)&&!n&&Fc(e,a))?r=r.filter((e=>e!==a)):o=t,a=_c(a)}return t.set(e,r),r}(t,this._c):[].concat(n),r],a=i[0],s=i.reduce(((e,n)=>{const r=qc(t,n,o);return e.top=Ks(r.top,e.top),e.right=Zs(r.right,e.right),e.bottom=Zs(r.bottom,e.bottom),e.left=Ks(r.left,e.left),e}),qc(t,a,o));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}},getOffsetParent:Hc,getElementRects:async function(e){const t=this.getOffsetParent||Hc,n=this.getDimensions,r=await n(e.floating);return{reference:Gc(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:n}=zc(e);return{width:t,height:n}},getScale:$c,isElement:wc,isRTL:function(e){return"rtl"===Tc(e).direction}};const Kc=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:i,placement:a,middlewareData:s}=t,c=await async function(e,t){const{placement:n,platform:r,elements:o}=e,i=await(null==r.isRTL?void 0:r.isRTL(o.floating)),a=oc(n),s=ic(n),c="y"===cc(n),l=["left","top"].includes(a)?-1:1,u=i&&c?-1:1,d=rc(t,e);let{mainAxis:f,crossAxis:h,alignmentAxis:p}="number"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return s&&"number"==typeof p&&(h="end"===s?-1*p:p),c?{x:h*u,y:f*l}:{x:f*l,y:h*u}}(t,e);return a===(null==(n=s.offset)?void 0:n.placement)&&null!=(r=s.arrow)&&r.alignmentOffset?{}:{x:o+c.x,y:i+c.y,data:{...c,placement:a}}}}},Xc=function(e){return void 0===e&&(e={}),{name:"autoPlacement",options:e,async fn(t){var n,r,o;const{rects:i,middlewareData:a,placement:s,platform:c,elements:l}=t,{crossAxis:u=!1,alignment:d,allowedPlacements:f=Hs,autoAlignment:h=!0,...p}=rc(e,t),m=void 0!==d||f===Hs?function(e,t,n){return(e?[...n.filter((t=>ic(t)===e)),...n.filter((t=>ic(t)!==e))]:n.filter((e=>oc(e)===e))).filter((n=>!e||ic(n)===e||!!t&&uc(n)!==n))}(d||null,h,f):f,g=await mc(t,p),y=(null==(n=a.autoPlacement)?void 0:n.index)||0,A=m[y];if(null==A)return{};const v=function(e,t,n){void 0===n&&(n=!1);const r=ic(e),o=lc(e),i=sc(o);let a="x"===o?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[i]>t.floating[i]&&(a=dc(a)),[a,dc(a)]}(A,i,await(null==c.isRTL?void 0:c.isRTL(l.floating)));if(s!==A)return{reset:{placement:m[0]}};const b=[g[oc(A)],g[v[0]],g[v[1]]],w=[...(null==(r=a.autoPlacement)?void 0:r.overflows)||[],{placement:A,overflows:b}],M=m[y+1];if(M)return{data:{index:y+1,overflows:w},reset:{placement:M}};const E=w.map((e=>{const t=ic(e.placement);return[e.placement,t&&u?e.overflows.slice(0,2).reduce(((e,t)=>e+t),0):e.overflows[0],e.overflows]})).sort(((e,t)=>e[1]-t[1])),C=E.filter((e=>e[2].slice(0,ic(e[0])?2:3).every((e=>e<=0)))),L=(null==(o=C[0])?void 0:o[0])||E[0][0];return L!==s?{data:{index:y+1,overflows:w},reset:{placement:L}}:{}}}},Jc=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:a=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...c}=rc(e,t),l={x:n,y:r},u=await mc(t,c),d=cc(oc(o)),f=ac(d);let h=l[f],p=l[d];if(i){const e="y"===f?"bottom":"right";h=nc(h+u["y"===f?"top":"left"],h,h-u[e])}if(a){const e="y"===d?"bottom":"right";p=nc(p+u["y"===d?"top":"left"],p,p-u[e])}const m=s.fn({...t,[f]:h,[d]:p});return{...m,data:{x:m.x-n,y:m.y-r}}}}},el=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:i,platform:a,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=rc(e,t)||{};if(null==l)return{};const d=fc(u),f={x:n,y:r},h=lc(o),p=sc(h),m=await a.getDimensions(l),g="y"===h,y=g?"top":"left",A=g?"bottom":"right",v=g?"clientHeight":"clientWidth",b=i.reference[p]+i.reference[h]-f[h]-i.floating[p],w=f[h]-i.reference[h],M=await(null==a.getOffsetParent?void 0:a.getOffsetParent(l));let E=M?M[v]:0;E&&await(null==a.isElement?void 0:a.isElement(M))||(E=s.floating[v]||i.floating[p]);const C=b/2-w/2,L=E/2-m[p]/2-1,j=Zs(d[y],L),x=Zs(d[A],L),N=j,S=E-m[p]-x,T=E/2-m[p]/2+C,k=nc(N,T,S),_=!c.arrow&&null!=ic(o)&&T!==k&&i.reference[p]/2-(T{const r=new Map,o={platform:Zc,...n},i={...o.platform,_c:r};return(async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:a}=n,s=i.filter(Boolean),c=await(null==a.isRTL?void 0:a.isRTL(t));let l=await a.getElementRects({reference:e,floating:t,strategy:o}),{x:u,y:d}=pc(l,r,c),f=r,h={},p=0;for(let n=0;n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw i}}}}function ol(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n
    '),t.insertAdjacentHTML("afterbegin",'
    Loading...
    '),t.setAttribute(yl,i.href),t.classList.add("tooltip"),i.insertAdjacentElement("afterend",t),t.addEventListener("mouseenter",c),t.addEventListener("mouseleave",u),o=t,t}}var vl=function(e){function t(){var e;return il(this,t),ml(e=cl(this,t),"_handleRootDOMChanged",(function(t){e.setupTooltips()})),ze||document.adoptedStyleSheets.push(Vs.A),e.config=null,e}return hl(t,e),sl(t,[{key:"setupTooltips",value:function(){var e=qe.getDocumentationTool(),t=this.config.addons.options.root_selector||qe.getRootSelector(),n=qe.getLinkSelector();console.debug("".concat(bl.addonName,": Using '").concat(n,"' as CSS selector."));var r,o=rl(document.querySelectorAll(n));try{for(o.s();!(r=o.n()).done;){var i=r.value;try{var a=new URL(i.href),s=a.hostname,c=window.location.pathname.replace("/index.html","")==a.pathname.replace("/index.html","");s!==window.location.hostname||c||(i.classList.add("link-preview"),Al(i,e,null,t))}catch(e){console.debug("Skipping link preview on element due to invalid URL: ".concat(i))}}}catch(e){o.e(e)}finally{o.f()}}},{key:"render",value:function(){return G}},{key:"loadConfig",value:function(e){bl.isEnabled(e)&&(this.config=e,this.setupTooltips())}},{key:"connectedCallback",value:function(){ul(t,"connectedCallback",this,3)([]),document.addEventListener(nt,this._handleRootDOMChanged)}},{key:"disconnectedCallback",value:function(){document.removeEventListener(nt,this._handleRootDOMChanged),ul(t,"disconnectedCallback",this,3)([])}}])}(se);ml(vl,"elementName","readthedocs-linkpreviews"),ml(vl,"properties",{config:{state:!0}});var bl=function(e){function t(e){var n;il(this,t),n=cl(this,t);var r=document.querySelectorAll("readthedocs-linkpreviews");r.length||(r=[new vl],document.body.append(r[0]),r[0].requestUpdate());var o,i=rl(r);try{for(i.s();!(o=i.n()).done;){o.value.loadConfig(e)}}catch(e){i.e(e)}finally{i.f()}return n}return hl(t,e),sl(t)}($e);ml(bl,"jsonValidationURI","http://v1.schemas.readthedocs.org/addons.linkpreviews.json"),ml(bl,"addonEnabledPath","addons.linkpreviews.enabled"),ml(bl,"addonName","LinkPreviews"),customElements.define("readthedocs-linkpreviews",vl);var wl,Ml,El,Cl=n(9358);function Ll(e){return Ll="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ll(e)}function jl(e){return function(e){if(Array.isArray(e))return Nl(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||xl(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function xl(e,t){if(e){if("string"==typeof e)return Nl(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Nl(e,t):void 0}}function Nl(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n\n ',"\n \n "])),n,e.map((function(e){return q(Ml||(Ml=Sl(["\n \n ","","\n \n "])),e.urls.current,e.urls.current===t,r,e.filename)})))},r=[].concat(jl(e.added),jl(e.modified)).some((function(e){return e.urls.current===t}));return q(El||(El=Sl(['\n
    \n
    \n \n \n // \n // \n // `;\n }\n\n // This code isn't used until we show a UI,\n // and even then we'll want to trigger events to match state?\n // handleClick(e) {\n // if (e.target.checked) {\n // this.enableDocDiff();\n // } else {\n // this.disableDocDiff();\n // }\n // }\n\n compare() {\n let promiseData;\n\n if (this.cachedRemoteContent !== null) {\n promiseData = Promise.resolve(this.cachedRemoteContent);\n } else {\n promiseData = fetch(this.config.addons.doc_diff.base_url).then(\n (response) => {\n if (!response.ok) {\n throw new Error(\"Error downloading requested base URL.\");\n }\n return response.text();\n },\n );\n }\n\n promiseData\n .then((text) => {\n this.cachedRemoteContent = text;\n this.performDiff(text);\n })\n .finally(() => {\n const event = new CustomEvent(EVENT_READTHEDOCS_ROOT_DOM_CHANGED);\n document.dispatchEvent(event);\n })\n .catch((error) => {\n console.error(error);\n });\n }\n\n // After finding the root element, and diffing it, replace it in the DOM\n // with the resulting visual diff elements instead.\n performDiff(remoteContent) {\n const parser = new DOMParser();\n const html_document = parser.parseFromString(remoteContent, \"text/html\");\n const old_body = html_document.documentElement.querySelector(\n this.rootSelector,\n );\n const new_body = document.querySelector(this.rootSelector);\n\n if (old_body == null || new_body == null) {\n throw new Error(\"Element not found in both documents.\");\n }\n\n const diffNode = visualDomDiff.visualDomDiff(\n old_body,\n new_body,\n VISUAL_DIFF_OPTIONS,\n );\n new_body.replaceWith(diffNode.firstElementChild);\n }\n\n enableDocDiff() {\n // TODO: Unsure when this would happen?\n // Perhaps when DocDiffAddon.isEnabled returns false?\n if (this.config === null) {\n return null;\n }\n\n if (this.enabled) {\n console.debug(\"Ignoring enableDocDiff: it was already enabled\");\n return null;\n }\n\n // Update URL to include the diff parameter\n const url = new URL(window.location.href);\n url.searchParams.set(DOCDIFF_URL_PARAM, \"true\");\n window.history.replaceState({}, \"\", url);\n\n this.enabled = true;\n this.originalBody = document.querySelector(this.rootSelector);\n return this.compare();\n }\n\n disableDocDiff() {\n if (!this.enabled) {\n console.debug(\"Ignoring disableDocDiff: it was already disabled\");\n return null;\n }\n\n // Remove diff parameter from URL\n const url = new URL(window.location.href);\n url.searchParams.delete(DOCDIFF_URL_PARAM);\n window.history.replaceState({}, \"\", url);\n\n this.enabled = false;\n document.querySelector(this.rootSelector).replaceWith(this.originalBody);\n\n const event = new CustomEvent(EVENT_READTHEDOCS_ROOT_DOM_CHANGED);\n document.dispatchEvent(event);\n }\n\n _handleShowDocDiff = (e) => {\n e.preventDefault();\n this.enableDocDiff();\n };\n\n _handleHideDocDiff = (e) => {\n e.preventDefault();\n this.disableDocDiff();\n };\n\n connectedCallback() {\n super.connectedCallback();\n\n document.addEventListener(\n EVENT_READTHEDOCS_DOCDIFF_ADDED_REMOVED_SHOW,\n this._handleShowDocDiff,\n );\n document.addEventListener(\n EVENT_READTHEDOCS_DOCDIFF_HIDE,\n this._handleHideDocDiff,\n );\n }\n\n disconnectedCallback() {\n document.removeEventListener(\n EVENT_READTHEDOCS_DOCDIFF_ADDED_REMOVED_SHOW,\n this._handleShowDocDiff,\n );\n document.removeEventListener(\n EVENT_READTHEDOCS_DOCDIFF_HIDE,\n this._handleHideDocDiff,\n );\n super.disconnectedCallback();\n }\n}\n\nexport class DocDiffAddon extends AddonBase {\n static jsonValidationURI =\n \"http://v1.schemas.readthedocs.org/addons.docdiff.json\";\n static addonEnabledPath = \"addons.doc_diff.enabled\";\n static addonName = \"DocDiff\";\n\n constructor(config) {\n super();\n\n // TODO: is it possible to move this `constructor` to the `AddonBase` class?\n customElements.define(\"readthedocs-docdiff\", DocDiffElement);\n let elems = document.querySelectorAll(\"readthedocs-docdiff\");\n if (!elems.length) {\n elems = [new DocDiffElement()];\n document.body.append(elems[0]);\n elems[0].requestUpdate();\n }\n\n for (const elem of elems) {\n elem.loadConfig(config);\n }\n }\n\n static requiresUrlParam() {\n return (\n window.location.host.endsWith(\".readthedocs.build\") ||\n // Allow the addon to be enabled on root domains in dev,\n // so we don't have to setup external versions for testing.\n window.location.host.endsWith(\".devthedocs.org\") ||\n window.location.host.endsWith(\".devthedocs.com\")\n );\n }\n}\n","import { ajv } from \"./data-validation\";\nimport READTHEDOCS_LOGO_WORDMARK from \"./images/logo-wordmark-light.svg\";\nimport READTHEDOCS_LOGO from \"./images/logo-light.svg\";\nimport { library, icon } from \"@fortawesome/fontawesome-svg-core\";\nimport {\n faCodeBranch,\n faCaretDown,\n faLanguage,\n} from \"@fortawesome/free-solid-svg-icons\";\nimport { html, nothing, render, LitElement } from \"lit\";\nimport { classMap } from \"lit/directives/class-map.js\";\nimport { default as objectPath } from \"object-path\";\n\nimport styleSheet from \"./flyout.css\";\nimport { AddonBase, addUtmParameters, getLinkWithFilename } from \"./utils\";\nimport { SPHINX, MKDOCS_MATERIAL } from \"./constants\";\nimport {\n EVENT_READTHEDOCS_SEARCH_SHOW,\n EVENT_READTHEDOCS_FLYOUT_HIDE,\n EVENT_READTHEDOCS_FLYOUT_SHOW,\n} from \"./events\";\n\nexport class FlyoutElement extends LitElement {\n static elementName = \"readthedocs-flyout\";\n\n static properties = {\n config: { state: true },\n opened: { type: Boolean },\n floating: { type: Boolean },\n position: { type: String },\n };\n\n static styles = styleSheet;\n\n constructor() {\n super();\n\n this.config = null;\n this.opened = false;\n this.floating = true;\n this.position = \"bottom-right\";\n this.readthedocsLogo = READTHEDOCS_LOGO;\n }\n\n loadConfig(config) {\n // Validate the config object before assigning it to the Addon.\n // Later, ``render()`` method will check whether this object exists and (not) render\n // accordingly\n if (!FlyoutAddon.isEnabled(config)) {\n return;\n }\n this.config = config;\n\n // The \"position\" is a value that can be defined from the dashboard.\n // There are two main options: \"Default\" or a specific value.\n // When \"Default\" is used, the value will be grabbed from the HTML element (e.g. explicitly set by the theme author).\n // In case it's not defined, the value defined in the `constructor` will be used (\"bottom-right\")\n const dashboardPosition = objectPath.get(\n this.config,\n \"addons.flyout.position\",\n null,\n );\n if (dashboardPosition) {\n this.position = dashboardPosition;\n }\n }\n\n _close() {\n this.opened = false;\n this.readthedocsLogo = READTHEDOCS_LOGO;\n }\n\n _open() {\n this.opened = true;\n this.readthedocsLogo = READTHEDOCS_LOGO_WORDMARK;\n }\n\n _toggleOpen(e) {\n this.opened ? this._close() : this._open();\n }\n\n _onOutsideClick = (e) => {\n if (e.target !== this) {\n this._close();\n }\n };\n\n renderHeader() {\n library.add(faCodeBranch);\n library.add(faLanguage);\n const iconCodeBranch = icon(faCodeBranch, {\n classes: [\"icon\"],\n });\n const iconLanguage = icon(faLanguage, {\n classes: [\"icon\"],\n });\n let version = nothing;\n if (\n this.config.projects.current.versioning_scheme !==\n \"single_version_without_translations\"\n ) {\n version = html`\n ${iconCodeBranch.node[0]} ${this.config.versions.current.slug}\n `;\n }\n\n const iconCaretDown = icon(faCaretDown, {\n classes: [\"icon\"],\n });\n\n let translation = nothing;\n if (this.config.projects.translations.length > 0) {\n translation = html`\n ${iconLanguage.node[0]}\n ${this.config.projects.current.language.code} `;\n }\n\n return html`\n
    \n \"Read\n ${translation} ${version}\n ${iconCaretDown.node[0]}\n
    \n `;\n }\n\n renderFooter() {\n return html`\n \n \n Addons documentation\n \n Hosted by\n Read the Docs\n \n `;\n }\n\n showSearch() {\n // Dispatch the custom event to hide/collapse the flyout when showing the search modal\n const flyoutEvent = new CustomEvent(EVENT_READTHEDOCS_FLYOUT_HIDE);\n document.dispatchEvent(flyoutEvent);\n\n // Dispatch the custom event the search addon is listening to show the modal\n const searchEvent = new CustomEvent(EVENT_READTHEDOCS_SEARCH_SHOW);\n document.dispatchEvent(searchEvent);\n }\n\n renderSearch() {\n // Display the search input only if the search is enabled for this project\n // Note we use ``objectPath`` here instead of validating via JSON schema\n // because this value is optional: even if the search API response is broken,\n // we want to keep showing the flyout but without the search input.\n const searchEnabled = objectPath.get(\n this.config,\n \"addons.search.enabled\",\n false,\n );\n if (searchEnabled) {\n return html`\n
    \n
    Search
    \n
    \n
    \n \n \n
    \n
    \n `;\n }\n return nothing;\n }\n\n renderVCS() {\n if (\n // TODO: remove this check when ``vcs`` property becomes required\n !this.config.addons.flyout.vcs ||\n !this.config.addons.flyout.vcs.view_url\n ) {\n return nothing;\n }\n const { vcs } = this.config.addons.flyout;\n\n return html`\n
    \n
    On ${vcs.name}
    \n
    \n View\n
    \n
    \n `;\n }\n\n renderReadTheDocs() {\n return html`\n
    \n
    On Read the Docs
    \n
    \n Project Home\n
    \n
    \n Builds\n
    \n
    \n `;\n }\n\n renderDownloads() {\n if (!Object.keys(this.config.versions.current.downloads).length) {\n return nothing;\n }\n\n const nameDisplay = {\n pdf: \"PDF\",\n epub: \"EPUB\",\n htmlzip: \"HTML\",\n };\n\n return html`\n
    \n
    Downloads
    \n ${Object.entries(this.config.versions.current.downloads).map(\n ([name, url]) =>\n html`
    \n ${nameDisplay[name]}\n
    `,\n )}\n
    \n `;\n }\n\n renderVersions() {\n if (\n !this.config.versions.active.length ||\n this.config.projects.current.versioning_scheme ===\n \"single_version_without_translations\"\n ) {\n return nothing;\n }\n\n const getVersionLink = (version) => {\n const url = getLinkWithFilename(version.urls.documentation);\n const link = html`${version.slug}`;\n return this.config.versions.current.slug == version.slug\n ? html`${link}`\n : link;\n };\n\n return html`\n
    \n
    Versions
    \n ${this.config.versions.active.map(\n (version) => html`
    ${getVersionLink(version)}
    `,\n )}\n
    \n `;\n }\n\n renderLanguages() {\n if (!this.config.projects.translations.length) {\n return nothing;\n }\n\n const getLanguageLink = (translation) => {\n const url = getLinkWithFilename(translation.urls.documentation);\n const link = html`${translation.language.code}`;\n return this.config.projects.current.slug === translation.slug\n ? html`${link}`\n : link;\n };\n\n // Add the current project as \"translation\" and sort them based on language's code\n let translations = this.config.projects.translations.concat(\n this.config.projects.current,\n );\n translations = translations.sort((a, b) =>\n a.language.code.localeCompare(b.language.code),\n );\n\n return html`\n
    \n
    Languages
    \n ${translations.map(\n (translation) => html`
    ${getLanguageLink(translation)}
    `,\n )}\n
    \n `;\n }\n\n updateCSSClasses() {\n this.classes = { floating: this.floating, container: true };\n this.classes[this.position] = true;\n }\n\n render() {\n // The element doesn't yet have our config, don't render it.\n if (this.config === null) {\n // nothing is a special Lit response type\n return nothing;\n }\n\n this.updateCSSClasses();\n\n return html`\n
    \n ${this.renderHeader()}\n
    \n ${this.renderLanguages()} ${this.renderVersions()}\n ${this.renderDownloads()} ${this.renderReadTheDocs()}\n ${this.renderVCS()} ${this.renderSearch()}\n
    \n ${this.renderFooter()}\n
    \n
    \n `;\n }\n\n _showFlyout = (e) => {\n this.opened = true;\n };\n\n _hideFlyout = (e) => {\n this.opened = false;\n };\n\n connectedCallback() {\n super.connectedCallback();\n\n document.addEventListener(EVENT_READTHEDOCS_FLYOUT_SHOW, this._showFlyout);\n document.addEventListener(EVENT_READTHEDOCS_FLYOUT_HIDE, this._hideFlyout);\n window.addEventListener(\"click\", this._onOutsideClick);\n }\n\n disconnectedCallback() {\n document.removeEventListener(\n EVENT_READTHEDOCS_FLYOUT_SHOW,\n this.showFlyout,\n );\n\n document.removeEventListener(\n EVENT_READTHEDOCS_FLYOUT_HIDE,\n this.hideFlyout,\n );\n window.removeEventListener(\"click\", this._onOutsideClick);\n\n super.disconnectedCallback();\n }\n}\n\n/**\n * Flyout addon\n *\n * @param {Object} config - Addon configuration object\n */\nexport class FlyoutAddon extends AddonBase {\n static jsonValidationURI =\n \"http://v1.schemas.readthedocs.org/addons.flyout.json\";\n static addonEnabledPath = \"addons.flyout.enabled\";\n static addonName = \"Flyout\";\n\n constructor(config) {\n super();\n\n // If there are no elements found, inject one\n let elems = document.querySelectorAll(\"readthedocs-flyout\");\n if (!elems.length) {\n elems = [new FlyoutElement()];\n\n // We cannot use `render(elems[0], document.body)` because there is a race conditions between all the addons.\n // So, we append the web-component first and then request an update of it.\n document.body.append(elems[0]);\n elems[0].requestUpdate();\n }\n\n for (const elem of elems) {\n elem.loadConfig(config);\n }\n }\n}\n\ncustomElements.define(\"readthedocs-flyout\", FlyoutElement);\n","import { ajv } from \"./data-validation\";\nimport { AddonBase } from \"./utils\";\nimport { default as objectPath } from \"object-path\";\nimport styleSheet from \"./ethicalads.css\";\nimport { IS_TESTING, docTool } from \"./utils.js\";\n\n// https://docs.readthedocs.io/en/stable/advertising/ad-customization.html#controlling-the-placement-of-an-ad\nconst EXPLICIT_PLACEMENT_SELECTORS = [\n \"#ethical-ad-placement\",\n \"[data-ea-publisher]\",\n];\n\n// https://ethical-ad-client.readthedocs.io/en/latest/\nconst AD_PLACEMENT_BOTTOM = \"90px\";\nconst AD_SIZE = 300; // pixels\nconst AD_SCRIPT_ID = \"ethicaladsjs\";\n\n/**\n * EthicalAds addon\n *\n * Show an ad in the documentation page.\n *\n * Read more at:\n * - https://docs.readthedocs.io/en/stable/advertising/ethical-advertising.html\n *\n * @param {Object} config - Addon configuration object\n */\nexport class EthicalAdsAddon extends AddonBase {\n static jsonValidationURI =\n \"http://v1.schemas.readthedocs.org/addons.ethicalads.json\";\n static addonEnabledPath = \"addons.ethicalads.enabled\";\n static addonName = \"EthicalAds\";\n\n constructor(config) {\n super();\n this.config = config;\n this.injectEthicalAds();\n }\n\n createAdPlacement() {\n let placement;\n\n // TODO: fix this on testing. It works fine on production/regular browser.\n // TypeError: Failed to execute 'indexed value' on 'ObservableArray': Failed to convert value to 'CSSStyleSheet'.\n if (!IS_TESTING) {\n // Include CSS into the DOM so they can be read.\n document.adoptedStyleSheets.push(styleSheet);\n }\n\n for (const explicitSelector of EXPLICIT_PLACEMENT_SELECTORS) {\n placement = document.querySelector(explicitSelector);\n if (placement) break;\n }\n\n if (placement) {\n if (\n placement.getAttribute(\"data-ea-type\") !== \"image\" &&\n placement.getAttribute(\"data-ea-type\") !== \"text\"\n ) {\n placement.setAttribute(\"data-ea-type\", \"readthedocs-sidebar\");\n }\n } else {\n // Inject our own floating element\n placement = document.createElement(\"div\");\n placement.setAttribute(\"id\", \"readthedocs-ea\");\n placement.classList.add(\"raised\");\n\n // Define where to inject the Ad based on the theme and if it's above the fold or not.\n let selector;\n let element;\n let knownPlacementFound = false;\n\n if (docTool.isSphinxReadTheDocsLikeTheme()) {\n selector = \"nav.wy-nav-side > div.wy-side-scroll\";\n element = document.querySelector(selector);\n\n if (this.elementAboveTheFold(element)) {\n placement.setAttribute(\"data-ea-type\", \"readthedocs-sidebar\");\n placement.classList.add(\"ethical-rtd\");\n placement.classList.add(\"ethical-dark-theme\");\n knownPlacementFound = true;\n }\n } else if (docTool.isSphinxFuroLikeTheme()) {\n // NOTE: The code to handle furo theme shouldn't be required,\n // since furo uses explicit placement.\n // However, the Jinja context variable READTHEDOCS is not injected anymore,\n // and furo does not includes the explicit placement due to this.\n // This is a temporal solution while they fix this.\n selector = \".sidebar-tree\";\n element = document.querySelector(selector);\n\n if (this.elementAboveTheFold(element)) {\n placement.classList.add(\"ethical-alabaster\");\n placement.setAttribute(\"data-ea-type\", \"readthedocs-sidebar\");\n placement.setAttribute(\"id\", \"furo-sidebar-ad-placement\");\n knownPlacementFound = true;\n }\n } else if (docTool.isSphinxBookThemeLikeTheme()) {\n selector = \".sidebar-primary-items__start.sidebar-primary__section\";\n element = document.querySelector(selector);\n\n if (this.elementAboveTheFold(element)) {\n placement.classList.add(\"ethical-alabaster\");\n placement.setAttribute(\"data-ea-type\", \"readthedocs-sidebar\");\n knownPlacementFound = true;\n }\n } else if (docTool.isSphinxAlabasterLikeTheme()) {\n selector = \"div.sphinxsidebar > div.sphinxsidebarwrapper\";\n element = document.querySelector(selector);\n\n if (this.elementAboveTheFold(element)) {\n placement.classList.add(\"ethical-alabaster\");\n placement.setAttribute(\"data-ea-type\", \"readthedocs-sidebar\");\n knownPlacementFound = true;\n }\n } else if (docTool.isMaterialMkDocsTheme()) {\n selector = \".md-sidebar__scrollwrap\";\n element = document.querySelector(selector);\n\n if (this.elementAboveTheFold(element)) {\n // TODO: use a more styled CSS class.\n // See https://github.com/readthedocs/ethical-ad-client/issues/193\n placement.classList.add(\"ethical-alabaster\");\n\n placement.setAttribute(\"data-ea-type\", \"readthedocs-sidebar\");\n knownPlacementFound = true;\n }\n } else if (docTool.isDocusaurusTheme()) {\n selector = \".menu.thin-scrollbar.menu_SIkG\";\n element = document.querySelector(selector);\n\n if (this.elementAboveTheFold(element)) {\n // TODO: use a more styled CSS class.\n // See https://github.com/readthedocs/ethical-ad-client/issues/193\n placement.classList.add(\"ethical-alabaster\");\n placement.classList.add(\"ethical-docusaurus\");\n\n placement.setAttribute(\"data-ea-type\", \"readthedocs-sidebar\");\n placement.setAttribute(\"data-ea-style\", \"image\");\n knownPlacementFound = true;\n }\n } else if (docTool.isDocsify()) {\n selector = \"main > aside > div.sidebar-nav\";\n element = document.querySelector(selector);\n\n if (this.elementAboveTheFold(element)) {\n placement.classList.add(\"ethical-alabaster\");\n placement.classList.add(\"ethical-docsify\");\n\n placement.setAttribute(\"data-ea-type\", \"readthedocs-sidebar\");\n placement.setAttribute(\"data-ea-style\", \"image\");\n knownPlacementFound = true;\n }\n } else if (docTool.isAntora()) {\n selector = \"aside nav.nav-menu\";\n element = document.querySelector(selector);\n\n if (this.elementAboveTheFold(element)) {\n placement.classList.add(\"ethical-alabaster\");\n\n placement.setAttribute(\"data-ea-type\", \"readthedocs-sidebar\");\n placement.setAttribute(\"data-ea-style\", \"image\");\n knownPlacementFound = true;\n }\n } else if (docTool.isMdBook()) {\n selector = \"nav#sidebar mdbook-sidebar-scrollbox\";\n element = document.querySelector(selector);\n\n if (this.elementAboveTheFold(element)) {\n placement.classList.add(\"ethical-alabaster\");\n\n placement.setAttribute(\"data-ea-type\", \"readthedocs-sidebar\");\n placement.setAttribute(\"data-ea-style\", \"image\");\n knownPlacementFound = true;\n }\n } else if (docTool.isVitePress()) {\n selector = \"aside\";\n element = document.querySelector(selector);\n\n if (this.elementAboveTheFold(element)) {\n placement.classList.add(\"ethical-alabaster\");\n\n placement.setAttribute(\"data-ea-type\", \"readthedocs-sidebar\");\n placement.setAttribute(\"data-ea-style\", \"image\");\n knownPlacementFound = true;\n }\n }\n\n if (selector && knownPlacementFound) {\n const elementToAppend = document.querySelector(selector);\n if (elementToAppend) {\n elementToAppend.append(placement);\n }\n } else if (window.innerWidth > 1300) {\n // https://ethical-ad-client.readthedocs.io/en/latest/#stickybox\n placement.setAttribute(\"data-ea-type\", \"image\");\n placement.setAttribute(\"data-ea-style\", \"stickybox\");\n this.addEaPlacementToElement(placement);\n // `document.body` here is not too much relevant, since we are going to\n // use this selector only for a floating stickybox ad\n const elementInsertBefore = document.body;\n elementInsertBefore.insertBefore(\n placement,\n elementInsertBefore.lastChild,\n );\n }\n }\n\n // Optional attributes coming from the API JSON response.\n // We get them if exists or return default values otherwise.\n const data = this.config.addons.ethicalads;\n const keywords = objectPath.get(data, \"keywords\", []);\n const campaign_types = objectPath.get(data, \"campaign_types\", []);\n\n if (placement !== null) {\n // This ensure us that all the `data-ea-*` attributes are already set in the HTML tag.\n placement.setAttribute(\"data-ea-manual\", \"true\");\n\n // Set the keyword, campaign data, and publisher\n placement.setAttribute(\"data-ea-publisher\", data.publisher);\n\n if (keywords.length) {\n placement.setAttribute(\"data-ea-keywords\", keywords.join(\"|\"));\n }\n if (campaign_types.length) {\n placement.setAttribute(\n \"data-ea-campaign-types\",\n campaign_types.join(\"|\"),\n );\n }\n }\n\n return placement;\n }\n\n elementAboveTheFold(element) {\n // Determine if this element would be above the fold.\n // If this is off screen, instead create an ad in the footer.\n // Assumes the ad would be AD_SIZE pixels high.\n const div = document.createElement(\"div\");\n\n // Append a temporary element to check if it's visible on the screen.\n element.append(div);\n const offsetTop = div.offsetTop;\n div.remove();\n\n if (\n !offsetTop ||\n offsetTop - window.scrollY + AD_SIZE > window.innerHeight\n ) {\n return false;\n }\n\n return true;\n }\n\n addEaPlacementToElement(element) {\n // Add `ea-placement-bottom` to the element only if the flyout is enabled.\n const flyoutEnabled = objectPath.get(\n this.config,\n \"addons.flyout.enabled\",\n false,\n );\n if (flyoutEnabled) {\n element.setAttribute(\"data-ea-placement-bottom\", AD_PLACEMENT_BOTTOM);\n }\n }\n\n loadEthicalAdLibrary() {\n const library = document.createElement(\"script\");\n library.setAttribute(\"id\", AD_SCRIPT_ID);\n library.setAttribute(\"type\", \"text/javascript\");\n library.setAttribute(\"async\", true);\n\n // TODO: inject the stable version after we have tested this.\n // Inject the Ethical Ad client (beta) only for our own documentation.\n let src;\n if (\n window.location.hostname === \"docs.readthedocs.io\" ||\n window.location.hostname.endsWith(\".devthedocs.org\")\n ) {\n src = \"https://media.ethicalads.io/media/client/beta/ethicalads.min.js\";\n } else {\n src = \"https://media.ethicalads.io/media/client/ethicalads.min.js\";\n }\n\n library.setAttribute(\"src\", src);\n document.head.appendChild(library);\n\n document.getElementById(AD_SCRIPT_ID).addEventListener(\"load\", function () {\n if (typeof ethicalads !== \"undefined\") {\n ethicalads.load();\n }\n });\n }\n\n addWidthListener() {\n // Hide ad when the window is smaller than the stickybox width\n const placement = document.querySelector(\"#readthedocs-ea\");\n if (placement && placement.dataset.eaStyle === \"stickybox\") {\n window.addEventListener(\"resize\", function () {\n if (window.innerWidth <= 1300) {\n placement.style.display = \"none\";\n } else {\n placement.style.display = \"\";\n }\n });\n }\n }\n\n injectEthicalAds() {\n // Create the placement first and after that load the EthicalAd library.\n // This will automatically \"load_placement\" and render the ad properly.\n this.createAdPlacement();\n this.addWidthListener();\n this.loadEthicalAdLibrary();\n }\n\n static isEnabled(config, httpStatus) {\n return (\n super.isEnabled(config, httpStatus) &&\n config.addons.ethicalads.ad_free === false\n );\n }\n}\n","// Based on\n// https://github.com/florian/key-event-to-string/blob/master/index.js\nconst defaultOptions = {\n alt: 'Alt',\n cmd: 'Cmd',\n ctrl: 'Ctrl',\n shift: 'Shift',\n joinWith: ' + ',\n hideKey: 'never'\n};\nlet gOptions = defaultOptions;\nconst hideKeyRegExp = () => ({\n 'alphanumeric': /^Key([A-Z01-9])$/,\n 'alpha': /^Key([A-Z])$/,\n 'always': /^Key(.*)$/,\n 'never': /^(.*)$/\n})[gOptions.hideKey];\nfunction buildKeyMap(e) {\n const isOnlyModifier = [16, 17, 18, 91, 93, 224].indexOf(e.keyCode) !== -1;\n const character = isOnlyModifier ? null : e.code.replace(hideKeyRegExp(), '$1');\n return {\n character: character,\n modifiers: {\n cmd: e.metaKey,\n ctrl: e.ctrlKey,\n alt: e.altKey,\n shift: e.shiftKey\n }\n };\n}\nfunction buildKeyArray(e) {\n const map = buildKeyMap(e);\n const entries = Object.entries(map.modifiers);\n const result = entries\n .reduce((memo, [k, v]) => {\n if (v)\n memo.push(gOptions[k]);\n return memo;\n }, []);\n if (map.character)\n result.push(map.character);\n return result;\n}\nexport function details(e) {\n const map = buildKeyMap(e);\n const hasModifier = Object.values(map.modifiers).reduce((m, v) => m || v);\n return {\n hasKey: map.character != null,\n hasModifier: hasModifier,\n map: map\n };\n}\nexport function setOptions(userOptions) {\n return gOptions = Object.assign(Object.assign({}, defaultOptions), userOptions);\n}\nexport const toString = (e) => buildKeyArray(e).join(gOptions.joinWith);\n//# sourceMappingURL=keyboard-event-to-string.js.map","import { toString as keyboardEventToString } from \"keyboard-event-to-string\";\n\nimport { AddonBase } from \"./utils\";\nimport { LitElement } from \"lit\";\nimport {\n EVENT_READTHEDOCS_SEARCH_SHOW,\n EVENT_READTHEDOCS_DOCDIFF_ADDED_REMOVED_SHOW,\n EVENT_READTHEDOCS_DOCDIFF_HIDE,\n} from \"./events\";\n\nexport class HotKeysElement extends LitElement {\n static elementName = \"readthedocs-hotkeys\";\n\n static properties = {\n config: {\n state: true,\n },\n enabled: {\n type: Boolean,\n },\n };\n\n constructor() {\n super();\n\n this.config = null;\n }\n\n loadConfig(config) {\n // Validate the config object before assigning it to the Addon.\n // Later, ``render()`` method will check whether this object exists and (not) render\n // accordingly\n if (!HotKeysAddon.isEnabled(config)) {\n return;\n }\n\n this.config = config;\n\n this.docDiffHotKeyEnabled = this.config.addons.hotkeys.doc_diff.enabled;\n this.docDiffEnabled = false;\n\n this.searchHotKeyEnabled = this.config.addons.hotkeys.search.enabled;\n }\n\n _handleKeydown = (e) => {\n // Close docdiff with single-stroke `d` (no Ctrl, no Shift, no Alt and no Meta)\n // (I'm checking `document.activeElement` to check if it not inside an INPUT to avoid enable/disable while typing on forms)\n // Read more about these decisions at https://github.com/readthedocs/addons/issues/80\n\n let event;\n\n // DocDiff\n if (\n this.docDiffHotKeyEnabled &&\n keyboardEventToString(e) ===\n this.config.addons.hotkeys.doc_diff.trigger &&\n document.activeElement.tagName !== \"INPUT\" &&\n document.activeElement.tagName !== \"TEXTAREA\" &&\n document.activeElement.tagName !== \"READTHEDOCS-SEARCH\"\n ) {\n if (this.docDiffEnabled) {\n event = new CustomEvent(EVENT_READTHEDOCS_DOCDIFF_HIDE);\n } else {\n event = new CustomEvent(EVENT_READTHEDOCS_DOCDIFF_ADDED_REMOVED_SHOW);\n }\n }\n\n // Search\n if (\n this.searchHotKeyEnabled &&\n keyboardEventToString(e) === this.config.addons.hotkeys.search.trigger &&\n document.activeElement.tagName !== \"INPUT\" &&\n document.activeElement.tagName !== \"TEXTAREA\" &&\n document.activeElement.tagName !== \"READTHEDOCS-SEARCH\"\n ) {\n event = new CustomEvent(EVENT_READTHEDOCS_SEARCH_SHOW);\n }\n\n // Send event for all keydown events\n if (event !== undefined) {\n document.dispatchEvent(event);\n e.preventDefault();\n }\n };\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener(\"keydown\", this._handleKeydown);\n document.addEventListener(\n EVENT_READTHEDOCS_DOCDIFF_ADDED_REMOVED_SHOW,\n this._handleDocDiffShow,\n );\n document.addEventListener(\n EVENT_READTHEDOCS_DOCDIFF_HIDE,\n this._handleDocDiffHide,\n );\n }\n\n disconnectedCallback() {\n document.removeEventListener(\"keydown\", this._handleKeydown);\n document.removeEventListener(\n EVENT_READTHEDOCS_DOCDIFF_ADDED_REMOVED_SHOW,\n this._handleDocDiffShow,\n );\n document.removeEventListener(\n EVENT_READTHEDOCS_DOCDIFF_HIDE,\n this._handleDocDiffHide,\n );\n super.disconnectedCallback();\n }\n\n _handleDocDiffShow = (event) => {\n this.docDiffEnabled = true;\n };\n\n _handleDocDiffHide = (event) => {\n this.docDiffEnabled = false;\n };\n}\n\nexport class HotKeysAddon extends AddonBase {\n static jsonValidationURI =\n \"http://v1.schemas.readthedocs.org/addons.hotkeys.json\";\n static addonEnabledPath = \"addons.hotkeys.enabled\";\n static addonName = \"HotKeys\";\n\n constructor(config) {\n super();\n\n // TODO: is it possible to move this `constructor` to the `AddonBase` class?\n let elems = document.querySelectorAll(\"readthedocs-hotkeys\");\n if (!elems.length) {\n elems = [new HotKeysElement()];\n document.body.append(elems[0]);\n elems[0].requestUpdate();\n }\n\n for (const elem of elems) {\n elem.loadConfig(config);\n }\n }\n}\n\ncustomElements.define(\"readthedocs-hotkeys\", HotKeysElement);\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the element as the offsetParent if it's non-static,\n // while Chrome and Safari return the element. The element must\n // be used to perform the correct calculations even if the element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle