diff --git a/404.html b/404.html new file mode 100644 index 00000000..0164ee0d --- /dev/null +++ b/404.html @@ -0,0 +1,13 @@ + + + + + +CML + + + + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + \ No newline at end of file diff --git a/assets/css/styles.cc413682.css b/assets/css/styles.cc413682.css new file mode 100644 index 00000000..317dc694 --- /dev/null +++ b/assets/css/styles.cc413682.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.loadingRing_RJI3 div{box-sizing:border-box}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#356ddb;--ifm-color-primary-dark:#356ddb;--ifm-color-primary-darker:#356ddb;--ifm-color-primary-darkest:#356ddb;--ifm-color-primary-light:#356ddb;--ifm-color-primary-lighter:#356ddb;--ifm-color-primary-lightest:#356ddb;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--ifm-spacing-horizontal:40px;--ifm-font-color-base:#3b454e;--ifm-blockquote-border-left-width:4px;--ifm-blockquote-color:#5c6975;--ifm-blockquote-padding-horizontal:20px;--ifm-alert-padding-horizontal:20px;--ifm-navbar-padding-horizontal:16px;--tabs-bg-active:#fff;--tabs-text-inactive:#9ca3af;--ifm-font-family-base:"Manrope";--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after,.searchBarContainer_NW3z.searchIndexLoading_EJ1f .searchBarLoadingRing_YnHq{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.content_knG7 a,.hitFooter_E9YW a,.suggestion_fB_2.cursor_eG29 mark{text-decoration:underline}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;pointer-events:none;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items,.searchResultItem_U687>h2{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}#nprogress,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;position:fixed;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs-container [role=tab],.tabs-container [role=tabpanel]{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity));border-style:solid}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.static{position:static}.fixed{position:fixed}.block,.cursor_eG29 .hideAction_vcyE>svg,.tocCollapsibleContent_vkbj a{display:block}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@font-face{font-family:Manrope;src:url(/cardano-multiplatform-lib/assets/fonts/Manrope-Regular-b1d694f660569a9a9ee6d1236227eaff.ttf)}[data-theme=dark]{--ifm-color-primary:#ff9828;--ifm-color-primary-dark:#ff9828;--ifm-color-primary-darker:#ff9828;--ifm-color-primary-darkest:#ff9828;--ifm-color-primary-light:#ff9828;--ifm-color-primary-lighter:#ff9828;--ifm-color-primary-lightest:#ff9828;--ifm-font-color-base:#fff;--ifm-blockquote-color:#c8c8c8;--docusaurus-highlighted-code-line-bg:#0000004d;--tabs-bg-active:#1c1c1d;--tabs-text-inactive:#bab0b0}img{margin-bottom:.75rem;max-width:300px}.img-full{max-width:100%;width:100%}.img-card{margin-bottom:1rem;max-width:300px}.img-icon{margin-bottom:0;width:1.25rem}.tabs-container [role=tab]{background-color:var(--tabs-bg-active);border-radius:.375rem .375rem 0 0;border-width:1px 1px 0;padding-bottom:.5rem;padding-top:.5rem}.tabs-container [role=tab][aria-selected=false]{--tw-text-opacity:1;background-color:var(--tabs-bg);color:rgb(156 163 175/var(--tw-text-opacity))}.tabs-container [role=tabpanel]{border-width:1px;margin-top:-17px;padding:1.25rem}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.hideAction_vcyE>svg,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,#f5f6f7);border-radius:6px;box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64);left:auto!important;margin-top:8px;padding:var(--search-local-spacing,12px);position:relative;right:0!important;width:var(--search-local-modal-width,560px)}html[data-theme=dark] .searchBar_RVTs .dropdownMenu_qbY6{background:var(--search-local-modal-background,var(--ifm-background-color));box-shadow:var(--search-local-modal-shadow,inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309)}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2{align-items:center;background:var(--search-local-hit-background,#fff);border-radius:4px;box-shadow:var(--search-local-hit-shadow,0 1px 3px 0 #d4d9e1);color:var(--search-local-hit-color,#444950);cursor:pointer;display:flex;flex-direction:row;height:var(--search-local-hit-height,56px);padding:0 var(--search-local-spacing,12px);width:100%}.hitTree_kk6K,.noResults_l6Q3{align-items:center;display:flex}html[data-theme=dark] .dropdownMenu_qbY6 .suggestion_fB_2{background:var(--search-local-hit-background,var(--ifm-color-emphasis-100));box-shadow:var(--search-local-hit-shadow,none);color:var(--search-local-hit-color,var(--ifm-font-color-base))}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2:not(:last-child){margin-bottom:4px}.searchBar_RVTs .dropdownMenu_qbY6 .suggestion_fB_2.cursor_eG29{background-color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitFooter_E9YW a,.hitIcon_a7Zy,.hitPath_ieM4,.hitTree_kk6K,.noResultsIcon_EBY5{color:var(--search-local-muted-color,#969faf)}html[data-theme=dark] .hitIcon_a7Zy,html[data-theme=dark] .hitPath_ieM4,html[data-theme=dark] .hitTree_kk6K,html[data-theme=dark] .noResultsIcon_EBY5{color:var(--search-local-muted-color,var(--ifm-color-secondary-darkest))}.hitTree_kk6K>svg{height:var(--search-local-hit-height,56px);opacity:.5;width:24px}.hitIcon_a7Zy,.hitTree_kk6K>svg{stroke-width:var(--search-local-icon-stroke-width,1.4)}.hitAction_NqkB,.hitIcon_a7Zy{height:20px;width:20px}.hitWrapper_sAK8{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;margin:0 8px;overflow-x:hidden;width:80%}.hitWrapper_sAK8 mark{background:none;color:var(--search-local-highlight-color,var(--ifm-color-primary))}.hitTitle_vyVt{font-size:.9em}.hitPath_ieM4{font-size:.75em}.hitPath_ieM4,.hitTitle_vyVt{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.noResults_l6Q3{flex-direction:column;justify-content:center;padding:var(--search-local-spacing,12px) 0}.noResultsIcon_EBY5{margin-bottom:var(--search-local-spacing,12px)}.hitFooter_E9YW{font-size:.85em;margin-top:var(--search-local-spacing,12px);text-align:center}.suggestion_fB_2.cursor_eG29,.suggestion_fB_2.cursor_eG29 .hitIcon_a7Zy,.suggestion_fB_2.cursor_eG29 .hitPath_ieM4,.suggestion_fB_2.cursor_eG29 .hitTree_kk6K,.suggestion_fB_2.cursor_eG29 mark{color:var(--search-local-hit-active-color,var(--ifm-color-white))!important}.searchBarContainer_NW3z{margin-left:16px}.searchBarContainer_NW3z .searchBarLoadingRing_YnHq{display:none;left:10px;position:absolute;top:6px}.searchBarContainer_NW3z .searchClearButton_qk4g{background:none;border:none;line-height:1rem;padding:0;position:absolute;right:.8rem;top:50%;transform:translateY(-50%)}.navbar__search{position:relative}.searchIndexLoading_EJ1f .navbar__search-input{background-image:none}.searchHintContainer_Pkmr{align-items:center;display:flex;gap:4px;height:100%;justify-content:center;pointer-events:none;position:absolute;right:10px;top:0}.searchHint_iIMx{background-color:var(--ifm-navbar-search-input-background-color);border:1px solid var(--ifm-color-emphasis-500);box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-500);color:var(--ifm-navbar-search-input-placeholder-color)}.loadingRing_RJI3{display:inline-block;height:20px;opacity:var(--search-local-loading-icon-opacity,.5);position:relative;width:20px}.loadingRing_RJI3 div{animation:1.2s cubic-bezier(.5,0,.5,1) infinite a;border:2px solid var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color));border-color:var(--search-load-loading-icon-color,var(--ifm-navbar-search-input-color)) #0000 #0000 #0000;border-radius:50%;display:block;height:16px;margin:2px;position:absolute;width:16px}.loadingRing_RJI3 div:first-child{animation-delay:-.45s}.loadingRing_RJI3 div:nth-child(2){animation-delay:-.3s}.loadingRing_RJI3 div:nth-child(3){animation-delay:-.15s}@keyframes a{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@supports selector(:has(*)){.navbarSearchContainer_Bca1:not(:has(>*)){display:none}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.img_ev3q{height:auto}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}.searchContextInput_mXoe,.searchQueryInput_CFBF{background:var(--ifm-background-color);border:var(--ifm-global-border-width) solid var(--ifm-color-content-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-font-color-base);font-size:var(--ifm-font-size-base);margin-bottom:1rem;padding:.5rem;width:100%}.searchResultItem_U687{border-bottom:1px solid #dfe3e8;padding:1rem 0}.searchResultItemPath_uIbk{color:var(--ifm-color-content-secondary);font-size:.8rem;margin:.5rem 0 0}.searchResultItemSummary_oZHr{font-style:italic;margin:.5rem 0 0}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docSidebarContainer_YfHR,.sidebarLogo_isFc{display:none}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media not (max-width:996px){.searchBar_RVTs.searchBarLeft_MXDe .dropdownMenu_qbY6{left:0!important;right:auto!important}}@media only screen and (max-width:996px){.searchQueryColumn_q7nx{max-width:60%!important}.searchContextColumn_oWAF{max-width:40%!important}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.navbar__search-input:not(:focus){width:2rem}.searchBar_RVTs .dropdownMenu_qbY6{max-width:calc(100vw - var(--ifm-navbar-padding-horizontal)*2);width:var(--search-local-modal-width-sm,340px)}.searchBarContainer_NW3z:not(.focused_OWtg) .searchClearButton_qk4g,.searchHintContainer_Pkmr{display:none}}@media screen and (max-width:576px){.searchQueryColumn_q7nx{max-width:100%!important}.searchContextColumn_oWAF{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/fonts/Manrope-Regular-b1d694f660569a9a9ee6d1236227eaff.ttf b/assets/fonts/Manrope-Regular-b1d694f660569a9a9ee6d1236227eaff.ttf new file mode 100644 index 00000000..7cf09bf8 Binary files /dev/null and b/assets/fonts/Manrope-Regular-b1d694f660569a9a9ee6d1236227eaff.ttf differ diff --git a/assets/js/0109cddc.748be62a.js b/assets/js/0109cddc.748be62a.js new file mode 100644 index 00000000..7cfcb252 --- /dev/null +++ b/assets/js/0109cddc.748be62a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[54],{2776:e=>{e.exports=JSON.parse('{"name":"@easyops-cn/docusaurus-search-local","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/024b6465.6664d642.js b/assets/js/024b6465.6664d642.js new file mode 100644 index 00000000..017800a8 --- /dev/null +++ b/assets/js/024b6465.6664d642.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[675],{2467:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>s,default:()=>d,frontMatter:()=>n,metadata:()=>i,toc:()=>c});var o=t(5893),a=t(1151);const n={},s="Multi-Era",i={id:"modules/multi-era/index",title:"Multi-Era",description:"This crate contains all the on-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc). There are also wrappers around this era if you need era-agnostic types e.g. parsing all blocks from genesis. The wrappers support the current era as well.",source:"@site/docs/modules/multi-era/index.md",sourceDirName:"modules/multi-era",slug:"/modules/multi-era/",permalink:"/cardano-multiplatform-lib/modules/multi-era/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Multi-Era",permalink:"/cardano-multiplatform-lib/category/multi-era"},next:{title:"CIP25",permalink:"/cardano-multiplatform-lib/modules/CIP25"}},l={},c=[{value:"Parsing blocks across eras",id:"parsing-blocks-across-eras",level:2}];function u(e){const r={code:"code",h1:"h1",h2:"h2",p:"p",...(0,a.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.h1,{id:"multi-era",children:"Multi-Era"}),"\n",(0,o.jsx)(r.p,{children:"This crate contains all the on-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc). There are also wrappers around this era if you need era-agnostic types e.g. parsing all blocks from genesis. The wrappers support the current era as well."}),"\n",(0,o.jsx)(r.h2,{id:"parsing-blocks-across-eras",children:"Parsing blocks across eras"}),"\n",(0,o.jsxs)(r.p,{children:[(0,o.jsx)(r.code,{children:"MultiEraBlock"})," can be used for this. Take care about the format you are giving it. Some tools (e.g. Pallas/Oura) won't give you the block format from the binary spec directly, but will instead have it wrapped in some network wrapper array containing the explicit era tag. If your CBOR looks like ",(0,o.jsx)(r.code,{children:"[uint, ]"})," (likely starting with ",(0,o.jsx)(r.code,{children:"82"})," in hex e.g. ",(0,o.jsx)(r.code,{children:"8201"}),", ",(0,o.jsx)(r.code,{children:"8204"}),", ",(0,o.jsx)(r.code,{children:"8207"}),", etc) then you should use ",(0,o.jsx)(r.code,{children:"MultiEraBlock.from_explicit_network_cbor_bytes()"})," instead of ",(0,o.jsx)(r.code,{children:"MultiEraBlock.from_cbor_bytes()"}),"."]})]})}function d(e={}){const{wrapper:r}={...(0,a.a)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},1151:(e,r,t)=>{t.d(r,{Z:()=>i,a:()=>s});var o=t(7294);const a={},n=o.createContext(a);function s(e){const r=o.useContext(n);return o.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),o.createElement(n.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.6bb3db11.js b/assets/js/14eb3368.6bb3db11.js new file mode 100644 index 00000000..7cd29c51 --- /dev/null +++ b/assets/js/14eb3368.6bb3db11.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[817],{1310:(e,t,s)=>{s.d(t,{Z:()=>p});s(7294);var n=s(512),i=s(5281),a=s(2802),r=s(8596),c=s(9960),o=s(5999),l=s(4996),d=s(5893);function m(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const u={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,l.Z)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(c.Z,{"aria-label":(0,o.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(m,{className:u.breadcrumbHomeIcon})})})}const b={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function x(e){let{children:t,href:s,isLast:n}=e;const i="breadcrumbs__link";return n?(0,d.jsx)("span",{className:i,itemProp:"name",children:t}):s?(0,d.jsx)(c.Z,{className:i,href:s,itemProp:"item",children:(0,d.jsx)("span",{itemProp:"name",children:t})}):(0,d.jsx)("span",{className:i,children:t})}function v(e){let{children:t,active:s,index:i,addMicrodata:a}=e;return(0,d.jsxs)("li",{...a&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,n.Z)("breadcrumbs__item",{"breadcrumbs__item--active":s}),children:[t,(0,d.jsx)("meta",{itemProp:"position",content:String(i+1)})]})}function p(){const e=(0,a.s1)(),t=(0,r.Ns)();return e?(0,d.jsx)("nav",{className:(0,n.Z)(i.k.docs.docBreadcrumbs,b.breadcrumbsContainer),"aria-label":(0,o.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,d.jsx)(h,{}),e.map(((t,s)=>{const n=s===e.length-1,i="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(v,{active:n,index:s,addMicrodata:!!i,children:(0,d.jsx)(x,{href:i,isLast:n,children:t.label})},s)}))]})}):null}},4228:(e,t,s)=>{s.r(t),s.d(t,{default:()=>I});s(7294);var n=s(1944),i=s(2802),a=s(4996),r=s(512),c=s(9960),o=s(3919),l=s(5999),d=s(2503);const m={cardContainer:"cardContainer_fWXF",cardTitle:"cardTitle_rnsV",cardDescription:"cardDescription_PWke"};var u=s(5893);function h(e){let{href:t,children:s}=e;return(0,u.jsx)(c.Z,{href:t,className:(0,r.Z)("card padding--lg",m.cardContainer),children:s})}function b(e){let{href:t,icon:s,title:n,description:i}=e;return(0,u.jsxs)(h,{href:t,children:[(0,u.jsxs)(d.Z,{as:"h2",className:(0,r.Z)("text--truncate",m.cardTitle),title:n,children:[s," ",n]}),i&&(0,u.jsx)("p",{className:(0,r.Z)("text--truncate",m.cardDescription),title:i,children:i})]})}function x(e){let{item:t}=e;const s=(0,i.LM)(t);return s?(0,u.jsx)(b,{href:s,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:t.description??(0,l.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function v(e){let{item:t}=e;const s=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",n=(0,i.xz)(t.docId??void 0);return(0,u.jsx)(b,{href:t.href,icon:s,title:t.label,description:t.description??n?.description})}function p(e){let{item:t}=e;switch(t.type){case"link":return(0,u.jsx)(v,{item:t});case"category":return(0,u.jsx)(x,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function g(e){let{className:t}=e;const s=(0,i.jA)();return(0,u.jsx)(j,{items:s.items,className:t})}function j(e){const{items:t,className:s}=e;if(!t)return(0,u.jsx)(g,{...e});const n=(0,i.MN)(t);return(0,u.jsx)("section",{className:(0,r.Z)("row",s),children:n.map(((e,t)=>(0,u.jsx)("article",{className:"col col--6 margin-bottom--lg",children:(0,u.jsx)(p,{item:e})},t)))})}var f=s(4966),N=s(3120),Z=s(4364),_=s(1310);const L={generatedIndexPage:"generatedIndexPage_vN6x",list:"list_eTzJ",title:"title_kItE"};function k(e){let{categoryGeneratedIndex:t}=e;return(0,u.jsx)(n.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,a.Z)(t.image)})}function T(e){let{categoryGeneratedIndex:t}=e;const s=(0,i.jA)();return(0,u.jsxs)("div",{className:L.generatedIndexPage,children:[(0,u.jsx)(N.Z,{}),(0,u.jsx)(_.Z,{}),(0,u.jsx)(Z.Z,{}),(0,u.jsxs)("header",{children:[(0,u.jsx)(d.Z,{as:"h1",className:L.title,children:t.title}),t.description&&(0,u.jsx)("p",{children:t.description})]}),(0,u.jsx)("article",{className:"margin-top--lg",children:(0,u.jsx)(j,{items:s.items,className:L.list})}),(0,u.jsx)("footer",{className:"margin-top--lg",children:(0,u.jsx)(f.Z,{previous:t.navigation.previous,next:t.navigation.next})})]})}function I(e){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(k,{...e}),(0,u.jsx)(T,{...e})]})}},4966:(e,t,s)=>{s.d(t,{Z:()=>o});s(7294);var n=s(5999),i=s(512),a=s(9960),r=s(5893);function c(e){const{permalink:t,title:s,subLabel:n,isNext:c}=e;return(0,r.jsxs)(a.Z,{className:(0,i.Z)("pagination-nav__link",c?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[n&&(0,r.jsx)("div",{className:"pagination-nav__sublabel",children:n}),(0,r.jsx)("div",{className:"pagination-nav__label",children:s})]})}function o(e){const{previous:t,next:s}=e;return(0,r.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,n.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,r.jsx)(c,{...t,subLabel:(0,r.jsx)(n.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),s&&(0,r.jsx)(c,{...s,subLabel:(0,r.jsx)(n.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4364:(e,t,s)=>{s.d(t,{Z:()=>o});s(7294);var n=s(512),i=s(5999),a=s(5281),r=s(4477),c=s(5893);function o(e){let{className:t}=e;const s=(0,r.E)();return s.badge?(0,c.jsx)("span",{className:(0,n.Z)(t,a.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,c.jsx)(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:s.label},children:"Version: {versionLabel}"})}):null}},3120:(e,t,s)=>{s.d(t,{Z:()=>v});s(7294);var n=s(512),i=s(2263),a=s(9960),r=s(5999),c=s(143),o=s(5281),l=s(373),d=s(4477),m=s(5893);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,m.jsx)("b",{children:s.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,m.jsx)("b",{children:s.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=u[e.versionMetadata.banner];return(0,m.jsx)(t,{...e})}function b(e){let{versionLabel:t,to:s,onClick:n}=e;return(0,m.jsx)(r.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,m.jsx)("b",{children:(0,m.jsx)(a.Z,{to:s,onClick:n,children:(0,m.jsx)(r.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function x(e){let{className:t,versionMetadata:s}=e;const{siteConfig:{title:a}}=(0,i.Z)(),{pluginId:r}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,l.J)(r),{latestDocSuggestion:u,latestVersionSuggestion:x}=(0,c.Jo)(r),v=u??(p=x).docs.find((e=>e.id===p.mainDocId));var p;return(0,m.jsxs)("div",{className:(0,n.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,m.jsx)("div",{children:(0,m.jsx)(h,{siteTitle:a,versionMetadata:s})}),(0,m.jsx)("div",{className:"margin-top--md",children:(0,m.jsx)(b,{versionLabel:x.label,to:v.path,onClick:()=>d(x.name)})})]})}function v(e){let{className:t}=e;const s=(0,d.E)();return s.banner?(0,m.jsx)(x,{className:t,versionMetadata:s}):null}}}]); \ No newline at end of file diff --git a/assets/js/17896441.ff509f23.js b/assets/js/17896441.ff509f23.js new file mode 100644 index 00000000..df2a39ca --- /dev/null +++ b/assets/js/17896441.ff509f23.js @@ -0,0 +1 @@ +(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[918],{1310:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});n(7294);var s=n(512),a=n(5281),o=n(2802),i=n(8596),l=n(9960),c=n(5999),r=n(4996),d=n(5893);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,r.Z)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(l.Z,{"aria-label":(0,c.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}const p={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function f(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,d.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,d.jsx)(l.Z,{className:a,href:n,itemProp:"item",children:(0,d.jsx)("span",{itemProp:"name",children:t})}):(0,d.jsx)("span",{className:a,children:t})}function x(e){let{children:t,active:n,index:a,addMicrodata:o}=e;return(0,d.jsxs)("li",{...o&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,s.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,d.jsx)("meta",{itemProp:"position",content:String(a+1)})]})}function g(){const e=(0,o.s1)(),t=(0,i.Ns)();return e?(0,d.jsx)("nav",{className:(0,s.Z)(a.k.docs.docBreadcrumbs,p.breadcrumbsContainer),"aria-label":(0,c.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,d.jsx)(h,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(x,{active:s,index:n,addMicrodata:!!a,children:(0,d.jsx)(f,{href:a,isLast:s,children:t.label})},n)}))]})}):null}},8032:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Lt});var s=n(7294),a=n(1944),o=n(902),i=n(5893);const l=s.createContext(null);function c(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,i.jsx)(l.Provider,{value:a,children:t})}function r(){const e=(0,s.useContext)(l);if(null===e)throw new o.i6("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=r();return(0,i.jsx)(a.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(512),m=n(7524),h=n(4966);function p(){const{metadata:e}=r();return(0,i.jsx)(h.Z,{previous:e.previous,next:e.next})}var f=n(3120),x=n(4364),g=n(5281),b=n(5999);function j(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return(0,i.jsx)(b.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:new Date(1e3*t).toISOString(),children:n})})},children:" on {date}"})}function v(e){let{lastUpdatedBy:t}=e;return(0,i.jsx)(b.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:t})},children:" by {user}"})}function N(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:s}=e;return(0,i.jsxs)("span",{className:g.k.common.lastUpdated,children:[(0,i.jsx)(b.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?(0,i.jsx)(j,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:s?(0,i.jsx)(v,{lastUpdatedBy:s}):""},children:"Last updated{atDate}{byUser}"}),!1]})}var C=n(9960);const k={iconEdit:"iconEdit_Z9Sw"};function L(e){let{className:t,...n}=e;return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.Z)(k.iconEdit,t),"aria-hidden":"true",...n,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function y(e){let{editUrl:t}=e;return(0,i.jsxs)(C.Z,{to:t,className:g.k.common.editThisPage,children:[(0,i.jsx)(L,{}),(0,i.jsx)(b.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}const _={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function B(e){let{permalink:t,label:n,count:s}=e;return(0,i.jsxs)(C.Z,{href:t,className:(0,u.Z)(_.tag,s?_.tagWithCount:_.tagRegular),children:[n,s&&(0,i.jsx)("span",{children:s})]})}const w={tags:"tags_jXut",tag:"tag_QGVx"};function Z(e){let{tags:t}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("b",{children:(0,i.jsx)(b.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,i.jsx)("ul",{className:(0,u.Z)(w.tags,"padding--none","margin-left--sm"),children:t.map((e=>{let{label:t,permalink:n}=e;return(0,i.jsx)("li",{className:w.tag,children:(0,i.jsx)(B,{label:t,permalink:n})},n)}))})]})}const T={lastUpdated:"lastUpdated_vwxv"};function E(e){return(0,i.jsx)("div",{className:(0,u.Z)(g.k.docs.docFooterTagsRow,"row margin-bottom--sm"),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(Z,{...e})})})}function H(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,formattedLastUpdatedAt:a}=e;return(0,i.jsxs)("div",{className:(0,u.Z)(g.k.docs.docFooterEditMetaRow,"row"),children:[(0,i.jsx)("div",{className:"col",children:t&&(0,i.jsx)(y,{editUrl:t})}),(0,i.jsx)("div",{className:(0,u.Z)("col",T.lastUpdated),children:(n||s)&&(0,i.jsx)(N,{lastUpdatedAt:n,formattedLastUpdatedAt:a,lastUpdatedBy:s})})]})}function A(){const{metadata:e}=r(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:s,lastUpdatedBy:a,tags:o}=e,l=o.length>0,c=!!(t||n||a);return l||c?(0,i.jsxs)("footer",{className:(0,u.Z)(g.k.docs.docFooter,"docusaurus-mt-lg"),children:[l&&(0,i.jsx)(E,{tags:o}),c&&(0,i.jsx)(H,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:a,formattedLastUpdatedAt:s})]}):null}var I=n(6043),M=n(6668);function S(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t}));const s=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):s.push(a)})),s}function U(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=U({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[{...e,children:t}]:t}))}function z(e){const t=e.getBoundingClientRect();return t.top===t.bottom?z(e.parentNode):t}function V(e,t){let{anchorTopOffset:n}=t;const s=e.find((e=>z(e).top>=n));if(s){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function O(e){const t=(0,s.useRef)(void 0),n=R();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:i}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),l=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let a=t;a<=n;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:o,maxHeadingLevel:i}),c=V(l,{anchorTopOffset:n.current}),r=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===r)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}function P(e){let{toc:t,className:n,linkClassName:s,isChild:a}=e;return t.length?(0,i.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,i.jsxs)("li",{children:[(0,i.jsx)(C.Z,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,i.jsx)(P,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const $=s.memo(P);function D(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:a="table-of-contents__link",linkActiveClassName:o,minHeadingLevel:l,maxHeadingLevel:c,...r}=e;const d=(0,M.L)(),u=l??d.tableOfContents.minHeadingLevel,m=c??d.tableOfContents.maxHeadingLevel,h=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>U({toc:S(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:u,maxHeadingLevel:m});return O((0,s.useMemo)((()=>{if(a&&o)return{linkClassName:a,linkActiveClassName:o,minHeadingLevel:u,maxHeadingLevel:m}}),[a,o,u,m])),(0,i.jsx)($,{toc:h,className:n,linkClassName:a,...r})}const W={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function F(e){let{collapsed:t,...n}=e;return(0,i.jsx)("button",{type:"button",...n,className:(0,u.Z)("clean-btn",W.tocCollapsibleButton,!t&&W.tocCollapsibleButtonExpanded,n.className),children:(0,i.jsx)(b.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function G(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:o,toggleCollapsed:l}=(0,I.u)({initialState:!0});return(0,i.jsxs)("div",{className:(0,u.Z)(q.tocCollapsible,!o&&q.tocCollapsibleExpanded,n),children:[(0,i.jsx)(F,{collapsed:o,onClick:l}),(0,i.jsx)(I.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:o,children:(0,i.jsx)(D,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const J={tocMobile:"tocMobile_ITEo"};function Y(){const{toc:e,frontMatter:t}=r();return(0,i.jsx)(G,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.Z)(g.k.docs.docTocMobile,J.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",K="table-of-contents__link--active";function ee(e){let{className:t,...n}=e;return(0,i.jsx)("div",{className:(0,u.Z)(Q.tableOfContents,"thin-scrollbar",t),children:(0,i.jsx)(D,{...n,linkClassName:X,linkActiveClassName:K})})}function te(){const{toc:e,frontMatter:t}=r();return(0,i.jsx)(ee,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:g.k.docs.docTocDesktop})}var ne=n(2503),se=n(1151),ae=n(5742),oe=n(2389),ie=n(2949);function le(){const{prism:e}=(0,M.L)(),{colorMode:t}=(0,ie.I)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var ce=n(7594),re=n.n(ce);const de=/title=(?["'])(?.*?)\1/,ue=/\{(?<range>[\d,-]+)\}/,me={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"},lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""}};function he(e,t){const n=e.map((e=>{const{start:n,end:s}=me[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function pe(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:a,metastring:o}=t;if(o&&ue.test(o)){const e=o.match(ue).groups.range;if(0===a.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=a[0].className,s=re()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return he(["js","jsBlock"],t);case"jsx":case"tsx":return he(["js","jsBlock","jsx"],t);case"html":return he(["js","jsBlock","html"],t);case"python":case"py":case"bash":return he(["bash"],t);case"markdown":case"md":return he(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return he(["tex"],t);case"lua":case"haskell":case"sql":return he(["lua"],t);case"wasm":return he(["wasm"],t);default:return he(Object.keys(me).filter((e=>!["lua","wasm","tex","latex","matlab"].includes(e))),t)}}(s,a),l=n.split("\n"),c=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),r=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h<l.length;){const e=l[h].match(i);if(!e){h+=1;continue}const t=e.slice(1).find((e=>void 0!==e));r[t]?c[r[t]].range+=`${h},`:d[t]?c[d[t]].start=h:u[t]&&(c[u[t]].range+=`${c[u[t]].start}-${h-1},`),l.splice(h,1)}n=l.join("\n");const m={};return Object.entries(c).forEach((e=>{let[t,{range:n}]=e;re()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const fe={codeBlockContainer:"codeBlockContainer_Ckt0"};function xe(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,a]=e;const o=t[s];o&&"string"==typeof a&&(n[o]=a)})),n}(le());return(0,i.jsx)(t,{...n,style:s,className:(0,u.Z)(n.className,fe.codeBlockContainer,g.k.common.codeBlock)})}const ge={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function be(e){let{children:t,className:n}=e;return(0,i.jsx)(xe,{as:"pre",tabIndex:0,className:(0,u.Z)(ge.codeBlockStandalone,"thin-scrollbar",n),children:(0,i.jsx)("code",{className:ge.codeBlockLines,children:t})})}const je={attributes:!0,characterData:!0,childList:!0,subtree:!0};function ve(e,t){const[n,a]=(0,s.useState)(),i=(0,s.useCallback)((()=>{a(e.current?.closest("[role=tabpanel][hidden]"))}),[e,a]);(0,s.useEffect)((()=>{i()}),[i]),function(e,t,n){void 0===n&&(n=je);const a=(0,o.zX)(t),i=(0,o.Ql)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(a);return e&&t.observe(e,i),()=>t.disconnect()}),[e,a,i])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),i())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var Ne=n(2573);const Ce={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function ke(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:a,getTokenProps:o}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const l=a({line:t,className:(0,u.Z)(n,s&&Ce.codeLine)}),c=t.map(((e,t)=>(0,i.jsx)("span",{...o({token:e,key:t})},t)));return(0,i.jsxs)("span",{...l,children:[s?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:Ce.codeLineNumber}),(0,i.jsx)("span",{className:Ce.codeLineContent,children:c})]}):c,(0,i.jsx)("br",{})]})}function Le(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function ye(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const _e={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Be(e){let{code:t,className:n}=e;const[a,o]=(0,s.useState)(!1),l=(0,s.useRef)(void 0),c=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),a=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const o=document.getSelection(),i=o.rangeCount>0&&o.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let l=!1;try{l=document.execCommand("copy")}catch{}s.remove(),i&&(o.removeAllRanges(),o.addRange(i)),a&&a.focus()}(t),o(!0),l.current=window.setTimeout((()=>{o(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),(0,i.jsx)("button",{type:"button","aria-label":a?(0,b.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,b.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,b.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.Z)("clean-btn",n,_e.copyButton,a&&_e.copyButtonCopied),onClick:c,children:(0,i.jsxs)("span",{className:_e.copyButtonIcons,"aria-hidden":"true",children:[(0,i.jsx)(Le,{className:_e.copyButtonIcon}),(0,i.jsx)(ye,{className:_e.copyButtonSuccessIcon})]})})}function we(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const Ze={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Te(e){let{className:t,onClick:n,isEnabled:s}=e;const a=(0,b.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,i.jsx)("button",{type:"button",onClick:n,className:(0,u.Z)("clean-btn",t,s&&Ze.wordWrapButtonEnabled),"aria-label":a,title:a,children:(0,i.jsx)(we,{className:Ze.wordWrapButtonIcon,"aria-hidden":"true"})})}function Ee(e){let{children:t,className:n="",metastring:a,title:o,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:r,magicComments:d}}=(0,M.L)(),m=function(e){return e?.toLowerCase()}(c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??r),h=le(),p=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),o=(0,s.useRef)(null),i=(0,s.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),l=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");a(n)}),[o]);return ve(o,l),(0,s.useEffect)((()=>{l()}),[e,l]),(0,s.useEffect)((()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)})),[l]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:i}}(),f=function(e){return e?.match(de)?.groups.title??""}(a)||o,{lineClassNames:x,code:g}=pe(t,{metastring:a,language:m,magicComments:d}),b=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(a);return(0,i.jsxs)(xe,{as:"div",className:(0,u.Z)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`),children:[f&&(0,i.jsx)("div",{className:ge.codeBlockTitle,children:f}),(0,i.jsxs)("div",{className:ge.codeBlockContent,children:[(0,i.jsx)(Ne.y$,{theme:h,code:g,language:m??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:a,getTokenProps:o}=e;return(0,i.jsx)("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,u.Z)(t,ge.codeBlock,"thin-scrollbar"),style:n,children:(0,i.jsx)("code",{className:(0,u.Z)(ge.codeBlockLines,b&&ge.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,i.jsx)(ke,{line:e,getLineProps:a,getTokenProps:o,classNames:x[t],showLineNumbers:b},t)))})})}}),(0,i.jsxs)("div",{className:ge.buttonGroup,children:[(p.isEnabled||p.isCodeScrollable)&&(0,i.jsx)(Te,{className:ge.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),(0,i.jsx)(Be,{className:ge.codeButton,code:g})]})]})]})}function He(e){let{children:t,...n}=e;const a=(0,oe.Z)(),o=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof o?Ee:be;return(0,i.jsx)(l,{...n,children:o},String(a))}const Ae={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function Ie(e){return!!e&&("SUMMARY"===e.tagName||Ie(e.parentElement))}function Me(e,t){return!!e&&(e===t||Me(e.parentElement,t))}function Se(e){let{summary:t,children:n,...a}=e;const o=(0,oe.Z)(),l=(0,s.useRef)(null),{collapsed:c,setCollapsed:r}=(0,I.u)({initialState:!a.open}),[d,m]=(0,s.useState)(a.open),h=s.isValidElement(t)?t:(0,i.jsx)("summary",{children:t??"Details"});return(0,i.jsxs)("details",{...a,ref:l,open:d,"data-collapsed":c,className:(0,u.Z)(Ae.details,o&&Ae.isBrowser,a.className),onMouseDown:e=>{Ie(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;Ie(t)&&Me(t,l.current)&&(e.preventDefault(),c?(r(!1),m(!0)):r(!0))},children:[h,(0,i.jsx)(I.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{r(e),m(!e)},children:(0,i.jsx)("div",{className:Ae.collapsibleContent,children:n})})]})}const Ue={details:"details_b_Ee"},ze="alert alert--info";function Ve(e){let{...t}=e;return(0,i.jsx)(Se,{...t,className:(0,u.Z)(ze,Ue.details,t.className)})}function Re(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),a=(0,i.jsx)(i.Fragment,{children:t.filter((e=>e!==n))});return(0,i.jsx)(Ve,{...e,summary:n,children:a})}function Oe(e){return(0,i.jsx)(ne.Z,{...e})}const Pe={containsTaskList:"containsTaskList_mC6p"};function $e(e){if(void 0!==e)return(0,u.Z)(e,e?.includes("contains-task-list")&&Pe.containsTaskList)}const De={img:"img_ev3q"};function We(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),o=n?.props.children;return{mdxAdmonitionTitle:o,rest:a.length>0?(0,i.jsx)(i.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,...a&&{title:a},children:n}}const Fe={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function qe(e){let{type:t,className:n,children:s}=e;return(0,i.jsx)("div",{className:(0,u.Z)(g.k.common.admonition,g.k.common.admonitionType(t),Fe.admonition,n),children:s})}function Ge(e){let{icon:t,title:n}=e;return(0,i.jsxs)("div",{className:Fe.admonitionHeading,children:[(0,i.jsx)("span",{className:Fe.admonitionIcon,children:t}),n]})}function Je(e){let{children:t}=e;return t?(0,i.jsx)("div",{className:Fe.admonitionContent,children:t}):null}function Ye(e){const{type:t,icon:n,title:s,children:a,className:o}=e;return(0,i.jsxs)(qe,{type:t,className:o,children:[(0,i.jsx)(Ge,{title:s,icon:n}),(0,i.jsx)(Je,{children:a})]})}function Qe(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const Xe={icon:(0,i.jsx)(Qe,{}),title:(0,i.jsx)(b.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function Ke(e){return(0,i.jsx)(Ye,{...Xe,...e,className:(0,u.Z)("alert alert--secondary",e.className),children:e.children})}function et(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const tt={icon:(0,i.jsx)(et,{}),title:(0,i.jsx)(b.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function nt(e){return(0,i.jsx)(Ye,{...tt,...e,className:(0,u.Z)("alert alert--success",e.className),children:e.children})}function st(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const at={icon:(0,i.jsx)(st,{}),title:(0,i.jsx)(b.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function ot(e){return(0,i.jsx)(Ye,{...at,...e,className:(0,u.Z)("alert alert--info",e.className),children:e.children})}function it(e){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const lt={icon:(0,i.jsx)(it,{}),title:(0,i.jsx)(b.Z,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function ct(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const rt={icon:(0,i.jsx)(ct,{}),title:(0,i.jsx)(b.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const dt={icon:(0,i.jsx)(it,{}),title:(0,i.jsx)(b.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const ut={...{note:Ke,tip:nt,info:ot,warning:function(e){return(0,i.jsx)(Ye,{...lt,...e,className:(0,u.Z)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,i.jsx)(Ye,{...rt,...e,className:(0,u.Z)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,i.jsx)(Ke,{title:"secondary",...e}),important:e=>(0,i.jsx)(ot,{title:"important",...e}),success:e=>(0,i.jsx)(nt,{title:"success",...e}),caution:function(e){return(0,i.jsx)(Ye,{...dt,...e,className:(0,u.Z)("alert alert--warning",e.className),children:e.children})}}};function mt(e){const t=We(e),n=(s=t.type,ut[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),ut.info));var s;return(0,i.jsx)(n,{...t})}const ht={Head:ae.Z,details:Re,Details:Re,code:function(e){return s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))?(0,i.jsx)("code",{...e}):(0,i.jsx)(He,{...e})},a:function(e){return(0,i.jsx)(C.Z,{...e})},pre:function(e){return(0,i.jsx)(i.Fragment,{children:e.children})},ul:function(e){return(0,i.jsx)("ul",{...e,className:$e(e.className)})},img:function(e){return(0,i.jsx)("img",{loading:"lazy",...e,className:(t=e.className,(0,u.Z)(t,De.img))});var t},h1:e=>(0,i.jsx)(Oe,{as:"h1",...e}),h2:e=>(0,i.jsx)(Oe,{as:"h2",...e}),h3:e=>(0,i.jsx)(Oe,{as:"h3",...e}),h4:e=>(0,i.jsx)(Oe,{as:"h4",...e}),h5:e=>(0,i.jsx)(Oe,{as:"h5",...e}),h6:e=>(0,i.jsx)(Oe,{as:"h6",...e}),admonition:mt,mermaid:()=>null};function pt(e){let{children:t}=e;return(0,i.jsx)(se.Z,{components:ht,children:t})}function ft(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=r();return t.hide_title||void 0!==n?null:e.title}();return(0,i.jsxs)("div",{className:(0,u.Z)(g.k.docs.docMarkdown,"markdown"),children:[n&&(0,i.jsx)("header",{children:(0,i.jsx)(ne.Z,{as:"h1",children:n})}),(0,i.jsx)(pt,{children:t})]})}var xt=n(1310);function gt(){return(0,i.jsx)(b.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function bt(){return(0,i.jsx)(b.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function jt(){return(0,i.jsx)(ae.Z,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function vt(e){let{className:t}=e;return(0,i.jsx)(mt,{type:"caution",title:(0,i.jsx)(gt,{}),className:(0,u.Z)(t,g.k.common.unlistedBanner),children:(0,i.jsx)(bt,{})})}function Nt(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(jt,{}),(0,i.jsx)(vt,{...e})]})}const Ct={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function kt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=r(),n=(0,m.i)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,i.jsx)(Y,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,i.jsx)(te,{})}}(),{metadata:{unlisted:s}}=r();return(0,i.jsxs)("div",{className:"row",children:[(0,i.jsxs)("div",{className:(0,u.Z)("col",!n.hidden&&Ct.docItemCol),children:[s&&(0,i.jsx)(Nt,{}),(0,i.jsx)(f.Z,{}),(0,i.jsxs)("div",{className:Ct.docItemContainer,children:[(0,i.jsxs)("article",{children:[(0,i.jsx)(xt.Z,{}),(0,i.jsx)(x.Z,{}),n.mobile,(0,i.jsx)(ft,{children:t}),(0,i.jsx)(A,{})]}),(0,i.jsx)(p,{})]})]}),n.desktop&&(0,i.jsx)("div",{className:"col col--3",children:n.desktop})]})}function Lt(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,i.jsx)(c,{content:e.content,children:(0,i.jsxs)(a.FG,{className:t,children:[(0,i.jsx)(d,{}),(0,i.jsx)(kt,{children:(0,i.jsx)(n,{})})]})})}},4966:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var s=n(5999),a=n(512),o=n(9960),i=n(5893);function l(e){const{permalink:t,title:n,subLabel:s,isNext:l}=e;return(0,i.jsxs)(o.Z,{className:(0,a.Z)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[s&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:s}),(0,i.jsx)("div",{className:"pagination-nav__label",children:n})]})}function c(e){const{previous:t,next:n}=e;return(0,i.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,s.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,i.jsx)(l,{...t,subLabel:(0,i.jsx)(s.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,i.jsx)(l,{...n,subLabel:(0,i.jsx)(s.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4364:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var s=n(512),a=n(5999),o=n(5281),i=n(4477),l=n(5893);function c(e){let{className:t}=e;const n=(0,i.E)();return n.badge?(0,l.jsx)("span",{className:(0,s.Z)(t,o.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(a.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}},3120:(e,t,n)=>{"use strict";n.d(t,{Z:()=>x});n(7294);var s=n(512),a=n(2263),o=n(9960),i=n(5999),l=n(143),c=n(5281),r=n(373),d=n(4477),u=n(5893);const m={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(i.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(i.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=m[e.versionMetadata.banner];return(0,u.jsx)(t,{...e})}function p(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,u.jsx)(i.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(o.Z,{to:n,onClick:s,children:(0,u.jsx)(i.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function f(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:o}}=(0,a.Z)(),{pluginId:i}=(0,l.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,r.J)(i),{latestDocSuggestion:m,latestVersionSuggestion:f}=(0,l.Jo)(i),x=m??(g=f).docs.find((e=>e.id===g.mainDocId));var g;return(0,u.jsxs)("div",{className:(0,s.Z)(t,c.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:o,versionMetadata:n})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(p,{versionLabel:f.label,to:x.path,onClick:()=>d(f.name)})})]})}function x(e){let{className:t}=e;const n=(0,d.E)();return n.banner?(0,u.jsx)(f,{className:t,versionMetadata:n}):null}},7594:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,o]=t;if(s&&o){s=parseInt(s),o=parseInt(o);const e=s<o?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(o+=e);for(let t=s;t!==o;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},1151:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l,a:()=>i});var s=n(7294);const a={},o=s.createContext(a);function i(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/187dbc21.6d7a7433.js b/assets/js/187dbc21.6d7a7433.js new file mode 100644 index 00000000..cd009625 --- /dev/null +++ b/assets/js/187dbc21.6d7a7433.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[455],{6996:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var r=o(5893),n=o(1151);const s={},i="Core",c={id:"modules/core/index",title:"Core",description:"This crate is for core features and traits common to all CML crates. Most users likely won't need to directly use this module except for possibly pulling in traits used with other cml crates. If you are using CML from WASM/typescript this module will not be needed as any used types will be re-exported in the crates (e.g. cml-chain-wasm, cml-cip25-wasm, etc) that use it.",source:"@site/docs/modules/core/index.md",sourceDirName:"modules/core",slug:"/modules/core/",permalink:"/cardano-multiplatform-lib/modules/core/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Core",permalink:"/cardano-multiplatform-lib/category/core"},next:{title:"Chain",permalink:"/cardano-multiplatform-lib/category/chain"}},a={},l=[];function u(e){const t={h1:"h1",p:"p",...(0,n.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h1,{id:"core",children:"Core"}),"\n",(0,r.jsx)(t.p,{children:"This crate is for core features and traits common to all CML crates. Most users likely won't need to directly use this module except for possibly pulling in traits used with other cml crates. If you are using CML from WASM/typescript this module will not be needed as any used types will be re-exported in the crates (e.g. cml-chain-wasm, cml-cip25-wasm, etc) that use it."})]})}function d(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(u,{...e})}):u(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>c,a:()=>i});var r=o(7294);const n={},s=r.createContext(n);function i(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1a4e3797.e763b08d.js b/assets/js/1a4e3797.e763b08d.js new file mode 100644 index 00000000..dee2bab6 --- /dev/null +++ b/assets/js/1a4e3797.e763b08d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[920],{2027:(e,t,r)=>{r.r(t),r.d(t,{default:()=>A});var s=r(7294),a=r(2263),n=r(8862),c=r(5742),l=r(9960),o=r(5999);const u=["zero","one","two","few","many","other"];function h(e){return u.filter((t=>e.includes(t)))}const i={locale:"en",pluralForms:h(["one","other"]),select:e=>1===e?"one":"other"};function m(){const{i18n:{currentLocale:e}}=(0,a.Z)();return(0,s.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:h(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),i}}),[e])}function d(){const e=m();return{selectMessage:(t,r)=>function(e,t,r){const s=e.split("|");if(1===s.length)return s[0];s.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${s.length}: ${e}`);const a=r.select(t),n=r.pluralForms.indexOf(a);return s[Math.min(n,s.length-1)]}(r,t,e)}}var p=r(1728),g=r(6550),x=r(2389),f=r(1029);const y=function(){const e=(0,x.Z)(),t=(0,g.k6)(),r=(0,g.TH)(),{siteConfig:{baseUrl:s}}=(0,a.Z)(),n=e?new URLSearchParams(r.search):null,c=n?.get("q")||"",l=n?.get("ctx")||"",o=n?.get("version")||"",u=e=>{const t=new URLSearchParams(r.search);return e?t.set("q",e):t.delete("q"),t};return{searchValue:c,searchContext:l&&Array.isArray(f.Kc)&&f.Kc.some((e=>"string"==typeof e?e===l:e.path===l))?l:"",searchVersion:o,updateSearchPath:e=>{const r=u(e);t.replace({search:r.toString()})},updateSearchContext:e=>{const s=new URLSearchParams(r.search);s.set("ctx",e),t.replace({search:s.toString()})},generateSearchPageLink:e=>{const t=u(e);return`${s}search?${t.toString()}`}}};var S=r(22),C=r(8202),j=r(2539),I=r(726),v=r(1073),w=r(311),R=r(3926);const _={searchContextInput:"searchContextInput_mXoe",searchQueryInput:"searchQueryInput_CFBF",searchResultItem:"searchResultItem_U687",searchResultItemPath:"searchResultItemPath_uIbk",searchResultItemSummary:"searchResultItemSummary_oZHr",searchQueryColumn:"searchQueryColumn_q7nx",searchContextColumn:"searchContextColumn_oWAF"};var P=r(51),b=r(5893);function F(){const{siteConfig:{baseUrl:e},i18n:{currentLocale:t}}=(0,a.Z)(),{selectMessage:r}=d(),{searchValue:n,searchContext:l,searchVersion:u,updateSearchPath:h,updateSearchContext:i}=y(),[m,g]=(0,s.useState)(n),[x,j]=(0,s.useState)(),[I,v]=(0,s.useState)(),R=`${e}${u}`,F=(0,s.useMemo)((()=>m?(0,o.I)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:m}):(0,o.I)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"})),[m]);(0,s.useEffect)((()=>{h(m),x&&(m?x(m,(e=>{v(e)})):v(void 0))}),[m,x]);const A=(0,s.useCallback)((e=>{g(e.target.value)}),[]);return(0,s.useEffect)((()=>{n&&n!==m&&g(n)}),[n]),(0,s.useEffect)((()=>{!async function(){const{wrappedIndexes:e,zhDictionary:t}=l||f.pQ?await(0,S.w)(R,l):{wrappedIndexes:[],zhDictionary:[]};j((()=>(0,C.v)(e,t,100)))}()}),[l,R]),(0,b.jsxs)(s.Fragment,{children:[(0,b.jsxs)(c.Z,{children:[(0,b.jsx)("meta",{property:"robots",content:"noindex, follow"}),(0,b.jsx)("title",{children:F})]}),(0,b.jsxs)("div",{className:"container margin-vert--lg",children:[(0,b.jsx)("h1",{children:F}),(0,b.jsxs)("div",{className:"row",children:[(0,b.jsx)("div",{className:(0,p.Z)("col",{[_.searchQueryColumn]:Array.isArray(f.Kc),"col--9":Array.isArray(f.Kc),"col--12":!Array.isArray(f.Kc)}),children:(0,b.jsx)("input",{type:"search",name:"q",className:_.searchQueryInput,"aria-label":"Search",onChange:A,value:m,autoComplete:"off",autoFocus:!0})}),Array.isArray(f.Kc)?(0,b.jsx)("div",{className:(0,p.Z)("col","col--3","padding-left--none",_.searchContextColumn),children:(0,b.jsxs)("select",{name:"search-context",className:_.searchContextInput,id:"context-selector",value:l,onChange:e=>i(e.target.value),children:[f.pQ&&(0,b.jsx)("option",{value:"",children:(0,o.I)({id:"theme.SearchPage.searchContext.everywhere",message:"everywhere"})}),f.Kc.map((e=>{const{label:r,path:s}=(0,P._)(e,t);return(0,b.jsx)("option",{value:s,children:r},s)}))]})}):null]}),!x&&m&&(0,b.jsx)("div",{children:(0,b.jsx)(w.Z,{})}),I&&(I.length>0?(0,b.jsx)("p",{children:r(I.length,(0,o.I)({id:"theme.SearchPage.documentsFound.plurals",message:"1 document found|{count} documents found",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)'},{count:I.length}))}):(0,b.jsx)("p",{children:(0,o.I)({id:"theme.SearchPage.noResultsText",message:"No documents were found",description:"The paragraph for empty search result"})})),(0,b.jsx)("section",{children:I&&I.map((e=>(0,b.jsx)($,{searchResult:e},e.document.i)))})]})]})}function $(e){let{searchResult:{document:t,type:r,page:s,tokens:a,metadata:n}}=e;const c=0===r,o=2===r,u=(c?t.b:s.b).slice(),h=o?t.s:t.t;c||u.push(s.t);let i="";if(f.vc&&a.length>0){const e=new URLSearchParams;for(const t of a)e.append("_highlight",t);i=`?${e.toString()}`}return(0,b.jsxs)("article",{className:_.searchResultItem,children:[(0,b.jsx)("h2",{children:(0,b.jsx)(l.Z,{to:t.u+i+(t.h||""),dangerouslySetInnerHTML:{__html:o?(0,j.C)(h,a):(0,I.o)(h,(0,v.m)(n,"t"),a,100)}})}),u.length>0&&(0,b.jsx)("p",{className:_.searchResultItemPath,children:(0,R.e)(u)}),o&&(0,b.jsx)("p",{className:_.searchResultItemSummary,dangerouslySetInnerHTML:{__html:(0,I.o)(t.t,(0,v.m)(n,"t"),a,100)}})]})}const A=function(){return(0,b.jsx)(n.Z,{children:(0,b.jsx)(F,{})})}}}]); \ No newline at end of file diff --git a/assets/js/3c02cfd4.0b344bc8.js b/assets/js/3c02cfd4.0b344bc8.js new file mode 100644 index 00000000..30185591 --- /dev/null +++ b/assets/js/3c02cfd4.0b344bc8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[684],{8635:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var n=s(5893),i=s(1151);const a={},r="TransactionBuilder",o={id:"modules/builders/index",title:"TransactionBuilder",description:"In order to simplify transaction creation, we provide a TransactionBuilder struct that manages witnesses, fee calculation, change addresses and such. Assume we have instantiated an instance under the variable builder for this explanation. The TransactionBuilder requires several protocol parameters governing Cardano to be created which is shown in the following section. These are specified initially in the genesis file for Cardano nodes.",source:"@site/docs/modules/builders/index.mdx",sourceDirName:"modules/builders",slug:"/modules/builders/",permalink:"/cardano-multiplatform-lib/modules/builders/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"generating_transactions",permalink:"/cardano-multiplatform-lib/modules/builders/generating_transactions"},next:{title:"CIP36",permalink:"/cardano-multiplatform-lib/modules/cip36"}},c={},d=[];function l(e){const t={a:"a",code:"code",h1:"h1",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"transactionbuilder",children:"TransactionBuilder"}),"\n",(0,n.jsxs)(t.p,{children:["In order to simplify transaction creation, we provide a ",(0,n.jsx)(t.code,{children:"TransactionBuilder"})," struct that manages witnesses, fee calculation, change addresses and such. Assume we have instantiated an instance under the variable ",(0,n.jsx)(t.code,{children:"builder"})," for this explanation. The ",(0,n.jsx)(t.code,{children:"TransactionBuilder"})," requires several protocol parameters governing Cardano to be created which is shown in the following section. These are specified initially in the genesis file for Cardano nodes."]}),"\n",(0,n.jsxs)(t.p,{children:["The minimum required for a valid transaction is to add inputs, outputs, and either set the fee explicitly with ",(0,n.jsx)(t.code,{children:"builder.set_fee(fee)"}),", or calculate it implicitly using ",(0,n.jsx)(t.code,{children:"builder.add_change_if_needed(address)"}),".\nOptionally a transaction can also have certificates, reward withdrawals, metadata, and minting added to it.\nAny change made to the builder can impact the size and thus the fee so the fee should be the last thing set.\nIf implicitly setting the fee any extra ADA (",(0,n.jsx)(t.code,{children:"inputs + withdrawals - outputs + refund - deposit - min fee"}),") is sent to the provided change address.\nFees must be sufficient, i.e. ",(0,n.jsx)(t.code,{children:"inputs + withdrawals + refund >= outputs + deposit + fee"})," which must be manually ensured if you explicitly set the fee. Any extra fee is not necessary and the extra ADA beyond that will be burned.\nOnce the transaction is ready, ",(0,n.jsx)(t.code,{children:"const body = builder.build()"})," can be called to return a ready ",(0,n.jsx)(t.code,{children:"TransactionBody"}),"."]}),"\n",(0,n.jsx)(t.p,{children:"Withdrawals are ADA withdrawn as part of the rewards generated by staking and deposits are refundable ADA locked while resources such as stake certificates or pool registrations exist on the blockchain. They are returned as refunds when these resources are deregistered/retired."}),"\n",(0,n.jsxs)(t.p,{children:["To get to a transaction ready to post on the blockchain, we must create a ",(0,n.jsx)(t.code,{children:"Transaction"})," from that, which consists of the ",(0,n.jsx)(t.code,{children:"TransactionBody"}),", a matching ",(0,n.jsx)(t.code,{children:"TransactionWitnessSet"})," and optionally an ",(0,n.jsx)(t.code,{children:"AuxiliaryData"}),".\nThe witnesses and optional metadata must match those provided to the builder. The witnesses must sign the hash of the transaction body returned by ",(0,n.jsx)(t.code,{children:"hash_transaction(body)"}),". In addition to the witnesses for inputs, withdrawals and some certificates require witnesses as well. For example, staking address registration does not require a witness while stake address de-registration requires one. For any questions or doubts about the rules governing fees, deposits, rewards, certificates or which witness types are required refer to the ",(0,n.jsx)(t.a,{href:"https://github.com/input-output-hk/cardano-ledger-specs#cardano-ledger",children:"specs for the relevant era"}),", specifically the Shelley design specification for general design for non-governance certificates. Refer to the Conway specs for those. The formal specification could be useful for specific details as well. The design spec contains details about which certificates require which type of witnesses in the Certificates and Registrations section."]}),"\n",(0,n.jsx)(t.h1,{id:"transactionbuilderconfig",children:"TransactionBuilderConfig"}),"\n",(0,n.jsxs)(t.p,{children:["To correctly make transactions the builder must know some on-chain parameters such as the current fee costs, key deposits, etc. These can all potentially change, even if some have largely been static for large periods of time. We pass these into the builder via the ",(0,n.jsx)(t.code,{children:"TransactionBuilderConfigBuilder"}),". For test things out hard-coding them might suffice, but these parameters should ideally be fetched from the current blockchain head or your transactions could fail to be accepted by the network or will end up paying higher fees. The cost models parameter is optional if you are not building a transaction that utilizes Plutus smart contracts."]}),"\n",(0,n.jsxs)(t.p,{children:["Code examples for the builders will assume you have a ",(0,n.jsx)(t.code,{children:"make_tx_builder()"})," function that creates a ",(0,n.jsx)(t.code,{children:"TransactionBuilder"})," with the appropriate config."]}),"\n",(0,n.jsx)(t.h1,{id:"blockfrost",children:"Blockfrost"}),"\n",(0,n.jsxs)(t.p,{children:["One way of getting this information is via the ",(0,n.jsx)(t.code,{children:"epochs/latest/parameters"})," endpoint of blockfrost. This can be automated from rust using the ",(0,n.jsx)(t.code,{children:"cml-blockfrost"})," crate's ",(0,n.jsx)(t.code,{children:"make_tx_builder_cfg()"}),". Blockfrost is by no means necessary but it can be convenient. It is possible to get this information by other means as well e.g. having a synced cardano node."]}),"\n",(0,n.jsxs)(t.p,{children:["Using ",(0,n.jsx)(t.code,{children:"cml-blockfrost"})," (rust):"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-rust",children:"let cfg = cml_blockfrost::make_tx_builder_cfg(&api).await.unwrap();\nlet mut tx_builder = TransactionBuilder::new(cfg);\n"})}),"\n",(0,n.jsxs)(t.p,{children:["This could also be done manually similar to below (or reference ",(0,n.jsx)(t.code,{children:"cml-blockfrost"}),"'s code)"]}),"\n",(0,n.jsx)(t.p,{children:"Manually using WASM:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-javascript",children:"let params = await blockfrost.epochsLatestParameters();\n\n// cost order is based on lex ordering of keys\nlet costModels = CML.CostModels.new();\nlet v1Costs = params.cost_models['PlutusV1'];\nif (v1Costs != null) {\n let v1CMLCosts = CML.IntList.new();\n for (key in Object.keys(v1Costs).toSorted()) {\n v1CMLCosts.add(CML.Int.new(v1Costs[key]));\n }\n costModels.set_plutus_v1(v1CMLCosts);\n}\n// cost order is based on lex ordering of keys\nlet v2Costs = params.cost_models['PlutusV2'];\nif (v2Costs != null) {\n let v2CMLCosts = CML.IntList.new();\n for (key in Object.keys(v2Costs).toSorted()) {\n v2CMLCosts.add(CML.Int.new(v2Costs[key]));\n }\n costModels.set_plutus_v2(v2CMLCosts);\n}\n// note: as of writing this the sancho testnet format is different for v3\n// compared to v1/v2. this may remain true once mainnet switches over so\n// please inspect the object you are getting for cost models from blockfrost\n\nlet configBuilder = CML.TransactionBuilderConfigBuilder.new()\n .fee_algo(CML.LinearFee.new(params.min_fee_a, params.min_fee_b))\n .coins_per_utxo_byte(BigNum(params.coins_per_utxo_size))\n .pool_deposit(BigNum(params.pool_deposit))\n .key_deposit(BigNum(params.key_deposit))\n .max_value_size(Number(params.max_val_size))\n .max_tx_size(params.max_tx_size)\n .ex_unit_prices(CML.ExUnitPrices.new(\n CML.SubCoin.from_base10_f32(params.price_mem),\n CML.SubCoin.from_base10_f32(params.price_step)\n ))\n .cost_models(costModels)\n .collateral_percentage(params.collateral_percent)\n max_collateral_inputs(params.max_collateral_inputs);\nlet mut txBuilder = CML.TransactionBuilder.new(configBuilder.build());\n"})})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>o,a:()=>r});var n=s(7294);const i={},a=n.createContext(i);function r(e){const t=n.useContext(a);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/42a4384b.2d67981c.js b/assets/js/42a4384b.2d67981c.js new file mode 100644 index 00000000..896ce660 --- /dev/null +++ b/assets/js/42a4384b.2d67981c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[810],{3458:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var i=t(5893),o=t(1151);const a={},r="Chain",c={id:"modules/chain/index",title:"Chain",description:"This crate contains all of the on-chain types used in the current Cardano era. All of these types can be serialized and deserialized from their on-chain CBOR encodings. Also included are some utility funtionality for working with them, as well as builders for creating them.",source:"@site/docs/modules/chain/index.md",sourceDirName:"modules/chain",slug:"/modules/chain/",permalink:"/cardano-multiplatform-lib/modules/chain/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Chain",permalink:"/cardano-multiplatform-lib/category/chain"},next:{title:"Crypto",permalink:"/cardano-multiplatform-lib/category/crypto"}},s={},l=[];function d(e){const n={h1:"h1",p:"p",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"chain",children:"Chain"}),"\n",(0,i.jsx)(n.p,{children:"This crate contains all of the on-chain types used in the current Cardano era. All of these types can be serialized and deserialized from their on-chain CBOR encodings. Also included are some utility funtionality for working with them, as well as builders for creating them."})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>r});var i=t(7294);const o={},a=i.createContext(o);function r(e){const n=i.useContext(a);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/443.3d74dd3a.js b/assets/js/443.3d74dd3a.js new file mode 100644 index 00000000..6d875a1e --- /dev/null +++ b/assets/js/443.3d74dd3a.js @@ -0,0 +1,2 @@ +/*! For license information please see 443.3d74dd3a.js.LICENSE.txt */ +(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[443],{8443:(t,e,n)=>{"use strict";t.exports=n(295)},1228:(t,e,n)=>{"use strict";var i=n(2856),s={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:"0"},defaultClasses:{root:"algolia-autocomplete",prefix:"aa",noPrefix:!1,dropdownMenu:"dropdown-menu",input:"input",hint:"hint",suggestions:"suggestions",suggestion:"suggestion",cursor:"cursor",dataset:"dataset",empty:"empty"},appendTo:{wrapper:{position:"absolute",zIndex:"100",display:"none"},input:{},inputWithNoHint:{},dropdown:{display:"block"}}};i.isMsie()&&i.mixin(s.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),i.isMsie()&&i.isMsie()<=7&&i.mixin(s.input,{marginTop:"-1px"}),t.exports=s},9050:(t,e,n)=>{"use strict";var i="aaDataset",s="aaValue",r="aaDatum",o=n(2856),a=n(4910),u=n(3561),c=n(1228),l=n(3109);function h(t){var e;(t=t||{}).templates=t.templates||{},t.source||o.error("missing source"),t.name&&(e=t.name,!/^[_a-zA-Z0-9-]+$/.test(e))&&o.error("invalid dataset name: "+t.name),this.query=null,this._isEmpty=!0,this.highlight=!!t.highlight,this.name=void 0===t.name||null===t.name?o.getUniqueId():t.name,this.source=t.source,this.displayFn=function(t){return t=t||"value",o.isFunction(t)?t:e;function e(e){return e[t]}}(t.display||t.displayKey),this.debounce=t.debounce,this.cache=!1!==t.cache,this.templates=function(t,e){return{empty:t.empty&&o.templatify(t.empty),header:t.header&&o.templatify(t.header),footer:t.footer&&o.templatify(t.footer),suggestion:t.suggestion||n};function n(t){return"<p>"+e(t)+"</p>"}}(t.templates,this.displayFn),this.css=o.mixin({},c,t.appendTo?c.appendTo:{}),this.cssClasses=t.cssClasses=o.mixin({},c.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||o.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix);var n=o.className(this.cssClasses.prefix,this.cssClasses.dataset);this.$el=t.$menu&&t.$menu.find(n+"-"+this.name).length>0?a.element(t.$menu.find(n+"-"+this.name)[0]):a.element(u.dataset.replace("%CLASS%",this.name).replace("%PREFIX%",this.cssClasses.prefix).replace("%DATASET%",this.cssClasses.dataset)),this.$menu=t.$menu,this.clearCachedSuggestions()}h.extractDatasetName=function(t){return a.element(t).data(i)},h.extractValue=function(t){return a.element(t).data(s)},h.extractDatum=function(t){var e=a.element(t).data(r);return"string"==typeof e&&(e=JSON.parse(e)),e},o.mixin(h.prototype,l,{_render:function(t,e){if(this.$el){var n,c=this,l=[].slice.call(arguments,2);if(this.$el.empty(),n=e&&e.length,this._isEmpty=!n,!n&&this.templates.empty)this.$el.html(function(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!0}].concat(e),c.templates.empty.apply(this,e)}.apply(this,l)).prepend(c.templates.header?h.apply(this,l):null).append(c.templates.footer?p.apply(this,l):null);else if(n)this.$el.html(function(){var t,n,l=[].slice.call(arguments,0),h=this,p=u.suggestions.replace("%PREFIX%",this.cssClasses.prefix).replace("%SUGGESTIONS%",this.cssClasses.suggestions);return t=a.element(p).css(this.css.suggestions),n=o.map(e,f),t.append.apply(t,n),t;function f(t){var e,n=u.suggestion.replace("%PREFIX%",h.cssClasses.prefix).replace("%SUGGESTION%",h.cssClasses.suggestion);return(e=a.element(n).attr({role:"option",id:["option",Math.floor(1e8*Math.random())].join("-")}).append(c.templates.suggestion.apply(this,[t].concat(l)))).data(i,c.name),e.data(s,c.displayFn(t)||void 0),e.data(r,JSON.stringify(t)),e.children().each((function(){a.element(this).css(h.css.suggestionChild)})),e}}.apply(this,l)).prepend(c.templates.header?h.apply(this,l):null).append(c.templates.footer?p.apply(this,l):null);else if(e&&!Array.isArray(e))throw new TypeError("suggestions must be an array");this.$menu&&this.$menu.addClass(this.cssClasses.prefix+(n?"with":"without")+"-"+this.name).removeClass(this.cssClasses.prefix+(n?"without":"with")+"-"+this.name),this.trigger("rendered",t)}function h(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),c.templates.header.apply(this,e)}function p(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),c.templates.footer.apply(this,e)}},getRoot:function(){return this.$el},update:function(t){function e(e){if(!this.canceled&&t===this.query){var n=[].slice.call(arguments,1);this.cacheSuggestions(t,e,n),this._render.apply(this,[t,e].concat(n))}}if(this.query=t,this.canceled=!1,this.shouldFetchFromCache(t))e.apply(this,[this.cachedSuggestions].concat(this.cachedRenderExtraArgs));else{var n=this,i=function(){n.canceled||n.source(t,e.bind(n))};if(this.debounce){clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout((function(){n.debounceTimeout=null,i()}),this.debounce)}else i()}},cacheSuggestions:function(t,e,n){this.cachedQuery=t,this.cachedSuggestions=e,this.cachedRenderExtraArgs=n},shouldFetchFromCache:function(t){return this.cache&&this.cachedQuery===t&&this.cachedSuggestions&&this.cachedSuggestions.length},clearCachedSuggestions:function(){delete this.cachedQuery,delete this.cachedSuggestions,delete this.cachedRenderExtraArgs},cancel:function(){this.canceled=!0},clear:function(){this.$el&&(this.cancel(),this.$el.empty(),this.trigger("rendered",""))},isEmpty:function(){return this._isEmpty},destroy:function(){this.clearCachedSuggestions(),this.$el=null}}),t.exports=h},3354:(t,e,n)=>{"use strict";var i=n(2856),s=n(4910),r=n(3109),o=n(9050),a=n(1228);function u(t){var e,n,r,o=this;(t=t||{}).menu||i.error("menu is required"),i.isArray(t.datasets)||i.isObject(t.datasets)||i.error("1 or more datasets required"),t.datasets||i.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,this.minLength=t.minLength||0,this.templates={},this.appendTo=t.appendTo||!1,this.css=i.mixin({},a,t.appendTo?a.appendTo:{}),this.cssClasses=t.cssClasses=i.mixin({},a.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||i.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),e=i.bind(this._onSuggestionClick,this),n=i.bind(this._onSuggestionMouseEnter,this),r=i.bind(this._onSuggestionMouseLeave,this);var c=i.className(this.cssClasses.prefix,this.cssClasses.suggestion);this.$menu=s.element(t.menu).on("mouseenter.aa",c,n).on("mouseleave.aa",c,r).on("click.aa",c,e),this.$container=t.appendTo?t.wrapper:this.$menu,t.templates&&t.templates.header&&(this.templates.header=i.templatify(t.templates.header),this.$menu.prepend(this.templates.header())),t.templates&&t.templates.empty&&(this.templates.empty=i.templatify(t.templates.empty),this.$empty=s.element('<div class="'+i.className(this.cssClasses.prefix,this.cssClasses.empty,!0)+'"></div>'),this.$menu.append(this.$empty),this.$empty.hide()),this.datasets=i.map(t.datasets,(function(e){return function(t,e,n){return new u.Dataset(i.mixin({$menu:t,cssClasses:n},e))}(o.$menu,e,t.cssClasses)})),i.each(this.datasets,(function(t){var e=t.getRoot();e&&0===e.parent().length&&o.$menu.append(e),t.onSync("rendered",o._onRendered,o)})),t.templates&&t.templates.footer&&(this.templates.footer=i.templatify(t.templates.footer),this.$menu.append(this.templates.footer()));var l=this;s.element(window).resize((function(){l._redraw()}))}i.mixin(u.prototype,r,{_onSuggestionClick:function(t){this.trigger("suggestionClicked",s.element(t.currentTarget))},_onSuggestionMouseEnter:function(t){var e=s.element(t.currentTarget);if(!e.hasClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0))){this._removeCursor();var n=this;setTimeout((function(){n._setCursor(e,!1)}),0)}},_onSuggestionMouseLeave:function(t){if(t.relatedTarget&&s.element(t.relatedTarget).closest("."+i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).length>0)return;this._removeCursor(),this.trigger("cursorRemoved")},_onRendered:function(t,e){if(this.isEmpty=i.every(this.datasets,(function(t){return t.isEmpty()})),this.isEmpty)if(e.length>=this.minLength&&this.trigger("empty"),this.$empty)if(e.length<this.minLength)this._hide();else{var n=this.templates.empty({query:this.datasets[0]&&this.datasets[0].query});this.$empty.html(n),this.$empty.show(),this._show()}else i.any(this.datasets,(function(t){return t.templates&&t.templates.empty}))?e.length<this.minLength?this._hide():this._show():this._hide();else this.isOpen&&(this.$empty&&(this.$empty.empty(),this.$empty.hide()),e.length>=this.minLength?this._show():this._hide());this.trigger("datasetRendered")},_hide:function(){this.$container.hide()},_show:function(){this.$container.css("display","block"),this._redraw(),this.trigger("shown")},_redraw:function(){this.isOpen&&this.appendTo&&this.trigger("redrawn")},_getSuggestions:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.suggestion))},_getCursor:function(){return this.$menu.find(i.className(this.cssClasses.prefix,this.cssClasses.cursor)).first()},_setCursor:function(t,e){t.first().addClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).attr("aria-selected","true"),this.trigger("cursorMoved",e)},_removeCursor:function(){this._getCursor().removeClass(i.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).removeAttr("aria-selected")},_moveCursor:function(t){var e,n,i,s;this.isOpen&&(n=this._getCursor(),e=this._getSuggestions(),this._removeCursor(),-1!==(i=((i=e.index(n)+t)+1)%(e.length+1)-1)?(i<-1&&(i=e.length-1),this._setCursor(s=e.eq(i),!0),this._ensureVisible(s)):this.trigger("cursorRemoved"))},_ensureVisible:function(t){var e,n,i,s;n=(e=t.position().top)+t.height()+parseInt(t.css("margin-top"),10)+parseInt(t.css("margin-bottom"),10),i=this.$menu.scrollTop(),s=this.$menu.height()+parseInt(this.$menu.css("padding-top"),10)+parseInt(this.$menu.css("padding-bottom"),10),e<0?this.$menu.scrollTop(i+e):s<n&&this.$menu.scrollTop(i+(n-s))},close:function(){this.isOpen&&(this.isOpen=!1,this._removeCursor(),this._hide(),this.trigger("closed"))},open:function(){this.isOpen||(this.isOpen=!0,this.isEmpty||this._show(),this.trigger("opened"))},setLanguageDirection:function(t){this.$menu.css("ltr"===t?this.css.ltr:this.css.rtl)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getDatumForSuggestion:function(t){var e=null;return t.length&&(e={raw:o.extractDatum(t),value:o.extractValue(t),datasetName:o.extractDatasetName(t)}),e},getCurrentCursor:function(){return this._getCursor().first()},getDatumForCursor:function(){return this.getDatumForSuggestion(this._getCursor().first())},getDatumForTopSuggestion:function(){return this.getDatumForSuggestion(this._getSuggestions().first())},cursorTopSuggestion:function(){this._setCursor(this._getSuggestions().first(),!1)},update:function(t){i.each(this.datasets,(function(e){e.update(t)}))},empty:function(){i.each(this.datasets,(function(t){t.clear()})),this.isEmpty=!0},isVisible:function(){return this.isOpen&&!this.isEmpty},destroy:function(){this.$menu.off(".aa"),this.$menu=null,i.each(this.datasets,(function(t){t.destroy()}))}}),u.Dataset=o,t.exports=u},50:(t,e,n)=>{"use strict";var i=n(2856),s=n(4910);function r(t){t&&t.el||i.error("EventBus initialized without el"),this.$el=s.element(t.el)}i.mixin(r.prototype,{trigger:function(t,e,n,s){var r=i.Event("autocomplete:"+t);return this.$el.trigger(r,[e,n,s]),r}}),t.exports=r},3109:(t,e,n)=>{"use strict";var i=n(624),s=/\s+/;function r(t,e,n,i){var r;if(!n)return this;for(e=e.split(s),n=i?function(t,e){return t.bind?t.bind(e):function(){t.apply(e,[].slice.call(arguments,0))}}(n,i):n,this._callbacks=this._callbacks||{};r=e.shift();)this._callbacks[r]=this._callbacks[r]||{sync:[],async:[]},this._callbacks[r][t].push(n);return this}function o(t,e,n){return function(){for(var i,s=0,r=t.length;!i&&s<r;s+=1)i=!1===t[s].apply(e,n);return!i}}t.exports={onSync:function(t,e,n){return r.call(this,"sync",t,e,n)},onAsync:function(t,e,n){return r.call(this,"async",t,e,n)},off:function(t){var e;if(!this._callbacks)return this;t=t.split(s);for(;e=t.shift();)delete this._callbacks[e];return this},trigger:function(t){var e,n,r,a,u;if(!this._callbacks)return this;t=t.split(s),r=[].slice.call(arguments,1);for(;(e=t.shift())&&(n=this._callbacks[e]);)a=o(n.sync,this,[e].concat(r)),u=o(n.async,this,[e].concat(r)),a()&&i(u);return this}}},3561:t=>{"use strict";t.exports={wrapper:'<span class="%ROOT%"></span>',dropdown:'<span class="%PREFIX%%DROPDOWN_MENU%"></span>',dataset:'<div class="%PREFIX%%DATASET%-%CLASS%"></div>',suggestions:'<span class="%PREFIX%%SUGGESTIONS%"></span>',suggestion:'<div class="%PREFIX%%SUGGESTION%"></div>'}},2534:(t,e,n)=>{"use strict";var i;i={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var s=n(2856),r=n(4910),o=n(3109);function a(t){var e,n,o,a,u,c=this;(t=t||{}).input||s.error("input is missing"),e=s.bind(this._onBlur,this),n=s.bind(this._onFocus,this),o=s.bind(this._onKeydown,this),a=s.bind(this._onInput,this),this.$hint=r.element(t.hint),this.$input=r.element(t.input).on("blur.aa",e).on("focus.aa",n).on("keydown.aa",o),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=s.noop),s.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",(function(t){i[t.which||t.keyCode]||s.defer(s.bind(c._onInput,c,t))})):this.$input.on("input.aa",a),this.query=this.$input.val(),this.$overflowHelper=(u=this.$input,r.element('<pre aria-hidden="true"></pre>').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:u.css("font-family"),fontSize:u.css("font-size"),fontStyle:u.css("font-style"),fontVariant:u.css("font-variant"),fontWeight:u.css("font-weight"),wordSpacing:u.css("word-spacing"),letterSpacing:u.css("letter-spacing"),textIndent:u.css("text-indent"),textRendering:u.css("text-rendering"),textTransform:u.css("text-transform")}).insertAfter(u))}function u(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}a.normalizeQuery=function(t){return(t||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},s.mixin(a.prototype,o,{_onBlur:function(){this.resetInputValue(),this.$input.removeAttr("aria-activedescendant"),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(t){var e=i[t.which||t.keyCode];this._managePreventDefault(e,t),e&&this._shouldTrigger(e,t)&&this.trigger(e+"Keyed",t)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(t,e){var n,i,s;switch(t){case"tab":i=this.getHint(),s=this.getInputValue(),n=i&&i!==s&&!u(e);break;case"up":case"down":n=!u(e);break;default:n=!1}n&&e.preventDefault()},_shouldTrigger:function(t,e){var n;if("tab"===t)n=!u(e);else n=!0;return n},_checkInputValue:function(){var t,e,n,i,s;t=this.getInputValue(),i=t,s=this.query,n=!(!(e=a.normalizeQuery(i)===a.normalizeQuery(s))||!this.query)&&this.query.length!==t.length,this.query=t,e?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(t){this.query=t},getInputValue:function(){return this.$input.val()},setInputValue:function(t,e){void 0===t&&(t=this.query),this.$input.val(t),e?this.clearHint():this._checkInputValue()},expand:function(){this.$input.attr("aria-expanded","true")},collapse:function(){this.$input.attr("aria-expanded","false")},setActiveDescendant:function(t){this.$input.attr("aria-activedescendant",t)},removeActiveDescendant:function(){this.$input.removeAttr("aria-activedescendant")},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(t){this.$hint.val(t)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var t,e,n;n=(t=this.getInputValue())!==(e=this.getHint())&&0===e.indexOf(t),""!==t&&n&&!this.hasOverflow()||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var t=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=t},isCursorAtEnd:function(){var t,e,n;return t=this.$input.val().length,e=this.$input[0].selectionStart,s.isNumber(e)?e===t:!document.selection||((n=document.selection.createRange()).moveStart("character",-t),t===n.text.length)},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),t.exports=a},6549:(t,e,n)=>{"use strict";var i="aaAttrs",s=n(2856),r=n(4910),o=n(50),a=n(2534),u=n(3354),c=n(3561),l=n(1228);function h(t){var e,n;if((t=t||{}).input||s.error("missing input"),this.isActivated=!1,this.debug=!!t.debug,this.autoselect=!!t.autoselect,this.autoselectOnBlur=!!t.autoselectOnBlur,this.openOnFocus=!!t.openOnFocus,this.minLength=s.isNumber(t.minLength)?t.minLength:1,this.autoWidth=void 0===t.autoWidth||!!t.autoWidth,this.clearOnSelected=!!t.clearOnSelected,this.tabAutocomplete=void 0===t.tabAutocomplete||!!t.tabAutocomplete,t.hint=!!t.hint,t.hint&&t.appendTo)throw new Error("[autocomplete.js] hint and appendTo options can't be used at the same time");this.css=t.css=s.mixin({},l,t.appendTo?l.appendTo:{}),this.cssClasses=t.cssClasses=s.mixin({},l.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix=s.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),this.listboxId=t.listboxId=[this.cssClasses.root,"listbox",s.getUniqueId()].join("-");var a=function(t){var e,n,o,a;e=r.element(t.input),n=r.element(c.wrapper.replace("%ROOT%",t.cssClasses.root)).css(t.css.wrapper),t.appendTo||"block"!==e.css("display")||"table"!==e.parent().css("display")||n.css("display","table-cell");var u=c.dropdown.replace("%PREFIX%",t.cssClasses.prefix).replace("%DROPDOWN_MENU%",t.cssClasses.dropdownMenu);o=r.element(u).css(t.css.dropdown).attr({role:"listbox",id:t.listboxId}),t.templates&&t.templates.dropdownMenu&&o.html(s.templatify(t.templates.dropdownMenu)());a=e.clone().css(t.css.hint).css(function(t){return{backgroundAttachment:t.css("background-attachment"),backgroundClip:t.css("background-clip"),backgroundColor:t.css("background-color"),backgroundImage:t.css("background-image"),backgroundOrigin:t.css("background-origin"),backgroundPosition:t.css("background-position"),backgroundRepeat:t.css("background-repeat"),backgroundSize:t.css("background-size")}}(e)),a.val("").addClass(s.className(t.cssClasses.prefix,t.cssClasses.hint,!0)).removeAttr("id name placeholder required").prop("readonly",!0).attr({"aria-hidden":"true",autocomplete:"off",spellcheck:"false",tabindex:-1}),a.removeData&&a.removeData();e.data(i,{"aria-autocomplete":e.attr("aria-autocomplete"),"aria-expanded":e.attr("aria-expanded"),"aria-owns":e.attr("aria-owns"),autocomplete:e.attr("autocomplete"),dir:e.attr("dir"),role:e.attr("role"),spellcheck:e.attr("spellcheck"),style:e.attr("style"),type:e.attr("type")}),e.addClass(s.className(t.cssClasses.prefix,t.cssClasses.input,!0)).attr({autocomplete:"off",spellcheck:!1,role:"combobox","aria-autocomplete":t.datasets&&t.datasets[0]&&t.datasets[0].displayKey?"both":"list","aria-expanded":"false","aria-label":t.ariaLabel,"aria-owns":t.listboxId}).css(t.hint?t.css.input:t.css.inputWithNoHint);try{e.attr("dir")||e.attr("dir","auto")}catch(l){}return n=t.appendTo?n.appendTo(r.element(t.appendTo).eq(0)).eq(0):e.wrap(n).parent(),n.prepend(t.hint?a:null).append(o),{wrapper:n,input:e,hint:a,menu:o}}(t);this.$node=a.wrapper;var u=this.$input=a.input;e=a.menu,n=a.hint,t.dropdownMenuContainer&&r.element(t.dropdownMenuContainer).css("position","relative").append(e.css("top","0")),u.on("blur.aa",(function(t){var n=document.activeElement;s.isMsie()&&(e[0]===n||e[0].contains(n))&&(t.preventDefault(),t.stopImmediatePropagation(),s.defer((function(){u.focus()})))})),e.on("mousedown.aa",(function(t){t.preventDefault()})),this.eventBus=t.eventBus||new o({el:u}),this.dropdown=new h.Dropdown({appendTo:t.appendTo,wrapper:this.$node,menu:e,datasets:t.datasets,templates:t.templates,cssClasses:t.cssClasses,minLength:this.minLength}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onSync("shown",this._onShown,this).onSync("empty",this._onEmpty,this).onSync("redrawn",this._onRedrawn,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new h.Input({input:u,hint:n}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._bindKeyboardShortcuts(t),this._setLanguageDirection()}s.mixin(h.prototype,{_bindKeyboardShortcuts:function(t){if(t.keyboardShortcuts){var e=this.$input,n=[];s.each(t.keyboardShortcuts,(function(t){"string"==typeof t&&(t=t.toUpperCase().charCodeAt(0)),n.push(t)})),r.element(document).keydown((function(t){var i=t.target||t.srcElement,s=i.tagName;if(!i.isContentEditable&&"INPUT"!==s&&"SELECT"!==s&&"TEXTAREA"!==s){var r=t.which||t.keyCode;-1!==n.indexOf(r)&&(e.focus(),t.stopPropagation(),t.preventDefault())}}))}},_onSuggestionClicked:function(t,e){var n;(n=this.dropdown.getDatumForSuggestion(e))&&this._select(n,{selectionMethod:"click"})},_onCursorMoved:function(t,e){var n=this.dropdown.getDatumForCursor(),i=this.dropdown.getCurrentCursor().attr("id");this.input.setActiveDescendant(i),n&&(e&&this.input.setInputValue(n.value,!0),this.eventBus.trigger("cursorchanged",n.raw,n.datasetName))},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint(),this.eventBus.trigger("cursorremoved")},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.input.expand(),this.eventBus.trigger("opened")},_onEmpty:function(){this.eventBus.trigger("empty")},_onRedrawn:function(){this.$node.css("top","0px"),this.$node.css("left","0px");var t=this.$input[0].getBoundingClientRect();this.autoWidth&&this.$node.css("width",t.width+"px");var e=this.$node[0].getBoundingClientRect(),n=t.bottom-e.top;this.$node.css("top",n+"px");var i=t.left-e.left;this.$node.css("left",i+"px"),this.eventBus.trigger("redrawn")},_onShown:function(){this.eventBus.trigger("shown"),this.autoselect&&this.dropdown.cursorTopSuggestion()},_onClosed:function(){this.input.clearHint(),this.input.removeActiveDescendant(),this.input.collapse(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var t=this.input.getQuery();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){var t,e;t=this.dropdown.getDatumForCursor(),e=this.dropdown.getDatumForTopSuggestion();var n={selectionMethod:"blur"};this.debug||(this.autoselectOnBlur&&t?this._select(t,n):this.autoselectOnBlur&&e?this._select(e,n):(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()))},_onEnterKeyed:function(t,e){var n,i;n=this.dropdown.getDatumForCursor(),i=this.dropdown.getDatumForTopSuggestion();var s={selectionMethod:"enterKey"};n?(this._select(n,s),e.preventDefault()):this.autoselect&&i&&(this._select(i,s),e.preventDefault())},_onTabKeyed:function(t,e){if(this.tabAutocomplete){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n,{selectionMethod:"tabKey"}),e.preventDefault()):this._autocomplete(!0)}else this.dropdown.close()},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(t,e){this.input.clearHintIfInvalid(),e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var t=this.input.getLanguageDirection();this.dir!==t&&(this.dir=t,this.$node.css("direction",t),this.dropdown.setLanguageDirection(t))},_updateHint:function(){var t,e,n,i,r;(t=this.dropdown.getDatumForTopSuggestion())&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(e=this.input.getInputValue(),n=a.normalizeQuery(e),i=s.escapeRegExChars(n),(r=new RegExp("^(?:"+i+")(.+$)","i").exec(t.value))?this.input.setHint(e+r[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(t){var e,n,i,s;e=this.input.getHint(),n=this.input.getQuery(),i=t||this.input.isCursorAtEnd(),e&&n!==e&&i&&((s=this.dropdown.getDatumForTopSuggestion())&&this.input.setInputValue(s.value),this.eventBus.trigger("autocompleted",s.raw,s.datasetName))},_select:function(t,e){void 0!==t.value&&this.input.setQuery(t.value),this.clearOnSelected?this.setVal(""):this.input.setInputValue(t.value,!0),this._setLanguageDirection(),!1===this.eventBus.trigger("selected",t.raw,t.datasetName,e).isDefaultPrevented()&&(this.dropdown.close(),s.defer(s.bind(this.dropdown.empty,this.dropdown)))},open:function(){if(!this.isActivated){var t=this.input.getInputValue();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(t){t=s.toStr(t),this.isActivated?this.input.setInputValue(t):(this.input.setQuery(t),this.input.setInputValue(t,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),function(t,e){var n=t.find(s.className(e.prefix,e.input));s.each(n.data(i),(function(t,e){void 0===t?n.removeAttr(e):n.attr(e,t)})),n.detach().removeClass(s.className(e.prefix,e.input,!0)).insertAfter(t),n.removeData&&n.removeData(i);t.remove()}(this.$node,this.cssClasses),this.$node=null},getWrapper:function(){return this.dropdown.$container[0]}}),h.Dropdown=u,h.Input=a,h.sources=n(8840),t.exports=h},4910:t=>{"use strict";t.exports={element:null}},6177:t=>{"use strict";t.exports=function(t){var e=t.match(/Algolia for JavaScript \((\d+\.)(\d+\.)(\d+)\)/)||t.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);if(e)return[e[1],e[2],e[3]]}},2856:(t,e,n)=>{"use strict";var i,s=n(8820),r=n(4910);function o(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}t.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(t){if(void 0===t&&(t=navigator.userAgent),/(msie|trident)/i.test(t)){var e=t.match(/(msie |rv:)(\d+(.\d+)?)/i);if(e)return e[2]}return!1},escapeRegExChars:function(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(t){return"number"==typeof t},toStr:function(t){return null==t?"":t+""},cloneDeep:function(t){var e=this.mixin({},t),n=this;return this.each(e,(function(t,i){t&&(n.isArray(t)?e[i]=[].concat(t):n.isObject(t)&&(e[i]=n.cloneDeep(t)))})),e},error:function(t){throw new Error(t)},every:function(t,e){var n=!0;return t?(this.each(t,(function(i,s){n&&(n=e.call(null,i,s,t)&&n)})),!!n):n},any:function(t,e){var n=!1;return t?(this.each(t,(function(i,s){if(e.call(null,i,s,t))return n=!0,!1})),n):n},getUniqueId:(i=0,function(){return i++}),templatify:function(t){if(this.isFunction(t))return t;var e=r.element(t);return"SCRIPT"===e.prop("tagName")?function(){return e.text()}:function(){return String(t)}},defer:function(t){setTimeout(t,0)},noop:function(){},formatPrefix:function(t,e){return e?"":t+"-"},className:function(t,e,n){return n?t+e:"."+s(t+e,{isIdentifier:!0})},escapeHighlightedString:function(t,e,n){e=e||"<em>";var i=document.createElement("div");i.appendChild(document.createTextNode(e)),n=n||"</em>";var s=document.createElement("div");s.appendChild(document.createTextNode(n));var r=document.createElement("div");return r.appendChild(document.createTextNode(t)),r.innerHTML.replace(RegExp(o(i.innerHTML),"g"),e).replace(RegExp(o(s.innerHTML),"g"),n)}}},9983:(t,e,n)=>{"use strict";var i=n(2856),s=n(533),r=n(6177);var o,a,u=(o=[],a=window.Promise.resolve(),function(t,e){return function(n,s){(function(t,e){return window.Promise.resolve().then((function(){return o.length&&(a=t.search(o),o=[]),a})).then((function(t){if(t)return t.results[e]}))})(t.as,o.push({indexName:t.indexName,query:n,params:e})-1).then((function(t){t&&s(t.hits,t)})).catch((function(t){i.error(t.message)}))}});t.exports=function(t,e){var n=r(t.as._ua);if(n&&n[0]>=3&&n[1]>20){var i="autocomplete.js "+s;-1===t.as._ua.indexOf(i)&&(t.as._ua+="; "+i)}return u(t,e)}},8840:(t,e,n)=>{"use strict";t.exports={hits:n(9983),popularIn:n(4445)}},4445:(t,e,n)=>{"use strict";var i=n(2856),s=n(533),r=n(6177);t.exports=function(t,e,n,o){var a=r(t.as._ua);if(a&&a[0]>=3&&a[1]>20&&((e=e||{}).additionalUA="autocomplete.js "+s),!n.source)return i.error("Missing 'source' key");var u=i.isFunction(n.source)?n.source:function(t){return t[n.source]};if(!n.index)return i.error("Missing 'index' key");var c=n.index;return o=o||{},function(a,l){t.search(a,e,(function(t,a){if(t)i.error(t.message);else{if(a.hits.length>0){var h=a.hits[0],p=i.mixin({hitsPerPage:0},n);delete p.source,delete p.index;var f=r(c.as._ua);return f&&f[0]>=3&&f[1]>20&&(e.additionalUA="autocomplete.js "+s),void c.search(u(h),p,(function(t,e){if(t)i.error(t.message);else{var n=[];if(o.includeAll){var s=o.allTitle||"All departments";n.push(i.mixin({facet:{value:s,count:e.nbHits}},i.cloneDeep(h)))}i.each(e.facets,(function(t,e){i.each(t,(function(t,s){n.push(i.mixin({facet:{facet:e,value:s,count:t}},i.cloneDeep(h)))}))}));for(var r=1;r<a.hits.length;++r)n.push(a.hits[r]);l(n,a)}}))}l([])}}))}}},295:(t,e,n)=>{"use strict";var i=n(6990);n(4910).element=i;var s=n(2856);s.isArray=i.isArray,s.isFunction=i.isFunction,s.isObject=i.isPlainObject,s.bind=i.proxy,s.each=function(t,e){i.each(t,(function(t,n){return e(n,t)}))},s.map=i.map,s.mixin=i.extend,s.Event=i.Event;var r="aaAutocomplete",o=n(6549),a=n(50);function u(t,e,n,u){n=s.isArray(n)?n:[].slice.call(arguments,2);var c=i(t).each((function(t,s){var c=i(s),l=new a({el:c}),h=u||new o({input:c,eventBus:l,dropdownMenuContainer:e.dropdownMenuContainer,hint:void 0===e.hint||!!e.hint,minLength:e.minLength,autoselect:e.autoselect,autoselectOnBlur:e.autoselectOnBlur,tabAutocomplete:e.tabAutocomplete,openOnFocus:e.openOnFocus,templates:e.templates,debug:e.debug,clearOnSelected:e.clearOnSelected,cssClasses:e.cssClasses,datasets:n,keyboardShortcuts:e.keyboardShortcuts,appendTo:e.appendTo,autoWidth:e.autoWidth,ariaLabel:e.ariaLabel||s.getAttribute("aria-label")});c.data(r,h)}));return c.autocomplete={},s.each(["open","close","getVal","setVal","destroy","getWrapper"],(function(t){c.autocomplete[t]=function(){var e,n=arguments;return c.each((function(s,o){var a=i(o).data(r);e=a[t].apply(a,n)})),e}})),c}u.sources=o.sources,u.escapeHighlightedString=s.escapeHighlightedString;var c="autocomplete"in window,l=window.autocomplete;u.noConflict=function(){return c?window.autocomplete=l:delete window.autocomplete,u},t.exports=u},533:t=>{t.exports="0.38.1"},6990:t=>{var e;e=window,t.exports=function(t){var e,n,i=function(){var e,n,i,s,r,o,a=[],u=a.concat,c=a.filter,l=a.slice,h=t.document,p={},f={},d={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},g=/^\s*<(\w+|!)[^>]*>/,m=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,y=/^(?:body|html)$/i,w=/([A-Z])/g,b=["val","css","html","text","data","width","height","offset"],C=["after","prepend","before","append"],x=h.createElement("table"),_=h.createElement("tr"),S={tr:h.createElement("tbody"),tbody:x,thead:x,tfoot:x,td:_,th:_,"*":h.createElement("div")},E=/complete|loaded|interactive/,A=/^[\w-]*$/,$={},T=$.toString,O={},D=h.createElement("div"),N={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},k=Array.isArray||function(t){return t instanceof Array};function I(t){return null==t?String(t):$[T.call(t)]||"object"}function P(t){return"function"==I(t)}function L(t){return null!=t&&t==t.window}function M(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function F(t){return"object"==I(t)}function R(t){return F(t)&&!L(t)&&Object.getPrototypeOf(t)==Object.prototype}function q(t){var e=!!t&&"length"in t&&t.length,n=i.type(t);return"function"!=n&&!L(t)&&("array"==n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function V(t){return c.call(t,(function(t){return null!=t}))}function H(t){return t.length>0?i.fn.concat.apply([],t):t}function B(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function K(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function j(t,e){return"number"!=typeof e||d[B(t)]?e:e+"px"}function z(t){var e,n;return p[t]||(e=h.createElement(t),h.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),p[t]=n),p[t]}function U(t){return"children"in t?l.call(t.children):i.map(t.childNodes,(function(t){if(1==t.nodeType)return t}))}function Q(t,e){var n,i=t?t.length:0;for(n=0;n<i;n++)this[n]=t[n];this.length=i,this.selector=e||""}function W(t,i,s){for(n in i)s&&(R(i[n])||k(i[n]))?(R(i[n])&&!R(t[n])&&(t[n]={}),k(i[n])&&!k(t[n])&&(t[n]=[]),W(t[n],i[n],s)):i[n]!==e&&(t[n]=i[n])}function Z(t,e){return null==e?i(t):i(t).filter(e)}function X(t,e,n,i){return P(e)?e.call(t,n,i):e}function G(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function J(t,n){var i=t.className||"",s=i&&i.baseVal!==e;if(n===e)return s?i.baseVal:i;s?i.baseVal=n:t.className=n}function Y(t){try{return t?"true"==t||"false"!=t&&("null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?i.parseJSON(t):t):t}catch(e){return t}}function tt(t,e){e(t);for(var n=0,i=t.childNodes.length;n<i;n++)tt(t.childNodes[n],e)}return O.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var i,s=t.parentNode,r=!s;return r&&(s=D).appendChild(t),i=~O.qsa(s,e).indexOf(t),r&&D.removeChild(t),i},r=function(t){return t.replace(/-+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))},o=function(t){return c.call(t,(function(e,n){return t.indexOf(e)==n}))},O.fragment=function(t,n,s){var r,o,a;return m.test(t)&&(r=i(h.createElement(RegExp.$1))),r||(t.replace&&(t=t.replace(v,"<$1></$2>")),n===e&&(n=g.test(t)&&RegExp.$1),n in S||(n="*"),(a=S[n]).innerHTML=""+t,r=i.each(l.call(a.childNodes),(function(){a.removeChild(this)}))),R(s)&&(o=i(r),i.each(s,(function(t,e){b.indexOf(t)>-1?o[t](e):o.attr(t,e)}))),r},O.Z=function(t,e){return new Q(t,e)},O.isZ=function(t){return t instanceof O.Z},O.init=function(t,n){var s;if(!t)return O.Z();if("string"==typeof t)if("<"==(t=t.trim())[0]&&g.test(t))s=O.fragment(t,RegExp.$1,n),t=null;else{if(n!==e)return i(n).find(t);s=O.qsa(h,t)}else{if(P(t))return i(h).ready(t);if(O.isZ(t))return t;if(k(t))s=V(t);else if(F(t))s=[t],t=null;else if(g.test(t))s=O.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==e)return i(n).find(t);s=O.qsa(h,t)}}return O.Z(s,t)},(i=function(t,e){return O.init(t,e)}).extend=function(t){var e,n=l.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach((function(n){W(t,n,e)})),t},O.qsa=function(t,e){var n,i="#"==e[0],s=!i&&"."==e[0],r=i||s?e.slice(1):e,o=A.test(r);return t.getElementById&&o&&i?(n=t.getElementById(r))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:l.call(o&&!i&&t.getElementsByClassName?s?t.getElementsByClassName(r):t.getElementsByTagName(e):t.querySelectorAll(e))},i.contains=h.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},i.type=I,i.isFunction=P,i.isWindow=L,i.isArray=k,i.isPlainObject=R,i.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},i.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},i.inArray=function(t,e,n){return a.indexOf.call(e,t,n)},i.camelCase=r,i.trim=function(t){return null==t?"":String.prototype.trim.call(t)},i.uuid=0,i.support={},i.expr={},i.noop=function(){},i.map=function(t,e){var n,i,s,r=[];if(q(t))for(i=0;i<t.length;i++)null!=(n=e(t[i],i))&&r.push(n);else for(s in t)null!=(n=e(t[s],s))&&r.push(n);return H(r)},i.each=function(t,e){var n,i;if(q(t)){for(n=0;n<t.length;n++)if(!1===e.call(t[n],n,t[n]))return t}else for(i in t)if(!1===e.call(t[i],i,t[i]))return t;return t},i.grep=function(t,e){return c.call(t,e)},t.JSON&&(i.parseJSON=JSON.parse),i.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),(function(t,e){$["[object "+e+"]"]=e.toLowerCase()})),i.fn={constructor:O.Z,length:0,forEach:a.forEach,reduce:a.reduce,push:a.push,sort:a.sort,splice:a.splice,indexOf:a.indexOf,concat:function(){var t,e,n=[];for(t=0;t<arguments.length;t++)e=arguments[t],n[t]=O.isZ(e)?e.toArray():e;return u.apply(O.isZ(this)?this.toArray():this,n)},map:function(t){return i(i.map(this,(function(e,n){return t.call(e,n,e)})))},slice:function(){return i(l.apply(this,arguments))},ready:function(t){return E.test(h.readyState)&&h.body?t(i):h.addEventListener("DOMContentLoaded",(function(){t(i)}),!1),this},get:function(t){return t===e?l.call(this):this[t>=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each((function(){null!=this.parentNode&&this.parentNode.removeChild(this)}))},each:function(t){return a.every.call(this,(function(e,n){return!1!==t.call(e,n,e)})),this},filter:function(t){return P(t)?this.not(this.not(t)):i(c.call(this,(function(e){return O.matches(e,t)})))},add:function(t,e){return i(o(this.concat(i(t,e))))},is:function(t){return this.length>0&&O.matches(this[0],t)},not:function(t){var n=[];if(P(t)&&t.call!==e)this.each((function(e){t.call(this,e)||n.push(this)}));else{var s="string"==typeof t?this.filter(t):q(t)&&P(t.item)?l.call(t):i(t);this.forEach((function(t){s.indexOf(t)<0&&n.push(t)}))}return i(n)},has:function(t){return this.filter((function(){return F(t)?i.contains(this,t):i(this).find(t).size()}))},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!F(t)?t:i(t)},last:function(){var t=this[this.length-1];return t&&!F(t)?t:i(t)},find:function(t){var e=this;return t?"object"==typeof t?i(t).filter((function(){var t=this;return a.some.call(e,(function(e){return i.contains(e,t)}))})):1==this.length?i(O.qsa(this[0],t)):this.map((function(){return O.qsa(this,t)})):i()},closest:function(t,e){var n=[],s="object"==typeof t&&i(t);return this.each((function(i,r){for(;r&&!(s?s.indexOf(r)>=0:O.matches(r,t));)r=r!==e&&!M(r)&&r.parentNode;r&&n.indexOf(r)<0&&n.push(r)})),i(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=i.map(n,(function(t){if((t=t.parentNode)&&!M(t)&&e.indexOf(t)<0)return e.push(t),t}));return Z(e,t)},parent:function(t){return Z(o(this.pluck("parentNode")),t)},children:function(t){return Z(this.map((function(){return U(this)})),t)},contents:function(){return this.map((function(){return this.contentDocument||l.call(this.childNodes)}))},siblings:function(t){return Z(this.map((function(t,e){return c.call(U(e.parentNode),(function(t){return t!==e}))})),t)},empty:function(){return this.each((function(){this.innerHTML=""}))},pluck:function(t){return i.map(this,(function(e){return e[t]}))},show:function(){return this.each((function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=z(this.nodeName))}))},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=P(t);if(this[0]&&!e)var n=i(t).get(0),s=n.parentNode||this.length>1;return this.each((function(r){i(this).wrapAll(e?t.call(this,r):s?n.cloneNode(!0):n)}))},wrapAll:function(t){if(this[0]){var e;for(i(this[0]).before(t=i(t));(e=t.children()).length;)t=e.first();i(t).append(this)}return this},wrapInner:function(t){var e=P(t);return this.each((function(n){var s=i(this),r=s.contents(),o=e?t.call(this,n):t;r.length?r.wrapAll(o):s.append(o)}))},unwrap:function(){return this.parent().each((function(){i(this).replaceWith(i(this).children())})),this},clone:function(){return this.map((function(){return this.cloneNode(!0)}))},hide:function(){return this.css("display","none")},toggle:function(t){return this.each((function(){var n=i(this);(t===e?"none"==n.css("display"):t)?n.show():n.hide()}))},prev:function(t){return i(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return i(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each((function(e){var n=this.innerHTML;i(this).empty().append(X(this,t,e,n))})):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each((function(e){var n=X(this,t,e,this.textContent);this.textContent=null==n?"":""+n})):0 in this?this.pluck("textContent").join(""):null},attr:function(t,i){var s;return"string"!=typeof t||1 in arguments?this.each((function(e){if(1===this.nodeType)if(F(t))for(n in t)G(this,n,t[n]);else G(this,t,X(this,i,e,this.getAttribute(t)))})):0 in this&&1==this[0].nodeType&&null!=(s=this[0].getAttribute(t))?s:e},removeAttr:function(t){return this.each((function(){1===this.nodeType&&t.split(" ").forEach((function(t){G(this,t)}),this)}))},prop:function(t,e){return t=N[t]||t,1 in arguments?this.each((function(n){this[t]=X(this,e,n,this[t])})):this[0]&&this[0][t]},removeProp:function(t){return t=N[t]||t,this.each((function(){delete this[t]}))},data:function(t,n){var i="data-"+t.replace(w,"-$1").toLowerCase(),s=1 in arguments?this.attr(i,n):this.attr(i);return null!==s?Y(s):e},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each((function(e){this.value=X(this,t,e,this.value)}))):this[0]&&(this[0].multiple?i(this[0]).find("option").filter((function(){return this.selected})).pluck("value"):this[0].value)},offset:function(e){if(e)return this.each((function(t){var n=i(this),s=X(this,e,t,n.offset()),r=n.offsetParent().offset(),o={top:s.top-r.top,left:s.left-r.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)}));if(!this.length)return null;if(h.documentElement!==this[0]&&!i.contains(h.documentElement,this[0]))return{top:0,left:0};var n=this[0].getBoundingClientRect();return{left:n.left+t.pageXOffset,top:n.top+t.pageYOffset,width:Math.round(n.width),height:Math.round(n.height)}},css:function(t,e){if(arguments.length<2){var s=this[0];if("string"==typeof t){if(!s)return;return s.style[r(t)]||getComputedStyle(s,"").getPropertyValue(t)}if(k(t)){if(!s)return;var o={},a=getComputedStyle(s,"");return i.each(t,(function(t,e){o[e]=s.style[r(e)]||a.getPropertyValue(e)})),o}}var u="";if("string"==I(t))e||0===e?u=B(t)+":"+j(t,e):this.each((function(){this.style.removeProperty(B(t))}));else for(n in t)t[n]||0===t[n]?u+=B(n)+":"+j(n,t[n])+";":this.each((function(){this.style.removeProperty(B(n))}));return this.each((function(){this.style.cssText+=";"+u}))},index:function(t){return t?this.indexOf(i(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&a.some.call(this,(function(t){return this.test(J(t))}),K(t))},addClass:function(t){return t?this.each((function(e){if("className"in this){s=[];var n=J(this);X(this,t,e,n).split(/\s+/g).forEach((function(t){i(this).hasClass(t)||s.push(t)}),this),s.length&&J(this,n+(n?" ":"")+s.join(" "))}})):this},removeClass:function(t){return this.each((function(n){if("className"in this){if(t===e)return J(this,"");s=J(this),X(this,t,n,s).split(/\s+/g).forEach((function(t){s=s.replace(K(t)," ")})),J(this,s.trim())}}))},toggleClass:function(t,n){return t?this.each((function(s){var r=i(this);X(this,t,s,J(this)).split(/\s+/g).forEach((function(t){(n===e?!r.hasClass(t):n)?r.addClass(t):r.removeClass(t)}))})):this},scrollTop:function(t){if(this.length){var n="scrollTop"in this[0];return t===e?n?this[0].scrollTop:this[0].pageYOffset:this.each(n?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var n="scrollLeft"in this[0];return t===e?n?this[0].scrollLeft:this[0].pageXOffset:this.each(n?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),s=y.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(i(t).css("margin-top"))||0,n.left-=parseFloat(i(t).css("margin-left"))||0,s.top+=parseFloat(i(e[0]).css("border-top-width"))||0,s.left+=parseFloat(i(e[0]).css("border-left-width"))||0,{top:n.top-s.top,left:n.left-s.left}}},offsetParent:function(){return this.map((function(){for(var t=this.offsetParent||h.body;t&&!y.test(t.nodeName)&&"static"==i(t).css("position");)t=t.offsetParent;return t}))}},i.fn.detach=i.fn.remove,["width","height"].forEach((function(t){var n=t.replace(/./,(function(t){return t[0].toUpperCase()}));i.fn[t]=function(s){var r,o=this[0];return s===e?L(o)?o["inner"+n]:M(o)?o.documentElement["scroll"+n]:(r=this.offset())&&r[t]:this.each((function(e){(o=i(this)).css(t,X(this,s,e,o[t]()))}))}})),C.forEach((function(n,s){var r=s%2;i.fn[n]=function(){var n,o,a=i.map(arguments,(function(t){var s=[];return"array"==(n=I(t))?(t.forEach((function(t){return t.nodeType!==e?s.push(t):i.zepto.isZ(t)?s=s.concat(t.get()):void(s=s.concat(O.fragment(t)))})),s):"object"==n||null==t?t:O.fragment(t)})),u=this.length>1;return a.length<1?this:this.each((function(e,n){o=r?n:n.parentNode,n=0==s?n.nextSibling:1==s?n.firstChild:2==s?n:null;var c=i.contains(h.documentElement,o);a.forEach((function(e){if(u)e=e.cloneNode(!0);else if(!o)return i(e).remove();o.insertBefore(e,n),c&&tt(e,(function(e){if(!(null==e.nodeName||"SCRIPT"!==e.nodeName.toUpperCase()||e.type&&"text/javascript"!==e.type||e.src)){var n=e.ownerDocument?e.ownerDocument.defaultView:t;n.eval.call(n,e.innerHTML)}}))}))}))},i.fn[r?n+"To":"insert"+(s?"Before":"After")]=function(t){return i(t)[n](this),this}})),O.Z.prototype=Q.prototype=i.fn,O.uniq=o,O.deserializeValue=Y,i.zepto=O,i}();return function(e){var n,i=1,s=Array.prototype.slice,r=e.isFunction,o=function(t){return"string"==typeof t},a={},u={},c="onfocusin"in t,l={focus:"focusin",blur:"focusout"},h={mouseenter:"mouseover",mouseleave:"mouseout"};function p(t){return t._zid||(t._zid=i++)}function f(t,e,n,i){if((e=d(e)).ns)var s=g(e.ns);return(a[p(t)]||[]).filter((function(t){return t&&(!e.e||t.e==e.e)&&(!e.ns||s.test(t.ns))&&(!n||p(t.fn)===p(n))&&(!i||t.sel==i)}))}function d(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function g(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function m(t,e){return t.del&&!c&&t.e in l||!!e}function v(t){return h[t]||c&&l[t]||t}function y(t,i,s,r,o,u,c){var l=p(t),f=a[l]||(a[l]=[]);i.split(/\s/).forEach((function(i){if("ready"==i)return e(document).ready(s);var a=d(i);a.fn=s,a.sel=o,a.e in h&&(s=function(t){var n=t.relatedTarget;if(!n||n!==this&&!e.contains(this,n))return a.fn.apply(this,arguments)}),a.del=u;var l=u||s;a.proxy=function(e){if(!(e=S(e)).isImmediatePropagationStopped()){try{var i=Object.getOwnPropertyDescriptor(e,"data");i&&!i.writable||(e.data=r)}catch(e){}var s=l.apply(t,e._args==n?[e]:[e].concat(e._args));return!1===s&&(e.preventDefault(),e.stopPropagation()),s}},a.i=f.length,f.push(a),"addEventListener"in t&&t.addEventListener(v(a.e),a.proxy,m(a,c))}))}function w(t,e,n,i,s){var r=p(t);(e||"").split(/\s/).forEach((function(e){f(t,e,n,i).forEach((function(e){delete a[r][e.i],"removeEventListener"in t&&t.removeEventListener(v(e.e),e.proxy,m(e,s))}))}))}u.click=u.mousedown=u.mouseup=u.mousemove="MouseEvents",e.event={add:y,remove:w},e.proxy=function(t,n){var i=2 in arguments&&s.call(arguments,2);if(r(t)){var a=function(){return t.apply(n,i?i.concat(s.call(arguments)):arguments)};return a._zid=p(t),a}if(o(n))return i?(i.unshift(t[n],t),e.proxy.apply(null,i)):e.proxy(t[n],t);throw new TypeError("expected function")},e.fn.bind=function(t,e,n){return this.on(t,e,n)},e.fn.unbind=function(t,e){return this.off(t,e)},e.fn.one=function(t,e,n,i){return this.on(t,e,n,i,1)};var b=function(){return!0},C=function(){return!1},x=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,_={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};function S(t,i){if(i||!t.isDefaultPrevented){i||(i=t),e.each(_,(function(e,n){var s=i[e];t[e]=function(){return this[n]=b,s&&s.apply(i,arguments)},t[n]=C}));try{t.timeStamp||(t.timeStamp=Date.now())}catch(s){}(i.defaultPrevented!==n?i.defaultPrevented:"returnValue"in i?!1===i.returnValue:i.getPreventDefault&&i.getPreventDefault())&&(t.isDefaultPrevented=b)}return t}function E(t){var e,i={originalEvent:t};for(e in t)x.test(e)||t[e]===n||(i[e]=t[e]);return S(i,t)}e.fn.delegate=function(t,e,n){return this.on(e,t,n)},e.fn.undelegate=function(t,e,n){return this.off(e,t,n)},e.fn.live=function(t,n){return e(document.body).delegate(this.selector,t,n),this},e.fn.die=function(t,n){return e(document.body).undelegate(this.selector,t,n),this},e.fn.on=function(t,i,a,u,c){var l,h,p=this;return t&&!o(t)?(e.each(t,(function(t,e){p.on(t,i,a,e,c)})),p):(o(i)||r(u)||!1===u||(u=a,a=i,i=n),u!==n&&!1!==a||(u=a,a=n),!1===u&&(u=C),p.each((function(n,r){c&&(l=function(t){return w(r,t.type,u),u.apply(this,arguments)}),i&&(h=function(t){var n,o=e(t.target).closest(i,r).get(0);if(o&&o!==r)return n=e.extend(E(t),{currentTarget:o,liveFired:r}),(l||u).apply(o,[n].concat(s.call(arguments,1)))}),y(r,t,u,a,i,h||l)})))},e.fn.off=function(t,i,s){var a=this;return t&&!o(t)?(e.each(t,(function(t,e){a.off(t,i,e)})),a):(o(i)||r(s)||!1===s||(s=i,i=n),!1===s&&(s=C),a.each((function(){w(this,t,s,i)})))},e.fn.trigger=function(t,n){return(t=o(t)||e.isPlainObject(t)?e.Event(t):S(t))._args=n,this.each((function(){t.type in l&&"function"==typeof this[t.type]?this[t.type]():"dispatchEvent"in this?this.dispatchEvent(t):e(this).triggerHandler(t,n)}))},e.fn.triggerHandler=function(t,n){var i,s;return this.each((function(r,a){(i=E(o(t)?e.Event(t):t))._args=n,i.target=a,e.each(f(a,t.type||t),(function(t,e){if(s=e.proxy(i),i.isImmediatePropagationStopped())return!1}))})),s},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach((function(t){e.fn[t]=function(e){return 0 in arguments?this.bind(t,e):this.trigger(t)}})),e.Event=function(t,e){o(t)||(t=(e=t).type);var n=document.createEvent(u[t]||"Events"),i=!0;if(e)for(var s in e)"bubbles"==s?i=!!e[s]:n[s]=e[s];return n.initEvent(t,i,!0),S(n)}}(i),n=[],i.fn.remove=function(){return this.each((function(){this.parentNode&&("IMG"===this.tagName&&(n.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",e&&clearTimeout(e),e=setTimeout((function(){n=[]}),6e4)),this.parentNode.removeChild(this))}))},function(t){var e={},n=t.fn.data,i=t.camelCase,s=t.expando="Zepto"+ +new Date,r=[];function o(r,o){var u=r[s],c=u&&e[u];if(void 0===o)return c||a(r);if(c){if(o in c)return c[o];var l=i(o);if(l in c)return c[l]}return n.call(t(r),o)}function a(n,r,o){var a=n[s]||(n[s]=++t.uuid),c=e[a]||(e[a]=u(n));return void 0!==r&&(c[i(r)]=o),c}function u(e){var n={};return t.each(e.attributes||r,(function(e,s){0==s.name.indexOf("data-")&&(n[i(s.name.replace("data-",""))]=t.zepto.deserializeValue(s.value))})),n}t.fn.data=function(e,n){return void 0===n?t.isPlainObject(e)?this.each((function(n,i){t.each(e,(function(t,e){a(i,t,e)}))})):0 in this?o(this[0],e):void 0:this.each((function(){a(this,e,n)}))},t.data=function(e,n,i){return t(e).data(n,i)},t.hasData=function(n){var i=n[s],r=i&&e[i];return!!r&&!t.isEmptyObject(r)},t.fn.removeData=function(n){return"string"==typeof n&&(n=n.split(/\s+/)),this.each((function(){var r=this[s],o=r&&e[r];o&&t.each(n||o,(function(t){delete o[n?i(this):t]}))}))},["remove","empty"].forEach((function(e){var n=t.fn[e];t.fn[e]=function(){var t=this.find("*");return"remove"===e&&(t=t.add(this)),t.removeData(),n.call(this)}}))}(i),i}(e)},8820:t=>{"use strict";var e={}.hasOwnProperty,n=/[ -,\.\/:-@\[-\^`\{-~]/,i=/[ -,\.\/:-@\[\]\^`\{-~]/,s=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g,r=function t(r,o){"single"!=(o=function(t,n){if(!t)return n;var i={};for(var s in n)i[s]=e.call(t,s)?t[s]:n[s];return i}(o,t.options)).quotes&&"double"!=o.quotes&&(o.quotes="single");for(var a="double"==o.quotes?'"':"'",u=o.isIdentifier,c=r.charAt(0),l="",h=0,p=r.length;h<p;){var f=r.charAt(h++),d=f.charCodeAt(),g=void 0;if(d<32||d>126){if(d>=55296&&d<=56319&&h<p){var m=r.charCodeAt(h++);56320==(64512&m)?d=((1023&d)<<10)+(1023&m)+65536:h--}g="\\"+d.toString(16).toUpperCase()+" "}else g=o.escapeEverything?n.test(f)?"\\"+f:"\\"+d.toString(16).toUpperCase()+" ":/[\t\n\f\r\x0B]/.test(f)?"\\"+d.toString(16).toUpperCase()+" ":"\\"==f||!u&&('"'==f&&a==f||"'"==f&&a==f)||u&&i.test(f)?"\\"+f:f;l+=g}return u&&(/^-[-\d]/.test(l)?l="\\-"+l.slice(1):/\d/.test(c)&&(l="\\3"+c+" "+l.slice(1))),l=l.replace(s,(function(t,e,n){return e&&e.length%2?t:(e||"")+n})),!u&&o.wrap?a+l+a:l};r.options={escapeEverything:!1,isIdentifier:!1,quotes:"single",wrap:!1},r.version="3.0.0",t.exports=r},624:(t,e,n)=>{"use strict";var i,s,r,o=[n(5525),n(4785),n(8291),n(2709),n(2506),n(9176)],a=-1,u=[],c=!1;function l(){i&&s&&(i=!1,s.length?u=s.concat(u):a=-1,u.length&&h())}function h(){if(!i){c=!1,i=!0;for(var t=u.length,e=setTimeout(l);t;){for(s=u,u=[];s&&++a<t;)s[a].run();a=-1,t=u.length}s=null,a=-1,i=!1,clearTimeout(e)}}for(var p=-1,f=o.length;++p<f;)if(o[p]&&o[p].test&&o[p].test()){r=o[p].install(h);break}function d(t,e){this.fun=t,this.array=e}d.prototype.run=function(){var t=this.fun,e=this.array;switch(e.length){case 0:return t();case 1:return t(e[0]);case 2:return t(e[0],e[1]);case 3:return t(e[0],e[1],e[2]);default:return t.apply(null,e)}},t.exports=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];u.push(new d(t,e)),c||i||(c=!0,r())}},2709:(t,e,n)=>{"use strict";e.test=function(){return!n.g.setImmediate&&void 0!==n.g.MessageChannel},e.install=function(t){var e=new n.g.MessageChannel;return e.port1.onmessage=t,function(){e.port2.postMessage(0)}}},8291:(t,e,n)=>{"use strict";var i=n.g.MutationObserver||n.g.WebKitMutationObserver;e.test=function(){return i},e.install=function(t){var e=0,s=new i(t),r=n.g.document.createTextNode("");return s.observe(r,{characterData:!0}),function(){r.data=e=++e%2}}},4785:(t,e,n)=>{"use strict";e.test=function(){return"function"==typeof n.g.queueMicrotask},e.install=function(t){return function(){n.g.queueMicrotask(t)}}},2506:(t,e,n)=>{"use strict";e.test=function(){return"document"in n.g&&"onreadystatechange"in n.g.document.createElement("script")},e.install=function(t){return function(){var e=n.g.document.createElement("script");return e.onreadystatechange=function(){t(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},n.g.document.documentElement.appendChild(e),t}}},9176:(t,e)=>{"use strict";e.test=function(){return!0},e.install=function(t){return function(){setTimeout(t,0)}}}}]); \ No newline at end of file diff --git a/assets/js/443.3d74dd3a.js.LICENSE.txt b/assets/js/443.3d74dd3a.js.LICENSE.txt new file mode 100644 index 00000000..4f7ccd8a --- /dev/null +++ b/assets/js/443.3d74dd3a.js.LICENSE.txt @@ -0,0 +1 @@ +/*! https://mths.be/cssesc v3.0.0 by @mathias */ diff --git a/assets/js/456dc1ab.0ca46ae8.js b/assets/js/456dc1ab.0ca46ae8.js new file mode 100644 index 00000000..0206b9f7 --- /dev/null +++ b/assets/js/456dc1ab.0ca46ae8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[533],{2098:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var a=n(5893),i=n(1151);const r={sidebar_position:2},l="Installation & Getting Started",s={id:"getting_started",title:"Installation & Getting Started",description:"Install",source:"@site/docs/getting_started.mdx",sourceDirName:".",slug:"/getting_started",permalink:"/cardano-multiplatform-lib/getting_started",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Introduction",permalink:"/cardano-multiplatform-lib/"},next:{title:"Crate Architecture",permalink:"/cardano-multiplatform-lib/crate_architecture"}},o={},d=[{value:"Install",id:"install",level:2},{value:"Run Example",id:"run-example",level:2},{value:"Build",id:"build",level:2},{value:"Test",id:"test",level:2}];function c(e){const t={code:"code",h1:"h1",h2:"h2",pre:"pre",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h1,{id:"installation--getting-started",children:"Installation & Getting Started"}),"\n",(0,a.jsx)(t.h2,{id:"install",children:"Install"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"todo\n"})}),"\n",(0,a.jsx)(t.h2,{id:"run-example",children:"Run Example"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"todo\n"})}),"\n",(0,a.jsx)(t.h2,{id:"build",children:"Build"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"todo\n"})}),"\n",(0,a.jsx)(t.h2,{id:"test",children:"Test"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-bash",children:"nvm i && npm i && npm run rust:test\n"})})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>s,a:()=>l});var a=n(7294);const i={},r=a.createContext(i);function l(e){const t=a.useContext(r);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function s(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),a.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/525.2fbd60c6.js b/assets/js/525.2fbd60c6.js new file mode 100644 index 00000000..8c46bcc7 --- /dev/null +++ b/assets/js/525.2fbd60c6.js @@ -0,0 +1 @@ +(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[525],{5525:()=>{}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.7fbf04ea.js b/assets/js/5e95c892.7fbf04ea.js new file mode 100644 index 00000000..a2911a0d --- /dev/null +++ b/assets/js/5e95c892.7fbf04ea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[661],{1892:(e,c,d)=>{d.r(c),d.d(c,{default:()=>o});d(7294);var n=d(512),s=d(1944),r=d(5281),t=d(8790),u=d(8862),a=d(5893);function o(e){return(0,a.jsx)(s.FG,{className:(0,n.Z)(r.k.wrapper.docsPages),children:(0,a.jsx)(u.Z,{children:(0,t.H)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/61955a96.49be3fcb.js b/assets/js/61955a96.49be3fcb.js new file mode 100644 index 00000000..c0dcc052 --- /dev/null +++ b/assets/js/61955a96.49be3fcb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[595],{5338:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var o=n(5893),a=n(1151);const s={sidebar_position:6},r="WASM Usage",i={id:"modules/wasm",title:"WASM Usage",description:"Memory Management",source:"@site/docs/modules/wasm.mdx",sourceDirName:"modules",slug:"/modules/wasm",permalink:"/cardano-multiplatform-lib/modules/wasm",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Metadata",permalink:"/cardano-multiplatform-lib/modules/metadata"}},l={},d=[{value:"Memory Management",id:"memory-management",level:2}];function c(e){const t={code:"code",h1:"h1",h2:"h2",p:"p",...(0,a.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"wasm-usage",children:"WASM Usage"}),"\n",(0,o.jsx)(t.h2,{id:"memory-management",children:"Memory Management"}),"\n",(0,o.jsxs)(t.p,{children:["If you are using CML from the browser this section is likely irrelevant for you.\nUsing CML from a javascript environment with weakrefs enabled should have automatic memory cleanup.\nIf this is not the case (e.g. non-javascript/typescript WASM environment), or you are using CML inside of a very tight loop that is executed hundreds of thousands of times in a short period it might be advisable to explicitly call ",(0,o.jsx)(t.code,{children:".free()"})," on any CML types after they are used.\nThis is because while from an environment with weakrefs the types will eventually be freed automatically,\nit is still possible to use excessive memory or run out if, for example, large CML types are created in a constant loop that runs many times (e.g. hundreds of thousands of times without a break), as the automatic cleanup will not be run in time. Do not worry about this for normal CML usage.\nDo not call ",(0,o.jsx)(t.code,{children:".free()"})," on a type or use it after ",(0,o.jsx)(t.code,{children:".free()"})," has been called on it already.\nWASM types passed into other CML APIs will be done so by reference and will not have their ",(0,o.jsx)(t.code,{children:".free()"})," method called just by doing so, but will still eventually be cleaned up if weakrefs are available."]})]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>r});var o=n(7294);const a={},s=o.createContext(a);function r(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6c2c22d1.fe3782c7.js b/assets/js/6c2c22d1.fe3782c7.js new file mode 100644 index 00000000..d64ae279 --- /dev/null +++ b/assets/js/6c2c22d1.fe3782c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[580],{2952:(a,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var t=n(5893),o=n(1151);const i={sidebar_position:1},r="CBOR",s={id:"modules/cbor",title:"CBOR",description:"Cardano on-chain types are stored using CBOR, a data format similar to JSON but with many more features and in binary.",source:"@site/docs/modules/cbor.mdx",sourceDirName:"modules",slug:"/modules/cbor",permalink:"/cardano-multiplatform-lib/modules/cbor",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Modules",permalink:"/cardano-multiplatform-lib/category/modules"},next:{title:"Core",permalink:"/cardano-multiplatform-lib/category/core"}},c={},l=[{value:"Tool Interoperability",id:"tool-interoperability",level:2},{value:"Rust",id:"rust",level:2},{value:"WASM",id:"wasm",level:2}];function d(a){const e={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...a.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(e.h1,{id:"cbor",children:"CBOR"}),"\n",(0,t.jsxs)(e.p,{children:["Cardano on-chain types are stored using ",(0,t.jsx)(e.a,{href:"https://www.rfc-editor.org/rfc/rfc7049",children:"CBOR"}),", a data format similar to JSON but with many more features and in binary."]}),"\n",(0,t.jsx)(e.h2,{id:"tool-interoperability",children:"Tool Interoperability"}),"\n",(0,t.jsx)(e.p,{children:"Due to CBOR's flexibility it is possible that one piece of CBOR can be represented in multiple ways in the binary encoding. This causes problems when using CBOR taken on-chain or from another tool and using it with another tool. Notably, one small difference in the binary encoding of CBOR could result in hashes being totally different. e.g. metadatum hashes or transaction hashes calculated in a dApp might be different than in the wallet causing the entire transaction to be rejected by the network."}),"\n",(0,t.jsx)(e.p,{children:"CML solves this by supporting automatically every single possible CBOR encoding variation. On-chain types created by deserializing from CBOR bytes will remember these details and re-serializing will use them and result in the same CBOR bytes, unlike some other tools."}),"\n",(0,t.jsx)(e.h2,{id:"rust",children:"Rust"}),"\n",(0,t.jsxs)(e.p,{children:["On-chan types in rust can (de)serialize to/from CBOR Via the ",(0,t.jsx)(e.code,{children:"Serialize"}),"/",(0,t.jsx)(e.code,{children:"Deserialize"})," and ",(0,t.jsx)(e.code,{children:"ToBytes"}),"/",(0,t.jsx)(e.code,{children:"FromBytes"})," traits located within the ",(0,t.jsx)(e.code,{children:"cml_core::serialize"})," module."]}),"\n",(0,t.jsxs)(e.p,{children:["Most on-chain types implement the ",(0,t.jsx)(e.code,{children:"Serialize"})," and ",(0,t.jsx)(e.code,{children:"Deserialize"})," traits. These traits guarantee that all CBOR encoding details are preserved upon deserialization and upon serialization it is possible to choose between canonical CBOR encoding and arbitrary encodings (the original it was decoded from)."]}),"\n",(0,t.jsxs)(e.p,{children:["Byron-era types do not implement ",(0,t.jsx)(e.code,{children:"Serialize"}),"/",(0,t.jsx)(e.code,{children:"Deserialize"})," and instead implement ",(0,t.jsx)(e.code,{children:"ToBytes"}),"/",(0,t.jsx)(e.code,{children:"FromBytes"}),". Byron on-chain types are always in canonical CBOR so this was not necessary."]}),"\n",(0,t.jsxs)(e.p,{children:["The types in the ",(0,t.jsx)(e.code,{children:"cip25"})," module also do not support ",(0,t.jsx)(e.code,{children:"Serialize"}),"/",(0,t.jsx)(e.code,{children:"Deserialize"})," in favor of ",(0,t.jsx)(e.code,{children:"ToBytes"}),"/",(0,t.jsx)(e.code,{children:"FromBytes"}),". The underlying metadata on-chain does and you should use the types in",(0,t.jsx)(e.code,{children:"cml_core::metadata"})]}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-rust",children:'use cml_core::serialization::{Serialize, Deserialize};\nlet canonical_cbor_hex = "825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01";\n// these all represent the following CBOR:\n// [ ; array of 2 elements (transaction input struct)\n// 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ; bytes (tx hash)\n// 1 ; unsigned integer (tx index)\n// ]\nlet non_canonical_cbor = [\n canonical_cbor_hex,\n "825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001",\n "9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff",\n "9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001",\n "9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001",\n];\nfor orig_cbor_hex in non_canonical_cbor {\n let tx_in = TransactionInput::from_cbor_bytes(&hex::decode(orig_cbor_hex).unwrap()).unwrap();\n // serialize back to cbor bytes using the same cbor encoding details so it will match\n // the format where it came from\n assert_eq!(hex::encode(tx_in.to_cbor_bytes()), orig_cbor_hex);\n // no matter how it was created it will represent the same data and can be encoded to\n // canonical cbor bytes which will be the same as all of these are the same transaction input\n assert_eq!(hex::encode(tx_in.to_canonical_cbor_bytes()), canonical_cbor_hex);\n}\n'})}),"\n",(0,t.jsx)(e.h2,{id:"wasm",children:"WASM"}),"\n",(0,t.jsx)(e.p,{children:"All on-chain types have the traits directly exposed on each struct as the methods:"}),"\n",(0,t.jsxs)(e.ul,{children:["\n",(0,t.jsx)(e.li,{children:(0,t.jsx)(e.code,{children:".to_cbor_bytes()"})}),"\n",(0,t.jsx)(e.li,{children:(0,t.jsx)(e.code,{children:".to_canonical_cbor_bytes()"})}),"\n",(0,t.jsx)(e.li,{children:(0,t.jsx)(e.code,{children:".from_cbor_bytes()"})}),"\n",(0,t.jsx)(e.li,{children:(0,t.jsx)(e.code,{children:".to_cbor_hex()"})}),"\n",(0,t.jsx)(e.li,{children:(0,t.jsx)(e.code,{children:".to_canonical_cbor_hex()"})}),"\n",(0,t.jsx)(e.li,{children:(0,t.jsx)(e.code,{children:".from_cbor_hex()"})}),"\n"]}),"\n",(0,t.jsx)(e.p,{children:"The hex ones are useful for working with CIP-30 (dApp connector)."}),"\n",(0,t.jsxs)(e.p,{children:["On post-Byron on-chain types this delegates to ",(0,t.jsx)(e.code,{children:"Serialize"}),"/",(0,t.jsx)(e.code,{children:"Deserialize"})," (see rust section) and preserve round-trip always. CIP25 and Byron types will always serialize to canonical CBOR. All on-chain data during the Byron era has to be canonical CBOR so this is not a big issue but is worth noting."]}),"\n",(0,t.jsx)(e.pre,{children:(0,t.jsx)(e.code,{className:"language-javascript",children:'let canonicalCborHex = "825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01";\n// these all represent the following CBOR:\n// [ ; array of 2 elements (transaction input struct)\n// 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ; bytes (tx hash)\n// 1 ; unsigned integer (tx index)\n// ]\nlet nonCanonicalCbor = [\n canonicalCborHex,\n "825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001",\n "9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff",\n "9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001",\n "9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001",\n];\nfor (let origCborHex of nonCanonicalCbor) {\n let txIn = CML.TransactionInput.from_cbor_hex(orig_cbor_hex);\n // serialize back to cbor bytes using the same cbor encoding details so it will match\n // the format where it came from\n console.assert(txIn.to_cbor_hex() == origCborHex);\n // no matter how it was created it will represent the same data and can be encoded to\n // canonical cbor bytes which will be the same as all of these are the same transaction input\n console.assert(txIn.to_canonical_cbor_hex() == canonicalCborHex);\n}\n'})})]})}function h(a={}){const{wrapper:e}={...(0,o.a)(),...a.components};return e?(0,t.jsx)(e,{...a,children:(0,t.jsx)(d,{...a})}):d(a)}},1151:(a,e,n)=>{n.d(e,{Z:()=>s,a:()=>r});var t=n(7294);const o={},i=t.createContext(o);function r(a){const e=t.useContext(i);return t.useMemo((function(){return"function"==typeof a?a(e):{...e,...a}}),[e,a])}function s(a){let e;return e=a.disableParentContext?"function"==typeof a.components?a.components(o):a.components||o:r(a.components),t.createElement(i.Provider,{value:e},a.children)}}}]); \ No newline at end of file diff --git a/assets/js/772.0a40c231.js b/assets/js/772.0a40c231.js new file mode 100644 index 00000000..031006f6 --- /dev/null +++ b/assets/js/772.0a40c231.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[772],{5658:(e,t,n)=>{n.d(t,{Z:()=>a});n(7294);var o=n(512),i=n(5999),d=n(2503),s=n(5893);function a(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,o.Z)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(d.Z,{as:"h1",className:"hero__title",children:(0,s.jsx)(i.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(i.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(i.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},1772:(e,t,n)=>{n.r(t),n.d(t,{default:()=>r});n(7294);var o=n(5999),i=n(1944),d=n(8862),s=n(5658),a=n(5893);function r(){const e=(0,o.I)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.d,{title:e}),(0,a.jsx)(d.Z,{children:(0,a.jsx)(s.Z,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/8019ae33.f9697cba.js b/assets/js/8019ae33.f9697cba.js new file mode 100644 index 00000000..13483dfd --- /dev/null +++ b/assets/js/8019ae33.f9697cba.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[11],{7463:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var t=s(5893),r=s(1151);const i={},c="crypto",a={id:"modules/crypto/index",title:"crypto",description:"AuxiliaryDataHash",source:"@site/docs/modules/crypto/index.mdx",sourceDirName:"modules/crypto",slug:"/modules/crypto/",permalink:"/cardano-multiplatform-lib/modules/crypto/",draft:!1,unlisted:!1,tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Generating Keys and Addresses",permalink:"/cardano-multiplatform-lib/modules/crypto/generating_keys"},next:{title:"JSON",permalink:"/cardano-multiplatform-lib/modules/json"}},o={},l=[];function d(e){const n={h1:"h1",p:"p",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"crypto",children:"crypto"}),"\n",(0,t.jsx)(n.p,{children:"AuxiliaryDataHash"}),"\n",(0,t.jsx)(n.p,{children:"Bip32PrivateKey"}),"\n",(0,t.jsx)(n.p,{children:"Bip32PublicKey"}),"\n",(0,t.jsx)(n.p,{children:"BlockBodyHash"}),"\n",(0,t.jsx)(n.p,{children:"BlockHeaderHash"}),"\n",(0,t.jsx)(n.p,{children:"BootstrapWitness"}),"\n",(0,t.jsx)(n.p,{children:"BootstrapWitnesses"}),"\n",(0,t.jsx)(n.p,{children:"DataHash"}),"\n",(0,t.jsx)(n.p,{children:"Ed25519KeyHash"}),"\n",(0,t.jsx)(n.p,{children:"Ed25519Signature"}),"\n",(0,t.jsx)(n.p,{children:"GenesisDelegateHash"}),"\n",(0,t.jsx)(n.p,{children:"GenesisHash"}),"\n",(0,t.jsx)(n.p,{children:"KESSignature"}),"\n",(0,t.jsx)(n.p,{children:"KESVKey"}),"\n",(0,t.jsx)(n.p,{children:"LegacyDaedalusPrivateKey"}),"\n",(0,t.jsx)(n.p,{children:"Nonce"}),"\n",(0,t.jsx)(n.p,{children:"PoolMetadataHash"}),"\n",(0,t.jsx)(n.p,{children:"PrivateKey"}),"\n",(0,t.jsx)(n.p,{children:"PublicKey\tED25519 key used as public key"}),"\n",(0,t.jsx)(n.p,{children:"PublicKeys"}),"\n",(0,t.jsx)(n.p,{children:"ScriptDataHash"}),"\n",(0,t.jsx)(n.p,{children:"ScriptHash"}),"\n",(0,t.jsx)(n.p,{children:"TransactionHash"}),"\n",(0,t.jsx)(n.p,{children:"VRFCert"}),"\n",(0,t.jsx)(n.p,{children:"VRFKeyHash"}),"\n",(0,t.jsx)(n.p,{children:"VRFVKey"}),"\n",(0,t.jsx)(n.p,{children:"Vkey"}),"\n",(0,t.jsx)(n.p,{children:"Vkeys"}),"\n",(0,t.jsx)(n.p,{children:"Vkeywitness"}),"\n",(0,t.jsx)(n.p,{children:"Vkeywitnesses"})]})}function p(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>c});var t=s(7294);const r={},i=t.createContext(r);function c(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/82878dee.4db35e31.js b/assets/js/82878dee.4db35e31.js new file mode 100644 index 00000000..e7195c8f --- /dev/null +++ b/assets/js/82878dee.4db35e31.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[928],{4175:e=>{e.exports=JSON.parse('{"title":"Crypto","slug":"/category/crypto","permalink":"/cardano-multiplatform-lib/category/crypto","navigation":{"previous":{"title":"Chain","permalink":"/cardano-multiplatform-lib/modules/chain/"},"next":{"title":"Generating Keys and Addresses","permalink":"/cardano-multiplatform-lib/modules/crypto/generating_keys"}}}')}}]); \ No newline at end of file diff --git a/assets/js/8cf5c8a6.40ba156d.js b/assets/js/8cf5c8a6.40ba156d.js new file mode 100644 index 00000000..86debcef --- /dev/null +++ b/assets/js/8cf5c8a6.40ba156d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[926],{7965:e=>{e.exports=JSON.parse('{"title":"Builders","slug":"/category/builders","permalink":"/cardano-multiplatform-lib/category/builders","navigation":{"previous":{"title":"CIP25","permalink":"/cardano-multiplatform-lib/modules/CIP25"},"next":{"title":"generating_transactions","permalink":"/cardano-multiplatform-lib/modules/builders/generating_transactions"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.a68d5b39.js b/assets/js/935f2afb.a68d5b39.js new file mode 100644 index 00000000..1e80646b --- /dev/null +++ b/assets/js/935f2afb.a68d5b39.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/cardano-multiplatform-lib/","docId":"index","unlisted":false},{"type":"link","label":"Installation & Getting Started","href":"/cardano-multiplatform-lib/getting_started","docId":"getting_started","unlisted":false},{"type":"link","label":"Crate Architecture","href":"/cardano-multiplatform-lib/crate_architecture","docId":"crate_architecture","unlisted":false},{"type":"category","label":"Modules","collapsible":true,"collapsed":false,"items":[{"type":"link","label":"CBOR","href":"/cardano-multiplatform-lib/modules/cbor","docId":"modules/cbor","unlisted":false},{"type":"category","label":"Core","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Core","href":"/cardano-multiplatform-lib/modules/core/","docId":"modules/core/index","unlisted":false}],"href":"/cardano-multiplatform-lib/category/core"},{"type":"category","label":"Chain","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Chain","href":"/cardano-multiplatform-lib/modules/chain/","docId":"modules/chain/index","unlisted":false}],"href":"/cardano-multiplatform-lib/category/chain"},{"type":"category","label":"Crypto","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Generating Keys and Addresses","href":"/cardano-multiplatform-lib/modules/crypto/generating_keys","docId":"modules/crypto/generating_keys","unlisted":false},{"type":"link","label":"crypto","href":"/cardano-multiplatform-lib/modules/crypto/","docId":"modules/crypto/index","unlisted":false}],"href":"/cardano-multiplatform-lib/category/crypto"},{"type":"link","label":"JSON","href":"/cardano-multiplatform-lib/modules/json","docId":"modules/json","unlisted":false},{"type":"category","label":"Multi-Era","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Multi-Era","href":"/cardano-multiplatform-lib/modules/multi-era/","docId":"modules/multi-era/index","unlisted":false}],"href":"/cardano-multiplatform-lib/category/multi-era"},{"type":"link","label":"CIP25","href":"/cardano-multiplatform-lib/modules/CIP25","docId":"modules/CIP25","unlisted":false},{"type":"category","label":"Builders","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"generating_transactions","href":"/cardano-multiplatform-lib/modules/builders/generating_transactions","docId":"modules/builders/generating_transactions","unlisted":false},{"type":"link","label":"TransactionBuilder","href":"/cardano-multiplatform-lib/modules/builders/","docId":"modules/builders/index","unlisted":false}],"href":"/cardano-multiplatform-lib/category/builders"},{"type":"link","label":"CIP36","href":"/cardano-multiplatform-lib/modules/cip36","docId":"modules/cip36","unlisted":false},{"type":"link","label":"Metadata","href":"/cardano-multiplatform-lib/modules/metadata","docId":"modules/metadata","unlisted":false},{"type":"link","label":"WASM Usage","href":"/cardano-multiplatform-lib/modules/wasm","docId":"modules/wasm","unlisted":false}],"href":"/cardano-multiplatform-lib/category/modules"}]},"docs":{"crate_architecture":{"id":"crate_architecture","title":"Crate Architecture","description":"- Core - Core types common throughout all CML crates.","sidebar":"tutorialSidebar"},"getting_started":{"id":"getting_started","title":"Installation & Getting Started","description":"Install","sidebar":"tutorialSidebar"},"index":{"id":"index","title":"Cardano Multiplatform Lib","description":"This is a library, written in Rust, that can be deployed to multiple platforms (Rust crate, JS, Typescript, WASM, etc). It handles:","sidebar":"tutorialSidebar"},"modules/builders/generating_transactions":{"id":"modules/builders/generating_transactions","title":"generating_transactions","description":"Example code","sidebar":"tutorialSidebar"},"modules/builders/index":{"id":"modules/builders/index","title":"TransactionBuilder","description":"In order to simplify transaction creation, we provide a TransactionBuilder struct that manages witnesses, fee calculation, change addresses and such. Assume we have instantiated an instance under the variable builder for this explanation. The TransactionBuilder requires several protocol parameters governing Cardano to be created which is shown in the following section. These are specified initially in the genesis file for Cardano nodes.","sidebar":"tutorialSidebar"},"modules/cbor":{"id":"modules/cbor","title":"CBOR","description":"Cardano on-chain types are stored using CBOR, a data format similar to JSON but with many more features and in binary.","sidebar":"tutorialSidebar"},"modules/chain/index":{"id":"modules/chain/index","title":"Chain","description":"This crate contains all of the on-chain types used in the current Cardano era. All of these types can be serialized and deserialized from their on-chain CBOR encodings. Also included are some utility funtionality for working with them, as well as builders for creating them.","sidebar":"tutorialSidebar"},"modules/CIP25":{"id":"modules/CIP25","title":"CIP25","description":"Context","sidebar":"tutorialSidebar"},"modules/cip36":{"id":"modules/cip36","title":"CIP36","description":"","sidebar":"tutorialSidebar"},"modules/core/index":{"id":"modules/core/index","title":"Core","description":"This crate is for core features and traits common to all CML crates. Most users likely won\'t need to directly use this module except for possibly pulling in traits used with other cml crates. If you are using CML from WASM/typescript this module will not be needed as any used types will be re-exported in the crates (e.g. cml-chain-wasm, cml-cip25-wasm, etc) that use it.","sidebar":"tutorialSidebar"},"modules/crypto/generating_keys":{"id":"modules/crypto/generating_keys","title":"Generating Keys and Addresses","description":"BIP32 Keys","sidebar":"tutorialSidebar"},"modules/crypto/index":{"id":"modules/crypto/index","title":"crypto","description":"AuxiliaryDataHash","sidebar":"tutorialSidebar"},"modules/json":{"id":"modules/json","title":"JSON","description":"General structs","sidebar":"tutorialSidebar"},"modules/metadata":{"id":"modules/metadata","title":"Metadata","description":"Transaction Metadata format","sidebar":"tutorialSidebar"},"modules/multi-era/index":{"id":"modules/multi-era/index","title":"Multi-Era","description":"This crate contains all the on-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc). There are also wrappers around this era if you need era-agnostic types e.g. parsing all blocks from genesis. The wrappers support the current era as well.","sidebar":"tutorialSidebar"},"modules/wasm":{"id":"modules/wasm","title":"WASM Usage","description":"Memory Management","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/a6c5da82.dca57a8d.js b/assets/js/a6c5da82.dca57a8d.js new file mode 100644 index 00000000..62a35377 --- /dev/null +++ b/assets/js/a6c5da82.dca57a8d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[932],{5200:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>s,metadata:()=>d,toc:()=>o});var t=a(5893),i=a(1151);const s={sidebar_position:3},r="CIP25",d={id:"modules/CIP25",title:"CIP25",description:"Context",source:"@site/docs/modules/CIP25.mdx",sourceDirName:"modules",slug:"/modules/CIP25",permalink:"/cardano-multiplatform-lib/modules/CIP25",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Multi-Era",permalink:"/cardano-multiplatform-lib/modules/multi-era/"},next:{title:"Builders",permalink:"/cardano-multiplatform-lib/category/builders"}},l={},o=[{value:"Context",id:"context",level:2},{value:"Code Definitions",id:"code-definitions",level:2},{value:"Examples",id:"examples",level:2},{value:"Create",id:"create",level:3},{value:"Parse CIP25Metadata",id:"parse-cip25metadata",level:3},{value:"Parse Metadata Details",id:"parse-metadata-details",level:3},{value:"Loose Parse Metadata details",id:"loose-parse-metadata-details",level:3},{value:"Just name",id:"just-name",level:4},{value:"Upercase name",id:"upercase-name",level:4},{value:"id no name",id:"id-no-name",level:4},{value:"Image",id:"image",level:4}];function c(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"cip25",children:"CIP25"}),"\n",(0,t.jsx)(n.h2,{id:"context",children:"Context"}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.a,{href:"https://cips.cardano.org/cips/cip25/",children:"CIP25"})," defines an NFT Metadata Standard for Native Tokens."]}),"\n",(0,t.jsx)(n.p,{children:"Since tokens on Cardano are a part of the UTxO ledger, the metadata isn't directly attached to a token, but instead stored in the transaction data."}),"\n",(0,t.jsx)(n.p,{children:"When data is transmitted or stored in Cardano, it is often encoded as CBOR bytes to optimize space and facilitate fast processing. CBOR provides a standardized way to encode complex data structures, making it easier for different components of the Cardano ecosystem to interact and interpret the data."}),"\n",(0,t.jsx)(n.p,{children:"Below is the entire metadata schema for CIP-25, which can be parsed by passing in the CBOR bytes of the entire transaction metadata\nor by passing in an existing Metadata struct."}),"\n",(0,t.jsx)(n.p,{children:"Parsing from CBOR bytes should be marginally faster."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'{\n "721": {\n "<policy_id>": {\n "<asset_name>": {\n "name": <string>,\n \n "image": <uri | array>,\n "mediaType": image/<mime_sub_type>,\n \n "description": <string | array>,\n \n "files": [{\n "name": <string>,\n "mediaType": <mime_type>,\n "src": <uri | array>,\n <other_properties>\n }],\n \n <other properties>\n }\n },\n "version": <version_id>\n }\n }\n'})}),"\n",(0,t.jsx)(n.h2,{id:"code-definitions",children:"Code Definitions"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"CIP25Metadata"})," struct is the top-level struct for CIP-25 metadata, and contains a ",(0,t.jsx)(n.code,{children:"key_721"})," field of type ",(0,t.jsx)(n.code,{children:"LabelMetadata"}),". The key_721 field will contain either a LabelMetadataV1 or LabelMetadataV2 instance."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"LabelMetadata"})," defines an enum type that can contain either a ",(0,t.jsx)(n.code,{children:"LabelMetadataV1"})," or ",(0,t.jsx)(n.code,{children:"LabelMetadataV2"})," instance. It also provides functions for creating instances of each type."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"MetadataDetails"})," defines a struct that represents metadata details for a specific asset. It contains fields for the asset name, an image associated with the asset, a media type, a description, and details about any associated files. The ",(0,t.jsx)(n.code,{children:"new()"})," method creates a new instance with the specified name and image, and sets the other fields to None."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h2,{id:"examples",children:"Examples"}),"\n",(0,t.jsx)(n.h3,{id:"create",children:"Create"}),"\n",(0,t.jsx)(n.p,{children:"The following example shows how to create and populate the CIP25 metadata schema with the available structs."}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:' let mut details = MetadataDetails::new(\n String64::try_from("Metadata Name").unwrap(),\n ChunkableString::from("htts://some.website.com/image.png"),\n ); \n details.description = Some(ChunkableString::from("description of this NFT"));\n details.media_type = Some(String64::try_from("image/*").unwrap());\n details.files = Some(vec![\n FilesDetails::new(\n String64::new_str("filename1").unwrap(),\n String64::new_str("filetype1").unwrap(),\n ChunkableString::from("src1"),\n ),\n FilesDetails::new(\n String64::new_str("filename2").unwrap(),\n String64::new_str("filetype2").unwrap(),\n ChunkableString::from("src2"),\n ),\n ]);\n let mut v2 = Data::new();\n let mut v2_inner = BTreeMap::new();\n v2_inner.insert(AssetNameV2::from(vec![0xCA, 0xFE, 0xD0, 0x0D]), details);\n v2.insert(PolicyIdV2::from(vec![0xBA, 0xAD, 0xF0, 0x0D]), v2_inner);\n\n let metadata = CIP25Metadata::new(LabelMetadata::new_label_metadata_v2(\n LabelMetadataV2::new(v2),\n\n ));\n println!("{metadata:?}");\n\n'})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"output:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'CIP25Metadata {\n key_721: LabelMetadataV2(LabelMetadataV2 { \n data: {\n PolicyIdV2([186, 173, 240, 13]): {\n AssetNameV2([202, 254, 208, 13]): MetadataDetails { \n name: String64("Metadata Name"), \n image: Single(String64("htts://some.website.com/image.png")), \n media_type: Some(String64("image/*")), \n description: Some(Single(String64("description of this NFT"))), \n files: Some([\n FilesDetails { \n name: String64("filename1"), \n media_type: String64("filetype1"), \n src: Single(String64("src1")) \n }, \n FilesDetails { \n name: String64("filename2"), \n media_type: String64("filetype2"), \n src: Single(String64("src2")) \n }\n ]) \n }\n }\n } \n }) \n}\n'})}),"\n",(0,t.jsx)(n.h3,{id:"parse-cip25metadata",children:"Parse CIP25Metadata"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:'let bytes = "bf1902d1a36464617461a244baadf00da344cafed00da6646e616d656d4d65746164617461204e616d656566696c657382a4637372636473726331646e616d656966696c656e616d6531696d65646961547970656966696c657479706531816864736b6a66616b7381a1403864a3637372636473726332646e616d656966696c656e616d6532696d65646961547970656966696c65747970653265696d6167657821687474733a2f2f736f6d652e776562736974652e636f6d2f696d6167652e706e67696d656469615479706567696d6167652f2a6b6465736372697074696f6e776465736372697074696f6e206f662074686973204e4654a14038641832a1403864a140386481a1403864816864736b6a66616b73a1403864a14038646776657273696f6e02a1403864a14038641905398144baadf00dff";\nlet data = CIP25Metadata::from_bytes(hex::decode(bytes).unwrap()).unwrap();\nprintln!("{data:?}");\n'})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"output:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-json",children:'CIP25Metadata { \n key_721: LabelMetadataV2(\n LabelMetadataV2 { \n data: {\n PolicyIdV2([186, 173, 240, 13]): {\n AssetNameV2([202, 254, 208, 13]): MetadataDetails { \n name: String64("Metadata Name"), \n image: Single(String64("htts://some.website.com/image.png")), \n media_type: Some(String64("image/*")), \n description: Some(Single(String64("description of this NFT"))), \n files: Some([\n FilesDetails { \n name: String64("filename1"), \n media_type: String64("filetype1"), \n src: Single(String64("src1")) \n }, \n FilesDetails { \n name: String64("filename2"), \n media_type: String64("filetype2"), \n src: Single(String64("src2")) \n }\n ]) \n }\n }\n } \n }) \n }\n\n'})}),"\n",(0,t.jsx)(n.h3,{id:"parse-metadata-details",children:"Parse Metadata Details"}),"\n",(0,t.jsxs)(n.p,{children:["Fields can be extracted from the ",(0,t.jsx)(n.code,{children:"MetadataDetails"})," struct."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:'// {\n// "arweaveId": "6srpXZOTfK_62KUrJKh4VdCFG0YS271pq20OMRpE5Ts",\n// "image": "ipfs://QmUWP6xGHucgBUv514gwgbt4yijg36aUQunEP61z5D8RKS",\n// "name": "SpaceBud #1507",\n// "traits": ["Star Suit", "Chestplate", "Belt", "Flag", "Pistol"],\n// "type": "Alien",\n// }\n\nlet bytes = "a569617277656176654964782b36737270585a4f54664b5f36324b55724a4b68345664434647305953323731707132304f4d52704535547365696d6167657835697066733a2f2f516d5557503678474875636742557635313467776762743479696a673336615551756e455036317a354438524b53646e616d656e53706163654275642023313530376674726169747385695374617220537569746a4368657374706c6174656442656c7464466c616766506973746f6c647479706565416c69656e";\n\nlet output = MetadataDetails::from_bytes(hex::decode(bytes).unwrap()).unwrap();\nprintln!("{output:?}") \n'})}),"\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"output:"})}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-json",children:'MetadataDetails { \n name: String64("SpaceBud #1507"), \n image: Single(String64("ipfs://QmUWP6xGHucgBUv514gwgbt4yijg36aUQunEP61z5D8RKS")), \n media_type: None, \n description: None, \n files: None\n}\n'})}),"\n",(0,t.jsx)(n.h3,{id:"loose-parse-metadata-details",children:"Loose Parse Metadata details"}),"\n",(0,t.jsxs)(n.p,{children:["The ",(0,t.jsx)(n.code,{children:"loose_parse()"})," function allows parsing of certain data that is technically non-compliant with CIP25 due to minor mistakes by their creators."]}),"\n",(0,t.jsxs)(n.admonition,{type:"note",children:[(0,t.jsx)(n.p,{children:"This function should only to be used to parse non conformant metadata, since it will return a different struct (MiniMetadataDetails) which will just (possibly)return the name/image."}),(0,t.jsx)(n.p,{children:"It's best to only use it as a fallback when the regular parsing fails."})]}),"\n",(0,t.jsx)(n.h4,{id:"just-name",children:"Just name"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:'// {"name":"Metaverse"}\nlet details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a1646e616d65694d6574617665727365").unwrap()).unwrap()).unwrap();\nprintln!("{details:?}")\n'})}),"\n",(0,t.jsx)(n.p,{children:"ouput:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'MiniMetadataDetails { \n name: Some(String64("Metaverse")), \n image: None \n}\n'})}),"\n",(0,t.jsx)(n.h4,{id:"upercase-name",children:"Upercase name"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:'// {\n// "Date":"9 May 2021",\n// "Description":"Happy Mother\'s Day to all the Cardano Moms!",\n// "Image":"ipfs.io/ipfs/Qmah6QPKUKvp6K9XQB2SA42Q3yrffCbYBbk8EoRrB7FN2g",\n// "Name":"Mother\'s Day 2021",\n// "Ticker":"MOM21",\n// "URL":"ipfs.io/ipfs/Qmah6QPKUKvp6K9XQB2SA42Q3yrffCbYBbk8EoRrB7FN2g"\n// }\nlet details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a664446174656a39204d617920323032316b4465736372697074696f6e782b4861707079204d6f7468657227732044617920746f20616c6c207468652043617264616e6f204d6f6d732165496d616765783b697066732e696f2f697066732f516d61683651504b554b7670364b39585142325341343251337972666643625942626b38456f52724237464e3267644e616d65714d6f746865722773204461792032303231665469636b6572654d4f4d32316355524c783b697066732e696f2f697066732f516d61683651504b554b7670364b39585142325341343251337972666643625942626b38456f52724237464e3267").unwrap()).unwrap()).unwrap();\nlet name = details.name.unwrap().0;\nprintln!("{name:?}")\n'})}),"\n",(0,t.jsx)(n.p,{children:"output:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'"Mother\'s Day 2021"\n'})}),"\n",(0,t.jsx)(n.h4,{id:"id-no-name",children:"id no name"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:'// {\n// "id":"00",\n// "image":"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3"\n// }\nlet details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a262696462303065696d6167657835697066733a2f2f516d5366595446384234756136684664723655526452445a425a39466a43514e556444634c723266375038786e33").unwrap()).unwrap()).unwrap();\nlet name = details.name.unwrap().0;\nprintln!("{name:?}")\n'})}),"\n",(0,t.jsx)(n.p,{children:"output:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'"00"\n'})}),"\n",(0,t.jsx)(n.h4,{id:"image",children:"Image"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-rust",children:'// {\n// "image":"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3"\n// }\nlet details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a165696d6167657835697066733a2f2f516d5366595446384234756136684664723655526452445a425a39466a43514e556444634c723266375038786e33").unwrap()).unwrap()).unwrap();\nlet image = String::from(&details.image.unwrap());\nprintln!("{image:?}");\n'})}),"\n",(0,t.jsx)(n.p,{children:"output:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{children:'"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3"\n'})})]})}function p(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1151:(e,n,a)=>{a.d(n,{Z:()=>d,a:()=>r});var t=a(7294);const i={},s=t.createContext(i);function r(e){const n=t.useContext(s);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a7bd4aaa.5eb89804.js b/assets/js/a7bd4aaa.5eb89804.js new file mode 100644 index 00000000..93a74170 --- /dev/null +++ b/assets/js/a7bd4aaa.5eb89804.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[518],{8564:(n,e,s)=>{s.r(e),s.d(e,{default:()=>l});s(7294);var o=s(1944),r=s(3320),t=s(4477),c=s(8790),d=s(197),i=s(5893);function u(n){const{version:e}=n;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(d.Z,{version:e.version,tag:(0,r.os)(e.pluginId,e.version)}),(0,i.jsx)(o.d,{children:e.noIndex&&(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function a(n){const{version:e,route:s}=n;return(0,i.jsx)(o.FG,{className:e.className,children:(0,i.jsx)(t.q,{version:e,children:(0,c.H)(s.routes)})})}function l(n){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(u,{...n}),(0,i.jsx)(a,{...n})]})}}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.3baa4e38.js b/assets/js/a94703ab.3baa4e38.js new file mode 100644 index 00000000..adc1a05e --- /dev/null +++ b/assets/js/a94703ab.3baa4e38.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[368],{2674:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(7294),o=n(512),i=n(1944),s=n(5281),l=n(2802),c=n(1116),r=n(5999),d=n(2466),u=n(5936);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(5893);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.Ct)();return(0,d.RF)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.S)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,r.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",s.k.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(1442),x=n(6550),f=n(7524),j=n(6668),k=n(1327);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const v={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,r.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,r.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",v.collapseSidebarButton),onClick:t,children:(0,b.jsx)(_,{className:v.collapseSidebarButtonIcon})})}var C=n(9689),S=n(902);const I=Symbol("EmptyContext"),N=a.createContext(I);function T(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(N.Provider,{value:i,children:t})}var B=n(6043),Z=n(8596),A=n(9960),L=n(2389);function y(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,r.I)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,r.I)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),type:"button",className:"clean-btn menu__caret",onClick:a})}function w(e){let{item:t,onItemClick:n,activePath:i,level:c,index:r,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.L)(),k=function(e){const t=(0,L.Z)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.LM)(e):void 0),[e,t])}(t),_=(0,l._F)(t,i),v=(0,Z.Mg)(x,i),{collapsed:g,setCollapsed:C}=(0,B.u)({initialState:()=>!!h&&(!_&&t.collapsed)}),{expandedItem:T,setExpandedItem:w}=function(){const e=(0,a.useContext)(N);if(e===I)throw new S.i6("DocSidebarItemsExpandedStateProvider");return e}(),E=function(e){void 0===e&&(e=!g),w(e?null:r),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,S.D9)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:_,collapsed:g,updateCollapsed:E}),(0,a.useEffect)((()=>{h&&null!=T&&T!==r&&f&&C(!0)}),[h,T,r,C,f]),(0,b.jsxs)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemCategory,s.k.docs.docSidebarItemCategoryLevel(c),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v}),children:[(0,b.jsx)(A.Z,{className:(0,o.Z)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":_}),onClick:h?e=>{n?.(t),x?E(!1):(e.preventDefault(),E())}:()=>{n?.(t)},"aria-current":v?"page":void 0,"aria-expanded":h?!g:void 0,href:h?k??"#":k,...d,children:m}),x&&h&&(0,b.jsx)(y,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),E()}})]}),(0,b.jsx)(B.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(V,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:c+1})})]})}var E=n(3919),H=n(9471);const M={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:a,level:i,index:c,...r}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l._F)(t,a),x=(0,E.Z)(d);return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(A.Z,{className:(0,o.Z)("menu__link",!x&&M.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...r,children:[u,!x&&(0,b.jsx)(H.Z,{})]})},u)}const W={menuHtmlItem:"menuHtmlItem_M9Kj"};function F(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:c}=t;return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(n),l&&[W.menuHtmlItem,"menu__list-item"],c),dangerouslySetInnerHTML:{__html:i}},a)}function P(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(w,{item:t,...n});case"html":return(0,b.jsx)(F,{item:t,...n});default:return(0,b.jsx)(R,{item:t,...n})}}function D(e){let{items:t,...n}=e;const a=(0,l.f)(t,n.activePath);return(0,b.jsx)(T,{children:a.map(((e,t)=>(0,b.jsx)(P,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(D),U={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function K(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,C.nT)(),[t,n]=(0,a.useState)(e);return(0,d.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,r.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",U.menu,l&&U.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const Y="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",G="sidebarHidden_VK0M",O="sidebarLogo_isFc";function q(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.L)();return(0,b.jsxs)("div",{className:(0,o.Z)(Y,s&&z,i&&G),children:[s&&(0,b.jsx)(k.Z,{tabIndex:-1,className:O}),(0,b.jsx)(K,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const J=a.memo(q);var Q=n(3102),X=n(2961);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,X.e)();return(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(Q.Zo,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.i)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(J,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,r.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,r.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(_,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,c.V)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.TH)(),[c,r]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{c&&r(!1),!c&&(0,p.n)()&&r(!0),i((e=>!e))}),[i,c]);return(0,b.jsx)("aside",{className:(0,o.Z)(s.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&r(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.Z)(ie.sidebarViewport,c&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:c}),c&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const ce={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function re(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,c.V)();return(0,b.jsx)("main",{className:(0,o.Z)(ce.docMainContainer,(t||!a)&&ce.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",ce.docItemWrapper,t&&ce.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,c.V)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(re,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(5658);function be(e){const t=(0,l.SN)(e);if(!t)return(0,b.jsx)(me.Z,{});const{docElement:n,sidebarName:a,sidebarItems:r}=t;return(0,b.jsx)(i.FG,{className:(0,o.Z)(s.k.page.docsDocPage),children:(0,b.jsx)(c.b,{name:a,items:r,children:(0,b.jsx)(ue,{children:n})})})}},5658:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var a=n(512),o=n(5999),i=n(2503),s=n(5893);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.Z)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.Z,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/assets/js/a9e02168.48f27996.js b/assets/js/a9e02168.48f27996.js new file mode 100644 index 00000000..198405e1 --- /dev/null +++ b/assets/js/a9e02168.48f27996.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[663],{960:e=>{e.exports=JSON.parse('{"title":"Multi-Era","slug":"/category/multi-era","permalink":"/cardano-multiplatform-lib/category/multi-era","navigation":{"previous":{"title":"JSON","permalink":"/cardano-multiplatform-lib/modules/json"},"next":{"title":"Multi-Era","permalink":"/cardano-multiplatform-lib/modules/multi-era/"}}}')}}]); \ No newline at end of file diff --git a/assets/js/b5ddca27.43511ee0.js b/assets/js/b5ddca27.43511ee0.js new file mode 100644 index 00000000..3a6a8b4e --- /dev/null +++ b/assets/js/b5ddca27.43511ee0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[258],{2608:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var s=r(5893),t=r(1151);const a={sidebar_position:3},o="Generating Keys and Addresses",i={id:"modules/crypto/generating_keys",title:"Generating Keys and Addresses",description:"BIP32 Keys",source:"@site/docs/modules/crypto/generating_keys.mdx",sourceDirName:"modules/crypto",slug:"/modules/crypto/generating_keys",permalink:"/cardano-multiplatform-lib/modules/crypto/generating_keys",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Crypto",permalink:"/cardano-multiplatform-lib/category/crypto"},next:{title:"crypto",permalink:"/cardano-multiplatform-lib/modules/crypto/"}},d={},c=[{value:"BIP32 Keys",id:"bip32-keys",level:2},{value:"BIP39 Entropy",id:"bip39-entropy",level:2},{value:"Use in Addresses",id:"use-in-addresses",level:2},{value:"Other Key Types",id:"other-key-types",level:2}];function l(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"generating-keys-and-addresses",children:"Generating Keys and Addresses"}),"\n",(0,s.jsx)(n.h2,{id:"bip32-keys",children:"BIP32 Keys"}),"\n",(0,s.jsxs)(n.p,{children:["There are two main categories of keys in this library. There are the raw ",(0,s.jsx)(n.code,{children:"PublicKey"})," and ",(0,s.jsx)(n.code,{children:"PrivateKey"})," which are used for cryptographically signing/verifying, and ",(0,s.jsx)(n.code,{children:"BIP32PrivateKey"}),"/",(0,s.jsx)(n.code,{children:"BIP32PublicKey"})," which in addition to this have the ability to derive additional keys from them following the ",(0,s.jsx)(n.a,{href:"https://en.bitcoin.it/wiki/BIP_0032",children:"BIP32 derivation scheme"})," variant called BIP32-Ed25519, which will be referred to as BIP32 for brevity. We use the ",(0,s.jsx)(n.a,{href:"https://en.bitcoin.it/wiki/BIP_0044",children:"BIP44 spec"})," variant for Ed25519 as well for the derivation paths using 1852 or 44 as the purpose consant and 1815 for the coin type depending on address type. See ",(0,s.jsx)(n.a,{href:"https://github.com/input-output-hk/implementation-decisions/pull/18",children:"this doc"})," for more details."]}),"\n",(0,s.jsx)(n.p,{children:"This is demonstrated with the below code"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'function harden(num: number): number {\n return 0x80000000 + num;\n}\n\n\nconst rootKey = CardanoWasm.BIP32PrivateKey.from_bech32("xprv17qx9vxm6060qjn5fgazfue9nwyf448w7upk60c3epln82vumg9r9kxzsud9uv5rfscxp382j2aku254zj3qfx9fx39t6hjwtmwq85uunsd8x0st3j66lzf5yn30hwq5n75zeuplepx8vxc502txx09ygjgx06n0p");\nconst accountKey = rootKey\n .derive(harden(1852)) // purpose\n .derive(harden(1815)) // coin type\n .derive(harden(0)); // account #0\n\nconst utxoPubKey = accountKey\n .derive(0) // external\n .derive(0)\n .to_public();\n\nconst stakeKey = accountKey\n .derive(2) // chimeric\n .derive(0)\n .to_public();\n'})}),"\n",(0,s.jsx)(n.h2,{id:"bip39-entropy",children:"BIP39 Entropy"}),"\n",(0,s.jsxs)(n.p,{children:["To generate a ",(0,s.jsx)(n.code,{children:"BIP32PrivateKey"})," from a BIP39 recovery phrase it must be first converted to entropy following the BIP39 protocol(). This library does not directly handle that, but once entropy is created it is possible to use ",(0,s.jsx)(n.code,{children:"Bip32PrivateKey.from_bip39_entropy(entropy, password)"}),". For more information see the ",(0,s.jsx)(n.a,{href:"https://github.com/cardano-foundation/CIPs/pull/3",children:"CIP3"})," Cardano improvement proposal. The code below uses the ",(0,s.jsx)(n.code,{children:"bip39"})," npm package to generate a root ",(0,s.jsx)(n.code,{children:"BIP32PrivateKey"})," from a BIP39 mnemonic."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'import { mnemonicToEntropy } from \'bip39\';\n\nconst entropy = mnemonicToEntropy(\n [ "test", "walk", "nut", "penalty", "hip", "pave", "soap", "entry", "language", "right", "filter", "choice" ].join(\' \')\n);\n\nconst rootKey = CardanoWasm.Bip32PrivateKey.from_bip39_entropy(\n Buffer.from(entropy, \'hex\'),\n Buffer.from(\'\'),\n);\n'})}),"\n",(0,s.jsx)(n.h2,{id:"use-in-addresses",children:"Use in Addresses"}),"\n",(0,s.jsxs)(n.p,{children:["Once we have reached the desired derivation path, we must convert the ",(0,s.jsx)(n.code,{children:"BIP32PrivateKey"})," or ",(0,s.jsx)(n.code,{children:"BIP32PublicKey"})," to a ",(0,s.jsx)(n.code,{children:"PrivateKey"})," or ",(0,s.jsx)(n.code,{children:"PublicKey"})," by calling ",(0,s.jsx)(n.code,{children:".to_raw_key()"})," on them with the exception of Byron addresses.\nFor example, to create an address using the ",(0,s.jsx)(n.code,{children:"utxoPubKey"})," and ",(0,s.jsx)(n.code,{children:"stakeKey"})," in the first example, we can do:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"// base address with staking key\nconst baseAddr = CardanoWasm.BaseAddress.new(\n CardanoWasm.NetworkInfo.mainnet().network_id(),\n CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()),\n CardanoWasm.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash()),\n);\n\n// enterprise address without staking ability, for use by exchanges/etc\nconst enterpriseAddr = CardanoWasm.EnterpriseAddress.new(\n CardanoWasm.NetworkInfo.mainnet().network_id(),\n CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash())\n);\n\n// pointer address - similar to Base address but can be shorter, see formal spec for explanation\nconst ptrAddr = CardanoWasm.PointerAddress.new(\n CardanoWasm.NetworkInfo.mainnet().network_id(),\n CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()),\n CardanoWasm.Pointer.new(\n 100, // slot\n 2, // tx index in slot\n 0 // cert indiex in tx\n )\n);\n\n// reward address - used for withdrawing accumulated staking rewards\nconst rewardAddr = CardanoWasm.RewardAddress.new(\n CardanoWasm.NetworkInfo.mainnet().network_id(),\n CardanoWasm.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash())\n);\n\n// bootstrap address - byron-era addresses with no staking rights\nconst byronAddr = CardanoWasm.ByronAddress.icarus_from_key(\n utxoPubKey, // Ae2* style icarus address\n CardanoWasm.NetworkInfo.mainnet().protocol_magic()\n);\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Note that the byron-era address can only be created in this library from icarus-style addresses that start in ",(0,s.jsx)(n.code,{children:"Ae2"})," and that Daedalus-style addresses starting in ",(0,s.jsx)(n.code,{children:"Dd"})," are not directly supported."]}),"\n",(0,s.jsxs)(n.p,{children:["These are all address variant types with information specific to its address type. There is also an ",(0,s.jsx)(n.code,{children:"Address"})," type which represents any of those variants, which is the type use in most parts of the library. For example to create a ",(0,s.jsx)(n.code,{children:"TransactionOutput"})," manually we would have to first convert from one of the address variants by doing:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'const address = baseAddress.to_address();\n\nconst output = CardanoWasm.TransactionOutput(address, BigNum.from_str("365"));\n'})}),"\n",(0,s.jsx)(n.p,{children:"If the address is already a Shelley address in raw bytes or a bech32 string we can create it directly via:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'const addr = CardanoWasm.Address.from_bech32("addr1vyt3w9chzut3w9chzut3w9chzut3w9chzut3w9chzut3w9cj43ltf");\n\n'})}),"\n",(0,s.jsx)(n.h2,{id:"other-key-types",children:"Other Key Types"}),"\n",(0,s.jsxs)(n.p,{children:["Conversion between ",(0,s.jsx)(n.code,{children:"cardano-cli"})," 128-byte ",(0,s.jsx)(n.code,{children:"XPrv"})," keys and ",(0,s.jsx)(n.code,{children:"BIP32PrivateKey"})," is also supported:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:"const bip32PrivateKey = CardanoWasm.BIP32PrivateKey.from_128_xprv(xprvBytes);\nassert(xprvBytes == CardanoWasm.BIP32PrivateKey.to_128_xprv());\n"})}),"\n",(0,s.jsxs)(n.p,{children:["96-byte ",(0,s.jsx)(n.code,{children:"XPrv"})," keys are identical to ",(0,s.jsx)(n.code,{children:"BIP32PrivateKey"}),"s byte-wise and no conversion is needed.\nFor more details see ",(0,s.jsx)(n.a,{href:"https://docs.cardano.org/projects/cardano-node/en/latest/stake-pool-operations/keys_and_addresses.html",children:"this document"})," regarding legacy keys."]}),"\n",(0,s.jsxs)(n.p,{children:["There is also ",(0,s.jsx)(n.code,{children:"LegacyDaedalusPrivateKey"})," which is used for creating witnesses for legacy Daedalus ",(0,s.jsx)(n.code,{children:"Dd"}),"-type addresses."]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>i,a:()=>o});var s=r(7294);const t={},a=s.createContext(t);function o(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/bbe6d832.162d02e5.js b/assets/js/bbe6d832.162d02e5.js new file mode 100644 index 00000000..aa71ecfa --- /dev/null +++ b/assets/js/bbe6d832.162d02e5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[461],{2119:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var o=n(5893),i=n(1151);const r={sidebar_position:4},a="CIP36",s={id:"modules/cip36",title:"CIP36",description:"",source:"@site/docs/modules/cip36.mdx",sourceDirName:"modules",slug:"/modules/cip36",permalink:"/cardano-multiplatform-lib/modules/cip36",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"TransactionBuilder",permalink:"/cardano-multiplatform-lib/modules/builders/"},next:{title:"Metadata",permalink:"/cardano-multiplatform-lib/modules/metadata"}},c={},d=[];function u(t){const e={h1:"h1",...(0,i.a)(),...t.components};return(0,o.jsx)(e.h1,{id:"cip36",children:"CIP36"})}function l(t={}){const{wrapper:e}={...(0,i.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(u,{...t})}):u(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>s,a:()=>a});var o=n(7294);const i={},r=o.createContext(i);function a(t){const e=o.useContext(r);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function s(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:a(t.components),o.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/c377a04b.10e5b1c9.js b/assets/js/c377a04b.10e5b1c9.js new file mode 100644 index 00000000..ec703c9a --- /dev/null +++ b/assets/js/c377a04b.10e5b1c9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[971],{9925:(e,i,s)=>{s.r(i),s.d(i,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var n=s(5893),t=s(1151);const r={sidebar_label:"Introduction",sidebar_position:1},a="Cardano Multiplatform Lib",o={id:"index",title:"Cardano Multiplatform Lib",description:"This is a library, written in Rust, that can be deployed to multiple platforms (Rust crate, JS, Typescript, WASM, etc). It handles:",source:"@site/docs/index.md",sourceDirName:".",slug:"/",permalink:"/cardano-multiplatform-lib/",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_label:"Introduction",sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"Installation & Getting Started",permalink:"/cardano-multiplatform-lib/getting_started"}},l={},c=[{value:"NPM packages",id:"npm-packages",level:5},{value:"Rust crates",id:"rust-crates",level:5},{value:"Mobile bindings",id:"mobile-bindings",level:5},{value:"Pre-requisite knowledge",id:"pre-requisite-knowledge",level:2},{value:"Benefits of using this library",id:"benefits-of-using-this-library",level:2},{value:"A note on code examples",id:"a-note-on-code-examples",level:2},{value:"Documentation",id:"documentation",level:2}];function d(e){const i={a:"a",code:"code",h1:"h1",h2:"h2",h5:"h5",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h1,{id:"cardano-multiplatform-lib",children:"Cardano Multiplatform Lib"}),"\n",(0,n.jsx)(i.p,{children:"This is a library, written in Rust, that can be deployed to multiple platforms (Rust crate, JS, Typescript, WASM, etc). It handles:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:"Serialization & deserialization of core data structures"}),"\n",(0,n.jsx)(i.li,{children:"Builders to streamline and verify the construction of transactions and related components"}),"\n",(0,n.jsx)(i.li,{children:"Useful utility functions for dApps & wallets"}),"\n"]}),"\n",(0,n.jsx)(i.h5,{id:"npm-packages",children:"NPM packages"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["browser: ",(0,n.jsx)(i.a,{href:"https://www.npmjs.com/package/@dcspark/cardano-multiplatform-lib-browser",children:"link"})]}),"\n",(0,n.jsxs)(i.li,{children:["nodejs: ",(0,n.jsx)(i.a,{href:"https://www.npmjs.com/package/@dcspark/cardano-multiplatform-lib-nodejs",children:"link"})]}),"\n"]}),"\n",(0,n.jsx)(i.p,{children:"There is also an outdated asm.js . It is strongly discouraged from using this as it is out of date and asm.js results in incredibly slow cryptographic operations."}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["asm.js (strongly discouraged): ",(0,n.jsx)(i.a,{href:"https://www.npmjs.com/package/@dcspark/cardano-multiplatform-lib-asmjs",children:"link"})]}),"\n"]}),"\n",(0,n.jsx)(i.p,{children:"Note: If you are using WebPack, you must use version 5 or later for CML to work."}),"\n",(0,n.jsx)(i.h5,{id:"rust-crates",children:"Rust crates"}),"\n",(0,n.jsx)(i.p,{children:"The rust crates are split up by functionality."}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["core: ",(0,n.jsx)(i.a,{href:"https://crates.io/crates/cml-core",children:"link"})]}),"\n",(0,n.jsxs)(i.li,{children:["crypto: ",(0,n.jsx)(i.a,{href:"https://crates.io/crates/cml-crypto",children:"link"})]}),"\n",(0,n.jsxs)(i.li,{children:["chain: ",(0,n.jsx)(i.a,{href:"https://crates.io/crates/cml-chain",children:"link"})]}),"\n",(0,n.jsxs)(i.li,{children:["multi-era: ",(0,n.jsx)(i.a,{href:"https://crates.io/crates/cml-multi-era",children:"link"})]}),"\n",(0,n.jsxs)(i.li,{children:["cip25: ",(0,n.jsx)(i.a,{href:"https://crates.io/crates/cml-cip25",children:"link"})]}),"\n",(0,n.jsxs)(i.li,{children:["cip36: ",(0,n.jsx)(i.a,{href:"https://crates.io/crates/cml-cip36",children:"link"})]}),"\n"]}),"\n",(0,n.jsxs)(i.p,{children:["Most users will likely be using primarily ",(0,n.jsx)(i.code,{children:"cml-chain"})," for general uses, ",(0,n.jsx)(i.code,{children:"cml-multi-era"})," if they need historical (pre-babbage eras) chain-parsing and ",(0,n.jsx)(i.code,{children:"cip25"})," or ",(0,n.jsx)(i.code,{children:"cip36"})," if they need those specific metadata standards."]}),"\n",(0,n.jsx)(i.h5,{id:"mobile-bindings",children:"Mobile bindings"}),"\n",(0,n.jsx)(i.p,{children:"We recommend using Ionic + Capacitor or an equivalent setup to have the WASM bindings working in mobile"}),"\n",(0,n.jsx)(i.h2,{id:"pre-requisite-knowledge",children:"Pre-requisite knowledge"}),"\n",(0,n.jsx)(i.p,{children:"This library assumes a certain amount of knowledge about how Cardano works (to avoid re-documenting the wheel)."}),"\n",(0,n.jsxs)(i.p,{children:["You can find the specifications of Cardano's ledger ",(0,n.jsx)(i.a,{href:"https://github.com/input-output-hk/cardano-ledger-specs",children:"here"})," which we suggest consulting as you use this library. Notably, the ",(0,n.jsx)(i.code,{children:"Shelley ledger formal specification"})," covers the core concepts. Make sure to check the specs for later eras as well when needed."]}),"\n",(0,n.jsx)(i.h2,{id:"benefits-of-using-this-library",children:"Benefits of using this library"}),"\n",(0,n.jsxs)(i.p,{children:["Serialization/deserialization code is automatically generated from\nCardano\u2019s official specification, which guarantees it can easily stay up\nto date! We do this using a tool managed by EMURGO & dcSpark called ",(0,n.jsx)(i.code,{children:"cddl-codegen"}),"\nwhich can be re-used for other tasks such as automatically generate a\nRust library for Cardano metadata specifications!"]}),"\n",(0,n.jsx)(i.p,{children:"The most important feature of this is that CML has been generated to allow all CBOR details to be preserved.\nWith CBOR many CBOR structures can have multiple ways to serialize to bytes from the same equivalent structure.\nThis causes issues especially when computing hashes and is a frequent problem with working across tools e.g. cardano-node-cli and cardano-serialization-lib encoding plutus datums differently. This makes CML much more compatible with all other libraries as it will remember all these specific CBOR encoding details. This is particularly important for use with dApps and wallets connecting to dApps."}),"\n",(0,n.jsx)(i.p,{children:"It is also very easy to create scripts in Rust or WASM to share with\nstake pools, or even embed inside an online tool! No more crazy\ncardano-cli bash scripts!"}),"\n",(0,n.jsx)(i.p,{children:"Powerful and flexible enough to be used to power wallets and exchanges!\n(Yes, it\u2019s used in production!)"}),"\n",(0,n.jsx)(i.h2,{id:"a-note-on-code-examples",children:"A note on code examples"}),"\n",(0,n.jsxs)(i.p,{children:["All code examples are using the WASM (typescript/javascript) API. If you are using CML from rust you will need to change the code to rust syntax e.g. ",(0,n.jsx)(i.code,{children:"Foo.bar()"})," to ",(0,n.jsx)(i.code,{children:"Foo::new()"})," etc. We've tried to keep the API as consistent as possible between the different bindings but some exceptions exist. The array/map wrappers (e.g. ",(0,n.jsx)(i.code,{children:"FooList"})," / ",(0,n.jsx)(i.code,{children:"MapFooToBar"}),") in WASM are simply ",(0,n.jsx)(i.code,{children:"Vec<Foo>"})," and ",(0,n.jsx)(i.code,{children:"OrderedHashMap<Foo, Bar>"})," respectively. There will be some changes relating to reference params/moving/etc as well."]}),"\n",(0,n.jsxs)(i.p,{children:["You can find complete examples in the ",(0,n.jsx)(i.code,{children:"/examples/"})," directory."]}),"\n",(0,n.jsx)(i.h2,{id:"documentation",children:"Documentation"}),"\n",(0,n.jsxs)(i.p,{children:["This library generates ",(0,n.jsx)(i.code,{children:"Typescript"})," type definitions, so it\u2019s often easiest to see what is possible by just looking at the types! These are found in the ",(0,n.jsx)(i.code,{children:".ts"})," file in the npm package roots.\nIf you are using rust the full API will be shown in the respective crates.io pages."]})]})}function h(e={}){const{wrapper:i}={...(0,t.a)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,i,s)=>{s.d(i,{Z:()=>o,a:()=>a});var n=s(7294);const t={},r=n.createContext(t);function a(e){const i=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),n.createElement(r.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c7581e31.c24443d3.js b/assets/js/c7581e31.c24443d3.js new file mode 100644 index 00000000..f9581118 --- /dev/null +++ b/assets/js/c7581e31.c24443d3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[381],{3218:e=>{e.exports=JSON.parse('{"title":"Core","slug":"/category/core","permalink":"/cardano-multiplatform-lib/category/core","navigation":{"previous":{"title":"CBOR","permalink":"/cardano-multiplatform-lib/modules/cbor"},"next":{"title":"Core","permalink":"/cardano-multiplatform-lib/modules/core/"}}}')}}]); \ No newline at end of file diff --git a/assets/js/d16dc6d6.0e8b1a56.js b/assets/js/d16dc6d6.0e8b1a56.js new file mode 100644 index 00000000..40ef411d --- /dev/null +++ b/assets/js/d16dc6d6.0e8b1a56.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[200],{8646:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>d,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var s=n(5893),a=n(1151);const o={sidebar_position:2},d="JSON",r={id:"modules/json",title:"JSON",description:"General structs",source:"@site/docs/modules/json.mdx",sourceDirName:"modules",slug:"/modules/json",permalink:"/cardano-multiplatform-lib/modules/json",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"crypto",permalink:"/cardano-multiplatform-lib/modules/crypto/"},next:{title:"Multi-Era",permalink:"/cardano-multiplatform-lib/category/multi-era"}},i={},c=[{value:"General structs",id:"general-structs",level:2},{value:"WASM",id:"wasm",level:3},{value:"Rust",id:"rust",level:3},{value:"Metadata",id:"metadata",level:2},{value:"Plutus Datums",id:"plutus-datums",level:2}];function l(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"json",children:"JSON"}),"\n",(0,s.jsx)(t.h2,{id:"general-structs",children:"General structs"}),"\n",(0,s.jsxs)(t.p,{children:["All on-chain types have to/from JSON support. The vast majority is auto-generated but some have custom logic e.g. ",(0,s.jsx)(t.code,{children:"Url"}),", ",(0,s.jsx)(t.code,{children:"Ipv4"}),", ",(0,s.jsx)(t.code,{children:"BigInteger"}),", etc."]}),"\n",(0,s.jsx)(t.h3,{id:"wasm",children:"WASM"}),"\n",(0,s.jsxs)(t.p,{children:["In WASM JSON conversions are exposed by ",(0,s.jsx)(t.code,{children:".to_json()"})," and ",(0,s.jsx)(t.code,{children:".from_json()"})," methods on all supported wrappers. There is also a ",(0,s.jsx)(t.code,{children:"to_js_value()"}),"."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:'let txInJson = "{\\"transaction_id\\":\\"0fba1404ed9b82b41938ba2e8bda7bec8cce813fb7e7cd7692b43caa76fe891c\\",\\"index\\":3}";\n\nlet txIn = CML.TransactionInput.from_json(txInJson);\n\nconsole.log(`txIn JSON: ${txIn.to_json()}`);\n'})}),"\n",(0,s.jsx)(t.h3,{id:"rust",children:"Rust"}),"\n",(0,s.jsxs)(t.p,{children:["JSON conversions are exposed in rust via the ",(0,s.jsx)(t.a,{href:"https://docs.rs/serde/latest/serde/trait.Serialize.html",children:(0,s.jsx)(t.code,{children:"serde::Serialize"})})," and ",(0,s.jsx)(t.a,{href:"https://docs.rs/serde/latest/serde/trait.Deserialize.html",children:(0,s.jsx)(t.code,{children:"serde::Deserialize"})})," traits together with ",(0,s.jsx)(t.code,{children:"serde_json"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"example:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-rust",children:'let tx_in_json = "{\\"transaction_id\\":\\"0fba1404ed9b82b41938ba2e8bda7bec8cce813fb7e7cd7692b43caa76fe891c\\",\\"index\\":3}";\n\n// from JSON using serde_json::from_str() - note the type annotations\nlet tx_in: TransactionInput = serde_json::from_str(tx_in_json).unwrap();\n\n// to JSON using serde_json::to_string() - use to_string_pretty() if you want more human-readable formatting\nprintln!("tx_in JSON: {}", serde_json::to_string(&tx_in).unwrap());\n'})}),"\n",(0,s.jsx)(t.h2,{id:"metadata",children:"Metadata"}),"\n",(0,s.jsx)(t.p,{children:"Metadata, on top of the generic API mentioned above, has specific JSON functionality for compatability with cardano-node."}),"\n",(0,s.jsxs)(t.p,{children:["There are three formats on ",(0,s.jsx)(t.code,{children:"MetadataJsonSchema"}),". ",(0,s.jsx)(t.code,{children:"NoConversions"})," is the stricted, stricter than cardano-node and only converts when there are no implicit conversions at all. ",(0,s.jsx)(t.code,{children:"BasicConversions"})," is the node's ",(0,s.jsx)(t.code,{children:"TxMetadataJsonNoSchema"})," and ",(0,s.jsx)(t.code,{children:"DetailedSchema"})," its ",(0,s.jsx)(t.code,{children:"TxMetadataJsonDetailedSchema"}),". See ",(0,s.jsx)(t.code,{children:"MetadataJsonSchema"})," for more info on the schema."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:'let basic_json = "{\\"0x8badf00d\\": \\"0xdeadbeef\\",\\"9\\": 5,\\"obj\\": {\\"a\\":[{\\"5\\": 2},{}]}}";\nlet metadatum = CML.encode_json_str_to_metadatum(basic_json, CML.MetadataJsonSchema.BasicConversions);\nconsole.log(`detailed json: ${CML.decode_metadatum_to_json_str(metadatum, CML.MetadataJsonSchema.DetailedSchema)}`);\n// OUTPUT:\n// detailed json: {"map":[{"k":{"bytes":"8badf00d"},"v":{"bytes":"deadbeef"}},{"k":{"int":9},"v":{"int":5}},{"k":{"string":"obj"},"v":{"map":[{"k":{"string":"a"},"v":{"list":[{"map":[{"k":{"int":5},"v":{"int":2}}]},{"map":[]}]}}]}}]}\n'})}),"\n",(0,s.jsx)(t.h2,{id:"plutus-datums",children:"Plutus Datums"}),"\n",(0,s.jsxs)(t.p,{children:["Plutus datums also have additional cardano-node JSON support. Remember that Plutus has no String datum so the strings there will be converted to utf8 bytes. See ",(0,s.jsx)(t.code,{children:"CardanoNodePlutusDatumSchema"})," for more info on the schema."]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-javascript",children:'let basic_json = "{ \\"100\\": [ { \\"x\\": \\"0\\", \\"y\\": 1 } ], \\"foo\\": \\"0x0000baadf00d0000cafed00d0000deadbeef0000\\" }";\nlet datum = CML.encode_json_str_to_plutus_datum(basic_json, CML.CardanoNodePlutusDatumSchema.BasicConversions);\nconsole.log(`detailed json: ${CML.decode_plutus_datum_to_json_str(datum, CML.CardanoNodePlutusDatumSchema.DetailedSchema,\n)}`);\n// OUTPUT:\n// detailed json: {"map":[{"k":{"int":100},"v":{"list":[{"map":[{"k":{"bytes":"78"},"v":{"bytes":"30"}},{"k":{"bytes":"79"},"v":{"int":1}}]}]}},{"k":{"bytes":"666f6f"},"v":{"bytes":"0000baadf00d0000cafed00d0000deadbeef0000"}}]}\n'})})]})}function u(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>d});var s=n(7294);const a={},o=s.createContext(a);function d(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:d(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d1737d8e.b0eec86d.js b/assets/js/d1737d8e.b0eec86d.js new file mode 100644 index 00000000..80288039 --- /dev/null +++ b/assets/js/d1737d8e.b0eec86d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[392],{654:e=>{e.exports=JSON.parse('{"title":"Chain","slug":"/category/chain","permalink":"/cardano-multiplatform-lib/category/chain","navigation":{"previous":{"title":"Core","permalink":"/cardano-multiplatform-lib/modules/core/"},"next":{"title":"Chain","permalink":"/cardano-multiplatform-lib/modules/chain/"}}}')}}]); \ No newline at end of file diff --git a/assets/js/dd8d23a4.8124b095.js b/assets/js/dd8d23a4.8124b095.js new file mode 100644 index 00000000..2668c16d --- /dev/null +++ b/assets/js/dd8d23a4.8124b095.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[953],{8516:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>l});var a=n(5893),s=n(1151);const i={sidebar_position:4},r=void 0,o={id:"modules/builders/generating_transactions",title:"generating_transactions",description:"Example code",source:"@site/docs/modules/builders/generating_transactions.mdx",sourceDirName:"modules/builders",slug:"/modules/builders/generating_transactions",permalink:"/cardano-multiplatform-lib/modules/builders/generating_transactions",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Builders",permalink:"/cardano-multiplatform-lib/category/builders"},next:{title:"TransactionBuilder",permalink:"/cardano-multiplatform-lib/modules/builders/"}},d={},l=[{value:"Example code",id:"example-code",level:2},{value:"A note on fees",id:"a-note-on-fees",level:2}];function c(e){const t={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"example-code",children:"Example code"}),"\n",(0,a.jsx)(t.p,{children:"The example below builds a transaction with all 2 of the 3 input types: key and bootstrap.\nMultisig (script) inputs are essentially identical to key inputs, but using the scripthash instead of the keyhash, however they are not supported for implicit fee calculation yet.\nFees are automatically calculated and sent to a change address in the example."}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-javascript",children:'// instantiate the tx builder with the Cardano protocol parameters - these may change later on\nconst txBuilder = makeTxBuilder();\nconst testnetId = 0;\n// add a keyhash input - for ADA held in a Shelley-era normal address (Base, Enterprise, Pointer)\nconst prvKey = CML.PrivateKey.from_bech32("ed25519e_sk16rl5fqqf4mg27syjzjrq8h3vq44jnnv52mvyzdttldszjj7a64xtmjwgjtfy25lu0xmv40306lj9pcqpa6slry9eh3mtlqvfjz93vuq0grl80");\nconst inputAddr = CML.EnterpriseAddress.new(testnetId, CML.StakeCredential.new_key(prvKey.to_public().hash())).to_address();\ntxBuilder.add_input(CML.SingleInputBuilder.new(\n CML.TransactionInput.new(\n CML.TransactionHash.from_hex("8561258e210352fba2ac0488afed67b3427a27ccf1d41ec030c98a8199bc22ec"), // tx hash\n 0, // index\n ),\n CML.TransactionOutput.new(\n inputAddr,\n CML.Value.from_coin(BigInt(6000000)),\n )\n);\n\n// base address\nconst outputAddress = CML.Address.from_bech32("addr_test1qpu5vlrf4xkxv2qpwngf6cjhtw542ayty80v8dyr49rf5ewvxwdrt70qlcpeeagscasafhffqsxy36t90ldv06wqrk2qum8x5w");\n// pointer address\nconst changeAddress = CML.Address.from_bech32("addr_test1gz2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzerspqgpsqe70et");\n\n// add output to the tx\ntxBuilder.add_output(\n CML.TransactionOutputBuilder()\n .with_address(outputAddress)\n .next()\n .with_value(CML.Value.from_coin(BigInt(1000000)))\n .build()\n);\n\n// calculate the min fee required and send any change to an address\n// this moves onto the next step of building the transaction: providing witnesses\nconst signedTxBuilder = tx_builder.build(\n changeAddress,\n CML.ChangeSelectionAlgo.Default\n);\n\n// sign with the key that owns the input used\nsignedTxBuilder.add_vkey(CML.make_vkey_witness(txHash, prvKey));\n\nconst tx = signedTxBuilder.build_checked();\n// ready to submit, can be converted to CBOR via tx.to_cbor_bytes() or to_cbor_hex() for hex\n'})}),"\n",(0,a.jsx)(t.h2,{id:"a-note-on-fees",children:"A note on fees"}),"\n",(0,a.jsxs)(t.p,{children:["Fees in Cardano are based directly on the size of the final encoded transaction. It is important to note that a transaction created by this library potentially can vary in size compared to one built with other tools. This is because transactions, as well as other Cardano structures, are encoded using ",(0,a.jsx)(t.a,{href:"https://cbor.io/",children:"CBOR"})," a binary JSON-like encoding. Due to arrays and maps allowing both definite or indefinite length encoding in the encoded transaction created by the library, the size can vary. This is because definite encoding consists of a tag containing the size of the array/map which can be 1 or more bytes long depending on the number of elements the size of the encoded structure, while indefinite length encoding consists of a 1 byte starting tag and after all elements are listed, a 1 byte ending tag. These variances should should only be a couple bytes and cardano-multiplatform-lib uses definite encoding by default which is the same length or smaller for any reasonable sized transaction."]})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>r});var a=n(7294);const s={},i=a.createContext(s);function r(e){const t=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),a.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e7958d21.f670ea2c.js b/assets/js/e7958d21.f670ea2c.js new file mode 100644 index 00000000..115a7850 --- /dev/null +++ b/assets/js/e7958d21.f670ea2c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[659],{5871:(t,e,r)=>{r.r(e),r.d(e,{assets:()=>a,contentTitle:()=>o,default:()=>d,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var n=r(5893),i=r(1151);const s={sidebar_position:3},o="Crate Architecture",c={id:"crate_architecture",title:"Crate Architecture",description:"- Core - Core types common throughout all CML crates.",source:"@site/docs/crate_architecture.mdx",sourceDirName:".",slug:"/crate_architecture",permalink:"/cardano-multiplatform-lib/crate_architecture",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Installation & Getting Started",permalink:"/cardano-multiplatform-lib/getting_started"},next:{title:"Modules",permalink:"/cardano-multiplatform-lib/category/modules"}},a={},l=[];function u(t){const e={h1:"h1",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.a)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.h1,{id:"crate-architecture",children:"Crate Architecture"}),"\n",(0,n.jsxs)(e.ul,{children:["\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"Core"})," - Core types common throughout all CML crates."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"Chain"})," - Current era on-chain types, plus utility functionality and builders for creating these types. This is likely the crate most users will want to use."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"Crypto"})," - Crypto primitives used throughout CML. Keys, signatures, etc."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"CIP25"})," - Library for working with CIP25 NFT metadata."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"CIP36"})," - Library for working with CIP36 (catalyst) registration types."]}),"\n"]}),"\n",(0,n.jsxs)(e.li,{children:["\n",(0,n.jsxs)(e.p,{children:[(0,n.jsx)(e.strong,{children:"Multi-Era"})," - On-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc) plus era-agnostic wrappers around this for parsing historical blockchain data."]}),"\n"]}),"\n"]})]})}function d(t={}){const{wrapper:e}={...(0,i.a)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(u,{...t})}):u(t)}},1151:(t,e,r)=>{r.d(e,{Z:()=>c,a:()=>o});var n=r(7294);const i={},s=n.createContext(i);function o(t){const e=n.useContext(s);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:o(t.components),n.createElement(s.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/eb14df67.6db07931.js b/assets/js/eb14df67.6db07931.js new file mode 100644 index 00000000..67b9cbc6 --- /dev/null +++ b/assets/js/eb14df67.6db07931.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[31],{3157:e=>{e.exports=JSON.parse('{"title":"Modules","slug":"/category/modules","permalink":"/cardano-multiplatform-lib/category/modules","navigation":{"previous":{"title":"Crate Architecture","permalink":"/cardano-multiplatform-lib/crate_architecture"},"next":{"title":"CBOR","permalink":"/cardano-multiplatform-lib/modules/cbor"}}}')}}]); \ No newline at end of file diff --git a/assets/js/f41b0af6.a76d7160.js b/assets/js/f41b0af6.a76d7160.js new file mode 100644 index 00000000..c7793647 --- /dev/null +++ b/assets/js/f41b0af6.a76d7160.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[650],{5783:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var a=t(5893),s=t(1151);const i={sidebar_position:6},r="Metadata",d={id:"modules/metadata",title:"Metadata",description:"Transaction Metadata format",source:"@site/docs/modules/metadata.mdx",sourceDirName:"modules",slug:"/modules/metadata",permalink:"/cardano-multiplatform-lib/modules/metadata",draft:!1,unlisted:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"CIP36",permalink:"/cardano-multiplatform-lib/modules/cip36"},next:{title:"WASM Usage",permalink:"/cardano-multiplatform-lib/modules/wasm"}},o={},c=[{value:"Transaction Metadata format",id:"transaction-metadata-format",level:2},{value:"Metadata limitations",id:"metadata-limitations",level:2},{value:"Direct use",id:"direct-use",level:2},{value:"JSON conversion",id:"json-conversion",level:2},{value:"Using a CDDL Subset",id:"using-a-cddl-subset",level:2},{value:"Raw Bytes Encoding",id:"raw-bytes-encoding",level:2}];function l(e){const n={a:"a",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h1,{id:"metadata",children:"Metadata"}),"\n",(0,a.jsx)(n.h2,{id:"transaction-metadata-format",children:"Transaction Metadata format"}),"\n",(0,a.jsxs)(n.p,{children:["Transaction after the Shelley hardfork can contain arbitrary transaction meta (",(0,a.jsx)(n.strong,{children:"note:"})," this is NOT the same as pool metadata)"]}),"\n",(0,a.jsx)(n.p,{children:"Transaction metadata takes the form of a map of metadatums, which are recursive JSON-like structures."}),"\n",(0,a.jsxs)(n.p,{children:["It is defined in ",(0,a.jsx)(n.a,{href:"https://tools.ietf.org/html/rfc8610",children:"CDDL"}),", a schema grammar for representing ",(0,a.jsx)(n.a,{href:"https://tools.ietf.org/html/rfc7049",children:"CBOR"})," binary encoding as:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"transaction_metadatum =\n { * transaction_metadatum => transaction_metadatum }\n / [ * transaction_metadatum ]\n / int\n / bytes .size (0..64)\n / text .size (0..64)\n\ntransaction_metadatum_label = uint\n\ntransaction_metadata =\n { * transaction_metadatum_label => transaction_metadatum }\n"})}),"\n",(0,a.jsxs)(n.p,{children:["For each use we use a metadatum label specific to our use into the ",(0,a.jsx)(n.code,{children:"TransactionMetadatum"})," map. If we had a JSON object such as"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-json",children:'{\n "receiver_id": "SJKdj34k3jjKFDKfjFUDfdjkfd",\n "sender_id": "jkfdsufjdk34h3Sdfjdhfduf873",\n "comment": "happy birthday",\n "tags": [0, 264, -1024, 32]\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"There are 4 ways we can achieve this with different trade-offs:"}),"\n",(0,a.jsxs)(n.ol,{children:["\n",(0,a.jsx)(n.li,{children:"Directly use: using the Metadata-related structures used in the library"}),"\n",(0,a.jsx)(n.li,{children:"JSON conversion: conversion to/from JSON using our utility functions"}),"\n",(0,a.jsx)(n.li,{children:"CDDL subset: writing a CDDL spec of this structure that is representable by that recursive metadatum CDDL"}),"\n",(0,a.jsx)(n.li,{children:"Raw bytes: encoding raw-bytes using our utility functions."}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Each section will give examples of how to encode a similar structure. Understanding CDDL is only necessary for the last 2 options, but it is fairly simple to understand."}),"\n",(0,a.jsx)(n.p,{children:"If your metadata schema is fixed and will be used frequently you should consider the CDDL spec option.\nIf your schema is not often used or used from many languages, the JSON option can be good as it is low set-up and fairly tech agnostic.\nIf your schema is very dynamic or non-existent, the direct use or JSON options are likely best.\nThe raw bytes option is only recommended if your data does not conform to the metadata format."}),"\n",(0,a.jsx)(n.h2,{id:"metadata-limitations",children:"Metadata limitations"}),"\n",(0,a.jsx)(n.p,{children:"These limitations are mentioned in the CDDL definition, but are worth also mentioning in prose:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Strings must be at most 64 bytes when UTF-8 encoded."}),"\n",(0,a.jsx)(n.li,{children:"Bytestrings are hex-encoded, with a maximum length of 64 bytes."}),"\n"]}),"\n",(0,a.jsx)(n.h2,{id:"direct-use",children:"Direct use"}),"\n",(0,a.jsx)(n.p,{children:"Upsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Flexible"}),"\n",(0,a.jsx)(n.li,{children:"Readable by other methods"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Downsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Can be quite tedious to write"}),"\n",(0,a.jsx)(n.li,{children:"Structural validation must be done by hand (partially)"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"As the metadatum structure is fairly expressive, we can directly use it using the structs in the metadata module of this library. These directly represent the types given in the CDDL. Namely:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"TransactionMetadatum - Can represent one of those 5 variant types."}),"\n",(0,a.jsx)(n.li,{children:"MetadataMap - The map variant that maps from metadatums to other metadatums. This is unordered and indexed by metadatums. This is like an object in JSON."}),"\n",(0,a.jsx)(n.li,{children:"MetadataList - An ordered list indexed starting at 0. This is like an array in JSON."}),"\n"]}),"\n",(0,a.jsxs)(n.p,{children:["The variants for numbers, bytes and text are not specific to metadata and are directly used with the general ",(0,a.jsx)(n.code,{children:"Int"})," type representing a signed or unsigned number, byte arrays accepting byte arrays/",(0,a.jsx)(n.code,{children:"Buffer"}),", and strings being JS strings."]}),"\n",(0,a.jsx)(n.p,{children:"We could construct the JSON example above with the following code:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:'const map = CardanoWasm.MetadataMap.new();\nmap.insert(\n CardanoWasm.TransactionMetadatum.new_text("receiver_id"),\n CardanoWasm.TransactionMetadatum.new_text("SJKdj34k3jjKFDKfjFUDfdjkfd"),\n);\nmap.insert(\n CardanoWasm.TransactionMetadatum.new_text("sender_id"),\n CardanoWasm.TransactionMetadatum.new_text("jkfdsufjdk34h3Sdfjdhfduf873"),\n);\nmap.insert(\n CardanoWasm.TransactionMetadatum.new_text("comment"),\n CardanoWasm.TransactionMetadatum.new_text("happy birthday"),\n);\nconst tags = CardanoWasm.MetadataList.new();\ntags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str("0"))));\ntags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str("264"))));\ntags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new_negative(CardanoWasm.BigNum.from_str("1024"))));\ntags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str("32"))));\nmap.insert(\n CardanoWasm.TransactionMetadatum.new_text("tags"),\n CardanoWasm.TransactionMetadatum.new_list(tags),\n);\nconst metadatum = CardanoWasm.TransactionMetadatum.new_map(map);\n'})}),"\n",(0,a.jsx)(n.p,{children:"We could then parse the information back as such:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:'try {\n const map = metadatum.as_map();\n const receiver = map.get(CardanoWasm.TransactionMetadatum.new_text("receiver_id"));\n const sender = map.get(CardanoWasm.TransactionMetadatum.new_text("sender_id"));\n const comment = map.get(CardanoWasm.TransactionMetadatum.new_text("comment"));\n const tags = map.get(CardanoWasm.TransactionMetadatum.new_text("tags"));\n} catch (e) {\n // structure did not match\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"For decoding in a more exploratory manner we can check the types first as such:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"function parseMetadata(metadata) {\n // we must check the type first to know how to handle it\n switch (metadata.kind()) {\n case CardanoWasm.TransactionMetadatumKind.MetadataMap:\n const mapRet = new Map();\n const map = metadata.as_map();\n const keys = maps.keys();\n for (var i = 0; i < keys.len(); i += 1) {\n const key = keys.get(i);\n const value = parseMetadata(map.get(key);\n mapRet.set(key, value);\n }\n return mapRet;\n case CardanoWasm.TransactionMetadatumKind.MetadataList:\n let arrRet = [];\n const arr = metadata.as_list();\n for (var i = 0; i < arr.len(); i += 1) {\n const elem = parseMetadata(arr.get(i));\n arrRet.push(elem);\n }\n return arrRet;\n case CardanoWasm.TransactionMetadatumKind.Int:\n const x = metadata.as_int();\n // If the integer is too big as_i32() returns undefined\n // to handle larger numbers we need to use x.as_positive() / x.as_negative() and\n // convert from BigNums after checking x.is_positive() first\n return x.as_i32();\n case CardanoWasm.TransactionMetadatumKind.Bytes:\n return Buffer.from(metadata.as_bytes());\n case CardanoWasm.TransactionMetadatumKind.Text:\n return metadata.as_text();\n }\n}\n"})}),"\n",(0,a.jsxs)(n.p,{children:["which recursively parses the ",(0,a.jsx)(n.code,{children:"TransactionMetadatum"})," struct and transforms it into a JS ",(0,a.jsx)(n.code,{children:"Map"})," / JS ",(0,a.jsx)(n.code,{children:"object"})," structure by manually checking the types."]}),"\n",(0,a.jsx)(n.h2,{id:"json-conversion",children:"JSON conversion"}),"\n",(0,a.jsx)(n.p,{children:"Upsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Flexible"}),"\n",(0,a.jsx)(n.li,{children:"Readable by other methods"}),"\n",(0,a.jsx)(n.li,{children:"Lowest set-up work involved"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Downsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:["Does not support negative integers between ",(0,a.jsx)(n.code,{children:"-2^64 + 1"})," and ",(0,a.jsx)(n.code,{children:"-2^63"})," (serde_json library restriction)"]}),"\n",(0,a.jsx)(n.li,{children:"Structural validation must be done by hand"}),"\n",(0,a.jsx)(n.li,{children:"Can use more space as string keyed maps are likely to be used more than arrays would be in the CDDL solutions"}),"\n"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:'const obj = {\n receiver_id: "SJKdj34k3jjKFDKfjFUDfdjkfd",\n sender_id: "jkfdsufjdk34h3Sdfjdhfduf873",\n comment: "happy birthday",\n tags: [0, 264, -1024, 32]\n};\nconst metadata = CardanoWasm.encode_json_str_to_metadatum(JSON.stringify(obj), CardanoWasm.MetadataJsonSchema.NoConversions);\nconst metadataString = CardanoWasm.decode_metadatum_to_json_str(metadata, CardanoWasm.MetadataJsonSchema.NoConversions);\n'})}),"\n",(0,a.jsxs)(n.p,{children:["To support an extended set of metadata we also support 3 additional modes for JSON conversion following IOHK's ",(0,a.jsx)(n.a,{href:"https://github.com/input-output-hk/cardano-node/blob/master/cardano-api/src/Cardano/Api/TxMetadata.hs",children:"cardano-node JSON schemas"}),"."]}),"\n",(0,a.jsx)(n.p,{children:"The three modes are:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"NoConversions"})," - Faithfully converts between the minimal shared feature set between JSON and Metadata"]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"BasicConversions"})," - Adds additional support for byte(as hex strings)/integers (as strings) keys / byte (as hex strings) values."]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"DetailedSchema"})," - Can convert almost all metadata into a specific JSON schema but is very verbose on the JSON side."]}),"\n"]}),"\n",(0,a.jsxs)(n.p,{children:["Details on the formats can be found in our library's metadata module or in the ",(0,a.jsx)(n.code,{children:"cardano-node"})," file linked above. ",(0,a.jsx)(n.code,{children:"DetailedSchema"})," is likely most useful if you need to parse any possible kind of metadata into JSON specifically, possibly to display or for debugging.\nFor most reasonable schemas ",(0,a.jsx)(n.code,{children:"NoConversions"})," should suffice, or ",(0,a.jsx)(n.code,{children:"BasicConversions"})," if byte/string keys and byte values are needed.\nIf you are in charge of your own schema and you do not need arbitrary keys, it is recommended not to use ",(0,a.jsx)(n.code,{children:"DetailedSchema"})," as it is significantly more complicated to use."]}),"\n",(0,a.jsxs)(n.p,{children:["The additions of ",(0,a.jsx)(n.code,{children:"BasicConversions"})," are demonstrated below"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-json",children:'{\n "0x8badf00d": "0xdeadbeef",\n "9": 5,\n "obj": {\n "a":[\n {\n "5": 2\n },\n {\n }\n ]\n }\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"which creates a map with 3 elements:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"4 byte bytestring (0x8badf00d) => 4 byte bytestring (0xdeadbeef)"}),"\n",(0,a.jsx)(n.li,{children:"int (9) => int (5)"}),"\n",(0,a.jsx)(n.li,{children:'string ("obj") => object (string ("a") => list [ object (int (5) => int (2)), object (empty) ])'}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:'All bytestrings must be prefixed with "0x" or they will be treated as regular strings.\nAll strings that parse as an integer such as "125" will be treated as a metadata integer.'}),"\n",(0,a.jsxs)(n.p,{children:["The ",(0,a.jsx)(n.code,{children:"DetailedSchema"})," is here:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-json",children:'{"map":[\n {\n "k":{"bytes":"8badf00d"},\n "v":{"bytes":"deadbeef"}\n },\n {\n "k":{"int":9},\n "v":{"int":5}\n },\n {\n "k":{"string":"obj"},\n "v":{"map":[\n {\n "k":{"string":"a"},\n "v":{"list":[\n {"map":[\n {\n "k":{"int":5},\n "v":{"int":2}\n }\n ]},\n {"map":[\n ]}\n ]}\n }\n ]}\n }\n]}\n'})}),"\n",(0,a.jsxs)(n.p,{children:["All values are represented as an object with 1 field with the key tagging the type and the value being the value itself.\nThis is the exact same metadata as the ",(0,a.jsx)(n.code,{children:"BasicConversions"}),' example which should illustrate that it is much more verbose to use this format,\nbut it can represent every kind of metadata possible, including non-string/byte/int keys.\nDo note that byte strings do not start with "0x", unlike with ',(0,a.jsx)(n.code,{children:"BasicConversions"}),"."]}),"\n",(0,a.jsx)(n.p,{children:"This additional freedom in keys can be seen here:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-json",children:'{"map":[\n {\n "k":{"list":[\n {"map": [\n {\n "k": {"int": 5},\n "v": {"int": 7}\n },\n {\n "k": {"string": "hello"},\n "v": {"string": "world"}\n }\n ]},\n {"bytes": "ff00ff00"}\n ]},\n "v":{"int":5}\n }\n]}\n'})}),"\n",(0,a.jsx)(n.p,{children:"has a 1-element map with a value of just 5, but with a very complicated key consisting of a list with 2 elements:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:'a 2-element map (5 => 7, "hello" => "world")'}),"\n",(0,a.jsx)(n.li,{children:"a bytestring (0xFF00FF00)"}),"\n"]}),"\n",(0,a.jsxs)(n.p,{children:["Most reasonable metadata formats, however, likely do not use map/key/compound keys and thus this is more of a fringe use or when all possible metadata must be examined from JSON (almost) without exception.\nDue to library implementation details it can still fail to decode if there is a very negative number between ",(0,a.jsx)(n.code,{children:"-2^64 + 1"})," and ",(0,a.jsx)(n.code,{children:"-2^63"}),"."]}),"\n",(0,a.jsx)(n.h2,{id:"using-a-cddl-subset",children:"Using a CDDL Subset"}),"\n",(0,a.jsx)(n.p,{children:"Upsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Automatic structural typing in deserialization"}),"\n",(0,a.jsx)(n.li,{children:"Readable by other methods"}),"\n",(0,a.jsx)(n.li,{children:"Possible reduced space due to array structs not serializing keys"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Downsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Requires additional set-up"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"For static or relatively static types this is probably the best choice, especially if you care about structural validation or need the binary types or more complex keys."}),"\n",(0,a.jsx)(n.p,{children:"As we saw in the other examples, most reasonable structures can be encoded using the standard metadata CDDL as it is almost a superset of JSON outside of true/false/null. Not only this, but if we represent a struct using an array in CDDL such as:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"foo = [\n receiver_id: text,\n sender_id: text,\n comment: text,\n tags: [*int]\n]\n"})}),"\n",(0,a.jsx)(n.p,{children:"there is space savings as the keys are not stored as it is represented as an ordered array of 4 elements instead of a direct map encoding of:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:'foo = {\n receiver_id: text,\n sender_id: text,\n comment: text,\n tags": [*int]\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"which would serialize the keys as strings inside the resulting CBOR. Using these CDDL definitions for the example JSON structure we had results in sizes of 89 bytes for the array definition and 124 bytes for the map one. Using the JSON encoding would also result in a metadata size of 124 bytes. Maps however do have the advantage of easy optional fields and a more readable metadata for external users who don't have access to the CDDL as the field names will be stored directly."}),"\n",(0,a.jsxs)(n.p,{children:["After you have created your CDDL definition, if you need to check that your CDDL conforms to the metadata CDDL we have a tool located in the ",(0,a.jsx)(n.code,{children:"/tools/metadata-cddl-checker/"})," directory. Move to this directory and put your CDDL in a file called ",(0,a.jsx)(n.code,{children:"input.cddl"})," there first, then run"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"cargo build\ncargo run\n"})}),"\n",(0,a.jsxs)(n.p,{children:["Once we have the CDDL file and it has passed metadata format validation we can use the ",(0,a.jsx)(n.a,{href:"https://github.com/Emurgo/cddl-codegen",children:"cddl-codegen"})," tool that we used to initially generate the serialization/deserialization/structural code for the core Shelley structures from the ",(0,a.jsx)(n.a,{href:"https://github.com/input-output-hk/cardano-ledger-specs/blob/master/shelley/chain-and-ledger/shelley-spec-ledger-test/cddl-files/shelley.cddl",children:"shelley cddl spec"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["Assuming we are in the ",(0,a.jsx)(n.code,{children:"cddl-codegen"})," root directory and have created a ",(0,a.jsx)(n.code,{children:"input.cddl"})," file in that directory containing the CDDL we wish to generate we can build and code-generate with"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"cargo build\ncargo run\n"})}),"\n",(0,a.jsxs)(n.p,{children:["which should generate a wasm-convertible rust library for parsing our CDDL definition in the ",(0,a.jsx)(n.code,{children:"/export/"})," directory.\nAfter this we need to generate a wasm package from the rust code by running the following (you can do ",(0,a.jsx)(n.code,{children:"--target=browser"})," too)"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{children:"cd export\nwasm-pack build --target=nodejs\nwasm-pack pack\n"})}),"\n",(0,a.jsxs)(n.p,{children:["which should give you the library as a package in the ",(0,a.jsx)(n.code,{children:"/pkg/"})," directory."]}),"\n",(0,a.jsx)(n.p,{children:"Once we have imported the library we can then use it as such:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:'const tags = OurMetadataLib.Ints.new();\n// if we have smaller (32-bit signed) numbers we can construct easier\ntags.add(OurMetadataLib.Int.new_i32(0));\n// but for bigger (>= 2^32) numbers we must use BigNum and specify the sign ourselves\ntags.add(OurMetadataLib.Int.new(CardanoWasm.Int.from_str("264")));\n// and for negative large (< -2^32) numbers (here we construct -1024)\ntags.add(OurMetadataLib.Int.new_negative(CardanoWasm.Int.from_str("1024")));\ntags.add(OurMetadataLib.Int.new_i32(32));\nconst map = OurMetadataLib.Foo.new("SJKdj34k3jjKFDKfjFUDfdjkfd", "jkfdsufjdk34h3Sdfjdhfduf873", "happy birthday", tags)\nlet metadata;\ntry {\n metadata = CardanoWasm.TransactionMetadata.from_bytes(map.to_bytes());\n} catch (e) {\n // this should never happen if OurMetadataLib was generated from compatible CDDL with the metadata definition\n}\n'})}),"\n",(0,a.jsx)(n.p,{children:"likewise you can parse the metadata back very simply with:"}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"let cddlMetadata;\ntry {\n cddlMetadata = OurMetadataLib.Foo.from_bytes(metadata.to_bytes());\n} catch (e) {\n // this should never happen if OurMetadataLib was generated from compatible CDDL with the metadata definition\n}\n// we can now directly access the fields with cddlMetadata.receiver_id(), etc\n"})}),"\n",(0,a.jsxs)(n.p,{children:["If we take advantage of the additional primitives not defined in CDDL but defined for ",(0,a.jsx)(n.code,{children:"cddl-codegen"}),", then we can specify precisions of ",(0,a.jsx)(n.code,{children:"u32"}),", ",(0,a.jsx)(n.code,{children:"u64"}),", ",(0,a.jsx)(n.code,{children:"i64"}),", ",(0,a.jsx)(n.code,{children:"i32"})," for specifying 32 or 64 bits instead of just a general purpose ",(0,a.jsx)(n.code,{children:"uint"}),"/",(0,a.jsx)(n.code,{children:"nint"}),"/",(0,a.jsx)(n.code,{children:"int"}),".\nIf you know your metadata will always be within one of these ranges it can be much more convenient to work with, and if you have signed data this will also make it easier to work with instead of the ",(0,a.jsx)(n.code,{children:"Int"})," class that CDDL ",(0,a.jsx)(n.code,{children:"int"})," might generate, since that is either an up to 64-bit positive or an up to 64 negative numbers.\nThis is particularly useful here as lists of CDDL primitives can be exposed directly as ",(0,a.jsx)(n.code,{children:"Vec<T>"})," to wasm from rust, but when we have ",(0,a.jsx)(n.code,{children:"int"})," (converts to ",(0,a.jsx)(n.code,{children:"Int"})," struct) or ",(0,a.jsx)(n.code,{children:"uint"})," (converts to ",(0,a.jsx)(n.code,{children:"BigNum"})," struct) a separate structure like that ",(0,a.jsx)(n.code,{children:"Ints"})," one used above is used. Using the 32-bit versions allows direct js ",(0,a.jsx)(n.code,{children:"number"})," conversions to/from wasm."]}),"\n",(0,a.jsxs)(n.p,{children:["If we simply change the ",(0,a.jsx)(n.code,{children:"tags"})," field to ",(0,a.jsx)(n.code,{children:"tags: [+i32]"})," our code becomes:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:'// notice how we can directly work with js numbers here now!\n// but remember they must fit into a 32-bit number now - no 64-bit numbers like are allowed in the metadata\nconst tags = [0, 264, -1024, 32];\nconst map = OurMetadataLib.Foo.new("SJKdj34k3jjKFDKfjFUDfdjkfd", "jkfdsufjdk34h3Sdfjdhfduf873", "happy birthday", tags)\n'})}),"\n",(0,a.jsxs)(n.p,{children:["and deserializaing likewise is much simpler as ",(0,a.jsx)(n.code,{children:"metadata.tags()"})," will return a JS array or numbers rather than a rust-wasm struct that must be accessed via the wasm boundary."]}),"\n",(0,a.jsx)(n.h2,{id:"raw-bytes-encoding",children:"Raw Bytes Encoding"}),"\n",(0,a.jsx)(n.p,{children:"Upsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Can store arbitrary data"}),"\n",(0,a.jsx)(n.li,{children:"Potential space-savings if the data is compressed"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"Downsides:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsx)(n.li,{children:"Not readable by other methods - must be decoded using this method"}),"\n",(0,a.jsx)(n.li,{children:"Requires additional set-up"}),"\n"]}),"\n",(0,a.jsx)(n.p,{children:"While most data would likely conform to the metadata CDDL subset (or JSON), if your data does not fit there then this encoding style will be necessary."}),"\n",(0,a.jsx)(n.p,{children:"If you still want to take advantage of CDDL type-checking it is possible to create a library just as in the CDDL subset section but without running the checker tool. This could be useful if you are using CDDL outside of the metadata CDDL structure. Otherwise, you can store whatever bytes you want."}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.em,{children:"Note"}),": To conform with the 64-byte limitation on metadata binary values, this method will split the bytes into 64-byte chunks"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-javascript",children:"const bytes = /* whatever method you want - you can use the CDDL solution in the 3rd option here */\nconst metadata = CardanoWasm.encode_arbitrary_bytes_as_metadatum(bytes);\nconst decoded_bytes = CardanoWasm.decode_arbitrary_bytes_from_metadatum(metadata);\nassertEquals(bytes, decoded_bytes);\n"})})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>r});var a=t(7294);const s={},i=a.createContext(s);function r(e){const n=a.useContext(i);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),a.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f438ab24.413653ef.js b/assets/js/f438ab24.413653ef.js new file mode 100644 index 00000000..81c152bc --- /dev/null +++ b/assets/js/f438ab24.413653ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[698],{3769:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/main.a2f566e1.js b/assets/js/main.a2f566e1.js new file mode 100644 index 00000000..148360f6 --- /dev/null +++ b/assets/js/main.a2f566e1.js @@ -0,0 +1,2 @@ +/*! For license information please see main.a2f566e1.js.LICENSE.txt */ +(self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[]).push([[179],{1728:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});n(7294);var r=n(8356),a=n.n(r),o=n(6887);const i={"0109cddc":[()=>n.e(54).then(n.t.bind(n,2776,19)),"/home/sebdev20/Documents/git/cardano-multiplatform-lib/docs/.docusaurus/@easyops-cn/docusaurus-search-local/default/plugin-route-context-module-100.json",2776],"024b6465":[()=>n.e(675).then(n.bind(n,2467)),"@site/docs/modules/multi-era/index.md",2467],"14eb3368":[()=>Promise.all([n.e(532),n.e(817)]).then(n.bind(n,4228)),"@theme/DocCategoryGeneratedIndexPage",4228],17896441:[()=>Promise.all([n.e(532),n.e(918)]).then(n.bind(n,8032)),"@theme/DocItem",8032],"187dbc21":[()=>n.e(455).then(n.bind(n,6996)),"@site/docs/modules/core/index.md",6996],"1a4e3797":[()=>Promise.all([n.e(532),n.e(920)]).then(n.bind(n,2027)),"@theme/SearchPage",2027],"3c02cfd4":[()=>n.e(684).then(n.bind(n,8635)),"@site/docs/modules/builders/index.mdx",8635],"42a4384b":[()=>n.e(810).then(n.bind(n,3458)),"@site/docs/modules/chain/index.md",3458],"456dc1ab":[()=>n.e(533).then(n.bind(n,2098)),"@site/docs/getting_started.mdx",2098],"5e95c892":[()=>n.e(661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"61955a96":[()=>n.e(595).then(n.bind(n,5338)),"@site/docs/modules/wasm.mdx",5338],"6c2c22d1":[()=>n.e(580).then(n.bind(n,2952)),"@site/docs/modules/cbor.mdx",2952],"8019ae33":[()=>n.e(11).then(n.bind(n,7463)),"@site/docs/modules/crypto/index.mdx",7463],"82878dee":[()=>n.e(928).then(n.t.bind(n,4175,19)),"~docs/default/category-cardano-multiplatform-lib-tutorialsidebar-category-crypto-331.json",4175],"8cf5c8a6":[()=>n.e(926).then(n.t.bind(n,7965,19)),"~docs/default/category-cardano-multiplatform-lib-tutorialsidebar-category-builders-402.json",7965],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],a6c5da82:[()=>n.e(932).then(n.bind(n,5200)),"@site/docs/modules/CIP25.mdx",5200],a7bd4aaa:[()=>n.e(518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a94703ab:[()=>Promise.all([n.e(532),n.e(368)]).then(n.bind(n,2674)),"@theme/DocRoot",2674],a9e02168:[()=>n.e(663).then(n.t.bind(n,960,19)),"~docs/default/category-cardano-multiplatform-lib-tutorialsidebar-category-multi-era-95c.json",960],b5ddca27:[()=>n.e(258).then(n.bind(n,2608)),"@site/docs/modules/crypto/generating_keys.mdx",2608],bbe6d832:[()=>n.e(461).then(n.bind(n,2119)),"@site/docs/modules/cip36.mdx",2119],c377a04b:[()=>n.e(971).then(n.bind(n,9925)),"@site/docs/index.md",9925],c7581e31:[()=>n.e(381).then(n.t.bind(n,3218,19)),"~docs/default/category-cardano-multiplatform-lib-tutorialsidebar-category-core-ad0.json",3218],d16dc6d6:[()=>n.e(200).then(n.bind(n,8646)),"@site/docs/modules/json.mdx",8646],d1737d8e:[()=>n.e(392).then(n.t.bind(n,654,19)),"~docs/default/category-cardano-multiplatform-lib-tutorialsidebar-category-chain-76b.json",654],dd8d23a4:[()=>n.e(953).then(n.bind(n,8516)),"@site/docs/modules/builders/generating_transactions.mdx",8516],e7958d21:[()=>n.e(659).then(n.bind(n,5871)),"@site/docs/crate_architecture.mdx",5871],eb14df67:[()=>n.e(31).then(n.t.bind(n,3157,19)),"~docs/default/category-cardano-multiplatform-lib-tutorialsidebar-category-modules-25d.json",3157],f41b0af6:[()=>n.e(650).then(n.bind(n,5783)),"@site/docs/modules/metadata.mdx",5783],f438ab24:[()=>n.e(698).then(n.t.bind(n,3769,19)),"/home/sebdev20/Documents/git/cardano-multiplatform-lib/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769]};var l=n(5893);function s(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,l.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,l.jsx)("p",{children:String(t)}),(0,l.jsx)("div",{children:(0,l.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,l.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,l.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,l.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,l.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,l.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,l.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,l.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var u=n(9670),c=n(226);function d(e,t){if("*"===e)return a()({loading:s,loader:()=>n.e(772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,l.jsx)(c.z,{value:{plugin:{name:"native",id:"default"}},children:(0,l.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},f=[],p=[],h=(0,u.Z)(r);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],f.push(r[1]),p.push(r[2]))})),a().Map({loading:s,loader:d,modules:f,webpack:()=>p,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const l=n.split(".");l.slice(0,-1).forEach((e=>{i=i[e]})),i[l[l.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;return delete a.__context,(0,l.jsx)(c.z,{value:i,children:(0,l.jsx)(o,{...a,...n})})}})}const f=[{path:"/cardano-multiplatform-lib/search",component:d("/cardano-multiplatform-lib/search","6b8"),exact:!0},{path:"/cardano-multiplatform-lib/",component:d("/cardano-multiplatform-lib/","6de"),routes:[{path:"/cardano-multiplatform-lib/",component:d("/cardano-multiplatform-lib/","001"),routes:[{path:"/cardano-multiplatform-lib/",component:d("/cardano-multiplatform-lib/","57d"),routes:[{path:"/cardano-multiplatform-lib/category/builders",component:d("/cardano-multiplatform-lib/category/builders","abb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/category/chain",component:d("/cardano-multiplatform-lib/category/chain","33e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/category/core",component:d("/cardano-multiplatform-lib/category/core","e60"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/category/crypto",component:d("/cardano-multiplatform-lib/category/crypto","f2e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/category/modules",component:d("/cardano-multiplatform-lib/category/modules","d7c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/category/multi-era",component:d("/cardano-multiplatform-lib/category/multi-era","98e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/crate_architecture",component:d("/cardano-multiplatform-lib/crate_architecture","6ae"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/getting_started",component:d("/cardano-multiplatform-lib/getting_started","712"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/builders/",component:d("/cardano-multiplatform-lib/modules/builders/","f4c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/builders/generating_transactions",component:d("/cardano-multiplatform-lib/modules/builders/generating_transactions","5d8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/cbor",component:d("/cardano-multiplatform-lib/modules/cbor","27a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/chain/",component:d("/cardano-multiplatform-lib/modules/chain/","2fe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/CIP25",component:d("/cardano-multiplatform-lib/modules/CIP25","99f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/cip36",component:d("/cardano-multiplatform-lib/modules/cip36","6ab"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/core/",component:d("/cardano-multiplatform-lib/modules/core/","d45"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/crypto/",component:d("/cardano-multiplatform-lib/modules/crypto/","a94"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/crypto/generating_keys",component:d("/cardano-multiplatform-lib/modules/crypto/generating_keys","425"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/json",component:d("/cardano-multiplatform-lib/modules/json","6a4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/metadata",component:d("/cardano-multiplatform-lib/modules/metadata","0a2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/multi-era/",component:d("/cardano-multiplatform-lib/modules/multi-era/","229"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/modules/wasm",component:d("/cardano-multiplatform-lib/modules/wasm","db2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/cardano-multiplatform-lib/",component:d("/cardano-multiplatform-lib/","6ae"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},7221:(e,t,n)=>{"use strict";var r=n(7294),a=n(745),o=n(3727),i=n(405),l=n(412);const s=[n(2497),n(3310),n(8320),n(2295)];var u=n(723),c=n(6550),d=n(8790),f=n(5893);function p(e){let{children:t}=e;return(0,f.jsx)(f.Fragment,{children:t})}var h=n(5742),m=n(2263),g=n(4996),y=n(6668),b=n(1944),v=n(4711),w=n(9727),x=n(3320),k=n(8780),S=n(197);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,m.Z)(),r=(0,v.l)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,f.jsxs)(h.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,f.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,f.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,f.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.Z)(),{pathname:r}=(0,c.TH)();return e+(0,k.applyTrailingSlash)((0,g.Z)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,f.jsxs)(h.Z,{children:[(0,f.jsx)("meta",{property:"og:url",content:a}),(0,f.jsx)("link",{rel:"canonical",href:a})]})}function C(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{metadata:t,image:n}=(0,y.L)();return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsxs)(h.Z,{children:[(0,f.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,f.jsx)("body",{className:w.h})]}),n&&(0,f.jsx)(b.d,{image:n}),(0,f.jsx)(_,{}),(0,f.jsx)(E,{}),(0,f.jsx)(S.Z,{tag:x.HX,locale:e}),(0,f.jsx)(h.Z,{children:t.map(((e,t)=>(0,f.jsx)("meta",{...e},t)))})]})}const T=new Map;function L(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var N=n(8934),j=n(8940),P=n(469);function A(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const O=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,P.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),A("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function I(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class R extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?A("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=A("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),I(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,f.jsx)(O,{previousLocation:this.previousLocation,location:t,children:(0,f.jsx)(c.AW,{location:t,render:()=>e})})}}const F=R,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${D}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${z}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${z}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function $(){const{siteConfig:{baseUrl:e}}=(0,m.Z)();return(0,f.jsx)(f.Fragment,{children:!l.Z.canUseDOM&&(0,f.jsx)(h.Z,{children:(0,f.jsx)("script",{children:B(e)})})})}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,m.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?(0,f.jsx)($,{}):null}function Q(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,m.Z)(),o=(0,g.Z)(e),{htmlLang:i,direction:l}=a[r];return(0,f.jsxs)(h.Z,{children:[(0,f.jsx)("html",{lang:i,dir:l}),(0,f.jsx)("title",{children:t}),(0,f.jsx)("meta",{property:"og:title",content:t}),(0,f.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,f.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,f.jsx)("link",{rel:"icon",href:o})]})}var Z=n(4763),H=n(2389);function V(){const e=(0,H.Z)();return(0,f.jsx)(h.Z,{children:(0,f.jsx)("html",{"data-has-hydrated":e})})}function W(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return(0,f.jsx)(Z.Z,{children:(0,f.jsx)(j.M,{children:(0,f.jsxs)(N.t,{children:[(0,f.jsxs)(p,{children:[(0,f.jsx)(Q,{}),(0,f.jsx)(C,{}),(0,f.jsx)(U,{}),(0,f.jsx)(F,{location:L(t),children:e})]}),(0,f.jsx)(V,{})]})})})}var q=n(6887);const G=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(9670);const K=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!K.has(e))(e))return!1;K.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(q).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?G(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),I(e))},te=Object.freeze(ee),ne=Boolean(!0);if(l.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,f.jsx)(i.B6,{children:(0,f.jsx)(o.VK,{children:(0,f.jsx)(W,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},l=()=>{if(ne)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const o=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{o.render(t)}))}};I(window.location.pathname).then(l)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>f});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/cardano-multiplatform-lib/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/cardano-multiplatform-lib/","mainDocId":"index","docs":[{"id":"crate_architecture","path":"/cardano-multiplatform-lib/crate_architecture","sidebar":"tutorialSidebar"},{"id":"getting_started","path":"/cardano-multiplatform-lib/getting_started","sidebar":"tutorialSidebar"},{"id":"index","path":"/cardano-multiplatform-lib/","sidebar":"tutorialSidebar"},{"id":"modules/builders/generating_transactions","path":"/cardano-multiplatform-lib/modules/builders/generating_transactions","sidebar":"tutorialSidebar"},{"id":"modules/builders/index","path":"/cardano-multiplatform-lib/modules/builders/","sidebar":"tutorialSidebar"},{"id":"modules/cbor","path":"/cardano-multiplatform-lib/modules/cbor","sidebar":"tutorialSidebar"},{"id":"modules/chain/index","path":"/cardano-multiplatform-lib/modules/chain/","sidebar":"tutorialSidebar"},{"id":"modules/CIP25","path":"/cardano-multiplatform-lib/modules/CIP25","sidebar":"tutorialSidebar"},{"id":"modules/cip36","path":"/cardano-multiplatform-lib/modules/cip36","sidebar":"tutorialSidebar"},{"id":"modules/core/index","path":"/cardano-multiplatform-lib/modules/core/","sidebar":"tutorialSidebar"},{"id":"modules/crypto/generating_keys","path":"/cardano-multiplatform-lib/modules/crypto/generating_keys","sidebar":"tutorialSidebar"},{"id":"modules/crypto/index","path":"/cardano-multiplatform-lib/modules/crypto/","sidebar":"tutorialSidebar"},{"id":"modules/json","path":"/cardano-multiplatform-lib/modules/json","sidebar":"tutorialSidebar"},{"id":"modules/metadata","path":"/cardano-multiplatform-lib/modules/metadata","sidebar":"tutorialSidebar"},{"id":"modules/multi-era/index","path":"/cardano-multiplatform-lib/modules/multi-era/","sidebar":"tutorialSidebar"},{"id":"modules/wasm","path":"/cardano-multiplatform-lib/modules/wasm","sidebar":"tutorialSidebar"},{"id":"/category/modules","path":"/cardano-multiplatform-lib/category/modules","sidebar":"tutorialSidebar"},{"id":"/category/core","path":"/cardano-multiplatform-lib/category/core","sidebar":"tutorialSidebar"},{"id":"/category/chain","path":"/cardano-multiplatform-lib/category/chain","sidebar":"tutorialSidebar"},{"id":"/category/crypto","path":"/cardano-multiplatform-lib/category/crypto","sidebar":"tutorialSidebar"},{"id":"/category/multi-era","path":"/cardano-multiplatform-lib/category/multi-era","sidebar":"tutorialSidebar"},{"id":"/category/builders","path":"/cardano-multiplatform-lib/category/builders","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/cardano-multiplatform-lib/","label":"Introduction"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"3.0.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.0.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.1"},"docusaurus-tailwindcss":{"type":"local"},"@easyops-cn/docusaurus-search-local":{"type":"package","name":"@easyops-cn/docusaurus-search-local","version":"0.40.0"}}}');var u=n(5893);const c={siteConfig:a.default,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},d=r.createContext(c);function f(e){let{children:t}=e;return(0,u.jsx)(d.Provider,{value:c,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(412),o=n(5742),i=n(8780),l=n(8862),s=n(5893);function u(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,s.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,s.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,s.jsx)(c,{error:t})]})}function c(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,s.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,s.jsxs)(p,{fallback:()=>(0,s.jsx)(u,{error:t,tryAgain:n}),children:[(0,s.jsx)(o.Z,{children:(0,s.jsx)("title",{children:"Page Error"})}),(0,s.jsx)(l.Z,{children:(0,s.jsx)(u,{error:t,tryAgain:n})})]})}const f=e=>(0,s.jsx)(d,{...e});class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??f)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(405),a=n(5893);function o(e){return(0,a.jsx)(r.ql,{...e})}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(3727),o=n(8780),i=n(2263),l=n(3919),s=n(412),u=n(5893);const c=r.createContext({collectLink:()=>{}});var d=n(4996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:y=!0,...b}=e;const{siteConfig:{trailingSlash:v,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:x}=(0,d.C)(),k=(0,r.useContext)(c),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=f||p;const _=(0,l.Z)(E),C=E?.replace("pathname://","");let T=void 0!==C?(L=C,y&&(e=>e.startsWith("/"))(L)?x(L):L):void 0;var L;T&&_&&(T=(0,o.applyTrailingSlash)(T,{trailingSlash:v,baseUrl:w}));const N=(0,r.useRef)(!1),j=n?a.OL:a.rU,P=s.Z.canUseIntersectionObserver,A=(0,r.useRef)(),O=()=>{N.current||null==T||(window.docusaurus.preload(T),N.current=!0)};(0,r.useEffect)((()=>(!P&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{P&&A.current&&A.current.disconnect()})),[A,T,P,_]);const I=T?.startsWith("#")??!1,R=!T||!_||I;return R||g||k.collectLink(T),R?(0,u.jsx)("a",{ref:S,href:T,...E&&!_&&{target:"_blank",rel:"noopener noreferrer"},...b}):(0,u.jsx)(j,{...b,onMouseEnter:O,onTouchStart:O,innerRef:e=>{S.current=e,P&&e&&_&&(A.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(A.current.unobserve(e),A.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),A.current.observe(e))},to:T,...n&&{isActive:m,activeClassName:h}})}const p=r.forwardRef(f)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u,I:()=>s});var r=n(7294),a=n(5893);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(7529);function l(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function s(e,t){let{message:n,id:r}=e;return o(l({message:n,id:r}),t)}function u(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=l({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const l=a?`${a}.${o}`:o;r(i)?e(i,l):t[l]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),l=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:l,children:t})}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>m,gA:()=>f,_r:()=>c,Jo:()=>g,zh:()=>d,yW:()=>h,gB:()=>p});var r=n(6550),a=n(2263),o=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function p(e){return d(e).versions}function h(e){const t=d(e);return l(t)}function m(e){const t=d(e),{pathname:n}=(0,r.TH)();return s(t,n)}function g(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(2573),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(4294)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},2503:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(512),a=n(5999),o=n(6668),i=n(9960);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var s=n(5893);function u(e){let{as:t,id:n,...u}=e;const{navbar:{hideOnScroll:c}}=(0,o.L)();if("h1"===t||!n)return(0,s.jsx)(t,{...u,id:void 0});const d=(0,a.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,s.jsxs)(t,{...u,className:(0,r.Z)("anchor",c?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,s.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(5893);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},8862:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Rt});var r=n(7294),a=n(512),o=n(4763),i=n(1944),l=n(6550),s=n(5999),u=n(5936),c=n(5893);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,l.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,u.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const h=(0,s.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??h,{containerRef:n,onClick:r}=p();return(0,c.jsx)("div",{ref:n,role:"region","aria-label":h,children:(0,c.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(5281),y=n(9727);const b={skipToContent:"skipToContent_fXgn"};function v(){return(0,c.jsx)(m,{className:b.skipToContent})}var w=n(6668),x=n(9689);function k(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,c.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,c.jsx)("g",{stroke:r,strokeWidth:a,children:(0,c.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,c.jsx)("button",{type:"button","aria-label":(0,s.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.Z)("clean-btn close",S.closeButton,e.className),children:(0,c.jsx)(k,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return(0,c.jsx)("div",{...e,className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function L(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,x.nT)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,c.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,c.jsx)("div",{className:T.announcementBarPlaceholder}),(0,c.jsx)(C,{className:T.announcementBarContent}),o&&(0,c.jsx)(E,{onClick:n,className:T.announcementBarClose})]})}var N=n(2961),j=n(2466);var P=n(902),A=n(3102);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,N.e)(),t=(0,A.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,P.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,c.jsx)(O.Provider,{value:n,children:t})}function R(e){if(e.component){const t=e.component;return(0,c.jsx)(t,{...e.props})}}function F(){const e=(0,r.useContext)(O);if(!e)throw new P.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,A.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:R(o)})),[a,o,t])}function D(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=F();return(0,c.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,c.jsxs)("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,c.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var M=n(2949),z=n(2389);function B(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function $(e){return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,c.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const U={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function Q(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,z.Z)(),l=(0,s.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,s.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,s.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,c.jsx)("div",{className:(0,a.Z)(U.toggle,t),children:(0,c.jsxs)("button",{className:(0,a.Z)("clean-btn",U.toggleButton,!i&&U.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:l,"aria-label":l,"aria-live":"polite",children:[(0,c.jsx)(B,{className:(0,a.Z)(U.toggleIcon,U.lightToggleIcon)}),(0,c.jsx)($,{className:(0,a.Z)(U.toggleIcon,U.darkToggleIcon)})]})})}const Z=r.memo(Q),H={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function V(e){let{className:t}=e;const n=(0,w.L)().navbar.style,r=(0,w.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,M.I)();return r?null:(0,c.jsx)(Z,{className:t,buttonClassName:"dark"===n?H.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var W=n(1327);function q(){return(0,c.jsx)(W.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function G(){const e=(0,N.e)();return(0,c.jsx)("button",{type:"button","aria-label":(0,s.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,c.jsx)(k,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,c.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,c.jsx)(q,{}),(0,c.jsx)(V,{className:"margin-right--md"}),(0,c.jsx)(G,{})]})}var K=n(9960),X=n(4996),J=n(3919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:l,prependBaseUrlToHref:s,...u}=e;const d=(0,X.Z)(r),f=(0,X.Z)(t),p=(0,X.Z)(a,{forcePrependBaseUrl:!0}),h=o&&a&&!(0,J.Z)(a),m=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,c.jsxs)(c.Fragment,{children:[o,h&&(0,c.jsx)(te.Z,{...l&&{width:12,height:12}})]})};return a?(0,c.jsx)(K.Z,{href:s?p:a,...u,...m}):(0,c.jsx)(K.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(f)},...u,...m})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,c.jsx)(ne,{className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,c.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,c.jsx)("li",{className:"menu__list-item",children:(0,c.jsx)(ne,{className:(0,a.Z)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,c.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(6043),le=n(8596),se=n(2263);const ue={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ce(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:o,onClick:i,...l}=e;const s=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[s]),(0,c.jsxs)("div",{ref:s,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u}),children:[(0,c.jsx)(ne,{"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,a.Z)("navbar__link",o),...l,onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))},children:l.children??l.label}),(0,c.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(We,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function fe(e){let{items:t,className:n,position:o,onClick:i,...s}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,l.TH)();return t.replace(e,"/")}(),d=ce(t,u),{collapsed:f,toggleCollapsed:p,setCollapsed:h}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&h(!d)}),[u,d,h]),(0,c.jsxs)("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f}),children:[(0,c.jsx)(ne,{role:"button",className:(0,a.Z)(ue.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...s,onClick:e=>{e.preventDefault(),p()},children:s.children??s.label}),(0,c.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f,children:t.map(((e,t)=>(0,r.createElement)(We,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function pe(e){let{mobile:t=!1,...n}=e;const r=t?fe:de;return(0,c.jsx)(r,{...n})}var he=n(4711);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,c.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,c.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const ge="iconLanguage_nlXk";var ye=n(1029),be=n(1728),ve=n(373),we=n(143),xe=n(22),ke=n(8202),Se=n(3926),Ee=n(1073),_e=n(2539),Ce=n(726);const Te='<svg width="20" height="20" viewBox="0 0 20 20"><path d="M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linejoin="round"></path></svg>',Le='<svg width="20" height="20" viewBox="0 0 20 20"><path d="M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg>',Ne='<svg width="20" height="20" viewBox="0 0 20 20"><path d="M17 5H3h14zm0 5H3h14zm0 5H3h14z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linejoin="round"></path></svg>',je='<svg width="20" height="20" viewBox="0 0 20 20"><g stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><path d="M18 3v4c0 2-2 4-4 4H2"></path><path d="M8 17l-6-6 6-6"></path></g></svg>',Pe='<svg width="40" height="40" viewBox="0 0 20 20" fill="none" fill-rule="evenodd" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M15.5 4.8c2 3 1.7 7-1 9.7h0l4.3 4.3-4.3-4.3a7.8 7.8 0 01-9.8 1m-2.2-2.2A7.8 7.8 0 0113.2 2.4M2 18L18 2"></path></svg>',Ae='<svg viewBox="0 0 24 54"><g stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><path d="M8 6v42M20 27H8.3"></path></g></svg>',Oe='<svg viewBox="0 0 24 54"><g stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><path d="M8 6v21M20 27H8.3"></path></g></svg>',Ie={searchBar:"searchBar_RVTs",dropdownMenu:"dropdownMenu_qbY6",searchBarLeft:"searchBarLeft_MXDe",suggestion:"suggestion_fB_2",cursor:"cursor_eG29",hitTree:"hitTree_kk6K",hitIcon:"hitIcon_a7Zy",hitPath:"hitPath_ieM4",noResultsIcon:"noResultsIcon_EBY5",hitFooter:"hitFooter_E9YW",hitWrapper:"hitWrapper_sAK8",hitTitle:"hitTitle_vyVt",hitAction:"hitAction_NqkB",hideAction:"hideAction_vcyE",noResults:"noResults_l6Q3",searchBarContainer:"searchBarContainer_NW3z",searchBarLoadingRing:"searchBarLoadingRing_YnHq",searchClearButton:"searchClearButton_qk4g",searchIndexLoading:"searchIndexLoading_EJ1f",searchHintContainer:"searchHintContainer_Pkmr",searchHint:"searchHint_iIMx",focused:"focused_OWtg",input:"input_FOTf",hint:"hint_URu1",suggestions:"suggestions_X8XU",dataset:"dataset_QiCy",empty:"empty_eITn"};function Re(e){let{document:t,type:n,page:r,metadata:a,tokens:o,isInterOfTree:i,isLastOfTree:l}=e;const s=0===n,u=1===n,c=[];i?c.push(Ae):l&&c.push(Oe);const d=c.map((e=>`<span class="${Ie.hitTree}">${e}</span>`)),f=`<span class="${Ie.hitIcon}">${s?Te:u?Le:Ne}</span>`,p=[`<span class="${Ie.hitTitle}">${(0,Ce.o)(t.t,(0,Ee.m)(a,"t"),o)}</span>`];if(!i&&!l&&ye.H6){const e=r?(r.b??[]).concat(r.t).concat(t.s&&t.s!==r.t?t.s:[]):t.b;p.push(`<span class="${Ie.hitPath}">${(0,Se.e)(e??[])}</span>`)}else s||p.push(`<span class="${Ie.hitPath}">${(0,_e.C)(r.t||(t.u.startsWith("/docs/api-reference/")?"API Reference":""),o)}</span>`);const h=`<span class="${Ie.hitAction}">${je}</span>`;return[...d,f,`<span class="${Ie.hitWrapper}">`,...p,"</span>",h].join("")}function Fe(){return`<span class="${Ie.noResults}"><span class="${Ie.noResultsIcon}">${Pe}</span><span>${(0,s.I)({id:"theme.SearchBar.noResultsText",message:"No results"})}</span></span>`}var De=n(311),Me=n(51);async function ze(){const e=await Promise.all([n.e(443),n.e(525)]).then(n.t.bind(n,8443,23)),t=e.default;return t.noConflict?t.noConflict():e.noConflict&&e.noConflict(),t}const Be="_highlight";const $e=function(e){let{handleSearchBarToggle:t}=e;const n=(0,z.Z)(),{siteConfig:{baseUrl:a},i18n:{currentLocale:o}}=(0,se.Z)(),i=(0,we.gA)();let u=a;try{const{preferredVersion:e}=(0,ve.J)(i?.pluginId??ye.gQ);e&&!e.isLast&&(u=e.path+"/")}catch(D){if(ye.l9&&!(D instanceof P.i6))throw D}const d=(0,l.k6)(),f=(0,l.TH)(),p=(0,r.useRef)(null),h=(0,r.useRef)(new Map),m=(0,r.useRef)(!1),[g,y]=(0,r.useState)(!1),[b,v]=(0,r.useState)(!1),[w,x]=(0,r.useState)(""),k=(0,r.useRef)(null),S=(0,r.useRef)(""),[E,_]=(0,r.useState)("");(0,r.useEffect)((()=>{if(!Array.isArray(ye.Kc))return;let e="";if(f.pathname.startsWith(u)){const t=f.pathname.substring(u.length);let n;for(const e of ye.Kc){const r="string"==typeof e?e:e.path;if(t===r||t.startsWith(`${r}/`)){n=r;break}}n&&(e=n)}S.current!==e&&(h.current.delete(e),S.current=e),_(e)}),[f.pathname,u]);const C=!!ye.hG&&Array.isArray(ye.Kc)&&""===E,T=(0,r.useCallback)((async()=>{if(C||h.current.get(E))return;h.current.set(E,"loading"),k.current?.autocomplete.destroy(),y(!0);const[{wrappedIndexes:e,zhDictionary:t},n]=await Promise.all([(0,xe.w)(u,E),ze()]);if(k.current=n(p.current,{hint:!1,autoselect:!0,openOnFocus:!0,cssClasses:{root:(0,be.Z)(Ie.searchBar,{[Ie.searchBarLeft]:"left"===ye.pu}),noPrefix:!0,dropdownMenu:Ie.dropdownMenu,input:Ie.input,hint:Ie.hint,suggestions:Ie.suggestions,suggestion:Ie.suggestion,cursor:Ie.cursor,dataset:Ie.dataset,empty:Ie.empty}},[{source:(0,ke.v)(e,t,ye.qo),templates:{suggestion:Re,empty:Fe,footer:e=>{let{query:t,isEmpty:n}=e;if(n&&(!E||!ye.pQ))return;const r=(e=>{let{query:t,isEmpty:n}=e;const r=document.createElement("a"),i=new URLSearchParams;let l;if(i.set("q",t),E){const e=E&&Array.isArray(ye.Kc)?ye.Kc.find((e=>"string"==typeof e?e===E:e.path===E)):E,t=e?(0,Me._)(e,o).label:E;l=ye.pQ&&n?(0,s.I)({id:"theme.SearchBar.seeAllOutsideContext",message:"See results outside {context}"},{context:t}):(0,s.I)({id:"theme.SearchBar.searchInContext",message:"See all results in {context}"},{context:t})}else l=(0,s.I)({id:"theme.SearchBar.seeAll",message:"See all results"});if(!E||!Array.isArray(ye.Kc)||ye.pQ&&n||i.set("ctx",E),u!==a){if(!u.startsWith(a))throw new Error(`Version url '${u}' does not start with base url '${a}', this is a bug of \`@easyops-cn/docusaurus-search-local\`, please report it.`);i.set("version",u.substring(a.length))}const c=`${a}search?${i.toString()}`;return r.href=c,r.textContent=l,r.addEventListener("click",(e=>{e.ctrlKey||e.metaKey||(e.preventDefault(),k.current?.autocomplete.close(),d.push(c))})),r})({query:t,isEmpty:n}),i=document.createElement("div");return i.className=Ie.hitFooter,i.appendChild(r),i}}}]).on("autocomplete:selected",(function(e,t){let{document:{u:n,h:r},tokens:a}=t;p.current?.blur();let o=n;if(ye.vc&&a.length>0){const e=new URLSearchParams;for(const t of a)e.append(Be,t);o+=`?${e.toString()}`}r&&(o+=r),d.push(o)})).on("autocomplete:closed",(()=>{p.current?.blur()})),h.current.set(E,"done"),y(!1),m.current){const e=p.current;e.value&&k.current?.autocomplete.open(),e.focus()}}),[C,E,u,a,d]);(0,r.useEffect)((()=>{if(!ye.vc)return;const e=n?new URLSearchParams(f.search).getAll(Be):[];setTimeout((()=>{const t=document.querySelector("article");if(!t)return;const n=new ye.vc(t);n.unmark(),0!==e.length&&n.mark(e),x(e.join(" ")),k.current?.autocomplete.setVal(e.join(" "))}))}),[n,f.search,f.pathname]);const[L,N]=(0,r.useState)(!1),j=(0,r.useCallback)((()=>{m.current=!0,T(),N(!0),t?.(!0)}),[t,T]),A=(0,r.useCallback)((()=>{N(!1),t?.(!1)}),[t]),O=(0,r.useCallback)((()=>{T()}),[T]),I=(0,r.useCallback)((e=>{x(e.target.value),e.target.value&&v(!0)}),[]),R=!!n&&/mac/i.test(navigator.userAgentData?.platform??navigator.platform);(0,r.useEffect)((()=>{if(!ye.AY)return;const e=e=>{!(R?e.metaKey:e.ctrlKey)||"k"!==e.key&&"K"!==e.key||(e.preventDefault(),p.current?.focus(),j())};return document.addEventListener("keydown",e),()=>{document.removeEventListener("keydown",e)}}),[R,j]);const F=(0,r.useCallback)((()=>{const e=new URLSearchParams(f.search);e.delete(Be);const t=e.toString(),n=f.pathname+(""!=t?`?${t}`:"")+f.hash;n!=f.pathname+f.search+f.hash&&d.push(n),x(""),k.current?.autocomplete.setVal("")}),[f.pathname,f.search,f.hash,d]);return(0,c.jsxs)("div",{className:(0,be.Z)("navbar__search",Ie.searchBarContainer,{[Ie.searchIndexLoading]:g&&b,[Ie.focused]:L}),hidden:C,children:[(0,c.jsx)("input",{placeholder:(0,s.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),"aria-label":"Search",className:"navbar__search-input",onMouseEnter:O,onFocus:j,onBlur:A,onChange:I,ref:p,value:w}),(0,c.jsx)(De.Z,{className:Ie.searchBarLoadingRing}),ye.AY&&ye.t_&&(""!==w?(0,c.jsx)("button",{className:Ie.searchClearButton,onClick:F,children:"\u2715"}):n&&(0,c.jsxs)("div",{className:Ie.searchHintContainer,children:[(0,c.jsx)("kbd",{className:Ie.searchHint,children:R?"\u2318":"ctrl"}),(0,c.jsx)("kbd",{className:Ie.searchHint,children:"K"})]}))]})},Ue={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Qe(e){let{children:t,className:n}=e;return(0,c.jsx)("div",{className:(0,a.Z)(n,Ue.navbarSearchContainer),children:t})}var Ze=n(2802);const He=e=>e.docs.find((t=>t.id===e.mainDocId));const Ve={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:u,localeConfigs:d}}=(0,se.Z)(),f=(0,he.l)(),{search:p,hash:h}=(0,l.TH)(),m=[...n,...u.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${h}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,s.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,c.jsx)(pe,{...o,mobile:t,label:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(me,{className:ge}),g]}),items:m})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,c.jsx)(Qe,{className:n,children:(0,c.jsx)($e,{})})},dropdown:pe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,c.jsx)(i,{className:(0,a.Z)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,we.Iw)(r),i=(0,Ze.vY)(t,r),l=o?.path===i?.path;return null===i||i.unlisted&&!l?null:(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>l||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,we.Iw)(r),i=(0,Ze.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,c.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,Ze.lO)(r)[0],i=t??o.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,c.jsx)(oe,{...a,label:i,to:l})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:u,hash:d}=(0,l.TH)(),f=(0,we.Iw)(n),p=(0,we.gB)(n),{savePreferredVersionName:h}=(0,ve.J)(n),m=[...a,...p.map((e=>{const t=f.alternateDocVersions[e.name]??He(e);return{label:e.label,to:`${t.path}${u}${d}`,isActive:()=>e===f.activeVersion,onClick:()=>h(e.name)}})),...o],g=(0,Ze.lO)(n)[0],y=t&&m.length>1?(0,s.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,b=t&&m.length>1?void 0:He(g).path;return m.length<=1?(0,c.jsx)(oe,{...i,mobile:t,label:y,to:b,isActive:r?()=>!1:void 0}):(0,c.jsx)(pe,{...i,mobile:t,label:y,to:b,items:m,isActive:r?()=>!1:void 0})}};function We(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Ve[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,c.jsx)(a,{...n})}function qe(){const e=(0,N.e)(),t=(0,w.L)().navbar.items;return(0,c.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(We,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ge(e){return(0,c.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,c.jsx)(s.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ye(){const e=0===(0,w.L)().navbar.items.length,t=F();return(0,c.jsxs)(c.Fragment,{children:[!e&&(0,c.jsx)(Ge,{onClick:()=>t.hide()}),t.content]})}function Ke(){const e=(0,N.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,c.jsx)(D,{header:(0,c.jsx)(Y,{}),primaryMenu:(0,c.jsx)(qe,{}),secondaryMenu:(0,c.jsx)(Ye,{})}):null}const Xe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Je(e){return(0,c.jsx)("div",{role:"presentation",...e,className:(0,a.Z)("navbar-sidebar__backdrop",e.className)})}function et(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,N.e)(),{navbarRef:l,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,j.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const l=r?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,u.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,c.jsxs)("nav",{ref:l,"aria-label":(0,s.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Xe.navbarHideable,!d&&Xe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,c.jsx)(Je,{onClick:i.toggle}),(0,c.jsx)(Ke,{})]})}var tt=n(8780);const nt={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function rt(e){return(0,c.jsx)("button",{type:"button",...e,children:(0,c.jsx)(s.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function at(e){let{error:t}=e;const n=(0,tt.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,c.jsx)("p",{className:nt.errorBoundaryError,children:n})}class ot extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const it="right";function lt(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,c.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,c.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function st(){const{toggle:e,shown:t}=(0,N.e)();return(0,c.jsx)("button",{onClick:e,"aria-label":(0,s.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,c.jsx)(lt,{})})}const ut={colorModeToggle:"colorModeToggle_DEke"};function ct(e){let{items:t}=e;return(0,c.jsx)(c.Fragment,{children:t.map(((e,t)=>(0,c.jsx)(ot,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,c.jsx)(We,{...e})},t)))})}function dt(e){let{left:t,right:n}=e;return(0,c.jsxs)("div",{className:"navbar__inner",children:[(0,c.jsx)("div",{className:"navbar__items",children:t}),(0,c.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function ft(){const e=(0,N.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??it)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,c.jsx)(dt,{left:(0,c.jsxs)(c.Fragment,{children:[!e.disabled&&(0,c.jsx)(st,{}),(0,c.jsx)(q,{}),(0,c.jsx)(ct,{items:n})]}),right:(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(ct,{items:r}),(0,c.jsx)(V,{className:ut.colorModeToggle}),!a&&(0,c.jsx)(Qe,{children:(0,c.jsx)($e,{})})]})})}function pt(){return(0,c.jsx)(et,{children:(0,c.jsx)(ft,{})})}function ht(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,l=(0,X.Z)(n),s=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,c.jsxs)(K.Z,{className:"footer__link-item",...r?{href:o?s:r}:{to:l},...i,children:[a,r&&!(0,J.Z)(r)&&(0,c.jsx)(te.Z,{})]})}function mt(e){let{item:t}=e;return t.html?(0,c.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)("li",{className:"footer__item",children:(0,c.jsx)(ht,{item:t})},t.href??t.to)}function gt(e){let{column:t}=e;return(0,c.jsxs)("div",{className:"col footer__col",children:[(0,c.jsx)("div",{className:"footer__title",children:t.title}),(0,c.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,c.jsx)(mt,{item:e},t)))})]})}function yt(e){let{columns:t}=e;return(0,c.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,c.jsx)(gt,{column:e},t)))})}function bt(){return(0,c.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function vt(e){let{item:t}=e;return t.html?(0,c.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,c.jsx)(ht,{item:t})}function wt(e){let{links:t}=e;return(0,c.jsx)("div",{className:"footer__links text--center",children:(0,c.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,c.jsxs)(r.Fragment,{children:[(0,c.jsx)(vt,{item:e}),t.length!==n+1&&(0,c.jsx)(bt,{})]},n)))})})}function xt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,c.jsx)(yt,{columns:t}):(0,c.jsx)(wt,{links:t})}var kt=n(9965);const St={footerLogoLink:"footerLogoLink_BH7S"};function Et(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,c.jsx)(kt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function _t(e){let{logo:t}=e;return t.href?(0,c.jsx)(K.Z,{href:t.href,className:St.footerLogoLink,target:t.target,children:(0,c.jsx)(Et,{logo:t})}):(0,c.jsx)(Et,{logo:t})}function Ct(e){let{copyright:t}=e;return(0,c.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Tt(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,c.jsx)("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t}),children:(0,c.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,c.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,c.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function Lt(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,c.jsx)(Tt,{style:a,links:n&&n.length>0&&(0,c.jsx)(xt,{links:n}),logo:r&&(0,c.jsx)(_t,{logo:r}),copyright:t&&(0,c.jsx)(Ct,{copyright:t})})}const Nt=r.memo(Lt),jt=(0,P.Qc)([M.S,x.pl,j.OC,ve.L5,i.VC,function(e){let{children:t}=e;return(0,c.jsx)(A.n2,{children:(0,c.jsx)(N.M,{children:(0,c.jsx)(I,{children:t})})})}]);function Pt(e){let{children:t}=e;return(0,c.jsx)(jt,{children:t})}var At=n(2503);function Ot(e){let{error:t,tryAgain:n}=e;return(0,c.jsx)("main",{className:"container margin-vert--xl",children:(0,c.jsx)("div",{className:"row",children:(0,c.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,c.jsx)(At.Z,{as:"h1",className:"hero__title",children:(0,c.jsx)(s.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,c.jsx)("div",{className:"margin-vert--lg",children:(0,c.jsx)(rt,{onClick:n,className:"button button--primary shadow--lw"})}),(0,c.jsx)("hr",{}),(0,c.jsx)("div",{className:"margin-vert--md",children:(0,c.jsx)(at,{error:t})})]})})})}const It={mainWrapper:"mainWrapper_z2l0"};function Rt(e){const{children:t,noFooter:n,wrapperClassName:r,title:l,description:s}=e;return(0,y.t)(),(0,c.jsxs)(Pt,{children:[(0,c.jsx)(i.d,{title:l,description:s}),(0,c.jsx)(v,{}),(0,c.jsx)(L,{}),(0,c.jsx)(pt,{}),(0,c.jsx)("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,It.mainWrapper,r),children:(0,c.jsx)(o.Z,{fallback:e=>(0,c.jsx)(Ot,{...e}),children:t})}),!n&&(0,c.jsx)(Nt,{})]})}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(9960),a=n(4996),o=n(2263),i=n(6668),l=n(9965),s=n(5893);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Z)(t.src),dark:(0,a.Z)(t.srcDark||t.src)},i=(0,s.jsx)(l.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,s.jsx)("div",{className:r,children:i}):i}function c(e){const{siteConfig:{title:t}}=(0,o.Z)(),{navbar:{title:n,logo:l}}=(0,i.L)(),{imageClassName:c,titleClassName:d,...f}=e,p=(0,a.Z)(l?.href||"/"),h=n?"":t,m=l?.alt??h;return(0,s.jsxs)(r.Z,{to:p,...f,...l?.target&&{target:l.target},children:[l&&(0,s.jsx)(u,{logo:l,alt:m,imageClassName:c}),null!=n&&(0,s.jsx)("b",{className:d,children:n})]})}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(5742),a=n(5893);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.Z,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},9965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7294),a=n(512),o=n(2389),i=n(2949);const l={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var s=n(5893);function u(e){let{className:t,children:n}=e;const u=(0,o.Z)(),{colorMode:c}=(0,i.I)();return(0,s.jsx)(s.Fragment,{children:(u?"dark"===c?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.Z)(t,l.themedComponent,l[`themedComponent--${e}`])});return(0,s.jsx)(r.Fragment,{children:o},e)}))})}function c(e){const{sources:t,className:n,alt:r,...a}=e;return(0,s.jsx)(u,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,s.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>u,z:()=>y});var r=n(7294),a=n(412),o=n(469),i=n(1442),l=n(5893);const s="ease-in-out";function u(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const c={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function f(e,t){const n=t?c:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function p(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??s}`,height:`${t}px`}}function l(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return f(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(l(),requestAnimationFrame((()=>{e.style.height=c.height,e.style.overflow=c.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{l()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function h(e){if(!a.Z.canUseDOM)return e?c:d}function m(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:s,disableSSRStyle:u}=e;const c=(0,r.useRef)(null);return p({collapsibleRef:c,collapsed:n,animation:o}),(0,l.jsx)(t,{ref:c,style:u?void 0:h(n),onTransitionEnd:e=>{"height"===e.propertyName&&(f(c.current,n),i?.(n))},className:s,children:a})}function g(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[s,u]=(0,r.useState)(t);return(0,o.Z)((()=>{t||i(!0)}),[t]),(0,o.Z)((()=>{a&&u(t)}),[a,t]),a?(0,l.jsx)(m,{...n,collapsed:s}):null}function y(e){let{lazy:t,...n}=e;const r=t?g:m;return(0,l.jsx)(r,{...n})}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>h});var r=n(7294),a=n(2389),o=n(12),i=n(902),l=n(6668),s=n(5893);const u=(0,o.WA)("docusaurus.announcement.dismiss"),c=(0,o.WA)("docusaurus.announcement.id"),d=()=>"true"===u.get(),f=e=>u.set(String(e)),p=r.createContext(null);function h(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{f(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=c.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;c.set(t),r&&f(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,s.jsx)(p.Provider,{value:n,children:t})}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>y,S:()=>g});var r=n(7294),a=n(412),o=n(902),i=n(12),l=n(6668),s=n(5893);const u=r.createContext(void 0),c="theme",d=(0,i.WA)(c),f={light:"light",dark:"dark"},p=e=>e===f.dark?f.dark:f.light,h=e=>a.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{d.set(p(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(h(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?f.dark:f.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==c)return;const t=d.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===f.dark},setLightTheme(){i(f.light)},setDarkTheme(){i(f.dark)}})),[a,i])}();return(0,s.jsx)(u.Provider,{value:n,children:t})}function y(){const e=(0,r.useContext)(u);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>y});var r=n(7294),a=n(143),o=n(9935),i=n(6668),l=n(2802),s=n(902),u=n(12),c=n(5893);const d=e=>`docs-preferred-version-${e}`,f={save:(e,t,n)=>{(0,u.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(d(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const h=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=f.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(f.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){f.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=m();return(0,c.jsx)(h.Provider,{value:n,children:t})}function y(e){let{children:t}=e;return l.cE?(0,c.jsx)(g,{children:t}):(0,c.jsx)(c.Fragment,{children:t})}function b(){const e=(0,r.useContext)(h);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>u,b:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=Symbol("EmptyContext"),l=r.createContext(i);function s(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(l.Provider,{value:i,children:t})}function u(){const e=(0,r.useContext)(l);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>s,q:()=>l});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function l(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(null===e)throw new a.i6("DocsVersionProvider");return e}},2961:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>h});var r=n(7294),a=n(3102),o=n(7524),i=n(6550),l=n(902);function s(e){!function(e){const t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6668),c=n(5893);const d=r.createContext(void 0);function f(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,u.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function p(e){let{children:t}=e;const n=f();return(0,c.jsx)(d.Provider,{value:n,children:t})}function h(){const e=r.useContext(d);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>s,Zo:()=>u,n2:()=>l});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function l(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function s(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function u(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=o,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>l});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){const[e,t]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){t(function(){if(!a.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>i?o.desktop:o.mobile}())}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},2802:(e,t,n)=>{"use strict";n.d(t,{MN:()=>T,LM:()=>h,_F:()=>b,cE:()=>f,jA:()=>m,xz:()=>p,SN:()=>C,lO:()=>S,vY:()=>_,oz:()=>E,s1:()=>k,f:()=>w});var r=n(7294),a=n(6550),o=n(8790),i=n(143),l=n(373),s=n(4477),u=n(1116);function c(e){return Array.from(new Set(e))}var d=n(8596);const f=!!i._r;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function h(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=h(t);if(e)return e}}(e):void 0:e.href}function m(){const{pathname:e}=(0,a.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=x({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const g=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),y=(e,t)=>e.some((e=>b(e,t)));function b(e,t){return"link"===e.type?g(e.href,t):"category"===e.type&&(g(e.href,t)||y(e.items,t))}function v(e,t){switch(e.type){case"category":return b(e,t)||e.items.some((e=>v(e,t)));case"link":return!e.unlisted||b(e,t);default:return!0}}function w(e,t){return(0,r.useMemo)((()=>e.filter((e=>v(e,t)))),[e,t])}function x(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function k(){const e=(0,u.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?x({sidebarItems:e.items,pathname:t}):null}function S(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,a].filter(Boolean))),[t,n,a])}function E(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function _(e,t){const n=S(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function C(e){let{route:t}=e;const n=(0,a.TH)(),r=(0,s.E)(),i=t.routes,l=i.find((e=>(0,a.LX)(n.pathname,e)));if(!l)return null;const u=l.sidebar,c=u?r.docsSidebars[u]:void 0;return{docElement:(0,o.H)(i),sidebarName:u,sidebarItems:c}}function T(e){return e.filter((e=>!("category"===e.type||"link"===e.type)||!!h(e)))}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>d,VC:()=>h});var r=n(7294),a=n(512),o=n(5742),i=n(226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),u=n(2263);var c=n(5893);function d(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const l=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),f=a?d(a,{absolute:!0}):void 0;return(0,c.jsxs)(o.Z,{children:[t&&(0,c.jsx)("title",{children:l}),t&&(0,c.jsx)("meta",{property:"og:title",content:l}),n&&(0,c.jsx)("meta",{name:"description",content:n}),n&&(0,c.jsx)("meta",{property:"og:description",content:n}),r&&(0,c.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),f&&(0,c.jsx)("meta",{property:"og:image",content:f}),f&&(0,c.jsx)("meta",{name:"twitter:image",content:f}),i]})}const f=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(f),l=(0,a.Z)(i,t);return(0,c.jsxs)(f.Provider,{value:l,children:[(0,c.jsx)(o.Z,{children:(0,c.jsx)("html",{className:l})}),n]})}function h(e){let{children:t}=e;const n=l(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,c.jsx)(p,{className:(0,a.Z)(r,o),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>l,Qc:()=>c,Ql:()=>u,i6:()=>s,zX:()=>i});var r=n(7294),a=n(469),o=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,a.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function l(e){const t=(0,r.useRef)();return(0,a.Z)((()=>{t.current=e})),t.current}class s extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function u(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function c(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>u,RF:()=>f});var r=n(7294),a=n(412),o=n(2389),i=(n(469),n(902)),l=n(5893);const s=r.createContext(void 0);function u(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,l.jsx)(s.Provider,{value:n,children:t})}function c(){const e=(0,r.useContext)(s);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const d=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function f(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=c(),a=(0,r.useRef)(d()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function p(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>a});n(2263);const r="default";function a(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),a=n(6550),o=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.Z)(),{pathname:s}=(0,a.TH)(),u=(0,o.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),c=l===i?e:e.replace(`/${l}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},311:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});n(7294);var r=n(1728);const a={loadingRing:"loadingRing_RJI3","loading-ring":"loading-ring_FB5o"};var o=n(5893);function i(e){let{className:t}=e;return(0,o.jsxs)("div",{className:(0,r.Z)(a.loadingRing,t),children:[(0,o.jsx)("div",{}),(0,o.jsx)("div",{}),(0,o.jsx)("div",{}),(0,o.jsx)("div",{})]})}},22:(e,t,n)=>{"use strict";n.d(t,{w:()=>l});var r=n(1336),a=n.n(r),o=n(1029);const i=new Map;function l(e,t){const n=`${e}${t}`;let r=i.get(n);return r||(r=async function(e,t){{const n=`${e}${o.J.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),i=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:a().Index.load(r)}})),l=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:i,zhDictionary:Array.from(l)}}return{wrappedIndexes:[],zhDictionary:[]}}(e,t),i.set(n,r)),r}},8202:(e,t,n)=>{"use strict";n.d(t,{v:()=>s});var r=n(1336),a=n.n(r);var o=n(1029);function i(e){return l(e).concat(l(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function l(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:a().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?a().Query.wildcard.TRAILING:a().Query.wildcard.NONE})))})))}function s(e,t,n){return function(r,l){const s=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return a()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,o.dK);if(0===s.length)return void l([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,a){if(0===r.length)return void n.push(a);const o=r[0];if(/\p{Unified_Ideograph}/u.test(o)){const n=function(e,t){const n=[];return function e(r,a){let o=0,i=!1;for(const l of t)if(r.substr(0,l.length)===l){const t={missed:a.missed,term:a.term.concat({value:l})};r.length>l.length?e(r.substr(l.length),t):n.push(t),i=!0}else for(let t=l.length-1;t>o;t-=1){const s=l.substr(0,t);if(r.substr(0,t)===s){o=t;const l={missed:a.missed,term:a.term.concat({value:s,trailing:!0})};r.length>t?e(r.substr(t),l):n.push(l),i=!0;break}}i||(r.length>0?e(r.substr(1),{missed:a.missed+1,term:a.term}):a.term.length>0&&n.push(a))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(o,t);for(const t of n){const n=a.concat(...t);e(r.slice(1),n)}}else{const t=a.concat({value:o});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:a().Query.presence.REQUIRED,wildcard:a().Query.wildcard.LEADING|a().Query.wildcard.TRAILING})))}];for(const a of n)a[a.length-1].maybeTyping=!0;const r=[];for(const i of o.dK)if("en"===i)o._k||r.unshift(a().stopWordFilter);else{const e=a()[i];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let l;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);l=[];const t=[];for(const r of n){const n=e(r);l.push(n),n.length<r.length&&n.length>0&&t.push(n)}n.push(...t)}else l=n.slice();const s=[];for(const a of l)if(a.length>2)for(let e=a.length-1;e>=0;e-=1)s.push(a.slice(0,e).concat(a.slice(e+1)));return i(n).concat(i(s))}(s,t),c=[];e:for(const{term:t,tokens:a}of u)for(const{documents:r,index:o,type:i}of e)if(c.push(...o.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:i,page:0!==i&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:a,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,a=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===a&&(a=n.index),r===a?0===t.type?-1:0===n.type?1:t.index-n.index:r-a}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n<e.length-1&&e[n+1].page===t.page?t.isInterOfTree=!0:t.isLastOfTree=!0)}))}(c),l(c)}}},3926:(e,t,n)=>{"use strict";function r(e){return e.join(" \u203a ")}n.d(t,{e:()=>r})},1690:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}n.d(t,{X:()=>r})},1073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.d(t,{m:()=>r})},2539:(e,t,n)=>{"use strict";n.d(t,{C:()=>a});var r=n(1690);function a(e,t,n){const o=[];for(const i of t){const n=e.toLowerCase().indexOf(i);if(n>=0){n>0&&o.push(a(e.substr(0,n),t)),o.push(`<mark>${(0,r.X)(e.substr(n,i.length))}</mark>`);const l=n+i.length;l<e.length&&o.push(a(e.substr(l),t));break}}return 0===o.length?n?`<mark>${(0,r.X)(e)}</mark>`:(0,r.X)(e):o.join("")}},726:(e,t,n)=>{"use strict";n.d(t,{o:()=>s});var r=n(1690),a=n(2539);const o=/\w+|\p{Unified_Ideograph}/u;function i(e){const t=[];let n=0,r=e;for(;r.length>0;){const a=r.match(o);if(!a){t.push(r);break}a.index>0&&t.push(r.substring(0,a.index)),t.push(a[0]),n+=a.index+a[0].length,r=e.substring(n)}return t}var l=n(1029);function s(e,t,n,o){void 0===o&&(o=l.Hk);const{chunkIndex:s,chunks:u}=function(e,t,n){const o=[];let l=0,s=0,u=-1;for(;l<t.length;){const[c,d]=t[l];if(l+=1,!(c<s)){if(c>s){const t=i(e.substring(s,c)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)o.push(e)}-1===u&&(u=o.length),s=c+d,o.push({html:(0,a.C)(e.substring(c,s),n,!0),textLength:d})}}if(s<e.length){const t=i(e.substring(s)).map((e=>({html:(0,r.X)(e),textLength:e.length})));for(const e of t)o.push(e)}return{chunkIndex:u,chunks:o}}(e,t,n),c=u.slice(0,s),d=u[s],f=[d.html],p=u.slice(s+1);let h=d.textLength,m=0,g=0,y=!1,b=!1;for(;h<o;)if((m<=g||0===p.length)&&c.length>0){const e=c.pop();h+e.textLength<=o?(f.unshift(e.html),m+=e.textLength,h+=e.textLength):(y=!0,c.length=0)}else{if(!(p.length>0))break;{const e=p.shift();h+e.textLength<=o?(f.push(e.html),g+=e.textLength,h+=e.textLength):(b=!0,p.length=0)}}return(y||c.length>0)&&f.unshift("\u2026"),(b||p.length>0)&&f.push("\u2026"),f.join("")}},51:(e,t,n)=>{"use strict";function r(e,t){if("string"==typeof e)return{label:e,path:e};{const{label:n,path:r}=e;return"string"==typeof n?{label:n,path:r}:Object.prototype.hasOwnProperty.call(n,t)?{label:n[t],path:r}:{label:r,path:r}}}n.d(t,{_:()=>r})},1029:(e,t,n)=>{"use strict";n.d(t,{vc:()=>o,gQ:()=>p,H6:()=>u,hG:()=>g,l9:()=>h,dK:()=>r,_k:()=>a,pu:()=>f,AY:()=>c,t_:()=>d,Kc:()=>m,J:()=>i,Hk:()=>s,qo:()=>l,pQ:()=>y});n(1336);const r=["en"],a=!1,o=null,i="search-index{dir}.json?_=f9c520d8",l=8,s=50,u=!1,c=!0,d=!0,f="right",p=void 0,h=!0,m=null,g=!1,y=!1},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>p,PP:()=>L,Ep:()=>f});var r=n(3117);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&a(e),s=t&&a(t),u=l||s;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function h(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var m=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var y="popstate",b="hashchange";function v(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),m||(0,l.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,u=i.forceRefresh,w=void 0!==u&&u,x=i.getUserConfirmation,k=void 0===x?g:x,S=i.keyLength,E=void 0===S?6:S,_=e.basename?d(s(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=c(o,_)),p(o,r,n)}function T(){return Math.random().toString(36).substr(2,E)}var L=h();function N(e){(0,r.Z)($,e),$.length=n.length,L.notifyListeners($.location,$.action)}function j(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||O(C(e.state))}function P(){O(C(v()))}var A=!1;function O(e){if(A)A=!1,N();else{L.confirmTransitionTo(e,"POP",k,(function(t){t?N({action:"POP",location:e}):function(e){var t=$.location,n=R.indexOf(t.key);-1===n&&(n=0);var r=R.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(A=!0,D(a))}(e)}))}}var I=C(v()),R=[I.key];function F(e){return _+f(e)}function D(e){n.go(e)}var M=0;function z(e){1===(M+=e)&&1===e?(window.addEventListener(y,j),o&&window.addEventListener(b,P)):0===M&&(window.removeEventListener(y,j),o&&window.removeEventListener(b,P))}var B=!1;var $={length:n.length,action:"POP",location:I,createHref:F,push:function(e,t){var r="PUSH",o=p(e,t,T(),$.location);L.confirmTransitionTo(o,r,k,(function(e){if(e){var t=F(o),i=o.key,l=o.state;if(a)if(n.pushState({key:i,state:l},null,t),w)window.location.href=t;else{var s=R.indexOf($.location.key),u=R.slice(0,s+1);u.push(o.key),R=u,N({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,T(),$.location);L.confirmTransitionTo(o,r,k,(function(e){if(e){var t=F(o),i=o.key,l=o.state;if(a)if(n.replaceState({key:i,state:l},null,t),w)window.location.replace(t);else{var s=R.indexOf($.location.key);-1!==s&&(R[s]=o.key),N({action:r,location:o})}else window.location.replace(t)}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=L.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=L.appendListener(e);return z(1),function(){z(-1),t()}}};return $}var x="hashchange",k={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+u(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:u,decodePath:s},slash:{encodePath:s,decodePath:s}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),m||(0,l.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,u=void 0===i?"slash":i,y=e.basename?d(s(e.basename)):"",b=k[u],v=b.encodePath,w=b.decodePath;function C(){var e=w(E());return y&&(e=c(e,y)),p(e)}var T=h();function L(e){(0,r.Z)(B,e),B.length=t.length,T.notifyListeners(B.location,B.action)}var N=!1,j=null;function P(){var e,t,n=E(),r=v(n);if(n!==r)_(r);else{var a=C(),i=B.location;if(!N&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(j===f(a))return;j=null,function(e){if(N)N=!1,L();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?L({action:t,location:e}):function(e){var t=B.location,n=R.lastIndexOf(f(t));-1===n&&(n=0);var r=R.lastIndexOf(f(e));-1===r&&(r=0);var a=n-r;a&&(N=!0,F(a))}(e)}))}}(a)}}var A=E(),O=v(A);A!==O&&_(O);var I=C(),R=[f(I)];function F(e){t.go(e)}var D=0;function M(e){1===(D+=e)&&1===e?window.addEventListener(x,P):0===D&&window.removeEventListener(x,P)}var z=!1;var B={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+v(y+f(e))},push:function(e,t){var n="PUSH",r=p(e,void 0,void 0,B.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=v(y+t);if(E()!==a){j=t,function(e){window.location.hash=e}(a);var o=R.lastIndexOf(f(B.location)),i=R.slice(0,o+1);i.push(t),R=i,L({action:n,location:r})}else L()}}))},replace:function(e,t){var n="REPLACE",r=p(e,void 0,void 0,B.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=f(r),a=v(y+t);E()!==a&&(j=t,_(a));var o=R.indexOf(f(B.location));-1!==o&&(R[o]=t),L({action:n,location:r})}}))},go:F,goBack:function(){F(-1)},goForward:function(){F(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return z||(M(1),z=!0),function(){return z&&(z=!1,M(-1)),t()}},listen:function(e){var t=T.appendListener(e);return M(1),function(){M(-1),t()}}};return B}function T(e,t,n){return Math.min(Math.max(e,t),n)}function L(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=h();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function m(){return Math.random().toString(36).substr(2,u)}var g=T(l,0,o.length-1),y=o.map((function(e){return p(e,void 0,"string"==typeof e?m():e.key||m())})),b=f;function v(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:y.length,action:"POP",location:y[g],index:g,entries:y,createHref:b,push:function(e,t){var r="PUSH",a=p(e,t,m(),w.location);c.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,m(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var a=p(n);a&&a!==h&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),m=s(n),g=0;g<i.length;++g){var y=i[g];if(!(o[y]||r&&r[y]||m&&m[y]||l&&l[y])){var b=f(n,y);try{u(t,y,b)}catch(v){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},1336:(e,t,n)=>{var r,a;!function(){var o,i,l,s,u,c,d,f,p,h,m,g,y,b,v,w,x,k,S,E,_,C,T,L,N,j,P,A,O,I,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(o=this,function(e){o.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r<n.length;r++){var a=n[r],o=e[a];if(Array.isArray(o))t[a]=o.slice();else{if("string"!=typeof o&&"number"!=typeof o&&"boolean"!=typeof o)throw new TypeError("clone is not deep and does not support nested objects");t[a]=o}}return t},R.FieldRef=function(e,t,n){this.docRef=e,this.fieldName=t,this._stringValue=n},R.FieldRef.joiner="/",R.FieldRef.fromString=function(e){var t=e.indexOf(R.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var n=e.slice(0,t),r=e.slice(t+1);return new R.FieldRef(r,n,e)},R.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+R.FieldRef.joiner+this.docRef),this._stringValue},R.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},R.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},R.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},R.Set.prototype.contains=function(e){return!!this.elements[e]},R.Set.prototype.intersect=function(e){var t,n,r,a=[];if(e===R.Set.complete)return this;if(e===R.Set.empty)return e;this.length<e.length?(t=this,n=e):(t=e,n=this),r=Object.keys(t.elements);for(var o=0;o<r.length;o++){var i=r[o];i in n.elements&&a.push(i)}return new R.Set(a)},R.Set.prototype.union=function(e){return e===R.Set.complete?R.Set.complete:e===R.Set.empty?this:new R.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},R.idf=function(e,t){var n=0;for(var r in e)"_index"!=r&&(n+=Object.keys(e[r]).length);var a=(t-n+.5)/(n+.5);return Math.log(1+Math.abs(a))},R.Token=function(e,t){this.str=e||"",this.metadata=t||{}},R.Token.prototype.toString=function(){return this.str},R.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},R.Token.prototype.clone=function(e){return e=e||function(e){return e},new R.Token(e(this.str,this.metadata),this.metadata)},R.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map((function(e){return new R.Token(R.utils.asString(e).toLowerCase(),R.utils.clone(t))}));for(var n=e.toString().toLowerCase(),r=n.length,a=[],o=0,i=0;o<=r;o++){var l=o-i;if(n.charAt(o).match(R.tokenizer.separator)||o==r){if(l>0){var s=R.utils.clone(t)||{};s.position=[i,l],s.index=a.length,a.push(new R.Token(n.slice(i,o),s))}i=o+1}}return a},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n<t;n++){for(var r=this._stack[n],a=[],o=0;o<e.length;o++){var i=r(e[o],o,e);if(null!=i&&""!==i)if(Array.isArray(i))for(var l=0;l<i.length;l++)a.push(i[l]);else a.push(i)}e=a}return e},R.Pipeline.prototype.runString=function(e,t){var n=new R.Token(e,t);return this.run([n]).map((function(e){return e.toString()}))},R.Pipeline.prototype.reset=function(){this._stack=[]},R.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return R.Pipeline.warnIfFunctionNotRegistered(e),e.label}))},R.Vector=function(e){this._magnitude=0,this.elements=e||[]},R.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,n=this.elements.length/2,r=n-t,a=Math.floor(r/2),o=this.elements[2*a];r>1&&(o<e&&(t=a),o>e&&(n=a),o!=e);)r=n-t,a=t+Math.floor(r/2),o=this.elements[2*a];return o==e||o>e?2*a:o<e?2*(a+1):void 0},R.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},R.Vector.prototype.upsert=function(e,t,n){this._magnitude=0;var r=this.positionForIndex(e);this.elements[r]==e?this.elements[r+1]=n(this.elements[r+1],t):this.elements.splice(r,0,e,t)},R.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,n=1;n<t;n+=2){var r=this.elements[n];e+=r*r}return this._magnitude=Math.sqrt(e)},R.Vector.prototype.dot=function(e){for(var t=0,n=this.elements,r=e.elements,a=n.length,o=r.length,i=0,l=0,s=0,u=0;s<a&&u<o;)(i=n[s])<(l=r[u])?s+=2:i>l?u+=2:i==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t<this.elements.length;t+=2,n++)e[n]=this.elements[t];return e},R.Vector.prototype.toJSON=function(){return this.elements},R.stemmer=(i={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},l={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d="^("+(u="[^aeiou][^aeiouy]*")+")?"+(c=(s="[aeiouy]")+"[aeiou]*")+u+"("+c+")?$",f="^("+u+")?"+c+u+c+u,p="^("+u+")?"+s,h=new RegExp("^("+u+")?"+c+u),m=new RegExp(f),g=new RegExp(d),y=new RegExp(p),b=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,w=/^(.+?)eed$/,x=/^(.+?)(ed|ing)$/,k=/.$/,S=/(at|bl|iz)$/,E=new RegExp("([^aeiouylsz])\\1$"),_=new RegExp("^"+u+s+"[^aeiouwxy]$"),C=/^(.+?[^aeiou])y$/,T=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,L=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,N=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,j=/^(.+?)(s|t)(ion)$/,P=/^(.+?)e$/,A=/ll$/,O=new RegExp("^"+u+s+"[^aeiouwxy]$"),I=function(e){var t,n,r,a,o,s,u;if(e.length<3)return e;if("y"==(r=e.substr(0,1))&&(e=r.toUpperCase()+e.substr(1)),o=v,(a=b).test(e)?e=e.replace(a,"$1$2"):o.test(e)&&(e=e.replace(o,"$1$2")),o=x,(a=w).test(e)){var c=a.exec(e);(a=h).test(c[1])&&(a=k,e=e.replace(a,""))}else o.test(e)&&(t=(c=o.exec(e))[1],(o=y).test(t)&&(s=E,u=_,(o=S).test(e=t)?e+="e":s.test(e)?(a=k,e=e.replace(a,"")):u.test(e)&&(e+="e")));return(a=C).test(e)&&(e=(t=(c=a.exec(e))[1])+"i"),(a=T).test(e)&&(t=(c=a.exec(e))[1],n=c[2],(a=h).test(t)&&(e=t+i[n])),(a=L).test(e)&&(t=(c=a.exec(e))[1],n=c[2],(a=h).test(t)&&(e=t+l[n])),o=j,(a=N).test(e)?(t=(c=a.exec(e))[1],(a=m).test(t)&&(e=t)):o.test(e)&&(t=(c=o.exec(e))[1]+c[2],(o=m).test(t)&&(e=t)),(a=P).test(e)&&(t=(c=a.exec(e))[1],o=g,s=O,((a=m).test(t)||o.test(t)&&!s.test(t))&&(e=t)),o=m,(a=A).test(e)&&o.test(e)&&(a=k,e=e.replace(a,"")),"y"==r&&(e=r.toLowerCase()+e.substr(1)),e},function(e){return e.update(I)}),R.Pipeline.registerFunction(R.stemmer,"stemmer"),R.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},R.stopWordFilter=R.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),R.Pipeline.registerFunction(R.stopWordFilter,"stopWordFilter"),R.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},R.Pipeline.registerFunction(R.trimmer,"trimmer"),R.TokenSet=function(){this.final=!1,this.edges={},this.id=R.TokenSet._nextId,R.TokenSet._nextId+=1},R.TokenSet._nextId=1,R.TokenSet.fromArray=function(e){for(var t=new R.TokenSet.Builder,n=0,r=e.length;n<r;n++)t.insert(e[n]);return t.finish(),t.root},R.TokenSet.fromClause=function(e){return"editDistance"in e?R.TokenSet.fromFuzzyString(e.term,e.editDistance):R.TokenSet.fromString(e.term)},R.TokenSet.fromFuzzyString=function(e,t){for(var n=new R.TokenSet,r=[{node:n,editsRemaining:t,str:e}];r.length;){var a=r.pop();if(a.str.length>0){var o,i=a.str.charAt(0);i in a.node.edges?o=a.node.edges[i]:(o=new R.TokenSet,a.node.edges[i]=o),1==a.str.length&&(o.final=!0),r.push({node:o,editsRemaining:a.editsRemaining,str:a.str.slice(1)})}if(0!=a.editsRemaining){if("*"in a.node.edges)var l=a.node.edges["*"];else{l=new R.TokenSet;a.node.edges["*"]=l}if(0==a.str.length&&(l.final=!0),r.push({node:l,editsRemaining:a.editsRemaining-1,str:a.str}),a.str.length>1&&r.push({node:a.node,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)}),1==a.str.length&&(a.node.final=!0),a.str.length>=1){if("*"in a.node.edges)var s=a.node.edges["*"];else{s=new R.TokenSet;a.node.edges["*"]=s}1==a.str.length&&(s.final=!0),r.push({node:s,editsRemaining:a.editsRemaining-1,str:a.str.slice(1)})}if(a.str.length>1){var u,c=a.str.charAt(0),d=a.str.charAt(1);d in a.node.edges?u=a.node.edges[d]:(u=new R.TokenSet,a.node.edges[d]=u),1==a.str.length&&(u.final=!0),r.push({node:u,editsRemaining:a.editsRemaining-1,str:c+a.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,a=e.length;r<a;r++){var o=e[r],i=r==a-1;if("*"==o)t.edges[o]=t,t.final=i;else{var l=new R.TokenSet;l.final=i,t.edges[o]=l,t=l}}return n},R.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var n=t.pop(),r=Object.keys(n.node.edges),a=r.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var o=0;o<a;o++){var i=r[o];t.push({prefix:n.prefix.concat(i),node:n.node.edges[i]})}}return e},R.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),n=t.length,r=0;r<n;r++){var a=t[r];e=e+a+this.edges[a].id}return e},R.TokenSet.prototype.intersect=function(e){for(var t=new R.TokenSet,n=void 0,r=[{qNode:e,output:t,node:this}];r.length;){n=r.pop();for(var a=Object.keys(n.qNode.edges),o=a.length,i=Object.keys(n.node.edges),l=i.length,s=0;s<o;s++)for(var u=a[s],c=0;c<l;c++){var d=i[c];if(d==u||"*"==u){var f=n.node.edges[d],p=n.qNode.edges[u],h=f.final&&p.final,m=void 0;d in n.output.edges?(m=n.output.edges[d]).final=m.final||h:((m=new R.TokenSet).final=h,n.output.edges[d]=m),r.push({qNode:p,output:m,node:f})}}}return t},R.TokenSet.Builder=function(){this.previousWord="",this.root=new R.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},R.TokenSet.Builder.prototype.insert=function(e){var t,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var r=0;r<e.length&&r<this.previousWord.length&&e[r]==this.previousWord[r];r++)n++;this.minimize(n),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(r=n;r<e.length;r++){var a=new R.TokenSet,o=e[r];t.edges[o]=a,this.uncheckedNodes.push({parent:t,char:o,child:a}),t=a}t.final=!0,this.previousWord=e},R.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},R.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),a=Object.create(null),o=Object.create(null),i=Object.create(null),l=0;l<this.fields.length;l++)r[this.fields[l]]=new R.Vector;e.call(t,t);for(l=0;l<t.clauses.length;l++){var s=t.clauses[l],u=null,c=R.Set.empty;u=s.usePipeline?this.pipeline.runString(s.term,{fields:s.fields}):[s.term];for(var d=0;d<u.length;d++){var f=u[d];s.term=f;var p=R.TokenSet.fromClause(s),h=this.tokenSet.intersect(p).toArray();if(0===h.length&&s.presence===R.Query.presence.REQUIRED){for(var m=0;m<s.fields.length;m++){o[P=s.fields[m]]=R.Set.empty}break}for(var g=0;g<h.length;g++){var y=h[g],b=this.invertedIndex[y],v=b._index;for(m=0;m<s.fields.length;m++){var w=b[P=s.fields[m]],x=Object.keys(w),k=y+"/"+P,S=new R.Set(x);if(s.presence==R.Query.presence.REQUIRED&&(c=c.union(S),void 0===o[P]&&(o[P]=R.Set.complete)),s.presence!=R.Query.presence.PROHIBITED){if(r[P].upsert(v,s.boost,(function(e,t){return e+t})),!a[k]){for(var E=0;E<x.length;E++){var _,C=x[E],T=new R.FieldRef(C,P),L=w[C];void 0===(_=n[T])?n[T]=new R.MatchData(y,P,L):_.add(y,P,L)}a[k]=!0}}else void 0===i[P]&&(i[P]=R.Set.empty),i[P]=i[P].union(S)}}}if(s.presence===R.Query.presence.REQUIRED)for(m=0;m<s.fields.length;m++){o[P=s.fields[m]]=o[P].intersect(c)}}var N=R.Set.complete,j=R.Set.empty;for(l=0;l<this.fields.length;l++){var P;o[P=this.fields[l]]&&(N=N.intersect(o[P])),i[P]&&(j=j.union(i[P]))}var A=Object.keys(n),O=[],I=Object.create(null);if(t.isNegated()){A=Object.keys(this.fieldVectors);for(l=0;l<A.length;l++){T=A[l];var F=R.FieldRef.fromString(T);n[T]=new R.MatchData}}for(l=0;l<A.length;l++){var D=(F=R.FieldRef.fromString(A[l])).docRef;if(N.contains(D)&&!j.contains(D)){var M,z=this.fieldVectors[F],B=r[F.fieldName].similarity(z);if(void 0!==(M=I[D]))M.score+=B,M.matchData.combine(n[F]);else{var $={ref:D,score:B,matchData:n[F]};I[D]=$,O.push($)}}}return O.sort((function(e,t){return t.score-e.score}))},R.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:R.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},R.Index.load=function(e){var t={},n={},r=e.fieldVectors,a=Object.create(null),o=e.invertedIndex,i=new R.TokenSet.Builder,l=R.Pipeline.load(e.pipeline);e.version!=R.version&&R.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+R.version+"' does not match serialized index '"+e.version+"'");for(var s=0;s<r.length;s++){var u=(d=r[s])[0],c=d[1];n[u]=new R.Vector(c)}for(s=0;s<o.length;s++){var d,f=(d=o[s])[0],p=d[1];i.insert(f),a[f]=p}return i.finish(),t.fields=e.fields,t.fieldVectors=n,t.invertedIndex=a,t.tokenSet=i.root,t.pipeline=l,new R.Index(t)},R.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=R.tokenizer,this.pipeline=new R.Pipeline,this.searchPipeline=new R.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},R.Builder.prototype.ref=function(e){this._ref=e},R.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},R.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var a=0;a<r.length;a++){var o=r[a],i=this._fields[o].extractor,l=i?i(e):e[o],s=this.tokenizer(l,{fields:[o]}),u=this.pipeline.run(s),c=new R.FieldRef(n,o),d=Object.create(null);this.fieldTermFrequencies[c]=d,this.fieldLengths[c]=0,this.fieldLengths[c]+=u.length;for(var f=0;f<u.length;f++){var p=u[f];if(null==d[p]&&(d[p]=0),d[p]+=1,null==this.invertedIndex[p]){var h=Object.create(null);h._index=this.termIndex,this.termIndex+=1;for(var m=0;m<r.length;m++)h[r[m]]=Object.create(null);this.invertedIndex[p]=h}null==this.invertedIndex[p][o][n]&&(this.invertedIndex[p][o][n]=Object.create(null));for(var g=0;g<this.metadataWhitelist.length;g++){var y=this.metadataWhitelist[g],b=p.metadata[y];null==this.invertedIndex[p][o][n][y]&&(this.invertedIndex[p][o][n][y]=[]),this.invertedIndex[p][o][n][y].push(b)}}}},R.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,n={},r={},a=0;a<t;a++){var o=R.FieldRef.fromString(e[a]),i=o.fieldName;r[i]||(r[i]=0),r[i]+=1,n[i]||(n[i]=0),n[i]+=this.fieldLengths[o]}var l=Object.keys(this._fields);for(a=0;a<l.length;a++){var s=l[a];n[s]=n[s]/r[s]}this.averageFieldLength=n},R.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),n=t.length,r=Object.create(null),a=0;a<n;a++){for(var o=R.FieldRef.fromString(t[a]),i=o.fieldName,l=this.fieldLengths[o],s=new R.Vector,u=this.fieldTermFrequencies[o],c=Object.keys(u),d=c.length,f=this._fields[i].boost||1,p=this._documents[o.docRef].boost||1,h=0;h<d;h++){var m,g,y,b=c[h],v=u[b],w=this.invertedIndex[b]._index;void 0===r[b]?(m=R.idf(this.invertedIndex[b],this.documentCount),r[b]=m):m=r[b],g=m*((this._k1+1)*v)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[i]))+v),g*=f,g*=p,y=Math.round(1e3*g)/1e3,s.insert(w,y)}e[o]=s}this.fieldVectors=e},R.Builder.prototype.createTokenSet=function(){this.tokenSet=R.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},R.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new R.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},R.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},R.MatchData=function(e,t,n){for(var r=Object.create(null),a=Object.keys(n||{}),o=0;o<a.length;o++){var i=a[o];r[i]=n[i].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=r)},R.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),n=0;n<t.length;n++){var r=t[n],a=Object.keys(e.metadata[r]);null==this.metadata[r]&&(this.metadata[r]=Object.create(null));for(var o=0;o<a.length;o++){var i=a[o],l=Object.keys(e.metadata[r][i]);null==this.metadata[r][i]&&(this.metadata[r][i]=Object.create(null));for(var s=0;s<l.length;s++){var u=l[s];null==this.metadata[r][i][u]?this.metadata[r][i][u]=e.metadata[r][i][u]:this.metadata[r][i][u]=this.metadata[r][i][u].concat(e.metadata[r][i][u])}}}},R.MatchData.prototype.add=function(e,t,n){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=n);if(t in this.metadata[e])for(var r=Object.keys(n),a=0;a<r.length;a++){var o=r[a];o in this.metadata[e][t]?this.metadata[e][t][o]=this.metadata[e][t][o].concat(n[o]):this.metadata[e][t][o]=n[o]}else this.metadata[e][t]=n},R.Query=function(e){this.clauses=[],this.allFields=e},R.Query.wildcard=new String("*"),R.Query.wildcard.NONE=0,R.Query.wildcard.LEADING=1,R.Query.wildcard.TRAILING=2,R.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},R.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=R.Query.wildcard.NONE),e.wildcard&R.Query.wildcard.LEADING&&e.term.charAt(0)!=R.Query.wildcard&&(e.term="*"+e.term),e.wildcard&R.Query.wildcard.TRAILING&&e.term.slice(-1)!=R.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=R.Query.presence.OPTIONAL),this.clauses.push(e),this},R.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=R.Query.presence.PROHIBITED)return!1;return!0},R.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,R.utils.clone(t))}),this),this;var n=t||{};return n.term=e.toString(),this.clause(n),this},R.QueryParseError=function(e,t,n){this.name="QueryParseError",this.message=e,this.start=t,this.end=n},R.QueryParseError.prototype=new Error,R.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},R.QueryLexer.prototype.run=function(){for(var e=R.QueryLexer.lexText;e;)e=e(this)},R.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,n=this.pos,r=0;r<this.escapeCharPositions.length;r++)n=this.escapeCharPositions[r],e.push(this.str.slice(t,n)),t=n+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},R.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},R.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},R.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos<this.length},R.QueryLexer.EOS="EOS",R.QueryLexer.FIELD="FIELD",R.QueryLexer.TERM="TERM",R.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",R.QueryLexer.BOOST="BOOST",R.QueryLexer.PRESENCE="PRESENCE",R.QueryLexer.lexField=function(e){return e.backup(),e.emit(R.QueryLexer.FIELD),e.ignore(),R.QueryLexer.lexText},R.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var a=e.peekLexeme();if(null==a){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(a.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var a=e.peekLexeme();if(null!=a)switch(a.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+a.type+"'";throw new R.QueryParseError(r,a.start,a.end)}else e.nextClause()}},void 0===(a="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=a)}()},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(a>=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),h=f.indexOf(p);if(h>-1){++a;var m=f.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),y=f.substring(h+p.length),b=[];m&&b.push.apply(b,i([m])),b.push(g),y&&b.push.apply(b,i([y])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(Prism)},767:()=>{!function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism)},4294:(e,t,n)=>{var r={"./prism-rust":767};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=4294},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(3840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,l={};function s(e,t){u(e,t),u(e+"Capture",t)}function u(e,t){for(l[e]=t,e=0;e<t.length;e++)i.add(t[e])}var c=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},h={};function m(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new m(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new m(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new m(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new m(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new m(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new m(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new m(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new m(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new m(e,5,!1,e.toLowerCase(),null,!1,!1)}));var y=/[\-:]([a-z])/g;function b(e){return e[1].toUpperCase()}function v(e,t,n,r){var a=g.hasOwnProperty(t)?g[t]:null;(null!==a?0!==a.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!d.call(h,e)||!d.call(p,e)&&(f.test(e)?h[e]=!0:(p[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(y,b);g[t]=new m(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(y,b);g[t]=new m(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(y,b);g[t]=new m(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new m(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,x=Symbol.for("react.element"),k=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),T=Symbol.for("react.context"),L=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),A=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var O=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var I=Symbol.iterator;function R(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=I&&e[I]||e["@@iterator"])?e:null}var F,D=Object.assign;function M(e){if(void 0===F)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);F=t&&t[1]||""}return"\n"+F+e}var z=!1;function B(e,t){if(!e||z)return"";z=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var r=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){r=u}e.call(t.prototype)}else{try{throw Error()}catch(u){r=u}e()}}catch(u){if(u&&r&&"string"==typeof u.stack){for(var a=u.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,l=o.length-1;1<=i&&0<=l&&a[i]!==o[l];)l--;for(;1<=i&&0<=l;i--,l--)if(a[i]!==o[l]){if(1!==i||1!==l)do{if(i--,0>--l||a[i]!==o[l]){var s="\n"+a[i].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}}while(1<=i&&0<=l);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?M(e):""}function $(e){switch(e.tag){case 5:return M(e.type);case 16:return M("Lazy");case 13:return M("Suspense");case 19:return M("SuspenseList");case 0:case 2:case 15:return e=B(e.type,!1);case 11:return e=B(e.type.render,!1);case 1:return e=B(e.type,!0);default:return""}}function U(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case S:return"Fragment";case k:return"Portal";case _:return"Profiler";case E:return"StrictMode";case N:return"Suspense";case j:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case L:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case P:return null!==(t=e.displayName||null)?t:U(e.type)||"Memo";case A:t=e._payload,e=e._init;try{return U(e(t))}catch(n){}}return null}function Q(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return U(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function Z(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function H(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function V(e){e._valueTracker||(e._valueTracker=function(e){var t=H(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function W(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=H(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function q(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function G(e,t){var n=t.checked;return D({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Z(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function K(e,t){null!=(t=t.checked)&&v(e,"checked",t,!1)}function X(e,t){K(e,t);var n=Z(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,Z(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&q(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Z(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return D({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(te(n)){if(1<n.length)throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Z(n)}}function oe(e,t){var n=Z(t.value),r=Z(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function le(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function se(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?le(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ue,ce,de=(ce=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ue=ue||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ue.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,t)}))}:ce);function fe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var pe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},he=["Webkit","ms","Moz","O"];function me(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||pe.hasOwnProperty(e)&&pe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=me(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(pe).forEach((function(e){he.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),pe[t]=pe[e]}))}));var ye=D({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function be(e,t){if(t){if(ye[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(o(62))}}function ve(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function xe(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var ke=null,Se=null,Ee=null;function _e(e){if(e=va(e)){if("function"!=typeof ke)throw Error(o(280));var t=e.stateNode;t&&(t=xa(t),ke(e.stateNode,e.type,t))}}function Ce(e){Se?Ee?Ee.push(e):Ee=[e]:Se=e}function Te(){if(Se){var e=Se,t=Ee;if(Ee=Se=null,_e(e),t)for(e=0;e<t.length;e++)_e(t[e])}}function Le(e,t){return e(t)}function Ne(){}var je=!1;function Pe(e,t,n){if(je)return e(t,n);je=!0;try{return Le(e,t,n)}finally{je=!1,(null!==Se||null!==Ee)&&(Ne(),Te())}}function Ae(e,t){var n=e.stateNode;if(null===n)return null;var r=xa(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(o(231,t,typeof n));return n}var Oe=!1;if(c)try{var Ie={};Object.defineProperty(Ie,"passive",{get:function(){Oe=!0}}),window.addEventListener("test",Ie,Ie),window.removeEventListener("test",Ie,Ie)}catch(ce){Oe=!1}function Re(e,t,n,r,a,o,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var Fe=!1,De=null,Me=!1,ze=null,Be={onError:function(e){Fe=!0,De=e}};function $e(e,t,n,r,a,o,i,l,s){Fe=!1,De=null,Re.apply(Be,arguments)}function Ue(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ze(e){if(Ue(e)!==e)throw Error(o(188))}function He(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ue(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return Ze(a),e;if(i===r)return Ze(a),t;i=i.sibling}throw Error(o(188))}if(n.return!==r.return)n=a,r=i;else{for(var l=!1,s=a.child;s;){if(s===n){l=!0,n=a,r=i;break}if(s===r){l=!0,r=a,n=i;break}s=s.sibling}if(!l){for(s=i.child;s;){if(s===n){l=!0,n=i,r=a;break}if(s===r){l=!0,r=i,n=a;break}s=s.sibling}if(!l)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e))?Ve(e):null}function Ve(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ve(e);if(null!==t)return t;e=e.sibling}return null}var We=a.unstable_scheduleCallback,qe=a.unstable_cancelCallback,Ge=a.unstable_shouldYield,Ye=a.unstable_requestPaint,Ke=a.unstable_now,Xe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,ot=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(lt(e)/st|0)|0},lt=Math.log,st=Math.LN2;var ut=64,ct=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ft(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=268435455&n;if(0!==i){var l=i&~a;0!==l?r=dt(l):0!==(o&=i)&&(r=dt(o))}else 0!==(i=n&~a)?r=dt(i):0!==o&&(r=dt(o));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&a)&&((a=r&-r)>=(o=t&-t)||16===a&&0!=(4194240&o)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-it(t)),r|=e[n],t&=~a;return r}function pt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function ht(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function mt(){var e=ut;return 0==(4194240&(ut<<=1))&&(ut=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function yt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function bt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var vt=0;function wt(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var xt,kt,St,Et,_t,Ct=!1,Tt=[],Lt=null,Nt=null,jt=null,Pt=new Map,At=new Map,Ot=[],It="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Rt(e,t){switch(e){case"focusin":case"focusout":Lt=null;break;case"dragenter":case"dragleave":Nt=null;break;case"mouseover":case"mouseout":jt=null;break;case"pointerover":case"pointerout":Pt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":At.delete(t.pointerId)}}function Ft(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=va(t))&&kt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Dt(e){var t=ba(e.target);if(null!==t){var n=Ue(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Qe(n)))return e.blockedOn=t,void _t(e.priority,(function(){St(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Mt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Gt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=va(n))&&kt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function zt(e,t,n){Mt(e)&&n.delete(t)}function Bt(){Ct=!1,null!==Lt&&Mt(Lt)&&(Lt=null),null!==Nt&&Mt(Nt)&&(Nt=null),null!==jt&&Mt(jt)&&(jt=null),Pt.forEach(zt),At.forEach(zt)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,Bt)))}function Ut(e){function t(t){return $t(t,e)}if(0<Tt.length){$t(Tt[0],e);for(var n=1;n<Tt.length;n++){var r=Tt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Lt&&$t(Lt,e),null!==Nt&&$t(Nt,e),null!==jt&&$t(jt,e),Pt.forEach(t),At.forEach(t),n=0;n<Ot.length;n++)(r=Ot[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Ot.length&&null===(n=Ot[0]).blockedOn;)Dt(n),null===n.blockedOn&&Ot.shift()}var Qt=w.ReactCurrentBatchConfig,Zt=!0;function Ht(e,t,n,r){var a=vt,o=Qt.transition;Qt.transition=null;try{vt=1,Wt(e,t,n,r)}finally{vt=a,Qt.transition=o}}function Vt(e,t,n,r){var a=vt,o=Qt.transition;Qt.transition=null;try{vt=4,Wt(e,t,n,r)}finally{vt=a,Qt.transition=o}}function Wt(e,t,n,r){if(Zt){var a=Gt(e,t,n,r);if(null===a)Zr(e,t,r,qt,n),Rt(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return Lt=Ft(Lt,e,t,n,r,a),!0;case"dragenter":return Nt=Ft(Nt,e,t,n,r,a),!0;case"mouseover":return jt=Ft(jt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return Pt.set(o,Ft(Pt.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,At.set(o,Ft(At.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(Rt(e,r),4&t&&-1<It.indexOf(e)){for(;null!==a;){var o=va(a);if(null!==o&&xt(o),null===(o=Gt(e,t,n,r))&&Zr(e,t,r,qt,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Zr(e,t,r,null,n)}}var qt=null;function Gt(e,t,n,r){if(qt=null,null!==(e=ba(e=xe(r))))if(null===(t=Ue(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=Qe(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return qt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Kt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,a="value"in Kt?Kt.value:Kt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return D(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,ln,sn,un={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},cn=an(un),dn=D({},un,{view:0,detail:0}),fn=an(dn),pn=D({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_n,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==sn&&(sn&&"mousemove"===e.type?(on=e.screenX-sn.screenX,ln=e.screenY-sn.screenY):ln=on=0,sn=e),on)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),hn=an(pn),mn=an(D({},pn,{dataTransfer:0})),gn=an(D({},dn,{relatedTarget:0})),yn=an(D({},un,{animationName:0,elapsedTime:0,pseudoElement:0})),bn=D({},un,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),vn=an(bn),wn=an(D({},un,{data:0})),xn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},kn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function _n(){return En}var Cn=D({},dn,{key:function(e){if(e.key){var t=xn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?kn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_n,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=an(Cn),Ln=an(D({},pn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=an(D({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_n})),jn=an(D({},un,{propertyName:0,elapsedTime:0,pseudoElement:0})),Pn=D({},pn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),An=an(Pn),On=[9,13,27,32],In=c&&"CompositionEvent"in window,Rn=null;c&&"documentMode"in document&&(Rn=document.documentMode);var Fn=c&&"TextEvent"in window&&!Rn,Dn=c&&(!In||Rn&&8<Rn&&11>=Rn),Mn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==On.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Un=!1;var Qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Zn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Qn[e.type]:"textarea"===t}function Hn(e,t,n,r){Ce(r),0<(t=Vr(t,"onChange")).length&&(n=new cn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Vn=null,Wn=null;function qn(e){Mr(e,0)}function Gn(e){if(W(wa(e)))return e}function Yn(e,t){if("change"===e)return t}var Kn=!1;if(c){var Xn;if(c){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Kn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Vn&&(Vn.detachEvent("onpropertychange",nr),Wn=Vn=null)}function nr(e){if("value"===e.propertyName&&Gn(Wn)){var t=[];Hn(t,Wn,e,xe(e)),Pe(qn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Wn=n,(Vn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Gn(Wn)}function or(e,t){if("click"===e)return Gn(t)}function ir(e,t){if("input"===e||"change"===e)return Gn(t)}var lr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function sr(e,t){if(lr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!d.call(t,a)||!lr(e[a],t[a]))return!1}return!0}function ur(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function cr(e,t){var n,r=ur(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=ur(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function fr(){for(var e=window,t=q();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=q((e=t.contentWindow).document)}return t}function pr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function hr(e){var t=fr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&pr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=void 0===r.end?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=cr(n,o);var i=cr(n,r);a&&i&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var mr=c&&"documentMode"in document&&11>=document.documentMode,gr=null,yr=null,br=null,vr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;vr||null==gr||gr!==q(r)||("selectionStart"in(r=gr)&&pr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},br&&sr(br,r)||(br=r,0<(r=Vr(yr,"onSelect")).length&&(t=new cn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function xr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var kr={animationend:xr("Animation","AnimationEnd"),animationiteration:xr("Animation","AnimationIteration"),animationstart:xr("Animation","AnimationStart"),transitionend:xr("Transition","TransitionEnd")},Sr={},Er={};function _r(e){if(Sr[e])return Sr[e];if(!kr[e])return e;var t,n=kr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return Sr[e]=n[t];return e}c&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete kr.animationend.animation,delete kr.animationiteration.animation,delete kr.animationstart.animation),"TransitionEvent"in window||delete kr.transitionend.transition);var Cr=_r("animationend"),Tr=_r("animationiteration"),Lr=_r("animationstart"),Nr=_r("transitionend"),jr=new Map,Pr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Ar(e,t){jr.set(e,t),s(t,[e])}for(var Or=0;Or<Pr.length;Or++){var Ir=Pr[Or];Ar(Ir.toLowerCase(),"on"+(Ir[0].toUpperCase()+Ir.slice(1)))}Ar(Cr,"onAnimationEnd"),Ar(Tr,"onAnimationIteration"),Ar(Lr,"onAnimationStart"),Ar("dblclick","onDoubleClick"),Ar("focusin","onFocus"),Ar("focusout","onBlur"),Ar(Nr,"onTransitionEnd"),u("onMouseEnter",["mouseout","mouseover"]),u("onMouseLeave",["mouseout","mouseover"]),u("onPointerEnter",["pointerout","pointerover"]),u("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Rr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Fr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Rr));function Dr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,i,l,s,u){if($e.apply(this,arguments),Fe){if(!Fe)throw Error(o(198));var c=De;Fe=!1,De=null,Me||(Me=!0,ze=c)}}(r,t,void 0,e),e.currentTarget=null}function Mr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==o&&a.isPropagationStopped())break e;Dr(a,l,u),o=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==o&&a.isPropagationStopped())break e;Dr(a,l,u),o=s}}}if(Me)throw e=ze,Me=!1,ze=null,e}function zr(e,t){var n=t[ma];void 0===n&&(n=t[ma]=new Set);var r=e+"__bubble";n.has(r)||(Qr(t,e,2,!1),n.add(r))}function Br(e,t,n){var r=0;t&&(r|=4),Qr(n,e,r,t)}var $r="_reactListening"+Math.random().toString(36).slice(2);function Ur(e){if(!e[$r]){e[$r]=!0,i.forEach((function(t){"selectionchange"!==t&&(Fr.has(t)||Br(t,!1,e),Br(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$r]||(t[$r]=!0,Br("selectionchange",!1,t))}}function Qr(e,t,n,r){switch(Yt(t)){case 1:var a=Ht;break;case 4:a=Vt;break;default:a=Wt}n=a.bind(null,t,n,e),a=void 0,!Oe||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Zr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===a||8===l.nodeType&&l.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===a||8===s.nodeType&&s.parentNode===a))return;i=i.return}for(;null!==l;){if(null===(i=ba(l)))return;if(5===(s=i.tag)||6===s){r=o=i;continue e}l=l.parentNode}}r=r.return}Pe((function(){var r=o,a=xe(n),i=[];e:{var l=jr.get(e);if(void 0!==l){var s=cn,u=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":s=Tn;break;case"focusin":u="focus",s=gn;break;case"focusout":u="blur",s=gn;break;case"beforeblur":case"afterblur":s=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=hn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Nn;break;case Cr:case Tr:case Lr:s=yn;break;case Nr:s=jn;break;case"scroll":s=fn;break;case"wheel":s=An;break;case"copy":case"cut":case"paste":s=vn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Ln}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,h=r;null!==h;){var m=(p=h).stateNode;if(5===p.tag&&null!==m&&(p=m,null!==f&&(null!=(m=Ae(h,f))&&c.push(Hr(h,m,p)))),d)break;h=h.return}0<c.length&&(l=new s(l,u,null,n,a),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||n===we||!(u=n.relatedTarget||n.fromElement)||!ba(u)&&!u[ha])&&(s||l)&&(l=a.window===a?a:(l=a.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?ba(u):null)&&(u!==(d=Ue(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=hn,m="onMouseLeave",f="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(c=Ln,m="onPointerLeave",f="onPointerEnter",h="pointer"),d=null==s?l:wa(s),p=null==u?l:wa(u),(l=new c(m,h+"leave",s,n,a)).target=d,l.relatedTarget=p,m=null,ba(a)===r&&((c=new c(f,h+"enter",u,n,a)).target=p,c.relatedTarget=d,m=c),d=m,s&&u)e:{for(f=u,h=0,p=c=s;p;p=Wr(p))h++;for(p=0,m=f;m;m=Wr(m))p++;for(;0<h-p;)c=Wr(c),h--;for(;0<p-h;)f=Wr(f),p--;for(;h--;){if(c===f||null!==f&&c===f.alternate)break e;c=Wr(c),f=Wr(f)}c=null}else c=null;null!==s&&qr(i,l,s,c,!1),null!==u&&null!==d&&qr(i,d,u,c,!0)}if("select"===(s=(l=r?wa(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Yn;else if(Zn(l))if(Kn)g=ir;else{g=ar;var y=rr}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=or);switch(g&&(g=g(e,r))?Hn(i,g,n,a):(y&&y(e,l,r),"focusout"===e&&(y=l._wrapperState)&&y.controlled&&"number"===l.type&&ee(l,"number",l.value)),y=r?wa(r):window,e){case"focusin":(Zn(y)||"true"===y.contentEditable)&&(gr=y,yr=r,br=null);break;case"focusout":br=yr=gr=null;break;case"mousedown":vr=!0;break;case"contextmenu":case"mouseup":case"dragend":vr=!1,wr(i,n,a);break;case"selectionchange":if(mr)break;case"keydown":case"keyup":wr(i,n,a)}var b;if(In)e:{switch(e){case"compositionstart":var v="onCompositionStart";break e;case"compositionend":v="onCompositionEnd";break e;case"compositionupdate":v="onCompositionUpdate";break e}v=void 0}else Un?Bn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(Dn&&"ko"!==n.locale&&(Un||"onCompositionStart"!==v?"onCompositionEnd"===v&&Un&&(b=en()):(Xt="value"in(Kt=a)?Kt.value:Kt.textContent,Un=!0)),0<(y=Vr(r,v)).length&&(v=new wn(v,e,null,n,a),i.push({event:v,listeners:y}),b?v.data=b:null!==(b=$n(n))&&(v.data=b))),(b=Fn?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(zn=!0,Mn);case"textInput":return(e=t.data)===Mn&&zn?null:e;default:return null}}(e,n):function(e,t){if(Un)return"compositionend"===e||!In&&Bn(e,t)?(e=en(),Jt=Xt=Kt=null,Un=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Dn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Vr(r,"onBeforeInput")).length&&(a=new wn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=b))}Mr(i,t)}))}function Hr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Vr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Ae(e,n))&&r.unshift(Hr(e,o,a)),null!=(o=Ae(e,t))&&r.push(Hr(e,o,a))),e=e.return}return r}function Wr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function qr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,a?null!=(s=Ae(n,o))&&i.unshift(Hr(n,s,l)):a||null!=(s=Ae(n,o))&&i.push(Hr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Gr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Kr(e){return("string"==typeof e?e:""+e).replace(Gr,"\n").replace(Yr,"")}function Xr(e,t,n){if(t=Kr(t),Kr(e)!==t&&n)throw Error(o(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"==typeof setTimeout?setTimeout:void 0,aa="function"==typeof clearTimeout?clearTimeout:void 0,oa="function"==typeof Promise?Promise:void 0,ia="function"==typeof queueMicrotask?queueMicrotask:void 0!==oa?function(e){return oa.resolve(null).then(e).catch(la)}:ra;function la(e){setTimeout((function(){throw e}))}function sa(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void Ut(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);Ut(t)}function ua(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ca(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var da=Math.random().toString(36).slice(2),fa="__reactFiber$"+da,pa="__reactProps$"+da,ha="__reactContainer$"+da,ma="__reactEvents$"+da,ga="__reactListeners$"+da,ya="__reactHandles$"+da;function ba(e){var t=e[fa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ha]||n[fa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ca(e);null!==e;){if(n=e[fa])return n;e=ca(e)}return t}n=(e=n).parentNode}return null}function va(e){return!(e=e[fa]||e[ha])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function xa(e){return e[pa]||null}var ka=[],Sa=-1;function Ea(e){return{current:e}}function _a(e){0>Sa||(e.current=ka[Sa],ka[Sa]=null,Sa--)}function Ca(e,t){Sa++,ka[Sa]=e.current,e.current=t}var Ta={},La=Ea(Ta),Na=Ea(!1),ja=Ta;function Pa(e,t){var n=e.type.contextTypes;if(!n)return Ta;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Aa(e){return null!=(e=e.childContextTypes)}function Oa(){_a(Na),_a(La)}function Ia(e,t,n){if(La.current!==Ta)throw Error(o(168));Ca(La,t),Ca(Na,n)}function Ra(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(o(108,Q(e)||"Unknown",a));return D({},n,r)}function Fa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ta,ja=La.current,Ca(La,e),Ca(Na,Na.current),!0}function Da(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Ra(e,t,ja),r.__reactInternalMemoizedMergedChildContext=e,_a(Na),_a(La),Ca(La,e)):_a(Na),Ca(Na,n)}var Ma=null,za=!1,Ba=!1;function $a(e){null===Ma?Ma=[e]:Ma.push(e)}function Ua(){if(!Ba&&null!==Ma){Ba=!0;var e=0,t=vt;try{var n=Ma;for(vt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Ma=null,za=!1}catch(a){throw null!==Ma&&(Ma=Ma.slice(e+1)),We(Je,Ua),a}finally{vt=t,Ba=!1}}return null}var Qa=[],Za=0,Ha=null,Va=0,Wa=[],qa=0,Ga=null,Ya=1,Ka="";function Xa(e,t){Qa[Za++]=Va,Qa[Za++]=Ha,Ha=e,Va=t}function Ja(e,t,n){Wa[qa++]=Ya,Wa[qa++]=Ka,Wa[qa++]=Ga,Ga=e;var r=Ya;e=Ka;var a=32-it(r)-1;r&=~(1<<a),n+=1;var o=32-it(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Ya=1<<32-it(t)+a|n<<a|r,Ka=o+e}else Ya=1<<o|n<<a|r,Ka=e}function eo(e){null!==e.return&&(Xa(e,1),Ja(e,1,0))}function to(e){for(;e===Ha;)Ha=Qa[--Za],Qa[Za]=null,Va=Qa[--Za],Qa[Za]=null;for(;e===Ga;)Ga=Wa[--qa],Wa[qa]=null,Ka=Wa[--qa],Wa[qa]=null,Ya=Wa[--qa],Wa[qa]=null}var no=null,ro=null,ao=!1,oo=null;function io(e,t){var n=Au(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function lo(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,no=e,ro=ua(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,no=e,ro=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Ga?{id:Ya,overflow:Ka}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Au(18,null,null,0)).stateNode=t,n.return=e,e.child=n,no=e,ro=null,!0);default:return!1}}function so(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function uo(e){if(ao){var t=ro;if(t){var n=t;if(!lo(e,t)){if(so(e))throw Error(o(418));t=ua(n.nextSibling);var r=no;t&&lo(e,t)?io(r,n):(e.flags=-4097&e.flags|2,ao=!1,no=e)}}else{if(so(e))throw Error(o(418));e.flags=-4097&e.flags|2,ao=!1,no=e}}}function co(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;no=e}function fo(e){if(e!==no)return!1;if(!ao)return co(e),ao=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ro)){if(so(e))throw po(),Error(o(418));for(;t;)io(e,t),t=ua(t.nextSibling)}if(co(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ro=ua(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ro=null}}else ro=no?ua(e.stateNode.nextSibling):null;return!0}function po(){for(var e=ro;e;)e=ua(e.nextSibling)}function ho(){ro=no=null,ao=!1}function mo(e){null===oo?oo=[e]:oo.push(e)}var go=w.ReactCurrentBatchConfig;function yo(e,t){if(e&&e.defaultProps){for(var n in t=D({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var bo=Ea(null),vo=null,wo=null,xo=null;function ko(){xo=wo=vo=null}function So(e){var t=bo.current;_a(bo),e._currentValue=t}function Eo(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function _o(e,t){vo=e,xo=wo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(wl=!0),e.firstContext=null)}function Co(e){var t=e._currentValue;if(xo!==e)if(e={context:e,memoizedValue:t,next:null},null===wo){if(null===vo)throw Error(o(308));wo=e,vo.dependencies={lanes:0,firstContext:e}}else wo=wo.next=e;return t}var To=null;function Lo(e){null===To?To=[e]:To.push(e)}function No(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,Lo(t)):(n.next=a.next,a.next=n),t.interleaved=n,jo(e,r)}function jo(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Po=!1;function Ao(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Oo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Io(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ro(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&Ns)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,jo(e,n)}return null===(a=r.interleaved)?(t.next=t,Lo(r)):(t.next=a.next,a.next=t),r.interleaved=t,jo(e,n)}function Fo(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}function Do(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Mo(e,t,n,r){var a=e.updateQueue;Po=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,u=s.next;s.next=null,null===i?o=u:i.next=u,i=s;var c=e.alternate;null!==c&&((l=(c=c.updateQueue).lastBaseUpdate)!==i&&(null===l?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(null!==o){var d=a.baseState;for(i=0,c=u=s=null,l=o;;){var f=l.lane,p=l.eventTime;if((r&f)===f){null!==c&&(c=c.next={eventTime:p,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var h=e,m=l;switch(f=t,p=n,m.tag){case 1:if("function"==typeof(h=m.payload)){d=h.call(p,d,f);break e}d=h;break e;case 3:h.flags=-65537&h.flags|128;case 0:if(null==(f="function"==typeof(h=m.payload)?h.call(p,d,f):h))break e;d=D({},d,f);break e;case 2:Po=!0}}null!==l.callback&&0!==l.lane&&(e.flags|=64,null===(f=a.effects)?a.effects=[l]:f.push(l))}else p={eventTime:p,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===c?(u=c=p,s=d):c=c.next=p,i|=f;if(null===(l=l.next)){if(null===(l=a.shared.pending))break;l=(f=l).next,f.next=null,a.lastBaseUpdate=f,a.shared.pending=null}}if(null===c&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,null!==(t=a.shared.interleaved)){a=t;do{i|=a.lane,a=a.next}while(a!==t)}else null===o&&(a.shared.lanes=0);Ds|=i,e.lanes=i,e.memoizedState=d}}function zo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(o(191,a));a.call(r)}}}var Bo=(new r.Component).refs;function $o(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:D({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Uo={isMounted:function(e){return!!(e=e._reactInternals)&&Ue(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=tu(),a=nu(e),o=Io(r,a);o.payload=t,null!=n&&(o.callback=n),null!==(t=Ro(e,o,a))&&(ru(t,e,a,r),Fo(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=tu(),a=nu(e),o=Io(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=Ro(e,o,a))&&(ru(t,e,a,r),Fo(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=tu(),r=nu(e),a=Io(n,r);a.tag=2,null!=t&&(a.callback=t),null!==(t=Ro(e,a,r))&&(ru(t,e,r,n),Fo(t,e,r))}};function Qo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!sr(n,r)||!sr(a,o))}function Zo(e,t,n){var r=!1,a=Ta,o=t.contextType;return"object"==typeof o&&null!==o?o=Co(o):(a=Aa(t)?ja:La.current,o=(r=null!=(r=t.contextTypes))?Pa(e,a):Ta),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Uo,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function Ho(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Uo.enqueueReplaceState(t,t.state,null)}function Vo(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=Bo,Ao(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=Co(o):(o=Aa(t)?ja:La.current,a.context=Pa(e,o)),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&($o(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&Uo.enqueueReplaceState(a,a.state,null),Mo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4194308)}function Wo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var a=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=a.refs;t===Bo&&(t=a.refs={}),null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function qo(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Go(e){return(0,e._init)(e._payload)}function Yo(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Iu(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function l(t){return e&&null===t.alternate&&(t.flags|=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Mu(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function u(e,t,n,r){var o=n.type;return o===S?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===A&&Go(o)===t.type)?((r=a(t,n.props)).ref=Wo(e,t,n),r.return=e,r):((r=Ru(n.type,n.key,n.props,null,e.mode,r)).ref=Wo(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=zu(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Fu(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Mu(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case x:return(n=Ru(t.type,t.key,t.props,null,e.mode,n)).ref=Wo(e,null,t),n.return=e,n;case k:return(t=zu(t,e.mode,n)).return=e,t;case A:return f(e,(0,t._init)(t._payload),n)}if(te(t)||R(t))return(t=Fu(t,e.mode,n,null)).return=e,t;qo(e,t)}return null}function p(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==a?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case x:return n.key===a?u(e,t,n,r):null;case k:return n.key===a?c(e,t,n,r):null;case A:return p(e,t,(a=n._init)(n._payload),r)}if(te(n)||R(n))return null!==a?null:d(e,t,n,r,null);qo(e,n)}return null}function h(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case x:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case k:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case A:return h(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||R(r))return d(t,e=e.get(n)||null,r,a,null);qo(t,r)}return null}function m(a,o,l,s){for(var u=null,c=null,d=o,m=o=0,g=null;null!==d&&m<l.length;m++){d.index>m?(g=d,d=null):g=d.sibling;var y=p(a,d,l[m],s);if(null===y){null===d&&(d=g);break}e&&d&&null===y.alternate&&t(a,d),o=i(y,o,m),null===c?u=y:c.sibling=y,c=y,d=g}if(m===l.length)return n(a,d),ao&&Xa(a,m),u;if(null===d){for(;m<l.length;m++)null!==(d=f(a,l[m],s))&&(o=i(d,o,m),null===c?u=d:c.sibling=d,c=d);return ao&&Xa(a,m),u}for(d=r(a,d);m<l.length;m++)null!==(g=h(d,a,m,l[m],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?m:g.key),o=i(g,o,m),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(a,e)})),ao&&Xa(a,m),u}function g(a,l,s,u){var c=R(s);if("function"!=typeof c)throw Error(o(150));if(null==(s=c.call(s)))throw Error(o(151));for(var d=c=null,m=l,g=l=0,y=null,b=s.next();null!==m&&!b.done;g++,b=s.next()){m.index>g?(y=m,m=null):y=m.sibling;var v=p(a,m,b.value,u);if(null===v){null===m&&(m=y);break}e&&m&&null===v.alternate&&t(a,m),l=i(v,l,g),null===d?c=v:d.sibling=v,d=v,m=y}if(b.done)return n(a,m),ao&&Xa(a,g),c;if(null===m){for(;!b.done;g++,b=s.next())null!==(b=f(a,b.value,u))&&(l=i(b,l,g),null===d?c=b:d.sibling=b,d=b);return ao&&Xa(a,g),c}for(m=r(a,m);!b.done;g++,b=s.next())null!==(b=h(m,a,g,b.value,u))&&(e&&null!==b.alternate&&m.delete(null===b.key?g:b.key),l=i(b,l,g),null===d?c=b:d.sibling=b,d=b);return e&&m.forEach((function(e){return t(a,e)})),ao&&Xa(a,g),c}return function e(r,o,i,s){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case x:e:{for(var u=i.key,c=o;null!==c;){if(c.key===u){if((u=i.type)===S){if(7===c.tag){n(r,c.sibling),(o=a(c,i.props.children)).return=r,r=o;break e}}else if(c.elementType===u||"object"==typeof u&&null!==u&&u.$$typeof===A&&Go(u)===c.type){n(r,c.sibling),(o=a(c,i.props)).ref=Wo(r,c,i),o.return=r,r=o;break e}n(r,c);break}t(r,c),c=c.sibling}i.type===S?((o=Fu(i.props.children,r.mode,s,i.key)).return=r,r=o):((s=Ru(i.type,i.key,i.props,null,r.mode,s)).ref=Wo(r,o,i),s.return=r,r=s)}return l(r);case k:e:{for(c=i.key;null!==o;){if(o.key===c){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(r,o.sibling),(o=a(o,i.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=zu(i,r.mode,s)).return=r,r=o}return l(r);case A:return e(r,o,(c=i._init)(i._payload),s)}if(te(i))return m(r,o,i,s);if(R(i))return g(r,o,i,s);qo(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==o&&6===o.tag?(n(r,o.sibling),(o=a(o,i)).return=r,r=o):(n(r,o),(o=Mu(i,r.mode,s)).return=r,r=o),l(r)):n(r,o)}}var Ko=Yo(!0),Xo=Yo(!1),Jo={},ei=Ea(Jo),ti=Ea(Jo),ni=Ea(Jo);function ri(e){if(e===Jo)throw Error(o(174));return e}function ai(e,t){switch(Ca(ni,t),Ca(ti,e),Ca(ei,Jo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:se(null,"");break;default:t=se(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}_a(ei),Ca(ei,t)}function oi(){_a(ei),_a(ti),_a(ni)}function ii(e){ri(ni.current);var t=ri(ei.current),n=se(t,e.type);t!==n&&(Ca(ti,e),Ca(ei,n))}function li(e){ti.current===e&&(_a(ei),_a(ti))}var si=Ea(0);function ui(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ci=[];function di(){for(var e=0;e<ci.length;e++)ci[e]._workInProgressVersionPrimary=null;ci.length=0}var fi=w.ReactCurrentDispatcher,pi=w.ReactCurrentBatchConfig,hi=0,mi=null,gi=null,yi=null,bi=!1,vi=!1,wi=0,xi=0;function ki(){throw Error(o(321))}function Si(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return!1;return!0}function Ei(e,t,n,r,a,i){if(hi=i,mi=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,fi.current=null===e||null===e.memoizedState?ll:sl,e=n(r,a),vi){i=0;do{if(vi=!1,wi=0,25<=i)throw Error(o(301));i+=1,yi=gi=null,t.updateQueue=null,fi.current=ul,e=n(r,a)}while(vi)}if(fi.current=il,t=null!==gi&&null!==gi.next,hi=0,yi=gi=mi=null,bi=!1,t)throw Error(o(300));return e}function _i(){var e=0!==wi;return wi=0,e}function Ci(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===yi?mi.memoizedState=yi=e:yi=yi.next=e,yi}function Ti(){if(null===gi){var e=mi.alternate;e=null!==e?e.memoizedState:null}else e=gi.next;var t=null===yi?mi.memoizedState:yi.next;if(null!==t)yi=t,gi=e;else{if(null===e)throw Error(o(310));e={memoizedState:(gi=e).memoizedState,baseState:gi.baseState,baseQueue:gi.baseQueue,queue:gi.queue,next:null},null===yi?mi.memoizedState=yi=e:yi=yi.next=e}return yi}function Li(e,t){return"function"==typeof t?t(e):t}function Ni(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=gi,a=r.baseQueue,i=n.pending;if(null!==i){if(null!==a){var l=a.next;a.next=i.next,i.next=l}r.baseQueue=a=i,n.pending=null}if(null!==a){i=a.next,r=r.baseState;var s=l=null,u=null,c=i;do{var d=c.lane;if((hi&d)===d)null!==u&&(u=u.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),r=c.hasEagerState?c.eagerState:e(r,c.action);else{var f={lane:d,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};null===u?(s=u=f,l=r):u=u.next=f,mi.lanes|=d,Ds|=d}c=c.next}while(null!==c&&c!==i);null===u?l=r:u.next=s,lr(r,t.memoizedState)||(wl=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=u,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{i=a.lane,mi.lanes|=i,Ds|=i,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function ji(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var l=a=a.next;do{i=e(i,l.action),l=l.next}while(l!==a);lr(i,t.memoizedState)||(wl=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Pi(){}function Ai(e,t){var n=mi,r=Ti(),a=t(),i=!lr(r.memoizedState,a);if(i&&(r.memoizedState=a,wl=!0),r=r.queue,Zi(Ri.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==yi&&1&yi.memoizedState.tag){if(n.flags|=2048,zi(9,Ii.bind(null,n,r,a,t),void 0,null),null===js)throw Error(o(349));0!=(30&hi)||Oi(n,t,a)}return a}function Oi(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=mi.updateQueue)?(t={lastEffect:null,stores:null},mi.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Ii(e,t,n,r){t.value=n,t.getSnapshot=r,Fi(t)&&Di(e)}function Ri(e,t,n){return n((function(){Fi(t)&&Di(e)}))}function Fi(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!lr(e,n)}catch(r){return!0}}function Di(e){var t=jo(e,1);null!==t&&ru(t,e,1,-1)}function Mi(e){var t=Ci();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Li,lastRenderedState:e},t.queue=e,e=e.dispatch=nl.bind(null,mi,e),[t.memoizedState,e]}function zi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=mi.updateQueue)?(t={lastEffect:null,stores:null},mi.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Bi(){return Ti().memoizedState}function $i(e,t,n,r){var a=Ci();mi.flags|=e,a.memoizedState=zi(1|t,n,void 0,void 0===r?null:r)}function Ui(e,t,n,r){var a=Ti();r=void 0===r?null:r;var o=void 0;if(null!==gi){var i=gi.memoizedState;if(o=i.destroy,null!==r&&Si(r,i.deps))return void(a.memoizedState=zi(t,n,o,r))}mi.flags|=e,a.memoizedState=zi(1|t,n,o,r)}function Qi(e,t){return $i(8390656,8,e,t)}function Zi(e,t){return Ui(2048,8,e,t)}function Hi(e,t){return Ui(4,2,e,t)}function Vi(e,t){return Ui(4,4,e,t)}function Wi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function qi(e,t,n){return n=null!=n?n.concat([e]):null,Ui(4,4,Wi.bind(null,t,e),n)}function Gi(){}function Yi(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ki(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Xi(e,t,n){return 0==(21&hi)?(e.baseState&&(e.baseState=!1,wl=!0),e.memoizedState=n):(lr(n,t)||(n=mt(),mi.lanes|=n,Ds|=n,e.baseState=!0),t)}function Ji(e,t){var n=vt;vt=0!==n&&4>n?n:4,e(!0);var r=pi.transition;pi.transition={};try{e(!1),t()}finally{vt=n,pi.transition=r}}function el(){return Ti().memoizedState}function tl(e,t,n){var r=nu(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rl(e))al(t,n);else if(null!==(n=No(e,t,n,r))){ru(n,e,r,tu()),ol(n,t,r)}}function nl(e,t,n){var r=nu(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rl(e))al(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,l=o(i,n);if(a.hasEagerState=!0,a.eagerState=l,lr(l,i)){var s=t.interleaved;return null===s?(a.next=a,Lo(t)):(a.next=s.next,s.next=a),void(t.interleaved=a)}}catch(u){}null!==(n=No(e,t,a,r))&&(ru(n,e,r,a=tu()),ol(n,t,r))}}function rl(e){var t=e.alternate;return e===mi||null!==t&&t===mi}function al(e,t){vi=bi=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ol(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}var il={readContext:Co,useCallback:ki,useContext:ki,useEffect:ki,useImperativeHandle:ki,useInsertionEffect:ki,useLayoutEffect:ki,useMemo:ki,useReducer:ki,useRef:ki,useState:ki,useDebugValue:ki,useDeferredValue:ki,useTransition:ki,useMutableSource:ki,useSyncExternalStore:ki,useId:ki,unstable_isNewReconciler:!1},ll={readContext:Co,useCallback:function(e,t){return Ci().memoizedState=[e,void 0===t?null:t],e},useContext:Co,useEffect:Qi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,$i(4194308,4,Wi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $i(4194308,4,e,t)},useInsertionEffect:function(e,t){return $i(4,2,e,t)},useMemo:function(e,t){var n=Ci();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ci();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=tl.bind(null,mi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ci().memoizedState=e},useState:Mi,useDebugValue:Gi,useDeferredValue:function(e){return Ci().memoizedState=e},useTransition:function(){var e=Mi(!1),t=e[0];return e=Ji.bind(null,e[1]),Ci().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=mi,a=Ci();if(ao){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===js)throw Error(o(349));0!=(30&hi)||Oi(r,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,Qi(Ri.bind(null,r,i,e),[e]),r.flags|=2048,zi(9,Ii.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ci(),t=js.identifierPrefix;if(ao){var n=Ka;t=":"+t+"R"+(n=(Ya&~(1<<32-it(Ya)-1)).toString(32)+n),0<(n=wi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=xi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},sl={readContext:Co,useCallback:Yi,useContext:Co,useEffect:Zi,useImperativeHandle:qi,useInsertionEffect:Hi,useLayoutEffect:Vi,useMemo:Ki,useReducer:Ni,useRef:Bi,useState:function(){return Ni(Li)},useDebugValue:Gi,useDeferredValue:function(e){return Xi(Ti(),gi.memoizedState,e)},useTransition:function(){return[Ni(Li)[0],Ti().memoizedState]},useMutableSource:Pi,useSyncExternalStore:Ai,useId:el,unstable_isNewReconciler:!1},ul={readContext:Co,useCallback:Yi,useContext:Co,useEffect:Zi,useImperativeHandle:qi,useInsertionEffect:Hi,useLayoutEffect:Vi,useMemo:Ki,useReducer:ji,useRef:Bi,useState:function(){return ji(Li)},useDebugValue:Gi,useDeferredValue:function(e){var t=Ti();return null===gi?t.memoizedState=e:Xi(t,gi.memoizedState,e)},useTransition:function(){return[ji(Li)[0],Ti().memoizedState]},useMutableSource:Pi,useSyncExternalStore:Ai,useId:el,unstable_isNewReconciler:!1};function cl(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a,digest:null}}function dl(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function fl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var pl="function"==typeof WeakMap?WeakMap:Map;function hl(e,t,n){(n=Io(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Hs||(Hs=!0,Vs=r),fl(0,t)},n}function ml(e,t,n){(n=Io(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){fl(0,t)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){fl(0,t),"function"!=typeof r&&(null===Ws?Ws=new Set([this]):Ws.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function gl(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new pl;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=Cu.bind(null,e,t,n),t.then(e,e))}function yl(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function bl(e,t,n,r,a){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Io(-1,1)).tag=2,Ro(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=a,e)}var vl=w.ReactCurrentOwner,wl=!1;function xl(e,t,n,r){t.child=null===e?Xo(t,null,n,r):Ko(t,e.child,n,r)}function kl(e,t,n,r,a){n=n.render;var o=t.ref;return _o(t,a),r=Ei(e,t,n,r,o,a),n=_i(),null===e||wl?(ao&&n&&eo(t),t.flags|=1,xl(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Hl(e,t,a))}function Sl(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Ou(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ru(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,El(e,t,o,r,a))}if(o=e.child,0==(e.lanes&a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:sr)(i,r)&&e.ref===t.ref)return Hl(e,t,a)}return t.flags|=1,(e=Iu(o,r)).ref=t.ref,e.return=t,t.child=e}function El(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(sr(o,r)&&e.ref===t.ref){if(wl=!1,t.pendingProps=r=o,0==(e.lanes&a))return t.lanes=e.lanes,Hl(e,t,a);0!=(131072&e.flags)&&(wl=!0)}}return Tl(e,t,n,r,a)}function _l(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ca(Is,Os),Os|=n;else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ca(Is,Os),Os|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,Ca(Is,Os),Os|=r}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ca(Is,Os),Os|=r;return xl(e,t,a,n),t.child}function Cl(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Tl(e,t,n,r,a){var o=Aa(n)?ja:La.current;return o=Pa(t,o),_o(t,a),n=Ei(e,t,n,r,o,a),r=_i(),null===e||wl?(ao&&r&&eo(t),t.flags|=1,xl(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Hl(e,t,a))}function Ll(e,t,n,r,a){if(Aa(n)){var o=!0;Fa(t)}else o=!1;if(_o(t,a),null===t.stateNode)Zl(e,t),Zo(t,n,r),Vo(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=Co(u):u=Pa(t,u=Aa(n)?ja:La.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&Ho(t,i,r,u),Po=!1;var f=t.memoizedState;i.state=f,Mo(t,r,i,a),s=t.memoizedState,l!==r||f!==s||Na.current||Po?("function"==typeof c&&($o(t,n,c,r),s=t.memoizedState),(l=Po||Qo(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Oo(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:yo(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=Co(s):s=Pa(t,s=Aa(n)?ja:La.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&Ho(t,i,r,s),Po=!1,f=t.memoizedState,i.state=f,Mo(t,r,i,a);var h=t.memoizedState;l!==d||f!==h||Na.current||Po?("function"==typeof p&&($o(t,n,p,r),h=t.memoizedState),(u=Po||Qo(t,n,u,r,f,h,s)||!1)?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,h,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,h,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return Nl(e,t,n,r,o,a)}function Nl(e,t,n,r,a,o){Cl(e,t);var i=0!=(128&t.flags);if(!r&&!i)return a&&Da(t,n,!1),Hl(e,t,o);r=t.stateNode,vl.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ko(t,e.child,null,o),t.child=Ko(t,null,l,o)):xl(e,t,l,o),t.memoizedState=r.state,a&&Da(t,n,!0),t.child}function jl(e){var t=e.stateNode;t.pendingContext?Ia(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Ia(0,t.context,!1),ai(e,t.containerInfo)}function Pl(e,t,n,r,a){return ho(),mo(a),t.flags|=256,xl(e,t,n,r),t.child}var Al,Ol,Il,Rl,Fl={dehydrated:null,treeContext:null,retryLane:0};function Dl(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ml(e,t,n){var r,a=t.pendingProps,i=si.current,l=!1,s=0!=(128&t.flags);if((r=s)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(l=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ca(si,1&i),null===e)return uo(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(s=a.children,e=a.fallback,l?(a=t.mode,l=t.child,s={mode:"hidden",children:s},0==(1&a)&&null!==l?(l.childLanes=0,l.pendingProps=s):l=Du(s,a,0,null),e=Fu(e,a,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Dl(n),t.memoizedState=Fl,e):zl(t,s));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,a,i,l){if(n)return 256&t.flags?(t.flags&=-257,Bl(e,t,l,r=dl(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,a=t.mode,r=Du({mode:"visible",children:r.children},a,0,null),(i=Fu(i,a,l,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&Ko(t,e.child,null,l),t.child.memoizedState=Dl(l),t.memoizedState=Fl,i);if(0==(1&t.mode))return Bl(e,t,l,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var s=r.dgst;return r=s,Bl(e,t,l,r=dl(i=Error(o(419)),r,void 0))}if(s=0!=(l&e.childLanes),wl||s){if(null!==(r=js)){switch(l&-l){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=0!=(a&(r.suspendedLanes|l))?0:a)&&a!==i.retryLane&&(i.retryLane=a,jo(e,a),ru(r,e,a,-1))}return gu(),Bl(e,t,l,r=dl(Error(o(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=Lu.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,ro=ua(a.nextSibling),no=t,ao=!0,oo=null,null!==e&&(Wa[qa++]=Ya,Wa[qa++]=Ka,Wa[qa++]=Ga,Ya=e.id,Ka=e.overflow,Ga=t),t=zl(t,r.children),t.flags|=4096,t)}(e,t,s,a,r,i,n);if(l){l=a.fallback,s=t.mode,r=(i=e.child).sibling;var u={mode:"hidden",children:a.children};return 0==(1&s)&&t.child!==i?((a=t.child).childLanes=0,a.pendingProps=u,t.deletions=null):(a=Iu(i,u)).subtreeFlags=14680064&i.subtreeFlags,null!==r?l=Iu(r,l):(l=Fu(l,s,n,null)).flags|=2,l.return=t,a.return=t,a.sibling=l,t.child=a,a=l,l=t.child,s=null===(s=e.child.memoizedState)?Dl(n):{baseLanes:s.baseLanes|n,cachePool:null,transitions:s.transitions},l.memoizedState=s,l.childLanes=e.childLanes&~n,t.memoizedState=Fl,a}return e=(l=e.child).sibling,a=Iu(l,{mode:"visible",children:a.children}),0==(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function zl(e,t){return(t=Du({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Bl(e,t,n,r){return null!==r&&mo(r),Ko(t,e.child,null,n),(e=zl(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function $l(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Eo(e.return,t,n)}function Ul(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Ql(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(xl(e,t,r.children,n),0!=(2&(r=si.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&$l(e,n,t);else if(19===e.tag)$l(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Ca(si,r),0==(1&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===ui(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Ul(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===ui(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Ul(t,!0,n,null,o);break;case"together":Ul(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Zl(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Hl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ds|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Iu(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Iu(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Vl(e,t){if(!ao)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Wl(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function ql(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Wl(t),null;case 1:case 17:return Aa(t.type)&&Oa(),Wl(t),null;case 3:return r=t.stateNode,oi(),_a(Na),_a(La),di(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(fo(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==oo&&(lu(oo),oo=null))),Ol(e,t),Wl(t),null;case 5:li(t);var a=ri(ni.current);if(n=t.type,null!==e&&null!=t.stateNode)Il(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Wl(t),null}if(e=ri(ei.current),fo(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[fa]=t,r[pa]=i,e=0!=(1&t.mode),n){case"dialog":zr("cancel",r),zr("close",r);break;case"iframe":case"object":case"embed":zr("load",r);break;case"video":case"audio":for(a=0;a<Rr.length;a++)zr(Rr[a],r);break;case"source":zr("error",r);break;case"img":case"image":case"link":zr("error",r),zr("load",r);break;case"details":zr("toggle",r);break;case"input":Y(r,i),zr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},zr("invalid",r);break;case"textarea":ae(r,i),zr("invalid",r)}for(var s in be(n,i),a=null,i)if(i.hasOwnProperty(s)){var u=i[s];"children"===s?"string"==typeof u?r.textContent!==u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),a=["children",u]):"number"==typeof u&&r.textContent!==""+u&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,u,e),a=["children",""+u]):l.hasOwnProperty(s)&&null!=u&&"onScroll"===s&&zr("scroll",r)}switch(n){case"input":V(r),J(r,i,!0);break;case"textarea":V(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{s=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=le(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[fa]=t,e[pa]=r,Al(e,t,!1,!1),t.stateNode=e;e:{switch(s=ve(n,r),n){case"dialog":zr("cancel",e),zr("close",e),a=r;break;case"iframe":case"object":case"embed":zr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Rr.length;a++)zr(Rr[a],e);a=r;break;case"source":zr("error",e),a=r;break;case"img":case"image":case"link":zr("error",e),zr("load",e),a=r;break;case"details":zr("toggle",e),a=r;break;case"input":Y(e,r),a=G(e,r),zr("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=D({},r,{value:void 0}),zr("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),zr("invalid",e)}for(i in be(n,a),u=a)if(u.hasOwnProperty(i)){var c=u[i];"style"===i?ge(e,c):"dangerouslySetInnerHTML"===i?null!=(c=c?c.__html:void 0)&&de(e,c):"children"===i?"string"==typeof c?("textarea"!==n||""!==c)&&fe(e,c):"number"==typeof c&&fe(e,""+c):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(l.hasOwnProperty(i)?null!=c&&"onScroll"===i&&zr("scroll",e):null!=c&&v(e,i,c,s))}switch(n){case"input":V(e),J(e,r,!1);break;case"textarea":V(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Z(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Wl(t),null;case 6:if(e&&null!=t.stateNode)Rl(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(n=ri(ni.current),ri(ei.current),fo(t)){if(r=t.stateNode,n=t.memoizedProps,r[fa]=t,(i=r.nodeValue!==n)&&null!==(e=no))switch(e.tag){case 3:Xr(r.nodeValue,n,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,0!=(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[fa]=t,t.stateNode=r}return Wl(t),null;case 13:if(_a(si),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ao&&null!==ro&&0!=(1&t.mode)&&0==(128&t.flags))po(),ho(),t.flags|=98560,i=!1;else if(i=fo(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[fa]=t}else ho(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Wl(t),i=!1}else null!==oo&&(lu(oo),oo=null),i=!0;if(!i)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&si.current)?0===Rs&&(Rs=3):gu())),null!==t.updateQueue&&(t.flags|=4),Wl(t),null);case 4:return oi(),Ol(e,t),null===e&&Ur(t.stateNode.containerInfo),Wl(t),null;case 10:return So(t.type._context),Wl(t),null;case 19:if(_a(si),null===(i=t.memoizedState))return Wl(t),null;if(r=0!=(128&t.flags),null===(s=i.rendering))if(r)Vl(i,!1);else{if(0!==Rs||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(s=ui(e))){for(t.flags|=128,Vl(i,!1),null!==(r=s.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(s=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=s.childLanes,i.lanes=s.lanes,i.child=s.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=s.memoizedProps,i.memoizedState=s.memoizedState,i.updateQueue=s.updateQueue,i.type=s.type,e=s.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ca(si,1&si.current|2),t.child}e=e.sibling}null!==i.tail&&Ke()>Qs&&(t.flags|=128,r=!0,Vl(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ui(s))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Vl(i,!0),null===i.tail&&"hidden"===i.tailMode&&!s.alternate&&!ao)return Wl(t),null}else 2*Ke()-i.renderingStartTime>Qs&&1073741824!==n&&(t.flags|=128,r=!0,Vl(i,!1),t.lanes=4194304);i.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=i.last)?n.sibling=s:t.child=s,i.last=s)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ke(),t.sibling=null,n=si.current,Ca(si,r?1&n|2:1&n),t):(Wl(t),null);case 22:case 23:return fu(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Os)&&(Wl(t),6&t.subtreeFlags&&(t.flags|=8192)):Wl(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function Gl(e,t){switch(to(t),t.tag){case 1:return Aa(t.type)&&Oa(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return oi(),_a(Na),_a(La),di(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return li(t),null;case 13:if(_a(si),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));ho()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return _a(si),null;case 4:return oi(),null;case 10:return So(t.type._context),null;case 22:case 23:return fu(),null;default:return null}}Al=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ol=function(){},Il=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,ri(ei.current);var o,i=null;switch(n){case"input":a=G(e,a),r=G(e,r),i=[];break;case"select":a=D({},a,{value:void 0}),r=D({},r,{value:void 0}),i=[];break;case"textarea":a=re(e,a),r=re(e,r),i=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(c in be(n,r),n=null,a)if(!r.hasOwnProperty(c)&&a.hasOwnProperty(c)&&null!=a[c])if("style"===c){var s=a[c];for(o in s)s.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(l.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in r){var u=r[c];if(s=null!=a?a[c]:void 0,r.hasOwnProperty(c)&&u!==s&&(null!=u||null!=s))if("style"===c)if(s){for(o in s)!s.hasOwnProperty(o)||u&&u.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in u)u.hasOwnProperty(o)&&s[o]!==u[o]&&(n||(n={}),n[o]=u[o])}else n||(i||(i=[]),i.push(c,n)),n=u;else"dangerouslySetInnerHTML"===c?(u=u?u.__html:void 0,s=s?s.__html:void 0,null!=u&&s!==u&&(i=i||[]).push(c,u)):"children"===c?"string"!=typeof u&&"number"!=typeof u||(i=i||[]).push(c,""+u):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(l.hasOwnProperty(c)?(null!=u&&"onScroll"===c&&zr("scroll",e),i||s===u||(i=[])):(i=i||[]).push(c,u))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}},Rl=function(e,t,n,r){n!==r&&(t.flags|=4)};var Yl=!1,Kl=!1,Xl="function"==typeof WeakSet?WeakSet:Set,Jl=null;function es(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){_u(e,t,r)}else n.current=null}function ts(e,t,n){try{n()}catch(r){_u(e,t,r)}}var ns=!1;function rs(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,void 0!==o&&ts(t,n,o)}a=a.next}while(a!==r)}}function as(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function os(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function is(e){var t=e.alternate;null!==t&&(e.alternate=null,is(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[fa],delete t[pa],delete t[ma],delete t[ga],delete t[ya])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ls(e){return 5===e.tag||3===e.tag||4===e.tag}function ss(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ls(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function us(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(us(e,t,n),e=e.sibling;null!==e;)us(e,t,n),e=e.sibling}function cs(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(cs(e,t,n),e=e.sibling;null!==e;)cs(e,t,n),e=e.sibling}var ds=null,fs=!1;function ps(e,t,n){for(n=n.child;null!==n;)hs(e,t,n),n=n.sibling}function hs(e,t,n){if(ot&&"function"==typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(at,n)}catch(l){}switch(n.tag){case 5:Kl||es(n,t);case 6:var r=ds,a=fs;ds=null,ps(e,t,n),fs=a,null!==(ds=r)&&(fs?(e=ds,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):ds.removeChild(n.stateNode));break;case 18:null!==ds&&(fs?(e=ds,n=n.stateNode,8===e.nodeType?sa(e.parentNode,n):1===e.nodeType&&sa(e,n),Ut(e)):sa(ds,n.stateNode));break;case 4:r=ds,a=fs,ds=n.stateNode.containerInfo,fs=!0,ps(e,t,n),ds=r,fs=a;break;case 0:case 11:case 14:case 15:if(!Kl&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,void 0!==i&&(0!=(2&o)||0!=(4&o))&&ts(n,t,i),a=a.next}while(a!==r)}ps(e,t,n);break;case 1:if(!Kl&&(es(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){_u(n,t,l)}ps(e,t,n);break;case 21:ps(e,t,n);break;case 22:1&n.mode?(Kl=(r=Kl)||null!==n.memoizedState,ps(e,t,n),Kl=r):ps(e,t,n);break;default:ps(e,t,n)}}function ms(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xl),t.forEach((function(t){var r=Nu.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function gs(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var i=e,l=t,s=l;e:for(;null!==s;){switch(s.tag){case 5:ds=s.stateNode,fs=!1;break e;case 3:case 4:ds=s.stateNode.containerInfo,fs=!0;break e}s=s.return}if(null===ds)throw Error(o(160));hs(i,l,a),ds=null,fs=!1;var u=a.alternate;null!==u&&(u.return=null),a.return=null}catch(c){_u(a,t,c)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)ys(t,e),t=t.sibling}function ys(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gs(t,e),bs(e),4&r){try{rs(3,e,e.return),as(3,e)}catch(g){_u(e,e.return,g)}try{rs(5,e,e.return)}catch(g){_u(e,e.return,g)}}break;case 1:gs(t,e),bs(e),512&r&&null!==n&&es(n,n.return);break;case 5:if(gs(t,e),bs(e),512&r&&null!==n&&es(n,n.return),32&e.flags){var a=e.stateNode;try{fe(a,"")}catch(g){_u(e,e.return,g)}}if(4&r&&null!=(a=e.stateNode)){var i=e.memoizedProps,l=null!==n?n.memoizedProps:i,s=e.type,u=e.updateQueue;if(e.updateQueue=null,null!==u)try{"input"===s&&"radio"===i.type&&null!=i.name&&K(a,i),ve(s,l);var c=ve(s,i);for(l=0;l<u.length;l+=2){var d=u[l],f=u[l+1];"style"===d?ge(a,f):"dangerouslySetInnerHTML"===d?de(a,f):"children"===d?fe(a,f):v(a,d,f,c)}switch(s){case"input":X(a,i);break;case"textarea":oe(a,i);break;case"select":var p=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var h=i.value;null!=h?ne(a,!!i.multiple,h,!1):p!==!!i.multiple&&(null!=i.defaultValue?ne(a,!!i.multiple,i.defaultValue,!0):ne(a,!!i.multiple,i.multiple?[]:"",!1))}a[pa]=i}catch(g){_u(e,e.return,g)}}break;case 6:if(gs(t,e),bs(e),4&r){if(null===e.stateNode)throw Error(o(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(g){_u(e,e.return,g)}}break;case 3:if(gs(t,e),bs(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Ut(t.containerInfo)}catch(g){_u(e,e.return,g)}break;case 4:default:gs(t,e),bs(e);break;case 13:gs(t,e),bs(e),8192&(a=e.child).flags&&(i=null!==a.memoizedState,a.stateNode.isHidden=i,!i||null!==a.alternate&&null!==a.alternate.memoizedState||(Us=Ke())),4&r&&ms(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Kl=(c=Kl)||d,gs(t,e),Kl=c):gs(t,e),bs(e),8192&r){if(c=null!==e.memoizedState,(e.stateNode.isHidden=c)&&!d&&0!=(1&e.mode))for(Jl=e,d=e.child;null!==d;){for(f=Jl=d;null!==Jl;){switch(h=(p=Jl).child,p.tag){case 0:case 11:case 14:case 15:rs(4,p,p.return);break;case 1:es(p,p.return);var m=p.stateNode;if("function"==typeof m.componentWillUnmount){r=p,n=p.return;try{t=r,m.props=t.memoizedProps,m.state=t.memoizedState,m.componentWillUnmount()}catch(g){_u(r,n,g)}}break;case 5:es(p,p.return);break;case 22:if(null!==p.memoizedState){ks(f);continue}}null!==h?(h.return=p,Jl=h):ks(f)}d=d.sibling}e:for(d=null,f=e;;){if(5===f.tag){if(null===d){d=f;try{a=f.stateNode,c?"function"==typeof(i=a.style).setProperty?i.setProperty("display","none","important"):i.display="none":(s=f.stateNode,l=null!=(u=f.memoizedProps.style)&&u.hasOwnProperty("display")?u.display:null,s.style.display=me("display",l))}catch(g){_u(e,e.return,g)}}}else if(6===f.tag){if(null===d)try{f.stateNode.nodeValue=c?"":f.memoizedProps}catch(g){_u(e,e.return,g)}}else if((22!==f.tag&&23!==f.tag||null===f.memoizedState||f===e)&&null!==f.child){f.child.return=f,f=f.child;continue}if(f===e)break e;for(;null===f.sibling;){if(null===f.return||f.return===e)break e;d===f&&(d=null),f=f.return}d===f&&(d=null),f.sibling.return=f.return,f=f.sibling}}break;case 19:gs(t,e),bs(e),4&r&&ms(e);case 21:}}function bs(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(ls(n)){var r=n;break e}n=n.return}throw Error(o(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(fe(a,""),r.flags&=-33),cs(e,ss(e),a);break;case 3:case 4:var i=r.stateNode.containerInfo;us(e,ss(e),i);break;default:throw Error(o(161))}}catch(l){_u(e,e.return,l)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function vs(e,t,n){Jl=e,ws(e,t,n)}function ws(e,t,n){for(var r=0!=(1&e.mode);null!==Jl;){var a=Jl,o=a.child;if(22===a.tag&&r){var i=null!==a.memoizedState||Yl;if(!i){var l=a.alternate,s=null!==l&&null!==l.memoizedState||Kl;l=Yl;var u=Kl;if(Yl=i,(Kl=s)&&!u)for(Jl=a;null!==Jl;)s=(i=Jl).child,22===i.tag&&null!==i.memoizedState?Ss(a):null!==s?(s.return=i,Jl=s):Ss(a);for(;null!==o;)Jl=o,ws(o,t,n),o=o.sibling;Jl=a,Yl=l,Kl=u}xs(e)}else 0!=(8772&a.subtreeFlags)&&null!==o?(o.return=a,Jl=o):xs(e)}}function xs(e){for(;null!==Jl;){var t=Jl;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Kl||as(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Kl)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:yo(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&zo(t,i,r);break;case 3:var l=t.updateQueue;if(null!==l){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}zo(t,l,n)}break;case 5:var s=t.stateNode;if(null===n&&4&t.flags){n=s;var u=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":u.autoFocus&&n.focus();break;case"img":u.src&&(n.src=u.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var c=t.alternate;if(null!==c){var d=c.memoizedState;if(null!==d){var f=d.dehydrated;null!==f&&Ut(f)}}}break;default:throw Error(o(163))}Kl||512&t.flags&&os(t)}catch(p){_u(t,t.return,p)}}if(t===e){Jl=null;break}if(null!==(n=t.sibling)){n.return=t.return,Jl=n;break}Jl=t.return}}function ks(e){for(;null!==Jl;){var t=Jl;if(t===e){Jl=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Jl=n;break}Jl=t.return}}function Ss(e){for(;null!==Jl;){var t=Jl;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{as(4,t)}catch(s){_u(t,n,s)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(s){_u(t,a,s)}}var o=t.return;try{os(t)}catch(s){_u(t,o,s)}break;case 5:var i=t.return;try{os(t)}catch(s){_u(t,i,s)}}}catch(s){_u(t,t.return,s)}if(t===e){Jl=null;break}var l=t.sibling;if(null!==l){l.return=t.return,Jl=l;break}Jl=t.return}}var Es,_s=Math.ceil,Cs=w.ReactCurrentDispatcher,Ts=w.ReactCurrentOwner,Ls=w.ReactCurrentBatchConfig,Ns=0,js=null,Ps=null,As=0,Os=0,Is=Ea(0),Rs=0,Fs=null,Ds=0,Ms=0,zs=0,Bs=null,$s=null,Us=0,Qs=1/0,Zs=null,Hs=!1,Vs=null,Ws=null,qs=!1,Gs=null,Ys=0,Ks=0,Xs=null,Js=-1,eu=0;function tu(){return 0!=(6&Ns)?Ke():-1!==Js?Js:Js=Ke()}function nu(e){return 0==(1&e.mode)?1:0!=(2&Ns)&&0!==As?As&-As:null!==go.transition?(0===eu&&(eu=mt()),eu):0!==(e=vt)?e:e=void 0===(e=window.event)?16:Yt(e.type)}function ru(e,t,n,r){if(50<Ks)throw Ks=0,Xs=null,Error(o(185));yt(e,n,r),0!=(2&Ns)&&e===js||(e===js&&(0==(2&Ns)&&(Ms|=n),4===Rs&&su(e,As)),au(e,r),1===n&&0===Ns&&0==(1&t.mode)&&(Qs=Ke()+500,za&&Ua()))}function au(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-it(o),l=1<<i,s=a[i];-1===s?0!=(l&n)&&0==(l&r)||(a[i]=pt(l,t)):s<=t&&(e.expiredLanes|=l),o&=~l}}(e,t);var r=ft(e,e===js?As:0);if(0===r)null!==n&&qe(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&qe(n),1===t)0===e.tag?function(e){za=!0,$a(e)}(uu.bind(null,e)):$a(uu.bind(null,e)),ia((function(){0==(6&Ns)&&Ua()})),n=null;else{switch(wt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=ju(n,ou.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function ou(e,t){if(Js=-1,eu=0,0!=(6&Ns))throw Error(o(327));var n=e.callbackNode;if(Su()&&e.callbackNode!==n)return null;var r=ft(e,e===js?As:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=yu(e,r);else{t=r;var a=Ns;Ns|=2;var i=mu();for(js===e&&As===t||(Zs=null,Qs=Ke()+500,pu(e,t));;)try{vu();break}catch(s){hu(e,s)}ko(),Cs.current=i,Ns=a,null!==Ps?t=0:(js=null,As=0,t=Rs)}if(0!==t){if(2===t&&(0!==(a=ht(e))&&(r=a,t=iu(e,a))),1===t)throw n=Fs,pu(e,0),su(e,r),au(e,Ke()),n;if(6===t)su(e,r);else{if(a=e.current.alternate,0==(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!lr(o(),a))return!1}catch(l){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)&&(2===(t=yu(e,r))&&(0!==(i=ht(e))&&(r=i,t=iu(e,i))),1===t))throw n=Fs,pu(e,0),su(e,r),au(e,Ke()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(o(345));case 2:case 5:ku(e,$s,Zs);break;case 3:if(su(e,r),(130023424&r)===r&&10<(t=Us+500-Ke())){if(0!==ft(e,0))break;if(((a=e.suspendedLanes)&r)!==r){tu(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(ku.bind(null,e,$s,Zs),t);break}ku(e,$s,Zs);break;case 4:if(su(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var l=31-it(r);i=1<<l,(l=t[l])>a&&(a=l),r&=~i}if(r=a,10<(r=(120>(r=Ke()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*_s(r/1960))-r)){e.timeoutHandle=ra(ku.bind(null,e,$s,Zs),r);break}ku(e,$s,Zs);break;default:throw Error(o(329))}}}return au(e,Ke()),e.callbackNode===n?ou.bind(null,e):null}function iu(e,t){var n=Bs;return e.current.memoizedState.isDehydrated&&(pu(e,t).flags|=256),2!==(e=yu(e,t))&&(t=$s,$s=n,null!==t&&lu(t)),e}function lu(e){null===$s?$s=e:$s.push.apply($s,e)}function su(e,t){for(t&=~zs,t&=~Ms,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function uu(e){if(0!=(6&Ns))throw Error(o(327));Su();var t=ft(e,0);if(0==(1&t))return au(e,Ke()),null;var n=yu(e,t);if(0!==e.tag&&2===n){var r=ht(e);0!==r&&(t=r,n=iu(e,r))}if(1===n)throw n=Fs,pu(e,0),su(e,t),au(e,Ke()),n;if(6===n)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,ku(e,$s,Zs),au(e,Ke()),null}function cu(e,t){var n=Ns;Ns|=1;try{return e(t)}finally{0===(Ns=n)&&(Qs=Ke()+500,za&&Ua())}}function du(e){null!==Gs&&0===Gs.tag&&0==(6&Ns)&&Su();var t=Ns;Ns|=1;var n=Ls.transition,r=vt;try{if(Ls.transition=null,vt=1,e)return e()}finally{vt=r,Ls.transition=n,0==(6&(Ns=t))&&Ua()}}function fu(){Os=Is.current,_a(Is)}function pu(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==Ps)for(n=Ps.return;null!==n;){var r=n;switch(to(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Oa();break;case 3:oi(),_a(Na),_a(La),di();break;case 5:li(r);break;case 4:oi();break;case 13:case 19:_a(si);break;case 10:So(r.type._context);break;case 22:case 23:fu()}n=n.return}if(js=e,Ps=e=Iu(e.current,null),As=Os=t,Rs=0,Fs=null,zs=Ms=Ds=0,$s=Bs=null,null!==To){for(t=0;t<To.length;t++)if(null!==(r=(n=To[t]).interleaved)){n.interleaved=null;var a=r.next,o=n.pending;if(null!==o){var i=o.next;o.next=a,r.next=i}n.pending=r}To=null}return e}function hu(e,t){for(;;){var n=Ps;try{if(ko(),fi.current=il,bi){for(var r=mi.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}bi=!1}if(hi=0,yi=gi=mi=null,vi=!1,wi=0,Ts.current=null,null===n||null===n.return){Rs=1,Fs=t,Ps=null;break}e:{var i=e,l=n.return,s=n,u=t;if(t=As,s.flags|=32768,null!==u&&"object"==typeof u&&"function"==typeof u.then){var c=u,d=s,f=d.tag;if(0==(1&d.mode)&&(0===f||11===f||15===f)){var p=d.alternate;p?(d.updateQueue=p.updateQueue,d.memoizedState=p.memoizedState,d.lanes=p.lanes):(d.updateQueue=null,d.memoizedState=null)}var h=yl(l);if(null!==h){h.flags&=-257,bl(h,l,s,0,t),1&h.mode&&gl(i,c,t),u=c;var m=(t=h).updateQueue;if(null===m){var g=new Set;g.add(u),t.updateQueue=g}else m.add(u);break e}if(0==(1&t)){gl(i,c,t),gu();break e}u=Error(o(426))}else if(ao&&1&s.mode){var y=yl(l);if(null!==y){0==(65536&y.flags)&&(y.flags|=256),bl(y,l,s,0,t),mo(cl(u,s));break e}}i=u=cl(u,s),4!==Rs&&(Rs=2),null===Bs?Bs=[i]:Bs.push(i),i=l;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Do(i,hl(0,u,t));break e;case 1:s=u;var b=i.type,v=i.stateNode;if(0==(128&i.flags)&&("function"==typeof b.getDerivedStateFromError||null!==v&&"function"==typeof v.componentDidCatch&&(null===Ws||!Ws.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Do(i,ml(i,s,t));break e}}i=i.return}while(null!==i)}xu(n)}catch(w){t=w,Ps===n&&null!==n&&(Ps=n=n.return);continue}break}}function mu(){var e=Cs.current;return Cs.current=il,null===e?il:e}function gu(){0!==Rs&&3!==Rs&&2!==Rs||(Rs=4),null===js||0==(268435455&Ds)&&0==(268435455&Ms)||su(js,As)}function yu(e,t){var n=Ns;Ns|=2;var r=mu();for(js===e&&As===t||(Zs=null,pu(e,t));;)try{bu();break}catch(a){hu(e,a)}if(ko(),Ns=n,Cs.current=r,null!==Ps)throw Error(o(261));return js=null,As=0,Rs}function bu(){for(;null!==Ps;)wu(Ps)}function vu(){for(;null!==Ps&&!Ge();)wu(Ps)}function wu(e){var t=Es(e.alternate,e,Os);e.memoizedProps=e.pendingProps,null===t?xu(e):Ps=t,Ts.current=null}function xu(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=ql(n,t,Os)))return void(Ps=n)}else{if(null!==(n=Gl(n,t)))return n.flags&=32767,void(Ps=n);if(null===e)return Rs=6,void(Ps=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Ps=t);Ps=t=e}while(null!==t);0===Rs&&(Rs=5)}function ku(e,t,n){var r=vt,a=Ls.transition;try{Ls.transition=null,vt=1,function(e,t,n,r){do{Su()}while(null!==Gs);if(0!=(6&Ns))throw Error(o(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-it(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}(e,i),e===js&&(Ps=js=null,As=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||qs||(qs=!0,ju(tt,(function(){return Su(),null}))),i=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||i){i=Ls.transition,Ls.transition=null;var l=vt;vt=1;var s=Ns;Ns|=4,Ts.current=null,function(e,t){if(ea=Zt,pr(e=fr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(x){n=null;break e}var l=0,s=-1,u=-1,c=0,d=0,f=e,p=null;t:for(;;){for(var h;f!==n||0!==a&&3!==f.nodeType||(s=l+a),f!==i||0!==r&&3!==f.nodeType||(u=l+r),3===f.nodeType&&(l+=f.nodeValue.length),null!==(h=f.firstChild);)p=f,f=h;for(;;){if(f===e)break t;if(p===n&&++c===a&&(s=l),p===i&&++d===r&&(u=l),null!==(h=f.nextSibling))break;p=(f=p).parentNode}f=h}n=-1===s||-1===u?null:{start:s,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Zt=!1,Jl=t;null!==Jl;)if(e=(t=Jl).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Jl=e;else for(;null!==Jl;){t=Jl;try{var m=t.alternate;if(0!=(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==m){var g=m.memoizedProps,y=m.memoizedState,b=t.stateNode,v=b.getSnapshotBeforeUpdate(t.elementType===t.type?g:yo(t.type,g),y);b.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(o(163))}}catch(x){_u(t,t.return,x)}if(null!==(e=t.sibling)){e.return=t.return,Jl=e;break}Jl=t.return}m=ns,ns=!1}(e,n),ys(n,e),hr(ta),Zt=!!ea,ta=ea=null,e.current=n,vs(n,e,a),Ye(),Ns=s,vt=l,Ls.transition=i}else e.current=n;if(qs&&(qs=!1,Gs=e,Ys=a),i=e.pendingLanes,0===i&&(Ws=null),function(e){if(ot&&"function"==typeof ot.onCommitFiberRoot)try{ot.onCommitFiberRoot(at,e,void 0,128==(128&e.current.flags))}catch(t){}}(n.stateNode),au(e,Ke()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(Hs)throw Hs=!1,e=Vs,Vs=null,e;0!=(1&Ys)&&0!==e.tag&&Su(),i=e.pendingLanes,0!=(1&i)?e===Xs?Ks++:(Ks=0,Xs=e):Ks=0,Ua()}(e,t,n,r)}finally{Ls.transition=a,vt=r}return null}function Su(){if(null!==Gs){var e=wt(Ys),t=Ls.transition,n=vt;try{if(Ls.transition=null,vt=16>e?16:e,null===Gs)var r=!1;else{if(e=Gs,Gs=null,Ys=0,0!=(6&Ns))throw Error(o(331));var a=Ns;for(Ns|=4,Jl=e.current;null!==Jl;){var i=Jl,l=i.child;if(0!=(16&Jl.flags)){var s=i.deletions;if(null!==s){for(var u=0;u<s.length;u++){var c=s[u];for(Jl=c;null!==Jl;){var d=Jl;switch(d.tag){case 0:case 11:case 15:rs(8,d,i)}var f=d.child;if(null!==f)f.return=d,Jl=f;else for(;null!==Jl;){var p=(d=Jl).sibling,h=d.return;if(is(d),d===c){Jl=null;break}if(null!==p){p.return=h,Jl=p;break}Jl=h}}}var m=i.alternate;if(null!==m){var g=m.child;if(null!==g){m.child=null;do{var y=g.sibling;g.sibling=null,g=y}while(null!==g)}}Jl=i}}if(0!=(2064&i.subtreeFlags)&&null!==l)l.return=i,Jl=l;else e:for(;null!==Jl;){if(0!=(2048&(i=Jl).flags))switch(i.tag){case 0:case 11:case 15:rs(9,i,i.return)}var b=i.sibling;if(null!==b){b.return=i.return,Jl=b;break e}Jl=i.return}}var v=e.current;for(Jl=v;null!==Jl;){var w=(l=Jl).child;if(0!=(2064&l.subtreeFlags)&&null!==w)w.return=l,Jl=w;else e:for(l=v;null!==Jl;){if(0!=(2048&(s=Jl).flags))try{switch(s.tag){case 0:case 11:case 15:as(9,s)}}catch(k){_u(s,s.return,k)}if(s===l){Jl=null;break e}var x=s.sibling;if(null!==x){x.return=s.return,Jl=x;break e}Jl=s.return}}if(Ns=a,Ua(),ot&&"function"==typeof ot.onPostCommitFiberRoot)try{ot.onPostCommitFiberRoot(at,e)}catch(k){}r=!0}return r}finally{vt=n,Ls.transition=t}}return!1}function Eu(e,t,n){e=Ro(e,t=hl(0,t=cl(n,t),1),1),t=tu(),null!==e&&(yt(e,1,t),au(e,t))}function _u(e,t,n){if(3===e.tag)Eu(e,e,n);else for(;null!==t;){if(3===t.tag){Eu(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Ws||!Ws.has(r))){t=Ro(t,e=ml(t,e=cl(n,e),1),1),e=tu(),null!==t&&(yt(t,1,e),au(t,e));break}}t=t.return}}function Cu(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=tu(),e.pingedLanes|=e.suspendedLanes&n,js===e&&(As&n)===n&&(4===Rs||3===Rs&&(130023424&As)===As&&500>Ke()-Us?pu(e,0):zs|=n),au(e,t)}function Tu(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ct,0==(130023424&(ct<<=1))&&(ct=4194304)));var n=tu();null!==(e=jo(e,t))&&(yt(e,t,n),au(e,n))}function Lu(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tu(e,n)}function Nu(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),Tu(e,n)}function ju(e,t){return We(e,t)}function Pu(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Au(e,t,n,r){return new Pu(e,t,n,r)}function Ou(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Iu(e,t){var n=e.alternate;return null===n?((n=Au(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ru(e,t,n,r,a,i){var l=2;if(r=e,"function"==typeof e)Ou(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case S:return Fu(n.children,a,i,t);case E:l=8,a|=8;break;case _:return(e=Au(12,n,t,2|a)).elementType=_,e.lanes=i,e;case N:return(e=Au(13,n,t,a)).elementType=N,e.lanes=i,e;case j:return(e=Au(19,n,t,a)).elementType=j,e.lanes=i,e;case O:return Du(n,a,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:l=10;break e;case T:l=9;break e;case L:l=11;break e;case P:l=14;break e;case A:l=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Au(l,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Fu(e,t,n,r){return(e=Au(7,e,r,t)).lanes=n,e}function Du(e,t,n,r){return(e=Au(22,e,r,t)).elementType=O,e.lanes=n,e.stateNode={isHidden:!1},e}function Mu(e,t,n){return(e=Au(6,e,null,t)).lanes=n,e}function zu(e,t,n){return(t=Au(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bu(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function $u(e,t,n,r,a,o,i,l,s){return e=new Bu(e,t,n,l,s),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Au(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Ao(o),e}function Uu(e){if(!e)return Ta;e:{if(Ue(e=e._reactInternals)!==e||1!==e.tag)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Aa(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(o(171))}if(1===e.tag){var n=e.type;if(Aa(n))return Ra(e,n,t)}return t}function Qu(e,t,n,r,a,o,i,l,s){return(e=$u(n,r,!0,e,0,o,0,l,s)).context=Uu(null),n=e.current,(o=Io(r=tu(),a=nu(n))).callback=null!=t?t:null,Ro(n,o,a),e.current.lanes=a,yt(e,a,r),au(e,r),e}function Zu(e,t,n,r){var a=t.current,o=tu(),i=nu(a);return n=Uu(n),null===t.context?t.context=n:t.pendingContext=n,(t=Io(o,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Ro(a,t,i))&&(ru(e,a,i,o),Fo(e,a,i)),i}function Hu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Vu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Wu(e,t){Vu(e,t),(e=e.alternate)&&Vu(e,t)}Es=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Na.current)wl=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return wl=!1,function(e,t,n){switch(t.tag){case 3:jl(t),ho();break;case 5:ii(t);break;case 1:Aa(t.type)&&Fa(t);break;case 4:ai(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;Ca(bo,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ca(si,1&si.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Ml(e,t,n):(Ca(si,1&si.current),null!==(e=Hl(e,t,n))?e.sibling:null);Ca(si,1&si.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return Ql(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),Ca(si,si.current),r)break;return null;case 22:case 23:return t.lanes=0,_l(e,t,n)}return Hl(e,t,n)}(e,t,n);wl=0!=(131072&e.flags)}else wl=!1,ao&&0!=(1048576&t.flags)&&Ja(t,Va,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Zl(e,t),e=t.pendingProps;var a=Pa(t,La.current);_o(t,n),a=Ei(null,t,r,e,a,n);var i=_i();return t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Aa(r)?(i=!0,Fa(t)):i=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,Ao(t),a.updater=Uo,t.stateNode=a,a._reactInternals=t,Vo(t,r,e,n),t=Nl(null,t,r,!0,i,n)):(t.tag=0,ao&&i&&eo(t),xl(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Zl(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"==typeof e)return Ou(e)?1:0;if(null!=e){if((e=e.$$typeof)===L)return 11;if(e===P)return 14}return 2}(r),e=yo(r,e),a){case 0:t=Tl(null,t,r,e,n);break e;case 1:t=Ll(null,t,r,e,n);break e;case 11:t=kl(null,t,r,e,n);break e;case 14:t=Sl(null,t,r,yo(r.type,e),n);break e}throw Error(o(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,Tl(e,t,r,a=t.elementType===r?a:yo(r,a),n);case 1:return r=t.type,a=t.pendingProps,Ll(e,t,r,a=t.elementType===r?a:yo(r,a),n);case 3:e:{if(jl(t),null===e)throw Error(o(387));r=t.pendingProps,a=(i=t.memoizedState).element,Oo(e,t),Mo(t,r,null,n);var l=t.memoizedState;if(r=l.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Pl(e,t,r,n,a=cl(Error(o(423)),t));break e}if(r!==a){t=Pl(e,t,r,n,a=cl(Error(o(424)),t));break e}for(ro=ua(t.stateNode.containerInfo.firstChild),no=t,ao=!0,oo=null,n=Xo(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(ho(),r===a){t=Hl(e,t,n);break e}xl(e,t,r,n)}t=t.child}return t;case 5:return ii(t),null===e&&uo(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,l=a.children,na(r,a)?l=null:null!==i&&na(r,i)&&(t.flags|=32),Cl(e,t),xl(e,t,l,n),t.child;case 6:return null===e&&uo(t),null;case 13:return Ml(e,t,n);case 4:return ai(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ko(t,null,r,n):xl(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,kl(e,t,r,a=t.elementType===r?a:yo(r,a),n);case 7:return xl(e,t,t.pendingProps,n),t.child;case 8:case 12:return xl(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,i=t.memoizedProps,l=a.value,Ca(bo,r._currentValue),r._currentValue=l,null!==i)if(lr(i.value,l)){if(i.children===a.children&&!Na.current){t=Hl(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var s=i.dependencies;if(null!==s){l=i.child;for(var u=s.firstContext;null!==u;){if(u.context===r){if(1===i.tag){(u=Io(-1,n&-n)).tag=2;var c=i.updateQueue;if(null!==c){var d=(c=c.shared).pending;null===d?u.next=u:(u.next=d.next,d.next=u),c.pending=u}}i.lanes|=n,null!==(u=i.alternate)&&(u.lanes|=n),Eo(i.return,n,t),s.lanes|=n;break}u=u.next}}else if(10===i.tag)l=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(l=i.return))throw Error(o(341));l.lanes|=n,null!==(s=l.alternate)&&(s.lanes|=n),Eo(l,n,t),l=i.sibling}else l=i.child;if(null!==l)l.return=i;else for(l=i;null!==l;){if(l===t){l=null;break}if(null!==(i=l.sibling)){i.return=l.return,l=i;break}l=l.return}i=l}xl(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,_o(t,n),r=r(a=Co(a)),t.flags|=1,xl(e,t,r,n),t.child;case 14:return a=yo(r=t.type,t.pendingProps),Sl(e,t,r,a=yo(r.type,a),n);case 15:return El(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:yo(r,a),Zl(e,t),t.tag=1,Aa(r)?(e=!0,Fa(t)):e=!1,_o(t,n),Zo(t,r,a),Vo(t,r,a,n),Nl(null,t,r,!0,e,n);case 19:return Ql(e,t,n);case 22:return _l(e,t,n)}throw Error(o(156,t.tag))};var qu="function"==typeof reportError?reportError:function(e){console.error(e)};function Gu(e){this._internalRoot=e}function Yu(e){this._internalRoot=e}function Ku(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xu(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Ju(){}function ec(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if("function"==typeof a){var l=a;a=function(){var e=Hu(i);l.call(e)}}Zu(t,i,e,a)}else i=function(e,t,n,r,a){if(a){if("function"==typeof r){var o=r;r=function(){var e=Hu(i);o.call(e)}}var i=Qu(t,r,e,0,null,!1,0,"",Ju);return e._reactRootContainer=i,e[ha]=i.current,Ur(8===e.nodeType?e.parentNode:e),du(),i}for(;a=e.lastChild;)e.removeChild(a);if("function"==typeof r){var l=r;r=function(){var e=Hu(s);l.call(e)}}var s=$u(e,0,!1,null,0,!1,0,"",Ju);return e._reactRootContainer=s,e[ha]=s.current,Ur(8===e.nodeType?e.parentNode:e),du((function(){Zu(t,s,n,r)})),s}(n,t,e,a,r);return Hu(i)}Yu.prototype.render=Gu.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(o(409));Zu(e,t,null,null)},Yu.prototype.unmount=Gu.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;du((function(){Zu(null,e,null,null)})),t[ha]=null}},Yu.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ot.length&&0!==t&&t<Ot[n].priority;n++);Ot.splice(n,0,e),0===n&&Dt(e)}},xt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(bt(t,1|n),au(t,Ke()),0==(6&Ns)&&(Qs=Ke()+500,Ua()))}break;case 13:du((function(){var t=jo(e,1);if(null!==t){var n=tu();ru(t,e,1,n)}})),Wu(e,1)}},kt=function(e){if(13===e.tag){var t=jo(e,134217728);if(null!==t)ru(t,e,134217728,tu());Wu(e,134217728)}},St=function(e){if(13===e.tag){var t=nu(e),n=jo(e,t);if(null!==n)ru(n,e,t,tu());Wu(e,t)}},Et=function(){return vt},_t=function(e,t){var n=vt;try{return vt=e,t()}finally{vt=n}},ke=function(e,t,n){switch(t){case"input":if(X(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=xa(r);if(!a)throw Error(o(90));W(r),X(r,a)}}}break;case"textarea":oe(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Le=cu,Ne=du;var tc={usingClientEntryPoint:!1,Events:[va,wa,xa,Ce,Te,cu]},nc={findFiberByHostInstance:ba,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},rc={bundleType:nc.bundleType,version:nc.version,rendererPackageName:nc.rendererPackageName,rendererConfig:nc.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=He(e))?null:e.stateNode},findFiberByHostInstance:nc.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ac=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ac.isDisabled&&ac.supportsFiber)try{at=ac.inject(rc),ot=ac}catch(ce){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tc,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Ku(t))throw Error(o(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:k,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Ku(e))throw Error(o(299));var n=!1,r="",a=qu;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=$u(e,1,!1,null,0,n,0,r,a),e[ha]=t.current,Ur(8===e.nodeType?e.parentNode:e),new Gu(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(o(188));throw e=Object.keys(e).join(","),Error(o(268,e))}return e=null===(e=He(t))?null:e.stateNode},t.flushSync=function(e){return du(e)},t.hydrate=function(e,t,n){if(!Xu(t))throw Error(o(200));return ec(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Ku(e))throw Error(o(405));var r=null!=n&&n.hydratedSources||null,a=!1,i="",l=qu;if(null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError)),t=Qu(t,null,e,1,null!=n?n:null,a,0,i,l),e[ha]=t.current,Ur(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Yu(t)},t.render=function(e,t,n){if(!Xu(t))throw Error(o(200));return ec(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xu(e))throw Error(o(40));return!!e._reactRootContainer&&(du((function(){ec(null,null,e,!1,(function(){e._reactRootContainer=null,e[ha]=null}))})),!0)},t.unstable_batchedUpdates=cu,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Xu(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return ec(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},745:(e,t,n)=>{"use strict";var r=n(3935);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!o(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!o(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!o(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>H,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),l=n.n(i),s=n(1143),u=n.n(s),c=n(6774),d=n.n(c);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,h(e,t)}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function m(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},y={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},v={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),x={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},k=Object.keys(x).reduce((function(e,t){return e[x[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=S(e,g.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},L=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var l=o[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][u]&&(a[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var l=o[i],s=f({},r[l],a[l]);r[l]=s}return e}),[]).reverse()},N=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},j=function(e){return Array.isArray(e)?e.join(""):e},P=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},A=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},O=[g.NOSCRIPT,g.SCRIPT,g.STYLE],I=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},R=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},F=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[x[n]||n]=e[n],t}),t)},D=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=x[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},M=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=F(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=R(n),o=j(t);return a?"<"+e+' data-rh="true" '+a+">"+I(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+I(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return F(t)},toString:function(){return R(t)}};default:return{toComponent:function(){return D(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+I(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===O.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},z=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var h=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=P(e.metaTags,v),o=P(t,y),i=P(n,b);return{priorityMethods:{toComponent:function(){return[].concat(D(g.META,a.priority),D(g.LINK,o.priority),D(g.SCRIPT,i.priority))},toString:function(){return M(g.META,a.priority,r)+" "+M(g.LINK,o.priority,r)+" "+M(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);p=h.priorityMethods,c=h.linkTags,d=h.metaTags,f=h.scriptTags}return{priority:p,base:M(g.BASE,t,r),bodyAttributes:M("bodyAttributes",n,r),htmlAttributes:M("htmlAttributes",a,r),link:M(g.LINK,c,r),meta:M(g.META,d,r),noscript:M(g.NOSCRIPT,o,r),script:M(g.SCRIPT,f,r),style:M(g.STYLE,i,r),title:M(g.TITLE,{title:s,titleAttributes:u},r)}},B=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=z({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),Q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),Z="undefined"!=typeof document,H=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);H.canUseDOM=Z,H.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},H.defaultProps={context:{}},H.displayName="HelmetProvider";var V=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},W=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===a.indexOf(s)&&a.push(s);var c=o.indexOf(s);-1!==c&&o.splice(c,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},q=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;W(g.BODY,e.bodyAttributes),W(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=j(e)),W(g.TITLE,t)}(c,d);var f={baseTag:V(g.BASE,n),linkTags:V(g.LINK,a),metaTags:V(g.META,o),noscriptTags:V(g.NOSCRIPT,i),scriptTags:V(g.SCRIPT,s),styleTags:V(g.STYLE,u)},p={},h={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(h[e]=f[e].oldTags)})),t&&t(),l(e,p,h)},G=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:L(g.LINK,["rel","href"],e),metaTags:L(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:L(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:L(g.SCRIPT,["src","innerHTML"],e),styleTags:L(g.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:N(e,"prioritizeSeoTags")});H.canUseDOM?(t=o,G&&cancelAnimationFrame(G),t.defer?G=requestAnimationFrame((function(){q(t,(function(){G=null}))})):(q(t),G=null)):z&&(a=z(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:Q.isRequired},Y.displayName="HelmetDispatcher";var K=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(A(this.props,"helmetData"),A(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return f({},a,((t={})[r.type]=i,t.titleAttributes=f({},o),t));case g.BODY:return f({},a,{bodyAttributes:f({},o)});case g.HTML:return f({},a,{htmlAttributes:f({},o)});default:return f({},a,((n={})[r.type]=f({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=m(r,K),l=Object.keys(i).reduce((function(e,t){return e[k[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,o),s){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:l,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=m(e,X),a=f({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof $||(o=new $(o.context,o.instances)),o?r.createElement(Y,f({},a,{context:o.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,f({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,v=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function x(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case o:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case m:case s:return e;default:return t}}case a:return t}}}function k(e){return x(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=o,t.Lazy=g,t.Memo=m,t.Portal=a,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return k(e)||x(e)===c},t.isConcurrentMode=k,t.isContextConsumer=function(e){return x(e)===u},t.isContextProvider=function(e){return x(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return x(e)===f},t.isFragment=function(e){return x(e)===o},t.isLazy=function(e){return x(e)===g},t.isMemo=function(e){return x(e)===m},t.isPortal=function(e){return x(e)===a},t.isProfiler=function(e){return x(e)===l},t.isStrictMode=function(e){return x(e)===i},t.isSuspense=function(e){return x(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===l||e===i||e===p||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===v||e.$$typeof===w||e.$$typeof===y)},t.typeOf=x},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(7294),s=n(5697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function h(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var h=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),m=null;function g(){return m||(m=e(h.loader)),m.promise}return u.push(g),"function"==typeof h.webpack&&c.push((function(){if((0,h.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),f=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),m=e(h.loader),r._loadModule()})),g(),r.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(h.modules)&&h.modules.forEach((function(t){e.context.loadable.report(t)})),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof h.delay&&(0===h.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),h.delay)),"number"==typeof h.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),h.timeout));var n=function(){t({error:m.error,loaded:m.loaded,loading:m.loading}),e._clearTimeouts()};m.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(h.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?h.render(this.state.loaded,this.props):null},n}(l.Component),o(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function m(e){return h(d,e)}m.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return h(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function y(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return y(e)}))}o(g,"propTypes",{report:s.func.isRequired}),o(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),m.Capture=g,m.preloadAll=function(){return new Promise((function(e,t){y(u).then(e,t)}))},m.preloadReady=function(){return new Promise((function(e,t){y(c).then(e,e)}))},e.exports=m},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(6550),a=n(3117),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>v,VK:()=>c,rU:()=>g});var r=n(6550),a=n(144),o=n(7294),i=n(9318),l=n(3117),s=n(102),u=n(8776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},h=o.forwardRef;void 0===h&&(h=p);var m=h((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==h&&t||n,o.createElement("a",c)}));var g=h((function(e,t){var n=e.component,a=void 0===n?m:n,c=e.replace,g=e.to,y=e.innerRef,b=(0,s.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",m=(0,l.Z)({},b,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==h?m.ref=t||y:m.innerRef=y,o.createElement(a,m)}))})),y=function(e){return e},b=o.forwardRef;void 0===b&&(b=y);var v=b((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,h=e.className,m=e.exact,v=e.isActive,w=e.location,x=e.sensitive,k=e.strict,S=e.style,E=e.to,_=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(E,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),L=T?(0,r.LX)(n.pathname,{path:T,exact:m,sensitive:x,strict:k}):null,N=!!(v?v(L,n):L),j="function"==typeof h?h(N):h,P="function"==typeof S?S(N):S;N&&(j=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(j,c),P=(0,l.Z)({},P,p));var A=(0,l.Z)({"aria-current":N&&a||null,className:j,style:P,to:i},C);return y!==b?A.ref=t||_:A.innerRef=_,o.createElement(g,A)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>E,F0:()=>v,LX:()=>S,TH:()=>O,k6:()=>A,rs:()=>j,s6:()=>b});var r=n(144),a=n(7294),o=n(5697),i=n.n(o),l=n(9318),s=n(8776),u=n(3117),c=n(9658),d=n.n(c),f=(n(9864),n(102)),p=(n(8679),1073741823),h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var m=a.createContext||function(e,t){var n,o,l="__create-react-context-"+function(){var e="__global_unique_id__";return h[e]=(h[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},a.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p:e},a.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},a.getValue=function(){return this.context[l]?this.context[l].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return u.contextTypes=((o={})[l]=i().object,o),{Provider:s,Consumer:u}},g=function(e){var t=m();return t.displayName=e,t},y=g("Router-History"),b=g("Router"),v=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(b.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(y.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},x=1e4,k=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return k<x&&(r[e]=o,k++),o}(n,{end:o,strict:l,sensitive:u}),a=r.regexp,i=r.keys,s=a.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return o&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(b.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,o=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===a.Children.count(e)}(l)&&(l=null),a.createElement(b.Provider,{value:o},o.match?l?"function"==typeof l?l(o):l:c?a.createElement(c,o):d?d(o):null:"function"==typeof l?l(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,l.Ep)(e)}function L(e){return function(){(0,s.Z)(!1)}}function N(){}a.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(b.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(o.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var P=a.useContext;function A(){return P(y)}function O(){return P(b).location}},9658:(e,t,n)=>{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var h=e[i],m=n[2],g=n[3],y=n[4],b=n[5],v=n[6],w=n[7];l&&(r.push(l),l="");var x=null!=m&&null!=h&&h!==m,k="+"===v||"*"===v,S="?"===v||"*"===v,E=n[2]||c,_=y||b;r.push({name:g||o++,prefix:m||"",delimiter:E,optional:S,repeat:k,partial:x,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(E)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",l=t||{},s=(a||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');o+=c.prefix+d}}else o+=c}return o}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var h=s(n.delimiter||"/"),m=i.slice(-h.length)===h;return a||(i=(m?i.slice(0,-h.length):i)+"(?:"+h+"(?=$))?"),i+=o?"$":a&&m?"":"(?="+h+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(p(e[a],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(o(e,n),t,n)}(e,t,n)}},5251:(e,t,n)=>{"use strict";var r=n(7294),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function u(e,t,n){var r,o={},u=null,c=null;for(r in void 0!==n&&(u=""+n),void 0!==t.key&&(u=""+t.key),void 0!==t.ref&&(c=t.ref),t)i.call(t,r)&&!s.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:a,type:e,key:u,ref:c,props:o,_owner:l.current}}t.Fragment=o,t.jsx=u,t.jsxs=u},2408:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.iterator;var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}function b(){}function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||h}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=y.prototype;var w=v.prototype=new b;w.constructor=v,m(w,y.prototype),w.isPureReactComponent=!0;var x=Array.isArray,k=Object.prototype.hasOwnProperty,S={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var a,o={},i=null,l=null;if(null!=t)for(a in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)k.call(t,a)&&!E.hasOwnProperty(a)&&(o[a]=t[a]);var s=arguments.length-2;if(1===s)o.children=r;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];o.children=u}if(e&&e.defaultProps)for(a in s=e.defaultProps)void 0===o[a]&&(o[a]=s[a]);return{$$typeof:n,type:e,key:i,ref:l,props:o,_owner:S.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var T=/\/+/g;function L(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function N(e,t,a,o,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case n:case r:s=!0}}if(s)return i=i(s=e),e=""===o?"."+L(s,0):o,x(i)?(a="",null!=e&&(a=e.replace(T,"$&/")+"/"),N(i,t,a,"",(function(e){return e}))):null!=i&&(C(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(T,"$&/")+"/")+e)),t.push(i)),1;if(s=0,o=""===o?".":o+":",x(e))for(var u=0;u<e.length;u++){var c=o+L(l=e[u],u);s+=N(l,t,a,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=N(l=l.value,t,a,c=o+L(l,u++),i);else if("object"===l)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return s}function j(e,t,n){if(null==e)return e;var r=[],a=0;return N(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function P(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var A={current:null},O={transition:null},I={ReactCurrentDispatcher:A,ReactCurrentBatchConfig:O,ReactCurrentOwner:S};t.Children={map:j,forEach:function(e,t,n){j(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return j(e,(function(){t++})),t},toArray:function(e){return j(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=y,t.Fragment=a,t.Profiler=i,t.PureComponent=v,t.StrictMode=o,t.Suspense=c,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=I,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=m({},e.props),o=e.key,i=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,l=S.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(u in t)k.call(t,u)&&!E.hasOwnProperty(u)&&(a[u]=void 0===t[u]&&void 0!==s?s[u]:t[u])}var u=arguments.length-2;if(1===u)a.children=r;else if(1<u){s=Array(u);for(var c=0;c<u;c++)s[c]=arguments[c+2];a.children=s}return{$$typeof:n,type:e.type,key:o,ref:i,props:a,_owner:l}},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:l,_context:e},e.Consumer=e},t.createElement=_,t.createFactory=function(e){var t=_.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:P}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=O.transition;O.transition={};try{e()}finally{O.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return A.current.useCallback(e,t)},t.useContext=function(e){return A.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return A.current.useDeferredValue(e)},t.useEffect=function(e,t){return A.current.useEffect(e,t)},t.useId=function(){return A.current.useId()},t.useImperativeHandle=function(e,t,n){return A.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return A.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return A.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return A.current.useMemo(e,t)},t.useReducer=function(e,t,n){return A.current.useReducer(e,t,n)},t.useRef=function(e){return A.current.useRef(e)},t.useState=function(e){return A.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return A.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return A.current.useTransition()},t.version="18.2.0"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},5893:(e,t,n)=>{"use strict";e.exports=n(5251)},53:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var l=2*(r+1)-1,s=e[l],u=l+1,c=e[u];if(0>o(s,n))u<a&&0>o(c,s)?(e[r]=c,e[u]=n,r=u):(e[r]=s,e[l]=n,r=l);else{if(!(u<a&&0>o(c,n)))break e;e[r]=c,e[u]=n,r=u}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var u=[],c=[],d=1,f=null,p=3,h=!1,m=!1,g=!1,y="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,v="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(c);null!==t;){if(null===t.callback)a(c);else{if(!(t.startTime<=e))break;a(c),t.sortIndex=t.expirationTime,n(u,t)}t=r(c)}}function x(e){if(g=!1,w(e),!m)if(null!==r(u))m=!0,O(k);else{var t=r(c);null!==t&&I(x,t.startTime-e)}}function k(e,n){m=!1,g&&(g=!1,b(C),C=-1),h=!0;var o=p;try{for(w(n),f=r(u);null!==f&&(!(f.expirationTime>n)||e&&!N());){var i=f.callback;if("function"==typeof i){f.callback=null,p=f.priorityLevel;var l=i(f.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?f.callback=l:f===r(u)&&a(u),w(n)}else a(u);f=r(u)}if(null!==f)var s=!0;else{var d=r(c);null!==d&&I(x,d.startTime-n),s=!1}return s}finally{f=null,p=o,h=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,E=!1,_=null,C=-1,T=5,L=-1;function N(){return!(t.unstable_now()-L<T)}function j(){if(null!==_){var e=t.unstable_now();L=e;var n=!0;try{n=_(!0,e)}finally{n?S():(E=!1,_=null)}}else E=!1}if("function"==typeof v)S=function(){v(j)};else if("undefined"!=typeof MessageChannel){var P=new MessageChannel,A=P.port2;P.port1.onmessage=j,S=function(){A.postMessage(null)}}else S=function(){y(j,0)};function O(e){_=e,E||(E=!0,S())}function I(e,n){C=y((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){m||h||(m=!0,O(k))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):T=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return p},t.unstable_getFirstCallbackNode=function(){return r(u)},t.unstable_next=function(e){switch(p){case 1:case 2:case 3:var t=3;break;default:t=p}var n=p;p=t;try{return e()}finally{p=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=p;p=e;try{return t()}finally{p=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:l=o+l,sortIndex:-1},o>i?(e.sortIndex=o,n(c,e),null===r(u)&&e===r(c)&&(g?(b(C),C=-1):g=!0,I(x,o-i))):(e.sortIndex=l,n(u,e),m||h||(m=!0,O(k))),e},t.unstable_shouldYield=N,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<o.length;s++){var u=o[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(a=n?n.call(r,c,d,u):void 0)||void 0===a&&c!==d)return!1}return!0}},6809:(e,t,n)=>{"use strict";n.d(t,{default:()=>r});const r={title:"CML",tagline:"Getting started",url:"https://dcspark.github.io",baseUrl:"/cardano-multiplatform-lib/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.svg",organizationName:"dcSpark",projectName:"cardano-multiplatform-lib",themes:[["/home/sebdev20/Documents/git/cardano-multiplatform-lib/docs/node_modules/@easyops-cn/docusaurus-search-local/dist/server/server/index.js",{docsRouteBasePath:"/",hashed:!0}]],presets:[["classic",{docs:{sidebarPath:"/home/sebdev20/Documents/git/cardano-multiplatform-lib/docs/sidebars.js",routeBasePath:"/"},blog:!1,theme:{customCss:"/home/sebdev20/Documents/git/cardano-multiplatform-lib/docs/src/css/custom.css"}}]],plugins:[null],themeConfig:{navbar:{title:"Cardano Multiplatform Lib Docs",logo:{alt:"dcSpark logo",src:"img/favicon.svg"},items:[{type:"localeDropdown",position:"right",dropdownItemsBefore:[],dropdownItemsAfter:[]}],hideOnScroll:!1},footer:{style:"dark",copyright:"Copyright \xa9 2024 dcSpark. Built with Docusaurus.",links:[]},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:["rust"],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0}}}},3117:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},144:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},102:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},512:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},2573:(e,t,n)=>{"use strict";n.d(t,{p1:()=>T,y$:()=>ee});var r,a,o,i,l,s,u,c=n(7294),d=n(512),f=Object.create,p=Object.defineProperty,h=Object.defineProperties,m=Object.getOwnPropertyDescriptor,g=Object.getOwnPropertyDescriptors,y=Object.getOwnPropertyNames,b=Object.getOwnPropertySymbols,v=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,x=Object.prototype.propertyIsEnumerable,k=(e,t,n)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&k(e,n,t[n]);if(b)for(var n of b(t))x.call(t,n)&&k(e,n,t[n]);return e},E=(e,t)=>h(e,g(t)),_=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&b)for(var r of b(e))t.indexOf(r)<0&&x.call(e,r)&&(n[r]=e[r]);return n},C=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var l in o)if(o.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=o[l])}var u=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],a||l);var s=t[l],u=r.util.type(s);"Object"!==u||o[i(s)]?"Array"!==u||o[i(s)]||(o[i(s)]=!0,e(s,n,l,o)):(o[i(s)]=!0,e(s,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw new Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new l;return s(a,a.head,e),i(e,a,t,a.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var h=0;h<p.length;++h){if(d&&d.cause==f+","+h)return;var m=p[h],g=m.inside,y=!!m.lookbehind,b=!!m.greedy,v=m.alias;if(b&&!m.pattern.global){var w=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,w+"g")}for(var x=m.pattern||m,k=l.next,S=c;k!==t.tail&&!(d&&S>=d.reach);S+=k.value.length,k=k.next){var E=k.value;if(t.length>e.length)return;if(!(E instanceof a)){var _,C=1;if(b){if(!(_=o(x,S,e,y))||_.index>=e.length)break;var T=_.index,L=_.index+_[0].length,N=S;for(N+=k.value.length;T>=N;)N+=(k=k.next).value.length;if(S=N-=k.value.length,k.value instanceof a)continue;for(var j=k;j!==t.tail&&(N<L||"string"==typeof j.value);j=j.next)C++,N+=j.value.length;C--,E=e.slice(S,N),_.index-=S}else if(!(_=o(x,0,E,y)))continue;T=_.index;var P=_[0],A=E.slice(0,T),O=E.slice(T+P.length),I=S+E.length;d&&I>d.reach&&(d.reach=I);var R=k.prev;if(A&&(R=s(t,R,A),S+=A.length),u(t,R,C),k=s(t,R,new a(f,g?r.tokenize(P,g):P,v,P)),O&&s(t,k,O),C>1){var F={cause:f+","+h,reach:I};i(e,t,n,k.prev,S,F),d&&F.reach>d.reach&&(d.reach=F.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var l="";for(var s in o.attributes)l+=" "+s+'="'+(o.attributes[s]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+l+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return a||(0,r[y(r)[0]])((a={exports:{}}).exports,a),a.exports}),T=((e,t,n)=>(n=null!=e?f(v(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of y(t))w.call(e,a)||a===n||p(e,a,{get:()=>t[a],enumerable:!(r=m(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:p(n,"default",{value:e,enumerable:!0}),e)))(C());T.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},T.languages.markup.tag.inside["attr-value"].inside.entity=T.languages.markup.entity,T.languages.markup.doctype.inside["internal-subset"].inside=T.languages.markup,T.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(T.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:T.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:T.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},T.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(T.languages.markup.tag,"addAttribute",{value:function(e,t){T.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:T.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),T.languages.html=T.languages.markup,T.languages.mathml=T.languages.markup,T.languages.svg=T.languages.markup,T.languages.xml=T.languages.extend("markup",{}),T.languages.ssml=T.languages.xml,T.languages.atom=T.languages.xml,T.languages.rss=T.languages.xml,o=T,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},s="(?:[^\\\\-]|"+(l=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",s=RegExp(s+"-"+s),u={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},o.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:l,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:l}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":u}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:l,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":u}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},T.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},T.languages.javascript=T.languages.extend("clike",{"class-name":[T.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),T.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,T.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:T.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:T.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:T.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:T.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:T.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),T.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:T.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),T.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),T.languages.markup&&(T.languages.markup.tag.addInlined("script","javascript"),T.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),T.languages.js=T.languages.javascript,T.languages.actionscript=T.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),T.languages.actionscript["class-name"].alias="function",delete T.languages.actionscript.parameter,delete T.languages.actionscript["literal-property"],T.languages.markup&&T.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:T.languages.markup}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(T),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},a="doc-comment";if(o=e.languages[t]){var o,i=o[a];if((i=i||(o=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[a])instanceof RegExp&&(i=o[a]={pattern:i}),Array.isArray(i))for(var l=0,s=i.length;l<s;l++)i[l]instanceof RegExp&&(i[l]={pattern:i[l]}),r(i[l]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(T),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(T),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(T),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(T),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r];if(o=/language-(.+)/.exec(o)){n=o[1];break}}var u,c=e.languages[n];c?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n)):l[t]||e})),c,n):n&&"none"!==n&&e.plugins.autoloader&&(u="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=u,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(u);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(T),T.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:T.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},T.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var o=f(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),0<a.length)){var l=f(/^\{$/,/^\}$/);if(-1!==l)for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&0<=a.indexOf(u.content)&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return}return 1}function f(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))a++;else if(r.test(l)&&0==--a)return o}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),T.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function s(t,n,i){var s=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),u=0,c={},d=(s=l(s.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=u++,n="___"+i.toUpperCase()+"_"+r+"___")););return c[n]=e,n})).join(""),n,i),Object.keys(c));return u=0,function t(n){for(var o=0;o<n.length;o++){if(u>=d.length)return;var i,s,f,p,h,m,g,y=n[o];"string"==typeof y||"string"==typeof y.content?(i=d[u],-1!==(g=(m="string"==typeof y?y:y.content).indexOf(i))&&(++u,s=m.substring(0,g),h=c[i],f=void 0,(p={})["interpolation-punctuation"]=a,3===(p=e.tokenize(h,p)).length&&((f=[1,1]).push.apply(f,l(p[1],e.languages.javascript,"javascript")),p.splice.apply(p,f)),f=new e.Token("interpolation",p,r.alias,h),p=m.substring(g+i.length),h=[],s&&h.push(s),h.push(f),p&&(t(m=[p]),h.push.apply(h,m)),"string"==typeof y?(n.splice.apply(n,[o,1].concat(h)),o+=h.length-1):y.content=h)):(g=y.content,Array.isArray(g)?t(g):t([g]))}}(s),new e.Token(i,s,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var u={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function c(e){return"string"==typeof e?e:Array.isArray(e)?e.map(c).join(""):c(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in u&&function t(n){for(var r=0,a=n.length;r<a;r++){var o,i,l,u=n[r];"string"!=typeof u&&(o=u.content,Array.isArray(o)?"template-string"===u.type?(u=o[1],3===o.length&&"string"!=typeof u&&"embedded-code"===u.type&&(i=c(u),u=u.alias,u=Array.isArray(u)?u[0]:u,l=e.languages[u])&&(o[1]=s(i,l,u))):t(o):"string"!=typeof o&&t([o]))}}(t.tokens)}))}(T),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(T),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(T),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(T),T.languages.n4js=T.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),T.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),T.languages.n4jsd=T.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(T),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;"string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===l(a.content[0].content[1])&&n.pop():"/>"!==a.content[a.content.length-1].content&&n.push({tagName:l(a.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&0<n.length&&0===n[n.length-1].openedBraces&&(o=l(a),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(o+=l(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(o=l(t[r-1])+o,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",o,null,o)),a.content&&"string"!=typeof a.content&&i(a.content)}}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var l=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(l).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(T),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(T),T.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},T.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=T.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(T),T.languages.c=T.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),T.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),T.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},T.languages.c.string],char:T.languages.c.char,comment:T.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:T.languages.c}}}}),T.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete T.languages.c.boolean,T.languages.objectivec=T.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete T.languages.objectivec["class-name"],T.languages.objc=T.languages.objectivec,T.languages.reason=T.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),T.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete T.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(T),T.languages.go=T.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),T.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete T.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(T),T.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},T.languages.python["string-interpolation"].inside.interpolation.inside.rest=T.languages.python,T.languages.py=T.languages.python;((e,t)=>{for(var n in t)p(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>L,duotoneDark:()=>N,duotoneLight:()=>j,github:()=>P,jettwaveDark:()=>Z,jettwaveLight:()=>H,nightOwl:()=>A,nightOwlLight:()=>O,oceanicNext:()=>F,okaidia:()=>D,oneDark:()=>V,oneLight:()=>W,palenight:()=>M,shadesOfPurple:()=>z,synthwave84:()=>B,ultramin:()=>$,vsDark:()=>U,vsLight:()=>Q});var L={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},N={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},j={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},P={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},A={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},O={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},I="#c5a5c5",R="#8dc891",F={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:I}},{types:["attr-value"],style:{color:R}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:R}},{types:["punctuation"],style:{color:R}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:I}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},D={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},M={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},z={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},B={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},$={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},U={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},Q={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},Z={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},H={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},V={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},W={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},q=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=S(S({},e[t]),a);e[t]=n})),e}),{});return r.root=n,r.plain=E(S({},n),{backgroundColor:void 0}),r},G=/\r\n|\r|\n/,Y=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},K=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},X=e=>{const t=[[]],n=[e],r=[0],a=[e.length];let o=0,i=0,l=[];const s=[l];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,u=t[i];const c=n[i][o];if("string"==typeof c?(u=i>0?u:["plain"],e=c):(u=K(u,c.type),c.alias&&(u=K(u,c.alias)),e=c.content),"string"!=typeof e){i++,t.push(u),n.push(e),r.push(0),a.push(e.length);continue}const d=e.split(G),f=d.length;l.push({types:u,content:d[0]});for(let t=1;t<f;t++)Y(l),s.push(l=[]),l.push({types:u,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return Y(l),s},J=({children:e,language:t,code:n,theme:r,prism:a})=>{const o=t.toLowerCase(),i=((e,t)=>{const[n,r]=(0,c.useState)(q(t,e)),a=(0,c.useRef)(),o=(0,c.useRef)();return(0,c.useEffect)((()=>{t===a.current&&e===o.current||(a.current=t,o.current=e,r(q(t,e)))}),[e,t]),n})(o,r),l=(e=>(0,c.useCallback)((t=>{var n=t,{className:r,style:a,line:o}=n,i=_(n,["className","style","line"]);const l=E(S({},i),{className:(0,d.Z)("token-line",r)});return"object"==typeof e&&"plain"in e&&(l.style=e.plain),"object"==typeof a&&(l.style=S(S({},l.style||{}),a)),l}),[e]))(i),s=(e=>{const t=(0,c.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,c.useCallback)((e=>{var n=e,{token:r,className:a,style:o}=n,i=_(n,["token","className","style"]);const l=E(S({},i),{className:(0,d.Z)("token",...r.types,a),children:r.content,style:t(r)});return null!=o&&(l.style=S(S({},l.style||{}),o)),l}),[t])})(i),u=(({prism:e,code:t,grammar:n,language:r})=>{const a=(0,c.useRef)(e);return(0,c.useMemo)((()=>{if(null==n)return X([t]);const e={code:t,grammar:n,language:r,tokens:[]};return a.current.hooks.run("before-tokenize",e),e.tokens=a.current.tokenize(t,n),a.current.hooks.run("after-tokenize",e),X(e.tokens)}),[t,n,r])})({prism:a,language:o,code:n,grammar:a.languages[o]});return e({tokens:u,className:`prism-code language-${o}`,style:null!=i?i.root:{},getLineProps:l,getTokenProps:s})},ee=e=>(0,c.createElement)(J,E(S({},e),{prism:e.prism||T,theme:e.theme||U,code:e.code,language:e.language}))},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/cardano-multiplatform-lib/search-6b8":{"__comp":"1a4e3797","__context":{"plugin":"0109cddc"}},"/cardano-multiplatform-lib/-6de":{"__comp":"5e95c892","__context":{"plugin":"f438ab24"}},"/cardano-multiplatform-lib/-001":{"__comp":"a7bd4aaa","version":"935f2afb"},"/cardano-multiplatform-lib/-57d":{"__comp":"a94703ab"},"/cardano-multiplatform-lib/category/builders-abb":{"__comp":"14eb3368","categoryGeneratedIndex":"8cf5c8a6"},"/cardano-multiplatform-lib/category/chain-33e":{"__comp":"14eb3368","categoryGeneratedIndex":"d1737d8e"},"/cardano-multiplatform-lib/category/core-e60":{"__comp":"14eb3368","categoryGeneratedIndex":"c7581e31"},"/cardano-multiplatform-lib/category/crypto-f2e":{"__comp":"14eb3368","categoryGeneratedIndex":"82878dee"},"/cardano-multiplatform-lib/category/modules-d7c":{"__comp":"14eb3368","categoryGeneratedIndex":"eb14df67"},"/cardano-multiplatform-lib/category/multi-era-98e":{"__comp":"14eb3368","categoryGeneratedIndex":"a9e02168"},"/cardano-multiplatform-lib/crate_architecture-6ae":{"__comp":"17896441","content":"e7958d21"},"/cardano-multiplatform-lib/getting_started-712":{"__comp":"17896441","content":"456dc1ab"},"/cardano-multiplatform-lib/modules/builders/-f4c":{"__comp":"17896441","content":"3c02cfd4"},"/cardano-multiplatform-lib/modules/builders/generating_transactions-5d8":{"__comp":"17896441","content":"dd8d23a4"},"/cardano-multiplatform-lib/modules/cbor-27a":{"__comp":"17896441","content":"6c2c22d1"},"/cardano-multiplatform-lib/modules/chain/-2fe":{"__comp":"17896441","content":"42a4384b"},"/cardano-multiplatform-lib/modules/CIP25-99f":{"__comp":"17896441","content":"a6c5da82"},"/cardano-multiplatform-lib/modules/cip36-6ab":{"__comp":"17896441","content":"bbe6d832"},"/cardano-multiplatform-lib/modules/core/-d45":{"__comp":"17896441","content":"187dbc21"},"/cardano-multiplatform-lib/modules/crypto/-a94":{"__comp":"17896441","content":"8019ae33"},"/cardano-multiplatform-lib/modules/crypto/generating_keys-425":{"__comp":"17896441","content":"b5ddca27"},"/cardano-multiplatform-lib/modules/json-6a4":{"__comp":"17896441","content":"d16dc6d6"},"/cardano-multiplatform-lib/modules/metadata-0a2":{"__comp":"17896441","content":"f41b0af6"},"/cardano-multiplatform-lib/modules/multi-era/-229":{"__comp":"17896441","content":"024b6465"},"/cardano-multiplatform-lib/modules/wasm-db2":{"__comp":"17896441","content":"61955a96"},"/cardano-multiplatform-lib/-6ae":{"__comp":"17896441","content":"c377a04b"}}')}},e=>{e.O(0,[532],(()=>{return t=7221,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.a2f566e1.js.LICENSE.txt b/assets/js/main.a2f566e1.js.LICENSE.txt new file mode 100644 index 00000000..5b49ae63 --- /dev/null +++ b/assets/js/main.a2f566e1.js.LICENSE.txt @@ -0,0 +1,126 @@ +/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress + * @license MIT */ + +/*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + */ + +/*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + */ + +/*! Bundled license information: + +prismjs/prism.js: + (** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + *) +*/ + +/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */ + +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ diff --git a/assets/js/runtime~main.9afd905d.js b/assets/js/runtime~main.9afd905d.js new file mode 100644 index 00000000..e2750205 --- /dev/null +++ b/assets/js/runtime~main.9afd905d.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,t,a,r,d,o={},c={};function n(e){var t=c[e];if(void 0!==t)return t.exports;var a=c[e]={exports:{}};return o[e].call(a.exports,a,a.exports,n),a.exports}n.m=o,e=[],n.O=(t,a,r,d)=>{if(!a){var o=1/0;for(i=0;i<e.length;i++){a=e[i][0],r=e[i][1],d=e[i][2];for(var c=!0,f=0;f<a.length;f++)(!1&d||o>=d)&&Object.keys(n.O).every((e=>n.O[e](a[f])))?a.splice(f--,1):(c=!1,d<o&&(o=d));if(c){e.splice(i--,1);var b=r();void 0!==b&&(t=b)}}return t}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[a,r,d]},n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var d=Object.create(null);n.r(d);var o={};t=t||[null,a({}),a([]),a(a)];for(var c=2&r&&e;"object"==typeof c&&!~t.indexOf(c);c=a(c))Object.getOwnPropertyNames(c).forEach((t=>o[t]=()=>e[t]));return o.default=()=>e,n.d(d,o),d},n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,a)=>(n.f[a](e,t),t)),[])),n.u=e=>"assets/js/"+({11:"8019ae33",31:"eb14df67",53:"935f2afb",54:"0109cddc",200:"d16dc6d6",258:"b5ddca27",368:"a94703ab",381:"c7581e31",392:"d1737d8e",455:"187dbc21",461:"bbe6d832",518:"a7bd4aaa",533:"456dc1ab",580:"6c2c22d1",595:"61955a96",650:"f41b0af6",659:"e7958d21",661:"5e95c892",663:"a9e02168",675:"024b6465",684:"3c02cfd4",698:"f438ab24",810:"42a4384b",817:"14eb3368",918:"17896441",920:"1a4e3797",926:"8cf5c8a6",928:"82878dee",932:"a6c5da82",953:"dd8d23a4",971:"c377a04b"}[e]||e)+"."+{11:"f9697cba",31:"6db07931",53:"a68d5b39",54:"748be62a",200:"0e8b1a56",258:"43511ee0",368:"3baa4e38",381:"c24443d3",392:"b0eec86d",443:"3d74dd3a",455:"6d7a7433",461:"162d02e5",518:"5eb89804",525:"2fbd60c6",533:"0ca46ae8",580:"fe3782c7",595:"49be3fcb",650:"a76d7160",659:"f670ea2c",661:"7fbf04ea",663:"48f27996",675:"6664d642",684:"0b344bc8",698:"413653ef",772:"0a40c231",810:"2d67981c",817:"6bb3db11",918:"ff509f23",920:"e763b08d",926:"40ba156d",928:"4db35e31",932:"dca57a8d",953:"8124b095",971:"10e5b1c9"}[e]+".js",n.miniCssF=e=>{},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},d="cddl-codegen-documentation:",n.l=(e,t,a,o)=>{if(r[e])r[e].push(t);else{var c,f;if(void 0!==a)for(var b=document.getElementsByTagName("script"),i=0;i<b.length;i++){var u=b[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+a){c=u;break}}c||(f=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,n.nc&&c.setAttribute("nonce",n.nc),c.setAttribute("data-webpack",d+a),c.src=e),r[e]=[t];var l=(t,a)=>{c.onerror=c.onload=null,clearTimeout(s);var d=r[e];if(delete r[e],c.parentNode&&c.parentNode.removeChild(c),d&&d.forEach((e=>e(a))),t)return t(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),f&&document.head.appendChild(c)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/cardano-multiplatform-lib/",n.gca=function(e){return e={17896441:"918","8019ae33":"11",eb14df67:"31","935f2afb":"53","0109cddc":"54",d16dc6d6:"200",b5ddca27:"258",a94703ab:"368",c7581e31:"381",d1737d8e:"392","187dbc21":"455",bbe6d832:"461",a7bd4aaa:"518","456dc1ab":"533","6c2c22d1":"580","61955a96":"595",f41b0af6:"650",e7958d21:"659","5e95c892":"661",a9e02168:"663","024b6465":"675","3c02cfd4":"684",f438ab24:"698","42a4384b":"810","14eb3368":"817","1a4e3797":"920","8cf5c8a6":"926","82878dee":"928",a6c5da82:"932",dd8d23a4:"953",c377a04b:"971"}[e]||e,n.p+n.u(e)},(()=>{var e={303:0,532:0};n.f.j=(t,a)=>{var r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)a.push(r[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var d=new Promise(((a,d)=>r=e[t]=[a,d]));a.push(r[2]=d);var o=n.p+n.u(t),c=new Error;n.l(o,(a=>{if(n.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var d=a&&("load"===a.type?"missing":a.type),o=a&&a.target&&a.target.src;c.message="Loading chunk "+t+" failed.\n("+d+": "+o+")",c.name="ChunkLoadError",c.type=d,c.request=o,r[1](c)}}),"chunk-"+t,t)}},n.O.j=t=>0===e[t];var t=(t,a)=>{var r,d,o=a[0],c=a[1],f=a[2],b=0;if(o.some((t=>0!==e[t]))){for(r in c)n.o(c,r)&&(n.m[r]=c[r]);if(f)var i=f(n)}for(t&&t(a);b<o.length;b++)d=o[b],n.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return n.O(i)},a=self.webpackChunkcddl_codegen_documentation=self.webpackChunkcddl_codegen_documentation||[];a.forEach(t.bind(null,0)),a.push=t.bind(null,a.push.bind(a))})()})(); \ No newline at end of file diff --git a/category/builders/index.html b/category/builders/index.html new file mode 100644 index 00000000..8634c336 --- /dev/null +++ b/category/builders/index.html @@ -0,0 +1,13 @@ +<!doctype html> +<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page" data-has-hydrated="false"> +<head> +<meta charset="UTF-8"> +<meta name="generator" content="Docusaurus v3.0.1"> +<title data-rh="true">Builders | CML + + + + + + + \ No newline at end of file diff --git a/category/chain/index.html b/category/chain/index.html new file mode 100644 index 00000000..6bb6a3a1 --- /dev/null +++ b/category/chain/index.html @@ -0,0 +1,13 @@ + + + + + +Chain | CML + + + + + + + \ No newline at end of file diff --git a/category/core/index.html b/category/core/index.html new file mode 100644 index 00000000..008acd93 --- /dev/null +++ b/category/core/index.html @@ -0,0 +1,13 @@ + + + + + +Core | CML + + + + + + + \ No newline at end of file diff --git a/category/crypto/index.html b/category/crypto/index.html new file mode 100644 index 00000000..2dfae41a --- /dev/null +++ b/category/crypto/index.html @@ -0,0 +1,13 @@ + + + + + +Crypto | CML + + + + + + + \ No newline at end of file diff --git a/category/modules/index.html b/category/modules/index.html new file mode 100644 index 00000000..62f61835 --- /dev/null +++ b/category/modules/index.html @@ -0,0 +1,13 @@ + + + + + +Modules | CML + + + + + + + \ No newline at end of file diff --git a/category/multi-era/index.html b/category/multi-era/index.html new file mode 100644 index 00000000..012ac4ea --- /dev/null +++ b/category/multi-era/index.html @@ -0,0 +1,13 @@ + + + + + +Multi-Era | CML + + + + + + + \ No newline at end of file diff --git a/crate_architecture/index.html b/crate_architecture/index.html new file mode 100644 index 00000000..01d296f3 --- /dev/null +++ b/crate_architecture/index.html @@ -0,0 +1,33 @@ + + + + + +Crate Architecture | CML + + + + +
Skip to main content

Crate Architecture

+
    +
  • +

    Core - Core types common throughout all CML crates.

    +
  • +
  • +

    Chain - Current era on-chain types, plus utility functionality and builders for creating these types. This is likely the crate most users will want to use.

    +
  • +
  • +

    Crypto - Crypto primitives used throughout CML. Keys, signatures, etc.

    +
  • +
  • +

    CIP25 - Library for working with CIP25 NFT metadata.

    +
  • +
  • +

    CIP36 - Library for working with CIP36 (catalyst) registration types.

    +
  • +
  • +

    Multi-Era - On-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc) plus era-agnostic wrappers around this for parsing historical blockchain data.

    +
  • +
+ + \ No newline at end of file diff --git a/getting_started/index.html b/getting_started/index.html new file mode 100644 index 00000000..958f6ad0 --- /dev/null +++ b/getting_started/index.html @@ -0,0 +1,21 @@ + + + + + +Installation & Getting Started | CML + + + + +
Skip to main content

Installation & Getting Started

+

Install

+
todo
+

Run Example

+
todo
+

Build

+
todo
+

Test

+
nvm i && npm i && npm run rust:test
+ + \ No newline at end of file diff --git a/icons/danger-icon.svg b/icons/danger-icon.svg new file mode 100644 index 00000000..c8d879dc --- /dev/null +++ b/icons/danger-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/icons/info-icon.svg b/icons/info-icon.svg new file mode 100644 index 00000000..42b09ff3 --- /dev/null +++ b/icons/info-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/favicon.svg b/img/favicon.svg new file mode 100644 index 00000000..24432265 --- /dev/null +++ b/img/favicon.svg @@ -0,0 +1,4973 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + 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 +mk+0PFtXW5p5StJjM+e6vJ+bnz5aPFla1kybElnz9ruf5rc0z9ahytPTuot0efLOIFraRo111917 +Id5d6WmVbn97Z/dea3ff+zNdJTROrDJ95R4r70h31faUK/OkV5frMjreddZF1COSy/RZtT8vvdc+ +o63renOP6pkkUjU92fYYraYuYurRPaOIZHd5uvmju4M3iXuXrpl+kNDsHp28wSvarr1nPfp7yjZK +uZlbNjpaiGz+fqVl2riENlaS7r58yoh2mJg23KPZ5prv40Ik6+kV7p50zZ6HjIZPWxdWZvq5ZfSj +RtzU55pxzVfStTGt0HqWsGxZurfrc4RndHe6pUVHf4u6V2jHv831S43wLDcL7Woxc7XMZwvpLpfu +9KQhvuiUhIjfMksfmq3y8qAh/mS5e//48Ia6u4q7eXgqEXPxufpr4pqiLh7xN0tKI2ad0aITfVdF +3MvvIcVU6+HiTwcVN1+4hkWnFikpcY2r54lGqVdcm+pUYt5ycY+oiEleJy4m2XkioqIm7t1+MrG+ +69wl68nDVbtbXEy8SlzLpPNENOIqbl7zVOLZ6dwj79FDH1VtuZV7iHvq0BbTKtdXe+4wg5N5KTdJ +fwjxuUdHRUQwk05xCfHOJZqp2RF9+axcROOxw8MyZW7u2iHDs0VdPDda5iLVKaN1M0/nhJa+Szpl +VL2LdO1MjxnznotYetJoPiTrou0OGe+oag8SIhGqjxLiVZ2XcK9OGtGKnLk2rCt15eoXDx5eVX2Y +Rl3cJfM5Ytnm60cPkzLJ8A7Jzz2jWuGPBwsRj2S5tEqnDreWKLecewy9xr1TxF+mcdHWR3dfSoWL +i3dJuFlVx0e0RNIyMsRSdFU+0al4dC3c29JTa11DXP/ulOalT7i3v0rjqs+OLpIRrm3iqeMenhZu +Jf3UYioSmqy/raOfO+7hwTrcO2jGKA/1tnZv8YfO7Ob+t87aY8c0iZlZSL/v0Bmsk0eb0TX63Zbe +jx00SpOZeqgM1iGT+nhuf2dOc1l4FI1v6VuHnEaN7JAae17+dq0+eLSbpHXtLVGa09pZNZmVe7vk +Oj8a9R07U3U7vGNfvUZz0W8rtTuTuWn2KTNYZ5EOnTmT+Tfu+pgZK7KurV7eWcPzWTO5N/Rp5Skz +V0ZFt3mIp+xlLtdeW0zaQ7d1e7bM5q7PtixNd4+WSU1Ssr08H9I0i3esjO3m7h1VquND63r3YJlr +Lm0trp5avXYrf1BT86wZtNaS7WYaK6daiWxL07xcZ82U2TnN0pNm7P9ure4Ll06dyTzS15bZt/Xo +mbUZ2pZQ92Qa0o+e+a3Wkab57BnLoz1eD52pxfPKPO0xmtvt1q35flxpsvLklW/vdmcLy87P3FXv +Zvo8RmPFutoWKR5fGszzWTQ+PHaHdyqNGY9qpy4N+k6hsbzm2i4unrU0ds9TaG5pV2dVZ3Scxvuj +u6UtO+/PoUnVW9/uHZ2sNEZb55hrOk9L+qE1ZkW3tmib55bGahTv3Lmq52swcc98zr5b/dJRp1r9 +kKbt7GnfVqoZ05eFtrotvM9Vmj3qyTRptrrbdBqr2mNriqxMb8lq5yiR6kyv5zpINnVTxFs7za92 +6gYPOo1W6sk1q4lVt4p15yrpdmxNomLeVs96ztJYKZ1dg77Rt4lnR/VG1T+7JTU8t36t9GST6UOV +RvPs3E1t0dVt6u2xSpOXeujGXJVpe2R68nx7Nk1R3Wp3aZynx9b4molGmHhzrHziYZpv+qysY2Rj +3rWjpbn9HrtxodLZXnlP/qAa4+2irRHm+SX9ztHYJzVbTPP7x84gKqZttdZOZhpc+1kzt6WmZZtr +54ZPg6p3fKaMi7XWtPNNoy49eEapTm1m4nGarVVNY0en1NyI8LXr+jlNc+o9XpPWvxYT6ZjerGfX +rDfJbHWvhzKN6d1JNZpXtq3rdzbT3BUdS2N0rZod7o/RvC69x2n295ZtefU40/yZ55oBxiytHCpI +eGB4qOAAChhAgGAcBwQmgoMECw8VDMBEYOYAgrqfPstqf3Z6bk/XDJ30f382pEOleg70jgrR2I5J +Z99n9a5GPjznqSS1TKSj+q6Leo5YdjTxUu3sHMuUFu0QS9MIzRQN7am7B1FLtc5Olj6U9k2zc5l6 +arTEvNMRLdFeq3oOt2zPFLFszexUpMfS9rTUOrNbFh7LOjyY3z17fe3QdrP9IUWzvW56rEW3pSLb +0y7N0vY12levJ3ERxF81U7spFaaa7UR3p86/q/PZdm6vS1/eZuqvWZ6qWR5iWeI5U135c2Ll4a4i +HimqN9Gc1/Ul4inlEX2kVFt8qeq59FmRGp5CgHBOO9MhrRZdZplN10ybnU9/tsgyzfCQfG42xDtp +ZZhomGv2Vl7SeanOl/f5dtmlz5dJls9zOm902etE65XZ0Ie+l51uUSp67a40JuYRnQ== + + + flb6ThMhHk8uH0of5Uk0pqrJ5/XxjSB5vR4j6kFMLD2bpRSOdlSR1KsHz6u1Wnb0vHauyvtMwYeo +3Wp/8up2X+XXiO6HaEetXIes7H5VSGZ3p6ofHroogMe6vV6YdmNlsM8qhK6OqvRKTzu/yvXl7nHW +1Vnd2o1VvjpdkWIdr/SUKwPktEgBCBSAQLfHl4F9Dn0SsVO6dHbsUKuOrXzsKx6lrHM7PKe0SEal +ZHuv9s7dfu9g4hLiOc3TH1U6l+s7p5V1rFr7PJm27bks+3EetUN4V+Q7iaZVv+MlH/p5zdTUyP7X +rnXwh0XH7ryV9GjjV5+/nWTpOlTeyzMkqzGX0GXk3LxyXm/toC35u2mVT1rSHyUeNJKiWRbealfd +YdYmln/KJ5XLVHp6Ip+Unq/KtFnd08ekaeuzz+DS7BzZNqoVqTpd6u/VlwfTiXeq7mBqkl6PpanV +OaadylPK88z6/ex1bTqW6VW+05ts+yM81qvdwauZqo7SaW2q1m/t7u6l+Vcd0vkK6VWl+XKtbh6X +9mDZ9NTyi3iX99lWP3jOp/mUzvLOiZiW99TFq7fyh9bTn/cMk5DKjFLR183cZ65XMdO2l8fSt6pX ++T1/j5w/XcVzvtBm0lrf7r6VioqVqWk6JCfpnVPZh8b7pjX6jAxxfbfeT5W3qvRZnUvNdyvVPWZl +m1T3qrLzqrS7VWXR6343nayy0V7dzb8lUx9ZGdYdrbIv7e5UdbLeqRLRdGr4WheqU03pINSuE5Xw +7tXFIrwRHWWdHZLRP76zUNVKu4k/3Tykzq0ju/06S9vppp7uiSc1FhEdvtb4tY9nxKtaq5IUr5s/ +T9/QlFd0HRrWmW46dQnxqr7dK7zPdrReQ1Ub3u9U9+419xiVvU7prsK1k553ch1a964nOkZFdJh3 +cuWx6+46Ge2V2qvozl4Zs/TUVd0yK/deq62qOt2L56q6Qr114c1cdF7lEyYeumiVSi9X736VeNal +VZaEvtvqqu5LtYtG4VV1w9saX89jtnlJt2ZaNwcG6UqN8LTICJ/3rSLVHlzXfQ+/6v3rDr8+lb0s +sdS+VxFParfoq1/i8apOqc/K1o623dBoaUdKb9KtZt17B9NbeKZF5zzp6ik0Fdkd7vk5rarp1EtN +vNVrLkS8bdJJtV3P3hRss2+qvWeVq1Cv8nd+H54M73hNdFCdeCW0SyferPCY+vofrlqN15uobHXq +nQpJ30mqrGfpfdW30rxS+VfOtC+6nFROc6HzjPfcSqrv3e+qLhXxji4spNu9qvLuLK2y2qq8l7dO +UunTcu9GVVg2NPMS3v3Sw9/vPZl+prKpD/de+jxGZduV3pdKdW/xXGXfqZpVbTx0qWh3u7aHSXiF +qUZnZXROLUvVu9dlrNex9M4VsYyz0udblEpLh3dXOzBJ+zppWWgiS720XS/m1YFx2uFmfUuthA5M +7qZW5e909/o6Vsil95qnNCzfGppl2eWzU5btec9uNDqL9bxb2rGqjD47ZdlhbRlmaeUhLUu8z165 +dyjrV2S0J5ZRSe1XiHX3W/Hs1WLh1drR66NXPlvXnf51de5KbdF0t1Krfa/+VN/oynu0KrVDuqNV +/Xi7rNC0VvfVpbNVGNyC8cCChgeGhgsaHPDgAgKQ0y8uHRO+9GdJR8n27ntOX9J70/KsL1veHvO/ +aP1S3ilj+nzOdaZapEab9Ova08O91eO5aRru1S7VCm/xVm1cO/l8MdW5mmfUNS7R4snFpfydXSU7 +0SISrpPyTkh1hKt2MssbPQ+Z93dHg0SqWfbLIz2/enjKjMj2KO333Sf9WHlv9S9Ls/Sem5LzrHZv +0WjU0Ih+jPVyJp6OZb9MKf08qZLz/Bedsltn3ir5jp0u3CQ8VDxzWVetPiKlXdprz9mBMRF9s/B3 +9tHaSkQkPQ7MrRnW3nQj3XOJatCWvofI1IEx41R67hEdmE37VdU2yWfLgSkHP2SL6MDYj78hY5ZW +iDE1sk+TUCvVbInUkujH8L6/yqi3atGJZtNptlimalfNO3llJN+uRjqmM8W9NOkXtbR8h69M3LLh +0URTtFu3sz1FVDRnr7Q6dmXumxpulrEoferKWBKt78fT3y2qGdHaWWGi9XxQke6MRr5T+Y5ZmbPD +NFxcMrM79P3yZr3VuJr5k3vvfW51X7/uhHj06gm/qGqnFOmpaJR339ldb/dYlVEypeIebh5LNOnX +kW3VR/lDRwF3iS63qCAQgCUjMiRMNXa4v9SiPX+pg8pLu2PmCGwzcEA4p3b8m+vc1UmmTyKyU5PR +Qjy/7g8+j1Wntyw6RQbTaqb30h2kvXGtV6s7tplV6en8czI3LCu9/vCcEBfT+vv6lE3ZWdZjxrMp +6e24B72oVdYffo8ZwpEhIhV9EfF0bbei4V7RcFfxbPEQFY30DBdTUbdwkW6nFk9bVLiUpwcXbdG2 +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 +dfHXnd52JcN1+MWdBnOZDXIhUzy565Z9/5Tif5aiNf3RkqSeH5TMRe8GO/vjPOSoiyLLaR717FPU +LkdZDNlNg7sNF0EPWobUsxY70VrC5BbGk5/stYpvx4j4kbu2ww4fvR8VSex3RWh36W0SnfZXEw65 +nkVvU9xNsQ69UYuy5tYkv1Gvq4ti3HF0+PWmiIdeq3F+VAzBZ9KKklTzN8fZ6/IQBJ2kqkX/UTyx +J0puh8wy6215UhzFLqqe5Y/bzZDUmqxXhc3ti35L78qjput9pqahm2aHnutdS2qJatGUm7Lol3XT +pLf1VbUWQ98se3PUS5EOvTrsdDIUsampXVcx7J/l7Hn8OIbOEtWmJrT8RdBTkj+KflTUk572GNKh +15skAFYpOunL5JAxkfhekzV5kzxN0i1SSJrUadIlxm2ZJlkAMABYCklKjaiYcbFDhWkGwABSKSRN +tiwABnBDRQ4cMiN+Tefyjbt0ft93EsftW8bxGiOytu3e3nc553O+7u+cx3ebl2+e7/E+x/k9rvta +l2kcv3FbhgzP8zvO1/y9g+d13qVC2mSO7zuJ1/u+0/u+k7tO1/m+xyDtHsdvm993mpZ7fN9JWwfA +AGhSTO49XoHj+Yyd7/tO9nQtE0PPb3rfydvm+QHwIHOZzutcpkm81/vdpne8pvmct/Ma3+967287 +52s9528dt0kAMAAXLtP5vsu8ze/xAF4kTvIgX5A1ySJrAAxglKLfMk3WvEyTdE7uvZ7j9t3fOs3f +fG6PzADAAFw77qr5vbZ5Gdf3ndxrModMCEkz4wTDr0YpAAZgstu8zdu8zfO7ruuyzsv83t+7fsv4 +7tJ3W69l1Ljd1zme33eu1zYv37me17l+5/Yt3zmu7z3P830v7ziO5zheu+r7pnEdx/GdxuU7x2v8 +xuu7xvVbr+Vbv3PbtvX61m9bvvVb1+vdzuU7r+X87ve+3/Ec13MZx28bv20Zdt3fOH7v947nsn3f +9l2i79zW69u+a3q/893Ob73ueRyXdxuvb3nHdT7v+f6ucbqXdT3XZei6idvbfM3f9i7zd5/L/H3n +d53zNy73933rcp7X+I7n+S7Xem73963LNr/rtZ7r/G73uozjPK/nPM/vOi/rO8/n923LuszzOq/v +fM7ztczzdH73d8zrPM/zei73PN/zNp7Xcs/vcs/nPa/ntUzTfc/Ted7ffL7vOL/Xd5/L9q7rd6/3 +uI73/Z3zPN7fcY73uu6ydVyv+5m9r+W91/mc72tb52ta3nv85mu9z/m+v3sZ3/v+zvOc7/ubl/mc +7+W+7++473FdxnsZx3t8l/P+5mk8lnM673HbpnV+1+k773M8x+m81+kap/Gezum6rne+72+9l/OS +LtM07sr7vL7zmsd3G7/vXL7xO7/zvK5del7T+G7v+F3X9m3be3/btU7jfI3X+s7zcr3zPY3XNF7f +NY3bNd/3NB7f9t7Te93TNB7LPE3jsb3fO57jNM7nuKzTt07TeJ3fvG7ndG3LOE3jsW2XcN6maXzG +7nsar/sd7/u+7vuel/m+pmWb7/m+7vFbrnm+1ut+t0t6Lu893tu13vd3LNt9f8f2jct1r8t3L9N9 +Lt/9Hdu93PN6T/e13d+xzd+3vPNyvfM7r/N2zvN2zt8yzvN9fvP8zfd3fPM8b/M2X/O9bPe7zdP8 +bus7Tueyvu/6vud0vtN4jcv4juv7fu94LeO7je/7fdt76d75vb/jet93ud5te8fpXd932aZ7ndbl +nr5lu9ft/uZruddt3ZZt3O5zWrbvvJZ3fZdtXdd1XqZvnJZpnbb5Xs/1XL97W8512w== + + + rvP+jml81225tvs63+tdtnvexvs8z+U913Pelu2cp3VZp+/91nOd13PZ1vMaz2U8r3Faxnud5+3b +tnuZxvs673k8p+u7tus7r3s6r3G5xuv61u3czvVatvPavuv+juVa7mUeL+H2neO4TNe3LtM4jeN3 +fuO2Ldc2Tct1ztM0vt+93Pf9HdP9rdu0XPM3zcv8Te/2ruvyvuc4ztf4vfP4reP6Ttt2TZdoee9t +uub1XdZ1vef3usbputdxOb9vXs7v/M7z/O5t/cZx2dZv23XbdEm2d7yX616/7f2me/red/q+afym +8d5133Sty3dP4/J99zdf9zdO93d81/Tdy3aN0/1d8/ht43Zd4zje37GM471s4zav6ziO4zgt43x/ +x3eO13KO4zgv5zhu8ziu4/u+3/KO572M3/KO93ds5/JO63cu7/iOyzu+4zy+87Yu8ziP4zzO4zze +4zTe33G+yz2u36Wcv2U6x+u8v3G5pnP8rnM9v+U6x+1cr/Nezm19z+3almnb1nM7t/P8lu+8v+X7 +7vM7x3GdxmU8z3cZz208x3M5z3dczvE6p2lZz+U8r3lZz3MZt2t5z/Eel3M9v+U9z20br3N5z3E7 +33U5x/Mcl/Gcz3Varmm9luucp3W5pnsZ1/G61nV7z+vatmvZ1nWbt+Vbp/m6vnV6d+G5fOs1n9/4 +nct4Xd+3vtu7fN95bdMyrvd3nMt5j+t6X/N0ruv6TH73NL3L+t3zMq73dm/3NS/jOH7ruo7T9y3f +N93zvG3Luq7ruqzrOb7r+c3LuN7fcU/LOa/3d5zzep3fMr7X+Z7XuU7TtpzX+97fsaz3umzvtKzj +sm7rey7f907nd47XPC3jOW7TfY/3dxw6TFivXfa4qIwSkSFgvCDVtMoo1EISoXz+kyyf2mZm2gcC +YnY6qradmWaPZU6aJPcFmadPkvs45qUpk+OJydRjxQpSnten+a/pDZUSHlzQiHj0k5AfkmGWJy+C +Bw0eLGZmQlhBzGixQ4uZkI8vk2PKcXAYtp7nWdU6DOuvw0EO/7h9FFEt24ph1OvuZip3HElu4ygJ +mRFzvehZBbsnt83N8m/VEczaIwjDaZLff+k4DUqEI4RFgwLFeBpXyRszKkz4wGOFiQhJp3E1zVNW +Dke442CPo0Vw5LZvx82haGbayOGs3LaXZm+aI5clyXFphpvgQYMDSwxRASJ4YOIGjB0rJDJKWLEf +v1lSJNS3mEap2JUZeVSgQLB7djtOJhUyyW+qaSAIyAcCMo+irpq/m6aAPKd15cFP3jKSg6JDcQIO +R5W+m2h6zbIQvF6iRYwBaGRS6HlUlrXniZwNfp4sJ9VJttdOx+SuJ6GPymhUwvM0WKkaKhRMhk38 +XQkffICRTnmqruza5KOL9Leqln01vU107Gi+C4uAPrd5+mtrl6cMinyqflq3R1W462isqLQoMSnB +cWuOVbQc0uMqpM/qrkdsy5tnLY4hPk+CYdw0ZxBst003T5Hr/qmKdrSSk7GkViilE2hlP2n6QdOP +qspheJNjChfLhYlJv6ohO95iZVKRIrl0uk/LT2rmpfiC3Q8VMjROTET2vUdVdetQbQs3HHLDabUt +/kB8LM1ONm426IZjdx6KXUd03HXbrhxX5fpJ13HAyNAwSWkRa+FQIXEpfVhMoBQ+60jBIoQasKAF +H+DATAzGyusUPotily9J+vNYbls3bQ7Dtutcz4s/jwY91NvCYtj1ujtJphvHr+sKCmWi61DLruq6 +BLutWRaxbCyGaqf9KnrEChoeWMBo7f6oTUdwOEXqMwM7xcBOQMiQmQl5xX5eBQrJqvfopnqHpC6S +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 +ROjAcVIa2ef5v22KVMn0wnUI1iGYctUTPH7F7KpxQhAU4QZFSE1R8txDirjXfVAzptsk/94ChooR +EhvJccuoN0LG5AeJ6yXkedkzqV1NLitqVRSRn4EDINEAI4yokUICASJ4LMFDhgyrNILdeSRNTfNT +E0bsdZplmK6X4JhH13TrxA0n/j78ROEwVO24yslUkuEYVMiHDEoPLWBqqJiwgLl6YBFDhA4aqV5f +4UK1WJlU8wtq1ZCbmmIXJ8c+Re/StMlR7Tqyk9GkSI8h23HptqWZRoOhPo56OXYndHDBkMV7PnPN +cp5oVVP8XgXLK1gmsS1oXVVNi8GPd+EaXUXuS5MqmfR8a55FqpqTIxI3ZlCAAEWUgH4RDIvo2hPT +Irm+y1LdsnTT2O/r1Vb1wHPjUE3r05VH1TkcaXEkOdnaeao7/6ytqm19qr72XQUrFaLnJNfdz7LU +svj7QCo7g2D8eXlJ5qaZkyWaZR5nw4YhbqKwF3Y6nCizzP283SxVM80CArGIQCO3lcGPBubagUZG +hNdpUiIeWEQC9R7b0HcZx/scJgXAADwxZGZIyBgyMFUKAAYgk0PGRDPjlKYCIGFFiKmJqYmpiamJ +qYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmp +iamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJ +qYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmpiamJqYmp +iamJqYmpiamJqYmpiamJqYmpiamJqYmpiampqampqampqampqampqampqampqampqampqampqamp +qampqampqampqampqampqampiampqampqampqampqampqampqampqampqampqampqampqampqamp +qampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqamp +qampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqamp +qampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampwbfOyl7jgKUM +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 +aWNvZGV2YWx1aWQpIC9uYW07ICxvZjEwMCV3aHh4eXkybnVtT2N0YXZlc3R1cmJyZXN1bHQwLjA1 +YmFzZUZyZXF1ZW5jbm9TdGl0Y2hzVGlsdHVyYnVsZW5jZTFmZVRTb3VyY2VHcmFwaGljaW4yaW4y +b3BlLDFDb21wb3NpdC9EZWYgOzQ0ZnJhY3RhbE5vaXNCZXZlbFNoYWRvdzE0NC0yeXkyc3RkRGV2 +aWJsdXIxR2F1c3NpYW5CZGR5eHhvZmZzZXRPMXNwZWN1bGFyQ29uc3RhbjIoMTBFeHBvbmVzdXJm +YWNlbGlnaHRpbmctY29sb3I6d2h0eWxzcGVjT3UtenotNXh4MXl5MVBvaW50TDFTaW5nMTJrM2sz +azQxMTEyMmFyaXRobWV0bGl0Mk1lcmdlTm9kMUNvb2xCcmVlejE0LTUyKDEucmFkaXVkaWxhYWlk +TW9ycGhvbG9nYmItYmJubmJBeUNoYW5uZWxTZWxSeHgzczFubjJiM0Rpc3BsYWNlbWVudE1hcDAg +MTRtYXRyaUNvbG9yTW5uNTVsaW5lYWNhbGNNZnJvbTBiZWdyZWFkZGl0aXY1dG90b2Fsd2F5cmVz +dGFyNWRmZmlsbG5vbmNjdW11TjFhbmltLThjY2NjOGNjY2MxY2NjY2NjMTJubmIxRF8yKDE2NkVy +b2RlcjY2XzRfNzIoMTUwIDVSQUlfUGl4ZWxQbGF5MihpbmRlZmlucmVwZWF0RHNwbGkxcmVtb3Yx +IDE7MjAgMTU7MjAwIDIwMDsgMTUgMjA7MSAxIDEyN2RkMTJubmMxMTIyOzIwIDIwO2RpZmZ1c2V5 +ZWxsb3cyNTtncmVlbjtibHVlO2luZGlnbzt2aW9sZXQ7cmVkO29yYW4xOGF6aW11NmVsZXZmZURp +RDE1cmVsMTAxMIORqFK1aGYEAAAAggJCCQIGZ3AWpmnssAABEgBgGARDGBqDIAAAAAAAAAIAIaA4 +AoxBEAARIAgRIoBgjEACBeP0MCiokM8QzhrnDLmLn8ok9NTBUOLYJeMxX2eJ1LbqXisxNi+stEDe +FqSZjA02xiZDADQ4QLWxyTCeQiFf/OlgU/mVVQpuYvkaJWZKoUlTsELRnviaCY0iRZ4hJ2wgEKrG +21Zp2ETWYr8uR97Lxwp9qsgbEgEbHrnfNlWdoM0OkFN3snAjFHetWei+/avxIbipDg== + + + 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 +Nk+KJ8cvr/lSTOeuVL/d1WptOd+4fqVUV13p3JNrvjW1k1I6NfeWT023tdbOe7PF1c5r7a7VXj2v +3XhvjO3FfGarN6VbxjZbm6/F96+dOWfbcHBUbzXPS2/+m//+zZdvvXO2du7LZf16f6WWako5t1xT +W7Hemm69UT451b9pfV9vbbG+m1uNP1O9d54bzpnrfPPU+mIuU60353mjOeO960bxzDrzvO2+9Fq+ +/dtMLa6cVl1rzbzSWqmutmqLq0bt5nlbevPEeFee6eu6f+P8Toof/99L780b3erTbW9L8dW2pxZr +1HLMKc+YblzbG2sVZy1rO/+2szY551nTjzetb96yVq/Vv3Fuqbaz1uqlWWvWbrpWmquumtq3WePW +Zo3aqmWMNc1p3bZijVOLtU0t3tqtV8uZ0mrzrldbu3m9nNPXMCtXzN2rVW2jnFq6bWtfe3u1ie/W +99Z5r0b3lqe+W9+tXUzt8/oWb9ryWTWHrVap1XalfNu24eB0zW/txVabedMNB7e5fYwvrbhereFg +2HiW764z34nzxHXPmxsO2Z7Z0vv37++Z60+Nt622Tq251lVb3XBweu6rZ/1dNdfazFrjbK554te0 +Wf/mWrG93NpN40m51fSumq45582vtq931ffvbzq51fM+xbduf7V59bT3atParK+eU+d7+cavtmX9 +FeuL8ZY3rPXkb+vcGWs6042r3nhiTvVnOvXnm2/OHNeM694bz5y1hoPjFc+dtWkxv/jx/e05vnpP +y+/M9z7+q13MZ85Yb9dqk1INc823XOtv3XDI+Fazfl0bDo6+vY+1fTX6DQenp+Wa1fZqrreNr8ZY +m5dni7WZ86w0X37t9libFWtz84q1SS9vODisTZqxNjfHGq5Zo1m7Oeuatbltw8HpWq/WLt44Y503 +ztrE28Y80+1zprnh4KauG88468xzxg0Hp2e9uW450/x1y5lq+hummuq7661buzdrN2utzYvx1hrX +29V8q1ube9+t7a1NTO+2u/72W5u2cr1fm1Rr87Xd7p06X5u11nbdcNYmvdqWszY117JGLd3c041v +vPPWW96U0lfDzEDmjaB5orTljaAX6H0dy8Q1vRjHSlZ3jR1jK8P3Wot13rayKseU54yzpRrFWz+L +6/z4zrf/9uLM9b2VUmttw8GamF7quPWv4z8Y13vv73qpZqIctVSzlzYcA+5rTTnn/P+faiZbM329 +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 +9qFfHVF0lTJ4164iaePtiCL/IJghUAM= + + + diff --git a/img/output.png b/img/output.png new file mode 100644 index 00000000..33bbb0d1 Binary files /dev/null and b/img/output.png differ diff --git a/img/output2.png b/img/output2.png new file mode 100644 index 00000000..6592b162 Binary files /dev/null and b/img/output2.png differ diff --git a/img/output3.png b/img/output3.png new file mode 100644 index 00000000..3517ef57 Binary files /dev/null and b/img/output3.png differ diff --git a/img/output4.png b/img/output4.png new file mode 100644 index 00000000..fa8f95d8 Binary files /dev/null and b/img/output4.png differ diff --git a/img/output5.png b/img/output5.png new file mode 100644 index 00000000..069f1640 Binary files /dev/null and b/img/output5.png differ diff --git a/index.html b/index.html new file mode 100644 index 00000000..ca18a9c0 --- /dev/null +++ b/index.html @@ -0,0 +1,65 @@ + + + + + +Cardano Multiplatform Lib | CML + + + + +
Skip to main content

Cardano Multiplatform Lib

+

This is a library, written in Rust, that can be deployed to multiple platforms (Rust crate, JS, Typescript, WASM, etc). It handles:

+
    +
  • Serialization & deserialization of core data structures
  • +
  • Builders to streamline and verify the construction of transactions and related components
  • +
  • Useful utility functions for dApps & wallets
  • +
+
NPM packages
+ +

There is also an outdated asm.js . It is strongly discouraged from using this as it is out of date and asm.js results in incredibly slow cryptographic operations.

+
    +
  • asm.js (strongly discouraged): link
  • +
+

Note: If you are using WebPack, you must use version 5 or later for CML to work.

+
Rust crates
+

The rust crates are split up by functionality.

+ +

Most users will likely be using primarily cml-chain for general uses, cml-multi-era if they need historical (pre-babbage eras) chain-parsing and cip25 or cip36 if they need those specific metadata standards.

+
Mobile bindings
+

We recommend using Ionic + Capacitor or an equivalent setup to have the WASM bindings working in mobile

+

Pre-requisite knowledge

+

This library assumes a certain amount of knowledge about how Cardano works (to avoid re-documenting the wheel).

+

You can find the specifications of Cardano's ledger here which we suggest consulting as you use this library. Notably, the Shelley ledger formal specification covers the core concepts. Make sure to check the specs for later eras as well when needed.

+

Benefits of using this library

+

Serialization/deserialization code is automatically generated from +Cardano’s official specification, which guarantees it can easily stay up +to date! We do this using a tool managed by EMURGO & dcSpark called cddl-codegen +which can be re-used for other tasks such as automatically generate a +Rust library for Cardano metadata specifications!

+

The most important feature of this is that CML has been generated to allow all CBOR details to be preserved. +With CBOR many CBOR structures can have multiple ways to serialize to bytes from the same equivalent structure. +This causes issues especially when computing hashes and is a frequent problem with working across tools e.g. cardano-node-cli and cardano-serialization-lib encoding plutus datums differently. This makes CML much more compatible with all other libraries as it will remember all these specific CBOR encoding details. This is particularly important for use with dApps and wallets connecting to dApps.

+

It is also very easy to create scripts in Rust or WASM to share with +stake pools, or even embed inside an online tool! No more crazy +cardano-cli bash scripts!

+

Powerful and flexible enough to be used to power wallets and exchanges! +(Yes, it’s used in production!)

+

A note on code examples

+

All code examples are using the WASM (typescript/javascript) API. If you are using CML from rust you will need to change the code to rust syntax e.g. Foo.bar() to Foo::new() etc. We've tried to keep the API as consistent as possible between the different bindings but some exceptions exist. The array/map wrappers (e.g. FooList / MapFooToBar) in WASM are simply Vec<Foo> and OrderedHashMap<Foo, Bar> respectively. There will be some changes relating to reference params/moving/etc as well.

+

You can find complete examples in the /examples/ directory.

+

Documentation

+

This library generates Typescript type definitions, so it’s often easiest to see what is possible by just looking at the types! These are found in the .ts file in the npm package roots. +If you are using rust the full API will be shown in the respective crates.io pages.

+ + \ No newline at end of file diff --git a/modules/CIP25/index.html b/modules/CIP25/index.html new file mode 100644 index 00000000..6adfad97 --- /dev/null +++ b/modules/CIP25/index.html @@ -0,0 +1,67 @@ + + + + + +CIP25 | CML + + + + +
Skip to main content

CIP25

+

Context

+

CIP25 defines an NFT Metadata Standard for Native Tokens.

+

Since tokens on Cardano are a part of the UTxO ledger, the metadata isn't directly attached to a token, but instead stored in the transaction data.

+

When data is transmitted or stored in Cardano, it is often encoded as CBOR bytes to optimize space and facilitate fast processing. CBOR provides a standardized way to encode complex data structures, making it easier for different components of the Cardano ecosystem to interact and interpret the data.

+

Below is the entire metadata schema for CIP-25, which can be parsed by passing in the CBOR bytes of the entire transaction metadata +or by passing in an existing Metadata struct.

+

Parsing from CBOR bytes should be marginally faster.

+
{
"721": {
"<policy_id>": {
"<asset_name>": {
"name": <string>,

"image": <uri | array>,
"mediaType": image/<mime_sub_type>,

"description": <string | array>,

"files": [{
"name": <string>,
"mediaType": <mime_type>,
"src": <uri | array>,
<other_properties>
}],

<other properties>
}
},
"version": <version_id>
}
}
+

Code Definitions

+
    +
  • +

    CIP25Metadata struct is the top-level struct for CIP-25 metadata, and contains a key_721 field of type LabelMetadata. The key_721 field will contain either a LabelMetadataV1 or LabelMetadataV2 instance.

    +
  • +
  • +

    LabelMetadata defines an enum type that can contain either a LabelMetadataV1 or LabelMetadataV2 instance. It also provides functions for creating instances of each type.

    +
  • +
  • +

    MetadataDetails defines a struct that represents metadata details for a specific asset. It contains fields for the asset name, an image associated with the asset, a media type, a description, and details about any associated files. The new() method creates a new instance with the specified name and image, and sets the other fields to None.

    +
  • +
+

Examples

+

Create

+

The following example shows how to create and populate the CIP25 metadata schema with the available structs.

+
    let mut details = MetadataDetails::new(
String64::try_from("Metadata Name").unwrap(),
ChunkableString::from("htts://some.website.com/image.png"),
);
details.description = Some(ChunkableString::from("description of this NFT"));
details.media_type = Some(String64::try_from("image/*").unwrap());
details.files = Some(vec![
FilesDetails::new(
String64::new_str("filename1").unwrap(),
String64::new_str("filetype1").unwrap(),
ChunkableString::from("src1"),
),
FilesDetails::new(
String64::new_str("filename2").unwrap(),
String64::new_str("filetype2").unwrap(),
ChunkableString::from("src2"),
),
]);
let mut v2 = Data::new();
let mut v2_inner = BTreeMap::new();
v2_inner.insert(AssetNameV2::from(vec![0xCA, 0xFE, 0xD0, 0x0D]), details);
v2.insert(PolicyIdV2::from(vec![0xBA, 0xAD, 0xF0, 0x0D]), v2_inner);

let metadata = CIP25Metadata::new(LabelMetadata::new_label_metadata_v2(
LabelMetadataV2::new(v2),

));
println!("{metadata:?}");

+

output:

+
CIP25Metadata {
key_721: LabelMetadataV2(LabelMetadataV2 {
data: {
PolicyIdV2([186, 173, 240, 13]): {
AssetNameV2([202, 254, 208, 13]): MetadataDetails {
name: String64("Metadata Name"),
image: Single(String64("htts://some.website.com/image.png")),
media_type: Some(String64("image/*")),
description: Some(Single(String64("description of this NFT"))),
files: Some([
FilesDetails {
name: String64("filename1"),
media_type: String64("filetype1"),
src: Single(String64("src1"))
},
FilesDetails {
name: String64("filename2"),
media_type: String64("filetype2"),
src: Single(String64("src2"))
}
])
}
}
}
})
}
+

Parse CIP25Metadata

+
let bytes = "bf1902d1a36464617461a244baadf00da344cafed00da6646e616d656d4d65746164617461204e616d656566696c657382a4637372636473726331646e616d656966696c656e616d6531696d65646961547970656966696c657479706531816864736b6a66616b7381a1403864a3637372636473726332646e616d656966696c656e616d6532696d65646961547970656966696c65747970653265696d6167657821687474733a2f2f736f6d652e776562736974652e636f6d2f696d6167652e706e67696d656469615479706567696d6167652f2a6b6465736372697074696f6e776465736372697074696f6e206f662074686973204e4654a14038641832a1403864a140386481a1403864816864736b6a66616b73a1403864a14038646776657273696f6e02a1403864a14038641905398144baadf00dff";
let data = CIP25Metadata::from_bytes(hex::decode(bytes).unwrap()).unwrap();
println!("{data:?}");
+

output:

+
CIP25Metadata { 
key_721: LabelMetadataV2(
LabelMetadataV2 {
data: {
PolicyIdV2([186, 173, 240, 13]): {
AssetNameV2([202, 254, 208, 13]): MetadataDetails {
name: String64("Metadata Name"),
image: Single(String64("htts://some.website.com/image.png")),
media_type: Some(String64("image/*")),
description: Some(Single(String64("description of this NFT"))),
files: Some([
FilesDetails {
name: String64("filename1"),
media_type: String64("filetype1"),
src: Single(String64("src1"))
},
FilesDetails {
name: String64("filename2"),
media_type: String64("filetype2"),
src: Single(String64("src2"))
}
])
}
}
}
})
}

+

Parse Metadata Details

+

Fields can be extracted from the MetadataDetails struct.

+
// {
// "arweaveId": "6srpXZOTfK_62KUrJKh4VdCFG0YS271pq20OMRpE5Ts",
// "image": "ipfs://QmUWP6xGHucgBUv514gwgbt4yijg36aUQunEP61z5D8RKS",
// "name": "SpaceBud #1507",
// "traits": ["Star Suit", "Chestplate", "Belt", "Flag", "Pistol"],
// "type": "Alien",
// }

let bytes = "a569617277656176654964782b36737270585a4f54664b5f36324b55724a4b68345664434647305953323731707132304f4d52704535547365696d6167657835697066733a2f2f516d5557503678474875636742557635313467776762743479696a673336615551756e455036317a354438524b53646e616d656e53706163654275642023313530376674726169747385695374617220537569746a4368657374706c6174656442656c7464466c616766506973746f6c647479706565416c69656e";

let output = MetadataDetails::from_bytes(hex::decode(bytes).unwrap()).unwrap();
println!("{output:?}")
+

output:

+
MetadataDetails { 
name: String64("SpaceBud #1507"),
image: Single(String64("ipfs://QmUWP6xGHucgBUv514gwgbt4yijg36aUQunEP61z5D8RKS")),
media_type: None,
description: None,
files: None
}
+

Loose Parse Metadata details

+

The loose_parse() function allows parsing of certain data that is technically non-compliant with CIP25 due to minor mistakes by their creators.

+
note

This function should only to be used to parse non conformant metadata, since it will return a different struct (MiniMetadataDetails) which will just (possibly)return the name/image.

It's best to only use it as a fallback when the regular parsing fails.

+

Just name

+
// {"name":"Metaverse"}
let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a1646e616d65694d6574617665727365").unwrap()).unwrap()).unwrap();
println!("{details:?}")
+

ouput:

+
MiniMetadataDetails { 
name: Some(String64("Metaverse")),
image: None
}
+

Upercase name

+
// {
// "Date":"9 May 2021",
// "Description":"Happy Mother's Day to all the Cardano Moms!",
// "Image":"ipfs.io/ipfs/Qmah6QPKUKvp6K9XQB2SA42Q3yrffCbYBbk8EoRrB7FN2g",
// "Name":"Mother's Day 2021",
// "Ticker":"MOM21",
// "URL":"ipfs.io/ipfs/Qmah6QPKUKvp6K9XQB2SA42Q3yrffCbYBbk8EoRrB7FN2g"
// }
let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a664446174656a39204d617920323032316b4465736372697074696f6e782b4861707079204d6f7468657227732044617920746f20616c6c207468652043617264616e6f204d6f6d732165496d616765783b697066732e696f2f697066732f516d61683651504b554b7670364b39585142325341343251337972666643625942626b38456f52724237464e3267644e616d65714d6f746865722773204461792032303231665469636b6572654d4f4d32316355524c783b697066732e696f2f697066732f516d61683651504b554b7670364b39585142325341343251337972666643625942626b38456f52724237464e3267").unwrap()).unwrap()).unwrap();
let name = details.name.unwrap().0;
println!("{name:?}")
+

output:

+
"Mother's Day 2021"
+

id no name

+
// {
// "id":"00",
// "image":"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3"
// }
let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a262696462303065696d6167657835697066733a2f2f516d5366595446384234756136684664723655526452445a425a39466a43514e556444634c723266375038786e33").unwrap()).unwrap()).unwrap();
let name = details.name.unwrap().0;
println!("{name:?}")
+

output:

+
"00"
+

Image

+
// {
// "image":"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3"
// }
let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode("a165696d6167657835697066733a2f2f516d5366595446384234756136684664723655526452445a425a39466a43514e556444634c723266375038786e33").unwrap()).unwrap()).unwrap();
let image = String::from(&details.image.unwrap());
println!("{image:?}");
+

output:

+
"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3"
+ + \ No newline at end of file diff --git a/modules/builders/generating_transactions/index.html b/modules/builders/generating_transactions/index.html new file mode 100644 index 00000000..2f69562e --- /dev/null +++ b/modules/builders/generating_transactions/index.html @@ -0,0 +1,19 @@ + + + + + +generating_transactions | CML + + + + +
Skip to main content

generating_transactions

Example code

+

The example below builds a transaction with all 2 of the 3 input types: key and bootstrap. +Multisig (script) inputs are essentially identical to key inputs, but using the scripthash instead of the keyhash, however they are not supported for implicit fee calculation yet. +Fees are automatically calculated and sent to a change address in the example.

+
// instantiate the tx builder with the Cardano protocol parameters - these may change later on
const txBuilder = makeTxBuilder();
const testnetId = 0;
// add a keyhash input - for ADA held in a Shelley-era normal address (Base, Enterprise, Pointer)
const prvKey = CML.PrivateKey.from_bech32("ed25519e_sk16rl5fqqf4mg27syjzjrq8h3vq44jnnv52mvyzdttldszjj7a64xtmjwgjtfy25lu0xmv40306lj9pcqpa6slry9eh3mtlqvfjz93vuq0grl80");
const inputAddr = CML.EnterpriseAddress.new(testnetId, CML.StakeCredential.new_key(prvKey.to_public().hash())).to_address();
txBuilder.add_input(CML.SingleInputBuilder.new(
CML.TransactionInput.new(
CML.TransactionHash.from_hex("8561258e210352fba2ac0488afed67b3427a27ccf1d41ec030c98a8199bc22ec"), // tx hash
0, // index
),
CML.TransactionOutput.new(
inputAddr,
CML.Value.from_coin(BigInt(6000000)),
)
);

// base address
const outputAddress = CML.Address.from_bech32("addr_test1qpu5vlrf4xkxv2qpwngf6cjhtw542ayty80v8dyr49rf5ewvxwdrt70qlcpeeagscasafhffqsxy36t90ldv06wqrk2qum8x5w");
// pointer address
const changeAddress = CML.Address.from_bech32("addr_test1gz2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzerspqgpsqe70et");

// add output to the tx
txBuilder.add_output(
CML.TransactionOutputBuilder()
.with_address(outputAddress)
.next()
.with_value(CML.Value.from_coin(BigInt(1000000)))
.build()
);

// calculate the min fee required and send any change to an address
// this moves onto the next step of building the transaction: providing witnesses
const signedTxBuilder = tx_builder.build(
changeAddress,
CML.ChangeSelectionAlgo.Default
);

// sign with the key that owns the input used
signedTxBuilder.add_vkey(CML.make_vkey_witness(txHash, prvKey));

const tx = signedTxBuilder.build_checked();
// ready to submit, can be converted to CBOR via tx.to_cbor_bytes() or to_cbor_hex() for hex
+

A note on fees

+

Fees in Cardano are based directly on the size of the final encoded transaction. It is important to note that a transaction created by this library potentially can vary in size compared to one built with other tools. This is because transactions, as well as other Cardano structures, are encoded using CBOR a binary JSON-like encoding. Due to arrays and maps allowing both definite or indefinite length encoding in the encoded transaction created by the library, the size can vary. This is because definite encoding consists of a tag containing the size of the array/map which can be 1 or more bytes long depending on the number of elements the size of the encoded structure, while indefinite length encoding consists of a 1 byte starting tag and after all elements are listed, a 1 byte ending tag. These variances should should only be a couple bytes and cardano-multiplatform-lib uses definite encoding by default which is the same length or smaller for any reasonable sized transaction.

+ + \ No newline at end of file diff --git a/modules/builders/index.html b/modules/builders/index.html new file mode 100644 index 00000000..50bb53b7 --- /dev/null +++ b/modules/builders/index.html @@ -0,0 +1,33 @@ + + + + + +TransactionBuilder | CML + + + + +
Skip to main content

TransactionBuilder

+

In order to simplify transaction creation, we provide a TransactionBuilder struct that manages witnesses, fee calculation, change addresses and such. Assume we have instantiated an instance under the variable builder for this explanation. The TransactionBuilder requires several protocol parameters governing Cardano to be created which is shown in the following section. These are specified initially in the genesis file for Cardano nodes.

+

The minimum required for a valid transaction is to add inputs, outputs, and either set the fee explicitly with builder.set_fee(fee), or calculate it implicitly using builder.add_change_if_needed(address). +Optionally a transaction can also have certificates, reward withdrawals, metadata, and minting added to it. +Any change made to the builder can impact the size and thus the fee so the fee should be the last thing set. +If implicitly setting the fee any extra ADA (inputs + withdrawals - outputs + refund - deposit - min fee) is sent to the provided change address. +Fees must be sufficient, i.e. inputs + withdrawals + refund >= outputs + deposit + fee which must be manually ensured if you explicitly set the fee. Any extra fee is not necessary and the extra ADA beyond that will be burned. +Once the transaction is ready, const body = builder.build() can be called to return a ready TransactionBody.

+

Withdrawals are ADA withdrawn as part of the rewards generated by staking and deposits are refundable ADA locked while resources such as stake certificates or pool registrations exist on the blockchain. They are returned as refunds when these resources are deregistered/retired.

+

To get to a transaction ready to post on the blockchain, we must create a Transaction from that, which consists of the TransactionBody, a matching TransactionWitnessSet and optionally an AuxiliaryData. +The witnesses and optional metadata must match those provided to the builder. The witnesses must sign the hash of the transaction body returned by hash_transaction(body). In addition to the witnesses for inputs, withdrawals and some certificates require witnesses as well. For example, staking address registration does not require a witness while stake address de-registration requires one. For any questions or doubts about the rules governing fees, deposits, rewards, certificates or which witness types are required refer to the specs for the relevant era, specifically the Shelley design specification for general design for non-governance certificates. Refer to the Conway specs for those. The formal specification could be useful for specific details as well. The design spec contains details about which certificates require which type of witnesses in the Certificates and Registrations section.

+

TransactionBuilderConfig

+

To correctly make transactions the builder must know some on-chain parameters such as the current fee costs, key deposits, etc. These can all potentially change, even if some have largely been static for large periods of time. We pass these into the builder via the TransactionBuilderConfigBuilder. For test things out hard-coding them might suffice, but these parameters should ideally be fetched from the current blockchain head or your transactions could fail to be accepted by the network or will end up paying higher fees. The cost models parameter is optional if you are not building a transaction that utilizes Plutus smart contracts.

+

Code examples for the builders will assume you have a make_tx_builder() function that creates a TransactionBuilder with the appropriate config.

+

Blockfrost

+

One way of getting this information is via the epochs/latest/parameters endpoint of blockfrost. This can be automated from rust using the cml-blockfrost crate's make_tx_builder_cfg(). Blockfrost is by no means necessary but it can be convenient. It is possible to get this information by other means as well e.g. having a synced cardano node.

+

Using cml-blockfrost (rust):

+
let cfg = cml_blockfrost::make_tx_builder_cfg(&api).await.unwrap();
let mut tx_builder = TransactionBuilder::new(cfg);
+

This could also be done manually similar to below (or reference cml-blockfrost's code)

+

Manually using WASM:

+
let params = await blockfrost.epochsLatestParameters();

// cost order is based on lex ordering of keys
let costModels = CML.CostModels.new();
let v1Costs = params.cost_models['PlutusV1'];
if (v1Costs != null) {
let v1CMLCosts = CML.IntList.new();
for (key in Object.keys(v1Costs).toSorted()) {
v1CMLCosts.add(CML.Int.new(v1Costs[key]));
}
costModels.set_plutus_v1(v1CMLCosts);
}
// cost order is based on lex ordering of keys
let v2Costs = params.cost_models['PlutusV2'];
if (v2Costs != null) {
let v2CMLCosts = CML.IntList.new();
for (key in Object.keys(v2Costs).toSorted()) {
v2CMLCosts.add(CML.Int.new(v2Costs[key]));
}
costModels.set_plutus_v2(v2CMLCosts);
}
// note: as of writing this the sancho testnet format is different for v3
// compared to v1/v2. this may remain true once mainnet switches over so
// please inspect the object you are getting for cost models from blockfrost

let configBuilder = CML.TransactionBuilderConfigBuilder.new()
.fee_algo(CML.LinearFee.new(params.min_fee_a, params.min_fee_b))
.coins_per_utxo_byte(BigNum(params.coins_per_utxo_size))
.pool_deposit(BigNum(params.pool_deposit))
.key_deposit(BigNum(params.key_deposit))
.max_value_size(Number(params.max_val_size))
.max_tx_size(params.max_tx_size)
.ex_unit_prices(CML.ExUnitPrices.new(
CML.SubCoin.from_base10_f32(params.price_mem),
CML.SubCoin.from_base10_f32(params.price_step)
))
.cost_models(costModels)
.collateral_percentage(params.collateral_percent)
max_collateral_inputs(params.max_collateral_inputs);
let mut txBuilder = CML.TransactionBuilder.new(configBuilder.build());
+ + \ No newline at end of file diff --git a/modules/cbor/index.html b/modules/cbor/index.html new file mode 100644 index 00000000..9a6f53cc --- /dev/null +++ b/modules/cbor/index.html @@ -0,0 +1,36 @@ + + + + + +CBOR | CML + + + + +
Skip to main content

CBOR

+

Cardano on-chain types are stored using CBOR, a data format similar to JSON but with many more features and in binary.

+

Tool Interoperability

+

Due to CBOR's flexibility it is possible that one piece of CBOR can be represented in multiple ways in the binary encoding. This causes problems when using CBOR taken on-chain or from another tool and using it with another tool. Notably, one small difference in the binary encoding of CBOR could result in hashes being totally different. e.g. metadatum hashes or transaction hashes calculated in a dApp might be different than in the wallet causing the entire transaction to be rejected by the network.

+

CML solves this by supporting automatically every single possible CBOR encoding variation. On-chain types created by deserializing from CBOR bytes will remember these details and re-serializing will use them and result in the same CBOR bytes, unlike some other tools.

+

Rust

+

On-chan types in rust can (de)serialize to/from CBOR Via the Serialize/Deserialize and ToBytes/FromBytes traits located within the cml_core::serialize module.

+

Most on-chain types implement the Serialize and Deserialize traits. These traits guarantee that all CBOR encoding details are preserved upon deserialization and upon serialization it is possible to choose between canonical CBOR encoding and arbitrary encodings (the original it was decoded from).

+

Byron-era types do not implement Serialize/Deserialize and instead implement ToBytes/FromBytes. Byron on-chain types are always in canonical CBOR so this was not necessary.

+

The types in the cip25 module also do not support Serialize/Deserialize in favor of ToBytes/FromBytes. The underlying metadata on-chain does and you should use the types incml_core::metadata

+
use cml_core::serialization::{Serialize, Deserialize};
let canonical_cbor_hex = "825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01";
// these all represent the following CBOR:
// [ ; array of 2 elements (transaction input struct)
// 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ; bytes (tx hash)
// 1 ; unsigned integer (tx index)
// ]
let non_canonical_cbor = [
canonical_cbor_hex,
"825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001",
"9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff",
"9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001",
"9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001",
];
for orig_cbor_hex in non_canonical_cbor {
let tx_in = TransactionInput::from_cbor_bytes(&hex::decode(orig_cbor_hex).unwrap()).unwrap();
// serialize back to cbor bytes using the same cbor encoding details so it will match
// the format where it came from
assert_eq!(hex::encode(tx_in.to_cbor_bytes()), orig_cbor_hex);
// no matter how it was created it will represent the same data and can be encoded to
// canonical cbor bytes which will be the same as all of these are the same transaction input
assert_eq!(hex::encode(tx_in.to_canonical_cbor_bytes()), canonical_cbor_hex);
}
+

WASM

+

All on-chain types have the traits directly exposed on each struct as the methods:

+
    +
  • .to_cbor_bytes()
  • +
  • .to_canonical_cbor_bytes()
  • +
  • .from_cbor_bytes()
  • +
  • .to_cbor_hex()
  • +
  • .to_canonical_cbor_hex()
  • +
  • .from_cbor_hex()
  • +
+

The hex ones are useful for working with CIP-30 (dApp connector).

+

On post-Byron on-chain types this delegates to Serialize/Deserialize (see rust section) and preserve round-trip always. CIP25 and Byron types will always serialize to canonical CBOR. All on-chain data during the Byron era has to be canonical CBOR so this is not a big issue but is worth noting.

+
let canonicalCborHex = "825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01";
// these all represent the following CBOR:
// [ ; array of 2 elements (transaction input struct)
// 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ; bytes (tx hash)
// 1 ; unsigned integer (tx index)
// ]
let nonCanonicalCbor = [
canonicalCborHex,
"825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001",
"9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff",
"9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001",
"9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001",
];
for (let origCborHex of nonCanonicalCbor) {
let txIn = CML.TransactionInput.from_cbor_hex(orig_cbor_hex);
// serialize back to cbor bytes using the same cbor encoding details so it will match
// the format where it came from
console.assert(txIn.to_cbor_hex() == origCborHex);
// no matter how it was created it will represent the same data and can be encoded to
// canonical cbor bytes which will be the same as all of these are the same transaction input
console.assert(txIn.to_canonical_cbor_hex() == canonicalCborHex);
}
+ + \ No newline at end of file diff --git a/modules/chain/index.html b/modules/chain/index.html new file mode 100644 index 00000000..1b4f9c8a --- /dev/null +++ b/modules/chain/index.html @@ -0,0 +1,14 @@ + + + + + +Chain | CML + + + + +
Skip to main content

Chain

+

This crate contains all of the on-chain types used in the current Cardano era. All of these types can be serialized and deserialized from their on-chain CBOR encodings. Also included are some utility funtionality for working with them, as well as builders for creating them.

+ + \ No newline at end of file diff --git a/modules/cip36/index.html b/modules/cip36/index.html new file mode 100644 index 00000000..ba5bb3fb --- /dev/null +++ b/modules/cip36/index.html @@ -0,0 +1,13 @@ + + + + + +CIP36 | CML + + + + + + + \ No newline at end of file diff --git a/modules/core/index.html b/modules/core/index.html new file mode 100644 index 00000000..0d7ed1e7 --- /dev/null +++ b/modules/core/index.html @@ -0,0 +1,14 @@ + + + + + +Core | CML + + + + +
Skip to main content

Core

+

This crate is for core features and traits common to all CML crates. Most users likely won't need to directly use this module except for possibly pulling in traits used with other cml crates. If you are using CML from WASM/typescript this module will not be needed as any used types will be re-exported in the crates (e.g. cml-chain-wasm, cml-cip25-wasm, etc) that use it.

+ + \ No newline at end of file diff --git a/modules/crypto/generating_keys/index.html b/modules/crypto/generating_keys/index.html new file mode 100644 index 00000000..c29309ef --- /dev/null +++ b/modules/crypto/generating_keys/index.html @@ -0,0 +1,35 @@ + + + + + +Generating Keys and Addresses | CML + + + + +
Skip to main content

Generating Keys and Addresses

+

BIP32 Keys

+

There are two main categories of keys in this library. There are the raw PublicKey and PrivateKey which are used for cryptographically signing/verifying, and BIP32PrivateKey/BIP32PublicKey which in addition to this have the ability to derive additional keys from them following the BIP32 derivation scheme variant called BIP32-Ed25519, which will be referred to as BIP32 for brevity. We use the BIP44 spec variant for Ed25519 as well for the derivation paths using 1852 or 44 as the purpose consant and 1815 for the coin type depending on address type. See this doc for more details.

+

This is demonstrated with the below code

+
function harden(num: number): number {
return 0x80000000 + num;
}


const rootKey = CardanoWasm.BIP32PrivateKey.from_bech32("xprv17qx9vxm6060qjn5fgazfue9nwyf448w7upk60c3epln82vumg9r9kxzsud9uv5rfscxp382j2aku254zj3qfx9fx39t6hjwtmwq85uunsd8x0st3j66lzf5yn30hwq5n75zeuplepx8vxc502txx09ygjgx06n0p");
const accountKey = rootKey
.derive(harden(1852)) // purpose
.derive(harden(1815)) // coin type
.derive(harden(0)); // account #0

const utxoPubKey = accountKey
.derive(0) // external
.derive(0)
.to_public();

const stakeKey = accountKey
.derive(2) // chimeric
.derive(0)
.to_public();
+

BIP39 Entropy

+

To generate a BIP32PrivateKey from a BIP39 recovery phrase it must be first converted to entropy following the BIP39 protocol(). This library does not directly handle that, but once entropy is created it is possible to use Bip32PrivateKey.from_bip39_entropy(entropy, password). For more information see the CIP3 Cardano improvement proposal. The code below uses the bip39 npm package to generate a root BIP32PrivateKey from a BIP39 mnemonic.

+
import { mnemonicToEntropy } from 'bip39';

const entropy = mnemonicToEntropy(
[ "test", "walk", "nut", "penalty", "hip", "pave", "soap", "entry", "language", "right", "filter", "choice" ].join(' ')
);

const rootKey = CardanoWasm.Bip32PrivateKey.from_bip39_entropy(
Buffer.from(entropy, 'hex'),
Buffer.from(''),
);
+

Use in Addresses

+

Once we have reached the desired derivation path, we must convert the BIP32PrivateKey or BIP32PublicKey to a PrivateKey or PublicKey by calling .to_raw_key() on them with the exception of Byron addresses. +For example, to create an address using the utxoPubKey and stakeKey in the first example, we can do:

+
// base address with staking key
const baseAddr = CardanoWasm.BaseAddress.new(
CardanoWasm.NetworkInfo.mainnet().network_id(),
CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()),
CardanoWasm.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash()),
);

// enterprise address without staking ability, for use by exchanges/etc
const enterpriseAddr = CardanoWasm.EnterpriseAddress.new(
CardanoWasm.NetworkInfo.mainnet().network_id(),
CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash())
);

// pointer address - similar to Base address but can be shorter, see formal spec for explanation
const ptrAddr = CardanoWasm.PointerAddress.new(
CardanoWasm.NetworkInfo.mainnet().network_id(),
CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()),
CardanoWasm.Pointer.new(
100, // slot
2, // tx index in slot
0 // cert indiex in tx
)
);

// reward address - used for withdrawing accumulated staking rewards
const rewardAddr = CardanoWasm.RewardAddress.new(
CardanoWasm.NetworkInfo.mainnet().network_id(),
CardanoWasm.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash())
);

// bootstrap address - byron-era addresses with no staking rights
const byronAddr = CardanoWasm.ByronAddress.icarus_from_key(
utxoPubKey, // Ae2* style icarus address
CardanoWasm.NetworkInfo.mainnet().protocol_magic()
);
+

Note that the byron-era address can only be created in this library from icarus-style addresses that start in Ae2 and that Daedalus-style addresses starting in Dd are not directly supported.

+

These are all address variant types with information specific to its address type. There is also an Address type which represents any of those variants, which is the type use in most parts of the library. For example to create a TransactionOutput manually we would have to first convert from one of the address variants by doing:

+
const address = baseAddress.to_address();

const output = CardanoWasm.TransactionOutput(address, BigNum.from_str("365"));
+

If the address is already a Shelley address in raw bytes or a bech32 string we can create it directly via:

+
const addr = CardanoWasm.Address.from_bech32("addr1vyt3w9chzut3w9chzut3w9chzut3w9chzut3w9chzut3w9cj43ltf");

+

Other Key Types

+

Conversion between cardano-cli 128-byte XPrv keys and BIP32PrivateKey is also supported:

+
const bip32PrivateKey = CardanoWasm.BIP32PrivateKey.from_128_xprv(xprvBytes);
assert(xprvBytes == CardanoWasm.BIP32PrivateKey.to_128_xprv());
+

96-byte XPrv keys are identical to BIP32PrivateKeys byte-wise and no conversion is needed. +For more details see this document regarding legacy keys.

+

There is also LegacyDaedalusPrivateKey which is used for creating witnesses for legacy Daedalus Dd-type addresses.

+ + \ No newline at end of file diff --git a/modules/crypto/index.html b/modules/crypto/index.html new file mode 100644 index 00000000..85e6134e --- /dev/null +++ b/modules/crypto/index.html @@ -0,0 +1,43 @@ + + + + + +crypto | CML + + + + +
Skip to main content

crypto

+

AuxiliaryDataHash

+

Bip32PrivateKey

+

Bip32PublicKey

+

BlockBodyHash

+

BlockHeaderHash

+

BootstrapWitness

+

BootstrapWitnesses

+

DataHash

+

Ed25519KeyHash

+

Ed25519Signature

+

GenesisDelegateHash

+

GenesisHash

+

KESSignature

+

KESVKey

+

LegacyDaedalusPrivateKey

+

Nonce

+

PoolMetadataHash

+

PrivateKey

+

PublicKey ED25519 key used as public key

+

PublicKeys

+

ScriptDataHash

+

ScriptHash

+

TransactionHash

+

VRFCert

+

VRFKeyHash

+

VRFVKey

+

Vkey

+

Vkeys

+

Vkeywitness

+

Vkeywitnesses

+ + \ No newline at end of file diff --git a/modules/json/index.html b/modules/json/index.html new file mode 100644 index 00000000..357d0ae1 --- /dev/null +++ b/modules/json/index.html @@ -0,0 +1,29 @@ + + + + + +JSON | CML + + + + +
Skip to main content

JSON

+

General structs

+

All on-chain types have to/from JSON support. The vast majority is auto-generated but some have custom logic e.g. Url, Ipv4, BigInteger, etc.

+

WASM

+

In WASM JSON conversions are exposed by .to_json() and .from_json() methods on all supported wrappers. There is also a to_js_value().

+
let txInJson = "{\"transaction_id\":\"0fba1404ed9b82b41938ba2e8bda7bec8cce813fb7e7cd7692b43caa76fe891c\",\"index\":3}";

let txIn = CML.TransactionInput.from_json(txInJson);

console.log(`txIn JSON: ${txIn.to_json()}`);
+

Rust

+

JSON conversions are exposed in rust via the serde::Serialize and serde::Deserialize traits together with serde_json.

+

example:

+
let tx_in_json = "{\"transaction_id\":\"0fba1404ed9b82b41938ba2e8bda7bec8cce813fb7e7cd7692b43caa76fe891c\",\"index\":3}";

// from JSON using serde_json::from_str() - note the type annotations
let tx_in: TransactionInput = serde_json::from_str(tx_in_json).unwrap();

// to JSON using serde_json::to_string() - use to_string_pretty() if you want more human-readable formatting
println!("tx_in JSON: {}", serde_json::to_string(&tx_in).unwrap());
+

Metadata

+

Metadata, on top of the generic API mentioned above, has specific JSON functionality for compatability with cardano-node.

+

There are three formats on MetadataJsonSchema. NoConversions is the stricted, stricter than cardano-node and only converts when there are no implicit conversions at all. BasicConversions is the node's TxMetadataJsonNoSchema and DetailedSchema its TxMetadataJsonDetailedSchema. See MetadataJsonSchema for more info on the schema.

+
let basic_json = "{\"0x8badf00d\": \"0xdeadbeef\",\"9\": 5,\"obj\": {\"a\":[{\"5\": 2},{}]}}";
let metadatum = CML.encode_json_str_to_metadatum(basic_json, CML.MetadataJsonSchema.BasicConversions);
console.log(`detailed json: ${CML.decode_metadatum_to_json_str(metadatum, CML.MetadataJsonSchema.DetailedSchema)}`);
// OUTPUT:
// detailed json: {"map":[{"k":{"bytes":"8badf00d"},"v":{"bytes":"deadbeef"}},{"k":{"int":9},"v":{"int":5}},{"k":{"string":"obj"},"v":{"map":[{"k":{"string":"a"},"v":{"list":[{"map":[{"k":{"int":5},"v":{"int":2}}]},{"map":[]}]}}]}}]}
+

Plutus Datums

+

Plutus datums also have additional cardano-node JSON support. Remember that Plutus has no String datum so the strings there will be converted to utf8 bytes. See CardanoNodePlutusDatumSchema for more info on the schema.

+
let basic_json = "{ \"100\": [ { \"x\": \"0\", \"y\": 1 } ], \"foo\": \"0x0000baadf00d0000cafed00d0000deadbeef0000\" }";
let datum = CML.encode_json_str_to_plutus_datum(basic_json, CML.CardanoNodePlutusDatumSchema.BasicConversions);
console.log(`detailed json: ${CML.decode_plutus_datum_to_json_str(datum, CML.CardanoNodePlutusDatumSchema.DetailedSchema,
)}`);
// OUTPUT:
// detailed json: {"map":[{"k":{"int":100},"v":{"list":[{"map":[{"k":{"bytes":"78"},"v":{"bytes":"30"}},{"k":{"bytes":"79"},"v":{"int":1}}]}]}},{"k":{"bytes":"666f6f"},"v":{"bytes":"0000baadf00d0000cafed00d0000deadbeef0000"}}]}
+ + \ No newline at end of file diff --git a/modules/metadata/index.html b/modules/metadata/index.html new file mode 100644 index 00000000..45c1dcd6 --- /dev/null +++ b/modules/metadata/index.html @@ -0,0 +1,163 @@ + + + + + +Metadata | CML + + + + +
Skip to main content

Metadata

+

Transaction Metadata format

+

Transaction after the Shelley hardfork can contain arbitrary transaction meta (note: this is NOT the same as pool metadata)

+

Transaction metadata takes the form of a map of metadatums, which are recursive JSON-like structures.

+

It is defined in CDDL, a schema grammar for representing CBOR binary encoding as:

+
transaction_metadatum =
{ * transaction_metadatum => transaction_metadatum }
/ [ * transaction_metadatum ]
/ int
/ bytes .size (0..64)
/ text .size (0..64)

transaction_metadatum_label = uint

transaction_metadata =
{ * transaction_metadatum_label => transaction_metadatum }
+

For each use we use a metadatum label specific to our use into the TransactionMetadatum map. If we had a JSON object such as

+
{
"receiver_id": "SJKdj34k3jjKFDKfjFUDfdjkfd",
"sender_id": "jkfdsufjdk34h3Sdfjdhfduf873",
"comment": "happy birthday",
"tags": [0, 264, -1024, 32]
}
+

There are 4 ways we can achieve this with different trade-offs:

+
    +
  1. Directly use: using the Metadata-related structures used in the library
  2. +
  3. JSON conversion: conversion to/from JSON using our utility functions
  4. +
  5. CDDL subset: writing a CDDL spec of this structure that is representable by that recursive metadatum CDDL
  6. +
  7. Raw bytes: encoding raw-bytes using our utility functions.
  8. +
+

Each section will give examples of how to encode a similar structure. Understanding CDDL is only necessary for the last 2 options, but it is fairly simple to understand.

+

If your metadata schema is fixed and will be used frequently you should consider the CDDL spec option. +If your schema is not often used or used from many languages, the JSON option can be good as it is low set-up and fairly tech agnostic. +If your schema is very dynamic or non-existent, the direct use or JSON options are likely best. +The raw bytes option is only recommended if your data does not conform to the metadata format.

+

Metadata limitations

+

These limitations are mentioned in the CDDL definition, but are worth also mentioning in prose:

+
    +
  • Strings must be at most 64 bytes when UTF-8 encoded.
  • +
  • Bytestrings are hex-encoded, with a maximum length of 64 bytes.
  • +
+

Direct use

+

Upsides:

+
    +
  • Flexible
  • +
  • Readable by other methods
  • +
+

Downsides:

+
    +
  • Can be quite tedious to write
  • +
  • Structural validation must be done by hand (partially)
  • +
+

As the metadatum structure is fairly expressive, we can directly use it using the structs in the metadata module of this library. These directly represent the types given in the CDDL. Namely:

+
    +
  • TransactionMetadatum - Can represent one of those 5 variant types.
  • +
  • MetadataMap - The map variant that maps from metadatums to other metadatums. This is unordered and indexed by metadatums. This is like an object in JSON.
  • +
  • MetadataList - An ordered list indexed starting at 0. This is like an array in JSON.
  • +
+

The variants for numbers, bytes and text are not specific to metadata and are directly used with the general Int type representing a signed or unsigned number, byte arrays accepting byte arrays/Buffer, and strings being JS strings.

+

We could construct the JSON example above with the following code:

+
const map = CardanoWasm.MetadataMap.new();
map.insert(
CardanoWasm.TransactionMetadatum.new_text("receiver_id"),
CardanoWasm.TransactionMetadatum.new_text("SJKdj34k3jjKFDKfjFUDfdjkfd"),
);
map.insert(
CardanoWasm.TransactionMetadatum.new_text("sender_id"),
CardanoWasm.TransactionMetadatum.new_text("jkfdsufjdk34h3Sdfjdhfduf873"),
);
map.insert(
CardanoWasm.TransactionMetadatum.new_text("comment"),
CardanoWasm.TransactionMetadatum.new_text("happy birthday"),
);
const tags = CardanoWasm.MetadataList.new();
tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str("0"))));
tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str("264"))));
tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new_negative(CardanoWasm.BigNum.from_str("1024"))));
tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str("32"))));
map.insert(
CardanoWasm.TransactionMetadatum.new_text("tags"),
CardanoWasm.TransactionMetadatum.new_list(tags),
);
const metadatum = CardanoWasm.TransactionMetadatum.new_map(map);
+

We could then parse the information back as such:

+
try {
const map = metadatum.as_map();
const receiver = map.get(CardanoWasm.TransactionMetadatum.new_text("receiver_id"));
const sender = map.get(CardanoWasm.TransactionMetadatum.new_text("sender_id"));
const comment = map.get(CardanoWasm.TransactionMetadatum.new_text("comment"));
const tags = map.get(CardanoWasm.TransactionMetadatum.new_text("tags"));
} catch (e) {
// structure did not match
}
+

For decoding in a more exploratory manner we can check the types first as such:

+
function parseMetadata(metadata) {
// we must check the type first to know how to handle it
switch (metadata.kind()) {
case CardanoWasm.TransactionMetadatumKind.MetadataMap:
const mapRet = new Map();
const map = metadata.as_map();
const keys = maps.keys();
for (var i = 0; i < keys.len(); i += 1) {
const key = keys.get(i);
const value = parseMetadata(map.get(key);
mapRet.set(key, value);
}
return mapRet;
case CardanoWasm.TransactionMetadatumKind.MetadataList:
let arrRet = [];
const arr = metadata.as_list();
for (var i = 0; i < arr.len(); i += 1) {
const elem = parseMetadata(arr.get(i));
arrRet.push(elem);
}
return arrRet;
case CardanoWasm.TransactionMetadatumKind.Int:
const x = metadata.as_int();
// If the integer is too big as_i32() returns undefined
// to handle larger numbers we need to use x.as_positive() / x.as_negative() and
// convert from BigNums after checking x.is_positive() first
return x.as_i32();
case CardanoWasm.TransactionMetadatumKind.Bytes:
return Buffer.from(metadata.as_bytes());
case CardanoWasm.TransactionMetadatumKind.Text:
return metadata.as_text();
}
}
+

which recursively parses the TransactionMetadatum struct and transforms it into a JS Map / JS object structure by manually checking the types.

+

JSON conversion

+

Upsides:

+
    +
  • Flexible
  • +
  • Readable by other methods
  • +
  • Lowest set-up work involved
  • +
+

Downsides:

+
    +
  • Does not support negative integers between -2^64 + 1 and -2^63 (serde_json library restriction)
  • +
  • Structural validation must be done by hand
  • +
  • Can use more space as string keyed maps are likely to be used more than arrays would be in the CDDL solutions
  • +
+
const obj = {
receiver_id: "SJKdj34k3jjKFDKfjFUDfdjkfd",
sender_id: "jkfdsufjdk34h3Sdfjdhfduf873",
comment: "happy birthday",
tags: [0, 264, -1024, 32]
};
const metadata = CardanoWasm.encode_json_str_to_metadatum(JSON.stringify(obj), CardanoWasm.MetadataJsonSchema.NoConversions);
const metadataString = CardanoWasm.decode_metadatum_to_json_str(metadata, CardanoWasm.MetadataJsonSchema.NoConversions);
+

To support an extended set of metadata we also support 3 additional modes for JSON conversion following IOHK's cardano-node JSON schemas.

+

The three modes are:

+
    +
  • NoConversions - Faithfully converts between the minimal shared feature set between JSON and Metadata
  • +
  • BasicConversions - Adds additional support for byte(as hex strings)/integers (as strings) keys / byte (as hex strings) values.
  • +
  • DetailedSchema - Can convert almost all metadata into a specific JSON schema but is very verbose on the JSON side.
  • +
+

Details on the formats can be found in our library's metadata module or in the cardano-node file linked above. DetailedSchema is likely most useful if you need to parse any possible kind of metadata into JSON specifically, possibly to display or for debugging. +For most reasonable schemas NoConversions should suffice, or BasicConversions if byte/string keys and byte values are needed. +If you are in charge of your own schema and you do not need arbitrary keys, it is recommended not to use DetailedSchema as it is significantly more complicated to use.

+

The additions of BasicConversions are demonstrated below

+
{
"0x8badf00d": "0xdeadbeef",
"9": 5,
"obj": {
"a":[
{
"5": 2
},
{
}
]
}
}
+

which creates a map with 3 elements:

+
    +
  • 4 byte bytestring (0x8badf00d) => 4 byte bytestring (0xdeadbeef)
  • +
  • int (9) => int (5)
  • +
  • string ("obj") => object (string ("a") => list [ object (int (5) => int (2)), object (empty) ])
  • +
+

All bytestrings must be prefixed with "0x" or they will be treated as regular strings. +All strings that parse as an integer such as "125" will be treated as a metadata integer.

+

The DetailedSchema is here:

+
{"map":[
{
"k":{"bytes":"8badf00d"},
"v":{"bytes":"deadbeef"}
},
{
"k":{"int":9},
"v":{"int":5}
},
{
"k":{"string":"obj"},
"v":{"map":[
{
"k":{"string":"a"},
"v":{"list":[
{"map":[
{
"k":{"int":5},
"v":{"int":2}
}
]},
{"map":[
]}
]}
}
]}
}
]}
+

All values are represented as an object with 1 field with the key tagging the type and the value being the value itself. +This is the exact same metadata as the BasicConversions example which should illustrate that it is much more verbose to use this format, +but it can represent every kind of metadata possible, including non-string/byte/int keys. +Do note that byte strings do not start with "0x", unlike with BasicConversions.

+

This additional freedom in keys can be seen here:

+
{"map":[
{
"k":{"list":[
{"map": [
{
"k": {"int": 5},
"v": {"int": 7}
},
{
"k": {"string": "hello"},
"v": {"string": "world"}
}
]},
{"bytes": "ff00ff00"}
]},
"v":{"int":5}
}
]}
+

has a 1-element map with a value of just 5, but with a very complicated key consisting of a list with 2 elements:

+
    +
  • a 2-element map (5 => 7, "hello" => "world")
  • +
  • a bytestring (0xFF00FF00)
  • +
+

Most reasonable metadata formats, however, likely do not use map/key/compound keys and thus this is more of a fringe use or when all possible metadata must be examined from JSON (almost) without exception. +Due to library implementation details it can still fail to decode if there is a very negative number between -2^64 + 1 and -2^63.

+

Using a CDDL Subset

+

Upsides:

+
    +
  • Automatic structural typing in deserialization
  • +
  • Readable by other methods
  • +
  • Possible reduced space due to array structs not serializing keys
  • +
+

Downsides:

+
    +
  • Requires additional set-up
  • +
+

For static or relatively static types this is probably the best choice, especially if you care about structural validation or need the binary types or more complex keys.

+

As we saw in the other examples, most reasonable structures can be encoded using the standard metadata CDDL as it is almost a superset of JSON outside of true/false/null. Not only this, but if we represent a struct using an array in CDDL such as:

+
foo = [
receiver_id: text,
sender_id: text,
comment: text,
tags: [*int]
]
+

there is space savings as the keys are not stored as it is represented as an ordered array of 4 elements instead of a direct map encoding of:

+
foo = {
receiver_id: text,
sender_id: text,
comment: text,
tags": [*int]
}
+

which would serialize the keys as strings inside the resulting CBOR. Using these CDDL definitions for the example JSON structure we had results in sizes of 89 bytes for the array definition and 124 bytes for the map one. Using the JSON encoding would also result in a metadata size of 124 bytes. Maps however do have the advantage of easy optional fields and a more readable metadata for external users who don't have access to the CDDL as the field names will be stored directly.

+

After you have created your CDDL definition, if you need to check that your CDDL conforms to the metadata CDDL we have a tool located in the /tools/metadata-cddl-checker/ directory. Move to this directory and put your CDDL in a file called input.cddl there first, then run

+
cargo build
cargo run
+

Once we have the CDDL file and it has passed metadata format validation we can use the cddl-codegen tool that we used to initially generate the serialization/deserialization/structural code for the core Shelley structures from the shelley cddl spec.

+

Assuming we are in the cddl-codegen root directory and have created a input.cddl file in that directory containing the CDDL we wish to generate we can build and code-generate with

+
cargo build
cargo run
+

which should generate a wasm-convertible rust library for parsing our CDDL definition in the /export/ directory. +After this we need to generate a wasm package from the rust code by running the following (you can do --target=browser too)

+
cd export
wasm-pack build --target=nodejs
wasm-pack pack
+

which should give you the library as a package in the /pkg/ directory.

+

Once we have imported the library we can then use it as such:

+
const tags = OurMetadataLib.Ints.new();
// if we have smaller (32-bit signed) numbers we can construct easier
tags.add(OurMetadataLib.Int.new_i32(0));
// but for bigger (>= 2^32) numbers we must use BigNum and specify the sign ourselves
tags.add(OurMetadataLib.Int.new(CardanoWasm.Int.from_str("264")));
// and for negative large (< -2^32) numbers (here we construct -1024)
tags.add(OurMetadataLib.Int.new_negative(CardanoWasm.Int.from_str("1024")));
tags.add(OurMetadataLib.Int.new_i32(32));
const map = OurMetadataLib.Foo.new("SJKdj34k3jjKFDKfjFUDfdjkfd", "jkfdsufjdk34h3Sdfjdhfduf873", "happy birthday", tags)
let metadata;
try {
metadata = CardanoWasm.TransactionMetadata.from_bytes(map.to_bytes());
} catch (e) {
// this should never happen if OurMetadataLib was generated from compatible CDDL with the metadata definition
}
+

likewise you can parse the metadata back very simply with:

+
let cddlMetadata;
try {
cddlMetadata = OurMetadataLib.Foo.from_bytes(metadata.to_bytes());
} catch (e) {
// this should never happen if OurMetadataLib was generated from compatible CDDL with the metadata definition
}
// we can now directly access the fields with cddlMetadata.receiver_id(), etc
+

If we take advantage of the additional primitives not defined in CDDL but defined for cddl-codegen, then we can specify precisions of u32, u64, i64, i32 for specifying 32 or 64 bits instead of just a general purpose uint/nint/int. +If you know your metadata will always be within one of these ranges it can be much more convenient to work with, and if you have signed data this will also make it easier to work with instead of the Int class that CDDL int might generate, since that is either an up to 64-bit positive or an up to 64 negative numbers. +This is particularly useful here as lists of CDDL primitives can be exposed directly as Vec<T> to wasm from rust, but when we have int (converts to Int struct) or uint (converts to BigNum struct) a separate structure like that Ints one used above is used. Using the 32-bit versions allows direct js number conversions to/from wasm.

+

If we simply change the tags field to tags: [+i32] our code becomes:

+
// notice how we can directly work with js numbers here now!
// but remember they must fit into a 32-bit number now - no 64-bit numbers like are allowed in the metadata
const tags = [0, 264, -1024, 32];
const map = OurMetadataLib.Foo.new("SJKdj34k3jjKFDKfjFUDfdjkfd", "jkfdsufjdk34h3Sdfjdhfduf873", "happy birthday", tags)
+

and deserializaing likewise is much simpler as metadata.tags() will return a JS array or numbers rather than a rust-wasm struct that must be accessed via the wasm boundary.

+

Raw Bytes Encoding

+

Upsides:

+
    +
  • Can store arbitrary data
  • +
  • Potential space-savings if the data is compressed
  • +
+

Downsides:

+
    +
  • Not readable by other methods - must be decoded using this method
  • +
  • Requires additional set-up
  • +
+

While most data would likely conform to the metadata CDDL subset (or JSON), if your data does not fit there then this encoding style will be necessary.

+

If you still want to take advantage of CDDL type-checking it is possible to create a library just as in the CDDL subset section but without running the checker tool. This could be useful if you are using CDDL outside of the metadata CDDL structure. Otherwise, you can store whatever bytes you want.

+

Note: To conform with the 64-byte limitation on metadata binary values, this method will split the bytes into 64-byte chunks

+
const bytes = /* whatever method you want - you can use the CDDL solution in the 3rd option here */
const metadata = CardanoWasm.encode_arbitrary_bytes_as_metadatum(bytes);
const decoded_bytes = CardanoWasm.decode_arbitrary_bytes_from_metadatum(metadata);
assertEquals(bytes, decoded_bytes);
+ + \ No newline at end of file diff --git a/modules/multi-era/index.html b/modules/multi-era/index.html new file mode 100644 index 00000000..c31cdc2d --- /dev/null +++ b/modules/multi-era/index.html @@ -0,0 +1,16 @@ + + + + + +Multi-Era | CML + + + + +
Skip to main content

Multi-Era

+

This crate contains all the on-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc). There are also wrappers around this era if you need era-agnostic types e.g. parsing all blocks from genesis. The wrappers support the current era as well.

+

Parsing blocks across eras

+

MultiEraBlock can be used for this. Take care about the format you are giving it. Some tools (e.g. Pallas/Oura) won't give you the block format from the binary spec directly, but will instead have it wrapped in some network wrapper array containing the explicit era tag. If your CBOR looks like [uint, <actual block here>] (likely starting with 82 in hex e.g. 8201, 8204, 8207, etc) then you should use MultiEraBlock.from_explicit_network_cbor_bytes() instead of MultiEraBlock.from_cbor_bytes().

+ + \ No newline at end of file diff --git a/modules/wasm/index.html b/modules/wasm/index.html new file mode 100644 index 00000000..447f673f --- /dev/null +++ b/modules/wasm/index.html @@ -0,0 +1,21 @@ + + + + + +WASM Usage | CML + + + + +
Skip to main content

WASM Usage

+

Memory Management

+

If you are using CML from the browser this section is likely irrelevant for you. +Using CML from a javascript environment with weakrefs enabled should have automatic memory cleanup. +If this is not the case (e.g. non-javascript/typescript WASM environment), or you are using CML inside of a very tight loop that is executed hundreds of thousands of times in a short period it might be advisable to explicitly call .free() on any CML types after they are used. +This is because while from an environment with weakrefs the types will eventually be freed automatically, +it is still possible to use excessive memory or run out if, for example, large CML types are created in a constant loop that runs many times (e.g. hundreds of thousands of times without a break), as the automatic cleanup will not be run in time. Do not worry about this for normal CML usage. +Do not call .free() on a type or use it after .free() has been called on it already. +WASM types passed into other CML APIs will be done so by reference and will not have their .free() method called just by doing so, but will still eventually be cleaned up if weakrefs are available.

+ + \ No newline at end of file diff --git a/search-index.json b/search-index.json new file mode 100644 index 00000000..f42503c7 --- /dev/null +++ b/search-index.json @@ -0,0 +1 @@ +[{"documents":[{"i":1,"t":"Installation & Getting Started","u":"/cardano-multiplatform-lib/getting_started","b":[]},{"i":10,"t":"Crate Architecture","u":"/cardano-multiplatform-lib/crate_architecture","b":[]},{"i":12,"t":"TransactionBuilder","u":"/cardano-multiplatform-lib/modules/builders/","b":["Modules","Builders"]},{"i":18,"t":"CIP25","u":"/cardano-multiplatform-lib/modules/CIP25","b":["Modules"]},{"i":32,"t":"CIP36","u":"/cardano-multiplatform-lib/modules/cip36","b":["Modules"]},{"i":33,"t":"Chain","u":"/cardano-multiplatform-lib/modules/chain/","b":["Modules","Chain"]},{"i":35,"t":"Core","u":"/cardano-multiplatform-lib/modules/core/","b":["Modules","Core"]},{"i":37,"t":"CBOR","u":"/cardano-multiplatform-lib/modules/cbor","b":["Modules"]},{"i":45,"t":"JSON","u":"/cardano-multiplatform-lib/modules/json","b":["Modules"]},{"i":56,"t":"Multi-Era","u":"/cardano-multiplatform-lib/modules/multi-era/","b":["Modules","Multi-Era"]},{"i":60,"t":"Generating Keys and Addresses","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","b":["Modules","Crypto"]},{"i":69,"t":"WASM Usage","u":"/cardano-multiplatform-lib/modules/wasm","b":["Modules"]},{"i":72,"t":"crypto","u":"/cardano-multiplatform-lib/modules/crypto/","b":["Modules","Crypto"]},{"i":74,"t":"Cardano Multiplatform Lib","u":"/cardano-multiplatform-lib/","b":[]},{"i":84,"t":"Metadata","u":"/cardano-multiplatform-lib/modules/metadata","b":["Modules"]},{"i":97,"t":"generating_transactions","u":"/cardano-multiplatform-lib/modules/builders/generating_transactions","b":["Modules","Builders"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,1.519,1,1.519,2,1.519,3,1.519]],["t/10",[4,2.218,5,2.218]],["t/12",[6,2.881]],["t/18",[7,2.881]],["t/32",[8,2.881]],["t/33",[9,2.881]],["t/35",[10,2.881]],["t/37",[11,2.881]],["t/45",[12,2.881]],["t/56",[13,2.218,14,2.218]],["t/60",[15,1.803,16,1.803,17,1.803]],["t/69",[18,2.218,19,2.218]],["t/72",[20,2.881]],["t/74",[21,1.803,22,1.803,23,1.803]],["t/84",[24,2.881]],["t/97",[25,2.881]]],"invertedIndex":[["",{"_index":1,"t":{"1":{"position":[[13,1]]}}}],["address",{"_index":17,"t":{"60":{"position":[[20,9]]}}}],["architectur",{"_index":5,"t":{"10":{"position":[[6,12]]}}}],["cardano",{"_index":21,"t":{"74":{"position":[[0,7]]}}}],["cbor",{"_index":11,"t":{"37":{"position":[[0,4]]}}}],["chain",{"_index":9,"t":{"33":{"position":[[0,5]]}}}],["cip25",{"_index":7,"t":{"18":{"position":[[0,5]]}}}],["cip36",{"_index":8,"t":{"32":{"position":[[0,5]]}}}],["core",{"_index":10,"t":{"35":{"position":[[0,4]]}}}],["crate",{"_index":4,"t":{"10":{"position":[[0,5]]}}}],["crypto",{"_index":20,"t":{"72":{"position":[[0,6]]}}}],["era",{"_index":14,"t":{"56":{"position":[[6,3]]}}}],["gener",{"_index":15,"t":{"60":{"position":[[0,10]]}}}],["generating_transact",{"_index":25,"t":{"97":{"position":[[0,23]]}}}],["get",{"_index":2,"t":{"1":{"position":[[15,7]]}}}],["instal",{"_index":0,"t":{"1":{"position":[[0,12]]}}}],["json",{"_index":12,"t":{"45":{"position":[[0,4]]}}}],["key",{"_index":16,"t":{"60":{"position":[[11,4]]}}}],["lib",{"_index":23,"t":{"74":{"position":[[22,3]]}}}],["metadata",{"_index":24,"t":{"84":{"position":[[0,8]]}}}],["multi",{"_index":13,"t":{"56":{"position":[[0,5]]}}}],["multiplatform",{"_index":22,"t":{"74":{"position":[[8,13]]}}}],["start",{"_index":3,"t":{"1":{"position":[[23,7]]}}}],["transactionbuild",{"_index":6,"t":{"12":{"position":[[0,18]]}}}],["usag",{"_index":19,"t":{"69":{"position":[[5,5]]}}}],["wasm",{"_index":18,"t":{"69":{"position":[[0,4]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"Install","u":"/cardano-multiplatform-lib/getting_started","h":"#install","p":1},{"i":4,"t":"Run Example","u":"/cardano-multiplatform-lib/getting_started","h":"#run-example","p":1},{"i":6,"t":"Build","u":"/cardano-multiplatform-lib/getting_started","h":"#build","p":1},{"i":8,"t":"Test","u":"/cardano-multiplatform-lib/getting_started","h":"#test","p":1},{"i":14,"t":"TransactionBuilderConfig","u":"/cardano-multiplatform-lib/modules/builders/","h":"","p":12},{"i":16,"t":"Blockfrost","u":"/cardano-multiplatform-lib/modules/builders/","h":"","p":12},{"i":19,"t":"Context","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#context","p":18},{"i":21,"t":"Code Definitions","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#code-definitions","p":18},{"i":23,"t":"Examples","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#examples","p":18},{"i":24,"t":"Create","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#create","p":18},{"i":26,"t":"Parse CIP25Metadata","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#parse-cip25metadata","p":18},{"i":28,"t":"Parse Metadata Details","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#parse-metadata-details","p":18},{"i":30,"t":"Loose Parse Metadata details","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#loose-parse-metadata-details","p":18},{"i":39,"t":"Tool Interoperability","u":"/cardano-multiplatform-lib/modules/cbor","h":"#tool-interoperability","p":37},{"i":41,"t":"Rust","u":"/cardano-multiplatform-lib/modules/cbor","h":"#rust","p":37},{"i":43,"t":"WASM","u":"/cardano-multiplatform-lib/modules/cbor","h":"#wasm","p":37},{"i":46,"t":"General structs","u":"/cardano-multiplatform-lib/modules/json","h":"#general-structs","p":45},{"i":48,"t":"WASM","u":"/cardano-multiplatform-lib/modules/json","h":"#wasm","p":45},{"i":50,"t":"Rust","u":"/cardano-multiplatform-lib/modules/json","h":"#rust","p":45},{"i":52,"t":"Metadata","u":"/cardano-multiplatform-lib/modules/json","h":"#metadata","p":45},{"i":54,"t":"Plutus Datums","u":"/cardano-multiplatform-lib/modules/json","h":"#plutus-datums","p":45},{"i":58,"t":"Parsing blocks across eras","u":"/cardano-multiplatform-lib/modules/multi-era/","h":"#parsing-blocks-across-eras","p":56},{"i":61,"t":"BIP32 Keys","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#bip32-keys","p":60},{"i":63,"t":"BIP39 Entropy","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#bip39-entropy","p":60},{"i":65,"t":"Use in Addresses","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#use-in-addresses","p":60},{"i":67,"t":"Other Key Types","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#other-key-types","p":60},{"i":70,"t":"Memory Management","u":"/cardano-multiplatform-lib/modules/wasm","h":"#memory-management","p":69},{"i":76,"t":"Pre-requisite knowledge","u":"/cardano-multiplatform-lib/","h":"#pre-requisite-knowledge","p":74},{"i":78,"t":"Benefits of using this library","u":"/cardano-multiplatform-lib/","h":"#benefits-of-using-this-library","p":74},{"i":80,"t":"A note on code examples","u":"/cardano-multiplatform-lib/","h":"#a-note-on-code-examples","p":74},{"i":82,"t":"Documentation","u":"/cardano-multiplatform-lib/","h":"#documentation","p":74},{"i":85,"t":"Transaction Metadata format","u":"/cardano-multiplatform-lib/modules/metadata","h":"#transaction-metadata-format","p":84},{"i":87,"t":"Metadata limitations","u":"/cardano-multiplatform-lib/modules/metadata","h":"#metadata-limitations","p":84},{"i":89,"t":"Direct use","u":"/cardano-multiplatform-lib/modules/metadata","h":"#direct-use","p":84},{"i":91,"t":"JSON conversion","u":"/cardano-multiplatform-lib/modules/metadata","h":"#json-conversion","p":84},{"i":93,"t":"Using a CDDL Subset","u":"/cardano-multiplatform-lib/modules/metadata","h":"#using-a-cddl-subset","p":84},{"i":95,"t":"Raw Bytes Encoding","u":"/cardano-multiplatform-lib/modules/metadata","h":"#raw-bytes-encoding","p":84},{"i":98,"t":"Example code","u":"/cardano-multiplatform-lib/modules/builders/generating_transactions","h":"#example-code","p":97},{"i":100,"t":"A note on fees","u":"/cardano-multiplatform-lib/modules/builders/generating_transactions","h":"#a-note-on-fees","p":97}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,4.071]],["t/4",[1,3.212,2,2.138]],["t/6",[3,4.071]],["t/8",[4,4.071]],["t/14",[5,4.071]],["t/16",[6,4.071]],["t/19",[7,4.071]],["t/21",[8,2.383,9,3.212]],["t/23",[2,2.709]],["t/24",[10,4.071]],["t/26",[11,2.138,12,3.212]],["t/28",[11,1.765,13,1.603,14,2.24]],["t/30",[11,1.503,13,1.365,14,1.908,15,2.259]],["t/39",[16,3.212,17,3.212]],["t/41",[18,3.438]],["t/43",[19,3.438]],["t/46",[20,3.212,21,3.212]],["t/48",[19,3.438]],["t/50",[18,3.438]],["t/52",[13,2.46]],["t/54",[22,3.212,23,3.212]],["t/58",[11,1.765,24,2.653,25,2.653]],["t/61",[26,3.212,27,2.713]],["t/63",[28,3.212,29,3.212]],["t/65",[30,2.138,31,3.212]],["t/67",[27,2.713,32,3.212]],["t/70",[33,3.212,34,3.212]],["t/76",[35,2.653,36,2.653,37,2.653]],["t/78",[30,1.765,38,2.653,39,2.653]],["t/80",[2,1.765,8,1.968,40,2.24]],["t/82",[41,4.071]],["t/85",[13,1.603,42,2.653,43,2.653]],["t/87",[13,1.941,44,3.212]],["t/89",[30,2.138,45,3.212]],["t/91",[46,3.212,47,3.212]],["t/93",[30,1.765,48,2.653,49,2.653]],["t/95",[50,2.653,51,2.653,52,2.653]],["t/98",[2,2.138,8,2.383]],["t/100",[40,2.713,53,3.212]]],"invertedIndex":[["address",{"_index":31,"t":{"65":{"position":[[7,9]]}}}],["benefit",{"_index":38,"t":{"78":{"position":[[0,8]]}}}],["bip32",{"_index":26,"t":{"61":{"position":[[0,5]]}}}],["bip39",{"_index":28,"t":{"63":{"position":[[0,5]]}}}],["block",{"_index":24,"t":{"58":{"position":[[8,6]]}}}],["blockfrost",{"_index":6,"t":{"16":{"position":[[0,10]]}}}],["build",{"_index":3,"t":{"6":{"position":[[0,5]]}}}],["byte",{"_index":51,"t":{"95":{"position":[[4,5]]}}}],["cddl",{"_index":48,"t":{"93":{"position":[[8,4]]}}}],["cip25metadata",{"_index":12,"t":{"26":{"position":[[6,13]]}}}],["code",{"_index":8,"t":{"21":{"position":[[0,4]]},"80":{"position":[[10,4]]},"98":{"position":[[8,4]]}}}],["context",{"_index":7,"t":{"19":{"position":[[0,7]]}}}],["convers",{"_index":47,"t":{"91":{"position":[[5,10]]}}}],["creat",{"_index":10,"t":{"24":{"position":[[0,6]]}}}],["datum",{"_index":23,"t":{"54":{"position":[[7,6]]}}}],["definit",{"_index":9,"t":{"21":{"position":[[5,11]]}}}],["detail",{"_index":14,"t":{"28":{"position":[[15,7]]},"30":{"position":[[21,7]]}}}],["direct",{"_index":45,"t":{"89":{"position":[[0,6]]}}}],["document",{"_index":41,"t":{"82":{"position":[[0,13]]}}}],["encod",{"_index":52,"t":{"95":{"position":[[10,8]]}}}],["entropi",{"_index":29,"t":{"63":{"position":[[6,7]]}}}],["era",{"_index":25,"t":{"58":{"position":[[22,4]]}}}],["exampl",{"_index":2,"t":{"4":{"position":[[4,7]]},"23":{"position":[[0,8]]},"80":{"position":[[15,8]]},"98":{"position":[[0,7]]}}}],["fee",{"_index":53,"t":{"100":{"position":[[10,4]]}}}],["format",{"_index":43,"t":{"85":{"position":[[21,6]]}}}],["gener",{"_index":20,"t":{"46":{"position":[[0,7]]}}}],["instal",{"_index":0,"t":{"2":{"position":[[0,7]]}}}],["interoper",{"_index":17,"t":{"39":{"position":[[5,16]]}}}],["json",{"_index":46,"t":{"91":{"position":[[0,4]]}}}],["key",{"_index":27,"t":{"61":{"position":[[6,4]]},"67":{"position":[[6,3]]}}}],["knowledg",{"_index":37,"t":{"76":{"position":[[14,9]]}}}],["librari",{"_index":39,"t":{"78":{"position":[[23,7]]}}}],["limit",{"_index":44,"t":{"87":{"position":[[9,11]]}}}],["loos",{"_index":15,"t":{"30":{"position":[[0,5]]}}}],["manag",{"_index":34,"t":{"70":{"position":[[7,10]]}}}],["memori",{"_index":33,"t":{"70":{"position":[[0,6]]}}}],["metadata",{"_index":13,"t":{"28":{"position":[[6,8]]},"30":{"position":[[12,8]]},"52":{"position":[[0,8]]},"85":{"position":[[12,8]]},"87":{"position":[[0,8]]}}}],["note",{"_index":40,"t":{"80":{"position":[[2,4]]},"100":{"position":[[2,4]]}}}],["pars",{"_index":11,"t":{"26":{"position":[[0,5]]},"28":{"position":[[0,5]]},"30":{"position":[[6,5]]},"58":{"position":[[0,7]]}}}],["plutu",{"_index":22,"t":{"54":{"position":[[0,6]]}}}],["pre",{"_index":35,"t":{"76":{"position":[[0,3]]}}}],["raw",{"_index":50,"t":{"95":{"position":[[0,3]]}}}],["requisit",{"_index":36,"t":{"76":{"position":[[4,9]]}}}],["run",{"_index":1,"t":{"4":{"position":[[0,3]]}}}],["rust",{"_index":18,"t":{"41":{"position":[[0,4]]},"50":{"position":[[0,4]]}}}],["struct",{"_index":21,"t":{"46":{"position":[[8,7]]}}}],["subset",{"_index":49,"t":{"93":{"position":[[13,6]]}}}],["test",{"_index":4,"t":{"8":{"position":[[0,4]]}}}],["tool",{"_index":16,"t":{"39":{"position":[[0,4]]}}}],["transact",{"_index":42,"t":{"85":{"position":[[0,11]]}}}],["transactionbuilderconfig",{"_index":5,"t":{"14":{"position":[[0,24]]}}}],["type",{"_index":32,"t":{"67":{"position":[[10,5]]}}}],["us",{"_index":30,"t":{"65":{"position":[[0,3]]},"78":{"position":[[12,5]]},"89":{"position":[[7,3]]},"93":{"position":[[0,5]]}}}],["wasm",{"_index":19,"t":{"43":{"position":[[0,4]]},"48":{"position":[[0,4]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"todo","s":"Install","u":"/cardano-multiplatform-lib/getting_started","h":"#install","p":1},{"i":5,"t":"todo","s":"Run Example","u":"/cardano-multiplatform-lib/getting_started","h":"#run-example","p":1},{"i":7,"t":"todo","s":"Build","u":"/cardano-multiplatform-lib/getting_started","h":"#build","p":1},{"i":9,"t":"nvm i && npm i && npm run rust:test","s":"Test","u":"/cardano-multiplatform-lib/getting_started","h":"#test","p":1},{"i":11,"t":"Core - Core types common throughout all CML crates. Chain - Current era on-chain types, plus utility functionality and builders for creating these types. This is likely the crate most users will want to use. Crypto - Crypto primitives used throughout CML. Keys, signatures, etc. CIP25 - Library for working with CIP25 NFT metadata. CIP36 - Library for working with CIP36 (catalyst) registration types. Multi-Era - On-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc) plus era-agnostic wrappers around this for parsing historical blockchain data.","s":"Crate Architecture","u":"/cardano-multiplatform-lib/crate_architecture","h":"","p":10},{"i":13,"t":"In order to simplify transaction creation, we provide a TransactionBuilder struct that manages witnesses, fee calculation, change addresses and such. Assume we have instantiated an instance under the variable builder for this explanation. The TransactionBuilder requires several protocol parameters governing Cardano to be created which is shown in the following section. These are specified initially in the genesis file for Cardano nodes. The minimum required for a valid transaction is to add inputs, outputs, and either set the fee explicitly with builder.set_fee(fee), or calculate it implicitly using builder.add_change_if_needed(address). Optionally a transaction can also have certificates, reward withdrawals, metadata, and minting added to it. Any change made to the builder can impact the size and thus the fee so the fee should be the last thing set. If implicitly setting the fee any extra ADA (inputs + withdrawals - outputs + refund - deposit - min fee) is sent to the provided change address. Fees must be sufficient, i.e. inputs + withdrawals + refund >= outputs + deposit + fee which must be manually ensured if you explicitly set the fee. Any extra fee is not necessary and the extra ADA beyond that will be burned. Once the transaction is ready, const body = builder.build() can be called to return a ready TransactionBody. Withdrawals are ADA withdrawn as part of the rewards generated by staking and deposits are refundable ADA locked while resources such as stake certificates or pool registrations exist on the blockchain. They are returned as refunds when these resources are deregistered/retired. To get to a transaction ready to post on the blockchain, we must create a Transaction from that, which consists of the TransactionBody, a matching TransactionWitnessSet and optionally an AuxiliaryData. The witnesses and optional metadata must match those provided to the builder. The witnesses must sign the hash of the transaction body returned by hash_transaction(body). In addition to the witnesses for inputs, withdrawals and some certificates require witnesses as well. For example, staking address registration does not require a witness while stake address de-registration requires one. For any questions or doubts about the rules governing fees, deposits, rewards, certificates or which witness types are required refer to the specs for the relevant era, specifically the Shelley design specification for general design for non-governance certificates. Refer to the Conway specs for those. The formal specification could be useful for specific details as well. The design spec contains details about which certificates require which type of witnesses in the Certificates and Registrations section.","s":"TransactionBuilder","u":"/cardano-multiplatform-lib/modules/builders/","h":"","p":12},{"i":15,"t":"To correctly make transactions the builder must know some on-chain parameters such as the current fee costs, key deposits, etc. These can all potentially change, even if some have largely been static for large periods of time. We pass these into the builder via the TransactionBuilderConfigBuilder. For test things out hard-coding them might suffice, but these parameters should ideally be fetched from the current blockchain head or your transactions could fail to be accepted by the network or will end up paying higher fees. The cost models parameter is optional if you are not building a transaction that utilizes Plutus smart contracts. Code examples for the builders will assume you have a make_tx_builder() function that creates a TransactionBuilder with the appropriate config.","s":"TransactionBuilderConfig","u":"/cardano-multiplatform-lib/modules/builders/","h":"","p":12},{"i":17,"t":"One way of getting this information is via the epochs/latest/parameters endpoint of blockfrost. This can be automated from rust using the cml-blockfrost crate's make_tx_builder_cfg(). Blockfrost is by no means necessary but it can be convenient. It is possible to get this information by other means as well e.g. having a synced cardano node. Using cml-blockfrost (rust): let cfg = cml_blockfrost::make_tx_builder_cfg(&api).await.unwrap(); let mut tx_builder = TransactionBuilder::new(cfg); This could also be done manually similar to below (or reference cml-blockfrost's code) Manually using WASM: let params = await blockfrost.epochsLatestParameters(); // cost order is based on lex ordering of keys let costModels = CML.CostModels.new(); let v1Costs = params.cost_models['PlutusV1']; if (v1Costs != null) { let v1CMLCosts = CML.IntList.new(); for (key in Object.keys(v1Costs).toSorted()) { v1CMLCosts.add(CML.Int.new(v1Costs[key])); } costModels.set_plutus_v1(v1CMLCosts); } // cost order is based on lex ordering of keys let v2Costs = params.cost_models['PlutusV2']; if (v2Costs != null) { let v2CMLCosts = CML.IntList.new(); for (key in Object.keys(v2Costs).toSorted()) { v2CMLCosts.add(CML.Int.new(v2Costs[key])); } costModels.set_plutus_v2(v2CMLCosts); } // note: as of writing this the sancho testnet format is different for v3 // compared to v1/v2. this may remain true once mainnet switches over so // please inspect the object you are getting for cost models from blockfrost let configBuilder = CML.TransactionBuilderConfigBuilder.new() .fee_algo(CML.LinearFee.new(params.min_fee_a, params.min_fee_b)) .coins_per_utxo_byte(BigNum(params.coins_per_utxo_size)) .pool_deposit(BigNum(params.pool_deposit)) .key_deposit(BigNum(params.key_deposit)) .max_value_size(Number(params.max_val_size)) .max_tx_size(params.max_tx_size) .ex_unit_prices(CML.ExUnitPrices.new( CML.SubCoin.from_base10_f32(params.price_mem), CML.SubCoin.from_base10_f32(params.price_step) )) .cost_models(costModels) .collateral_percentage(params.collateral_percent) max_collateral_inputs(params.max_collateral_inputs); let mut txBuilder = CML.TransactionBuilder.new(configBuilder.build());","s":"Blockfrost","u":"/cardano-multiplatform-lib/modules/builders/","h":"","p":12},{"i":20,"t":"CIP25 defines an NFT Metadata Standard for Native Tokens. Since tokens on Cardano are a part of the UTxO ledger, the metadata isn't directly attached to a token, but instead stored in the transaction data. When data is transmitted or stored in Cardano, it is often encoded as CBOR bytes to optimize space and facilitate fast processing. CBOR provides a standardized way to encode complex data structures, making it easier for different components of the Cardano ecosystem to interact and interpret the data. Below is the entire metadata schema for CIP-25, which can be parsed by passing in the CBOR bytes of the entire transaction metadata or by passing in an existing Metadata struct. Parsing from CBOR bytes should be marginally faster. { \"721\": { \"\": { \"\": { \"name\": , \"image\": , \"mediaType\": image/, \"description\": , \"files\": [{ \"name\": , \"mediaType\": , \"src\": , }], } }, \"version\": } }","s":"Context","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#context","p":18},{"i":22,"t":"CIP25Metadata struct is the top-level struct for CIP-25 metadata, and contains a key_721 field of type LabelMetadata. The key_721 field will contain either a LabelMetadataV1 or LabelMetadataV2 instance. LabelMetadata defines an enum type that can contain either a LabelMetadataV1 or LabelMetadataV2 instance. It also provides functions for creating instances of each type. MetadataDetails defines a struct that represents metadata details for a specific asset. It contains fields for the asset name, an image associated with the asset, a media type, a description, and details about any associated files. The new() method creates a new instance with the specified name and image, and sets the other fields to None.","s":"Code Definitions","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#code-definitions","p":18},{"i":25,"t":"The following example shows how to create and populate the CIP25 metadata schema with the available structs. let mut details = MetadataDetails::new( String64::try_from(\"Metadata Name\").unwrap(), ChunkableString::from(\"htts://some.website.com/image.png\"), ); details.description = Some(ChunkableString::from(\"description of this NFT\")); details.media_type = Some(String64::try_from(\"image/*\").unwrap()); details.files = Some(vec![ FilesDetails::new( String64::new_str(\"filename1\").unwrap(), String64::new_str(\"filetype1\").unwrap(), ChunkableString::from(\"src1\"), ), FilesDetails::new( String64::new_str(\"filename2\").unwrap(), String64::new_str(\"filetype2\").unwrap(), ChunkableString::from(\"src2\"), ), ]); let mut v2 = Data::new(); let mut v2_inner = BTreeMap::new(); v2_inner.insert(AssetNameV2::from(vec![0xCA, 0xFE, 0xD0, 0x0D]), details); v2.insert(PolicyIdV2::from(vec![0xBA, 0xAD, 0xF0, 0x0D]), v2_inner); let metadata = CIP25Metadata::new(LabelMetadata::new_label_metadata_v2( LabelMetadataV2::new(v2), )); println!(\"{metadata:?}\"); output: CIP25Metadata { key_721: LabelMetadataV2(LabelMetadataV2 { data: { PolicyIdV2([186, 173, 240, 13]): { AssetNameV2([202, 254, 208, 13]): MetadataDetails { name: String64(\"Metadata Name\"), image: Single(String64(\"htts://some.website.com/image.png\")), media_type: Some(String64(\"image/*\")), description: Some(Single(String64(\"description of this NFT\"))), files: Some([ FilesDetails { name: String64(\"filename1\"), media_type: String64(\"filetype1\"), src: Single(String64(\"src1\")) }, FilesDetails { name: String64(\"filename2\"), media_type: String64(\"filetype2\"), src: Single(String64(\"src2\")) } ]) } } } }) }","s":"Create","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#create","p":18},{"i":27,"t":"let bytes = \"bf1902d1a36464617461a244baadf00da344cafed00da6646e616d656d4d65746164617461204e616d656566696c657382a4637372636473726331646e616d656966696c656e616d6531696d65646961547970656966696c657479706531816864736b6a66616b7381a1403864a3637372636473726332646e616d656966696c656e616d6532696d65646961547970656966696c65747970653265696d6167657821687474733a2f2f736f6d652e776562736974652e636f6d2f696d6167652e706e67696d656469615479706567696d6167652f2a6b6465736372697074696f6e776465736372697074696f6e206f662074686973204e4654a14038641832a1403864a140386481a1403864816864736b6a66616b73a1403864a14038646776657273696f6e02a1403864a14038641905398144baadf00dff\"; let data = CIP25Metadata::from_bytes(hex::decode(bytes).unwrap()).unwrap(); println!(\"{data:?}\"); output: CIP25Metadata { key_721: LabelMetadataV2( LabelMetadataV2 { data: { PolicyIdV2([186, 173, 240, 13]): { AssetNameV2([202, 254, 208, 13]): MetadataDetails { name: String64(\"Metadata Name\"), image: Single(String64(\"htts://some.website.com/image.png\")), media_type: Some(String64(\"image/*\")), description: Some(Single(String64(\"description of this NFT\"))), files: Some([ FilesDetails { name: String64(\"filename1\"), media_type: String64(\"filetype1\"), src: Single(String64(\"src1\")) }, FilesDetails { name: String64(\"filename2\"), media_type: String64(\"filetype2\"), src: Single(String64(\"src2\")) } ]) } } } }) }","s":"Parse CIP25Metadata","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#parse-cip25metadata","p":18},{"i":29,"t":"Fields can be extracted from the MetadataDetails struct. // { // \"arweaveId\": \"6srpXZOTfK_62KUrJKh4VdCFG0YS271pq20OMRpE5Ts\", // \"image\": \"ipfs://QmUWP6xGHucgBUv514gwgbt4yijg36aUQunEP61z5D8RKS\", // \"name\": \"SpaceBud #1507\", // \"traits\": [\"Star Suit\", \"Chestplate\", \"Belt\", \"Flag\", \"Pistol\"], // \"type\": \"Alien\", // } let bytes = \"a569617277656176654964782b36737270585a4f54664b5f36324b55724a4b68345664434647305953323731707132304f4d52704535547365696d6167657835697066733a2f2f516d5557503678474875636742557635313467776762743479696a673336615551756e455036317a354438524b53646e616d656e53706163654275642023313530376674726169747385695374617220537569746a4368657374706c6174656442656c7464466c616766506973746f6c647479706565416c69656e\"; let output = MetadataDetails::from_bytes(hex::decode(bytes).unwrap()).unwrap(); println!(\"{output:?}\") output: MetadataDetails { name: String64(\"SpaceBud #1507\"), image: Single(String64(\"ipfs://QmUWP6xGHucgBUv514gwgbt4yijg36aUQunEP61z5D8RKS\")), media_type: None, description: None, files: None }","s":"Parse Metadata Details","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#parse-metadata-details","p":18},{"i":31,"t":"The loose_parse() function allows parsing of certain data that is technically non-compliant with CIP25 due to minor mistakes by their creators. note This function should only to be used to parse non conformant metadata, since it will return a different struct (MiniMetadataDetails) which will just (possibly)return the name/image. It's best to only use it as a fallback when the regular parsing fails. Just name​ // {\"name\":\"Metaverse\"} let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode(\"a1646e616d65694d6574617665727365\").unwrap()).unwrap()).unwrap(); println!(\"{details:?}\") ouput: MiniMetadataDetails { name: Some(String64(\"Metaverse\")), image: None } Upercase name​ // { // \"Date\":\"9 May 2021\", // \"Description\":\"Happy Mother's Day to all the Cardano Moms!\", // \"Image\":\"ipfs.io/ipfs/Qmah6QPKUKvp6K9XQB2SA42Q3yrffCbYBbk8EoRrB7FN2g\", // \"Name\":\"Mother's Day 2021\", // \"Ticker\":\"MOM21\", // \"URL\":\"ipfs.io/ipfs/Qmah6QPKUKvp6K9XQB2SA42Q3yrffCbYBbk8EoRrB7FN2g\" // } let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode(\"a664446174656a39204d617920323032316b4465736372697074696f6e782b4861707079204d6f7468657227732044617920746f20616c6c207468652043617264616e6f204d6f6d732165496d616765783b697066732e696f2f697066732f516d61683651504b554b7670364b39585142325341343251337972666643625942626b38456f52724237464e3267644e616d65714d6f746865722773204461792032303231665469636b6572654d4f4d32316355524c783b697066732e696f2f697066732f516d61683651504b554b7670364b39585142325341343251337972666643625942626b38456f52724237464e3267\").unwrap()).unwrap()).unwrap(); let name = details.name.unwrap().0; println!(\"{name:?}\") output: \"Mother's Day 2021\" id no name​ // { // \"id\":\"00\", // \"image\":\"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3\" // } let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode(\"a262696462303065696d6167657835697066733a2f2f516d5366595446384234756136684664723655526452445a425a39466a43514e556444634c723266375038786e33\").unwrap()).unwrap()).unwrap(); let name = details.name.unwrap().0; println!(\"{name:?}\") output: \"00\" Image​ // { // \"image\":\"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3\" // } let details = MiniMetadataDetails::loose_parse(&TransactionMetadatum::from_bytes(hex::decode(\"a165696d6167657835697066733a2f2f516d5366595446384234756136684664723655526452445a425a39466a43514e556444634c723266375038786e33\").unwrap()).unwrap()).unwrap(); let image = String::from(&details.image.unwrap()); println!(\"{image:?}\"); output: \"ipfs://QmSfYTF8B4ua6hFdr6URdRDZBZ9FjCQNUdDcLr2f7P8xn3\"","s":"Loose Parse Metadata details","u":"/cardano-multiplatform-lib/modules/CIP25","h":"#loose-parse-metadata-details","p":18},{"i":34,"t":"This crate contains all of the on-chain types used in the current Cardano era. All of these types can be serialized and deserialized from their on-chain CBOR encodings. Also included are some utility funtionality for working with them, as well as builders for creating them.","s":"Chain","u":"/cardano-multiplatform-lib/modules/chain/","h":"","p":33},{"i":36,"t":"This crate is for core features and traits common to all CML crates. Most users likely won't need to directly use this module except for possibly pulling in traits used with other cml crates. If you are using CML from WASM/typescript this module will not be needed as any used types will be re-exported in the crates (e.g. cml-chain-wasm, cml-cip25-wasm, etc) that use it.","s":"Core","u":"/cardano-multiplatform-lib/modules/core/","h":"","p":35},{"i":38,"t":"Cardano on-chain types are stored using CBOR, a data format similar to JSON but with many more features and in binary.","s":"CBOR","u":"/cardano-multiplatform-lib/modules/cbor","h":"","p":37},{"i":40,"t":"Due to CBOR's flexibility it is possible that one piece of CBOR can be represented in multiple ways in the binary encoding. This causes problems when using CBOR taken on-chain or from another tool and using it with another tool. Notably, one small difference in the binary encoding of CBOR could result in hashes being totally different. e.g. metadatum hashes or transaction hashes calculated in a dApp might be different than in the wallet causing the entire transaction to be rejected by the network. CML solves this by supporting automatically every single possible CBOR encoding variation. On-chain types created by deserializing from CBOR bytes will remember these details and re-serializing will use them and result in the same CBOR bytes, unlike some other tools.","s":"Tool Interoperability","u":"/cardano-multiplatform-lib/modules/cbor","h":"#tool-interoperability","p":37},{"i":42,"t":"On-chan types in rust can (de)serialize to/from CBOR Via the Serialize/Deserialize and ToBytes/FromBytes traits located within the cml_core::serialize module. Most on-chain types implement the Serialize and Deserialize traits. These traits guarantee that all CBOR encoding details are preserved upon deserialization and upon serialization it is possible to choose between canonical CBOR encoding and arbitrary encodings (the original it was decoded from). Byron-era types do not implement Serialize/Deserialize and instead implement ToBytes/FromBytes. Byron on-chain types are always in canonical CBOR so this was not necessary. The types in the cip25 module also do not support Serialize/Deserialize in favor of ToBytes/FromBytes. The underlying metadata on-chain does and you should use the types incml_core::metadata use cml_core::serialization::{Serialize, Deserialize}; let canonical_cbor_hex = \"825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01\"; // these all represent the following CBOR: // [ ; array of 2 elements (transaction input struct) // 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ; bytes (tx hash) // 1 ; unsigned integer (tx index) // ] let non_canonical_cbor = [ canonical_cbor_hex, \"825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001\", \"9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff\", \"9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001\", \"9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001\", ]; for orig_cbor_hex in non_canonical_cbor { let tx_in = TransactionInput::from_cbor_bytes(&hex::decode(orig_cbor_hex).unwrap()).unwrap(); // serialize back to cbor bytes using the same cbor encoding details so it will match // the format where it came from assert_eq!(hex::encode(tx_in.to_cbor_bytes()), orig_cbor_hex); // no matter how it was created it will represent the same data and can be encoded to // canonical cbor bytes which will be the same as all of these are the same transaction input assert_eq!(hex::encode(tx_in.to_canonical_cbor_bytes()), canonical_cbor_hex); }","s":"Rust","u":"/cardano-multiplatform-lib/modules/cbor","h":"#rust","p":37},{"i":44,"t":"All on-chain types have the traits directly exposed on each struct as the methods: .to_cbor_bytes() .to_canonical_cbor_bytes() .from_cbor_bytes() .to_cbor_hex() .to_canonical_cbor_hex() .from_cbor_hex() The hex ones are useful for working with CIP-30 (dApp connector). On post-Byron on-chain types this delegates to Serialize/Deserialize (see rust section) and preserve round-trip always. CIP25 and Byron types will always serialize to canonical CBOR. All on-chain data during the Byron era has to be canonical CBOR so this is not a big issue but is worth noting. let canonicalCborHex = \"825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01\"; // these all represent the following CBOR: // [ ; array of 2 elements (transaction input struct) // 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, ; bytes (tx hash) // 1 ; unsigned integer (tx index) // ] let nonCanonicalCbor = [ canonicalCborHex, \"825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001\", \"9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff\", \"9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001\", \"9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001\", ]; for (let origCborHex of nonCanonicalCbor) { let txIn = CML.TransactionInput.from_cbor_hex(orig_cbor_hex); // serialize back to cbor bytes using the same cbor encoding details so it will match // the format where it came from console.assert(txIn.to_cbor_hex() == origCborHex); // no matter how it was created it will represent the same data and can be encoded to // canonical cbor bytes which will be the same as all of these are the same transaction input console.assert(txIn.to_canonical_cbor_hex() == canonicalCborHex); }","s":"WASM","u":"/cardano-multiplatform-lib/modules/cbor","h":"#wasm","p":37},{"i":47,"t":"All on-chain types have to/from JSON support. The vast majority is auto-generated but some have custom logic e.g. Url, Ipv4, BigInteger, etc.","s":"General structs","u":"/cardano-multiplatform-lib/modules/json","h":"#general-structs","p":45},{"i":49,"t":"In WASM JSON conversions are exposed by .to_json() and .from_json() methods on all supported wrappers. There is also a to_js_value(). let txInJson = \"{\\\"transaction_id\\\":\\\"0fba1404ed9b82b41938ba2e8bda7bec8cce813fb7e7cd7692b43caa76fe891c\\\",\\\"index\\\":3}\"; let txIn = CML.TransactionInput.from_json(txInJson); console.log(`txIn JSON: ${txIn.to_json()}`);","s":"WASM","u":"/cardano-multiplatform-lib/modules/json","h":"#wasm","p":45},{"i":51,"t":"JSON conversions are exposed in rust via the serde::Serialize and serde::Deserialize traits together with serde_json. example: let tx_in_json = \"{\\\"transaction_id\\\":\\\"0fba1404ed9b82b41938ba2e8bda7bec8cce813fb7e7cd7692b43caa76fe891c\\\",\\\"index\\\":3}\"; // from JSON using serde_json::from_str() - note the type annotations let tx_in: TransactionInput = serde_json::from_str(tx_in_json).unwrap(); // to JSON using serde_json::to_string() - use to_string_pretty() if you want more human-readable formatting println!(\"tx_in JSON: {}\", serde_json::to_string(&tx_in).unwrap());","s":"Rust","u":"/cardano-multiplatform-lib/modules/json","h":"#rust","p":45},{"i":53,"t":"Metadata, on top of the generic API mentioned above, has specific JSON functionality for compatability with cardano-node. There are three formats on MetadataJsonSchema. NoConversions is the stricted, stricter than cardano-node and only converts when there are no implicit conversions at all. BasicConversions is the node's TxMetadataJsonNoSchema and DetailedSchema its TxMetadataJsonDetailedSchema. See MetadataJsonSchema for more info on the schema. let basic_json = \"{\\\"0x8badf00d\\\": \\\"0xdeadbeef\\\",\\\"9\\\": 5,\\\"obj\\\": {\\\"a\\\":[{\\\"5\\\": 2},{}]}}\"; let metadatum = CML.encode_json_str_to_metadatum(basic_json, CML.MetadataJsonSchema.BasicConversions); console.log(`detailed json: ${CML.decode_metadatum_to_json_str(metadatum, CML.MetadataJsonSchema.DetailedSchema)}`); // OUTPUT: // detailed json: {\"map\":[{\"k\":{\"bytes\":\"8badf00d\"},\"v\":{\"bytes\":\"deadbeef\"}},{\"k\":{\"int\":9},\"v\":{\"int\":5}},{\"k\":{\"string\":\"obj\"},\"v\":{\"map\":[{\"k\":{\"string\":\"a\"},\"v\":{\"list\":[{\"map\":[{\"k\":{\"int\":5},\"v\":{\"int\":2}}]},{\"map\":[]}]}}]}}]}","s":"Metadata","u":"/cardano-multiplatform-lib/modules/json","h":"#metadata","p":45},{"i":55,"t":"Plutus datums also have additional cardano-node JSON support. Remember that Plutus has no String datum so the strings there will be converted to utf8 bytes. See CardanoNodePlutusDatumSchema for more info on the schema. let basic_json = \"{ \\\"100\\\": [ { \\\"x\\\": \\\"0\\\", \\\"y\\\": 1 } ], \\\"foo\\\": \\\"0x0000baadf00d0000cafed00d0000deadbeef0000\\\" }\"; let datum = CML.encode_json_str_to_plutus_datum(basic_json, CML.CardanoNodePlutusDatumSchema.BasicConversions); console.log(`detailed json: ${CML.decode_plutus_datum_to_json_str(datum, CML.CardanoNodePlutusDatumSchema.DetailedSchema, )}`); // OUTPUT: // detailed json: {\"map\":[{\"k\":{\"int\":100},\"v\":{\"list\":[{\"map\":[{\"k\":{\"bytes\":\"78\"},\"v\":{\"bytes\":\"30\"}},{\"k\":{\"bytes\":\"79\"},\"v\":{\"int\":1}}]}]}},{\"k\":{\"bytes\":\"666f6f\"},\"v\":{\"bytes\":\"0000baadf00d0000cafed00d0000deadbeef0000\"}}]}","s":"Plutus Datums","u":"/cardano-multiplatform-lib/modules/json","h":"#plutus-datums","p":45},{"i":57,"t":"This crate contains all the on-chain types for previous eras (Byron, Shelley, Alonzo, Babbage, etc). There are also wrappers around this era if you need era-agnostic types e.g. parsing all blocks from genesis. The wrappers support the current era as well.","s":"Multi-Era","u":"/cardano-multiplatform-lib/modules/multi-era/","h":"","p":56},{"i":59,"t":"MultiEraBlock can be used for this. Take care about the format you are giving it. Some tools (e.g. Pallas/Oura) won't give you the block format from the binary spec directly, but will instead have it wrapped in some network wrapper array containing the explicit era tag. If your CBOR looks like [uint, ] (likely starting with 82 in hex e.g. 8201, 8204, 8207, etc) then you should use MultiEraBlock.from_explicit_network_cbor_bytes() instead of MultiEraBlock.from_cbor_bytes().","s":"Parsing blocks across eras","u":"/cardano-multiplatform-lib/modules/multi-era/","h":"#parsing-blocks-across-eras","p":56},{"i":62,"t":"There are two main categories of keys in this library. There are the raw PublicKey and PrivateKey which are used for cryptographically signing/verifying, and BIP32PrivateKey/BIP32PublicKey which in addition to this have the ability to derive additional keys from them following the BIP32 derivation scheme variant called BIP32-Ed25519, which will be referred to as BIP32 for brevity. We use the BIP44 spec variant for Ed25519 as well for the derivation paths using 1852 or 44 as the purpose consant and 1815 for the coin type depending on address type. See this doc for more details. This is demonstrated with the below code function harden(num: number): number { return 0x80000000 + num; } const rootKey = CardanoWasm.BIP32PrivateKey.from_bech32(\"xprv17qx9vxm6060qjn5fgazfue9nwyf448w7upk60c3epln82vumg9r9kxzsud9uv5rfscxp382j2aku254zj3qfx9fx39t6hjwtmwq85uunsd8x0st3j66lzf5yn30hwq5n75zeuplepx8vxc502txx09ygjgx06n0p\"); const accountKey = rootKey .derive(harden(1852)) // purpose .derive(harden(1815)) // coin type .derive(harden(0)); // account #0 const utxoPubKey = accountKey .derive(0) // external .derive(0) .to_public(); const stakeKey = accountKey .derive(2) // chimeric .derive(0) .to_public();","s":"BIP32 Keys","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#bip32-keys","p":60},{"i":64,"t":"To generate a BIP32PrivateKey from a BIP39 recovery phrase it must be first converted to entropy following the BIP39 protocol(). This library does not directly handle that, but once entropy is created it is possible to use Bip32PrivateKey.from_bip39_entropy(entropy, password). For more information see the CIP3 Cardano improvement proposal. The code below uses the bip39 npm package to generate a root BIP32PrivateKey from a BIP39 mnemonic. import { mnemonicToEntropy } from 'bip39'; const entropy = mnemonicToEntropy( [ \"test\", \"walk\", \"nut\", \"penalty\", \"hip\", \"pave\", \"soap\", \"entry\", \"language\", \"right\", \"filter\", \"choice\" ].join(' ') ); const rootKey = CardanoWasm.Bip32PrivateKey.from_bip39_entropy( Buffer.from(entropy, 'hex'), Buffer.from(''), );","s":"BIP39 Entropy","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#bip39-entropy","p":60},{"i":66,"t":"Once we have reached the desired derivation path, we must convert the BIP32PrivateKey or BIP32PublicKey to a PrivateKey or PublicKey by calling .to_raw_key() on them with the exception of Byron addresses. For example, to create an address using the utxoPubKey and stakeKey in the first example, we can do: // base address with staking key const baseAddr = CardanoWasm.BaseAddress.new( CardanoWasm.NetworkInfo.mainnet().network_id(), CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()), CardanoWasm.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash()), ); // enterprise address without staking ability, for use by exchanges/etc const enterpriseAddr = CardanoWasm.EnterpriseAddress.new( CardanoWasm.NetworkInfo.mainnet().network_id(), CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()) ); // pointer address - similar to Base address but can be shorter, see formal spec for explanation const ptrAddr = CardanoWasm.PointerAddress.new( CardanoWasm.NetworkInfo.mainnet().network_id(), CardanoWasm.StakeCredential.from_keyhash(utxoPubKey.to_raw_key().hash()), CardanoWasm.Pointer.new( 100, // slot 2, // tx index in slot 0 // cert indiex in tx ) ); // reward address - used for withdrawing accumulated staking rewards const rewardAddr = CardanoWasm.RewardAddress.new( CardanoWasm.NetworkInfo.mainnet().network_id(), CardanoWasm.StakeCredential.from_keyhash(stakeKey.to_raw_key().hash()) ); // bootstrap address - byron-era addresses with no staking rights const byronAddr = CardanoWasm.ByronAddress.icarus_from_key( utxoPubKey, // Ae2* style icarus address CardanoWasm.NetworkInfo.mainnet().protocol_magic() ); Note that the byron-era address can only be created in this library from icarus-style addresses that start in Ae2 and that Daedalus-style addresses starting in Dd are not directly supported. These are all address variant types with information specific to its address type. There is also an Address type which represents any of those variants, which is the type use in most parts of the library. For example to create a TransactionOutput manually we would have to first convert from one of the address variants by doing: const address = baseAddress.to_address(); const output = CardanoWasm.TransactionOutput(address, BigNum.from_str(\"365\")); If the address is already a Shelley address in raw bytes or a bech32 string we can create it directly via: const addr = CardanoWasm.Address.from_bech32(\"addr1vyt3w9chzut3w9chzut3w9chzut3w9chzut3w9chzut3w9cj43ltf\");","s":"Use in Addresses","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#use-in-addresses","p":60},{"i":68,"t":"Conversion between cardano-cli 128-byte XPrv keys and BIP32PrivateKey is also supported: const bip32PrivateKey = CardanoWasm.BIP32PrivateKey.from_128_xprv(xprvBytes); assert(xprvBytes == CardanoWasm.BIP32PrivateKey.to_128_xprv()); 96-byte XPrv keys are identical to BIP32PrivateKeys byte-wise and no conversion is needed. For more details see this document regarding legacy keys. There is also LegacyDaedalusPrivateKey which is used for creating witnesses for legacy Daedalus Dd-type addresses.","s":"Other Key Types","u":"/cardano-multiplatform-lib/modules/crypto/generating_keys","h":"#other-key-types","p":60},{"i":71,"t":"If you are using CML from the browser this section is likely irrelevant for you. Using CML from a javascript environment with weakrefs enabled should have automatic memory cleanup. If this is not the case (e.g. non-javascript/typescript WASM environment), or you are using CML inside of a very tight loop that is executed hundreds of thousands of times in a short period it might be advisable to explicitly call .free() on any CML types after they are used. This is because while from an environment with weakrefs the types will eventually be freed automatically, it is still possible to use excessive memory or run out if, for example, large CML types are created in a constant loop that runs many times (e.g. hundreds of thousands of times without a break), as the automatic cleanup will not be run in time. Do not worry about this for normal CML usage. Do not call .free() on a type or use it after .free() has been called on it already. WASM types passed into other CML APIs will be done so by reference and will not have their .free() method called just by doing so, but will still eventually be cleaned up if weakrefs are available.","s":"Memory Management","u":"/cardano-multiplatform-lib/modules/wasm","h":"#memory-management","p":69},{"i":73,"t":"AuxiliaryDataHash Bip32PrivateKey Bip32PublicKey BlockBodyHash BlockHeaderHash BootstrapWitness BootstrapWitnesses DataHash Ed25519KeyHash Ed25519Signature GenesisDelegateHash GenesisHash KESSignature KESVKey LegacyDaedalusPrivateKey Nonce PoolMetadataHash PrivateKey PublicKey ED25519 key used as public key PublicKeys ScriptDataHash ScriptHash TransactionHash VRFCert VRFKeyHash VRFVKey Vkey Vkeys Vkeywitness Vkeywitnesses","s":"crypto","u":"/cardano-multiplatform-lib/modules/crypto/","h":"","p":72},{"i":75,"t":"This is a library, written in Rust, that can be deployed to multiple platforms (Rust crate, JS, Typescript, WASM, etc). It handles: Serialization & deserialization of core data structures Builders to streamline and verify the construction of transactions and related components Useful utility functions for dApps & wallets NPM packages​ browser: link nodejs: link There is also an outdated asm.js . It is strongly discouraged from using this as it is out of date and asm.js results in incredibly slow cryptographic operations. asm.js (strongly discouraged): link Note: If you are using WebPack, you must use version 5 or later for CML to work. Rust crates​ The rust crates are split up by functionality. core: link crypto: link chain: link multi-era: link cip25: link cip36: link Most users will likely be using primarily cml-chain for general uses, cml-multi-era if they need historical (pre-babbage eras) chain-parsing and cip25 or cip36 if they need those specific metadata standards. Mobile bindings​ We recommend using Ionic + Capacitor or an equivalent setup to have the WASM bindings working in mobile","s":"Cardano Multiplatform Lib","u":"/cardano-multiplatform-lib/","h":"","p":74},{"i":77,"t":"This library assumes a certain amount of knowledge about how Cardano works (to avoid re-documenting the wheel). You can find the specifications of Cardano's ledger here which we suggest consulting as you use this library. Notably, the Shelley ledger formal specification covers the core concepts. Make sure to check the specs for later eras as well when needed.","s":"Pre-requisite knowledge","u":"/cardano-multiplatform-lib/","h":"#pre-requisite-knowledge","p":74},{"i":79,"t":"Serialization/deserialization code is automatically generated from Cardano’s official specification, which guarantees it can easily stay up to date! We do this using a tool managed by EMURGO & dcSpark called cddl-codegen which can be re-used for other tasks such as automatically generate a Rust library for Cardano metadata specifications! The most important feature of this is that CML has been generated to allow all CBOR details to be preserved. With CBOR many CBOR structures can have multiple ways to serialize to bytes from the same equivalent structure. This causes issues especially when computing hashes and is a frequent problem with working across tools e.g. cardano-node-cli and cardano-serialization-lib encoding plutus datums differently. This makes CML much more compatible with all other libraries as it will remember all these specific CBOR encoding details. This is particularly important for use with dApps and wallets connecting to dApps. It is also very easy to create scripts in Rust or WASM to share with stake pools, or even embed inside an online tool! No more crazy cardano-cli bash scripts! Powerful and flexible enough to be used to power wallets and exchanges! (Yes, it’s used in production!)","s":"Benefits of using this library","u":"/cardano-multiplatform-lib/","h":"#benefits-of-using-this-library","p":74},{"i":81,"t":"All code examples are using the WASM (typescript/javascript) API. If you are using CML from rust you will need to change the code to rust syntax e.g. Foo.bar() to Foo::new() etc. We've tried to keep the API as consistent as possible between the different bindings but some exceptions exist. The array/map wrappers (e.g. FooList / MapFooToBar) in WASM are simply Vec and OrderedHashMap respectively. There will be some changes relating to reference params/moving/etc as well. You can find complete examples in the /examples/ directory.","s":"A note on code examples","u":"/cardano-multiplatform-lib/","h":"#a-note-on-code-examples","p":74},{"i":83,"t":"This library generates Typescript type definitions, so it’s often easiest to see what is possible by just looking at the types! These are found in the .ts file in the npm package roots. If you are using rust the full API will be shown in the respective crates.io pages.","s":"Documentation","u":"/cardano-multiplatform-lib/","h":"#documentation","p":74},{"i":86,"t":"Transaction after the Shelley hardfork can contain arbitrary transaction meta (note: this is NOT the same as pool metadata) Transaction metadata takes the form of a map of metadatums, which are recursive JSON-like structures. It is defined in CDDL, a schema grammar for representing CBOR binary encoding as: transaction_metadatum = { * transaction_metadatum => transaction_metadatum } / [ * transaction_metadatum ] / int / bytes .size (0..64) / text .size (0..64) transaction_metadatum_label = uint transaction_metadata = { * transaction_metadatum_label => transaction_metadatum } For each use we use a metadatum label specific to our use into the TransactionMetadatum map. If we had a JSON object such as { \"receiver_id\": \"SJKdj34k3jjKFDKfjFUDfdjkfd\", \"sender_id\": \"jkfdsufjdk34h3Sdfjdhfduf873\", \"comment\": \"happy birthday\", \"tags\": [0, 264, -1024, 32] } There are 4 ways we can achieve this with different trade-offs: Directly use: using the Metadata-related structures used in the library JSON conversion: conversion to/from JSON using our utility functions CDDL subset: writing a CDDL spec of this structure that is representable by that recursive metadatum CDDL Raw bytes: encoding raw-bytes using our utility functions. Each section will give examples of how to encode a similar structure. Understanding CDDL is only necessary for the last 2 options, but it is fairly simple to understand. If your metadata schema is fixed and will be used frequently you should consider the CDDL spec option. If your schema is not often used or used from many languages, the JSON option can be good as it is low set-up and fairly tech agnostic. If your schema is very dynamic or non-existent, the direct use or JSON options are likely best. The raw bytes option is only recommended if your data does not conform to the metadata format.","s":"Transaction Metadata format","u":"/cardano-multiplatform-lib/modules/metadata","h":"#transaction-metadata-format","p":84},{"i":88,"t":"These limitations are mentioned in the CDDL definition, but are worth also mentioning in prose: Strings must be at most 64 bytes when UTF-8 encoded. Bytestrings are hex-encoded, with a maximum length of 64 bytes.","s":"Metadata limitations","u":"/cardano-multiplatform-lib/modules/metadata","h":"#metadata-limitations","p":84},{"i":90,"t":"Upsides: Flexible Readable by other methods Downsides: Can be quite tedious to write Structural validation must be done by hand (partially) As the metadatum structure is fairly expressive, we can directly use it using the structs in the metadata module of this library. These directly represent the types given in the CDDL. Namely: TransactionMetadatum - Can represent one of those 5 variant types. MetadataMap - The map variant that maps from metadatums to other metadatums. This is unordered and indexed by metadatums. This is like an object in JSON. MetadataList - An ordered list indexed starting at 0. This is like an array in JSON. The variants for numbers, bytes and text are not specific to metadata and are directly used with the general Int type representing a signed or unsigned number, byte arrays accepting byte arrays/Buffer, and strings being JS strings. We could construct the JSON example above with the following code: const map = CardanoWasm.MetadataMap.new(); map.insert( CardanoWasm.TransactionMetadatum.new_text(\"receiver_id\"), CardanoWasm.TransactionMetadatum.new_text(\"SJKdj34k3jjKFDKfjFUDfdjkfd\"), ); map.insert( CardanoWasm.TransactionMetadatum.new_text(\"sender_id\"), CardanoWasm.TransactionMetadatum.new_text(\"jkfdsufjdk34h3Sdfjdhfduf873\"), ); map.insert( CardanoWasm.TransactionMetadatum.new_text(\"comment\"), CardanoWasm.TransactionMetadatum.new_text(\"happy birthday\"), ); const tags = CardanoWasm.MetadataList.new(); tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str(\"0\")))); tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str(\"264\")))); tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new_negative(CardanoWasm.BigNum.from_str(\"1024\")))); tags.add(CardanoWasm.TransactionMetadatum.new_int(CardanoWasm.Int.new(CardanoWasm.BigNum.from_str(\"32\")))); map.insert( CardanoWasm.TransactionMetadatum.new_text(\"tags\"), CardanoWasm.TransactionMetadatum.new_list(tags), ); const metadatum = CardanoWasm.TransactionMetadatum.new_map(map); We could then parse the information back as such: try { const map = metadatum.as_map(); const receiver = map.get(CardanoWasm.TransactionMetadatum.new_text(\"receiver_id\")); const sender = map.get(CardanoWasm.TransactionMetadatum.new_text(\"sender_id\")); const comment = map.get(CardanoWasm.TransactionMetadatum.new_text(\"comment\")); const tags = map.get(CardanoWasm.TransactionMetadatum.new_text(\"tags\")); } catch (e) { // structure did not match } For decoding in a more exploratory manner we can check the types first as such: function parseMetadata(metadata) { // we must check the type first to know how to handle it switch (metadata.kind()) { case CardanoWasm.TransactionMetadatumKind.MetadataMap: const mapRet = new Map(); const map = metadata.as_map(); const keys = maps.keys(); for (var i = 0; i < keys.len(); i += 1) { const key = keys.get(i); const value = parseMetadata(map.get(key); mapRet.set(key, value); } return mapRet; case CardanoWasm.TransactionMetadatumKind.MetadataList: let arrRet = []; const arr = metadata.as_list(); for (var i = 0; i < arr.len(); i += 1) { const elem = parseMetadata(arr.get(i)); arrRet.push(elem); } return arrRet; case CardanoWasm.TransactionMetadatumKind.Int: const x = metadata.as_int(); // If the integer is too big as_i32() returns undefined // to handle larger numbers we need to use x.as_positive() / x.as_negative() and // convert from BigNums after checking x.is_positive() first return x.as_i32(); case CardanoWasm.TransactionMetadatumKind.Bytes: return Buffer.from(metadata.as_bytes()); case CardanoWasm.TransactionMetadatumKind.Text: return metadata.as_text(); } } which recursively parses the TransactionMetadatum struct and transforms it into a JS Map / JS object structure by manually checking the types.","s":"Direct use","u":"/cardano-multiplatform-lib/modules/metadata","h":"#direct-use","p":84},{"i":92,"t":"Upsides: Flexible Readable by other methods Lowest set-up work involved Downsides: Does not support negative integers between -2^64 + 1 and -2^63 (serde_json library restriction) Structural validation must be done by hand Can use more space as string keyed maps are likely to be used more than arrays would be in the CDDL solutions const obj = { receiver_id: \"SJKdj34k3jjKFDKfjFUDfdjkfd\", sender_id: \"jkfdsufjdk34h3Sdfjdhfduf873\", comment: \"happy birthday\", tags: [0, 264, -1024, 32] }; const metadata = CardanoWasm.encode_json_str_to_metadatum(JSON.stringify(obj), CardanoWasm.MetadataJsonSchema.NoConversions); const metadataString = CardanoWasm.decode_metadatum_to_json_str(metadata, CardanoWasm.MetadataJsonSchema.NoConversions); To support an extended set of metadata we also support 3 additional modes for JSON conversion following IOHK's cardano-node JSON schemas. The three modes are: NoConversions - Faithfully converts between the minimal shared feature set between JSON and Metadata BasicConversions - Adds additional support for byte(as hex strings)/integers (as strings) keys / byte (as hex strings) values. DetailedSchema - Can convert almost all metadata into a specific JSON schema but is very verbose on the JSON side. Details on the formats can be found in our library's metadata module or in the cardano-node file linked above. DetailedSchema is likely most useful if you need to parse any possible kind of metadata into JSON specifically, possibly to display or for debugging. For most reasonable schemas NoConversions should suffice, or BasicConversions if byte/string keys and byte values are needed. If you are in charge of your own schema and you do not need arbitrary keys, it is recommended not to use DetailedSchema as it is significantly more complicated to use. The additions of BasicConversions are demonstrated below { \"0x8badf00d\": \"0xdeadbeef\", \"9\": 5, \"obj\": { \"a\":[ { \"5\": 2 }, { } ] } } which creates a map with 3 elements: 4 byte bytestring (0x8badf00d) => 4 byte bytestring (0xdeadbeef) int (9) => int (5) string (\"obj\") => object (string (\"a\") => list [ object (int (5) => int (2)), object (empty) ]) All bytestrings must be prefixed with \"0x\" or they will be treated as regular strings. All strings that parse as an integer such as \"125\" will be treated as a metadata integer. The DetailedSchema is here: {\"map\":[ { \"k\":{\"bytes\":\"8badf00d\"}, \"v\":{\"bytes\":\"deadbeef\"} }, { \"k\":{\"int\":9}, \"v\":{\"int\":5} }, { \"k\":{\"string\":\"obj\"}, \"v\":{\"map\":[ { \"k\":{\"string\":\"a\"}, \"v\":{\"list\":[ {\"map\":[ { \"k\":{\"int\":5}, \"v\":{\"int\":2} } ]}, {\"map\":[ ]} ]} } ]} } ]} All values are represented as an object with 1 field with the key tagging the type and the value being the value itself. This is the exact same metadata as the BasicConversions example which should illustrate that it is much more verbose to use this format, but it can represent every kind of metadata possible, including non-string/byte/int keys. Do note that byte strings do not start with \"0x\", unlike with BasicConversions. This additional freedom in keys can be seen here: {\"map\":[ { \"k\":{\"list\":[ {\"map\": [ { \"k\": {\"int\": 5}, \"v\": {\"int\": 7} }, { \"k\": {\"string\": \"hello\"}, \"v\": {\"string\": \"world\"} } ]}, {\"bytes\": \"ff00ff00\"} ]}, \"v\":{\"int\":5} } ]} has a 1-element map with a value of just 5, but with a very complicated key consisting of a list with 2 elements: a 2-element map (5 => 7, \"hello\" => \"world\") a bytestring (0xFF00FF00) Most reasonable metadata formats, however, likely do not use map/key/compound keys and thus this is more of a fringe use or when all possible metadata must be examined from JSON (almost) without exception. Due to library implementation details it can still fail to decode if there is a very negative number between -2^64 + 1 and -2^63.","s":"JSON conversion","u":"/cardano-multiplatform-lib/modules/metadata","h":"#json-conversion","p":84},{"i":94,"t":"Upsides: Automatic structural typing in deserialization Readable by other methods Possible reduced space due to array structs not serializing keys Downsides: Requires additional set-up For static or relatively static types this is probably the best choice, especially if you care about structural validation or need the binary types or more complex keys. As we saw in the other examples, most reasonable structures can be encoded using the standard metadata CDDL as it is almost a superset of JSON outside of true/false/null. Not only this, but if we represent a struct using an array in CDDL such as: foo = [ receiver_id: text, sender_id: text, comment: text, tags: [*int] ] there is space savings as the keys are not stored as it is represented as an ordered array of 4 elements instead of a direct map encoding of: foo = { receiver_id: text, sender_id: text, comment: text, tags\": [*int] } which would serialize the keys as strings inside the resulting CBOR. Using these CDDL definitions for the example JSON structure we had results in sizes of 89 bytes for the array definition and 124 bytes for the map one. Using the JSON encoding would also result in a metadata size of 124 bytes. Maps however do have the advantage of easy optional fields and a more readable metadata for external users who don't have access to the CDDL as the field names will be stored directly. After you have created your CDDL definition, if you need to check that your CDDL conforms to the metadata CDDL we have a tool located in the /tools/metadata-cddl-checker/ directory. Move to this directory and put your CDDL in a file called input.cddl there first, then run cargo build cargo run Once we have the CDDL file and it has passed metadata format validation we can use the cddl-codegen tool that we used to initially generate the serialization/deserialization/structural code for the core Shelley structures from the shelley cddl spec. Assuming we are in the cddl-codegen root directory and have created a input.cddl file in that directory containing the CDDL we wish to generate we can build and code-generate with cargo build cargo run which should generate a wasm-convertible rust library for parsing our CDDL definition in the /export/ directory. After this we need to generate a wasm package from the rust code by running the following (you can do --target=browser too) cd export wasm-pack build --target=nodejs wasm-pack pack which should give you the library as a package in the /pkg/ directory. Once we have imported the library we can then use it as such: const tags = OurMetadataLib.Ints.new(); // if we have smaller (32-bit signed) numbers we can construct easier tags.add(OurMetadataLib.Int.new_i32(0)); // but for bigger (>= 2^32) numbers we must use BigNum and specify the sign ourselves tags.add(OurMetadataLib.Int.new(CardanoWasm.Int.from_str(\"264\"))); // and for negative large (< -2^32) numbers (here we construct -1024) tags.add(OurMetadataLib.Int.new_negative(CardanoWasm.Int.from_str(\"1024\"))); tags.add(OurMetadataLib.Int.new_i32(32)); const map = OurMetadataLib.Foo.new(\"SJKdj34k3jjKFDKfjFUDfdjkfd\", \"jkfdsufjdk34h3Sdfjdhfduf873\", \"happy birthday\", tags) let metadata; try { metadata = CardanoWasm.TransactionMetadata.from_bytes(map.to_bytes()); } catch (e) { // this should never happen if OurMetadataLib was generated from compatible CDDL with the metadata definition } likewise you can parse the metadata back very simply with: let cddlMetadata; try { cddlMetadata = OurMetadataLib.Foo.from_bytes(metadata.to_bytes()); } catch (e) { // this should never happen if OurMetadataLib was generated from compatible CDDL with the metadata definition } // we can now directly access the fields with cddlMetadata.receiver_id(), etc If we take advantage of the additional primitives not defined in CDDL but defined for cddl-codegen, then we can specify precisions of u32, u64, i64, i32 for specifying 32 or 64 bits instead of just a general purpose uint/nint/int. If you know your metadata will always be within one of these ranges it can be much more convenient to work with, and if you have signed data this will also make it easier to work with instead of the Int class that CDDL int might generate, since that is either an up to 64-bit positive or an up to 64 negative numbers. This is particularly useful here as lists of CDDL primitives can be exposed directly as Vec to wasm from rust, but when we have int (converts to Int struct) or uint (converts to BigNum struct) a separate structure like that Ints one used above is used. Using the 32-bit versions allows direct js number conversions to/from wasm. If we simply change the tags field to tags: [+i32] our code becomes: // notice how we can directly work with js numbers here now! // but remember they must fit into a 32-bit number now - no 64-bit numbers like are allowed in the metadata const tags = [0, 264, -1024, 32]; const map = OurMetadataLib.Foo.new(\"SJKdj34k3jjKFDKfjFUDfdjkfd\", \"jkfdsufjdk34h3Sdfjdhfduf873\", \"happy birthday\", tags) and deserializaing likewise is much simpler as metadata.tags() will return a JS array or numbers rather than a rust-wasm struct that must be accessed via the wasm boundary.","s":"Using a CDDL Subset","u":"/cardano-multiplatform-lib/modules/metadata","h":"#using-a-cddl-subset","p":84},{"i":96,"t":"Upsides: Can store arbitrary data Potential space-savings if the data is compressed Downsides: Not readable by other methods - must be decoded using this method Requires additional set-up While most data would likely conform to the metadata CDDL subset (or JSON), if your data does not fit there then this encoding style will be necessary. If you still want to take advantage of CDDL type-checking it is possible to create a library just as in the CDDL subset section but without running the checker tool. This could be useful if you are using CDDL outside of the metadata CDDL structure. Otherwise, you can store whatever bytes you want. Note: To conform with the 64-byte limitation on metadata binary values, this method will split the bytes into 64-byte chunks const bytes = /* whatever method you want - you can use the CDDL solution in the 3rd option here */ const metadata = CardanoWasm.encode_arbitrary_bytes_as_metadatum(bytes); const decoded_bytes = CardanoWasm.decode_arbitrary_bytes_from_metadatum(metadata); assertEquals(bytes, decoded_bytes);","s":"Raw Bytes Encoding","u":"/cardano-multiplatform-lib/modules/metadata","h":"#raw-bytes-encoding","p":84},{"i":99,"t":"The example below builds a transaction with all 2 of the 3 input types: key and bootstrap. Multisig (script) inputs are essentially identical to key inputs, but using the scripthash instead of the keyhash, however they are not supported for implicit fee calculation yet. Fees are automatically calculated and sent to a change address in the example. // instantiate the tx builder with the Cardano protocol parameters - these may change later on const txBuilder = makeTxBuilder(); const testnetId = 0; // add a keyhash input - for ADA held in a Shelley-era normal address (Base, Enterprise, Pointer) const prvKey = CML.PrivateKey.from_bech32(\"ed25519e_sk16rl5fqqf4mg27syjzjrq8h3vq44jnnv52mvyzdttldszjj7a64xtmjwgjtfy25lu0xmv40306lj9pcqpa6slry9eh3mtlqvfjz93vuq0grl80\"); const inputAddr = CML.EnterpriseAddress.new(testnetId, CML.StakeCredential.new_key(prvKey.to_public().hash())).to_address(); txBuilder.add_input(CML.SingleInputBuilder.new( CML.TransactionInput.new( CML.TransactionHash.from_hex(\"8561258e210352fba2ac0488afed67b3427a27ccf1d41ec030c98a8199bc22ec\"), // tx hash 0, // index ), CML.TransactionOutput.new( inputAddr, CML.Value.from_coin(BigInt(6000000)), ) ); // base address const outputAddress = CML.Address.from_bech32(\"addr_test1qpu5vlrf4xkxv2qpwngf6cjhtw542ayty80v8dyr49rf5ewvxwdrt70qlcpeeagscasafhffqsxy36t90ldv06wqrk2qum8x5w\"); // pointer address const changeAddress = CML.Address.from_bech32(\"addr_test1gz2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzerspqgpsqe70et\"); // add output to the tx txBuilder.add_output( CML.TransactionOutputBuilder() .with_address(outputAddress) .next() .with_value(CML.Value.from_coin(BigInt(1000000))) .build() ); // calculate the min fee required and send any change to an address // this moves onto the next step of building the transaction: providing witnesses const signedTxBuilder = tx_builder.build( changeAddress, CML.ChangeSelectionAlgo.Default ); // sign with the key that owns the input used signedTxBuilder.add_vkey(CML.make_vkey_witness(txHash, prvKey)); const tx = signedTxBuilder.build_checked(); // ready to submit, can be converted to CBOR via tx.to_cbor_bytes() or to_cbor_hex() for hex","s":"Example code","u":"/cardano-multiplatform-lib/modules/builders/generating_transactions","h":"#example-code","p":97},{"i":101,"t":"Fees in Cardano are based directly on the size of the final encoded transaction. It is important to note that a transaction created by this library potentially can vary in size compared to one built with other tools. This is because transactions, as well as other Cardano structures, are encoded using CBOR a binary JSON-like encoding. Due to arrays and maps allowing both definite or indefinite length encoding in the encoded transaction created by the library, the size can vary. This is because definite encoding consists of a tag containing the size of the array/map which can be 1 or more bytes long depending on the number of elements the size of the encoded structure, while indefinite length encoding consists of a 1 byte starting tag and after all elements are listed, a 1 byte ending tag. These variances should should only be a couple bytes and cardano-multiplatform-lib uses definite encoding by default which is the same length or smaller for any reasonable sized transaction.","s":"A note on fees","u":"/cardano-multiplatform-lib/modules/builders/generating_transactions","h":"#a-note-on-fees","p":97}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,4.364]],["t/5",[0,4.364]],["t/7",[0,4.364]],["t/9",[1,5.545,2,0.996,3,4.362,4,3.777,5,5.545]],["t/11",[6,3.245,7,1.29,8,3.38,9,5.21,10,2.586,11,3.245,12,2.377,13,2.703,14,2.523,15,5.21,16,2.472,17,1.842,18,2.279,19,1.074,20,2.703,21,2.993,22,0.654,23,4.437,24,3.38,25,1.622,26,3.969,27,2.418,28,2.586,29,1.779,30,2.586,31,2.703,32,1.278,33,4.437,34,3.969,35,3.38,36,3.38,37,3.38,38,2.472,39,1.97,40,3.38,41,2.993,42,2.993,43,2.472,44,3.38,45,1.97,46,3.38,47,2.993,48,1.526]],["t/13",[2,0.89,7,0.664,14,0.862,18,2.334,19,0.893,22,0.414,32,1.062,35,3.915,39,1.047,47,2.487,49,1.436,50,2.108,51,2.406,52,2.108,53,2.768,54,2.81,55,0.917,56,1.796,57,4.315,58,4.176,59,2.487,60,2.531,61,2.863,62,1.757,63,1.436,64,1.796,65,1.796,66,2.108,67,2.108,68,1.796,69,3.766,70,2.108,71,1.59,72,1.59,73,4.064,74,1.062,75,1.796,76,0.979,77,2.054,78,1.59,79,1.796,80,1.796,81,0.979,82,1.211,83,2.108,84,1.436,85,1.59,86,3.131,87,1.886,88,2.64,89,2.81,90,2.108,91,3.299,92,2.108,93,2.531,94,5.529,95,3.461,96,4.249,97,2.108,98,2.108,99,2.108,100,2.108,101,1.436,102,1.796,103,1.796,104,1.796,105,4.064,106,3.915,107,4.597,108,3.915,109,1.796,110,1.796,111,2.108,112,2.108,113,1.436,114,2.108,115,1.313,116,2.108,117,2.108,118,1.313,119,3.461,120,0.917,121,3.299,122,2.108,123,1.211,124,2.531,125,3.299,126,2.108,127,1.59,128,1.531,129,3.466,130,2.108,131,3.299,132,1.59,133,1.436,134,2.108,135,1.796,136,1.436,137,2.247,138,2.108,139,2.108,140,2.247,141,1.436,142,1.211,143,2.108,144,1.211,145,1.638,146,0.811,147,2.108,148,1.047,149,2.108,150,2.108,151,2.108,152,2.054,153,2.165,154,2.108,155,2,156,4.064,157,1.313,158,2.108,159,1.59,160,1.195,161,1.047]],["t/15",[12,1.598,13,3.514,16,2.436,17,1.815,18,3.316,19,1.058,25,1.598,27,1.815,47,2.949,51,2.512,54,3.331,58,3.514,60,2.436,62,2.083,63,2.663,72,4.353,93,2.436,104,3.331,108,3.331,146,1.504,162,3.91,163,2.436,164,2.949,165,4.394,166,2.949,167,3.331,168,3.89,169,3.331,170,3.331,171,3.331,172,2.663,173,2.083,174,3.91,175,3.331,176,2.949,177,3.91,178,2.561,179,3.331,180,3.91,181,3.91,182,3.91,183,2.949,184,3.331,185,2.949,186,3.331,187,1.941,188,3.91,189,3.91,190,3.331,191,2.949,192,2.949,193,3.91,194,3.91,195,3.91,196,3.91,197,3.91]],["t/17",[2,1.105,10,2.382,22,0.602,25,2.159,49,3.598,74,0.891,82,1.59,113,2.762,115,1.724,118,1.724,145,1.374,148,1.374,152,1.724,165,4.087,173,1.475,178,1.374,190,2.358,198,1.724,199,4.055,200,2.762,201,2.768,202,2.768,203,5.624,204,2.768,205,1.882,206,2.768,207,2.768,208,4.055,209,2.358,210,1.131,211,1.285,212,2.768,213,2.768,214,2.768,215,2.768,216,3.454,217,2.768,218,2.768,219,1.885,220,1.885,221,1.59,222,2.768,223,1.374,224,2.768,225,2.768,226,2.768,227,2.762,228,4.055,229,2.768,230,2.768,231,4.055,232,2.768,233,4.055,234,2.768,235,4.055,236,2.768,237,2.768,238,2.768,239,4.055,240,2.768,241,2.768,242,2.768,243,2.768,244,2.768,245,1.204,246,2.087,247,2.768,248,2.768,249,1.204,250,1.475,251,2.768,252,2.358,253,2.768,254,2.768,255,2.768,256,2.768,257,2.358,258,2.768,259,2.768,260,2.768,261,1.885,262,2.768,263,2.768,264,2.768,265,2.768,266,2.768,267,2.768,268,2.768,269,2.768,270,2.768,271,2.768,272,2.768,273,2.768,274,2.768,275,2.768,276,2.768,277,2.358,278,2.768]],["t/20",[2,1.068,28,1.603,31,2.199,32,1.922,45,2.248,48,2.18,51,1.97,53,2.199,55,1.405,74,1.684,81,1.498,127,2.434,133,2.199,163,2.011,172,3.084,198,2.011,221,1.854,250,1.72,279,2.199,280,3.414,281,3.228,282,5.23,283,3.228,284,2.75,285,3.228,286,1.405,287,3.228,288,2.011,289,3.084,290,3.228,291,1.85,292,2.18,293,1.5,294,3.228,295,2.199,296,3.228,297,3.228,298,3.228,299,2.75,300,1.498,301,2.75,302,2.75,303,3.228,304,3.228,305,3.228,306,3.856,307,1.854,308,2.434,309,2.75,310,3.228,311,3.228,312,3.228,313,3.228,314,3.228,315,2.248,316,2.786,317,1.854,318,4.528,319,2.596,320,4.528,321,3.228,322,2.011,323,3.228,324,2.434,325,3.228,326,3.228,327,2.434,328,3.228]],["t/22",[7,1.24,17,1.833,19,1.405,32,1.672,53,2.69,55,2.524,65,5.249,78,2.978,81,1.833,88,2.268,155,1.718,160,1.88,161,3.059,279,3.537,308,2.978,309,3.364,315,2.578,317,2.982,322,2.46,329,2.978,330,3.364,331,3.949,332,3.915,333,4.197,334,5.193,335,5.193,336,4.423,337,3.949,338,2.978,339,2.69,340,1.833,341,5.801,342,5.193,343,3.949,344,4.423,345,1.961,346,2.978]],["t/25",[2,1.12,19,0.85,28,1.558,31,3.024,32,1.43,48,1.207,55,1.366,76,1.457,81,1.457,87,1.457,146,1.207,160,1.608,216,4.387,307,1.803,315,2.78,317,1.803,322,1.955,324,3.348,329,2.367,332,2.367,339,2.138,347,3.139,348,3.139,349,2.674,350,3.139,351,3.139,352,3.139,353,3.139,354,3.139,355,3.139,356,3.139,357,3.139,358,3.139,359,3.139,360,4.44,361,3.139,362,3.139,363,3.139,364,3.139,365,3.139,366,3.139,367,3.139,368,3.139,369,4.44,370,3.139,371,3.139,372,3.139,373,3.139,374,4.44,375,3.139,376,3.139,377,3.139,378,3.139,379,3.139,380,3.139,381,3.139,382,2.674,383,2.674,384,2.674,385,3.781,386,2.674,387,2.674,388,2.674,389,2.674,390,2.674,391,3.884,392,2.674,393,2.674,394,3.781,395,2.674,396,2.674,397,2.674,398,2.674,399,2.674,400,2.674]],["t/27",[2,1.12,31,2.73,48,2.016,81,1.861,87,1.861,293,1.15,315,3.077,317,2.302,322,2.497,324,3.954,329,3.023,332,3.023,336,4.466,339,2.73,382,3.414,383,3.414,384,3.414,385,4.466,386,3.414,387,3.414,388,3.414,389,3.414,390,3.414,391,4.406,392,3.414,393,3.414,394,4.466,395,3.414,396,3.414,397,3.414,398,3.414,399,3.414,400,3.414,401,4.009,402,4.009,403,4.009]],["t/29",[2,1.112,7,0.854,55,1.847,81,1.97,87,2.525,293,1.217,315,2.701,317,3.125,322,2.643,333,2.891,339,3.706,346,4.528,391,3.2,404,4.244,405,4.244,406,4.244,407,4.244,408,4.244,409,5.441,410,2.643,411,4.244,412,4.244,413,4.244,414,4.244,415,4.244,416,4.244,417,4.244,418,4.244,419,4.244,420,4.244,421,4.244,422,4.244]],["t/31",[2,1.127,17,2.044,22,0.553,28,1.54,32,0.999,45,2.541,48,1.193,55,1.35,74,0.999,87,2.375,124,1.932,157,2.742,160,2.017,183,2.339,245,1.35,250,1.653,315,3.033,317,2.939,346,2.339,423,3.103,424,2.113,425,2.642,426,3.103,427,3.103,428,1.932,429,3.103,430,3.103,431,3.103,432,2.113,433,4.403,434,3.103,435,3.103,436,3.103,437,2.339,438,3.103,439,2.642,440,3.103,441,3.103,442,3.103,443,3.103,444,3.103,445,3.103,446,3.103,447,5.117,448,3.103,449,4.403,450,5.117,451,3.103,452,3.103,453,3.103,454,3.103,455,3.103,456,3.103,457,4.403,458,4.403,459,3.103,460,3.103,461,4.403,462,3.103,463,3.103,464,3.103,465,3.103,466,3.103,467,3.103]],["t/34",[7,1.22,11,3.147,12,2.478,13,3.441,14,2.065,16,3.147,18,2.902,19,1.368,22,0.634,30,2.508,74,1.627,145,2.508,161,2.508,291,2.065,292,1.943,468,2.692,469,3.147,470,4.303,471,5.052]],["t/36",[6,2.824,7,0.912,8,3.862,10,3.317,11,4.042,12,1.853,20,3.088,22,0.839,27,2.105,28,2.251,210,1.853,211,2.105,223,2.817,286,1.973,410,3.534,472,3.088,473,3.862,474,2.633,475,3.864,476,3.088,477,4.534,478,4.534,479,3.088,480,3.862]],["t/38",[7,1.064,12,2.161,22,0.664,48,2.033,74,1.703,220,3.601,249,2.3,289,3.601,292,2.033,472,3.601,481,2.033,482,3.601,483,2.033,484,2.817]],["t/40",[7,0.757,10,1.868,12,2.055,19,1.018,22,0.711,51,2.188,59,2.837,142,3.253,148,2.496,160,1.363,185,2.837,198,2.343,210,2.055,211,1.746,250,3.018,291,2.315,292,2.492,293,1.442,306,3.205,340,1.746,428,2.343,468,2.005,469,2.343,479,2.563,484,2.679,485,3.763,486,2.563,487,3.763,488,2.837,489,4.283,490,3.205,491,3.763,492,5.029,493,3.253,494,3.205,495,3.763,496,3.792,497,2.837,498,3.763,499,2.563,500,2.563,501,2.837,502,3.763,503,3.763,504,1.637,505,2.343,506,3.763,507,3.763,508,2.563,509,2.005,510,3.205]],["t/42",[2,1.089,7,1.182,12,1.961,14,1.131,19,0.749,22,0.602,28,1.374,32,0.891,38,2.526,48,1.064,51,1.764,55,1.204,76,1.285,86,2.762,115,1.724,137,1.885,142,1.59,160,1.468,173,1.475,205,1.285,210,1.131,249,1.204,288,1.724,291,2.298,292,2.394,293,1.376,319,1.374,340,1.882,410,2.989,468,2.557,469,2.989,475,2.762,504,1.204,509,2.815,511,2.768,512,2.768,513,1.885,514,4.087,515,4.799,516,2.358,517,2.358,518,2.768,519,4.087,520,2.358,521,2.087,522,4.055,523,2.768,524,1.885,525,4.087,526,1.885,527,2.768,528,1.885,529,2.087,530,2.768,531,2.768,532,2.768,533,2.768,534,4.799,535,2.358,536,1.475,537,1.724,538,2.358,539,2.762,540,1.59,541,2.087,542,1.885,543,1.724,544,4.055,545,2.358,546,2.358,547,2.358,548,2.358,549,4.055,550,2.358,551,2.768,552,1.885,553,2.358,554,2.768,555,2.358,556,2.768]],["t/44",[2,1.103,7,0.998,12,2.026,14,1.198,19,0.793,22,0.531,28,1.455,30,1.455,38,3.088,48,1.625,51,1.839,55,1.839,76,1.361,77,1.826,86,2.879,135,2.496,137,1.996,142,1.683,148,1.455,160,1.061,205,1.361,245,1.275,249,1.275,286,1.275,291,1.728,292,2.305,293,1.422,308,2.21,319,1.455,338,2.21,340,1.962,345,1.455,410,1.826,468,2.252,500,1.996,509,2.891,514,2.496,521,2.21,525,4.223,529,3.187,535,2.496,536,1.562,537,1.826,538,2.496,539,2.879,540,1.683,541,2.21,542,1.996,543,1.826,545,2.496,546,2.496,547,2.496,548,2.496,552,1.996,553,2.496,555,2.496,557,1.996,558,2.931,559,2.931,560,2.931,561,2.496,562,2.931,563,2.931,564,1.683,565,2.931,566,2.931,567,2.931,568,1.455,569,2.931,570,2.931,571,2.931,572,2.496,573,2.496,574,2.496,575,4.958,576,4.227,577,4.227,578,2.496,579,2.931,580,2.931,581,2.931]],["t/47",[7,1.05,12,2.133,27,2.422,128,2.422,211,2.422,481,2.006,504,2.27,513,3.554,582,5.218,583,5.218,584,5.218,585,5.218,586,5.218,587,5.218,588,5.218,589,5.218]],["t/49",[2,0.951,43,3.187,223,2.54,345,2.54,481,2.349,504,2.227,557,3.485,578,4.358,590,2.726,591,5.117,592,5.117,593,5.117,594,5.117,595,4.358,596,5.117,597,5.117,598,5.117]],["t/51",[2,1.038,7,0.907,21,3.4,22,0.775,146,1.733,173,2.402,205,2.093,245,1.962,249,1.962,410,2.808,481,2.49,483,1.733,550,3.84,557,3.071,590,2.402,595,3.84,599,4.509,600,4.509,601,4.509,602,3.84,603,4.509,604,4.509,605,4.509,606,4.509,607,4.509,608,4.509,609,4.509,610,4.509,611,2.808,612,4.509,613,4.509]],["t/53",[2,0.98,17,1.939,32,1.345,74,1.734,82,3.093,87,1.939,128,1.939,155,1.818,160,1.513,249,1.818,307,2.399,330,3.558,481,2.292,483,1.606,499,2.845,536,2.226,568,2.074,590,2.226,614,2.845,615,3.558,616,2.845,617,3.15,618,3.558,619,5.386,620,3.558,621,4.177,622,4.177,623,2.074,624,3.558,625,3.558,626,4.177,627,4.177,628,3.558,629,4.177,630,3.558,631,3.558,632,3.558,633,4.177,634,4.177,635,4.177,636,4.177,637,4.177,638,3.558,639,4.177,640,4.177,641,4.177]],["t/55",[2,1.101,74,1.374,82,2.451,87,1.98,144,2.451,160,1.545,192,4.117,293,1.224,307,2.451,316,2.909,481,2.315,483,1.641,504,1.857,508,2.906,540,2.451,568,2.118,623,2.118,630,3.634,631,3.634,638,3.634,642,5.128,643,4.267,644,4.267,645,3.634,646,3.634,647,2.118,648,4.267,649,3.634,650,4.267,651,4.267,652,4.267,653,4.267,654,4.267,655,4.267]],["t/57",[7,1.193,11,3.031,12,1.989,13,3.315,14,2.719,27,2.259,37,4.145,38,3.031,39,2.416,40,4.145,41,3.67,42,3.67,43,3.692,44,4.145,45,2.416,80,4.145,145,2.416,161,2.416,211,2.259,474,2.259,504,2.118,656,4.145]],["t/59",[14,1.812,22,0.702,27,2.058,43,2.761,153,2.362,161,2.201,185,3.343,211,2.596,249,2.434,286,1.929,288,3.484,292,1.704,319,2.201,473,3.776,484,2.362,493,2.546,564,2.546,656,4.764,657,4.433,658,3.019,659,3.776,660,4.218,661,4.433,662,4.433,663,4.433,664,2.546,665,3.776,666,3.343,667,4.433,668,2.761,669,2.761,670,4.433,671,4.433,672,4.433,673,4.433,674,4.433,675,4.433]],["t/62",[2,1.067,7,1.073,17,1.555,22,0.67,25,1.899,29,1.144,61,2.087,76,1.555,120,2.507,123,1.924,124,2.087,144,2.669,145,1.663,152,2.087,153,1.785,160,1.213,178,1.663,221,1.924,483,1.288,568,1.663,647,1.663,676,3.351,677,3.351,678,3.351,679,2.527,680,2.527,681,2.527,682,2.854,683,3.351,684,3.351,685,2.854,686,4.544,687,5.335,688,3.351,689,3.504,690,3.958,691,3.351,692,3.351,693,2.854,694,3.351,695,3.351,696,3.958,697,3.351,698,3.351,699,4.647,700,2.854,701,3.351,702,2.854,703,3.351,704,2.894,705,3.351,706,3.351,707,3.958,708,3.351,709,5.335,710,3.351,711,3.351,712,3.351,713,3.351,714,2.854,715,5.335,716,2.854,717,4.647,718,2.854,719,3.351,720,3.351]],["t/64",[2,1.05,3,2.599,19,1.033,22,0.637,29,1.303,71,2.878,74,1.229,76,1.772,118,2.377,120,2.209,128,2.356,175,3.251,178,1.895,200,2.599,210,1.56,221,2.192,286,1.661,483,1.467,564,2.192,568,1.895,623,1.895,707,3.251,721,3.458,722,6.33,723,3.817,724,3.817,725,2.599,726,5.704,727,2.878,728,3.817,729,3.817,730,3.817,731,3.817,732,3.817,733,2.599,734,2.878,735,3.817,736,2.599,737,5.077,738,3.817,739,3.817,740,3.817,741,3.817,742,3.817,743,3.817,744,3.817,745,3.251,746,3.251,747,3.817,748,3.251,749,3.817,750,3.817,751,3.817,752,3.817]],["t/66",[2,1.081,7,1.003,14,1.518,19,1.349,22,0.626,25,1.005,29,1.268,38,2.787,39,1.221,61,4.275,68,2.095,87,1.142,95,3.164,96,2.095,113,1.675,118,1.532,120,2.617,123,1.413,127,1.855,129,3.759,140,1.675,146,1.721,148,1.221,153,1.311,155,1.07,159,1.855,173,1.311,200,1.675,220,1.675,227,2.53,245,1.07,286,1.616,293,0.706,316,1.311,340,1.142,476,1.675,504,1.07,536,1.311,539,2.53,543,1.532,568,1.221,623,1.844,645,2.095,647,1.221,669,2.313,679,1.855,680,1.855,681,1.855,685,2.095,686,2.095,689,3.374,693,2.095,714,3.164,718,2.095,721,1.675,725,2.53,746,2.095,753,2.46,754,2.46,755,2.095,756,2.46,757,2.46,758,2.46,759,4.985,760,4.475,761,3.714,762,2.095,763,1.675,764,2.46,765,2.46,766,2.46,767,2.095,768,2.46,769,2.46,770,2.46,771,2.46,772,3.714,773,2.46,774,2.46,775,2.46,776,2.46,777,2.46,778,2.095,779,2.46,780,2.46,781,3.714,782,3.811,783,3.714,784,2.46,785,2.095,786,2.095,787,2.46,788,2.095,789,2.46,790,2.46,791,2.46,792,2.095,793,2.46,794,2.46,795,2.46]],["t/68",[2,0.87,7,0.892,19,1.2,22,0.557,25,2.505,57,3.343,61,2.761,74,1.428,120,1.929,160,1.605,293,1.758,474,2.058,483,1.704,504,1.929,524,3.019,568,2.201,590,2.98,721,4.174,785,3.776,786,3.776,796,3.776,797,4.433,798,5.594,799,4.433,800,4.433,801,4.433,802,4.433,803,3.776,804,4.433,805,3.776,806,4.433,807,5.594,808,3.776]],["t/71",[4,3.641,7,1.22,10,3.191,19,0.911,22,0.787,77,2.096,89,2.866,123,3.315,146,1.294,152,2.096,157,2.096,168,2.537,170,2.866,171,4.916,172,2.292,176,2.537,187,1.67,210,1.375,211,2.163,219,2.292,223,2.314,345,1.67,349,2.866,482,2.292,505,3.33,614,2.292,763,2.292,788,2.866,792,2.866,809,2.866,810,3.365,811,3.365,812,5.347,813,5.347,814,3.365,815,4.66,816,4.66,817,2.866,818,3.365,819,2.537,820,2.096,821,3.365,822,4.66,823,3.365,824,4.66,825,4.66,826,3.365,827,3.365,828,5.772,829,4.66,830,3.365,831,3.514,832,3.365,833,3.365,834,3.365,835,3.365,836,2.866,837,3.365,838,3.365]],["t/73",[22,0.582,25,2.352,680,4.34,681,3.499,690,3.952,721,3.16,755,3.952,808,3.952,839,4.64,840,4.64,841,4.64,842,5.756,843,4.64,844,4.64,845,4.64,846,4.64,847,4.64,848,4.64,849,4.64,850,4.64,851,4.64,852,4.64,853,4.64,854,3.952,855,4.64,856,4.64,857,4.64,858,4.64,859,5.756,860,5.756]],["t/75",[2,0.864,3,2.097,6,2.727,10,2.53,11,3.174,12,2.083,14,2.083,16,1.917,17,2.032,18,1.768,20,2.097,22,0.787,23,2.622,27,1.429,28,2.174,29,1.051,30,2.174,32,0.991,33,3.729,36,3.729,41,2.321,45,1.528,46,2.622,48,1.184,51,1.339,128,1.429,140,2.097,155,1.339,176,2.321,187,1.528,205,2.576,223,2.174,245,1.339,280,2.321,300,1.429,302,2.622,327,2.321,468,1.64,469,1.917,474,2.032,488,2.321,496,2.321,500,2.097,501,2.321,682,2.622,727,2.321,733,2.097,809,2.622,861,3.079,862,3.079,863,3.079,864,2.321,865,2.622,866,3.079,867,3.079,868,2.321,869,2.321,870,5.553,871,3.079,872,3.079,873,5.096,874,4.378,875,4.378,876,2.622,877,3.079,878,3.079,879,3.079,880,3.079,881,2.321,882,2.321,883,2.622,884,3.079,885,3.079,886,4.378,887,3.729,888,2.321,889,3.079,890,3.079,891,2.622,892,3.079]],["t/77",[6,2.873,14,1.885,22,0.579,29,1.958,30,2.29,39,2.29,63,3.142,74,1.486,145,2.29,153,2.458,155,2.495,159,3.478,163,2.873,284,4.885,425,3.929,474,2.141,479,3.142,494,3.929,668,2.873,805,3.929,882,3.478,893,4.613,894,4.613,895,4.613,896,4.613,897,3.929,898,4.613,899,4.613,900,4.613,901,4.613,902,4.613,903,4.613,904,3.142]],["t/79",[2,0.483,10,2.186,19,0.84,22,0.738,29,1.503,30,1.54,32,0.999,56,2.642,62,1.653,74,1.794,82,1.782,123,1.782,128,2.375,129,2.339,132,2.339,142,1.782,155,2.227,160,1.594,163,1.932,167,2.642,178,1.54,187,1.54,192,2.339,198,1.932,205,2.044,211,1.44,223,1.54,250,1.653,291,1.799,292,2.141,293,0.89,300,2.044,424,2.113,468,2.346,472,2.113,479,2.113,482,2.113,483,1.693,486,2.113,488,2.339,489,2.642,490,2.642,493,2.939,500,2.999,501,3.32,505,2.742,508,2.113,509,1.653,520,2.642,521,2.339,573,2.642,617,2.339,642,2.642,736,2.999,796,3.75,819,2.339,820,1.932,876,2.642,891,2.642,905,3.103,906,3.103,907,3.103,908,3.103,909,3.103,910,3.103,911,3.103,912,1.653,913,2.642,914,3.103,915,2.642,916,3.103,917,2.642,918,2.642,919,2.339,920,2.642,921,3.103,922,2.642,923,3.75,924,2.642,925,3.103,926,3.103,927,3.103,928,3.103,929,4.403,930,3.103,931,3.103,932,3.103,933,2.642,934,3.103]],["t/81",[2,0.66,10,2.107,22,0.683,27,1.97,43,2.643,60,3.389,133,2.891,136,2.891,145,2.107,146,2.309,152,2.643,178,2.701,205,2.525,210,1.735,211,2.525,223,2.701,250,2.261,474,1.97,476,2.891,524,2.891,614,3.706,869,3.2,887,3.615,897,3.615,935,4.244,936,4.244,937,4.244,938,4.244,939,4.244,940,3.2,941,4.244,942,3.615,943,4.244,944,4.244,945,3.615,946,4.244,947,4.244,948,4.244,949,3.615,950,4.244,951,4.244,952,3.615]],["t/83",[3,3.356,7,1.202,22,0.619,29,1.682,75,4.197,81,2.287,128,2.287,205,2.287,210,2.014,568,2.446,614,3.356,665,4.197,733,3.356,734,3.715,865,4.197,933,4.197,949,4.197,953,3.356,954,4.927,955,4.197,956,4.927,957,4.927,958,4.927,959,4.927]],["t/86",[2,1.069,16,2.324,17,1.732,22,0.812,29,0.845,32,1.728,39,1.229,42,1.866,48,0.952,51,1.954,62,1.319,77,1.542,88,1.422,93,3.342,101,2.542,103,2.108,115,1.542,132,1.866,133,1.686,146,0.952,153,1.988,155,1.077,157,1.542,161,1.229,187,1.229,198,1.542,220,1.686,245,1.077,246,1.866,249,1.077,250,1.319,261,1.686,279,1.686,286,1.077,291,1.836,292,0.952,293,1.434,300,2.321,307,2.872,338,2.814,340,1.149,432,1.686,437,1.866,481,2.169,482,1.686,484,1.319,499,3.059,509,1.319,513,1.686,526,1.686,536,1.319,590,1.988,647,1.229,658,1.686,660,1.866,664,1.422,666,1.866,679,3.387,745,2.108,820,1.542,869,1.866,888,1.866,912,3.005,917,2.108,960,2.475,961,2.475,962,2.475,963,2.324,964,3.178,965,2.475,966,5.366,967,1.686,968,3.732,969,1.866,970,3.732,971,2.475,972,2.475,973,2.108,974,1.866,975,2.108,976,1.866,977,1.866,978,1.686,979,1.866,980,1.686,981,1.866,982,1.866,983,1.866,984,1.866,985,2.475,986,2.475,987,2.475,988,2.108,989,2.475,990,3.732,991,3.178,992,2.475,993,2.475,994,2.475,995,2.475,996,2.475,997,2.475,998,2.475,999,2.108]],["t/88",[291,2.487,293,1.745,316,2.709,564,2.92,574,4.331,615,5.183,912,2.709,953,3.463,1000,4.331,1001,5.085,1002,4.589,1003,5.085,1004,5.085,1005,4.331,1006,5.085,1007,4.331]],["t/90",[2,1.108,7,1.013,17,0.872,22,0.541,25,1.231,29,0.642,32,0.97,45,1.495,49,1.28,55,1.31,62,1.605,76,0.872,84,1.28,113,1.28,120,2.772,124,3.135,128,0.872,137,1.28,140,1.28,141,1.28,146,0.723,148,0.933,155,0.818,164,1.417,178,0.933,184,1.601,200,1.28,219,1.28,246,1.417,257,1.601,261,2.051,286,1.64,293,1.081,300,2.001,315,0.933,316,1.605,319,1.495,340,1.749,344,1.601,345,0.933,474,0.872,475,1.28,481,1.449,483,0.723,486,1.28,497,1.417,499,3.213,528,1.28,540,1.73,541,1.417,542,1.28,543,1.876,552,1.28,572,1.601,611,1.17,616,1.28,623,0.933,646,1.601,647,1.871,664,1.73,669,1.17,689,2.842,704,2.347,725,2.567,727,2.271,817,4.018,864,2.842,868,1.417,881,1.417,904,2.936,912,1.001,940,1.417,963,3.293,964,1.601,967,1.28,969,1.417,973,2.565,978,1.28,980,1.28,991,1.601,1008,1.28,1009,1.28,1010,1.879,1011,1.879,1012,1.601,1013,1.879,1014,1.879,1015,1.879,1016,1.879,1017,1.879,1018,1.879,1019,1.28,1020,1.879,1021,1.879,1022,4.31,1023,1.879,1024,1.879,1025,1.879,1026,1.879,1027,1.879,1028,1.879,1029,1.879,1030,1.879,1031,1.879,1032,1.879,1033,1.879,1034,1.879,1035,1.879,1036,1.879,1037,1.879,1038,1.879,1039,1.879,1040,1.879,1041,1.879,1042,1.879,1043,1.879,1044,1.601,1045,1.601,1046,1.879,1047,1.879,1048,1.879,1049,1.879,1050,1.879,1051,3.012,1052,1.879,1053,1.879,1054,3.012,1055,1.879,1056,1.879,1057,2.271,1058,1.879,1059,1.879,1060,1.879,1061,3.012,1062,1.879,1063,1.879,1064,1.879,1065,1.879,1066,1.879,1067,1.879,1068,1.879,1069,1.879,1070,1.879,1071,1.879,1072,1.879,1073,1.879,1074,1.879,1075,1.601,1076,1.879,1077,1.879,1078,1.879,1079,1.879,1080,1.879,1081,1.879,1082,1.879]],["t/92",[2,1.094,7,0.307,19,0.413,22,0.636,25,2.15,29,0.867,30,0.758,32,1.794,45,1.261,62,0.813,74,0.818,76,0.708,81,0.708,82,1.459,84,1.039,85,1.151,88,1.874,102,1.3,120,1.42,136,1.039,144,2.186,146,0.587,155,1.105,157,0.95,160,0.92,179,1.3,183,1.151,187,0.758,210,1.555,219,1.039,221,0.876,245,0.664,249,1.42,261,2.592,293,1.309,295,1.039,300,0.708,307,2.186,316,2.891,319,0.758,333,1.039,340,1.179,345,0.758,428,0.95,439,1.3,470,1.3,472,1.039,474,1.515,475,1.039,476,1.039,481,1.86,483,1.625,486,1.039,497,1.151,504,1.656,509,0.813,510,1.3,519,1.3,524,2.592,526,1.039,528,1.039,536,2.027,537,2.37,540,2.186,542,2.223,564,1.459,590,0.813,602,1.3,611,0.95,616,1.039,618,1.3,620,2.164,623,1.261,625,3.599,628,3.241,632,2.164,647,0.758,664,1.459,668,1.582,669,0.95,702,1.3,704,0.95,763,1.039,820,2.033,831,1.151,870,1.3,881,3.648,888,1.151,912,0.813,919,1.151,924,1.3,955,1.3,963,3.276,967,3.107,974,1.151,975,1.3,976,1.151,977,1.151,978,1.039,979,1.151,980,1.039,981,1.151,982,1.151,983,1.151,984,1.916,1005,3.241,1008,1.039,1009,1.039,1012,1.3,1019,1.73,1057,3.44,1083,1.526,1084,1.526,1085,2.164,1086,2.541,1087,2.541,1088,1.526,1089,1.3,1090,3.264,1091,1.526,1092,2.541,1093,1.526,1094,1.526,1095,1.526,1096,2.164,1097,2.541,1098,1.526,1099,1.526,1100,1.526,1101,1.526,1102,1.526,1103,2.541,1104,1.526,1105,1.526,1106,2.541,1107,1.526,1108,1.526,1109,1.916,1110,1.526,1111,1.526,1112,1.526,1113,2.541,1114,2.541,1115,2.541,1116,1.526,1117,1.526,1118,2.541,1119,2.541,1120,1.526,1121,1.526,1122,1.526,1123,1.526,1124,2.541,1125,1.526,1126,1.526,1127,1.526,1128,1.526,1129,1.526,1130,1.526,1131,1.526,1132,1.526,1133,1.526,1134,1.526,1135,1.526,1136,1.526,1137,1.526,1138,2.541,1139,2.541,1140,2.541,1141,2.541,1142,2.541,1143,1.526,1144,1.526,1145,1.526,1146,1.526,1147,1.526]],["t/94",[2,1.011,4,2.298,6,0.789,7,0.573,19,0.587,20,0.862,22,0.672,24,1.848,25,1.379,27,0.588,29,0.972,30,1.414,32,1.724,39,1.077,45,1.077,48,0.487,49,0.862,55,1.651,60,0.789,62,1.156,63,0.862,69,0.862,76,0.588,78,2.147,79,1.079,81,1.322,84,1.478,88,0.727,93,0.789,101,1.478,118,1.352,120,1.468,123,0.727,124,0.789,128,2.264,141,1.939,144,1.246,146,0.834,148,1.414,153,0.675,161,0.629,163,0.789,164,0.955,168,0.955,169,1.848,172,0.862,173,0.675,178,1.675,187,1.414,191,2.544,205,1.566,209,1.079,210,0.518,223,2.318,249,0.551,279,1.478,280,0.955,286,1.468,288,1.773,289,1.478,291,1.164,292,0.487,293,0.817,295,1.478,299,1.079,300,1.921,301,1.848,315,0.629,316,0.675,319,1.884,327,0.955,333,2.298,340,1.007,345,0.629,424,1.478,428,0.789,432,0.862,437,0.955,468,1.156,469,0.789,474,1.322,480,1.848,481,1.095,483,1.095,484,0.675,493,1.246,496,2.147,505,0.789,508,0.862,513,0.862,516,1.079,517,1.079,529,0.955,537,0.789,552,0.862,557,0.862,590,0.675,611,1.352,616,0.862,617,1.636,623,1.414,647,0.629,649,1.848,658,0.862,659,1.079,660,0.955,664,2.682,666,0.955,668,1.773,696,1.079,704,3.038,716,1.079,725,0.862,733,1.478,734,0.955,736,0.862,748,1.079,819,0.955,820,0.789,864,2.147,868,1.636,904,0.862,912,3.263,913,2.425,915,1.079,919,1.636,920,1.079,922,1.079,940,1.636,945,1.848,952,3.526,953,2.819,963,2.364,967,3.015,969,3.121,974,1.636,976,1.636,977,1.636,978,1.478,979,1.636,980,1.478,981,0.955,982,1.636,983,2.862,984,0.955,999,1.848,1002,2.544,1008,0.862,1009,0.862,1019,0.862,1044,1.848,1045,1.848,1075,1.848,1085,1.848,1109,0.955,1148,1.266,1149,1.266,1150,1.266,1151,1.266,1152,1.266,1153,1.079,1154,1.266,1155,1.079,1156,1.266,1157,2.17,1158,1.848,1159,1.266,1160,2.847,1161,1.266,1162,1.079,1163,1.079,1164,1.266,1165,2.17,1166,3.374,1167,1.266,1168,1.266,1169,1.266,1170,1.266,1171,2.847,1172,1.266,1173,1.266,1174,1.266,1175,1.079,1176,4.139,1177,1.266,1178,1.266,1179,2.17,1180,1.266,1181,1.266,1182,1.266,1183,1.266,1184,2.17,1185,1.266,1186,2.17,1187,2.17,1188,2.17,1189,2.17,1190,2.17,1191,1.266,1192,2.847,1193,1.266,1194,1.266,1195,1.266,1196,1.266,1197,1.266,1198,2.17,1199,1.266,1200,1.266,1201,1.266,1202,1.266,1203,1.266,1204,1.266,1205,1.266,1206,1.266,1207,1.079,1208,1.266,1209,1.266,1210,1.266,1211,1.266]],["t/96",[2,0.947,4,2.321,7,0.686,19,0.922,21,4.059,22,0.728,29,1.164,32,1.869,48,2.231,69,2.321,77,2.123,88,1.957,93,2.123,115,2.123,120,2.342,144,1.957,166,2.57,187,1.692,210,1.393,245,1.483,289,3.202,291,1.393,293,1.746,295,2.321,300,1.582,345,2.881,432,3.202,481,1.31,484,1.816,493,1.957,526,2.321,528,2.321,611,2.123,658,2.321,668,2.123,763,2.321,782,2.903,831,2.57,883,2.903,904,2.321,912,3.354,988,4.005,1000,2.903,1002,3.545,1008,2.321,1009,2.321,1057,2.57,1089,2.903,1153,2.903,1155,2.903,1158,2.903,1162,2.903,1207,2.903,1212,3.408,1213,3.408,1214,4.702,1215,3.408,1216,3.408,1217,3.408,1218,4.702,1219,3.408,1220,3.408]],["t/99",[2,1.097,7,0.547,14,1.112,18,1.563,22,0.503,25,1.942,39,1.351,51,1.742,53,1.853,57,2.052,58,3.236,59,3.582,60,2.959,61,3.478,64,2.317,69,1.853,71,2.052,72,2.052,74,0.876,85,3.019,86,3.803,87,1.263,106,2.317,109,2.317,110,2.317,119,2.317,120,2.696,141,1.853,142,1.563,146,1.539,173,1.45,191,3.582,221,1.563,227,2.727,277,2.317,288,1.695,292,1.046,504,1.184,505,1.695,536,1.45,539,3.569,543,1.695,561,2.317,564,1.563,623,1.351,624,2.317,647,1.988,762,2.317,767,3.41,778,2.317,803,2.317,836,2.317,854,2.317,882,2.052,923,2.317,1096,2.317,1163,2.317,1221,2.721,1222,2.721,1223,4.004,1224,2.721,1225,2.721,1226,2.721,1227,4.004,1228,2.721,1229,4.004,1230,2.721,1231,2.721,1232,2.721,1233,2.721,1234,2.721,1235,2.721,1236,2.721,1237,2.721,1238,2.721,1239,4.004,1240,2.721,1241,2.721,1242,2.721,1243,2.721,1244,4.004,1245,2.721,1246,2.721,1247,2.721,1248,2.721,1249,2.721,1250,2.721,1251,2.721,1252,2.721,1253,2.721,1254,2.721,1255,2.721,1256,2.721]],["t/101",[19,1.292,22,0.599,29,1.629,51,2.669,58,2.372,74,1.753,101,4.316,136,3.25,145,1.729,148,1.729,161,1.729,166,2.626,186,2.966,227,2.372,245,1.515,252,2.966,286,1.515,291,2.739,292,1.339,293,1.68,300,2.215,319,1.729,424,2.372,428,2.169,481,1.339,483,1.339,484,1.855,493,2,509,1.855,537,2.972,540,3.127,664,3.127,669,2.169,700,2.966,704,2.169,736,2.372,918,2.966,942,2.966,953,3.708,963,2.169,1007,4.637,1019,2.372,1109,2.626,1175,2.966,1257,3.483,1258,4.772,1259,3.483,1260,3.483,1261,4.772,1262,3.483,1263,3.483,1264,3.483,1265,3.483,1266,3.483]]],"invertedIndex":[["",{"_index":2,"t":{"9":{"position":[[6,2],[15,2]]},"13":{"position":[[915,1],[939,1],[1046,1],[1060,1],[1069,2],[1080,1],[1090,1],[1277,1]]},"17":{"position":[[380,1],[459,1],[610,1],[655,2],[717,1],[753,1],[799,2],[808,1],[825,1],[891,1],[936,1],[976,1],[978,2],[1037,1],[1083,2],[1092,1],[1109,1],[1175,1],[1220,1],[1260,1],[1262,2],[1336,2],[1409,2],[1504,1],[1964,2],[2113,1]]},"20":{"position":[[739,1],[748,1],[765,1],[783,1],[817,1],[886,1],[905,2],[964,1],[993,3],[1016,1],[1018,2],[1045,1],[1047,1]]},"25":{"position":[[125,1],[255,2],[278,1],[355,1],[417,1],[562,2],[697,2],[700,3],[715,1],[747,1],[923,1],[1008,3],[1060,1],[1103,1],[1111,1],[1146,1],[1198,1],[1425,1],[1521,2],[1537,1],[1633,1],[1635,2],[1638,1],[1640,1],[1642,1],[1644,2],[1647,1]]},"27":{"position":[[10,1],[651,1],[762,1],[806,1],[814,1],[849,1],[901,1],[1128,1],[1224,2],[1240,1],[1336,1],[1338,2],[1341,1],[1343,1],[1345,1],[1347,2],[1350,1]]},"29":{"position":[[57,2],[60,1],[62,2],[125,2],[194,2],[223,2],[291,2],[311,2],[314,1],[326,1],[731,1],[847,1],[1014,1]]},"31":{"position":[[413,2],[449,1],[647,1],[696,1],[713,2],[716,1],[718,2],[742,2],[806,2],[880,2],[911,2],[932,2],[1003,2],[1006,1],[1020,1],[1628,1],[1716,2],[1719,1],[1721,2],[1735,2],[1802,2],[1805,1],[1819,1],[2079,1],[2147,2],[2150,1],[2152,2],[2219,2],[2222,1],[2236,1],[2485,1]]},"42":{"position":[[898,1],[976,2],[1019,2],[1022,1],[1024,1],[1073,2],[1136,1],[1154,2],[1159,1],[1189,2],[1192,1],[1217,1],[1219,1],[1667,2],[1710,1],[1722,1],[1806,2],[1892,2],[1988,2],[2074,2],[2246,1]]},"44":{"position":[[585,1],[663,2],[706,2],[709,1],[711,1],[760,2],[823,1],[841,2],[846,1],[876,2],[879,1],[902,1],[904,1],[1350,2],[1395,1],[1406,1],[1459,2],[1545,2],[1612,2],[1629,2],[1715,2],[1853,2],[1875,1]]},"49":{"position":[[147,1],[263,1]]},"51":{"position":[[142,1],[249,2],[347,1],[392,2],[523,4]]},"53":{"position":[[466,1],[560,1],[766,2],[777,2]]},"55":{"position":[[234,1],[236,2],[248,1],[250,1],[275,1],[277,2],[336,3],[350,1],[574,5],[580,2],[591,2]]},"62":{"position":[[662,1],[682,1],[689,1],[705,1],[934,1],[966,2],[999,2],[1032,2],[1063,1],[1087,2],[1139,1],[1163,2]]},"64":{"position":[[449,1],[469,1],[499,1],[520,1],[637,2],[640,2],[657,1],[753,2]]},"66":{"position":[[306,2],[354,1],[579,2],[582,2],[675,1],[833,2],[836,2],[947,1],[1133,2],[1144,2],[1166,2],[1187,1],[1189,2],[1192,2],[1278,1],[1430,2],[1433,2],[1515,1],[1571,2],[1651,2],[2189,1],[2230,1],[2414,1]]},"68":{"position":[[111,1],[184,2]]},"75":{"position":[[146,1],[313,1],[397,1],[1030,1]]},"79":{"position":[[191,1]]},"81":{"position":[[328,1]]},"86":{"position":[[330,1],[332,1],[334,1],[358,2],[383,1],[385,1],[387,1],[389,1],[413,1],[415,1],[421,1],[443,1],[492,1],[520,1],[522,1],[524,1],[554,2],[579,1],[706,1],[854,1]]},"90":{"position":[[947,1],[1123,2],[1268,2],[1398,2],[1412,1],[2001,2],[2020,1],[2123,1],[2135,1],[2172,1],[2254,1],[2335,1],[2411,1],[2473,1],[2485,1],[2487,2],[2514,1],[2629,1],[2631,2],[2713,1],[2783,1],[2806,1],[2838,1],[2864,1],[2871,1],[2887,2],[2893,1],[2905,1],[2932,1],[2986,1],[3070,1],[3072,3],[3086,1],[3119,1],[3126,1],[3141,2],[3147,1],[3160,1],[3208,1],[3280,1],[3301,2],[3357,2],[3416,1],[3438,2],[3683,1],[3685,1],[3776,1]]},"92":{"position":[[132,1],[342,1],[344,1],[484,2],[502,1],[634,1],[1089,1],[1848,1],[1893,1],[1901,1],[1910,2],[1913,1],[1915,1],[1917,1],[1919,1],[1921,1],[1991,2],[2033,2],[2059,2],[2083,2],[2091,1],[2109,2],[2137,2],[2354,1],[2407,2],[2410,1],[2441,2],[2444,1],[2481,1],[2526,1],[2557,1],[2559,3],[2572,2],[2575,2],[2578,1],[2580,2],[2583,1],[2585,2],[3075,1],[3099,1],[3101,1],[3136,2],[3139,1],[3192,1],[3194,3],[3220,3],[3238,1],[3240,2],[3376,2],[3390,2],[3749,1]]},"94":{"position":[[606,1],[608,1],[674,1],[822,1],[824,1],[891,1],[2559,1],[2588,2],[2699,2],[2717,3],[2852,2],[2878,2],[3051,1],[3179,1],[3190,1],[3252,1],[3264,1],[3266,2],[3376,1],[3459,1],[3474,1],[3528,1],[3540,1],[3542,2],[3652,1],[3654,2],[4682,2],[4743,2],[4862,1],[4895,1]]},"96":{"position":[[776,1],[778,2],[861,2],[879,1],[957,1]]},"99":{"position":[[350,2],[461,1],[496,1],[501,2],[612,1],[783,1],[1064,2],[1078,2],[1087,2],[1166,1],[1168,2],[1171,2],[1207,1],[1346,2],[1385,1],[1484,2],[1657,2],[1660,2],[1728,2],[1832,1],[1899,2],[1902,2],[2022,1],[2057,2]]}}}],["0",{"_index":647,"t":{"55":{"position":[[259,6]]},"62":{"position":[[1043,2]]},"66":{"position":[[1164,1]]},"86":{"position":[[834,3]]},"90":{"position":[[604,2],[2866,2],[3121,2]]},"92":{"position":[[464,3]]},"94":{"position":[[4864,3]]},"99":{"position":[[498,2],[1075,2]]}}}],["0..64",{"_index":968,"t":{"86":{"position":[[435,7],[456,7]]}}}],["00",{"_index":463,"t":{"31":{"position":[[2135,4]]}}}],["0x",{"_index":1118,"t":{"92":{"position":[[2178,4],[2980,5]]}}}],["0x0000baadf00d0000cafed00d0000deadbeef0000",{"_index":650,"t":{"55":{"position":[[289,46]]}}}],["0x0d",{"_index":374,"t":{"25":{"position":[[823,7],[891,7]]}}}],["0x80000000",{"_index":705,"t":{"62":{"position":[[671,10]]}}}],["0x8badf00d",{"_index":632,"t":{"53":{"position":[[468,17]]},"92":{"position":[[1850,13],[1978,12]]}}}],["0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",{"_index":538,"t":{"42":{"position":[[1076,59]]},"44":{"position":[[763,59]]}}}],["0xad",{"_index":376,"t":{"25":{"position":[[879,5]]}}}],["0xd0",{"_index":373,"t":{"25":{"position":[[817,5]]}}}],["0xdeadbeef",{"_index":1114,"t":{"92":{"position":[[1864,13],[2012,12]]}}}],["0xdeadbeef\\\",\\\"9",{"_index":633,"t":{"53":{"position":[[486,21]]}}}],["0xf0",{"_index":377,"t":{"25":{"position":[[885,5]]}}}],["0xfe",{"_index":372,"t":{"25":{"position":[[811,5]]}}}],["0xff00ff00",{"_index":1144,"t":{"92":{"position":[[3415,12]]}}}],["1",{"_index":540,"t":{"42":{"position":[[1157,1]]},"44":{"position":[[844,1]]},"55":{"position":[[273,1]]},"90":{"position":[[2890,2],[3144,2]]},"92":{"position":[[134,1],[2633,1],[3249,1],[3751,1]]},"101":{"position":[[584,1],[723,1],[780,1]]}}}],["100",{"_index":645,"t":{"55":{"position":[[239,8]]},"66":{"position":[[1128,4]]}}}],["1024",{"_index":982,"t":{"86":{"position":[[844,5]]},"92":{"position":[[474,5]]},"94":{"position":[[2916,5],[4874,5]]}}}],["124",{"_index":1157,"t":{"94":{"position":[[1087,3],[1178,3]]}}}],["125",{"_index":1120,"t":{"92":{"position":[[2272,5]]}}}],["128",{"_index":797,"t":{"68":{"position":[[31,3]]}}}],["13",{"_index":385,"t":{"25":{"position":[[1140,5],[1176,5]]},"27":{"position":[[843,5],[879,5]]}}}],["1507",{"_index":409,"t":{"29":{"position":[[215,7],[874,8]]}}}],["173",{"_index":383,"t":{"25":{"position":[[1130,4]]},"27":{"position":[[833,4]]}}}],["1815",{"_index":698,"t":{"62":{"position":[[503,4]]}}}],["1852",{"_index":694,"t":{"62":{"position":[[465,4]]}}}],["2",{"_index":536,"t":{"42":{"position":[[1035,1]]},"44":{"position":[[722,1]]},"53":{"position":[[535,10]]},"66":{"position":[[1141,2]]},"86":{"position":[[1346,1]]},"92":{"position":[[1908,1],[2116,5],[3345,1],[3359,1]]},"99":{"position":[[48,1]]}}}],["2021",{"_index":447,"t":{"31":{"position":[[735,6],[904,6],[1698,5]]}}}],["208",{"_index":388,"t":{"25":{"position":[[1171,4]]},"27":{"position":[[874,4]]}}}],["240",{"_index":384,"t":{"25":{"position":[[1135,4]]},"27":{"position":[[838,4]]}}}],["25",{"_index":309,"t":{"20":{"position":[[552,3]]},"22":{"position":[[53,2]]}}}],["254",{"_index":387,"t":{"25":{"position":[[1166,4]]},"27":{"position":[[869,4]]}}}],["264",{"_index":981,"t":{"86":{"position":[[838,4]]},"92":{"position":[[468,4]]},"94":{"position":[[4868,4]]}}}],["2^32",{"_index":1179,"t":{"94":{"position":[[2721,5],[2882,5]]}}}],["2^63",{"_index":1087,"t":{"92":{"position":[[141,4],[3758,5]]}}}],["2^64",{"_index":1086,"t":{"92":{"position":[[127,4],[3744,4]]}}}],["3",{"_index":1096,"t":{"92":{"position":[[789,1],[1948,1]]},"99":{"position":[[57,1]]}}}],["30",{"_index":565,"t":{"44":{"position":[[248,2]]}}}],["32",{"_index":983,"t":{"86":{"position":[[850,3]]},"92":{"position":[[480,3]]},"94":{"position":[[2610,3],[3900,2],[4547,2],[4780,2],[4880,4]]}}}],["3rd",{"_index":1216,"t":{"96":{"position":[[845,3]]}}}],["4",{"_index":984,"t":{"86":{"position":[[866,1]]},"92":{"position":[[1960,1],[1994,1]]},"94":{"position":[[770,1]]}}}],["44",{"_index":695,"t":{"62":{"position":[[473,2]]}}}],["5",{"_index":881,"t":{"75":{"position":[[616,1]]},"90":{"position":[[382,1]]},"92":{"position":[[1883,2],[1903,4],[2040,3],[2105,3],[3116,3],[3284,2],[3373,2]]}}}],["5,\\\"obj",{"_index":634,"t":{"53":{"position":[[508,10]]}}}],["64",{"_index":1002,"t":{"88":{"position":[[120,2],[203,2]]},"94":{"position":[[3906,2],[4232,2],[4260,2],[4803,2]]},"96":{"position":[[665,2],[749,2]]}}}],["6srpxzotfk_62kurjkh4vdcfg0ys271pq20omrpe5t",{"_index":406,"t":{"29":{"position":[[78,46]]}}}],["7",{"_index":1140,"t":{"92":{"position":[[3133,2],[3379,2]]}}}],["721",{"_index":312,"t":{"20":{"position":[[741,6]]}}}],["8",{"_index":1004,"t":{"88":{"position":[[138,1]]}}}],["82",{"_index":670,"t":{"59":{"position":[[345,2]]}}}],["8201",{"_index":671,"t":{"59":{"position":[[360,5]]}}}],["8204",{"_index":672,"t":{"59":{"position":[[366,5]]}}}],["8207",{"_index":673,"t":{"59":{"position":[[372,5]]}}}],["825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa01",{"_index":535,"t":{"42":{"position":[[900,75]]},"44":{"position":[[587,75]]}}}],["825820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1a00000001",{"_index":545,"t":{"42":{"position":[[1241,83]]},"44":{"position":[[924,83]]}}}],["89",{"_index":1156,"t":{"94":{"position":[[1049,2]]}}}],["9",{"_index":1115,"t":{"92":{"position":[[1878,4],[2029,3]]}}}],["96",{"_index":802,"t":{"68":{"position":[[231,2]]}}}],["9900025820aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa190001",{"_index":547,"t":{"42":{"position":[[1411,83]]},"44":{"position":[[1094,83]]}}}],["9b00000000000000025f41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aa41aaff1b0000000000000001",{"_index":548,"t":{"42":{"position":[[1495,171]]},"44":{"position":[[1178,171]]}}}],["9f5f48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaa48aaaaaaaaaaaaaaaaff01ff",{"_index":546,"t":{"42":{"position":[[1325,85]]},"44":{"position":[[1008,85]]}}}],["a569617277656176654964782b36737270585a4f54664b5f36324b55724a4b68345664434647305953323731707132304f4d52704535547365696d6167657835697066733a2f2f516d5557503678474875636742557635313467776762743479696a673336615551756e455036317a354438524b53646e616d656e53706163654275642023313530376674726169747385695374617220537569746a4368657374706c6174656442656c7464466c616766506973746f6c647479706565416c69656",{"_index":418,"t":{"29":{"position":[[328,391]]}}}],["a\\\":[{\\\"5",{"_index":635,"t":{"53":{"position":[[519,15]]}}}],["abil",{"_index":685,"t":{"62":{"position":[[224,7]]},"66":{"position":[[620,8]]}}}],["abov",{"_index":616,"t":{"53":{"position":[[46,6]]},"90":{"position":[[906,5]]},"92":{"position":[[1340,6]]},"94":{"position":[[4522,5]]}}}],["accept",{"_index":184,"t":{"15":{"position":[[469,8]]},"90":{"position":[[810,9]]}}}],["access",{"_index":1160,"t":{"94":{"position":[[1311,6],[3677,6],[5146,8]]}}}],["account",{"_index":713,"t":{"62":{"position":[[1035,7]]}}}],["accountkey",{"_index":709,"t":{"62":{"position":[[923,10],[1065,10],[1141,10]]}}}],["accumul",{"_index":775,"t":{"66":{"position":[[1233,11]]}}}],["achiev",{"_index":985,"t":{"86":{"position":[[880,7]]}}}],["actual",{"_index":667,"t":{"59":{"position":[[302,7]]}}}],["ad",{"_index":98,"t":{"13":{"position":[[741,5]]}}}],["ada",{"_index":106,"t":{"13":{"position":[[903,3],[1203,3],[1360,3],[1446,3]]},"99":{"position":[[530,3]]}}}],["add",{"_index":85,"t":{"13":{"position":[[492,3]]},"92":{"position":[[1013,4]]},"99":{"position":[[504,3],[1487,3]]}}}],["addit",{"_index":144,"t":{"13":{"position":[[1999,8]]},"55":{"position":[[24,10]]},"62":{"position":[[198,8],[242,10]]},"92":{"position":[[791,10],[1018,10],[1795,9],[3021,10]]},"94":{"position":[[167,10],[3760,10]]},"96":{"position":[[170,10]]}}}],["addr",{"_index":794,"t":{"66":{"position":[[2409,4]]}}}],["address",{"_index":61,"t":{"13":{"position":[[130,9],[1000,8],[2119,7],[2179,7]]},"62":{"position":[[539,7]]},"66":{"position":[[194,10],[231,7],[314,7],[596,7],[847,7],[873,7],[1202,7],[1446,7],[1466,9],[1592,7],[1678,7],[1740,9],[1792,9],[1859,7],[1914,7],[1945,7],[2148,7],[2181,7],[2303,7],[2332,7]]},"68":{"position":[[484,10]]},"99":{"position":[[326,7],[563,7],[1179,7],[1357,7],[1720,7]]}}}],["advantag",{"_index":1158,"t":{"94":{"position":[[1214,9],[3743,9]]},"96":{"position":[[366,9]]}}}],["advis",{"_index":827,"t":{"71":{"position":[[383,9]]}}}],["ae2",{"_index":781,"t":{"66":{"position":[[1574,4],[1764,3]]}}}],["agnost",{"_index":42,"t":{"11":{"position":[[495,8]]},"57":{"position":[[157,8]]},"86":{"position":[[1625,9]]}}}],["alien",{"_index":417,"t":{"29":{"position":[[302,8]]}}}],["allow",{"_index":424,"t":{"31":{"position":[[27,6]]},"79":{"position":[[410,5]]},"94":{"position":[[4563,6],[4827,7]]},"101":{"position":[[359,8]]}}}],["alonzo",{"_index":40,"t":{"11":{"position":[[464,7]]},"57":{"position":[[78,7]]}}}],["alreadi",{"_index":792,"t":{"66":{"position":[[2314,7]]},"71":{"position":[[932,8]]}}}],["alway",{"_index":529,"t":{"42":{"position":[[577,6]]},"44":{"position":[[381,7],[416,6]]},"94":{"position":[[3994,6]]}}}],["amount",{"_index":893,"t":{"77":{"position":[[31,6]]}}}],["annot",{"_index":605,"t":{"51":{"position":[[307,11]]}}}],["anoth",{"_index":492,"t":{"40":{"position":[[184,7],[215,7]]}}}],["api",{"_index":614,"t":{"53":{"position":[[32,3]]},"71":{"position":[[974,4]]},"81":{"position":[[61,4],[203,3]]},"83":{"position":[[217,3]]}}}],["appropri",{"_index":196,"t":{"15":{"position":[[766,11]]}}}],["arbitrari",{"_index":526,"t":{"42":{"position":[[400,9]]},"86":{"position":[[51,9]]},"92":{"position":[[1683,9]]},"96":{"position":[[19,9]]}}}],["around",{"_index":44,"t":{"11":{"position":[[513,6]]},"57":{"position":[[125,6]]}}}],["arr",{"_index":1062,"t":{"90":{"position":[[3082,3]]}}}],["arr.len",{"_index":1064,"t":{"90":{"position":[[3128,10]]}}}],["array",{"_index":319,"t":{"20":{"position":[[819,7],[888,7],[966,7]]},"42":{"position":[[1026,5]]},"44":{"position":[[713,5]]},"59":{"position":[[232,5]]},"90":{"position":[[623,5],[803,6]]},"92":{"position":[[294,6]]},"94":{"position":[[112,5],[579,5],[761,5],[1066,5],[5085,5]]},"101":{"position":[[343,6]]}}}],["array/map",{"_index":942,"t":{"81":{"position":[[295,9]]},"101":{"position":[[561,9]]}}}],["arrays/buff",{"_index":1020,"t":{"90":{"position":[[825,14]]}}}],["arrret",{"_index":1061,"t":{"90":{"position":[[3063,6],[3217,7]]}}}],["arrret.push(elem",{"_index":1067,"t":{"90":{"position":[[3189,18]]}}}],["arweaveid",{"_index":405,"t":{"29":{"position":[[65,12]]}}}],["as_i32",{"_index":1070,"t":{"90":{"position":[[3330,8]]}}}],["asm.j",{"_index":873,"t":{"75":{"position":[[390,6],[467,6],[527,6]]}}}],["assert(xprvbyt",{"_index":800,"t":{"68":{"position":[[167,16]]}}}],["assert_eq!(hex::encode(tx_in.to_canonical_cbor_byt",{"_index":556,"t":{"42":{"position":[[2168,56]]}}}],["assert_eq!(hex::encode(tx_in.to_cbor_byt",{"_index":554,"t":{"42":{"position":[[1925,46]]}}}],["assertequals(byt",{"_index":1220,"t":{"96":{"position":[[1020,19]]}}}],["asset",{"_index":341,"t":{"22":{"position":[[454,6],[488,5],[529,6]]}}}],["asset_nam",{"_index":314,"t":{"20":{"position":[[767,15]]}}}],["assetnamev2([202",{"_index":386,"t":{"25":{"position":[[1148,17]]},"27":{"position":[[851,17]]}}}],["associ",{"_index":342,"t":{"22":{"position":[[509,10],[587,10]]}}}],["assum",{"_index":63,"t":{"13":{"position":[[150,6]]},"15":{"position":[[678,6]]},"77":{"position":[[13,7]]},"94":{"position":[[1919,8]]}}}],["attach",{"_index":287,"t":{"20":{"position":[[141,8]]}}}],["auto",{"_index":584,"t":{"47":{"position":[[67,4]]}}}],["autom",{"_index":204,"t":{"17":{"position":[[108,9]]}}}],["automat",{"_index":505,"t":{"40":{"position":[[533,13]]},"71":{"position":[[155,9],[549,14],[767,9]]},"79":{"position":[[38,13],[266,13]]},"94":{"position":[[9,9]]},"99":{"position":[[280,13]]}}}],["auxiliarydata",{"_index":139,"t":{"13":{"position":[[1810,14]]}}}],["auxiliarydatahash",{"_index":839,"t":{"73":{"position":[[0,17]]}}}],["avail",{"_index":349,"t":{"25":{"position":[[90,9]]},"71":{"position":[[1128,10]]}}}],["avoid",{"_index":895,"t":{"77":{"position":[[79,5]]}}}],["await",{"_index":225,"t":{"17":{"position":[[612,5]]}}}],["babbag",{"_index":41,"t":{"11":{"position":[[472,8]]},"57":{"position":[[86,8]]},"75":{"position":[[893,7]]}}}],["back",{"_index":552,"t":{"42":{"position":[[1819,4]]},"44":{"position":[[1472,4]]},"90":{"position":[[2105,4]]},"94":{"position":[[3414,4]]}}}],["bar",{"_index":948,"t":{"81":{"position":[[395,4]]}}}],["base",{"_index":227,"t":{"17":{"position":[[672,5],[995,5]]},"66":{"position":[[309,4],[868,4]]},"99":{"position":[[571,6],[1174,4]]},"101":{"position":[[20,5]]}}}],["baseaddr",{"_index":757,"t":{"66":{"position":[[345,8]]}}}],["baseaddress.to_address",{"_index":789,"t":{"66":{"position":[[2191,25]]}}}],["bash",{"_index":928,"t":{"79":{"position":[[1105,4]]}}}],["basic_json",{"_index":631,"t":{"53":{"position":[[455,10]]},"55":{"position":[[223,10]]}}}],["basicconvers",{"_index":625,"t":{"53":{"position":[[292,16]]},"92":{"position":[[994,16],[1558,16],[1808,16],[2748,16],[2998,17]]}}}],["be",{"_index":497,"t":{"40":{"position":[[313,5]]},"90":{"position":[[852,5]]},"92":{"position":[[2685,5]]}}}],["bech32",{"_index":793,"t":{"66":{"position":[[2358,6]]}}}],["becom",{"_index":1205,"t":{"94":{"position":[[4673,8]]}}}],["below",{"_index":221,"t":{"17":{"position":[[535,5]]},"20":{"position":[[508,5]]},"62":{"position":[[614,5]]},"64":{"position":[[351,5]]},"92":{"position":[[1842,5]]},"99":{"position":[[12,5]]}}}],["belt",{"_index":414,"t":{"29":{"position":[[264,7]]}}}],["best",{"_index":437,"t":{"31":{"position":[[336,4]]},"86":{"position":[[1725,5]]},"94":{"position":[[244,4]]}}}],["between",{"_index":524,"t":{"42":{"position":[[364,7]]},"68":{"position":[[11,7]]},"81":{"position":[[233,7]]},"92":{"position":[[118,7],[929,7],[968,7],[3735,7]]}}}],["beyond",{"_index":116,"t":{"13":{"position":[[1207,6]]}}}],["bf1902d1a36464617461a244baadf00da344cafed00da6646e616d656d4d65746164617461204e616d656566696c657382a4637372636473726331646e616d656966696c656e616d6531696d65646961547970656966696c657479706531816864736b6a66616b7381a1403864a3637372636473726332646e616d656966696c656e616d6532696d65646961547970656966696c65747970653265696d6167657821687474733a2f2f736f6d652e776562736974652e636f6d2f696d6167652e706e67696d656469615479706567696d6167652f2a6b6465736372697074696f6e776465736372697074696f6e206f662074686973204e4654a14038641832a1403864a140386481a1403864816864736b6a66616b73a1403864a14038646776657273696f6e02a1403864a14038641905398144baadf00dff",{"_index":401,"t":{"27":{"position":[[12,629]]}}}],["big",{"_index":572,"t":{"44":{"position":[[533,3]]},"90":{"position":[[3326,3]]}}}],["bigger",{"_index":1178,"t":{"94":{"position":[[2710,6]]}}}],["biginteg",{"_index":589,"t":{"47":{"position":[[125,11]]}}}],["bignum",{"_index":1075,"t":{"90":{"position":[[3454,7]]},"94":{"position":[[2747,6],[4462,6]]}}}],["bignum.from_str(\"365",{"_index":791,"t":{"66":{"position":[[2271,24]]}}}],["binari",{"_index":484,"t":{"38":{"position":[[111,7]]},"40":{"position":[[107,6],[266,6]]},"59":{"position":[[153,6]]},"86":{"position":[[288,6]]},"94":{"position":[[320,6]]},"96":{"position":[[696,6]]},"101":{"position":[[309,6]]}}}],["bind",{"_index":887,"t":{"75":{"position":[[995,9],[1082,8]]},"81":{"position":[[255,8]]}}}],["bip32",{"_index":687,"t":{"62":{"position":[[282,5],[321,5],[365,5]]}}}],["bip32privatekey",{"_index":721,"t":{"64":{"position":[[14,15],[403,15]]},"66":{"position":[[70,15]]},"68":{"position":[[54,15],[95,15],[266,16]]},"73":{"position":[[18,15]]}}}],["bip32privatekey.from_bip39_entropy(entropi",{"_index":728,"t":{"64":{"position":[[223,43]]}}}],["bip32privatekey/bip32publickey",{"_index":684,"t":{"62":{"position":[[158,30]]}}}],["bip32publickey",{"_index":755,"t":{"66":{"position":[[89,14]]},"73":{"position":[[34,14]]}}}],["bip39",{"_index":722,"t":{"64":{"position":[[37,5],[111,5],[366,5],[426,5],[476,8]]}}}],["bip44",{"_index":692,"t":{"62":{"position":[[395,5]]}}}],["birthday",{"_index":980,"t":{"86":{"position":[[815,10]]},"90":{"position":[[1386,11]]},"92":{"position":[[447,10]]},"94":{"position":[[3144,10],[4988,10]]}}}],["bit",{"_index":1176,"t":{"94":{"position":[[2614,3],[3909,4],[4235,3],[4550,3],[4783,3],[4806,3]]}}}],["block",{"_index":656,"t":{"57":{"position":[[189,6]]},"59":{"position":[[131,5],[310,5]]}}}],["blockbodyhash",{"_index":840,"t":{"73":{"position":[[49,13]]}}}],["blockchain",{"_index":47,"t":{"11":{"position":[[548,10]]},"13":{"position":[[1535,11],[1668,11]]},"15":{"position":[[415,10]]}}}],["blockfrost",{"_index":203,"t":{"17":{"position":[[84,11],[142,10],[184,10],[353,10],[1475,10]]}}}],["blockfrost'",{"_index":222,"t":{"17":{"position":[[559,12]]}}}],["blockfrost.epochslatestparamet",{"_index":226,"t":{"17":{"position":[[618,36]]}}}],["blockheaderhash",{"_index":841,"t":{"73":{"position":[[63,15]]}}}],["bodi",{"_index":121,"t":{"13":{"position":[[1272,4],[1955,4]]}}}],["bootstrap",{"_index":778,"t":{"66":{"position":[[1436,9]]},"99":{"position":[[80,10]]}}}],["bootstrapwit",{"_index":842,"t":{"73":{"position":[[79,16],[96,18]]}}}],["both",{"_index":1260,"t":{"101":{"position":[[368,4]]}}}],["boundari",{"_index":1211,"t":{"94":{"position":[[5168,9]]}}}],["break",{"_index":834,"t":{"71":{"position":[[752,7]]}}}],["breviti",{"_index":691,"t":{"62":{"position":[[375,8]]}}}],["browser",{"_index":809,"t":{"71":{"position":[[30,7]]},"75":{"position":[[337,8]]}}}],["btreemap::new",{"_index":370,"t":{"25":{"position":[[749,16]]}}}],["buffer.from",{"_index":752,"t":{"64":{"position":[[736,16]]}}}],["buffer.from(entropi",{"_index":751,"t":{"64":{"position":[[707,20]]}}}],["buffer.from(metadata.as_byt",{"_index":1079,"t":{"90":{"position":[[3574,33]]}}}],["build",{"_index":191,"t":{"15":{"position":[[581,8]]},"94":{"position":[[1653,5],[2070,5],[2105,5],[2378,5]]},"99":{"position":[[18,6],[1648,8],[1764,8]]}}}],["builder",{"_index":18,"t":{"11":{"position":[[119,8]]},"13":{"position":[[209,7],[777,7],[1894,8]]},"15":{"position":[[35,7],[250,7],[664,8]]},"34":{"position":[[247,8]]},"75":{"position":[[188,8]]},"99":{"position":[[372,7]]}}}],["builder.add_change_if_needed(address",{"_index":92,"t":{"13":{"position":[[607,38]]}}}],["builder.build",{"_index":122,"t":{"13":{"position":[[1279,15]]}}}],["builder.set_fee(fe",{"_index":90,"t":{"13":{"position":[[552,21]]}}}],["built",{"_index":1259,"t":{"101":{"position":[[193,5]]}}}],["burn",{"_index":117,"t":{"13":{"position":[[1227,7]]}}}],["byron",{"_index":38,"t":{"11":{"position":[[447,7]]},"42":{"position":[[456,5],[552,5]]},"44":{"position":[[277,5],[399,5],[481,5]]},"57":{"position":[[61,7]]},"66":{"position":[[188,5],[1456,5],[1668,5]]}}}],["byronaddr",{"_index":779,"t":{"66":{"position":[[1505,9]]}}}],["byte",{"_index":293,"t":{"20":{"position":[[281,5],[599,5],[704,5]]},"27":{"position":[[4,5]]},"29":{"position":[[320,5]]},"40":{"position":[[644,5],[739,6]]},"42":{"position":[[1138,5],[1832,5],[2092,5]]},"44":{"position":[[825,5],[1485,5],[1733,5]]},"55":{"position":[[150,6]]},"66":{"position":[[2347,5]]},"68":{"position":[[35,4],[234,4],[283,4]]},"79":{"position":[[520,5]]},"86":{"position":[[423,5],[1171,6],[1191,5],[1739,5]]},"88":{"position":[[123,5],[206,6]]},"90":{"position":[[664,5],[798,4],[820,4]]},"92":{"position":[[1091,4],[1599,4],[1962,4],[1996,4],[2949,4],[3198,9]]},"94":{"position":[[1052,5],[1091,5],[1182,6]]},"96":{"position":[[623,5],[668,4],[738,5],[752,4],[770,5]]},"101":{"position":[[594,5],[725,4],[782,4],[846,5]]}}}],["byte(a",{"_index":1101,"t":{"92":{"position":[[1041,7]]}}}],["byte/str",{"_index":1110,"t":{"92":{"position":[[1578,11]]}}}],["bytestr",{"_index":1005,"t":{"88":{"position":[[149,11]]},"92":{"position":[[1967,10],[2001,10],[2144,11],[3404,10]]}}}],["calcul",{"_index":59,"t":{"13":{"position":[[110,12],[577,9]]},"40":{"position":[[382,10]]},"99":{"position":[[254,11],[294,10],[1663,9]]}}}],["call",{"_index":123,"t":{"13":{"position":[[1302,6]]},"62":{"position":[[314,6]]},"66":{"position":[[136,7]]},"71":{"position":[[407,4],[863,4],[919,6],[1047,6]]},"79":{"position":[[201,6]]},"94":{"position":[[1607,6]]}}}],["came",{"_index":553,"t":{"42":{"position":[[1915,4]]},"44":{"position":[[1568,4]]}}}],["canon",{"_index":525,"t":{"42":{"position":[[372,9],[587,9],[2077,9]]},"44":{"position":[[436,9],[501,9],[1718,9]]}}}],["canonical_cbor_hex",{"_index":534,"t":{"42":{"position":[[879,18],[1221,19],[2225,20]]}}}],["canonicalcborhex",{"_index":575,"t":{"44":{"position":[[568,16],[906,17],[1856,18]]}}}],["capacitor",{"_index":890,"t":{"75":{"position":[[1032,9]]}}}],["cardano",{"_index":74,"t":{"13":{"position":[[309,7],[426,7]]},"17":{"position":[[329,7]]},"20":{"position":[[74,7],[244,8],[454,7]]},"31":{"position":[[790,7]]},"34":{"position":[[66,7]]},"38":{"position":[[0,7]]},"53":{"position":[[108,7],[214,7]]},"55":{"position":[[35,7]]},"64":{"position":[[312,7]]},"68":{"position":[[19,7]]},"77":{"position":[[61,7]]},"79":{"position":[[308,7],[671,7],[692,7],[1093,7]]},"92":{"position":[[845,7],[1315,7]]},"99":{"position":[[389,7]]},"101":{"position":[[8,7],[264,7],[856,7]]}}}],["cardano'",{"_index":898,"t":{"77":{"position":[[147,9]]}}}],["cardanonodeplutusdatumschema",{"_index":644,"t":{"55":{"position":[[161,28]]}}}],["cardanowasm.address.from_bech32(\"addr1vyt3w9chzut3w9chzut3w9chzut3w9chzut3w9chzut3w9cj43ltf",{"_index":795,"t":{"66":{"position":[[2416,94]]}}}],["cardanowasm.baseaddress.new",{"_index":758,"t":{"66":{"position":[[356,28]]}}}],["cardanowasm.bip32privatekey.from_128_xprv(xprvbyt",{"_index":799,"t":{"68":{"position":[[113,53]]}}}],["cardanowasm.bip32privatekey.from_bech32(\"xprv17qx9vxm6060qjn5fgazfue9nwyf448w7upk60c3epln82vumg9r9kxzsud9uv5rfscxp382j2aku254zj3qfx9fx39t6hjwtmwq85uunsd8x0st3j66lzf5yn30hwq5n75zeuplepx8vxc502txx09ygjgx06n0p",{"_index":708,"t":{"62":{"position":[[707,209]]}}}],["cardanowasm.bip32privatekey.from_bip39_entropi",{"_index":750,"t":{"64":{"position":[[659,47]]}}}],["cardanowasm.bip32privatekey.to_128_xprv",{"_index":801,"t":{"68":{"position":[[187,43]]}}}],["cardanowasm.byronaddress.icarus_from_key",{"_index":780,"t":{"66":{"position":[[1517,41]]}}}],["cardanowasm.decode_arbitrary_bytes_from_metadatum(metadata",{"_index":1219,"t":{"96":{"position":[[959,60]]}}}],["cardanowasm.decode_metadatum_to_json_str(metadata",{"_index":1094,"t":{"92":{"position":[[636,50]]}}}],["cardanowasm.encode_arbitrary_bytes_as_metadatum(byt",{"_index":1217,"t":{"96":{"position":[[881,55]]}}}],["cardanowasm.encode_json_str_to_metadatum(json.stringify(obj",{"_index":1091,"t":{"92":{"position":[[504,61]]}}}],["cardanowasm.enterpriseaddress.new",{"_index":766,"t":{"66":{"position":[[677,34]]}}}],["cardanowasm.metadatajsonschema.noconvers",{"_index":1092,"t":{"92":{"position":[[566,46],[687,46]]}}}],["cardanowasm.metadatalist.new",{"_index":1029,"t":{"90":{"position":[[1414,31]]}}}],["cardanowasm.metadatamap.new",{"_index":1021,"t":{"90":{"position":[[949,30]]}}}],["cardanowasm.networkinfo.mainnet().network_id",{"_index":759,"t":{"66":{"position":[[385,47],[712,47],[981,47],[1311,47]]}}}],["cardanowasm.networkinfo.mainnet().protocol_mag",{"_index":784,"t":{"66":{"position":[[1600,50]]}}}],["cardanowasm.pointer.new",{"_index":771,"t":{"66":{"position":[[1103,24]]}}}],["cardanowasm.pointeraddress.new",{"_index":770,"t":{"66":{"position":[[949,31]]}}}],["cardanowasm.rewardaddress.new",{"_index":777,"t":{"66":{"position":[[1280,30]]}}}],["cardanowasm.stakecredential.from_keyhash(stakekey.to_raw_key().hash",{"_index":761,"t":{"66":{"position":[[507,71],[1359,70]]}}}],["cardanowasm.stakecredential.from_keyhash(utxopubkey.to_raw_key().hash",{"_index":760,"t":{"66":{"position":[[433,73],[760,72],[1029,73]]}}}],["cardanowasm.transactionmetadata.from_bytes(map.to_byt",{"_index":1185,"t":{"94":{"position":[[3192,59]]}}}],["cardanowasm.transactionmetadatum.new_list(tag",{"_index":1035,"t":{"90":{"position":[[1952,48]]}}}],["cardanowasm.transactionmetadatum.new_map(map",{"_index":1036,"t":{"90":{"position":[[2022,46]]}}}],["cardanowasm.transactionmetadatum.new_text(\"com",{"_index":1027,"t":{"90":{"position":[[1283,53]]}}}],["cardanowasm.transactionmetadatum.new_text(\"happi",{"_index":1028,"t":{"90":{"position":[[1337,48]]}}}],["cardanowasm.transactionmetadatum.new_text(\"jkfdsufjdk34h3sdfjdhfduf873",{"_index":1026,"t":{"90":{"position":[[1194,73]]}}}],["cardanowasm.transactionmetadatum.new_text(\"receiver_id",{"_index":1023,"t":{"90":{"position":[[992,57]]}}}],["cardanowasm.transactionmetadatum.new_text(\"sender_id",{"_index":1025,"t":{"90":{"position":[[1138,55]]}}}],["cardanowasm.transactionmetadatum.new_text(\"sjkdj34k3jjkfdkfjfudfdjkfd",{"_index":1024,"t":{"90":{"position":[[1050,72]]}}}],["cardanowasm.transactionmetadatum.new_text(\"tag",{"_index":1034,"t":{"90":{"position":[[1901,50]]}}}],["cardanowasm.transactionmetadatumkind.byt",{"_index":1078,"t":{"90":{"position":[[3523,43]]}}}],["cardanowasm.transactionmetadatumkind.int",{"_index":1068,"t":{"90":{"position":[[3230,41]]}}}],["cardanowasm.transactionmetadatumkind.metadatalist",{"_index":1060,"t":{"90":{"position":[[3008,50]]}}}],["cardanowasm.transactionmetadatumkind.metadatamap",{"_index":1050,"t":{"90":{"position":[[2720,49]]}}}],["cardanowasm.transactionmetadatumkind.text",{"_index":1080,"t":{"90":{"position":[[3613,42]]}}}],["cardanowasm.transactionoutput(address",{"_index":790,"t":{"66":{"position":[[2232,38]]}}}],["cardano’",{"_index":906,"t":{"79":{"position":[[67,9]]}}}],["care",{"_index":659,"t":{"59":{"position":[[41,4]]},"94":{"position":[[275,4]]}}}],["cargo",{"_index":1166,"t":{"94":{"position":[[1647,5],[1659,5],[2099,5],[2111,5]]}}}],["case",{"_index":817,"t":{"71":{"position":[[200,4]]},"90":{"position":[[2715,4],[3003,4],[3225,4],[3518,4],[3608,4]]}}}],["catalyst",{"_index":34,"t":{"11":{"position":[[371,10]]}}}],["catch",{"_index":1044,"t":{"90":{"position":[[2475,5]]},"94":{"position":[[3254,5],[3530,5]]}}}],["categori",{"_index":678,"t":{"62":{"position":[[19,10]]}}}],["caus",{"_index":489,"t":{"40":{"position":[[129,6],[441,7]]},"79":{"position":[[567,6]]}}}],["cbor",{"_index":292,"t":{"20":{"position":[[276,4],[337,4],[594,4],[699,4]]},"34":{"position":[[153,4]]},"38":{"position":[[40,5]]},"40":{"position":[[59,4],[156,4],[285,4],[569,4],[639,4],[734,4]]},"42":{"position":[[48,4],[259,4],[382,4],[597,4],[1013,5],[1827,4],[1853,4],[2087,4]]},"44":{"position":[[446,5],[511,4],[700,5],[1480,4],[1506,4],[1728,4]]},"59":{"position":[[279,4]]},"79":{"position":[[420,4],[455,4],[465,4],[854,4]]},"86":{"position":[[283,4]]},"94":{"position":[[956,5]]},"99":{"position":[[2097,4]]},"101":{"position":[[302,4]]}}}],["cbor'",{"_index":485,"t":{"40":{"position":[[7,6]]}}}],["cd",{"_index":1170,"t":{"94":{"position":[[2358,2]]}}}],["cddl",{"_index":912,"t":{"79":{"position":[[208,4]]},"86":{"position":[[243,5],[1061,4],[1084,4],[1162,4],[1310,4],[1481,4]]},"88":{"position":[[39,4]]},"90":{"position":[[318,5]]},"92":{"position":[[317,4]]},"94":{"position":[[458,4],[588,4],[974,4],[1325,4],[1402,4],[1450,4],[1480,4],[1531,4],[1592,4],[1686,4],[1756,4],[1908,4],[1942,4],[2038,4],[2191,4],[3342,4],[3618,4],[3797,4],[3818,4],[4177,4],[4326,4]]},"96":{"position":[[241,4],[379,4],[448,4],[544,4],[573,4],[824,4]]}}}],["cddlmetadata",{"_index":1190,"t":{"94":{"position":[[3441,13],[3461,12]]}}}],["cddlmetadata.receiver_id",{"_index":1193,"t":{"94":{"position":[[3700,27]]}}}],["cert",{"_index":773,"t":{"66":{"position":[[1169,4]]}}}],["certain",{"_index":425,"t":{"31":{"position":[[45,7]]},"77":{"position":[[23,7]]}}}],["certif",{"_index":94,"t":{"13":{"position":[[685,13],[1487,12],[2058,12],[2296,12],[2470,13],[2637,12],[2689,12]]}}}],["cfg",{"_index":214,"t":{"17":{"position":[[376,3]]}}}],["chain",{"_index":12,"t":{"11":{"position":[[52,5],[75,5],[417,5]]},"15":{"position":[[61,5]]},"34":{"position":[[34,5],[147,5]]},"36":{"position":[[327,5]]},"38":{"position":[[11,5]]},"40":{"position":[[170,5],[597,5]]},"42":{"position":[[167,5],[561,5],[759,5]]},"44":{"position":[[7,5],[286,5],[459,5]]},"47":{"position":[[7,5]]},"57":{"position":[[31,5]]},"75":{"position":[[728,6],[826,5],[907,5]]}}}],["chan",{"_index":511,"t":{"42":{"position":[[3,4]]}}}],["chang",{"_index":60,"t":{"13":{"position":[[123,6],[758,6],[993,6]]},"15":{"position":[[154,7]]},"81":{"position":[[114,6],[433,7]]},"94":{"position":[[4626,6]]},"99":{"position":[[319,6],[429,6],[1707,6]]}}}],["changeaddress",{"_index":1239,"t":{"99":{"position":[[1371,13],[1852,14]]}}}],["charg",{"_index":1111,"t":{"92":{"position":[[1637,6]]}}}],["check",{"_index":904,"t":{"77":{"position":[[310,5]]},"90":{"position":[[2565,5],[2642,5],[3468,8],[3810,8]]},"94":{"position":[[1434,5]]},"96":{"position":[[389,8]]}}}],["checker",{"_index":1162,"t":{"94":{"position":[[1536,8]]},"96":{"position":[[492,7]]}}}],["chestplat",{"_index":413,"t":{"29":{"position":[[250,13]]}}}],["chimer",{"_index":720,"t":{"62":{"position":[[1166,8]]}}}],["choic",{"_index":748,"t":{"64":{"position":[[619,8]]},"94":{"position":[[249,7]]}}}],["choos",{"_index":523,"t":{"42":{"position":[[357,6]]}}}],["chunk",{"_index":1215,"t":{"96":{"position":[[757,6]]}}}],["chunkablestring::from(\"htts://some.website.com/image.png",{"_index":353,"t":{"25":{"position":[[195,59]]}}}],["chunkablestring::from(\"src1",{"_index":363,"t":{"25":{"position":[[531,30]]}}}],["chunkablestring::from(\"src2",{"_index":366,"t":{"25":{"position":[[666,30]]}}}],["cip",{"_index":308,"t":{"20":{"position":[[548,3]]},"22":{"position":[[49,3]]},"44":{"position":[[244,3]]}}}],["cip25",{"_index":28,"t":{"11":{"position":[[279,5],[312,5]]},"20":{"position":[[0,5]]},"25":{"position":[[59,5]]},"31":{"position":[[97,5]]},"36":{"position":[[343,5]]},"42":{"position":[[646,5]]},"44":{"position":[[389,5]]},"75":{"position":[[756,6],[925,5]]}}}],["cip25metadata",{"_index":329,"t":{"22":{"position":[[0,13]]},"25":{"position":[[1046,13]]},"27":{"position":[[748,13]]}}}],["cip25metadata::from_bytes(hex::decode(bytes).unwrap()).unwrap",{"_index":402,"t":{"27":{"position":[[653,64]]}}}],["cip25metadata::new(labelmetadata::new_label_metadata_v2",{"_index":378,"t":{"25":{"position":[[925,56]]}}}],["cip3",{"_index":730,"t":{"64":{"position":[[307,4]]}}}],["cip36",{"_index":33,"t":{"11":{"position":[[332,5],[365,5]]},"75":{"position":[[768,6],[934,5]]}}}],["class",{"_index":1201,"t":{"94":{"position":[[4166,5]]}}}],["clean",{"_index":838,"t":{"71":{"position":[[1101,7]]}}}],["cleanup",{"_index":816,"t":{"71":{"position":[[172,8],[777,7]]}}}],["cli",{"_index":796,"t":{"68":{"position":[[27,3]]},"79":{"position":[[684,3],[1101,3]]}}}],["cml",{"_index":10,"t":{"11":{"position":[[40,3],[251,4]]},"17":{"position":[[138,3],[349,3],[555,3]]},"36":{"position":[[57,3],[180,3],[209,3],[323,3],[339,3]]},"40":{"position":[[503,3]]},"71":{"position":[[17,3],[87,3],[273,3],[427,3],[643,3],[845,3],[970,3]]},"75":{"position":[[631,3],[822,3],[850,3]]},"79":{"position":[[384,3],[765,3]]},"81":{"position":[[83,3]]}}}],["cml.address.from_bech32(\"addr_test1gz2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzerspqgpsqe70et",{"_index":1240,"t":{"99":{"position":[[1387,96]]}}}],["cml.address.from_bech32(\"addr_test1qpu5vlrf4xkxv2qpwngf6cjhtw542ayty80v8dyr49rf5ewvxwdrt70qlcpeeagscasafhffqsxy36t90ldv06wqrk2qum8x5w",{"_index":1238,"t":{"99":{"position":[[1209,136]]}}}],["cml.cardanonodeplutusdatumschema.basicconvers",{"_index":652,"t":{"55":{"position":[[400,51]]}}}],["cml.cardanonodeplutusdatumschema.detailedschema",{"_index":654,"t":{"55":{"position":[[525,48]]}}}],["cml.changeselectionalgo.default",{"_index":1251,"t":{"99":{"position":[[1867,31]]}}}],["cml.costmodels.new",{"_index":230,"t":{"17":{"position":[[719,21]]}}}],["cml.decode_metadatum_to_json_str(metadatum",{"_index":639,"t":{"53":{"position":[[677,45]]}}}],["cml.decode_plutus_datum_to_json_str(datum",{"_index":653,"t":{"55":{"position":[[480,44]]}}}],["cml.encode_json_str_to_metadatum(basic_json",{"_index":636,"t":{"53":{"position":[[562,44]]}}}],["cml.encode_json_str_to_plutus_datum(basic_json",{"_index":651,"t":{"55":{"position":[[352,47]]}}}],["cml.enterpriseaddress.new(testnetid",{"_index":1230,"t":{"99":{"position":[[785,36]]}}}],["cml.intlist.new",{"_index":235,"t":{"17":{"position":[[827,18],[1111,18]]}}}],["cml.metadatajsonschema.basicconvers",{"_index":637,"t":{"53":{"position":[[607,41]]}}}],["cml.metadatajsonschema.detailedschema",{"_index":640,"t":{"53":{"position":[[723,42]]}}}],["cml.privatekey.from_bech32(\"ed25519e_sk16rl5fqqf4mg27syjzjrq8h3vq44jnnv52mvyzdttldszjj7a64xtmjwgjtfy25lu0xmv40306lj9pcqpa6slry9eh3mtlqvfjz93vuq0grl80",{"_index":1228,"t":{"99":{"position":[[614,152]]}}}],["cml.stakecredential.new_key(prvkey.to_public().hash())).to_address",{"_index":1231,"t":{"99":{"position":[[822,69]]}}}],["cml.subcoin.from_base10_f32(params.price_mem",{"_index":272,"t":{"17":{"position":[[1870,46]]}}}],["cml.subcoin.from_base10_f32(params.price_step",{"_index":273,"t":{"17":{"position":[[1917,46]]}}}],["cml.transactionbuilder.new(configbuilder.build",{"_index":278,"t":{"17":{"position":[[2115,50]]}}}],["cml.transactionbuilderconfigbuilder.new",{"_index":263,"t":{"17":{"position":[[1506,41]]}}}],["cml.transactionhash.from_hex(\"8561258e210352fba2ac0488afed67b3427a27ccf1d41ec030c98a8199bc22ec",{"_index":1234,"t":{"99":{"position":[[966,97]]}}}],["cml.transactioninput.from_cbor_hex(orig_cbor_hex",{"_index":579,"t":{"44":{"position":[[1408,50]]}}}],["cml.transactioninput.from_json(txinjson",{"_index":596,"t":{"49":{"position":[[265,41]]}}}],["cml.transactioninput.new",{"_index":1233,"t":{"99":{"position":[[940,25]]}}}],["cml.transactionoutput.new",{"_index":1235,"t":{"99":{"position":[[1090,26]]}}}],["cml.transactionoutputbuild",{"_index":1242,"t":{"99":{"position":[[1530,30]]}}}],["cml.value.from_coin(bigint(6000000",{"_index":1236,"t":{"99":{"position":[[1128,37]]}}}],["cml_blockfrost::make_tx_builder_cfg(&api).await.unwrap",{"_index":215,"t":{"17":{"position":[[382,57]]}}}],["cml_core::seri",{"_index":518,"t":{"42":{"position":[[131,19]]}}}],["cml_core::serialization::{seri",{"_index":533,"t":{"42":{"position":[[824,36]]}}}],["code",{"_index":178,"t":{"15":{"position":[[324,6],[642,4]]},"17":{"position":[[572,5]]},"62":{"position":[[620,4]]},"64":{"position":[[346,4]]},"79":{"position":[[30,4]]},"81":{"position":[[4,4],[125,4]]},"90":{"position":[[931,5]]},"94":{"position":[[1854,4],[2080,4],[2294,4],[4668,4]]}}}],["codegen",{"_index":913,"t":{"79":{"position":[[213,7]]},"94":{"position":[[1761,7],[1947,7],[3823,8]]}}}],["coin",{"_index":699,"t":{"62":{"position":[[516,4],[1002,4]]}}}],["coins_per_utxo_byte(bignum(params.coins_per_utxo_s",{"_index":266,"t":{"17":{"position":[[1613,56]]}}}],["collateral_percentage(params.collateral_perc",{"_index":275,"t":{"17":{"position":[[1992,49]]}}}],["comment",{"_index":978,"t":{"86":{"position":[[797,10]]},"90":{"position":[[2327,7]]},"92":{"position":[[431,8]]},"94":{"position":[[646,8],[862,8]]}}}],["common",{"_index":8,"t":{"11":{"position":[[18,6]]},"36":{"position":[[43,6]]}}}],["compar",{"_index":252,"t":{"17":{"position":[[1339,8]]},"101":{"position":[[177,8]]}}}],["compat",{"_index":617,"t":{"53":{"position":[[89,13]]},"79":{"position":[[779,10]]},"94":{"position":[[3331,10],[3607,10]]}}}],["complet",{"_index":951,"t":{"81":{"position":[[503,8]]}}}],["complex",{"_index":299,"t":{"20":{"position":[[380,7]]},"94":{"position":[[341,7]]}}}],["compliant",{"_index":427,"t":{"31":{"position":[[82,9]]}}}],["complic",{"_index":1113,"t":{"92":{"position":[[1771,11],[3303,11]]}}}],["compon",{"_index":302,"t":{"20":{"position":[[436,10]]},"75":{"position":[[267,10]]}}}],["compress",{"_index":1212,"t":{"96":{"position":[[73,10]]}}}],["comput",{"_index":916,"t":{"79":{"position":[[597,9]]}}}],["concept",{"_index":902,"t":{"77":{"position":[[287,9]]}}}],["config",{"_index":197,"t":{"15":{"position":[[778,7]]}}}],["configbuild",{"_index":262,"t":{"17":{"position":[[1490,13]]}}}],["conform",{"_index":432,"t":{"31":{"position":[[199,10]]},"86":{"position":[[1794,7]]},"94":{"position":[[1455,8]]},"96":{"position":[[217,7],[648,7]]}}}],["connect",{"_index":921,"t":{"79":{"position":[[939,10]]}}}],["connector",{"_index":566,"t":{"44":{"position":[[257,11]]}}}],["consant",{"_index":697,"t":{"62":{"position":[[491,7]]}}}],["consid",{"_index":994,"t":{"86":{"position":[[1468,8]]}}}],["consist",{"_index":136,"t":{"13":{"position":[[1726,8]]},"81":{"position":[[210,10]]},"92":{"position":[[3319,10]]},"101":{"position":[[516,8],[709,8]]}}}],["console.assert(txin.to_canonical_cbor_hex",{"_index":581,"t":{"44":{"position":[[1809,43]]}}}],["console.assert(txin.to_cbor_hex",{"_index":580,"t":{"44":{"position":[[1578,33]]}}}],["console.log(`detail",{"_index":638,"t":{"53":{"position":[[649,21]]},"55":{"position":[[452,21]]}}}],["console.log(`txin",{"_index":597,"t":{"49":{"position":[[307,17]]}}}],["const",{"_index":120,"t":{"13":{"position":[[1266,5]]},"62":{"position":[[691,5],[917,5],[1046,5],[1124,5]]},"64":{"position":[[485,5],[643,5]]},"66":{"position":[[339,5],[654,5],[933,5],[1261,5],[1499,5],[2175,5],[2217,5],[2403,5]]},"68":{"position":[[89,5]]},"90":{"position":[[937,5],[1401,5],[2004,5],[2125,5],[2157,5],[2241,5],[2321,5],[2400,5],[2770,5],[2796,5],[2827,5],[2895,5],[2920,5],[3076,5],[3149,5],[3272,5]]},"92":{"position":[[332,5],[487,5],[613,5]]},"94":{"position":[[2548,5],[3041,5],[4851,5],[4885,5]]},"96":{"position":[[764,5],[864,5],[937,5]]},"99":{"position":[[445,5],[480,5],[599,5],[767,5],[1187,5],[1365,5],[1810,5],[2013,5]]}}}],["constant",{"_index":833,"t":{"71":{"position":[[670,8]]}}}],["construct",{"_index":868,"t":{"75":{"position":[[226,12]]},"90":{"position":[[879,9]]},"94":{"position":[[2641,9],[2905,9]]}}}],["consult",{"_index":900,"t":{"77":{"position":[[186,10]]}}}],["contain",{"_index":161,"t":{"13":{"position":[[2608,8]]},"22":{"position":[[70,8],[141,7],[247,7],[464,8]]},"34":{"position":[[11,8]]},"57":{"position":[[11,8]]},"59":{"position":[[238,10]]},"86":{"position":[[43,7]]},"94":{"position":[[2023,10]]},"101":{"position":[[534,10]]}}}],["contract",{"_index":194,"t":{"15":{"position":[[631,10]]}}}],["conveni",{"_index":209,"t":{"17":{"position":[[234,11]]},"94":{"position":[[4051,10]]}}}],["convers",{"_index":590,"t":{"49":{"position":[[13,11]]},"51":{"position":[[5,11]]},"53":{"position":[[272,11]]},"68":{"position":[[0,10],[300,10]]},"86":{"position":[[997,11],[1009,10]]},"92":{"position":[[817,10]]},"94":{"position":[[4587,11]]}}}],["convert",{"_index":623,"t":{"53":{"position":[[236,8]]},"55":{"position":[[132,9]]},"64":{"position":[[76,9]]},"66":{"position":[[58,7],[2124,7]]},"90":{"position":[[3441,7]]},"92":{"position":[[920,8],[1142,7]]},"94":{"position":[[2150,11],[4416,9],[4449,9]]},"99":{"position":[[2084,9]]}}}],["conway",{"_index":158,"t":{"13":{"position":[[2497,6]]}}}],["core",{"_index":6,"t":{"11":{"position":[[0,4],[7,4]]},"36":{"position":[[18,4]]},"75":{"position":[[167,4],[704,5]]},"77":{"position":[[282,4]]},"94":{"position":[[1867,4]]}}}],["correctli",{"_index":162,"t":{"15":{"position":[[3,9]]}}}],["cost",{"_index":165,"t":{"15":{"position":[[102,6],[532,4]]},"17":{"position":[[658,4],[981,4],[1458,4]]}}}],["cost_models(costmodel",{"_index":274,"t":{"17":{"position":[[1967,24]]}}}],["costmodel",{"_index":229,"t":{"17":{"position":[[706,10]]}}}],["costmodels.set_plutus_v1(v1cmlcost",{"_index":238,"t":{"17":{"position":[[938,37]]}}}],["costmodels.set_plutus_v2(v2cmlcost",{"_index":244,"t":{"17":{"position":[[1222,37]]}}}],["coupl",{"_index":1264,"t":{"101":{"position":[[839,6]]}}}],["cover",{"_index":901,"t":{"77":{"position":[[271,6]]}}}],["crate",{"_index":11,"t":{"11":{"position":[[44,7],[173,5]]},"34":{"position":[[5,5]]},"36":{"position":[[5,5],[61,7],[184,7],[310,6]]},"57":{"position":[[5,5]]},"75":{"position":[[85,6],[649,7],[666,6]]}}}],["crate'",{"_index":206,"t":{"17":{"position":[[153,7]]}}}],["crates.io",{"_index":958,"t":{"83":{"position":[[253,9]]}}}],["crazi",{"_index":927,"t":{"79":{"position":[[1087,5]]}}}],["creat",{"_index":19,"t":{"11":{"position":[[132,8]]},"13":{"position":[[323,7],[1688,6]]},"15":{"position":[[728,7]]},"22":{"position":[[340,8],[622,7]]},"25":{"position":[[35,6]]},"34":{"position":[[260,8]]},"40":{"position":[[609,7]]},"42":{"position":[[2012,7]]},"44":{"position":[[1653,7]]},"64":{"position":[[193,7]]},"66":{"position":[[221,6],[1698,7],[2065,6],[2379,6]]},"68":{"position":[[437,8]]},"71":{"position":[[657,7]]},"79":{"position":[[984,6]]},"92":{"position":[[1929,7]]},"94":{"position":[[1389,7],[1979,7]]},"96":{"position":[[416,6]]},"101":{"position":[[124,7],[439,7]]}}}],["creation",{"_index":52,"t":{"13":{"position":[[33,9]]}}}],["creator",{"_index":431,"t":{"31":{"position":[[134,9]]}}}],["crypto",{"_index":23,"t":{"11":{"position":[[208,6],[217,6]]},"75":{"position":[[715,7]]}}}],["cryptograph",{"_index":682,"t":{"62":{"position":[[117,17]]},"75":{"position":[[501,13]]}}}],["current",{"_index":13,"t":{"11":{"position":[[60,7]]},"15":{"position":[[90,7],[407,7]]},"34":{"position":[[58,7]]},"57":{"position":[[235,7]]}}}],["custom",{"_index":585,"t":{"47":{"position":[[96,6]]}}}],["daedalu",{"_index":785,"t":{"66":{"position":[[1777,8]]},"68":{"position":[[467,8]]}}}],["dapp",{"_index":500,"t":{"40":{"position":[[398,4]]},"44":{"position":[[251,5]]},"75":{"position":[[307,5]]},"79":{"position":[[921,5],[953,6]]}}}],["data",{"_index":48,"t":{"11":{"position":[[559,5]]},"20":{"position":[[200,5],[211,4],[388,4],[502,5]]},"25":{"position":[[1105,5]]},"27":{"position":[[646,4],[808,5]]},"31":{"position":[[53,4]]},"38":{"position":[[48,4]]},"42":{"position":[[2047,4]]},"44":{"position":[[465,4],[1688,4]]},"75":{"position":[[172,4]]},"86":{"position":[[1780,4]]},"94":{"position":[[4099,4]]},"96":{"position":[[29,4],[65,4],[199,4],[272,4]]}}}],["data::new",{"_index":368,"t":{"25":{"position":[[717,12]]}}}],["datahash",{"_index":843,"t":{"73":{"position":[[115,8]]}}}],["date",{"_index":876,"t":{"75":{"position":[[458,4]]},"79":{"position":[[143,5]]}}}],["date\":\"9",{"_index":446,"t":{"31":{"position":[[721,9]]}}}],["datum",{"_index":642,"t":{"55":{"position":[[7,6],[97,5],[344,5]]},"79":{"position":[[734,6]]}}}],["day",{"_index":450,"t":{"31":{"position":[[775,3],[900,3],[1694,3]]}}}],["dcspark",{"_index":911,"t":{"79":{"position":[[193,7]]}}}],["dd",{"_index":786,"t":{"66":{"position":[[1814,2]]},"68":{"position":[[476,2]]}}}],["de",{"_index":147,"t":{"13":{"position":[[2187,2]]}}}],["de)seri",{"_index":512,"t":{"42":{"position":[[26,13]]}}}],["debug",{"_index":1108,"t":{"92":{"position":[[1486,10]]}}}],["decod",{"_index":528,"t":{"42":{"position":[[441,7]]},"90":{"position":[[2520,8]]},"92":{"position":[[3693,6]]},"96":{"position":[[135,7]]}}}],["decoded_byt",{"_index":1218,"t":{"96":{"position":[[943,13],[1040,15]]}}}],["default",{"_index":1266,"t":{"101":{"position":[[908,7]]}}}],["defin",{"_index":279,"t":{"20":{"position":[[6,7]]},"22":{"position":[[217,7],[389,7]]},"86":{"position":[[232,7]]},"94":{"position":[[3786,7],[3806,7]]}}}],["definit",{"_index":953,"t":{"83":{"position":[[39,12]]},"88":{"position":[[44,11]]},"94":{"position":[[979,11],[1072,10],[1407,11],[2196,10],[3365,10],[3641,10]]},"101":{"position":[[373,8],[498,8],[887,8]]}}}],["deleg",{"_index":567,"t":{"44":{"position":[[303,9]]}}}],["demonstr",{"_index":702,"t":{"62":{"position":[[592,12]]},"92":{"position":[[1829,12]]}}}],["depend",{"_index":700,"t":{"62":{"position":[[526,9]]},"101":{"position":[[605,9]]}}}],["deploy",{"_index":862,"t":{"75":{"position":[[48,8]]}}}],["deposit",{"_index":108,"t":{"13":{"position":[[950,7],[1082,7],[1422,8],[2277,9]]},"15":{"position":[[113,9]]}}}],["deregistered/retir",{"_index":134,"t":{"13":{"position":[[1601,21]]}}}],["deriv",{"_index":686,"t":{"62":{"position":[[235,6],[288,10],[442,10]]},"66":{"position":[[33,10]]}}}],["derive(0",{"_index":715,"t":{"62":{"position":[[1076,10],[1099,10],[1175,10]]}}}],["derive(2",{"_index":719,"t":{"62":{"position":[[1152,10]]}}}],["derive(harden(0",{"_index":712,"t":{"62":{"position":[[1012,19]]}}}],["derive(harden(1815",{"_index":711,"t":{"62":{"position":[[977,21]]}}}],["derive(harden(1852",{"_index":710,"t":{"62":{"position":[[944,21]]}}}],["descript",{"_index":322,"t":{"20":{"position":[[863,14]]},"22":{"position":[[552,12]]},"25":{"position":[[1334,12]]},"27":{"position":[[1037,12]]},"29":{"position":[[983,12]]}}}],["description\":\"happi",{"_index":448,"t":{"31":{"position":[[745,20]]}}}],["deseri",{"_index":469,"t":{"34":{"position":[[120,12]]},"40":{"position":[[620,13]]},"42":{"position":[[207,11],[300,15],[861,13]]},"75":{"position":[[148,15]]},"94":{"position":[[40,15]]}}}],["deserializa",{"_index":1208,"t":{"94":{"position":[[5009,14]]}}}],["design",{"_index":156,"t":{"13":{"position":[[2411,6],[2444,6],[2596,6]]}}}],["desir",{"_index":754,"t":{"66":{"position":[[25,7]]}}}],["detail",{"_index":160,"t":{"13":{"position":[[2575,7],[2617,7]]},"22":{"position":[[431,7],[569,7]]},"25":{"position":[[117,7],[831,9]]},"31":{"position":[[441,7],[1012,7],[1811,7],[2228,7]]},"40":{"position":[[670,7]]},"42":{"position":[[273,7],[1867,7]]},"44":{"position":[[1520,7]]},"53":{"position":[[780,8]]},"55":{"position":[[594,8]]},"62":{"position":[[575,8]]},"68":{"position":[[331,7]]},"79":{"position":[[425,7],[868,8]]},"92":{"position":[[1236,7],[3664,7]]}}}],["detailedschema",{"_index":628,"t":{"53":{"position":[[350,14]]},"92":{"position":[[1121,14],[1347,14],[1728,14],[2321,14]]}}}],["details.descript",{"_index":354,"t":{"25":{"position":[[258,19]]}}}],["details.fil",{"_index":358,"t":{"25":{"position":[[403,13]]}}}],["details.media_typ",{"_index":356,"t":{"25":{"position":[[336,18]]}}}],["details.name.unwrap().0",{"_index":457,"t":{"31":{"position":[[1630,24],[2081,24]]}}}],["differ",{"_index":250,"t":{"17":{"position":[[1319,9]]},"20":{"position":[[426,9]]},"31":{"position":[[243,9]]},"40":{"position":[[248,10],[327,10],[412,9]]},"79":{"position":[[741,12]]},"81":{"position":[[245,9]]},"86":{"position":[[898,9]]}}}],["direct",{"_index":999,"t":{"86":{"position":[[1687,6]]},"94":{"position":[[794,6],[4570,6]]}}}],["directli",{"_index":286,"t":{"20":{"position":[[132,8]]},"36":{"position":[[101,8]]},"44":{"position":[[35,8]]},"59":{"position":[[165,9]]},"64":{"position":[[151,8]]},"66":{"position":[[1825,8],[2389,8]]},"86":{"position":[[920,8]]},"90":{"position":[[196,8],[276,8],[716,8]]},"94":{"position":[[1364,9],[3668,8],[4357,8],[4703,8]]},"101":{"position":[[26,8]]}}}],["directori",{"_index":952,"t":{"81":{"position":[[539,10]]},"94":{"position":[[1545,10],[1569,9],[1960,9],[2013,9],[2223,10],[2475,10]]}}}],["discourag",{"_index":875,"t":{"75":{"position":[[414,11],[544,13]]}}}],["display",{"_index":1107,"t":{"92":{"position":[[1471,7]]}}}],["do",{"_index":788,"t":{"66":{"position":[[2168,6]]},"71":{"position":[[1062,5]]}}}],["doc",{"_index":701,"t":{"62":{"position":[[562,3]]}}}],["document",{"_index":805,"t":{"68":{"position":[[348,8]]},"77":{"position":[[88,11]]}}}],["don't",{"_index":1159,"t":{"94":{"position":[[1300,5]]}}}],["done",{"_index":219,"t":{"17":{"position":[[510,4]]},"71":{"position":[[987,4]]},"90":{"position":[[115,4]]},"92":{"position":[[209,4]]}}}],["doubt",{"_index":150,"t":{"13":{"position":[[2238,6]]}}}],["downsid",{"_index":1009,"t":{"90":{"position":[[44,10]]},"92":{"position":[[72,10]]},"94":{"position":[[147,10]]},"96":{"position":[[84,10]]}}}],["due",{"_index":428,"t":{"31":{"position":[[103,3]]},"40":{"position":[[0,3]]},"92":{"position":[[3634,3]]},"94":{"position":[[105,3]]},"101":{"position":[[336,3]]}}}],["dure",{"_index":571,"t":{"44":{"position":[[470,6]]}}}],["dynam",{"_index":998,"t":{"86":{"position":[[1658,7]]}}}],["e",{"_index":1045,"t":{"90":{"position":[[2481,3]]},"94":{"position":[[3260,3],[3536,3]]}}}],["e.g",{"_index":211,"t":{"17":{"position":[[308,4]]},"36":{"position":[[317,5]]},"40":{"position":[[338,4]]},"47":{"position":[[109,4]]},"57":{"position":[[172,4]]},"59":{"position":[[93,5],[355,4]]},"71":{"position":[[205,5],[705,5]]},"79":{"position":[[666,4]]},"81":{"position":[[145,4],[314,5]]}}}],["each",{"_index":338,"t":{"22":{"position":[[362,4]]},"44":{"position":[[55,4]]},"86":{"position":[[585,4],[1226,4]]}}}],["easi",{"_index":922,"t":{"79":{"position":[[976,4]]},"94":{"position":[[1227,4]]}}}],["easier",{"_index":301,"t":{"20":{"position":[[415,6]]},"94":{"position":[[2651,6],[4127,6]]}}}],["easiest",{"_index":954,"t":{"83":{"position":[[66,7]]}}}],["easili",{"_index":908,"t":{"79":{"position":[[125,6]]}}}],["ecosystem",{"_index":303,"t":{"20":{"position":[[462,9]]}}}],["ed25519",{"_index":690,"t":{"62":{"position":[[327,8],[418,7]]},"73":{"position":[[278,7]]}}}],["ed25519keyhash",{"_index":844,"t":{"73":{"position":[[124,14]]}}}],["ed25519signatur",{"_index":845,"t":{"73":{"position":[[139,16]]}}}],["elem",{"_index":1065,"t":{"90":{"position":[[3155,4]]}}}],["element",{"_index":537,"t":{"42":{"position":[[1037,8]]},"44":{"position":[[724,8]]},"92":{"position":[[1950,9],[3251,7],[3347,9],[3361,7]]},"94":{"position":[[772,8]]},"101":{"position":[[632,8],[757,8]]}}}],["emb",{"_index":925,"t":{"79":{"position":[[1050,5]]}}}],["empti",{"_index":1116,"t":{"92":{"position":[[2129,7]]}}}],["emurgo",{"_index":910,"t":{"79":{"position":[[184,6]]}}}],["enabl",{"_index":814,"t":{"71":{"position":[[135,7]]}}}],["encod",{"_index":291,"t":{"20":{"position":[[265,7],[373,6]]},"34":{"position":[[158,10]]},"40":{"position":[[114,9],[273,8],[574,8]]},"42":{"position":[[264,8],[387,8],[410,9],[1858,8],[2063,7]]},"44":{"position":[[1511,8],[1704,7]]},"79":{"position":[[718,8],[859,8]]},"86":{"position":[[295,8],[1178,8],[1268,6]]},"88":{"position":[[140,8],[169,8]]},"94":{"position":[[422,7],[805,8],[1129,8]]},"96":{"position":[[306,8]]},"101":{"position":[[60,7],[288,7],[326,9],[403,8],[419,7],[507,8],[657,7],[700,8],[896,8]]}}}],["end",{"_index":186,"t":{"15":{"position":[[501,3]]},"101":{"position":[[787,6]]}}}],["endpoint",{"_index":202,"t":{"17":{"position":[[72,8]]}}}],["enough",{"_index":930,"t":{"79":{"position":[[1141,6]]}}}],["ensur",{"_index":114,"t":{"13":{"position":[[1119,7]]}}}],["enterpris",{"_index":762,"t":{"66":{"position":[[585,10]]},"99":{"position":[[578,11]]}}}],["enterpriseaddr",{"_index":765,"t":{"66":{"position":[[660,14]]}}}],["entir",{"_index":306,"t":{"20":{"position":[[521,6],[612,6]]},"40":{"position":[[453,6]]}}}],["entri",{"_index":744,"t":{"64":{"position":[[579,8]]}}}],["entropi",{"_index":726,"t":{"64":{"position":[[89,7],[182,7],[491,7]]}}}],["enum",{"_index":337,"t":{"22":{"position":[[228,4]]}}}],["environ",{"_index":812,"t":{"71":{"position":[[109,11],[242,13],[488,11]]}}}],["epochs/latest/paramet",{"_index":201,"t":{"17":{"position":[[47,24]]}}}],["equival",{"_index":891,"t":{"75":{"position":[[1048,10]]},"79":{"position":[[540,10]]}}}],["era",{"_index":14,"t":{"11":{"position":[[68,3],[408,3],[442,4],[491,3]]},"13":{"position":[[2381,4]]},"34":{"position":[[74,4]]},"42":{"position":[[462,3]]},"44":{"position":[[487,3]]},"57":{"position":[[56,4],[137,3],[153,3],[243,3]]},"59":{"position":[[262,3]]},"66":{"position":[[1462,3],[1674,3]]},"75":{"position":[[746,4],[860,3],[901,5]]},"77":{"position":[[336,4]]},"99":{"position":[[552,3]]}}}],["especi",{"_index":915,"t":{"79":{"position":[[581,10]]},"94":{"position":[[257,10]]}}}],["essenti",{"_index":1222,"t":{"99":{"position":[[120,11]]}}}],["etc",{"_index":27,"t":{"11":{"position":[[274,4],[481,4]]},"15":{"position":[[123,4]]},"36":{"position":[[355,4]]},"47":{"position":[[137,4]]},"57":{"position":[[95,5]]},"59":{"position":[[378,4]]},"75":{"position":[[114,5]]},"81":{"position":[[174,4]]},"94":{"position":[[3728,3]]}}}],["even",{"_index":167,"t":{"15":{"position":[[162,4]]},"79":{"position":[[1045,4]]}}}],["eventu",{"_index":829,"t":{"71":{"position":[[529,10],[1087,10]]}}}],["ex_unit_prices(cml.exunitprices.new",{"_index":271,"t":{"17":{"position":[[1832,37]]}}}],["exact",{"_index":1132,"t":{"92":{"position":[[2721,5]]}}}],["examin",{"_index":1147,"t":{"92":{"position":[[3587,8]]}}}],["exampl",{"_index":146,"t":{"13":{"position":[[2102,8]]},"15":{"position":[[647,8]]},"25":{"position":[[14,7]]},"51":{"position":[[118,8]]},"66":{"position":[[209,8],[286,8],[2054,7]]},"71":{"position":[[628,8]]},"81":{"position":[[9,8],[512,8],[528,10]]},"86":{"position":[[1249,8]]},"90":{"position":[[898,7]]},"92":{"position":[[2765,7]]},"94":{"position":[[378,9],[999,7]]},"99":{"position":[[4,7],[341,8]]}}}],["except",{"_index":476,"t":{"36":{"position":[[126,6]]},"66":{"position":[[175,9]]},"81":{"position":[[273,10]]},"92":{"position":[[3623,10]]}}}],["excess",{"_index":832,"t":{"71":{"position":[[592,9]]}}}],["exchang",{"_index":931,"t":{"79":{"position":[[1180,10]]}}}],["exchanges/etc",{"_index":764,"t":{"66":{"position":[[640,13]]}}}],["execut",{"_index":823,"t":{"71":{"position":[[313,8]]}}}],["exist",{"_index":133,"t":{"13":{"position":[[1522,5]]},"20":{"position":[[660,8]]},"81":{"position":[[284,6]]},"86":{"position":[[1673,9]]}}}],["explan",{"_index":68,"t":{"13":{"position":[[226,12]]},"66":{"position":[[921,11]]}}}],["explicit",{"_index":663,"t":{"59":{"position":[[253,8]]}}}],["explicitli",{"_index":89,"t":{"13":{"position":[[536,10],[1134,10]]},"71":{"position":[[396,10]]}}}],["exploratori",{"_index":1046,"t":{"90":{"position":[[2539,11]]}}}],["export",{"_index":480,"t":{"36":{"position":[[294,8]]},"94":{"position":[[2214,8],[2361,6]]}}}],["expos",{"_index":557,"t":{"44":{"position":[[44,7]]},"49":{"position":[[29,7]]},"51":{"position":[[21,7]]},"94":{"position":[[4349,7]]}}}],["express",{"_index":1014,"t":{"90":{"position":[[177,11]]}}}],["extend",{"_index":1095,"t":{"92":{"position":[[748,8]]}}}],["extern",{"_index":716,"t":{"62":{"position":[[1090,8]]},"94":{"position":[[1281,8]]}}}],["extra",{"_index":105,"t":{"13":{"position":[[897,5],[1162,5],[1197,5]]}}}],["extract",{"_index":404,"t":{"29":{"position":[[14,9]]}}}],["facilit",{"_index":296,"t":{"20":{"position":[[309,10]]}}}],["fail",{"_index":183,"t":{"15":{"position":[[458,4]]},"31":{"position":[[395,6]]},"92":{"position":[[3685,4]]}}}],["fairli",{"_index":991,"t":{"86":{"position":[[1367,6],[1613,6]]},"90":{"position":[[170,6]]}}}],["faithfulli",{"_index":1099,"t":{"92":{"position":[[909,10]]}}}],["fallback",{"_index":438,"t":{"31":{"position":[[361,8]]}}}],["fast",{"_index":297,"t":{"20":{"position":[[320,4]]}}}],["faster",{"_index":311,"t":{"20":{"position":[[731,7]]}}}],["favor",{"_index":530,"t":{"42":{"position":[[704,5]]}}}],["featur",{"_index":472,"t":{"36":{"position":[[23,8]]},"38":{"position":[[95,8]]},"79":{"position":[[360,7]]},"92":{"position":[[956,7]]}}}],["fee",{"_index":58,"t":{"13":{"position":[[106,3],[532,3],[818,3],[829,3],[889,3],[964,4],[1009,4],[1092,3],[1153,4],[1168,3],[2271,5]]},"15":{"position":[[98,3],[522,5]]},"99":{"position":[[250,3],[271,4],[1681,3]]},"101":{"position":[[0,4]]}}}],["fee_algo(cml.linearfee.new(params.min_fee_a",{"_index":264,"t":{"17":{"position":[[1548,45]]}}}],["fetch",{"_index":181,"t":{"15":{"position":[[390,7]]}}}],["ff00ff00",{"_index":1143,"t":{"92":{"position":[[3208,11]]}}}],["field",{"_index":333,"t":{"22":{"position":[[89,5],[130,5],[473,6],[699,6]]},"29":{"position":[[0,6]]},"92":{"position":[[2635,5]]},"94":{"position":[[1241,6],[1337,5],[3688,6],[4642,5]]}}}],["file",{"_index":81,"t":{"13":{"position":[[417,4]]},"20":{"position":[[896,8]]},"22":{"position":[[598,6]]},"25":{"position":[[1398,6]]},"27":{"position":[[1101,6]]},"29":{"position":[[1002,6]]},"83":{"position":[[155,4]]},"92":{"position":[[1328,4]]},"94":{"position":[[1602,4],[1691,4],[2000,4]]}}}],["filesdetail",{"_index":394,"t":{"25":{"position":[[1412,12],[1524,12]]},"27":{"position":[[1115,12],[1227,12]]}}}],["filesdetails::new",{"_index":360,"t":{"25":{"position":[[430,18],[565,18]]}}}],["filter",{"_index":747,"t":{"64":{"position":[[609,9]]}}}],["final",{"_index":1257,"t":{"101":{"position":[[54,5]]}}}],["find",{"_index":897,"t":{"77":{"position":[[120,4]]},"81":{"position":[[498,4]]}}}],["first",{"_index":725,"t":{"64":{"position":[[70,5]]},"66":{"position":[[280,5],[2118,5]]},"90":{"position":[[2581,5],[2657,5],[3493,5]]},"94":{"position":[[1631,6]]}}}],["fit",{"_index":1207,"t":{"94":{"position":[[4769,3]]},"96":{"position":[[286,3]]}}}],["fix",{"_index":993,"t":{"86":{"position":[[1423,5]]}}}],["flag",{"_index":415,"t":{"29":{"position":[[272,7]]}}}],["flexibl",{"_index":486,"t":{"40":{"position":[[14,11]]},"79":{"position":[[1132,8]]},"90":{"position":[[9,8]]},"92":{"position":[[9,8]]}}}],["follow",{"_index":76,"t":{"13":{"position":[[353,9]]},"25":{"position":[[4,9]]},"42":{"position":[[1003,9]]},"44":{"position":[[690,9]]},"62":{"position":[[268,9]]},"64":{"position":[[97,9]]},"90":{"position":[[921,9]]},"92":{"position":[[828,9]]},"94":{"position":[[2314,9]]}}}],["foo",{"_index":649,"t":{"55":{"position":[[280,8]]},"94":{"position":[[602,3],[818,3]]}}}],["foo.bar",{"_index":937,"t":{"81":{"position":[[150,9]]}}}],["foo::new",{"_index":938,"t":{"81":{"position":[[163,10]]}}}],["foolist",{"_index":943,"t":{"81":{"position":[[320,7]]}}}],["form",{"_index":962,"t":{"86":{"position":[[155,4]]}}}],["formal",{"_index":159,"t":{"13":{"position":[[2525,6]]},"66":{"position":[[905,6]]},"77":{"position":[[250,6]]}}}],["format",{"_index":249,"t":{"17":{"position":[[1309,6]]},"38":{"position":[[53,6]]},"42":{"position":[[1899,6]]},"44":{"position":[[1552,6]]},"51":{"position":[[490,10]]},"53":{"position":[[138,7]]},"59":{"position":[[56,6],[137,6]]},"86":{"position":[[1818,7]]},"92":{"position":[[1251,7],[2838,7],[3453,8]]},"94":{"position":[[1723,6]]}}}],["found",{"_index":955,"t":{"83":{"position":[[138,5]]},"92":{"position":[[1266,5]]}}}],["free",{"_index":828,"t":{"71":{"position":[[412,7],[868,7],[902,7],[1032,7]]}}}],["freed",{"_index":830,"t":{"71":{"position":[[543,5]]}}}],["freedom",{"_index":1135,"t":{"92":{"position":[[3032,7]]}}}],["frequent",{"_index":917,"t":{"79":{"position":[[623,8]]},"86":{"position":[[1446,10]]}}}],["fring",{"_index":1146,"t":{"92":{"position":[[3538,6]]}}}],["from_cbor_byt",{"_index":560,"t":{"44":{"position":[[127,18]]}}}],["from_cbor_hex",{"_index":563,"t":{"44":{"position":[[186,16]]}}}],["from_json",{"_index":592,"t":{"49":{"position":[[55,12]]}}}],["full",{"_index":957,"t":{"83":{"position":[[212,4]]}}}],["function",{"_index":17,"t":{"11":{"position":[[101,13]]},"15":{"position":[[714,8]]},"22":{"position":[[326,9]]},"31":{"position":[[18,8],[154,8]]},"53":{"position":[[71,13]]},"62":{"position":[[625,8]]},"75":{"position":[[293,9],[689,14]]},"86":{"position":[[1051,9],[1215,10]]},"90":{"position":[[2596,8]]}}}],["funtion",{"_index":471,"t":{"34":{"position":[[200,12]]}}}],["gener",{"_index":128,"t":{"13":{"position":[[1397,9],[2436,7]]},"47":{"position":[[72,9]]},"53":{"position":[[24,7]]},"64":{"position":[[3,8],[387,8]]},"75":{"position":[[836,7]]},"79":{"position":[[52,9],[280,8],[397,9]]},"83":{"position":[[13,9]]},"90":{"position":[[739,7]]},"94":{"position":[[1800,8],[2054,8],[2085,8],[2134,8],[2256,8],[3316,9],[3592,9],[3932,7],[4192,9]]}}}],["genesi",{"_index":80,"t":{"13":{"position":[[409,7]]},"57":{"position":[[201,8]]}}}],["genesisdelegatehash",{"_index":846,"t":{"73":{"position":[[156,19]]}}}],["genesishash",{"_index":847,"t":{"73":{"position":[[176,11]]}}}],["get",{"_index":199,"t":{"17":{"position":[[11,7],[1446,7]]}}}],["give",{"_index":660,"t":{"59":{"position":[[71,6],[118,4]]},"86":{"position":[[1244,4]]},"94":{"position":[[2428,4]]}}}],["given",{"_index":1015,"t":{"90":{"position":[[305,5]]}}}],["good",{"_index":995,"t":{"86":{"position":[[1584,4]]}}}],["govern",{"_index":73,"t":{"13":{"position":[[299,9],[2261,9],[2459,10]]}}}],["grammar",{"_index":965,"t":{"86":{"position":[[258,7]]}}}],["guarante",{"_index":520,"t":{"42":{"position":[[240,9]]},"79":{"position":[[107,10]]}}}],["hand",{"_index":1012,"t":{"90":{"position":[[123,4]]},"92":{"position":[[217,4]]}}}],["handl",{"_index":727,"t":{"64":{"position":[[160,6]]},"75":{"position":[[123,8]]},"90":{"position":[[2678,6],[3363,6]]}}}],["happen",{"_index":1187,"t":{"94":{"position":[[3287,6],[3563,6]]}}}],["happi",{"_index":979,"t":{"86":{"position":[[808,6]]},"92":{"position":[[440,6]]},"94":{"position":[[3137,6],[4981,6]]}}}],["hard",{"_index":177,"t":{"15":{"position":[[319,4]]}}}],["harden(num",{"_index":703,"t":{"62":{"position":[[634,11]]}}}],["hardfork",{"_index":960,"t":{"86":{"position":[[30,8]]}}}],["hash",{"_index":142,"t":{"13":{"position":[[1931,4]]},"40":{"position":[[306,6],[353,6],[375,6]]},"42":{"position":[[1148,5]]},"44":{"position":[[835,5]]},"79":{"position":[[607,6]]},"99":{"position":[[1070,4]]}}}],["hash_transaction(bodi",{"_index":143,"t":{"13":{"position":[[1972,23]]}}}],["have",{"_index":212,"t":{"17":{"position":[[313,6]]}}}],["head",{"_index":182,"t":{"15":{"position":[[426,4]]}}}],["held",{"_index":1226,"t":{"99":{"position":[[534,4]]}}}],["hello",{"_index":1141,"t":{"92":{"position":[[3157,9],[3382,7]]}}}],["here",{"_index":668,"t":{"59":{"position":[[316,6]]},"77":{"position":[[164,4]]},"92":{"position":[[2339,5],[3060,5]]},"94":{"position":[[2896,5],[4309,4],[4733,4]]},"96":{"position":[[856,4]]}}}],["hex",{"_index":564,"t":{"44":{"position":[[207,3]]},"59":{"position":[[351,3]]},"64":{"position":[[728,7]]},"88":{"position":[[165,3]]},"92":{"position":[[1049,3],[1100,3]]},"99":{"position":[[2146,3]]}}}],["higher",{"_index":189,"t":{"15":{"position":[[515,6]]}}}],["hip",{"_index":741,"t":{"64":{"position":[[556,6]]}}}],["histor",{"_index":46,"t":{"11":{"position":[[537,10]]},"75":{"position":[[877,10]]}}}],["human",{"_index":610,"t":{"51":{"position":[[475,5]]}}}],["hundr",{"_index":824,"t":{"71":{"position":[[322,8],[711,8]]}}}],["i.",{"_index":112,"t":{"13":{"position":[[1034,4]]}}}],["i32",{"_index":1198,"t":{"94":{"position":[[3881,3],[4657,6]]}}}],["i64",{"_index":1197,"t":{"94":{"position":[[3876,4]]}}}],["icaru",{"_index":783,"t":{"66":{"position":[[1585,6],[1727,6]]}}}],["id",{"_index":459,"t":{"31":{"position":[[1704,2]]}}}],["id\":\"00",{"_index":460,"t":{"31":{"position":[[1724,10]]}}}],["ideal",{"_index":180,"t":{"15":{"position":[[379,7]]}}}],["ident",{"_index":803,"t":{"68":{"position":[[253,9]]},"99":{"position":[[132,9]]}}}],["illustr",{"_index":1133,"t":{"92":{"position":[[2786,10]]}}}],["imag",{"_index":317,"t":{"20":{"position":[[803,8]]},"22":{"position":[[503,5],[673,6]]},"25":{"position":[[1233,6]]},"27":{"position":[[936,6]]},"29":{"position":[[128,8],[883,6]]},"31":{"position":[[684,6],[2140,6],[2479,5]]}}}],["image\":\"ipfs.io/ipfs/qmah6qpkukvp6k9xqb2sa42q3yrffcbybbk8eorrb7fn2g",{"_index":452,"t":{"31":{"position":[[809,70]]}}}],["image\":\"ipfs://qmsfytf8b4ua6hfdr6urdrdzbz9fjcqnuddclr2f7p8xn3",{"_index":461,"t":{"31":{"position":[[1738,63],[2155,63]]}}}],["image/ + + + + +Search the documentation + + + + +

Search the documentation

+ + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..a8ec4fef --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +https://dcspark.github.io/cardano-multiplatform-lib/searchweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/category/buildersweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/category/chainweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/category/coreweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/category/cryptoweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/category/modulesweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/category/multi-eraweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/crate_architectureweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/getting_startedweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/builders/weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/builders/generating_transactionsweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/cborweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/chain/weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/CIP25weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/cip36weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/core/weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/crypto/weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/crypto/generating_keysweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/jsonweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/metadataweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/multi-era/weekly0.5https://dcspark.github.io/cardano-multiplatform-lib/modules/wasmweekly0.5https://dcspark.github.io/cardano-multiplatform-lib/weekly0.5 \ No newline at end of file