html,body{margin:0}.inno :where(*:not(svg,svg *,.inno-no-reset,.inno-no-reset *),use){all:revert;margin:0;padding:0;border:0;list-style:none}@font-face{font-family:”innoInquirerHeadline”;font-weight:100;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-ThinWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-ThinWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:100;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-ThinItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-ThinItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:300;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-LightWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-LightWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:300;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-LightItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-LightItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:normal;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-RegularWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-RegularWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:normal;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-RegularItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-RegularItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:500;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-MediumWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-MediumWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:500;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-MediumItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-MediumItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:600;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-SemiBoldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-SemiBoldWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:600;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-SemiBoldItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-SemiBoldItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:700;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-BoldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-BoldWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:700;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-BoldItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-BoldItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:900;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-BlackWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-BlackWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:900;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-BlackItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-BlackItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerText”;font-weight:normal;src:url(“https://media.inquirer.com/fonts/InquirerTextWEB-RegularWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerTextWEB-RegularWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerText”;font-weight:normal;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerTextWEB-RegularItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerTextWEB-RegularItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerText”;font-weight:bold;src:url(“https://media.inquirer.com/fonts/InquirerTextWEB-BoldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerTextWEB-BoldWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerText”;font-weight:bold;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerTextWEB-BoldItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerTextWEB-BoldItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoGrot10″;font-weight:normal;src:url(“https://media.inquirer.com/fonts/Grot10-RegularWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot10-RegularWEB.woff”) format(“woff”)}@font-face{font-family:”innoGrot10″;font-weight:500;src:url(“https://media.inquirer.com/fonts/Grot10-MediumWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot10-MediumWEB.woff”) format(“woff”)}@font-face{font-family:”innoGrot10″;font-weight:bold;src:url(“https://media.inquirer.com/fonts/Grot10-ExtraboldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot10-ExtraboldWEB.woff”) format(“woff”)}@font-face{font-family:”innoGrot12″;font-weight:normal;src:url(“https://media.inquirer.com/fonts/Grot12Condensed-LightWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot12Condensed-LightWEB.woff”) format(“woff”)}@font-face{font-family:”innoGrot12″;font-weight:bold;src:url(“https://media.inquirer.com/fonts/Grot12Condensed-SemiboldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot12Condensed-SemiboldWEB.woff”) format(“woff”)}body.is-tool-mode{overflow:hidden;height:100%}.inno{–color-background: rgb(238.8, 250.5, 250.5);–color-background-secondary: #f4f1eb;–color-accent: #6ab4bb;–color-over-accent: #ffffff;–color-text-primary: #222222;–color-text-link: rgb(75.8341013825, 158.3594470046, 166.1658986175);–color-text-secondary: #595760;–color-text-tertiary: #808284;–color-text-accent: #6ab4bb;–color-faint: #6ab4bb;–color-mask: rgba(34, 34, 34, 0.8);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:”innoGrot10″,sans-serif;background:var(–color-background);color:var(–color-text-primary);padding-block-end:64px;overflow:clip;font-size:14px;line-height:1}.inno-mode–dark{–color-background: #222222;–color-background-secondary: #595760;–color-accent: #8dd7f7;–color-over-accent: #222222;–color-text-primary: #ffffff;–color-text-secondary: #dcdcdc;–color-text-tertiary: #808284;–color-text-link: #1a6aff;–color-faint: #595760;–color-mask: rgba(255, 255, 255, 0.8)}.inno–lite.inno-color–purple{–color-accent: #7b2589;–color-over-accent: #ffffff;–color-text-accent: #7b2589}.inno–lite.inno-color–pink{–color-accent: #cd0785;–color-over-accent: #ffffff;–color-text-accent: #cd0785}.inno–lite.inno-color–red{–color-accent: #e11b22;–color-over-accent: #ffffff;–color-text-accent: #e11b22}.inno–lite.inno-color–orange{–color-accent: #e66a1f;–color-over-accent: #222222;–color-text-accent: #e66a1f}.inno–lite.inno-color–yellow{–color-accent: #f0af13;–color-over-accent: #222222;–color-text-accent: #f0af13}.inno–lite.inno-color–green{–color-accent: #00a253;–color-over-accent: #ffffff;–color-text-accent: #00a253}.inno–lite.inno-color–teal{–color-accent: #5dd2d2;–color-over-accent: #222222;–color-text-accent: #5dd2d2}.inno–lite.inno-color–light-gray{–color-accent: #dcdcdc;–color-over-accent: #222222;–color-text-accent: #dcdcdc}.inno–lite.inno-color–light-blue{–color-accent: #8dd7f7;–color-over-accent: #222222;–color-text-accent: #8dd7f7}.inno–lite.inno-color–blue{–color-accent: #004e96;–color-over-accent: #ffffff;–color-text-accent: #004e96}.inno–lite.inno-color–black{–color-accent: #222222;–color-over-accent: #ffffff;–color-text-accent: #222222}.inno–lite.inno-color–white{–color-accent: #ffffff;–color-over-accent: #222222;–color-text-accent: #ffffff}.inno–lite.inno-color–white,.inno–lite.inno-color–black{–color-accent: #004e96;–color-over-accent: #ffffff;–color-text-accent: #222222}.inno–lite.inno-color–white.inno-mode–dark,.inno–lite.inno-color–black.inno-mode–dark{–color-accent: #8dd7f7;–color-over-accent: #222222;–color-text-accent: #ffffff}.inno–widget,.inno–embed{overflow:hidden;padding-block-end:0}.inno–widget .inno-layout–content>*,.inno–embed .inno-layout–content>*{max-width:none}.inno-anchorable:before{content:””;display:block;height:calc(var(–nav-height, 0) + 10px);margin:calc(0px – (var(–nav-height, 0) + 10px)) 0 0}.inno-spanner{background-color:#f57869;box-shadow:4px 0 0 #f57869,-4px 0 0 #f57869;color:#fff;padding:1px 0;margin:0 5px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.inno-spanner–error,.inno-spanner–error-invalid-symbol{background-color:#fff;border:3px dashed #e11b22;box-shadow:none;padding-left:4px;padding-right:4px}.inno-spanner–fishtown,.inno-spanner–fish-signs{background-color:#f57869;box-shadow:4px 0 0 #f57869,-4px 0 0 #f57869;color:#fff;padding:1px 0;margin:0 5px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.inno-spanner–kensington,.inno-spanner–a-large-pocket-of-signs-east-of-york-street,.inno-spanner–hagert-and-tulip-streets{background-color:#afae3e;box-shadow:4px 0 0 #afae3e,-4px 0 0 #afae3e;color:#fff;padding:1px 0;margin:0 5px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.inno-spanner–unsure,.inno-spanner–unclear,.inno-spanner–a-few-signs-north-of-frankford,.inno-spanner–the-west-side-of-frankford-avenue-near-dauphin,.inno-spanner–unclear-what-neighborhood{background-color:#808284;box-shadow:4px 0 0 #808284,-4px 0 0 #808284;color:#fff;padding:1px 0;margin:0 5px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.inno-spanner–reader,.inno-spanner–average-reader-submission{background-color:#fac635;box-shadow:4px 0 0 #fac635,-4px 0 0 #fac635;color:#fff;padding:1px 0;margin:0 5px;box-decoration-break:clone;-webkit-box-decoration-break:clone;color:#222}body:has(.inno-chrome–chromeless){overflow:hidden;width:100vw;height:100vh}@supports(width: 100dvw){body:has(.inno-chrome–chromeless){width:100dvw}}@supports(height: 100dvh){body:has(.inno-chrome–chromeless){height:100dvh}}body:has(.inno-chrome–chromeless) .global-app-bar,body:has(.inno-chrome–chromeless) .footer,body:has(.inno-chrome–chromeless) .footer-wrapper{display:none}body:has(.inno-chrome–chromeless) #inq-article-completion{height:0px}.inno{–gutter: calc(50vw – 325px)}.inno *{box-sizing:border-box}.inno-layout–content>*{max-width:min(650px,100vw – 32px);margin-inline:auto}.inno-layout–align-full{max-width:100%}.inno-layout–align-wide{max-width:min(1250px,100vw – 32px);margin-inline:auto}.inno-layout–align-default{max-width:min(650px,100vw – 32px);margin-inline:auto}@media(min-width: 768px){.inno-layout–align-left{float:left;margin-inline-start:var(–gutter);margin-inline-end:24px;width:301px;margin-block-end:16px;padding-top:6px}}@media(min-width: 960px){.inno-layout–align-left{margin-inline-start:calc(var(–gutter) – clamp(0px,var(–gutter) – 100px,160px))}}@media(min-width: 768px){.inno-layout–align-right{float:right;width:301px;margin-inline-start:24px;margin-inline-end:var(–gutter);margin-block-end:16px;padding-top:5px}}@media(min-width: 960px){.inno-layout–align-right{margin-inline-end:calc(var(–gutter) – clamp(0px,var(–gutter) – 100px,160px))}}.inno-layout–stack>*+*{margin-block-start:24px}.inno-layout–stack-tight>*+*{margin-block-start:10px}.inno-layout–stack-loose>*+*{margin-block-start:30px}*+.inno-layout–isolate{margin-block-start:48px}.inno-layout–isolate+*{margin-block-start:48px}.inno-fish-sign{position:relative;aspect-ratio:8/7.2;width:80%}@media(min-width: 960px){.inno-fish-sign{width:100%}}.inno-fish-sign.is-ready .inno-fish-sign__body{opacity:1 !important}.inno-fish-sign__body{position:absolute;top:0;left:-4%;z-index:2;opacity:0;transition:opacity .4s ease-in-out;pointer-events:none}.inno-fish-sign__body[data-type=link]{border:2px solid #6ab4bb;border-radius:300px}@media(min-width: 600px){.inno-fish-sign__body[data-type=link]{border-width:4px}}.inno-fish-sign__body[data-type=fish]{border-radius:20px;display:flex;align-items:center;justify-content:center}.inno-fish-sign__body[data-type=headline]{border-style:solid;border-width:30px 16px;border-image:url(“https://interactives.inquirer.com/projects/2026/09/fishtown/1789057118593/assets/_resized/sign–1300px.webp”);border-image-slice:38% 4% 37% 4% fill;border-image-repeat:repeat;display:flex;align-items:center;justify-content:center;font-family:”innoInquirerHeadline”,”Times New Roman”,serif;font-weight:800;font-size:7.3vw;white-space:nowrap}@media(min-width: 768px){.inno-fish-sign__body[data-type=headline]{font-size:60px;border-width:56px 25px;border-image-slice:38% 4% 37% 4% fill}}.inno-fish-sign__image{position:absolute;margin:auto;width:130%;display:block}.inno-fish-sign__canvas{position:relative;z-index:1;width:100%;display:block;opacity:0}.inno-toolbuttons{display:flex;gap:12px;flex-direction:row;flex-wrap:wrap;justify-content:center;transition:opacity .4s ease-in-out}.inno-toolbuttons.is-hidden{display:none}.inno-steps__content .inno-toolbuttons{margin-top:24px;pointer-events:none;opacity:0}@media(min-width: 960px){.inno-steps__content .inno-toolbuttons{position:fixed;right:0;top:0;bottom:0;margin:auto;height:fit-content;width:50vw;justify-content:center}}body.is-tool-mode .inno-steps__content .inno-toolbuttons{pointer-events:all;opacity:1}body.is-tool-mode .inno-steps__content .inno-toolbuttons .inno-button{pointer-events:all}.inno-toolbuttons__direction{width:100%;text-align:center}.inno-adbox{max-height:400px;transition:max-height .4s ease-in-out,padding .4s ease-in-out,margin .4s ease-in-out;overflow:hidden}.inno-adbox.is-hidden{max-height:0;margin:0;padding:0}.inno-adbox__label{display:block;margin:0 auto 8px;text-align:center;font-size:12px;color:#808284;text-transform:uppercase}.inno-ad__ad{margin-inline:auto;background-color:#f4f1eb;display:flex;align-items:center;justify-content:center;overflow:hidden;width:300px;height:250px}@media(min-width: 768px)and (max-width: 1022px){.inno-ad__ad{width:728px;height:90px}}@media(min-width: 1023px){.inno-ad__ad{height:auto;width:fit-content;min-width:728px;min-height:90px;max-width:970px;max-height:250px}}.inno-ad__ad–small{width:300px;height:250px;min-height:auto;min-width:auto}.inno-ad__ad iframe{position:unset !important}.inno-ad__ad .cnx-content-wrapper{position:relative !important}.inno-ad__ad .celtra-ad-inline-host,.inno-ad__ad .celtra-ad-inline-host *{position:relative !important;overflow:hidden !important}.inno-ad__placeholder{text-align:center;text-transform:uppercase;font-weight:bold;font-size:16px;color:#222}@media(min-width: 1200px){.inno-ad__placeholder{padding:120px 0}}.inno-body__error{color:var(–color-text-primary);padding:24px;border:3px dashed #e11b22;font-family:monospace;white-space:pre-wrap;font-size:16px}.inno-body__error-head{display:block;font-weight:bold}.inno-button{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:8px;box-sizing:border-box;text-decoration:none;border-radius:4px;cursor:pointer;pointer-events:auto;transition:background-color .4s ease-in-out,border-color .4s ease-in-out,color .4s ease-in-out;background-color:var(–color-accent);color:var(–color-over-accent)}.inno-button:focus{outline:solid 4px var(–color-text-tertiary)}.inno-button:disabled{pointer-events:none;cursor:default}.inno-button–primary:hover{background-color:var(–color-text-primary);color:var(–color-background)}.inno-button–primary:disabled{background-color:var(–color-text-secondary);color:var(–color-text-tertiary);pointer-events:none}.inno-button–secondary{background-color:rgba(0,0,0,0);color:var(–color-text-primary);border:solid 2px var(–color-accent)}.inno-button–secondary:hover{background-color:var(–color-accent);color:var(–color-over-accent);border:solid 2px var(–color-accent)}.inno-button–secondary:disabled{background-color:rgba(0,0,0,0);border-color:var(–color-text-tertiary);color:var(–color-text-tertiary);pointer-events:none}.inno-button–minimal{background-color:rgba(0,0,0,0);color:var(–color-text-primary);padding:8px}.inno-button–minimal:hover{background-color:var(–color-accent);color:var(–color-over-accent)}.inno-button–minimal:disabled{background-color:var(–color-text-secondary);color:var(–color-text-tertiary);pointer-events:none}.inno-button–large{padding:16px 40px}.inno-button–medium{padding:10px 24px}.inno-button–small{padding:8px 16px}.inno-button–round{border-radius:99px}.inno-button–round.inno-button–small{padding:8px}.inno-button–round.inno-button–medium{padding:10px}.inno-button–round.inno-button–large{padding:16px}.inno-button__label{font-family:”innoGrot10″,sans-serif;font-weight:700;line-height:1.2em;flex-grow:0;z-index:1}.inno-button–large .inno-button__label{font-size:20px}.inno-button–medium .inno-button__label{font-size:18px}.inno-button–small .inno-button__label{font-size:16px}.inno-button–has-image .inno-button__label{text-align:center}.inno-button__image{margin:0 auto;object-fit:contain}.inno-byline{border-block:1px solid var(–color-faint);padding-block:16px;font-family:”innoGrot10″,sans-serif;font-size:14px;line-height:1.5}.inno-byline–center{border-block:none;padding-block:0}@media(min-width: 768px){.inno-byline{font-size:16px}}.inno-byline__content{display:flex;justify-content:space-between;align-items:center;gap:12px}.inno-byline–center .inno-byline__content{flex-direction:column;text-align:center}.inno-byline__text{flex:1 1 auto}.inno-byline .inno-gift{flex:0 0 auto}.inno-byline__timestamp-date{color:var(–color-text-primary)}.inno-byline__timestamp-label{color:var(–color-text-secondary)}.inno-byline__authors{color:var(–color-text-primary, #222222);line-height:1.5em;text-wrap-style:balance}.inno-byline__author{display:inline}.inno-byline__author-link,.inno-byline__authors a{color:var(–color-text-primary, #222222);text-decoration:none;transition:color .4s ease-in-out}.inno-byline__author-link:hover,.inno-byline__authors a:hover{color:var(–color-text-link, #004e96)}.inno-callout__content{background-color:#fff;padding:20px 15px}.inno-callout:has(.inno-callout__cta) .inno-callout__content{padding-bottom:50px}.inno-callout__tag{font-family:”innoGrot10″,sans-serif;font-size:16px;color:var(–color-text-primary)}@media(min-width: 768px){.inno-callout__tag{font-size:18px}}.inno-callout__title{font-family:”innoGrot12″,sans-serif;font-size:32px;font-weight:bold;text-transform:uppercase;color:var(–color-text-primary);text-wrap:balance}*+.inno-callout__title{margin-block-start:5px}.inno-callout__body{font-family:”innoGrot10″,sans-serif;font-size:16px;color:var(–color-text-primary);line-height:1.65em}@media(min-width: 768px){.inno-callout__body{font-size:18px}}*+.inno-callout__body{margin-block-start:10px}.inno-callout__body .inno-p{font-family:inherit;font-size:inherit;color:inherit;line-height:inherit}.inno-callout__cta{display:flex;width:calc(100% – 30px);margin:-30px 15px 0 15px}.inno-callout__cta .inno-button{padding:20px 20px}.inno-callout__form-policy{font-size:15.2px;margin-top:20px;color:#808284;line-height:1.65}.inno-callout__form-policy a{color:#808284;transition:color .3s ease-in-out}.inno-callout__form-policy a:hover{color:var(–color-text-primary)}.inno-caption{color:var(–color-text-secondary);font-family:”innoGrot10″,sans-serif;font-size:14px;line-height:1.5}.inno-caption a{color:inherit;box-shadow:inset 0 -1px 0 0 var(–color-text-secondary);transition:color .25s ease,box-shadow .25s ease;text-decoration:none}.inno-caption a:hover{color:var(–color-text-link);box-shadow:inset 0 -1px 0 0 var(–color-text-link)}.inno-caption__caption-text{display:block;text-wrap:pretty}.inno-caption__credit{color:var(–color-text-tertiary);display:block}.inno-credits{font-family:”innoGrot10″,sans-serif}.inno-credits__header{color:var(–color-text-primary);font-size:16px;font-family:”innoGrot10″,sans-serif;font-weight:normal;line-height:1.2;border-bottom:2px solid var(–color-faint);padding-bottom:4px;margin-bottom:8px}.inno-credits__roles{display:grid;gap:8px;color:var(–color-text-secondary);font-size:14px;line-height:1.5;text-align:pretty}@media(min-width: 768px){.inno-credits__roles{grid-template-columns:50% 50%}}.inno-gift{display:none}.inno-gift–default{justify-content:center}.inno-gift–default.is-available{display:flex}.inno-gift–default .inno-button{font-size:24px;padding:8px;min-width:200px;margin:0px auto}.inno-gift–minimal.is-available{display:inline-block}.inno-gift–minimal .inno-button{display:flex;align-items:center;font-size:16px;line-height:16px}.inno-gift–minimal .inno-button__label{font-size:14px;font-weight:normal;color:currentColor;display:none}@media(min-width: 600px){.inno-gift–minimal .inno-button__label{display:inline-block}}.inno-gift–minimal .inno-icon{display:inline-block}.inno-gift.is-available{display:block}.is-app .inno-gift{display:none}.inno-gift .inno-icon–loading{animation:spin 1s linear forwards infinite}.inno-gift .inno-icon{display:none}.inno-gift [data-state=ready] .inno-icon–gift{display:initial}.inno-gift [data-state=loading] .inno-icon–loading{display:initial}.inno-gift [data-state=complete] .inno-icon–tickmark{display:initial}.inno-gift [data-state=error] .inno-icon–cross{display:initial}.inno-gift-toast-receiver{display:none}@keyframes spin{0%{rotate:0deg}100%{rotate:360deg}}.inno-heading{font-family:”innoInquirerHeadline”,”Times New Roman”,serif;font-size:24px;font-weight:600;line-height:1.2;color:var(–color-text-primary);scroll-margin-top:calc(var(–sticky-height) + 16px);text-wrap:balance}@media(min-width: 768px){.inno-heading{font-size:36px}}.inno-heading–chapter{font-weight:300;border-bottom:1px solid var(–color-text-primary);text-transform:uppercase}.inno-layout–stack>*+.inno-heading{margin-block-start:48px}.inno-layout–stack>.inno-heading:has(+*){margin-block-end:-12px}.inno-layout–stack-tight>*+.inno-heading{margin-block-start:20px}.inno-layout–stack-tight>.inno-heading:has(+*){margin-block-end:-5px}.inno-layout–stack-loose>*+.inno-heading{margin-block-start:60px}.inno-layout–stack-loose>.inno-heading:has(+*){margin-block-end:-15px}.inno-hero{margin-block-start:0;background:url(“https://interactives.inquirer.com/projects/2026/09/fishtown/1789057118593/assets/_resized/homes–1300px.webp”);background-position:right 0;background-repeat:repeat-x;background-size:100%}@media(min-width: 768px){.inno-hero{background-size:800px}}.inno-hero__content{padding-top:12px;padding-bottom:0;text-align:center}@media(min-width: 768px){.inno-hero__content{padding-top:0}}.inno-hero__subheadline{font-family:”innoInquirerHeadline”,”Times New Roman”,serif;font-size:20px;font-weight:700;line-height:1.3;text-wrap:balance}@media(min-width: 768px){.inno-hero__subheadline{font-size:32px;line-height:1.2}}.inno-hero__media{position:relative;z-index:2;margin-top:-48px}@media(min-width: 960px){.inno-hero__media{margin-top:-96px}}.inno-hover{position:relative;cursor:pointer;border:1px var(–color-accent) solid;padding:3px 4px;transition:border .4s ease-in-out;box-sizing:border-box}@media(min-width: 768px){.inno-hover{cursor:help}}.inno-hover:hover{border:1px var(–color-accent) solid}.inno-hover__box{position:fixed;bottom:0;left:0;right:0;z-index:20;background-color:var(–color-background);pointer-events:none;transform:translateY(100%);transition:transform .4s ease-in-out;padding:16px;border-top:1px solid var(–color-accent);white-space:normal;font-family:”Grot 10″,sans-serif;font-size:14px;line-height:1.5}@media(min-width: 768px){.inno-hover__box{position:absolute;top:100%;width:200px;left:-1px;right:0;bottom:auto;margin:auto;max-width:250px;padding:6px;opacity:0;transition:opacity .4s ease-in-out;transform:none;border:1px solid var(–color-accent)}}.inno-hover.is-visible .inno-hover__box{opacity:1;transform:translateY(0)}.inno-icon{display:inline-block;width:1.2em;height:1.2em;fill:currentColor}.inno-icon–white{fill:#fff}.inno-icon–black{fill:#222}.inno-icon–accent{fill:var(–color-accent)}.inno-icon–over-accent{fill:var(–color-over-accent)}.inno-icon__stroke{fill:rgba(0,0,0,0);stroke:currentColor;stroke-width:2px;vector-effect:non-scaling-stroke}.inno-icon–white .inno-icon__stroke{stroke:#fff}.inno-icon–black .inno-icon__stroke{stroke:#222}.inno-icon–accent .inno-icon__stroke{stroke:var(–color-accent)}.inno-icon–over-accent .inno-icon__stroke{stroke:var(–color-over-accent)}.inno-image__img{width:100%;display:block}@keyframes loadingPulse{0%{opacity:1}100%{opacity:.4}}@keyframes spin{0%{rotate:0deg}100%{rotate:360deg}}.inno-loading{font-family:”innoGrot10″,sans-serif;font-weight:bold;font-size:18px;transition:opacity .4s ease-in-out;z-index:999;position:relative}.inno-loading__text-label,.inno-loading__label-error{position:relative;text-align:left}.inno-loading–position-absolute .inno-loading__text-label,.inno-loading–position-absolute .inno-loading__icon-label,.inno-loading–position-absolute .inno-loading__label-error{position:absolute;left:0;top:0;transform:translate(-50%, -50%)}.inno-loading__icon-label{animation:spin 1s linear forwards infinite}.inno-loading__text-label{animation:loadingPulse .8s ease-in-out alternate infinite}.inno-loading__label-error{color:#e11b22;display:none}.inno-loading[data-state=ready]{opacity:0;animation:none}.inno-loading[data-state=loading]{opacity:1}.inno-loading[data-state=error] .inno-loading__label-error{display:block}.inno-loading[data-state=error] .inno-loading__text-label,.inno-loading[data-state=error] .inno-label__icon-label{display:none}.maplibregl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.maplibregl-canvas{left:0;position:absolute;top:0}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.maplibregl-ctrl-top-left{left:0;top:0}.maplibregl-ctrl-top-right{right:0;top:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.maplibregl-ctrl-group{background:#fff;border-radius:4px}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0, 0, 0, 0.1)}@media(forced-colors: active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;padding:0;width:29px}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media(forced-colors: active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}@media(hover: hover){.maplibregl-ctrl button:not(:disabled):hover{background-color:rgb(0 0 0/5%)}}.maplibregl-ctrl button:not(:disabled):active{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23333′ viewBox=’0 0 29 29’%3E%3Cpath d=’M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23333′ viewBox=’0 0 29 29’%3E%3Cpath d=’M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5’/%3E%3C/svg%3E”)}@media(forced-colors: active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23fff’ viewBox=’0 0 29 29’%3E%3Cpath d=’M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23fff’ viewBox=’0 0 29 29’%3E%3Cpath d=’M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5’/%3E%3C/svg%3E”)}}@media(forced-colors: active)and (prefers-color-scheme: light){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 29 29’%3E%3Cpath d=’M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 29 29’%3E%3Cpath d=’M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5’/%3E%3C/svg%3E”)}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23333′ viewBox=’0 0 29 29’%3E%3Cpath d=’M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 29 29’%3E%3Cpath d=’M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z’/%3E%3C/svg%3E”)}@media(forced-colors: active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23fff’ viewBox=’0 0 29 29’%3E%3Cpath d=’M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23fff’ viewBox=’0 0 29 29’%3E%3Cpath d=’M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z’/%3E%3C/svg%3E”)}}@media(forced-colors: active)and (prefers-color-scheme: light){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 29 29’%3E%3Cpath d=’M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 29 29’%3E%3Cpath d=’M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z’/%3E%3C/svg%3E”)}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23333′ viewBox=’0 0 29 29’%3E%3Cpath d=’m10.5 14 4-8 4 8z’/%3E%3Cpath fill=’%23ccc’ d=’m10.5 16 4 8 4-8z’/%3E%3C/svg%3E”)}@media(forced-colors: active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23fff’ viewBox=’0 0 29 29’%3E%3Cpath d=’m10.5 14 4-8 4 8z’/%3E%3Cpath fill=’%23ccc’ d=’m10.5 16 4 8 4-8z’/%3E%3C/svg%3E”)}}@media(forced-colors: active)and (prefers-color-scheme: light){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 29 29’%3E%3Cpath d=’m10.5 14 4-8 4 8z’/%3E%3Cpath fill=’%23ccc’ d=’m10.5 16 4 8 4-8z’/%3E%3C/svg%3E”)}}.maplibregl-ctrl button.maplibregl-ctrl-globe .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’22’ height=’22’ fill=’none’ stroke=’%23333′ viewBox=’0 0 22 22’%3E%3Ccircle cx=’11’ cy=’11’ r=’8.5’/%3E%3Cpath d=’M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z’/%3E%3Cpath d=’M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z’/%3E%3Cpath d=’M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-globe-enabled .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’22’ height=’22’ fill=’none’ stroke=’%2333b5e5′ viewBox=’0 0 22 22’%3E%3Ccircle cx=’11’ cy=’11’ r=’8.5’/%3E%3Cpath d=’M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z’/%3E%3Cpath d=’M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z’/%3E%3Cpath d=’M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’22’ height=’22’ fill=’%23333′ viewBox=’0 0 22 22’%3E%3Cpath d=’m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’22’ height=’22’ fill=’%2333b5e5′ viewBox=’0 0 22 22’%3E%3Cpath d=’m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23333′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23aaa’ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3Cpath fill=’red’ d=’m14 5 1 1-9 9-1-1z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%2333b5e5′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23e58978′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%2333b5e5′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23e54e33′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media(forced-colors: active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23fff’ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23999′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3Cpath fill=’red’ d=’m14 5 1 1-9 9-1-1z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%2333b5e5′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23e58978′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%2333b5e5′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23e54e33′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3C/svg%3E”)}}@media(forced-colors: active)and (prefers-color-scheme: light){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23666′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3Cpath fill=’red’ d=’m14 5 1 1-9 9-1-1z’/%3E%3C/svg%3E”)}}@keyframes maplibregl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’88’ height=’23’ fill=’none’%3E%3Cpath fill=’%23000′ fill-opacity=’.4′ fill-rule=’evenodd’ d=’M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z’/%3E%3Cpath fill=’%23fff’ d=’m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z’/%3E%3Cpath fill=’%23e1e3e9′ d=’M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z’/%3E%3Cpath d=’M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z’ style=’fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001’/%3E%3Cg style=’stroke-width:1.12603545’%3E%3Cpath d=’M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668′ style=’color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto’ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3Cpath d=’M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3′ style=’clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4′ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3Cpath d=’M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z’ style=’clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4′ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3C/g%3E%3C/svg%3E”);background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media(forced-colors: active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’88’ height=’23’ fill=’none’%3E%3Cpath fill=’%23000′ fill-opacity=’.4′ fill-rule=’evenodd’ d=’M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z’/%3E%3Cpath fill=’%23fff’ d=’m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z’/%3E%3Cpath fill=’%23e1e3e9′ d=’M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z’/%3E%3Cpath d=’M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z’ style=’fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001’/%3E%3Cg style=’stroke-width:1.12603545’%3E%3Cpath d=’M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668′ style=’color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto’ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3Cpath d=’M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3′ style=’clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4′ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3Cpath d=’M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z’ style=’clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4′ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3C/g%3E%3C/svg%3E”)}}@media(forced-colors: active)and (prefers-color-scheme: light){a.maplibregl-ctrl-logo{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’88’ height=’23’ fill=’none’%3E%3Cpath fill=’%23000′ fill-opacity=’.4′ fill-rule=’evenodd’ d=’M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z’/%3E%3Cpath fill=’%23fff’ d=’m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z’/%3E%3Cpath fill=’%23e1e3e9′ d=’M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z’/%3E%3Cpath d=’M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z’ style=’fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001’/%3E%3Cg style=’stroke-width:1.12603545’%3E%3Cpath d=’M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668′ style=’color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto’ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3Cpath d=’M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3′ style=’clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4′ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3Cpath d=’M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z’ style=’clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4′ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3C/g%3E%3C/svg%3E”)}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:hsla(0, 0%, 100%, 0.5);margin:0;padding:0 5px}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;color:#000;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{background-color:hsla(0, 0%, 100%, 0.5);background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ fill-rule=’evenodd’ viewBox=’0 0 20 20’%3E%3Cpath d=’M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0’/%3E%3C/svg%3E”);border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (forced-colors: active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ fill=’%23fff’ fill-rule=’evenodd’ viewBox=’0 0 20 20’%3E%3Cpath d=’M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0’/%3E%3C/svg%3E”)}}@media screen and (forced-colors: active)and (prefers-color-scheme: light){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ fill-rule=’evenodd’ viewBox=’0 0 20 20’%3E%3Cpath d=’M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0’/%3E%3C/svg%3E”)}}.maplibregl-ctrl-attrib a{color:rgba(0, 0, 0, 0.75);text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:hsla(0, 0%, 100%, 0.75);border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.maplibregl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.maplibregl-popup-close-button:hover{background-color:rgb(0 0 0/5%)}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0, 0, 0, 0.1);padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{left:0;position:absolute;top:0;transition:opacity .2s;will-change:transform}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.maplibregl-user-location-dot:before{animation:maplibregl-user-location-dot-pulse 2s infinite;content:””;position:absolute}.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px rgba(0, 0, 0, 0.35);box-sizing:border-box;content:””;height:19px;left:-2px;position:absolute;top:-2px;width:19px}@keyframes maplibregl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:rgba(29,161,242,.2);border-radius:100%;height:1px;width:1px}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.maplibregl-cooperative-gesture-screen{align-items:center;background:rgba(0, 0, 0, 0.4);color:#fff;display:flex;font-size:1.4em;inset:0;justify-content:center;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media(hover: none),(pointer: coarse){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{height:100% !important;left:0 !important;position:fixed !important;top:0 !important;width:100% !important;z-index:99999}.inno-map{position:relative;width:100%;height:100%;background-color:var(–color-background);margin:0 auto}@media(min-width: 960px){.inno-map{width:90%;height:90%}}.inno-map:before{content:””;position:absolute;z-index:2;top:0;left:0;width:100%;height:100%}body.is-tool-mode .inno-map{cursor:crosshair}.inno-map__map{position:relative;z-index:2;width:100%;height:100%;clip-path:polygon(3% 1%, 16.5% 2%, 30% 1%, 41% 2%, 57% 1%, 70% 2%, 83% 1%, 97% 2%, 98% 16%, 97% 29%, 98% 43%, 97% 58%, 98.5% 70%, 97% 83%, 98.5% 98.7%, 84.48% 97.84%, 71% 99.5%, 57% 97.5%, 43% 99.5%, 30% 98%, 17% 99%, 4% 98%, 2% 84%, 4% 71%, 3% 57%, 4% 43%, 3% 29%, 5% 16%)}.inno-map__loading{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.inno-map__start{position:absolute;z-index:20;top:0;left:0;background-color:#fac635;width:24px;height:24px;border-radius:16px;border:2px solid #fff;transition:background-color .4s ease-in-out,opacity .4s ease-in-out;cursor:pointer;opacity:1}.inno-map__start:hover{background-color:#222}.inno-map__start.is-hidden{opacity:0 !important}.inno-map__tooltip{position:fixed;z-index:20;background-color:#fac635;color:#222;font-family:”innoGrot10″,sans-serif;font-weight:bold;pointer-events:none;transition:opacity .4s ease-in-out}@media(pointer: coarse){.inno-map__tooltip{top:18px;left:0;right:0;margin:auto;width:fit-content;padding:6px}}@media(pointer: fine){.inno-map__tooltip{transform:translate(20px, -50%);padding:6px 6px 6px 2px;top:0;left:0}}@media(pointer: fine){.inno-map__tooltip:before{content:””;position:absolute;right:100%;top:0;bottom:0;margin:auto;background-color:#fac635;height:100%;aspect-ratio:1/2;clip-path:polygon(100% 0, 0 50%, 100% 100%)}}.inno-map__tooltip.is-hidden{opacity:0}.inno-map__illo{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;pointer-events:none}.inno-map__icon-wrapper{position:absolute;display:flex;align-items:center;justify-content:center;width:18%;aspect-ratio:1/1}.inno-map__icon{position:absolute;top:0;left:0;display:block;width:100%;transition:scale .4s ease-in-out,opacity .4s ease-in-out;transform-origin:center;opacity:1;scale:1}.inno-map__icon–0{transition-delay:.3414415171s}.inno-map__icon–1{transition-delay:.4493626506s}.inno-map__icon–2{transition-delay:.3279518922s}.inno-map__icon–3{transition-delay:.1087295255s}.inno-map__icon–4{transition-delay:.4259465171s}.inno-map__icon–5{transition-delay:.1241659135s}.inno-map__icon–6{transition-delay:.2053764726s}.is-hiding-icons .inno-map__icon{scale:0;opacity:0}.inno-p{-webkit-font-smoothing:subpixel-antialiased;-mox-osx-font-smoothing:grayscale;color:#222;color:var(–color-text-primary);font-family:”innoInquirerText”,”Times New Roman”,serif;font-size:18px;line-height:1.666666;white-space:pre-line;text-wrap:pretty}@media(min-width: 600px){.inno-p{font-size:20px;line-height:1.6}}.inno-p–has-dropcap:first-letter{margin-top:1px;margin-right:12px;margin-bottom:0;margin-left:0;font-family:”innoInquirerHeadline”,”Times New Roman”,serif;font-size:3.2em;float:left;font-weight:800;line-height:1;color:#222}@-moz-document url-prefix(){.inno-p–has-dropcap:first-letter{margin-top:10px;margin-bottom:0px}}@media(min-width: 600px){.inno-p–has-dropcap:first-letter{font-size:5.3em;margin-top:-3px;margin-bottom:-10px}@-moz-document url-prefix(){.inno-p–has-dropcap:first-letter{margin-top:12px;margin-bottom:0px}}}.inno-p a{transition:box-shadow .25s ease;color:var(–color-text-link);text-decoration:none}.inno-p a:hover{box-shadow:inset 0 -1px 0 0 var(–color-text-link)}.inno-p__endmark{display:inline-block;height:1.1em;width:1.1em;margin-left:5px;vertical-align:text-bottom;margin-bottom:2px;fill:#222}.inno-premium{padding:19px 26px 22px 8px;color:var(–color-text-primary);font-family:”innoGrot10″,sans-serif;font-size:18px;line-height:1;font-weight:normal;background-color:var(–color-background-secondary)}.inno-premium .inno-icon{fill:#f0af13;width:24px;margin-right:7px}.inno-premium__header{display:flex}.inno-premium__hed{font-weight:bold;line-height:22px;font-size:16px;color:var(–color-text-primary);padding:3px 0 4px;font-family:”innoGrot10″,sans-serif;text-wrap:pretty}.inno-mode–dark .inno-premium__hed{color:#fff}.inno-premium__message{font-weight:500;line-height:22px;font-size:16px;color:var(–color-text-secondary);font-family:”innoGrot10″,sans-serif;margin-left:32px;text-wrap:pretty}.inno-heading{font-family:”innoInquirerHeadline”,”Times New Roman”,serif;font-size:24px;font-weight:600;line-height:1.2;color:var(–color-text-primary);scroll-margin-top:calc(var(–sticky-height) + 16px);text-wrap:balance}@media(min-width: 768px){.inno-heading{font-size:36px}}.inno-heading–chapter{font-weight:300;border-bottom:1px solid var(–color-text-primary);text-transform:uppercase}.inno-layout–stack>*+.inno-heading{margin-block-start:48px}.inno-layout–stack>.inno-heading:has(+*){margin-block-end:-12px}.inno-layout–stack-tight>*+.inno-heading{margin-block-start:20px}.inno-layout–stack-tight>.inno-heading:has(+*){margin-block-end:-5px}.inno-layout–stack-loose>*+.inno-heading{margin-block-start:60px}.inno-layout–stack-loose>.inno-heading:has(+*){margin-block-end:-15px}.inno-image__img{width:100%;display:block}.inno-steps__steps{margin-top:-20vh;padding-bottom:30vh}@media(min-width: 960px){.inno-steps__steps{margin-top:-50vh;padding-bottom:50vh}}body.is-tool-mode .inno-steps__steps{pointer-events:none}body.is-tool-mode .inno-steps__steps *{pointer-events:none}.inno-steps__step{position:relative;z-index:2;-webkit-transform:translate3d(0, 0, 0);margin:80vh auto;padding:8px;background-color:#fff;border:#f57869 1px solid;overflow:auto;max-width:min(100% – 32px,650px);opacity:.2;transition:opacity .4s ease-in-out}@media(min-width: 960px){.inno-steps__step{padding:12px;margin:30vh auto;border:none}}[data-index=”0″] .inno-steps__step.inno-steps__step–0{opacity:1;z-index:1}[data-index=”1″] .inno-steps__step.inno-steps__step–1{opacity:1;z-index:1}[data-index=”2″] .inno-steps__step.inno-steps__step–2{opacity:1;z-index:1}[data-index=”3″] .inno-steps__step.inno-steps__step–3{opacity:1;z-index:1}[data-index=”4″] .inno-steps__step.inno-steps__step–4{opacity:1;z-index:1}[data-index=”5″] .inno-steps__step.inno-steps__step–5{opacity:1;z-index:1}[data-index=”6″] .inno-steps__step.inno-steps__step–6{opacity:1;z-index:1}[data-index=”7″] .inno-steps__step.inno-steps__step–7{opacity:1;z-index:1}[data-index=”8″] .inno-steps__step.inno-steps__step–8{opacity:1;z-index:1}[data-index=”9″] .inno-steps__step.inno-steps__step–9{opacity:1;z-index:1}[data-index=”10″] .inno-steps__step.inno-steps__step–10{opacity:1;z-index:1}[data-index=”11″] .inno-steps__step.inno-steps__step–11{opacity:1;z-index:1}[data-index=”12″] .inno-steps__step.inno-steps__step–12{opacity:1;z-index:1}[data-index=”13″] .inno-steps__step.inno-steps__step–13{opacity:1;z-index:1}[data-index=”14″] .inno-steps__step.inno-steps__step–14{opacity:1;z-index:1}[data-index=”15″] .inno-steps__step.inno-steps__step–15{opacity:1;z-index:1}[data-index=”16″] .inno-steps__step.inno-steps__step–16{opacity:1;z-index:1}[data-index=”17″] .inno-steps__step.inno-steps__step–17{opacity:1;z-index:1}[data-index=”18″] .inno-steps__step.inno-steps__step–18{opacity:1;z-index:1}[data-index=”19″] .inno-steps__step.inno-steps__step–19{opacity:1;z-index:1}[data-index=”20″] .inno-steps__step.inno-steps__step–20{opacity:1;z-index:1}[data-index=”21″] .inno-steps__step.inno-steps__step–21{opacity:1;z-index:1}[data-index=”22″] .inno-steps__step.inno-steps__step–22{opacity:1;z-index:1}[data-index=”23″] .inno-steps__step.inno-steps__step–23{opacity:1;z-index:1}[data-index=”24″] .inno-steps__step.inno-steps__step–24{opacity:1;z-index:1}[data-index=”25″] .inno-steps__step.inno-steps__step–25{opacity:1;z-index:1}[data-index=”26″] .inno-steps__step.inno-steps__step–26{opacity:1;z-index:1}[data-index=”27″] .inno-steps__step.inno-steps__step–27{opacity:1;z-index:1}[data-index=”28″] .inno-steps__step.inno-steps__step–28{opacity:1;z-index:1}[data-index=”29″] .inno-steps__step.inno-steps__step–29{opacity:1;z-index:1}[data-index=”30″] .inno-steps__step.inno-steps__step–30{opacity:1;z-index:1}.inno-steps__step:first-of-type{margin-top:0}.inno-steps__step:last-of-type{margin-bottom:0}.inno-steps__step.is-hidden{display:none}.inno-steps__step:has(.inno-toolbuttons){margin-bottom:0}body.is-tool-mode .inno-steps__step{opacity:0 !important}.inno-steps__step–transparent{background-color:rgba(0,0,0,0);box-shadow:none}@media(min-width: 960px){.inno-steps__step–left{width:calc(50vw – 32px);margin-left:auto;margin-right:calc(50% + 16px)}}@media(min-width: 960px){.inno-steps__step–right{width:calc(50vw – 32px);margin-right:auto;margin-left:calc(50% + 16px)}}.inno-steps__step–full{max-width:none;width:100%;padding:24px 0;border-left:none;border-right:none}.inno-steps__step–full .inno-steps__body{max-width:100%;margin:0 auto}.inno-steps__step–full .inno-steps__body>*:not([class*=inno-layout–align-]){max-width:min(100% – 32px,650px);margin-inline:auto}.inno-steps__step .inno-hero__content{background-color:rgba(0,0,0,0);color:var(–color-text-primary)}.inno-steps__step .inno-byline{border-top:0;border-bottom:0;padding:0;margin-block-start:0;text-align:center}.inno-steps__step .inno-byline__content{flex-direction:column}.inno-steps__step .inno-premium{display:none}.inno-steps__step .inno-steps__body+.inno-caption{margin-top:6px}.inno-steps__content{position:sticky;height:100vh;width:100%;top:0;left:0;right:0;margin:auto;display:flex;align-items:start;justify-content:center;overflow:hidden;isolation:isolate;z-index:1}@supports(height: 100dvh){.inno-steps__content{height:100dvh}}@media(min-width: 960px){.inno-steps__content{width:50%;align-items:center;margin-left:0}}.inno-steps__custom{width:90%;aspect-ratio:1/1;top:0;left:0;right:0;bottom:0;padding:12px}@media(min-width: 960px){.inno-steps__custom{margin:auto}}.inno-steps__custom:empty{display:none;pointer-events:none}.inno-steps__background{position:absolute;object-fit:cover;inset:0;opacity:0;transition:opacity .4s ease-in-out;z-index:0;background-color:var(–color-background);display:flex;justify-content:center;align-items:center}.inno-steps__background .inno-graphic{width:100%}.inno-steps__background .inno-looping-video,.inno-steps__background .inno-image{width:100%;height:100%}.inno-steps__background .inno-looping-video__video,.inno-steps__background .inno-image__img{height:100%;width:100%;object-position:center;object-fit:cover}.inno-steps__background–contain{background-color:var(–color-background);padding:8px}@media(min-width: 768px){.inno-steps__background–contain{padding:16px}}.inno-steps__background–contain .inno-looping-video__video,.inno-steps__background–contain .inno-image__img{object-fit:contain}.inno-steps__background–left .inno-image__img{object-fit:contain}@media(min-width: 960px){.inno-steps__background–left{width:50%;right:auto}}.inno-steps__background–right .inno-image__img{object-fit:contain}@media(min-width: 960px){.inno-steps__background–right{width:50%;left:auto}}.inno-steps–has-backgrounds[data-index=”-1″] .inno-steps__background–0{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”0″] .inno-steps__background–0{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”1″] .inno-steps__background–1{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”2″] .inno-steps__background–2{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”3″] .inno-steps__background–3{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”4″] .inno-steps__background–4{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”5″] .inno-steps__background–5{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”6″] .inno-steps__background–6{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”7″] .inno-steps__background–7{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”8″] .inno-steps__background–8{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”9″] .inno-steps__background–9{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”10″] .inno-steps__background–10{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”11″] .inno-steps__background–11{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”12″] .inno-steps__background–12{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”13″] .inno-steps__background–13{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”14″] .inno-steps__background–14{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”15″] .inno-steps__background–15{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”16″] .inno-steps__background–16{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”17″] .inno-steps__background–17{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”18″] .inno-steps__background–18{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”19″] .inno-steps__background–19{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”20″] .inno-steps__background–20{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”21″] .inno-steps__background–21{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”22″] .inno-steps__background–22{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”23″] .inno-steps__background–23{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”24″] .inno-steps__background–24{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”25″] .inno-steps__background–25{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”26″] .inno-steps__background–26{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”27″] .inno-steps__background–27{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”28″] .inno-steps__background–28{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”29″] .inno-steps__background–29{opacity:1;z-index:1}.inno-steps–has-backgrounds[data-index=”30″] .inno-steps__background–30{opacity:1;z-index:1}.inno-subscribe{display:none;position:relative}.inno-subscribe.is-unsubscribed{display:block}.inno-subscribe.is-preview{display:block}.inno-subscribe.is-dev{display:block}.inno-subscribe.is-dev::before{content:”Non-subscribers only”;display:block;position:absolute;left:-20px;border:1px dashed red;font-size:8px;text-transform:uppercase;padding:5px;font-weight:bold;writing-mode:vertical-lr}.inno-tags{border-top:1px solid var(–color-faint);padding-block:12px}.inno-tags__title{font-family:”innoGrot10″,sans-serif;font-size:14px;font-weight:normal}.inno-tags__buttons{display:flex;flex-wrap:wrap;gap:8px}.inno-tags__buttons .inno-button{flex:0 0 auto}.inno-toast{position:fixed;bottom:16px;left:0;right:0;width:max-content;margin:0px auto;z-index:120;display:flex;align-content:center;justify-content:center;text-align:center;font-size:20px;border-radius:5px;background-color:var(–color-text-primary);color:var(–color-background);padding:24px 48px;box-shadow:0 1px 4px rgba(89,87,96,.1),0 3px 6px rgba(89,87,96,.1);translate:0% calc(100% + 18px);transition:translate .4s;opacity:0}.inno-toast b,.inno-toast strong{font-weight:normal}.inno-toast.is-active{translate:0 0;opacity:1}

We counted 400 fish signs, asked restaurants, and spoke to locals. We now need your help to draw Fishtown’s boundaries.
“There never really was a Fishtown, government-wise. It was a localism,” explains Kenneth Milano, a Kensington-born historian and cofounder of the Kensington History Project. Perhaps this is why it’s hard to know exactly where Fishtown’s boundaries are.
This isn’t a unique problem — the same can be said for many areas in the City of Neighborhoods, such as South Philadelphia, whose borders we tried to define two years ago.
“No one [in the old days] would ever call above York Street ‘Fishtown.’ That would have been sacrilege,” Milano said. “With the new folks, they don’t know. The [real estate agent] told them.”
Decades of gentrification in the River Wards have blurred the lines as developers tagged their properties with the coveted Fishtown brand, even as they ventured into what were generally defined as sections of Kensington. (And which Kensington? East Kensington? Olde Kensington? South Kensington? How about Norris Square? And Olde Richmond? And Port Richmond?)
The argument is about more than what to call a few blocks: A neighborhood name can shape a place’s identity, its perceived desirability, and even how it is marketed and valued.
Still, shouldn’t neighborhoods be defined by the community itself? We want you to draw where you think Fishtown’s boundaries are. But first, let’s see what other people believe …
-
Milano said parish boundaries originally helped reinforce neighborhood identity. Milano, 67, has lived on York Street since age 5 and described the conventional Fishtown as a triangle bounded by Norris, Frankford, and the Delaware River.
-
The Inquirer’s map of neighborhoods agrees with Milano — although it’s worth mentioning that this map, used internally to help our reporting stay consistent, was created in the 1980s. The Milano-Inquirer definition is definitely conservative when compared to more recent attempts to set boundaries.
-
By contrast, Zillow’s Fishtown is nearly twice the size. The real estate website includes not only Front Street to the west, but also goes as far north as Lehigh Avenue.
Zillow maintains its own set of neighborhood boundaries “by reviewing sources such as city maps, the Census Bureau, and neighborhood associations,” Zillow spokesperson Briahna Healy said.
-
There’s some overlap between Zillow’s boundaries and the 19125 zip code. While residents might feel a strong attachment to the last five digits of their address, zip codes exist solely to help route mail. This makes it hard to use 19125’s scraggly borders to define Fishtown — especially when sections that reach that far north are Kensington by any definition.
-
Somewhere in the middle is the Fishtown Neighbors Association border — sticking with Front Street to the west but extending only as far as York Street to the north. These boundaries “go back about 20 years when FNA was a community organization that needed boundaries to help dictate what projects to work on,” said John Scott, current president of the FNA.
Their boundaries are a single piece in a jigsaw puzzle with surrounding neighboring associations. It explains why some streets are included and others aren’t. For example, the area between Front Street and Frankford Avenue is included because “if we didn’t include them, they would probably be stateless,” Scott said.
This also means that a lot of boundaries are largely codified because the FNA can’t expand without encroaching on neighboring associations — unless, that is, new streets are built, like those in the Northbank development on the Delaware. Now the FNA is about to adjust its boundaries for the first time in a quarter-century to encompass streets south of Schirra Lane.
-
If we look at all of these definitions at the same time, there is a clear overlap that we can safely call Fishtown.
However, much of the fringe is up for debate. Does Fishtown stop at Front or Frankford, for example? Is York the border, or is it Norris, or even Lehigh?
It’s time for some good, old-fashioned, boots-on-the-ground reporting.
-
A defining feature of Fishtown are the whimsical fish signs on house facades. Our theory: Surely a painted fish wouldn’t make sense in Kensington. We hit the streets and logged every house that had a fish sign.
Largely, the signs are contained to the FNA-defined borders. But we found a large pocket of signs east of York Street and even a few signs north of Frankford — although they are outnumbered by milk bottle signs to honor Kensington’s old Harbisons Dairy plant.
-
Fish signs are only one way to delineate Fishtown boundaries. We also looked at restaurants and what neighborhood they describe themselves as belonging to: Fishtown, Kensington, or unsure.
Fishtown has been known for its dining scene since Johnny Brenda’s established the beachhead in 2003. As development marched on, restaurateurs and dining guides followed the cue of developers and real estate agents: We’re in Fishtown.
Today, that’s not entirely the case, as even upscale restaurants are comfortable calling themselves Kensington, though they could claim Fishtown. At Fiore, chefs Ed Crochet and Justine MacNeil use East Kensington for their Italian restaurant north of the York Street roundabout. Directly across is Emilia, chef Greg Vernick’s popular new Italian spot, which doesn’t state its neighborhood in its marketing materials. Resy, its reservation booking platform, calls it Fishtown-East Kensington.
Seemingly everyone says Middle Child Clubhouse is in “Fishtown.” But by dint of its location on the west side of Front Street, it’s arguably in South/Olde Kensington. Yuhiro, a sushi restaurant on Susquehanna Avenue just west of Frankford, markets itself as Fishtown but it could be considered in Kensington.
Then there are the restaurants where it’s even more unclear because they list multiple neighborhoods, or none at all. For example, Picnic, on Martha Street, uses East Kensington in its Instagram bio but has used Fishtown in public relations campaigns. Where is Meetinghouse, a noted bar at Memphis and Cumberland Streets? Chef/co-owner Drew DiTomo thought for a moment: “Its parish is St. Anne’s and I quite like that.”
-
Finally, we decided to ask people in the gray areas a simple question: “Where are we?”
We found Matt Murphy and Kaitlin Dirkx at Hagert and Tulip Streets — south of Lehigh, north of York, still in 19125. “It’s kind of a curious pocket of the River Wards,” said Murphy, who emphatically called the area “Olde Richmond.” But, as Dirkx added, “they let me into the Fishtown Neighbors Facebook group. My address must have fallen in line.”
Mark Opdyke, who lives on a side street just west of Frankford Avenue near Norris, insisted that his side of Blair Street is in Fishtown. He pointed across the street toward the Blair Garden townhouses, built in 2018 and sold as “Fishtown,” chuckled, and called that side “Kensington.”
At Frankford and Dauphin, Nick Campione’s family has owned AC Auto Repairs for 70 years. Its facade boasts a mural proclaiming, “Welcome to the Neighborhood” with an inscription explicitly describing it as “Fishtown and East Kensington.” Campione won’t take sides: “This is the best of both worlds here.”
Finally, we caught up with Stephanie Goodman and Justin Frye on the west side of Frankford Avenue near Dauphin, in front of the Groove Hound, a doggie day care. Goodman called that stretch Fishtown, adding that it’s two blocks from the house she bought in 2018 across from Philadelphia Brewing Co., which proudly says it belongs to East Kensington. Though Goodman said the real estate agent advertised her block as Fishtown, Frye believes it’s in East Kensington. “Ten different people and 10 different answers,” he said.
-
So it’s now time for you to decide. Let us know where you think the boundaries of Fishtown are by drawing on the map.
-
Thanks for drawing your boundaries. Please reach out to interactives@inquirer.com and let us know why you believe these are the boundaries of Fishtown.
This is where the average reader submission currently lays.
Staff Contributors
- Design, Development, and Reporting: Sam Morris
- Reporting: Michael Klein
- Sign Auditors: Sam Morris and Jasen Lo
- Illustration: James Olstein
- Editing: Charmaine Runes
- Copy Editing: Brian Leighton
(()=>{var Er=Object.create;var xt=Object.defineProperty;var Ir=Object.getOwnPropertyDescriptor;var kr=Object.getOwnPropertyNames;var Dr=Object.getPrototypeOf,zr=Object.prototype.hasOwnProperty;var Pt=(i,u)=>()=>(u||i((u={exports:{}}).exports,u),u.exports);var Rr=(i,u,r,e)=>{if(u&&typeof u==”object”||typeof u==”function”)for(let o of kr(u))!zr.call(i,o)&&o!==r&&xt(i,o,{get:()=>u[o],enumerable:!(e=Ir(u,o))||e.enumerable});return i};var $r=(i,u,r)=>(r=i!=null?Er(Dr(i)):{},Rr(u||!i||!i.__esModule?xt(r,”default”,{value:i,enumerable:!0}):r,i));var wt=Pt((Pe,Je)=>{(function(u,r){typeof Pe==”object”&&typeof Je==”object”?Je.exports=r():typeof define==”function”&&define.amd?define(“Matter”,[],r):typeof Pe==”object”?Pe.Matter=r():u.Matter=r()})(Pe,function(){return function(i){var u={};function r(e){if(u[e])return u[e].exports;var o=u[e]={i:e,l:!1,exports:{}};return i[e].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=i,r.c=u,r.d=function(e,o,s){r.o(e,o)||Object.defineProperty(e,o,{enumerable:!0,get:s})},r.r=function(e){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,o){if(o&1&&(e=r(e)),o&8||o&4&&typeof e=="object"&&e&&e.__esModule)return e;var s=Object.create(null);if(r.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),o&2&&typeof e!="string")for(var n in e)r.d(s,n,function(y){return e[y]}.bind(null,n));return s},r.n=function(e){var o=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(o,"a",o),o},r.o=function(e,o){return Object.prototype.hasOwnProperty.call(e,o)},r.p="",r(r.s=20)}([function(i,u){var r={};i.exports=r,function(){r._baseDelta=1e3/60,r._nextId=0,r._seed=0,r._nowStartTime=+new Date,r._warnedOnce={},r._decomp=null,r.extend=function(o,s){var n,y,a;typeof s=="boolean"?(n=2,a=s):(n=1,a=!0);for(var f=n;f<arguments.length;f++){var c=arguments[f];if(c)for(var t in c)a&&c[t]&&c[t].constructor===Object&&(!o[t]||o[t].constructor===Object)?(o[t]=o[t]||{},r.extend(o[t],a,c[t])):o[t]=c[t]}return o},r.clone=function(o,s){return r.extend({},s,o)},r.keys=function(o){if(Object.keys)return Object.keys(o);var s=[];for(var n in o)s.push(n);return s},r.values=function(o){var s=[];if(Object.keys){for(var n=Object.keys(o),y=0;y<n.length;y++)s.push(o[n[y]]);return s}for(var a in o)s.push(o[a]);return s},r.get=function(o,s,n,y){s=s.split(".").slice(n,y);for(var a=0;a0;s–){var n=Math.floor(r.random()*(s+1)),y=o[s];o[s]=o[n],o[n]=y}return o},r.choose=function(o){return o[Math.floor(r.random()*o.length)]},r.isElement=function(o){return typeof HTMLElement<"u"?o instanceof HTMLElement:!!(o&&o.nodeType&&o.nodeName)},r.isArray=function(o){return Object.prototype.toString.call(o)==="[object Array]"},r.isFunction=function(o){return typeof o=="function"},r.isPlainObject=function(o){return typeof o=="object"&&o.constructor===Object},r.isString=function(o){return toString.call(o)==="[object String]"},r.clamp=function(o,s,n){return on?n:o},r.sign=function(o){return o<0?-1:1},r.now=function(){if(typeof window<"u"&&window.performance){if(window.performance.now)return window.performance.now();if(window.performance.webkitNow)return window.performance.webkitNow()}return Date.now?Date.now():new Date-r._nowStartTime},r.random=function(o,s){return o=typeof o<"u"?o:0,s=typeof s0&&r.logLevel0&&r.logLevel0&&r.logLevel<=3&&console.warn.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},r.warnOnce=function(){var o=Array.prototype.slice.call(arguments).join(" ");r._warnedOnce[o]||(r.warn(o),r._warnedOnce[o]=!0)},r.deprecated=function(o,s,n){o[s]=r.chain(function(){r.warnOnce("u{1F505} deprecated u{1F505}",n)},o[s])},r.nextId=function(){return r._nextId++},r.indexOf=function(o,s){if(o.indexOf)return o.indexOf(s);for(var n=0;n<o.length;n++)if(o[n]===s)return n;return-1},r.map=function(o,s){if(o.map)return o.map(s);for(var n=[],y=0;y<o.length;y+=1)n.push(s(o[y]));return n},r.topologicalSort=function(o){var s=[],n=[],y=[];for(var a in o)!n[a]&&!y[a]&&r._topologicalSort(a,n,y,o,s);return s},r._topologicalSort=function(o,s,n,y,a){var f=y[o]||[];n[o]=!0;for(var c=0;c<f.length;c+=1){var t=f[c];n[t]||s[t]||r._topologicalSort(t,s,n,y,a)}n[o]=!1,s[o]=!0,a.push(o)},r.chain=function(){for(var o=[],s=0;s<arguments.length;s+=1){var n=arguments[s];n._chained?o.push.apply(o,n._chained):o.push(n)}var y=function(){for(var a,f=new Array(arguments.length),c=0,t=arguments.length;c<t;c++)f[c]=arguments[c];for(c=0;c<o.length;c+=1){var p=o[c].apply(a,f);typeof p<"u"&&(a=p)}return a};return y._chained=o,y},r.chainPathBefore=function(o,s,n){return r.set(o,s,r.chain(n,r.get(o,s)))},r.chainPathAfter=function(o,s,n){return r.set(o,s,r.chain(r.get(o,s),n))},r.setDecomp=function(o){r._decomp=o},r.getDecomp=function(){var o=r._decomp;try{!o&&typeof window<"u"&&(o=window.decomp),!o&&typeof global<"u"&&(o=global.decomp)}catch{o=null}return o}}()},function(i,u){var r={};i.exports=r,function(){r.create=function(e){var o={min:{x:0,y:0},max:{x:0,y:0}};return e&&r.update(o,e),o},r.update=function(e,o,s){e.min.x=1/0,e.max.x=-1/0,e.min.y=1/0,e.max.y=-1/0;for(var n=0;ne.max.x&&(e.max.x=y.x),y.xe.max.y&&(e.max.y=y.y),y.y0?e.max.x+=s.x:e.min.x+=s.x,s.y>0?e.max.y+=s.y:e.min.y+=s.y)},r.contains=function(e,o){return o.x>=e.min.x&&o.x=e.min.y&&o.y<=e.max.y},r.overlaps=function(e,o){return e.min.x=o.min.x&&e.max.y>=o.min.y&&e.min.y<=o.max.y},r.translate=function(e,o){e.min.x+=o.x,e.max.x+=o.x,e.min.y+=o.y,e.max.y+=o.y},r.shift=function(e,o){var s=e.max.x-e.min.x,n=e.max.y-e.min.y;e.min.x=o.x,e.max.x=o.x+s,e.min.y=o.y,e.max.y=o.y+n}}()},function(i,u){var r={};i.exports=r,function(){r.create=function(e,o){return{x:e||0,y:o||0}},r.clone=function(e){return{x:e.x,y:e.y}},r.magnitude=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)},r.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},r.rotate=function(e,o,s){var n=Math.cos(o),y=Math.sin(o);s||(s={});var a=e.x*n-e.y*y;return s.y=e.x*y+e.y*n,s.x=a,s},r.rotateAbout=function(e,o,s,n){var y=Math.cos(o),a=Math.sin(o);n||(n={});var f=s.x+((e.x-s.x)*y-(e.y-s.y)*a);return n.y=s.y+((e.x-s.x)*a+(e.y-s.y)*y),n.x=f,n},r.normalise=function(e){var o=r.magnitude(e);return o===0?{x:0,y:0}:{x:e.x/o,y:e.y/o}},r.dot=function(e,o){return e.x*o.x+e.y*o.y},r.cross=function(e,o){return e.x*o.y-e.y*o.x},r.cross3=function(e,o,s){return(o.x-e.x)*(s.y-e.y)-(o.y-e.y)*(s.x-e.x)},r.add=function(e,o,s){return s||(s={}),s.x=e.x+o.x,s.y=e.y+o.y,s},r.sub=function(e,o,s){return s||(s={}),s.x=e.x-o.x,s.y=e.y-o.y,s},r.mult=function(e,o){return{x:e.x*o,y:e.y*o}},r.div=function(e,o){return{x:e.x/o,y:e.y/o}},r.perp=function(e,o){return o=o===!0?-1:1,{x:o*-e.y,y:o*e.x}},r.neg=function(e){return{x:-e.x,y:-e.y}},r.angle=function(e,o){return Math.atan2(o.y-e.y,o.x-e.x)},r._temp=[r.create(),r.create(),r.create(),r.create(),r.create(),r.create()]}()},function(i,u,r){var e={};i.exports=e;var o=r(2),s=r(0);(function(){e.create=function(n,y){for(var a=[],f=0;f<n.length;f++){var c=n[f],t={x:c.x,y:c.y,index:f,body:y,isInternal:!1};a.push(t)}return a},e.fromPath=function(n,y){var a=/L?s*([-d.e]+)[s,]*([-d.e]+)*/ig,f=[];return n.replace(a,function(c,t,p){f.push({x:parseFloat(t),y:parseFloat(p)})}),e.create(f,y)},e.centre=function(n){for(var y=e.area(n,!0),a={x:0,y:0},f,c,t,p=0;p<n.length;p++)t=(p+1)%n.length,f=o.cross(n[p],n[t]),c=o.mult(o.add(n[p],n[t]),f),a=o.add(a,c);return o.div(a,6*y)},e.mean=function(n){for(var y={x:0,y:0},a=0;a<n.length;a++)y.x+=n[a].x,y.y+=n[a].y;return o.div(y,n.length)},e.area=function(n,y){for(var a=0,f=n.length-1,c=0;c<n.length;c++)a+=(n[f].x-n[c].x)*(n[f].y+n[c].y),f=c;return y?a/2:Math.abs(a)/2},e.inertia=function(n,y){for(var a=0,f=0,c=n,t,p,l=0;l<c.length;l++)p=(l+1)%c.length,t=Math.abs(o.cross(c[p],c[l])),a+=t*(o.dot(c[p],c[p])+o.dot(c[p],c[l])+o.dot(c[l],c[l])),f+=t;return y/6*(a/f)},e.translate=function(n,y,a){a=typeof a<"u"?a:1;var f=n.length,c=y.x*a,t=y.y*a,p;for(p=0;p<f;p++)n[p].x+=c,n[p].y+=t;return n},e.rotate=function(n,y,a){if(y!==0){var f=Math.cos(y),c=Math.sin(y),t=a.x,p=a.y,l=n.length,m,g,w,M;for(M=0;M<l;M++)m=n[M],g=m.x-t,w=m.y-p,m.x=t+(g*f-w*c),m.y=p+(g*c+w*f);return n}},e.contains=function(n,y){for(var a=y.x,f=y.y,c=n.length,t=n[c-1],p,l=0;l0)return!1;t=p}return!0},e.scale=function(n,y,a,f){if(y===1&&a===1)return n;f=f||e.centre(n);for(var c,t,p=0;p<n.length;p++)c=n[p],t=o.sub(c,f),n[p].x=f.x+t.x*y,n[p].y=f.y+t.y*a;return n},e.chamfer=function(n,y,a,f,c){typeof y=="number"?y=[y]:y=y||[8],a=typeof a<"u"?a:-1,f=f||2,c=c||14;for(var t=[],p=0;p=0?p-1:n.length-1],m=n[p],g=n[(p+1)%n.length],w=y[p<y.length?p:y.length-1];if(w===0){t.push(m);continue}var M=o.normalise({x:m.y-l.y,y:l.x-m.x}),S=o.normalise({x:g.y-m.y,y:m.x-g.x}),d=Math.sqrt(2*Math.pow(w,2)),v=o.mult(s.clone(M),w),x=o.normalise(o.mult(o.add(M,S),.5)),h=o.sub(m,o.mult(x,d)),F=a;a===-1&&(F=Math.pow(w,.32)*1.75),F=s.clamp(F,f,c),F%2===1&&(F+=1);for(var C=Math.acos(o.dot(M,S)),P=C/F,T=0;T<F;T++)t.push(o.add(o.rotate(v,P*T),h))}return t},e.clockwiseSort=function(n){var y=e.mean(n);return n.sort(function(a,f){return o.angle(y,a)-o.angle(y,f)}),n},e.isConvex=function(n){var y=0,a=n.length,f,c,t,p;if(a<3)return null;for(f=0;f<a;f++)if(c=(f+1)%a,t=(f+2)%a,p=(n[c].x-n[f].x)*(n[t].y-n[c].y),p-=(n[c].y-n[f].y)*(n[t].x-n[c].x),p0&&(y|=2),y===3)return!1;return y!==0?!0:null},e.hull=function(n){var y=[],a=[],f,c;for(n=n.slice(0),n.sort(function(t,p){var l=t.x-p.x;return l!==0?l:t.y-p.y}),c=0;c=2&&o.cross3(a[a.length-2],a[a.length-1],f)=0;c-=1){for(f=n[c];y.length>=2&&o.cross3(y[y.length-2],y[y.length-1],f)<=0;)y.pop();y.push(f)}return y.pop(),a.pop(),y.concat(a)}})()},function(i,u,r){var e={};i.exports=e;var o=r(3),s=r(2),n=r(7),y=r(0),a=r(1),f=r(11);(function(){e._timeCorrection=!0,e._inertiaScale=4,e._nextCollidingGroupId=1,e._nextNonCollidingGroupId=-1,e._nextCategory=1,e._baseDelta=1e3/60,e.create=function(t){var p={id:y.nextId(),type:"body",label:"Body",parts:[],plugin:{},angle:0,vertices:o.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"),position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:!1,isStatic:!1,isSleeping:!1,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:4294967295,group:0},slop:.05,timeScale:1,render:{visible:!0,opacity:1,strokeStyle:null,fillStyle:null,lineWidth:null,sprite:{xScale:1,yScale:1,xOffset:0,yOffset:0}},events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inertia:0,deltaTime:16.666666666666668,_original:null},l=y.extend(p,t);return c(l,t),l},e.nextGroup=function(t){return t?e._nextNonCollidingGroupId–:e._nextCollidingGroupId++},e.nextCategory=function(){return e._nextCategory=e._nextCategory<<1,e._nextCategory};var c=function(t,p){p=p||{},e.set(t,{bounds:t.bounds||a.create(t.vertices),positionPrev:t.positionPrev||s.clone(t.position),anglePrev:t.anglePrev||t.angle,vertices:t.vertices,parts:t.parts||[t],isStatic:t.isStatic,isSleeping:t.isSleeping,parent:t.parent||t}),o.rotate(t.vertices,t.angle,t.position),f.rotate(t.axes,t.angle),a.update(t.bounds,t.vertices,t.velocity),e.set(t,{axes:p.axes||t.axes,area:p.area||t.area,mass:p.mass||t.mass,inertia:p.inertia||t.inertia});var l=t.isStatic?"#14151f":y.choose(["#f19648","#f5d259","#f55a3c","#063e7b","#ececd1"]),m=t.isStatic?"#555":"#ccc",g=t.isStatic&&t.render.fillStyle===null?1:0;t.render.fillStyle=t.render.fillStyle||l,t.render.strokeStyle=t.render.strokeStyle||m,t.render.lineWidth=t.render.lineWidth||g,t.render.sprite.xOffset+=-(t.bounds.min.x-t.position.x)/(t.bounds.max.x-t.bounds.min.x),t.render.sprite.yOffset+=-(t.bounds.min.y-t.position.y)/(t.bounds.max.y-t.bounds.min.y)};e.set=function(t,p,l){var m;typeof p=="string"&&(m=p,p={},p[m]=l);for(m in p)if(Object.prototype.hasOwnProperty.call(p,m))switch(l=p[m],m){case"isStatic":e.setStatic(t,l);break;case"isSleeping":n.set(t,l);break;case"mass":e.setMass(t,l);break;case"density":e.setDensity(t,l);break;case"inertia":e.setInertia(t,l);break;case"vertices":e.setVertices(t,l);break;case"position":e.setPosition(t,l);break;case"angle":e.setAngle(t,l);break;case"velocity":e.setVelocity(t,l);break;case"angularVelocity":e.setAngularVelocity(t,l);break;case"speed":e.setSpeed(t,l);break;case"angularSpeed":e.setAngularSpeed(t,l);break;case"parts":e.setParts(t,l);break;case"centre":e.setCentre(t,l);break;default:t[m]=l}},e.setStatic=function(t,p){for(var l=0;l<t.parts.length;l++){var m=t.parts[l];p?(m.isStatic||(m._original={restitution:m.restitution,friction:m.friction,mass:m.mass,inertia:m.inertia,density:m.density,inverseMass:m.inverseMass,inverseInertia:m.inverseInertia}),m.restitution=0,m.friction=1,m.mass=m.inertia=m.density=1/0,m.inverseMass=m.inverseInertia=0,m.positionPrev.x=m.position.x,m.positionPrev.y=m.position.y,m.anglePrev=m.angle,m.angularVelocity=0,m.speed=0,m.angularSpeed=0,m.motion=0):m._original&&(m.restitution=m._original.restitution,m.friction=m._original.friction,m.mass=m._original.mass,m.inertia=m._original.inertia,m.density=m._original.density,m.inverseMass=m._original.inverseMass,m.inverseInertia=m._original.inverseInertia,m._original=null),m.isStatic=p}},e.setMass=function(t,p){var l=t.inertia/(t.mass/6);t.inertia=l*(p/6),t.inverseInertia=1/t.inertia,t.mass=p,t.inverseMass=1/t.mass,t.density=t.mass/t.area},e.setDensity=function(t,p){e.setMass(t,p*t.area),t.density=p},e.setInertia=function(t,p){t.inertia=p,t.inverseInertia=1/t.inertia},e.setVertices=function(t,p){p[0].body===t?t.vertices=p:t.vertices=o.create(p,t),t.axes=f.fromVertices(t.vertices),t.area=o.area(t.vertices),e.setMass(t,t.density*t.area);var l=o.centre(t.vertices);o.translate(t.vertices,l,-1),e.setInertia(t,e._inertiaScale*o.inertia(t.vertices,t.mass)),o.translate(t.vertices,t.position),a.update(t.bounds,t.vertices,t.velocity)},e.setParts=function(t,p,l){var m;for(p=p.slice(0),t.parts.length=0,t.parts.push(t),t.parent=t,m=0;m<p.length;m++){var g=p[m];g!==t&&(g.parent=t,t.parts.push(g))}if(t.parts.length!==1){if(l=typeof l<"u"?l:!0,l){var w=[];for(m=0;m<p.length;m++)w=w.concat(p[m].vertices);o.clockwiseSort(w);var M=o.hull(w),S=o.centre(M);e.setVertices(t,M),o.translate(t.vertices,S)}var d=e._totalProperties(t);t.area=d.area,t.parent=t,t.position.x=d.centre.x,t.position.y=d.centre.y,t.positionPrev.x=d.centre.x,t.positionPrev.y=d.centre.y,e.setMass(t,d.mass),e.setInertia(t,d.inertia),e.setPosition(t,d.centre)}},e.setCentre=function(t,p,l){l?(t.positionPrev.x+=p.x,t.positionPrev.y+=p.y,t.position.x+=p.x,t.position.y+=p.y):(t.positionPrev.x=p.x-(t.position.x-t.positionPrev.x),t.positionPrev.y=p.y-(t.position.y-t.positionPrev.y),t.position.x=p.x,t.position.y=p.y)},e.setPosition=function(t,p,l){var m=s.sub(p,t.position);l?(t.positionPrev.x=t.position.x,t.positionPrev.y=t.position.y,t.velocity.x=m.x,t.velocity.y=m.y,t.speed=s.magnitude(m)):(t.positionPrev.x+=m.x,t.positionPrev.y+=m.y);for(var g=0;g<t.parts.length;g++){var w=t.parts[g];w.position.x+=m.x,w.position.y+=m.y,o.translate(w.vertices,m),a.update(w.bounds,w.vertices,t.velocity)}},e.setAngle=function(t,p,l){var m=p-t.angle;l?(t.anglePrev=t.angle,t.angularVelocity=m,t.angularSpeed=Math.abs(m)):t.anglePrev+=m;for(var g=0;g0&&s.rotateAbout(w.position,m,t.position,w.position)}},e.setVelocity=function(t,p){var l=t.deltaTime/e._baseDelta;t.positionPrev.x=t.position.x-p.x*l,t.positionPrev.y=t.position.y-p.y*l,t.velocity.x=(t.position.x-t.positionPrev.x)/l,t.velocity.y=(t.position.y-t.positionPrev.y)/l,t.speed=s.magnitude(t.velocity)},e.getVelocity=function(t){var p=e._baseDelta/t.deltaTime;return{x:(t.position.x-t.positionPrev.x)*p,y:(t.position.y-t.positionPrev.y)*p}},e.getSpeed=function(t){return s.magnitude(e.getVelocity(t))},e.setSpeed=function(t,p){e.setVelocity(t,s.mult(s.normalise(e.getVelocity(t)),p))},e.setAngularVelocity=function(t,p){var l=t.deltaTime/e._baseDelta;t.anglePrev=t.angle-p*l,t.angularVelocity=(t.angle-t.anglePrev)/l,t.angularSpeed=Math.abs(t.angularVelocity)},e.getAngularVelocity=function(t){return(t.angle-t.anglePrev)*e._baseDelta/t.deltaTime},e.getAngularSpeed=function(t){return Math.abs(e.getAngularVelocity(t))},e.setAngularSpeed=function(t,p){e.setAngularVelocity(t,y.sign(e.getAngularVelocity(t))*p)},e.translate=function(t,p,l){e.setPosition(t,s.add(t.position,p),l)},e.rotate=function(t,p,l,m){if(!l)e.setAngle(t,t.angle+p,m);else{var g=Math.cos(p),w=Math.sin(p),M=t.position.x-l.x,S=t.position.y-l.y;e.setPosition(t,{x:l.x+(M*g-S*w),y:l.y+(M*w+S*g)},m),e.setAngle(t,t.angle+p,m)}},e.scale=function(t,p,l,m){var g=0,w=0;m=m||t.position;for(var M=0;M0&&(g+=S.area,w+=S.inertia),S.position.x=m.x+(S.position.x-m.x)*p,S.position.y=m.y+(S.position.y-m.y)*l,a.update(S.bounds,S.vertices,t.velocity)}t.parts.length>1&&(t.area=g,t.isStatic||(e.setMass(t,t.density*g),e.setInertia(t,w))),t.circleRadius&&(p===l?t.circleRadius*=p:t.circleRadius=null)},e.update=function(t,p){p=(typeof p<"u"?p:1e3/60)*t.timeScale;var l=p*p,m=e._timeCorrection?p/(t.deltaTime||p):1,g=1-t.frictionAir*(p/y._baseDelta),w=(t.position.x-t.positionPrev.x)*m,M=(t.position.y-t.positionPrev.y)*m;t.velocity.x=w*g+t.force.x/t.mass*l,t.velocity.y=M*g+t.force.y/t.mass*l,t.positionPrev.x=t.position.x,t.positionPrev.y=t.position.y,t.position.x+=t.velocity.x,t.position.y+=t.velocity.y,t.deltaTime=p,t.angularVelocity=(t.angle-t.anglePrev)*g*m+t.torque/t.inertia*l,t.anglePrev=t.angle,t.angle+=t.angularVelocity;for(var S=0;S0&&(d.position.x+=t.velocity.x,d.position.y+=t.velocity.y),t.angularVelocity!==0&&(o.rotate(d.vertices,t.angularVelocity,t.position),f.rotate(d.axes,t.angularVelocity),S>0&&s.rotateAbout(d.position,t.angularVelocity,t.position,d.position)),a.update(d.bounds,d.vertices,t.velocity)}},e.updateVelocities=function(t){var p=e._baseDelta/t.deltaTime,l=t.velocity;l.x=(t.position.x-t.positionPrev.x)*p,l.y=(t.position.y-t.positionPrev.y)*p,t.speed=Math.sqrt(l.x*l.x+l.y*l.y),t.angularVelocity=(t.angle-t.anglePrev)*p,t.angularSpeed=Math.abs(t.angularVelocity)},e.applyForce=function(t,p,l){var m={x:p.x-t.position.x,y:p.y-t.position.y};t.force.x+=l.x,t.force.y+=l.y,t.torque+=m.x*l.y-m.y*l.x},e._totalProperties=function(t){for(var p={mass:0,area:0,inertia:0,centre:{x:0,y:0}},l=t.parts.length===1?0:1;l<t.parts.length;l++){var m=t.parts[l],g=m.mass!==1/0?m.mass:1;p.mass+=g,p.area+=m.area,p.inertia+=m.inertia,p.centre=s.add(p.centre,s.mult(m.position,g))}return p.centre=s.div(p.centre,p.mass),p}})()},function(i,u,r){var e={};i.exports=e;var o=r(0);(function(){e.on=function(s,n,y){for(var a=n.split(" "),f,c=0;c<a.length;c++)f=a[c],s.events=s.events||{},s.events[f]=s.events[f]||[],s.events[f].push(y);return y},e.off=function(s,n,y){if(!n){s.events={};return}typeof n=="function"&&(y=n,n=o.keys(s.events).join(" "));for(var a=n.split(" "),f=0;f<a.length;f++){var c=s.events[a[f]],t=[];if(y&&c)for(var p=0;p0){y||(y={}),a=n.split(” “);for(var l=0;l<a.length;l++)if(f=a[l],c=p[f],c){t=o.clone(y,!1),t.name=f,t.source=s;for(var m=0;m<c.length;m++)c[m].apply(s,[t])}}}})()},function(i,u,r){var e={};i.exports=e;var o=r(5),s=r(0),n=r(1),y=r(4);(function(){e.create=function(a){return s.extend({id:s.nextId(),type:"composite",parent:null,isModified:!1,bodies:[],constraints:[],composites:[],label:"Composite",plugin:{},cache:{allBodies:null,allConstraints:null,allComposites:null}},a)},e.setModified=function(a,f,c,t){if(a.isModified=f,f&&a.cache&&(a.cache.allBodies=null,a.cache.allConstraints=null,a.cache.allComposites=null),c&&a.parent&&e.setModified(a.parent,f,c,t),t)for(var p=0;p<a.composites.length;p++){var l=a.composites[p];e.setModified(l,f,c,t)}},e.add=function(a,f){var c=[].concat(f);o.trigger(a,"beforeAdd",{object:f});for(var t=0;t<c.length;t++){var p=c[t];switch(p.type){case"body":if(p.parent!==p){s.warn("Composite.add: skipped adding a compound body part (you must add its parent instead)");break}e.addBody(a,p);break;case"constraint":e.addConstraint(a,p);break;case"composite":e.addComposite(a,p);break;case"mouseConstraint":e.addConstraint(a,p.constraint);break}}return o.trigger(a,"afterAdd",{object:f}),a},e.remove=function(a,f,c){var t=[].concat(f);o.trigger(a,"beforeRemove",{object:f});for(var p=0;p<t.length;p++){var l=t[p];switch(l.type){case"body":e.removeBody(a,l,c);break;case"constraint":e.removeConstraint(a,l,c);break;case"composite":e.removeComposite(a,l,c);break;case"mouseConstraint":e.removeConstraint(a,l.constraint);break}}return o.trigger(a,"afterRemove",{object:f}),a},e.addComposite=function(a,f){return a.composites.push(f),f.parent=a,e.setModified(a,!0,!0,!1),a},e.removeComposite=function(a,f,c){var t=s.indexOf(a.composites,f);if(t!==-1){var p=e.allBodies(f);e.removeCompositeAt(a,t);for(var l=0;l<p.length;l++)p[l].sleepCounter=0}if(c)for(var l=0;l<a.composites.length;l++)e.removeComposite(a.composites[l],f,!0);return a},e.removeCompositeAt=function(a,f){return a.composites.splice(f,1),e.setModified(a,!0,!0,!1),a},e.addBody=function(a,f){return a.bodies.push(f),e.setModified(a,!0,!0,!1),a},e.removeBody=function(a,f,c){var t=s.indexOf(a.bodies,f);if(t!==-1&&(e.removeBodyAt(a,t),f.sleepCounter=0),c)for(var p=0;p<a.composites.length;p++)e.removeBody(a.composites[p],f,!0);return a},e.removeBodyAt=function(a,f){return a.bodies.splice(f,1),e.setModified(a,!0,!0,!1),a},e.addConstraint=function(a,f){return a.constraints.push(f),e.setModified(a,!0,!0,!1),a},e.removeConstraint=function(a,f,c){var t=s.indexOf(a.constraints,f);if(t!==-1&&e.removeConstraintAt(a,t),c)for(var p=0;p<a.composites.length;p++)e.removeConstraint(a.composites[p],f,!0);return a},e.removeConstraintAt=function(a,f){return a.constraints.splice(f,1),e.setModified(a,!0,!0,!1),a},e.clear=function(a,f,c){if(c)for(var t=0;t<a.composites.length;t++)e.clear(a.composites[t],f,!0);return f?a.bodies=a.bodies.filter(function(p){return p.isStatic}):a.bodies.length=0,a.constraints.length=0,a.composites.length=0,e.setModified(a,!0,!0,!1),a},e.allBodies=function(a){if(a.cache&&a.cache.allBodies)return a.cache.allBodies;for(var f=[].concat(a.bodies),c=0;c<a.composites.length;c++)f=f.concat(e.allBodies(a.composites[c]));return a.cache&&(a.cache.allBodies=f),f},e.allConstraints=function(a){if(a.cache&&a.cache.allConstraints)return a.cache.allConstraints;for(var f=[].concat(a.constraints),c=0;c<a.composites.length;c++)f=f.concat(e.allConstraints(a.composites[c]));return a.cache&&(a.cache.allConstraints=f),f},e.allComposites=function(a){if(a.cache&&a.cache.allComposites)return a.cache.allComposites;for(var f=[].concat(a.composites),c=0;c<a.composites.length;c++)f=f.concat(e.allComposites(a.composites[c]));return a.cache&&(a.cache.allComposites=f),f},e.get=function(a,f,c){var t,p;switch(c){case"body":t=e.allBodies(a);break;case"constraint":t=e.allConstraints(a);break;case"composite":t=e.allComposites(a).concat(a);break}return t?(p=t.filter(function(l){return l.id.toString()===f.toString()}),p.length===0?null:p[0]):null},e.move=function(a,f,c){return e.remove(a,f),e.add(c,f),a},e.rebase=function(a){for(var f=e.allBodies(a).concat(e.allConstraints(a)).concat(e.allComposites(a)),c=0;c<f.length;c++)f[c].id=s.nextId();return a},e.translate=function(a,f,c){for(var t=c?e.allBodies(a):a.bodies,p=0;p<t.length;p++)y.translate(t[p],f);return a},e.rotate=function(a,f,c,t){for(var p=Math.cos(f),l=Math.sin(f),m=t?e.allBodies(a):a.bodies,g=0;g<m.length;g++){var w=m[g],M=w.position.x-c.x,S=w.position.y-c.y;y.setPosition(w,{x:c.x+(M*p-S*l),y:c.y+(M*l+S*p)}),y.rotate(w,f)}return a},e.scale=function(a,f,c,t,p){for(var l=p?e.allBodies(a):a.bodies,m=0;m<l.length;m++){var g=l[m],w=g.position.x-t.x,M=g.position.y-t.y;y.setPosition(g,{x:t.x+w*f,y:t.y+M*c}),y.scale(g,f,c)}return a},e.bounds=function(a){for(var f=e.allBodies(a),c=[],t=0;t<f.length;t+=1){var p=f[t];c.push(p.bounds.min,p.bounds.max)}return n.create(c)}})()},function(i,u,r){var e={};i.exports=e;var o=r(4),s=r(5),n=r(0);(function(){e._motionWakeThreshold=.18,e._motionSleepThreshold=.08,e._minBias=.9,e.update=function(y,a){for(var f=a/n._baseDelta,c=e._motionSleepThreshold,t=0;t0&&p.motion=p.sleepThreshold/f&&e.set(p,!0)):p.sleepCounter>0&&(p.sleepCounter-=1)}},e.afterCollisions=function(y){for(var a=e._motionSleepThreshold,f=0;fa&&e.set(m,!1)}}}},e.set=function(y,a){var f=y.isSleeping;a?(y.isSleeping=!0,y.sleepCounter=y.sleepThreshold,y.positionImpulse.x=0,y.positionImpulse.y=0,y.positionPrev.x=y.position.x,y.positionPrev.y=y.position.y,y.anglePrev=y.angle,y.speed=0,y.angularSpeed=0,y.motion=0,f||s.trigger(y,”sleepStart”)):(y.isSleeping=!1,y.sleepCounter=0,f&&s.trigger(y,”sleepEnd”))}})()},function(i,u,r){var e={};i.exports=e;var o=r(3),s=r(9);(function(){var n=[],y={overlap:0,axis:null},a={overlap:0,axis:null};e.create=function(f,c){return{pair:null,collided:!1,bodyA:f,bodyB:c,parentA:f.parent,parentB:c.parent,depth:0,normal:{x:0,y:0},tangent:{x:0,y:0},penetration:{x:0,y:0},supports:[null,null],supportCount:0}},e.collides=function(f,c,t){if(e._overlapAxes(y,f.vertices,c.vertices,f.axes),y.overlap<=0||(e._overlapAxes(a,c.vertices,f.vertices,c.axes),a.overlap<=0))return null;var p=t&&t.table[s.id(f,c)],l;p?l=p.collision:(l=e.create(f,c),l.collided=!0,l.bodyA=f.id<c.id?f:c,l.bodyB=f.id<c.id?c:f,l.parentA=l.bodyA.parent,l.parentB=l.bodyB.parent),f=l.bodyA,c=l.bodyB;var m;y.overlap=0&&(x=-x,h=-h),g.x=x,g.y=h,w.x=-h,w.y=x,M.x=x*d,M.y=h*d,l.depth=d;var P=e._findSupports(f,c,g,1),T=0;if(o.contains(f.vertices,P[0])&&(S[T++]=P[0]),o.contains(f.vertices,P[1])&&(S[T++]=P[1]),T<2){var A=e._findSupports(c,f,g,-1);o.contains(c.vertices,A[0])&&(S[T++]=A[0]),T<2&&o.contains(c.vertices,A[1])&&(S[T++]=A[1])}return T===0&&(S[T++]=P[0]),l.supportCount=T,l},e._overlapAxes=function(f,c,t,p){var l=c.length,m=t.length,g=c[0].x,w=c[0].y,M=t[0].x,S=t[0].y,d=p.length,v=Number.MAX_VALUE,x=0,h,F,C,P,T,A;for(T=0;T<d;T++){var B=p[T],b=B.x,I=B.y,E=g*b+w*I,k=M*b+S*I,z=E,U=k;for(A=1;Az?z=P:P<E&&(E=P);for(A=1;AU?U=P:P<k&&(k=P);if(F=z-k,C=U-E,h=F<C?F:C,h<v&&(v=h,x=T,h<=0))break}f.axis=p[x],f.overlap=v},e._findSupports=function(f,c,t,p){var l=c.vertices,m=l.length,g=f.position.x,w=f.position.y,M=t.x*p,S=t.y*p,d=l[0],v=d,x=M*(g-v.x)+S*(w-v.y),h,F,C;for(C=1;C<m;C+=1)v=l[C],F=M*(g-v.x)+S*(w-v.y),F<x&&(x=F,d=v);return h=l[(m+d.index-1)%m],x=M*(g-h.x)+S*(w-h.y),v=l[(d.index+1)%m],M*(g-v.x)+S*(w-v.y)<x?(n[0]=d,n[1]=v,n):(n[0]=d,n[1]=h,n)}})()},function(i,u,r){var e={};i.exports=e;var o=r(16);(function(){e.create=function(s,n){var y=s.bodyA,a=s.bodyB,f={id:e.id(y,a),bodyA:y,bodyB:a,collision:s,contacts:[o.create(),o.create()],contactCount:0,separation:0,isActive:!0,isSensor:y.isSensor||a.isSensor,timeCreated:n,timeUpdated:n,inverseMass:0,friction:0,frictionStatic:0,restitution:0,slop:0};return e.update(f,s,n),f},e.update=function(s,n,y){var a=n.supports,f=n.supportCount,c=s.contacts,t=n.parentA,p=n.parentB;s.isActive=!0,s.timeUpdated=y,s.collision=n,s.separation=n.depth,s.inverseMass=t.inverseMass+p.inverseMass,s.friction=t.friction
p.frictionStatic?t.frictionStatic:p.frictionStatic,s.restitution=t.restitution>p.restitution?t.restitution:p.restitution,s.slop=t.slop>p.slop?t.slop:p.slop,s.contactCount=f,n.pair=s;var l=a[0],m=c[0],g=a[1],w=c[1];(w.vertex===l||m.vertex===g)&&(c[1]=m,c[0]=m=w,w=c[1]),m.vertex=l,w.vertex=g},e.setActive=function(s,n,y){n?(s.isActive=!0,s.timeUpdated=y):(s.isActive=!1,s.contactCount=0)},e.id=function(s,n){return s.id<n.id?s.id.toString(36)+":"+n.id.toString(36):n.id.toString(36)+":"+s.id.toString(36)}})()},function(i,u,r){var e={};i.exports=e;var o=r(3),s=r(2),n=r(7),y=r(1),a=r(11),f=r(0);(function(){e._warming=.4,e._torqueDampen=1,e._minLength=1e-6,e.create=function(c){var t=c;t.bodyA&&!t.pointA&&(t.pointA={x:0,y:0}),t.bodyB&&!t.pointB&&(t.pointB={x:0,y:0});var p=t.bodyA?s.add(t.bodyA.position,t.pointA):t.pointA,l=t.bodyB?s.add(t.bodyB.position,t.pointB):t.pointB,m=s.magnitude(s.sub(p,l));t.length=typeof t.length0?1:.7),t.damping=t.damping||0,t.angularStiffness=t.angularStiffness||0,t.angleA=t.bodyA?t.bodyA.angle:t.angleA,t.angleB=t.bodyB?t.bodyB.angle:t.angleB,t.plugin={};var g={visible:!0,lineWidth:2,strokeStyle:”#ffffff”,type:”line”,anchors:!0};return t.length===0&&t.stiffness>.1?(g.type=”pin”,g.anchors=!1):t.stiffness<.9&&(g.type="spring"),t.render=f.extend(g,t.render),t},e.preSolveAll=function(c){for(var t=0;t<c.length;t+=1){var p=c[t],l=p.constraintImpulse;p.isStatic||l.x===0&&l.y===0&&l.angle===0||(p.position.x+=l.x,p.position.y+=l.y,p.angle+=l.angle)}},e.solveAll=function(c,t){for(var p=f.clamp(t/f._baseDelta,0,1),l=0;l<c.length;l+=1){var m=c[l],g=!m.bodyA||m.bodyA&&m.bodyA.isStatic,w=!m.bodyB||m.bodyB&&m.bodyB.isStatic;(g||w)&&e.solve(c[l],p)}for(l=0;l<c.length;l+=1)m=c[l],g=!m.bodyA||m.bodyA&&m.bodyA.isStatic,w=!m.bodyB||m.bodyB&&m.bodyB.isStatic,!g&&!w&&e.solve(c[l],p)},e.solve=function(c,t){var p=c.bodyA,l=c.bodyB,m=c.pointA,g=c.pointB;if(!(!p&&!l)){p&&!p.isStatic&&(s.rotate(m,p.angle-c.angleA,m),c.angleA=p.angle),l&&!l.isStatic&&(s.rotate(g,l.angle-c.angleB,g),c.angleB=l.angle);var w=m,M=g;if(p&&(w=s.add(p.position,m)),l&&(M=s.add(l.position,g)),!(!w||!M)){var S=s.sub(w,M),d=s.magnitude(S);d=1||c.length===0,h=x?c.stiffness*t:c.stiffness*t*t,F=c.damping*t,C=s.mult(S,v*h),P=(p?p.inverseMass:0)+(l?l.inverseMass:0),T=(p?p.inverseInertia:0)+(l?l.inverseInertia:0),A=P+T,B,b,I,E,k;if(F>0){var z=s.create();I=s.div(S,d),k=s.sub(l&&s.sub(l.position,l.positionPrev)||z,p&&s.sub(p.position,p.positionPrev)||z),E=s.dot(I,k)}p&&!p.isStatic&&(b=p.inverseMass/P,p.constraintImpulse.x-=C.x*b,p.constraintImpulse.y-=C.y*b,p.position.x-=C.x*b,p.position.y-=C.y*b,F>0&&(p.positionPrev.x-=F*I.x*E*b,p.positionPrev.y-=F*I.y*E*b),B=s.cross(m,C)/A*e._torqueDampen*p.inverseInertia*(1-c.angularStiffness),p.constraintImpulse.angle-=B,p.angle-=B),l&&!l.isStatic&&(b=l.inverseMass/P,l.constraintImpulse.x+=C.x*b,l.constraintImpulse.y+=C.y*b,l.position.x+=C.x*b,l.position.y+=C.y*b,F>0&&(l.positionPrev.x+=F*I.x*E*b,l.positionPrev.y+=F*I.y*E*b),B=s.cross(g,C)/A*e._torqueDampen*l.inverseInertia*(1-c.angularStiffness),l.constraintImpulse.angle+=B,l.angle+=B)}}},e.postSolveAll=function(c){for(var t=0;t<c.length;t++){var p=c[t],l=p.constraintImpulse;if(!(p.isStatic||l.x===0&&l.y===0&&l.angle===0)){n.set(p,!1);for(var m=0;m
0&&(g.position.x+=l.x,g.position.y+=l.y),l.angle!==0&&(o.rotate(g.vertices,l.angle,p.position),a.rotate(g.axes,l.angle),m>0&&s.rotateAbout(g.position,l.angle,p.position,g.position)),y.update(g.bounds,g.vertices,p.velocity)}l.angle*=e._warming,l.x*=e._warming,l.y*=e._warming}}},e.pointAWorld=function(c){return{x:(c.bodyA?c.bodyA.position.x:0)+(c.pointA?c.pointA.x:0),y:(c.bodyA?c.bodyA.position.y:0)+(c.pointA?c.pointA.y:0)}},e.pointBWorld=function(c){return{x:(c.bodyB?c.bodyB.position.x:0)+(c.pointB?c.pointB.x:0),y:(c.bodyB?c.bodyB.position.y:0)+(c.pointB?c.pointB.y:0)}},e.currentLength=function(c){var t=(c.bodyA?c.bodyA.position.x:0)+(c.pointA?c.pointA.x:0),p=(c.bodyA?c.bodyA.position.y:0)+(c.pointA?c.pointA.y:0),l=(c.bodyB?c.bodyB.position.x:0)+(c.pointB?c.pointB.x:0),m=(c.bodyB?c.bodyB.position.y:0)+(c.pointB?c.pointB.y:0),g=t-l,w=p-m;return Math.sqrt(g*g+w*w)}})()},function(i,u,r){var e={};i.exports=e;var o=r(2),s=r(0);(function(){e.fromVertices=function(n){for(var y={},a=0;a<n.length;a++){var f=(a+1)%n.length,c=o.normalise({x:n[f].y-n[a].y,y:n[a].x-n[f].x}),t=c.y===0?1/0:c.x/c.y;t=t.toFixed(3).toString(),y[t]=c}return s.values(y)},e.rotate=function(n,y){if(y!==0)for(var a=Math.cos(y),f=Math.sin(y),c=0;c=1&&s.warn(“Bodies.trapezoid: slope parameter must be < 1."),l*=.5;var g=(1-l*2)*t,w=t*l,M=w+g,S=M+w,d;l<.5?d="L 0 0 L "+w+" "+-p+" L "+M+" "+-p+" L "+S+" 0":d="L 0 0 L "+M+" "+-p+" L "+S+" 0";var v={label:"Trapezoid Body",position:{x:f,y:c},vertices:o.fromPath(d)};if(m.chamfer){var x=m.chamfer;v.vertices=o.chamfer(v.vertices,x.radius,x.quality,x.qualityMin,x.qualityMax),delete m.chamfer}return n.create(s.extend({},v,m))},e.circle=function(f,c,t,p,l){p=p||{};var m={label:"Circle Body",circleRadius:t};l=l||25;var g=Math.ceil(Math.max(10,Math.min(l,t)));return g%2===1&&(g+=1),e.polygon(f,c,g,t,s.extend({},m,p))},e.polygon=function(f,c,t,p,l){if(l=l||{},t<3)return e.circle(f,c,p,l);for(var m=2*Math.PI/t,g="",w=m*.5,M=0;M<t;M+=1){var S=w+M*m,d=Math.cos(S)*p,v=Math.sin(S)*p;g+="L "+d.toFixed(3)+" "+v.toFixed(3)+" "}var x={label:"Polygon Body",position:{x:f,y:c},vertices:o.fromPath(g)};if(l.chamfer){var h=l.chamfer;x.vertices=o.chamfer(x.vertices,h.radius,h.quality,h.qualityMin,h.qualityMax),delete l.chamfer}return n.create(s.extend({},x,l))},e.fromVertices=function(f,c,t,p,l,m,g,w){var M=s.getDecomp(),S,d,v,x,h,F,C,P,T,A,B;for(S=!!(M&&M.quickDecomp),p=p||{},v=[],l=typeof l<"u"?l:!1,m=typeof m<"u"?m:.01,g=typeof g<"u"?g:10,w=typeof w<"u"?w:.01,s.isArray(t[0])||(t=[t]),A=0;A<t.length;A+=1)if(F=t[A],x=o.isConvex(F),h=!x,h&&!S&&s.warnOnce("Bodies.fromVertices: Install the 'poly-decomp' library and use Common.setDecomp or provide 'decomp' as a global to decompose concave vertices."),x||!S)x?F=o.clockwiseSort(F):F=o.hull(F),v.push({position:{x:f,y:c},vertices:F});else{var b=F.map(function($){return[$.x,$.y]});M.makeCCW(b),m!==!1&&M.removeCollinearPoints(b,m),w!==!1&&M.removeDuplicatePoints&&M.removeDuplicatePoints(b,w);var I=M.quickDecomp(b);for(C=0;C0&&o.area(k)<g||v.push({position:o.centre(k),vertices:k})}}for(C=0;C<v.length;C++)v[C]=n.create(s.extend(v[C],p));if(l){var z=5;for(C=0;C<v.length;C++){var U=v[C];for(P=C+1;P<v.length;P++){var V=v[P];if(y.overlaps(U.bounds,V.bounds)){var W=U.vertices,q=V.vertices;for(T=0;T<U.vertices.length;T++)for(B=0;B<V.vertices.length;B++){var re=a.magnitudeSquared(a.sub(W[(T+1)%W.length],q[B])),N=a.magnitudeSquared(a.sub(W[T],q[(B+1)%q.length]));re<z&&N1?(d=n.create(s.extend({parts:v.slice(0)},p)),n.setPosition(d,{x:f,y:c}),d):v[0]}})()},function(i,u,r){var e={};i.exports=e;var o=r(0),s=r(8);(function(){e.create=function(n){var y={bodies:[],collisions:[],pairs:null};return o.extend(y,n)},e.setBodies=function(n,y){n.bodies=y.slice(0)},e.clear=function(n){n.bodies=[],n.collisions=[]},e.collisions=function(n){var y=n.pairs,a=n.bodies,f=a.length,c=e.canCollide,t=s.collides,p=n.collisions,l=0,m,g;for(a.sort(e._compareBoundsX),m=0;m<f;m++){var w=a[m],M=w.bounds,S=w.bounds.max.x,d=w.bounds.max.y,v=w.bounds.min.y,x=w.isStatic||w.isSleeping,h=w.parts.length,F=h===1;for(g=m+1;gS)break;if(!(d
P.max.y)&&!(x&&(C.isStatic||C.isSleeping))&&c(w.collisionFilter,C.collisionFilter)){var T=C.parts.length;if(F&&T===1){var A=t(w,C,y);A&&(p[l++]=A)}else for(var B=h>1?1:0,b=T>1?1:0,I=B;I<h;I++)for(var E=w.parts[I],M=E.bounds,k=b;kP.max.x||M.max.x<P.min.x||M.max.y
P.max.y)){var A=t(E,z,y);A&&(p[l++]=A)}}}}}return p.length!==l&&(p.length=l),p},e.canCollide=function(n,y){return n.group===y.group&&n.group!==0?n.group>0:(n.mask&y.category)!==0&&(y.mask&n.category)!==0},e._compareBoundsX=function(n,y){return n.bounds.min.x-y.bounds.min.x}})()},function(i,u,r){var e={};i.exports=e;var o=r(0);(function(){e.create=function(s){var n={};return s||o.log(“Mouse.create: element was undefined, defaulting to document.body”,”warn”),n.element=s||document.body,n.absolute={x:0,y:0},n.position={x:0,y:0},n.mousedownPosition={x:0,y:0},n.mouseupPosition={x:0,y:0},n.offset={x:0,y:0},n.scale={x:1,y:1},n.wheelDelta=0,n.button=-1,n.pixelRatio=parseInt(n.element.getAttribute(“data-pixel-ratio”),10)||1,n.sourceEvents={mousemove:null,mousedown:null,mouseup:null,mousewheel:null},n.mousemove=function(y){var a=e._getRelativeMousePosition(y,n.element,n.pixelRatio),f=y.changedTouches;f&&(n.button=0,y.preventDefault()),n.absolute.x=a.x,n.absolute.y=a.y,n.position.x=n.absolute.x*n.scale.x+n.offset.x,n.position.y=n.absolute.y*n.scale.y+n.offset.y,n.sourceEvents.mousemove=y},n.mousedown=function(y){var a=e._getRelativeMousePosition(y,n.element,n.pixelRatio),f=y.changedTouches;f?(n.button=0,y.preventDefault()):n.button=y.button,n.absolute.x=a.x,n.absolute.y=a.y,n.position.x=n.absolute.x*n.scale.x+n.offset.x,n.position.y=n.absolute.y*n.scale.y+n.offset.y,n.mousedownPosition.x=n.position.x,n.mousedownPosition.y=n.position.y,n.sourceEvents.mousedown=y},n.mouseup=function(y){var a=e._getRelativeMousePosition(y,n.element,n.pixelRatio),f=y.changedTouches;f&&y.preventDefault(),n.button=-1,n.absolute.x=a.x,n.absolute.y=a.y,n.position.x=n.absolute.x*n.scale.x+n.offset.x,n.position.y=n.absolute.y*n.scale.y+n.offset.y,n.mouseupPosition.x=n.position.x,n.mouseupPosition.y=n.position.y,n.sourceEvents.mouseup=y},n.mousewheel=function(y){n.wheelDelta=Math.max(-1,Math.min(1,y.wheelDelta||-y.detail)),y.preventDefault(),n.sourceEvents.mousewheel=y},e.setElement(n,n.element),n},e.setElement=function(s,n){s.element=n,n.addEventListener(“mousemove”,s.mousemove,{passive:!0}),n.addEventListener(“mousedown”,s.mousedown,{passive:!0}),n.addEventListener(“mouseup”,s.mouseup,{passive:!0}),n.addEventListener(“wheel”,s.mousewheel,{passive:!1}),n.addEventListener(“touchmove”,s.mousemove,{passive:!1}),n.addEventListener(“touchstart”,s.mousedown,{passive:!1}),n.addEventListener(“touchend”,s.mouseup,{passive:!1})},e.clearSourceEvents=function(s){s.sourceEvents.mousemove=null,s.sourceEvents.mousedown=null,s.sourceEvents.mouseup=null,s.sourceEvents.mousewheel=null,s.wheelDelta=0},e.setOffset=function(s,n){s.offset.x=n.x,s.offset.y=n.y,s.position.x=s.absolute.x*s.scale.x+s.offset.x,s.position.y=s.absolute.y*s.scale.y+s.offset.y},e.setScale=function(s,n){s.scale.x=n.x,s.scale.y=n.y,s.position.x=s.absolute.x*s.scale.x+s.offset.x,s.position.y=s.absolute.y*s.scale.y+s.offset.y},e._getRelativeMousePosition=function(s,n,y){var a=n.getBoundingClientRect(),f=document.documentElement||document.body.parentNode||document.body,c=window.pageXOffset!==void 0?window.pageXOffset:f.scrollLeft,t=window.pageYOffset!==void 0?window.pageYOffset:f.scrollTop,p=s.changedTouches,l,m;return p?(l=p[0].pageX-a.left-c,m=p[0].pageY-a.top-t):(l=s.pageX-a.left-c,m=s.pageY-a.top-t),{x:l/(n.clientWidth/(n.width||n.clientWidth)*y),y:m/(n.clientHeight/(n.height||n.clientHeight)*y)}}})()},function(i,u,r){var e={};i.exports=e;var o=r(0);(function(){e._registry={},e.register=function(s){if(e.isPlugin(s)||o.warn(“Plugin.register:”,e.toString(s),”does not implement all required fields.”),s.name in e._registry){var n=e._registry[s.name],y=e.versionParse(s.version).number,a=e.versionParse(n.version).number;y>a?(o.warn(“Plugin.register:”,e.toString(n),”was upgraded to”,e.toString(s)),e._registry[s.name]=s):y-1},e.isFor=function(s,n){var y=s.for&&e.dependencyParse(s.for);return!s.for||n.name===y.name&&e.versionSatisfies(n.version,y.range)},e.use=function(s,n){if(s.uses=(s.uses||[]).concat(n||[]),s.uses.length===0){o.warn(“Plugin.use:”,e.toString(s),”does not specify any dependencies to install.”);return}for(var y=e.dependencies(s),a=o.topologicalSort(y),f=[],c=0;c0&&o.info(f.join(” “))},e.dependencies=function(s,n){var y=e.dependencyParse(s),a=y.name;if(n=n||{},!(a in n)){s=e.resolve(s)||s,n[a]=o.map(s.uses||[],function(c){e.isPlugin(c)&&e.register(c);var t=e.dependencyParse(c),p=e.resolve(c);return p&&!e.versionSatisfies(p.version,t.range)?(o.warn(“Plugin.dependencies:”,e.toString(p),”does not satisfy”,e.toString(t),”used by”,e.toString(y)+”.”),p._warned=!0,s._warned=!0):p||(o.warn(“Plugin.dependencies:”,e.toString(c),”used by”,e.toString(y),”could not be resolved.”),s._warned=!0),t.name});for(var f=0;f=|>)?s*((d+).(d+).(d+))(-[0-9A-Za-z-+]+)?$/;n.test(s)||o.warn(“Plugin.versionParse:”,s,”is not a valid version or range.”);var y=n.exec(s),a=Number(y[4]),f=Number(y[5]),c=Number(y[6]);return{isRange:!!(y[1]||y[2]),version:y[3],range:s,operator:y[1]||y[2]||””,major:a,minor:f,patch:c,parts:[a,f,c],prerelease:y[7],number:a*1e8+f*1e4+c}},e.versionSatisfies=function(s,n){n=n||”*”;var y=e.versionParse(n),a=e.versionParse(s);if(y.isRange){if(y.operator===”*”||s===”*”)return!0;if(y.operator===”>”)return a.number>y.number;if(y.operator===”>=”)return a.number>=y.number;if(y.operator===”~”)return a.major===y.major&&a.minor===y.minor&&a.patch>=y.patch;if(y.operator===”^”)return y.major>0?a.major===y.major&&a.number>=y.number:y.minor>0?a.minor===y.minor&&a.patch>=y.patch:a.patch===y.patch}return s===n||s===”*”}})()},function(i,u){var r={};i.exports=r,function(){r.create=function(e){return{vertex:e,normalImpulse:0,tangentImpulse:0}}}()},function(i,u,r){var e={};i.exports=e;var o=r(7),s=r(18),n=r(13),y=r(19),a=r(5),f=r(6),c=r(10),t=r(0),p=r(4);(function(){e._deltaMax=1e3/60,e.create=function(l){l=l||{};var m={positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:!1,events:[],plugin:{},gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0,lastUpdatesPerFrame:0}},g=t.extend(m,l);return g.world=l.world||f.create({label:”World”}),g.pairs=l.pairs||y.create(),g.detector=l.detector||n.create(),g.detector.pairs=g.pairs,g.grid={buckets:[]},g.world.gravity=g.gravity,g.broadphase=g.grid,g.metrics={},g},e.update=function(l,m){var g=t.now(),w=l.world,M=l.detector,S=l.pairs,d=l.timing,v=d.timestamp,x;m>e._deltaMax&&t.warnOnce(“Matter.Engine.update: delta argument is recommended to be less than or equal to”,e._deltaMax.toFixed(3),”ms.”),m=typeof m0&&e._bodiesUpdate(F,m),a.trigger(l,”beforeSolve”,h),c.preSolveAll(F),x=0;x0&&a.trigger(l,”collisionStart”,{pairs:S.collisionStart,timestamp:d.timestamp,delta:m});var T=t.clamp(20/l.positionIterations,0,1);for(s.preSolvePosition(S.list),x=0;x<l.positionIterations;x++)s.solvePosition(S.list,m,T);for(s.postSolvePosition(F),c.preSolveAll(F),x=0;x<l.constraintIterations;x++)c.solveAll(C,m);for(c.postSolveAll(F),s.preSolveVelocity(S.list),x=0;x0&&a.trigger(l,”collisionActive”,{pairs:S.collisionActive,timestamp:d.timestamp,delta:m}),S.collisionEnd.length>0&&a.trigger(l,”collisionEnd”,{pairs:S.collisionEnd,timestamp:d.timestamp,delta:m}),e._bodiesClearForces(F),a.trigger(l,”afterUpdate”,h),l.timing.lastElapsed=t.now()-g,l},e.merge=function(l,m){if(t.extend(l,m),m.world){l.world=m.world,e.clear(l);for(var g=f.allBodies(l.world),w=0;w<g.length;w++){var M=g[w];o.set(M,!1),M.id=t.nextId()}}},e.clear=function(l){y.clear(l.pairs),n.clear(l.detector)},e._bodiesClearForces=function(l){for(var m=l.length,g=0;g<m;g++){var w=l[g];w.force.x=0,w.force.y=0,w.torque=0}},e._bodiesApplyGravity=function(l,m){var g=typeof m.scale<"u"?m.scale:.001,w=l.length;if(!(m.x===0&&m.y===0||g===0))for(var M=0;M<w;M++){var S=l[M];S.isStatic||S.isSleeping||(S.force.y+=S.mass*m.y*g,S.force.x+=S.mass*m.x*g)}},e._bodiesUpdate=function(l,m){for(var g=l.length,w=0;w<g;w++){var M=l[w];M.isStatic||M.isSleeping||p.update(M,m)}},e._bodiesUpdateVelocities=function(l){for(var m=l.length,g=0;g<m;g++)p.updateVelocities(l[g])}})()},function(i,u,r){var e={};i.exports=e;var o=r(3),s=r(0),n=r(1);(function(){e._restingThresh=2,e._restingThreshTangent=Math.sqrt(6),e._positionDampen=.9,e._positionWarming=.8,e._frictionNormalMultiplier=5,e._frictionMaxStatic=Number.MAX_VALUE,e.preSolvePosition=function(y){var a,f,c,t=y.length;for(a=0;a<t;a++)f=y[a],f.isActive&&(c=f.contactCount,f.collision.parentA.totalContacts+=c,f.collision.parentB.totalContacts+=c)},e.solvePosition=function(y,a,f){var c,t,p,l,m,g,w,M,S=e._positionDampen*(f||1),d=s.clamp(a/s._baseDelta,0,1),v=y.length;for(c=0;c<v;c++)t=y[c],!(!t.isActive||t.isSensor)&&(p=t.collision,l=p.parentA,m=p.parentB,g=p.normal,t.separation=p.depth+g.x*(m.positionImpulse.x-l.positionImpulse.x)+g.y*(m.positionImpulse.y-l.positionImpulse.y));for(c=0;c<v;c++)t=y[c],!(!t.isActive||t.isSensor)&&(p=t.collision,l=p.parentA,m=p.parentB,g=p.normal,M=t.separation-t.slop*d,(l.isStatic||m.isStatic)&&(M*=2),l.isStatic||l.isSleeping||(w=S/l.totalContacts,l.positionImpulse.x+=g.x*M*w,l.positionImpulse.y+=g.y*M*w),m.isStatic||m.isSleeping||(w=S/m.totalContacts,m.positionImpulse.x-=g.x*M*w,m.positionImpulse.y-=g.y*M*w))},e.postSolvePosition=function(y){for(var a=e._positionWarming,f=y.length,c=o.translate,t=n.update,p=0;p<f;p++){var l=y[p],m=l.positionImpulse,g=m.x,w=m.y,M=l.velocity;if(l.totalContacts=0,g!==0||w!==0){for(var S=0;S<l.parts.length;S++){var d=l.parts[S];c(d.vertices,m),t(d.bounds,d.vertices,M),d.position.x+=g,d.position.y+=w}l.positionPrev.x+=g,l.positionPrev.y+=w,g*M.x+w*M.y<0?(m.x=0,m.y=0):(m.x*=a,m.y*=a)}}},e.preSolveVelocity=function(y){var a=y.length,f,c;for(f=0;f<a;f++){var t=y[f];if(!(!t.isActive||t.isSensor)){var p=t.contacts,l=t.contactCount,m=t.collision,g=m.parentA,w=m.parentB,M=m.normal,S=m.tangent;for(c=0;c<l;c++){var d=p[c],v=d.vertex,x=d.normalImpulse,h=d.tangentImpulse;if(x!==0||h!==0){var F=M.x*x+S.x*h,C=M.y*x+S.y*h;g.isStatic||g.isSleeping||(g.positionPrev.x+=F*g.inverseMass,g.positionPrev.y+=C*g.inverseMass,g.anglePrev+=g.inverseInertia*((v.x-g.position.x)*C-(v.y-g.position.y)*F)),w.isStatic||w.isSleeping||(w.positionPrev.x-=F*w.inverseMass,w.positionPrev.y-=C*w.inverseMass,w.anglePrev-=w.inverseInertia*((v.x-w.position.x)*C-(v.y-w.position.y)*F))}}}}},e.solveVelocity=function(y,a){var f=a/s._baseDelta,c=f*f,t=c*f,p=-e._restingThresh*f,l=e._restingThreshTangent,m=e._frictionNormalMultiplier*f,g=e._frictionMaxStatic,w=y.length,M,S,d,v;for(d=0;d<w;d++){var x=y[d];if(!(!x.isActive||x.isSensor)){var h=x.collision,F=h.parentA,C=h.parentB,P=h.normal.x,T=h.normal.y,A=h.tangent.x,B=h.tangent.y,b=x.inverseMass,I=x.friction*x.frictionStatic*m,E=x.contacts,k=x.contactCount,z=1/k,U=F.position.x-F.positionPrev.x,V=F.position.y-F.positionPrev.y,W=F.angle-F.anglePrev,q=C.position.x-C.positionPrev.x,re=C.position.y-C.positionPrev.y,N=C.angle-C.anglePrev;for(v=0;v<k;v++){var $=E[v],J=$.vertex,j=J.x-F.position.x,se=J.y-F.position.y,X=J.x-C.position.x,_=J.y-C.position.y,K=U-se*W,Be=V+j*W,be=q-_*N,Ee=re+X*N,ft=K-be,yt=Be-Ee,Ze=P*ft+T*yt,pe=A*ft+B*yt,mt=x.separation+Ze,qe=Math.min(mt,1);qe=mt<0?0:qe;var dt=qe*I;pedt?(S=pe>0?pe:-pe,M=x.friction*(pe>0?1:-1)*t,MS&&(M=S)):(M=pe,S=g);var gt=j*T-se*P,ht=X*T-_*P,vt=z/(b+F.inverseInertia*gt*gt+C.inverseInertia*ht*ht),Ie=(1+x.restitution)*Ze*vt;if(M*=vt,Ze
0&&($.normalImpulse=0),Ie=$.normalImpulse-Br}if(pel)$.tangentImpulse=0;else{var br=$.tangentImpulse;$.tangentImpulse+=M,$.tangentImpulseS&&($.tangentImpulse=S),M=$.tangentImpulse-br}var ke=P*Ie+A*M,De=T*Ie+B*M;F.isStatic||F.isSleeping||(F.positionPrev.x+=ke*F.inverseMass,F.positionPrev.y+=De*F.inverseMass,F.anglePrev+=(j*De-se*ke)*F.inverseInertia),C.isStatic||C.isSleeping||(C.positionPrev.x-=ke*C.inverseMass,C.positionPrev.y-=De*C.inverseMass,C.anglePrev-=(X*De-_*ke)*C.inverseInertia)}}}}})()},function(i,u,r){var e={};i.exports=e;var o=r(9),s=r(0);(function(){e.create=function(n){return s.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},n)},e.update=function(n,y,a){var f=o.update,c=o.create,t=o.setActive,p=n.table,l=n.list,m=l.length,g=m,w=n.collisionStart,M=n.collisionEnd,S=n.collisionActive,d=y.length,v=0,x=0,h=0,F,C,P;for(P=0;P<d;P++)F=y[P],C=F.pair,C?(C.isActive&&(S[h++]=C),f(C,F,a)):(C=c(F,a),p[C.id]=C,w[v++]=C,l[g++]=C);for(g=0,m=l.length,P=0;P=a?l[g++]=C:(t(C,!1,a),C.collision.bodyA.sleepCounter>0&&C.collision.bodyB.sleepCounter>0?l[g++]=C:(M[x++]=C,delete p[C.id]));l.length!==g&&(l.length=g),w.length!==v&&(w.length=v),M.length!==x&&(M.length=x),S.length!==h&&(S.length=h)},e.clear=function(n){return n.table={},n.list.length=0,n.collisionStart.length=0,n.collisionActive.length=0,n.collisionEnd.length=0,n}})()},function(i,u,r){var e=i.exports=r(21);e.Axes=r(11),e.Bodies=r(12),e.Body=r(4),e.Bounds=r(1),e.Collision=r(8),e.Common=r(0),e.Composite=r(6),e.Composites=r(22),e.Constraint=r(10),e.Contact=r(16),e.Detector=r(13),e.Engine=r(17),e.Events=r(5),e.Grid=r(23),e.Mouse=r(14),e.MouseConstraint=r(24),e.Pair=r(9),e.Pairs=r(19),e.Plugin=r(15),e.Query=r(25),e.Render=r(26),e.Resolver=r(18),e.Runner=r(27),e.SAT=r(28),e.Sleeping=r(7),e.Svg=r(29),e.Vector=r(2),e.Vertices=r(3),e.World=r(30),e.Engine.run=e.Runner.run,e.Common.deprecated(e.Engine,”run”,”Engine.run u27A4 use Matter.Runner.run(engine) instead”)},function(i,u,r){var e={};i.exports=e;var o=r(15),s=r(0);(function(){e.name=”matter-js”,e.version=”0.20.0″,e.uses=[],e.used=[],e.use=function(){o.use(e,Array.prototype.slice.call(arguments))},e.before=function(n,y){return n=n.replace(/^Matter./,””),s.chainPathBefore(e,n,y)},e.after=function(n,y){return n=n.replace(/^Matter./,””),s.chainPathAfter(e,n,y)}})()},function(i,u,r){var e={};i.exports=e;var o=r(6),s=r(10),n=r(0),y=r(4),a=r(12),f=n.deprecated;(function(){e.stack=function(c,t,p,l,m,g,w){for(var M=o.create({label:”Stack”}),S=c,d=t,v,x=0,h=0;h<l;h++){for(var F=0,C=0;C
F&&(F=T),y.translate(P,{x:A*.5,y:T*.5}),S=P.bounds.max.x+m,o.addBody(M,P),v=P,x+=1}else S+=m}d+=F+g,S=c}return M},e.chain=function(c,t,p,l,m,g){for(var w=c.bodies,M=1;M<w.length;M++){var S=w[M-1],d=w[M],v=S.bounds.max.y-S.bounds.min.y,x=S.bounds.max.x-S.bounds.min.x,h=d.bounds.max.y-d.bounds.min.y,F=d.bounds.max.x-d.bounds.min.x,C={bodyA:S,pointA:{x:x*t,y:v*p},bodyB:d,pointB:{x:F*l,y:h*m}},P=n.extend(C,g);o.addConstraint(c,s.create(P))}return c.label+=" Chain",c},e.mesh=function(c,t,p,l,m){var g=c.bodies,w,M,S,d,v;for(w=0;w<p;w++){for(M=1;M0)for(M=0;M0&&(v=g[M-1+(w-1)*t],o.addConstraint(c,s.create(n.extend({bodyA:v,bodyB:d},m)))),l&&MF)){v=F-v;var P=v,T=p-1-v;if(!(d
T)){h===1&&y.translate(x,{x:(d+(p%2===1?1:-1))*C,y:0});var A=x?d*C:0;return w(c+A+d*m,S,d,v,x,h)}}})},e.newtonsCradle=function(c,t,p,l,m){for(var g=o.create({label:”Newtons Cradle”}),w=0;w<p;w++){var M=1.9,S=a.circle(c+w*(l*M),t+m,l,{inertia:1/0,restitution:1,friction:0,frictionAir:1e-4,slop:1}),d=s.create({pointA:{x:c+w*(l*M),y:t},bodyB:S});o.addBody(g,S),o.addConstraint(g,d)}return g},f(e,"newtonsCradle","Composites.newtonsCradle u27A4 moved to newtonsCradle example"),e.car=function(c,t,p,l,m){var g=y.nextGroup(!0),w=20,M=-p*.5+w,S=p*.5-w,d=0,v=o.create({label:"Car"}),x=a.rectangle(c,t,p,l,{collisionFilter:{group:g},chamfer:{radius:l*.5},density:2e-4}),h=a.circle(c+M,t+d,m,{collisionFilter:{group:g},friction:.8}),F=a.circle(c+S,t+d,m,{collisionFilter:{group:g},friction:.8}),C=s.create({bodyB:x,pointB:{x:M,y:d},bodyA:h,stiffness:1,length:0}),P=s.create({bodyB:x,pointB:{x:S,y:d},bodyA:F,stiffness:1,length:0});return o.addBody(v,x),o.addBody(v,h),o.addBody(v,F),o.addConstraint(v,C),o.addConstraint(v,P),v},f(e,"car","Composites.car u27A4 moved to car example"),e.softBody=function(c,t,p,l,m,g,w,M,S,d){S=n.extend({inertia:1/0},S),d=n.extend({stiffness:.2,render:{type:"line",anchors:!1}},d);var v=e.stack(c,t,p,l,m,g,function(x,h){return a.circle(x,h,M,S)});return e.mesh(v,p,l,w,d),v.label="Soft Body",v},f(e,"softBody","Composites.softBody u27A4 moved to softBody and cloth examples")})()},function(i,u,r){var e={};i.exports=e;var o=r(9),s=r(0),n=s.deprecated;(function(){e.create=function(y){var a={buckets:{},pairs:{},pairsList:[],bucketWidth:48,bucketHeight:48};return s.extend(a,y)},e.update=function(y,a,f,c){var t,p,l,m=f.world,g=y.buckets,w,M,S=!1;for(t=0;t<a.length;t++){var d=a[t];if(!(d.isSleeping&&!c)&&!(m.bounds&&(d.bounds.max.xm.bounds.max.x||d.bounds.max.ym.bounds.max.y))){var v=e._getRegion(y,d);if(!d.region||v.id!==d.region.id||c){(!d.region||c)&&(d.region=v);var x=e._regionUnion(v,d.region);for(p=x.startCol;p<=x.endCol;p++)for(l=x.startRow;l=v.startCol&&p=v.startRow&&l=d.region.startCol&&p=d.region.startRow&&l<=d.region.endRow;!h&&F&&F&&w&&e._bucketRemoveBody(y,w,d),(d.region===v||h&&!F||c)&&(w||(w=e._createBucket(g,M)),e._bucketAddBody(y,w,d))}d.region=v,S=!0}}}S&&(y.pairsList=e._createActivePairsList(y))},n(e,"update","Grid.update u27A4 replaced by Matter.Detector"),e.clear=function(y){y.buckets={},y.pairs={},y.pairsList=[]},n(e,"clear","Grid.clear u27A4 replaced by Matter.Detector"),e._regionUnion=function(y,a){var f=Math.min(y.startCol,a.startCol),c=Math.max(y.endCol,a.endCol),t=Math.min(y.startRow,a.startRow),p=Math.max(y.endRow,a.endRow);return e._createRegion(f,c,t,p)},e._getRegion=function(y,a){var f=a.bounds,c=Math.floor(f.min.x/y.bucketWidth),t=Math.floor(f.max.x/y.bucketWidth),p=Math.floor(f.min.y/y.bucketHeight),l=Math.floor(f.max.y/y.bucketHeight);return e._createRegion(c,t,p,l)},e._createRegion=function(y,a,f,c){return{id:y+","+a+","+f+","+c,startCol:y,endCol:a,startRow:f,endRow:c}},e._getBucketId=function(y,a){return"C"+y+"R"+a},e._createBucket=function(y,a){var f=y[a]=[];return f},e._bucketAddBody=function(y,a,f){var c=y.pairs,t=o.id,p=a.length,l;for(l=0;l<p;l++){var m=a[l];if(!(f.id===m.id||f.isStatic&&m.isStatic)){var g=t(f,m),w=c[g];w?w[2]+=1:c[g]=[f,m,1]}}a.push(f)},e._bucketRemoveBody=function(y,a,f){var c=y.pairs,t=o.id,p;a.splice(s.indexOf(a,f),1);var l=a.length;for(p=0;p<l;p++){var m=c[t(f,a[p])];m&&(m[2]-=1)}},e._createActivePairsList=function(y){var a,f=y.pairs,c=s.keys(f),t=c.length,p=[],l;for(l=0;l0?p.push(a):delete f[c[l]];return p}})()},function(i,u,r){var e={};i.exports=e;var o=r(3),s=r(7),n=r(14),y=r(5),a=r(13),f=r(10),c=r(6),t=r(0),p=r(1);(function(){e.create=function(l,m){var g=(l?l.mouse:null)||(m?m.mouse:null);g||(l&&l.render&&l.render.canvas?g=n.create(l.render.canvas):m&&m.element?g=n.create(m.element):(g=n.create(),t.warn(“MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected”)));var w=f.create({label:”Mouse Constraint”,pointA:g.position,pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,render:{strokeStyle:”#90EE90″,lineWidth:3}}),M={type:”mouseConstraint”,mouse:g,element:null,body:null,constraint:w,collisionFilter:{category:1,mask:4294967295,group:0}},S=t.extend(M,m);return y.on(l,”beforeUpdate”,function(){var d=c.allBodies(l.world);e.update(S,d),e._triggerEvents(S)}),S},e.update=function(l,m){var g=l.mouse,w=l.constraint,M=l.body;if(g.button===0){if(w.bodyB)s.set(w.bodyB,!1),w.pointA=g.position;else for(var S=0;S1?1:0;d<M.parts.length;d++){var v=M.parts[d];if(o.contains(v.vertices,g.position)){w.pointA=g.position,w.bodyB=l.body=M,w.pointB={x:g.position.x-M.position.x,y:g.position.y-M.position.y},w.angleB=M.angle,s.set(M,!1),y.trigger(l,"startdrag",{mouse:g,body:M});break}}}else w.bodyB=l.body=null,w.pointB=null,M&&y.trigger(l,"enddrag",{mouse:g,body:M})},e._triggerEvents=function(l){var m=l.mouse,g=m.sourceEvents;g.mousemove&&y.trigger(l,"mousemove",{mouse:m}),g.mousedown&&y.trigger(l,"mousedown",{mouse:m}),g.mouseup&&y.trigger(l,"mouseup",{mouse:m}),n.clearSourceEvents(m)}})()},function(i,u,r){var e={};i.exports=e;var o=r(2),s=r(8),n=r(1),y=r(12),a=r(3);(function(){e.collides=function(f,c){for(var t=[],p=c.length,l=f.bounds,m=s.collides,g=n.overlaps,w=0;w<p;w++){var M=c[w],S=M.parts.length,d=S===1?0:1;if(g(M.bounds,l))for(var v=d;v<S;v++){var x=M.parts[v];if(g(x.bounds,l)){var h=m(x,f);if(h){t.push(h);break}}}}return t},e.ray=function(f,c,t,p){p=p||1e-100;for(var l=o.angle(c,t),m=o.magnitude(o.sub(c,t)),g=(t.x+c.x)*.5,w=(t.y+c.y)*.5,M=y.rectangle(g,w,m,p,{angle:l}),S=e.collides(M,f),d=0;d<S.length;d+=1){var v=S[d];v.body=v.bodyB=v.bodyA}return S},e.region=function(f,c,t){for(var p=[],l=0;l<f.length;l++){var m=f[l],g=n.overlaps(m.bounds,c);(g&&!t||!g&&t)&&p.push(m)}return p},e.point=function(f,c){for(var t=[],p=0;p<f.length;p++){var l=f[p];if(n.contains(l.bounds,c))for(var m=l.parts.length===1?0:1;m<l.parts.length;m++){var g=l.parts[m];if(n.contains(g.bounds,c)&&a.contains(g.vertices,c)){t.push(l);break}}}return t}})()},function(i,u,r){var e={};i.exports=e;var o=r(4),s=r(0),n=r(6),y=r(1),a=r(5),f=r(2),c=r(14);(function(){var t,p;typeof window<"u"&&(t=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(d){window.setTimeout(function(){d(s.now())},1e3/60)},p=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.msCancelAnimationFrame),e._goodFps=30,e._goodDelta=1e3/60,e.create=function(d){var v={engine:null,element:null,canvas:null,mouse:null,frameRequestId:null,timing:{historySize:60,delta:0,deltaHistory:[],lastTime:0,lastTimestamp:0,lastElapsed:0,timestampElapsed:0,timestampElapsedHistory:[],engineDeltaHistory:[],engineElapsedHistory:[],engineUpdatesHistory:[],elapsedHistory:[]},options:{width:800,height:600,pixelRatio:1,background:"#14151f",wireframeBackground:"#14151f",wireframeStrokeStyle:"#bbb",hasBounds:!!d.bounds,enabled:!0,wireframes:!0,showSleeping:!0,showDebug:!1,showStats:!1,showPerformance:!1,showBounds:!1,showVelocity:!1,showCollisions:!1,showSeparations:!1,showAxes:!1,showPositions:!1,showAngleIndicator:!1,showIds:!1,showVertexNumbers:!1,showConvexHulls:!1,showInternalEdges:!1,showMousePosition:!1}},x=s.extend(v,d);return x.canvas&&(x.canvas.width=x.options.width||x.canvas.width,x.canvas.height=x.options.height||x.canvas.height),x.mouse=d.mouse,x.engine=d.engine,x.canvas=x.canvas||g(x.options.width,x.options.height),x.context=x.canvas.getContext("2d"),x.textures={},x.bounds=x.bounds||{min:{x:0,y:0},max:{x:x.canvas.width,y:x.canvas.height}},x.controller=e,x.options.showBroadphase=!1,x.options.pixelRatio!==1&&e.setPixelRatio(x,x.options.pixelRatio),s.isElement(x.element)&&x.element.appendChild(x.canvas),x},e.run=function(d){(function v(x){d.frameRequestId=t(v),l(d,x),e.world(d,x),d.context.setTransform(d.options.pixelRatio,0,0,d.options.pixelRatio,0,0),(d.options.showStats||d.options.showDebug)&&e.stats(d,d.context,x),(d.options.showPerformance||d.options.showDebug)&&e.performance(d,d.context,x),d.context.setTransform(1,0,0,1,0,0)})()},e.stop=function(d){p(d.frameRequestId)},e.setPixelRatio=function(d,v){var x=d.options,h=d.canvas;v==="auto"&&(v=w(h)),x.pixelRatio=v,h.setAttribute("data-pixel-ratio",v),h.width=x.width*v,h.height=x.height*v,h.style.width=x.width+"px",h.style.height=x.height+"px"},e.setSize=function(d,v,x){d.options.width=v,d.options.height=x,d.bounds.max.x=d.bounds.min.x+v,d.bounds.max.y=d.bounds.min.y+x,d.options.pixelRatio!==1?e.setPixelRatio(d,d.options.pixelRatio):(d.canvas.width=v,d.canvas.height=x)},e.lookAt=function(d,v,x,h){h=typeof h<"u"?h:!0,v=s.isArray(v)?v:[v],x=x||{x:0,y:0};for(var F={min:{x:1/0,y:1/0},max:{x:-1/0,y:-1/0}},C=0;C<v.length;C+=1){var P=v[C],T=P.bounds?P.bounds.min:P.min||P.position||P,A=P.bounds?P.bounds.max:P.max||P.position||P;T&&A&&(T.xF.max.x&&(F.max.x=A.x),T.yF.max.y&&(F.max.y=A.y))}var B=F.max.x-F.min.x+2*x.x,b=F.max.y-F.min.y+2*x.y,I=d.canvas.height,E=d.canvas.width,k=E/I,z=B/b,U=1,V=1;z>k?V=z/k:U=k/z,d.options.hasBounds=!0,d.bounds.min.x=F.min.x,d.bounds.max.x=F.min.x+B*U,d.bounds.min.y=F.min.y,d.bounds.max.y=F.min.y+b*V,h&&(d.bounds.min.x+=B*.5-B*U*.5,d.bounds.max.x+=B*.5-B*U*.5,d.bounds.min.y+=b*.5-b*V*.5,d.bounds.max.y+=b*.5-b*V*.5),d.bounds.min.x-=x.x,d.bounds.max.x-=x.x,d.bounds.min.y-=x.y,d.bounds.max.y-=x.y,d.mouse&&(c.setScale(d.mouse,{x:(d.bounds.max.x-d.bounds.min.x)/d.canvas.width,y:(d.bounds.max.y-d.bounds.min.y)/d.canvas.height}),c.setOffset(d.mouse,d.bounds.min))},e.startViewTransform=function(d){var v=d.bounds.max.x-d.bounds.min.x,x=d.bounds.max.y-d.bounds.min.y,h=v/d.options.width,F=x/d.options.height;d.context.setTransform(d.options.pixelRatio/h,0,0,d.options.pixelRatio/F,0,0),d.context.translate(-d.bounds.min.x,-d.bounds.min.y)},e.endViewTransform=function(d){d.context.setTransform(d.options.pixelRatio,0,0,d.options.pixelRatio,0,0)},e.world=function(d,v){var x=s.now(),h=d.engine,F=h.world,C=d.canvas,P=d.context,T=d.options,A=d.timing,B=n.allBodies(F),b=n.allConstraints(F),I=T.wireframes?T.wireframeBackground:T.background,E=[],k=[],z,U={timestamp:h.timing.timestamp};if(a.trigger(d,”beforeRender”,U),d.currentBackground!==I&&S(d,I),P.globalCompositeOperation=”source-in”,P.fillStyle=”transparent”,P.fillRect(0,0,C.width,C.height),P.globalCompositeOperation=”source-over”,T.hasBounds){for(z=0;z<B.length;z++){var V=B[z];y.overlaps(V.bounds,d.bounds)&&E.push(V)}for(z=0;z<b.length;z++){var W=b[z],q=W.bodyA,re=W.bodyB,N=W.pointA,$=W.pointB;q&&(N=f.add(q.position,W.pointA)),re&&($=f.add(re.position,W.pointB)),!(!N||!$)&&(y.contains(d.bounds,N)||y.contains(d.bounds,$))&&k.push(W)}e.startViewTransform(d),d.mouse&&(c.setScale(d.mouse,{x:(d.bounds.max.x-d.bounds.min.x)/d.options.width,y:(d.bounds.max.y-d.bounds.min.y)/d.options.height}),c.setOffset(d.mouse,d.bounds.min))}else k=b,E=B,d.options.pixelRatio!==1&&d.context.setTransform(d.options.pixelRatio,0,0,d.options.pixelRatio,0,0);!T.wireframes||h.enableSleeping&&T.showSleeping?e.bodies(d,E,P):(T.showConvexHulls&&e.bodyConvexHulls(d,E,P),e.bodyWireframes(d,E,P)),T.showBounds&&e.bodyBounds(d,E,P),(T.showAxes||T.showAngleIndicator)&&e.bodyAxes(d,E,P),T.showPositions&&e.bodyPositions(d,E,P),T.showVelocity&&e.bodyVelocity(d,E,P),T.showIds&&e.bodyIds(d,E,P),T.showSeparations&&e.separations(d,h.pairs.list,P),T.showCollisions&&e.collisions(d,h.pairs.list,P),T.showVertexNumbers&&e.vertexNumbers(d,E,P),T.showMousePosition&&e.mousePosition(d,d.mouse,P),e.constraints(k,P),T.hasBounds&&e.endViewTransform(d),a.trigger(d,"afterRender",U),A.lastElapsed=s.now()-x},e.stats=function(d,v,x){for(var h=d.engine,F=h.world,C=n.allBodies(F),P=0,T=55,A=44,B=0,b=0,I=0;I<C.length;I+=1)P+=C[I].parts.length;var E={Part:P,Body:C.length,Cons:n.allConstraints(F).length,Comp:n.allComposites(F).length,Pair:h.pairs.list.length};v.fillStyle="#0e0f19",v.fillRect(B,b,T*5.5,A),v.font="12px Arial",v.textBaseline="top",v.textAlign="right";for(var k in E){var z=E[k];v.fillStyle="#aaa",v.fillText(k,B+T,b+8),v.fillStyle="#eee",v.fillText(z,B+T,b+26),B+=T}},e.performance=function(d,v){var x=d.engine,h=d.timing,F=h.deltaHistory,C=h.elapsedHistory,P=h.timestampElapsedHistory,T=h.engineDeltaHistory,A=h.engineUpdatesHistory,B=h.engineElapsedHistory,b=x.timing.lastUpdatesPerFrame,I=x.timing.lastDelta,E=m(F),k=m(C),z=m(T),U=m(A),V=m(B),W=m(P),q=W/E||0,re=Math.round(E/I),N=1e3/E||0,$=4,J=12,j=60,se=34,X=10,_=69;v.fillStyle="#0e0f19",v.fillRect(0,50,J*5+j*6+22,se),e.status(v,X,_,j,$,F.length,Math.round(N)+" fps",N/e._goodFps,function(K){return F[K]/E-1}),e.status(v,X+J+j,_,j,$,T.length,I.toFixed(2)+" dt",e._goodDelta/I,function(K){return T[K]/z-1}),e.status(v,X+(J+j)*2,_,j,$,A.length,b+" upf",Math.pow(s.clamp(U/re||1,0,1),4),function(K){return A[K]/U-1}),e.status(v,X+(J+j)*3,_,j,$,B.length,V.toFixed(2)+" ut",1-b*V/e._goodFps,function(K){return B[K]/V-1}),e.status(v,X+(J+j)*4,_,j,$,C.length,k.toFixed(2)+" rt",1-k/e._goodFps,function(K){return C[K]/k-1}),e.status(v,X+(J+j)*5,_,j,$,P.length,q.toFixed(2)+" x",q*q*q,function(K){return(P[K]/F[K]/q||0)-1})},e.status=function(d,v,x,h,F,C,P,T,A){d.strokeStyle="#888",d.fillStyle="#444",d.lineWidth=1,d.fillRect(v,x+7,h,1),d.beginPath(),d.moveTo(v,x+7-F*s.clamp(.4*A(0),-2,2));for(var B=0;B<h;B+=1)d.lineTo(v+B,x+7-(B<C?F*s.clamp(.4*A(B),-2,2):0));d.stroke(),d.fillStyle="hsl("+s.clamp(25+95*T,0,120)+",100%,60%)",d.fillRect(v,x-7,4,4),d.font="12px Arial",d.textBaseline="middle",d.textAlign="right",d.fillStyle="#eee",d.fillText(P,v+h,x-5)},e.constraints=function(d,v){for(var x=v,h=0;h<d.length;h++){var F=d[h];if(!(!F.render.visible||!F.pointA||!F.pointB)){var C=F.bodyA,P=F.bodyB,T,A;if(C?T=f.add(C.position,F.pointA):T=F.pointA,F.render.type==="pin")x.beginPath(),x.arc(T.x,T.y,3,0,2*Math.PI),x.closePath();else{if(P?A=f.add(P.position,F.pointB):A=F.pointB,x.beginPath(),x.moveTo(T.x,T.y),F.render.type==="spring")for(var B=f.sub(A,T),b=f.perp(f.normalise(B)),I=Math.ceil(s.clamp(F.length/5,12,20)),E,k=1;k<I;k+=1)E=k%2===0?1:-1,x.lineTo(T.x+B.x*(k/I)+b.x*E*4,T.y+B.y*(k/I)+b.y*E*4);x.lineTo(A.x,A.y)}F.render.lineWidth&&(x.lineWidth=F.render.lineWidth,x.strokeStyle=F.render.strokeStyle,x.stroke()),F.render.anchors&&(x.fillStyle=F.render.strokeStyle,x.beginPath(),x.arc(T.x,T.y,3,0,2*Math.PI),x.arc(A.x,A.y,3,0,2*Math.PI),x.closePath(),x.fill())}}},e.bodies=function(d,v,x){var h=x,F=d.engine,C=d.options,P=C.showInternalEdges||!C.wireframes,T,A,B,b;for(B=0;B1?1:0;b<T.parts.length;b++)if(A=T.parts[b],!!A.render.visible){if(C.showSleeping&&T.isSleeping?h.globalAlpha=.5*A.render.opacity:A.render.opacity!==1&&(h.globalAlpha=A.render.opacity),A.render.sprite&&A.render.sprite.texture&&!C.wireframes){var I=A.render.sprite,E=M(d,I.texture);h.translate(A.position.x,A.position.y),h.rotate(A.angle),h.drawImage(E,E.width*-I.xOffset*I.xScale,E.height*-I.yOffset*I.yScale,E.width*I.xScale,E.height*I.yScale),h.rotate(-A.angle),h.translate(-A.position.x,-A.position.y)}else{if(A.circleRadius)h.beginPath(),h.arc(A.position.x,A.position.y,A.circleRadius,0,2*Math.PI);else{h.beginPath(),h.moveTo(A.vertices[0].x,A.vertices[0].y);for(var k=1;k<A.vertices.length;k++)!A.vertices[k-1].isInternal||P?h.lineTo(A.vertices[k].x,A.vertices[k].y):h.moveTo(A.vertices[k].x,A.vertices[k].y),A.vertices[k].isInternal&&!P&&h.moveTo(A.vertices[(k+1)%A.vertices.length].x,A.vertices[(k+1)%A.vertices.length].y);h.lineTo(A.vertices[0].x,A.vertices[0].y),h.closePath()}C.wireframes?(h.lineWidth=1,h.strokeStyle=d.options.wireframeStrokeStyle,h.stroke()):(h.fillStyle=A.render.fillStyle,A.render.lineWidth&&(h.lineWidth=A.render.lineWidth,h.strokeStyle=A.render.strokeStyle,h.stroke()),h.fill())}h.globalAlpha=1}}},e.bodyWireframes=function(d,v,x){var h=x,F=d.options.showInternalEdges,C,P,T,A,B;for(h.beginPath(),T=0;T1?1:0;B<C.parts.length;B++){for(P=C.parts[B],h.moveTo(P.vertices[0].x,P.vertices[0].y),A=1;A<P.vertices.length;A++)!P.vertices[A-1].isInternal||F?h.lineTo(P.vertices[A].x,P.vertices[A].y):h.moveTo(P.vertices[A].x,P.vertices[A].y),P.vertices[A].isInternal&&!F&&h.moveTo(P.vertices[(A+1)%P.vertices.length].x,P.vertices[(A+1)%P.vertices.length].y);h.lineTo(P.vertices[0].x,P.vertices[0].y)}h.lineWidth=1,h.strokeStyle=d.options.wireframeStrokeStyle,h.stroke()},e.bodyConvexHulls=function(d,v,x){var h=x,F,C,P,T,A;for(h.beginPath(),P=0;P<v.length;P++)if(F=v[P],!(!F.render.visible||F.parts.length===1)){for(h.moveTo(F.vertices[0].x,F.vertices[0].y),T=1;T<F.vertices.length;T++)h.lineTo(F.vertices[T].x,F.vertices[T].y);h.lineTo(F.vertices[0].x,F.vertices[0].y)}h.lineWidth=1,h.strokeStyle="rgba(255,255,255,0.2)",h.stroke()},e.vertexNumbers=function(d,v,x){var h=x,F,C,P;for(F=0;F1?1:0;P<T.length;P++){var A=T[P];for(C=0;C<A.vertices.length;C++)h.fillStyle="rgba(255,255,255,0.2)",h.fillText(F+"_"+C,A.position.x+(A.vertices[C].x-A.position.x)*.8,A.position.y+(A.vertices[C].y-A.position.y)*.8)}}},e.mousePosition=function(d,v,x){var h=x;h.fillStyle="rgba(255,255,255,0.8)",h.fillText(v.position.x+" "+v.position.y,v.position.x+5,v.position.y-5)},e.bodyBounds=function(d,v,x){var h=x,F=d.engine,C=d.options;h.beginPath();for(var P=0;P1?1:0;B<A.length;B++){var b=A[B];h.rect(b.bounds.min.x,b.bounds.min.y,b.bounds.max.x-b.bounds.min.x,b.bounds.max.y-b.bounds.min.y)}}C.wireframes?h.strokeStyle="rgba(255,255,255,0.08)":h.strokeStyle="rgba(0,0,0,0.1)",h.lineWidth=1,h.stroke()},e.bodyAxes=function(d,v,x){var h=x,F=d.engine,C=d.options,P,T,A,B;for(h.beginPath(),T=0;T1?1:0;A<I.length;A++)for(P=I[A],B=0;B
1?1:0;A<I.length;A++)for(P=I[A],B=0;B<P.axes.length;B++)h.moveTo(P.position.x,P.position.y),h.lineTo((P.vertices[0].x+P.vertices[P.vertices.length-1].x)/2,(P.vertices[0].y+P.vertices[P.vertices.length-1].y)/2)}C.wireframes?(h.strokeStyle="indianred",h.lineWidth=1):(h.strokeStyle="rgba(255, 255, 255, 0.4)",h.globalCompositeOperation="overlay",h.lineWidth=2),h.stroke(),h.globalCompositeOperation="source-over"},e.bodyPositions=function(d,v,x){var h=x,F=d.engine,C=d.options,P,T,A,B;for(h.beginPath(),A=0;A<v.length;A++)if(P=v[A],!!P.render.visible)for(B=0;B<P.parts.length;B++)T=P.parts[B],h.arc(T.position.x,T.position.y,3,0,2*Math.PI,!1),h.closePath();for(C.wireframes?h.fillStyle="indianred":h.fillStyle="rgba(0,0,0,0.5)",h.fill(),h.beginPath(),A=0;A<v.length;A++)P=v[A],P.render.visible&&(h.arc(P.positionPrev.x,P.positionPrev.y,2,0,2*Math.PI,!1),h.closePath());h.fillStyle="rgba(255,165,0,0.8)",h.fill()},e.bodyVelocity=function(d,v,x){var h=x;h.beginPath();for(var F=0;F<v.length;F++){var C=v[F];if(C.render.visible){var P=o.getVelocity(C);h.moveTo(C.position.x,C.position.y),h.lineTo(C.position.x+P.x,C.position.y+P.y)}}h.lineWidth=3,h.strokeStyle="cornflowerblue",h.stroke()},e.bodyIds=function(d,v,x){var h=x,F,C;for(F=0;F1?1:0;C<P.length;C++){var T=P[C];h.font="12px Arial",h.fillStyle="rgba(255,255,255,0.5)",h.fillText(T.id,T.position.x+10,T.position.y-10)}}},e.collisions=function(d,v,x){var h=x,F=d.options,C,P,T,A,B,b,I;for(h.beginPath(),b=0;b<v.length;b++)if(C=v[b],!!C.isActive)for(P=C.collision,I=0;I<C.contactCount;I++){var E=C.contacts[I],k=E.vertex;h.rect(k.x-1.5,k.y-1.5,3.5,3.5)}for(F.wireframes?h.fillStyle="rgba(255,255,255,0.7)":h.fillStyle="orange",h.fill(),h.beginPath(),b=0;b0)){var z=C.contacts[0].vertex.x,U=C.contacts[0].vertex.y;C.contactCount===2&&(z=(C.contacts[0].vertex.x+C.contacts[1].vertex.x)/2,U=(C.contacts[0].vertex.y+C.contacts[1].vertex.y)/2),P.bodyB===P.supports[0].body||P.bodyA.isStatic===!0?h.moveTo(z-P.normal.x*8,U-P.normal.y*8):h.moveTo(z+P.normal.x*8,U+P.normal.y*8),h.lineTo(z,U)}F.wireframes?h.strokeStyle=”rgba(255,165,0,0.7)”:h.strokeStyle=”orange”,h.lineWidth=1,h.stroke()},e.separations=function(d,v,x){var h=x,F=d.options,C,P,T,A,B,b,I;for(h.beginPath(),b=0;b<v.length;b++)if(C=v[b],!!C.isActive){P=C.collision,A=P.bodyA,B=P.bodyB;var E=1;!B.isStatic&&!A.isStatic&&(E=.5),B.isStatic&&(E=0),h.moveTo(B.position.x,B.position.y),h.lineTo(B.position.x-P.penetration.x*E,B.position.y-P.penetration.y*E),E=1,!B.isStatic&&!A.isStatic&&(E=.5),A.isStatic&&(E=0),h.moveTo(A.position.x,A.position.y),h.lineTo(A.position.x+P.penetration.x*E,A.position.y+P.penetration.y*E)}F.wireframes?h.strokeStyle="rgba(255,165,0,0.5)":h.strokeStyle="orange",h.stroke()},e.inspector=function(d,v){var x=d.engine,h=d.selected,F=d.render,C=F.options,P;if(C.hasBounds){var T=F.bounds.max.x-F.bounds.min.x,A=F.bounds.max.y-F.bounds.min.y,B=T/F.options.width,b=A/F.options.height;v.scale(1/B,1/b),v.translate(-F.bounds.min.x,-F.bounds.min.y)}for(var I=0;I<h.length;I++){var E=h[I].data;switch(v.translate(.5,.5),v.lineWidth=1,v.strokeStyle="rgba(255,165,0,0.9)",v.setLineDash([1,2]),E.type){case"body":P=E.bounds,v.beginPath(),v.rect(Math.floor(P.min.x-3),Math.floor(P.min.y-3),Math.floor(P.max.x-P.min.x+6),Math.floor(P.max.y-P.min.y+6)),v.closePath(),v.stroke();break;case"constraint":var k=E.pointA;E.bodyA&&(k=E.pointB),v.beginPath(),v.arc(k.x,k.y,10,0,2*Math.PI),v.closePath(),v.stroke();break}v.setLineDash([]),v.translate(-.5,-.5)}d.selectStart!==null&&(v.translate(.5,.5),v.lineWidth=1,v.strokeStyle="rgba(255,165,0,0.6)",v.fillStyle="rgba(255,165,0,0.1)",P=d.selectBounds,v.beginPath(),v.rect(Math.floor(P.min.x),Math.floor(P.min.y),Math.floor(P.max.x-P.min.x),Math.floor(P.max.y-P.min.y)),v.closePath(),v.stroke(),v.fill(),v.translate(-.5,-.5)),C.hasBounds&&v.setTransform(1,0,0,1,0,0)};var l=function(d,v){var x=d.engine,h=d.timing,F=h.historySize,C=x.timing.timestamp;h.delta=v-h.lastTime||e._goodDelta,h.lastTime=v,h.timestampElapsed=C-h.lastTimestamp||0,h.lastTimestamp=C,h.deltaHistory.unshift(h.delta),h.deltaHistory.length=Math.min(h.deltaHistory.length,F),h.engineDeltaHistory.unshift(x.timing.lastDelta),h.engineDeltaHistory.length=Math.min(h.engineDeltaHistory.length,F),h.timestampElapsedHistory.unshift(h.timestampElapsed),h.timestampElapsedHistory.length=Math.min(h.timestampElapsedHistory.length,F),h.engineUpdatesHistory.unshift(x.timing.lastUpdatesPerFrame),h.engineUpdatesHistory.length=Math.min(h.engineUpdatesHistory.length,F),h.engineElapsedHistory.unshift(x.timing.lastElapsed),h.engineElapsedHistory.length=Math.min(h.engineElapsedHistory.length,F),h.elapsedHistory.unshift(h.lastElapsed),h.elapsedHistory.length=Math.min(h.elapsedHistory.length,F)},m=function(d){for(var v=0,x=0;xMath.max(e._maxFrameDelta,a.maxFrameTime))&&(m=a.frameDelta||e._frameDeltaFallback),a.frameDeltaSmoothing){a.frameDeltaHistory.push(m),a.frameDeltaHistory=a.frameDeltaHistory.slice(-a.frameDeltaHistorySize);var g=a.frameDeltaHistory.slice(0).sort(),w=a.frameDeltaHistory.slice(g.length*e._smoothingLowerBound,g.length*e._smoothingUpperBound),M=y(w);m=M||m}a.frameDeltaSnapping&&(m=1e3/Math.round(1e3/m)),a.frameDelta=m,a.timeLastTick=c,a.timeBuffer+=a.frameDelta,a.timeBuffer=n.clamp(a.timeBuffer,0,a.frameDelta+p*e._timeBufferMargin),a.lastUpdatesDeferred=0;var S=a.maxUpdates||Math.ceil(a.maxFrameTime/p),d={timestamp:f.timing.timestamp};o.trigger(a,”beforeTick”,d),o.trigger(a,”tick”,d);for(var v=n.now();p>0&&a.timeBuffer>=p*e._timeBufferMargin;){o.trigger(a,”beforeUpdate”,d),s.update(f,p),o.trigger(a,”afterUpdate”,d),a.timeBuffer-=p,l+=1;var x=n.now()-t,h=n.now()-v,F=x+e._elapsedNextEstimate*h/l;if(l>=S||F>a.maxFrameTime){a.lastUpdatesDeferred=Math.round(Math.max(0,a.timeBuffer/p-e._timeBufferMargin));break}}f.timing.lastUpdatesPerFrame=l,o.trigger(a,”afterTick”,d),a.frameDeltaHistory.length>=100&&(a.lastUpdatesDeferred&&Math.round(a.frameDelta/p)>S?n.warnOnce(“Matter.Runner: runner reached runner.maxUpdates, see docs.”):a.lastUpdatesDeferred&&n.warnOnce(“Matter.Runner: runner reached runner.maxFrameTime, see docs.”),typeof a.isFixed<"u"&&n.warnOnce("Matter.Runner: runner.isFixed is now redundant, see docs."),(a.deltaMin||a.deltaMax)&&n.warnOnce("Matter.Runner: runner.deltaMin and runner.deltaMax were removed, see docs."),a.fps!==0&&n.warnOnce("Matter.Runner: runner.fps was replaced by runner.delta, see docs."))},e.stop=function(a){e._cancelNextFrame(a)},e._onNextFrame=function(a,f){if(typeof window<"u"&&window.requestAnimationFrame)a.frameRequestId=window.requestAnimationFrame(f);else throw new Error("Matter.Runner: missing required global window.requestAnimationFrame.");return a.frameRequestId},e._cancelNextFrame=function(a){if(typeof window<"u"&&window.cancelAnimationFrame)window.cancelAnimationFrame(a.frameRequestId);else throw new Error("Matter.Runner: missing required global window.cancelAnimationFrame.")};var y=function(a){for(var f=0,c=a.length,t=0;t<c;t+=1)f+=a[t];return f/c||0}})()},function(i,u,r){var e={};i.exports=e;var o=r(8),s=r(0),n=s.deprecated;(function(){e.collides=function(y,a){return o.collides(y,a)},n(e,"collides","SAT.collides u27A4 replaced by Collision.collides")})()},function(i,u,r){var e={};i.exports=e;var o=r(1),s=r(0);(function(){e.pathToVertices=function(n,y){typeof window1;if(!w||T!=w.x||A!=w.y){w&&b?(d=w.x,v=w.y):(d=0,v=0);var I={x:d+T,y:v+A};(b||!w)&&(w=I),S.push(I),h=d+T,F=v+A}},P=function(T){var A=T.pathSegTypeAsLetter.toUpperCase();if(A!==”Z”){switch(A){case”M”:case”L”:case”T”:case”C”:case”S”:case”Q”:h=T.x,F=T.y;break;case”H”:h=T.x;break;case”V”:F=T.y;break}C(h,F,T.pathSegType)}};for(e._svgPathToAbsolute(n),c=n.getTotalLength(),l=[],a=0;a<n.pathSegList.numberOfItems;a+=1)l.push(n.pathSegList.getItem(a));for(m=l.concat();x<c;){if(M=n.getPathSegAtLength(x),p=l[M],p!=g){for(;m.length&&m[0]!=p;)P(m.shift());g=p}switch(p.pathSegTypeAsLetter.toUpperCase()){case"C":case"T":case"S":case"Q":case"A":t=n.getPointAtLength(x),C(t.x,t.y,0);break}x+=y}for(a=0,f=m.length;a<f;++a)P(m[a]);return S},e._svgPathToAbsolute=function(n){for(var y,a,f,c,t,p,l=n.pathSegList,m=0,g=0,w=l.numberOfItems,M=0;M{var wo={0:”Jan.”,1:”Feb.”,2:”March”,3:”April”,4:”May”,5:”June”,6:”July”,7:”Aug.”,8:”Sept.”,9:”Oct.”,10:”Nov.”,11:”Dec.”};function Qt(i){return i===void 0&&(i=new Date),wo[i.getMonth()]}var Fo={0:”Jan”,1:”Feb”,2:”Mar”,3:”Apr”,4:”May”,5:”Jun”,6:”Jul”,7:”Aug”,8:”Sep”,9:”Oct”,10:”Nov”,11:”Dec”};function Yt(i){return i===void 0&&(i=new Date),Fo[i.getMonth()]}function ye(i){return i==null}function er(i){return typeof i==”number”&&isFinite(i)}function He(i){return er(i)&&Math.floor(i)===i}var So=[“one”,”two”,”three”,”four”,”five”,”six”,”seven”,”eight”,”nine”],Co=[“million”,”billion”,”trillion”,”quadrillion”,”quintillion”,”sextillion”,”septillion”,”octillion”,”nonillion”,”decillion”],Xt=[“th”,”st”,”nd”,”rd”,”th”,”th”,”th”,”th”,”th”,”th”],Mo=[11,12,13];function _t(i){if(ye(i))return””;var u=+i;return He(u)?Mo.indexOf(u%100)>-1?Xt[0]:Xt[u%10]:””}var Ao=[“first”,”second”,”third”,”fourth”,”fifth”,”sixth”,”seventh”,”eighth”,”ninth”],Lo=new RegExp(/s+([^s]*)s*$/);Q.apdate=function(i){return i===void 0&&(i=new Date),Qt(i)+” “+i.getDate()+”, “+i.getFullYear()},Q.apdatetab=function(i){return i===void 0&&(i=new Date),Yt(i)+” “+i.getDate()+”, “+i.getFullYear()},Q.apmonth=Qt,Q.apmonthtab=Yt,Q.apnumber=function(i){if(ye(i))return””;var u=+i;return He(u)?u=10?i.toString():So[u-1]:i.toString()},Q.aptime=function(i){i===void 0&&(i=new Date);var u,r,e=i.getHours(),o=i.getMinutes(),s=o===0;if(s){if(e===0)return”midnight”;if(e===12)return”noon”}return e0?e:12):(u=”p.m.”,r=e===12?e:e-12),s?r+” “+u:r+”:”+(o<10?"0"+o:o)+" "+u},Q.capfirst=function(i){if(ye(i))return"";var u=String(i);return""+u.charAt(0).toUpperCase()+u.slice(1)},Q.intcomma=function(i){if(ye(i))return"";var u,r=+i;return er(r)?((u=r.toString().split("."))[0]=u[0].replace(/B(?=(d{3})+(?!d))/g,","),u.join(".")):i.toString()},Q.intword=function(i){if(ye(i))return"";var u=+i;if(!He(u))return i.toString();var r=Math.abs(u);if(r<1e6)return i.toString();var e=Math.ceil(Math.log(r+1)/Math.LN10)-1,o=e-e%3,s=u/Math.pow(10,o);return(s=Math.round(10*s)/10)+" "+Co[Math.floor(o/3)-2]},Q.ordinal=function(i,u){if(u===void 0&&(u=!1),ye(i))return"";var r=+i;return He(r)?u&&r{ze=ze||window.PMNdataLayer,ze?ze.push({event:”misc_event”,eventAction:i,eventLabel:u}):window.location.hostname.includes(“localhost”)?console.log(“Analytics event:”,i,u,”(not actually being sent due to localhost)”):console.log(“Failed to push analytics event”,i,u)},Re={event:(i,u)=>{Or(i,u)}};var we,$e,Ke,Ft,Ct=800,Ur=700,Hr,Fe,St,ae={link:{width:30,height:30},fish:{width:700,height:200},headline:{width:600,height:150}},Vr=()=>{we=D.Engine.create(),$e=we.world,Ke=D.Render.create({canvas:document.querySelector(“.js-fish-canvas”),engine:we,options:{width:Ct,height:Ur,showAngleIndicator:!0,showCollisions:!0,showVelocity:!0}}),D.Render.run(Ke),Ft=D.Runner.create(),D.Runner.run(Ft,we);let i=D.Body.nextGroup(!0),u=D.Composites.stack(200,-100,6,1,10,10,function(a,f){return D.Bodies.rectangle(a-40,f,ae.link.width,ae.link.height,{chamfer:5,label:”link”})});D.Composites.chain(u,.6,0,-.6,0,{stiffness:1,length:1.2}),D.Composite.add(u,D.Constraint.create({bodyB:u.bodies[0],pointA:{x:u.bodies[0].position.x,y:u.bodies[0].position.y},pointB:{x:-20,y:0},stiffness:.1,length:1})),i=D.Body.nextGroup(!0);let r=D.Composites.stack(700,-100,5,1,10,10,function(a,f){return D.Bodies.rectangle(a-40,f,ae.link.width,ae.link.height,{chamfer:5,label:”link”})});D.Composites.chain(r,.6,0,-.6,0,{stiffness:1,length:1.2}),D.Composite.add(r,D.Constraint.create({bodyB:r.bodies[0],pointA:{x:r.bodies[0].position.x,y:r.bodies[0].position.y},pointB:{x:-20,y:0},stiffness:.1,length:1})),i=D.Body.nextGroup(!0);let e=D.Composite.create();D.Composite.add(e,D.Bodies.rectangle(400,100,700,150,{chamfer:20,density:.001,label:”fish”})),D.Composite.add(e,D.Constraint.create({bodyA:e.bodies[0],bodyB:u.bodies[5],pointA:{x:-250,y:40},stiffness:.1,length:5})),D.Composite.add(e,D.Constraint.create({bodyA:e.bodies[0],bodyB:r.bodies[4],pointA:{x:250,y:-50},stiffness:.1,length:5})),i=D.Body.nextGroup(!0);let o=D.Composites.stack(200,300,3,1,10,10,function(a,f){return D.Bodies.rectangle(a-40,f,ae.link.width,ae.link.height,{chamfer:5,label:”link”})});D.Composites.chain(o,.6,0,-.6,0,{stiffness:1,density:2e-4,length:1}),D.Composite.add(o,D.Constraint.create({bodyA:e.bodies[0],bodyB:o.bodies[0],pointA:{x:-200,y:100},pointB:{x:-40,y:0},stiffness:.5,length:1})),i=D.Body.nextGroup(!0);let s=D.Composites.stack(600,300,3,1,10,10,function(a,f){return D.Bodies.rectangle(a-40,f,ae.link.width,ae.link.height,{chamfer:5,label:”link”})});D.Composites.chain(s,.6,0,-.6,0,{stiffness:1,length:1}),D.Composite.add(s,D.Constraint.create({bodyA:e.bodies[0],bodyB:s.bodies[0],pointA:{x:200,y:100},pointB:{x:-40,y:0},stiffness:.5,length:1}));let n=D.Composite.create();D.Composite.add(n,D.Bodies.rectangle(400,600,500,120,{chamfer:10,density:.002,label:”headline”})),D.Composite.add(n,D.Constraint.create({bodyA:n.bodies[0],bodyB:o.bodies[2],pointA:{x:-200,y:-65},stiffness:.3,length:20})),D.Composite.add(n,D.Constraint.create({bodyA:n.bodies[0],bodyB:s.bodies[2],pointA:{x:200,y:-65},stiffness:.3,length:20})),D.Composite.add($e,[r,u,e,s,o,n,D.Bodies.rectangle(600,800,1200,50.5,{isStatic:!0})]);let y=D.Mouse.create(Ke.canvas);St=D.MouseConstraint.create(we,{mouse:y,constraint:{stiffness:.1}}),D.default.World.add($e,St),document.querySelector(“.js-fish”).classList.add(“is-ready”),Hr=!0,Fe=!0,window.requestAnimationFrame(Qe),setInterval(()=>{D.Body.setAngularVelocity(n.bodies[0],.003)},2e3)},Qe=()=>{let i=[…document.querySelectorAll(“.js-fish-body”)],r=document.querySelector(“.js-fish-canvas”).getBoundingClientRect().width/Ct;for(let e of $e.composites)for(let o of e.bodies){let s=ae[o.label].width*r,n=ae[o.label].height*r,y=o.position.x*r,a=o.position.y*r,f=i.find(c=>c.dataset.type==o.label);if(f){let c=i.indexOf(f);i.splice(c,1),f.style.width=s+”px”,f.style.height=n+”px”,f.style.transform=`translateX(${y-s/2}px) translateY(${a-n/2}px) rotate(${o.angle}rad)`}}Fe&&window.requestAnimationFrame(Qe)},jr=()=>{new IntersectionObserver((u,r)=>{u[0].isIntersecting?(Fe||window.requestAnimationFrame(Qe),Fe=!0):Fe=!1}).observe(document.querySelector(“.js-fish”)),document.querySelector(“.js-fish”).addEventListener(“click”,()=>{Re.event(“click”,”played with the sign physics”)})},Mt={init:()=>{Vr(),jr()}};var te=Uint8Array,ge=Uint16Array,Wr=Int32Array,At=new te([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Lt=new te([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Nr=new te([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Tt=function(i,u){for(var r=new ge(31),e=0;e<31;++e)r[e]=u+=1<<i[e-1];for(var o=new Wr(r[30]),e=1;e<30;++e)for(var s=r[e];s<r[e+1];++s)o[s]=s-r[e]<<5|e;return{b:r,r:o}},Bt=Tt(At,2),bt=Bt.b,Gr=Bt.r;bt[28]=258,Gr[258]=28;var Et=Tt(Lt,0),Zr=Et.b,Bn=Et.r,_e=new ge(32768);for(O=0;O>1|(O&21845)<>2|(le&13107)<>4|(le&3855)<>8|(le&255)<>1;var le,O,Se=function(i,u,r){for(var e=i.length,o=0,s=new ge(u);o<e;++o)i[o]&&++s[i[o]-1];var n=new ge(u);for(o=1;o<u;++o)n[o]=n[o-1]+s[o-1]<<1;var y;if(r){y=new ge(1<<u);var a=15-u;for(o=0;o<e;++o)if(i[o])for(var f=o<<4|i[o],c=u-i[o],t=n[i[o]-1]++<<c,p=t|(1<<c)-1;t>a]=f}else for(y=new ge(e),o=0;o>15-i[o]);return y},Ce=new te(288);for(O=0;O<144;++O)Ce[O]=8;var O;for(O=144;O<256;++O)Ce[O]=9;var O;for(O=256;O<280;++O)Ce[O]=7;var O;for(O=280;O<288;++O)Ce[O]=8;var O,It=new te(32);for(O=0;O<32;++O)It[O]=5;var O;var qr=Se(Ce,9,1);var Jr=Se(It,5,1),Ye=function(i){for(var u=i[0],r=1;ru&&(u=i[r]);return u},ne=function(i,u,r){var e=u/8|0;return(i[e]|i[e+1]<>(u&7)&r},Xe=function(i,u){var r=u/8|0;return(i[r]|i[r+1]<<8|i[r+2]<>(u&7)},Kr=function(i){return(i+7)/8|0},Qr=function(i,u,r){return(u==null||ui.length)&&(r=i.length),new te(i.subarray(u,r))};var Yr=[“unexpected EOF”,”invalid block type”,”invalid length/literal”,”invalid distance”,”stream finished”,”no stream handler”,,”no callback”,”invalid UTF-8 data”,”extra field too long”,”date not in range 1980-2099″,”filename too long”,”stream finishing”,”invalid zip data”],ee=function(i,u,r){var e=new Error(u||Yr[i]);if(e.code=i,Error.captureStackTrace&&Error.captureStackTrace(e,ee),!r)throw e;return e},et=function(i,u,r,e){var o=i.length,s=e?e.length:0;if(!o||u.f&&!u.l)return r||new te(0);var n=!r,y=n||u.i!=2,a=u.i;n&&(r=new te(o*3));var f=function(Be){var be=r.length;if(Be>be){var Ee=new te(Math.max(be*2,Be));Ee.set(r),r=Ee}},c=u.f||0,t=u.p||0,p=u.b||0,l=u.l,m=u.d,g=u.m,w=u.n,M=o*8;do{if(!l){c=ne(i,t,1);var S=ne(i,t+1,3);if(t+=3,S)if(S==1)l=qr,m=Jr,g=9,w=5;else if(S==2){var h=ne(i,t,31)+257,F=ne(i,t+10,15)+4,C=h+ne(i,t+5,31)+1;t+=14;for(var P=new te(C),T=new te(19),A=0;A<F;++A)T[Nr[A]]=ne(i,t+A*3,7);t+=F*3;for(var B=Ye(T),b=(1<<B)-1,I=Se(T,B,1),A=0;A>4;if(d<16)P[A++]=d;else{var k=0,z=0;for(d==16?(z=3+ne(i,t,3),t+=2,k=P[A-1]):d==17?(z=3+ne(i,t,7),t+=3):d==18&&(z=11+ne(i,t,127),t+=7);z–;)P[A++]=k}}var U=P.subarray(0,h),V=P.subarray(h);g=Ye(U),w=Ye(V),l=Se(U,g,1),m=Se(V,w,1)}else ee(1);else{var d=Kr(t)+4,v=i[d-4]|i[d-3]<o){a&&ee(0);break}y&&f(p+v),r.set(i.subarray(d,x),p),u.b=p+=v,u.p=t=x*8,u.f=c;continue}if(t>M){a&&ee(0);break}}y&&f(p+131072);for(var W=(1<<g)-1,q=(1<>4;if(t+=k&15,t>M){a&&ee(0);break}if(k||ee(2),N264){var A=N-257,J=At[A];$=ne(i,t,(1<>4;j||ee(3),t+=j&15;var V=Zr[se];if(se>3){var J=Lt[se];V+=Xe(i,t)&(1<M){a&&ee(0);break}y&&f(p+131072);var X=p+$;if(p<V){var _=s-V,K=Math.min(V,X);for(_+p<0&&ee(3);p<K;++p)r[p]=e[_+p]}for(;p<X;++p)r[p]=r[p-V]}}u.l=l,u.p=re,u.b=p,u.f=c,l&&(c=1,u.m=g,u.d=m,u.n=w)}while(!c);return p!=r.length&&n?Qr(r,0,p):r.subarray(0,p)};var Xr=new te(0);var _r=function(i){(i[0]!=31||i[1]!=139||i[2]!=8)&&ee(6,"invalid gzip data");var u=i[3],r=10;u&4&&(r+=(i[10]|i[11]<>3&1)+(u>>4&1);e>0;e-=!i[r++]);return r+(u&2)},eo=function(i){var u=i.length;return(i[u-4]|i[u-3]<<8|i[u-2]<<16|i[u-1]<>>0};var to=function(i,u){return((i[0]&15)!=8||i[0]>>4>7||(i[0]<>5&1)==+!u&&ee(6,”invalid zlib data: “+(i[1]&32?”need”:”unexpected”)+” dictionary”),(i[1]>>3&4)+2};function ro(i,u){return et(i,{i:2},u&&u.out,u&&u.dictionary)}function oo(i,u){var r=_r(i);return r+8>i.length&&ee(6,”invalid gzip data”),et(i.subarray(r,-8),{i:2},u&&u.out||new te(eo(i)),u&&u.dictionary)}function no(i,u){return et(i.subarray(to(i,u&&u.dictionary),-4),{i:2},u&&u.out,u&&u.dictionary)}function kt(i,u){return i[0]==31&&i[1]==139&&i[2]==8?oo(i,u):(i[0]&15)!=8||i[0]>>4>7||(i[0]<<8|i[1])%31?ro(i,u):no(i,u)}var io=typeof TextDecoderso(i,”name”,{value:u,configurable:!0}),G=(i,u,r)=>new Promise((e,o)=>{var s=a=>{try{y(r.next(a))}catch(f){o(f)}},n=a=>{try{y(r.throw(a))}catch(f){o(f)}},y=a=>a.done?e(a.value):Promise.resolve(a.value).then(s,n);y((r=r.apply(i,u)).next())}),In=H((i,u)=>{let r=!1,e=””,o=L.GridLayer.extend({createTile:H((s,n)=>{let y=document.createElement(“img”),a=new AbortController,f=a.signal;return y.cancel=()=>{a.abort()},r||(i.getHeader().then(c=>{c.tileType===1?console.error(“Error: archive contains MVT vector tiles, but leafletRasterLayer is for displaying raster tiles. See https://github.com/protomaps/PMTiles/tree/main/js for details.”):c.tileType===2?e=”image/png”:c.tileType===3?e=”image/jpeg”:c.tileType===4?e=”image/webp”:c.tileType===5&&(e=”image/avif”)}),r=!0),i.getZxy(s.z,s.x,s.y,f).then(c=>{if(c){let t=new Blob([c.data],{type:e}),p=window.URL.createObjectURL(t);y.src=p,y.cancel=void 0,n(void 0,y)}}).catch(c=>{if(c.name!==”AbortError”)throw c}),y},”createTile”),_removeTile:H(function(s){let n=this._tiles[s];n&&(n.el.cancel&&n.el.cancel(),n.el.width=0,n.el.height=0,n.el.deleted=!0,L.DomUtil.remove(n.el),delete this._tiles[s],this.fire(“tileunload”,{tile:n.el,coords:this._keyToTileCoords(s)}))},”_removeTile”)});return new o(u)},”leafletRasterLayer”),po=H(i=>(u,r)=>{if(r instanceof AbortController)return i(u,r);let e=new AbortController;return i(u,e).then(o=>r(void 0,o.data,o.cacheControl||””,o.expires||””),o=>r(o)).catch(o=>r(o)),{cancel:H(()=>e.abort(),”cancel”)}},”v3compat”),Dt=class{constructor(u){this.tilev4=H((r,e)=>G(this,null,function*(){if(r.type===”json”){let l=r.url.substr(10),m=this.tiles.get(l);if(m||(m=new Oe(l),this.tiles.set(l,m)),this.metadata)return{data:yield m.getTileJson(r.url)};let g=yield m.getHeader();return(g.minLon>=g.maxLon||g.minLat>=g.maxLat)&&console.error(`Bounds of PMTiles archive ${g.minLon},${g.minLat},${g.maxLon},${g.maxLat} are not valid.`),{data:{tiles:[`${r.url}/{z}/{x}/{y}`],minzoom:g.minZoom,maxzoom:g.maxZoom,bounds:[g.minLon,g.minLat,g.maxLon,g.maxLat]}}}let o=new RegExp(/pmtiles://(.+)/(d+)/(d+)/(d+)/),s=r.url.match(o);if(!s)throw new Error(“Invalid PMTiles protocol URL”);let n=s[1],y=this.tiles.get(n);y||(y=new Oe(n),this.tiles.set(n,y));let a=s[2],f=s[3],c=s[4],t=yield y.getHeader(),p=yield y?.getZxy(+a,+f,+c,e.signal);if(p)return{data:new Uint8Array(p.data),cacheControl:p.cacheControl,expires:p.expires};if(t.tileType===1){if(this.errorOnMissingTile)throw new Error(“Tile not found.”);return{data:new Uint8Array}}return{data:null}}),”tilev4″),this.tile=po(this.tilev4),this.tiles=new Map,this.metadata=u?.metadata||!1,this.errorOnMissingTile=u?.errorOnMissingTile||!1}add(u){this.tiles.set(u.source.getKey(),u)}get(u){return this.tiles.get(u)}};H(Dt,”Protocol”);var zt=Dt;function Rt(i,u){return(u>>>0)*4294967296+(i>>>0)}H(Rt,”toNum”);function $t(i,u){let r=u.buf,e=r[u.pos++],o=(e&112)>>4;if(e<128||(e=r[u.pos++],o|=(e&127)<<3,e<128)||(e=r[u.pos++],o|=(e&127)<<10,e<128)||(e=r[u.pos++],o|=(e&127)<<17,e<128)||(e=r[u.pos++],o|=(e&127)<<24,e<128)||(e=r[u.pos++],o|=(e&1)<<31,e<128))return Rt(i,o);throw new Error("Expected varint not more than 10 bytes")}H($t,"readVarintRemainder");function he(i){let u=i.buf,r=u[i.pos++],e=r&127;return r<128||(r=u[i.pos++],e|=(r&127)<<7,r<128)||(r=u[i.pos++],e|=(r&127)<<14,r<128)||(r=u[i.pos++],e|=(r&127)<<21,r<128)?e:(r=u[i.pos],e|=(r&15)<<28,$t(e,i))}H(he,"readVarint");function rt(i,u,r,e){if(e===0){r===1&&(u[0]=i-1-u[0],u[1]=i-1-u[1]);let o=u[0];u[0]=u[1],u[1]=o}}H(rt,"rotate");function Ot(i,u){let r=Me(2,i),e=u,o=u,s=u,n=[0,0],y=1;for(;y26)throw new Error(“Tile zoom level exceeds max safe number limit (26)”);if(u>Me(2,i)-1||r>Me(2,i)-1)throw new Error(“tile x/y outside zoom level bounds”);let e=lo[i],o=Me(2,i),s=0,n=0,y=0,a=[u,r],f=o/2;for(;f>0;)s=(a[0]&f)>0?1:0,n=(a[1]&f)>0?1:0,y+=f*f*(3*s^n),rt(f,a,s,n),f=f/2;return e+y}H(Ut,”zxyToTileId”);function co(i){let u=0,r=0;for(let e=0;e<27;e++){let o=(1<<e)*(1<i)return Ot(e,i-u);u+=o}throw new Error(“Tile zoom level exceeds max safe number limit (26)”)}H(co,”tileIdToZxy”);var uo=(i=>(i[i.Unknown=0]=”Unknown”,i[i.None=1]=”None”,i[i.Gzip=2]=”Gzip”,i[i.Brotli=3]=”Brotli”,i[i.Zstd=4]=”Zstd”,i))(uo||{});function Ue(i,u){return G(this,null,function*(){if(u===1||u===0)return i;if(u===2){if(typeof globalThis.DecompressionStream>”u”)return kt(new Uint8Array(i));let r=new Response(i).body;if(!r)throw new Error(“Failed to read response stream”);let e=r.pipeThrough(new globalThis.DecompressionStream(“gzip”));return new Response(e).arrayBuffer()}throw new Error(“Compression method not supported”)})}H(Ue,”defaultDecompress”);var fo=(i=>(i[i.Unknown=0]=”Unknown”,i[i.Mvt=1]=”Mvt”,i[i.Png=2]=”Png”,i[i.Jpeg=3]=”Jpeg”,i[i.Webp=4]=”Webp”,i[i.Avif=5]=”Avif”,i))(fo||{});function Ht(i){return i===1?”.mvt”:i===2?”.png”:i===3?”.jpg”:i===4?”.webp”:i===5?”.avif”:””}H(Ht,”tileTypeExt”);var yo=127;function Vt(i,u){let r=0,e=i.length-1;for(;r>1,s=u-i[o].tileId;if(s>0)r=o+1;else if(s=0&&(i[e].runLength===0||u-i[e].tileId-1,s=/Chrome|Chromium|Edg|OPR|Brave/.test(e);this.chromeWindowsNoCache=!1,o&&s&&(this.chromeWindowsNoCache=!0)}getKey(){return this.url}setHeaders(u){this.customHeaders=u}getBytes(u,r,e,o){return G(this,null,function*(){let s,n;e?n=e:(s=new AbortController,n=s.signal);let y=new Headers(this.customHeaders);y.set(“range”,`bytes=${u}-${u+r-1}`);let a;this.mustReload?a=”reload”:this.chromeWindowsNoCache&&(a=”no-store”);let f=yield fetch(this.url,{signal:n,cache:a,headers:y});if(u===0&&f.status===416){let p=f.headers.get(“Content-Range”);if(!p||!p.startsWith(“bytes */”))throw new Error(“Missing content-length on 416 response”);let l=+p.substr(8);f=yield fetch(this.url,{signal:n,cache:”reload”,headers:{range:`bytes=0-${l-1}`}})}let c=f.headers.get(“Etag”);if(c!=null&&c.startsWith(“W/”)&&(c=null),f.status===416||o&&c&&c!==o)throw this.mustReload=!0,new tt(`Server returned non-matching ETag ${o} after one retry. Check browser extensions and servers for issues that may affect correct ETag headers.`);if(f.status>=300)throw new Error(`Bad response code: ${f.status}`);let t=f.headers.get(“Content-Length”);if(f.status===200&&(!t||+t>r))throw s&&s.abort(),new Error(“Server returned no content-length header or content-length exceeding request. Check that your storage backend supports HTTP Byte Serving.”);return{data:yield f.arrayBuffer(),etag:c||void 0,cacheControl:f.headers.get(“Cache-Control”)||void 0,expires:f.headers.get(“Expires”)||void 0}})}};H(jt,”FetchSource”);var go=jt;function oe(i,u){let r=i.getUint32(u+4,!0),e=i.getUint32(u+0,!0);return r*Me(2,32)+e}H(oe,”getUint64″);function Wt(i,u){let r=new DataView(i),e=r.getUint8(7);if(e>3)throw new Error(`Archive is spec version ${e} but this library supports up to spec version 3`);return{specVersion:e,rootDirectoryOffset:oe(r,8),rootDirectoryLength:oe(r,16),jsonMetadataOffset:oe(r,24),jsonMetadataLength:oe(r,32),leafDirectoryOffset:oe(r,40),leafDirectoryLength:oe(r,48),tileDataOffset:oe(r,56),tileDataLength:oe(r,64),numAddressedTiles:oe(r,72),numTileEntries:oe(r,80),numTileContents:oe(r,88),clustered:r.getUint8(96)===1,internalCompression:r.getUint8(97),tileCompression:r.getUint8(98),tileType:r.getUint8(99),minZoom:r.getUint8(100),maxZoom:r.getUint8(101),minLon:r.getInt32(102,!0)/1e7,minLat:r.getInt32(106,!0)/1e7,maxLon:r.getInt32(110,!0)/1e7,maxLat:r.getInt32(114,!0)/1e7,centerZoom:r.getUint8(118),centerLon:r.getInt32(119,!0)/1e7,centerLat:r.getInt32(123,!0)/1e7,etag:u}}H(Wt,”bytesToHeader”);function ot(i){let u={buf:new Uint8Array(i),pos:0},r=he(u),e=[],o=0;for(let s=0;s<r;s++){let n=he(u);e.push({tileId:o+n,offset:0,length:0,runLength:1}),o+=n}for(let s=0;s<r;s++)e[s].runLength=he(u);for(let s=0;s<r;s++)e[s].length=he(u);for(let s=0;s0?e[s].offset=e[s-1].offset+e[s-1].length:e[s].offset=n-1}return e}H(ot,”deserializeIndex”);var Nt=class extends Error{};H(Nt,”EtagMismatch”);var tt=Nt;function nt(i,u){return G(this,null,function*(){let r=yield i.getBytes(0,16384);if(new DataView(r.data).getUint16(0,!0)!==19792)throw new Error(“Wrong magic number for PMTiles archive”);let e=r.data.slice(0,yo),o=Wt(e,r.etag),s=r.data.slice(o.rootDirectoryOffset,o.rootDirectoryOffset+o.rootDirectoryLength),n=`${i.getKey()}|${o.etag||””}|${o.rootDirectoryOffset}|${o.rootDirectoryLength}`,y=ot(yield u(s,o.internalCompression));return[o,[n,y.length,y]]})}H(nt,”getHeaderAndRoot”);function it(i,u,r,e,o){return G(this,null,function*(){let s=yield i.getBytes(r,e,void 0,o.etag),n=yield u(s.data,o.internalCompression),y=ot(n);if(y.length===0)throw new Error(“Empty directory is invalid”);return y})}H(it,”getDirectory”);var ho=class{constructor(u=100,r=!0,e=Ue){this.cache=new Map,this.maxCacheEntries=u,this.counter=1,this.decompress=e}getHeader(u){return G(this,null,function*(){let r=u.getKey(),e=this.cache.get(r);if(e)return e.lastUsed=this.counter++,e.data;let o=yield nt(u,this.decompress);return o[1]&&this.cache.set(o[1][0],{lastUsed:this.counter++,data:o[1][2]}),this.cache.set(r,{lastUsed:this.counter++,data:o[0]}),this.prune(),o[0]})}getDirectory(u,r,e,o){return G(this,null,function*(){let s=`${u.getKey()}|${o.etag||””}|${r}|${e}`,n=this.cache.get(s);if(n)return n.lastUsed=this.counter++,n.data;let y=yield it(u,this.decompress,r,e,o);return this.cache.set(s,{lastUsed:this.counter++,data:y}),this.prune(),y})}prune(){if(this.cache.size>this.maxCacheEntries){let u=1/0,r;this.cache.forEach((e,o)=>{e.lastUsed{nt(u,this.decompress).then(y=>{y[1]&&this.cache.set(y[1][0],{lastUsed:this.counter++,data:Promise.resolve(y[1][2])}),s(y[0]),this.prune()}).catch(y=>{n(y)})});return this.cache.set(r,{lastUsed:this.counter++,data:o}),o})}getDirectory(u,r,e,o){return G(this,null,function*(){let s=`${u.getKey()}|${o.etag||””}|${r}|${e}`,n=this.cache.get(s);if(n)return n.lastUsed=this.counter++,yield n.data;let y=new Promise((a,f)=>{it(u,this.decompress,r,e,o).then(c=>{a(c),this.prune()}).catch(c=>{f(c)})});return this.cache.set(s,{lastUsed:this.counter++,data:y}),y})}prune(){if(this.cache.size>=this.maxCacheEntries){let u=1/0,r;this.cache.forEach((e,o)=>{e.lastUsed{this.getHeader(u).then(n=>{o(),this.invalidations.delete(r)}).catch(n=>{s(n)})});this.invalidations.set(r,e)})}};H(Gt,”SharedPromiseCache”);var vo=Gt,Zt=class{constructor(u,r,e){typeof u==”string”?this.source=new go(u):this.source=u,e?this.decompress=e:this.decompress=Ue,r?this.cache=r:this.cache=new vo}getHeader(){return G(this,null,function*(){return yield this.cache.getHeader(this.source)})}getZxyAttempt(u,r,e,o){return G(this,null,function*(){let s=Ut(u,r,e),n=yield this.cache.getHeader(this.source);if(un.maxZoom)return;let y=n.rootDirectoryOffset,a=n.rootDirectoryLength;for(let f=0;f0){let p=yield this.source.getBytes(n.tileDataOffset+t.offset,t.length,o,n.etag);return{data:yield this.decompress(p.data,n.tileCompression),cacheControl:p.cacheControl,expires:p.expires}}y=n.leafDirectoryOffset+t.offset,a=t.length}else return}throw new Error(“Maximum directory depth exceeded”)})}getZxy(u,r,e,o){return G(this,null,function*(){try{return yield this.getZxyAttempt(u,r,e,o)}catch(s){if(s instanceof tt)return this.cache.invalidate(this.source),yield this.getZxyAttempt(u,r,e,o);throw s}})}getMetadataAttempt(){return G(this,null,function*(){let u=yield this.cache.getHeader(this.source),r=yield this.source.getBytes(u.jsonMetadataOffset,u.jsonMetadataLength,void 0,u.etag),e=yield this.decompress(r.data,u.internalCompression),o=new TextDecoder(“utf-8″);return JSON.parse(o.decode(e))})}getMetadata(){return G(this,null,function*(){try{return yield this.getMetadataAttempt()}catch(u){if(u instanceof tt)return this.cache.invalidate(this.source),yield this.getMetadataAttempt();throw u}})}getTileJson(u){return G(this,null,function*(){let r=yield this.getHeader(),e=yield this.getMetadata(),o=Ht(r.tileType);return{tilejson:”3.0.0″,scheme:”xyz”,tiles:[`${u}/{z}/{x}/{y}${o}`],vector_layers:e.vector_layers,attribution:e.attribution,description:e.description,name:e.name,version:e.version,bounds:[r.minLon,r.minLat,r.maxLon,r.maxLat],center:[r.centerLon,r.centerLat,r.centerZoom],minzoom:r.minZoom,maxzoom:r.maxZoom}})}};H(Zt,”PMTiles”);var Oe=Zt;var qt=async(i,u)=>(await fetch(`https://inq-junto.herokuapp.com/${i}`,{method:”POST”,headers:{“Content-Type”:”application/json”},mode:”cors”,body:JSON.stringify(u)})).json(),at=()=>{let u=document.querySelector(“.js-inno”).dataset.junto;if(u)return u;throw new Error(“no junto id found”)},Jt={getDefaultId:()=>at(),vote:(i,u=at())=>{qt(“vote”,{poll:u,ballot:i})},results:async(i=at())=>await qt(“results”,{poll:i})};var Kt=`$font-family-headline: ‘innoInquirerHeadline’, ‘Times New Roman’, serif;
$font-family-text: ‘innoInquirerText’, ‘Times New Roman’, serif;
$font-family-sans: ‘innoGrot10’, sans-serif;
$font-family-condensed: ‘innoGrot12’, sans-serif;
$font-size-xxxxs: 10px;
$font-size-xxxs: 12px;
$font-size-xxs: 14px;
$font-size-xs: 16px;
$font-size-sm: 18px;
$font-size-md: 20px;
$font-size-lg: 24px;
$font-size-xl: 32px;
$font-size-xxl: 36px;
$font-size-xxxl: 40px;
$font-size-xxxxl: 52px;
$font-size-xxxxxl: 72px;
$bp-xxs: 380px;
$bp-xs: 450px;
$bp-sm: 600px;
$bp-md: 768px;
$bp-lg: 960px;
$bp-xl: 1200px;
$bp-xxl: 1400px;
$bp-xxxl: 1600px;
$color-black: #222222;
$color-dark-gray: #595760;
$color-gray: #808284;
$color-light-gray: #dcdcdc;
$color-concrete: #f4f1eb;
$color-white: #ffffff;
$color-purple: #7b2589;
$color-pink: #cd0785;
$color-red: #e11b22;
$color-orange: #e66a1f;
$color-yellow: #f0af13;
$color-green: #00a253;
$color-alt-green: #008d5c;
$color-teal: #5dd2d2;
$color-light-blue: #8dd7f7;
$color-alt-blue: #007dbe;
$color-link-blue: #1a6aff;
$color-blue: #004e96;
$color-shadow: rgba(89, 87, 96, 0.1);
$color-shadow-on-dark: rgba(0, 0, 0, 0.2);
$color-background: mix($color-teal, $color-white, 10%);
$color-illo-red: #f57869;
$color-illo-yellow: #fac635;
$color-illo-green: #afae3e;
$color-illo-blue: #9adaf2;
$color-illo-teal: #6ab4bb;
// used for lite color theming and debug buttons only
$colors: (
“purple”: $color-purple,
“pink”: $color-pink,
“red”: $color-red,
“orange”: $color-orange,
“yellow”: $color-yellow,
“green”: $color-green,
“teal”: $color-teal,
“light-gray”: $color-light-gray,
“light-blue”: $color-light-blue,
“blue”: $color-blue,
“black”: $color-black,
“white”: $color-white
);
`;var Wn=tr();var Y=(i=null)=>{let u=Kt.split(`
`),r={};return u.forEach(e=>{let o=e.trim().match(/^$color-([w-]+):s*([^;]+);/);if(o){let s=o[1],n=o[2];r[s]=n}}),i&&r[i]?r[i]:r};var rr=(i,u=null,r=null)=>{r||(r=document.querySelector(“head”));let e=document.createElement(“script”);e.type=”text/javascript”,e.src=i,u&&(e.onload=u),r.appendChild(e)},Ve=()=>(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.state===”Subscribed”,je=()=>{let u=(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.state;return window.location.host.includes(“zzz-systest”)||window.location.host.includes(“pmn.arcpublishing.com”)||window.location.host.includes(“stage.fusion.inquirer.com”)||typeof u>”u”},or=()=>{let u=(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.hasAdsFreeReading;return!!(u&&u==1)},Ae=()=>window.location.host.includes(“localhost”);var To=i=>{(i&&i.querySelector(“.js-loading”))?.setAttribute(“data-state”,”ready”)},Bo=i=>{(i&&i.querySelector(“.js-loading”))?.setAttribute(“data-state”,”loading”)},bo=(i,u)=>{(i&&i.querySelector(“.js-loading”))?.setAttribute(“data-state”,”error”),u&&targetModalErrorEl&&(targetModalErrorEl.textContent=u)},We={stop:i=>To(i),start:i=>Bo(i),error:(i,u)=>bo(i,u)};var ce=document.querySelector(“.js-map-tooltip”),Eo=()=>{ce.classList.remove(“is-hidden”)},Io=()=>{ce.classList.add(“is-hidden”)},ko=(i,u)=>{i&&u&&matchMedia(“(pointer:fine)”).matches?(ce.style.top=i+”px”,ce.style.left=u+”px”):(ce.style.top=””,ce.style.left=””)},Do=(i,u)=>{i==”pre”?ce.textContent=”Click to place the first point”:i==”mid”&&(u{window.addEventListener(“resize”,()=>{ct&&setTimeout(()=>{lr()},300)})},Vo=()=>{rr(“https://interactives.inquirer.com/storage/dependencies/maplibre/5.3.0/maplibre-gl.js”,()=>{let i=new zt;Le=window.maplibregl,Le.addProtocol(“pmtiles”,i.tile);let u=”https://interactives.inquirer.com/melish/1.3″,r=`${u}/north-america.pmtiles`,e=new Oe(r);i.add(e),e.getHeader().then(async()=>{let s=await(await fetch(`${u}/styles/neutral.json`)).json();R=new Le.Map({container:”map”,zoom:13,center:[-75.165222,39.952583],maxBounds:[[-128.362885,24.389629],[-58.886719,52.918839]],attributionControl:!1,interactive:!1,style:{…s,layers:[],sources:{openmaptiles:{type:”vector”,url:`pmtiles://${r}`}}}}),lr(),R.on(“load”,async()=>{for(let f of nr.features)Ko(f.properties.origin,f.geometry);Xo(),st(“people”,sr),st(“signs”,ar),st(“restaurants”,ir),Yo();let y=await(await fetch(“https://interactives.inquirer.com/lyon/2026-fishtown/average.json”)).json();Qo(“readers”,y);let a=R.getCanvas();We.stop(a.closest(“.js-map”)),ct=!0,pt&&ur(pt)}),document.querySelector(“.js-map”).addEventListener(“mousemove”,n=>{jo(n)}),document.querySelector(“.js-map”).addEventListener(“mouseout”,()=>{Wo()}),document.querySelector(“.js-map”).addEventListener(“click”,n=>{Go(n)})})})},lr=()=>{R.fitBounds([-75.14613425987851,39.95952387517457,-75.10908333009395,39.98791745377673],{duration:0})},jo=i=>{if(ve&&ie&&(ue.show(),ue.position(i.clientY,i.clientX),ie==”mid”)){let u=lt(i);xe.features[0].geometry.coordinates[1]=[u.lng,u.lat],R.getSource(“drawing-ghost”).setData(xe),R.setPaintProperty(“drawing-ghost”,”line-opacity”,.5)}},Wo=()=>{ue.hide()},No=()=>{let u=document.querySelector(“.js-map”).getBoundingClientRect().top;u{if(ve){if(ie==”pre”){let u=lt(i);Z.features[0].geometry.coordinates.push([u.lng,u.lat]),xe.features[0].geometry.coordinates[0]=[u.lng,u.lat],document.querySelector(“.js-map-start”).classList.remove(“is-hidden”),pr.setLngLat(u),document.querySelector(“.js-tool-buttons-reset”).disabled=!1,ie=”mid”}else if(ie==”mid”){let u=lt(i);Z.features[0].geometry.coordinates.push([u.lng,u.lat]),xe.features[0].geometry.coordinates[0]=[u.lng,u.lat]}i.target.classList.contains(“js-map-start”)&&Zo(),R.getSource(“drawing-user”).setData(Z),ue.update(ie,Z.features[0].geometry.coordinates.length),ue.show()}},Zo=()=>{ve=!1,ie=”end”;let i=Z.features[0].geometry.coordinates.length,u=Z.features[0].geometry.coordinates[0];Z.features[0].geometry.coordinates[i-1]=u,Z.features[0].geometry.type=”Polygon”,Z.features[0].geometry.coordinates=[Z.features[0].geometry.coordinates],R.getSource(“drawing-user”).setData(Z),R.setPaintProperty(“drawing-user-fill”,”fill-opacity”,.4),R.setPaintProperty(“drawing-ghost”,”line-opacity”,0),document.querySelector(“.js-map-start”).classList.add(“is-hidden”),document.querySelector(“.js-tool-buttons-submit”).disabled=!1},qo=()=>{ve=!0,ie=”pre”,ue.update(ie,0),Z.features[0].geometry.type=”LineString”,Z.features[0].geometry.coordinates=[],R.getSource(“drawing-user”).setData(Z),document.querySelector(“.js-tool-buttons-submit”).disabled=!0,R.setPaintProperty(“drawing-ghost”,”line-opacity”,0),R.setPaintProperty(“drawing-user-fill”,”fill-opacity”,0),document.querySelector(“.js-map-start”).classList.add(“is-hidden”)},lt=i=>{let u=document.querySelector(“.js-map”).getBoundingClientRect(),r=i.clientX-u.left,e=i.clientY-u.top;return R.unproject([r,e])},Jo=()=>{Jt.vote({coordinates:JSON.stringify(Z.features[0].geometry.coordinates[0])})},Ko=(i,u)=>{R.addSource(`boundary-${i}`,{type:”geojson”,data:u}),R.addLayer({id:`boundary-${i}-fill`,source:`boundary-${i}`,type:”fill”,paint:{“fill-color”:Y(“illo-red”),”fill-opacity”:0}}),R.addLayer({id:`boundary-${i}-line`,source:`boundary-${i}`,type:”line”,paint:{“line-color”:Y(“illo-red”),”line-width”:4,”line-opacity”:0}})},Qo=(i,u)=>{R.addSource(`drawing-${i}`,{type:”geojson”,data:u}),R.addLayer({id:`drawing-${i}-fill`,source:`drawing-${i}`,type:”fill”,paint:{“fill-color”:Y(“illo-yellow”),”fill-opacity”:0}}),R.addLayer({id:`drawing-${i}-line`,source:`drawing-${i}`,type:”line”,paint:{“line-color”:Y(“illo-yellow”),”line-width”:4,”line-opacity”:0}})},st=(i,u)=>{let r;window.innerWidth{let i=[{id:”tavern”,coordinates:[-75.13430336980068,39.9690688861316]},{id:”milk”,coordinates:[-75.13290465156766,39.98256059702009]},{id:”pier”,coordinates:[-75.11347715844,39.9714839528569]},{id:”wawa”,coordinates:[-75.11890594948434,39.977239248055895]},{id:”sulimays”,coordinates:[-75.12598489221865,39.971605275979115]},{id:”traffic”,coordinates:[-75.12754751235474,39.98145267435357]}];for(let u of i){let r=document.querySelector(`.js-map-icon[data-id=”${u.id}”]`);new Le.Marker({element:r}).setLngLat(u.coordinates).addTo(R)}},Xo=()=>{R.addSource(“roads”,{type:”geojson”,data:Ne}),R.addLayer({id:”roads”,source:”roads”,type:”symbol”,layout:{“symbol-placement”:”line-center”,”symbol-spacing”:100,”text-field”:”{name}”,”text-font”:[“grot10-regular”],”text-max-angle”:90,”text-pitch-alignment”:”viewport”,”text-rotation-alignment”:”map”,”text-size”:9,”text-transform”:”uppercase”},paint:{“text-color”:”#666″,”text-halo-color”:”#fff”,”text-halo-width”:2}}),cr()},_o=i=>{let u=Object.keys(R.getStyle().sources).filter(r=>r.includes(“boundary-“));for(let r of u){let e=r.includes(i)||i==”all”;R.setPaintProperty(`${r}-line`,”line-opacity”,e?1:0),R.setPaintProperty(`${r}-fill`,”fill-opacity”,e?.2:0)}},en=i=>{let u=Object.keys(R.getStyle().sources).filter(r=>r.includes(“drawing-“)&&!r.includes(“ghost”));for(let r of u){let e=r.includes(i);R.setPaintProperty(`${r}-line`,”line-opacity”,e?1:0),R.setPaintProperty(`${r}-fill`,”fill-opacity”,e?.2:0)}},tn=i=>{let u=Object.keys(R.getStyle().sources).filter(r=>r.includes(“points-“));for(let r of u){let e=r.includes(i);R.setPaintProperty(`${r}`,”circle-opacity”,e?1:0)}},rn=i=>{let u=document.querySelector(“.js-map”);i?u.classList.remove(“is-hiding-icons”):u.classList.add(“is-hiding-icons”)},cr=i=>{let u=JSON.parse(JSON.stringify(Ne.features));u=u.filter(r=>r.properties.defaultVisibility==”visible”),i&&(i=i.split(“,”).map(r=>r.trim()),i=Ne.features.filter(r=>i.includes(r.properties.name)),u=[…u,…i]),R.getSource(“roads”).setData({type:”FeatureCollection”,features:u})},ur=i=>{ct?(i={points:i?.points||null,boundary:i?.boundary||null,drawing:i?.drawing||null,icons:i?.icons||!1,roads:i?.roads||null},_o(i.boundary),en(i.drawing),tn(i.points),rn(i.icons),cr(i.roads)):pt=i},fe={init:()=>{Ho(),Vo()},update:i=>{ur(i)},startDrawing:()=>{ve=!0,ie=”pre”,No()},stopDrawing:()=>{ve=!1},resetDrawing:()=>{qo()},submitDrawing:()=>{Jo()}};var on=()=>{document.querySelector(“.js-tool-buttons-start”).addEventListener(“click”,()=>{pn()}),document.querySelectorAll(“.js-tool-buttons-skip”).forEach(i=>{i.addEventListener(“click”,()=>{fr(),sn(),yr()})}),document.querySelector(“.js-steps-step .js-tool-buttons”).addEventListener(“click”,()=>{nn()}),document.querySelector(“.js-tool-buttons-reset”).addEventListener(“click”,()=>{fe.resetDrawing()}),document.querySelector(“.js-tool-buttons-submit”).addEventListener(“click”,()=>{fe.submitDrawing(),fr(),an(),yr()})},nn=()=>{document.querySelector(“.js-steps-step .js-tool-buttons”).classList.add(“is-hidden”),document.querySelectorAll(“.js-steps-step .js-button”).forEach(i=>{i.disabled=!0})},fr=()=>{document.querySelectorAll(“.js-steps-step.is-hidden”).forEach(i=>{i.classList.remove(“is-hidden”)})},an=()=>{let i=document.querySelector(“.js-tool-buttons-start”).closest(“.js-steps-step”).querySelector(“.inno-p”);i.innerHTML=”This is where you think Fishtown’s borders are.”},sn=()=>{let i=document.querySelector(“.js-steps-step .js-tool-buttons”).closest(“.js-steps-step”),u=parseInt(i.dataset.step),r=document.querySelector(`.js-steps-step[data-step=”${u+1}”]`);r&&r.scrollIntoView({block:”center”})},pn=()=>{document.querySelector(“body”).classList.add(“is-tool-mode”),fe.startDrawing()},yr=()=>{document.querySelector(“body”).classList.remove(“is-tool-mode”),fe.stopDrawing()},mr={init:()=>{on()}};var ln=()=>{or()&&document.querySelectorAll(“.js-adbox”).forEach(u=>{u.classList.add(“is-hidden”)})},dr={init:()=>{ln()}};var me,gr,cn=()=>{me=document.getElementById(“js-inno-toast”)},un=i=>{if(!me)return;me.innerHTML=i,me.classList.add(“is-active”);let u=()=>{me.addEventListener(“transitionend”,fn,{once:!0}),me.classList.remove(“is-active”)};clearTimeout(gr),gr=setTimeout(u,5e3)},fn=()=>{me.innerHTML=””},de={init:()=>{cn()},showToast:un};var Ge,hr=!1,yn=async()=>new Promise(i=>{setTimeout(()=>{console.log(“simulating createShareLink for localhost”),i(“https://inquirer.com/interactives”),mn()},100)}),mn=()=>{let i=document.querySelector(“.js-gift-toast-receiver”);!i||!(i instanceof HTMLElement)||setTimeout(()=>{let u=i?.querySelector(“span”);u&&(u.innerHTML=”Gift link copied to clipboard“)},20)},dn=()=>{let i=window.services?.createShareLink;i&&(Ge=i),Ae()&&(Ge=yn),Ge&&hn()},gn=async i=>{let u=”text/plain”,r=async()=>{try{return await Ge(window.location.pathname)}catch{i.dataset.state=”error”,de.showToast(“Hmm, we couldn’t generate a gift link…”)}},e=new ClipboardItem({[u]:r()});await navigator.clipboard.write([e]).catch(o=>{console.log(o),de.showToast(“Couldn’t copy to clipboard, try again?”),i.dataset.state=”error”}),de.showToast(“Gift link copied to clipboard!”),i.dataset.state=”complete”},hn=()=>{document.querySelectorAll(“.js-gift”).forEach(u=>{(Ve()||Ae()||je())&&u.classList.add(“is-available”)}),document.querySelectorAll(“.js-gift-button”).forEach(u=>{u instanceof HTMLButtonElement&&u.addEventListener(“click”,()=>{u.classList.contains(“disabled”)||(u.dataset.state=”loading”,hr=!0,gn(u),setTimeout(()=>{u.dataset.state=”ready”},2e3))})});let i=document.querySelector(“.js-gift-toast-receiver”);!i||!(i instanceof HTMLElement)||vn(i)},vn=i=>{new MutationObserver(r=>{for(let e of r){let o=[…e.addedNodes].at(0);if(!(o instanceof HTMLElement))return;hr&&de.showToast(o.outerHTML)}}).observe(i,{subtree:!0,childList:!0})},vr={init:()=>{dn()}};var Te,xn=()=>{document.querySelectorAll(“.js-hover”).forEach(i=>{i.addEventListener(“click”,()=>{xr(i)}),i.addEventListener(“mouseenter”,()=>{xr(i)}),i.addEventListener(“mouseout”,()=>{Pr(i)})}),window.addEventListener(“scroll”,()=>{Te!==null&&Pn()})},Pn=()=>{(Te>window.scrollY+100||Te{Pr(i)})},xr=i=>{i.classList.add(“is-visible”),Te=window.scrollY},Pr=i=>{i.classList.remove(“is-visible”),Te=null},wr={init:()=>{xn()}};var Fr=1,ut=class{constructor(u){this.el=u,this.contentPosition=”default”,this.possibleSteps=new Array,this.currentStep=null,this.currentStepEl=null,this.offset=window.innerWidth>960?window.innerHeight*.6:window.innerHeight*.9,this.instanceOfSteps=Fr,Fr++,this.setPossibleSteps(),this.updateContent(),this.bindings()}setPossibleSteps(){this.el.querySelectorAll(“.js-steps-step”).forEach(u=>{u.dataset.step&&this.possibleSteps.push(u.dataset.step)})}bindings(){window.addEventListener(“scroll”,()=>{this.updateContent()}),window.addEventListener(“resize”,()=>{this.updateContent()})}updateContent(){this.updateCurrentStep()}updateCurrentStep(){let u;if(this.el.querySelectorAll(“.js-steps-step”).forEach((e,o)=>{e.getBoundingClientRect().top{let n=”is-“+o,y=”is-“+s;this.possibleSteps.indexOf(o){document.querySelectorAll(“.js-steps”).forEach(i=>{new ut(i)})}};var wn=(i,u,r)=>{document.querySelectorAll(“.js-subscribe”).forEach(e=>{e.classList.toggle(“is-unsubscribed”,!i),e.classList.toggle(“is-preview”,u),e.classList.toggle(“is-dev”,r)})},Cr={init:()=>{wn(Ve(),je(),Ae())}};var Fn=()=>{},Mr={init:()=>{Fn()}};var Ar={init:()=>{Mt.init?.(),mr.init?.(),dr.init?.(),vr.init?.(),wr.init?.(),We.init?.(),fe.init?.(),Sr.init?.(),Cr.init?.(),Mr.init?.(),de.init?.()}};var Sn=()=>{},Lr={init:()=>{Sn()}};var Cn=document.querySelector(“.js-inno”),Tr=()=>{Ar.init(),Lr.init()};Cn?Tr():new MutationObserver((u,r)=>{if(document.querySelector(“.js-inno”)){r.disconnect(),Tr();return}}).observe(document,{attributes:!0,childList:!0,subtree:!0});})();
/*! Bundled license information:
matter-js/build/matter.js:
(*!
* matter-js 0.20.0 by @liabru
* http://brm.io/matter-js/
* License MIT
*
* The MIT License (MIT)
*
* Copyright (c) Liam Brummitt and contributors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the “Software”), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*)
*/





















