{{ t('where_is_my_bus') }}
\n\n{{ t('support_us') }}
\n\n \n\n\n {{ t('version_from') }}\n {{ buildDate }}\n
\n{{ t('where_is_my_bus') }}
\n\n{{ t('support_us') }}
\n\n \n\n\n {{ t('version_from') }}\n {{ buildDate }}\n
\nf&&(f=o),(u+=i.readSVarint()) u&&(Ce="bevel"),Ce==="bevel"&&(ne>2&&(Ce="flipbevel"),ne100)Q=N.mult(-1);else{const Se=ne*D.add(N).mag()/D.sub(N).mag();Q._perp()._mult(Se*(Ne?-1:1))}this.addCurrentVertex(k,Q,0,0,T),this.addCurrentVertex(k,Q.mult(-1),0,0,T)}else if(Ce==="bevel"||Ce==="fakeround"){const Se=-Math.sqrt(ne*ne-1),Re=Ne?Se:0,Ie=Ne?0:Se;if(C&&this.addCurrentVertex(k,D,Re,Ie,T),Ce==="fakeround"){const ve=Math.round(180*me/Math.PI/20);for(let Ge=1;Ge =P)return null;for(var q=[],Y=0;Y =P)){var Oe=[];if(_e==="Point"||_e==="MultiPoint")zt(de,Oe,M,P,V);else if(_e==="LineString")vt(de,Oe,M,P,V,!1,X.lineMetrics);else if(_e==="MultiLineString")qs(de,Oe,M,P,V,!1);else if(_e==="Polygon")qs(de,Oe,M,P,V,!0);else if(_e==="MultiPolygon")for(var We=0;We =M&&(q=ue(Y,Ze,Je,We,et,M),xt=!0),Et>P&&It<=P&&(q=ue(Y,Ze,Je,We,et,P),xt=!0),!$&&xt&&(te&&(Y.end=de+X*q),I.push(Y),Y=Cr(B)),te&&(de+=X)}var gt=B.length-3;Ze=B[gt],Je=B[gt+1],Oe=B[gt+2],(It=V===0?Ze:Je)>=M&&It<=P&&$r(Y,Ze,Je,Oe),gt=Y.length-3,$&>>=3&&(Y[gt]!==Y[0]||Y[gt+1]!==Y[1])&&$r(Y,Y[0],Y[1],Y[2]),Y.length&&I.push(Y)}function Cr(B){var I=[];return I.size=B.size,I.start=B.start,I.end=B.end,I}function qs(B,I,M,P,V,$){for(var te=0;te1&&(y=t[++_]);const w=Math.abs(v-y.left),S=Math.abs(v-y.right),A=Math.min(w,S);let R;const L=d/a*(c+1);if(y.isDash){const F=c-Math.abs(L);R=Math.sqrt(A*A+F*F)}else R=c-Math.sqrt(A*A+L*L);this.data[m+v]=Math.max(0,Math.min(255,R+128))}}}addRegularDash(t){for(let _=t.length-1;_>=0;--_){const y=t[_],v=t[_+1];y.zeroLength?t.splice(_,1):v&&v.isDash===y.isDash&&(v.left=y.left,t.splice(_,1))}const s=t[0],a=t[t.length-1];s.isDash===a.isDash&&(s.left=a.left-this.width,a.right=s.right+this.width);const c=this.width*this.nextRow;let d=0,m=t[d];for(let _=0;_{this.remove(t,d)},a)),this.data[c].push(d),this.order.push(c),this.order.length>this.max){const m=this._getAndRemoveByKey(this.order[0]);m&&this.onRemove(m)}return this}has(t){return t.wrapped().key in this.data}getAndRemove(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null}_getAndRemoveByKey(t){const s=this.data[t].shift();return s.timeout&&clearTimeout(s.timeout),this.data[t].length===0&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),s.value}getByKey(t){const s=this.data[t];return s?s[0].value:null}get(t){return this.has(t)?this.data[t.wrapped().key][0].value:null}remove(t,s){if(!this.has(t))return this;const a=t.wrapped().key,c=s===void 0?0:this.data[a].indexOf(s),d=this.data[a][c];return this.data[a].splice(c,1),d.timeout&&clearTimeout(d.timeout),this.data[a].length===0&&delete this.data[a],this.onRemove(d.value),this.order.splice(this.order.indexOf(a),1),this}setMaxSize(t){for(this.max=t;this.order.length>this.max;){const s=this._getAndRemoveByKey(this.order[0]);s&&this.onRemove(s)}return this}filter(t){const s=[];for(const a in this.data)for(const c of this.data[a])t(c.value)||s.push(c);for(const a of s)this.remove(a.value.tileID,a)}}class he{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(t,s,a){const c=String(s);if(this.stateChanges[t]=this.stateChanges[t]||{},this.stateChanges[t][c]=this.stateChanges[t][c]||{},l.e(this.stateChanges[t][c],a),this.deletedStates[t]===null){this.deletedStates[t]={};for(const d in this.state[t])d!==c&&(this.deletedStates[t][d]=null)}else if(this.deletedStates[t]&&this.deletedStates[t][c]===null){this.deletedStates[t][c]={};for(const d in this.state[t][c])a[d]||(this.deletedStates[t][c][d]=null)}else for(const d in a)this.deletedStates[t]&&this.deletedStates[t][c]&&this.deletedStates[t][c][d]===null&&delete this.deletedStates[t][c][d]}removeFeatureState(t,s,a){if(this.deletedStates[t]===null)return;const c=String(s);if(this.deletedStates[t]=this.deletedStates[t]||{},a&&s!==void 0)this.deletedStates[t][c]!==null&&(this.deletedStates[t][c]=this.deletedStates[t][c]||{},this.deletedStates[t][c][a]=null);else if(s!==void 0)if(this.stateChanges[t]&&this.stateChanges[t][c])for(a in this.deletedStates[t][c]={},this.stateChanges[t][c])this.deletedStates[t][c][a]=null;else this.deletedStates[t][c]=null;else this.deletedStates[t]=null}getState(t,s){const a=String(s),c=l.e({},(this.state[t]||{})[a],(this.stateChanges[t]||{})[a]);if(this.deletedStates[t]===null)return{};if(this.deletedStates[t]){const d=this.deletedStates[t][s];if(d===null)return{};for(const m in d)delete c[m]}return c}initializeTileState(t,s){t.setFeatureState(this.state,s)}coalesceChanges(t,s){const a={};for(const c in this.stateChanges){this.state[c]=this.state[c]||{};const d={};for(const m in this.stateChanges[c])this.state[c][m]||(this.state[c][m]={}),l.e(this.state[c][m],this.stateChanges[c][m]),d[m]=this.state[c][m];a[c]=d}for(const c in this.deletedStates){this.state[c]=this.state[c]||{};const d={};if(this.deletedStates[c]===null)for(const m in this.state[c])d[m]={},this.state[c][m]={};else for(const m in this.deletedStates[c]){if(this.deletedStates[c][m]===null)this.state[c][m]={};else for(const _ of Object.keys(this.deletedStates[c][m]))delete this.state[c][m][_];d[m]=this.state[c][m]}a[c]=a[c]||{},l.e(a[c],d)}if(this.stateChanges={},this.deletedStates={},Object.keys(a).length!==0)for(const c in t)t[c].setFeatureState(a,s)}}class Zi extends l.E{constructor(t,s,a){super(),this.id=t,this.dispatcher=a,this.on("data",c=>{c.dataType==="source"&&c.sourceDataType==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&c.dataType==="source"&&c.sourceDataType==="content"&&(this.reload(),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}),this.on("dataloading",()=>{this._sourceErrored=!1}),this.on("error",()=>{this._sourceErrored=this._source.loaded()}),this._source=((c,d,m,_)=>{const y=new(Nr(d.type))(c,d,m,_);if(y.id!==c)throw new Error(`Expected Source id to be ${c} instead of ${y.id}`);return y})(t,s,a,this),this._tiles={},this._cache=new vs(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new he,this._didEmitContent=!1,this._updated=!1}onAdd(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._maxTileCacheZoomLevels=t?t._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(t)}onRemove(t){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(t)}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;if(!(this.used===void 0&&this.usedForTerrain===void 0||this.used||this.usedForTerrain))return!0;if(!this._updated)return!1;for(const t in this._tiles){const s=this._tiles[t];if(s.state!=="loaded"&&s.state!=="errored")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(t,s){return this._source.loadTile(t,s)}_unloadTile(t){if(this._source.unloadTile)return this._source.unloadTile(t,()=>{})}_abortTile(t){this._source.abortTile&&this._source.abortTile(t,()=>{}),this._source.fire(new l.k("dataabort",{tile:t,coord:t.tileID,dataType:"source"}))}serialize(){return this._source.serialize()}prepare(t){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const s in this._tiles){const a=this._tiles[s];a.upload(t),a.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map(t=>t.tileID).sort(pr).map(t=>t.key)}getRenderableIds(t){const s=[];for(const a in this._tiles)this._isIdRenderable(a,t)&&s.push(this._tiles[a]);return t?s.sort((a,c)=>{const d=a.tileID,m=c.tileID,_=new l.P(d.canonical.x,d.canonical.y)._rotate(this.transform.angle),y=new l.P(m.canonical.x,m.canonical.y)._rotate(this.transform.angle);return d.overscaledZ-m.overscaledZ||y.y-_.y||y.x-_.x}).map(a=>a.tileID.key):s.map(a=>a.tileID).sort(pr).map(a=>a.key)}hasRenderableParent(t){const s=this.findLoadedParent(t,0);return!!s&&this._isIdRenderable(s.tileID.key)}_isIdRenderable(t,s){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]&&(s||!this._tiles[t].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const t in this._tiles)this._tiles[t].state!=="errored"&&this._reloadTile(t,"reloading")}}_reloadTile(t,s){const a=this._tiles[t];a&&(a.state!=="loading"&&(a.state=s),this._loadTile(a,this._tileLoaded.bind(this,a,t,s)))}_tileLoaded(t,s,a,c){if(c)return t.state="errored",void(c.status!==404?this._source.fire(new l.j(c,{tile:t})):this.update(this.transform,this.terrain));t.timeAdded=l.h.now(),a==="expired"&&(t.refreshedUponExpiration=!0),this._setTileReloadTimer(s,t),this.getSource().type==="raster-dem"&&t.dem&&this._backfillDEM(t),this._state.initializeTileState(t,this.map?this.map.painter:null),t.aborted||this._source.fire(new l.k("data",{dataType:"source",tile:t,coord:t.tileID}))}_backfillDEM(t){const s=this.getRenderableIds();for(let c=0;c