/* Maps api created at 2GIS. Build on Leaflet. (c) 2013-2016, 2GIS */ !function(){function t(e,i,n){function o(s,a){if(!i[s]){if(!e[s]){var l="function"==typeof require&&require;if(!a&&l)return l(s,!0);if(r)return r(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=i[s]={exports:{}};e[s][0].call(c.exports,function(t){var i=e[s][1][t];return o(i||t)},c,c.exports,t,e,i,n)}return i[s].exports}for(var r="function"==typeof require&&require,s=0;s>>0,r=!1;for(1i;++i)this.hasOwnProperty(i)&&(r?n=t(n,this[i],i,this):(n=this[i],r=!0));if(!r)throw new TypeError("Reduce of empty array with no initial value");return n}),Array.prototype.forEach||(Array.prototype.forEach=function(t,e){"use strict";var i,n;if(null==this)throw new TypeError("this is null or not defined");var o,r=Object(this),s=r.length>>>0;if("[object Function]"!=={}.toString.call(t))throw new TypeError(t+" is not a function");for(arguments.length>=2&&(i=e),n=0;n>>0;if("function"!=typeof t)throw new TypeError;for(var n=arguments.length>=2?arguments[1]:void 0,o=0;o>>0;if("function"!=typeof t)throw new TypeError;for(var n=new Array(i),o=arguments.length>=2?arguments[1]:void 0,r=0;r>>0;if("function"!=typeof t)throw new TypeError;for(var n=[],o=arguments.length>=2?arguments[1]:void 0,r=0;r>>0;for(e=+e||0,Math.abs(e)===1/0&&(e=0),e<0&&(e+=i,e<0&&(e=0));e1){for(var n=this._map.getCenter(),o=e[0],r=1;rn.distanceTo(s.defaultPos)&&(o=s)}e=[o]}}var a=e[0]||null;if(this._project!==a){var l=this;null!==this._project&&(this._project=null,setTimeout(function(){l._map.fire("projectleave")},1)),a&&(this._project=a,setTimeout(function(){l._map.fire("projectchange",{getProject:l.getProject.bind(l)})},1))}},_testProjectIntersects:function(t,e){return e.latLngBounds.intersects(t)},_testProjectContains:function(t,e){return DG.PolyUtil.inside([t.lng,t.lat],e.bound)},_centerInProject:function(t,e){return this.isProjectHere(this._map.getCenter(),t,e)},_zoomInProject:function(t){return this._map.getZoom()>=t.minZoom}}),DG.Map.mergeOptions({projectDetector:!0}),DG.Map.addInitHook("addHandler","projectDetector",DG.ProjectDetector),DG.Metric=function(){},DG.Metric.Segments=function(){this.length=0},DG.Metric.Segments.prototype={push:function(t){return this[this.length]=this.length>0?this[this.length-1]+t:t,this.length+=1,this},getLength:function(){return this[this.length-1]},getReverse:function(){var t=new DG.Metric.Segments,e=this.length-1;if(e<0)return t;for(;e--;)t.push(this[e+1]-this[e]);return t.push(this[0])},getIndex:function(t){var e=this.length-1;if(e<0)return e;for(;e--&&!(this[e]<=t););return e+1},getSegRatio:function(t){var e=this.getIndex(t),i=e>0?this[e-1]:0;return(t-i)/(this[e]-i)},getSegLength:function(t){var e=this.getIndex(t),i=e>0?this[e-1]:0;return t-i}},DG.VertexTransform=DG.Class.extend({initialize:function(t){this._vertices=t,this._scale=null,this._angle=null,this._trans=null,this._matrix=null,this.load()},load:function(){return this.vertices=this._vertices.map(function(t){return t.clone()}),this.vertices.clone=DG.VertexTransform.clone,this},save:function(){return this._vertices=this.vertices.map(function(t){return t.clone()}),this},setScale:function(t){return this._scale=t,this},getScale:function(){return this._scale},setAngle:function(t){return this._angle=t,this},getAngle:function(){return this._angle},setTranslation:function(t){return this._trans=t,this},getTranslation:function(){return this._trans},setMatrix:function(t){return this._matrix=t,this},getMatrix:function(){return this._matrix},scale:function(t){var e=this.vertices,i=e.length;for(t=t||this._scale||1;i--;)e[i].x*=t,e[i].y*=t;return this},unScale:function(t){return t=t||this._scale||1,this.scale(1/t)},rotate:function(t){for(var e,i,n=t?t.cos:this._angle?this._angle.cos:1,o=t?t.sin:this._angle?this._angle.sin:0,r=this.vertices,s=r.length;s--;)e=r[s].x,i=r[s].y,r[s].x=e*n-i*o,r[s].y=e*o+i*n;return this},unRotate:function(t){var e=t?t.cos:this._angle?this._angle.cos:1,i=t?t.sin:this._angle?this._angle.sin:0;return this.rotate({cos:e,sin:-i})},translate:function(t){for(var e=t?t.x:this._trans?this._trans.x:0,i=t?t.y:this._trans?this._trans.y:0,n=this.vertices,o=n.length;o--;)n[o].x+=e,n[o].y+=i;return this},unTranslate:function(t){var e=t?t.x:this._trans?this._trans.x:0,i=t?t.y:this._trans?this._trans.y:0;return this.translate({x:-e,y:-i})},transform:function(t){var e,i,n,o,r,s,a,l,u=this.vertices,c=u.length;for(t?(e=t[0],i=t[1],r=t[2],n=t[3],o=t[4],s=t[5]):this._matrix?(e=this._matrix[0],i=this._matrix[1],r=this._matrix[2],n=this._matrix[3],o=this._matrix[4],s=this._matrix[5]):(e=1,i=0,r=0,n=0,o=1,s=0);c--;)a=u[c].x,l=u[c].y,u[c].x=a*e+l*i+r,u[c].y=a*n+l*o+s;return this},statics:{scale:function(t,e){var i,n,o=t.vertices,r=[];e=e||1;for(var s=0;s0?{cos:t/n,sin:e/n}:{cos:1,sin:0}):(r=t.x,s=t.y,a=e.x,l=e.y,i&&(r-=i.x,s-=i.y,a-=i.x,l-=i.y),o=Math.sqrt(r*r+s*s)*Math.sqrt(a*a+l*l),{cos:(r*a+s*l)/o,sin:(r*l-a*s)/o})},getAnglesSum:function(t,e){return{cos:t.cos*e.cos-t.sin*e.sin,sin:t.sin*e.cos+t.cos*e.sin}},getAnglesDif:function(t,e){return{cos:t.cos*e.cos+t.sin*e.sin,sin:t.sin*e.cos-t.cos*e.sin}}}}),DG.ArrowPathTransform=DG.VertexTransform.extend({initialize:function(t){this._lengths=new DG.Metric.Segments,this._vertices=[[],[]],this._drawings=[[],[]],this._setPath(t),this.subPath(1)},load:function(){return this.subPath(1)},save:function(){return this},_setPath:function(t){var e,i,n,o,r,s,a,l=DG.ArrowPathTransform.transform,u=this._vertices,c=this._drawings,h=DG.Point,d=t.width,_=[[],[],[]],p=[];for(u.push(t.vertices),u[0].push(new DG.Point(t.offset,(+d))),u[1].push(new DG.Point(t.offset,(-d))),s=DG.ArrowPathTransform.getAngles(t),r=-t.offset,e=0;e0?(u[0].push(new h(i+n,(+d))),c[0].push("L"),_[2].push(1),_[1].push(u[1].length),u[1].push(new h(i+n,(-d))),u[1].push(new h(i+n-o,(-d))),l(u,s[e],{x:i,y:0}),u[1].push(new h(0-n+o,(-d))),u[1].push(new h(0-n,(-d))),c[1].push("L","C"),p.push(Math.abs(i+n)-r),r=+n):(u[1].push(new h(i-n,(-d))),c[1].push("L"),_[2].push(0),_[0].push(u[0].length),u[0].push(new h(i-n,(+d))),u[0].push(new h(i-n+o,(+d))),l(u,s[e],{x:i,y:0}),u[0].push(new h(0+n-o,(+d))),u[0].push(new h(0+n,(+d))),c[0].push("L","C"),p.push(Math.abs(i-n)-r),r=-n);n=t.vertices[e+1].x,o=4*d/3,u[0].push(new h(n,(+d))),u[1].push(new h(n,(-d))),u[0].push(new h(n-o,(+d))),u[1].push(new h(n-o,(-d))),c[0].push("L"),c[1].push("L"),p.push(Math.abs(n)-r),u[1].reverse(),c[1].reverse(),a=DG.VertexTransform.getAnglesSum(s.fullAngle,t.getAngle()),l(u,a,u.pop()[0]),n=u[0].length,o=u[1].length,this._arcs=_[2].map(function(t){return r=_[t].shift(),t>0?new DG.ArcBezier(u[1].slice(o-r-4,o-r)):new DG.ArcBezier(u[0].slice(r,r+4).reverse())}).reverse(),this._lengths.push(p.pop()),p.reverse().forEach(function(t,e){this._lengths.push(this._arcs[e].getLength()).push(t)},this),this[0]={vertices:[u[0][n-2],u[0][n-1],u[1][0],u[1][1]],drawings:["M","C"]},this[1]={vertices:u[0].concat(u[1]),drawings:["M"].concat(c[0],"C",c[1])}},_setAngleAndDisplacement:function(t,e){this.angle=DG.VertexTransform.getAngle({x:t.x-e.x,y:t.y-e.y},{x:0,y:1}),this.displ=e.clone()},subPath:function(t){if(t=t>1?1:t,0===t||1===t)return this.vertices=this[t].vertices.map(function(t){return t.clone()}),this.drawings=this[t].drawings,this._setAngleAndDisplacement(this.vertices[0],this.vertices[this.vertices.length-1]),this;for(var e,i,n=DG.VertexTransform.getScaled,o=this._vertices,r=this._drawings,s=this._lengths,a=s.getLength()*t,l=s.getIndex(a),u=s.getSegRatio(a),c=o[0].length-2,h=1,d=r[0].length-1,_=0,p=0,m=0;m++0?s:0), t.vertices.length<3&&r>-10&&(t.offset+=2.5),this._vertices=this.load().unTranslate(i).vertices},subShape:function(t){return this.load().unRotate(t.angle).translate(t.displ),this}}),DG.ComplexPath=DG.Path.extend({options:{fill:!0,fillOpacity:1,interactive:!1},initialize:function(t){DG.setOptions(this,t),this._empty=[],this._pxEmpty=DG.bounds(DG.point(0,0),DG.point(0,0)),this._pxBounds=this._pxEmpty,this._vertices=[this._empty],this._drawings=[this._empty]},getEvents:function(){return{}},_project:function(){var t,e,i=this.options;this._map&&(t=this._map.getZoom(),i.visibility.isShown&&i.transform[t]?(e=2.2-.2*(19-t),i.weight!==e&&this.setStyle({weight:+e.toFixed(2)}),this._vertices[0]=i.transform[t].vertices,this._drawings[0]=i.transform[t].drawings,this._pxBounds=i.transform[t]._pxBounds):(this._vertices[0]=this._empty,this._drawings[0]=this._empty,this._pxBounds=this._pxEmpty))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateComplexPath(this)}}),DG.extend(L.Canvas.prototype,{_updateComplexPath:function(t,e){var i,n,o,r,s,a,l,u,c,h,d,_=t._drawings,p=t._vertices,m=this._ctx;for(this._drawnLayers[t._leaflet_id]=t,m.beginPath(),i=0;i2?(o=i*e,r=i*t*3,s=e*n*3,a=t*n):(l=[l[0],l[1],l[2],{x:0,y:0}],o=i,r=e*t*2,s=n,a=0),new DG.Point(o*l[0].x+r*l[1].x+s*l[2].x+a*l[3].x,o*l[0].y+r*l[1].y+s*l[2].y+a*l[3].y))},derivative:function(t){var e,i,n,o=this.dpoints[0],r=1-t;return this.order>2?(e=r*r,i=r*t*2,n=t*t):(o=[o[0],o[1],{x:0,y:0}],e=r,i=t,n=0),new DG.Point(e*o[0].x+i*o[1].x+n*o[2].x,e*o[0].y+i*o[1].y+n*o[2].y)},getLength:function(){for(var t,e,i,n=DG.Bezier.WEIGHT,o=DG.Bezier.ABSCISSA,r=.5,s=0,a=0;a2&&(i=e*t,r=o*n,a=e*n*3,l=t*o*3,u[3]=new DG.Point(i*c[3].x-a*c[2].x+l*c[1].x-r*c[0].x,i*c[3].y-a*c[2].y+l*c[1].y-r*c[0].y)),new DG.Bezier(u))},getCurveAfter:function(t){var e,i,n,o,r,s,a,l,u,c=this.points,h=this.order;return 1===t?this.clone():(u=[],e=t*t,n=t-1,o=n*n,u[h]=new DG.Point(c[h].x,c[h].y),u[--h]=new DG.Point(t*c[h+1].x-n*c[h].x,t*c[h+1].y-n*c[h].y),s=t*n*2,u[--h]=new DG.Point(e*c[h+2].x-s*c[h+1].x+o*c[h].x,e*c[h+2].y-s*c[h+1].y+o*c[h].y),this.order>2&&(i=e*t,r=o*n,a=e*n*3,l=t*o*3,u[--h]=new DG.Point(i*c[h+3].x-a*c[h+2].x+l*c[h+1].x-r*c[h].x,i*c[h+3].y-a*c[h+2].y+l*c[h+1].y-r*c[h].y)),new DG.Bezier(u))},_getDerivatives:function(){var t,e,i,n,o=this.points,r=[];for(t=o.length,e=t-1;t>1;t--,e--){for(n=[],i=0;i2?this._setLUT3(t):this._setLUT2(t)),this._lut},_setLUT2:function(t){var e,i,n,o,r,s=this._lut=[],a=this.points;s.push({x:a[0].x,y:a[0].y,l:0});for(var l=1;l=1)return 1;for(;;)if(e=o+(n-o>>1),t=o[r].l)return 1;for(;;)if(e=s+(r-s>>1),t2?i.animation=this._animations.path:(i.animation=this._animations.bounce,i.distance=!0)),this.addLayer(DG.entrance.arrow(i))},this)},_animate:function(){this._isShown&&(this._animations.bounce.start(),this._animations.path.start())},fitBounds:function(){var t,e=this._map,i=this.getBounds();return e.getBounds().contains(i)&&this._isAllowedZoom()||(t=this._getFitZoom(),e.projectDetector.getProject()||e.once("moveend",function(){e.setZoom(this._getFitZoom())},this),e.setView(i.getCenter(),t,{animate:!0})),this},_getFitZoom:function(){var t=this._map.projectDetector.getProject();return t?t.maxZoom:DG.Entrance.SHOW_FROM_ZOOM},_isAllowedZoom:function(){return this._map.getZoom()>=DG.Entrance.SHOW_FROM_ZOOM},_removeEntrance:function(t){(t.layer instanceof DG.Popup||t.layer instanceof DG.Entrance&&t.layer!==this)&&this.remove()}}),DG.entrance=function(t){return new DG.Entrance(t)},DG.Entrance.SHOW_FROM_ZOOM=16,DG.Entrance.PATH_ANIMATION={animation:{"function":DG.Animation.EASE_IN_OUT,duration:750}},DG.Entrance.BOUNCE_ANIMATION={animation:[{"function":DG.Animation.EASE_IN_OUT,duration:250,frames:{distance:{from:0,to:.6}}},{"function":DG.Animation.EASE_IN,duration:135,frames:{distance:{from:.6,to:0}}},{"function":DG.Animation.EASE_OUT,duration:135,frames:{distance:{from:0,to:.16}}},{"function":DG.Animation.EASE_IN,duration:90,frames:{distance:{from:.16,to:0}}},{"function":DG.Animation.EASE_OUT,duration:90,frames:{distance:{from:0,to:.06}}},{"function":DG.Animation.EASE_IN,duration:50,frames:{distance:{from:.06,to:0}}}]},DG.Entrance.Arrow=DG.FeatureGroup.extend({initialize:function(t){DG.LayerGroup.prototype.initialize.call(this),DG.setOptions(this,t),this._progress=1,this._distance=0,this._visibility={isShown:!1},this._position=t.latlngs[t.latlngs.length-1],this._shape=this.options.shape||DG.Entrance.Arrow.SHAPE,this._apt={},this._att={}},beforeAdd:function(t){var e=this.options;!e.animation||t.options.preferCanvas||DG.Browser.ielt9?e.animation=null:e.animation.on("step",this._animation,this),this.projection(),this.addLayer(new DG.ComplexPath({lineCap:"butt",color:e.color,fillColor:e.fillColor,interactive:e.interactive,visibility:this._visibility,transform:this._apt})),this.addLayer(new DG.ComplexPath({lineJoin:"miter",color:e.color,fillColor:e.fillColor,interactive:e.interactive,visibility:this._visibility,transform:this._att}))},getEvents:function(){return{zoomend:this._project,moveend:this._update,viewreset:this._reset}},setVisibility:function(t){this._visibility.isShown!==t&&(this._visibility.isShown=t,t?this.options.animation||this._reset():this._reset())},getBounds:function(){return this.options.bounds},projection:function(){var t,e,i,n,o=this._map||this._mapToAdd,r=o?o.getZoom():0,s=this._shape.vertices[r],a=this._shape.drawings[r],l=this.options.latlngs;return r&&s&&a&&(this._att[r]||(e=DG.ArrowPathTransform.getTranslatedPath(o,l),t={vertices:s,drawings:a},this._att[r]=new DG.ArrowTipTransform(e,t),this._apt[r]=new DG.ArrowPathTransform(e)),i=o.latLngToLayerPoint(this._position),n=o.latLngToLayerPoint(l[l.length-2]),this._apt[r]._pxBounds||this._setBounds(i,n,this._apt[r],this._att[r]),this.options.distance&&(i=DG.VertexTransform.getScaled(i,n,this._distance)),this._apt[r].subPath(this._progress).translate(i),this._att[r].subShape(this._apt[r]).translate(i)),this},_animation:function(t){void 0!=t.distance?this._distance=t.distance:this._progress=t.progress,this._visibility.isShown&&(this._project(),this._update())},_project:function(){this.projection().invoke("_project")},_update:function(){this.invoke("_update")},_reset:function(){this._resetBounds(),this._project(),this._update()},_resetBounds:function(){var t;for(t in this._apt)this._apt[t]._pxBounds=null;for(t in this._att)this._att[t]._pxBounds=null},_setBounds:function(t,e,i,n){var o=i.subPath(1).translate(t).vertices,r=n.subShape(i).translate(t).vertices;i._pxBounds=new DG.Bounds(o),n._pxBounds=new DG.Bounds(r)}}),DG.entrance.arrow=function(t){return new DG.Entrance.Arrow(t)},DG.Entrance.Arrow.SHAPE={vertices:{16:[[-6.5,-1.8],[-6.0522,-1.8],[-7.0975,-5.2537],[-6.6619,-6.2565],[-6.598,-6.355],[-6.1757,-6.147],[.8371,-.3552],[.9275,-.1764],[.9275,.1764],[.8371,.3552],[-6.1757,6.147],[-6.598,6.355],[-6.6619,6.2565],[-7.0975,5.2537],[-6.0522,1.8],[-6.5,1.8]],17:[[-9,-2.4],[-7.889,-2.4],[-9.9245,-7.2548],[-9.3363,-8.6404],[-9.3448,-8.6448],[-8.8717,-8.3508],[1.0285,-.3552],[1.119,-.1764],[1.119,.1764],[1.0285,.3552],[-8.8717,8.3508],[-9.3448,8.6448],[-9.3363,8.6404],[-9.9245,7.2548],[-7.889,2.4],[-9,2.4]],18:[[-11.5,-3],[-10.0795,-3],[-12.4909,-9.3173],[-11.8402,-10.7654],[-11.5986,-10.7073],[-10.938,-10.2258],[1.1497,-.3552],[1.2402,-.1764],[1.2402,.1764],[1.1497,.3552],[-10.938,10.2258],[-11.5986,10.7073],[-11.8402,10.7654],[-12.4909,9.3173],[-10.0795,3],[-11.5,3]],19:[[-13,-3.6],[-11.66,-3.6],[-14.1696,-10.8351],[-13.5189,-12.2832],[-13.2773,-12.2251],[-12.6167,-11.7436],[1.3061,-.3552],[1.3966,-.1764],[1.3966,.1764],[1.3061,.3552],[-12.6167,11.7436],[-13.2773,12.2251],[-13.5189,12.2832],[-14.1696,10.8351],[-11.66,3.6],[-13,3.6]]},drawings:{16:["M","L","L","C","L","C","L","C","L","L"],17:["M","L","L","C","L","C","L","C","L","L"],18:["M","L","L","C","L","C","L","C","L","L"],19:["M","L","L","C","L","C","L","C","L","L"]}},function(t){for(var e in t)t[e]=t[e].map(function(t){return DG.point(t)})}(DG.Entrance.Arrow.SHAPE.vertices),DG.Label=DG.Layer.extend({options:{offset:new DG.Point(12,15),className:"dg-label",zIndexOffset:0,textDirection:"auto"},_typeOfString:Object.prototype.toString.call("s"),_defaultZIndex:100,initialize:function(t,e){DG.Util.setOptions(this,e),this._animated=DG.Browser.any3d,this._content=t},onAdd:function(t){this._map=t,this._el||this._initDOM(),this._visible=!0,this.setContent(this._content)._onViewReset(),t.on("viewreset",this._onViewReset,this).on("zoomanim",this._onZoomAnimation,this)},onRemove:function(t){t.off("viewreset",this._onViewReset,this).off("zoomanim",this._onZoomAnimation,this),this._visible=!1,this._el.removeChild(this._container),DG.Util.falseFn(this._container.offsetWidth),this._container=null,t.getPanes().tooltipPane.removeChild(this._el),this._el=null},_initDOM:function(){this._el=DG.DomUtil.create("div",this.options.className+" leaflet-zoom-"+(this._animated?"animated":"hide"),this._map.getPanes().tooltipPane),this._el.style.zIndex=this._defaultZIndex+this.options.zIndexOffset,this._container=DG.DomUtil.create("div",this.options.className+"__content",this._el),this._container.setAttribute("dir",this.options.textDirection),DG.DomEvent.disableClickPropagation(this._el).on(this._container,"mousewheel",DG.DomEvent.stopPropagation).on(this._container,"contextmenu",DG.DomEvent.stopPropagation)},_onViewReset:function(){this._visible&&this._latlng&&DG.DomUtil.setPosition(this._el,this._map.latLngToLayerPoint(this._latlng).add(this.options.offset),DG.Browser.ie)},_onZoomAnimation:function(t){this._latlng&&DG.DomUtil.setPosition(this._el,this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).add(this.options.offset))},setOffset:function(t){return t instanceof DG.Point&&(this.options.offset=t,this._onViewReset()),this},setZIndexOffset:function(t){return isNaN(+t)||(this.options.zIndexOffset=+t,this._visible&&(this._el.style.zIndex=this._defaultZIndex+this.options.zIndexOffset)),this},setContent:function(t){return Object.prototype.toString.call(t)!==this._typeOfString?this:(this._content=t,this._visible&&(this._container.innerHTML=t),this)},setPosition:function(t){return t instanceof DG.LatLng?(this._latlng=t,this._onViewReset(),this):this}}),DG.label=function(t,e){return new DG.Label(t,e)},DG.Marker.include({bindLabel:function(t,e){return this._label?(this._label.setContent(t),e&&(this.options.offset!==e.offset&&this._label.setOffset(this.options.offset=e.offset),this.options["static"]!==e["static"]&&this.unbindLabel().bindLabel(t,e))):(e=DG.extend({offset:new DG.Point(5,5)},e),this._label=DG.label(t,e),this.once("remove",this._onMarkerRemove),e["static"]?this.showLabel():this.on("mouseover",this._mouseOverLabel).on("mouseout",this._mouseOutLabel).on("dragstart",this._dragStartLabel).on("dragend",this._dragEndLabel),"undefined"!=typeof this._map?this._updateLabelZIndex():this.once("add",this._updateLabelZIndex)),this},unbindLabel:function(){return this._label&&(this.hideLabel().off("remove",this.unbindLabel).off("mouseover",this._mouseOverLabel).off("mouseout",this._mouseOutLabel).off("dragstart",this._dragStartLabel).off("dragend",this._dragEndLabel).off("move",this._updatePosition).off("add",this._updateLabelZIndex),this._label=null),this},_onMarkerRemove:function(){if(this._label){var t=this._label._content;this.once("add",function(){this._label||this.bindLabel(t)}),this.unbindLabel()}},getLabel:function(){return this._label?this._label:null},_originalUpdateZIndex:DG.Marker.prototype._updateZIndex,_updateZIndex:function(t){return this._zIndex||(this._zIndex=0),this._originalUpdateZIndex(t),this._updateLabelZIndex(),this},_updateLabelZIndex:function(){return this._label&&this._icon&&this._label.setZIndexOffset(this._icon.style.zIndex),this},showLabel:function(){return this._label&&this.on("move",this._updatePosition)._map.addLayer(this._label.setPosition(this.getLatLng())),this},hideLabel:function(){return this._label&&this.off("move",this._updatePosition)._map.removeLayer(this._label),this},_updatePosition:function(){this._label.setPosition(this.getLatLng())},_dragStartLabel:function(){this._label.isMarkerDragging=!0,this.hideLabel()},_dragEndLabel:function(){this._label.isMarkerDragging=!1,this._label.isMouseOverMarker&&this.showLabel()},_mouseOverLabel:function(){this._label.isMouseOverMarker=!0,this._label.isMarkerDragging||this.showLabel()},_mouseOutLabel:function(){this._label.isMouseOverMarker=!1,this.hideLabel()}}),DG.Marker.addInitHook(function(){"undefined"!=typeof this.options.label&&this.bindLabel(this.options.label)}),DG.Path.include({bindLabel:function(t,e){return this._label?(this._label.setContent(t),this._label.options.offset!==e.offset&&this._label.setOffset(e.offset)):(this._label=DG.label(t,e),this.on(this._labelEvents,this)),this},unbindLabel:function(){return this._label&&(this.off(this._labelEvents,this),this._map.removeLayer(this._label),this._label=null),this},getLabel:function(){return this._label?this._label:null},_labelEvents:{mouseover:function(t){this._map.addLayer(this._label.setPosition(t.latlng)),DG.DomEvent.stop(t)},mousemove:function(t){this._label.setPosition(t.latlng),DG.DomEvent.stop(t)},mouseout:function(t){this._map.removeLayer(this._label),DG.DomEvent.stop(t)},remove:function(){this._map.removeLayer(this._label)}}}),DG.Path.addInitHook(function(){"undefined"!=typeof this.options.label&&this.bindLabel(this.options.label)}),DG.Entrance.include({bindLabel:function(t,e){return this._label?(this._label.setContent(t),this._label.options.offset!==e.offset&&this._label.setOffset(e.offset)):(this._label=DG.label(t,e),this.on(this._labelEvents,this)),this},unbindLabel:function(){return this._label&&(this.off(this._labelEvents,this),this._map.removeLayer(this._label),this._label=null),this},getLabel:function(){return this._label?this._label:null},_labelEvents:{mouseover:function(t){this._map.addLayer(this._label.setPosition(t.latlng)),DG.DomEvent.stop(t)},mousemove:function(t){this._label.setPosition(t.latlng),DG.DomEvent.stop(t)},mouseout:function(){this._label.remove()},remove:function(){this._label.remove()}}}),DG.Entrance.addInitHook(function(){"undefined"!=typeof this.options.label&&this.bindLabel(this.options.label)}),DG.configTheme=DG.configTheme||{},DG.configTheme.balloonOptions={offset:{x:1,y:-43}},_dereq_("../../../vendors/baron"),function(){var t=DG.configTheme.balloonOptions.offset.x,e=DG.configTheme.balloonOptions.offset.y,i=DG.Popup.prototype.initialize,n=DG.Popup.prototype._initLayout,o=DG.Popup.prototype.onAdd,r=baron.noConflict(),s=function(t){this[0]=t,this.length=1};s.prototype={setAttribute:function(t,e){return this[0].setAttribute(t,e),this},getAttribute:function(t){return this[0].getAttribute(t)},removeAttribute:function(t){return this[0].removeAttribute(t),this},css:function(t,e){return e?(this[0].style[t]=e,this):DG.DomUtil.getStyle(this[0],t)}},DG.Popup.prototype.options.offset=DG.point(t,e),DG.Popup.mergeOptions({border:16,mapControlsWidth:60,textDirection:"auto"}),DG.Popup.include({_headerContent:null,_footerContent:null,_scroller:null,_scrollerBar:null,_barWrapper:null,_baron:null,_isBaronExist:!1,_popupShowClass:"leaflet-popup_show_true",_popupHideClass:"leaflet-popup_show_false",_popupTipClass:"leaflet-popup-tip-container",_tipSVGPath:"M0 0c12.643 0 28 7.115 28 44h2c0-36.885 15.358-44 28-44h-58z",_isAutoPanPaddingUserDefined:!1,initialize:function(t,e){this._popupStructure={},this._isAutoPanPaddingUserDefined=t&&t.hasOwnProperty("autoPanPadding"),i.call(this,t,e)},onAdd:function(t){t.on({entranceshow:this._closePopup,resize:this.resize},this),o.call(this,t),this._animateOpening(),void 0!==typeof ga&&ga(DG.config.gaName+".send","event","Popup","Use")},onRemove:function(t){this._animateClosing(),t.off({entranceshow:this._closePopup,resize:this.resize},this),DG.DomUtil.TRANSITION?this._removeTimeout=setTimeout(L.bind(L.DomUtil.remove,L.DomUtil,this._container),200):L.DomUtil.remove(this._container),t.fire("popupclose",{popup:this}),this._source&&this._source.fire("popupclose",{popup:this},!0)},setContent:function(t){return this._isNode(t)||"object"!=typeof t?this._bodyContent=t:Object.keys(t).forEach(function(e){this["_"+e+"Content"]=t[e]},this),this.update(),this},setHeaderContent:function(t){return this._headerContent=t,this.update(),this},setFooterContent:function(t){return this._footerContent=t,this.update(),this},getContent:function(){return this._bodyContent},getHeaderContent:function(){return this._headerContent},getFooterContent:function(){return this._footerContent},clear:function(){return Object.keys(this._popupStructure).forEach(this._clearElement,this),this._isBaronExist=!1,this},clearHeader:function(){return this._clearElement("header")},clearFooter:function(){return this._clearElement("footer")},findElement:function(t){return this._contentNode.querySelector(t)},_animateOpening:function(){DG.DomUtil.addClass(this._innerContainer,this._popupShowClass),DG.DomUtil.removeClass(this._innerContainer,this._popupHideClass)},_animateClosing:function(){DG.DomUtil.addClass(this._innerContainer,this._popupHideClass),DG.DomUtil.removeClass(this._innerContainer,this._popupShowClass)},_closePopup:function(){this._map.closePopup(this)},_isNode:function(t){return!!t.nodeName},_onCloseButtonClick:function(t){this._map&&this._map.closePopup(this),L.DomEvent.stop(t)},_close:function(){this._map&&(DG.Browser.mobile&&this._map.geoclicker&&(this.options.closeOnClick||this._map.options.closePopupOnClick)&&(this._map.geoclicker.popupWasOpen=!0),this._map.closePopup(this))},_initLayout:function(){n.call(this),DG.DomEvent.on(this._contentNode,"wheel",function(t){var e;if(t.composedPath)e=t.composedPath();else{var i=t.target;for(e=[];i.parentNode;)e.push(i),i=i.parentNode}e.indexOf(this._scroller)!==-1&&e.indexOf(this._barWrapper)===-1||t.preventDefault()},this),this._innerContainer=DG.DomUtil.create("div","leaflet-popup-inner "+this._popupHideClass,this._container),DG.DomEvent.disableClickPropagation(this._innerContainer),this.options.closeButton&&this._innerContainer.appendChild(this._detachEl(this._closeButton)),this._innerContainer.appendChild(this._detachEl(this._wrapper));var t=this._detachEl(this._tipContainer);if(DG.Browser.svg){var e=DG.SVG.create("path"),i=this._popupTipClass+" "+this._popupTipClass+"_svg";e.setAttribute("d",this._tipSVGPath),t=DG.SVG.create("svg"),t.setAttribute("class",i),t.appendChild(e),DG.DomEvent.disableClickPropagation(e)}else DG.DomUtil.addClass(t,this._popupTipClass+"_image"),DG.DomEvent.disableClickPropagation(t);this._innerContainer.appendChild(t)},_clearElement:function(t){return this["_"+t+"Content"]=null,this._detachEl(this._popupStructure[t]),delete this._popupStructure[t],this},_updateScrollPosition:function(){this._baron&&this._baron.update()},resize:function(){var t=this._updateLayout();if(this._updatePosition(),t)if(this._isBaronExist){DG.DomUtil.removeClass(this._scroller,"dg-scroller_hidden_true"),DG.DomUtil.addClass(this._scroller,"dg-scroller");var e=!!this._isBaronExist&&this._scroller.scrollTop;e&&(this._scroller.scrollTop=e);var i=this.options.maxHeight-2*this.options.border-this._getDelta();this._scrollerWrapper.style.height=i+"px",this._updateScrollPosition()}else this._isContentHeightEnough()||(this._initBaronScroller(),this._initBaron());else this._isBaronExist&&(this._scrollerWrapper.style.height="",DG.DomUtil.removeClass(this._scroller,"dg-scroller"),DG.DomUtil.addClass(this._scroller,"dg-scroller_hidden_true"),DG.DomUtil.removeClass(this._scroller,"dg-scroller"),DG.DomEvent.off(this._scroller,"scroll",this._onScroll));this._adjustPan(),this._bindAdjustPanOnTransitionEnd()},_adjustPan:function(t){if(this._map){if(t){if("max-height"!==t.propertyName)return;DG.DomEvent.off(this._wrapper,DG.DomUtil.TRANSITION_END,this._adjustPan)}var e=this.options;if(e.autoPan){var i=this._map,n=this._container.offsetHeight,o=this._containerWidth,r=new L.Point(this._containerLeft,-n-this._containerBottom);this._zoomAnimated&&r._add(L.DomUtil.getPosition(this._container));var s=[e.autoPanPadding[0],e.autoPanPadding[1]];!this._isAutoPanPaddingUserDefined&&this._map._container.offsetWidth>=e.maxWidth+2*e.mapControlsWidth&&(s[0]=e.mapControlsWidth);var a=i.layerPointToContainerPoint(r),l=L.point(s),u=L.point(e.autoPanPaddingTopLeft||l),c=L.point(e.autoPanPaddingBottomRight||l),h=i.getSize(),d=0,_=0;0!==h.x&&0!==h.y&&(a.x+o+c.x>h.x&&(d=a.x+o-h.x+c.x),a.x-d-u.x<0&&(d=a.x-u.x),a.y+n+c.y>h.y&&(_=a.y+n-h.y+c.y),a.y-_-u.y<0&&(_=a.y-u.y),(d||_)&&i.fire("autopanstart").panBy([d,_]))}}},_bindAdjustPanOnTransitionEnd:function(){DG.DomUtil.TRANSITION?DG.DomEvent.on(this._wrapper,DG.DomUtil.TRANSITION_END,this._adjustPan,this):this._adjustPan()},_isContentHeightEnough:function(){var t=this.options;if(!t.maxHeight)return!0;var e=this._popupStructure.body?this._popupStructure.body.offsetHeight+this._getDelta():this._contentNode.offsetHeight;return e+=2*t.border,e<=t.maxHeight},_initBaronScroller:function(){var t=this._popupStructure.body.parentNode,e=this._scrollerWrapper=DG.DomUtil.create("div","dg-scroller__wrapper",t),i=this._scroller=DG.DomUtil.create("div","dg-scroller",e),n=this._barWrapper=DG.DomUtil.create("div","dg-scroller__bar-wrapper",i),o=this.options.maxHeight-2*this.options.border;this._scrollerBar=DG.DomUtil.create("div","dg-scroller__bar",n),i.appendChild(this._detachEl(this._popupStructure.body)),o-=this._getDelta(),e.style.height=Math.max(18,o)+"px",e.style.width=t.offsetWidth+5+"px",this._isBaronExist=!0,this._switchEvents()},_onScroll:function(t){this.fire("scroll",{originalEvent:t})},_onClick:function(t){t.target=t.target||t.srcElement,this._moving||this.fire("click",{originalEvent:t})},_onStart:function(t){if(this._moved=!1,!this._moving){var e=t.touches?t.touches[0]:t;this._startPoint=new DG.Point(e.clientX,e.clientY),this._toggleTouchEvents()}},_onEnd:function(t){this._toggleTouchEvents(!0),this._onClick(t),this._moving=!1},_onMove:function(t){if(t.touches&&t.touches.length>1)return void(this._moved=!0);var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=DG.point(e.clientX,e.clientY),n=Math.abs(i.subtract(this._startPoint).y);!n||n<10||(this._moving=this._moved=!0)},_initBaron:function(){var t=this._scrollerWrapper;this._baron=r({scroller:".dg-scroller",bar:".dg-scroller__bar",track:".dg-scroller__bar-wrapper",$:function(e){var i="[object String]"==={}.toString.call(e)?t.querySelector(e):e;return new s(i)},event:function(t,e,i,n){e.split(" ").forEach(function(e){DG.DomEvent[n||"on"](t,e,i)})}})},_initHeader:function(){this._popupStructure.header=DG.DomUtil.create("header","dg-popup__header",this._contentNode),this._popupStructure.header.setAttribute("dir",this.options.textDirection)},_initFooter:function(){this._popupStructure.footer=DG.DomUtil.create("footer","dg-popup__footer",this._contentNode),this._popupStructure.footer.setAttribute("dir",this.options.textDirection)},_initBodyContainer:function(){this._popupStructure.wrapper=DG.DomUtil.create("div","dg-popup__container-wrapper",this._contentNode),this._popupStructure.body=DG.DomUtil.create("div","dg-popup__container",this._popupStructure.wrapper), this._popupStructure.body.setAttribute("dir",this.options.textDirection)},update:function(){if(this._map){if(DG.Browser.ielt9||(this._container.style.visibility="hidden"),this._switchEvents(!0),this._clearNode(this._contentNode),this._isBaronExist=!1,this._headerContent&&this._initHeader(),this._bodyContent&&this._initBodyContainer(),this._footerContent&&this._initFooter(),this._updatePopupStructure(),this.resize(),DG.DomEvent.on(this._wrapper,"click",DG.DomEvent.stopPropagation),this._switchEvents(),DG.Browser.ielt9){var t=this._popupStructure.footer;t&&(t.className+=" ie8")}DG.Browser.ielt9||(this._container.style.visibility="")}},_getDelta:function(){var t=0,e=this._popupStructure;return e.header&&(t+=e.header.offsetHeight),e.footer&&(t+=e.footer.offsetHeight),t},_updateLayout:function(){var t,e=this.options,i=this._contentNode,n=this._wrapper,o=i.style,r=n.style,s="leaflet-popup-scrolled",a=!1;o.margin=e.border+"px",DG.DomUtil.removeClass(i,s),this._isContentHeightEnough()?r.maxHeight=i.offsetHeight+2*e.border+"px":(r.maxHeight=e.maxHeight+"px",DG.DomUtil.addClass(i,s),a=!0);var l=2*e.autoPanPadding[0];return e.sprawling?(t=e.maxWidth,t=Math.min(t,this._map._container.offsetWidth-l),t=Math.max(t,e.minWidth)):(r.width="",o.whiteSpace="nowrap",t=n.offsetWidth,o.whiteSpace="",t=Math.min(t,this._map._container.offsetWidth-l),t=Math.min(Math.max(t,e.minWidth),e.maxWidth)),r.width=t+"px",this._containerWidth=this._container.offsetWidth,a},_updatePopupStructure:function(){Object.keys(this._popupStructure).forEach(function(t){this._insertContent(this["_"+t+"Content"],this._popupStructure[t])},this),this.fire("contentupdate")},_insertContent:function(t,e){t&&e&&(t="function"==typeof t?t(this._source||this):t,"string"==typeof t?e.innerHTML=t:(this._clearNode(e),e.appendChild(t)))},_clearNode:function(t){for(;t.hasChildNodes();)t.removeChild(t.firstChild)},_detachEl:function(t){return t.parentNode&&t.parentNode.removeChild(t),t},_switchEvents:function(t){var e=t?"off":"on";DG.Browser.touch?DG.DomEvent[e](this._contentNode,"touchstart mousedown mousemove",this._onStart,this):DG.DomEvent[e](this._contentNode,"click",this._onClick,this),this._isBaronExist&&DG.DomEvent[e](this._scroller,"scroll",this._onScroll,this)},_toggleTouchEvents:function(t){var e=t?"off":"on";DG.DomEvent[e](this._contentNode,"touchmove",this._onMove,this),DG.DomEvent[e](this._contentNode,"touchend",this._onEnd,this)}})}(),DG.Map.include({_markerClass:"dg-customization__marker_type_mushroom",_markerShowClass:"dg-customization__marker_appear",_markerHideClass:"dg-customization__marker_disappear",_dgHideClass:"dg-popup_hidden_true",openPopup:function(t,e,i){if(!(t instanceof L.Popup)){var n=t;t=new L.Popup(i).setContent(n)}return e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,t._source&&t._source._icon&&(t._source._icon.className.indexOf(this._markerClass)!==-1?(DG.DomUtil.removeClass(t._source._icon,this._markerShowClass),DG.DomUtil.addClass(t._source._icon,this._markerHideClass)):(DG.DomUtil.addClass(t._source._icon,this._dgHideClass),t._source._shadow&&DG.DomUtil.addClass(t._source._shadow,this._dgHideClass))),this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&(t._source&&t._source._icon&&(t._source._icon.className.indexOf(this._markerClass)!==-1?(DG.DomUtil.removeClass(t._source._icon,this._markerHideClass),DG.DomUtil.addClass(t._source._icon,this._markerShowClass)):(DG.DomUtil.removeClass(t._source._icon,this._dgHideClass),t._source._shadow&&DG.DomUtil.removeClass(t._source._shadow,this._dgHideClass))),this.removeLayer(t)),this}}),DG.Dictionary={},DG.Dictionary.ru={pluralRules:function(t){return t%10===1&&t%100!==11?0:t%10>=2&&t%10<=4&&t%10%1===0&&(t%100<12||t%100>14)?1:t%10===0||t%10>=5&&t%10<=9&&t%10%1===0||t%100>=11&&t%100<=14&&t%100%1===0?2:void 0}},DG.Dictionary.en={pluralRules:function(t){return 1===t?0:1}},DG.Dictionary.it={pluralRules:function(t){return 1===t?0:1}},DG.Dictionary.cs={pluralRules:function(t){return 1===t?0:t>=2&&t<=4?1:2}},DG.Dictionary.es={pluralRules:function(t){return t>=2?1:0}},DG.Dictionary.ar={pluralRules:function(){return 0}},DG.Locale={t:function(t,e){var i,n,o,r=this._map.getLang(),s=!1;return"undefined"==typeof this.constructor.Dictionary[r]&&(r="ar"===r?"en":DG.config.defaultLang),n=this.constructor.Dictionary[r][t],(s="undefined"!=typeof n)?(i=s?n:t,void 0!==e&&(e=parseInt(e,10),e=isNaN(e)?0:e,o=this.constructor.Dictionary[r].pluralRules(e),i=n[o]),i=DG.Util.template(i,{n:e})):t}},DG.Map.include({setLang:function(t){t&&"[object String]"===Object.prototype.toString.call(t)&&(this.options.currentLang=t,this.fire("langchange",{lang:t}))},getLang:function(){if(!this.options.currentLang){var t=document.documentElement,e=t.lang||t.getAttributeNS&&t.getAttributeNS("http://www.w3.org/XML/1998/namespace","lang")||DG.config.defaultLang;this.options.currentLang=e}return this.options.currentLang}}),DG.RoundControl=DG.Control.extend({includes:DG.Mixin.Events,options:{position:"topright",iconClass:"default"},onAdd:function(t){var e=this._controlCLass="dg-control-round",i=this._controlIconCLass=this._controlCLass+"__icon",n=DG.DomUtil.create("div","");if(this._disable)return n;DG.DomUtil.addClass(n,e);var o=this._link=DG.DomUtil.create("a",i+" "+i+"_name_"+this.options.iconClass,n);return o.href="#",this._renderTranslation(),this._map=t,DG.DomEvent.on(n,"click",this._toggleControl,this).on(n,"dblclick",DG.DomEvent.stopPropagation).on(o,"mousedown",DG.DomEvent.stopPropagation),this.fireEvent("add"),n},onRemove:function(){this.fireEvent("remove"),DG.DomEvent.off(this._link,"click",this._toggleControl)},setState:function(t){return this._link&&this._container?(this._state&&(DG.DomUtil.removeClass(this._container,this._controlCLass+"_state_"+this._state),DG.DomUtil.removeClass(this._link,this._controlIconCLass+"_state_"+this._state),this._state=null),t&&(this._state=t,DG.DomUtil.addClass(this._container,this._controlCLass+"_state_"+this._state),DG.DomUtil.addClass(this._link,this._controlIconCLass+"_state_"+this._state)),this):this},_toggleControl:function(t){DG.DomEvent.stop(t),this.fireEvent("click")}}),DG.RoundControl.include(DG.Locale),DG.roundControl=function(t){return new DG.RoundControl(t)};var ie9=function(){var t=document.createElement("div"),e=t.getElementsByTagName("i");return t.innerHTML="",Boolean(e[0])}(),safari51=DG.Browser.safari&&navigator.userAgent.indexOf("Version/5.1")!==-1,wasPreviouslyDisabled=!1;try{wasPreviouslyDisabled="false"===localStorage.getItem("DGMuseum")}catch(err){}DG.Map.mergeOptions({museum:!wasPreviouslyDisabled&&(DG.Browser.ielt9||ie9||DG.Browser.opera12||safari51)}),DG.Map.Museum=DG.Handler.extend({statics:{Dictionary:{ar:{wearesorry:"لا نضمن لك تشغيل ثابت للتطبيق على متصفحك. حاول التحديث:"},cs:{wearesorry:"Nezaručujeme stabilní fungování aplikace ve Vašem prohlížeči. Zkuste provést aktualizaci:"},en:{wearesorry:"We do not guarantee stable operation of the application in your browser. Try updating:"},es:{wearesorry:"No garantizamos un funcionamiento estable de la aplicación en su buscador. Intente actualizarlo:"},it:{wearesorry:"Non garantiamo il funzionamento stabile dell'applicazione nel tuo browser. Prova ad aggiornare:"},ru:{wearesorry:"Мы не гарантируем стабильную работу приложения в вашем браузере. Попробуйте обновиться:"}}},includes:[DG.Locale],initialize:function(t){this._map=t,this._element=document.createElement("div"),this._element.className="dg-museum",this._element.innerHTML='',this._text=this._element.children[0],this._closeButton=document.createElement("span"),this._closeButton.className="dg-museum__close",this._element.appendChild(this._closeButton),this._renderTranslation()},addHooks:function(){this._map.getContainer().appendChild(this._element),this._map.on("langchange",this._renderTranslation,this),DG.DomEvent.on(this._closeButton,"click",this._onCloseButtonClick,this)},removeHooks:function(){this._map.getContainer().removeChild(this._element),this._map.off("langchange",this._renderTranslation,this),DG.DomEvent.off(this._closeButton,"click",this._onCloseButtonClick,this)},_onCloseButtonClick:function(t){DG.DomEvent.stop(t);try{localStorage.setItem("DGMuseum","false")}catch(e){}this.disable()},_renderTranslation:function(){var t=this._map.getLang();this._text.innerHTML=this.t("wearesorry"),this._element.setAttribute("dir","ar"===t?"rtl":"ltr")}}),DG.Map.addInitHook("addHandler","museum",DG.Map.Museum),DG.configTheme=DG.configTheme||{},DG.configTheme.markersData={iconSize:[22,34],className:"dg-customization__marker dg-customization__marker_type_mushroom",iconAnchor:[10,32]},DG.Map.mergeOptions({bounceAtZoomLimits:!1});var controlAddTo=DG.Control.prototype.addTo;DG.Control.include({addTo:function(t){return t.on("langchange",this._renderTranslation,this),controlAddTo.call(this,t)},_renderTranslation:function(){}}),DG.DivIcon.include({createIcon:function(t){var e=t&&"DIV"===t.tagName?t:document.createElement("div"),i=this.options;if(i.html instanceof Element?(DG.DomUtil.empty(e),e.appendChild(i.html)):e.innerHTML=i.html!==!1?i.html:"",i.bgPos){var n=toPoint(i.bgPos);e.style.backgroundPosition=-n.x+"px "+-n.y+"px"}return this._setIconStyles(e,"icon"),e}}),DG.Browser.safari51=DG.Browser.safari&&navigator.userAgent.indexOf("Version/5.1")!==-1;var msPointer=navigator.msPointerEnabled&&navigator.msMaxTouchPoints&&!window.PointerEvent,pointer=window.PointerEvent&&navigator.pointerEnabled&&navigator.maxTouchPoints||msPointer,documentTouch=window.DocumentTouch&&document instanceof window.DocumentTouch;DG.Browser.touchEnabled=pointer||"ontouchstart"in window||documentTouch,DG.Marker.prototype.options.icon=DG.divIcon(DG.configTheme.markersData);var utilSetOptions=DG.Util.setOptions;if(DG.setOptions=L.setOptions=DG.Util.setOptions=function(t,e){return e&&"undefined"!=typeof e.clickable&&(e.interactive=e.clickable),utilSetOptions.call(this,t,e)},DG.Layer.mergeOptions({nonBubblingEvents:["click","dblclick","mouseover","mouseout","contextmenu"]}),L.Canvas.include({_initContainer:function(){var t=this._container=document.createElement("canvas");L.DomEvent.on(t,"mousemove",this._onMouseMove,this).on(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this).on(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")}}),DG.Path){var pathInitialize=DG.Path.prototype.onAdd,loggedGeometryTypes={};DG.Path.include({onAdd:function(t){var e="Unknown";return DG.Rectangle&&this instanceof DG.Rectangle?e="Rectangle":DG.Circle&&this instanceof DG.Circle?e="Circle":DG.CircleMarker&&this instanceof DG.CircleMarker?e="CircleMarker":DG.Polygon&&this instanceof DG.Polygon?e="Polygon":DG.Polyline&&this instanceof DG.Polyline&&(e="Polyline"),loggedGeometryTypes[e]||(loggedGeometryTypes[e]=!0,void 0!==typeof ga&&ga(DG.config.gaName+".send","event","Geometry","Use",e)),pathInitialize.call(this,t)}})}var initMap=DG.Map.prototype.initialize,panBy=DG.Map.prototype.panBy,getBoundsZoom=DG.Map.prototype.getBoundsZoom,setMaxZoom=DG.Map.prototype.setMaxZoom;DG.Map.include({_tileLayersNumber:0,_mapMaxZoomCache:null,initialize:function(t,e){e=DG.extend({wheelPxPerZoomLevel:1e4},e),this.metaLayers=[],initMap.call(this,t,e),this.options.center&&void 0!==this.options.zoom&&this.setView(DG.latLng(this.options.center),this.options.zoom,{reset:!0}),this._lastMetalayer={layer:void 0,entity:void 0}},setView:function(t,e,i){if(this._restrictZoom(t,e),e=void 0===e?this._zoom:this._limitZoom(e),t=this._limitCenter(DG.latLng(t),e,this.options.maxBounds),i=i||{},i.animate&&(i.animate=this._testAnimation(t)),this._stop(),this._loaded&&!i.reset&&i!==!0){void 0!==i.animate&&(i.zoom=DG.extend({animate:i.animate,duration:i.duration},i.zoom),i.pan=DG.extend({animate:i.animate,duration:i.duration},i.pan));var n=this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,i.zoom):this._tryAnimatedPan(t,i.pan);if(n)return clearTimeout(this._sizeTimer),this}return this._resetView(t,e),this},panBy:function(t,e){var i=panBy.call(this,t,e),n=this._restrictZoom(this.getCenter());return this.getZoom()>n&&this.setZoom(n),i},getBoundsZoom:function(t,e,i){return t=DG.latLngBounds(t),this._restrictZoom(t),getBoundsZoom.call(this,t,e,i)},getTileLayersNumber:function(){return this._tileLayersNumber},setMaxZoom:function(t){return this._mapMaxZoomCache=null,setMaxZoom.call(this,t)},_testAnimation:function(t){if(this.projectDetector.enabled()){var e=this.projectDetector.getProject(),i=this.projectDetector.isProjectHere(t);if(e&&i)return e.code===i.code}return!0},_updateTileLayers:function(t){t.layer instanceof DG.TileLayer&&!t.layer._isDg&&("layeradd"===t.type?this._tileLayersNumber++:this._tileLayersNumber--)},_getNewBounds:function(t,e){if(t instanceof DG.LatLngBounds)return t;var i=this.project(t,e),n=this.getSize().divideBy(2),o=this.unproject(i.subtract(n),e),r=this.unproject(i.add(n),e);return DG.latLngBounds(o,r)},_restrictZoom:function(t,e){if(this._layers&&this.projectDetector.enabled()&&0===this._tileLayersNumber){var i=this.options,n=!!i.maxZoom,o=this.baseLayer,r=this._getNewBounds(t,e),s=this.projectDetector.isProjectHere(r);return n?(this._mapMaxZoomCache||(this.baseLayer.options.detectRetina&&DG.Browser.retina&&i.maxZoom>0&&i.maxZoom--,this._mapMaxZoomCache=i.maxZoom),i.maxZoom=this._mapMaxZoomCache&&s?this._mapMaxZoomCache:DG.config.projectLeaveMaxZoom,s&&(this._mapMaxZoomCache=i.maxZoom),i.maxZoom):(s?o.options.detectRetina&&DG.Browser.retina&&s.maxZoom>0?o.options.maxZoom=s.maxZoom-1:o.options.maxZoom=s.maxZoom:o.options.maxZoom=DG.config.projectLeaveMaxZoom,o.options.maxNativeZoom=o.options.maxZoom,this._updateZoomLevels(),o.options.maxZoom)}},_fireDOMEvent:function(t,e,i){if(13!==t.keyCode){if("click"===t.type){var n=L.Util.extend({},t);n.type="preclick",this._fireDOMEvent(n,n.type,i)}if(!t._stopped&&(i=(i||[]).concat(this._findEventTargets(t,e)),i.length)){var o=i[0];"contextmenu"===e&&o.listens(e,!0)&&L.DomEvent.preventDefault(t);var r={originalEvent:t,eventTargets:i,eventTargetsMapIndex:i.indexOf(this)};if("keypress"!==t.type){var s=o instanceof L.Marker;r.containerPoint=s?this.latLngToContainerPoint(o.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=s?o.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var a=0;a=0;n--){var o=this.metaLayers[n].getHoveredObject(t);if(o)return{layer:this.metaLayers[n],entity:o};if(i)return{layer:this.metaLayers[n],entity:void 0}}return{layer:void 0,entity:void 0}},_fireMetalayerEvent:function(t,e,i){if((e.entity||"click"===t)&&e.layer){var n=e.layer.mapEvents[t];n&&(i.entity=e.entity,n.call(e.layer,i))}}}),DG.Map.addInitHook(function(){this.on("layeradd layerremove",this._updateTileLayers)}),DG.Map.addInitHook(function(){0==this.options.dragging&&0==this.options.tap&&DG.DomUtil.addClass(this._container,"dg-dragging-false")}),DG.Map.addInitHook(function(){function t(){var t=this.getLang(),n=this.projectDetector&&this.projectDetector.getProject();"ru"!==t||n?this.baseLayer.options.errorTileUrl=e:this.baseLayer.options.errorTileUrl=i,""===u&&"ar"===t&&n&&"ae"===n.country_code?(u="ar",this.baseLayer.setUrl(s),this.baseLayer.setPreviewUrl&&this.baseLayer.setPreviewUrl(l)):"ar"!==u||"ar"===t&&n&&"ae"===n.country_code||(u="",this.baseLayer.setUrl(r),this.baseLayer.setPreviewUrl&&this.baseLayer.setPreviewUrl(a))}var e="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAQMAAABmvDolAAAAA1BMVEX28t5R0k5UAAAAH0lEQVR4Xu3AAQkAAADCMPunNsdhWxwAAAAAAAAAwAEhAAABg2UP5AAAAABJRU5ErkJggg==",i=DG.config.protocol+DG.config.baseUrl+"/img/nomap_ru.png",n=DG.Browser.mobile?DG.MobileTileLayer:DG.TileLayer,o=n.extend({initialize:function(t,e){this._isDg=!0,n.prototype.initialize.call(this,t,e)},getTiles:function(){return this._tiles}}),r=DG.config.protocol+(DG.Browser.retina?DG.config.retinaTileServer:DG.config.tileServer),s=DG.config.protocol+(DG.Browser.retina?DG.config.arabicRetinaTileServer:DG.config.arabicTileServer),a=DG.config.protocol+(DG.Browser.retina?DG.config.previewRetinaTileServer:DG.config.previewTileServer),l=DG.config.protocol+(DG.Browser.retina?DG.config.arabicPreviewRetinaTileServer:DG.config.arabicPreviewTileServer);this.baseLayer=new o(r,{subdomains:"0123",errorTileUrl:"ru"===this.getLang()?i:e,detectRetina:DG.config.detectRetina,maxZoom:19,maxNativeZoom:19,zIndex:0,updateWhenIdle:!1,previewUrl:a});var u="";t.call(this),this.baseLayer.addTo(this),this.on({langchange:t,projectchange:t,projectleave:t},this)}),DG.Map.mergeOptions({tilesCheck:!0}),DG.Map.TilesCheck=DG.Handler.extend({initialize:function(t){this._map=t,this._layer=t.baseLayer,this._moveStartEventCounter=0,this._moveEndEventCounter=0,this._loadingEventCounter=0,this._loadEventCounter=0},addHooks:function(){this._map.on(this._mapEvents,this),this._layer.on(this._layerEvents,this)},removeHooks:function(){this._map.off(this._mapEvents,this),this._layer.off(this._layerEvents,this)},_mapEvents:{layeradd:function(t){t.layer==this._layer&&this.enable()},layerremove:function(t){t.layer==this._layer&&this.disable()},movestart:function(){this._stopWaiting(),this._moveStartEventCounter++,this._isWaiting=!0},moveend:function(){this._moveEndEventCounter++,(this._isWaiting||this._moveStartEventCounter===this._moveEndEventCounter)&&(this._isMoveEnd=!0,this._checkWaiting())}},_layerEvents:{loading:function(){this._loadingEventCounter++},load:function(){this._loadEventCounter++,(this._isWaiting||this._loadingEventCounter===this._loadEventCounter)&&(this._isLoad=!0,this._checkWaiting())}},_stopWaiting:function(){this._isWaiting=!1,this._isMoveEnd=!1,this._isLoad=!1},_checkWaiting:function(){this._isWaiting&&this._isLoad&&this._isMoveEnd&&(this._stopWaiting(),this._resetCounters(),this._checkTiles())},_checkTiles:function(){if(0===this._map.getTileLayersNumber()&&this._map._loaded){var t=this._layer._tileZoom,e=this._layer.options.errorTileUrl,i=this._layer.getTiles();for(var n in i)if(i[n].coords.z===t&&i[n].el.src!==e)return;this._map.zoomOut()}},_resetCounters:function(){this._moveStartEventCounter=0,this._moveEndEventCounter=0,this._loadingEventCounter=0,this._loadEventCounter=0}}),DG.Map.addInitHook("addHandler","tilesCheck",DG.Map.TilesCheck);var onDragEnd=DG.Map.Drag.prototype._onDragEnd;DG.Map.Drag.include({_rememberTimeAndPosition:function(){var t=this._lastTime=+new Date,e=this._lastPos=this._draggable._absPos||this._draggable._newPos;for(this._positions.push(e),this._times.push(t);t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onDrag:function(t){this._map.options.inertia&&this._rememberTimeAndPosition(),this._map.fire("move",t).fire("drag",t)},_onDragEnd:function(){this._map.options.inertia&&!DG.Browser.touch&&this._rememberTimeAndPosition(),onDragEnd.call(this)}}),DG.PolyUtil.inside=function(t,e,i){i=i||DG.PolyUtil._defaultPointReduce;var n=e.coordinates,o=i(t);"Polygon"===e.type&&(n=[n]);for(var r=!1,s=0;st[1]!=h>t[1]&&t[0]<(c-l)*(t[1]-u)/(h-u)+l;d&&(n=!n)}return n},DG.PolyUtil._defaultPointReduce=function(t){return t},DG.Browser.mobile&&!function(){var t=L.DomUtil.addClass;L.DomUtil.addClass=function(e,i){"leaflet-dragging"!==i&&"leaflet-drag-target"!==i&&t(e,i)};var e=L.DomUtil.removeClass;L.DomUtil.removeClass=function(t,i){"leaflet-dragging"!==i&&"leaflet-drag-target"!==i&&e(t,i)},L.Draggable.include({_onMove:function(t){if(!t._simulated&&this._enabled){if(t.touches&&t.touches.length>1)return void(this._moved=!0);var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new L.Point(e.clientX,e.clientY),n=i.subtract(this._startPoint);if((n.x||n.y)&&!(Math.abs(n.x)+Math.abs(n.y)1)return void this._setView(t,i);for(var h=o.min.y;h<=o.max.y;h++)for(var d=o.min.x;d<=o.max.x;d++){var _=new L.Point(d,h);if(_.z=this._tileZoom,this._isValidTile(_)){var p=this._tiles[this._tileCoordsToKey(_)];p?p.current=!0:s.push(_)}}if(s.sort(function(t,e){return t.distanceTo(r)-e.distanceTo(r)}),0!==s.length)for(this._loading||(this._loading=!0,this.fire("loading")),d=0;d0?!this._existTileFromLowerZoom(t):!this._existTilesFromHigherZoom(t)},_existTileFromLowerZoom:function(t){var e=L.point(t.x/2,t.y/2)._floor();e.z=t.z-1;var i=this._tileCoordsToKey(e),n=this._tiles[i];return n&&!n.preview},_existTilesFromHigherZoom:function(t){for(var e=t.x,i=t.y,n=2*e;n<2*e+2;n++)for(var o=2*i;o<2*i+2;o++){var r=new L.Point(n,o);r.z=t.z+1;var s=this._tileCoordsToKey(r);if(!this._tiles[s])return!1}return!0},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this._wrapCoords(t),r=this._needPreviewTile(o),s=r?this._previewUrl:this._url,a=this.createTile(o,L.bind(this._tileReady,this,t),s);this._initTile(a),L.DomUtil.setPosition(a,i),this._tiles[n]={el:a,preview:r,coords:t,current:!0},e.appendChild(a),this.fire("tileloadstart",{tile:a,coords:t})},_tileReady:function(t,e,i){if(this._map){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);i=this._tiles[n],i&&(i.originalEl&&i.el.parentNode?(i.el.parentNode.replaceChild(i.originalEl,i.el),i.el=i.originalEl,i.originalEl=null,i.preview=!1):i.preview&&(i.originalEl=this.createTile(this._wrapCoords(t),L.bind(this._tileReady,this,t),this._url),this._initTile(i.originalEl),L.DomUtil.setPosition(i.originalEl,this._getTilePos(t))),i.loaded=+new Date,i.active=!0,this._pruneTiles(),e||(i.el.style.visibility="",this.fire("tileload",{tile:i.el,preview:i.preview,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),L.Browser.ielt9||!this._map._fadeAnimated?L.Util.requestAnimFrame(this._pruneTiles,this):setTimeout(L.bind(this._pruneTiles,this),250)))}},getTileUrl:function(t,e){var i={r:L.Browser.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var n=this._globalTileRange.max.y-t.y;this.options.tms&&(i.y=n),i["-y"]=n}return L.Util.template(e,L.extend(i,this.options))}}),DG.Control.Zoom.include(DG.Locale),DG.Control.Zoom.Dictionary={},DG.Control.Zoom.include({onAdd:function(t){var e="dg-zoom",i='
',n=DG.DomUtil.create("div",e);return this._map=t,this._zoomInButton=this._createButton(DG.Util.template(i,{type:"in"}),this.t("zoom_in"),"dg-control-round "+e+"__in",n,this._zoomIn,this),this._zoomOutButton=this._createButton(DG.Util.template(i,{type:"out"}),this.t("zoom_out"),"dg-control-round "+e+"__out",n,this._zoomOut,this),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),n},_originalCreateButton:DG.Control.Zoom.prototype._createButton,_createButton:function(){var t=Array.prototype.slice.call(arguments),e=this._originalCreateButton.apply(this,t),i=e.children[0],n="dg-control-round_state_active",o="dg-control-round__icon_state_active";return DG.DomEvent.on(e,"touchstart",function(){DG.DomUtil.addClass(e,n),DG.DomUtil.addClass(i,o)}).on(e,"touchend touchcancel",function(){DG.DomUtil.removeClass(e,n),DG.DomUtil.removeClass(i,o)}),e},_renderTranslation:function(){this._zoomInButton&&this._zoomOutButton&&(this._zoomInButton.title=this.t("zoom_in"),this._zoomOutButton.title=this.t("zoom_out"))}}),DG.Control.Zoom.Dictionary.ru={zoom_in:"Приблизить",zoom_out:"Отдалить"},DG.Control.Zoom.Dictionary.it={zoom_in:"Zoom avanti",zoom_out:"Zoom indietro"},DG.Control.Zoom.Dictionary.cs={zoom_in:"Přiblížit",zoom_out:"Oddálit"},DG.Control.Zoom.Dictionary.en={zoom_in:"Zoom in",zoom_out:"Zoom out"},DG.Control.Zoom.Dictionary.es={zoom_in:"Acercar",zoom_out:"Alejar"},DG.Control.Zoom.Dictionary.ar={zoom_in:"",zoom_out:""};var dust=_dereq_("dustjs-linkedin");_dereq_("dustjs-helpers"),DG.dust=function(t,e){var i;return dust.render(t,e,function(t,e){i=e}),i},DG.Control.Attribution.include(DG.Locale),DG.Control.Attribution.Dictionary={},DG.Control.Attribution.include({options:{position:"bottomright"},_getLink:function(t){var e={ru:{copyright_logo:"https://2gis.ru/?utm_source=copyright&utm_medium=map&utm_campaign=partners",copyright_apilink:"https://dev.2gis.ru/?utm_source=copyright&utm_medium=map&utm_campaign=partners",copyright_license:"https://law.2gis.ru/api-rules/",open_link:"https://2gis.ru"},it:{copyright_logo:"https://2gis.it/?utm_source=copyright&utm_medium=map&utm_campaign=partners",copyright_apilink:"https://dev.2gis.com/?utm_source=copyright&utm_medium=map&utm_campaign=partners",copyright_license:"https://law.2gis.it/licensing-agreement/",open_link:"https://2gis.ru"},cz:{copyright_logo:"https://praha.2gis.cz/?utm_source=copyright&utm_medium=map&utm_campaign=partners",copyright_apilink:"https://dev.2gis.com/?utm_source=copyright&utm_medium=map&utm_campaign=partners",copyright_license:"https://law.2gis.cz/api-rules/",open_link:"https://2gis.ru"},cl:{copyright_logo:"https://santiago.2gis.cl/?utm_source=copyright&utm_medium=map&utm_campaign=partners",copyright_apilink:"https://dev.2gis.com/?utm_source=copyright&utm_medium=map&utm_campaign=partners",copyright_license:"https://law.2gis.cl/api-rules/",open_link:"https://2gis.ru"},cy:{copyright_logo:"https://info.2gis.com.cy/lemesos?utm_source=copyright&utm_medium=map&utm_campaign=partners",copyright_apilink:"https://dev.2gis.com/?utm_source=copyright&utm_medium=map&utm_campaign=partners",copyright_license:"https://law.2gis.com.cy/api-rules/",open_link:"https://2gis.ru"},ae:{copyright_logo:"https://2gis.ae/dubai?utm_source=copyright&utm_medium=map&utm_campaign=partners",copyright_apilink:"http://dev.2gis.com/?utm_source=copyright&utm_medium=map&utm_campaign=partners",copyright_license:"https://law.2gis.ae/api-rules/",open_link:"https://2gis.ae"}},i=this._countryCode in e?this._countryCode:"ru";return e[i][t]},_markerToRoute:void 0,_markers:[],_checkMarkerLayers:function(){this._markerToRoute=1!=this._markers.length?void 0:this._markers[0],this._update()},_mapEvents:{layeradd:function(t){t.layer instanceof DG.Marker&&(this._markers.push(t.layer),this._markers.length<=2&&this._checkMarkerLayers())},layerremove:function(t){if(t.layer instanceof DG.Marker){for(var e=[],i=0;i11?"bus":"car",point:this._markerToRoute._latlng.lng+","+this._markerToRoute._latlng.lat}):DG.Util.template(DG.config.openLink2gis,{gislink:this._getLink("open_link"),center:this._map.getCenter().lng+","+this._map.getCenter().lat,zoom:this._map.getZoom()})},_getData:function(t){t=t||this._map.getLang();var e={name:"open",label:this._markerToRoute?this.t("route_on"):this.t("open_on")},i="open_on"==e.label||"route_on"==e.label||this._logotype;return{logotype:i,work_on:this.t("work_on"),lang:t,copyright_apilink:this._getLink("copyright_apilink"),copyright_license:this._getLink("copyright_license"),copyright_logo:this._getLink("copyright_logo"),open2gis_link:this._open2gis,open2gis_name:"linkButton",license_agreement:this.t("license_agreement"),dir:"ar"!==t?"ltr":"rtl",btn:e}},_getAttributionHTML:function(t){return DG.dust("DGAttribution/copyright",this._getData(t))},_renderTranslation:function(t){this._update(t.lang)}}),DG.Map.addInitHook(function(){this._copyright||DG.control.attribution().addTo(this)}),DG.Control.Attribution.Dictionary.ru={license_agreement:"Лицензионное соглашение",work_on:"Работает на API 2ГИС",open_on:"Открыть в 2ГИС",route_on:"Доехать с 2ГИС"},DG.Control.Attribution.Dictionary.it={license_agreement:"Accordo di licenza",work_on:"2GIS API"},DG.Control.Attribution.Dictionary.cs={license_agreement:"Licenční smlouva",work_on:"Pracuje na API 2GIS"},DG.Control.Attribution.Dictionary.en={license_agreement:"License agreement",work_on:"Uses 2GIS API"},DG.Control.Attribution.Dictionary.es={license_agreement:"Acuerdo de licencia",work_on:"2GIS API"},DG.Control.Attribution.Dictionary.ar={license_agreement:"إتفاقية ترخيص",work_on:"يعمل بتطبيق 2GIS",open_on:"Open in 2GIS",route_on:"Route on 2GIS"},DG.Control.Location=DG.RoundControl.extend({statics:{Dictionary:{}},options:{iconClass:"locate",position:DG.Browser.mobile?"bottomright":"topleft",drawCircle:!0,follow:!0,stopFollowingOnDrag:!1,metric:!0,onLocationError:function(){},onLocationOutsideMapBounds:function(){},locateOptions:{}},initialize:function(t){return DG.Util.setOptions(this,t),navigator.geolocation?(this._event=void 0,this._locateOptions={watch:!0,setView:!0,maximumAge:1/0,maxZoom:1/0},DG.extend(this._locateOptions,this.options.locateOptions),this._resetVariables(),void this.on({click:this._handleLocate,add:this._initLocate})):void(this._disable=!0)},_initLocate:function(){this._layer=new DG.LayerGroup,this._layer.addTo(this._map),this._map.on({locationfound:this._onLocationFound,locationerror:this._onLocationError},this)},_handleLocate:function(){this._active&&(!this._event||this._map.getBounds().contains(this._event.latlng)||this._isOutsideMapBounds())?this._stopLocate():(this._locateOnNextLocationFound=!0,this._active||this._map.locate(this._locateOptions),this._active=!0,this.options.follow&&this._startFollowing(),this._clearError(),this._event?this._visualizeLocation():this.setState("requesting"))},_onLocationFound:function(t){this._event&&this._event.latlng.lat===t.latlng.lat&&this._event.latlng.lng===t.latlng.lng&&this._event.accuracy===t.accuracy||this._active&&(this._event=t,this.options.follow&&this._following&&(this._locateOnNextLocationFound=!0),this._visualizeLocation())},_startFollowing:function(){this._following=!0,this.options.stopFollowingOnDrag&&this._map.on("dragstart",this._stopFollowing,this)},_stopFollowing:function(){this._following=!1,this.options.stopFollowingOnDrag&&this._map.off("dragstart",this._stopFollowing,this),this._visualizeLocation()},_isOutsideMapBounds:function(){return void 0!==this._event&&(this._map.options.maxBounds&&!this._map.options.maxBounds.contains(this._event.latlng))},_visualizeLocation:function(){void 0===this._event.accuracy&&(this._event.accuracy=0);var t=this._event.accuracy;if(this._locateOnNextLocationFound){if(this._isOutsideMapBounds())this.options.onLocationOutsideMapBounds(this);else if(this._locateOptions.setView){var e=this._map.projectDetector.getProject(),i=e?e.maxZoom:DG.config.projectLeaveMaxZoom;i=Math.min(this._locateOptions.maxZoom,i),this._map.setView(this._event.latlng,i)}this._locateOnNextLocationFound=!1}var n={clickable:!1,color:"#FFF",fillColor:"#FFF",fillOpacity:.4,weight:0,opacity:.3};this.options.drawCircle&&(this._circle?this._circle.setLatLng(this._event.latlng).setRadius(t):this._circle=DG.circle(this._event.latlng,t,n).addTo(this._layer));var o="dg-location__pin";o+=this._following?" "+o+"state_following":"";var r={icon:DG.divIcon({className:o,iconSize:[20,20]})};this._marker?this._marker.setLatLng(this._event.latlng):this._marker=DG.marker(this._event.latlng,r).bindLabel(this.t("you_are_here")).addTo(this._layer),DG.DomEvent.on(this._marker,"click",function(){this._map.fireEvent("dgLocateClick")},this),this._container&&this.setState("active")},_resetVariables:function(){this._active=!1,this._following=!1},_stopLocate:function(){this._map.stopLocate(),this._map.off("dragstart",this._stopFollowing),this.setState(),this._resetVariables(),this._layer.clearLayers(),this._marker=void 0,this._circle=void 0,this._event=void 0},_onLocationError:function(t){if(3!==t.code||!this._locateOptions.watch){this._stopLocate(),this._error=DG.DomUtil.create("div","dg-label dg-label_name_location-error",this._container),this._errorText=DG.DomUtil.create("div","dg-label__content",this._error),this._errorText.innerHTML=this.t("cant_find");var e=this;setTimeout(function(){e._clearError()},3e3),this.options.onLocationError(t)}},_clearError:function(){this._error&&(this._container.removeChild(this._error),this._error=void 0,this._errorText=void 0)},_renderTranslation:function(){this._link&&(this._link.title=this.t("button_title")),this._marker&&this._marker.bindLabel(this.t("you_are_here"))}}),DG.control.location=function(t){return new DG.Control.Location(t)},DG.Map.addInitHook(function(){this.options.locationControl&&(this.locationControl=DG.control.location(this.options.locationControl),this.addControl(this.locationControl))}),DG.Control.Location.Dictionary.ru={cant_find:"Мы не смогли Вас найти",you_are_here:"Вы здесь",button_title:"Найти Вас на карте"},DG.Control.Location.Dictionary.it={cant_find:"Non siamo riusciti a localizzarti",you_are_here:"Voi siete qui",button_title:"Trova la tua posizione sulla mappa"},DG.Control.Location.Dictionary.cs={cant_find:"Nepodařilo se nám určit Vaši polohu",you_are_here:"Jste tady",button_title:"Určit Vaši polohu na mapě"},DG.Control.Location.Dictionary.en={cant_find:"We can't find you",you_are_here:"You are here",button_title:"Show your location"},DG.Control.Location.Dictionary.es={cant_find:"No pudimos encontrarte",you_are_here:"Tú estás aquí",button_title:"Encontrarte en el mapa"},DG.Control.Location.Dictionary.ar={cant_find:"لم نستطع تحديد موقعك",you_are_here:"أنت هنا",button_title:"موقعي"},DG.Screenfull=DG.Class.extend({_apiMap:[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],initialize:function(){this.api=this._api()},request:function(t){var e=this.api.requestFullscreen;t=t||document.documentElement,t[e](Element.ALLOW_KEYBOARD_INPUT)},exit:function(){document[this.api.exitFullscreen]()},isFullscreen:function(){return!!document[this.api.fullscreenElement]},isAvailable:function(){return Boolean(this.api)},_api:function(){var t={},e=this._apiMap;return e.forEach(function(i){i&&i[1]in document&&i.forEach(function(i,n){t[e[0][n]]=i})}),!!t.requestFullscreen&&t}}),DG.screenfull=new DG.Screenfull,DG.Control.Fullscreen=DG.RoundControl.extend({statics:{Dictionary:{}},options:{position:"topright",iconClass:"fullscreen"},initialize:function(t){DG.Util.setOptions(this,t),this._isFullscreen=!1,this.on("click",this._toggleFullscreen)},_toggleFullscreen:function(){this._isFullscreen?this._toggle(!1,"exit","on","cancelfullscreen"):this._toggle(!0,"request","on","requestfullscreen"),this._renderTranslation(),this._map.invalidateSize()},_renderTranslation:function(){this._link.title=this.t(this._isFullscreen?"title_min":"title_max")},_toggle:function(t,e,i,n){var o=this._map._container;this._isFullscreen=t,this.setState(t?"active":""),DG.screenfull[e](o),DG.DomEvent[i](document,DG.screenfull.api.fullscreenchange,this._onFullScreenStateChange,this),this._map.fire(n)},_onFullScreenStateChange:function(){DG.screenfull.isFullscreen()||this._toggle(!1,"exit","on","cancelfullscreen")}}),DG.control.fullscreen=function(t){return new DG.Control.Fullscreen(t)},DG.Map.mergeOptions({fullscreenControl:!0}),DG.Map.addInitHook(function(){this.options.fullscreenControl&&(this.fullscreenControl=DG.control.fullscreen(this.options.fullscreenControl),DG.screenfull.isAvailable()&&this.addControl(this.fullscreenControl))}),DG.Control.Fullscreen.Dictionary.ru={title_max:"Развернуть",title_min:"Восстановить"},DG.Control.Fullscreen.Dictionary.it={title_max:"Espandi",title_min:"Ripristina"},DG.Control.Fullscreen.Dictionary.cs={title_max:"Rozbalit",title_min:"Obnovit"},DG.Control.Fullscreen.Dictionary.en={title_max:"Expand",title_min:"Restore"},DG.Control.Fullscreen.Dictionary.es={title_max:"Maximizar",title_min:"Restaurar"},DG.Control.Fullscreen.Dictionary.ar={title_max:"",title_min:""},DG.Meta={},DG.Meta.Layer=DG.Layer.extend({options:{tileSize:256,minZoom:0,maxZoom:19,zoomOffset:0,eventBubbling:"transparent"},initialize:function(t,e){DG.TileLayer.prototype.initialize.call(this,null,e),delete this._url,this._currentTileKey="",this._currentTileData=[],this._lastEntity=void 0,this._dispatchMouseEvents=!0,this._origin=DG.Meta.origin(t,{dataFilter:this.options.dataFilter})},getOrigin:function(){return this._origin},onAdd:function(t){this._resetView(),t.metaLayers.push(this),t.on("rulerstart",this._disableDispatchMouseEvents,this),t.on("rulerend",this._enableDispatchMouseEvents,this);var e=this;DG.Browser.touchEnabled&&this.options.isPoi&&t.eachLayer(function(t){if(t instanceof L.TileLayer){t.on("tileloadstart",e._onTileLoadStart,e);for(var i in t._tiles)e._onTileLoadStart({coords:t._tiles[i].coords})}})},onRemove:function(t){var e=this;DG.Browser.touchEnabled&&this.options.isPoi&&t.eachLayer(function(t){t instanceof L.TileLayer&&t.off("tileloadstart",e._onTileLoadStart)}),this._tileZoom=null;var i=t.metaLayers.indexOf(this);i!==-1&&t.metaLayers.splice(i,1),t.off("rulerstart",this._disableDispatchMouseEvents,this),t.off("rulerend",this._enableDispatchMouseEvents,this)},getEvents:function(){return{viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd}},setUrl:function(t){this._currentTileKey="",this._currentTileData=[],this._lastEntity=void 0,this._dispatchMouseEvents=!0,this._origin.setURL(t,!0)},getHoveredObject:function(t){var e,i=this.getTileSize(),n=this._map.mouseEventToLayerPoint(t.originalEvent),o=this._map.getPixelOrigin().add(n),r=o.unscaleBy(i).floor(),s=DG.point(o.x%i.x,o.y%i.y),a=this._map.getZoom(),l=this;if(!(a>this.options.maxZoom+this.options.zoomOffset||a=e[n]&&i.push(n)}),i.length?i.join(","):null},_performRequest:function(t,e){var i=DG.extend({key:this._key},t),n="get";return this.cancelLastRequest(),DG.ajax.corsSupport||(n=i.format="jsonp"),this._lastRequest=DG.ajax(e,{type:n,data:i,timeout:this._timeoutMs,withCredentials:!0}),this._lastRequest},_filterResponse:function(t,e){var i,n,o,r,s,a={};if(this._isNotFound(t))return!1;for(r=t.result.items,i=r.length-1;i>=0;i--)n=r[i],s=n.type,n.subtype&&(s+="."+n.subtype),e&&e.indexOf(s)===-1||(a[s]=n,o=!0);return!!o&&a},_isNotFound:function(t){return!(t&&(!t.meta||!t.meta.error)&&t.result&&t.result.items&&t.result.items.length)}}),DG.Geoclicker.Handler={},DG.Geoclicker.Handler.Default=DG.Class.extend({includes:DG.Locale,statics:{Dictionary:{}},_eventHandlers:{},initialize:function(t,e,i){this._controller=t,this._view=e,this._map=i},handle:function(){return Promise.resolve({tmpl:"popupHeader",data:{title:this.t("we_have_not")}})},addClickEvent:function(){this._view._popup.on("click",this._runEventHandlers,this),this._map.once("popupclose",this._removeClickEvent,this)},_removeClickEvent:function(){this._view._popup.off("click",this._runEventHandlers,this)},_addEventHandler:function(t,e){this._eventHandlers[t]=e},_runEventHandlers:function(t){var e=t.originalEvent.target;for(var i in this._eventHandlers)if(this._eventHandlers.hasOwnProperty(i)&&e.className.indexOf(i)>-1)return DG.DomEvent.preventDefault(t.originalEvent),void this._eventHandlers[i].call(this,e)},_clearEventHandlers:function(){this._eventHandlers={}},_getDirectionsUrl:function(t){var e=this._map.projectDetector.getProject();return e?DG.Util.template(DG.config.ppnotLink,{domain:e.domain,projectCode:e.code,center:this._map.getCenter().lng+","+this._map.getCenter().lat,zoom:this._map.getZoom(),name:encodeURIComponent(t),rsType:e.transport?"bus":"car",point:this._popup._latlng.lng+","+this._popup._latlng.lat}):""},_getDrilldown:function(t){var e,i=[];return t.adm_div&&(i=t.adm_div.reduce(function(t,e){return e.name&&t.push(e.name),t},[]).reverse()),i.length&&t.address&&t.address.postcode&&i.push(t.address.postcode),e=i.join(", ")}}),DG.Geoclicker.Handler.HandlerExample=DG.Geoclicker.Handler.Default.extend({handle:function(t,e){return Promise.resolve({tmpl:e+":
"+t[e].id})}}),DG.Geoclicker.Handler.ApiError=DG.Geoclicker.Handler.Default.extend({handle:function(){var t=this._view.render({tmpl:"popupHeader",data:{title:this.t("apiErrorTitle")}});return Promise.resolve({header:t,tmpl:this.t("apiErrorBody")})}}),DG.Geoclicker.Handler.CityArea=DG.Geoclicker.Handler.Default.extend({_polylineStyleDefault:{fillColor:"#ff9387",color:"#ff9387",noClip:!0,opacity:1},_polylineStyles:{11:{fillOpacity:.18,weight:1},12:{fillOpacity:.12,weight:1},13:{fillOpacity:.08,weight:2},18:{fillOpacity:0,weight:3}},handle:function(t,e){return!!t[e]&&(this._stylesInited||this._initStyles(),this._geometry&&this._map.removeLayer(this._geometry),this._popup=this._view.getPopup(),this._geometryZoomStyle=this._getPolyStyleNum(),this._geometry=DG.Wkt.geoJsonLayer(t[e].geometry.selection,{style:this._polylineStyles[this._geometryZoomStyle],interactive:!1}).addTo(this._map),this._map.on("zoomend",this._updateGeometry,this).once("popupclose",this._clearPopup,this),Promise.resolve(this._fillCityAreaObject(t,e)))},_fillCityAreaObject:function(t,e){var i={name:this.t("noname"),drilldown:"",purpose:this.t(e),type:e.split(".").join("_")};return i.drilldown=this._getDrilldown(t[e]),t[e].name&&(i.name=t[e].name),{tmpl:"cityarea",data:i,header:this._view.render({tmpl:"popupHeader",data:{title:i.name}})}},_initStyles:function(){this._stylesInited=!0,Object.keys(this._polylineStyles).forEach(function(t){DG.extend(this._polylineStyles[t],this._polylineStyleDefault)},this)},_getPolyStyleNum:function(){var t=this._map.getZoom();return Object.keys(this._polylineStyles).filter(function(e){return t<=e})[0]||!1},_updateGeometry:function(){var t=this._getPolyStyleNum();t&&t!==this._geometryZoomStyle&&(this._geometryZoomStyle=t,this._geometry.setStyle(this._polylineStyles[t]))},_clearPopup:function(){this._map.removeLayer(this._geometry).off("zoomend",this._updateGeometry,this)}}),DG.Geoclicker.Handler.House=DG.Geoclicker.Handler.Default.extend({_firmsOnPage:20,_scrollThrottleInterval:400,_scrollHeightReserve:60,options:{showBooklet:!0,showPhotos:!0,showRouteSearch:!0},handle:function(t){return!!t.building&&(this.firmCard=null,this._page=1,this._houseObject=null,this._firmList=null,this._firmListObject=null,this._firmCardObject=null,this._onScroll=!1,this._isFirmlistOpen=!1,this._id=t.building.id,this._totalPages=1,this._api=this._controller.getCatalogApi(),this._popup=this._view.getPopup(),this._initedPopupClose=!1,this._directionsUrl=this._getDirectionsUrl(t.building.name),this._firmListLoader=this._view.initLoader(!0),this._houseObject=this._fillHouseObject(t.building),Promise.resolve(this._houseObject))},_isRouteSearchAllowed:function(){var t=this._controller.getMap().projectDetector.getProject();return t.transport||t.roads},_firmCardSetup:function(){var t=this._controller.getMap().projectDetector.getProject();return{render:this._view.renderTemplate,lang:this._map.getLang(),domain:t?t.domain:"ru",ajax:DG.bind(this._api.getFirmInfo,this._api),timezoneOffset:t?t.timeOffset:0,map:this._map,popup:this._popup,isMobile:DG.Browser.mobile,showEntrance:DG.Entrance,gotoUrl:this._directionsUrl,onFirmReady:DG.bind(this._onFirmReady,this),onToggle:DG.bind(this._popup.resize,this._popup),showBooklet:this.options.showBooklet,showPhotos:this.options.showPhotos,showRouteSearch:this.options.showRouteSearch&&this._isRouteSearchAllowed(),t:DG.bind(this.t,this)}},_fillFirmCardObject:function(t){var e=this._firmCardSetup();return this.firmCard=new FirmCard(t,e),this._initPopupClose(),this.firmCard.getContainer()},_firmListSetup:function(){var t=this._firmCardSetup();return DG.extend(t,{backBtn:DG.bind(this._showHousePopup,this),onFirmClick:DG.bind(this._onFirmListClick,this),onShowLess:DG.bind(this._showHousePopup,this),pasteLoader:DG.bind(this._pasteLoader,this)}),{firmCard:t,firmlistItemTmpl:"firmlistItem",onListReady:DG.bind(this._renderFirmList,this)}},_initShortFirmList:function(t){var e=this._firmListSetup();return this._shortFirmList=new FirmCard.List(t,e),this._shortFirmList.renderList()},_initFirmList:function(t){if(!t)return!1;var e=t.result.items,i=this._firmListSetup();i.firmCard.backBtn=DG.bind(this._showListPopup,this),this._shortFirmList&&this._shortFirmList._toggleEventHandlers(!0),this._firmList=new FirmCard.List(e,i),this._firmListObject=this._fillFirmListObject(this._firmList.renderList()),this._clearAndRenderPopup(this._firmListObject)},_fillFirmListObject:function(t){var e=this;return{tmpl:t,header:this._header,footer:this._view.render({tmpl:"popupFooterBtns",data:{btns:[{name:"back",label:this.t("back_button"),icon:!0}]}}),afterRender:function(){e._initPopupClose(),e._totalPages>1&&e._firmListLoader&&this.tmpl.parentNode.appendChild(e._firmListLoader)}}},_onFirmReady:function(t){var e=this;t.afterRender=function(){var t=e._popup._popupStructure.header.firstChild;DG.Browser.ielt9||t.offsetHeight>72&&(DG.DomUtil.addClass(t,"dg-popup__header-teaser"),DG.Browser.webkit||DG.Geoclicker.clampHelper(t,3))},this._clearAndRenderPopup(t)},_showHousePopup:function(){this._popup.off("scroll",this._onScroll),this._clearAndRenderPopup(this._houseObject),this._shortFirmList&&this._shortFirmList._toggleEventHandlers()},_onFirmListClick:function(){this._popup.off("scroll",this._onScroll)},_pasteLoader:function(){var t=DG.DomUtil.create("div","dg-map-geoclicker__preloader-wrapper"),e=this._view.initLoader();t.insertBefore(e,t.firstChild),t.style.height=this._popup._contentNode.offsetHeight-1+"px",t.style.width=this._popup._contentNode.offsetWidth+"px",this._clearAndRenderPopup({tmpl:t}); },_initPopupClose:function(){this._initedPopupClose||(this._controller.getMap().once("popupclose",DG.bind(this._onPopupClose,this)),this._initedPopupClose=!0)},_showListPopup:function(){var t=this._firmListObject;this._pasteLoader(),t?(this._clearAndRenderPopup(t),this._firmList._toggleEventHandlers()):t=this._api.firmsInHouse(this._id).then(DG.bind(this._initFirmList,this)),this._onScroll||(this._onScroll=DG.Util.throttle(this._handlePopupScroll,this._scrollThrottleInterval,this)),this._popup.on("scroll",this._onScroll)},_renderFirmList:function(){this._isFirmlistOpen||(this._popup.resize(),this._isFirmlistOpen=!0)},_onPopupClose:function(){this._initedPopupClose=!1,this._firmList&&(this._firmList.clearList(),this._firmList=null,this._popup.off("scroll",this._onScroll)),this._firmId=null,this.firmCard&&(this.firmCard._toggleEventHandlers(!0),this.firmCard=null),this._firmListLoader=null,this._page=1,this._clearEventHandlers()},_initShowMore:function(){var t=this._popup.findElement(".dg-popup__button_name_all");t&&this._addEventHandler("dg-popup__button_name_all",DG.bind(this._showListPopup,this))},_clearAndRenderPopup:function(t){this._clearEventHandlers(),this._popup.clear("header","footer"),this._view.renderPopup(t)},_appendFirmList:function(t){this._firmList.addFirms(t.result.items),this._popup._updateScrollPosition()},_handlePopupScroll:function(t){var e=t.originalEvent.target||t.target._scroller;DG.DomEvent.stop(t),this._totalPages<=1||e&&e.scrollHeight<=e.scrollTop+e.offsetHeight+this._scrollHeightReserve&&this._handlePaging()},_handlePaging:function(){if(this._page++,this._totalPages&&this._page<=this._totalPages&&this._api.firmsInHouse(this._id,{page:this._page}).then(DG.bind(this._appendFirmList,this)),this._page===this._totalPages){var t=this._firmListLoader;t&&t.parentNode&&t.parentNode.removeChild(t),this._popup.off("scroll",this._onScroll)}}}),DG.Geoclicker.Handler.House.include({_getAddressString:function(t){return t.address&&t.address.components?t.address.components.filter(function(t){return"street_number"===t.type}).map(function(t){return t.street+", "+t.number}).join(" / "):""},_fillBody:function(t){var e={},i=DG.DomUtil.create("div","dg-building-callout__body"),n=t.links&&t.links.branches,o=this._getDrilldown(t);return t.building_name?e.address={header:this._getAddressString(t),drilldown:o}:o&&(e.address={drilldown:o}),e.purpose=t.purpose_name+(t.floors?", "+this.t("n_floors",t.floors.ground_count):""),n&&n.count>0&&(this._totalPages=Math.ceil(t.links.branches.count/this._firmsOnPage)),t.links&&t.links.attractions&&t.links.attractions.length&&(e.attractions=t.links.attractions.reduce(function(t,e){return e.name&&t.push(e.name),t},[])),i.innerHTML=this._view.render({tmpl:"house",data:e}),n&&n.items&&i.appendChild(this._initShortFirmList(n.items)),i},_fillHeader:function(t){var e={};return t.building_name?e.title=t.building_name:t.address&&t.address.components?e.title=this._getAddressString(t):e.title=t.purpose_name,this._header=this._view.render({tmpl:"popupHeader",data:e}),this._header},_fillFooter:function(t){var e=[],i=t.links&&t.links.branches,n=i&&i.items&&i.items.length||0;return i&&i.count>n&&e.push(this._getShowAllData(i.count)),this._isRouteSearchAllowed()&&e.push({name:"goto",label:this.t("go_to"),icon:!0,href:this._directionsUrl}),this._view.render({tmpl:"popupFooterBtns",data:{btns:e}})},_getShowAllData:function(t){return{name:"all",label:this.t("show_organization_in_building",t)}},_fillHouseObject:function(t){var e=this;return{header:this._fillHeader(t),tmpl:this._fillBody(t),footer:this._fillFooter(t),afterRender:function(){e._initShowMore(),e._initPopupClose()}}}}),DG.Geoclicker.Handler.Poi=DG.Geoclicker.Handler.House.extend({handle:function(t){if(!t.poi)return!1;if(this.firmCard=null,this._page=1,this._houseObject=null,this._firmList=null,this._firmListObject=null,this._firmCardObject=null,this._onScroll=!1,this._isFirmlistOpen=!1,this._id=t.poi.reference.id,this._totalPages=1,this._api=this._controller.getCatalogApi(),this._popup=this._view.getPopup(),this._initedPopupClose=!1,this._directionsUrl=this._getDirectionsUrl(t.poi.reference.name),this._firmListLoader=this._view.initLoader(!0),"building"===t.poi.reference.type){var e=this;return e._api.geoGet(t.poi.reference.id).then(function(t){return e._houseObject=e._fillHouseObject(t.result.items[0]),Promise.resolve(e._houseObject)})}return"branch"===t.poi.reference.type&&(this._fillFirmCardObject(t.poi.reference.id),!0)}}),DG.Geoclicker.Handler.Sight=DG.Geoclicker.Handler.Default.extend({handle:function(t){return!!t.attraction&&(this._popup=this._view.getPopup(),this._initedPopupClose=!1,Promise.resolve(this._fillSightObject(t)))},_fillSightObject:function(t){var e=t.attraction,i={},n=this,o={btns:[{name:"goto",label:this.t("go_to"),icon:!0}]};return e.name?(i.buildingName=e.name,i.purpose=e.subtype_name):i.buildingName=e.subtype_name,i.description=e.description,i.drillDown=this._getDrilldown(e),this._checkDescFieldHeight(i.description)&&(i.showMoreText=this.t("show_more_about_sight")),o.btns[0].href=this._getDirectionsUrl(i.buildingName),{tmpl:"sight",data:i,header:this._view.render({tmpl:"popupHeader",data:{title:i.buildingName}}),footer:this._view.render({tmpl:"popupFooterBtns",data:o}),afterRender:function(){n._needShowMore&&n._initShowMore(),n._initPopupClose()}}},_initPopupClose:function(){this._initedPopupClose||(this._controller.getMap().once("popupclose",DG.bind(this._clearPopup,this)),this._initedPopupClose=!0)},_clearPopup:function(){this._initedPopupClose=!1,this._clearEventHandlers()},_showMoreText:function(){this._desc.style.maxHeight="100%",this._link.parentNode.removeChild(this._link),this._popup.resize()},_initShowMore:function(){this._link=this._popup.findElement(".dg-map-geoclicker__show-more-sights-link"),this._desc=this._popup.findElement(".dg-map-geoclicker__sight-description"),this._link&&this._desc&&this._addEventHandler("dg-map-geoclicker__show-more-sights-link",DG.bind(this._showMoreText,this))},_checkDescFieldHeight:function(t){var e,i=DG.DomUtil.create("div","");return i.style.visibility="hidden",i.innerHTML=t,this._popup._contentNode.appendChild(i),e=i.offsetHeight,this._popup._contentNode.removeChild(i),this._needShowMore=e>40,this._needShowMore}}),DG.Geoclicker.View=DG.Class.extend({initialize:function(t,e){this._map=t,this._popup=DG.popup({maxHeight:300,minHeight:50,maxWidth:385,minWidth:310,sprawling:!0,closeOnClick:!0}),e&&DG.Util.setOptions(this,e)},initLoader:function(t){var e=document.createElement("div");return e.innerHTML=DG.dust("DGGeoclicker/loader",{small:t,anim:this._detectCssAnimation()}),e.firstChild},showPopup:function(t,e){this._popup.setContent(e).setLatLng(t).openOn(this._map)},render:function(t){var e,i={};return t=t||{},t.tmpl=t.tmpl||"",e=t.data?this.renderTemplate(t.tmpl,t.data):t.tmpl,t.beforeRender&&t.beforeRender(),t.popup&&(t.header&&(i.header=t.header),t.footer&&(i.footer=t.footer),i.body=e,this._popup.setContent(i)),t.afterRender&&t.afterRender(),e},renderTemplate:function(t,e){return DG.dust("DGGeoclicker/"+t,e)},renderPopup:function(t){return t.popup=!0,this.render(t)},getPopup:function(){return this._popup},_detectCssAnimation:function(){var t=!1,e="Webkit Moz O ms Khtml".split(" "),i=document.createElement("div");if(i.style.animationName&&(t=!0),t===!1)for(var n=0;n-1)return DG.DomEvent.preventDefault(t.originalEvent),void this._events[i].call(this,e)},_onClose:function(t){this._toggleEventHandlers(!0)},_onToggleSchedule:function(){var t=this._container.querySelector(".dg-schedule__table"),e=this._container.querySelector(".dg-schedule__now"),i=this._container.querySelector(".dg-schedule__today"),n=" dg-schedule__today_shown_true";t&&("block"===t.style.display?(t.style.display="none",e.style.display="block",i.className=i.className.replace(n,"")):(e.style.display="none",t.style.display="block",i.className+=n),this.options.onToggle&&this.options.onToggle())},_setOptions:function(t){var e,t=t||{};this.options=t,t.lang=t.lang||"ru";for(e in t)t.hasOwnProperty(e)&&(this.options[e]=t[e])},_hasTouch:function(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}},FirmCard.DataHelper={payMethods:["americanexpress","cash","dinersclub","goldcrown","internet","mastercard","noncash","visa"],_msgs:{},getFlampUrl:function(t){return DG.config.flampUrl.concat(t,"?",DG.config.flampGoogleAnalytics)},msg:function(t){return this._msgs.hasOwnProperty(t)?this._msgs[t]:(console&&console.log("Cant't find translation for '"+t+"'."),t.toString().replace("_"," "))},getProjectTime:function(t,e){var i,n;return i=e?new Date(e):new Date,t?(n=i.getTime()+6e4*i.getTimezoneOffset(),new Date(n+6e4*t)):i}},function(){FirmCard.List=function(t,e){this._firms={},this._setOptions(e),this._container=e&&e.container||document.createElement("ul"),this._container.setAttribute("class","dg-building-callout__list"),this._eventHandlersInited=!1,this._firmCard=this._createFirm(),this.renderList(t)},FirmCard.List.prototype={renderList:function(t){return t&&(this._toggleEventHandlers(),this.addFirms(t)),this.options.onListReady&&this.options.onListReady(this._container),this._container},_processFirms:function(t,e){if(t){var i="_"+e+"Firm";if(this._isArray(t))for(var n=0,o=t.length;n-1)return DG.DomEvent.preventDefault(t.originalEvent),void this._events[i].call(this,e)},_clearContainer:function(){for(var t=this._container;t.hasChildNodes();)t.removeChild(t.firstChild)},_setOptions:function(t){t||(t={}),this.options=t,this.options.firmCard||(this.options.firmCard={}),t.firmCard.lang||(this.options.firmCard.lang="ru");for(var e in t)t.hasOwnProperty(e)&&(this.options[e]=t[e])}}}(),FirmCard.Schedule=function(t){return t=t||{},this.localLang=t.localLang||"ru",this.dict=t.dict,this},FirmCard.Schedule.prototype={setLang:function(t){return this.localLang=t||"ru",this},transform:function(t,e){function i(t,e){var i=arguments.length>2?Array.prototype.slice.call(arguments,2):null;return function(){return t.apply(e,i||arguments)}}function n(t){return t.charAt(0).toUpperCase()+t.slice(1)}function o(t){return t.substr(0,2)}function r(t){return t.substr(3,2)}function s(t){var e=+o(t)%24+"";return 1===e.length&&(e="0"+e),e+":"+r(t)}function a(t){return(t+70)%7}function l(t,e){if(null!=t)return null==e?t[t.length-1]:slice.call(t,Math.max(t.length-e,0))}function u(t,e){if(t===e)return!0;if(!(t instanceof Object&&e instanceof Object))return!1;if(t.constructor!==e.constructor)return!1;for(var i in t)if(t.hasOwnProperty(i)){if(!e.hasOwnProperty(i))return!1;if(t[i]!==e[i]){if("object"!=typeof t[i])return!1;if(!u(t[i],e[i]))return!1}}for(i in e)if(e.hasOwnProperty(i)&&!t.hasOwnProperty(i))return!1;return!0}function c(t,e,i){arguments.length<=1&&(e=t||0,t=0),i=arguments[2]||1;for(var n=Math.max(Math.ceil((e-t)/i),0),o=0,r=new Array(n);on||void 0===i)return 1;if(iN)return U(S,"tommorow");if(e>1)switch(i){case 0:return U(S,"nextSun");case 1:return U(S,"nextMon");case 2:return U(S,"nextTue");case 3:return U(S,"nextWed");case 4:return U(S,"nextThu");case 5:return U(S,"nextFri");case 6:return U(S,"nextSat")}}function g(t,e){var i,n=864e5,o=new Date(t.ts);return i=Math.round((o-e)/n),"open"===t.type&&o.getHours()<1&&i++,i}function v(e){var i,n,o=[];G.now={},n=m(t),n.length||(G.always=!0,G.now.open=!0);for(var r=0;r=(n[r-1]&&n[r-1].ts||0)&&C0&&(G.lunch=o,G.lunchStr=U(S,"lunch"))}}function y(){for(var e=[],i=!1,n=0;n<7;n++){var o=T[n],r=0;if(e[n]={},t[o]){for(var a=t[o],l=_(p(a),"time"),u=[],d=2;d2){for(var r=o.dayList.pop(),s=1;s=0;n--)i.push(b(t[n],e));return i}if(t){e=e||{};for(var k,D,L,x,P=e.zoneOffset||0,G={},C=e.now||FirmCard.DataHelper.getProjectTime(P).getTime(),T=[],E=[],O=[],z=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],M=["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],S=e.localLang||this.localLang,A=e.localWorkingDays||[0,1,1,1,1,1,0],B=e.firstdayOffset||1,N=e.minHoursToDisplayClosure||4,U=i(this.dict.t,this.dict),R=0;R<7;R++)T[R]=z[R],E[R]=this.dict.t(S,z[R].toLowerCase()),O[R]=this.dict.t(S,M[R]);k=z[a(new Date(C).getDay()-B)],D=t[k],v(D);var j=[],I=0,Z=0,H=[];if(Object.keys(t).forEach(function(e){t[e]&&t[e].working_hours&&(I++,u(t[e],l(j))||j.push(t[e]))}),Z=j.length,I<7&&Z++,Z>2)G.week=y(t);else if(1===Z)G.week={evently:[b(t[T[0]],t)]};else{for(R=0;R=2&&t%10<=4&&t%10%1===0&&(t%100<12||t%100>14)?1:t%10===0||t%10>=5&&t%10<=9&&t%10%1===0||t%100>=11&&t%100<=14&&t%100%1===0?2:void 0},btnBack:"Назад",btnFindWay:"Проехать сюда",btnEntrance:"Найти вход",linkReviews:["отзыв","отзыва","отзывов"],linkPhoto:["фото","фото","фото"],linkBooklet:"Буклет",tommorow:"завтра",afterTommorow:"послезавтра",afterWeek:"через неделю",nextSun:"в воскресенье",nextMon:"в понедельник",nextTue:"во вторник",nextWed:"в среду",nextThu:"в четверг",nextFri:"в пятницу",nextSat:"в субботу",willOpen:"откроется",willClose:"закроется",isOpen:"Открыто",openTill:"Открыто до ",closeIn:"Закроется через ",openAt:"Откроется в ",openIn:"Откроется через ",open:"Откроется ",nHours:["час","часа","часов"],nMins:["минуту","минуты","минут"],lunch:"обед",Lunch:"Обед. ",workingDays:"Рабочие дни",weekdays:"Будние дни",restDay:["выходной","выходные","выходные"],reviewsOnFlamp:"Отзывы на Флампе",writeReviewOnFlamp:"Написать отзыв на Флампе",payment:"оплата",everyday:"Ежедневно c",worksAroundTheClock:"Работает круглосуточно",aroundTheClock:"Круглосуточно",knowMore:"узнать больше",toClose:"до закрытия",monday:"понедельник",tuesday:"вторник", wednesday:"среда",thursday:"четверг",friday:"пятница",saturday:"суббота",sunday:"воскресенье",mon:"пон",tue:"втр",wed:"срд",thu:"чтв",fri:"птн",sat:"сбт",sun:"вск",toLunch:"до обеда",today:"Сегодня",lessThenHour:"менее часа",youCouldLate:"вы можете не успеть",workingTime:"рабочее время",showAllOrgInRubric:"Показать все организации рубрики",todayIsRestDay:"Сегодня выходной",internet:"Оплата через Интернет",noncash:"Безналичный расчет",goldcrown:"Золотая Корона",dinersclub:"Diners Club",mastercard:"Mastercard",maestrocard:"MaestroCard",visa:"Visa",cash:"Наличный расчет",americanexpress:"American Express",hour:"час",less:"менее",_in:"Через",isClosingOnDinner:" закрывается на обед"},it:{pluralRules:function(t){return 1===t?0:1},btnBack:"Indietro",btnFindWay:"Come arrivare ",btnEntrance:"Trova l'ingresso",linkReviews:["recensione","recensioni"],linkPhoto:["fotografia","fotografie"],linkBooklet:"Sull'azienda",tommorow:"domani",afterTommorow:"dopodomani",afterWeek:"tra una settimana",nextSun:"la domenica",nextMon:"il lunedi",nextTue:"il martedì",nextWed:"il mercoledì",nextThu:"il giovedi",nextFri:"il venerdì",nextSat:"il sabato",willOpen:"apre",willClose:"ciuso",isOpen:"Aperto",openTill:"Aperto fino alle ",closeIn:"Chiude tra ",openAt:"Apre alle ",openIn:"Apre tra ",open:"Apre ",nHours:["ora","ore"],nMins:["minuto","minuti"],lunch:"pausa pranzo",Lunch:"Pausa pranzo. ",workingDays:"Giorni feriali",weekdays:"Giorni feriali",restDay:["chiusura","chiusura"],reviewsOnFlamp:"Recensioni su Flamp",writeReviewOnFlamp:"Scrivi una recensione su Flamp",payment:"pagamento",everyday:"Ogni giorno dalole",worksAroundTheClock:"Operativo 24 ore su 24",aroundTheClock:"24 ore su 24",knowMore:"ulteriori informazioni",toClose:"fino alla chiusura",monday:"lunedi",tuesday:"martedì",wednesday:"mercoledì",thursday:"giovedi",friday:"venerdì",saturday:"sabato",sunday:"domenica",mon:"lun",tue:"mar",wed:"mer",thu:"gio",fri:"ven",sat:"sab",sun:"dom",toLunch:"fino alla pausa pranzo",today:"Oggi",lessThenHour:"meno di un'ora",youCouldLate:"affrettarsi, chiusura imminente",workingTime:"orario di lavoro",showAllOrgInRubric:"Visualizza tutte le aziende della categoria",todayIsRestDay:"oggi chiuso",internet:"Pagamento on-line",noncash:"Pagamento non in contanti",goldcrown:"Zolotaja Korona",dinersclub:"Diners Club",mastercard:"MasterCard",maestrocard:"MaestroCard",visa:"Visa",cash:"Pagamento in contanti",americanexpress:"American Express",hour:"un'ora",less:"meno di",_in:"Tra",isClosingOnDinner:"chiude per pausa pranzo"},en:{pluralRules:function(t){return 1===t?0:1},btnBack:"Back",btnFindWay:"Get here",btnEntrance:"Find entrance",linkReviews:["review","reviews"],linkPhoto:["photo","photos"],linkBooklet:"About company",tommorow:"tomorrow",afterTommorow:"the day after tomorrow",afterWeek:"in a week",nextSun:"on Sunday",nextMon:"on Monday",nextTue:"on Tuesday",nextWed:"on Wednesday",nextThu:"on Thursday",nextFri:"on Friday",nextSat:"on Saturday",willOpen:"opens ",willClose:"closes",isOpen:"Open",openTill:"Open till ",closeIn:"Closes in ",openAt:"Opens at ",openIn:"Opens in ",open:"Opens ",nHours:["hour","hours"],nMins:["minute","minutes"],lunch:"lunch break",Lunch:"Lunch break. ",workingDays:"Working days",weekdays:"Weekdays",restDay:["day off","days off"],reviewsOnFlamp:"Reviews on Flamp",writeReviewOnFlamp:"Write a review on Flamp",payment:"payment",everyday:"Daily from",worksAroundTheClock:"Open 24 hours",aroundTheClock:"24h",knowMore:"see also",toClose:"until closing",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",sunday:"Sunday",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat",sun:"Sun",toLunch:"until lunch",today:"Today",lessThenHour:"less then one hour",youCouldLate:"you might be late",workingTime:"working hours",showAllOrgInRubric:"Show all organizations in the category",todayIsRestDay:"closed today",internet:"Online",noncash:" No-cash",goldcrown:"Golden Crown",dinersclub:"Diners Club",mastercard:"Mastercard",maestrocard:"MaestroCard",visa:"Visa",cash:"Cash",americanexpress:"American Express",hour:"hour",less:"less",_in:"In",isClosingOnDinner:"will be closing for lunch"},cs:{pluralRules:function(t){return 1===t?0:t>=2&&t<=4?1:2},btnBack:"Zpět",btnFindWay:"Jet sem",btnEntrance:"Hledat vstup",linkReviews:["recenze","recenze","recenzí"],linkPhoto:["fotografie","fotografie","fotografií"],linkBooklet:"Leták",tommorow:"zítra",afterTommorow:"pozítří",afterWeek:"za týden",nextSun:"v neděli",nextMon:"v pondělí",nextTue:"v úterý",nextWed:"ve středu",nextThu:"ve čtvrtek",nextFri:"v pátek",nextSat:"v sobotu",willOpen:"otevře se",willClose:"zavře se",isOpen:"Otevřeno",openTill:"Otevřeno do ",closeIn:"Zavře se za ",openAt:"Otevře se v ",openIn:"Otevře se za ",open:"Otevře se ",nHours:["hodinu","hodiny","hodin"],nMins:["minutu","minuty","minut"],lunch:"polední přestávka",Lunch:"Polední přestávka. ",workingDays:"Všední dny",weekdays:"Všední dny",restDay:["zavřeno","zavřeno"],reviewsOnFlamp:"Recenze na Flampu",writeReviewOnFlamp:"Napsat recenzi na Flampu",payment:"platba",everyday:"Denně od ",worksAroundTheClock:"Pracuje nonstop",aroundTheClock:"Nonstop",knowMore:"dozvědět se více",toClose:"do uzavření",monday:"pondělí",tuesday:"úterý",wednesday:"středa",thursday:"čtvrtek",friday:"pátek",saturday:"sobota",sunday:"neděle",mon:"po",tue:"út",wed:"st",thu:"čt",fri:"pá",sat:"so",sun:"ne",toLunch:"do polední přestávky",today:"Dnes",lessThenHour:"méně než hodinu",youCouldLate:"nemusíte to stihnout",workingTime:"pracovní doba",showAllOrgInRubric:"Zobrazit všechny organizace v rubrice",todayIsRestDay:"Dnes je zavřeno",internet:"Platba prostřednictvím Internetu",noncash:"Bezhotovostní platba",goldcrown:"Zolotaja Korona",dinersclub:"Diners Club",mastercard:"Mastercard",maestrocard:"MaestroCard",visa:"Visa",cash:"Platba hotově",americanexpress:"American Express",hour:"hodinu",less:"méně",_in:"Za",isClosingOnDinner:"začíná polední přestávka"},es:{pluralRules:function(t){return 1===t?0:t>=2&&t<=4?1:2},btnBack:"Atrás",btnFindWay:"Ir para allá",btnEntrance:"Buscar acceso",linkReviews:["comentario","comentarios","comentarios"],linkPhoto:["foto","fotos","fotos"],linkBooklet:"Folleto",tommorow:"mañana",afterTommorow:"pasado mañana",afterWeek:"en una semana más",nextSun:"el domingo",nextMon:"el lunes",nextTue:"el martes",nextWed:"el miércoles",nextThu:"el jueves",nextFri:"el viernes",nextSat:"el sábado",willOpen:"se abrirá",willClose:"se cerrará",isOpen:"Abierto",openTill:"Abierto hasta ",closeIn:"Se cerrará dentro de ",openAt:"Se abrirá el ",openIn:"Se abrirá dentro de ",open:"Se abrirá ",nHours:["hora","horas","horas"],nMins:["minuto","minutos","minutos"],lunch:"hora de colación",Lunch:"Hora de colación. ",workingDays:"Días laborables",weekdays:"Días laborables",restDay:["cerrado","cerrado"],reviewsOnFlamp:"Comentarios en Flamp",writeReviewOnFlamp:"Escribir un comentario en Flamp",payment:"pago",everyday:"Cada día desde",worksAroundTheClock:"Abierto las 24 horas",aroundTheClock:"24 horas",knowMore:"para saber más",toClose:"hasta el cierre",monday:"lunes",tuesday:"martes",wednesday:"miércoles",thursday:"jueves",friday:"viernes",saturday:"sábado",sunday:"domingo",mon:"lun",tue:"mar",wed:"mié",thu:"jue",fri:"vie",sat:"sáb",sun:"dom",toLunch:"antes de la hora de colación",today:"Hoy",lessThenHour:"menos de una hora",youCouldLate:"puede ser que no alcanzas a llegar",workingTime:"horario de trabajo",showAllOrgInRubric:"Mostrar todas las empresas de la categoría",todayIsRestDay:"Hoy cerrado",internet:"Pago por Internet",noncash:"Pago sin efectivo",goldcrown:"Zolotaya Korona",dinersclub:"Diners Club",mastercard:"Mastercard",maestrocard:"MaestroCard",visa:"Visa",cash:"Pago en efectivo",americanexpress:"American Express",hour:"hora",less:"menos de",_in:"Dentro de",isClosingOnDinner:"se cierra por hora de colación"}},DG.Traffic=DG.TileLayer.extend({options:{period:0,disableLabel:!1,updateWhenIdle:!1},statics:{Dictionary:{}},initialize:function(t){this._tileUrl=DG.config.protocol+(DG.Browser.retina?DG.config.retinaTrafficTileServer:DG.config.trafficTileServer),this._metaUrl=DG.config.protocol+(DG.Browser.retina?DG.config.retinaTrafficMetaServer:DG.config.trafficMetaServer),this._timeUrl=DG.config.protocol+DG.config.trafficTimestampServer,this._updateInterval=DG.config.trafficLayerUpdateInterval,this._layersOptions={errorTileUrl:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",subdomains:"012345679",maxNativeZoom:18,detectRetina:DG.config.detectRetina,minZoom:DG.config.trafficLayerMinZoom},t=DG.setOptions(this,DG.extend(t||{},this._layersOptions)),this._metaLayer=DG.Meta.layer(null,{detectRetina:t.detectRetina,maxNativeZoom:t.maxNativeZoom,dataFilter:DG.bind(this._processData,this),minZoom:t.minZoom}),this._isDg=!0,this._isOnRequest=!1,this._onTimer=DG.bind(this._onTimer,this),DG.TileLayer.prototype.initialize.call(this,this._tileUrl,t)},onAdd:function(t){if(this._initContainer(),this._levels={},this._tiles={},this.options.period)this.options.timestampString="",this._onAddSetParams(t);else{var e=this;this._isOnRequest=!0,this._getTimestampString().then(function(t){e.options.timestampString="?"+t},function(){e.options.timestampString="?"+(new Date).getTime()}).then(function(){e._isOnRequest=!1,e._map&&e._onAddSetParams(t)})}},onRemove:function(t){this._isOnRequest?(L.DomUtil.remove(this._container),t._removeZoomLimit(this),this._container=null):(clearInterval(this._updateTimer),t.removeLayer(this._metaLayer).off("projectchange projectleave",this._onMapProjectChange,this),this.options.disableLabel||(this._metaLayer.off(this._layerEventsListeners,this),this._map.removeLayer(this._labelHelper),this._labelHelper=null,this._map.off("langchange",this._updateLang,this)),DG.TileLayer.prototype.onRemove.call(this,t))},update:function(){var t=this;this._getTimestampString().then(function(e){t.options.timestampString="?"+e},function(){t.options.timestampString="?"+(new Date).getTime()}).then(function(){t.fire("update",{timestamp:t.options.timestampString}),t._layerEventsListeners.mouseout.call(t),t._metaLayer.getOrigin().setURL(t._prepareMetaURL(),t),t.redraw()})},getSubdomain:function(){return this._layersOptions.subdomains[Math.floor(Math.random()*this._layersOptions.subdomains.length)]},_updateLang:function(){var t=this._map.getLang();"ar"===t?this._labelHelper.options.textDirection="rtl":this._labelHelper.options.textDirection="auto"},_getTimestampString:function(){return DG.ajax(DG.Util.template(this._timeUrl,DG.extend({s:this.getSubdomain(),projectCode:this._map.projectDetector.getProject().code},this.options||{})),{type:"get"})},_onTimer:function(){0===this.options.period&&this.update()},_processData:function(t,e){var i=e.scaleBy(this.getTileSize()),n=DG.bind(this._polygonLngLatToPoints,this,i),o={};return DG.Util.isArray(t)?(t[1].forEach(function(t){this[t.graph_id]=t.speed_text},o),t[0].map(function(t){return{id:t.graph_id,speed:o[t.graph_id],geometry:DG.Wkt.toGeoJSON(t.geometry[0].object[0])}}).filter(function(t){return"Polygon"==t.geometry.type||"MultiPolygon"==t.geometry.type}).map(function(t){var e=t.geometry;return"Polygon"==e.type?e.coordinates=n(e.coordinates):"MultiPolygon"==e.type&&(e.coordinates=e.coordinates.map(n)),t})):[]},_polygonLngLatToPoints:function(t,e){var i=this._map;return e.map(function(e){return e.map(function(e){return i.project([e[1],e[0]]).round().subtract(t)})})},_prepareMetaURL:function(){return DG.Util.template(this._metaUrl,DG.extend({x:"{x}",y:"{y}",z:"{z}",s:"{s}"},this.options))},_updateLayerProject:function(){var t=this._map.projectDetector.getProject();DG.setOptions(this,t&&t.traffic?{projectCode:t.code,bounds:t.latLngBounds,minZoom:Math.max(t.minZoom,this._layersOptions.minZoom),maxZoom:t.maxZoom}:{maxZoom:t?t.maxZoom:DG.config.projectLeaveMaxZoom,minZoom:0}),this._metaLayer.getOrigin().setURL(this._prepareMetaURL())},_onMapProjectChange:function(){this._updateLayerProject(),this.redraw()},_layerEventsListeners:{mouseover:function(t){this._setCursor("pointer"),this._labelHelper&&t.meta.speed&&this._labelHelper.setPosition(t.latlng).setContent(t.meta.speed+" "+this.t("speed_unit_km_h")).addTo(this._map)},mouseout:function(){this._setCursor(""),this._labelHelper&&this._map.removeLayer(this._labelHelper)},mousemove:function(t){this._labelHelper&&this._labelHelper.setPosition(t.latlng)}},_setCursor:function(t){this._map.getContainer().style.cursor=t},_onAddSetParams:function(t){this._updateLayerProject(),t.addLayer(this._metaLayer).on("projectchange projectleave",this._onMapProjectChange,this),this.options.disableLabel||(this._metaLayer.on(this._layerEventsListeners,this),this._labelHelper=DG.label(),this._map.on("langchange",this._updateLang,this)),this._updateInterval&&(this._updateTimer=setInterval(this._onTimer,this._updateInterval)),this._resetView(),this._update()},_update:function(t){this._isOnRequest||DG.TileLayer.prototype._update.call(this,t)}}),DG.Traffic.include(DG.Locale),DG.traffic=function(t){return new DG.Traffic(t)},DG.Traffic.Dictionary.ru={speed_unit_km_h:"км/ч"},DG.Traffic.Dictionary.it={speed_unit_km_h:"km/h"},DG.Traffic.Dictionary.cs={speed_unit_km_h:"km/h"},DG.Traffic.Dictionary.es={speed_unit_km_h:"km/h"},DG.Traffic.Dictionary.en={speed_unit_km_h:"km/h"},DG.Traffic.Dictionary.ar={speed_unit_km_h:"كم/ساعة"},DG.Control.Traffic=DG.RoundControl.extend({options:{position:"topright",iconClass:"traffic"},statics:{Dictionary:{}},initialize:function(t){this._trafficClass="dg-traffic-control",this._controlHideClass="dg-control-round_is-hidden_true",DG.setOptions(this,t),DG.extend(this,{_active:!1,_trafficLayer:null}).on(this._controlEvents,this)},_controlEvents:{add:function(){this._trafficLayer=DG.traffic(),this._map.on("zoomend projectchange projectleave",this._updateControlVisibility,this)},click:function(){this._active=!this._active,this._active?(this.setState("active"),this._showTraffic()):(this.setState(""),this._hideTraffic())},remove:function(){this.off(this._controlEvents,this),this._map.off("zoomend projectchange projectleave",this._updateControlVisibility,this),this._active&&(this._map.removeLayer(this._trafficLayer),this._active=!1),this._trafficLayer=null}},_showTraffic:function(){this._updateTrafficScore(),this._map.addLayer(this._trafficLayer)},_hideTraffic:function(){this._handleDom("remove"),this._map.removeLayer(this._trafficLayer)},_handleDom:function(t,e){var i=this._link;i.innerHTML=isNaN(e)?"":e,DG.DomUtil[t+"Class"](i,this._trafficClass),DG.DomUtil[t+"Class"](i,this._trafficClass+"_color_"+this._scoreRate)},_getTrafficColor:function(t){var e="green";return t>7?e="red":t>4&&(e="yellow"),e},_updateControlVisibility:function(){var t=this._map.projectDetector.getProject(),e=t&&t.traffic,i=this._map.getZoom()=0?Math.min(t,e):e-t,n=Array.prototype.splice.apply(this._points,arguments).map(function(t){return this._layers.mouse.removeLayer(t),t.off().getLatLng()},this),o=this._points.length;if(o){for(var r=i;r0&&e1&&this._points[i-1].setPointStyle(this.options.iconStyles.small),this._updateDistance(),this._normalizeRulerPoints()}return DG.Browser.touch&&this._lineMarkerHelper&&this._lineMarkerHelper.collapse(),this._fireChangeEvent(),n},addLatLng:function(t){var e=this._points[this._points.length-1]||null;return t=DG.latLng(t),e&&(t=this._normalizeLatLng(t,e.getLatLng())),this.spliceLatLngs(this._points.length,0,t),this},getLatLngs:function(){return this._points.map(function(t){return t.getLatLng()})},setLatLngs:function(t){var e=t.slice();return e.unshift(0,this._points.length),this.spliceLatLngs.apply(this,e),this},_reset:function(){DG.extend(this,{_lineMarkerHelper:null,_morphingNow:!1})},_lineMouseEvents:{click:function(t){var e=t.layer;if(e instanceof DG.Marker&&e._pos!==this._points.length-1)this._lineMarkerHelper&&this._lineMarkerHelper.collapse(),e.setText(this._getFormatedDistance(e)),this._lineMarkerHelper=e;else if(e instanceof DG.Path&&this.options.editable){var i=t.latlng,n=e._point._pos+1;this.spliceLatLngs(n,0,i)}},mouseover:function(t){var e=t.layer;if(e._hovered=!0,!this._morphingNow)if(e instanceof DG.Marker&&e._pos!==this._points.length-1)e.setText(this._getFormatedDistance(e));else if(e instanceof DG.Path&&!this._lineMarkerHelper){var i=e._point;this._lineMarkerHelper=this._addRunningLabel(this._nearestPoint(i._legs.middle,t.latlng),i)}},mouseout:function(t){var e=t.layer,i=t.originalEvent;e._hovered=!1,this._morphingNow||e._pos===this._points.length-1||(e instanceof DG.Marker?(!i.relatedTarget||i.relatedTarget!==e.querySelector("container")&&i.relatedTarget.parentNode!==e.querySelector("container"))&&e.collapse():this._removeRunningLabel())},mousemove:function(t){if(!this._morphingNow&&this._lineMarkerHelper){var e=t.layer._point,i=this._nearestPoint(e._legs.middle,t.latlng);this._lineMarkerHelper.setLatLng(i).setText(this._getFormatedDistance(e,e.getLatLng().distanceTo(i)))}},layeradd:function(){Object.keys(this._layers).forEach(function(t){this._layers[t].bringToFront()},this)}},_fireChangeEvent:function(){this.fire("changed",{latlngs:this.getLatLngs()})},_addRunningLabel:function(t,e){var i=this._createPoint(t).addTo(this._layers.mouse,this._layers),n=this._map.getPane("rulerPane");return n.insertBefore(i._icon,n.lastElementChild),i.setText(this._getFormatedDistance(e,e.getLatLng().distanceTo(t)))},_removeRunningLabel:function(){this._lineMarkerHelper&&(this._layers.mouse.removeLayer(this._lineMarkerHelper),this._lineMarkerHelper=null)},_insertPointInLine:function(t){var e,i=this._lineMarkerHelper.getLatLng(),n=t.target._point._pos+1;if(L.Browser.ie){var o=t.originalEvent.target||t.originalEvent.srcElement,r=o.parentNode;r.appendChild(o)}L.DomEvent.stopPropagation(t.originalEvent),this.spliceLatLngs(n,0,i),e=this._points[n],e.setText(this._getFormatedDistance(e)),setTimeout(function(){if(document.createEvent){var t=document.createEvent("MouseEvents");t.initMouseEvent("mouseup",!1,!1,document.defaultView,1,0,0,0,0,!1,!1,!1,!1,1,e._icon),document.dispatchEvent(t),t=document.createEvent("MouseEvents"),t.initMouseEvent("mousedown",!1,!1,document.defaultView,1,0,0,0,0,!1,!1,!1,!1,1,e._icon),e._icon.dispatchEvent(t)}else e._icon.fireEvent("onMouseUp",DG.extend(document.createEventObject(),{button:1,bubbles:!1,cancelable:!1})),e._icon.fireEvent("onMouseDown",DG.extend(document.createEventObject(),{button:1,bubbles:!1,cancelable:!1}))},0),this._removeRunningLabel(),this._updateLegs(e)},_nearestPoint:function(t,e){for(var i,n,o=this,r=this._project(e),s=t.getLatLngs().map(function(t){return o._project(t)}),a=0;a180;)n+=i;return DG.latLng(t.lat,n)},_normalizeRulerPoints:function(t){t=t||this._points[0];var e,i,n,o,r,s=this,a=t._pos,l=[];for(e=a+1;e=0;e--)i=this._points[e],n=this._points[e+1],o=i.getLatLng(),r=this._normalizeLatLng(o,n.getLatLng()),r.equals(o)||(i.setLatLng(r),l.push(e));l.sort().reduce(function(t,e){var i=t&&t===e-1;return s._updateLegs(s._points[e],i),e},null)},_pointEvents:{drag:function(t){var e=t.target;this._normalizeRulerPoints(e),DG.Browser.touch||e===this._points[this._points.length-1]||e.setText(this._getFormatedDistance(e)),this._updateLegs(e),this._updateDistance()},dragend:function(t){var e=t.target;this._morphingNow=!1,e._hovered||e===this._points[this._points.length-1]||e.collapse(),this._fireChangeEvent()},dragstart:function(){DG.Browser.touch&&this._lineMarkerHelper&&this._lineMarkerHelper.collapse(),this._morphingNow=!0}},_deletePoint:function(t){var e=t.originalEvent,i=e.target||e.srcElement;"dg-ruler__label-remove-link"!==i.className&&"dg-ruler__remove-link-overlay"!==i.className||(DG.DomEvent.stop(t.originalEvent),this.spliceLatLngs(t.target._pos,1))},_degToRad:function(t){return Math.PI/180*t},_radToDeg:function(t){return 180/Math.PI*t},_project:function(t){return this._map?this._map.project(t):DG.CRS.EPSG3857.latLngToPoint(t,1)},_unproject:function(t){return this._map?this._map.unproject(t):DG.CRS.EPSG3857.pointToLatLng(t,1)},_calcAngle:function(t,e,i){e=this._normalizeLatLng(e,t),i=this._normalizeLatLng(i,t),t=this._project(t),e=this._project(e),i=this._project(i);var n=e.x-t.x,o=i.x-t.x,r=e.y-t.y,s=i.y-t.y,a=n*o+r*s,l=Math.sqrt(n*n+r*r),u=Math.sqrt(o*o+s*s);return Math.acos(a/(l*u))},_calcMidPoint:function(t,e){var i=this._degToRad(t.lng),n=this._degToRad(t.lat),o=this._degToRad(e.lng),r=this._degToRad(e.lat),s=Math.acos(Math.sin(n)*Math.sin(r)+Math.cos(n)*Math.cos(r)*Math.cos(i-o)),a=.5,l=Math.sin((1-a)*s)/Math.sin(s),u=Math.sin(a*s)/Math.sin(s),c=l*Math.cos(n)*Math.cos(i)+u*Math.cos(r)*Math.cos(o),h=l*Math.cos(n)*Math.sin(i)+u*Math.cos(r)*Math.sin(o),d=l*Math.sin(n)+u*Math.sin(r),_=Math.atan2(d,Math.sqrt(c*c+h*h)),p=Math.atan2(h,c);return DG.latLng(this._radToDeg(_),this._radToDeg(p))},_adaptiveSample:function(t,e,i,n){if(i>9)return[];n=n||this._calcMidPoint(t,e);var o=this._calcMidPoint(t,n),r=this._calcMidPoint(n,e),s=this._calcAngle(o,n,t),a=this._calcAngle(n,t,e),l=this._calcAngle(r,n,e),u=3.1;if(s>u&&a>u&&l>u)return[];var c=[];return c=c.concat(this._adaptiveSample(t,n,i+1,o)),c.push(n),c=c.concat(this._adaptiveSample(n,e,i+1,r))},_calcGreatCircle:function(t,e){if(e=this._normalizeLatLng(e,t),t.equals(e,1))return[t,e];if(180==Math.abs(e.lng-t.lng)){var i=t.lat+e.lat>0?90:-90;return[t,DG.latLng(i,t.lng),DG.latLng(i,e.lng),e]}var n=[];n.push(t),n=n.concat(this._adaptiveSample(t,e,0)),n.push(e);for(var o=1;o1e3?(t/=1e3,e="km",t>1e3?(t=t.toFixed(),t=t.slice(0,-3)+" "+t.slice(-3)):t=t.toFixed(2).split(".").join(this.t("delimiter"))):t=Math.round(t),[t||0," ",this.t(e)].join("")},_updateDistance:function(){this._map&&this._points.length&&this._points[this._points.length-1].setText(this._getFormatedDistance())}}),DG.ruler=function(t,e){return new DG.Ruler(t,e)},DG.Ruler.LayeredMarker=DG.Marker.extend({options:{draggable:!1,keyboard:!1,riseOnHover:!0,pane:"rulerMarkerPane",textDirection:"auto",iconHTML:['','
','
',' 0 км',' ',' ',"
"].join("\n")},statics:{domClass:"dg-ruler__label"},addTo:function(t,e){return Object.keys(this._layers).forEach(function(t){e[t].addLayer(this._layers[t])},this),this._viewport=e,DG.Marker.prototype.addTo.call(this.on("move",this._onMove),t)},onRemove:function(t){return Object.keys(this._layers).forEach(function(t){this._viewport[t].removeLayer(this._layers[t])},this),this.off("move",this._onMove),this._viewport=null,this._style=null,DG.Marker.prototype.onRemove.call(this,t)},setText:function(t){return this._iconCollapsed&&this.expand(),this._iconNodes.label.innerHTML=t,this._iconNodes.label.setAttribute("dir",this.options.textDirection),this},setPointStyle:function(t){return this._style!==t&&Object.keys(this._style=t).forEach(function(e){this._layers[e].setStyle(t[e])},this),this},expand:function(){return this._iconCollapsed=!1,this._iconNodes.container.style.display="block",this._iconNodes.spacer.style.display="none",this},collapse:function(){return this._iconCollapsed=!0,this._iconNodes.container.style.display="none",this._iconNodes.spacer.style.display="block",this},querySelector:function(t){return this._icon.querySelector("."+DG.Ruler.LayeredMarker.domClass+"-"+t)},_onMove:function(t){var e=t.latlng;Object.keys(this._layers).forEach(function(t){this._layers[t].setLatLng(e)},this)},_initIcon:function(){DG.Marker.prototype._initIcon.call(this),this._iconCollapsed=!0,this._icon.style.width="",this._iconNodes={label:this.querySelector("distance"),spacer:this.querySelector("spacer"),container:this.querySelector("container")}},_setPos:function(t){L.DomUtil.setPosition(this._icon,t),this._shadow&&L.DomUtil.setPosition(this._shadow,t)},_afterInit:function(){this._layers=this.options.layers||null,this.options.icon=DG.divIcon({className:DG.Ruler.LayeredMarker.domClass,iconSize:[26,26],iconAnchor:[13,13],html:this.options.iconHTML})}}),DG.Ruler.LayeredMarker.addInitHook("_afterInit"),DG.Ruler.layeredMarker=function(t,e){return new DG.Ruler.LayeredMarker(t,e)};var rulerRenderer=DG.svg({pane:"rulerPane"}),hoverRenderer=DG.svg({pane:"rulerPane"});DG.Ruler.mergeOptions({pathStyles:{back:{color:"#fff",opacity:1,weight:12,pointerEvents:"none",noClip:!0,renderer:rulerRenderer,smoothFactor:0},middle:{color:"#0da5d5",opacity:1,weight:4,pointerEvents:"none",noClip:!0,renderer:rulerRenderer,smoothFactor:0},mouse:{color:"#fff",opacity:DG.Browser.vml?.1:0,weight:DG.Browser.touch?40:20,pointerEvents:"painted",noClip:!0,renderer:hoverRenderer,smoothFactor:0}},iconStyles:{large:{back:{color:"#fff",opacity:1,fillColor:"#fff",fillOpacity:1,weight:1,radius:13,renderer:rulerRenderer},middle:{color:"#0da5d5",opacity:1,fillColor:"#0da5d5",fillOpacity:1,weight:1,radius:9,renderer:rulerRenderer},front:{color:"#fff",opacity:1,fillColor:"#0da5d5",fillOpacity:1,weight:4,radius:5,renderer:rulerRenderer}},small:{back:{color:"#fff",opacity:1,fillColor:"#fff",fillOpacity:1,weight:1,radius:9,renderer:rulerRenderer},middle:{color:"#0da5d5",opacity:1,fillColor:"#0da5d5",fillOpacity:1,weight:1,radius:5,renderer:rulerRenderer},front:{color:"#fff",opacity:1,fillColor:"#0da5d5",fillOpacity:1,weight:4,radius:2,renderer:rulerRenderer}}}}),DG.Ruler.Dictionary.ru={km:"км",m:"м",delimiter:","},DG.Ruler.Dictionary.it={km:"km",m:"m",delimiter:","},DG.Ruler.Dictionary.cs={km:"km",m:"m",delimiter:","},DG.Ruler.Dictionary.es={km:"km",m:"m",delimiter:","},DG.Ruler.Dictionary.en={km:"km",m:"m",delimiter:"."},DG.Ruler.Dictionary.ar={km:"كم",m:"م",delimiter:"."},DG.Control.Ruler=DG.RoundControl.extend({options:{position:"topright",iconClass:"ruler"},statics:{Dictionary:{}},initialize:function(t){DG.setOptions(this,t),DG.extend(this,{_active:!1,_drawingHelper:null,_geoclickerNeedRestore:!1}).on(this._controlEvents,this)},_controlEvents:{add:function(){this._drawingHelper=DG.ruler([])},click:function(){this._active=!this._active,this._active?(this.setState("active"),this._startDrawing()):(this.setState(""),this._finishDrawing())},remove:function(){this.off(this._controlEvents,this),this._active&&(this._map.removeLayer(this._drawingHelper),this._active=!1),this._drawingHelper=null}},_startDrawing:function(){this._map.addLayer(this._drawingHelper).on("click",this._handleMapClick,this),this._map.fire("rulerstart")},_finishDrawing:function(){this._map.off("click",this._handleMapClick,this).removeLayer(this._drawingHelper),this._drawingHelper.setLatLngs([]),this._map.fire("rulerend")},_handleMapClick:function(t){this._drawingHelper.addLatLng(t.latlng)},_renderTranslation:function(){this._link.title=this.t("button_title"); }}),DG.control.ruler=function(t){return new DG.Control.Ruler(t)},DG.Map.mergeOptions({rulerControl:!1}),DG.Map.addInitHook(function(){this.options.rulerControl&&(this.rulerControl=DG.control.ruler(this.options.rulerControl),this.addControl(this.rulerControl))}),DG.Control.Ruler.Dictionary.ru={button_title:"Линейка"},DG.Control.Ruler.Dictionary.it={button_title:"Righello"},DG.Control.Ruler.Dictionary.cs={button_title:"Pravítko"},DG.Control.Ruler.Dictionary.es={button_title:"Regla"},DG.Control.Ruler.Dictionary.en={button_title:"Ruler"},DG.Control.Ruler.Dictionary.ar={button_title:"مسطرة"},function(t){function e(t,e){return t.w('")}function i(t,e){return t.s(e.get(["btn"],!1),e,{block:n},{})}function n(t,e){return t.w('")}function o(t,e){return t.w('href="javascript:void(0)"')}function r(t,e){return t.w("href=").f(e.get(["open2gis_link"],!1),e,"h").w(' target="_blank" name=').f(e.get(["open2gis_name"],!1),e,"h")}function s(t,e){return t.w('')}return t.register("DGAttribution/copyright",e),e.__dustBody=!0,i.__dustBody=!0,n.__dustBody=!0,o.__dustBody=!0,r.__dustBody=!0,s.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.w('
').f(e.get(["purpose"],!1),e,"h").w("
").s(e.get(["drilldown"],!1),e,{block:i},{})}function i(t,e){return t.w('
').f(e.get(["drilldown"],!1),e,"h").w("
")}return t.register("DGGeoclicker/cityarea",e),e.__dustBody=!0,i.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.w('
').f(e.get(["address"],!1),e,"h").s(e.get(["comment"],!1),e,{block:i},{}).w("
")}function i(t,e){return t.w('— ').f(e.getPath(!0,[]),e,"h").w("")}return t.register("DGGeoclicker/firmCardAddr",e),e.__dustBody=!0,i.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.s(e.get(["groups"],!1),e,{block:i},{})}function i(t,e){return t.s(e.get(["contacts"],!1),e,{block:n},{})}function n(t,e){return t.h("select",e,{block:o},{key:e.get(["type"],!1),type:"string"},"h")}function o(t,e){return t.h("eq",e,{block:r},{value:"phone",type:"string"},"h").h("eq",e,{block:a},{value:"fax",type:"string"},"h").h("eq",e,{block:u},{value:"website",type:"string"},"h").h("eq",e,{block:c},{value:"email",type:"string"},"h")}function r(t,e){return t.w('
').f(e.get(["text"],!1),e,"h").s(e.get(["comment"],!1),e,{block:s},{}).w("
")}function s(t,e){return t.w('—  ').f(e.getPath(!0,[]),e,"h").w("")}function a(t,e){return t.w('
').f(e.get(["text"],!1),e,"h").s(e.get(["comment"],!1),e,{block:l},{}).w("
")}function l(t,e){return t.w('—  ').f(e.getPath(!0,[]),e,"h").w("")}function u(t,e){return t.w('")}function c(t,e){return t.w('")}return t.register("DGGeoclicker/firmCardContacts",e),e.__dustBody=!0,i.__dustBody=!0,n.__dustBody=!0,o.__dustBody=!0,r.__dustBody=!0,s.__dustBody=!0,a.__dustBody=!0,l.__dustBody=!0,u.__dustBody=!0,c.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.w('
').f(e.get(["firmName"],!1),e,"h").w("
").x(e.get(["links"],!1),e,{block:i},{})}function i(t,e){return t.w('")}function n(t,e){return t.h("eq",e,{"else":o,block:a},{key:l,value:"flamp_stars",type:"string"},"h")}function o(t,e){return t.w('").f(e.get(["label"],!1),e,"h").w("")}function r(t,e){return t.w('href="javascript:void(0)"')}function s(t,e){return t.w("href=").f(e.get(["href"],!1),e,"h").w(' target="_blank"')}function a(t,e){return t.w('
')}function l(t,e){return t.f(e.get(["name"],!1),e,"h")}return t.register("DGGeoclicker/firmCardHeader",e),e.__dustBody=!0,i.__dustBody=!0,n.__dustBody=!0,o.__dustBody=!0,r.__dustBody=!0,s.__dustBody=!0,a.__dustBody=!0,l.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.s(e.get(["rubrics"],!1),e,{block:i},{})}function i(t,e){return t.w('
').x(e.get(["primary"],!1),e,{block:n},{}).x(e.get(["additional"],!1),e,{block:r},{}).w("
")}function n(t,e){return t.w('
    ').s(e.get(["primary"],!1),e,{block:o},{}).w("
")}function o(t,e){return t.w('
  • ').f(e.get(["name"],!1),e,"h").w("
  • ")}function r(t,e){return t.w('
      ').s(e.get(["additional"],!1),e,{block:s},{}).w("
    ")}function s(t,e){return t.w('
  • ').f(e.get(["name"],!1),e,"h").w("
  • ")}return t.register("DGGeoclicker/firmCardRubric",e),e.__dustBody=!0,i.__dustBody=!0,n.__dustBody=!0,o.__dustBody=!0,r.__dustBody=!0,s.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.w('
    ').x(e.get(["schedule"],!1),e,{block:s},{}).w("
    ")}function i(t,e){return t.w("false")}function n(t,e){return t.w("true")}function o(t,e){return t.w("false")}function r(t,e){return t.w("true")}function s(t,e){return t.x(e.getPath(!1,["forecast","today"]),e,{block:a},{}).s(e.getPath(!1,["forecast","now"]),e,{block:h},{}).nx(e.getPath(!1,["schedule","everyday"]),e,{block:_},{})}function a(t,e){return t.w('
    ').f(e.getPath(!1,["forecast","today","text"]),e,"h").w(" ").x(e.getPath(!1,["forecast","today","from"]),e,{block:l},{}).x(e.getPath(!1,["schedule","lunch"]),e,{block:u},{}).w("
    ")}function l(t,e){return t.f(e.getPath(!1,["forecast","today","from"]),e,"h").w("–").f(e.getPath(!1,["forecast","today","to"]),e,"h")}function u(t,e){return t.w(", ").f(e.getPath(!1,["forecast","today","lunchStr"]),e,"h").w(" ").s(e.getPath(!1,["schedule","lunch"]),e,{block:c},{})}function c(t,e){return t.f(e.get(["from"],!1),e,"h").w("–").f(e.get(["to"],!1),e,"h")}function h(t,e){return t.w('
    ').f(e.getPath(!0,[]),e,"h").s(e.getPath(!1,["schedule","comment"]),e,{block:d},{}).w("
    ")}function d(t,e){return t.w(", ").f(e.getPath(!0,[]),e,"h")}function _(t,e){return t.x(e.getPath(!1,["schedule","week"]),e,{block:p},{})}function p(t,e){return t.x(e.getPath(!1,["schedule","week","evently"]),e,{block:m},{}).x(e.getPath(!1,["schedule","week","table"]),e,{block:D},{})}function m(t,e){return t.w('
    ').s(e.getPath(!1,["schedule","week","evently"]),e,{block:f},{}).w("
    ")}function f(t,e){return t.w('
    ').x(e.get(["alltime"],!1),e,{block:g},{}).x(e.get(["everyday"],!1),e,{"else":v,block:y},{}).x(e.get(["holiday"],!1),e,{"else":b,block:k},{}).w("
    ")}function g(t,e){return t.f(e.get(["alltimeStr"],!1),e,"h")}function v(t,e){return t.f(e.get(["dayList"],!1),e,"h")}function y(t,e){return t.f(e.getPath(!1,["forecast","today","text"]),e,"h")}function b(t,e){return t.w(' ').f(e.get(["from"],!1),e,"h").w("–").f(e.get(["to"],!1),e,"h").w("").s(e.get(["lunch"],!1),e,{block:w},{})}function w(t,e){return t.w("

    ").f(e.get(["lunchStr"],!1),e,"h").w('—').f(e.get(["from"],!1),e,"h").w("–").f(e.get(["to"],!1),e,"h").w("

    ")}function k(t,e){return t.w(' — ').f(e.get(["holidayStr"],!1),e,"h").w("")}function D(t,e){return t.w('
     
    ').x(e.getPath(!1,["schedule","week","hasLunch"]),e,{block:L},{}).w("
    ").s(e.getPath(!1,["schedule","week","table"]),e,{block:x},{}).w("
    ")}function L(t,e){return t.w('
    ')}function x(t,e){return t.h("if",e,{block:P},{cond:G},"h").w('
    ').f(e.get(["key"],!1),e,"h").w('
    ').x(e.get(["from"],!1),e,{"else":T,block:E},{}).w("
    ").s(e.get(["lunch"],!1),e,{block:O},{}).w("
    ").h("if",e,{block:S},{cond:A},"h")}function P(t,e){return t.w('')}function G(t,e){return t.w("(").f(e.get(["$idx"],!1),e,"h").w(" == ").f(e.get(["$len"],!1),e,"h").w(" - 2)")}function C(t,e){return t.w(" dg-schedule__tc_active_true")}function T(t,e){return t.w("–")}function E(t,e){return t.f(e.get(["from"],!1),e,"h").w(" ").f(e.get(["to"],!1),e,"h")}function O(t,e){return t.w('
    ').x(e.get(["from"],!1),e,{"else":z,block:M},{}).w("
    ")}function z(t,e){return t.w("–")}function M(t,e){return t.f(e.get(["from"],!1),e,"h").w(" ").f(e.get(["to"],!1),e,"h")}function S(t,e){return t.w("
    ")}function A(t,e){return t.w("(").f(e.get(["$idx"],!1),e,"h").w(" == ").f(e.get(["$len"],!1),e,"h").w(")")}return t.register("DGGeoclicker/firmCardSchedule",e),e.__dustBody=!0,i.__dustBody=!0,n.__dustBody=!0,o.__dustBody=!0,r.__dustBody=!0,s.__dustBody=!0,a.__dustBody=!0,l.__dustBody=!0,u.__dustBody=!0,c.__dustBody=!0,h.__dustBody=!0,d.__dustBody=!0,_.__dustBody=!0,p.__dustBody=!0,m.__dustBody=!0,f.__dustBody=!0,g.__dustBody=!0,v.__dustBody=!0,y.__dustBody=!0,b.__dustBody=!0,w.__dustBody=!0,k.__dustBody=!0,D.__dustBody=!0,L.__dustBody=!0,x.__dustBody=!0,P.__dustBody=!0,G.__dustBody=!0,C.__dustBody=!0,T.__dustBody=!0,E.__dustBody=!0,O.__dustBody=!0,z.__dustBody=!0,M.__dustBody=!0,S.__dustBody=!0,A.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.w('').f(e.getPath(!1,["firm","name"]),e,"h").w("")}return t.register("DGGeoclicker/firmlistItem",e),e.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.x(e.get(["payments"],!1),e,{block:i},{})}function i(t,e){return t.w('
      ').s(e.get(["payments"],!1),e,{block:n},{}).w("
    ")}function n(t,e){return t.w('
  • ').f(e.getPath(!0,[]),e,"h").w("
  • ")}return t.register("DGGeoclicker/frimCardPayments",e),e.__dustBody=!0,i.__dustBody=!0,n.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.s(e.get(["address"],!1),e,{block:i},{}).s(e.get(["purpose"],!1),e,{block:r},{}).s(e.get(["attractions"],!1),e,{block:s},{})}function i(t,e){return t.w('
    ').s(e.getPath(!1,["address","header"]),e,{block:n},{}).s(e.getPath(!1,["address","drilldown"]),e,{block:o},{}).w("
    ")}function n(t,e){return t.w('
    ').f(e.getPath(!0,[]),e,"h").w("
    ")}function o(t,e){return t.w('
    ').f(e.getPath(!0,[]),e,"h").w("
    ")}function r(t,e){return t.w('
    ').f(e.getPath(!0,[]),e,"h").w("
    ")}function s(t,e){return t.w('
    ').f(e.getPath(!0,[]),e,"h").w("
    ")}return t.register("DGGeoclicker/house",e),e.__dustBody=!0,i.__dustBody=!0,n.__dustBody=!0,o.__dustBody=!0,r.__dustBody=!0,s.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.w('
    ')}function i(t,e){return t.w("false")}function n(t,e){return t.w("true")}function o(t,e){return t.w(" dg-preloader_size_small")}return t.register("DGGeoclicker/loader",e),e.__dustBody=!0,i.__dustBody=!0,n.__dustBody=!0,o.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.w('")}return t.register("DGGeoclicker/popupFooter",e),e.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.x(e.get(["btns"],!1),e,{block:i},{})}function i(t,e){return t.w('
    ').s(e.get(["btns"],!1),e,{block:n},{}).w("
    ")}function n(t,e){return t.w('")}function o(t,e){return t.w(" dg-popup__footer-icon-button")}function r(t,e){return t.w('href="javascript:void(0)"')}function s(t,e){return t.w("href=").f(e.get(["href"],!1),e,"h").w(' target="_blank"')}return t.register("DGGeoclicker/popupFooterBtns",e),e.__dustBody=!0,i.__dustBody=!0,n.__dustBody=!0,o.__dustBody=!0,r.__dustBody=!0,s.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.s(e.get(["title"],!1),e,{block:i},{})}function i(t,e){return t.w('
    ').f(e.getPath(!0,[]),e,"h").w("
    ")}return t.register("DGGeoclicker/popupHeader",e),e.__dustBody=!0,i.__dustBody=!0,e}(dust),function(t){function e(t,e){return t.s(e.get(["purpose"],!1),e,{block:i},{}).s(e.get(["address"],!1),e,{block:n},{}).s(e.get(["description"],!1),e,{block:s},{})}function i(t,e){return t.w('
    ').f(e.getPath(!0,[]),e,"h").w("
    ")}function n(t,e){return t.w('
    ').s(e.getPath(!1,["address","header"]),e,{block:o},{}).s(e.getPath(!1,["address","drilldown"]),e,{block:r},{}).w("
    ")}function o(t,e){return t.w('
    ').f(e.getPath(!0,[]),e,"h").w("
    ")}function r(t,e){return t.w('
    ').f(e.getPath(!0,[]),e,"h").w("
    ")}function s(t,e){return t.w('
    ').f(e.getPath(!0,[]),e,"h").w("
    ").s(e.get(["showMoreText"],!1),e,{block:a},{})}function a(t,e){return t.w('').f(e.getPath(!0,[]),e,"h").w("")}return t.register("DGGeoclicker/sight",e),e.__dustBody=!0,i.__dustBody=!0,n.__dustBody=!0,o.__dustBody=!0,r.__dustBody=!0,s.__dustBody=!0,a.__dustBody=!0,e}(dust),DG.fallbackProjectsList=JSON.parse('[{"bounds":"POLYGON((89.710795 54.632572,89.917767 54.765465,90.308713 54.738921,90.33171 54.77873,90.400701 54.844991,90.515685 54.911144,90.768651 54.911144,90.860638 54.85823,90.929629 54.85823,90.929629 54.8185,90.952626 54.805248,90.929629 54.725643,90.906632 54.71236,90.906632 54.659186,91.06761 54.59262,91.136601 54.579294,91.136601 54.552628,91.205591 54.539289,91.274582 54.485888,91.251585 54.419038,91.274582 54.405655,91.596538 54.432417,91.619535 54.419038,91.757516 54.419038,91.872501 54.35208,91.872501 54.311852,91.826507 54.285012,91.826507 54.150548,91.757516 54.09664,91.780513 54.056163,91.80351 53.961562,91.849504 53.920953,91.826507 53.880305,91.826507 53.771716,91.849504 53.758122,91.826507 53.635583,91.80351 53.485328,91.941491 53.444257,91.964488 53.361995,91.872501 53.307066,91.826507 53.265822,91.80351 53.196994,91.665529 53.155645,91.619535 53.100449,91.642532 52.920575,91.665529 52.906708,91.688526 52.865079,91.665529 52.851193,91.596538 52.753872,91.458557 52.712096,91.274582 52.712096,91.274582 52.726026,91.205591 52.7817,90.99862 52.934438,90.768651 53.072825,90.653667 53.196994,90.653667 53.224539,90.69966 53.279574,90.768651 53.320805,90.791648 53.361995,90.906632 53.403146,90.929629 53.444257,91.044613 53.485328,91.044613 53.540028,90.69966 53.608304,90.446695 53.676469,90.33171 53.717316,90.193729 53.839617,90.216726 53.934494,90.193729 53.97509,90.124739 54.042661,89.986757 54.204386,89.96376 54.204386,89.96376 54.217835,89.917767 54.271585,89.825779 54.405655,89.710795 54.632572))","code":"abakan","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"69","name":"Абакан","time_zone":{"name":"Asia/Krasnoyarsk","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((49.788226 44.903867,49.788226 45.017774,49.880214 45.163892,49.972201 45.196313,50.133179 45.212516,50.363148 45.212516,50.547123 45.147675,50.708101 45.098997,50.869079 45.131454,51.099048 45.309637,51.168039 45.390445,51.283023 45.503383,51.765957 45.616094,52.156904 45.551715,52.294885 45.567817,52.455863 45.616094,52.547851 45.74463,52.869807 46.000816,52.984791 46.04872,52.984791 46.064678,53.053782 46.080632,53.168766 46.032756,53.191763 46.016789,53.674698 46.016789,53.95066 46.160333,53.996654 46.239918,54.249619 46.255822,54.341607 46.255822,54.548579 46.303504,54.68656 46.319388,54.847538 46.367015,55.05451 46.367015,55.077507 46.382882,55.284479 46.367015,55.468454 46.493817,55.537444 46.477983,55.629432 46.4146,55.767413 46.4146,55.836403 46.398743,55.8594 46.287614,55.836403 46.27172,55.997382 46.22401,56.020378 46.208098,56.089369 46.192181,56.15836 46.144402,56.22735 46.128466,56.273344 46.144402,56.480316 46.128466,56.52631 46.080632,56.549306 46.000816,56.5953 45.920885,56.641294 45.66433,56.664291 45.648256,56.710285 45.325808,56.733281 45.196313,56.710285 45.180105,55.997382 45.001515,55.997382 41.3126,55.905394 41.3126,55.79041 41.260759,55.767413 41.278044,55.652428 41.260759,55.445457 41.24347,55.330472 41.364399,55.261482 41.416158,55.100504 41.605586,55.05451 41.691506,54.939525 41.811602,54.916529 41.845874,54.939525 41.897247,54.709557 42.068194,54.456591 42.221653,54.341607 42.272723,54.272616 42.340753,54.157632 42.357749,53.996654 42.323752,53.927663 42.323752,53.58271 42.272723,53.490723 42.238681,53.444729 42.238681,53.191763 42.153495,53.076779 42.136444,53.053782 42.119388,52.984791 42.085263,52.685832 41.897247,52.501857 41.76016,52.340879 41.708677,52.248892 41.708677,52.225895 41.76016,52.225895 41.99987,52.202898 42.119388,52.225895 42.20462,52.294885 42.289737,52.40987 42.476591,52.386873 42.5444,52.317882 42.595208,52.202898 42.629058,51.903938 42.662889,51.74296 42.7136,51.719963 42.764271,51.67397 42.798028,51.604979 42.899189,51.535989 42.949708,51.421004 42.966538,51.260026 42.983364,51.122045 43.033813,51.099048 43.050621,51.053054 43.117804,51.076051 43.452614,50.984064 43.519355,50.93807 43.602677,50.892076 43.635974,50.823086 43.768976,50.708101 43.934814,50.547123 44.116703,50.478132 44.13321,50.317154 44.149714,50.179173 44.199195,50.087186 44.281572,50.018195 44.380272,50.018195 44.544403,49.903211 44.757084,49.788226 44.903867))","code":"aktau","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true},"id":"196","name":"Актау","time_zone":{"name":"Asia/Aqtau","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((56.871263 50.308299,56.871263 50.367011,56.89426 50.410998,57.078235 50.557325,57.193219 50.586536,57.285206 50.571932,57.308203 50.528096,57.377194 50.513474,57.538172 50.528096,57.584166 50.498848,57.745144 50.484218,57.768141 50.440299,57.745144 50.367011,57.768141 50.322984,57.745144 50.278916,57.69915 50.249514,57.676153 50.190657,57.607163 50.190657,57.492178 50.146466,57.446184 50.116983,57.3312 50.131727,57.170222 50.116983,57.055238 50.131727,56.940253 50.175931,56.940253 50.264217,56.871263 50.308299))","code":"aktobe","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true},"id":"167","name":"Актобе","time_zone":{"name":"Asia/Aqtobe","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((73.727969 45.196313,73.727969 45.244908,73.773963 45.293462,74.003932 45.293462,74.003932 45.325808,73.980935 45.374293,73.911944 45.74463,73.980935 45.856857,74.026929 45.88888,74.049926 46.000816,74.16491 46.144402,74.739832 46.525471,75.015794 46.557107,75.33775 46.683467,75.521725 46.715011,75.590716 46.699241,75.797688 46.715011,75.820685 46.730776,76.07365 46.730776,76.211631 46.636117,76.372609 46.651905,76.4416 46.620324,76.533588 46.620324,76.533588 46.636117,76.602578 46.667688,76.625575 46.667688,76.763556 46.604527,76.855544 46.588725,76.901538 46.557107,76.924534 46.572919,76.924534 46.620324,77.039519 46.636117,77.108509 46.572919,77.131506 46.525471,77.200497 46.525471,77.292484 46.557107,77.315481 46.604527,77.453462 46.604527,77.54545 46.636117,77.54545 46.715011,77.522453 46.730776,77.522453 46.79379,77.476459 47.15469,77.614441 47.217206,77.798416 47.185957,77.890403 47.185957,78.005387 47.264045,78.074378 47.248437,78.120372 47.217206,78.189362 47.217206,78.258353 47.295248,78.327344 47.310843,78.465325 47.232824,78.603306 47.185957,78.672297 47.139049,78.741287 47.139049,78.833275 47.045108,79.040247 47.060777,79.270215 47.07644,79.707156 46.919596,79.868134 46.888172,80.098103 46.903887,80.1211 46.888172,80.19009 46.872453,80.213087 46.79379,80.305074 46.778043,80.374065 46.730776,80.420059 46.730776,80.443056 46.715011,80.650028 46.636117,80.856999 46.572919,81.155959 46.557107,81.247946 46.493817,81.385927 46.541292,81.477915 46.557107,81.546906 46.493817,81.523909 46.398743,81.569902 46.319388,81.684887 46.239918,81.753877 46.160333,81.868862 46.112526,81.960849 45.904885,81.983846 45.88888,82.052837 45.824815,82.121827 45.712524,82.144824 45.696464,82.236812 45.600006,82.282805 45.600006,82.305802 45.551715,82.39779 45.503383,82.420787 45.503383,82.420787 45.487263,82.535771 45.438875,82.558768 45.422736,82.604762 45.358136,82.604762 45.212516,82.489777 45.163892,82.420787 45.163892,82.420787 45.180105,82.305802 45.196313,82.282805 45.212516,82.075834 45.196313,82.052837 45.228714,81.937852 45.212516,81.822868 45.293462,81.776874 45.358136,81.66189 45.341974,81.500912 45.261097,81.431921 45.244908,81.408924 45.261097,81.132962 45.196313,81.109965 45.180105,81.017977 45.147675,80.902993 45.131454,80.879996 45.115228,80.765012 45.131454,80.650028 45.115228,80.627031 45.098997,80.489049 45.098997,80.397062 45.034027,80.282078 45.034027,80.213087 45.017774,80.144096 45.034027,79.937125 44.920153,80.006115 44.838676,80.029112 44.822367,80.167093 44.838676,80.236084 44.740751,80.351068 44.708073,80.420059 44.626296,80.397062 44.495212,80.374065 44.478806,80.420059 44.31449,80.420059 44.149714,80.466053 44.083674,80.466053 44.01756,80.535043 43.901683,80.535043 43.835366,80.696021 43.619328,80.742015 43.552697,80.765012 43.435917,80.742015 43.352364,80.719018 43.33564,80.788009 43.318911,80.811006 43.168143,80.811006 43.134588,80.742015 43.117804,80.719018 43.134588,80.627031 43.134588,80.55804 43.084221,80.420059 43.033813,80.443056 42.983364,80.581037 42.932873,80.604034 42.916033,80.581037 42.865487,80.535043 42.865487,80.397062 42.8149,80.282078 42.8149,80.259081 42.696701,80.19009 42.645975,80.213087 42.561341,80.236084 42.5444,80.259081 42.5444,80.236084 42.425686,80.305074 42.272723,80.305074 42.221653,80.236084 42.20462,80.19009 42.20462,80.167093 42.221653,80.098103 42.323752,80.006115 42.357749,79.937125 42.442659,79.799143 42.442659,79.707156 42.476591,79.546178 42.459627,79.45419 42.49355,79.431193 42.5444,79.408197 42.5444,79.339206 42.595208,79.178228 42.679797,79.178228 42.747385,79.155231 42.798028,79.132234 42.781152,78.902265 42.781152,78.810278 42.8149,78.695293 42.8149,78.511319 42.882341,78.465325 42.882341,78.304347 42.865487,78.005387 42.865487,77.660434 42.916033,77.591444 42.916033,77.568447 42.932873,77.246491 42.916033,77.131506 42.966538,77.016522 42.966538,76.993525 42.983364,76.763556 42.949708,76.740559 42.916033,76.533588 42.916033,76.418603 42.865487,76.349613 42.865487,76.280622 42.916033,76.211631 42.916033,76.188635 42.932873,76.027656 42.916033,76.00466 42.932873,75.912672 42.949708,75.797688 42.932873,75.774691 42.949708,75.613713 43.000185,75.63671 43.017001,75.613713 43.067423,75.544722 43.084221,75.360747 43.151368,75.291757 43.285439,75.291757 43.352364,75.406741 43.435917,75.406741 43.485993,75.383744 43.536028,75.176772 43.519355,75.038791 43.602677,74.992797 43.635974,75.107782 43.719135,75.26876 43.818776,75.26876 43.934814,75.314753 43.967926,75.314753 44.13321,75.199769 44.23216,74.946803 44.347391,74.739832 44.363834,74.509863 44.478806,74.509863 44.708073,74.325888 44.854981,74.2339 44.871281,74.141913 44.920153,74.095919 45.082761,74.072922 45.131454,74.003932 45.131454,73.750966 45.115228,73.727969 45.196313))","code":"almaty","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":true,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"67","name":"Алматы","time_zone":{"name":"Asia/Almaty","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((52.225895 54.831748,52.225895 54.937574,52.271888 54.977188,52.363876 54.977188,52.432867 54.911144,52.455863 54.897922,52.47886 54.844991,52.455863 54.805248,52.386873 54.8185,52.294885 54.805248,52.225895 54.831748))","code":"almetevsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"108","name":"Альметьевск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((177.328874 64.723829,177.351871 64.753271,177.466856 64.74346,177.535846 64.74346,177.535846 64.704183,177.512849 64.635311,177.466856 64.635311,177.351871 64.674688,177.328874 64.723829))","code":"anadyr","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"155","name":"Анадырь","time_zone":{"name":"Asia/Anadyr","offset":720},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((40.819447 44.806053,40.819447 44.871281,40.888437 44.887576,40.888437 45.001515,40.86544 45.050277,40.888437 45.066521,40.888437 45.196313,40.934431 45.244908,41.026418 45.244908,41.049415 45.228714,41.279384 45.228714,41.348375 45.212516,41.348375 45.115228,41.325378 45.115228,41.302381 45.034027,41.348375 44.920153,41.302381 44.871281,41.325378 44.854981,41.325378 44.740751,41.279384 44.691727,41.210393 44.691727,41.118406 44.675376,41.072412 44.708073,40.934431 44.757084,40.819447 44.806053))","code":"armawir","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"106","name":"Армавир","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((39.462631 64.308265,39.462631 64.821843,39.531622 64.831625,40.612475 64.821843,40.819447 64.821843,41.210393 64.812058,41.302381 64.812058,41.325378 64.78268,41.302381 64.655007,41.302381 64.566264,41.279384 64.338158,41.279384 64.298293,41.210393 64.288318,41.049415 64.288318,40.198531 64.298293,39.531622 64.298293,39.462631 64.308265))","code":"arkhangelsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"49","name":"Архангельск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((41.371371 18.983216,41.394368 19.004961,41.394368 19.157094,41.440362 19.178816,41.463359 19.157094,41.53235 19.157094,41.60134 19.222252,41.831309 19.222252,41.900299 19.374185,41.900299 19.417568,41.831309 19.525976,41.877303 19.764217,41.808312 19.807495,41.739321 19.807495,41.739321 19.82913,41.762318 19.93726,41.831309 20.045316,41.831309 20.174885,41.923296 20.239629,41.992287 20.261205,42.038281 20.325913,42.038281 20.390594,41.96929 20.455248,41.96929 20.498336,42.038281 20.606001,42.084274 20.584474,42.130268 20.412148,42.222256 20.347476,42.314243 20.347476,42.682193 20.649047,42.843171 20.713591,42.958156 20.821105,43.119134 20.821105,43.165127 20.864089,43.418093 20.842598,43.556074 20.928542,43.648062 20.971495,43.717052 20.95002,43.855034 20.821105,43.970018 20.649047,44.062005 20.562944,44.062005 20.476793,43.970018 20.325913,43.924024 20.110114,44.016012 20.023711,44.039008 19.93726,44.337968 19.655969,44.475949 19.547649,44.521943 19.5043,44.521943 19.33079,44.383962 19.265675,44.360965 19.200535,44.406958 19.026703,44.406958 18.939718,44.383962 18.87445,44.291974 18.765613,44.130996 18.743837,44.062005 18.700277,44.016012 18.56953,43.786043 18.395044,43.763046 18.329566,43.671059 18.285901,43.648062 18.176688,43.671059 18.067408,43.648062 17.739159,43.671059 17.585769,43.648062 17.476125,43.602068 17.432249,43.533077 17.454189,43.464087 17.519991,43.395096 17.54192,43.326105 17.519991,43.234118 17.651524,43.142131 17.651524,43.07314 17.761061,43.07314 17.804857,42.935159 17.870531,42.935159 17.958059,42.889165 18.001807,42.843171 17.958059,42.774181 17.936181,42.70519 17.804857,42.70519 17.739159,42.682193 17.673436,42.613202 17.673436,42.475221 17.78296,42.452224 17.848643,42.406231 17.9143,42.291246 17.892417,42.153265 17.936181,42.107271 18.045543,41.946293 18.045543,41.923296 18.111128,41.946293 18.307735,41.923296 18.329566,41.785315 18.329566,41.808312 18.482309,41.808312 18.56953,41.785315 18.56953,41.762318 18.678493,41.693328 18.787386,41.440362 18.787386,41.394368 18.852688,41.371371 18.983216))","code":"asir","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":true},"id":"223","name":"Асир","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((71.129323 51.123677,71.129323 51.253399,71.336295 51.310935,71.382288 51.310935,71.635254 51.325308,71.681248 51.354041,71.750238 51.354041,71.750238 51.339677,71.842226 51.224603,71.865223 51.152536,71.88822 51.008062,71.796232 50.950147,71.612257 50.921162,71.382288 50.935657,71.267304 50.950147,71.15232 51.02253,71.129323 51.123677))","code":"nur_sultan","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"68","name":"Астана","time_zone":{"name":"Asia/Almaty","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((47.62652 46.335269,47.62652 46.683467,47.718508 46.778043,47.787499 46.778043,47.810495 46.762292,47.879486 46.746536,47.902483 46.730776,47.948477 46.730776,47.948477 46.715011,48.132452 46.715011,48.316427 46.683467,48.36242 46.636117,48.408414 46.477983,48.36242 46.287614,48.36242 46.22401,48.408414 46.192181,48.408414 46.144402,48.36242 46.112526,48.36242 46.064678,48.270433 46.04872,48.247436 46.064678,48.201442 46.04872,47.971473 46.016789,47.833492 46.064678,47.764502 46.04872,47.695511 46.064678,47.62652 46.335269))","code":"astrakhan","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"8","name":"Астрахань","time_zone":{"name":"Europe/Astrakhan","offset":240},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((51.352014 46.825269,51.37501 46.841002,51.466998 47.092099,51.696967 47.185957,51.903938 47.326433,52.363876 47.029435,52.432867 46.935301,52.363876 46.778043,52.317882 46.730776,52.294885 46.730776,52.294885 46.715011,52.179901 46.667688,52.156904 46.620324,51.995926 46.604527,51.995926 46.588725,51.74296 46.572919,51.512992 46.604527,51.444001 46.651905,51.421004 46.730776,51.398007 46.730776,51.352014 46.825269))","code":"atyrau","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true},"id":"168","name":"Атырау","time_zone":{"name":"Asia/Atyrau","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((49.512264 40.705231,49.535261 40.705231,49.581254 40.670355,49.742233 40.618007,49.857217 40.600548,50.041192 40.635461,50.20217 40.600548,50.340151 40.495702,50.409142 40.373174,50.432139 40.232868,50.386145 40.197746,50.041192 40.250422,49.719236 40.232868,49.696239 40.21531,49.604251 40.197746,49.535261 40.21531,49.535261 40.267972,49.558258 40.285517,49.535261 40.443217,49.512264 40.705231))","code":"baku","country_code":"az","domain":"az","flags":{"2gis_reviews":true,"flamp":false,"metro":true,"parking_layer":true,"public_transport":true,"road_network":true,"traffic":true},"id":"209","name":"Баку","time_zone":{"name":"Asia/Baku","offset":240},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((47.718508 51.967438,47.718508 52.052369,47.810495 52.052369,47.902483 52.024077,47.902483 51.981605,47.787499 51.967438,47.764502 51.953267,47.718508 51.967438))","code":"balakovo","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"121","name":"Балаково","time_zone":{"name":"Europe/Saratov","offset":240},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((83.386655 53.334539,83.409652 53.334539,83.386655 53.375717,83.409652 53.444257,83.478643 53.485328,83.662618 53.485328,83.708611 53.457952,83.777602 53.457952,83.915583 53.49901,84.053565 53.471642,84.076561 53.485328,84.237539 53.485328,84.237539 53.457952,84.214543 53.416854,84.191546 53.403146,84.076561 53.307066,84.053565 53.210769,84.007571 53.141852,83.800599 53.100449,83.754605 53.128056,83.524636 53.141852,83.432649 53.169432,83.386655 53.334539))","code":"barnaul","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"4","name":"Барнаул","time_zone":{"name":"Asia/Barnaul","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((50.294157 25.885932,50.294157 26.03067,50.317154 26.257754,50.340151 26.360827,50.386145 26.402031,50.386145 26.504976,50.478132 26.587266,50.501129 26.648944,50.616114 26.710589,50.777092 26.648944,50.823086 26.566699,50.823086 26.484394,50.869079 26.44322,50.93807 26.298994,50.93807 26.257754,50.915073 26.237128,50.915073 26.07199,50.846082 26.010004,50.823086 25.885932,50.869079 25.76173,50.846082 25.658129,50.823086 25.637398,50.800089 25.575183,50.708101 25.575183,50.593117 25.595925,50.57012 25.575183,50.409142 25.7203,50.340151 25.865241,50.294157 25.885932))","code":"bahrain","country_code":"bh","domain":"bh","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":true},"id":"233","name":"Бахрейн","time_zone":{"name":"Asia/Bahrain","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((36.358053 50.630318,36.358053 50.67406,36.496035 50.703199,36.611019 50.688632,36.749 50.717761,36.932975 50.688632,36.932975 50.659484,36.886982 50.615729,36.840988 50.615729,36.726003 50.528096,36.68001 50.498848,36.565025 50.484218,36.427044 50.498848,36.427044 50.528096,36.450041 50.542712,36.38105 50.615729,36.358053 50.630318))","code":"belgorod","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"46","name":"Белгород","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((84.467508 51.981605,84.513502 52.009924,84.536499 52.052369,84.513502 52.066509,84.490505 52.1089,84.559496 52.1089,84.559496 52.16536,84.513502 52.221748,84.513502 52.263992,84.559496 52.292132,84.605489 52.362405,84.605489 52.530604,84.651483 52.530604,84.67448 52.572554,84.743471 52.586528,84.789464 52.614463,85.019433 52.64238,85.019433 52.656332,85.134417 52.67028,85.157414 52.628424,85.226405 52.628424,85.272399 52.656332,85.341389 52.656332,85.41038 52.628424,85.456374 52.530604,85.548361 52.460599,85.870317 52.446585,85.962305 52.348359,86.238267 52.179463,86.238267 52.038225,86.21527 52.024077,86.100286 52.080644,85.939308 52.094774,85.916311 52.123022,85.77833 52.1089,85.709339 52.094774,85.686342 52.052369,85.594355 51.981605,85.571358 51.967438,85.548361 51.910728,85.41038 51.882346,85.157414 51.868148,85.134417 51.882346,84.973439 51.868148,84.927446 51.839739,84.858455 51.853946,84.766468 51.896539,84.651483 51.882346,84.605489 51.896539,84.559496 51.924912,84.490505 51.939092,84.467508 51.981605))","code":"biysk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"20","name":"Бийск","time_zone":{"name":"Asia/Barnaul","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((132.806932 48.725902,132.829928 48.862248,132.875922 48.892497,133.105891 48.756233,133.082894 48.710729,133.013903 48.710729,132.806932 48.725902))","code":"birobidzhan","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"157","name":"Биробиджан","time_zone":{"name":"Asia/Vladivostok","offset":600},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((73.42901 42.5444,73.475004 42.730495,73.520997 42.798028,73.520997 42.916033,73.543994 42.932873,73.566991 43.033813,73.612985 43.033813,73.635982 43.050621,73.704972 43.067423,73.819957 43.117804,73.888947 43.117804,73.957938 43.151368,73.957938 43.201679,74.095919 43.184913,74.16491 43.201679,74.2339 43.251949,74.302891 43.235197,74.463869 43.151368,74.578854 43.134588,74.716835 43.000185,74.854816 43.000185,74.9698 42.949708,75.130778 42.899189,75.130778 42.882341,75.360747 42.848629,75.452735 42.848629,75.475732 42.831767,75.7057 42.8149,75.774691 42.831767,75.797688 42.932873,75.912672 42.949708,76.00466 42.932873,76.027656 42.916033,76.188635 42.932873,76.211631 42.916033,76.280622 42.916033,76.349613 42.865487,76.418603 42.865487,76.533588 42.916033,76.740559 42.916033,76.763556 42.949708,76.993525 42.983364,77.016522 42.966538,77.131506 42.966538,77.246491 42.916033,77.568447 42.932873,77.591444 42.916033,77.660434 42.916033,78.005387 42.865487,78.304347 42.865487,78.465325 42.882341,78.488322 42.7136,78.511319 42.696701,78.534315 42.5444,78.557312 42.5444,78.557312 42.527455,78.6493 42.323752,78.6493 42.272723,78.626303 42.255704,77.775419 41.965681,77.752422 41.948579,77.522453 41.914363,77.085513 41.914363,76.602578 41.965681,76.464597 41.99987,76.211631 42.085263,76.142641 42.136444,75.981663 42.272723,75.866678 42.289737,75.751694 42.408709,75.63671 42.425686,75.429738 42.442659,75.406741 42.425686,75.015794 42.425686,74.992797 42.442659,74.923807 42.425686,74.716835 42.408709,74.2339 42.408709,74.141913 42.37474,73.773963 42.340753,73.750966 42.323752,73.635982 42.340753,73.635982 42.459627,73.589988 42.459627,73.520997 42.442659,73.452007 42.510505,73.42901 42.5444))","code":"bishkek","country_code":"kg","domain":"kg","flags":{"2gis_reviews":true,"flamp":false,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true},"id":"112","name":"Бишкек","time_zone":{"name":"Asia/Bishkek","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((127.264686 50.469583,127.310679 50.542712,127.333676 50.557325,127.333676 50.615729,127.310679 50.615729,127.310679 50.630318,127.333676 50.644903,127.356673 50.688632,127.37967 50.703199,127.448661 50.790506,127.494654 50.819572,127.471657 50.892159,127.517651 50.935657,127.517651 51.008062,127.563645 51.036993,127.563645 51.123677,127.678629 51.166958,127.770617 51.181376,127.839607 51.166958,127.931595 51.19579,127.931595 51.310935,128.000586 51.382755,128.023582 51.44013,128.092573 51.46879,128.253551 51.483114,128.345539 51.526057,128.391532 51.497433,128.391532 51.44013,128.460523 51.397106,128.48352 51.296558,128.506517 51.296558,128.529514 51.19579,128.575507 51.152536,128.575507 51.065906,128.621501 50.99359,128.667495 50.964632,128.667495 50.848621,128.529514 50.819572,128.414529 50.775966,128.299545 50.67406,128.18456 50.67406,128.138567 50.630318,128.138567 50.615729,128.11557 50.615729,128.11557 50.601134,128.069576 50.601134,128.000586 50.586536,128.000586 50.542712,128.069576 50.484218,128.000586 50.425651,127.885601 50.29361,127.770617 50.264217,127.770617 50.234807,127.678629 50.205378,127.586642 50.205378,127.540648 50.234807,127.425664 50.249514,127.402667 50.264217,127.333676 50.278916,127.310679 50.35234,127.333676 50.425651,127.264686 50.469583))","code":"blagoveshensk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"52","name":"Благовещенск","time_zone":{"name":"Asia/Yakutsk","offset":540},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((101.071249 55.967759,101.071249 56.224312,101.094246 56.491856,101.163237 56.50455,101.50819 56.491856,101.830146 56.491856,102.037118 56.479159,102.060115 56.44104,102.037118 56.249873,102.037118 56.134713,102.014121 55.967759,101.991124 55.929128,101.600177 55.942009,101.163237 55.942009,101.071249 55.967759))","code":"bratsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"51","name":"Братск","time_zone":{"name":"Asia/Irkutsk","offset":480},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((34.10436 53.155645,34.10436 53.293322,34.127357 53.307066,34.150354 53.403146,34.173351 53.444257,34.242341 53.444257,34.357326 53.485328,34.47231 53.471642,34.564298 53.375717,34.610291 53.252065,34.610291 53.183216,34.403319 53.141852,34.334329 53.169432,34.265338 53.155645,34.242341 53.141852,34.173351 53.128056,34.10436 53.155645))","code":"bryansk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true},"id":"62","name":"Брянск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((31.068773 58.481344,31.114767 58.50538,31.137764 58.637286,31.206754 58.685128,31.344736 58.709025,31.505714 58.697079,31.505714 58.673174,31.528711 58.61334,31.620698 58.565399,31.620698 58.517392,31.597701 58.517392,31.551707 58.493364,31.436723 58.457292,31.367732 58.421182,31.275745 58.421182,31.252748 58.457292,31.09177 58.445259,31.068773 58.481344))","code":"v_novgorod","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"public_transport":true,"road_network":true},"id":"77","name":"Великий Новгород","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((131.381126 43.469306,131.404122 43.485993,131.565101 43.536028,131.634091 43.569362,131.703082 43.652615,131.841063 43.652615,131.910054 43.669252,131.979044 43.652615,132.048035 43.602677,132.346994 43.502676,132.369991 43.452614,132.369991 43.40251,132.255007 43.084221,132.117025 42.916033,131.956047 42.831767,131.818066 42.798028,131.680085 42.781152,131.565101 42.831767,131.588097 43.000185,131.473113 43.151368,131.404122 43.385799,131.381126 43.469306))","code":"vladivostok","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"25","name":"Владивосток","time_zone":{"name":"Asia/Vladivostok","offset":600},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((44.54494 42.747385,44.567937 42.882341,44.61393 42.983364,44.567937 43.017001,44.567937 43.067423,44.636927 43.117804,44.705918 43.101015,44.751911 43.000185,44.705918 42.848629,44.682921 42.798028,44.682921 42.730495,44.567937 42.730495,44.54494 42.747385))","code":"vladikavkaz","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"114","name":"Владикавказ","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((40.152537 56.070585,40.175534 56.211525,40.175534 56.326455,40.198531 56.44104,40.267522 56.466457,40.704462 56.466457,40.727459 56.428326,40.704462 56.390156,40.681465 56.198733,40.704462 56.109074,40.658468 56.083419,40.635472 56.019206,40.474493 56.019206,40.175534 56.032057,40.152537 56.070585))","code":"vladimir","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"59","name":"Владимир","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((43.87803 48.604394,43.947021 48.710729,43.924024 48.725902,43.901027 48.771392,43.924024 48.81684,44.062005 48.862248,44.085002 48.922727,44.199987 48.907614,44.291974 48.922727,44.314971 48.968039,44.360965 48.968039,44.567937 48.95294,44.590933 48.968039,44.61393 48.95294,44.682921 48.95294,44.866896 48.922727,44.935886 48.877375,45.050871 48.831981,45.073868 48.786546,45.004877 48.74107,44.98188 48.695552,45.027874 48.573971,44.98188 48.467348,45.027874 48.421583,45.027874 48.39105,44.958883 48.284042,44.728915 48.284042,44.61393 48.268736,44.590933 48.253426,44.360965 48.32993,44.24598 48.253426,44.17699 48.253426,44.062005 48.299342,43.970018 48.360499,43.993015 48.467348,43.970018 48.497834,43.901027 48.54353,43.87803 48.604394))","code":"volgograd","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"33","name":"Волгоград","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((42.015284 47.668251,42.038281 47.683735,42.107271 47.683735,42.130268 47.668251,42.176262 47.62177,42.383234 47.62177,42.383234 47.575249,42.314243 47.559732,42.314243 47.513155,42.291246 47.466537,42.130268 47.482081,42.061278 47.513155,42.015284 47.668251))","code":"volgodonsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"122","name":"Волгодонск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((37.668875 59.218851,37.78386 59.218851,37.78386 59.277644,37.875847 59.336337,38.036825 59.336337,38.059822 59.348063,38.2208 59.336337,38.335784 59.301133,38.427772 59.312872,38.58875 59.301133,38.611747 59.289391,38.841716 59.289391,39.048687 59.301133,39.232662 59.324606,39.301653 59.336337,39.370644 59.324606,39.462631 59.359785,39.531622 59.348063,39.554619 59.336337,39.6926 59.348063,39.784587 59.394928,39.945565 59.394928,39.991559 59.371503,40.083547 59.359785,40.12954 59.383218,40.244525 59.383218,40.221528 59.277644,40.198531 59.24238,40.313515 59.183526,40.290518 59.12457,40.244525 59.100959,40.221528 59.065512,40.152537 59.030028,40.037553 59.018192,39.945565 59.065512,39.669603 59.04186,39.209666 59.065512,38.818719 59.065512,38.795722 59.077332,38.58875 59.112766,38.358781 59.100959,38.266794 59.077332,37.875847 59.006352,37.714869 59.030028,37.691872 59.065512,37.668875 59.218851))","code":"vologda","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"78","name":"Вологда","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((38.9567 51.497433,39.002694 51.654644,38.9567 51.711677,39.025691 51.811313,39.025691 51.868148,39.048687 51.910728,39.163672 51.910728,39.255659 51.939092,39.39364 51.910728,39.508625 51.910728,39.531622 51.896539,39.669603 51.882346,39.669603 51.839739,39.623609 51.782868,39.600612 51.56896,39.577615 51.56896,39.600612 51.483114,39.531622 51.46879,39.278656 51.483114,39.094681 51.483114,39.048687 51.454462,38.979697 51.454462,38.9567 51.497433))","code":"voronezh","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"31","name":"Воронеж","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((45.34983 43.084221,45.34983 43.134588,45.418821 43.134588,45.579799 43.285439,45.579799 43.318911,45.487811 43.385799,45.579799 43.419216,45.71778 43.419216,45.740777 43.40251,45.855761 43.369084,45.970746 43.369084,45.993743 43.385799,46.039736 43.452614,46.338696 43.435917,46.338696 43.40251,46.407686 43.302177,46.407686 43.201679,46.200714 43.117804,46.177718 43.067423,46.062733 43.084221,45.901755 43.000185,45.671786 42.966538,45.648789 42.983364,45.579799 43.000185,45.533805 42.966538,45.464815 42.949708,45.395824 42.983364,45.395824 43.050621,45.34983 43.084221))","code":"grozny","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"pedestrian_routing":true,"public_transport":true,"road_network":true},"id":"115","name":"Грозный","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((40.750456 17.651524,40.750456 17.695347,41.578343 18.089269,41.670331 18.220381,41.739321 18.242224,41.785315 18.329566,41.923296 18.329566,41.946293 18.307735,41.923296 18.111128,41.946293 18.045543,42.107271 18.045543,42.153265 17.936181,42.291246 17.892417,42.406231 17.9143,42.452224 17.848643,42.475221 17.78296,42.613202 17.673436,42.682193 17.673436,42.70519 17.739159,42.70519 17.804857,42.774181 17.936181,42.843171 17.958059,42.889165 18.001807,42.935159 17.958059,42.935159 17.870531,43.07314 17.804857,43.07314 17.761061,43.142131 17.651524,43.234118 17.651524,43.326105 17.519991,43.280112 17.454189,43.280112 17.388363,43.303109 17.388363,43.349102 17.322513,43.303109 17.2786,43.234118 17.234677,43.211121 17.124823,43.257115 17.058879,43.234118 16.992912,43.211121 16.970918,43.188124 16.882916,43.257115 16.860909,43.280112 16.772855,43.234118 16.640698,43.165127 16.640698,43.119134 16.50845,43.004149 16.50845,42.958156 16.442293,42.935159 16.376112,42.820174 16.354047,42.797177 16.376112,42.130268 16.376112,41.785315 16.265761,41.647334 16.265761,41.624337 16.287836,41.509353 16.376112,41.486356 16.398175,41.394368 16.552543,41.325378 16.618663,41.23339 16.750835,41.210393 16.772855,41.210393 16.816887,41.1644 16.860909,40.750456 17.651524))","code":"jizan","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":true},"id":"227","name":"Джизан","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((49.09832 54.177476,49.09832 54.204386,49.121317 54.204386,49.144314 54.217835,49.144314 54.285012,49.259298 54.311852,49.259298 54.338675,49.328289 54.35208,49.604251 54.311852,49.627248 54.271585,49.742233 54.204386,49.765229 54.204386,49.811223 54.177476,49.903211 54.164014,49.903211 54.123603,49.83422 54.083152,49.581254 54.09664,49.489267 54.150548,49.328289 54.150548,49.09832 54.177476))","code":"dimitrovgrad","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"124","name":"Димитровград","time_zone":{"name":"Europe/Ulyanovsk","offset":240},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((34.725276 48.482593,34.771269 48.513071,34.748272 48.649994,34.84026 48.680371,34.909251 48.665185,35.024235 48.680371,35.162216 48.649994,35.20821 48.680371,35.369188 48.680371,35.369188 48.604394,35.323194 48.573971,35.323194 48.558753,35.277201 48.528303,35.300197 48.421583,35.185213 48.345217,35.070229 48.345217,35.001238 48.314638,34.909251 48.375777,34.84026 48.360499,34.748272 48.360499,34.748272 48.406319,34.725276 48.482593))","code":"dnepropetrovsk","country_code":"ua","domain":"ua","flags":{"2gis_reviews":true,"flamp":false,"has_net_booklet":true,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"105","name":"Днепр","time_zone":{"name":"Europe/Kiev","offset":120},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((59.699878 56.807919,59.722875 56.895943,59.722875 56.971227,59.745872 57.008812,59.814862 57.008812,59.860856 57.033848,59.998837 57.046359,60.113822 57.008812,60.2748 56.996288,60.389784 57.058866,60.64275 57.046359,60.665746 57.033848,60.757734 57.058866,60.895715 57.021332,60.941709 57.021332,60.964706 56.95869,60.987703 56.946149,60.964706 56.870815,60.987703 56.83309,61.125684 56.83309,61.263665 56.870815,61.424643 56.870815,61.516631 56.795328,61.493634 56.732306,61.401646 56.707067,61.217671 56.707067,61.125684 56.669178,61.102687 56.631251,61.033696 56.580621,61.010699 56.567953,61.010699 56.491856,60.895715 56.466457,60.849721 56.390156,60.182812 56.390156,60.113822 56.415607,60.113822 56.453751,60.090825 56.466457,60.067828 56.555281,59.952843 56.593285,59.814862 56.593285,59.745872 56.6186,59.745872 56.707067,59.699878 56.807919))","code":"ekaterinburg","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":true,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"9","name":"Екатеринбург","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((38.427772 52.628424,38.450769 52.67028,38.519759 52.656332,38.58875 52.656332,38.611747 52.614463,38.58875 52.572554,38.519759 52.572554,38.427772 52.628424))","code":"elets","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"126","name":"Елец","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((40.79645 57.046359,40.842443 57.096363,40.934431 57.096363,41.141403 57.083868,41.210393 57.07137,41.210393 56.996288,41.187396 56.98376,41.187396 56.933604,41.210393 56.933604,41.210393 56.908501,41.095409 56.870815,40.911434 56.870815,40.819447 56.895943,40.819447 56.933604,40.79645 57.046359))","code":"ivanovo","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"65","name":"Иваново","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((52.915801 56.845669,52.938798 56.858244,52.938798 57.021332,52.984791 57.046359,52.984791 57.058866,53.076779 57.058866,53.467726 57.046359,53.58271 56.996288,53.766685 56.946149,53.789682 56.807919,53.789682 56.795328,53.766685 56.782732,53.766685 56.707067,53.812679 56.605944,53.835676 56.605944,53.835676 56.593285,53.904666 56.555281,54.180629 56.479159,54.203626 56.479159,54.226622 56.466457,54.433594 56.402883,54.479588 56.402883,54.594572 56.326455,54.732554 56.313702,54.732554 56.288183,54.68656 56.249873,54.548579 56.224312,54.479588 56.160334,54.387601 56.147525,54.387601 56.083419,54.341607 56.032057,54.226622 56.032057,54.157632 56.070585,54.088641 56.083419,53.973657 56.160334,53.789682 56.275417,53.398735 56.428326,53.237757 56.466457,53.099776 56.529924,53.076779 56.529924,53.053782 56.567953,53.030785 56.580621,53.007788 56.65654,52.984791 56.65654,52.984791 56.669178,52.938798 56.681812,52.938798 56.782732,52.915801 56.845669))","code":"izhevsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true},"id":"41","name":"Ижевск","time_zone":{"name":"Europe/Samara","offset":240},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((103.554911 52.767788,103.554911 52.809511,103.623902 52.823409,103.715889 52.823409,103.738886 52.7817,103.761883 52.712096,103.830874 52.684223,103.899864 52.67028,103.945858 52.64238,104.198824 52.64238,104.290811 52.739951,104.451789 52.823409,104.543777 52.865079,104.842736 52.948297,105.118699 52.962151,105.302674 53.003687,105.532642 53.114255,105.601633 53.114255,105.877595 52.948297,105.946586 52.920575,105.969583 52.920575,105.969583 52.906708,106.038573 52.892836,106.06157 52.878959,106.291539 52.837304,106.42952 52.865079,107.027439 53.307066,107.119426 53.334539,107.119426 53.34827,107.188417 53.361995,107.280404 53.416854,107.349395 53.416854,107.418386 53.471642,107.556367 53.649216,107.579364 53.662845,107.671351 53.662845,107.786336 53.581007,108.016304 53.403146,108.085295 53.361995,108.085295 53.320805,108.016304 53.238304,107.418386 52.934438,107.004442 52.712096,106.521508 52.502615,106.176555 52.362405,105.99258 52.179463,105.969583 52.16536,105.969583 52.137139,105.946586 52.137139,105.831602 51.995766,105.670624 51.882346,105.417658 51.782868,105.25668 51.740167,105.118699 51.711677,105.095702 51.697426,104.796742 51.654644,104.635764 51.640375,104.589771 51.611822,104.635764 51.46879,104.612767 51.425793,104.52078 51.44013,104.244817 51.46879,104.129833 51.483114,103.899864 51.554663,103.876868 51.56896,103.715889 51.583252,103.600905 51.597539,103.600905 51.654644,103.623902 51.668909,103.646899 51.740167,103.646899 51.882346,103.623902 52.348359,103.600905 52.474609,103.623902 52.488614,103.623902 52.64238,103.554911 52.767788))","code":"irkutsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"11","name":"Иркутск","time_zone":{"name":"Asia/Irkutsk","offset":480},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((69.427554 56.070585,69.427554 56.096249,69.450551 56.134713,69.542539 56.147525,69.565536 56.109074,69.542539 56.070585,69.427554 56.070585))","code":"ishim","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"public_transport":true,"road_network":false},"id":"205","name":"Ишим","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((47.580527 56.529924,47.580527 56.719689,47.603524 56.757527,47.971473 56.757527,48.086458 56.744919,48.155448 56.732306,48.132452 56.542605,48.109455 56.50455,47.902483 56.517239,47.649517 56.517239,47.580527 56.529924))","code":"yoshkarola","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"70","name":"Йошкар-Ола","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((40.911434 43.435917,40.980425 43.485993,41.072412 43.586022,41.348375 43.652615,41.463359 43.752367,41.53235 43.885111,41.60134 43.901683,41.923296 43.918251,42.061278 43.818776,42.153265 43.818776,42.383234 43.934814,42.452224 43.951372,42.452224 43.967926,42.498218 44.00102,42.498218 44.034095,42.590206 44.034095,42.613202 44.149714,42.567209 44.248635,42.590206 44.265106,42.613202 44.265106,42.774181 44.298034,42.889165 44.298034,42.912162 44.281572,43.027146 44.298034,43.234118 44.298034,43.303109 44.31449,43.395096 44.265106,43.533077 44.23216,43.556074 44.182706,43.533077 44.166212,43.533077 44.050626,43.51008 44.034095,43.533077 43.967926,43.602068 43.918251,43.602068 43.851952,43.464087 43.851952,43.44109 43.80218,43.579071 43.735753,43.602068 43.685884,43.579071 43.635974,43.464087 43.602677,43.280112 43.586022,43.165127 43.502676,43.050143 43.452614,43.050143 43.40251,42.935159 43.369084,42.70519 43.235197,42.590206 43.151368,42.498218 43.168143,42.406231 43.235197,42.314243 43.201679,42.199259 43.21844,42.176262 43.201679,42.038281 43.184913,41.923296 43.201679,41.900299 43.21844,41.808312 43.184913,41.716324 43.21844,41.693328 43.201679,41.53235 43.235197,41.486356 43.268696,41.371371 43.33564,41.302381 43.318911,41.210393 43.352364,41.210393 43.369084,41.095409 43.385799,40.934431 43.40251,40.911434 43.435917))","code":"minvody","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"89","name":"КавМинВоды","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((48.224439 55.890459,48.224439 55.929128,48.247436 55.942009,48.270433 55.980627,48.569392 55.967759,48.615386 55.993491,48.73037 55.993491,48.73037 56.006351,48.753367 55.993491,48.822358 55.993491,48.891348 56.019206,48.960339 56.006351,49.09832 56.006351,49.213305 55.993491,49.305292 56.019206,49.374283 56.006351,49.535261 56.006351,49.581254 55.954886,49.581254 55.916243,49.604251 55.877561,49.558258 55.825925,49.581254 55.761284,49.558258 55.748342,49.535261 55.592713,49.512264 55.553709,49.443273 55.553709,49.397279 55.579716,48.799361 55.579716,48.500402 55.566715,48.454408 55.540699,48.385417 55.540699,48.316427 55.553709,48.316427 55.696535,48.270433 55.735397,48.29343 55.825925,48.224439 55.890459))","code":"kazan","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":true,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"21","name":"Казань","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((19.524344 54.71236,19.547341 54.765465,19.570337 54.77873,19.570337 54.85823,19.547341 54.871465,19.593334 54.990384,19.685322 55.095794,19.754312 55.135251,19.961284 55.17467,20.21425 55.17467,20.375228 55.1878,20.421222 55.214049,20.559203 55.331954,20.65119 55.384244,20.720181 55.384244,20.720181 55.371178,21.01914 55.279595,21.134125 55.266495,21.134125 54.897922,21.180118 54.871465,21.180118 54.77873,21.134125 54.725643,21.157122 54.632572,21.180118 54.565963,21.157122 54.552628,20.835165 54.552628,20.789172 54.525945,20.674187 54.525945,20.490212 54.499245,20.375228 54.512597,20.352231 54.525945,20.168256 54.512597,20.145259 54.525945,19.984281 54.539289,19.823303 54.59262,19.547341 54.71236,19.524344 54.71236))","code":"kaliningrad","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"40","name":"Калининград","time_zone":{"name":"Europe/Kaliningrad","offset":120},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((35.898116 54.725643,35.94411 54.765465,36.105088 54.765465,36.151082 54.791991,36.220072 54.844991,36.197075 54.911144,36.243069 54.950783,36.38105 54.977188,36.404047 55.016762,36.450041 55.043123,36.542028 55.148395,36.657013 55.161535,36.703007 55.095794,36.634016 55.029945,36.611019 55.016762,36.611019 54.924361,36.542028 54.911144,36.542028 54.897922,36.473038 54.831748,36.496035 54.791991,36.473038 54.699073,36.473038 54.36548,36.427044 54.325266,36.31206 54.325266,36.151082 54.311852,36.128085 54.325266,35.990104 54.325266,35.921113 54.338675,35.921113 54.392268,35.898116 54.725643))","code":"kaluga","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"61","name":"Калуга","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((61.539628 56.428326,61.585621 56.466457,61.723602 56.491856,61.723602 56.529924,61.746599 56.567953,61.930574 56.567953,62.18354 56.580621,62.252531 56.567953,62.252531 56.313702,62.229534 56.275417,61.746599 56.275417,61.700606 56.313702,61.608618 56.313702,61.608618 56.326455,61.562624 56.364688,61.539628 56.428326))","code":"k_uralskiy","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"109","name":"Каменск-Уральский","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((45.303836 50.057963,45.303836 50.102235,45.372827 50.146466,45.487811 50.131727,45.464815 50.057963,45.441818 50.057963,45.418821 50.013649,45.326833 50.013649,45.303836 50.057963))","code":"kamyshin","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"127","name":"Камышин","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((72.670113 49.969295,72.670113 49.998869,72.831091 50.072725,72.831091 50.131727,72.900082 50.190657,73.015066 50.190657,73.314026 50.146466,73.383016 50.102235,73.406013 50.028425,73.406013 49.821152,73.383016 49.687435,73.222038 49.64278,73.015066 49.65767,72.923079 49.672555,72.877085 49.702311,72.785098 49.776621,72.762101 49.850817,72.670113 49.969295))","code":"karaganda","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"84","name":"Караганда","time_zone":{"name":"Asia/Almaty","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((50.57012 25.512936,50.57012 25.575183,50.593117 25.595925,50.708101 25.575183,50.800089 25.575183,50.823086 25.637398,50.846082 25.658129,50.869079 25.76173,50.823086 25.885932,50.846082 26.010004,50.915073 26.07199,50.915073 26.237128,50.93807 26.257754,51.030057 26.298994,51.053054 26.360827,51.145042 26.402031,51.30602 26.402031,51.489995 26.319609,51.558985 26.237128,51.581982 26.175229,51.857945 26.07199,52.501857 25.885932,52.570848 25.865241,52.639838 25.76173,52.662835 25.69958,52.662835 25.616663,52.639838 25.595925,52.501857 25.097133,52.501857 25.076306,52.47886 25.013802,52.40987 25.013802,52.340879 24.99296,52.363876 24.867836,52.271888 24.8261,52.018923 24.763469,51.581982 24.659015,51.466998 24.638113,51.398007 24.617208,51.329017 24.512631,51.099048 24.470776,50.93807 24.533553,50.823086 24.742585,50.800089 24.888699,50.708101 24.930414,50.708101 25.03464,50.685104 25.055475,50.616114 25.42989,50.616114 25.47142,50.57012 25.512936))","code":"qatar","country_code":"qa","domain":"qa","flags":{"2gis_reviews":true,"flamp":false,"metro":true,"pedestrian_routing":true,"public_transport":true,"road_network":true},"id":"234","name":"Катар","time_zone":{"name":"Asia/Qatar","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((85.893314 55.462549,85.985302 55.527685,86.14628 55.540699,86.169277 55.527685,86.330255 55.527685,86.330255 55.25339,86.307258 55.214049,85.985302 55.214049,85.916311 55.227167,85.916311 55.345033,85.893314 55.462549))","code":"kemerovo","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"5","name":"Кемерово","time_zone":{"name":"Asia/Novokuznetsk","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((30.171895 50.542712,30.194892 50.615729,30.35587 50.615729,30.35587 50.630318,30.516848 50.644903,30.585839 50.630318,30.999782 50.630318,31.022779 50.615729,31.045776 50.615729,31.045776 50.528096,30.999782 50.381678,31.022779 50.308299,30.976786 50.205378,30.953789 50.190657,30.792811 50.205378,30.654829 50.175931,30.631833 50.190657,30.401864 50.205378,30.401864 50.175931,30.35587 50.146466,30.332873 50.161201,30.217889 50.190657,30.217889 50.278916,30.240886 50.29361,30.217889 50.454943,30.171895 50.542712))","code":"kiev","country_code":"ua","domain":"ua","flags":{"2gis_reviews":true,"flamp":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"107","name":"Киев","time_zone":{"name":"Europe/Kiev","offset":120},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((31.988648 35.065604,32.011645 35.122053,32.011645 35.159663,32.080635 35.272392,32.218617 35.328697,32.333601 35.328697,32.471582 35.384964,32.586567 35.40371,32.609563 35.422453,32.655557 35.422453,32.678554 35.516099,32.747545 35.572234,32.885526 35.62833,32.977513 35.62833,33.276473 35.572234,33.552435 35.572234,33.690416 35.62833,33.874391 35.665706,34.081363 35.759068,34.495307 35.908221,34.564298 35.926845,34.702279 35.926845,34.725276 35.908221,34.84026 35.852321,34.886254 35.703064,34.84026 35.590937,34.771269 35.478654,34.702279 35.459924,34.610291 35.384964,34.518304 35.328697,34.357326 35.253615,34.265338 35.159663,34.288335 35.14086,34.357326 35.009116,34.357326 34.914882,34.288335 34.801659,34.265338 34.782774,34.10436 34.726091,34.012373 34.744989,33.897388 34.726091,33.828398 34.707188,33.805401 34.650453,33.460448 34.517921,33.276473 34.480016,33.207482 34.385178,33.115495 34.347212,32.908523 34.347212,32.701551 34.423126,32.63256 34.423126,32.402592 34.498971,32.26461 34.555809,32.218617 34.59368,32.19562 34.59368,32.172623 34.650453,32.057639 34.820541,32.011645 34.971435,32.011645 35.046779,31.988648 35.065604))","code":"cyprus","country_code":"cy","domain":"com.cy","flags":{"2gis_reviews":true,"flamp":false,"gdpr":true,"has_net_booklet":true,"metro":false,"public_transport":true,"road_network":true},"id":"173","name":"Кипр","time_zone":{"name":"Europe/Nicosia","offset":120},"type":"region","zoom_level":{"max":19,"min":9}},{"bounds":"POLYGON((49.02933 58.385035,49.052326 58.445259,49.052326 58.5294,49.02933 58.756769,49.052326 58.792534,49.903211 58.792534,49.949204 58.732905,49.949204 58.601361,49.926208 58.589378,49.949204 58.445259,49.926208 58.409137,49.328289 58.409137,49.144314 58.385035,49.02933 58.385035))","code":"kirov","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"58","name":"Киров","time_zone":{"name":"Europe/Kirov","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((41.256387 56.339204,41.279384 56.402883,41.371371 56.402883,41.371371 56.364688,41.394368 56.351948,41.371371 56.300945,41.325378 56.300945,41.256387 56.339204))","code":"kovrov","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"129","name":"Ковров","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((74.371882 62.337097,74.394879 62.36911,74.555857 62.36911,74.60185 62.390433,74.716835 62.390433,74.762829 62.411741,74.854816 62.411741,74.831819 62.315736,74.785825 62.251561,74.716835 62.251561,74.60185 62.219423,74.53286 62.165783,74.463869 62.176518,74.417875 62.230139,74.417875 62.305049,74.371882 62.337097))","code":"kogalym","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"207","name":"Когалым","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((67.955755 53.334539,68.369698 53.430558,68.484683 53.416854,68.50768 53.403146,68.990614 53.320805,69.151592 53.334539,69.197586 53.389434,69.289573 53.389434,69.473548 53.361995,69.634526 53.375717,70.301435 53.238304,70.301435 53.252065,70.370426 53.224539,70.439417 53.224539,70.462414 53.210769,70.646389 53.169432,70.738376 53.155645,72.141185 52.753872,72.279166 52.544592,72.302163 52.530604,72.302163 52.474609,72.118188 52.362405,71.22131 51.868148,71.060332 51.768639,70.899354 51.725925,70.85336 51.740167,70.738376 51.882346,70.669385 51.981605,70.646389 51.995766,70.646389 52.024077,70.623392 52.038225,70.554401 52.123022,70.163454 52.614463,69.565536 52.823409,69.404558 52.892836,69.358564 52.920575,69.266576 52.920575,69.220583 52.892836,69.128595 52.892836,69.013611 52.906708,68.691654 52.851193,68.392695 52.837304,68.13973 52.823409,67.978751 53.059007,68.001748 53.169432,67.955755 53.334539))","code":"kokshetau","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"201","name":"Кокшетау","time_zone":{"name":"Asia/Almaty","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((136.670406 50.234807,136.693403 50.308299,136.762393 50.381678,136.739397 50.484218,136.739397 50.630318,136.877378 50.717761,137.015359 50.717761,137.08435 50.703199,137.222331 50.717761,137.291322 50.659484,137.314318 50.615729,137.291322 50.542712,137.268325 50.528096,137.268325 50.39634,137.245328 50.29361,137.15334 50.190657,137.061353 50.161201,136.946368 50.175931,136.946368 50.190657,136.78539 50.190657,136.670406 50.234807))","code":"komsomolsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"94","name":"Комсомольск-на-Амуре","time_zone":{"name":"Asia/Vladivostok","offset":600},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((63.471365 53.169432,63.494362 53.265822,63.609346 53.307066,63.72433 53.293322,63.793321 53.279574,63.770324 53.196994,63.586349 53.08664,63.494362 53.08664,63.494362 53.155645,63.471365 53.169432))","code":"kostanay","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true},"id":"203","name":"Костанай","time_zone":{"name":"Asia/Qostanay","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((40.681465 57.777108,40.704462 57.8873,40.750456 57.936166,40.888437 57.936166,40.911434 57.923956,41.026418 57.936166,41.1644 57.911742,41.141403 57.826124,41.141403 57.777108,41.210393 57.764844,41.23339 57.752576,41.256387 57.691171,41.256387 57.641971,41.279384 57.641971,41.486356 57.555712,41.60134 57.543373,41.60134 57.493973,41.53235 57.45688,41.509353 57.469249,41.417365 57.469249,41.210393 57.481613,41.141403 57.481613,41.141403 57.50633,41.095409 57.531029,41.095409 57.629661,40.980425 57.666579,40.911434 57.678877,40.773453 57.678877,40.704462 57.70346,40.704462 57.764844,40.681465 57.777108))","code":"kostroma","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"34","name":"Кострома","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((38.565753 44.968984,38.58875 45.115228,38.657741 45.180105,38.680737 45.196313,38.657741 45.277282,38.703734 45.325808,38.841716 45.325808,38.864712 45.309637,39.094681 45.277282,39.163672 45.309637,39.232662 45.261097,39.32465 45.261097,39.39364 45.309637,39.462631 45.309637,39.623609 45.390445,39.646606 45.438875,39.899572 45.438875,40.014556 45.455009,40.06055 45.390445,40.06055 45.293462,40.12954 45.244908,40.106544 45.228714,40.106544 45.180105,40.083547 45.098997,39.968562 45.082761,39.784587 45.131454,39.669603 45.147675,39.508625 45.050277,39.485628 45.001515,39.600612 44.920153,39.623609 44.871281,39.554619 44.806053,39.600612 44.740751,39.554619 44.691727,39.485628 44.64266,39.462631 44.593552,39.370644 44.560791,39.370644 44.511614,39.416637 44.511614,39.416637 44.462395,39.301653 44.44598,39.301653 44.42956,39.232662 44.44598,39.094681 44.44598,39.025691 44.396706,38.9567 44.413135,38.9567 44.478806,38.818719 44.511614,38.795722 44.495212,38.680737 44.495212,38.657741 44.511614,38.634744 44.65902,38.657741 44.773411,38.634744 44.887576,38.565753 44.968984))","code":"krasnodar","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"23","name":"Краснодар","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((90.170732 56.339204,90.285717 56.351948,90.469692 56.364688,90.584676 56.402883,90.722657 56.415607,90.975623 56.377424,90.975623 56.364688,91.090607 56.351948,91.205591 56.300945,91.320576 56.288183,91.36657 56.313702,91.711523 56.300945,92.033479 56.313702,92.056476 56.326455,92.631397 56.313702,92.792376 56.300945,93.045341 56.300945,93.160326 56.288183,93.3443 56.313702,93.390294 56.364688,93.551272 56.377424,93.64326 56.415607,93.896225 56.402883,93.965216 56.415607,94.195185 56.415607,94.218182 56.428326,94.356163 56.428326,95.48301 56.479159,95.804966 56.262647,95.850959 56.211525,95.850959 56.160334,95.597994 56.019206,95.253041 55.954886,95.069066 55.825925,94.74711 55.644659,94.770107 55.566715,94.74711 55.527685,94.563135 55.501644,94.494144 55.436465,94.287172 55.345033,94.287172 55.279595,94.195185 55.25339,94.195185 55.24028,94.126194 55.200927,94.0802 55.095794,94.057204 55.082633,94.034207 55.003575,93.942219 54.937574,93.827235 54.937574,93.71225 54.844991,93.620263 54.831748,93.620263 54.752195,93.551272 54.738921,93.482282 54.765465,93.482282 54.805248,93.3443 54.831748,93.321304 54.871465,93.229316 54.897922,93.229316 54.977188,93.160326 55.043123,93.137329 55.082633,93.137329 55.200927,92.976351 55.292691,92.838369 55.292691,92.309441 55.108951,91.43556 54.897922,90.952626 54.805248,90.929629 54.8185,90.929629 54.85823,90.860638 54.85823,90.768651 54.911144,90.515685 54.911144,90.538682 54.950783,90.653667 54.990384,90.860638 55.069467,90.975623 55.135251,91.021617 55.135251,91.136601 55.227167,91.297579 55.266495,91.665529 55.488617,91.849504 55.605706,91.872501 55.644659,91.872501 55.696535,91.849504 55.709493,91.665529 55.851751,91.688526 55.890459,91.711523 55.903353,91.711523 55.993491,91.297579 56.109074,91.274582 56.121896,91.113604 56.134713,90.745654 56.134713,90.676663 56.121896,90.216726 56.173138,90.193729 56.211525,90.193729 56.275417,90.170732 56.339204))","code":"krasnoyarsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"7","name":"Красноярск","time_zone":{"name":"Asia/Krasnoyarsk","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((32.172623 45.422736,32.241614 45.535609,32.356598 45.648256,32.402592 45.648256,32.609563 45.74463,32.655557 45.776718,32.724548 45.808787,33.184485 45.920885,33.529438 46.016789,33.575432 46.04872,33.621426 46.144402,33.621426 46.208098,33.828398 46.208098,33.989376 46.128466,34.10436 46.112526,34.196348 46.064678,34.265338 46.04872,34.334329 46.064678,34.403319 46.016789,34.426316 45.968857,34.495307 45.952871,34.564298 45.968857,34.610291 46.000816,34.794266 45.872871,34.794266 45.824815,34.932247 45.760676,35.162216 45.776718,35.185213 45.792755,35.300197 45.792755,35.300197 45.760676,35.323194 45.760676,35.323194 45.728579,35.438179 45.648256,35.507169 45.551715,35.57616 45.535609,35.64515 45.616094,35.783132 45.66433,35.898116 45.66433,35.990104 45.632177,36.289063 45.680399,36.519032 45.66433,36.542028 45.648256,36.634016 45.648256,36.657013 45.632177,36.68001 45.422736,36.657013 45.341974,36.611019 45.325808,36.588022 45.244908,36.542028 45.212516,36.542028 45.131454,36.588022 44.968984,36.611019 44.920153,36.542028 44.871281,36.450041 44.838676,36.38105 44.838676,36.289063 44.806053,36.059094 44.806053,36.036097 44.789734,35.806129 44.773411,35.64515 44.822367,35.57616 44.773411,35.392185 44.708073,35.369188 44.65902,35.323194 44.64266,35.323194 44.626296,35.162216 44.577174,35.047232 44.560791,35.024235 44.577174,34.863257 44.593552,34.794266 44.577174,34.679282 44.528011,34.564298 44.363834,34.495307 44.347391,34.449313 44.31449,34.334329 44.265106,34.288335 44.23216,34.196348 44.199195,34.081363 44.199195,34.081363 44.182706,33.966379 44.166212,33.851395 44.182706,33.828398 44.166212,33.73641 44.166212,33.552435 44.21568,33.414454 44.265106,33.36846 44.298034,33.276473 44.31449,33.138492 44.44598,33.069501 44.528011,33.069501 44.609926,33.138492 44.724414,33.230479 44.789734,33.230479 44.871281,33.253476 44.920153,33.00051 45.001515,32.816535 45.131454,32.724548 45.098997,32.586567 45.098997,32.310604 45.163892,32.241614 45.228714,32.19562 45.325808,32.172623 45.422736))","code":"crimea","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"174","name":"Крым","time_zone":{"name":"Europe/Simferopol","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((46.568664 29.128411,46.568664 29.16858,46.637655 29.188658,46.706646 29.288993,46.844627 29.449323,46.959611 29.64938,46.982608 29.669363,46.982608 29.709319,47.074595 29.888924,47.074595 29.928792,47.097592 29.928792,47.097592 29.968644,47.166583 30.028393,47.396552 30.127894,47.718508 30.127894,47.971473 30.028393,47.971473 30.008481,48.063461 30.048301,48.155448 30.048301,48.316427 29.968644,48.477405 29.829091,48.592389 29.709319,48.615386 29.689343,48.592389 29.589404,48.684376 29.429295,48.684376 29.329099,48.66138 29.268934,48.753367 29.10832,48.753367 29.048025,48.868351 29.027919,48.983336 28.967577,49.02933 28.826643,48.960339 28.766184,48.73037 28.70569,48.707373 28.665341,48.569392 28.624977,48.431411 28.544201,48.408414 28.523998,47.718508 28.523998,47.62652 28.645161,47.603524 28.665341,47.603524 28.806494,47.55753 28.887067,47.465542 29.007809,47.327561 29.007809,47.304564 29.027919,47.097592 29.048025,47.028602 29.048025,46.913617 29.068128,46.614658 29.088226,46.568664 29.128411))","code":"kuwait","country_code":"kw","domain":"kw","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":true},"id":"235","name":"Кувейт","time_zone":{"name":"Asia/Kuwait","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((55.675425 52.67028,55.675425 52.684223,55.744416 52.726026,55.744416 52.767788,55.79041 52.878959,55.8594 52.892836,55.951388 52.892836,55.951388 52.851193,55.882397 52.7817,55.8594 52.712096,55.836403 52.67028,55.675425 52.67028))","code":"kumertau","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"public_transport":true,"road_network":true},"id":"210","name":"Кумертау","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((65.035152 55.475585,65.058149 55.488617,65.242124 55.527685,65.472093 55.527685,65.56408 55.501644,65.633071 55.423416,65.587077 55.384244,65.610074 55.318871,65.56408 55.24028,65.357108 55.24028,65.242124 55.279595,65.058149 55.358108,65.035152 55.475585))","code":"kurgan","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"10","name":"Курган","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((35.852122 51.554663,35.852122 51.597539,35.875119 51.611822,35.898116 51.797093,35.990104 51.853946,36.105088 51.839739,36.335057 51.853946,36.427044 51.825528,36.450041 51.697426,36.427044 51.697426,36.427044 51.611822,36.358053 51.56896,35.967107 51.554663,35.852122 51.554663))","code":"kursk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"73","name":"Курск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((94.218182 51.640375,94.310169 51.711677,94.333166 51.725925,94.333166 51.797093,94.425153 51.853946,94.494144 51.839739,94.494144 51.797093,94.471147 51.754405,94.517141 51.711677,94.724113 51.711677,94.724113 51.654644,94.609128 51.640375,94.609128 51.626101,94.517141 51.611822,94.44815 51.56896,94.37916 51.56896,94.241178 51.597539,94.218182 51.640375))","code":"kyzyl","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"130","name":"Кызыл","time_zone":{"name":"Asia/Krasnoyarsk","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((65.380105 44.887576,65.518086 44.920153,65.656067 44.838676,65.656067 44.789734,65.633071 44.708073,65.56408 44.708073,65.449096 44.757084,65.426099 44.838676,65.403102 44.838676,65.380105 44.887576))","code":"kyzylorda","country_code":"kz","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"240","name":"Кызылорда","time_zone":{"name":"Asia/Qyzylorda","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((85.732336 54.445791,85.755333 54.459161,85.755333 54.738921,85.801327 54.765465,86.422242 54.77873,86.491233 54.765465,86.491233 54.204386,86.468236 54.190933,86.353252 54.177476,85.824324 54.177476,85.755333 54.217835,85.755333 54.35208,85.732336 54.445791))","code":"lenkuz","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"86","name":"Ленинск-Кузнецкий","time_zone":{"name":"Asia/Novokuznetsk","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((39.370644 52.684223,39.462631 52.739951,39.600612 52.739951,39.853578 52.712096,39.876575 52.698162,39.830581 52.586528,39.853578 52.530604,39.830581 52.488614,39.646606 52.488614,39.531622 52.474609,39.485628 52.502615,39.39364 52.502615,39.370644 52.684223))","code":"lipetsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"56","name":"Липецк","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((150.491526 59.465104,150.491526 59.511807,150.514522 59.511807,150.60651 59.546792,150.60651 59.663146,150.675501 59.709576,150.790485 59.732766,150.905469 59.732766,151.043451 59.709576,151.020454 59.628282,151.043451 59.570095,150.97446 59.465104,150.928466 59.430034,150.767488 59.418336,150.629507 59.441728,150.60651 59.453418,150.491526 59.465104))","code":"magadan","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"158","name":"Магадан","time_zone":{"name":"Asia/Magadan","offset":660},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((58.481044 53.334539,58.481044 53.361995,58.527037 53.403146,58.550034 53.907408,58.573031 53.920953,59.262937 53.920953,59.423915 53.907408,59.492906 53.893859,59.492906 53.81247,59.469909 53.252065,59.423915 53.224539,59.400918 53.238304,58.550034 53.238304,58.481044 53.334539))","code":"magnitogorsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"26","name":"Магнитогорск","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((39.255659 44.265106,39.278656 44.347391,39.278656 44.42956,39.301653 44.44598,39.416637 44.462395,39.416637 44.511614,39.370644 44.511614,39.370644 44.560791,39.462631 44.593552,39.485628 44.64266,39.554619 44.691727,39.600612 44.740751,39.554619 44.806053,39.623609 44.871281,39.600612 44.920153,39.485628 45.001515,39.508625 45.050277,39.623609 45.115228,39.807584 44.936435,39.876575 44.806053,39.922569 44.806053,40.083547 44.757084,40.12954 44.724414,40.336512 44.724414,40.382506 44.691727,40.543484 44.64266,40.658468 44.65902,40.727459 44.626296,40.727459 44.577174,40.773453 44.462395,40.79645 44.44598,40.888437 44.31449,40.888437 44.23216,40.819447 44.050626,40.750456 44.01756,40.750456 43.885111,40.635472 43.835366,40.451497 43.818776,40.359509 43.768976,40.290518 43.768976,40.221528 43.78558,40.175534 43.868534,40.106544 43.868534,40.037553 43.885111,39.968562 43.934814,39.76159 43.934814,39.715597 43.967926,39.439634 44.116703,39.416637 44.116703,39.255659 44.265106))","code":"maikop","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"131","name":"Майкоп","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((46.660652 42.865487,46.660652 42.916033,46.729642 42.932873,46.775636 43.067423,46.798633 43.067423,46.775636 43.151368,46.867624 43.184913,46.959611 43.184913,47.097592 43.134588,47.097592 43.117804,47.212577 43.117804,47.327561 43.201679,47.350558 43.285439,47.373555 43.469306,47.534533 43.719135,47.580527 43.918251,47.603524 44.00102,47.62652 44.01756,48.155448 44.034095,48.155448 43.918251,48.086458 43.818776,47.902483 43.702512,47.833492 43.502676,47.810495 43.485993,47.833492 43.369084,47.856489 43.352364,47.856489 43.21844,47.833492 43.201679,47.810495 43.117804,47.879486 43.033813,47.92548 43.033813,47.948477 42.966538,47.971473 42.966538,48.017467 42.8149,48.086458 42.764271,48.178445 42.645975,48.178445 42.595208,48.224439 42.561341,48.224439 42.5444,48.247436 42.5444,48.36242 42.442659,48.477405 42.272723,48.523398 42.238681,48.592389 42.136444,48.638383 42.102328,48.638383 42.068194,48.408414 41.982778,48.36242 41.948579,48.247436 41.948579,48.247436 42.016958,48.178445 42.102328,48.109455 42.102328,47.92548 42.272723,47.856489 42.37474,47.833492 42.425686,47.764502 42.5444,47.741505 42.5444,47.672514 42.595208,47.672514 42.645975,47.488539 42.7136,47.327561 42.7136,47.25857 42.696701,47.281567 42.645975,47.350558 42.629058,47.350558 42.578277,47.212577 42.578277,47.097592 42.629058,47.097592 42.645975,47.005605 42.696701,46.867624 42.781152,46.775636 42.848629,46.660652 42.865487))","code":"makhachkala","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"113","name":"Махачкала","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((36.749 27.120702,36.749 27.284329,36.955972 27.406891,37.001966 27.447715,37.070956 27.427305,37.300925 27.427305,37.300925 27.386473,37.438906 27.386473,37.4849 27.427305,37.553891 27.427305,37.645878 27.508922,37.737866 27.508922,37.78386 27.427305,37.898844 27.427305,37.921841 27.366052,37.898844 27.222997,37.898844 27.161631,37.990831 27.120702,37.990831 26.997825,38.059822 26.936336,38.105816 26.83378,38.266794 26.83378,38.289791 26.813257,38.404775 26.792731,38.657741 26.854298,38.772725 26.83378,39.025691 26.83378,39.347647 26.792731,39.462631 26.854298,39.485628 26.854298,39.485628 26.772201,39.554619 26.751668,39.623609 26.751668,39.738594 26.607829,39.784587 26.566699,39.784587 26.546128,39.876575 26.422627,39.899572 26.34022,39.876575 26.278376,39.968562 26.154588,39.945565 26.051332,39.968562 25.865241,39.945565 25.844546,39.968562 25.69958,39.968562 25.42989,40.06055 25.367568,40.198531 25.326002,40.359509 25.305213,40.4285 25.305213,40.474493 25.409119,40.543484 25.42989,40.612475 25.409119,40.727459 25.409119,40.842443 25.575183,41.072412 25.575183,41.1644 25.49218,41.279384 25.49218,41.302381 25.47142,41.394368 25.47142,41.440362 25.346786,41.509353 25.346786,41.647334 25.284421,41.716324 25.159595,41.785315 25.159595,41.992287 24.972115,42.130268 24.8261,42.130268 24.679912,42.084274 24.512631,42.015284 24.428906,41.992287 24.114445,41.992287 23.967432,41.96929 23.946416,41.900299 23.967432,41.762318 23.967432,41.739321 23.904374,41.762318 23.841286,41.762318 23.736071,41.739321 23.630771,41.509353 23.525386,41.463359 23.525386,41.348375 23.462114,41.279384 23.398812,41.302381 23.33548,41.463359 23.272118,41.463359 23.208725,41.371371 23.166447,41.302381 23.145302,41.210393 23.08185,41.210393 23.060692,41.049415 22.912497,41.003421 22.912497,40.842443 22.764139,40.773453 22.742931,40.681465 22.594389,40.612475 22.573156,40.589478 22.594389,40.4285 22.615619,40.359509 22.551919,40.221528 22.488189,40.152537 22.488189,40.06055 22.530679,40.083547 22.67929,40.06055 22.742931,39.899572 22.806543,39.899572 22.912497,39.922569 22.912497,39.945565 22.933677,39.945565 23.124155,39.876575 23.145302,39.669603 23.124155,39.669603 23.103004,39.485628 23.060692,39.416637 23.187588,39.255659 23.166447,39.163672 23.187588,39.140675 23.25099,38.9567 23.377705,38.9567 23.441017,38.657741 23.419916,38.2208 23.208725,38.151809 23.229859,37.85285 23.504298,37.760863 23.6097,37.714869 23.693961,37.4849 23.988444,37.346919 24.093454,37.231935 24.156418,37.162944 24.156418,37.070956 24.198378,37.093953 24.261291,37.438906 24.575388,37.4849 24.638113,37.4849 24.679912,37.737866 24.659015,37.829853 24.659015,37.829853 24.721698,37.85285 24.78435,38.059822 24.78435,38.059822 24.867836,37.944838 24.888699,37.921841 24.951267,37.875847 24.99296,37.85285 25.097133,37.85285 25.201218,37.78386 25.263626,37.78386 25.409119,37.737866 25.450657,37.737866 25.575183,37.85285 25.637398,37.85285 25.69958,37.737866 25.76173,37.622881 25.782439,37.553891 25.844546,37.553891 25.947984,37.507897 26.051332,37.461903 26.092645,37.346919 26.216498,37.369916 26.319609,37.231935 26.319609,37.208938 26.381431,37.231935 26.44322,37.11695 26.566699,37.139947 26.751668,37.024963 26.813257,37.001966 26.83378,36.932975 26.854298,36.955972 26.997825,36.955972 27.05928,36.794994 27.05928,36.749 27.120702))","code":"medina","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":true},"id":"219","name":"Медина","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((38.2208 23.166447,38.2208 23.208725,38.657741 23.419916,38.9567 23.441017,38.9567 23.377705,39.140675 23.25099,39.163672 23.187588,39.255659 23.166447,39.416637 23.187588,39.485628 23.060692,39.669603 23.103004,39.669603 23.124155,39.876575 23.145302,39.945565 23.124155,39.945565 22.933677,39.922569 22.912497,39.899572 22.912497,39.899572 22.806543,40.06055 22.742931,40.083547 22.67929,40.06055 22.530679,40.152537 22.488189,40.221528 22.488189,40.359509 22.551919,40.4285 22.615619,40.589478 22.594389,40.612475 22.573156,40.681465 22.594389,40.773453 22.742931,40.842443 22.764139,41.003421 22.912497,41.049415 22.912497,41.210393 23.060692,41.210393 23.08185,41.302381 23.145302,41.371371 23.166447,41.463359 23.208725,41.463359 23.272118,41.302381 23.33548,41.279384 23.398812,41.348375 23.462114,41.463359 23.525386,41.509353 23.525386,41.739321 23.630771,41.762318 23.736071,41.762318 23.841286,41.739321 23.904374,41.762318 23.967432,41.900299 23.967432,41.96929 23.946416,41.96929 23.79921,42.107271 23.672901,42.153265 23.504298,42.176262 23.483208,42.199259 23.419916,42.222256 23.272118,42.360237 22.9972,42.452224 22.933677,42.475221 22.912497,42.912162 22.912497,42.935159 22.891312,43.004149 22.870125,42.981152 22.721721,42.981152 22.615619,43.096137 22.509436,43.280112 22.551919,43.44109 22.530679,43.487084 22.488189,43.464087 22.42443,43.464087 22.190396,43.51008 22.019945,43.51008 21.934642,43.487084 21.870631,43.418093 21.785239,43.44109 21.721161,43.44109 21.59292,43.395096 21.464565,43.395096 21.357516,43.44109 21.314675,43.51008 21.207517,43.533077 21.186076,43.648062 21.014436,43.648062 20.971495,43.556074 20.928542,43.418093 20.842598,43.165127 20.864089,43.119134 20.821105,42.958156 20.821105,42.843171 20.713591,42.682193 20.649047,42.314243 20.347476,42.222256 20.347476,42.130268 20.412148,42.084274 20.584474,42.038281 20.606001,42.015284 20.670565,41.900299 20.670565,41.785315 20.606001,41.693328 20.606001,41.486356 20.584474,41.394368 20.756606,41.279384 20.756606,41.23339 20.670565,41.256387 20.476793,41.23339 20.4337,41.210393 20.412148,41.210393 20.369037,41.1644 20.325913,41.141403 20.261205,41.026418 20.239629,40.888437 20.174885,40.819447 20.088518,40.819447 20.023711,40.934431 20.002103,40.957428 19.93726,40.957428 19.742573,40.980425 19.720927,40.957428 19.61265,40.957428 19.569319,41.118406 19.482621,41.141403 19.417568,41.210393 19.374185,41.348375 19.374185,41.371371 19.439255,41.394368 19.569319,41.417365 19.590986,41.417365 19.655969,41.463359 19.699277,41.509353 19.785858,41.693328 19.785858,41.739321 19.82913,41.739321 19.807495,41.808312 19.807495,41.877303 19.764217,41.831309 19.525976,41.900299 19.417568,41.900299 19.374185,41.831309 19.222252,41.60134 19.222252,41.53235 19.157094,41.463359 19.157094,41.440362 19.178816,41.394368 19.157094,41.394368 19.004961,41.371371 18.983216,41.394368 18.852688,41.440362 18.787386,41.693328 18.787386,41.762318 18.678493,41.785315 18.56953,41.808312 18.56953,41.808312 18.482309,41.785315 18.329566,41.739321 18.242224,41.670331 18.220381,41.578343 18.089269,40.750456 17.695347,40.704462 17.739159,40.543484 18.023676,40.543484 18.067408,40.520487 18.067408,40.451497 18.351395,40.4285 18.416865,40.313515 18.56953,40.06055 18.765613,39.991559 18.830924,39.922569 18.939718,39.876575 19.178816,39.784587 19.439255,39.715597 19.590986,39.32465 20.088518,39.094681 20.541411,39.071684 20.606001,38.9567 20.821105,38.933703 20.821105,38.818719 21.014436,38.795722 21.035902,38.611747 21.614301,38.542756 21.721161,38.496763 21.849288,38.519759 22.083888,38.611747 22.360642,38.58875 22.381908,38.473766 22.530679,38.404775 22.636846,38.381778 22.700507,38.381778 22.806543,38.358781 22.912497,38.358781 22.954855,38.2208 23.166447))","code":"mekka","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":true},"id":"218","name":"Мекка","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((58.527037 55.200927,58.573031 55.24028,58.665019 55.305783,58.780003 55.331954,58.940981 55.331954,58.963978 55.292691,58.986975 55.279595,59.078962 55.292691,59.101959 55.305783,59.262937 55.266495,59.331928 55.266495,59.377922 55.345033,59.377922 55.384244,59.515903 55.436465,59.676881 55.553709,59.791865 55.553709,59.929847 55.670605,60.389784 56.006351,60.550762 56.019206,60.64275 56.032057,60.688743 55.993491,60.71174 55.954886,60.918712 55.929128,60.918712 55.877561,60.895715 55.864658,60.826725 55.813005,60.803728 55.77422,60.665746 55.787153,60.619753 55.748342,60.619753 55.657634,60.688743 55.631679,60.688743 55.488617,60.619753 55.397306,60.550762 55.318871,60.458775 55.24028,60.481771 55.17467,60.481771 55.043123,60.458775 54.897922,60.435778 54.897922,60.320793 54.85823,60.228806 54.805248,59.998837 54.884696,59.952843 54.884696,59.791865 54.871465,59.653884 54.897922,59.5389 54.844991,59.515903 54.77873,59.469909 54.738921,59.308931 54.672486,59.262937 54.605942,59.032969 54.512597,58.87199 54.445791,58.803 54.432417,58.780003 54.445791,58.734009 54.485888,58.711012 54.525945,58.665019 54.552628,58.734009 54.765465,58.711012 54.805248,58.688015 54.8185,58.688015 54.924361,58.665019 54.963988,58.688015 54.963988,58.803 55.016762,58.803 55.056298,58.780003 55.069467,58.711012 55.135251,58.550034 55.161535,58.527037 55.200927))","code":"miass","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"87","name":"Миасс и Златоуст","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((27.067317 53.907408,27.090314 53.97509,27.159305 54.042661,27.251292 54.069659,27.389274 54.069659,27.642239 54.056163,27.757224 54.069659,27.78022 54.056163,27.895205 54.029156,27.987192 54.029156,27.987192 53.988613,28.010189 53.94803,28.07918 53.907408,28.07918 53.853184,28.056183 53.853184,27.872208 53.826046,27.849211 53.81247,27.71123 53.771716,27.642239 53.730922,27.550252 53.730922,27.527255 53.717316,27.366277 53.690089,27.297286 53.717316,27.320283 53.81247,27.251292 53.826046,27.113311 53.880305,27.067317 53.907408))","code":"minsk","country_code":"by","domain":"by","flags":{"2gis_reviews":true,"flamp":false,"metro":true,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"217","name":"Минск","time_zone":{"name":"Europe/Minsk","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((36.726003 55.082633,36.726003 55.135251,36.794994 55.200927,36.955972 55.25339,36.978969 55.292691,36.955972 55.331954,36.863985 55.384244,36.794994 55.397306,36.817991 55.514667,36.794994 55.527685,36.771997 55.566715,36.794994 55.605706,36.771997 55.722447,36.771997 55.83884,36.794994 55.851751,36.771997 55.890459,36.794994 55.954886,36.749 56.070585,36.771997 56.134713,36.840988 56.185938,36.863985 56.198733,36.932975 56.198733,37.04796 56.262647,37.11695 56.249873,37.162944 56.198733,37.622881 56.224312,37.645878 56.237095,37.898844 56.224312,37.944838 56.237095,38.197803 56.237095,38.197803 56.224312,38.450769 56.237095,38.473766 56.249873,38.58875 56.249873,38.634744 56.224312,38.841716 56.224312,38.933703 56.313702,39.002694 56.313702,39.048687 56.249873,39.163672 56.185938,39.163672 56.134713,39.117678 56.109074,39.140675 55.980627,39.117678 55.967759,39.140675 55.851751,39.117678 55.83884,39.048687 55.761284,39.048687 55.683572,39.071684 55.670605,39.163672 55.644659,39.163672 55.579716,39.117678 55.553709,39.117678 55.475585,39.163672 55.436465,39.140675 55.397306,39.163672 55.331954,39.094681 55.266495,39.117678 55.095794,39.094681 55.095794,39.071684 55.029945,39.002694 55.016762,39.002694 54.977188,38.9567 54.977188,38.818719 55.029945,38.680737 55.029945,38.657741 54.990384,38.611747 54.990384,38.519759 55.043123,38.450769 55.043123,38.404775 55.016762,38.335784 55.003575,38.289791 55.029945,38.082819 55.016762,37.990831 55.043123,37.829853 55.029945,37.737866 55.003575,37.622881 55.016762,37.553891 54.990384,37.438906 54.977188,37.438906 54.963988,37.323922 54.963988,37.208938 55.003575,37.162944 55.003575,37.162944 55.016762,37.093953 55.029945,36.955972 55.082633,36.886982 55.069467,36.794994 55.069467,36.726003 55.082633))","code":"moscow","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":true,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"32","name":"Москва","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"MULTIPOLYGON(((35.162216 55.954886,35.162216 55.980627,35.323194 56.070585,35.323194 56.109074,35.300197 56.109074,35.300197 56.134713,35.323194 56.147525,35.323194 56.160334,35.346191 56.173138,35.346191 56.198733,35.323194 56.198733,35.323194 56.224312,35.392185 56.237095,35.484172 56.249873,35.484172 56.390156,35.438179 56.390156,35.438179 56.428326,35.57616 56.453751,35.599157 56.466457,35.668147 56.453751,35.783132 56.390156,35.94411 56.377424,36.059094 56.377424,36.082091 56.364688,36.151082 56.402883,36.289063 56.428326,36.31206 56.44104,36.427044 56.466457,36.450041 56.479159,36.565025 56.491856,36.611019 56.517239,36.657013 56.517239,36.817991 56.580621,36.886982 56.580621,37.024963 56.542605,37.093953 56.542605,37.139947 56.580621,37.139947 56.643897,37.162944 56.681812,37.093953 56.744919,37.093953 56.770132,37.208938 56.770132,37.277928 56.757527,37.392913 56.795328,37.507897 56.795328,37.530894 56.83309,37.553891 56.845669,37.553891 56.921055,37.622881 56.933604,37.714869 56.95869,37.829853 56.908501,37.921841 56.883381,37.967834 56.883381,37.990831 56.820507,37.990831 56.782732,38.082819 56.757527,38.197803 56.770132,38.243797 56.770132,38.312788 56.757527,38.312788 56.669178,38.335784 56.669178,38.335784 56.555281,38.289791 56.542605,38.358781 56.453751,38.381778 56.44104,38.427772 56.364688,38.427772 56.288183,38.496763 56.249873,38.496763 56.237095,38.335784 56.237095,38.312788 56.224312,38.059822 56.237095,37.898844 56.224312,37.645878 56.237095,37.622881 56.224312,37.162944 56.198733,37.11695 56.249873,37.04796 56.262647,36.932975 56.198733,36.863985 56.198733,36.840988 56.185938,36.771997 56.134713,36.749 56.070585,36.794994 55.954886,36.771997 55.890459,36.794994 55.851751,36.771997 55.83884,36.771997 55.722447,36.794994 55.605706,36.771997 55.566715,36.794994 55.527685,36.817991 55.514667,36.794994 55.397306,36.863985 55.384244,36.978969 55.318871,36.978969 55.266495,36.817991 55.200927,36.794994 55.200927,36.794994 55.227167,36.771997 55.266495,36.703007 55.266495,36.634016 55.279595,36.611019 55.318871,36.588022 55.331954,36.542028 55.305783,36.473038 55.305783,36.404047 55.292691,36.38105 55.279595,36.31206 55.200927,36.266066 55.17467,36.243069 55.1878,36.128085 55.1878,36.105088 55.200927,35.921113 55.24028,35.852122 55.24028,35.760135 55.279595,35.599157 55.292691,35.507169 55.24028,35.415182 55.24028,35.323194 55.266495,35.323194 55.292691,35.277201 55.318871,35.300197 55.358108,35.300197 55.436465,35.323194 55.449509,35.323194 55.553709,35.300197 55.553709,35.323194 55.566715,35.323194 55.579716,35.392185 55.592713,35.369188 55.644659,35.346191 55.657634,35.346191 55.709493,35.323194 55.709493,35.323194 55.787153,35.300197 55.800081,35.254204 55.851751,35.231207 55.864658,35.162216 55.954886)),((37.162944 55.003575,37.231935 55.003575,37.254931 54.977188,37.41591 54.963988,37.507897 54.990384,37.576888 54.990384,37.622881 55.016762,37.737866 55.003575,37.829853 55.029945,37.990831 55.043123,38.082819 55.016762,38.289791 55.029945,38.335784 55.003575,38.404775 55.016762,38.450769 55.043123,38.519759 55.043123,38.611747 54.990384,38.657741 54.990384,38.680737 55.029945,38.818719 55.029945,38.9567 54.977188,39.002694 54.977188,39.002694 55.016762,39.071684 55.029945,39.094681 55.095794,39.117678 55.095794,39.094681 55.266495,39.163672 55.331954,39.140675 55.397306,39.163672 55.436465,39.117678 55.475585,39.117678 55.553709,39.163672 55.579716,39.163672 55.644659,39.071684 55.670605,39.048687 55.683572,39.048687 55.761284,39.117678 55.851751,39.140675 55.851751,39.209666 55.83884,39.301653 55.851751,39.301653 55.800081,39.370644 55.77422,39.462631 55.77422,39.508625 55.748342,39.554619 55.787153,39.669603 55.800081,39.784587 55.83884,39.876575 55.83884,39.899572 55.800081,39.899572 55.748342,40.014556 55.683572,40.083547 55.605706,40.06055 55.540699,40.083547 55.527685,40.152537 55.527685,40.198531 55.488617,40.152537 55.436465,40.198531 55.358108,40.198531 55.345033,40.152537 55.266495,40.083547 55.25339,40.014556 55.214049,39.807584 55.200927,39.738594 55.135251,39.853578 55.108951,39.830581 55.029945,39.76159 55.016762,39.738594 55.003575,39.646606 55.016762,39.508625 54.963988,39.462631 54.897922,39.39364 54.831748,39.347647 54.77873,39.347647 54.738921,39.232662 54.725643,39.232662 54.645881,39.117678 54.645881,38.979697 54.619259,38.864712 54.619259,38.795722 54.512597,38.795722 54.459161,38.841716 54.459161,38.933703 54.432417,38.910706 54.392268,38.818719 54.378876,38.703734 54.338675,38.703734 54.258154,38.657741 54.258154,38.634744 54.271585,38.519759 54.298434,38.519759 54.36548,38.404775 54.472527,38.404775 54.525945,38.473766 54.565963,38.496763 54.605942,38.450769 54.645881,38.381778 54.645881,38.174806 54.699073,38.059822 54.71236,38.036825 54.752195,38.013828 54.765465,37.967834 54.844991,37.898844 54.844991,37.78386 54.831748,37.760863 54.738921,37.714869 54.725643,37.599885 54.738921,37.530894 54.77873,37.438906 54.844991,37.323922 54.844991,37.254931 54.831748,37.254931 54.844991,37.185941 54.85823,37.162944 55.003575)))","code":"moscow_region","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"241","name":"Московская область","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((28.424133 68.529187,28.424133 68.562831,28.44713 68.571235,28.51612 68.613204,28.539117 68.646724,28.585111 68.663465,28.654102 68.721959,28.677098 68.721959,28.746089 68.81357,28.769086 68.863381,28.677098 68.87996,28.470127 68.87996,28.424133 68.904805,28.424133 68.921353,28.654102 68.979173,28.769086 69.02038,28.861073 69.045067,28.930064 69.05329,28.999055 69.05329,29.068045 69.028612,29.091042 69.05329,29.229023 69.118962,29.229023 69.151725,29.275017 69.184438,29.275017 69.225261,29.298014 69.233416,29.275017 69.241568,29.25202 69.266007,29.275017 69.306676,29.344008 69.314801,29.367005 69.322923,29.435995 69.331042,29.573976 69.331042,29.688961 69.37969,29.734955 69.395881,29.849939 69.428228,29.964923 69.420146,29.98792 69.412061,30.056911 69.452457,30.102904 69.484719,30.102904 69.516932,30.171895 69.557131,30.125901 69.613282,30.125901 69.637302,30.056911 69.645302,30.079908 69.669286,30.148898 69.677274,30.286879 69.6533,30.470854 69.581214,30.562842 69.549097,30.861801 69.54106,30.930792 69.581214,30.930792 69.629298,30.884798 69.701222,30.861801 69.709198,30.861801 69.73311,30.792811 69.788798,30.930792 69.876012,30.953789 69.907637,30.999782 69.923431,31.068773 69.978618,31.183757 70.017949,31.229751 70.025806,31.551707 70.112039,31.666692 70.135495,31.82767 70.158924,32.080635 70.158924,32.19562 70.151118,32.448585 70.112039,32.471582 70.104214,32.908523 69.994359,33.023507 69.970743,33.115495 69.970743,33.345463 69.931324,33.506441 69.89183,33.552435 69.876012,33.713413 69.76495,33.73641 69.709198,33.713413 69.68526,33.782404 69.629298,33.874391 69.60527,34.035369 69.597254,34.173351 69.597254,34.380323 69.581214,34.403319 69.573189,34.518304 69.557131,34.771269 69.500831,34.932247 69.460527,35.323194 69.460527,35.57616 69.436307,35.599157 69.428228,35.691144 69.428228,35.990104 69.403973,36.197075 69.371589,36.220072 69.363486,36.38105 69.314801,36.565025 69.282284,36.588022 69.274147,36.886982 69.200776,36.978969 69.168087,37.093953 69.143539,37.369916 69.045067,37.438906 69.028612,37.507897 69.02038,37.806856 68.962668,37.898844 68.929622,38.105816 68.863381,38.243797 68.81357,38.358781 68.730303,38.404775 68.713612,38.473766 68.663465,38.58875 68.621589,38.634744 68.596426,38.9567 68.546015,39.186669 68.48706,39.186669 68.478625,39.76159 68.385634,40.888437 68.546015,41.187396 68.588032,41.210393 68.588032,41.210393 68.596426,41.302381 68.596426,41.371371 68.520768,41.394368 68.461746,41.417365 68.453302,41.647334 68.15576,41.670331 68.130075,41.716324 68.070033,42.452224 67.069893,42.498218 66.989121,42.314243 66.862941,42.199259 66.826769,42.153265 66.808663,41.555346 66.608616,41.210393 66.480466,41.210393 66.471287,40.727459 66.296246,40.566481 66.231448,40.221528 66.110666,39.715597 65.90495,39.439634 65.867368,39.278656 65.839146,39.232662 65.839146,39.232662 65.829732,39.163672 65.829732,39.140675 65.820314,38.910706 65.79204,38.634744 65.744847,38.381778 65.707031,38.312788 65.697568,37.875847 65.707031,37.85285 65.71649,37.139947 65.744847,37.070956 65.754293,36.771997 65.763735,36.082091 65.79204,36.0131 65.79204,35.921113 65.829732,35.875119 65.829732,35.806129 65.857964,35.369188 65.998663,35.323194 66.008016,35.323194 66.017365,35.162216 66.064058,35.116222 66.082712,35.047232 66.092033,35.047232 66.101352,34.84026 66.157189,34.633288 66.222177,34.610291 66.231448,33.989376 66.40694,33.644423 66.489641,33.621426 66.498813,33.506441 66.507982,33.230479 66.553775,33.138492 66.553775,32.93152 66.581211,32.63256 66.581211,32.56357 66.572069,32.540573 66.507982,32.517576 66.480466,32.448585 66.480466,32.356598 66.462105,32.356598 66.351654,32.287607 66.342428,32.126629 66.351654,31.965651 66.351654,31.850667 66.360877,31.804673 66.397734,31.804673 66.462105,31.758679 66.498813,31.689689 66.498813,31.620698 66.507982,31.597701 66.562924,31.574704 66.645109,31.505714 66.654224,30.976786 66.663335,30.447858 66.654224,29.91893 66.663335,29.321011 66.663335,29.25202 66.690649,29.160033 66.76334,29.114039 66.772412,29.068045 66.844861,29.045048 66.853903,28.999055 66.935124,29.022052 66.944131,29.045048 67.007094,29.068045 67.016075,29.275017 67.13253,29.298014 67.16825,29.344008 67.186091,29.412998 67.230633,29.435995 67.239532,29.435995 67.248427,29.458992 67.248427,29.481989 67.292855,29.61997 67.354915,29.642967 67.381463,29.688961 67.399146,29.803945 67.478555,29.91893 67.531347,29.941926 67.57525,29.941926 67.601554,29.98792 67.636579,29.98792 67.671552,29.61997 67.810928,29.481989 67.932203,29.458992 67.958109,29.435995 67.958109,29.435995 67.983985,29.390001 68.00122,29.321011 68.061442,29.206027 68.087204,29.022052 68.121507,28.999055 68.130075,28.953061 68.130075,28.930064 68.13864,28.861073 68.147202,28.677098 68.181416,28.631105 68.198504,28.470127 68.436404,28.424133 68.529187))","code":"murmansk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"96","name":"Мурманская область","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((41.946293 55.514667,41.946293 55.631679,41.992287 55.631679,42.061278 55.618695,42.084274 55.553709,42.084274 55.501644,42.015284 55.501644,41.946293 55.514667))","code":"murom","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"132","name":"Муром","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((51.650973 55.566715,51.650973 55.618695,51.696967 55.644659,51.719963 55.709493,51.650973 55.825925,51.67397 55.851751,51.788954 55.851751,51.834948 55.877561,51.972929 55.877561,51.995926 55.864658,52.11091 55.851751,52.179901 55.877561,52.294885 55.864658,52.340879 55.877561,52.363876 55.864658,52.547851 55.864658,52.616841 55.83884,52.616841 55.618695,52.524854 55.553709,52.386873 55.540699,52.363876 55.553709,52.202898 55.553709,52.133907 55.540699,52.11091 55.553709,52.087913 55.540699,51.926935 55.540699,51.834948 55.566715,51.719963 55.553709,51.650973 55.566715))","code":"nabchelny","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"29","name":"Набережные Челны","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((43.602068 17.432249,43.648062 17.476125,43.671059 17.585769,43.648062 17.739159,43.671059 18.067408,43.648062 18.176688,43.671059 18.285901,43.763046 18.329566,43.786043 18.395044,44.016012 18.56953,44.062005 18.700277,44.130996 18.743837,44.291974 18.765613,44.383962 18.87445,44.406958 18.939718,44.406958 19.026703,44.360965 19.200535,44.383962 19.265675,44.521943 19.33079,44.521943 19.482621,44.636927 19.46094,44.682921 19.417568,44.774908 19.352488,44.91289 19.287383,45.027874 19.265675,45.418821 19.243965,45.533805 19.265675,46.338696 19.33079,46.660652 19.374185,47.005605 19.395878,47.097592 19.417568,47.25857 19.439255,47.465542 19.46094,47.580527 19.482621,47.55753 19.374185,47.55753 19.33079,51.972929 19.33079,51.995926 19.265675,51.995926 18.983216,51.926935 18.961469,51.168039 18.830924,50.639111 18.743837,50.432139 18.722059,49.926208 18.678493,49.121317 18.591328,48.592389 18.351395,48.224439 18.176688,48.109455 18.023676,47.764502 17.60769,47.718508 17.563846,47.603524 17.410307,47.603524 17.388363,47.511536 17.190743,47.488539 17.102844,47.327561 17.014904,47.304564 16.992912,47.18958 16.926922,47.005605 16.926922,46.936614 16.992912,46.729642 17.25664,46.568664 17.234677,46.361692 17.212711,45.901755 17.25664,45.740777 17.2786,45.395824 17.300558,45.28084 17.366415,45.28084 17.388363,45.234846 17.388363,45.211849 17.410307,44.61393 17.410307,44.61393 17.388363,44.039008 17.388363,43.970018 17.322513,43.671059 17.344466,43.625065 17.388363,43.602068 17.432249))","code":"najran","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":true},"id":"228","name":"Наджран","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((44.705918 43.184913,44.705918 43.268696,44.728915 43.268696,44.843899 43.251949,44.866896 43.201679,44.843899 43.151368,44.774908 43.151368,44.705918 43.184913))","code":"nazran","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"154","name":"Назрань","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((43.487084 43.435917,43.51008 43.519355,43.717052 43.536028,43.717052 43.502676,43.648062 43.40251,43.533077 43.40251,43.487084 43.435917))","code":"nalchik","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"134","name":"Нальчик","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((52.915801 67.619073,52.915801 67.662814,52.984791 67.671552,53.007788 67.680288,53.122773 67.697748,53.191763 67.68902,53.168766 67.627827,53.053782 67.601554,52.915801 67.619073))","code":"naryanmar","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"159","name":"Нарьян-Мар","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((132.553966 42.8149,132.553966 42.865487,132.622957 42.949708,132.829928 42.949708,133.128888 42.966538,133.243872 42.916033,133.243872 42.7136,133.220875 42.662889,132.783935 42.662889,132.553966 42.8149))","code":"nahodka","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"82","name":"Находка","time_zone":{"name":"Asia/Vladivostok","offset":600},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((41.877303 44.708073,41.900299 44.708073,42.038281 44.675376,42.038281 44.593552,41.96929 44.577174,41.900299 44.593552,41.877303 44.708073))","code":"nevinnomyssk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"135","name":"Невинномысск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((75.038791 61.19493,75.038791 61.250284,75.061788 61.305541,75.084785 61.316581,75.245763 61.305541,75.291757 61.261343,75.521725 61.250284,75.567719 61.272399,75.659706 61.272399,75.682703 61.261343,75.774691 61.228154,76.142641 61.239221,76.257625 61.183847,76.993525 61.183847,77.108509 61.172761,77.131506 61.16167,77.292484 61.172761,77.315481 61.16167,77.54545 61.139478,77.614441 61.11727,77.867406 61.10616,77.9134 61.095046,77.890403 61.017141,77.844409 60.81593,77.844409 60.782272,77.821412 60.771044,77.821412 60.737338,77.637437 60.613447,77.384472 60.60216,77.315481 60.613447,77.154503 60.692342,77.016522 60.692342,76.947531 60.714848,76.878541 60.748578,76.80955 60.759813,76.740559 60.81593,76.671569 60.81593,76.602578 60.87195,76.533588 60.87195,76.510591 60.860754,75.912672 60.860754,75.521725 60.961376,75.245763 61.050552,75.061788 61.139478,75.038791 61.19493))","code":"nizhnevartovsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"12","name":"Нижневартовск","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((43.234118 56.453751,43.303109 56.466457,43.349102 56.491856,43.533077 56.491856,43.556074 56.453751,43.648062 56.453751,43.671059 56.491856,43.80904 56.567953,43.901027 56.567953,43.947021 56.517239,44.016012 56.517239,44.107999 56.491856,44.222983 56.491856,44.291974 56.479159,44.291974 56.428326,44.268977 56.339204,44.314971 56.185938,44.291974 56.173138,44.268977 56.121896,44.337968 56.109074,44.337968 56.070585,44.268977 56.057747,44.17699 56.057747,44.107999 56.032057,44.107999 55.967759,44.062005 55.890459,44.062005 55.735397,44.016012 55.631679,44.016012 55.540699,43.993015 55.475585,44.016012 55.436465,43.993015 55.371178,43.901027 55.305783,43.832037 55.305783,43.694055 55.371178,43.717052 55.475585,43.671059 55.527685,43.694055 55.527685,43.694055 55.566715,43.579071 55.579716,43.579071 55.605706,43.533077 55.631679,43.533077 55.696535,43.602068 55.748342,43.464087 55.825925,43.418093 56.006351,43.303109 56.032057,43.257115 56.185938,43.280112 56.224312,43.326105 56.262647,43.257115 56.300945,43.257115 56.364688,43.234118 56.453751))","code":"n_novgorod","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":true,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"19","name":"Нижний Новгород","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((58.642022 58.009341,58.848994 57.997155,58.87199 57.997155,58.940981 57.984966,59.055965 57.972772,59.469909 57.911742,59.745872 57.911742,59.768868 57.948372,59.768868 58.009341,59.791865 58.094522,60.113822 58.082366,60.182812 58.070205,60.251803 58.082366,60.320793 58.070205,60.34379 58.033699,60.435778 58.033699,60.527765 58.082366,60.596756 58.082366,60.619753 58.045872,60.527765 57.948372,60.458775 57.911742,60.389784 57.8873,60.320793 57.8873,60.251803 57.801625,60.228806 57.70346,60.159815 57.678877,60.021834 57.691171,59.699878 57.617347,59.584893 57.580379,59.400918 57.531029,59.308931 57.518682,59.308931 57.50633,59.262937 57.50633,59.23994 57.493973,59.078962 57.469249,59.078962 57.419749,59.009972 57.419749,58.986975 57.45688,58.963978 57.469249,58.87199 57.493973,58.87199 57.50633,58.803 57.50633,58.757006 57.543373,58.803 57.617347,58.780003 57.641971,58.711012 57.654277,58.711012 57.666579,58.848994 57.740303,58.848994 57.838368,58.757006 57.850607,58.688015 57.911742,58.665019 57.923956,58.642022 58.009341))","code":"ntagil","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"45","name":"Нижний Тагил","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((86.468236 53.97509,86.491233 54.015646,86.491233 54.069659,86.652211 54.110123,86.675208 54.123603,87.227133 54.123603,87.388111 54.190933,87.411108 54.204386,87.434105 54.204386,87.480098 54.231279,87.503095 54.271585,87.848048 54.231279,87.894042 54.204386,87.940036 54.204386,87.963033 54.190933,88.170004 54.110123,88.284989 54.069659,88.307986 54.069659,88.307986 54.056163,88.514958 53.988613,88.537954 53.97509,88.974895 53.81247,88.997892 53.744525,89.020889 53.744525,89.020889 53.703705,89.043886 53.635583,88.951898 53.608304,88.882907 53.608304,88.859911 53.594658,88.813917 53.581007,88.675936 53.512687,88.514958 53.416854,88.376976 53.403146,88.307986 53.389434,88.284989 53.389434,87.917039 53.34827,87.848048 53.334539,87.641076 53.320805,87.595083 53.416854,87.480098 53.49901,86.58322 53.49901,86.51423 53.512687,86.51423 53.920953,86.468236 53.97509))","code":"novokuznetsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"6","name":"Новокузнецк","time_zone":{"name":"Asia/Novokuznetsk","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((36.840988 44.887576,36.840988 44.903867,36.932975 45.098997,36.955972 45.115228,36.955972 45.212516,37.070956 45.244908,37.185941 45.244908,37.346919 45.228714,37.41591 45.196313,37.4849 45.212516,37.645878 45.212516,37.944838 45.228714,38.128813 45.196313,38.2208 45.196313,38.58875 45.228714,38.657741 45.180105,38.58875 45.115228,38.565753 44.968984,38.634744 44.887576,38.657741 44.773411,38.634744 44.65902,38.657741 44.511614,38.680737 44.495212,38.680737 44.44598,38.634744 44.380272,38.611747 44.330943,38.496763 44.149714,38.335784 44.166212,38.266794 44.182706,38.013828 44.265106,37.944838 44.347391,37.85285 44.396706,37.737866 44.44598,37.714869 44.462395,37.553891 44.462395,37.254931 44.560791,37.139947 44.64266,37.024963 44.822367,36.932975 44.871281,36.840988 44.887576))","code":"novorossiysk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"74","name":"Новороссийск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((80.948987 54.36548,80.948987 54.378876,81.040974 54.445791,81.201952 54.459161,81.270943 54.432417,81.339934 54.445791,81.546906 54.525945,81.523909 54.605942,81.592899 54.619259,81.707884 54.632572,81.684887 54.672486,81.615896 54.738921,81.592899 54.752195,81.523909 54.8185,81.569902 54.871465,81.477915 54.937574,81.408924 54.937574,81.362931 54.963988,81.431921 55.029945,81.454918 55.043123,81.431921 55.108951,81.454918 55.122103,81.454918 55.279595,81.408924 55.279595,81.385927 55.318871,81.431921 55.345033,81.546906 55.397306,81.868862 55.449509,82.075834 55.501644,82.121827 55.501644,82.121827 55.540699,82.02984 55.644659,81.937852 55.77422,81.822868 55.903353,81.730881 56.032057,81.592899 56.198733,81.569902 56.237095,81.592899 56.249873,81.868862 56.300945,82.144824 56.326455,82.282805 56.351948,82.351796 56.351948,82.420787 56.390156,82.489777 56.402883,82.742743 56.415607,82.811733 56.428326,82.811733 56.517239,82.880724 56.529924,83.041702 56.529924,83.110693 56.542605,83.271671 56.453751,83.271671 56.415607,83.156687 56.351948,83.13369 56.262647,83.087696 56.237095,83.087696 56.224312,83.20268 56.211525,83.179683 56.147525,83.156687 56.134713,83.156687 56.109074,83.248674 56.109074,83.271671 56.096249,83.248674 56.032057,83.317665 55.980627,83.386655 55.916243,83.386655 55.864658,83.294668 55.813005,83.225677 55.748342,83.248674 55.709493,83.409652 55.709493,83.593627 55.683572,83.616624 55.696535,83.662618 55.735397,83.662618 55.77422,83.731608 55.787153,83.754605 55.83884,83.915583 55.980627,83.984574 56.019206,84.145552 56.032057,84.168549 56.044904,84.237539 56.044904,84.329527 55.993491,84.375521 55.993491,84.398518 56.032057,84.467508 56.044904,84.536499 56.006351,84.513502 55.916243,84.490505 55.903353,84.490505 55.864658,84.536499 55.864658,84.559496 55.825925,84.605489 55.77422,84.536499 55.735397,84.605489 55.696535,84.67448 55.683572,84.697477 55.670605,84.789464 55.553709,84.743471 55.514667,84.743471 55.449509,84.67448 55.423416,84.651483 55.410363,84.67448 55.371178,84.812461 55.371178,84.904449 55.345033,84.904449 55.279595,84.881452 55.279595,84.858455 55.214049,84.927446 55.161535,84.927446 55.095794,84.858455 55.003575,84.881452 54.963988,84.996436 54.937574,84.996436 54.897922,85.065427 54.85823,85.065427 54.8185,84.950442 54.765465,84.927446 54.752195,84.927446 54.71236,84.996436 54.672486,84.996436 54.632572,84.950442 54.605942,84.973439 54.552628,84.996436 54.539289,85.088424 54.459161,85.111421 54.445791,85.065427 54.419038,84.835458 54.338675,84.766468 54.325266,84.605489 54.258154,84.582493 54.204386,84.536499 54.150548,84.191546 54.177476,83.961577 54.110123,83.800599 54.123603,83.800599 54.110123,83.57063 54.110123,83.478643 54.069659,83.478643 54.002132,83.409652 53.934494,83.340661 53.94803,83.317665 54.056163,83.156687 54.056163,83.041702 53.94803,82.857727 53.866747,82.742743 53.771716,82.742743 53.744525,82.650755 53.690089,82.650755 53.635583,82.535771 53.567352,82.535771 53.49901,82.489777 53.49901,82.420787 53.512687,82.39779 53.512687,82.351796 53.540028,82.190818 53.608304,82.167821 53.662845,82.09883 53.662845,81.937852 53.717316,81.822868 53.703705,81.799871 53.730922,81.730881 53.771716,81.753877 53.826046,81.845865 53.880305,81.845865 53.920953,81.822868 53.961562,81.638893 53.97509,81.592899 53.920953,81.546906 53.934494,81.592899 54.015646,81.569902 54.029156,81.362931 54.069659,81.29394 54.069659,81.247946 54.09664,81.132962 54.123603,81.086968 54.204386,81.063971 54.204386,81.063971 54.217835,80.994981 54.285012,80.971984 54.298434,80.971984 54.35208,80.948987 54.36548))","code":"novosibirsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":true,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"1","name":"Новосибирск","time_zone":{"name":"Asia/Novosibirsk","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((40.014556 47.342019,40.014556 47.404314,40.037553 47.482081,40.083547 47.544211,40.106544 47.559732,40.175534 47.544211,40.152537 47.435435,40.198531 47.435435,40.267522 47.419877,40.152537 47.326433,40.083547 47.326433,40.014556 47.342019))","code":"novocherkassk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"137","name":"Новочеркасск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((39.784587 47.776545,39.807584 47.791997,39.853578 47.884613,39.922569 47.884613,39.945565 47.869189,39.991559 47.822887,40.014556 47.71469,39.968562 47.71469,39.807584 47.730161,39.784587 47.776545))","code":"novoshakhtinsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"138","name":"Новошахтинск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((31.597701 29.988564,31.620698 30.048301,31.712685 30.048301,31.758679 30.088105,31.82767 30.108002,31.89666 30.068205,31.89666 29.849039,31.873664 29.849039,31.82767 29.888924,31.735682 29.888924,31.666692 29.988564,31.597701 29.988564))","code":"new_cairo","country_code":"eg","domain":"eg","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":true},"id":"239","name":"Новый Каир_","time_zone":{"name":"Africa/Cairo","offset":120},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((76.372609 66.092033,76.533588 66.157189,76.533588 66.175774,76.625575 66.175774,76.970528 66.185062,77.039519 66.166483,77.085513 66.082712,77.200497 66.045391,77.269487 66.036052,77.522453 66.036052,77.54545 66.045391,77.683431 66.092033,77.752422 66.092033,77.798416 66.073387,77.867406 66.082712,78.097375 66.129286,78.212359 66.13859,78.327344 66.092033,78.327344 66.073387,78.442328 65.998663,78.488322 65.979948,78.488322 65.970585,78.327344 65.867368,78.304347 65.857964,78.28135 65.829732,78.258353 65.829732,78.258353 65.810893,78.235356 65.801468,78.212359 65.773173,78.143369 65.735398,78.051381 65.725946,78.028384 65.697568,77.959394 65.688102,77.890403 65.659683,77.798416 65.659683,77.775419 65.650203,77.660434 65.640719,77.568447 65.678633,77.453462 65.707031,77.223494 65.801468,77.154503 65.801468,76.947531 65.79204,76.740559 65.820314,76.717563 65.829732,76.694566 65.829732,76.602578 65.886166,76.602578 65.89556,76.533588 65.90495,76.533588 65.914337,76.4416 65.92372,76.4416 65.961219,76.418603 66.02671,76.372609 66.092033))","code":"n_urengoy","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"139","name":"Новый Уренгой","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((85.985302 69.395881,85.985302 69.549097,86.054292 69.557131,86.58322 69.565161,87.043158 69.565161,88.307986 69.557131,88.537954 69.557131,88.560951 69.533021,88.537954 69.508883,88.537954 69.266007,88.514958 69.241568,88.307986 69.241568,87.963033 69.249717,86.031295 69.249717,86.008299 69.274147,85.985302 69.395881))","code":"norilsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"76","name":"Норильск","time_zone":{"name":"Asia/Krasnoyarsk","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((74.302891 63.662768,74.302891 63.845822,74.325888 63.876216,76.188635 63.876216,76.257625 63.866088,76.257625 63.662768,76.234628 63.303421,76.280622 63.28275,76.487594 63.272409,76.533588 63.272409,76.832547 63.262064,77.085513 63.251716,77.108509 63.241364,77.1775 63.096044,77.062516 62.970904,77.039519 62.970904,77.016522 62.981353,76.855544 62.991798,76.717563 63.023111,76.648572 63.033541,76.533588 63.002239,76.487594 62.981353,76.464597 62.981353,76.418603 62.960451,76.326616 62.960451,76.257625 63.023111,74.394879 63.023111,74.325888 63.033541,74.325888 63.303421,74.302891 63.662768))","code":"noyabrsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"103","name":"Ноябрьск","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((65.150136 62.00429,65.150136 62.047438,65.334111 62.1443,65.403102 62.176518,65.495089 62.294359,65.748055 62.294359,65.817046 62.283666,65.794049 62.262267,65.771052 62.18725,65.886036 62.112047,65.886036 62.090526,65.863039 62.07976,65.886036 62.00429,65.863039 61.971888,65.656067 61.971888,65.56408 61.993493,65.219127 61.993493,65.150136 62.00429))","code":"nyagan","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"public_transport":true,"road_network":true},"id":"202","name":"Нягань","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((51.444001 24.366077,51.444001 24.428906,51.581982 24.554472,51.581982 24.679912,52.018923 24.78435,52.271888 24.84697,52.340879 24.909558,52.317882 24.972115,52.340879 25.03464,52.432867 25.03464,52.455863 25.013802,52.639838 25.180408,52.84681 25.450657,52.869807 25.47142,52.938798 25.49218,52.984791 25.49218,54.111638 25.47142,54.203626 25.47142,55.1235 25.575183,55.284479 25.595925,55.376466 25.741017,55.42246 25.782439,55.514447 25.823847,55.767413 25.968661,55.813407 26.03067,55.8594 26.154588,55.951388 26.154588,55.974385 26.133944,56.089369 26.07199,56.181357 26.07199,56.204353 25.968661,56.204353 25.90662,56.15836 25.823847,56.181357 25.803145,56.181357 25.7203,56.15836 25.69958,56.250347 25.637398,56.457319 25.7203,56.549306 25.7203,56.5953 25.658129,56.618297 25.512936,56.618297 25.013802,56.52631 24.972115,56.365331 24.951267,56.342335 24.888699,56.22735 24.8261,56.204353 24.742585,56.089369 24.721698,56.020378 24.742585,56.020378 24.805227,55.974385 24.84697,55.997382 24.909558,56.020378 24.930414,55.974385 24.972115,55.882397 24.951267,55.836403 24.888699,55.8594 24.679912,55.79041 24.533553,55.8594 24.407967,55.8594 24.345126,55.813407 24.261291,55.836403 24.219352,55.905394 24.240323,55.974385 24.219352,56.020378 24.093454,55.997382 24.030458,55.836403 24.009453,55.721419 24.030458,55.537444 23.946416,55.583438 23.651837,55.560441 23.546469,55.537444 23.525386,55.468454 23.441017,55.445457 23.377705,55.399463 23.33548,55.307475 23.166447,55.284479 23.145302,55.238485 23.018367,55.238485 22.806543,55.261482 22.806543,55.238485 22.700507,55.215488 22.700507,55.1235 22.636846,54.916529 22.65807,54.893532 22.67929,54.341607 22.721721,54.272616 22.742931,53.835676 22.806543,53.674698 22.806543,53.14577 22.870125,52.984791 22.891312,52.869807 22.891312,52.84681 22.912497,52.662835 22.912497,52.662835 22.933677,52.570848 22.933677,52.340879 23.229859,52.156904 23.441017,52.018923 23.630771,51.765957 23.925397,51.67397 24.009453,51.581982 24.156418,51.581982 24.261291,51.535989 24.345126,51.444001 24.366077))","code":"dubai","country_code":"ae","domain":"ae","flags":{"2gis_reviews":true,"flamp":false,"metro":true,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"99","name":"ОАЭ","time_zone":{"name":"Asia/Dubai","offset":240},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((30.493851 46.572919,30.516848 46.651905,30.562842 46.667688,30.585839 46.651905,30.815808 46.651905,30.884798 46.636117,30.930792 46.557107,30.930792 46.525471,30.838804 46.398743,30.815808 46.319388,30.746817 46.27172,30.746817 46.255822,30.631833 46.239918,30.539845 46.319388,30.516848 46.335269,30.493851 46.572919))","code":"odessa","country_code":"ua","domain":"ua","flags":{"2gis_reviews":true,"flamp":false,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"14","name":"Одесса","time_zone":{"name":"Europe/Kiev","offset":120},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((51.995926 18.939718,51.995926 19.004961,52.616841 19.200535,52.915801 19.309088,52.984791 19.33079,53.95066 19.655969,54.571576 19.850762,54.870535 19.958877,55.008516 20.002103,55.238485 20.692079,55.49145 21.485965,55.675425 21.998624,55.261482 22.636846,55.215488 22.67929,55.215488 23.039531,55.284479 23.187588,55.307475 23.208725,55.468454 23.483208,55.537444 23.546469,55.560441 23.651837,55.514447 23.967432,55.583438 23.988444,55.629432 24.030458,55.767413 24.05146,55.79041 24.030458,55.997382 24.05146,55.997382 24.093454,55.951388 24.219352,55.79041 24.219352,55.813407 24.324173,55.836403 24.324173,55.836403 24.407967,55.79041 24.491705,55.767413 24.554472,55.79041 24.575388,55.836403 24.679912,55.813407 24.888699,55.8594 24.972115,56.020378 24.99296,56.043375 24.930414,55.997382 24.84697,56.043375 24.8261,56.043375 24.763469,56.112366 24.742585,56.181357 24.763469,56.22735 24.867836,56.319338 24.888699,56.342335 24.972115,56.52631 24.99296,56.5953 25.03464,56.5953 25.533689,56.572303 25.637398,56.549306 25.69958,56.457319 25.69958,56.296341 25.637398,56.296341 25.616663,56.181357 25.637398,56.15836 25.69958,56.15836 25.76173,56.181357 26.03067,56.043375 26.07199,55.997382 26.113297,55.905394 26.133944,55.882397 26.154588,55.905394 26.257754,55.928391 26.278376,56.020378 26.422627,56.273344 26.607829,56.549306 26.73113,56.687288 26.669496,56.733281 26.628388,56.779275 26.546128,56.779275 26.422627,56.802272 26.154588,57.285206 24.909558,57.423188 24.533553,57.584166 24.428906,58.274072 24.05146,58.665019 23.862319,58.87199 23.736071,58.87199 23.715017,58.940981 23.693961,58.963978 23.6097,58.986975 23.588627,59.101959 23.462114,59.17095 23.356594,59.193947 23.33548,59.216944 23.272118,59.23994 23.25099,59.262937 23.187588,59.377922 23.124155,59.469909 22.933677,59.492906 22.912497,59.515903 22.912497,59.630887 22.785342,59.837859 22.764139,59.97584 22.700507,60.067828 22.530679,60.067828 22.232977,60.044831 22.211688,60.021834 22.105196,59.929847 21.998624,59.883853 21.934642,59.883853 21.849288,59.860856 21.827941,59.768868 21.721161,59.699878 21.614301,59.676881 21.528757,59.653884 21.507363,59.584893 21.400345,59.5389 21.271821,59.23994 21.121734,59.078962 20.95002,59.101959 20.799608,59.124956 20.778109,59.216944 20.519875,59.193947 20.369037,59.032969 20.218051,58.917984 20.066918,58.87199 20.045316,58.87199 20.023711,58.757006 19.958877,58.688015 19.93726,58.550034 19.93726,58.527037 19.958877,58.251075 20.110114,58.0671 20.110114,58.044103 19.91564,58.021106 19.894017,58.021106 19.720927,57.952116 19.61265,57.998109 19.374185,57.998109 19.309088,58.090097 19.004961,58.0671 18.896209,57.952116 18.787386,57.745144 18.722059,57.469181 18.722059,57.239213 18.678493,57.216216 18.656706,57.147225 18.656706,56.940253 18.56953,56.871263 18.460497,56.871263 18.416865,56.802272 18.176688,56.779275 18.154838,56.779275 18.089269,56.710285 17.936181,56.5953 17.870531,56.641294 17.54192,56.618297 17.410307,56.503313 17.300558,56.319338 17.25664,56.250347 17.2786,55.905394 17.25664,55.698422 17.25664,55.49145 17.212711,55.468454 17.102844,55.42246 17.058879,55.376466 16.992912,55.353469 16.970918,55.169494 16.816887,55.077507 16.772855,54.939525 16.750835,54.801544 16.706788,54.617569 16.750835,54.594572 16.772855,54.525582 16.816887,54.433594 16.794872,54.433594 16.816887,54.226622 16.794872,54.111638 16.728813,54.019651 16.684761,53.881669 16.662731,53.812679 16.596626,53.605707 16.530498,53.490723 16.530498,53.237757 16.464348,53.168766 16.464348,53.053782 16.684761,53.007788 16.816887,52.984791 16.838899,52.984791 16.882916,52.961795 16.90492,52.938798 16.970918,52.869807 17.124823,52.754823 17.2786,52.754823 17.366415,52.731826 17.388363,52.685832 17.519991,52.616841 17.673436,52.432867 18.023676,52.156904 18.634916,52.087913 18.743837,51.995926 18.939718))","code":"oman","country_code":"om","domain":"om","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":true},"id":"237","name":"Оман","time_zone":{"name":"Asia/Muscat","offset":240},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((70.991342 54.85823,71.014338 55.029945,71.58926 55.056298,72.003204 55.135251,72.233173 55.161535,72.463141 55.24028,72.532132 55.292691,72.578126 55.384244,71.865223 55.800081,71.428282 55.903353,71.382288 55.942009,71.382288 55.980627,71.428282 56.057747,71.543267 56.057747,72.210176 55.954886,72.509135 55.800081,72.739104 55.683572,72.854088 55.514667,72.923079 55.462549,72.923079 55.449509,73.084057 55.410363,73.245035 55.410363,73.268032 55.423416,73.383016 55.410363,73.681976 55.410363,73.704972 55.423416,73.819957 55.384244,73.865951 55.358108,73.865951 55.305783,73.911944 55.279595,73.934941 55.214049,74.003932 55.1878,74.118916 55.17467,74.141913 55.1878,74.256897 55.1878,74.279894 55.17467,74.394879 55.200927,74.417875 55.24028,74.60185 55.24028,74.624847 55.279595,74.624847 55.318871,74.693838 55.331954,74.854816 55.292691,74.90081 55.227167,74.946803 55.200927,75.038791 55.200927,75.199769 55.214049,75.245763 55.24028,75.26876 55.227167,75.291757 55.1878,75.26876 55.1878,75.26876 55.148395,75.314753 55.095794,75.383744 55.056298,75.383744 54.990384,75.360747 54.950783,75.245763 54.950783,75.176772 54.963988,75.176772 55.003575,75.015794 55.043123,74.923807 55.016762,74.923807 54.963988,74.854816 54.911144,74.440872 54.911144,74.394879 54.831748,74.463869 54.791991,74.463869 54.752195,74.440872 54.71236,74.371882 54.71236,74.348885 54.659186,74.210904 54.552628,74.118916 54.552628,74.003932 54.565963,73.980935 54.605942,73.865951 54.645881,73.79696 54.619259,73.79696 54.579294,73.681976 54.539289,73.658979 54.552628,73.543994 54.552628,73.42901 54.539289,73.406013 54.499245,73.337022 54.499245,73.314026 54.539289,73.245035 54.525945,73.153048 54.525945,73.130051 54.539289,73.038063 54.552628,72.992069 54.525945,72.923079 54.539289,72.900082 54.579294,72.969073 54.59262,72.992069 54.632572,72.923079 54.645881,72.900082 54.685782,72.831091 54.699073,72.762101 54.632572,72.69311 54.632572,72.69311 54.672486,72.762101 54.71236,72.762101 54.752195,72.670113 54.738921,72.509135 54.77873,72.394151 54.765465,72.394151 54.805248,72.279166 54.831748,71.612257 54.831748,71.336295 54.85823,71.014338 54.844991,70.991342 54.85823))","code":"omsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"2","name":"Омск","time_zone":{"name":"Asia/Omsk","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((54.824541 51.282176,54.824541 51.339677,54.893532 51.425793,54.916529 51.497433,54.916529 51.711677,54.847538 51.725925,54.870535 51.853946,54.985519 51.939092,55.077507 51.953267,55.1235 51.924912,55.330472 51.924912,55.42246 51.896539,55.514447 51.839739,55.514447 51.782868,55.606435 51.725925,55.583438 51.668909,55.537444 51.668909,55.49145 51.611822,55.514447 51.526057,55.49145 51.511747,55.42246 51.425793,55.238485 51.310935,55.1235 51.138109,55.031513 51.109241,54.916529 51.123677,54.824541 51.282176))","code":"orenburg","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"48","name":"Оренбург","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((58.343062 51.152536,58.412053 51.19579,58.389056 51.239003,58.343062 51.26779,58.343062 51.325308,58.734009 51.325308,58.87199 51.253399,58.87199 51.239003,58.940981 51.239003,59.009972 51.224603,59.009972 51.152536,59.078962 51.094801,59.055965 51.02253,58.986975 51.008062,58.87199 51.02253,58.87199 51.036993,58.803 51.036993,58.642022 51.02253,58.550034 51.080355,58.366059 51.080355,58.343062 51.152536))","code":"orsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"142","name":"Орск","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((35.852122 52.865079,35.852122 52.920575,35.875119 53.072825,35.967107 53.100449,36.266066 53.08664,36.31206 53.072825,36.31206 53.003687,36.335057 52.962151,36.31206 52.920575,36.174079 52.837304,36.0131 52.851193,35.94411 52.837304,35.852122 52.865079))","code":"orel","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true},"id":"71","name":"Орёл","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((72.69311 40.478212,72.69311 40.548146,72.762101 40.618007,72.785098 40.635461,72.877085 40.635461,72.900082 40.495702,72.854088 40.390692,72.739104 40.408205,72.69311 40.478212))","code":"osh","country_code":"kg","domain":"kg","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true},"id":"171","name":"Ош","time_zone":{"name":"Asia/Bishkek","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((76.625575 52.16536,76.648572 52.249915,76.671569 52.404515,76.717563 52.446585,76.993525 52.474609,77.223494 52.446585,77.223494 52.179463,77.246491 52.052369,77.223494 52.009924,76.993525 51.995766,76.832547 52.009924,76.763556 52.024077,76.671569 52.16536,76.625575 52.16536))","code":"pavlodar","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"111","name":"Павлодар","time_zone":{"name":"Asia/Qyzylorda","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((11.360454 45.115228,11.360454 45.309637,11.383451 45.680399,11.406448 45.728579,11.774398 45.728579,12.119351 45.712524,12.464304 45.712524,12.602285 45.680399,12.579289 45.082761,12.510298 45.066521,12.487301 45.082761,12.027364 45.082761,11.774398 45.098997,11.429445 45.098997,11.360454 45.115228))","code":"padova","country_code":"it","domain":"it","flags":{"2gis_reviews":false,"flamp":false,"gdpr":true,"metro":false,"public_transport":true,"road_network":false},"id":"66","name":"Падуя","time_zone":{"name":"Europe/Rome","offset":60},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((44.774908 53.072825,44.774908 53.252065,44.797905 53.265822,44.843899 53.334539,44.958883 53.361995,45.027874 53.375717,45.073868 53.34827,45.28084 53.34827,45.34983 53.334539,45.34983 53.238304,45.395824 53.155645,45.372827 53.059007,45.303836 53.017524,45.142858 53.031356,45.096865 53.059007,44.935886 53.045183,44.843899 53.059007,44.774908 53.072825))","code":"penza","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"42","name":"Пенза","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((55.537444 57.923956,55.583438 57.948372,55.606435 57.997155,55.537444 57.997155,55.560441 58.058041,55.560441 58.094522,55.652428 58.143106,55.675425 58.191624,55.744416 58.227969,55.813407 58.276371,55.905394 58.276371,56.043375 58.348851,56.112366 58.360916,56.15836 58.409137,56.089369 58.445259,56.089369 58.601361,56.204353 58.709025,56.22735 58.720967,56.296341 58.852061,56.296341 58.911485,56.250347 58.958951,56.250347 58.994508,56.181357 59.04186,56.204353 59.12457,56.22735 59.12457,56.204353 59.218851,56.388328 59.312872,56.457319 59.324606,56.457319 59.383218,56.342335 59.394928,56.342335 59.406634,56.411325 59.453418,56.52631 59.581741,56.5953 59.593382,56.664291 59.581741,56.687288 59.570095,56.779275 59.558445,56.848266 59.616653,56.940253 59.605019,56.986247 59.558445,57.147225 59.511807,57.285206 59.453418,57.285206 59.406634,57.239213 59.383218,57.170222 59.254139,57.170222 59.218851,57.101231 59.20708,57.101231 59.171743,57.055238 59.148164,57.032241 59.100959,56.986247 59.100959,56.917256 59.018192,56.96325 58.804448,56.917256 58.709025,56.848266 58.541404,56.848266 58.481344,56.917256 58.421182,56.89426 58.360916,56.89426 58.300548,56.848266 58.276371,56.848266 58.191624,56.802272 58.094522,56.825269 57.984966,56.756278 57.972772,56.756278 57.936166,56.802272 57.911742,56.802272 57.826124,56.733281 57.789369,56.618297 57.777108,56.457319 57.752576,56.457319 57.666579,56.273344 57.678877,56.250347 57.666579,56.043375 57.666579,55.974385 57.678877,55.974385 57.752576,55.882397 57.777108,55.721419 57.764844,55.698422 57.801625,55.629432 57.813876,55.560441 57.838368,55.583438 57.875073,55.537444 57.923956))","code":"perm","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"16","name":"Пермь","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((34.035369 62.025872,34.081363 62.101288,34.403319 62.155043,35.20821 62.155043,35.323194 62.122802,35.392185 62.101288,35.461176 61.982692,35.415182 61.809361,35.392185 61.798496,35.323194 61.798496,35.323194 61.787626,35.300197 61.787626,35.093226 61.754994,34.702279 61.689626,34.610291 61.689626,34.173351 61.70053,34.10436 61.711431,34.10436 61.96108,34.081363 61.971888,34.035369 62.025872))","code":"petrozavodsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"80","name":"Петрозаводск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((68.967617 54.791991,68.967617 54.844991,68.990614 54.911144,69.082601 54.977188,69.220583 54.977188,69.335567 54.963988,69.335567 54.911144,69.289573 54.8185,69.151592 54.738921,69.082601 54.752195,68.967617 54.791991))","code":"petropavlovsk","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"170","name":"Петропавловск","time_zone":{"name":"Asia/Almaty","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((158.034499 53.183216,158.149484 53.279574,158.195477 53.361995,158.448443 53.375717,158.793396 53.361995,158.954374 53.320805,158.954374 53.307066,159.023365 53.265822,159.138349 53.128056,159.161346 53.114255,159.299327 52.948297,159.092355 52.823409,159.023365 52.739951,158.954374 52.712096,158.862387 52.712096,158.540431 52.7817,158.517434 52.795608,158.218474 52.865079,158.10349 52.920575,158.10349 53.003687,158.080493 53.128056,158.057496 53.141852,158.034499 53.183216))","code":"p_kamchatskiy","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"95","name":"Петропавловск-Камчатский","time_zone":{"name":"Asia/Kamchatka","offset":720},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((34.012373 59.546792,34.035369 59.581741,34.10436 59.581741,34.242341 59.523473,34.242341 59.488463,34.173351 59.476786,34.012373 59.546792))","code":"pikalevo","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"public_transport":true,"road_network":true},"id":"213","name":"Пикалево","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((14.212066 49.954501,14.212066 50.131727,14.235063 50.175931,14.649007 50.175931,14.717998 50.161201,14.717998 49.984084,14.695001 49.939703,14.235063 49.939703,14.212066 49.954501))","code":"praha","country_code":"cz","domain":"cz","flags":{"2gis_reviews":true,"flamp":false,"gdpr":true,"metro":true,"public_transport":true,"road_network":true},"id":"92","name":"Прага","time_zone":{"name":"Europe/Prague","offset":60},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((27.550252 57.826124,27.596246 57.850607,27.895205 57.850607,27.941199 57.875073,28.14817 57.911742,28.332145 57.8873,28.424133 57.8873,28.493124 57.862842,28.493124 57.764844,28.424133 57.728026,28.171167 57.715745,28.125174 57.740303,28.056183 57.752576,27.941199 57.715745,27.872208 57.70346,27.757224 57.752576,27.71123 57.777108,27.619242 57.789369,27.550252 57.826124))","code":"pskov","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true},"id":"90","name":"Псков","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((83.93858 51.094801,83.961577 51.138109,84.076561 51.152536,84.099558 51.094801,84.145552 51.123677,84.168549 51.19579,84.191546 51.210199,84.214543 51.26779,84.329527 51.282176,84.398518 51.26779,84.536499 51.339677,84.628486 51.339677,84.697477 51.411452,84.766468 51.425793,84.835458 51.425793,84.904449 51.44013,84.973439 51.511747,85.134417 51.511747,85.157414 51.497433,85.272399 51.511747,85.272399 51.540363,85.433377 51.56896,85.479371 51.626101,85.479371 51.68317,85.594355 51.711677,85.617352 51.754405,85.617352 51.797093,85.548361 51.839739,85.594355 51.882346,85.594355 51.910728,85.548361 51.910728,85.571358 51.967438,85.594355 51.981605,85.686342 52.052369,85.709339 52.094774,85.77833 52.1089,85.916311 52.123022,85.939308 52.094774,86.100286 52.080644,86.21527 52.024077,86.238267 52.038225,86.399245 52.038225,86.445239 52.080644,86.445239 52.123022,86.629214 52.1089,86.790192 52.16536,86.767195 52.207657,86.744198 52.221748,86.767195 52.235833,86.767195 52.278064,86.698205 52.320254,86.652211 52.376446,86.675208 52.474609,86.652211 52.488614,86.652211 52.516612,86.767195 52.516612,86.790192 52.558575,86.813189 52.628424,86.905177 52.628424,86.905177 52.64238,87.020161 52.656332,87.135145 52.614463,87.181139 52.586528,87.31912 52.586528,87.388111 52.516612,87.411108 52.502615,87.61808 52.460599,87.641076 52.432566,87.779058 52.488614,87.848048 52.502615,87.894042 52.530604,88.032023 52.516612,88.193001 52.418543,88.284989 52.418543,88.307986 52.432566,88.307986 52.446585,88.42297 52.446585,88.445967 52.404515,88.445967 52.334309,88.399973 52.306195,88.376976 52.207657,88.376976 52.16536,88.353979 52.1089,88.307986 52.1089,88.215998 52.052369,88.147008 52.080644,88.078017 52.038225,88.078017 51.995766,88.009026 51.953267,87.963033 51.882346,87.940036 51.868148,87.894042 51.811313,87.986029 51.754405,88.078017 51.754405,88.101014 51.711677,88.009026 51.640375,87.986029 51.56896,87.940036 51.56896,87.940036 51.483114,88.009026 51.46879,88.078017 51.46879,88.101014 51.454462,88.170004 51.354041,88.284989 51.354041,88.307986 51.339677,88.42297 51.296558,88.537954 51.310935,88.698933 51.411452,88.675936 51.526057,88.767923 51.554663,88.813917 51.554663,88.836914 51.497433,88.997892 51.397106,88.974895 51.210199,89.043886 51.152536,89.043886 51.065906,89.204864 50.964632,89.273854 50.906663,89.388839 50.834099,89.641804 50.615729,89.641804 50.586536,89.802782 50.542712,89.825779 50.542712,89.848776 50.469583,89.825779 50.425651,89.710795 50.39634,89.687798 50.381678,89.618807 50.381678,89.572814 50.440299,89.503823 50.440299,89.480826 50.35234,89.411836 50.337664,89.365842 50.264217,89.342845 50.249514,89.342845 50.190657,89.503823 50.205378,89.52682 50.161201,89.52682 50.116983,89.572814 50.087482,89.52682 50.043196,89.59581 49.984084,89.641804 49.910093,89.664801 49.910093,89.641804 49.865643,89.687798 49.791469,89.733792 49.761768,89.733792 49.717182,89.618807 49.672555,89.503823 49.65767,89.388839 49.583177,89.296851 49.583177,89.227861 49.627886,89.204864 49.612988,89.250857 49.553349,89.135873 49.478697,88.974895 49.448804,88.905904 49.493636,88.882907 49.448804,88.813917 49.433851,88.79092 49.448804,88.698933 49.448804,88.606945 49.478697,88.445967 49.463753,88.42297 49.478697,88.353979 49.463753,88.238995 49.463753,88.170004 49.388964,88.193001 49.284068,88.032023 49.209006,87.963033 49.163914,87.802055 49.163914,87.802055 49.148874,87.733064 49.163914,87.664073 49.133829,87.526092 49.11878,87.503095 49.073606,87.411108 49.058539,87.388111 49.073606,87.31912 49.088669,87.296123 49.103727,87.296123 49.239044,87.181139 49.254057,87.066155 49.254057,86.95117 49.314061,86.95117 49.403931,86.836186 49.448804,86.836186 49.538427,86.744198 49.568265,86.675208 49.568265,86.606217 49.583177,86.629214 49.627886,86.698205 49.687435,86.767195 49.687435,86.767195 49.791469,86.698205 49.806313,86.629214 49.806313,86.606217 49.761768,86.537227 49.717182,86.51423 49.672555,86.399245 49.598085,86.330255 49.598085,86.261264 49.583177,86.261264 49.538427,86.21527 49.478697,86.14628 49.523501,86.077289 49.523501,86.054292 49.508571,85.962305 49.493636,85.916311 49.568265,85.824324 49.553349,85.801327 49.568265,85.663345 49.568265,85.617352 49.598085,85.502367 49.598085,85.433377 49.612988,85.272399 49.598085,85.203408 49.64278,85.203408 49.732048,85.157414 49.761768,85.111421 49.835987,85.04243 49.880464,84.973439 49.954501,85.019433 49.984084,85.04243 50.028425,84.950442 50.102235,84.835458 50.102235,84.835458 50.131727,84.766468 50.146466,84.697477 50.190657,84.490505 50.220095,84.490505 50.234807,84.352524 50.220095,84.260536 50.264217,84.237539 50.513474,84.191546 50.542712,84.122555 50.615729,84.099558 50.615729,84.099558 50.644903,84.168549 50.659484,84.260536 50.67406,84.283533 50.688632,84.490505 50.688632,84.536499 50.775966,84.559496 50.790506,84.559496 50.834099,84.444511 50.877651,84.467508 50.964632,84.352524 50.979114,84.329527 50.99359,84.214543 50.99359,83.984574 51.065906,83.93858 51.094801))","code":"gornoaltaysk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"27","name":"Республика Алтай","time_zone":{"name":"Asia/Barnaul","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((39.347647 47.045108,39.347647 47.295248,39.485628 47.326433,39.531622 47.357599,39.600612 47.373176,39.669603 47.419877,39.784587 47.435435,39.853578 47.450988,39.853578 47.513155,39.968562 47.513155,40.037553 47.482081,40.014556 47.404314,39.922569 47.342019,39.922569 47.248437,39.968562 47.217206,39.968562 47.170326,39.922569 47.139049,39.922569 47.092099,39.876575 47.060777,39.76159 47.045108,39.738594 47.060777,39.347647 47.045108))","code":"rostov","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"24","name":"Ростов-на-Дону","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((81.155959 51.511747,81.178956 51.554663,81.247946 51.56896,81.29394 51.554663,81.316937 51.511747,81.29394 51.46879,81.178956 51.46879,81.155959 51.511747))","code":"rubtsovsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"143","name":"Рубцовск","time_zone":{"name":"Asia/Barnaul","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((38.680737 58.070205,38.680737 58.118823,38.795722 58.106675,38.9567 58.106675,38.979697 58.021522,38.933703 57.997155,38.864712 57.997155,38.749728 58.058041,38.680737 58.070205))","code":"rybinsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"144","name":"Рыбинск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((39.347647 54.765465,39.347647 54.77873,39.39364 54.831748,39.462631 54.897922,39.76159 54.884696,40.014556 54.884696,40.083547 54.871465,40.083547 54.525945,40.06055 54.485888,39.462631 54.485888,39.39364 54.499245,39.39364 54.71236,39.370644 54.752195,39.347647 54.765465))","code":"ryazan","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"44","name":"Рязань","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((66.460958 66.507982,66.506952 66.617744,66.598939 66.635991,66.66793 66.635991,66.759917 66.617744,66.713924 66.581211,66.782914 66.535468,66.805911 66.471287,66.66793 66.452919,66.483955 66.498813,66.460958 66.507982))","code":"salekhard","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"160","name":"Салехард","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((49.535261 52.934438,49.627248 53.017524,49.627248 53.031356,49.765229 53.045183,49.811223 53.128056,49.788226 53.196994,49.788226 53.307066,49.719236 53.34827,49.673242 53.430558,49.696239 53.444257,49.788226 53.608304,49.811223 53.703705,49.903211 53.703705,50.018195 53.744525,50.110183 53.744525,50.317154 53.785305,50.386145 53.771716,50.57012 53.662845,50.57012 53.567352,50.593117 53.553692,50.616114 53.403146,50.685104 53.34827,50.754095 53.34827,50.800089 53.293322,50.777092 53.252065,50.708101 53.196994,50.639111 53.183216,50.547123 53.141852,50.547123 53.045183,50.409142 52.906708,49.995198 52.795608,49.604251 52.837304,49.558258 52.865079,49.535261 52.934438))","code":"samara","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":true,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"18","name":"Самара","time_zone":{"name":"Europe/Samara","offset":240},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((28.309149 60.534358,28.309149 60.556975,28.562114 60.658553,28.562114 60.714848,28.631105 60.771044,28.700095 60.81593,28.769086 60.81593,28.88407 60.782272,28.861073 60.714848,28.976058 60.647283,29.045048 60.636008,29.091042 60.613447,29.206027 60.579575,29.229023 60.534358,29.275017 60.489078,29.344008 60.477748,29.344008 60.443734,29.435995 60.398327,29.435995 60.386965,29.458992 60.386965,29.504986 60.36423,29.573976 60.36423,29.642967 60.352856,29.895933 60.295929,30.079908 60.284532,30.217889 60.307322,30.424861 60.295929,30.585839 60.318712,30.792811 60.307322,30.976786 60.318712,30.976786 60.295929,31.045776 60.216064,31.09177 60.204638,31.160761 60.055748,31.160761 60.021293,31.137764 59.894649,31.206754 59.894649,31.229751 59.860026,31.114767 59.825367,31.09177 59.732766,31.045776 59.697974,31.068773 59.546792,30.999782 59.488463,30.930792 59.488463,30.815808 59.476786,30.792811 59.488463,30.677826 59.500137,30.631833 59.476786,30.539845 59.476786,30.424861 59.488463,30.332873 59.465104,30.171895 59.476786,30.125901 59.488463,30.056911 59.476786,29.941926 59.488463,29.826942 59.476786,29.527983 59.488463,29.458992 59.511807,29.458992 59.616653,29.435995 59.628282,29.435995 59.744355,29.458992 59.75594,29.458992 59.802241,29.435995 59.802241,29.435995 59.813806,29.390001 59.825367,29.412998 59.871571,29.435995 59.883112,29.435995 59.917711,29.412998 59.929237,29.344008 59.975297,28.401136 60.284532,28.355142 60.421039,28.332145 60.500404,28.309149 60.534358))","code":"spb","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":true,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"38","name":"Санкт-Петербург","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((-70.85336 -33.64176,-70.85336 -33.354102,-70.830364 -33.296456,-70.554401 -33.296456,-70.48541 -33.315676,-70.48541 -33.603461,-70.508407 -33.660903,-70.78437 -33.660903,-70.85336 -33.64176))","code":"santiago","country_code":"cl","domain":"cl","flags":{"2gis_reviews":false,"flamp":false,"gdpr":true,"metro":true,"public_transport":true,"road_network":true},"id":"101","name":"Сантьяго","time_zone":{"name":"America/Santiago","offset":-180},"type":"region","zoom_level":{"max":19,"min":9}},{"bounds":"POLYGON((44.843899 54.298434,44.958883 54.311852,45.119861 54.298434,45.441818 54.298434,45.510808 54.285012,45.510808 54.069659,45.648789 54.042661,45.694783 54.015646,45.786771 54.015646,45.809768 53.988613,45.786771 53.961562,45.71778 53.94803,45.533805 53.988613,45.050871 53.988613,44.935886 53.97509,44.866896 53.988613,44.866896 54.231279,44.843899 54.298434))","code":"saransk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"85","name":"Саранск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((45.303836 51.497433,45.326833 51.540363,45.487811 51.526057,45.556802 51.540363,45.556802 51.597539,45.533805 51.611822,45.510808 51.697426,45.579799 51.711677,45.671786 51.768639,45.740777 51.768639,45.809768 51.725925,46.016739 51.725925,46.08573 51.754405,46.08573 51.797093,46.200714 51.839739,46.407686 51.825528,46.430683 51.811313,46.407686 51.725925,46.522671 51.697426,46.568664 51.668909,46.522671 51.640375,46.499674 51.583252,46.407686 51.554663,46.361692 51.425793,46.361692 51.354041,46.338696 51.282176,46.223711 51.19579,46.108727 51.210199,45.947749 51.224603,45.648789 51.19579,45.556802 51.224603,45.487811 51.210199,45.372827 51.224603,45.34983 51.354041,45.372827 51.425793,45.326833 51.454462,45.303836 51.497433))","code":"saratov","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"43","name":"Саратов","time_zone":{"name":"Europe/Saratov","offset":240},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((80.029112 50.469583,80.029112 50.513474,80.1211 50.528096,80.259081 50.484218,80.512046 50.410998,80.535043 50.39634,80.512046 50.35234,80.328071 50.29361,80.19009 50.29361,80.098103 50.39634,80.098103 50.454943,80.029112 50.469583))","code":"semey","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"169","name":"Семей","time_zone":{"name":"Asia/Almaty","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((28.033186 59.053688,28.033186 59.136369,28.102177 59.148164,28.217161 59.136369,28.240158 59.112766,28.194164 59.065512,28.033186 59.053688))","code":"slantsy","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"public_transport":true,"road_network":true},"id":"215","name":"Сланцы","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((31.758679 54.738921,31.758679 54.805248,31.804673 54.884696,31.988648 54.884696,32.057639 54.897922,32.172623 54.937574,32.241614 54.897922,32.26461 54.831748,32.26461 54.752195,32.172623 54.699073,32.057639 54.685782,31.804673 54.685782,31.758679 54.738921))","code":"smolensk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"63","name":"Смоленск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((38.496763 44.13321,38.496763 44.149714,38.611747 44.330943,38.634744 44.380272,38.680737 44.44598,38.680737 44.495212,38.795722 44.495212,38.818719 44.511614,38.9567 44.478806,38.9567 44.413135,39.025691 44.396706,39.094681 44.44598,39.255659 44.44598,39.278656 44.42956,39.278656 44.347391,39.255659 44.265106,39.416637 44.116703,39.439634 44.116703,39.715597 43.967926,39.76159 43.934814,39.968562 43.934814,40.037553 43.885111,40.106544 43.868534,40.175534 43.868534,40.221528 43.78558,40.290518 43.768976,40.359509 43.768976,40.451497 43.702512,40.474493 43.652615,40.612475 43.586022,40.658468 43.552697,40.658468 43.536028,40.566481 43.502676,40.49749 43.502676,40.451497 43.536028,40.290518 43.552697,40.290518 43.569362,40.12954 43.552697,40.037553 43.419216,40.014556 43.33564,39.991559 43.318911,39.899572 43.21844,39.830581 43.21844,39.6926 43.268696,39.623609 43.352364,39.508625 43.419216,39.485628 43.435917,39.232662 43.652615,39.163672 43.735753,39.094681 43.752367,39.025691 43.835366,38.9567 43.851952,38.726731 44.01756,38.657741 44.050626,38.565753 44.116703,38.496763 44.13321))","code":"sochi","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"30","name":"Сочи","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((41.670331 44.952712,41.693328 45.066521,41.670331 45.066521,41.670331 45.180105,41.716324 45.244908,41.808312 45.261097,41.877303 45.228714,41.992287 45.244908,41.992287 45.261097,42.153265 45.277282,42.222256 45.244908,42.33724 45.180105,42.360237 45.098997,42.291246 44.985252,42.130268 44.936435,42.084274 44.903867,41.693328 44.903867,41.670331 44.952712))","code":"stavropol","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"57","name":"Ставрополь","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((37.714869 51.26779,37.714869 51.310935,37.737866 51.325308,37.714869 51.3684,37.737866 51.411452,37.944838 51.425793,38.059822 51.3684,38.082819 51.354041,38.082819 51.339677,38.036825 51.310935,38.059822 51.210199,38.036825 51.19579,37.990831 51.109241,37.898844 51.109241,37.829853 51.19579,37.714869 51.26779))","code":"staroskol","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"60","name":"Старый Оскол","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((55.721419 53.444257,55.721419 53.49901,55.79041 53.553692,55.813407 53.567352,55.813407 53.676469,55.951388 53.758122,55.974385 53.744525,56.066372 53.744525,56.135363 53.717316,56.15836 53.581007,56.135363 53.567352,56.135363 53.34827,56.112366 53.307066,55.905394 53.307066,55.836403 53.334539,55.767413 53.416854,55.721419 53.444257))","code":"sterlitamak","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"54","name":"Стерлитамак","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((72.394151 61.19493,72.394151 61.39375,73.612985 61.404759,73.79696 61.415764,73.773963 61.360701,73.79696 61.261343,73.79696 61.028282,73.773963 60.994847,73.383016 60.994847,72.946076 60.983694,72.417148 60.983694,72.417148 61.005996,72.394151 61.19493))","code":"surgut","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"39","name":"Сургут","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((50.156176 61.591314,50.20217 61.65689,50.271161 61.70053,50.294157 61.711431,50.294157 61.787626,50.386145 61.798496,50.409142 61.809361,50.478132 61.971888,50.524126 62.00429,50.616114 62.00429,50.708101 61.96108,50.800089 61.96108,50.961067 61.950267,51.030057 61.939452,51.053054 61.89615,51.283023 61.874476,51.30602 61.831082,51.329017 61.820223,51.444001 61.809361,51.444001 61.754994,51.37501 61.678718,51.30602 61.689626,51.237029 61.667806,51.237029 61.624119,51.191035 61.580371,51.122045 61.591314,51.053054 61.580371,51.00706 61.525599,50.93807 61.525599,50.754095 61.547519,50.593117 61.514633,50.432139 61.514633,50.317154 61.569424,50.225167 61.569424,50.156176 61.591314))","code":"syktyvkar","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"72","name":"Сыктывкар","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((32.471582 60.136003,32.471582 60.170339,32.540573 60.170339,32.609563 60.158898,32.609563 60.12455,32.540573 60.12455,32.471582 60.136003))","code":"syasstroy","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"public_transport":false,"road_network":true},"id":"214","name":"Сясьстрой","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((34.426316 27.936419,34.47231 28.037956,34.449313 28.058252,34.47231 28.159674,34.449313 28.220481,34.518304 28.220481,34.518304 28.301504,34.541301 28.32175,34.656285 28.544201,34.656285 28.645161,34.702279 28.806494,34.702279 28.887067,34.748272 28.967577,34.748272 29.10832,34.771269 29.10832,34.84026 29.369189,34.932247 29.389229,34.955244 29.369189,35.047232 29.369189,35.277201 29.329099,35.323194 29.309048,35.507169 29.288993,35.737138 29.248871,35.852122 29.248871,35.990104 29.208733,36.082091 29.208733,36.128085 29.248871,36.473038 29.509381,36.703007 29.849039,36.749 29.888924,37.277928 29.968644,37.4849 30.008481,37.645878 29.868984,37.806856 29.789183,37.875847 29.729291,37.944838 29.689343,38.013828 29.669363,38.036825 29.64938,38.197803 29.6094,38.2208 29.6094,38.358781 29.529393,38.381778 29.509381,38.381778 29.449323,38.243797 29.329099,38.2208 29.188658,38.312788 29.188658,38.450769 29.248871,38.58875 29.248871,38.611747 29.228804,38.726731 29.148497,38.979697 29.007809,39.117678 28.887067,39.32465 28.746023,39.531622 28.665341,39.646606 28.645161,39.669603 28.624977,39.738594 28.624977,39.784587 28.564401,39.784587 28.544201,39.76159 28.463364,39.600612 28.36223,39.600612 28.301504,39.508625 28.220481,39.485628 28.220481,39.416637 28.119117,39.39364 28.098832,39.370644 28.037956,39.39364 27.977045,39.600612 27.9161,39.807584 27.814448,39.899572 27.651607,39.922569 27.549708,39.922569 27.447715,40.014556 27.263889,40.014556 27.141169,39.899572 27.161631,39.853578 27.243445,39.784587 27.243445,39.715597 27.079758,39.623609 26.997825,39.554619 26.895324,39.485628 26.854298,39.462631 26.854298,39.347647 26.792731,39.025691 26.83378,38.772725 26.83378,38.657741 26.854298,38.404775 26.792731,38.289791 26.813257,38.266794 26.83378,38.105816 26.83378,38.059822 26.936336,37.990831 26.997825,37.990831 27.120702,37.898844 27.161631,37.898844 27.222997,37.921841 27.366052,37.898844 27.427305,37.78386 27.427305,37.737866 27.508922,37.645878 27.508922,37.553891 27.427305,37.4849 27.427305,37.438906 27.386473,37.300925 27.386473,37.300925 27.427305,37.070956 27.427305,37.001966 27.447715,36.955972 27.406891,36.749 27.284329,36.749 27.120702,36.794994 27.05928,36.955972 27.05928,36.955972 26.997825,36.932975 26.854298,37.001966 26.83378,37.024963 26.813257,37.139947 26.751668,37.11695 26.566699,37.231935 26.44322,37.208938 26.381431,37.231935 26.319609,37.369916 26.319609,37.346919 26.216498,37.461903 26.092645,37.507897 26.051332,37.553891 25.947984,37.553891 25.844546,37.622881 25.782439,37.737866 25.76173,37.85285 25.69958,37.85285 25.637398,37.737866 25.575183,37.737866 25.450657,37.78386 25.409119,37.78386 25.263626,37.85285 25.201218,37.85285 25.097133,37.875847 24.99296,37.921841 24.951267,37.944838 24.888699,38.059822 24.867836,38.059822 24.78435,37.85285 24.78435,37.829853 24.721698,37.829853 24.659015,37.737866 24.659015,37.4849 24.679912,37.4849 24.638113,37.438906 24.575388,37.093953 24.261291,37.070956 24.198378,36.978969 24.219352,36.909978 24.366077,36.749 24.84697,36.726003 24.867836,36.634016 25.117957,36.450041 25.284421,36.266066 25.533689,36.243069 25.595925,36.243069 25.69958,36.289063 25.823847,36.266066 25.968661,36.128085 26.092645,36.036097 26.257754,35.898116 26.381431,35.829125 26.484394,35.806129 26.504976,35.599157 26.813257,35.530166 26.936336,35.507169 27.018314,35.346191 27.243445,35.323194 27.263889,35.323194 27.304765,35.047232 27.529317,34.909251 27.631235,34.541301 27.69234,34.47231 27.733058,34.426316 27.936419))","code":"tabuk","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":false},"id":"224","name":"Табук","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((38.795722 47.217206,38.818719 47.279649,38.9567 47.279649,38.979697 47.201584,38.9567 47.185957,38.864712 47.185957,38.795722 47.217206))","code":"taganrog","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"116","name":"Таганрог","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((41.256387 52.586528,41.256387 52.726026,41.279384 52.795608,41.302381 52.837304,41.417365 52.837304,41.509353 52.878959,41.555346 52.823409,41.624337 52.823409,41.647334 52.7817,41.624337 52.767788,41.60134 52.698162,41.624337 52.600498,41.578343 52.558575,41.325378 52.572554,41.256387 52.586528))","code":"tambov","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"81","name":"Тамбов","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((71.244307 42.781152,71.244307 42.949708,71.313298 42.966538,71.451279 42.966538,71.474276 42.916033,71.497273 42.899189,71.474276 42.8149,71.359292 42.8149,71.313298 42.781152,71.244307 42.781152))","code":"taraz","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true},"id":"221","name":"Тараз","time_zone":{"name":"Asia/Almaty","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((69.128595 41.226176,69.151592 41.3126,69.174589 41.329871,69.197586 41.381657,69.266576 41.39891,69.289573 41.450641,69.427554 41.485105,69.427554 41.553979,69.542539 41.571186,69.611529 41.657152,69.749511 41.691506,69.772507 41.708677,69.933486 41.708677,69.979479 41.777312,70.071467 41.794459,70.071467 41.82874,70.140457 41.845874,70.324432 41.982778,70.324432 42.034041,70.439417 42.085263,70.531404 42.085263,70.577398 42.016958,70.646389 42.016958,70.646389 42.034041,70.669385 42.034041,70.761373 41.965681,70.761373 41.931473,70.646389 41.880127,70.646389 41.863003,70.347429 41.639968,70.209448 41.605586,70.186451 41.553979,70.163454 41.553979,70.002476 41.450641,69.933486 41.39891,69.703517 41.39891,69.542539 41.364399,69.519542 41.347138,69.31257 41.174266,69.220583 41.174266,69.128595 41.226176))","code":"tashkent","country_code":"uz","domain":"uz","flags":{"2gis_reviews":true,"flamp":false,"metro":true,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"208","name":"Ташкент","time_zone":{"name":"Asia/Tashkent","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((35.530166 56.870815,35.530166 56.908501,35.553163 56.971227,35.691144 57.008812,35.737138 57.008812,35.806129 57.046359,35.898116 57.046359,36.31206 56.971227,36.358053 56.895943,36.335057 56.807919,36.335057 56.732306,36.266066 56.681812,36.082091 56.681812,35.829125 56.669178,35.622154 56.681812,35.553163 56.707067,35.57616 56.845669,35.530166 56.870815))","code":"tver","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"47","name":"Тверь","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((68.024745 58.070205,68.024745 58.324707,68.093736 58.336781,68.254714 58.348851,68.254714 58.336781,68.553673 58.336781,68.622664 58.324707,68.622664 58.058041,68.57667 58.058041,68.323705 58.045872,68.300708 58.058041,68.093736 58.058041,68.024745 58.070205))","code":"tobolsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"97","name":"Тобольск","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((48.109455 53.183216,48.155448 53.238304,48.224439 53.252065,48.270433 53.307066,48.36242 53.307066,48.477405 53.293322,48.546395 53.320805,48.615386 53.320805,48.776364 53.389434,48.868351 53.416854,48.868351 53.471642,48.983336 53.540028,48.937342 53.635583,48.983336 53.690089,48.983336 53.703705,49.006333 53.853184,49.02933 53.866747,49.190308 53.866747,49.236301 53.839617,49.305292 53.839617,49.328289 53.81247,49.443273 53.771716,49.558258 53.785305,49.650245 53.744525,49.811223 53.703705,49.788226 53.608304,49.696239 53.444257,49.673242 53.430558,49.719236 53.34827,49.788226 53.307066,49.788226 53.196994,49.811223 53.128056,49.765229 53.045183,49.627248 53.031356,49.604251 53.045183,49.46627 53.045183,49.397279 53.017524,49.351286 52.989846,49.190308 53.003687,49.190308 52.948297,49.006333 52.892836,48.960339 52.892836,48.937342 52.934438,48.822358 52.948297,48.753367 52.962151,48.73037 52.976001,48.523398 52.989846,48.523398 52.948297,48.408414 52.962151,48.339423 52.989846,48.339423 53.059007,48.29343 53.059007,48.178445 53.072825,48.178445 53.141852,48.109455 53.183216))","code":"togliatti","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"22","name":"Тольятти","time_zone":{"name":"Europe/Samara","offset":240},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((84.697477 56.517239,84.697477 56.542605,84.766468 56.555281,84.766468 56.605944,84.881452 56.643897,84.973439 56.643897,84.996436 56.681812,85.065427 56.681812,85.088424 56.643897,85.203408 56.605944,85.318392 56.555281,85.387383 56.466457,85.387383 56.402883,85.249402 56.351948,84.950442 56.326455,84.858455 56.326455,84.812461 56.351948,84.697477 56.517239))","code":"tomsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"3","name":"Томск","time_zone":{"name":"Asia/Tomsk","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((37.392913 54.231279,37.41591 54.298434,37.4849 54.311852,37.599885 54.325266,37.714869 54.311852,37.737866 54.325266,37.898844 54.311852,38.013828 54.35208,38.151809 54.35208,38.2208 54.36548,38.289791 54.35208,38.312788 54.338675,38.473766 54.204386,38.519759 54.177476,38.519759 54.137078,38.58875 54.123603,38.58875 54.002132,38.611747 53.988613,38.519759 53.893859,38.427772 53.826046,38.335784 53.826046,38.197803 53.866747,38.197803 53.893859,37.990831 53.907408,37.576888 53.907408,37.461903 53.893859,37.41591 53.97509,37.41591 54.204386,37.392913 54.231279))","code":"tula","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"36","name":"Тула","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((68.13973 43.235197,68.13973 43.302177,68.185723 43.352364,68.277711 43.352364,68.346701 43.385799,68.369698 43.435917,68.415692 43.435917,68.50768 43.369084,68.57667 43.352364,68.57667 43.302177,68.50768 43.285439,68.277711 43.21844,68.13973 43.235197))","code":"turkestan","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"232","name":"Туркестан","time_zone":{"name":"Asia/Almaty","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((64.920168 57.295705,64.943164 57.295705,64.966161 57.332962,65.035152 57.345373,65.081146 57.320548,65.150136 57.320548,65.19613 57.295705,65.288118 57.295705,65.357108 57.320548,65.449096 57.295705,65.518086 57.308129,65.56408 57.295705,65.725058 57.308129,65.840042 57.258411,66.322977 57.245971,66.414964 57.245971,66.66793 57.233526,66.690927 57.196169,66.66793 57.058866,66.713924 57.046359,66.713924 56.996288,66.66793 56.946149,66.644933 56.83309,66.621936 56.44104,66.598939 56.402883,65.794049 56.415607,65.633071 56.415607,65.426099 56.428326,65.334111 56.402883,65.265121 56.415607,65.19613 56.453751,65.219127 56.491856,65.219127 56.580621,65.242124 56.845669,65.242124 56.895943,65.081146 56.895943,65.058149 56.933604,65.012155 57.021332,64.966161 57.171243,64.989158 57.208625,64.966161 57.245971,64.943164 57.258411,64.920168 57.295705))","code":"tyumen","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"13","name":"Тюмень","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((100.634309 51.711677,100.680302 51.768639,100.910271 51.768639,101.14024 51.797093,101.163237 51.782868,101.232227 51.768639,101.393205 51.797093,101.50819 51.797093,101.669168 51.839739,101.922133 51.853946,101.968127 51.882346,102.152102 51.939092,102.175099 51.953267,102.405068 51.981605,102.566046 51.924912,102.635036 51.882346,102.796015 51.896539,102.819011 51.939092,102.819011 51.967438,102.910999 51.910728,103.071977 51.896539,103.094974 51.853946,103.209958 51.825528,103.232955 51.811313,103.531914 51.725925,103.646899 51.740167,103.623902 51.668909,103.600905 51.654644,103.600905 51.597539,103.715889 51.583252,103.876868 51.56896,103.899864 51.554663,104.129833 51.483114,104.244817 51.46879,104.52078 51.44013,104.612767 51.425793,104.635764 51.46879,104.589771 51.611822,104.635764 51.640375,104.796742 51.654644,105.095702 51.697426,105.118699 51.711677,105.279677 51.740167,105.302674 51.754405,105.371664 51.768639,105.578636 51.839739,105.831602 51.995766,105.946586 52.137139,105.969583 52.137139,105.969583 52.16536,105.99258 52.179463,106.176555 52.362405,106.521508 52.502615,107.004442 52.712096,107.418386 52.934438,108.016304 53.238304,108.085295 53.320805,108.085295 53.361995,108.154286 53.457952,108.292267 53.676469,108.384254 53.758122,108.453245 53.853184,108.545232 53.920953,108.568229 53.94803,108.683214 54.042661,108.844192 54.190933,108.844192 54.204386,108.867189 54.204386,108.890185 54.231279,108.959176 54.271585,108.982173 54.258154,109.212142 54.217835,109.235139 54.204386,109.281132 54.204386,109.304129 54.190933,109.534098 54.150548,109.580092 54.110123,109.603088 54.069659,109.626085 54.056163,109.902048 54.015646,110.10902 53.94803,110.201007 53.934494,110.224004 53.893859,110.155013 53.853184,110.063026 53.839617,109.994035 53.771716,109.833057 53.676469,109.787063 53.608304,109.718073 53.581007,109.695076 53.567352,109.672079 53.457952,109.580092 53.403146,109.580092 53.334539,109.235139 52.906708,109.189145 52.865079,109.07416 52.851193,108.913182 52.7817,108.913182 52.753872,108.890185 52.753872,108.821195 52.656332,108.752204 52.614463,108.729207 52.544592,108.706211 52.502615,108.614223 52.502615,108.453245 52.390483,108.453245 52.362405,108.430248 52.348359,108.361257 52.263992,108.338261 52.249915,108.315264 52.193563,108.246273 52.179463,108.200279 52.137139,108.177282 52.052369,108.154286 52.038225,108.131289 51.939092,108.177282 51.896539,108.154286 51.853946,108.085295 51.811313,108.039301 51.711677,108.016304 51.668909,107.993308 51.654644,107.947314 51.583252,107.832329 51.56896,107.809333 51.583252,107.809333 51.597539,107.694348 51.611822,107.602361 51.56896,107.556367 51.540363,107.556367 51.497433,107.464379 51.454462,107.349395 51.454462,107.234411 51.3684,107.234411 51.282176,107.188417 51.166958,107.119426 51.080355,107.09643 50.950147,107.119426 50.863138,107.09643 50.819572,107.142423 50.761422,107.142423 50.615729,107.119426 50.586536,106.981445 50.586536,106.958448 50.542712,106.935451 50.469583,106.912455 50.454943,106.889458 50.410998,106.958448 50.337664,106.981445 50.322984,107.004442 50.234807,106.935451 50.220095,106.774473 50.29361,106.705483 50.308299,106.590498 50.322984,106.268542 50.29361,106.176555 50.322984,106.084567 50.322984,106.015577 50.39634,105.99258 50.410998,106.084567 50.819572,106.199552 50.892159,106.199552 51.094801,106.038573 51.138109,105.969583 51.152536,105.969583 51.166958,105.946586 51.166958,105.877595 51.181376,105.348667 51.325308,105.026711 51.26779,104.95772 51.239003,104.934724 51.19579,104.842736 51.166958,104.819739 51.109241,104.704755 51.065906,104.635764 51.065906,104.543777 51.008062,103.232955 51.02253,103.163965 51.036993,103.163965 51.094801,103.140968 51.138109,102.933996 51.138109,102.796015 51.109241,102.773018 51.065906,102.589043 51.065906,102.589043 51.109241,102.497055 51.123677,102.106108 51.138109,102.129105 51.210199,102.106108 51.224603,102.083112 51.26779,102.129105 51.310935,102.106108 51.354041,101.899137 51.397106,101.784152 51.411452,101.738159 51.44013,101.623174 51.425793,101.554184 51.46879,101.50819 51.483114,101.439199 51.44013,101.347212 51.44013,101.232227 51.511747,101.117243 51.511747,101.094246 51.554663,101.025256 51.554663,100.956265 51.597539,100.887274 51.597539,100.795287 51.654644,100.657306 51.697426,100.634309 51.711677))","code":"ulanude","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"37","name":"Улан-Удэ","time_zone":{"name":"Asia/Irkutsk","offset":480},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((47.99447 54.378876,48.063461 54.472527,48.270433 54.459161,48.385417 54.472527,48.845355 54.472527,48.914345 54.405655,49.006333 54.35208,49.167311 54.338675,49.259298 54.338675,49.259298 54.311852,49.144314 54.285012,49.144314 54.217835,49.121317 54.204386,48.960339 54.204386,48.937342 54.177476,48.822358 54.164014,48.799361 54.150548,48.592389 54.110123,48.569392 54.069659,48.270433 54.09664,48.247436 54.110123,48.086458 54.110123,48.017467 54.204386,48.017467 54.231279,48.040464 54.325266,48.017467 54.338675,47.99447 54.378876))","code":"ulyanovsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true},"id":"55","name":"Ульяновск","time_zone":{"name":"Europe/Ulyanovsk","offset":240},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((49.926208 51.19579,50.018195 51.253399,50.179173 51.26779,50.20217 51.224603,50.271161 51.19579,50.340151 51.19579,50.455136 51.239003,50.915073 51.397106,50.984064 51.56896,50.961067 51.68317,51.030057 51.68317,51.053054 51.640375,51.283023 51.44013,51.352014 51.3684,51.352014 51.325308,51.466998 51.282176,51.535989 51.282176,51.74296 51.3684,51.880942 51.397106,51.995926 51.44013,52.156904 51.46879,52.432867 51.46879,52.501857 51.511747,52.593845 51.46879,52.731826 51.483114,52.800816 51.425793,52.869807 51.339677,52.984791 51.282176,52.984791 51.26779,53.122773 51.19579,53.122773 51.123677,52.984791 51.094801,52.823813 51.051452,52.570848 51.008062,52.11091 50.935657,51.972929 50.848621,51.972929 50.732319,51.995926 50.688632,51.903938 50.615729,51.880942 50.615729,51.857945 50.571932,51.788954 50.469583,51.398007 50.205378,51.283023 50.175931,51.122045 50.175931,50.984064 50.322984,50.984064 50.454943,51.053054 50.528096,51.053054 50.615729,51.076051 50.717761,51.099048 50.761422,51.076051 50.892159,51.099048 50.906663,51.076051 50.950147,50.478132 50.979114,50.248164 51.051452,50.133179 51.094801,49.972201 51.166958,49.926208 51.19579))","code":"uralsk","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true},"id":"162","name":"Уральск","time_zone":{"name":"Asia/Oral","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((131.726079 43.768976,131.749076 43.818776,131.749076 43.918251,131.772072 43.967926,132.071032 43.967926,132.140022 43.951372,132.140022 43.768976,132.117025 43.719135,131.93305 43.719135,131.818066 43.702512,131.726079 43.768976))","code":"ussuriysk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"83","name":"Уссурийск","time_zone":{"name":"Asia/Vladivostok","offset":600},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((82.420787 49.865643,82.420787 49.939703,82.443784 49.939703,82.443784 50.013649,82.46678 50.057963,82.719746 50.057963,82.83473 50.072725,82.949715 50.028425,83.064699 49.954501,83.018705 49.850817,82.949715 49.74691,82.719746 49.776621,82.627758 49.806313,82.581765 49.835987,82.512774 49.835987,82.420787 49.865643))","code":"ustkam","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"91","name":"Усть-Каменогорск","time_zone":{"name":"Asia/Almaty","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((53.375738 54.472527,53.398735 54.565963,53.513719 54.659186,53.513719 54.672486,53.628704 54.685782,53.651701 54.659186,53.766685 54.645881,53.835676 54.605942,53.927663 54.605942,54.019651 54.632572,54.088641 54.605942,54.157632 54.619259,54.272616 54.619259,54.364604 54.672486,54.617569 54.672486,54.709557 54.725643,54.778547 54.725643,54.847538 54.738921,55.008516 54.805248,55.1235 54.8185,55.169494 54.791991,55.307475 54.791991,55.468454 54.831748,55.514447 54.831748,55.514447 54.871465,55.560441 54.871465,55.652428 54.897922,55.698422 55.003575,55.721419 55.016762,55.698422 55.095794,55.836403 55.122103,55.951388 55.108951,56.066372 55.069467,56.15836 54.950783,56.22735 54.963988,56.319338 54.963988,56.388328 54.897922,56.503313 54.85823,56.503313 54.791991,56.388328 54.672486,56.388328 54.632572,56.342335 54.605942,56.388328 54.565963,56.319338 54.445791,56.204353 54.445791,56.043375 54.419038,55.997382 54.445791,55.836403 54.472527,55.652428 54.525945,55.560441 54.525945,55.537444 54.512597,55.330472 54.485888,55.307475 54.472527,55.192491 54.472527,54.939525 54.459161,54.824541 54.472527,54.778547 54.445791,54.68656 54.445791,54.594572 54.472527,54.387601 54.499245,54.341607 54.485888,54.272616 54.445791,54.203626 54.445791,54.088641 54.459161,53.95066 54.378876,53.766685 54.378876,53.444729 54.432417,53.421732 54.432417,53.375738 54.472527))","code":"ufa","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"17","name":"Уфа","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((53.191763 63.468254,53.191763 63.499055,53.260754 63.550317,53.513719 63.621928,53.697694 63.69336,53.812679 63.683166,54.088641 63.642356,54.203626 63.601486,54.226622 63.570796,54.157632 63.529823,54.019651 63.365344,53.996654 63.355033,53.881669 63.355033,53.743688 63.385956,53.559713 63.375652,53.191763 63.468254))","code":"ukhta","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"204","name":"Ухта","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((134.87665 48.299342,134.87665 48.634798,135.198606 48.634798,135.267597 48.619599,135.267597 48.32993,135.2446 48.284042,135.152612 48.284042,135.129616 48.268736,134.945641 48.284042,134.87665 48.299342))","code":"khabarovsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"35","name":"Хабаровск","time_zone":{"name":"Asia/Vladivostok","offset":600},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((39.370644 28.037956,39.39364 28.098832,39.416637 28.119117,39.485628 28.220481,39.508625 28.220481,39.600612 28.301504,39.600612 28.36223,39.76159 28.463364,39.784587 28.544201,39.876575 28.584597,39.876575 28.604789,40.175534 28.70569,40.198531 28.725858,40.313515 28.766184,40.313515 28.786341,40.4285 28.806494,40.543484 28.887067,40.86544 28.887067,41.210393 28.866929,41.279384 28.887067,41.348375 28.887067,41.371371 28.866929,41.486356 28.866929,41.716324 28.826643,41.854306 28.826643,41.923296 28.806494,42.038281 28.866929,42.107271 28.846788,42.130268 28.826643,42.383234 28.766184,42.498218 28.766184,42.544212 28.70569,42.567209 28.645161,42.728187 28.584597,42.797177 28.564401,42.774181 28.463364,42.797177 28.443145,42.820174 28.402695,43.119134 28.341992,43.188124 28.382465,43.257115 28.402695,43.280112 28.422922,43.44109 28.422922,43.464087 28.402695,43.487084 28.422922,43.625065 28.422922,43.648062 28.443145,43.763046 28.422922,43.87803 28.422922,43.901027 28.36223,43.87803 28.240743,43.901027 28.220481,43.901027 28.159674,43.924024 28.098832,43.763046 27.977045,43.717052 27.87545,43.717052 27.570096,43.694055 27.508922,43.602068 27.508922,43.44109 27.488523,43.395096 27.447715,43.280112 27.406891,43.257115 27.325198,43.326105 27.263889,43.303109 27.243445,43.211121 27.202545,43.211121 27.100232,43.165127 27.018314,43.027146 26.895324,42.958156 26.915832,42.866168 26.874813,42.843171 26.854298,42.728187 26.813257,42.70519 26.73113,42.659196 26.690045,42.636199 26.607829,42.429227 26.504976,42.383234 26.463809,42.314243 26.484394,42.176262 26.360827,42.199259 26.175229,42.107271 26.175229,42.061278 26.133944,41.946293 26.092645,41.923296 25.968661,41.808312 25.947984,41.808312 25.885932,41.785315 25.865241,41.670331 25.7203,41.440362 25.7203,41.348375 25.554438,41.302381 25.554438,41.279384 25.49218,41.1644 25.49218,41.072412 25.575183,40.842443 25.575183,40.727459 25.409119,40.612475 25.409119,40.543484 25.42989,40.474493 25.409119,40.4285 25.305213,40.359509 25.305213,40.198531 25.326002,40.06055 25.367568,39.968562 25.42989,39.968562 25.69958,39.945565 25.844546,39.968562 25.865241,39.945565 26.051332,39.968562 26.154588,39.876575 26.278376,39.899572 26.34022,39.876575 26.422627,39.784587 26.546128,39.784587 26.566699,39.738594 26.607829,39.623609 26.751668,39.554619 26.751668,39.485628 26.772201,39.485628 26.854298,39.554619 26.895324,39.623609 26.997825,39.715597 27.079758,39.784587 27.243445,39.853578 27.243445,39.899572 27.161631,40.014556 27.141169,40.014556 27.263889,39.922569 27.447715,39.922569 27.549708,39.899572 27.651607,39.807584 27.814448,39.600612 27.9161,39.39364 27.977045,39.370644 28.037956))","code":"hail","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":true},"id":"225","name":"Хаиль","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((68.875629 60.983694,68.875629 61.017141,68.921623 61.017141,68.921623 61.039419,68.967617 61.083929,69.082601 61.11727,69.128595 61.095046,69.197586 61.083929,69.243579 61.10616,69.335567 61.095046,69.427554 61.028282,69.427554 61.017141,69.404558 61.005996,69.381561 60.972537,69.128595 60.916694,69.082601 60.916694,68.875629 60.983694))","code":"kh_mansiysk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true},"id":"150","name":"Ханты-Мансийск","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((36.0131 49.998869,36.036097 50.013649,36.036097 50.102235,36.105088 50.146466,36.174079 50.131727,36.427044 50.116983,36.496035 50.102235,36.473038 49.969295,36.496035 49.9249,36.519032 49.910093,36.473038 49.850817,36.404047 49.850817,36.358053 49.821152,36.059094 49.850817,36.0131 49.998869))","code":"kharkov","country_code":"ua","domain":"ua","flags":{"2gis_reviews":true,"flamp":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"110","name":"Харьков","time_zone":{"name":"Europe/Kiev","offset":120},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((46.535458 43.259124,46.541148 43.268721,46.542462 43.281203,46.551959 43.28555,46.570952 43.290521,46.582537 43.295467,46.614005 43.287527,46.625543 43.279002,46.624817 43.277832,46.623827 43.277209,46.623305 43.276984,46.623237 43.276944,46.623074 43.276769,46.622766 43.276572,46.622732 43.276525,46.622625 43.276271,46.622621 43.276203,46.622647 43.276125,46.622711 43.276062,46.622963 43.275918,46.623027 43.275871,46.623199 43.275634,46.623789 43.275037,46.625778 43.272249,46.625821 43.272161,46.626035 43.271457,46.626035 43.271347,46.626005 43.270972,46.625958 43.270869,46.624806 43.269568,46.62414 43.268584,46.624036 43.268484,46.623677 43.268263,46.623593 43.268221,46.623523 43.268151,46.623473 43.268076,46.623347 43.267823,46.62324 43.267531,46.623181 43.26731,46.623152 43.267082,46.623161 43.266852,46.623462 43.265283,46.623497 43.265137,46.623462 43.264948,46.623419 43.264848,46.623064 43.263577,46.623069 43.263495,46.623106 43.263422,46.623204 43.263357,46.623269 43.263341,46.623564 43.263354,46.623654 43.263341,46.623731 43.263307,46.623808 43.263241,46.623863 43.263169,46.623893 43.263069,46.623919 43.262544,46.62395 43.262475,46.624113 43.262328,46.624143 43.262262,46.624139 43.262191,46.624678 43.258032,46.62469 43.257869,46.624669 43.257804,46.624626 43.257744,46.624559 43.257702,46.624507 43.257645,46.624366 43.257458,46.624331 43.257391,46.624315 43.257295,46.624336 43.257242,46.624503 43.257123,46.62721 43.254007,46.627539 43.253591,46.62849 43.252289,46.628756 43.251893,46.629256 43.250959,46.629297 43.250675,46.629256 43.250414,46.629093 43.250048,46.628929 43.249794,46.627447 43.248284,46.627302 43.247941,46.627059 43.246842,46.626978 43.246311,46.627091 43.243581,46.627285 43.243132,46.627657 43.24266,46.628142 43.242223,46.629257 43.241478,46.637533 43.236811,46.637887 43.236487,46.63813 43.236067,46.639324 43.233578,46.639408 43.23319,46.639412 43.232819,46.639301 43.232431,46.638616 43.231138,46.638462 43.230669,46.638506 43.230233,46.638793 43.229651,46.639169 43.229295,46.640385 43.228632,46.641357 43.228277,46.641667 43.228034,46.641888 43.227646,46.644849 43.216819,46.648661 43.209742,46.64652 43.208119,46.63438 43.204182,46.627887 43.202295,46.621346 43.20096,46.615262 43.199958,46.608873 43.199291,46.602332 43.198957,46.596399 43.199235,46.591075 43.199847,46.584382 43.201294,46.577994 43.203297,46.572213 43.205411,46.566585 43.208415,46.562281 43.21131,46.559207 43.213867,46.552417 43.22056,46.538973 43.238001,46.538182 43.242044,46.538182 43.243175,46.538681 43.249086,46.538631 43.250217,46.538332 43.251239,46.535458 43.259124))","code":"khasavyurt","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"public_transport":true,"road_network":true},"id":"151","name":"Хасавюрт","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((46.936614 56.211525,46.959611 56.249873,46.982608 56.249873,47.097592 56.288183,47.097592 56.300945,47.143586 56.326455,47.419549 56.326455,47.534533 56.313702,47.603524 56.300945,47.603524 56.134713,47.580527 56.121896,47.580527 56.006351,47.511536 55.967759,47.350558 55.980627,47.097592 55.980627,47.097592 55.993491,47.005605 55.993491,46.982608 56.032057,47.005605 56.096249,46.936614 56.211525))","code":"cheboksary","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"53","name":"Чебоксары","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((60.458775 54.897922,60.481771 55.043123,60.481771 55.17467,60.458775 55.24028,60.550762 55.318871,60.619753 55.397306,60.688743 55.488617,60.688743 55.631679,60.803728 55.696535,61.171678 55.761284,61.700606 55.735397,61.907577 55.592713,62.137546 55.410363,62.18354 55.410363,62.252531 55.358108,62.229534 55.345033,62.068556 55.292691,62.068556 55.25339,62.137546 55.24028,62.206537 55.1878,62.229534 55.122103,62.275527 55.095794,62.18354 54.990384,62.022562 54.977188,61.999565 54.937574,62.091552 54.884696,62.114549 54.8185,62.022562 54.738921,62.022562 54.725643,61.884581 54.311852,61.81559 54.204386,61.81559 54.190933,61.746599 54.09664,61.723602 54.029156,61.631615 54.015646,61.631615 53.988613,61.585621 53.988613,61.493634 54.029156,61.470637 54.083152,61.309659 54.083152,61.217671 54.110123,61.056693 54.190933,60.987703 54.177476,60.895715 54.190933,60.872718 54.177476,60.803728 54.164014,60.780731 54.204386,60.757734 54.204386,60.757734 54.217835,60.481771 54.699073,60.458775 54.897922))","code":"chelyabinsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"15","name":"Челябинск","time_zone":{"name":"Asia/Yekaterinburg","offset":300},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((42.015284 44.182706,42.015284 44.265106,42.107271 44.265106,42.107271 44.21568,42.084274 44.166212,42.015284 44.182706))","code":"cherkessk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"118","name":"Черкесск","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((112.316719 52.052369,112.339716 52.123022,112.38571 52.207657,112.454701 52.221748,112.500694 52.249915,112.523691 52.320254,112.546688 52.348359,112.891641 52.334309,113.12161 52.418543,113.167604 52.446585,113.236594 52.460599,113.397572 52.460599,113.397572 52.432566,113.512557 52.334309,113.535553 52.320254,113.55855 52.263992,113.673535 52.221748,113.788519 52.207657,113.811516 52.16536,113.788519 51.953267,113.604544 51.839739,113.443566 51.811313,113.374575 51.782868,113.374575 51.740167,113.305585 51.740167,113.167604 51.825528,113.075616 51.825528,113.006625 51.868148,112.891641 51.896539,112.477697 51.924912,112.362713 51.967438,112.339716 52.038225,112.316719 52.052369))","code":"chita","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"64","name":"Чита","time_zone":{"name":"Asia/Chita","offset":540},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((40.083547 47.699215,40.083547 47.776545,40.12954 47.807444,40.152537 47.791997,40.359509 47.761088,40.359509 47.71469,40.175534 47.62177,40.152537 47.652762,40.083547 47.699215))","code":"shakhty","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"152","name":"Шахты","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((86.928173 53.457952,86.928173 53.49901,87.480098 53.49901,87.595083 53.416854,87.641076 53.320805,87.848048 53.334539,87.894042 53.252065,87.963033 53.252065,88.101014 53.196994,88.101014 53.141852,88.124011 53.128056,88.078017 52.948297,88.101014 52.934438,88.032023 52.795608,87.940036 52.726026,87.848048 52.726026,87.779058 52.753872,87.779058 52.837304,87.68707 52.892836,87.61808 52.906708,87.457101 52.892836,87.342117 53.003687,87.31912 53.059007,87.227133 53.141852,87.112148 53.210769,87.112148 53.279574,87.066155 53.307066,86.95117 53.444257,86.928173 53.457952))","code":"sheregesh","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"206","name":"Шерегеш","time_zone":{"name":"Asia/Novokuznetsk","offset":420},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((69.404558 42.255704,69.404558 42.391727,69.450551 42.442659,69.726514 42.442659,69.795504 42.425686,69.795504 42.289737,69.772507 42.238681,69.427554 42.238681,69.404558 42.255704))","code":"shymkent","country_code":"kz","domain":"kz","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"161","name":"Шымкент","time_zone":{"name":"Asia/Almaty","offset":360},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((44.682921 27.773761,44.682921 27.85512,44.843899 27.997352,44.91289 28.200216,44.91289 28.220481,45.004877 28.463364,45.073868 28.725858,45.073868 29.007809,45.119861 29.048025,45.234846 29.068128,45.395824 29.128411,45.418821 29.148497,45.487811 29.16858,45.556802 29.148497,45.947749 29.128411,45.947749 29.10832,46.430683 29.088226,46.568664 29.128411,46.614658 29.088226,46.913617 29.068128,47.028602 29.048025,47.097592 29.048025,47.304564 29.027919,47.327561 29.007809,47.465542 29.007809,47.55753 28.887067,47.603524 28.806494,47.603524 28.665341,47.62652 28.645161,47.718508 28.523998,48.408414 28.523998,48.431411 28.544201,48.569392 28.624977,48.707373 28.665341,48.753367 28.624977,49.144314 28.36223,49.167311 28.341992,49.236301 28.240743,49.236301 28.220481,49.259298 28.220481,49.282295 28.159674,49.512264 27.895777,49.604251 27.834786,49.650245 27.87545,49.765229 27.936419,49.926208 27.936419,49.972201 27.895777,50.363148 27.9161,50.432139 27.814448,50.432139 27.753411,50.363148 27.610859,50.20217 27.549708,50.064189 27.570096,50.087186 27.508922,50.156176 27.447715,50.386145 27.141169,50.409142 27.120702,50.455136 27.038799,50.478132 26.772201,50.478132 26.710589,50.501129 26.648944,50.478132 26.587266,50.386145 26.504976,50.386145 26.402031,50.340151 26.360827,50.317154 26.257754,50.294157 26.03067,50.294157 25.885932,50.340151 25.865241,50.409142 25.7203,50.57012 25.575183,50.57012 25.512936,50.616114 25.47142,50.616114 25.42989,50.685104 25.055475,50.708101 25.03464,50.708101 24.930414,50.800089 24.888699,50.823086 24.742585,50.93807 24.533553,51.099048 24.470776,51.329017 24.512631,51.398007 24.617208,51.466998 24.638113,51.581982 24.659015,51.581982 24.554472,51.444001 24.428906,51.444001 24.366077,51.535989 24.345126,51.581982 24.261291,51.581982 24.156418,51.67397 24.009453,51.765957 23.925397,52.018923 23.630771,52.156904 23.441017,52.340879 23.229859,52.570848 22.933677,52.662835 22.933677,52.662835 22.912497,52.84681 22.912497,52.869807 22.891312,52.984791 22.891312,53.14577 22.870125,53.674698 22.806543,53.835676 22.806543,54.272616 22.742931,54.341607 22.721721,54.893532 22.67929,54.916529 22.65807,55.1235 22.636846,55.192491 22.67929,55.215488 22.67929,55.261482 22.636846,55.675425 21.998624,55.49145 21.485965,55.238485 20.692079,55.008516 20.002103,54.870535 19.958877,54.571576 19.850762,53.95066 19.655969,52.984791 19.33079,52.915801 19.309088,52.616841 19.200535,51.995926 19.004961,51.995926 19.265675,51.972929 19.33079,47.55753 19.33079,47.55753 19.374185,47.580527 19.482621,47.603524 19.482621,48.178445 20.692079,48.178445 20.713591,47.948477 20.992967,47.879486 21.057364,47.902483 21.357516,47.833492 21.400345,47.856489 21.550147,47.971473 21.721161,48.040464 21.742523,48.109455 21.827941,48.109455 21.870631,47.948477 21.891971,47.810495 21.9773,47.810495 22.041262,47.879486 22.169101,47.902483 22.275545,47.92548 22.296824,47.99447 22.40317,48.040464 22.615619,48.086458 22.912497,48.086458 22.9972,48.109455 23.356594,48.086458 23.419916,48.132452 23.588627,48.109455 24.198378,48.109455 24.303215,48.086458 24.324173,47.99447 24.491705,47.99447 24.554472,47.833492 24.533553,47.741505 24.533553,47.741505 24.867836,47.62652 25.013802,47.62652 25.055475,47.672514 25.097133,47.695511 25.180408,47.764502 25.242827,47.741505 25.388345,47.718508 25.450657,47.649517 25.554438,47.672514 25.69958,47.695511 25.69958,47.695511 25.803145,47.62652 25.865241,47.62652 25.989334,47.580527 26.03067,47.603524 26.175229,47.580527 26.195865,47.534533 26.34022,47.511536 26.402031,47.327561 26.402031,47.235574 26.484394,47.143586 26.504976,47.143586 26.566699,47.097592 26.607829,46.982608 26.607829,46.890621 26.690045,46.683649 26.772201,46.545667 26.772201,46.545667 26.710589,46.476677 26.710589,46.315699 26.792731,46.246708 26.813257,46.200714 26.854298,46.131724 26.874813,46.039736 26.936336,45.901755 27.141169,45.740777 27.284329,45.556802 27.325198,45.533805 27.304765,45.303836 27.304765,45.234846 27.345627,45.234846 27.508922,45.119861 27.508922,45.096865 27.570096,45.073868 27.671976,45.004877 27.69234,44.91289 27.631235,44.843899 27.631235,44.682921 27.773761))","code":"dammam","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":true,"traffic":true},"id":"220","name":"Эд-Даммам","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((44.153993 46.255822,44.153993 46.335269,44.199987 46.382882,44.291974 46.382882,44.360965 46.367015,44.383962 46.319388,44.360965 46.303504,44.337968 46.255822,44.153993 46.255822))","code":"elista","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"truck_graph":true},"id":"153","name":"Элиста","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((40.819447 20.023711,40.819447 20.088518,40.888437 20.174885,41.026418 20.239629,41.141403 20.261205,41.1644 20.325913,41.210393 20.369037,41.210393 20.412148,41.23339 20.4337,41.256387 20.476793,41.23339 20.670565,41.279384 20.756606,41.394368 20.756606,41.486356 20.584474,41.693328 20.606001,41.785315 20.606001,41.900299 20.670565,42.015284 20.670565,42.038281 20.606001,41.96929 20.498336,41.96929 20.455248,42.038281 20.390594,42.038281 20.325913,41.992287 20.261205,41.923296 20.239629,41.831309 20.174885,41.831309 20.045316,41.762318 19.93726,41.739321 19.82913,41.693328 19.785858,41.509353 19.785858,41.463359 19.699277,41.417365 19.655969,41.417365 19.590986,41.394368 19.569319,41.371371 19.439255,41.348375 19.374185,41.210393 19.374185,41.141403 19.417568,41.118406 19.482621,40.957428 19.569319,40.957428 19.61265,40.980425 19.720927,40.957428 19.742573,40.957428 19.93726,40.934431 20.002103,40.819447 20.023711))","code":"el_baha","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":false},"id":"229","name":"Эль-Баха","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((37.024963 31.451463,37.024963 31.510299,37.185941 31.569098,37.369916 31.608277,37.392913 31.62786,37.691872 31.686585,37.714869 31.706152,37.829853 31.725715,37.944838 31.764827,37.967834 31.706152,37.944838 31.647439,37.944838 31.510299,37.967834 31.510299,37.944838 31.372957,37.921841 31.196079,37.990831 31.196079,38.105816 31.137046,38.105816 31.09767,38.151809 31.09767,38.174806 30.959727,38.174806 30.880812,38.243797 30.861073,38.312788 30.900547,38.450769 30.900547,38.58875 30.940004,38.818719 30.900547,38.887709 30.900547,38.9567 30.959727,39.301653 30.959727,39.416637 30.900547,39.531622 30.920278,39.623609 30.920278,39.738594 30.861073,39.899572 30.880812,40.014556 30.782078,40.083547 30.742555,40.198531 30.742555,40.290518 30.821584,40.405503 30.801833,40.4285 30.782078,40.681465 30.742555,40.980425 30.762319,41.049415 30.762319,41.118406 30.683242,41.141403 30.623891,41.210393 30.584304,41.440362 30.564505,41.463359 30.544701,41.624337 30.524893,41.624337 30.485266,41.555346 30.405962,41.60134 30.346443,41.693328 30.346443,41.808312 30.247162,41.946293 30.108002,41.923296 30.048301,41.831309 30.048301,41.762318 30.008481,41.762318 29.928792,41.693328 29.90886,41.693328 29.928792,41.60134 29.90886,41.486356 29.809139,41.417365 29.809139,41.417365 29.549401,41.509353 29.529393,41.509353 29.449323,41.578343 29.309048,41.578343 29.248871,41.60134 29.188658,41.578343 29.128411,41.440362 29.128411,41.348375 28.947456,41.348375 28.887067,41.279384 28.887067,41.210393 28.866929,40.86544 28.887067,40.543484 28.887067,40.4285 28.806494,40.313515 28.786341,40.313515 28.766184,40.198531 28.725858,40.175534 28.70569,39.876575 28.604789,39.876575 28.584597,39.784587 28.544201,39.784587 28.564401,39.738594 28.624977,39.669603 28.624977,39.646606 28.645161,39.531622 28.665341,39.32465 28.746023,39.117678 28.887067,38.979697 29.007809,38.726731 29.148497,38.611747 29.228804,38.58875 29.248871,38.450769 29.248871,38.312788 29.188658,38.2208 29.188658,38.243797 29.329099,38.381778 29.449323,38.381778 29.509381,38.358781 29.529393,38.2208 29.6094,38.197803 29.6094,38.036825 29.64938,38.013828 29.669363,37.944838 29.689343,37.875847 29.729291,37.806856 29.789183,37.645878 29.868984,37.4849 30.008481,37.530894 30.127894,37.668875 30.366287,37.691872 30.366287,37.944838 30.505082,37.829853 30.643679,37.78386 30.683242,37.714869 30.762319,37.438906 31.038576,37.070956 31.392589,37.024963 31.451463))","code":"el_jouf","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":false},"id":"230","name":"Эль-Джауф","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((41.279384 25.49218,41.302381 25.554438,41.348375 25.554438,41.440362 25.7203,41.670331 25.7203,41.785315 25.865241,41.808312 25.885932,41.808312 25.947984,41.923296 25.968661,41.946293 26.092645,42.061278 26.133944,42.107271 26.175229,42.199259 26.175229,42.176262 26.360827,42.314243 26.484394,42.383234 26.463809,42.429227 26.504976,42.636199 26.607829,42.659196 26.690045,42.70519 26.73113,42.728187 26.813257,42.843171 26.854298,42.866168 26.874813,42.958156 26.915832,43.027146 26.895324,43.165127 27.018314,43.211121 27.100232,43.211121 27.202545,43.303109 27.243445,43.326105 27.263889,43.257115 27.325198,43.280112 27.406891,43.395096 27.447715,43.44109 27.488523,43.602068 27.508922,43.694055 27.508922,43.717052 27.570096,43.717052 27.87545,43.763046 27.977045,43.924024 28.098832,43.947021 28.037956,43.924024 27.977045,43.947021 27.9161,44.016012 27.9161,44.130996 27.977045,44.291974 27.936419,44.383962 27.85512,44.54494 27.753411,44.61393 27.631235,44.728915 27.529317,44.751911 27.488523,44.797905 27.447715,44.866896 27.304765,44.889893 27.243445,44.866896 26.977332,44.843899 26.977332,44.728915 27.038799,44.636927 27.038799,44.452952 26.997825,44.406958 26.936336,44.383962 26.669496,44.429955 26.402031,44.498946 26.175229,44.498946 26.092645,44.521943 26.07199,44.567937 25.947984,44.636927 25.823847,44.797905 25.678856,44.774908 25.658129,44.751911 25.533689,44.659924 25.533689,44.521943 25.595925,44.452952 25.595925,44.383962 25.533689,44.291974 25.512936,44.268977 25.49218,44.062005 25.450657,44.016012 25.367568,43.901027 25.326002,43.80904 25.326002,43.740049 25.305213,43.740049 25.201218,43.602068 25.159595,43.556074 25.201218,43.487084 25.201218,43.280112 25.013802,43.188124 25.013802,43.119134 24.99296,43.119134 24.909558,43.211121 24.909558,43.142131 24.84697,43.142131 24.763469,43.211121 24.700807,43.165127 24.659015,43.119134 24.554472,43.050143 24.533553,42.889165 24.554472,42.797177 24.449843,42.590206 24.449843,42.498218 24.512631,42.498218 24.575388,42.429227 24.700807,42.33724 24.700807,42.130268 24.721698,42.130268 24.8261,41.992287 24.972115,41.785315 25.159595,41.716324 25.159595,41.647334 25.284421,41.509353 25.346786,41.440362 25.346786,41.394368 25.47142,41.302381 25.47142,41.279384 25.49218))","code":"qasim","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":false},"id":"222","name":"Эль-Касим","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((37.921841 31.196079,37.944838 31.372957,37.967834 31.510299,37.944838 31.510299,37.944838 31.647439,37.967834 31.706152,37.944838 31.764827,38.128813 31.803924,38.151809 31.823466,38.910706 31.999157,38.979697 32.018658,39.186669 32.155045,39.255659 32.174513,39.32465 32.155045,39.623609 32.096619,40.037553 32.038154,40.106544 32.018658,40.382506 31.979653,40.520487 31.921114,41.003421 31.647439,41.118406 31.588689,41.141403 31.569098,41.210393 31.549502,41.210393 31.529903,41.325378 31.471079,41.53235 31.35332,41.60134 31.333679,42.130268 31.11736,42.659196 30.742555,42.70519 30.703017,42.843171 30.6041,42.935159 30.544701,43.326105 30.267027,43.372099 30.227294,44.016012 29.769223,44.085002 29.709319,44.291974 29.569404,44.406958 29.469346,44.659924 29.288993,44.682921 29.268934,44.774908 29.208733,44.843899 29.208733,45.395824 29.16858,45.418821 29.148497,45.395824 29.128411,45.234846 29.068128,45.119861 29.048025,45.073868 29.007809,45.073868 28.725858,45.004877 28.463364,44.91289 28.220481,44.91289 28.200216,44.843899 27.997352,44.682921 27.85512,44.682921 27.773761,44.843899 27.631235,44.91289 27.631235,44.889893 27.570096,44.797905 27.570096,44.751911 27.529317,44.705918 27.529317,44.590933 27.671976,44.54494 27.753411,44.383962 27.85512,44.291974 27.936419,44.130996 27.977045,44.016012 27.9161,43.947021 27.9161,43.924024 27.977045,43.947021 28.037956,43.901027 28.159674,43.901027 28.220481,43.87803 28.240743,43.901027 28.36223,43.87803 28.422922,43.763046 28.422922,43.648062 28.443145,43.625065 28.422922,43.487084 28.422922,43.464087 28.402695,43.44109 28.422922,43.280112 28.422922,43.257115 28.402695,43.188124 28.382465,43.119134 28.341992,42.820174 28.402695,42.797177 28.443145,42.774181 28.463364,42.797177 28.564401,42.728187 28.584597,42.567209 28.645161,42.544212 28.70569,42.498218 28.766184,42.383234 28.766184,42.130268 28.826643,42.107271 28.846788,42.038281 28.866929,41.923296 28.806494,41.854306 28.826643,41.716324 28.826643,41.486356 28.866929,41.371371 28.866929,41.348375 28.887067,41.348375 28.947456,41.440362 29.128411,41.578343 29.128411,41.60134 29.188658,41.578343 29.248871,41.578343 29.309048,41.509353 29.449323,41.509353 29.529393,41.417365 29.549401,41.417365 29.809139,41.486356 29.809139,41.60134 29.90886,41.693328 29.928792,41.693328 29.90886,41.762318 29.928792,41.762318 30.008481,41.831309 30.048301,41.923296 30.048301,41.946293 30.108002,41.808312 30.247162,41.693328 30.346443,41.60134 30.346443,41.555346 30.405962,41.624337 30.485266,41.624337 30.524893,41.463359 30.544701,41.440362 30.564505,41.210393 30.584304,41.141403 30.623891,41.118406 30.683242,41.049415 30.762319,40.980425 30.762319,40.681465 30.742555,40.4285 30.782078,40.405503 30.801833,40.290518 30.821584,40.198531 30.742555,40.083547 30.742555,40.014556 30.782078,39.899572 30.880812,39.738594 30.861073,39.623609 30.920278,39.531622 30.920278,39.416637 30.900547,39.301653 30.959727,38.9567 30.959727,38.887709 30.900547,38.818719 30.900547,38.58875 30.940004,38.450769 30.900547,38.312788 30.900547,38.243797 30.861073,38.174806 30.880812,38.174806 30.959727,38.151809 31.09767,38.105816 31.09767,38.105816 31.137046,37.990831 31.196079,37.921841 31.196079))","code":"hudud_al_shamaliya","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":true},"id":"226","name":"Эль-Худуд-эш-Шамалия","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((41.96929 23.79921,41.96929 23.946416,41.992287 23.967432,41.992287 24.114445,42.015284 24.428906,42.084274 24.512631,42.130268 24.679912,42.130268 24.721698,42.33724 24.700807,42.429227 24.700807,42.498218 24.575388,42.498218 24.512631,42.590206 24.449843,42.797177 24.449843,42.889165 24.554472,43.050143 24.533553,43.119134 24.554472,43.165127 24.659015,43.211121 24.700807,43.142131 24.763469,43.142131 24.84697,43.211121 24.909558,43.119134 24.909558,43.119134 24.99296,43.188124 25.013802,43.280112 25.013802,43.487084 25.201218,43.556074 25.201218,43.602068 25.159595,43.740049 25.201218,43.740049 25.305213,43.80904 25.326002,43.901027 25.326002,44.016012 25.367568,44.062005 25.450657,44.268977 25.49218,44.291974 25.512936,44.383962 25.533689,44.452952 25.595925,44.521943 25.595925,44.659924 25.533689,44.751911 25.533689,44.774908 25.658129,44.797905 25.678856,44.636927 25.823847,44.567937 25.947984,44.521943 26.07199,44.498946 26.092645,44.498946 26.175229,44.429955 26.402031,44.383962 26.669496,44.406958 26.936336,44.452952 26.997825,44.636927 27.038799,44.728915 27.038799,44.843899 26.977332,44.866896 26.977332,44.889893 27.243445,44.866896 27.304765,44.797905 27.447715,44.751911 27.488523,44.728915 27.529317,44.797905 27.570096,44.889893 27.570096,44.91289 27.631235,45.004877 27.69234,45.073868 27.671976,45.096865 27.570096,45.119861 27.508922,45.234846 27.508922,45.234846 27.345627,45.303836 27.304765,45.533805 27.304765,45.556802 27.325198,45.740777 27.284329,45.901755 27.141169,46.039736 26.936336,46.131724 26.874813,46.200714 26.854298,46.246708 26.813257,46.315699 26.792731,46.476677 26.710589,46.545667 26.710589,46.545667 26.772201,46.683649 26.772201,46.890621 26.690045,46.982608 26.607829,47.097592 26.607829,47.143586 26.566699,47.143586 26.504976,47.235574 26.484394,47.327561 26.402031,47.511536 26.402031,47.534533 26.34022,47.580527 26.195865,47.603524 26.175229,47.580527 26.03067,47.62652 25.989334,47.62652 25.865241,47.695511 25.803145,47.695511 25.69958,47.672514 25.69958,47.649517 25.554438,47.718508 25.450657,47.741505 25.388345,47.764502 25.242827,47.695511 25.180408,47.672514 25.097133,47.62652 25.055475,47.62652 25.013802,47.741505 24.867836,47.741505 24.533553,47.833492 24.533553,47.99447 24.554472,47.99447 24.491705,48.086458 24.324173,48.109455 24.303215,48.109455 24.198378,48.132452 23.588627,48.086458 23.419916,48.109455 23.356594,48.086458 22.9972,48.086458 22.912497,48.040464 22.615619,47.99447 22.40317,47.92548 22.296824,47.902483 22.275545,47.879486 22.169101,47.810495 22.041262,47.810495 21.9773,47.948477 21.891971,48.109455 21.870631,48.109455 21.827941,48.040464 21.742523,47.971473 21.721161,47.856489 21.550147,47.833492 21.400345,47.902483 21.357516,47.879486 21.057364,47.948477 20.992967,48.178445 20.713591,48.178445 20.692079,47.603524 19.482621,47.580527 19.482621,47.465542 19.46094,47.25857 19.439255,47.097592 19.417568,47.005605 19.395878,46.660652 19.374185,46.338696 19.33079,45.533805 19.265675,45.418821 19.243965,45.027874 19.265675,44.91289 19.287383,44.774908 19.352488,44.682921 19.417568,44.636927 19.46094,44.521943 19.482621,44.521943 19.5043,44.475949 19.547649,44.337968 19.655969,44.039008 19.93726,44.016012 20.023711,43.924024 20.110114,43.970018 20.325913,44.062005 20.476793,44.062005 20.562944,43.970018 20.649047,43.855034 20.821105,43.717052 20.95002,43.648062 20.971495,43.648062 21.014436,43.533077 21.186076,43.51008 21.207517,43.44109 21.314675,43.395096 21.357516,43.395096 21.464565,43.44109 21.59292,43.44109 21.721161,43.418093 21.785239,43.487084 21.870631,43.51008 21.934642,43.51008 22.019945,43.464087 22.190396,43.464087 22.42443,43.487084 22.488189,43.44109 22.530679,43.280112 22.551919,43.096137 22.509436,42.981152 22.615619,42.981152 22.721721,43.004149 22.870125,42.935159 22.891312,42.912162 22.912497,42.475221 22.912497,42.452224 22.933677,42.360237 22.9972,42.222256 23.272118,42.199259 23.419916,42.176262 23.483208,42.153265 23.504298,42.107271 23.672901,41.96929 23.79921))","code":"riyadh","country_code":"sa","domain":"sa","flags":{"2gis_reviews":true,"flamp":false,"metro":false,"public_transport":false,"road_network":false},"id":"216","name":"Эр-Рияд","time_zone":{"name":"Asia/Riyadh","offset":180},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((141.499749 46.525471,141.499749 46.636117,141.545743 46.730776,141.614733 46.841002,141.63773 46.919596,141.660727 46.935301,141.729718 47.07644,141.729718 47.139049,141.706721 47.139049,141.63773 47.310843,141.63773 47.652762,141.683724 47.683735,141.982683 47.62177,142.097668 47.49762,142.166658 47.49762,142.281643 47.606268,142.350633 47.62177,142.350633 47.699215,142.419624 47.71469,142.419624 47.761088,142.350633 47.838326,142.350633 47.930859,142.442621 48.038607,142.465618 48.100075,142.442621 48.100075,142.396627 48.222793,142.396627 48.299342,142.442621 48.436842,142.465618 48.436842,142.488614 48.573971,142.442621 48.619599,142.442621 48.786546,142.465618 48.786546,142.511611 48.983134,142.534608 49.02839,142.488614 49.148874,142.488614 49.224027,142.511611 49.224027,142.557605 49.359017,142.534608 49.463753,142.787574 49.463753,142.856564 49.508571,142.925555 49.508571,143.086533 49.493636,143.086533 49.583177,143.017542 49.65767,143.040539 49.702311,143.224514 49.702311,143.523474 49.717182,143.592464 49.761768,143.753442 49.880464,143.822433 49.954501,143.91442 49.954501,144.029405 49.998869,144.305367 50.057963,144.328364 50.013649,144.328364 49.969295,144.351361 49.954501,144.466345 49.761768,144.466345 49.687435,144.558333 49.583177,144.558333 49.523501,144.604327 49.284068,144.627323 49.284068,144.65032 49.209006,144.94928 48.998224,145.01827 48.907614,145.01827 48.81684,145.064264 48.695552,145.064264 48.573971,144.972277 48.467348,144.765305 48.421583,144.673317 48.421583,144.489342 48.452097,144.397355 48.528303,144.328364 48.665185,144.305367 48.756233,144.098395 48.892497,143.868427 49.073606,143.661455 49.088669,143.638458 49.103727,143.500477 49.103727,143.339499 49.058539,143.316502 48.95294,143.293505 48.81684,143.270508 48.801695,143.10953 48.589185,143.040539 48.436842,143.017542 48.360499,142.994546 48.314638,142.902558 48.115431,142.902558 48.053981,142.856564 47.961667,142.856564 47.761088,142.925555 47.652762,143.063536 47.575249,143.155524 47.528685,143.178521 47.513155,143.247511 47.435435,143.270508 47.388747,143.293505 47.388747,143.362496 47.185957,143.362496 47.123404,143.54647 47.045108,143.638458 47.029435,143.707449 46.982389,143.799436 46.85673,143.822433 46.730776,143.84543 46.525471,143.891424 46.509647,143.937417 46.382882,143.91442 46.303504,143.776439 46.096581,143.776439 46.04872,143.707449 45.93688,143.638458 45.856857,143.500477 45.808787,143.362496 45.808787,143.178521 45.872871,143.10953 45.968857,143.086533 46.112526,143.086533 46.239918,143.017542 46.335269,142.902558 46.398743,142.833567 46.398743,142.672589 46.351144,142.580602 46.287614,142.534608 46.096581,142.465618 45.952871,142.37363 45.824815,142.304639 45.648256,142.281643 45.632177,141.913693 45.696464,141.752715 45.712524,141.706721 45.760676,141.729718 45.872871,141.683724 45.904885,141.614733 46.000816,141.614733 46.04872,141.591736 46.22401,141.591736 46.27172,141.522746 46.4146,141.499749 46.525471))","code":"yuzhnosakhalinsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"88","name":"Южно-Сахалинск","time_zone":{"name":"Asia/Sakhalin","offset":660},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((126.620773 62.155043,126.666767 62.18725,126.758754 62.18725,126.919733 62.240852,127.126704 62.262267,127.149701 62.272968,127.149701 62.305049,127.310679 62.337097,127.632636 62.422389,128.023582 62.390433,128.069576 62.411741,128.253551 62.560473,128.48352 62.655695,128.989451 62.708464,129.472385 63.05439,129.518379 63.064809,129.58737 63.075225,129.702354 63.064809,129.909326 63.064809,130.622229 62.876695,130.691219 62.866209,131.105163 62.824226,131.519107 62.666256,131.542104 62.634561,131.611094 62.58166,131.818066 62.379773,132.209013 62.176518,132.415985 62.165783,132.576963 62.155043,132.622957 62.112047,132.645954 61.993493,132.530969 61.96108,132.484975 61.885314,132.369991 61.765875,132.301 61.624119,132.346994 61.514633,132.645954 61.437762,132.852925 61.382738,132.875922 61.382738,132.875922 61.360701,132.760938 61.28345,132.737941 61.183847,132.071032 60.81593,131.657088 60.658553,131.588097 60.624729,131.519107 60.624729,131.427119 60.658553,131.289138 60.714848,130.76021 61.039419,130.32327 61.206009,130.277276 61.206009,129.518379 61.217083,128.575507 61.228154,128.460523 61.28345,128.391532 61.360701,128.368535 61.503663,128.299545 61.547519,128.046579 61.547519,127.908598 61.613188,127.770617 61.635047,127.563645 61.711431,127.517651 61.73322,127.37967 61.765875,127.264686 61.820223,127.126704 61.831082,126.988723 61.885314,126.689764 61.982692,126.64377 61.993493,126.64377 62.036657,126.666767 62.06899,126.620773 62.155043))","code":"yakutsk","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"50","name":"Якутск","time_zone":{"name":"Asia/Yakutsk","offset":540},"type":"region","zoom_level":{"max":18,"min":9}},{"bounds":"POLYGON((39.669603 57.555712,39.715597 57.605028,39.715597 57.752576,39.807584 57.777108,40.014556 57.777108,40.014556 57.715745,40.037553 57.654277,40.083547 57.629661,40.198531 57.592706,40.198531 57.531029,40.152537 57.531029,40.106544 57.50633,40.06055 57.50633,40.06055 57.518682,39.6926 57.518682,39.669603 57.555712))","code":"yaroslavl","country_code":"ru","domain":"ru","flags":{"2gis_reviews":true,"flamp":true,"has_net_booklet":true,"metro":false,"parking_layer":true,"pedestrian_routing":true,"public_transport":true,"road_network":true,"traffic":true,"truck_graph":true},"id":"28","name":"Ярославль","time_zone":{"name":"Europe/Moscow","offset":180},"type":"region","zoom_level":{"max":18,"min":9}}]'), DG.config={host:null,port:3e3,defaultSkin:"dark",defaultLang:"ru",trafficLayerMinZoom:10,trafficLayerUpdateInterval:3e5,ppLink2gis:"{gislink}/directions/tab/{rsType}/points/{point}?m={center}%2F{zoom}&routeLink=true",openLink2gis:"{gislink}/?m={center}%2F{zoom}&openLink=true",ppnotLink:"http://2gis.{domain}/{projectCode}/center/{center}/zoom/{zoom}/routeTab/rsType/{rsType}/to/{point}╎{name}",photosLink:"http://2gis.{domain}/photos/{id}",poiLayerMinZoom:0,detectRetina:!1,webApiKey:"rubnkm7490",webApiVersion:"2.0",regionListFields:"items.bounds,items.zoom_level,items.time_zone,items.code,items.flags,items.country_code,items.domain,items.default_pos",firmInfoFields:"items.reviews,items.links,items.external_content",geoAdditionalFields:"items.geometry.selection,items.links,items.adm_div,items.address,items.floors,items.description",geoclickerCatalogApiKey:"ruregt3044",projectLeaveMaxZoom:16,flampUrl:"http://flamp.ru/r/",flampGoogleAnalytics:"utm_source=api2gis&utm_medium=api&utm_campaign=geoclicker",gaCode:"UA-38243181-2",gaName:"mapsapi2gis",protocol:"http:",baseUrl:"//maps.api.2gis.ru/2.0",tileServer:"//tile{s}.maps.2gis.com/tiles?x={x}&y={y}&z={z}&v=1&ts=online_sd",retinaTileServer:"//tile{s}.maps.2gis.com/tiles?x={x}&y={y}&z={z}&v=1&ts=online_hd",previewTileServer:"//tile{s}.maps.2gis.com/tiles?x={x}&y={y}&z={z}&v=1&size=64&ts=online_sd",previewRetinaTileServer:"//tile{s}.maps.2gis.com/tiles?x={x}&y={y}&z={z}&v=1&size=64&ts=online_hd",arabicTileServer:"//tile{s}.maps.2gis.com/tiles?x={x}&y={y}&z={z}&v=1&ts=online_sd_ar",arabicRetinaTileServer:"//tile{s}.maps.2gis.com/tiles?x={x}&y={y}&z={z}&v=1&ts=online_hd_ar",arabicPreviewTileServer:"//tile{s}.maps.2gis.com/tiles?x={x}&y={y}&z={z}&v=1&size=64&ts=online_sd_ar",arabicPreviewRetinaTileServer:"//tile{s}.maps.2gis.com/tiles?x={x}&y={y}&z={z}&v=1&size=64&ts=online_hd_ar",trafficTileServer:"//traffic{s}.maps.2gis.com/{projectCode}/traffic/{z}/{x}/{y}/speed/{period}/{timestampString}",retinaTrafficTileServer:"//traffic{s}.maps.2gis.com/{projectCode}/traffic/{z}/{x}/{y}/speed/{period}/retina/{timestampString}",trafficMetaServer:"//meta{s}.maps.2gis.com/{projectCode}/meta/{z}/{x}/{y}/graph_speed/{period}/{timestampString}",retinaTrafficMetaServer:"//meta{s}.maps.2gis.com/{projectCode}/meta/{z}/{x}/{y}/graph_speed/{period}/retina/{timestampString}",trafficTimestampServer:"//traffic{s}.maps.2gis.com/{projectCode}/meta/speed/time/",trafficScoreServer:"//traffic{s}.maps.2gis.com/{projectCode}/meta/score/0/",poiMetaServer:"//tile{s}.maps.2gis.com/poi?x={x}&y={y}&z={z}&v=1&ts=online_sd",retinaPoiMetaServer:"//tile{s}.maps.2gis.com/poi?x={x}&y={y}&z={z}&v=1&ts=online_hd",arabicPoiMetaServer:"//tile{s}.maps.2gis.com/poi?x={x}&y={y}&z={z}&v=1&ts=online_sd_ar",arabicRetinaPoiMetaServer:"//tile{s}.maps.2gis.com/poi?x={x}&y={y}&z={z}&v=1&ts=online_hd_ar",webApiServer:"//catalog.api.2gis.ru",googleAnalytics:"https://www.google-analytics.com/analytics.js",loadProjectListTimeout:5e3}}).call(this,_dereq_("_process"))},{"../../../vendors/baron":7,_process:6,"dustjs-helpers":2,"dustjs-linkedin":3,html5shiv:4,leaflet:5}],2:[function(t,e,i){!function(n,o){"function"==typeof define&&define.amd&&define.amd.dust===!0?define(["dust.core"],o):"object"==typeof i?e.exports=o(t("dustjs-linkedin")):o(n.dust)}(this,function(t){function e(e,i,n){n=n||"INFO",e=e?"{@"+e+"}: ":"",t.log(e+i,n)}function i(t){h[t]||(e(t,"Deprecation warning: "+t+" is deprecated and will be removed in a future version of dustjs-helpers","WARN"),e(null,"For help and a deprecation timeline, see https://github.com/linkedin/dustjs-helpers/wiki/Deprecated-Features#"+t.replace(/\W+/g,""),"WARN"),h[t]=!0)}function n(t){return t.stack.tail&&t.stack.tail.head&&"undefined"!=typeof t.stack.tail.head.__select__}function o(t){return n(t)&&t.get("__select__")}function r(t,e){var i,n=t.stack.head,o=t.rebase();t.stack&&t.stack.tail&&(o.stack=t.stack.tail);var r={isPending:!1,isResolved:!1,isDeferredComplete:!1,deferreds:[]};for(i in e)r[i]=e[i];return o.push({__select__:r}).push(n,t.stack.index,t.stack.of)}function s(t){var e,i;if(t.isDeferredPending=!0,t.deferreds.length)for(t.isDeferredComplete=!0,e=0,i=t.deferreds.length;ee}),gte:l("gte",function(t,e){return t>=e}),any:function(t,i,n,r){var s=o(i);return s?s.isDeferredComplete?e("any","Must not be nested inside {@any} or {@none} block","ERROR"):t=t.map(function(t){s.deferreds.push(function(){s.isResolved&&(t=t.render(n.block,i)),t.end()})}):e("any","Must be used inside a {@select} block","ERROR"),t},none:function(t,i,n,r){var s=o(i);return s?s.isDeferredComplete?e("none","Must not be nested inside {@any} or {@none} block","ERROR"):t=t.map(function(t){s.deferreds.push(function(){s.isResolved||(t=t.render(n.block,i)),t.end()})}):e("none","Must be used inside a {@select} block","ERROR"),t},size:function(e,i,n,o){var r,s,a=o.key;if(a=i.resolve(o.key),a&&a!==!0)if(t.isArray(a))r=a.length;else if(!isNaN(parseFloat(a))&&isFinite(a))r=a;else if("object"==typeof a){r=0;for(s in a)a.hasOwnProperty(s)&&r++}else r=(a+"").length;else r=0;return e.write(r)}};for(var _ in d)t.helpers[_]=d[_];return t})},{"dustjs-linkedin":3}],3:[function(_dereq_,module,exports){(function(process){!function(t,e){"function"==typeof define&&define.amd&&define.amd.dust===!0?define("dust.core",[],e):"object"==typeof exports?module.exports=e():t.dust=e()}(this,function(){function getTemplate(t,e){if(t)return"function"==typeof t&&t.template?t.template:dust.isTemplateFn(t)?t:e!==!1?dust.cache[t]:void 0}function load(t,e,i){if(!t)return e.setError(new Error("No template or template name provided to render"));var n=getTemplate(t,dust.config.cache);return n?n(e,Context.wrap(i,n.templateName)):dust.onLoad?e.map(function(e){function n(t,n){var r;if(t)return e.setError(t);if(r=getTemplate(n,!1)||getTemplate(o,dust.config.cache),!r){if(!dust.compile)return e.setError(new Error("Dust compiler not available"));r=dust.loadSource(dust.compile(n,o))}r(e,Context.wrap(i,r.templateName)).end()}var o=t;3===dust.onLoad.length?dust.onLoad(o,i.options,n):dust.onLoad(o,n)}):e.setError(new Error("Template Not Found: "+t))}function Context(t,e,i,n,o){void 0===t||t instanceof Stack||(t=new Stack(t)),this.stack=t,this.global=e,this.options=i,this.blocks=n,this.templateName=o,this._isContext=!0}function getWithResolvedData(t,e,i){return function(n){return t.push(n)._get(e,i)}}function Stack(t,e,i,n){this.tail=e,this.isObject=t&&"object"==typeof t,this.head=t,this.index=i,this.of=n}function Stub(t){this.head=new Chunk(this),this.callback=t,this.out=""}function Stream(){this.head=new Chunk(this)}function Chunk(t,e,i){this.root=t,this.next=e,this.data=[],this.flushable=!1,this.taps=i}function mapThenable(t,e,i,n,o){return t.map(function(t){e.then(function(e){try{o(t,e)}catch(i){dust.log(i,ERROR),t.setError(i)}},function(e){dust.log("Unhandled promise rejection in `"+i.getTemplateName()+"`",INFO),t.renderError(e,i,n).end()})})}function Tap(t,e){this.head=t,this.tail=e}var dust={version:"3.0.1"},NONE="NONE",ERROR="ERROR",WARN="WARN",INFO="INFO",DEBUG="DEBUG",EMPTY_FUNC=function(){};dust.config={whitespace:!1,amd:!1,cjs:!1,cache:!0},dust._aliases={write:"w",end:"e",map:"m",render:"r",reference:"f",section:"s",exists:"x",notexists:"nx",block:"b",partial:"p",helper:"h"},function(){var t,e,i={DEBUG:0,INFO:1,WARN:2,ERROR:3,NONE:4};"undefined"!=typeof console&&console.log?(t=console.log,e="function"==typeof t?function(){t.apply(console,arguments)}:function(){t(Array.prototype.slice.apply(arguments).join(" "))}):e=EMPTY_FUNC,dust.log=function(t,n){n=n||INFO,i[n]>=i[dust.debugLevel]&&(e("[DUST:"+n+"]",t),n===ERROR&&dust.debugLevel===DEBUG&&t instanceof Error&&t.stack&&e("[DUST:"+n+"]",t.stack))},dust.debugLevel=NONE,"undefined"!=typeof process&&process.env&&/\bdust\b/.test(process.env.DEBUG)&&(dust.debugLevel=DEBUG)}(),dust.helpers={},dust.cache={},dust.register=function(t,e){t&&(e.templateName=t,dust.config.cache!==!1&&(dust.cache[t]=e))},dust.render=function(t,e,i){var n=new Stub(i).head;try{load(t,n,e).end()}catch(o){n.setError(o)}},dust.stream=function(t,e){var i=new Stream,n=i.head;return dust.nextTick(function(){try{load(t,n,e).end()}catch(i){n.setError(i)}}),i},dust.loadSource=function(source){return eval(source)},Array.isArray?dust.isArray=Array.isArray:dust.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)},dust.nextTick=function(){return function(t){setTimeout(t,0)}}(),dust.isEmpty=function(t){return 0!==t&&(!(!dust.isArray(t)||t.length)||!t)},dust.isEmptyObject=function(t){var e;if(null===t)return!1;if(void 0===t)return!1;if(t.length>0)return!1;for(e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0},dust.isTemplateFn=function(t){return"function"==typeof t&&t.__dustBody},dust.isThenable=function(t){return t&&("object"==typeof t||"function"==typeof t)&&"function"==typeof t.then},dust.isNonThenableFunction=function(t){return"function"==typeof t&&!dust.isThenable(t)},dust.isStreamable=function(t){return t&&"function"==typeof t.on&&"function"==typeof t.pipe},dust.filter=function(t,e,i,n){var o,r,s,a;if(i)for(o=0,r=i.length;o0){for(s=e.stack&&e.stack.head||{},s.$len=r,o=0;o"']/,AMP=/&/g,LT=//g,QUOT=/\"/g,SQUOT=/\'/g;dust.escapeHtml=function(t){return"string"==typeof t||t&&"function"==typeof t.toString?("string"!=typeof t&&(t=t.toString()),HCHARS.test(t)?t.replace(AMP,"&").replace(LT,"<").replace(GT,">").replace(QUOT,""").replace(SQUOT,"'"):t):t};var BS=/\\/g,FS=/\//g,CR=/\r/g,LS=/\u2028/g,PS=/\u2029/g,NL=/\n/g,LF=/\f/g,SQ=/'/g,DQ=/"/g,TB=/\t/g;return dust.escapeJs=function(t){return"string"==typeof t?t.replace(BS,"\\\\").replace(FS,"\\/").replace(DQ,'\\"').replace(SQ,"\\'").replace(CR,"\\r").replace(LS,"\\u2028").replace(PS,"\\u2029").replace(NL,"\\n").replace(LF,"\\f").replace(TB,"\\t"):t},dust.escapeJSON=function(t){return JSON?JSON.stringify(t).replace(LS,"\\u2028").replace(PS,"\\u2029").replace(LT,"\\u003c"):(dust.log("JSON is undefined; could not escape `"+t+"`",WARN),t)},dust})}).call(this,_dereq_("_process"))},{_process:6}],4:[function(t,e,i){!function(t,i){function n(t,e){var i=t.createElement("p"),n=t.getElementsByTagName("head")[0]||t.documentElement;return i.innerHTML="x",n.insertBefore(i.lastChild,n.firstChild)}function o(){var t=b.elements;return"string"==typeof t?t.split(" "):t}function r(t,e){var i=b.elements;"string"!=typeof i&&(i=i.join(" ")),"string"!=typeof t&&(t=t.join(" ")),b.elements=i+" "+t,c(e)}function s(t){var e=y[t[g]];return e||(e={},v++,t[g]=v,y[v]=e),e}function a(t,e,n){if(e||(e=i),d)return e.createElement(t);n||(n=s(e));var o;return o=n.cache[t]?n.cache[t].cloneNode():f.test(t)?(n.cache[t]=n.createElem(t)).cloneNode():n.createElem(t),!o.canHaveChildren||m.test(t)||o.tagUrn?o:n.frag.appendChild(o)}function l(t,e){if(t||(t=i),d)return t.createDocumentFragment();e=e||s(t);for(var n=e.frag.cloneNode(),r=0,a=o(),l=a.length;r",h="hidden"in t,d=1==t.childNodes.length||function(){i.createElement("a");var t=i.createDocumentFragment();return"undefined"==typeof t.cloneNode||"undefined"==typeof t.createDocumentFragment||"undefined"==typeof t.createElement}()}catch(e){h=!0,d=!0}}();var b={elements:p.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:_,shivCSS:p.shivCSS!==!1,supportsUnknownElements:d,shivMethods:p.shivMethods!==!1,type:"default",shivDocument:c,createElement:a,createDocumentFragment:l,addElements:r};t.html5=b,c(i),"object"==typeof e&&e.exports&&(e.exports=b)}("undefined"!=typeof window?window:this,document)},{}],5:[function(t,e,i){function n(){var t=window.L;o.noConflict=function(){return window.L=t,this},window.L=o}var o={version:"1.0.1"};"object"==typeof e&&"object"==typeof e.exports?e.exports=o:"function"==typeof define&&define.amd&&define(o),"undefined"!=typeof window&&n(),o.Util={extend:function(t){var e,i,n,o;for(i=1,n=arguments.length;i1}}(),o.Point=function(t,e,i){this.x=i?Math.round(t):t,this.y=i?Math.round(e):e},o.Point.prototype={clone:function(){return new o.Point(this.x,this.y)},add:function(t){return this.clone()._add(o.point(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(o.point(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new o.Point(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new o.Point(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this; },ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},distanceTo:function(t){t=o.point(t);var e=t.x-this.x,i=t.y-this.y;return Math.sqrt(e*e+i*i)},equals:function(t){return t=o.point(t),t.x===this.x&&t.y===this.y},contains:function(t){return t=o.point(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+o.Util.formatNum(this.x)+", "+o.Util.formatNum(this.y)+")"}},o.point=function(t,e,i){return t instanceof o.Point?t:o.Util.isArray(t)?new o.Point(t[0],t[1]):void 0===t||null===t?t:"object"==typeof t&&"x"in t&&"y"in t?new o.Point(t.x,t.y):new o.Point(t,e,i)},o.Bounds=function(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=o.bounds(t);var e=this.min,i=this.max,n=t.min,r=t.max,s=r.x>=e.x&&n.x<=i.x,a=r.y>=e.y&&n.y<=i.y;return s&&a},overlaps:function(t){t=o.bounds(t);var e=this.min,i=this.max,n=t.min,r=t.max,s=r.x>e.x&&n.xe.y&&n.y0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(i)},addClass:function(t,e){if(void 0!==t.classList)for(var i=o.Util.splitWords(e),n=0,r=i.length;n=n.lat&&i.lat<=r.lat&&e.lng>=n.lng&&i.lng<=r.lng},intersects:function(t){t=o.latLngBounds(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),r=t.getNorthEast(),s=r.lat>=e.lat&&n.lat<=i.lat,a=r.lng>=e.lng&&n.lng<=i.lng;return s&&a},overlaps:function(t){t=o.latLngBounds(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),r=t.getNorthEast(),s=r.lat>e.lat&&n.late.lng&&n.lngthis.options.maxZoom?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),n=this._limitCenter(i,this._zoom,o.latLngBounds(t));return i.equals(n)||this.panTo(n,e),this._enforcingBounds=!1,this},invalidateSize:function(t){if(!this._loaded)return this;t=o.extend({animate:!1,pan:!0},t===!0?{animate:!0}:t);var e=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var i=this.getSize(),n=e.divideBy(2).round(),r=i.divideBy(2).round(),s=n.subtract(r);return s.x||s.y?(t.animate&&t.pan?this.panBy(s):(t.pan&&this._rawPanBy(s),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o.bind(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},addHandler:function(t,e){if(!e)return this;var i=this[t]=new e(this);return this._handlers.push(i),this.options[t]&&i.enable(),this},remove:function(){if(this._initEvents(!0),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}o.DomUtil.remove(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._clearHandlers(),this._loaded&&this.fire("unload");for(var e in this._layers)this._layers[e].remove();return this},createPane:function(t,e){var i="leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),n=o.DomUtil.create("div",i,e||this._mapPane);return t&&(this._panes[t]=n),n},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds(),e=this.unproject(t.getBottomLeft()),i=this.unproject(t.getTopRight());return new o.LatLngBounds(e,i)},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=o.latLngBounds(t),i=o.point(i||[0,0]);var n=this.getZoom()||0,r=this.getMinZoom(),s=this.getMaxZoom(),a=t.getNorthWest(),l=t.getSouthEast(),u=this.getSize().subtract(i),c=this.project(l,n).subtract(this.project(a,n)),h=o.Browser.any3d?this.options.zoomSnap:1,d=Math.min(u.x/c.x,u.y/c.y);return n=this.getScaleZoom(d,n),h&&(n=Math.round(n/(h/100))*(h/100),n=e?Math.ceil(n/h)*h:Math.floor(n/h)*h),Math.max(r,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new o.Point(this._container.clientWidth,this._container.clientHeight),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var i=this._getTopLeftPoint(t,e);return new o.Bounds(i,i.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs;e=void 0===e?this._zoom:e;var n=i.zoom(t*i.scale(e));return isNaN(n)?1/0:n},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(o.latLng(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(o.point(t),e)},layerPointToLatLng:function(t){var e=o.point(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){var e=this.project(o.latLng(t))._round();return e._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(o.latLng(t))},distance:function(t,e){return this.options.crs.distance(o.latLng(t),o.latLng(e))},containerPointToLayerPoint:function(t){return o.point(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return o.point(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(o.point(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(o.latLng(t)))},mouseEventToContainerPoint:function(t){return o.DomEvent.getMousePosition(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=o.DomUtil.get(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");o.DomEvent.addListener(e,"scroll",this._onScroll,this),this._containerId=o.Util.stamp(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&&o.Browser.any3d,o.DomUtil.addClass(t,"leaflet-container"+(o.Browser.touch?" leaflet-touch":"")+(o.Browser.retina?" leaflet-retina":"")+(o.Browser.ielt9?" leaflet-oldie":"")+(o.Browser.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=o.DomUtil.getStyle(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),o.DomUtil.setPosition(this._mapPane,new o.Point(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(o.DomUtil.addClass(t.markerPane,"leaflet-zoom-hide"),o.DomUtil.addClass(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){o.DomUtil.setPosition(this._mapPane,new o.Point(0,0));var i=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var n=this._zoom!==e;this._moveStart(n)._move(t,e)._moveEnd(n),this.fire("viewreset"),i&&this.fire("load")},_moveStart:function(t){return t&&this.fire("zoomstart"),this.fire("movestart")},_move:function(t,e,i){void 0===e&&(e=this._zoom);var n=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(n||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return o.Util.cancelAnimFrame(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){o.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){if(o.DomEvent){this._targets={},this._targets[o.stamp(this._container)]=this;var e=t?"off":"on";o.DomEvent[e](this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress",this._handleDOMEvent,this),this.options.trackResize&&o.DomEvent[e](window,"resize",this._onResize,this),o.Browser.any3d&&this.options.transform3DLimit&&this[e]("moveend",this._onMoveEnd)}},_onResize:function(){o.Util.cancelAnimFrame(this._resizeRequest),this._resizeRequest=o.Util.requestAnimFrame(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],r="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,a=!1;s;){if(i=this._targets[o.stamp(s)],i&&("click"===e||"preclick"===e)&&!t._simulated&&this._draggableMoved(i)){a=!0;break}if(i&&i.listens(e,!0)){if(r&&!o.DomEvent._isExternalTarget(s,t))break;if(n.push(i),r)break}if(s===this._container)break;s=s.parentNode}return n.length||a||r||!o.DomEvent._isExternalTarget(s,t)||(n=[this]),n},_handleDOMEvent:function(t){if(this._loaded&&!o.DomEvent._skipped(t)){var e="keypress"===t.type&&13===t.keyCode?"click":t.type;"mousedown"===e&&o.DomUtil.preventOutline(t.target||t.srcElement),this._fireDOMEvent(t,e)}},_fireDOMEvent:function(t,e,i){if("click"===t.type){var n=o.Util.extend({},t);n.type="preclick",this._fireDOMEvent(n,n.type,i)}if(!t._stopped&&(i=(i||[]).concat(this._findEventTargets(t,e)),i.length)){var r=i[0];"contextmenu"===e&&r.listens(e,!0)&&o.DomEvent.preventDefault(t);var s={originalEvent:t};if("keypress"!==t.type){var a=r instanceof o.Marker;s.containerPoint=a?this.latLngToContainerPoint(r.getLatLng()):this.mouseEventToContainerPoint(t),s.layerPoint=this.containerPointToLayerPoint(s.containerPoint),s.latlng=a?r.getLatLng():this.layerPointToLatLng(s.layerPoint)}for(var l=0;l0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=o.Browser.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))}}),o.map=function(t,e){return new o.Map(t,e)},o.Layer=o.Evented.extend({options:{pane:"overlayPane",nonBubblingEvents:[]},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[o.stamp(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[o.stamp(t)],this},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var i=this.getEvents();e.on(i,this),this.once("remove",function(){e.off(i,this)},this)}this.onAdd(e),this.getAttribution&&this._map.attributionControl&&this._map.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),e.fire("layeradd",{layer:this})}}}),o.Map.include({addLayer:function(t){var e=o.stamp(t);return this._layers[e]?this:(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t),this)},removeLayer:function(t){var e=o.stamp(t);return this._layers[e]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&o.stamp(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){t=t?o.Util.isArray(t)?t:[t]:[];for(var e=0,i=t.length;e1e-7;u++)e=s*Math.sin(l),e=Math.pow((1-e)/(1+e),s/2),c=Math.PI/2-2*Math.atan(a*e)-l,l+=c;return new o.LatLng(l*i,t.x*i/n)}},o.CRS.EPSG3395=o.extend({},o.CRS.Earth,{code:"EPSG:3395",projection:o.Projection.Mercator,transformation:function(){var t=.5/(Math.PI*o.Projection.Mercator.R);return new o.Transformation(t,.5,(-t),.5)}()}),o.GridLayer=o.Layer.extend({options:{tileSize:256,opacity:1,updateWhenIdle:o.Browser.mobile,updateWhenZooming:!0,updateInterval:200,attribution:null,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){o.setOptions(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView(),this._update()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),o.DomUtil.remove(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=null},bringToFront:function(){return this._map&&(o.DomUtil.toFront(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(o.DomUtil.toBack(this._container),this._setAutoZIndex(Math.min)),this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){return this._map&&(this._removeAllTiles(),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=o.Util.throttle(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return document.createElement("div")},getTileSize:function(){var t=this.options.tileSize;return t instanceof o.Point?t:new o.Point(t,t)},_updateZIndex:function(){this._container&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var e,i=this.getPane().children,n=-t(-(1/0),1/0),o=0,r=i.length;othis.options.maxZoom||in&&this._retainParent(r,s,a,n))},_retainChildren:function(t,e,i,n){for(var r=2*t;r<2*t+2;r++)for(var s=2*e;s<2*e+2;s++){var a=new o.Point(r,s);a.z=i+1;var l=this._tileCoordsToKey(a),u=this._tiles[l];u&&u.active?u.retain=!0:(u&&u.loaded&&(u.retain=!0),i+1this.options.maxZoom||void 0!==this.options.minZoom&&o1)return void this._setView(t,i);for(var d=r.min.y;d<=r.max.y;d++)for(var _=r.min.x;_<=r.max.x;_++){var p=new o.Point(_,d);if(p.z=this._tileZoom,this._isValidTile(p)){var m=this._tiles[this._tileCoordsToKey(p)];m?m.current=!0:a.push(p)}}if(a.sort(function(t,e){return t.distanceTo(s)-e.distanceTo(s)}),0!==a.length){this._loading||(this._loading=!0,this.fire("loading"));var f=document.createDocumentFragment();for(_=0;_i.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}if(!this.options.bounds)return!0;var n=this._tileCoordsToBounds(t);return o.latLngBounds(this.options.bounds).overlaps(n)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToBounds:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),r=n.add(i),s=e.unproject(n,t.z),a=e.unproject(r,t.z);return this.options.noWrap||(s=e.wrapLatLng(s),a=e.wrapLatLng(a)),new o.LatLngBounds(s,a)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),i=new o.Point((+e[0]),(+e[1]));return i.z=+e[2],i},_removeTile:function(t){var e=this._tiles[t];e&&(o.DomUtil.remove(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){o.DomUtil.addClass(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=o.Util.falseFn,t.onmousemove=o.Util.falseFn,o.Browser.ielt9&&this.options.opacity<1&&o.DomUtil.setOpacity(t,this.options.opacity),o.Browser.android&&!o.Browser.android23&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),r=this.createTile(this._wrapCoords(t),o.bind(this._tileReady,this,t));this._initTile(r),this.createTile.length<2&&o.Util.requestAnimFrame(o.bind(this._tileReady,this,t,null,r)),o.DomUtil.setPosition(r,i),this._tiles[n]={el:r,coords:t,current:!0},e.appendChild(r),this.fire("tileloadstart",{tile:r,coords:t})},_tileReady:function(t,e,i){if(this._map){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);i=this._tiles[n],i&&(i.loaded=+new Date,this._map._fadeAnimated?(o.DomUtil.setOpacity(i.el,0),o.Util.cancelAnimFrame(this._fadeFrame),this._fadeFrame=o.Util.requestAnimFrame(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(o.DomUtil.addClass(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),o.Browser.ielt9||!this._map._fadeAnimated?o.Util.requestAnimFrame(this._pruneTiles,this):setTimeout(o.bind(this._pruneTiles,this),250)))}},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new o.Point(this._wrapX?o.Util.wrapNum(t.x,this._wrapX):t.x,this._wrapY?o.Util.wrapNum(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new o.Bounds(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}}),o.gridLayer=function(t){return new o.GridLayer(t)},o.TileLayer=o.GridLayer.extend({options:{minZoom:0,maxZoom:18,maxNativeZoom:null,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,e){this._url=t,e=o.setOptions(this,e),e.detectRetina&&o.Browser.retina&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),o.Browser.android||this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return o.DomEvent.on(i,"load",o.bind(this._tileOnLoad,this,e,i)),o.DomEvent.on(i,"error",o.bind(this._tileOnError,this,e,i)),this.options.crossOrigin&&(i.crossOrigin=""),i.alt="",i.src=this.getTileUrl(t),i},getTileUrl:function(t){var e={r:o.Browser.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var i=this._globalTileRange.max.y-t.y;this.options.tms&&(e.y=i),e["-y"]=i}return o.Util.template(this._url,o.extend(e,this.options))},_tileOnLoad:function(t,e){o.Browser.ielt9?setTimeout(o.bind(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&(e.src=n),t(i,e)},getTileSize:function(){var t=this._map,e=o.GridLayer.prototype.getTileSize.call(this),i=this._tileZoom+this.options.zoomOffset,n=this.options.maxNativeZoom;return null!==n&&i>n?e.divideBy(t.getZoomScale(n,i)).round():e},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this.options,e=this._tileZoom;return t.zoomReverse&&(e=t.maxZoom-e),e+=t.zoomOffset,null!==t.maxNativeZoom?Math.min(e,t.maxNativeZoom):e},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&(e=this._tiles[t].el,e.onload=o.Util.falseFn,e.onerror=o.Util.falseFn,e.complete||(e.src=o.Util.emptyImageUrl,o.DomUtil.remove(e)))}}),o.tileLayer=function(t,e){return new o.TileLayer(t,e)},o.TileLayer.WMS=o.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var i=o.extend({},this.defaultWmsParams);for(var n in e)n in this.options||(i[n]=e[n]);e=o.setOptions(this,e),i.width=i.height=e.tileSize*(e.detectRetina&&o.Browser.retina?2:1),this.wmsParams=i},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,o.TileLayer.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToBounds(t),i=this._crs.project(e.getNorthWest()),n=this._crs.project(e.getSouthEast()),r=(this._wmsVersion>=1.3&&this._crs===o.CRS.EPSG4326?[n.y,i.x,i.y,n.x]:[i.x,n.y,n.x,i.y]).join(","),s=o.TileLayer.prototype.getTileUrl.call(this,t);return s+o.Util.getParamString(this.wmsParams,s,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,e){return o.extend(this.wmsParams,t),e||this.redraw(),this}}),o.tileLayer.wms=function(t,e){return new o.TileLayer.WMS(t,e)},o.ImageOverlay=o.Layer.extend({options:{opacity:1,alt:"",interactive:!1,attribution:null,crossOrigin:!1},initialize:function(t,e,i){this._url=t,this._bounds=o.latLngBounds(e),o.setOptions(this,i)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(o.DomUtil.addClass(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){o.DomUtil.remove(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&o.DomUtil.toFront(this._image),this},bringToBack:function(){return this._map&&o.DomUtil.toBack(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=t,this._map&&this._reset(),this},getAttribution:function(){return this.options.attribution},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t=this._image=o.DomUtil.create("img","leaflet-image-layer "+(this._zoomAnimated?"leaflet-zoom-animated":""));t.onselectstart=o.Util.falseFn,t.onmousemove=o.Util.falseFn,t.onload=o.bind(this.fire,this,"load"),this.options.crossOrigin&&(t.crossOrigin=""),t.src=this._url,t.alt=this.options.alt},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),i=this._map._latLngToNewLayerPoint(this._bounds.getNorthWest(),t.zoom,t.center);o.DomUtil.setTransform(this._image,i,e)},_reset:function(){var t=this._image,e=new o.Bounds(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize();o.DomUtil.setPosition(t,e.min),t.style.width=i.x+"px",t.style.height=i.y+"px"},_updateOpacity:function(){o.DomUtil.setOpacity(this._image,this.options.opacity)}}),o.imageOverlay=function(t,e,i){return new o.ImageOverlay(t,e,i)},o.Icon=o.Class.extend({initialize:function(t){o.setOptions(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,e){var i=this._getIconUrl(t);if(!i){if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null}var n=this._createImg(i,e&&"IMG"===e.tagName?e:null);return this._setIconStyles(n,t),n},_setIconStyles:function(t,e){var i=this.options,n=i[e+"Size"];"number"==typeof n&&(n=[n,n]);var r=o.point(n),s=o.point("shadow"===e&&i.shadowAnchor||i.iconAnchor||r&&r.divideBy(2,!0));t.className="leaflet-marker-"+e+" "+(i.className||""),s&&(t.style.marginLeft=-s.x+"px",t.style.marginTop=-s.y+"px"),r&&(t.style.width=r.x+"px",t.style.height=r.y+"px")},_createImg:function(t,e){return e=e||document.createElement("img"),e.src=t,e},_getIconUrl:function(t){return o.Browser.retina&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}}),o.icon=function(t){return new o.Icon(t)},o.Icon.Default=o.Icon.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return o.Icon.Default.imagePath||(o.Icon.Default.imagePath=this._detectIconPath()),(this.options.imagePath||o.Icon.Default.imagePath)+o.Icon.prototype._getIconUrl.call(this,t)},_detectIconPath:function(){var t=o.DomUtil.create("div","leaflet-default-icon-path",document.body),e=o.DomUtil.getStyle(t,"background-image")||o.DomUtil.getStyle(t,"backgroundImage");return document.body.removeChild(t),0===e.indexOf("url")?e.replace(/^url\([\"\']?/,"").replace(/marker-icon\.png[\"\']?\)$/,""):""}}),o.Marker=o.Layer.extend({options:{icon:new o.Icon.Default,interactive:!0,draggable:!1,keyboard:!0,title:"",alt:"",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",nonBubblingEvents:["click","dblclick","mouseover","mouseout","contextmenu"]},initialize:function(t,e){o.setOptions(this,e),this._latlng=o.latLng(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var e=this._latlng;return this._latlng=o.latLng(t),this.update(),this.fire("move",{oldLatLng:e,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){if(this._icon){var t=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(t)}return this},_initIcon:function(){var t=this.options,e="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),i=t.icon.createIcon(this._icon),n=!1;i!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(i.title=t.title),t.alt&&(i.alt=t.alt)),o.DomUtil.addClass(i,e),t.keyboard&&(i.tabIndex="0"),this._icon=i,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex});var r=t.icon.createShadow(this._shadow),s=!1;r!==this._shadow&&(this._removeShadow(),s=!0),r&&o.DomUtil.addClass(r,e),this._shadow=r,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),r&&s&&this.getPane("shadowPane").appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),o.DomUtil.remove(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&o.DomUtil.remove(this._shadow),this._shadow=null},_setPos:function(t){o.DomUtil.setPosition(this._icon,t),this._shadow&&o.DomUtil.setPosition(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon.style.zIndex=this._zIndex+t},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(e)},_initInteraction:function(){if(this.options.interactive&&(o.DomUtil.addClass(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),o.Handler.MarkerDrag)){var t=this.options.draggable;this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new o.Handler.MarkerDrag(this),t&&this.dragging.enable()}},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;o.DomUtil.setOpacity(this._icon,t),this._shadow&&o.DomUtil.setOpacity(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)}}),o.marker=function(t,e){return new o.Marker(t,e)},o.DivIcon=o.Icon.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var e=t&&"DIV"===t.tagName?t:document.createElement("div"),i=this.options;if(e.innerHTML=i.html!==!1?i.html:"",i.bgPos){var n=o.point(i.bgPos);e.style.backgroundPosition=-n.x+"px "+-n.y+"px"}return this._setIconStyles(e,"icon"),e},createShadow:function(){return null}}),o.divIcon=function(t){return new o.DivIcon(t)},o.DivOverlay=o.Layer.extend({options:{offset:[0,7],className:"",pane:"popupPane"},initialize:function(t,e){o.setOptions(this,t),this._source=e},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&o.DomUtil.setOpacity(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&o.DomUtil.setOpacity(this._container,1),this.bringToFront()},onRemove:function(t){t._fadeAnimated?(o.DomUtil.setOpacity(this._container,0),this._removeTimeout=setTimeout(o.bind(o.DomUtil.remove,o.DomUtil,this._container),200)):o.DomUtil.remove(this._container)},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=o.latLng(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&o.DomUtil.toFront(this._container),this},bringToBack:function(){return this._map&&o.DomUtil.toBack(this._container),this},_updateContent:function(){if(this._content){var t=this._contentNode,e="function"==typeof this._content?this._content(this._source||this):this._content;if("string"==typeof e)t.innerHTML=e;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(e)}this.fire("contentupdate")}},_updatePosition:function(){if(this._map){var t=this._map.latLngToLayerPoint(this._latlng),e=o.point(this.options.offset),i=this._getAnchor();this._zoomAnimated?o.DomUtil.setPosition(this._container,t.add(i)):e=e.add(t).add(i);var n=this._containerBottom=-e.y,r=this._containerLeft=-Math.round(this._containerWidth/2)+e.x;this._container.style.bottom=n+"px",this._container.style.left=r+"px"}},_getAnchor:function(){return[0,0]}}),o.Popup=o.DivOverlay.extend({options:{maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,className:""},openOn:function(t){return t.openPopup(this),this},onAdd:function(t){o.DivOverlay.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof o.Path||this._source.on("preclick",o.DomEvent.stopPropagation))},onRemove:function(t){o.DivOverlay.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof o.Path||this._source.off("preclick",o.DomEvent.stopPropagation))},getEvents:function(){var t=o.DivOverlay.prototype.getEvents.call(this);return("closeOnClick"in this.options?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this._close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_close:function(){this._map&&this._map.closePopup(this)},_initLayout:function(){var t="leaflet-popup",e=this._container=o.DomUtil.create("div",t+" "+(this.options.className||"")+" leaflet-zoom-animated");if(this.options.closeButton){var i=this._closeButton=o.DomUtil.create("a",t+"-close-button",e);i.href="#close",i.innerHTML="×",o.DomEvent.on(i,"click",this._onCloseButtonClick,this)}var n=this._wrapper=o.DomUtil.create("div",t+"-content-wrapper",e);this._contentNode=o.DomUtil.create("div",t+"-content",n),o.DomEvent.disableClickPropagation(n).disableScrollPropagation(this._contentNode).on(n,"contextmenu",o.DomEvent.stopPropagation),this._tipContainer=o.DomUtil.create("div",t+"-tip-container",e),this._tip=o.DomUtil.create("div",t+"-tip",this._tipContainer)},_updateLayout:function(){var t=this._contentNode,e=t.style;e.width="",e.whiteSpace="nowrap";var i=t.offsetWidth;i=Math.min(i,this.options.maxWidth),i=Math.max(i,this.options.minWidth),e.width=i+1+"px",e.whiteSpace="",e.height="";var n=t.offsetHeight,r=this.options.maxHeight,s="leaflet-popup-scrolled";r&&n>r?(e.height=r+"px",o.DomUtil.addClass(t,s)):o.DomUtil.removeClass(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),i=this._getAnchor();o.DomUtil.setPosition(this._container,e.add(i))},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress)){var t=this._map,e=parseInt(o.DomUtil.getStyle(this._container,"marginBottom"),10)||0,i=this._container.offsetHeight+e,n=this._containerWidth,r=new o.Point(this._containerLeft,-i-this._containerBottom);r._add(o.DomUtil.getPosition(this._container));var s=t.layerPointToContainerPoint(r),a=o.point(this.options.autoPanPadding),l=o.point(this.options.autoPanPaddingTopLeft||a),u=o.point(this.options.autoPanPaddingBottomRight||a),c=t.getSize(),h=0,d=0;s.x+n+u.x>c.x&&(h=s.x+n-c.x+u.x),s.x-h-l.x<0&&(h=s.x-l.x),s.y+i+u.y>c.y&&(d=s.y+i-c.y+u.y),s.y-d-l.y<0&&(d=s.y-l.y),(h||d)&&t.fire("autopanstart").panBy([h,d])}},_onCloseButtonClick:function(t){this._close(),o.DomEvent.stop(t)},_getAnchor:function(){return o.point(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),o.popup=function(t,e){return new o.Popup(t,e)},o.Map.mergeOptions({closePopupOnClick:!0}),o.Map.include({openPopup:function(t,e,i){return t instanceof o.Popup||(t=new o.Popup(i).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),o.Layer.include({bindPopup:function(t,e){return t instanceof o.Popup?(o.setOptions(t,e),this._popup=t,t._source=this):(this._popup&&!e||(this._popup=new o.Popup(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,e){if(t instanceof o.Layer||(e=t,t=this),t instanceof o.FeatureGroup)for(var i in this._layers){t=this._layers[i];break}return e||(e=t.getCenter?t.getCenter():t.getLatLng()),this._popup&&this._map&&(this._popup._source=t,this._popup.update(),this._map.openPopup(this._popup,e)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e=t.layer||t.target;if(this._popup&&this._map)return o.DomEvent.stop(t),e instanceof o.Path?void this.openPopup(t.layer||t.target,t.latlng):void(this._map.hasLayer(this._popup)&&this._popup._source===e?this.closePopup():this.openPopup(e,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)}}),o.Marker.include({_getPopupAnchor:function(){return this.options.icon.options.popupAnchor||[0,0]}}),o.Tooltip=o.DivOverlay.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){o.DivOverlay.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){o.DivOverlay.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=o.DivOverlay.prototype.getEvents.call(this);return o.Browser.touch&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip",e=t+" "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=o.DomUtil.create("div",e)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e=this._map,i=this._container,n=e.latLngToContainerPoint(e.getCenter()),r=e.layerPointToContainerPoint(t),s=this.options.direction,a=i.offsetWidth,l=i.offsetHeight,u=o.point(this.options.offset),c=this._getAnchor();"top"===s?t=t.add(o.point(-a/2+u.x,-l+u.y+c.y)):"bottom"===s?t=t.subtract(o.point(a/2-u.x,-u.y)):"center"===s?t=t.subtract(o.point(a/2+u.x,l/2-c.y+u.y)):"right"===s||"auto"===s&&r.xl&&(r=s,l=a);l>i&&(e[r]=1,this._simplifyDPStep(t,e,i,n,r),this._simplifyDPStep(t,e,i,r,o))},_reducePoints:function(t,e){for(var i=[t[0]],n=1,o=0,r=t.length;ne&&(i.push(t[n]),o=n);return oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i},_sqDist:function(t,e){var i=e.x-t.x,n=e.y-t.y;return i*i+n*n},_sqClosestPointOnSegment:function(t,e,i,n){var r,s=e.x,a=e.y,l=i.x-s,u=i.y-a,c=l*l+u*u;return c>0&&(r=((t.x-s)*l+(t.y-a)*u)/c,r>1?(s=i.x,a=i.y):r>0&&(s+=l*r,a+=u*r)),l=t.x-s,u=t.y-a,n?l*l+u*u:new o.Point(s,a)}},o.Polyline=o.Path.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,e){o.setOptions(this,e),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var e,i,n=1/0,r=null,s=o.LineUtil._sqClosestPointOnSegment,a=0,l=this._parts.length;ae)return s=(n-e)/i,this._map.layerPointToLatLng([r.x-s*(r.x-o.x),r.y-s*(r.y-o.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=o.latLng(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new o.LatLngBounds,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return o.Polyline._flat(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=o.Polyline._flat(t),n=0,r=t.length;n=2&&e[0]instanceof o.LatLng&&e[0].equals(e[i-1])&&e.pop(),e},_setLatLngs:function(t){o.Polyline.prototype._setLatLngs.call(this,t),o.Polyline._flat(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return o.Polyline._flat(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,i=new o.Point(e,e);if(t=new o.Bounds(t.min.subtract(i),t.max.add(i)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t)){if(this.options.noClip)return void(this._parts=this._rings);for(var n,r=0,s=this._rings.length;r';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(i){return!1}}(),o.SVG.include(o.Browser.vml?{_initContainer:function(){this._container=o.DomUtil.create("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(o.Renderer.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=o.SVG.create("shape");o.DomUtil.addClass(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=o.SVG.create("path"),e.appendChild(t._path),this._updateStyle(t)},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;o.DomUtil.remove(e),t.removeInteractiveTarget(e)},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,r=t._container;r.stroked=!!n.stroke,r.filled=!!n.fill,n.stroke?(e||(e=t._stroke=o.SVG.create("stroke")),r.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=o.Util.isArray(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(r.removeChild(e),t._stroke=null),n.fill?(i||(i=t._fill=o.SVG.create("fill")),r.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(r.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){o.DomUtil.toFront(t._container)},_bringToBack:function(t){o.DomUtil.toBack(t._container)}}:{}),o.Browser.vml&&(o.SVG.create=function(){try{return document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return document.createElement("')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}()),o.Canvas=o.Renderer.extend({onAdd:function(){o.Renderer.prototype.onAdd.call(this),this._layers=this._layers||{},this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");o.DomEvent.on(t,"mousemove",o.Util.throttle(this._onMouseMove,32,this),this).on(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this).on(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_update:function(){if(!this._map._animatingZoom||!this._bounds){this._drawnLayers={},o.Renderer.prototype._update.call(this);var t=this._bounds,e=this._container,i=t.getSize(),n=o.Browser.retina?2:1;o.DomUtil.setPosition(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",o.Browser.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_initPath:function(t){this._updateDashArray(t),this._layers[o.stamp(t)]=t},_addPath:o.Util.falseFn,_removePath:function(t){t._removed=!0,this._requestRedraw(t)},_updatePath:function(t){this._redrawBounds=t._pxBounds,this._draw(!0),t._project(),t._update(),this._draw(),this._redrawBounds=null},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if(t.options.dashArray){var e,i=t.options.dashArray.split(","),n=[];for(e=0;et.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(c=!c);return c||o.Polyline.prototype._containsPoint.call(this,t,!0)},o.CircleMarker.prototype._containsPoint=function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()},o.GeoJSON=o.FeatureGroup.extend({initialize:function(t,e){o.setOptions(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,r=o.Util.isArray(t)?t:t.features;if(r){for(e=0,i=r.length;e100&&n<500||t.target._simulatedClick&&!t._simulated?void o.DomEvent.stop(t):(o.DomEvent._lastClick=i,void e(t))}},o.DomEvent.addListener=o.DomEvent.on,o.DomEvent.removeListener=o.DomEvent.off,o.Draggable=o.Evented.extend({options:{clickTolerance:3},statics:{START:o.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(t,e,i){this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(o.DomEvent.on(this._dragStartTarget,o.Draggable.START.join(" "),this._onDown,this), this._enabled=!0)},disable:function(){this._enabled&&(o.DomEvent.off(this._dragStartTarget,o.Draggable.START.join(" "),this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!o.DomUtil.hasClass(this._element,"leaflet-zoom-anim")&&!(o.Draggable._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches)&&this._enabled&&(o.Draggable._dragging=!0,this._preventOutline&&o.DomUtil.preventOutline(this._element),o.DomUtil.disableImageDrag(),o.DomUtil.disableTextSelection(),!this._moving))){this.fire("down");var e=t.touches?t.touches[0]:t;this._startPoint=new o.Point(e.clientX,e.clientY),o.DomEvent.on(document,o.Draggable.MOVE[t.type],this._onMove,this).on(document,o.Draggable.END[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled){if(t.touches&&t.touches.length>1)return void(this._moved=!0);var e=t.touches&&1===t.touches.length?t.touches[0]:t,i=new o.Point(e.clientX,e.clientY),n=i.subtract(this._startPoint);(n.x||n.y)&&(Math.abs(n.x)+Math.abs(n.y)50&&(this._positions.shift(),this._times.shift())}this._map.fire("move",t).fire("drag",t)},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,r=(n+e+i)%t-e-i,s=Math.abs(o+i)0?r:-r))-e;this._delta=0,this._startTime=null,s&&("center"===t.options.scrollWheelZoom?t.setZoom(e+s):t.setZoomAround(this._lastMousePos,e+s))}}),o.Map.addInitHook("addHandler","scrollWheelZoom",o.Map.ScrollWheelZoom),o.PosAnimation=o.Evented.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=o.DomUtil.getPosition(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=o.Util.requestAnimFrame(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;e=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(this._animatingZoom)return!0;if(i=i||{},!this._zoomAnimated||i.animate===!1||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),r=this._getCenterOffset(t)._divideBy(1-1/n);return!(i.animate!==!0&&!this.getSize().contains(r))&&(o.Util.requestAnimFrame(function(){this._moveStart(!0)._animateZoom(t,e,!0)},this),!0)},_animateZoom:function(t,e,i,n){i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,o.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),setTimeout(o.bind(this._onZoomTransitionEnd,this),250)},_onZoomTransitionEnd:function(){this._animatingZoom&&(o.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),o.Util.requestAnimFrame(function(){this._moveEnd(!0)},this))}}:{}),o.Map.include({flyTo:function(t,e,i){function n(t){var e=t?-1:1,i=t?g:f,n=g*g-f*f+e*b*b*v*v,o=2*i*b*v,r=n/o,s=Math.sqrt(r*r+1)-r,a=s<1e-9?-18:Math.log(s);return a}function r(t){return(Math.exp(t)-Math.exp(-t))/2}function s(t){return(Math.exp(t)+Math.exp(-t))/2}function a(t){return r(t)/s(t)}function l(t){return f*(s(w)/s(w+y*t))}function u(t){return f*(s(w)*a(w+y*t)-r(w))/b}function c(t){return 1-Math.pow(1-t,1.5)}function h(){var i=(Date.now()-k)/L,n=c(i)*D;i<=1?(this._flyToFrame=o.Util.requestAnimFrame(h,this),this._move(this.unproject(d.add(_.subtract(d).multiplyBy(u(n)/v)),m),this.getScaleZoom(f/l(n),m),{flyTo:!0})):this._move(t,e)._moveEnd(!0)}if(i=i||{},i.animate===!1||!o.Browser.any3d)return this.setView(t,e,i);this._stop();var d=this.project(this.getCenter()),_=this.project(t),p=this.getSize(),m=this._zoom;t=o.latLng(t),e=void 0===e?m:e;var f=Math.max(p.x,p.y),g=f*this.getZoomScale(m,e),v=_.distanceTo(d)||1,y=1.42,b=y*y,w=n(0),k=Date.now(),D=(n(1)-w)/y,L=i.duration?1e3*i.duration:1e3*D*.8;return this._moveStart(!0),h.call(this),this},flyToBounds:function(t,e){var i=this._getBoundsCenterZoom(t,e);return this.flyTo(i.center,i.zoom,e)}}),o.extend(o.DomEvent,{_touchstart:o.Browser.msPointer?"MSPointerDown":o.Browser.pointer?"pointerdown":"touchstart",_touchend:o.Browser.msPointer?"MSPointerUp":o.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(t,e,i){function n(t){var e;if(e=o.Browser.pointer?o.DomEvent._pointersCount:t.touches.length,!(e>1)){var i=Date.now(),n=i-(s||i);a=t.touches?t.touches[0]:t,l=n>0&&n<=u,s=i}}function r(){if(l&&!a.cancelBubble){if(o.Browser.pointer){var t,i,n={};for(i in a)t=a[i],n[i]=t&&t.bind?t.bind(a):t;a=n}a.type="dblclick",e(a),s=null}}var s,a,l=!1,u=250,c="_leaflet_",h=this._touchstart,d=this._touchend;return t[c+h+i]=n,t[c+d+i]=r,t[c+"dblclick"+i]=e,t.addEventListener(h,n,!1),t.addEventListener(d,r,!1),o.Browser.edge||t.addEventListener("dblclick",e,!1),this},removeDoubleTapListener:function(t,e){var i="_leaflet_",n=t[i+this._touchstart+e],r=t[i+this._touchend+e],s=t[i+"dblclick"+e];return t.removeEventListener(this._touchstart,n,!1),t.removeEventListener(this._touchend,r,!1),o.Browser.edge||t.removeEventListener("dblclick",s,!1),this}}),o.extend(o.DomEvent,{POINTER_DOWN:o.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:o.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:o.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:o.Browser.msPointer?"MSPointerCancel":"pointercancel",TAG_WHITE_LIST:["INPUT","SELECT","OPTION"],_pointers:{},_pointersCount:0,addPointerListener:function(t,e,i,n){return"touchstart"===e?this._addPointerStart(t,i,n):"touchmove"===e?this._addPointerMove(t,i,n):"touchend"===e&&this._addPointerEnd(t,i,n),this},removePointerListener:function(t,e,i){var n=t["_leaflet_"+e+i];return"touchstart"===e?t.removeEventListener(this.POINTER_DOWN,n,!1):"touchmove"===e?t.removeEventListener(this.POINTER_MOVE,n,!1):"touchend"===e&&(t.removeEventListener(this.POINTER_UP,n,!1),t.removeEventListener(this.POINTER_CANCEL,n,!1)),this},_addPointerStart:function(t,e,i){var n=o.bind(function(t){if("mouse"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE){if(!(this.TAG_WHITE_LIST.indexOf(t.target.tagName)<0))return;o.DomEvent.preventDefault(t)}this._handlePointer(t,e)},this);if(t["_leaflet_touchstart"+i]=n,t.addEventListener(this.POINTER_DOWN,n,!1),!this._pointerDocListener){var r=o.bind(this._globalPointerUp,this);document.documentElement.addEventListener(this.POINTER_DOWN,o.bind(this._globalPointerDown,this),!0),document.documentElement.addEventListener(this.POINTER_MOVE,o.bind(this._globalPointerMove,this),!0),document.documentElement.addEventListener(this.POINTER_UP,r,!0),document.documentElement.addEventListener(this.POINTER_CANCEL,r,!0),this._pointerDocListener=!0}},_globalPointerDown:function(t){this._pointers[t.pointerId]=t,this._pointersCount++},_globalPointerMove:function(t){this._pointers[t.pointerId]&&(this._pointers[t.pointerId]=t)},_globalPointerUp:function(t){delete this._pointers[t.pointerId],this._pointersCount--},_handlePointer:function(t,e){t.touches=[];for(var i in this._pointers)t.touches.push(this._pointers[i]);t.changedTouches=[t],e(t)},_addPointerMove:function(t,e,i){var n=o.bind(function(t){(t.pointerType!==t.MSPOINTER_TYPE_MOUSE&&"mouse"!==t.pointerType||0!==t.buttons)&&this._handlePointer(t,e)},this);t["_leaflet_touchmove"+i]=n,t.addEventListener(this.POINTER_MOVE,n,!1)},_addPointerEnd:function(t,e,i){var n=o.bind(function(t){this._handlePointer(t,e)},this);t["_leaflet_touchend"+i]=n,t.addEventListener(this.POINTER_UP,n,!1),t.addEventListener(this.POINTER_CANCEL,n,!1)}}),o.Map.mergeOptions({touchZoom:o.Browser.touch&&!o.Browser.android23,bounceAtZoomLimits:!0}),o.Map.TouchZoom=o.Handler.extend({addHooks:function(){o.DomUtil.addClass(this._map._container,"leaflet-touch-zoom"),o.DomEvent.on(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){o.DomUtil.removeClass(this._map._container,"leaflet-touch-zoom"),o.DomEvent.off(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(i.add(n)._divideBy(2))),this._startDist=i.distanceTo(n),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),o.DomEvent.on(document,"touchmove",this._onTouchMove,this).on(document,"touchend",this._onTouchEnd,this),o.DomEvent.preventDefault(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),r=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(r,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&r>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===r)return}else{var s=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===r&&0===s.x&&0===s.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(s),this._zoom)}this._moved||(e._moveStart(!0),this._moved=!0),o.Util.cancelAnimFrame(this._animRequest);var a=o.bind(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=o.Util.requestAnimFrame(a,this,!0),o.DomEvent.preventDefault(t)}},_onTouchEnd:function(){return this._moved&&this._zooming?(this._zooming=!1,o.Util.cancelAnimFrame(this._animRequest),o.DomEvent.off(document,"touchmove",this._onTouchMove).off(document,"touchend",this._onTouchEnd),void(this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom)))):void(this._zooming=!1)}}),o.Map.addInitHook("addHandler","touchZoom",o.Map.TouchZoom),o.Map.mergeOptions({tap:!0,tapTolerance:15}),o.Map.Tap=o.Handler.extend({addHooks:function(){o.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){o.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(o.DomEvent.preventDefault(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var e=t.touches[0],i=e.target;this._startPos=this._newPos=new o.Point(e.clientX,e.clientY),i.tagName&&"a"===i.tagName.toLowerCase()&&o.DomUtil.addClass(i,"leaflet-active"),this._holdTimeout=setTimeout(o.bind(function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",e))},this),1e3),this._simulateEvent("mousedown",e),o.DomEvent.on(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),o.DomEvent.off(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var e=t.changedTouches[0],i=e.target;i&&i.tagName&&"a"===i.tagName.toLowerCase()&&o.DomUtil.removeClass(i,"leaflet-active"),this._simulateEvent("mouseup",e),this._isTapValid()&&this._simulateEvent("click",e)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new o.Point(e.clientX,e.clientY),this._simulateEvent("mousemove",e)},_simulateEvent:function(t,e){var i=document.createEvent("MouseEvents");i._simulated=!0,e.target._simulatedClick=!0,i.initMouseEvent(t,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),e.target.dispatchEvent(i)}}),o.Browser.touch&&!o.Browser.pointer&&o.Map.addInitHook("addHandler","tap",o.Map.Tap),o.Map.mergeOptions({boxZoom:!0}),o.Map.BoxZoom=o.Handler.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane},addHooks:function(){o.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){o.DomEvent.off(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_resetState:function(){this._moved=!1},_onMouseDown:function(t){return!(!t.shiftKey||1!==t.which&&1!==t.button)&&(this._resetState(),o.DomUtil.disableTextSelection(),o.DomUtil.disableImageDrag(),this._startPoint=this._map.mouseEventToContainerPoint(t),void o.DomEvent.on(document,{contextmenu:o.DomEvent.stop,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this))},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=o.DomUtil.create("div","leaflet-zoom-box",this._container),o.DomUtil.addClass(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new o.Bounds(this._point,this._startPoint),i=e.getSize();o.DomUtil.setPosition(this._box,e.min),this._box.style.width=i.x+"px",this._box.style.height=i.y+"px"},_finish:function(){this._moved&&(o.DomUtil.remove(this._box),o.DomUtil.removeClass(this._container,"leaflet-crosshair")),o.DomUtil.enableTextSelection(),o.DomUtil.enableImageDrag(),o.DomEvent.off(document,{contextmenu:o.DomEvent.stop,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){setTimeout(o.bind(this._resetState,this),0);var e=new o.LatLngBounds(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}}),o.Map.addInitHook("addHandler","boxZoom",o.Map.BoxZoom),o.Map.mergeOptions({keyboard:!0,keyboardPanDelta:80}),o.Map.Keyboard=o.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),o.DomEvent.on(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),o.DomEvent.off(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var t=document.body,e=document.documentElement,i=t.scrollTop||e.scrollTop,n=t.scrollLeft||e.scrollLeft;this._map._container.focus(),window.scrollTo(n,i)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){var e,i,n=this._panKeys={},o=this.keyCodes;for(e=0,i=o.left.length;e0&&t.screenY>0&&this._map.getContainer().focus()}}),o.control=function(t){return new o.Control(t)},o.Map.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){function t(t,r){var s=i+t+" "+i+r;e[t+r]=o.DomUtil.create("div",s,n)}var e=this._controlCorners={},i="leaflet-",n=this._controlContainer=o.DomUtil.create("div",i+"control-container",this._container);t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){o.DomUtil.remove(this._controlContainer)}}),o.Control.Zoom=o.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=o.DomUtil.create("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,r){var s=o.DomUtil.create("a",i,n);return s.innerHTML=t,s.href="#",s.title=e,o.DomEvent.on(s,"mousedown dblclick",o.DomEvent.stopPropagation).on(s,"click",o.DomEvent.stop).on(s,"click",r,this).on(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";o.DomUtil.removeClass(this._zoomInButton,e),o.DomUtil.removeClass(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMinZoom())&&o.DomUtil.addClass(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMaxZoom())&&o.DomUtil.addClass(this._zoomInButton,e)}}),o.Map.mergeOptions({zoomControl:!0}),o.Map.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new o.Control.Zoom,this.addControl(this.zoomControl))}),o.control.zoom=function(t){return new o.Control.Zoom(t)},o.Control.Attribution=o.Control.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){o.setOptions(this,t),this._attributions={}},onAdd:function(t){t.attributionControl=this,this._container=o.DomUtil.create("div","leaflet-control-attribution"),o.DomEvent&&o.DomEvent.disableClickPropagation(this._container);for(var e in t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var i=[];this.options.prefix&&i.push(this.options.prefix),t.length&&i.push(t.join(", ")),this._container.innerHTML=i.join(" | ")}}}),o.Map.mergeOptions({attributionControl:!0}),o.Map.addInitHook(function(){this.options.attributionControl&&(new o.Control.Attribution).addTo(this)}),o.control.attribution=function(t){return new o.Control.Attribution(t)},o.Control.Scale=o.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=o.DomUtil.create("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=o.DomUtil.create("div",e,i)),t.imperial&&(this._iScale=o.DomUtil.create("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,i=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(i)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),i=e<1e3?e+" m":e/1e3+" km"; this._updateScale(this._mScale,i,e/t)},_updateImperial:function(t){var e,i,n,o=3.2808399*t;o>5280?(e=o/5280,i=this._getRoundNum(e),this._updateScale(this._iScale,i+" mi",i/e)):(n=this._getRoundNum(o),this._updateScale(this._iScale,n+" ft",n/o))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),i=t/e;return i=i>=10?10:i>=5?5:i>=3?3:i>=2?2:1,e*i}}),o.control.scale=function(t){return new o.Control.Scale(t)},o.Control.Layers=o.Control.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1},initialize:function(t,e,i){o.setOptions(this,i),this._layers=[],this._lastZIndex=0,this._handlingClick=!1;for(var n in t)this._addLayer(t[n],n);for(n in e)this._addLayer(e[n],n,!0)},onAdd:function(t){return this._initLayout(),this._update(),this._map=t,t.on("zoomend",this._checkDisabledLayers,this),this._container},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var t=0;t1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(o.stamp(t.target)),i=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;i&&this._map.fire(i,e)},_createRadioElement:function(t,e){var i='",n=document.createElement("div");return n.innerHTML=i,n.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer);t.overlay?(e=document.createElement("input"),e.type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers",n),e.layerId=o.stamp(t.layer),o.DomEvent.on(e,"click",this._onInputClick,this);var r=document.createElement("span");r.innerHTML=" "+t.name;var s=document.createElement("div");i.appendChild(s),s.appendChild(e),s.appendChild(r);var a=t.overlay?this._overlaysList:this._baseLayersList;return a.appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i,n=this._form.getElementsByTagName("input"),o=[],r=[];this._handlingClick=!0;for(var s=n.length-1;s>=0;s--)t=n[s],e=this._getLayer(t.layerId).layer,i=this._map.hasLayer(e),t.checked&&!i?o.push(e):!t.checked&&i&&r.push(e);for(s=0;s=0;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ne.options.maxZoom},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),o.control.layers=function(t,e,i){return new o.Control.Layers(t,e,i)},o.Map.include({_defaultLocateOptions:{timeout:1e4,watch:!1},locate:function(t){if(t=this._locateOptions=o.extend({},this._defaultLocateOptions,t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var e=o.bind(this._handleGeolocationResponse,this),i=o.bind(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,i=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+i+"."})},_handleGeolocationResponse:function(t){var e=t.coords.latitude,i=t.coords.longitude,n=new o.LatLng(e,i),r=n.toBounds(t.coords.accuracy),s=this._locateOptions;if(s.setView){var a=this.getBoundsZoom(r);this.setView(n,s.maxZoom?Math.min(a,s.maxZoom):a)}var l={latlng:n,bounds:r,timestamp:t.timestamp};for(var u in t.coords)"number"==typeof t.coords[u]&&(l[u]=t.coords[u]);this.fire("locationfound",l)}})},{}],6:[function(t,e,i){function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function r(t){if(h===setTimeout)return setTimeout(t,0);if((h===n||!h)&&setTimeout)return h=setTimeout,setTimeout(t,0);try{return h(t,0)}catch(e){try{return h.call(null,t,0)}catch(e){return h.call(this,t,0)}}}function s(t){if(d===clearTimeout)return clearTimeout(t);if((d===o||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(t);try{return d(t)}catch(e){try{return d.call(null,t)}catch(e){return d.call(this,t)}}}function a(){f&&p&&(f=!1,p.length?m=p.concat(m):g=-1,m.length&&l())}function l(){if(!f){var t=r(a);f=!0;for(var e=m.length;e;){for(p=m,m=[];++g1)for(var i=1;i0&&t=this.scroller[this.origin.scrollSize]?c(this.root).removeClass(this.barOnCls):c(this.root).addClass(this.barOnCls))},this._pos0=function(t){_=this.cursor(t)-d},this.drag=function(t){this.scroller[this.origin.scroll]=a.call(this,this.cursor(t)-_)*(this.scroller[this.origin.scrollSize]-this.scroller[this.origin.client])},this.selection=function(t){this.event(document,"selectpos selectstart",u,t?"off":"on")},this.resize=function(){function e(){var e=i.scroller[i.origin.crossOffset]-i.scroller[i.origin.crossClient];t.freeze&&!i.clipper.style[i.origin.crossSize]&&c(i.clipper).css(i.origin.crossSize,i.clipper[i.origin.crossClient]-e+"px"),c(i.scroller).css(i.origin.crossSize,i.clipper[i.origin.crossClient]+e+"px"),Array.prototype.unshift.call(arguments,"resize"),l.apply(i,arguments),y=(new Date).getTime()}var i=this,n=0;(new Date).getTime()-yc[d]+a-l.radius?(t=2,i=u[d]+a):(t=3,i=e),t!=o[d]&&(n.call(this,d,i),o[d]=t,r=!0);if(r)for(d=0;di+r.bar[r.origin.offset]&&(n=1);var s=r.pos()+n*o*r.scroller[r.origin.client];r.pos(s)}))};_.fn.controls=function(t){for(var e=0;this[e];)f.call(this[e],t),e++;return this};var g=function(t){function e(){return g.scroller[g.origin.scroll]+g.scroller[g.origin.offset]}function i(){return g.scroller[g.origin.scrollSize]}function n(){return g.scroller[g.origin.client]}function o(t,e){var i=5e-4*t;return Math.floor(e-i*(t+550))}function r(t){c=t,t?(s(),a=setInterval(s,200)):clearInterval(a)}function s(){var s,a,c={},k=e(),D=i(),L=1==v;if(a=0,v>0&&(a=40),s=o(b,a),k>=D-b&&v>-1?L&&(b+=s):b=0,b<0&&(b=0),c[d]=b+"px",n()<=i()){g.$(h).css(c);for(var x=0;x_&&!u&&(p(),u=!0),0==b?y++:y=0,y>1&&(r(!1),u=!1,f&&g.$(g.root).removeClass(f))}var a,l,u,c,h=this.$(t.block),d=t.size||this.origin.size,_=t.limit||80,p=t.onExpand,m=t.elements||[],f=t.inProgress||"",g=this,v=0,y=0,b=0,w=t.waiting||500;this.on("init",function(){r(!0)}),this.on("dispose",function(){r(!1)}),this.event(this.scroller,"mousewheel DOMMouseScroll",function(t){var n=t.wheelDelta<0||t.originalEvent&&t.originalEvent.wheelDelta<0||t.detail>0;n&&(v=1,clearTimeout(l),!c&&e()>=i()&&r(!0))})};_.fn.pull=function(t){for(var e=0;this[e];)g.call(this[e],t),e++;return this}}}(window)},{}]},{},[1]); //# sourceMappingURL=script.full.js.map