1function ClusterIcon(a,b){a.getMarkerClusterer().extend(ClusterIcon,google.maps.OverlayView);this.cluster_=a;this.className_=a.getMarkerClusterer().getClusterClass();this.styles_=b;this.sums_=this.div_=this.center_=null;this.visible_=!1;this.setMap(a.getMap())} 2ClusterIcon.prototype.onAdd=function(){var a=this,b,c;this.div_=document.createElement("div");this.div_.className=this.className_;this.visible_&&this.show();this.getPanes().overlayMouseTarget.appendChild(this.div_);this.boundsChangedListener_=google.maps.event.addListener(this.getMap(),"bounds_changed",function(){c=b});google.maps.event.addDomListener(this.div_,"mousedown",function(){b=!0;c=!1});google.maps.event.addDomListener(this.div_,"click",function(d){b=!1;if(!c){var e,g,h=a.cluster_.getMarkerClusterer(); 3google.maps.event.trigger(h,"click",a.cluster_);google.maps.event.trigger(h,"clusterclick",a.cluster_);var l=h.getMap().getZoom(),k=a.cluster_.map_.getMapTypeId();if("roadmap"==k||"satellite"==k)var f=19,k=3E-5;else f=15,k=7E-4;if(l>=f&&1<a.cluster_.markers_.length){d=a.cluster_.markers_;l=360/d.length;a.cluster_.map_.getZoom();for(f=0;f<d.length;f++){var m=d[f].getPosition(),n=m.lat()+-k*Math.cos(+l*f/180*Math.PI),m=m.lng()+-k*Math.sin(+l*f/180*Math.PI),n=new google.maps.LatLng(n,m);d[f].setPosition(n); 4d[f].setMap(a.cluster_.map_)}a.hide()}else h.getZoomOnClick()&&(g=h.getMaxZoom(),e=a.cluster_.getBounds(),h.getMap().fitBounds(e),setTimeout(function(){h.getMap().fitBounds(e);null!==g&&h.getMap().getZoom()>g&&h.getMap().setZoom(g+1)},100)),d.cancelBubble=!0,d.stopPropagation&&d.stopPropagation()}});google.maps.event.addDomListener(this.div_,"mouseover",function(){var b=a.cluster_.getMarkerClusterer();google.maps.event.trigger(b,"mouseover",a.cluster_)});google.maps.event.addDomListener(this.div_, 5"mouseout",function(){var b=a.cluster_.getMarkerClusterer();google.maps.event.trigger(b,"mouseout",a.cluster_)})};ClusterIcon.prototype.onRemove=function(){this.div_&&this.div_.parentNode&&(this.hide(),google.maps.event.removeListener(this.boundsChangedListener_),google.maps.event.clearInstanceListeners(this.div_),this.div_.parentNode.removeChild(this.div_),this.div_=null)}; 6ClusterIcon.prototype.draw=function(){if(this.visible_){var a=this.getPosFromLatLng_(this.center_);this.div_.style.top=a.y+"px";this.div_.style.left=a.x+"px"}};ClusterIcon.prototype.hide=function(){this.div_&&(this.div_.style.display="none");this.visible_=!1}; 7ClusterIcon.prototype.show=function(){if(this.div_){var a="",b=this.backgroundPosition_.split(" "),c=parseInt(b[0].replace(/^\s+|\s+$/g,""),10),b=parseInt(b[1].replace(/^\s+|\s+$/g,""),10),a=this.getPosFromLatLng_(this.center_);this.div_.style.cssText=this.createCss(a);a="<img src='"+this.url_+"' style='position: absolute; top: "+b+"px; left: "+c+"px; ";this.cluster_.getMarkerClusterer().enableRetinaIcons_||(a+="clip: rect("+-1*b+"px, "+(-1*c+this.width_)+"px, "+(-1*b+this.height_)+"px, "+-1*c+"px);"); 8this.div_.innerHTML=a+"'><div style='position: absolute;top: "+this.anchorText_[0]+"px;left: "+this.anchorText_[1]+"px;color: "+this.textColor_+";font-size: "+this.textSize_+"px;font-family: "+this.fontFamily_+";font-weight: "+this.fontWeight_+";font-style: "+this.fontStyle_+";text-decoration: "+this.textDecoration_+";text-align: center;width: "+this.width_+"px;line-height:"+this.height_+"px;'>"+this.sums_.text+"</div>";this.div_.title="undefined"===typeof this.sums_.title||""===this.sums_.title? 9this.cluster_.getMarkerClusterer().getTitle():this.sums_.title;this.div_.style.display=""}this.visible_=!0}; 10ClusterIcon.prototype.useStyle=function(a){this.sums_=a;a=Math.max(0,a.index-1);a=Math.min(this.styles_.length-1,a);a=this.styles_[a];this.url_=a.url;this.height_=a.height;this.width_=a.width;this.anchorText_=a.anchorText||[0,0];this.anchorIcon_=a.anchorIcon||[parseInt(this.height_/2,10),parseInt(this.width_/2,10)];this.textColor_=a.textColor||"black";this.textSize_=a.textSize||11;this.textDecoration_=a.textDecoration||"none";this.fontWeight_=a.fontWeight||"bold";this.fontStyle_=a.fontStyle||"normal"; 11this.fontFamily_=a.fontFamily||"Arial,sans-serif";this.backgroundPosition_=a.backgroundPosition||"0 0"};ClusterIcon.prototype.setCenter=function(a){this.center_=a};ClusterIcon.prototype.createCss=function(a){var b=[];b.push("cursor: pointer;");b.push("position: absolute; top: "+a.y+"px; left: "+a.x+"px;");b.push("width: "+this.width_+"px; height: "+this.height_+"px;");return b.join("")}; 12ClusterIcon.prototype.getPosFromLatLng_=function(a){a=this.getProjection().fromLatLngToDivPixel(a);a.x-=this.anchorIcon_[1];a.y-=this.anchorIcon_[0];a.x=parseInt(a.x,10);a.y=parseInt(a.y,10);return a};function Cluster(a){this.markerClusterer_=a;this.map_=a.getMap();this.gridSize_=a.getGridSize();this.minClusterSize_=a.getMinimumClusterSize();this.averageCenter_=a.getAverageCenter();this.markers_=[];this.bounds_=this.center_=null;this.clusterIcon_=new ClusterIcon(this,a.getStyles())} 13Cluster.prototype.getSize=function(){return this.markers_.length};Cluster.prototype.getMarkers=function(){return this.markers_};Cluster.prototype.getCenter=function(){return this.center_};Cluster.prototype.getMap=function(){return this.map_};Cluster.prototype.getMarkerClusterer=function(){return this.markerClusterer_};Cluster.prototype.getBounds=function(){var a,b=new google.maps.LatLngBounds(this.center_,this.center_),c=this.getMarkers();for(a=0;a<c.length;a++)b.extend(c[a].getPosition());return b}; 14Cluster.prototype.remove=function(){this.clusterIcon_.setMap(null);this.markers_=[];delete this.markers_}; 15Cluster.prototype.addMarker=function(a){var b,c;if(this.isMarkerAlreadyAdded_(a))return!1;this.center_?this.averageCenter_&&(c=this.markers_.length+1,b=(this.center_.lat()*(c-1)+a.getPosition().lat())/c,c=(this.center_.lng()*(c-1)+a.getPosition().lng())/c,this.center_=new google.maps.LatLng(b,c),this.calculateBounds_()):(this.center_=a.getPosition(),this.calculateBounds_());a.isAdded=!0;this.markers_.push(a);b=this.markers_.length;c=this.markerClusterer_.getMaxZoom();if(null!==c&&this.map_.getZoom()> 16c)a.getMap()!==this.map_&&a.setMap(this.map_);else if(b<this.minClusterSize_)a.getMap()!==this.map_&&a.setMap(this.map_);else if(b===this.minClusterSize_)for(a=0;a<b;a++)this.markers_[a].setMap(null);else a.setMap(null);this.updateIcon_();return!0};Cluster.prototype.isMarkerInClusterBounds=function(a){return this.bounds_.contains(a.getPosition())};Cluster.prototype.calculateBounds_=function(){var a=new google.maps.LatLngBounds(this.center_,this.center_);this.bounds_=this.markerClusterer_.getExtendedBounds(a)}; 17Cluster.prototype.updateIcon_=function(){var a=this.markers_.length,b=this.markerClusterer_.getMaxZoom();null!==b&&this.map_.getZoom()>b?this.clusterIcon_.hide():a<this.minClusterSize_?this.clusterIcon_.hide():(a=this.markerClusterer_.getStyles().length,a=this.markerClusterer_.getCalculator()(this.markers_,a),this.clusterIcon_.setCenter(this.center_),this.clusterIcon_.useStyle(a),this.clusterIcon_.show())}; 18Cluster.prototype.isMarkerAlreadyAdded_=function(a){var b;if(this.markers_.indexOf)return-1!==this.markers_.indexOf(a);for(b=0;b<this.markers_.length;b++)if(a===this.markers_[b])return!0;return!1}; 19function MarkerClusterer(a,b,c){this.extend(MarkerClusterer,google.maps.OverlayView);b=b||[];c=c||{};this.markers_=[];
19this.clusters_=[];this.listeners_=[];this.activeMap_=null;this.ready_=!1;this.gridSize_=c.gridSize||60;this.minClusterSize_=c.minimumClusterSize||2;this.maxZoom_=c.maxZoom||null;this.styles_=c.styles||[];this.title_=c.title||"";this.zoomOnClick_=!0;void 0!==c.zoomOnClick&&(this.zoomOnClick_=c.zoomOnClick);this.averageCenter_=!1;void 0!==c.averageCenter&&(this.averageCenter_=c.averageCenter); 20this.ignoreHidden_=!1;void 0!==c.ignoreHidden&&(this.ignoreHidden_=c.ignoreHidden);this.enableRetinaIcons_=!1;void 0!==c.enableRetinaIcons&&(this.enableRetinaIcons_=c.enableRetinaIcons);this.imagePath_=c.imagePath||MarkerClusterer.IMAGE_PATH;this.imageExtension_=c.imageExtension||MarkerClusterer.IMAGE_EXTENSION;this.imageSizes_=c.imageSizes||MarkerClusterer.IMAGE_SIZES;this.calculator_=c.calculator||MarkerClusterer.CALCULATOR;this.batchSize_=c.batchSize||MarkerClusterer.BATCH_SIZE;this.batchSizeIE_= 21c.batchSizeIE||MarkerClusterer.BATCH_SIZE_IE;this.clusterClass_=c.clusterClass||"cluster";-1!==navigator.userAgent.toLowerCase().indexOf("msie")&&(this.batchSize_=this.batchSizeIE_);this.setupStyles_();this.addMarkers(b,!0);this.setMap(a)} 22MarkerClusterer.prototype.onAdd=function(){var a=this;this.activeMap_=this.getMap();this.ready_=!0;this.repaint();this.listeners_=[google.maps.event.addListener(this.getMap(),"zoom_changed",function(){a.resetViewport_(!1);this.getZoom()!==(this.get("minZoom")||0)&&this.getZoom()!==this.get("maxZoom")||google.maps.event.trigger(this,"idle")}),google.maps.event.addListener(this.getMap(),"idle",function(){a.redraw_()})]}; 23MarkerClusterer.prototype.onRemove=function(){var a;for(a=0;a<this.markers_.length;a++)this.markers_[a].getMap()!==this.activeMap_&&this.markers_[a].setMap(this.activeMap_);for(a=0;
23a<this.clusters_.length;a++)this.clusters_[a].remove();this.clusters_=[];for(a=0;a<this.listeners_.length;a++)google.maps.event.removeListener(this.listeners_[a]);this.listeners_=[];this.activeMap_=null;this.ready_=!1};MarkerClusterer.prototype.draw=function(){}; 24MarkerClusterer.prototype.setupStyles_=function(){var a,b;if(!(0<this.styles_.length))for(a=0;a<this.imageSizes_.length;a++)b=this.imageSizes_[a],this.styles_.push({url:this.imagePath_+(a+1)+"."+this.imageExtension_,height:b,width:b})};MarkerClusterer.prototype.fitMapToMarkers=function(){var a,b=this.getMarkers(),c=new google.maps.LatLngBounds;for(a=0;a<b.length;a++)c.extend(b[a].getPosition());this.getMap().fitBounds(c)};MarkerClusterer.prototype.getGridSize=function(){return this.gridSize_}; 25MarkerClusterer.prototype.setGridSize=function(a){this.gridSize_=a};MarkerClusterer.prototype.getMinimumClusterSize=function(){return this.minClusterSize_};MarkerClusterer.prototype.setMinimumClusterSize=function(a){this.minClusterSize_=a};MarkerClusterer.prototype.getMaxZoom=function(){return this.maxZoom_};MarkerClusterer.prototype.setMaxZoom=function(a){this.maxZoom_=a};MarkerClusterer.prototype.getStyles=function(){return this.styles_}; 26MarkerClusterer.prototype.setStyles=function(a){this.styles_=a};MarkerClusterer.prototype.getTitle=function(){return this.title_};MarkerClusterer.prototype.setTitle=function(a){this.title_=a};MarkerClusterer.prototype.getZoomOnClick=function(){return this.zoomOnClick_};MarkerClusterer.prototype.setZoomOnClick=function(a){this.zoomOnClick_=a};MarkerClusterer.prototype.getAverageCenter=function(){return this.averageCenter_}; 27MarkerClusterer.prototype.setAverageCenter=function(a){this.averageCenter_=a};MarkerClusterer.prototype.getIgnoreHidden=function(){return this.ignoreHidden_};MarkerClusterer.prototype.setIgnoreHidden=function(a){this.ignoreHidden_=a};MarkerClusterer.prototype.getEnableRetinaIcons=function(){return this.enableRetinaIcons_};MarkerClusterer.prototype.setEnableRetinaIcons=function(a){this.enableRetinaIcons_=a};MarkerClusterer.prototype.getImageExtension=function(){return this.imageExtension_}; 28MarkerClusterer.prototype.setImageExtension=function(a){this.imageExtension_=a};MarkerClusterer.prototype.getImagePath=function(){return this.imagePath_};MarkerClusterer.prototype.setImagePath=function(a){this.imagePath_=a};MarkerClusterer.prototype.getImageSizes=function(){return this.imageSizes_};MarkerClusterer.prototype.setImageSizes=function(a){this.imageSizes_=a};MarkerClusterer.prototype.getCalculator=function(){return this.calculator_}; 29MarkerClusterer.prototype.setCalculator=function(a){this.calculator_=a};MarkerClusterer.prototype.getBatchSizeIE=function(){return this.batchSizeIE_};MarkerClusterer.prototype.setBatchSizeIE=function(a){this.batchSizeIE_=a};MarkerClusterer.prototype.getClusterClass=function(){return this.clusterClass_};MarkerClusterer.prototype.setClusterClass=function(a){this.clusterClass_=a};MarkerClusterer.prototype.getMarkers=function(){return this.markers_};MarkerClusterer.prototype.getTotalMarkers=function(){return this.markers_.length}; 30MarkerClusterer.prototype.getClusters=function(){return this.clusters_};MarkerClusterer.prototype.getTotalClusters=function(){return this.clusters_.length};MarkerClusterer.prototype.addMarker=function(a,b){this.pushMarkerTo_(a);b||this.redraw_()};MarkerClusterer.prototype.addMarkers=function(a,b){for(var c in a)a.hasOwnProperty(c)&&this.pushMarkerTo_(a[c]);b||this.redraw_()}; 31MarkerClusterer.prototype.pushMarkerTo_=function(a){if(a.getDraggable()){var b=this;google.maps.event.addListener(a,"dragend",function(){b.ready_&&(this.isAdded=!1,b.repaint())})}a.isAdded=!1;this.markers_.push(a)};MarkerClusterer.prototype.removeMarker=function(a,b){var c=this.removeMarker_(a);!b&&c&&this.repaint();return c};MarkerClusterer.prototype.removeMarkers=function(a,b){var c,d,e=!1;for(c=0;c<a.length;c++)d=this.removeMarker_(a[c]),e=e||d;!b&&e&&this.repaint();return e}; 32MarkerClusterer.prototype.removeMarker_=function(a){var b,c=-1;if(this.markers_.indexOf)c=this.markers_.indexOf(a);else for(b=0;b<this.markers_.length;b++)if(a===this.markers_[b]){c=b;break}if(-1===c)return!1;a.setMap(null);this.markers_.splice(c,1);return!0};MarkerClusterer.prototype.clearMarkers=function(){this.resetViewport_(!0);this.markers_=[]};
33MarkerClusterer.prototype.repaint=function(){var a=this.clusters_.slice();this.clusters_=[];this.resetViewport_(!1);this.redraw_();setTimeout(function(){var b;for(b=0;b<a.length;b++)a[b].remove()},0)}; 34MarkerClusterer.prototype.getExtendedBounds=function(a){var b=this.getProjection(),c=new google.maps.LatLng(a.getNorthEast().lat(),a.getNorthEast().lng()),d=new google.maps.LatLng(a.getSouthWest().lat(),a.getSouthWest().lng()),c=b.fromLatLngToDivPixel(c);c.x+=this.gridSize_;c.y-=this.gridSize_;d=b.fromLatLngToDivPixel(d);d.x-=this.gridSize_;d.y+=this.gridSize_;c=b.fromDivPixelToLatLng(c);b=b.fromDivPixelToLatLng(d);a.extend(c);a.extend(b);return a};MarkerClusterer.prototype.redraw_=function(){this.createClusters_(0)}; 35MarkerClusterer.prototype.resetViewport_=function(a){var b,c;for(b=0;b<this.clusters_.length;b++)this.clusters_[b].remove();this.clusters_=[];for(b=0;b<this.markers_.length;b++)c=this.markers_[b],c.isAdded=!1,a&&c.setMap(null)}; 36MarkerClusterer.prototype.distanceBetweenPoints_=function(a,b){var c=(b.lat()-a.lat())*Math.PI/180,d=(b.lng()-a.lng())*Math.PI/180,c=Math.sin(c/2)*Math.sin(c/2)+Math.cos(a.lat()*Math.PI/180)*Math.cos(b.lat()*Math.PI/180)*Math.sin(d/2)*Math.sin(d/2);return 12742*Math.atan2(Math.sqrt(c),Math.sqrt(1-c))};MarkerClusterer.prototype.isMarkerInBounds_=function(a,b){return b.contains(a.getPosition())}; 37MarkerClusterer.prototype.addToClosestCluster_=function(a){var b,c,d,e=4E4,g=null;for(b=0;
37b<this.clusters_.length;b++)if(d=this.clusters_[b],c=d.getCenter())c=this.distanceBetweenPoints_(c,a.getPosition()),c<e&&(e=c,g=d);g&&g.isMarkerInClusterBounds(a)?g.addMarker(a):(d=new Cluster(this),d.addMarker(a),this.clusters_.push(d))}; 38MarkerClusterer.prototype.createClusters_=function(a){var b,c,d=this;if(this.ready_){0===a&&(google.maps.event.trigger(this,"clusteringbegin",this),"undefined"!==typeof this.timerRefStatic&&(clearTimeout(this.timerRefStatic),delete this.timerRefStatic));c=3<this.getMap().getZoom()?new google.maps.LatLngBounds(this.getMap().getBounds().getSouthWest(),this.getMap().getBounds().getNorthEast()):new google.maps.LatLngBounds(new google.maps.LatLng(85.02070771743472,-178.48388434375),new google.maps.LatLng(-85.08136444384544, 39178.00048865625));c=this.getExtendedBounds(c);for(var e=Math.min(a+this.batchSize_,this.markers_.length);a<e;a++)b=this.markers_[a],!b.isAdded&&this.isMarkerInBounds_(b,c)&&(!this.ignoreHidden_||this.ignoreHidden_&&b.getVisible())&&this.addToClosestCluster_(b);e<this.markers_.length?this.timerRefStatic=setTimeout(function(){d.createClusters_(e)},0):(delete this.timerRefStatic,google.maps.event.trigger(this,"clusteringend",this))}}; 40MarkerClusterer.prototype.extend=function(a,b){return function(a){for(var b in a.prototype)this.prototype[b]=a.prototype[b];return this}.apply(a,[b])};MarkerClusterer.CALCULATOR=function(a,b){for(var c=0,d=a.length.toString(),e=d;0!==e;)e=parseInt(e/10,10),c++;c=Math.min(c,b);return{text:d,index:c,title:""}};MarkerClusterer.BATCH_SIZE=2E3;MarkerClusterer.BATCH_SIZE_IE=500;MarkerClusterer.IMAGE_PATH=clusterImage;MarkerClusterer.IMAGE_EXTENSION="png";MarkerClusterer.IMAGE_SIZES=[53,56,66,78,90];
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.