diff --git a/.gitignore b/.gitignore index 4d63eb8..8934483 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,4 @@ -bower_components/leaflet-routing/libs/ -bower_components/leaflet-routing/examples/ -bower_components/Leaflet.Elevation/* -!bower_components/Leaflet.Elevation/dist/ -!bower_components/Leaflet.Elevation/src/ -bower_components/async/* -!bower_components/async/lib/ -!bower_components/async/README.md -!bower_components/async/LICENSE +bower_components/ +node_modules/ nbproject/ .idea/ diff --git a/README.md b/README.md index ed55417..dc7d514 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,27 @@ This is needed for pre-loading the selected profile (unless you allowed local fi python -m SimpleHTTPServer -2. open http://localhost:8000/brouter-web/ +2. open http://localhost:8000/brouter-web/ + +## Build + +Requires [Node and npm](http://nodejs.org/) (or [io.js](https://iojs.org)), [Bower](http://bower.io/) and [Gulp](http://gulpjs.com/): + + npm install -g bower + npm install -g gulp + +Install: + + npm install + bower install + +Build: + + gulp + +Develop: + + gulp watch ## License diff --git a/bower.json b/bower.json index fbed5a4..eb955dc 100644 --- a/bower.json +++ b/bower.json @@ -1,16 +1,71 @@ { "name": "brouter-web", - "version": "0.1.0", - "main": "js/index.js", + "version": "0.5.0", + "main": "dist/**/*", "ignore": [ "**/.*", "bower_components" ], "dependencies": { + "leaflet": "~0.7.3", "leaflet-search": "*", - "leaflet-plugins": "*", - "leaflet-routing": "nrenner/leaflet-routing#styles", - "Leaflet.Elevation": "MrMufflon/Leaflet.Elevation#master", - "async": "*" + "leaflet-plugins": "~1.3.2", + "leaflet-routing": "Turistforeningen/leaflet-routing#gh-pages", + "async": "~0.9.2", + "d3": "~3.5.5", + "leaflet.draw": "~0.2.3", + "bootstrap": "~3.3.4", + "DataTables": "~1.10.5", + "Leaflet.Elevation": "MrMufflon/Leaflet.Elevation#master" + }, + "overrides": { + "leaflet": { + "main": [ + "dist/leaflet-src.js", + "dist/leaflet.css", + "dist/images/*.png" + ] + }, + "leaflet-search": { + "main": [ + "dist/leaflet-search.src.js", + "dist/leaflet-search.min.css", + "images/*.+(png|gif)" + ] + }, + "leaflet-plugins": { + "main": [ + "control/Permalink.js", + "control/Permalink.Layer.js", + "layer/tile/Bing.js" + ] + }, + "leaflet-routing": { + "main": [ + "src/utils/LineUtil.Snapping.js", + "src/utils/Marker.Snapping.js", + "src/L.Routing.js", + "src/L.Routing.Draw.js", + "src/L.Routing.Edit.js" + ] + }, + "leaflet.draw": { + "main": [ + "dist/leaflet.draw-src.js", + "dist/leaflet.draw.css", + "dist/images/*.png" + ] + }, + "bootstrap": { + "main": [ + "dist/js/bootstrap.js", + "dist/css/bootstrap.css", + "dist/css/bootstrap-theme.css", + "dist/fonts/*" + ] + }, + "Leaflet.Elevation": { + "dependencies": null + } } } diff --git a/bower_components/Leaflet.Elevation/dist/Leaflet.Elevation-0.0.2.css b/bower_components/Leaflet.Elevation/dist/Leaflet.Elevation-0.0.2.css deleted file mode 100644 index d907ef6..0000000 --- a/bower_components/Leaflet.Elevation/dist/Leaflet.Elevation-0.0.2.css +++ /dev/null @@ -1 +0,0 @@ -.lime-theme .leaflet-control.elevation .background{background-color:rgba(156,194,34,.2);-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}.lime-theme .leaflet-control.elevation .axis line,.lime-theme .leaflet-control.elevation .axis path{fill:none;stroke:#566b13;stroke-width:2}.lime-theme .leaflet-control.elevation .area{fill:#9cc222}.lime-theme .leaflet-control.elevation .mouse-focus-line{pointer-events:none;stroke-width:1;stroke:#101404}.lime-theme .leaflet-control.elevation .elevation-toggle{cursor:pointer;box-shadow:0 1px 7px rgba(0,0,0,.4);-webkit-border-radius:5px;border-radius:5px;width:36px;height:36px;background:url(images/elevation.png) no-repeat center center #f8f8f9}.lime-theme .leaflet-control.elevation-collapsed .background{display:none}.lime-theme .leaflet-control.elevation-collapsed .elevation-toggle{display:block}.lime-theme .leaflet-control.elevation .mouse-drag{fill:rgba(99,126,11,.4)}.lime-theme .leaflet-overlay-pane .height-focus{stroke:#9cc222;fill:#9cc222}.lime-theme .leaflet-overlay-pane .height-focus.line{pointer-events:none;stroke-width:2}.steelblue-theme .leaflet-control.elevation .background{background-color:rgba(70,130,180,.2);-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}.steelblue-theme .leaflet-control.elevation .axis line,.steelblue-theme .leaflet-control.elevation .axis path{fill:none;stroke:#0d1821;stroke-width:2}.steelblue-theme .leaflet-control.elevation .area{fill:#4682b4}.steelblue-theme .leaflet-control.elevation .mouse-focus-line{pointer-events:none;stroke-width:1;stroke:#0d1821}.steelblue-theme .leaflet-control.elevation .elevation-toggle{cursor:pointer;box-shadow:0 1px 7px rgba(0,0,0,.4);-webkit-border-radius:5px;border-radius:5px;width:36px;height:36px;background:url(images/elevation.png) no-repeat center center #f8f8f9}.steelblue-theme .leaflet-control.elevation-collapsed .background{display:none}.steelblue-theme .leaflet-control.elevation-collapsed .elevation-toggle{display:block}.steelblue-theme .leaflet-control.elevation .mouse-drag{fill:rgba(23,74,117,.4)}.steelblue-theme .leaflet-overlay-pane .height-focus{stroke:#4682b4;fill:#4682b4}.steelblue-theme .leaflet-overlay-pane .height-focus.line{pointer-events:none;stroke-width:2}.purple-theme .leaflet-control.elevation .background{background-color:rgba(115,44,123,.2);-webkit-border-radius:5px;-moz-border-radius:5px;-ms-border-radius:5px;-o-border-radius:5px;border-radius:5px}.purple-theme .leaflet-control.elevation .axis line,.purple-theme .leaflet-control.elevation .axis path{fill:none;stroke:#2d1130;stroke-width:2}.purple-theme .leaflet-control.elevation .area{fill:#732c7b}.purple-theme .leaflet-control.elevation .mouse-focus-line{pointer-events:none;stroke-width:1;stroke:#000}.purple-theme .leaflet-control.elevation .elevation-toggle{cursor:pointer;box-shadow:0 1px 7px rgba(0,0,0,.4);-webkit-border-radius:5px;border-radius:5px;width:36px;height:36px;background:url(images/elevation.png) no-repeat center center #f8f8f9}.purple-theme .leaflet-control.elevation-collapsed .background{display:none}.purple-theme .leaflet-control.elevation-collapsed .elevation-toggle{display:block}.purple-theme .leaflet-control.elevation .mouse-drag{fill:rgba(74,14,80,.4)}.purple-theme .leaflet-overlay-pane .height-focus{stroke:#732c7b;fill:#732c7b}.purple-theme .leaflet-overlay-pane .height-focus.line{pointer-events:none;stroke-width:2} \ No newline at end of file diff --git a/bower_components/Leaflet.Elevation/dist/Leaflet.Elevation-0.0.2.min.js b/bower_components/Leaflet.Elevation/dist/Leaflet.Elevation-0.0.2.min.js deleted file mode 100644 index 404505e..0000000 --- a/bower_components/Leaflet.Elevation/dist/Leaflet.Elevation-0.0.2.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! Leaflet.Elevation 05-03-2014 */ -L.Control.Elevation=L.Control.extend({options:{position:"topright",theme:"lime-theme",width:600,height:175,margins:{top:10,right:20,bottom:30,left:60},useHeightIndicator:!0,interpolation:"linear",hoverNumber:{decimalsX:3,decimalsY:0,formatter:void 0},xTicks:void 0,yTicks:void 0,collapsed:!1,yAxisMin:void 0,yAxisMax:void 0,forceAxisBounds:!1},onRemove:function(){this._container=null},onAdd:function(a){this._map=a;var b=this.options,c=b.margins;b.xTicks=b.xTicks||Math.round(this._width()/75),b.yTicks=b.yTicks||Math.round(this._height()/30),b.hoverNumber.formatter=b.hoverNumber.formatter||this._formatter,d3.select("body").classed(b.theme,!0);var d=this._x=d3.scale.linear().range([0,this._width()]),e=this._y=d3.scale.linear().range([this._height(),0]),f=(this._area=d3.svg.area().interpolate(b.interpolation).x(function(a){return d(a.dist)}).y0(this._height()).y1(function(a){return e(a.altitude)}),this._container=L.DomUtil.create("div","elevation"));this._initToggle();var g=d3.select(f);g.attr("width",b.width);var h=g.append("svg");h.attr("width",b.width).attr("class","background").attr("height",b.height).append("g").attr("transform","translate("+c.left+","+c.top+")");var i=d3.svg.line();i=i.x(function(){return d3.mouse(h.select("g"))[0]}).y(function(){return this._height()});var j=d3.select(this._container).select("svg").select("g");this._areapath=j.append("path").attr("class","area");var k=this._background=j.append("rect").attr("width",this._width()).attr("height",this._height()).style("fill","none").style("stroke","none").style("pointer-events","all");L.Browser.touch?(k.on("touchmove.drag",this._dragHandler.bind(this)).on("touchstart.drag",this._dragStartHandler.bind(this)).on("touchstart.focus",this._mousemoveHandler.bind(this)),L.DomEvent.on(this._container,"touchend",this._dragEndHandler,this)):(k.on("mousemove.focus",this._mousemoveHandler.bind(this)).on("mouseout.focus",this._mouseoutHandler.bind(this)).on("mousedown.drag",this._dragStartHandler.bind(this)).on("mousemove.drag",this._dragHandler.bind(this)),L.DomEvent.on(this._container,"mouseup",this._dragEndHandler,this)),this._xaxisgraphicnode=j.append("g"),this._yaxisgraphicnode=j.append("g"),this._appendXaxis(this._xaxisgraphicnode),this._appendYaxis(this._yaxisgraphicnode);var l=this._focusG=j.append("g");return this._mousefocus=l.append("svg:line").attr("class","mouse-focus-line").attr("x2","0").attr("y2","0").attr("x1","0").attr("y1","0"),this._focuslabelX=l.append("svg:text").style("pointer-events","none").attr("class","mouse-focus-label-x"),this._focuslabelY=l.append("svg:text").style("pointer-events","none").attr("class","mouse-focus-label-y"),this._data&&this._applyData(),f},_dragHandler:function(){d3.event.preventDefault(),d3.event.stopPropagation(),this._gotDragged=!0,this._drawDragRectangle()},_drawDragRectangle:function(){if(this._dragStartCoords){var a=this._dragCurrentCoords=d3.mouse(this._background.node()),b=Math.min(this._dragStartCoords[0],a[0]),c=Math.max(this._dragStartCoords[0],a[0]);if(this._dragRectangle||this._dragRectangleG)this._dragRectangle.attr("width",c-b).attr("x",b);else{var d=d3.select(this._container).select("svg").select("g");this._dragRectangleG=d.append("g"),this._dragRectangle=this._dragRectangleG.append("rect").attr("width",c-b).attr("height",this._height()).attr("x",b).attr("class","mouse-drag").style("pointer-events","none")}}},_resetDrag:function(){this._dragRectangleG&&(this._dragRectangleG.remove(),this._dragRectangleG=null,this._dragRectangle=null,this._hidePositionMarker(),this._map.fitBounds(this._fullExtent))},_dragEndHandler:function(){if(!this._dragStartCoords||!this._gotDragged)return this._dragStartCoords=null,this._gotDragged=!1,void this._resetDrag();this._hidePositionMarker();var a=this._findItemForX(this._dragStartCoords[0]),b=this._findItemForX(this._dragCurrentCoords[0]);this._fitSection(a,b),this._dragStartCoords=null,this._gotDragged=!1},_dragStartHandler:function(){d3.event.preventDefault(),d3.event.stopPropagation(),this._gotDragged=!1,this._dragStartCoords=d3.mouse(this._background.node())},_findItemForX:function(a){var b=d3.bisector(function(a){return a.dist}).left,c=this._x.invert(a);return b(this._data,c)},_fitSection:function(a,b){var c=Math.min(a,b),d=Math.max(a,b),e=this._calculateFullExtent(this._data.slice(c,d));this._map.fitBounds(e)},_initToggle:function(){var a=this._container;if(a.setAttribute("aria-haspopup",!0),L.Browser.touch?L.DomEvent.on(a,"click",L.DomEvent.stopPropagation):L.DomEvent.disableClickPropagation(a),this.options.collapsed){this._collapse(),L.Browser.android||L.DomEvent.on(a,"mouseover",this._expand,this).on(a,"mouseout",this._collapse,this);var b=this._button=L.DomUtil.create("a","elevation-toggle",a);b.href="#",b.title="Elevation",L.Browser.touch?L.DomEvent.on(b,"click",L.DomEvent.stop).on(b,"click",this._expand,this):L.DomEvent.on(b,"focus",this._expand,this),this._map.on("click",this._collapse,this)}},_expand:function(){this._container.className=this._container.className.replace(" elevation-collapsed","")},_collapse:function(){L.DomUtil.addClass(this._container,"elevation-collapsed")},_width:function(){var a=this.options;return a.width-a.margins.left-a.margins.right},_height:function(){var a=this.options;return a.height-a.margins.top-a.margins.bottom},_formatter:function(a,b,c){var d;d=0===b?Math.round(a)+"":L.Util.formatNum(a,b)+"";var e=d.split(".");if(e[1]){for(var f=b-e[1].length;f>0;f--)e[1]+="0";d=e.join(c||".")}return d},_appendYaxis:function(a){a.attr("class","y axis").call(d3.svg.axis().scale(this._y).ticks(this.options.yTicks).orient("left")).append("text").attr("x",-45).attr("y",3).style("text-anchor","end").text("m")},_appendXaxis:function(a){a.attr("class","x axis").attr("transform","translate(0,"+this._height()+")").call(d3.svg.axis().scale(this._x).ticks(this.options.xTicks).orient("bottom")).append("text").attr("x",this._width()+20).attr("y",15).style("text-anchor","end").text("km")},_updateAxis:function(){this._xaxisgraphicnode.selectAll("g").remove(),this._xaxisgraphicnode.selectAll("path").remove(),this._xaxisgraphicnode.selectAll("text").remove(),this._yaxisgraphicnode.selectAll("g").remove(),this._yaxisgraphicnode.selectAll("path").remove(),this._yaxisgraphicnode.selectAll("text").remove(),this._appendXaxis(this._xaxisgraphicnode),this._appendYaxis(this._yaxisgraphicnode)},_mouseoutHandler:function(){this._hidePositionMarker()},_hidePositionMarker:function(){this._marker&&(this._map.removeLayer(this._marker),this._marker=null),this._mouseHeightFocus&&(this._mouseHeightFocus.style("visibility","hidden"),this._mouseHeightFocusLabel.style("visibility","hidden")),this._pointG&&this._pointG.style("visibility","hidden"),this._focusG.style("visibility","hidden")},_mousemoveHandler:function(){if(this._data&&0!==this._data.length){var a=d3.mouse(this._background.node()),b=this.options;this._focusG.style("visibility","visible"),this._mousefocus.attr("x1",a[0]).attr("y1",0).attr("x2",a[0]).attr("y2",this._height()).classed("hidden",!1);var c=(d3.bisector(function(a){return a.dist}).left,this._data[this._findItemForX(a[0])]),d=c.altitude,e=c.dist,f=c.latlng,g=b.hoverNumber.formatter(d,b.hoverNumber.decimalsY),h=b.hoverNumber.formatter(e,b.hoverNumber.decimalsX);this._focuslabelX.attr("x",a[0]).text(g+" m"),this._focuslabelY.attr("y",this._height()-5).attr("x",a[0]).text(h+" km");var i=this._map.latLngToLayerPoint(f);if(b.useHeightIndicator){if(!this._mouseHeightFocus){var j=d3.select(".leaflet-overlay-pane svg").append("g");this._mouseHeightFocus=j.append("svg:line").attr("class","height-focus line").attr("x2","0").attr("y2","0").attr("x1","0").attr("y1","0");var k=this._pointG=j.append("g");k.append("svg:circle").attr("r",6).attr("cx",0).attr("cy",0).attr("class","height-focus circle-lower"),this._mouseHeightFocusLabel=j.append("svg:text").attr("class","height-focus-label").style("pointer-events","none")}var l=this._height()/this._maxElevation*d,m=i.y-l;this._mouseHeightFocus.attr("x1",i.x).attr("x2",i.x).attr("y1",i.y).attr("y2",m).style("visibility","visible"),this._pointG.attr("transform","translate("+i.x+","+i.y+")").style("visibility","visible"),this._mouseHeightFocusLabel.attr("x",i.x).attr("y",m).text(d+" m").style("visibility","visible")}else this._marker?this._marker.setLatLng(f):this._marker=new L.Marker(f).addTo(this._map)}},_addGeoJSONData:function(a){if(a){for(var b=this._data||[],c=this._dist||0,d=this._maxElevation||0,e=0;eb[1]||c.forceAxisBounds)&&(b[1]=c.yAxisMax),this._x.domain(a),this._y.domain(b),this._areapath.datum(this._data).attr("d",this._area),this._updateAxis(),this._fullExtent=this._calculateFullExtent(this._data)},_clearData:function(){this._data=null,this._dist=null,this._maxElevation=null},clear:function(){this._clearData(),this._areapath&&(this._areapath.attr("d","M0 0"),this._x.domain([0,1]),this._y.domain([0,1]),this._updateAxis())}}),L.control.elevation=function(a){return new L.Control.Elevation(a)}; \ No newline at end of file diff --git a/bower_components/Leaflet.Elevation/dist/Leaflet.Elevation-0.0.2.src.js b/bower_components/Leaflet.Elevation/dist/Leaflet.Elevation-0.0.2.src.js deleted file mode 100644 index cb2e31e..0000000 --- a/bower_components/Leaflet.Elevation/dist/Leaflet.Elevation-0.0.2.src.js +++ /dev/null @@ -1,675 +0,0 @@ -L.Control.Elevation = L.Control.extend({ - options: { - position: "topright", - theme: "lime-theme", - width: 600, - height: 175, - margins: { - top: 10, - right: 20, - bottom: 30, - left: 60 - }, - useHeightIndicator: true, - interpolation: "linear", - hoverNumber: { - decimalsX: 3, - decimalsY: 0, - formatter: undefined - }, - xTicks: undefined, - yTicks: undefined, - collapsed: false, - yAxisMin: undefined, - yAxisMax: undefined, - forceAxisBounds: false - }, - - onRemove: function(map) { - this._container = null; - }, - - onAdd: function(map) { - this._map = map; - - var opts = this.options; - var margin = opts.margins; - opts.xTicks = opts.xTicks || Math.round(this._width() / 75); - opts.yTicks = opts.yTicks || Math.round(this._height() / 30); - opts.hoverNumber.formatter = opts.hoverNumber.formatter || this._formatter; - - //append theme name on body - d3.select("body").classed(opts.theme, true); - - var x = this._x = d3.scale.linear() - .range([0, this._width()]); - - var y = this._y = d3.scale.linear() - .range([this._height(), 0]); - - var area = this._area = d3.svg.area() - .interpolate(opts.interpolation) - .x(function(d) { - return x(d.dist); - }) - .y0(this._height()) - .y1(function(d) { - return y(d.altitude); - }); - - var container = this._container = L.DomUtil.create("div", "elevation"); - - this._initToggle(); - - var cont = d3.select(container); - cont.attr("width", opts.width); - var svg = cont.append("svg"); - svg.attr("width", opts.width) - .attr("class", "background") - .attr("height", opts.height) - .append("g") - .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); - - var line = d3.svg.line(); - line = line - .x(function(d) { - return d3.mouse(svg.select("g"))[0]; - }) - .y(function(d) { - return this._height(); - }); - - var g = d3.select(this._container).select("svg").select("g"); - - this._areapath = g.append("path") - .attr("class", "area"); - - var background = this._background = g.append("rect") - .attr("width", this._width()) - .attr("height", this._height()) - .style("fill", "none") - .style("stroke", "none") - .style("pointer-events", "all"); - - if (L.Browser.touch) { - - background.on("touchmove.drag", this._dragHandler.bind(this)). - on("touchstart.drag", this._dragStartHandler.bind(this)). - on("touchstart.focus", this._mousemoveHandler.bind(this)); - L.DomEvent.on(this._container, 'touchend', this._dragEndHandler, this); - - } else { - - background.on("mousemove.focus", this._mousemoveHandler.bind(this)). - on("mouseout.focus", this._mouseoutHandler.bind(this)). - on("mousedown.drag", this._dragStartHandler.bind(this)). - on("mousemove.drag", this._dragHandler.bind(this)); - L.DomEvent.on(this._container, 'mouseup', this._dragEndHandler, this); - - } - - this._xaxisgraphicnode = g.append("g"); - this._yaxisgraphicnode = g.append("g"); - this._appendXaxis(this._xaxisgraphicnode); - this._appendYaxis(this._yaxisgraphicnode); - - var focusG = this._focusG = g.append("g"); - this._mousefocus = focusG.append('svg:line') - .attr('class', 'mouse-focus-line') - .attr('x2', '0') - .attr('y2', '0') - .attr('x1', '0') - .attr('y1', '0'); - this._focuslabelX = focusG.append("svg:text") - .style("pointer-events", "none") - .attr("class", "mouse-focus-label-x"); - this._focuslabelY = focusG.append("svg:text") - .style("pointer-events", "none") - .attr("class", "mouse-focus-label-y"); - - if (this._data) { - this._applyData(); - } - - return container; - }, - - _dragHandler: function() { - - //we don´t want map events to occur here - d3.event.preventDefault(); - d3.event.stopPropagation(); - - this._gotDragged = true; - - this._drawDragRectangle(); - - }, - - /* - * Draws the currently dragged rectabgle over the chart. - */ - _drawDragRectangle: function() { - - if (!this._dragStartCoords) { - return; - } - - var dragEndCoords = this._dragCurrentCoords = d3.mouse(this._background.node()); - - var x1 = Math.min(this._dragStartCoords[0], dragEndCoords[0]), - x2 = Math.max(this._dragStartCoords[0], dragEndCoords[0]); - - if (!this._dragRectangle && !this._dragRectangleG) { - var g = d3.select(this._container).select("svg").select("g"); - - this._dragRectangleG = g.append("g"); - - this._dragRectangle = this._dragRectangleG.append("rect") - .attr("width", x2 - x1) - .attr("height", this._height()) - .attr("x", x1) - .attr('class', 'mouse-drag') - .style("pointer-events", "none"); - } else { - this._dragRectangle.attr("width", x2 - x1) - .attr("x", x1); - } - - }, - - /* - * Removes the drag rectangle and zoms back to the total extent of the data. - */ - _resetDrag: function() { - - if (this._dragRectangleG) { - - this._dragRectangleG.remove(); - this._dragRectangleG = null; - this._dragRectangle = null; - - this._hidePositionMarker(); - - this._map.fitBounds(this._fullExtent); - - } - - }, - - /* - * Handles end of dragg operations. Zooms the map to the selected items extent. - */ - _dragEndHandler: function() { - - if (!this._dragStartCoords || !this._gotDragged) { - this._dragStartCoords = null; - this._gotDragged = false; - this._resetDrag(); - return; - } - - this._hidePositionMarker(); - - var item1 = this._findItemForX(this._dragStartCoords[0]), - item2 = this._findItemForX(this._dragCurrentCoords[0]); - - this._fitSection(item1, item2); - - this._dragStartCoords = null; - this._gotDragged = false; - - }, - - _dragStartHandler: function() { - - d3.event.preventDefault(); - d3.event.stopPropagation(); - - this._gotDragged = false; - - this._dragStartCoords = d3.mouse(this._background.node()); - - }, - - /* - * Finds a data entry for a given x-coordinate of the diagram - */ - _findItemForX: function(x) { - var bisect = d3.bisector(function(d) { - return d.dist; - }).left; - var xinvert = this._x.invert(x); - return bisect(this._data, xinvert); - }, - - /** Make the map fit the route section between given indexes. */ - _fitSection: function(index1, index2) { - - var start = Math.min(index1, index2), - end = Math.max(index1, index2); - - var ext = this._calculateFullExtent(this._data.slice(start, end)); - - this._map.fitBounds(ext); - - }, - - _initToggle: function() { - - /* inspired by L.Control.Layers */ - - var container = this._container; - - //Makes this work on IE10 Touch devices by stopping it from firing a mouseout event when the touch is released - container.setAttribute('aria-haspopup', true); - - if (!L.Browser.touch) { - L.DomEvent - .disableClickPropagation(container); - //.disableScrollPropagation(container); - } else { - L.DomEvent.on(container, 'click', L.DomEvent.stopPropagation); - } - - if (this.options.collapsed) { - this._collapse(); - - if (!L.Browser.android) { - L.DomEvent - .on(container, 'mouseover', this._expand, this) - .on(container, 'mouseout', this._collapse, this); - } - var link = this._button = L.DomUtil.create('a', 'elevation-toggle', container); - link.href = '#'; - link.title = 'Elevation'; - - if (L.Browser.touch) { - L.DomEvent - .on(link, 'click', L.DomEvent.stop) - .on(link, 'click', this._expand, this); - } else { - L.DomEvent.on(link, 'focus', this._expand, this); - } - - this._map.on('click', this._collapse, this); - // TODO keyboard accessibility - } - }, - - _expand: function() { - this._container.className = this._container.className.replace(' elevation-collapsed', ''); - }, - - _collapse: function() { - L.DomUtil.addClass(this._container, 'elevation-collapsed'); - }, - - _width: function() { - var opts = this.options; - return opts.width - opts.margins.left - opts.margins.right; - }, - - _height: function() { - var opts = this.options; - return opts.height - opts.margins.top - opts.margins.bottom; - }, - - /* - * Fromatting funciton using the given decimals and seperator - */ - _formatter: function(num, dec, sep) { - var res; - if (dec === 0) { - res = Math.round(num) + ""; - } else { - res = L.Util.formatNum(num, dec) + ""; - } - var numbers = res.split("."); - if (numbers[1]) { - var d = dec - numbers[1].length; - for (; d > 0; d--) { - numbers[1] += "0"; - } - res = numbers.join(sep || "."); - } - return res; - }, - - _appendYaxis: function(y) { - y.attr("class", "y axis") - .call(d3.svg.axis() - .scale(this._y) - .ticks(this.options.yTicks) - .orient("left")) - .append("text") - .attr("x", -45) - .attr("y", 3) - .style("text-anchor", "end") - .text("m"); - }, - - _appendXaxis: function(x) { - x.attr("class", "x axis") - .attr("transform", "translate(0," + this._height() + ")") - .call(d3.svg.axis() - .scale(this._x) - .ticks(this.options.xTicks) - .orient("bottom")) - .append("text") - .attr("x", this._width() + 20) - .attr("y", 15) - .style("text-anchor", "end") - .text("km"); - }, - - _updateAxis: function() { - this._xaxisgraphicnode.selectAll("g").remove(); - this._xaxisgraphicnode.selectAll("path").remove(); - this._xaxisgraphicnode.selectAll("text").remove(); - this._yaxisgraphicnode.selectAll("g").remove(); - this._yaxisgraphicnode.selectAll("path").remove(); - this._yaxisgraphicnode.selectAll("text").remove(); - this._appendXaxis(this._xaxisgraphicnode); - this._appendYaxis(this._yaxisgraphicnode); - }, - - _mouseoutHandler: function() { - - this._hidePositionMarker(); - - }, - - /* - * Hides the position-/heigth indication marker drawn onto the map - */ - _hidePositionMarker: function() { - - if (this._marker) { - this._map.removeLayer(this._marker); - this._marker = null; - } - if (this._mouseHeightFocus) { - this._mouseHeightFocus.style("visibility", "hidden"); - this._mouseHeightFocusLabel.style("visibility", "hidden"); - } - if (this._pointG) { - this._pointG.style("visibility", "hidden"); - } - this._focusG.style("visibility", "hidden"); - - }, - - /* - * Handles the moueseover the chart and displays distance and altitude level - */ - _mousemoveHandler: function(d, i, ctx) { - if (!this._data || this._data.length === 0) { - return; - } - var coords = d3.mouse(this._background.node()); - var opts = this.options; - this._focusG.style("visibility", "visible"); - this._mousefocus.attr('x1', coords[0]) - .attr('y1', 0) - .attr('x2', coords[0]) - .attr('y2', this._height()) - .classed('hidden', false); - var bisect = d3.bisector(function(d) { - return d.dist; - }).left; - - var item = this._data[this._findItemForX(coords[0])], - alt = item.altitude, - dist = item.dist, - ll = item.latlng, - numY = opts.hoverNumber.formatter(alt, opts.hoverNumber.decimalsY), - numX = opts.hoverNumber.formatter(dist, opts.hoverNumber.decimalsX); - - this._focuslabelX.attr("x", coords[0]) - .text(numY + " m"); - this._focuslabelY.attr("y", this._height() - 5) - .attr("x", coords[0]) - .text(numX + " km"); - - var layerpoint = this._map.latLngToLayerPoint(ll); - - //if we use a height indicator we create one with SVG - //otherwise we show a marker - if (opts.useHeightIndicator) { - - if (!this._mouseHeightFocus) { - - var heightG = d3.select(".leaflet-overlay-pane svg") - .append("g"); - this._mouseHeightFocus = heightG.append('svg:line') - .attr('class', 'height-focus line') - .attr('x2', '0') - .attr('y2', '0') - .attr('x1', '0') - .attr('y1', '0'); - - var pointG = this._pointG = heightG.append("g"); - pointG.append("svg:circle") - .attr("r", 6) - .attr("cx", 0) - .attr("cy", 0) - .attr("class", "height-focus circle-lower"); - - this._mouseHeightFocusLabel = heightG.append("svg:text") - .attr("class", "height-focus-label") - .style("pointer-events", "none"); - - } - - var normalizedAlt = this._height() / this._maxElevation * alt; - var normalizedY = layerpoint.y - normalizedAlt; - this._mouseHeightFocus.attr("x1", layerpoint.x) - .attr("x2", layerpoint.x) - .attr("y1", layerpoint.y) - .attr("y2", normalizedY) - .style("visibility", "visible"); - - this._pointG.attr("transform", "translate(" + layerpoint.x + "," + layerpoint.y + ")") - .style("visibility", "visible"); - - this._mouseHeightFocusLabel.attr("x", layerpoint.x) - .attr("y", normalizedY) - .text(alt + " m") - .style("visibility", "visible"); - - } else { - - if (!this._marker) { - - this._marker = new L.Marker(ll).addTo(this._map); - - } else { - - this._marker.setLatLng(ll); - - } - - } - - }, - - /* - * Parsing of GeoJSON data lines and their elevation in z-coordinate - */ - _addGeoJSONData: function(coords) { - if (coords) { - var data = this._data || []; - var dist = this._dist || 0; - var ele = this._maxElevation || 0; - for (var i = 0; i < coords.length; i++) { - var s = new L.LatLng(coords[i][1], coords[i][0]); - var e = new L.LatLng(coords[i ? i - 1 : 0][1], coords[i ? i - 1 : 0][0]); - var newdist = s.distanceTo(e); - dist = dist + Math.round(newdist / 1000 * 100000) / 100000; - ele = ele < coords[i][2] ? coords[i][2] : ele; - data.push({ - dist: dist, - altitude: coords[i][2], - x: coords[i][0], - y: coords[i][1], - latlng: s - }); - } - this._dist = dist; - this._data = data; - this._maxElevation = ele; - } - }, - - /* - * Parsing function for GPX data as used by https://github.com/mpetazzoni/leaflet-gpx - */ - _addGPXdata: function(coords) { - if (coords) { - var data = this._data || []; - var dist = this._dist || 0; - var ele = this._maxElevation || 0; - for (var i = 0; i < coords.length; i++) { - var s = coords[i]; - var e = coords[i ? i - 1 : 0]; - var newdist = s.distanceTo(e); - dist = dist + Math.round(newdist / 1000 * 100000) / 100000; - ele = ele < s.meta.ele ? s.meta.ele : ele; - data.push({ - dist: dist, - altitude: s.meta.ele, - x: s.lng, - y: s.lat, - latlng: s - }); - } - this._dist = dist; - this._data = data; - this._maxElevation = ele; - } - }, - - _addData: function(d) { - var geom = d && d.geometry && d.geometry; - var i; - - if (geom) { - switch (geom.type) { - case 'LineString': - this._addGeoJSONData(geom.coordinates); - break; - - case 'MultiLineString': - for (i = 0; i < geom.coordinates.length; i++) { - this._addGeoJSONData(geom.coordinates[i]); - } - break; - - default: - throw new Error('Invalid GeoJSON object.'); - } - } - - var feat = d && d.type === "FeatureCollection"; - if (feat) { - for (i = 0; i < d.features.length; i++) { - this._addData(d.features[i]); - } - } - - if (d && d._latlngs) { - this._addGPXdata(d._latlngs); - } - }, - - /* - * Calculates the full extent of the data array - */ - _calculateFullExtent: function(data) { - - if (!data || data.length < 1) { - throw new Error("no data in parameters"); - } - - var ext = new L.latLngBounds(data[0].latlng, data[0].latlng); - - data.forEach(function(item) { - ext.extend(item.latlng); - }); - - return ext; - - }, - - /* - * Add data to the diagram either from GPX or GeoJSON and - * update the axis domain and data - */ - addData: function(d) { - this._addData(d); - if (this._container) { - this._applyData(); - } - }, - - _applyData: function() { - var xdomain = d3.extent(this._data, function(d) { - return d.dist; - }); - var ydomain = d3.extent(this._data, function(d) { - return d.altitude; - }); - var opts = this.options; - - if (opts.yAxisMin !== undefined && (opts.yAxisMin < ydomain[0] || opts.forceAxisBounds)) { - ydomain[0] = opts.yAxisMin; - } - if (opts.yAxisMax !== undefined && (opts.yAxisMax > ydomain[1] || opts.forceAxisBounds)) { - ydomain[1] = opts.yAxisMax; - } - - this._x.domain(xdomain); - this._y.domain(ydomain); - this._areapath.datum(this._data) - .attr("d", this._area); - this._updateAxis(); - - this._fullExtent = this._calculateFullExtent(this._data); - }, - - /* - * Reset data - */ - _clearData: function() { - this._data = null; - this._dist = null; - this._maxElevation = null; - }, - - /* - * Reset data and display - */ - clear: function() { - - this._clearData(); - - if (!this._areapath) { - return; - } - - // workaround for 'Error: Problem parsing d=""' in Webkit when empty data - // https://groups.google.com/d/msg/d3-js/7rFxpXKXFhI/HzIO_NPeDuMJ - //this._areapath.datum(this._data).attr("d", this._area); - this._areapath.attr("d", "M0 0"); - - this._x.domain([0, 1]); - this._y.domain([0, 1]); - this._updateAxis(); - } - -}); - -L.control.elevation = function(options) { - return new L.Control.Elevation(options); -}; \ No newline at end of file diff --git a/bower_components/Leaflet.Elevation/dist/images/elevation.png b/bower_components/Leaflet.Elevation/dist/images/elevation.png deleted file mode 100644 index b2c291e..0000000 Binary files a/bower_components/Leaflet.Elevation/dist/images/elevation.png and /dev/null differ diff --git a/bower_components/Leaflet.Elevation/src/L.Control.Elevation.js b/bower_components/Leaflet.Elevation/src/L.Control.Elevation.js deleted file mode 100644 index cb2e31e..0000000 --- a/bower_components/Leaflet.Elevation/src/L.Control.Elevation.js +++ /dev/null @@ -1,675 +0,0 @@ -L.Control.Elevation = L.Control.extend({ - options: { - position: "topright", - theme: "lime-theme", - width: 600, - height: 175, - margins: { - top: 10, - right: 20, - bottom: 30, - left: 60 - }, - useHeightIndicator: true, - interpolation: "linear", - hoverNumber: { - decimalsX: 3, - decimalsY: 0, - formatter: undefined - }, - xTicks: undefined, - yTicks: undefined, - collapsed: false, - yAxisMin: undefined, - yAxisMax: undefined, - forceAxisBounds: false - }, - - onRemove: function(map) { - this._container = null; - }, - - onAdd: function(map) { - this._map = map; - - var opts = this.options; - var margin = opts.margins; - opts.xTicks = opts.xTicks || Math.round(this._width() / 75); - opts.yTicks = opts.yTicks || Math.round(this._height() / 30); - opts.hoverNumber.formatter = opts.hoverNumber.formatter || this._formatter; - - //append theme name on body - d3.select("body").classed(opts.theme, true); - - var x = this._x = d3.scale.linear() - .range([0, this._width()]); - - var y = this._y = d3.scale.linear() - .range([this._height(), 0]); - - var area = this._area = d3.svg.area() - .interpolate(opts.interpolation) - .x(function(d) { - return x(d.dist); - }) - .y0(this._height()) - .y1(function(d) { - return y(d.altitude); - }); - - var container = this._container = L.DomUtil.create("div", "elevation"); - - this._initToggle(); - - var cont = d3.select(container); - cont.attr("width", opts.width); - var svg = cont.append("svg"); - svg.attr("width", opts.width) - .attr("class", "background") - .attr("height", opts.height) - .append("g") - .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); - - var line = d3.svg.line(); - line = line - .x(function(d) { - return d3.mouse(svg.select("g"))[0]; - }) - .y(function(d) { - return this._height(); - }); - - var g = d3.select(this._container).select("svg").select("g"); - - this._areapath = g.append("path") - .attr("class", "area"); - - var background = this._background = g.append("rect") - .attr("width", this._width()) - .attr("height", this._height()) - .style("fill", "none") - .style("stroke", "none") - .style("pointer-events", "all"); - - if (L.Browser.touch) { - - background.on("touchmove.drag", this._dragHandler.bind(this)). - on("touchstart.drag", this._dragStartHandler.bind(this)). - on("touchstart.focus", this._mousemoveHandler.bind(this)); - L.DomEvent.on(this._container, 'touchend', this._dragEndHandler, this); - - } else { - - background.on("mousemove.focus", this._mousemoveHandler.bind(this)). - on("mouseout.focus", this._mouseoutHandler.bind(this)). - on("mousedown.drag", this._dragStartHandler.bind(this)). - on("mousemove.drag", this._dragHandler.bind(this)); - L.DomEvent.on(this._container, 'mouseup', this._dragEndHandler, this); - - } - - this._xaxisgraphicnode = g.append("g"); - this._yaxisgraphicnode = g.append("g"); - this._appendXaxis(this._xaxisgraphicnode); - this._appendYaxis(this._yaxisgraphicnode); - - var focusG = this._focusG = g.append("g"); - this._mousefocus = focusG.append('svg:line') - .attr('class', 'mouse-focus-line') - .attr('x2', '0') - .attr('y2', '0') - .attr('x1', '0') - .attr('y1', '0'); - this._focuslabelX = focusG.append("svg:text") - .style("pointer-events", "none") - .attr("class", "mouse-focus-label-x"); - this._focuslabelY = focusG.append("svg:text") - .style("pointer-events", "none") - .attr("class", "mouse-focus-label-y"); - - if (this._data) { - this._applyData(); - } - - return container; - }, - - _dragHandler: function() { - - //we don´t want map events to occur here - d3.event.preventDefault(); - d3.event.stopPropagation(); - - this._gotDragged = true; - - this._drawDragRectangle(); - - }, - - /* - * Draws the currently dragged rectabgle over the chart. - */ - _drawDragRectangle: function() { - - if (!this._dragStartCoords) { - return; - } - - var dragEndCoords = this._dragCurrentCoords = d3.mouse(this._background.node()); - - var x1 = Math.min(this._dragStartCoords[0], dragEndCoords[0]), - x2 = Math.max(this._dragStartCoords[0], dragEndCoords[0]); - - if (!this._dragRectangle && !this._dragRectangleG) { - var g = d3.select(this._container).select("svg").select("g"); - - this._dragRectangleG = g.append("g"); - - this._dragRectangle = this._dragRectangleG.append("rect") - .attr("width", x2 - x1) - .attr("height", this._height()) - .attr("x", x1) - .attr('class', 'mouse-drag') - .style("pointer-events", "none"); - } else { - this._dragRectangle.attr("width", x2 - x1) - .attr("x", x1); - } - - }, - - /* - * Removes the drag rectangle and zoms back to the total extent of the data. - */ - _resetDrag: function() { - - if (this._dragRectangleG) { - - this._dragRectangleG.remove(); - this._dragRectangleG = null; - this._dragRectangle = null; - - this._hidePositionMarker(); - - this._map.fitBounds(this._fullExtent); - - } - - }, - - /* - * Handles end of dragg operations. Zooms the map to the selected items extent. - */ - _dragEndHandler: function() { - - if (!this._dragStartCoords || !this._gotDragged) { - this._dragStartCoords = null; - this._gotDragged = false; - this._resetDrag(); - return; - } - - this._hidePositionMarker(); - - var item1 = this._findItemForX(this._dragStartCoords[0]), - item2 = this._findItemForX(this._dragCurrentCoords[0]); - - this._fitSection(item1, item2); - - this._dragStartCoords = null; - this._gotDragged = false; - - }, - - _dragStartHandler: function() { - - d3.event.preventDefault(); - d3.event.stopPropagation(); - - this._gotDragged = false; - - this._dragStartCoords = d3.mouse(this._background.node()); - - }, - - /* - * Finds a data entry for a given x-coordinate of the diagram - */ - _findItemForX: function(x) { - var bisect = d3.bisector(function(d) { - return d.dist; - }).left; - var xinvert = this._x.invert(x); - return bisect(this._data, xinvert); - }, - - /** Make the map fit the route section between given indexes. */ - _fitSection: function(index1, index2) { - - var start = Math.min(index1, index2), - end = Math.max(index1, index2); - - var ext = this._calculateFullExtent(this._data.slice(start, end)); - - this._map.fitBounds(ext); - - }, - - _initToggle: function() { - - /* inspired by L.Control.Layers */ - - var container = this._container; - - //Makes this work on IE10 Touch devices by stopping it from firing a mouseout event when the touch is released - container.setAttribute('aria-haspopup', true); - - if (!L.Browser.touch) { - L.DomEvent - .disableClickPropagation(container); - //.disableScrollPropagation(container); - } else { - L.DomEvent.on(container, 'click', L.DomEvent.stopPropagation); - } - - if (this.options.collapsed) { - this._collapse(); - - if (!L.Browser.android) { - L.DomEvent - .on(container, 'mouseover', this._expand, this) - .on(container, 'mouseout', this._collapse, this); - } - var link = this._button = L.DomUtil.create('a', 'elevation-toggle', container); - link.href = '#'; - link.title = 'Elevation'; - - if (L.Browser.touch) { - L.DomEvent - .on(link, 'click', L.DomEvent.stop) - .on(link, 'click', this._expand, this); - } else { - L.DomEvent.on(link, 'focus', this._expand, this); - } - - this._map.on('click', this._collapse, this); - // TODO keyboard accessibility - } - }, - - _expand: function() { - this._container.className = this._container.className.replace(' elevation-collapsed', ''); - }, - - _collapse: function() { - L.DomUtil.addClass(this._container, 'elevation-collapsed'); - }, - - _width: function() { - var opts = this.options; - return opts.width - opts.margins.left - opts.margins.right; - }, - - _height: function() { - var opts = this.options; - return opts.height - opts.margins.top - opts.margins.bottom; - }, - - /* - * Fromatting funciton using the given decimals and seperator - */ - _formatter: function(num, dec, sep) { - var res; - if (dec === 0) { - res = Math.round(num) + ""; - } else { - res = L.Util.formatNum(num, dec) + ""; - } - var numbers = res.split("."); - if (numbers[1]) { - var d = dec - numbers[1].length; - for (; d > 0; d--) { - numbers[1] += "0"; - } - res = numbers.join(sep || "."); - } - return res; - }, - - _appendYaxis: function(y) { - y.attr("class", "y axis") - .call(d3.svg.axis() - .scale(this._y) - .ticks(this.options.yTicks) - .orient("left")) - .append("text") - .attr("x", -45) - .attr("y", 3) - .style("text-anchor", "end") - .text("m"); - }, - - _appendXaxis: function(x) { - x.attr("class", "x axis") - .attr("transform", "translate(0," + this._height() + ")") - .call(d3.svg.axis() - .scale(this._x) - .ticks(this.options.xTicks) - .orient("bottom")) - .append("text") - .attr("x", this._width() + 20) - .attr("y", 15) - .style("text-anchor", "end") - .text("km"); - }, - - _updateAxis: function() { - this._xaxisgraphicnode.selectAll("g").remove(); - this._xaxisgraphicnode.selectAll("path").remove(); - this._xaxisgraphicnode.selectAll("text").remove(); - this._yaxisgraphicnode.selectAll("g").remove(); - this._yaxisgraphicnode.selectAll("path").remove(); - this._yaxisgraphicnode.selectAll("text").remove(); - this._appendXaxis(this._xaxisgraphicnode); - this._appendYaxis(this._yaxisgraphicnode); - }, - - _mouseoutHandler: function() { - - this._hidePositionMarker(); - - }, - - /* - * Hides the position-/heigth indication marker drawn onto the map - */ - _hidePositionMarker: function() { - - if (this._marker) { - this._map.removeLayer(this._marker); - this._marker = null; - } - if (this._mouseHeightFocus) { - this._mouseHeightFocus.style("visibility", "hidden"); - this._mouseHeightFocusLabel.style("visibility", "hidden"); - } - if (this._pointG) { - this._pointG.style("visibility", "hidden"); - } - this._focusG.style("visibility", "hidden"); - - }, - - /* - * Handles the moueseover the chart and displays distance and altitude level - */ - _mousemoveHandler: function(d, i, ctx) { - if (!this._data || this._data.length === 0) { - return; - } - var coords = d3.mouse(this._background.node()); - var opts = this.options; - this._focusG.style("visibility", "visible"); - this._mousefocus.attr('x1', coords[0]) - .attr('y1', 0) - .attr('x2', coords[0]) - .attr('y2', this._height()) - .classed('hidden', false); - var bisect = d3.bisector(function(d) { - return d.dist; - }).left; - - var item = this._data[this._findItemForX(coords[0])], - alt = item.altitude, - dist = item.dist, - ll = item.latlng, - numY = opts.hoverNumber.formatter(alt, opts.hoverNumber.decimalsY), - numX = opts.hoverNumber.formatter(dist, opts.hoverNumber.decimalsX); - - this._focuslabelX.attr("x", coords[0]) - .text(numY + " m"); - this._focuslabelY.attr("y", this._height() - 5) - .attr("x", coords[0]) - .text(numX + " km"); - - var layerpoint = this._map.latLngToLayerPoint(ll); - - //if we use a height indicator we create one with SVG - //otherwise we show a marker - if (opts.useHeightIndicator) { - - if (!this._mouseHeightFocus) { - - var heightG = d3.select(".leaflet-overlay-pane svg") - .append("g"); - this._mouseHeightFocus = heightG.append('svg:line') - .attr('class', 'height-focus line') - .attr('x2', '0') - .attr('y2', '0') - .attr('x1', '0') - .attr('y1', '0'); - - var pointG = this._pointG = heightG.append("g"); - pointG.append("svg:circle") - .attr("r", 6) - .attr("cx", 0) - .attr("cy", 0) - .attr("class", "height-focus circle-lower"); - - this._mouseHeightFocusLabel = heightG.append("svg:text") - .attr("class", "height-focus-label") - .style("pointer-events", "none"); - - } - - var normalizedAlt = this._height() / this._maxElevation * alt; - var normalizedY = layerpoint.y - normalizedAlt; - this._mouseHeightFocus.attr("x1", layerpoint.x) - .attr("x2", layerpoint.x) - .attr("y1", layerpoint.y) - .attr("y2", normalizedY) - .style("visibility", "visible"); - - this._pointG.attr("transform", "translate(" + layerpoint.x + "," + layerpoint.y + ")") - .style("visibility", "visible"); - - this._mouseHeightFocusLabel.attr("x", layerpoint.x) - .attr("y", normalizedY) - .text(alt + " m") - .style("visibility", "visible"); - - } else { - - if (!this._marker) { - - this._marker = new L.Marker(ll).addTo(this._map); - - } else { - - this._marker.setLatLng(ll); - - } - - } - - }, - - /* - * Parsing of GeoJSON data lines and their elevation in z-coordinate - */ - _addGeoJSONData: function(coords) { - if (coords) { - var data = this._data || []; - var dist = this._dist || 0; - var ele = this._maxElevation || 0; - for (var i = 0; i < coords.length; i++) { - var s = new L.LatLng(coords[i][1], coords[i][0]); - var e = new L.LatLng(coords[i ? i - 1 : 0][1], coords[i ? i - 1 : 0][0]); - var newdist = s.distanceTo(e); - dist = dist + Math.round(newdist / 1000 * 100000) / 100000; - ele = ele < coords[i][2] ? coords[i][2] : ele; - data.push({ - dist: dist, - altitude: coords[i][2], - x: coords[i][0], - y: coords[i][1], - latlng: s - }); - } - this._dist = dist; - this._data = data; - this._maxElevation = ele; - } - }, - - /* - * Parsing function for GPX data as used by https://github.com/mpetazzoni/leaflet-gpx - */ - _addGPXdata: function(coords) { - if (coords) { - var data = this._data || []; - var dist = this._dist || 0; - var ele = this._maxElevation || 0; - for (var i = 0; i < coords.length; i++) { - var s = coords[i]; - var e = coords[i ? i - 1 : 0]; - var newdist = s.distanceTo(e); - dist = dist + Math.round(newdist / 1000 * 100000) / 100000; - ele = ele < s.meta.ele ? s.meta.ele : ele; - data.push({ - dist: dist, - altitude: s.meta.ele, - x: s.lng, - y: s.lat, - latlng: s - }); - } - this._dist = dist; - this._data = data; - this._maxElevation = ele; - } - }, - - _addData: function(d) { - var geom = d && d.geometry && d.geometry; - var i; - - if (geom) { - switch (geom.type) { - case 'LineString': - this._addGeoJSONData(geom.coordinates); - break; - - case 'MultiLineString': - for (i = 0; i < geom.coordinates.length; i++) { - this._addGeoJSONData(geom.coordinates[i]); - } - break; - - default: - throw new Error('Invalid GeoJSON object.'); - } - } - - var feat = d && d.type === "FeatureCollection"; - if (feat) { - for (i = 0; i < d.features.length; i++) { - this._addData(d.features[i]); - } - } - - if (d && d._latlngs) { - this._addGPXdata(d._latlngs); - } - }, - - /* - * Calculates the full extent of the data array - */ - _calculateFullExtent: function(data) { - - if (!data || data.length < 1) { - throw new Error("no data in parameters"); - } - - var ext = new L.latLngBounds(data[0].latlng, data[0].latlng); - - data.forEach(function(item) { - ext.extend(item.latlng); - }); - - return ext; - - }, - - /* - * Add data to the diagram either from GPX or GeoJSON and - * update the axis domain and data - */ - addData: function(d) { - this._addData(d); - if (this._container) { - this._applyData(); - } - }, - - _applyData: function() { - var xdomain = d3.extent(this._data, function(d) { - return d.dist; - }); - var ydomain = d3.extent(this._data, function(d) { - return d.altitude; - }); - var opts = this.options; - - if (opts.yAxisMin !== undefined && (opts.yAxisMin < ydomain[0] || opts.forceAxisBounds)) { - ydomain[0] = opts.yAxisMin; - } - if (opts.yAxisMax !== undefined && (opts.yAxisMax > ydomain[1] || opts.forceAxisBounds)) { - ydomain[1] = opts.yAxisMax; - } - - this._x.domain(xdomain); - this._y.domain(ydomain); - this._areapath.datum(this._data) - .attr("d", this._area); - this._updateAxis(); - - this._fullExtent = this._calculateFullExtent(this._data); - }, - - /* - * Reset data - */ - _clearData: function() { - this._data = null; - this._dist = null; - this._maxElevation = null; - }, - - /* - * Reset data and display - */ - clear: function() { - - this._clearData(); - - if (!this._areapath) { - return; - } - - // workaround for 'Error: Problem parsing d=""' in Webkit when empty data - // https://groups.google.com/d/msg/d3-js/7rFxpXKXFhI/HzIO_NPeDuMJ - //this._areapath.datum(this._data).attr("d", this._area); - this._areapath.attr("d", "M0 0"); - - this._x.domain([0, 1]); - this._y.domain([0, 1]); - this._updateAxis(); - } - -}); - -L.control.elevation = function(options) { - return new L.Control.Elevation(options); -}; \ No newline at end of file diff --git a/bower_components/Leaflet.Elevation/src/css/L.Control.Elevation.less b/bower_components/Leaflet.Elevation/src/css/L.Control.Elevation.less deleted file mode 100644 index 7dce5c3..0000000 --- a/bower_components/Leaflet.Elevation/src/css/L.Control.Elevation.less +++ /dev/null @@ -1,70 +0,0 @@ -.@{theme}{ - - .leaflet-control.elevation .background{ - background-color:@background; - .rounded-corners; - } - - .leaflet-control.elevation{ - .axis path, - .axis line { - fill: none; - stroke: @axis-color; - stroke-width:@stroke-width-axis; - } - } - - .leaflet-control.elevation .area { - fill: @base-color; - } - - .leaflet-control.elevation .mouse-focus-line { - pointer-events: none; - stroke-width:@stroke-width-mouse-focus; - stroke:@stroke-color; - } - - .leaflet-control.elevation .elevation-toggle { - cursor: pointer; - box-shadow: 0 1px 7px rgba(0,0,0,0.4); - -webkit-border-radius: 5px; - border-radius: 5px; - width: 36px; - height: 36px; - background: url('images/elevation.png') no-repeat center center #f8f8f9; - } - - .leaflet-control.elevation-collapsed .background { - display: none; - } - .leaflet-control.elevation-collapsed .elevation-toggle { - display: block; - } - - .leaflet-control.elevation{ - .mouse-focus-label-y, - .mouse-focus-label-x { - - } - .mouse-drag{ - fill:@drag-color; - } - } - - .leaflet-overlay-pane { - .height-focus{ - stroke:@base-color; - fill:@base-color; - } - .height-focus.line{ - pointer-events: none; - stroke-width:@stroke-width-height-focus; - } - .height-focus-label{ - - } - .height-focus.circle-lower { - - } - } -} diff --git a/bower_components/Leaflet.Elevation/src/css/themes/lime.less b/bower_components/Leaflet.Elevation/src/css/themes/lime.less deleted file mode 100644 index 889c116..0000000 --- a/bower_components/Leaflet.Elevation/src/css/themes/lime.less +++ /dev/null @@ -1,20 +0,0 @@ -@theme : lime-theme; -@base-color : #9CC222; -@highlight-color : #637E0B; -@background : fade(@base-color,20%); -@drag-color : fade(@highlight-color,40%); -@axis-color : darken(@base-color,20%); -@stroke-color : darken(@base-color,40%); -@stroke-width-mouse-focus : 1; -@stroke-width-height-focus: 2; -@stroke-width-axis : 2; - -.rounded-corners (@radius: 5px) { - -webkit-border-radius: @radius; - -moz-border-radius: @radius; - -ms-border-radius: @radius; - -o-border-radius: @radius; - border-radius: @radius; -} - -@import "../L.Control.Elevation.less"; \ No newline at end of file diff --git a/bower_components/Leaflet.Elevation/src/css/themes/purple.less b/bower_components/Leaflet.Elevation/src/css/themes/purple.less deleted file mode 100644 index b135359..0000000 --- a/bower_components/Leaflet.Elevation/src/css/themes/purple.less +++ /dev/null @@ -1,20 +0,0 @@ -@theme : purple-theme; -@base-color : #732C7B; -@highlight-color : #4A0E50; -@background : fade(@base-color,20%); -@drag-color : fade(@highlight-color,40%); -@axis-color : darken(@base-color,20%); -@stroke-color : darken(@base-color,40%); -@stroke-width-mouse-focus : 1; -@stroke-width-height-focus: 2; -@stroke-width-axis : 2; - -.rounded-corners (@radius: 5px) { - -webkit-border-radius: @radius; - -moz-border-radius: @radius; - -ms-border-radius: @radius; - -o-border-radius: @radius; - border-radius: @radius; -} - -@import "../L.Control.Elevation.less"; \ No newline at end of file diff --git a/bower_components/Leaflet.Elevation/src/css/themes/steelblue.less b/bower_components/Leaflet.Elevation/src/css/themes/steelblue.less deleted file mode 100644 index ca8f787..0000000 --- a/bower_components/Leaflet.Elevation/src/css/themes/steelblue.less +++ /dev/null @@ -1,20 +0,0 @@ -@theme : steelblue-theme; -@base-color : #4682B4; -@highlight-color : #174A75; -@background : fade(@base-color,20%); -@drag-color : fade(@highlight-color,40%); -@axis-color : darken(@base-color,40%); -@stroke-color : darken(@base-color,40%); -@stroke-width-mouse-focus : 1; -@stroke-width-height-focus: 2; -@stroke-width-axis : 2; - -.rounded-corners (@radius: 5px) { - -webkit-border-radius: @radius; - -moz-border-radius: @radius; - -ms-border-radius: @radius; - -o-border-radius: @radius; - border-radius: @radius; -} - -@import "../L.Control.Elevation.less"; \ No newline at end of file diff --git a/bower_components/Leaflet.Elevation/src/images/elevation.png b/bower_components/Leaflet.Elevation/src/images/elevation.png deleted file mode 100644 index e3d9348..0000000 Binary files a/bower_components/Leaflet.Elevation/src/images/elevation.png and /dev/null differ diff --git a/bower_components/Leaflet.Elevation/src/images/elevation.svg b/bower_components/Leaflet.Elevation/src/images/elevation.svg deleted file mode 100644 index f141cd6..0000000 --- a/bower_components/Leaflet.Elevation/src/images/elevation.svg +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - - - - - - - - diff --git a/bower_components/async/LICENSE b/bower_components/async/LICENSE deleted file mode 100644 index 8f29698..0000000 --- a/bower_components/async/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2010-2014 Caolan McMahon - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/bower_components/async/README.md b/bower_components/async/README.md deleted file mode 100644 index 0bea531..0000000 --- a/bower_components/async/README.md +++ /dev/null @@ -1,1646 +0,0 @@ -# Async.js - -[![Build Status via Travis CI](https://travis-ci.org/caolan/async.svg?branch=master)](https://travis-ci.org/caolan/async) - - -Async is a utility module which provides straight-forward, powerful functions -for working with asynchronous JavaScript. Although originally designed for -use with [Node.js](http://nodejs.org), it can also be used directly in the -browser. Also supports [component](https://github.com/component/component). - -Async provides around 20 functions that include the usual 'functional' -suspects (`map`, `reduce`, `filter`, `each`…) as well as some common patterns -for asynchronous control flow (`parallel`, `series`, `waterfall`…). All these -functions assume you follow the Node.js convention of providing a single -callback as the last argument of your `async` function. - - -## Quick Examples - -```javascript -async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file -}); - -async.filter(['file1','file2','file3'], fs.exists, function(results){ - // results now equals an array of the existing files -}); - -async.parallel([ - function(){ ... }, - function(){ ... } -], callback); - -async.series([ - function(){ ... }, - function(){ ... } -]); -``` - -There are many more functions available so take a look at the docs below for a -full list. This module aims to be comprehensive, so if you feel anything is -missing please create a GitHub issue for it. - -## Common Pitfalls - -### Binding a context to an iterator - -This section is really about `bind`, not about `async`. If you are wondering how to -make `async` execute your iterators in a given context, or are confused as to why -a method of another library isn't working as an iterator, study this example: - -```js -// Here is a simple object with an (unnecessarily roundabout) squaring method -var AsyncSquaringLibrary = { - squareExponent: 2, - square: function(number, callback){ - var result = Math.pow(number, this.squareExponent); - setTimeout(function(){ - callback(null, result); - }, 200); - } -}; - -async.map([1, 2, 3], AsyncSquaringLibrary.square, function(err, result){ - // result is [NaN, NaN, NaN] - // This fails because the `this.squareExponent` expression in the square - // function is not evaluated in the context of AsyncSquaringLibrary, and is - // therefore undefined. -}); - -async.map([1, 2, 3], AsyncSquaringLibrary.square.bind(AsyncSquaringLibrary), function(err, result){ - // result is [1, 4, 9] - // With the help of bind we can attach a context to the iterator before - // passing it to async. Now the square function will be executed in its - // 'home' AsyncSquaringLibrary context and the value of `this.squareExponent` - // will be as expected. -}); -``` - -## Download - -The source is available for download from -[GitHub](http://github.com/caolan/async). -Alternatively, you can install using Node Package Manager (`npm`): - - npm install async - -__Development:__ [async.js](https://github.com/caolan/async/raw/master/lib/async.js) - 29.6kb Uncompressed - -## In the Browser - -So far it's been tested in IE6, IE7, IE8, FF3.6 and Chrome 5. - -Usage: - -```html - - -``` - -## Documentation - -### Collections - -* [`each`](#each) -* [`eachSeries`](#eachSeries) -* [`eachLimit`](#eachLimit) -* [`map`](#map) -* [`mapSeries`](#mapSeries) -* [`mapLimit`](#mapLimit) -* [`filter`](#filter) -* [`filterSeries`](#filterSeries) -* [`reject`](#reject) -* [`rejectSeries`](#rejectSeries) -* [`reduce`](#reduce) -* [`reduceRight`](#reduceRight) -* [`detect`](#detect) -* [`detectSeries`](#detectSeries) -* [`sortBy`](#sortBy) -* [`some`](#some) -* [`every`](#every) -* [`concat`](#concat) -* [`concatSeries`](#concatSeries) - -### Control Flow - -* [`series`](#seriestasks-callback) -* [`parallel`](#parallel) -* [`parallelLimit`](#parallellimittasks-limit-callback) -* [`whilst`](#whilst) -* [`doWhilst`](#doWhilst) -* [`until`](#until) -* [`doUntil`](#doUntil) -* [`forever`](#forever) -* [`waterfall`](#waterfall) -* [`compose`](#compose) -* [`seq`](#seq) -* [`applyEach`](#applyEach) -* [`applyEachSeries`](#applyEachSeries) -* [`queue`](#queue) -* [`priorityQueue`](#priorityQueue) -* [`cargo`](#cargo) -* [`auto`](#auto) -* [`retry`](#retry) -* [`iterator`](#iterator) -* [`apply`](#apply) -* [`nextTick`](#nextTick) -* [`times`](#times) -* [`timesSeries`](#timesSeries) - -### Utils - -* [`memoize`](#memoize) -* [`unmemoize`](#unmemoize) -* [`log`](#log) -* [`dir`](#dir) -* [`noConflict`](#noConflict) - - -## Collections - - - -### each(arr, iterator, callback) - -Applies the function `iterator` to each item in `arr`, in parallel. -The `iterator` is called with an item from the list, and a callback for when it -has finished. If the `iterator` passes an error to its `callback`, the main -`callback` (for the `each` function) is immediately called with the error. - -Note, that since this function applies `iterator` to each item in parallel, -there is no guarantee that the iterator functions will complete in order. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err)` which must be called once it has - completed. If no error has occured, the `callback` should be run without - arguments or with an explicit `null` argument. -* `callback(err)` - A callback which is called when all `iterator` functions - have finished, or an error occurs. - -__Examples__ - - -```js -// assuming openFiles is an array of file names and saveFile is a function -// to save the modified contents of that file: - -async.each(openFiles, saveFile, function(err){ - // if any of the saves produced an error, err would equal that error -}); -``` - -```js -// assuming openFiles is an array of file names - -async.each(openFiles, function( file, callback) { - - // Perform operation on file here. - console.log('Processing file ' + file); - - if( file.length > 32 ) { - console.log('This file name is too long'); - callback('File name too long'); - } else { - // Do work to process file here - console.log('File processed'); - callback(); - } -}, function(err){ - // if any of the file processing produced an error, err would equal that error - if( err ) { - // One of the iterations produced an error. - // All processing will now stop. - console.log('A file failed to process'); - } else { - console.log('All files have been processed successfully'); - } -}); -``` - ---------------------------------------- - - - -### eachSeries(arr, iterator, callback) - -The same as [`each`](#each), only `iterator` is applied to each item in `arr` in -series. The next `iterator` is only called once the current one has completed. -This means the `iterator` functions will complete in order. - - ---------------------------------------- - - - -### eachLimit(arr, limit, iterator, callback) - -The same as [`each`](#each), only no more than `limit` `iterator`s will be simultaneously -running at any time. - -Note that the items in `arr` are not processed in batches, so there is no guarantee that -the first `limit` `iterator` functions will complete before any others are started. - -__Arguments__ - -* `arr` - An array to iterate over. -* `limit` - The maximum number of `iterator`s to run at any time. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err)` which must be called once it has - completed. If no error has occured, the callback should be run without - arguments or with an explicit `null` argument. -* `callback(err)` - A callback which is called when all `iterator` functions - have finished, or an error occurs. - -__Example__ - -```js -// Assume documents is an array of JSON objects and requestApi is a -// function that interacts with a rate-limited REST api. - -async.eachLimit(documents, 20, requestApi, function(err){ - // if any of the saves produced an error, err would equal that error -}); -``` - ---------------------------------------- - - -### map(arr, iterator, callback) - -Produces a new array of values by mapping each value in `arr` through -the `iterator` function. The `iterator` is called with an item from `arr` and a -callback for when it has finished processing. Each of these callback takes 2 arguments: -an `error`, and the transformed item from `arr`. If `iterator` passes an error to this -callback, the main `callback` (for the `map` function) is immediately called with the error. - -Note, that since this function applies the `iterator` to each item in parallel, -there is no guarantee that the `iterator` functions will complete in order. -However, the results array will be in the same order as the original `arr`. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, transformed)` which must be called once - it has completed with an error (which can be `null`) and a transformed item. -* `callback(err, results)` - A callback which is called when all `iterator` - functions have finished, or an error occurs. Results is an array of the - transformed items from the `arr`. - -__Example__ - -```js -async.map(['file1','file2','file3'], fs.stat, function(err, results){ - // results is now an array of stats for each file -}); -``` - ---------------------------------------- - - -### mapSeries(arr, iterator, callback) - -The same as [`map`](#map), only the `iterator` is applied to each item in `arr` in -series. The next `iterator` is only called once the current one has completed. -The results array will be in the same order as the original. - - ---------------------------------------- - - -### mapLimit(arr, limit, iterator, callback) - -The same as [`map`](#map), only no more than `limit` `iterator`s will be simultaneously -running at any time. - -Note that the items are not processed in batches, so there is no guarantee that -the first `limit` `iterator` functions will complete before any others are started. - -__Arguments__ - -* `arr` - An array to iterate over. -* `limit` - The maximum number of `iterator`s to run at any time. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, transformed)` which must be called once - it has completed with an error (which can be `null`) and a transformed item. -* `callback(err, results)` - A callback which is called when all `iterator` - calls have finished, or an error occurs. The result is an array of the - transformed items from the original `arr`. - -__Example__ - -```js -async.mapLimit(['file1','file2','file3'], 1, fs.stat, function(err, results){ - // results is now an array of stats for each file -}); -``` - ---------------------------------------- - - - -### filter(arr, iterator, callback) - -__Alias:__ `select` - -Returns a new array of all the values in `arr` which pass an async truth test. -_The callback for each `iterator` call only accepts a single argument of `true` or -`false`; it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like `fs.exists`. This operation is -performed in parallel, but the results array will be in the same order as the -original. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in `arr`. - The `iterator` is passed a `callback(truthValue)`, which must be called with a - boolean argument once it has completed. -* `callback(results)` - A callback which is called after all the `iterator` - functions have finished. - -__Example__ - -```js -async.filter(['file1','file2','file3'], fs.exists, function(results){ - // results now equals an array of the existing files -}); -``` - ---------------------------------------- - - - -### filterSeries(arr, iterator, callback) - -__Alias:__ `selectSeries` - -The same as [`filter`](#filter) only the `iterator` is applied to each item in `arr` in -series. The next `iterator` is only called once the current one has completed. -The results array will be in the same order as the original. - ---------------------------------------- - - -### reject(arr, iterator, callback) - -The opposite of [`filter`](#filter). Removes values that pass an `async` truth test. - ---------------------------------------- - - -### rejectSeries(arr, iterator, callback) - -The same as [`reject`](#reject), only the `iterator` is applied to each item in `arr` -in series. - - ---------------------------------------- - - -### reduce(arr, memo, iterator, callback) - -__Aliases:__ `inject`, `foldl` - -Reduces `arr` into a single value using an async `iterator` to return -each successive step. `memo` is the initial state of the reduction. -This function only operates in series. - -For performance reasons, it may make sense to split a call to this function into -a parallel map, and then use the normal `Array.prototype.reduce` on the results. -This function is for situations where each step in the reduction needs to be async; -if you can get the data before reducing it, then it's probably a good idea to do so. - -__Arguments__ - -* `arr` - An array to iterate over. -* `memo` - The initial state of the reduction. -* `iterator(memo, item, callback)` - A function applied to each item in the - array to produce the next step in the reduction. The `iterator` is passed a - `callback(err, reduction)` which accepts an optional error as its first - argument, and the state of the reduction as the second. If an error is - passed to the callback, the reduction is stopped and the main `callback` is - immediately called with the error. -* `callback(err, result)` - A callback which is called after all the `iterator` - functions have finished. Result is the reduced value. - -__Example__ - -```js -async.reduce([1,2,3], 0, function(memo, item, callback){ - // pointless async: - process.nextTick(function(){ - callback(null, memo + item) - }); -}, function(err, result){ - // result is now equal to the last value of memo, which is 6 -}); -``` - ---------------------------------------- - - -### reduceRight(arr, memo, iterator, callback) - -__Alias:__ `foldr` - -Same as [`reduce`](#reduce), only operates on `arr` in reverse order. - - ---------------------------------------- - - -### detect(arr, iterator, callback) - -Returns the first value in `arr` that passes an async truth test. The -`iterator` is applied in parallel, meaning the first iterator to return `true` will -fire the detect `callback` with that result. That means the result might not be -the first item in the original `arr` (in terms of order) that passes the test. - -If order within the original `arr` is important, then look at [`detectSeries`](#detectSeries). - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in `arr`. - The iterator is passed a `callback(truthValue)` which must be called with a - boolean argument once it has completed. -* `callback(result)` - A callback which is called as soon as any iterator returns - `true`, or after all the `iterator` functions have finished. Result will be - the first item in the array that passes the truth test (iterator) or the - value `undefined` if none passed. - -__Example__ - -```js -async.detect(['file1','file2','file3'], fs.exists, function(result){ - // result now equals the first file in the list that exists -}); -``` - ---------------------------------------- - - -### detectSeries(arr, iterator, callback) - -The same as [`detect`](#detect), only the `iterator` is applied to each item in `arr` -in series. This means the result is always the first in the original `arr` (in -terms of array order) that passes the truth test. - - ---------------------------------------- - - -### sortBy(arr, iterator, callback) - -Sorts a list by the results of running each `arr` value through an async `iterator`. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, sortValue)` which must be called once it - has completed with an error (which can be `null`) and a value to use as the sort - criteria. -* `callback(err, results)` - A callback which is called after all the `iterator` - functions have finished, or an error occurs. Results is the items from - the original `arr` sorted by the values returned by the `iterator` calls. - -__Example__ - -```js -async.sortBy(['file1','file2','file3'], function(file, callback){ - fs.stat(file, function(err, stats){ - callback(err, stats.mtime); - }); -}, function(err, results){ - // results is now the original array of files sorted by - // modified date -}); -``` - -__Sort Order__ - -By modifying the callback parameter the sorting order can be influenced: - -```js -//ascending order -async.sortBy([1,9,3,5], function(x, callback){ - callback(err, x); -}, function(err,result){ - //result callback -} ); - -//descending order -async.sortBy([1,9,3,5], function(x, callback){ - callback(err, x*-1); //<- x*-1 instead of x, turns the order around -}, function(err,result){ - //result callback -} ); -``` - ---------------------------------------- - - -### some(arr, iterator, callback) - -__Alias:__ `any` - -Returns `true` if at least one element in the `arr` satisfies an async test. -_The callback for each iterator call only accepts a single argument of `true` or -`false`; it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like `fs.exists`. Once any iterator -call returns `true`, the main `callback` is immediately called. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in the array - in parallel. The iterator is passed a callback(truthValue) which must be - called with a boolean argument once it has completed. -* `callback(result)` - A callback which is called as soon as any iterator returns - `true`, or after all the iterator functions have finished. Result will be - either `true` or `false` depending on the values of the async tests. - -__Example__ - -```js -async.some(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then at least one of the files exists -}); -``` - ---------------------------------------- - - -### every(arr, iterator, callback) - -__Alias:__ `all` - -Returns `true` if every element in `arr` satisfies an async test. -_The callback for each `iterator` call only accepts a single argument of `true` or -`false`; it does not accept an error argument first!_ This is in-line with the -way node libraries work with truth tests like `fs.exists`. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A truth test to apply to each item in the array - in parallel. The iterator is passed a callback(truthValue) which must be - called with a boolean argument once it has completed. -* `callback(result)` - A callback which is called after all the `iterator` - functions have finished. Result will be either `true` or `false` depending on - the values of the async tests. - -__Example__ - -```js -async.every(['file1','file2','file3'], fs.exists, function(result){ - // if result is true then every file exists -}); -``` - ---------------------------------------- - - -### concat(arr, iterator, callback) - -Applies `iterator` to each item in `arr`, concatenating the results. Returns the -concatenated list. The `iterator`s are called in parallel, and the results are -concatenated as they return. There is no guarantee that the results array will -be returned in the original order of `arr` passed to the `iterator` function. - -__Arguments__ - -* `arr` - An array to iterate over. -* `iterator(item, callback)` - A function to apply to each item in `arr`. - The iterator is passed a `callback(err, results)` which must be called once it - has completed with an error (which can be `null`) and an array of results. -* `callback(err, results)` - A callback which is called after all the `iterator` - functions have finished, or an error occurs. Results is an array containing - the concatenated results of the `iterator` function. - -__Example__ - -```js -async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files){ - // files is now a list of filenames that exist in the 3 directories -}); -``` - ---------------------------------------- - - -### concatSeries(arr, iterator, callback) - -Same as [`concat`](#concat), but executes in series instead of parallel. - - -## Control Flow - - -### series(tasks, [callback]) - -Run the functions in the `tasks` array in series, each one running once the previous -function has completed. If any functions in the series pass an error to its -callback, no more functions are run, and `callback` is immediately called with the value of the error. -Otherwise, `callback` receives an array of results when `tasks` have completed. - -It is also possible to use an object instead of an array. Each property will be -run as a function, and the results will be passed to the final `callback` as an object -instead of an array. This can be a more readable way of handling results from -[`series`](#series). - -**Note** that while many implementations preserve the order of object properties, the -[ECMAScript Language Specifcation](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6) -explicitly states that - -> The mechanics and order of enumerating the properties is not specified. - -So if you rely on the order in which your series of functions are executed, and want -this to work on all platforms, consider using an array. - -__Arguments__ - -* `tasks` - An array or object containing functions to run, each function is passed - a `callback(err, result)` it must call on completion with an error `err` (which can - be `null`) and an optional `result` value. -* `callback(err, results)` - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the `task` callbacks. - -__Example__ - -```js -async.series([ - function(callback){ - // do some stuff ... - callback(null, 'one'); - }, - function(callback){ - // do some more stuff ... - callback(null, 'two'); - } -], -// optional callback -function(err, results){ - // results is now equal to ['one', 'two'] -}); - - -// an example using an object instead of an array -async.series({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equal to: {one: 1, two: 2} -}); -``` - ---------------------------------------- - - -### parallel(tasks, [callback]) - -Run the `tasks` array of functions in parallel, without waiting until the previous -function has completed. If any of the functions pass an error to its -callback, the main `callback` is immediately called with the value of the error. -Once the `tasks` have completed, the results are passed to the final `callback` as an -array. - -It is also possible to use an object instead of an array. Each property will be -run as a function and the results will be passed to the final `callback` as an object -instead of an array. This can be a more readable way of handling results from -[`parallel`](#parallel). - - -__Arguments__ - -* `tasks` - An array or object containing functions to run. Each function is passed - a `callback(err, result)` which it must call on completion with an error `err` - (which can be `null`) and an optional `result` value. -* `callback(err, results)` - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the task callbacks. - -__Example__ - -```js -async.parallel([ - function(callback){ - setTimeout(function(){ - callback(null, 'one'); - }, 200); - }, - function(callback){ - setTimeout(function(){ - callback(null, 'two'); - }, 100); - } -], -// optional callback -function(err, results){ - // the results array will equal ['one','two'] even though - // the second function had a shorter timeout. -}); - - -// an example using an object instead of an array -async.parallel({ - one: function(callback){ - setTimeout(function(){ - callback(null, 1); - }, 200); - }, - two: function(callback){ - setTimeout(function(){ - callback(null, 2); - }, 100); - } -}, -function(err, results) { - // results is now equals to: {one: 1, two: 2} -}); -``` - ---------------------------------------- - - -### parallelLimit(tasks, limit, [callback]) - -The same as [`parallel`](#parallel), only `tasks` are executed in parallel -with a maximum of `limit` tasks executing at any time. - -Note that the `tasks` are not executed in batches, so there is no guarantee that -the first `limit` tasks will complete before any others are started. - -__Arguments__ - -* `tasks` - An array or object containing functions to run, each function is passed - a `callback(err, result)` it must call on completion with an error `err` (which can - be `null`) and an optional `result` value. -* `limit` - The maximum number of `tasks` to run at any time. -* `callback(err, results)` - An optional callback to run once all the functions - have completed. This function gets a results array (or object) containing all - the result arguments passed to the `task` callbacks. - ---------------------------------------- - - -### whilst(test, fn, callback) - -Repeatedly call `fn`, while `test` returns `true`. Calls `callback` when stopped, -or an error occurs. - -__Arguments__ - -* `test()` - synchronous truth test to perform before each execution of `fn`. -* `fn(callback)` - A function which is called each time `test` passes. The function is - passed a `callback(err)`, which must be called once it has completed with an - optional `err` argument. -* `callback(err)` - A callback which is called after the test fails and repeated - execution of `fn` has stopped. - -__Example__ - -```js -var count = 0; - -async.whilst( - function () { return count < 5; }, - function (callback) { - count++; - setTimeout(callback, 1000); - }, - function (err) { - // 5 seconds have passed - } -); -``` - ---------------------------------------- - - -### doWhilst(fn, test, callback) - -The post-check version of [`whilst`](#whilst). To reflect the difference in -the order of operations, the arguments `test` and `fn` are switched. - -`doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript. - ---------------------------------------- - - -### until(test, fn, callback) - -Repeatedly call `fn` until `test` returns `true`. Calls `callback` when stopped, -or an error occurs. - -The inverse of [`whilst`](#whilst). - ---------------------------------------- - - -### doUntil(fn, test, callback) - -Like [`doWhilst`](#doWhilst), except the `test` is inverted. Note the argument ordering differs from `until`. - ---------------------------------------- - - -### forever(fn, errback) - -Calls the asynchronous function `fn` with a callback parameter that allows it to -call itself again, in series, indefinitely. - -If an error is passed to the callback then `errback` is called with the -error, and execution stops, otherwise it will never be called. - -```js -async.forever( - function(next) { - // next is suitable for passing to things that need a callback(err [, whatever]); - // it will result in this function being called again. - }, - function(err) { - // if next is called with a value in its first parameter, it will appear - // in here as 'err', and execution will stop. - } -); -``` - ---------------------------------------- - - -### waterfall(tasks, [callback]) - -Runs the `tasks` array of functions in series, each passing their results to the next in -the array. However, if any of the `tasks` pass an error to their own callback, the -next function is not executed, and the main `callback` is immediately called with -the error. - -__Arguments__ - -* `tasks` - An array of functions to run, each function is passed a - `callback(err, result1, result2, ...)` it must call on completion. The first - argument is an error (which can be `null`) and any further arguments will be - passed as arguments in order to the next task. -* `callback(err, [results])` - An optional callback to run once all the functions - have completed. This will be passed the results of the last task's callback. - - - -__Example__ - -```js -async.waterfall([ - function(callback){ - callback(null, 'one', 'two'); - }, - function(arg1, arg2, callback){ - // arg1 now equals 'one' and arg2 now equals 'two' - callback(null, 'three'); - }, - function(arg1, callback){ - // arg1 now equals 'three' - callback(null, 'done'); - } -], function (err, result) { - // result now equals 'done' -}); -``` - ---------------------------------------- - -### compose(fn1, fn2...) - -Creates a function which is a composition of the passed asynchronous -functions. Each function consumes the return value of the function that -follows. Composing functions `f()`, `g()`, and `h()` would produce the result of -`f(g(h()))`, only this version uses callbacks to obtain the return values. - -Each function is executed with the `this` binding of the composed function. - -__Arguments__ - -* `functions...` - the asynchronous functions to compose - - -__Example__ - -```js -function add1(n, callback) { - setTimeout(function () { - callback(null, n + 1); - }, 10); -} - -function mul3(n, callback) { - setTimeout(function () { - callback(null, n * 3); - }, 10); -} - -var add1mul3 = async.compose(mul3, add1); - -add1mul3(4, function (err, result) { - // result now equals 15 -}); -``` - ---------------------------------------- - -### seq(fn1, fn2...) - -Version of the compose function that is more natural to read. -Each following function consumes the return value of the latter function. - -Each function is executed with the `this` binding of the composed function. - -__Arguments__ - -* functions... - the asynchronous functions to compose - - -__Example__ - -```js -// Requires lodash (or underscore), express3 and dresende's orm2. -// Part of an app, that fetches cats of the logged user. -// This example uses `seq` function to avoid overnesting and error -// handling clutter. -app.get('/cats', function(request, response) { - function handleError(err, data, callback) { - if (err) { - console.error(err); - response.json({ status: 'error', message: err.message }); - } - else { - callback(data); - } - } - var User = request.models.User; - async.seq( - _.bind(User.get, User), // 'User.get' has signature (id, callback(err, data)) - handleError, - function(user, fn) { - user.getCats(fn); // 'getCats' has signature (callback(err, data)) - }, - handleError, - function(cats) { - response.json({ status: 'ok', message: 'Cats found', data: cats }); - } - )(req.session.user_id); - } -}); -``` - ---------------------------------------- - -### applyEach(fns, args..., callback) - -Applies the provided arguments to each function in the array, calling -`callback` after all functions have completed. If you only provide the first -argument, then it will return a function which lets you pass in the -arguments as if it were a single function call. - -__Arguments__ - -* `fns` - the asynchronous functions to all call with the same arguments -* `args...` - any number of separate arguments to pass to the function -* `callback` - the final argument should be the callback, called when all - functions have completed processing - - -__Example__ - -```js -async.applyEach([enableSearch, updateSchema], 'bucket', callback); - -// partial application example: -async.each( - buckets, - async.applyEach([enableSearch, updateSchema]), - callback -); -``` - ---------------------------------------- - - -### applyEachSeries(arr, iterator, callback) - -The same as [`applyEach`](#applyEach) only the functions are applied in series. - ---------------------------------------- - - -### queue(worker, concurrency) - -Creates a `queue` object with the specified `concurrency`. Tasks added to the -`queue` are processed in parallel (up to the `concurrency` limit). If all -`worker`s are in progress, the task is queued until one becomes available. -Once a `worker` completes a `task`, that `task`'s callback is called. - -__Arguments__ - -* `worker(task, callback)` - An asynchronous function for processing a queued - task, which must call its `callback(err)` argument when finished, with an - optional `error` as an argument. -* `concurrency` - An `integer` for determining how many `worker` functions should be - run in parallel. - -__Queue objects__ - -The `queue` object returned by this function has the following properties and -methods: - -* `length()` - a function returning the number of items waiting to be processed. -* `started` - a function returning whether or not any items have been pushed and processed by the queue -* `running()` - a function returning the number of items currently being processed. -* `idle()` - a function returning false if there are items waiting or being processed, or true if not. -* `concurrency` - an integer for determining how many `worker` functions should be - run in parallel. This property can be changed after a `queue` is created to - alter the concurrency on-the-fly. -* `push(task, [callback])` - add a new task to the `queue`. Calls `callback` once - the `worker` has finished processing the task. Instead of a single task, a `tasks` array - can be submitted. The respective callback is used for every task in the list. -* `unshift(task, [callback])` - add a new task to the front of the `queue`. -* `saturated` - a callback that is called when the `queue` length hits the `concurrency` limit, - and further tasks will be queued. -* `empty` - a callback that is called when the last item from the `queue` is given to a `worker`. -* `drain` - a callback that is called when the last item from the `queue` has returned from the `worker`. -* `paused` - a boolean for determining whether the queue is in a paused state -* `pause()` - a function that pauses the processing of tasks until `resume()` is called. -* `resume()` - a function that resumes the processing of queued tasks when the queue is paused. -* `kill()` - a function that empties remaining tasks from the queue forcing it to go idle. - -__Example__ - -```js -// create a queue object with concurrency 2 - -var q = async.queue(function (task, callback) { - console.log('hello ' + task.name); - callback(); -}, 2); - - -// assign a callback -q.drain = function() { - console.log('all items have been processed'); -} - -// add some items to the queue - -q.push({name: 'foo'}, function (err) { - console.log('finished processing foo'); -}); -q.push({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); - -// add some items to the queue (batch-wise) - -q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function (err) { - console.log('finished processing bar'); -}); - -// add some items to the front of the queue - -q.unshift({name: 'bar'}, function (err) { - console.log('finished processing bar'); -}); -``` - - ---------------------------------------- - - -### priorityQueue(worker, concurrency) - -The same as [`queue`](#queue) only tasks are assigned a priority and completed in ascending priority order. There are two differences between `queue` and `priorityQueue` objects: - -* `push(task, priority, [callback])` - `priority` should be a number. If an array of - `tasks` is given, all tasks will be assigned the same priority. -* The `unshift` method was removed. - ---------------------------------------- - - -### cargo(worker, [payload]) - -Creates a `cargo` object with the specified payload. Tasks added to the -cargo will be processed altogether (up to the `payload` limit). If the -`worker` is in progress, the task is queued until it becomes available. Once -the `worker` has completed some tasks, each callback of those tasks is called. -Check out [this animation](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) for how `cargo` and `queue` work. - -While [queue](#queue) passes only one task to one of a group of workers -at a time, cargo passes an array of tasks to a single worker, repeating -when the worker is finished. - -__Arguments__ - -* `worker(tasks, callback)` - An asynchronous function for processing an array of - queued tasks, which must call its `callback(err)` argument when finished, with - an optional `err` argument. -* `payload` - An optional `integer` for determining how many tasks should be - processed per round; if omitted, the default is unlimited. - -__Cargo objects__ - -The `cargo` object returned by this function has the following properties and -methods: - -* `length()` - A function returning the number of items waiting to be processed. -* `payload` - An `integer` for determining how many tasks should be - process per round. This property can be changed after a `cargo` is created to - alter the payload on-the-fly. -* `push(task, [callback])` - Adds `task` to the `queue`. The callback is called - once the `worker` has finished processing the task. Instead of a single task, an array of `tasks` - can be submitted. The respective callback is used for every task in the list. -* `saturated` - A callback that is called when the `queue.length()` hits the concurrency and further tasks will be queued. -* `empty` - A callback that is called when the last item from the `queue` is given to a `worker`. -* `drain` - A callback that is called when the last item from the `queue` has returned from the `worker`. - -__Example__ - -```js -// create a cargo object with payload 2 - -var cargo = async.cargo(function (tasks, callback) { - for(var i=0; i -### auto(tasks, [callback]) - -Determines the best order for running the functions in `tasks`, based on their -requirements. Each function can optionally depend on other functions being completed -first, and each function is run as soon as its requirements are satisfied. - -If any of the functions pass an error to their callback, it will not -complete (so any other functions depending on it will not run), and the main -`callback` is immediately called with the error. Functions also receive an -object containing the results of functions which have completed so far. - -Note, all functions are called with a `results` object as a second argument, -so it is unsafe to pass functions in the `tasks` object which cannot handle the -extra argument. - -For example, this snippet of code: - -```js -async.auto({ - readData: async.apply(fs.readFile, 'data.txt', 'utf-8') -}, callback); -``` - -will have the effect of calling `readFile` with the results object as the last -argument, which will fail: - -```js -fs.readFile('data.txt', 'utf-8', cb, {}); -``` - -Instead, wrap the call to `readFile` in a function which does not forward the -`results` object: - -```js -async.auto({ - readData: function(cb, results){ - fs.readFile('data.txt', 'utf-8', cb); - } -}, callback); -``` - -__Arguments__ - -* `tasks` - An object. Each of its properties is either a function or an array of - requirements, with the function itself the last item in the array. The object's key - of a property serves as the name of the task defined by that property, - i.e. can be used when specifying requirements for other tasks. - The function receives two arguments: (1) a `callback(err, result)` which must be - called when finished, passing an `error` (which can be `null`) and the result of - the function's execution, and (2) a `results` object, containing the results of - the previously executed functions. -* `callback(err, results)` - An optional callback which is called when all the - tasks have been completed. It receives the `err` argument if any `tasks` - pass an error to their callback. Results are always returned; however, if - an error occurs, no further `tasks` will be performed, and the results - object will only contain partial results. - - -__Example__ - -```js -async.auto({ - get_data: function(callback){ - console.log('in get_data'); - // async code to get some data - callback(null, 'data', 'converted to array'); - }, - make_folder: function(callback){ - console.log('in make_folder'); - // async code to create a directory to store a file in - // this is run at the same time as getting the data - callback(null, 'folder'); - }, - write_file: ['get_data', 'make_folder', function(callback, results){ - console.log('in write_file', JSON.stringify(results)); - // once there is some data and the directory exists, - // write the data to a file in the directory - callback(null, 'filename'); - }], - email_link: ['write_file', function(callback, results){ - console.log('in email_link', JSON.stringify(results)); - // once the file is written let's email a link to it... - // results.write_file contains the filename returned by write_file. - callback(null, {'file':results.write_file, 'email':'user@example.com'}); - }] -}, function(err, results) { - console.log('err = ', err); - console.log('results = ', results); -}); -``` - -This is a fairly trivial example, but to do this using the basic parallel and -series functions would look like this: - -```js -async.parallel([ - function(callback){ - console.log('in get_data'); - // async code to get some data - callback(null, 'data', 'converted to array'); - }, - function(callback){ - console.log('in make_folder'); - // async code to create a directory to store a file in - // this is run at the same time as getting the data - callback(null, 'folder'); - } -], -function(err, results){ - async.series([ - function(callback){ - console.log('in write_file', JSON.stringify(results)); - // once there is some data and the directory exists, - // write the data to a file in the directory - results.push('filename'); - callback(null); - }, - function(callback){ - console.log('in email_link', JSON.stringify(results)); - // once the file is written let's email a link to it... - callback(null, {'file':results.pop(), 'email':'user@example.com'}); - } - ]); -}); -``` - -For a complicated series of `async` tasks, using the [`auto`](#auto) function makes adding -new tasks much easier (and the code more readable). - - ---------------------------------------- - - -### retry([times = 5], task, [callback]) - -Attempts to get a successful response from `task` no more than `times` times before -returning an error. If the task is successful, the `callback` will be passed the result -of the successfull task. If all attemps fail, the callback will be passed the error and -result (if any) of the final attempt. - -__Arguments__ - -* `times` - An integer indicating how many times to attempt the `task` before giving up. Defaults to 5. -* `task(callback, results)` - A function which receives two arguments: (1) a `callback(err, result)` - which must be called when finished, passing `err` (which can be `null`) and the `result` of - the function's execution, and (2) a `results` object, containing the results of - the previously executed functions (if nested inside another control flow). -* `callback(err, results)` - An optional callback which is called when the - task has succeeded, or after the final failed attempt. It receives the `err` and `result` arguments of the last attempt at completing the `task`. - -The [`retry`](#retry) function can be used as a stand-alone control flow by passing a -callback, as shown below: - -```js -async.retry(3, apiMethod, function(err, result) { - // do something with the result -}); -``` - -It can also be embeded within other control flow functions to retry individual methods -that are not as reliable, like this: - -```js -async.auto({ - users: api.getUsers.bind(api), - payments: async.retry(3, api.getPayments.bind(api)) -}, function(err, results) { - // do something with the results -}); -``` - - ---------------------------------------- - - -### iterator(tasks) - -Creates an iterator function which calls the next function in the `tasks` array, -returning a continuation to call the next one after that. It's also possible to -“peek” at the next iterator with `iterator.next()`. - -This function is used internally by the `async` module, but can be useful when -you want to manually control the flow of functions in series. - -__Arguments__ - -* `tasks` - An array of functions to run. - -__Example__ - -```js -var iterator = async.iterator([ - function(){ sys.p('one'); }, - function(){ sys.p('two'); }, - function(){ sys.p('three'); } -]); - -node> var iterator2 = iterator(); -'one' -node> var iterator3 = iterator2(); -'two' -node> iterator3(); -'three' -node> var nextfn = iterator2.next(); -node> nextfn(); -'three' -``` - ---------------------------------------- - - -### apply(function, arguments..) - -Creates a continuation function with some arguments already applied. - -Useful as a shorthand when combined with other control flow functions. Any arguments -passed to the returned function are added to the arguments originally passed -to apply. - -__Arguments__ - -* `function` - The function you want to eventually apply all arguments to. -* `arguments...` - Any number of arguments to automatically apply when the - continuation is called. - -__Example__ - -```js -// using apply - -async.parallel([ - async.apply(fs.writeFile, 'testfile1', 'test1'), - async.apply(fs.writeFile, 'testfile2', 'test2'), -]); - - -// the same process without using apply - -async.parallel([ - function(callback){ - fs.writeFile('testfile1', 'test1', callback); - }, - function(callback){ - fs.writeFile('testfile2', 'test2', callback); - } -]); -``` - -It's possible to pass any number of additional arguments when calling the -continuation: - -```js -node> var fn = async.apply(sys.puts, 'one'); -node> fn('two', 'three'); -one -two -three -``` - ---------------------------------------- - - -### nextTick(callback) - -Calls `callback` on a later loop around the event loop. In Node.js this just -calls `process.nextTick`; in the browser it falls back to `setImmediate(callback)` -if available, otherwise `setTimeout(callback, 0)`, which means other higher priority -events may precede the execution of `callback`. - -This is used internally for browser-compatibility purposes. - -__Arguments__ - -* `callback` - The function to call on a later loop around the event loop. - -__Example__ - -```js -var call_order = []; -async.nextTick(function(){ - call_order.push('two'); - // call_order now equals ['one','two'] -}); -call_order.push('one') -``` - - -### times(n, callback) - -Calls the `callback` function `n` times, and accumulates results in the same manner -you would use with [`map`](#map). - -__Arguments__ - -* `n` - The number of times to run the function. -* `callback` - The function to call `n` times. - -__Example__ - -```js -// Pretend this is some complicated async factory -var createUser = function(id, callback) { - callback(null, { - id: 'user' + id - }) -} -// generate 5 users -async.times(5, function(n, next){ - createUser(n, function(err, user) { - next(err, user) - }) -}, function(err, users) { - // we should now have 5 users -}); -``` - - -### timesSeries(n, callback) - -The same as [`times`](#times), only the iterator is applied to each item in `arr` in -series. The next `iterator` is only called once the current one has completed. -The results array will be in the same order as the original. - - -## Utils - - -### memoize(fn, [hasher]) - -Caches the results of an `async` function. When creating a hash to store function -results against, the callback is omitted from the hash and an optional hash -function can be used. - -The cache of results is exposed as the `memo` property of the function returned -by `memoize`. - -__Arguments__ - -* `fn` - The function to proxy and cache results from. -* `hasher` - Tn optional function for generating a custom hash for storing - results. It has all the arguments applied to it apart from the callback, and - must be synchronous. - -__Example__ - -```js -var slow_fn = function (name, callback) { - // do something - callback(null, result); -}; -var fn = async.memoize(slow_fn); - -// fn can now be used as if it were slow_fn -fn('some name', function () { - // callback -}); -``` - - -### unmemoize(fn) - -Undoes a [`memoize`](#memoize)d function, reverting it to the original, unmemoized -form. Handy for testing. - -__Arguments__ - -* `fn` - the memoized function - - -### log(function, arguments) - -Logs the result of an `async` function to the `console`. Only works in Node.js or -in browsers that support `console.log` and `console.error` (such as FF and Chrome). -If multiple arguments are returned from the async function, `console.log` is -called on each argument in order. - -__Arguments__ - -* `function` - The function you want to eventually apply all arguments to. -* `arguments...` - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, 'hello ' + name); - }, 1000); -}; -``` -```js -node> async.log(hello, 'world'); -'hello world' -``` - ---------------------------------------- - - -### dir(function, arguments) - -Logs the result of an `async` function to the `console` using `console.dir` to -display the properties of the resulting object. Only works in Node.js or -in browsers that support `console.dir` and `console.error` (such as FF and Chrome). -If multiple arguments are returned from the async function, `console.dir` is -called on each argument in order. - -__Arguments__ - -* `function` - The function you want to eventually apply all arguments to. -* `arguments...` - Any number of arguments to apply to the function. - -__Example__ - -```js -var hello = function(name, callback){ - setTimeout(function(){ - callback(null, {hello: name}); - }, 1000); -}; -``` -```js -node> async.dir(hello, 'world'); -{hello: 'world'} -``` - ---------------------------------------- - - -### noConflict() - -Changes the value of `async` back to its original value, returning a reference to the -`async` object. diff --git a/bower_components/async/lib/async.js b/bower_components/async/lib/async.js deleted file mode 100755 index 01e8afc..0000000 --- a/bower_components/async/lib/async.js +++ /dev/null @@ -1,1123 +0,0 @@ -/*! - * async - * https://github.com/caolan/async - * - * Copyright 2010-2014 Caolan McMahon - * Released under the MIT license - */ -/*jshint onevar: false, indent:4 */ -/*global setImmediate: false, setTimeout: false, console: false */ -(function () { - - var async = {}; - - // global on the server, window in the browser - var root, previous_async; - - root = this; - if (root != null) { - previous_async = root.async; - } - - async.noConflict = function () { - root.async = previous_async; - return async; - }; - - function only_once(fn) { - var called = false; - return function() { - if (called) throw new Error("Callback was already called."); - called = true; - fn.apply(root, arguments); - } - } - - //// cross-browser compatiblity functions //// - - var _toString = Object.prototype.toString; - - var _isArray = Array.isArray || function (obj) { - return _toString.call(obj) === '[object Array]'; - }; - - var _each = function (arr, iterator) { - if (arr.forEach) { - return arr.forEach(iterator); - } - for (var i = 0; i < arr.length; i += 1) { - iterator(arr[i], i, arr); - } - }; - - var _map = function (arr, iterator) { - if (arr.map) { - return arr.map(iterator); - } - var results = []; - _each(arr, function (x, i, a) { - results.push(iterator(x, i, a)); - }); - return results; - }; - - var _reduce = function (arr, iterator, memo) { - if (arr.reduce) { - return arr.reduce(iterator, memo); - } - _each(arr, function (x, i, a) { - memo = iterator(memo, x, i, a); - }); - return memo; - }; - - var _keys = function (obj) { - if (Object.keys) { - return Object.keys(obj); - } - var keys = []; - for (var k in obj) { - if (obj.hasOwnProperty(k)) { - keys.push(k); - } - } - return keys; - }; - - //// exported async module functions //// - - //// nextTick implementation with browser-compatible fallback //// - if (typeof process === 'undefined' || !(process.nextTick)) { - if (typeof setImmediate === 'function') { - async.nextTick = function (fn) { - // not a direct alias for IE10 compatibility - setImmediate(fn); - }; - async.setImmediate = async.nextTick; - } - else { - async.nextTick = function (fn) { - setTimeout(fn, 0); - }; - async.setImmediate = async.nextTick; - } - } - else { - async.nextTick = process.nextTick; - if (typeof setImmediate !== 'undefined') { - async.setImmediate = function (fn) { - // not a direct alias for IE10 compatibility - setImmediate(fn); - }; - } - else { - async.setImmediate = async.nextTick; - } - } - - async.each = function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length) { - return callback(); - } - var completed = 0; - _each(arr, function (x) { - iterator(x, only_once(done) ); - }); - function done(err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - if (completed >= arr.length) { - callback(); - } - } - } - }; - async.forEach = async.each; - - async.eachSeries = function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length) { - return callback(); - } - var completed = 0; - var iterate = function () { - iterator(arr[completed], function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - if (completed >= arr.length) { - callback(); - } - else { - iterate(); - } - } - }); - }; - iterate(); - }; - async.forEachSeries = async.eachSeries; - - async.eachLimit = function (arr, limit, iterator, callback) { - var fn = _eachLimit(limit); - fn.apply(null, [arr, iterator, callback]); - }; - async.forEachLimit = async.eachLimit; - - var _eachLimit = function (limit) { - - return function (arr, iterator, callback) { - callback = callback || function () {}; - if (!arr.length || limit <= 0) { - return callback(); - } - var completed = 0; - var started = 0; - var running = 0; - - (function replenish () { - if (completed >= arr.length) { - return callback(); - } - - while (running < limit && started < arr.length) { - started += 1; - running += 1; - iterator(arr[started - 1], function (err) { - if (err) { - callback(err); - callback = function () {}; - } - else { - completed += 1; - running -= 1; - if (completed >= arr.length) { - callback(); - } - else { - replenish(); - } - } - }); - } - })(); - }; - }; - - - var doParallel = function (fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [async.each].concat(args)); - }; - }; - var doParallelLimit = function(limit, fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [_eachLimit(limit)].concat(args)); - }; - }; - var doSeries = function (fn) { - return function () { - var args = Array.prototype.slice.call(arguments); - return fn.apply(null, [async.eachSeries].concat(args)); - }; - }; - - - var _asyncMap = function (eachfn, arr, iterator, callback) { - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - if (!callback) { - eachfn(arr, function (x, callback) { - iterator(x.value, function (err) { - callback(err); - }); - }); - } else { - var results = []; - eachfn(arr, function (x, callback) { - iterator(x.value, function (err, v) { - results[x.index] = v; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - async.map = doParallel(_asyncMap); - async.mapSeries = doSeries(_asyncMap); - async.mapLimit = function (arr, limit, iterator, callback) { - return _mapLimit(limit)(arr, iterator, callback); - }; - - var _mapLimit = function(limit) { - return doParallelLimit(limit, _asyncMap); - }; - - // reduce only has a series version, as doing reduce in parallel won't - // work in many situations. - async.reduce = function (arr, memo, iterator, callback) { - async.eachSeries(arr, function (x, callback) { - iterator(memo, x, function (err, v) { - memo = v; - callback(err); - }); - }, function (err) { - callback(err, memo); - }); - }; - // inject alias - async.inject = async.reduce; - // foldl alias - async.foldl = async.reduce; - - async.reduceRight = function (arr, memo, iterator, callback) { - var reversed = _map(arr, function (x) { - return x; - }).reverse(); - async.reduce(reversed, memo, iterator, callback); - }; - // foldr alias - async.foldr = async.reduceRight; - - var _filter = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (v) { - if (v) { - results.push(x); - } - callback(); - }); - }, function (err) { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - }; - async.filter = doParallel(_filter); - async.filterSeries = doSeries(_filter); - // select alias - async.select = async.filter; - async.selectSeries = async.filterSeries; - - var _reject = function (eachfn, arr, iterator, callback) { - var results = []; - arr = _map(arr, function (x, i) { - return {index: i, value: x}; - }); - eachfn(arr, function (x, callback) { - iterator(x.value, function (v) { - if (!v) { - results.push(x); - } - callback(); - }); - }, function (err) { - callback(_map(results.sort(function (a, b) { - return a.index - b.index; - }), function (x) { - return x.value; - })); - }); - }; - async.reject = doParallel(_reject); - async.rejectSeries = doSeries(_reject); - - var _detect = function (eachfn, arr, iterator, main_callback) { - eachfn(arr, function (x, callback) { - iterator(x, function (result) { - if (result) { - main_callback(x); - main_callback = function () {}; - } - else { - callback(); - } - }); - }, function (err) { - main_callback(); - }); - }; - async.detect = doParallel(_detect); - async.detectSeries = doSeries(_detect); - - async.some = function (arr, iterator, main_callback) { - async.each(arr, function (x, callback) { - iterator(x, function (v) { - if (v) { - main_callback(true); - main_callback = function () {}; - } - callback(); - }); - }, function (err) { - main_callback(false); - }); - }; - // any alias - async.any = async.some; - - async.every = function (arr, iterator, main_callback) { - async.each(arr, function (x, callback) { - iterator(x, function (v) { - if (!v) { - main_callback(false); - main_callback = function () {}; - } - callback(); - }); - }, function (err) { - main_callback(true); - }); - }; - // all alias - async.all = async.every; - - async.sortBy = function (arr, iterator, callback) { - async.map(arr, function (x, callback) { - iterator(x, function (err, criteria) { - if (err) { - callback(err); - } - else { - callback(null, {value: x, criteria: criteria}); - } - }); - }, function (err, results) { - if (err) { - return callback(err); - } - else { - var fn = function (left, right) { - var a = left.criteria, b = right.criteria; - return a < b ? -1 : a > b ? 1 : 0; - }; - callback(null, _map(results.sort(fn), function (x) { - return x.value; - })); - } - }); - }; - - async.auto = function (tasks, callback) { - callback = callback || function () {}; - var keys = _keys(tasks); - var remainingTasks = keys.length - if (!remainingTasks) { - return callback(); - } - - var results = {}; - - var listeners = []; - var addListener = function (fn) { - listeners.unshift(fn); - }; - var removeListener = function (fn) { - for (var i = 0; i < listeners.length; i += 1) { - if (listeners[i] === fn) { - listeners.splice(i, 1); - return; - } - } - }; - var taskComplete = function () { - remainingTasks-- - _each(listeners.slice(0), function (fn) { - fn(); - }); - }; - - addListener(function () { - if (!remainingTasks) { - var theCallback = callback; - // prevent final callback from calling itself if it errors - callback = function () {}; - - theCallback(null, results); - } - }); - - _each(keys, function (k) { - var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]]; - var taskCallback = function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - if (err) { - var safeResults = {}; - _each(_keys(results), function(rkey) { - safeResults[rkey] = results[rkey]; - }); - safeResults[k] = args; - callback(err, safeResults); - // stop subsequent errors hitting callback multiple times - callback = function () {}; - } - else { - results[k] = args; - async.setImmediate(taskComplete); - } - }; - var requires = task.slice(0, Math.abs(task.length - 1)) || []; - var ready = function () { - return _reduce(requires, function (a, x) { - return (a && results.hasOwnProperty(x)); - }, true) && !results.hasOwnProperty(k); - }; - if (ready()) { - task[task.length - 1](taskCallback, results); - } - else { - var listener = function () { - if (ready()) { - removeListener(listener); - task[task.length - 1](taskCallback, results); - } - }; - addListener(listener); - } - }); - }; - - async.retry = function(times, task, callback) { - var DEFAULT_TIMES = 5; - var attempts = []; - // Use defaults if times not passed - if (typeof times === 'function') { - callback = task; - task = times; - times = DEFAULT_TIMES; - } - // Make sure times is a number - times = parseInt(times, 10) || DEFAULT_TIMES; - var wrappedTask = function(wrappedCallback, wrappedResults) { - var retryAttempt = function(task, finalAttempt) { - return function(seriesCallback) { - task(function(err, result){ - seriesCallback(!err || finalAttempt, {err: err, result: result}); - }, wrappedResults); - }; - }; - while (times) { - attempts.push(retryAttempt(task, !(times-=1))); - } - async.series(attempts, function(done, data){ - data = data[data.length - 1]; - (wrappedCallback || callback)(data.err, data.result); - }); - } - // If a callback is passed, run this as a controll flow - return callback ? wrappedTask() : wrappedTask - }; - - async.waterfall = function (tasks, callback) { - callback = callback || function () {}; - if (!_isArray(tasks)) { - var err = new Error('First argument to waterfall must be an array of functions'); - return callback(err); - } - if (!tasks.length) { - return callback(); - } - var wrapIterator = function (iterator) { - return function (err) { - if (err) { - callback.apply(null, arguments); - callback = function () {}; - } - else { - var args = Array.prototype.slice.call(arguments, 1); - var next = iterator.next(); - if (next) { - args.push(wrapIterator(next)); - } - else { - args.push(callback); - } - async.setImmediate(function () { - iterator.apply(null, args); - }); - } - }; - }; - wrapIterator(async.iterator(tasks))(); - }; - - var _parallel = function(eachfn, tasks, callback) { - callback = callback || function () {}; - if (_isArray(tasks)) { - eachfn.map(tasks, function (fn, callback) { - if (fn) { - fn(function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - callback.call(null, err, args); - }); - } - }, callback); - } - else { - var results = {}; - eachfn.each(_keys(tasks), function (k, callback) { - tasks[k](function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - - async.parallel = function (tasks, callback) { - _parallel({ map: async.map, each: async.each }, tasks, callback); - }; - - async.parallelLimit = function(tasks, limit, callback) { - _parallel({ map: _mapLimit(limit), each: _eachLimit(limit) }, tasks, callback); - }; - - async.series = function (tasks, callback) { - callback = callback || function () {}; - if (_isArray(tasks)) { - async.mapSeries(tasks, function (fn, callback) { - if (fn) { - fn(function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - callback.call(null, err, args); - }); - } - }, callback); - } - else { - var results = {}; - async.eachSeries(_keys(tasks), function (k, callback) { - tasks[k](function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (args.length <= 1) { - args = args[0]; - } - results[k] = args; - callback(err); - }); - }, function (err) { - callback(err, results); - }); - } - }; - - async.iterator = function (tasks) { - var makeCallback = function (index) { - var fn = function () { - if (tasks.length) { - tasks[index].apply(null, arguments); - } - return fn.next(); - }; - fn.next = function () { - return (index < tasks.length - 1) ? makeCallback(index + 1): null; - }; - return fn; - }; - return makeCallback(0); - }; - - async.apply = function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - return function () { - return fn.apply( - null, args.concat(Array.prototype.slice.call(arguments)) - ); - }; - }; - - var _concat = function (eachfn, arr, fn, callback) { - var r = []; - eachfn(arr, function (x, cb) { - fn(x, function (err, y) { - r = r.concat(y || []); - cb(err); - }); - }, function (err) { - callback(err, r); - }); - }; - async.concat = doParallel(_concat); - async.concatSeries = doSeries(_concat); - - async.whilst = function (test, iterator, callback) { - if (test()) { - iterator(function (err) { - if (err) { - return callback(err); - } - async.whilst(test, iterator, callback); - }); - } - else { - callback(); - } - }; - - async.doWhilst = function (iterator, test, callback) { - iterator(function (err) { - if (err) { - return callback(err); - } - var args = Array.prototype.slice.call(arguments, 1); - if (test.apply(null, args)) { - async.doWhilst(iterator, test, callback); - } - else { - callback(); - } - }); - }; - - async.until = function (test, iterator, callback) { - if (!test()) { - iterator(function (err) { - if (err) { - return callback(err); - } - async.until(test, iterator, callback); - }); - } - else { - callback(); - } - }; - - async.doUntil = function (iterator, test, callback) { - iterator(function (err) { - if (err) { - return callback(err); - } - var args = Array.prototype.slice.call(arguments, 1); - if (!test.apply(null, args)) { - async.doUntil(iterator, test, callback); - } - else { - callback(); - } - }); - }; - - async.queue = function (worker, concurrency) { - if (concurrency === undefined) { - concurrency = 1; - } - function _insert(q, data, pos, callback) { - if (!q.started){ - q.started = true; - } - if (!_isArray(data)) { - data = [data]; - } - if(data.length == 0) { - // call drain immediately if there are no tasks - return async.setImmediate(function() { - if (q.drain) { - q.drain(); - } - }); - } - _each(data, function(task) { - var item = { - data: task, - callback: typeof callback === 'function' ? callback : null - }; - - if (pos) { - q.tasks.unshift(item); - } else { - q.tasks.push(item); - } - - if (q.saturated && q.tasks.length === q.concurrency) { - q.saturated(); - } - async.setImmediate(q.process); - }); - } - - var workers = 0; - var q = { - tasks: [], - concurrency: concurrency, - saturated: null, - empty: null, - drain: null, - started: false, - paused: false, - push: function (data, callback) { - _insert(q, data, false, callback); - }, - kill: function () { - q.drain = null; - q.tasks = []; - }, - unshift: function (data, callback) { - _insert(q, data, true, callback); - }, - process: function () { - if (!q.paused && workers < q.concurrency && q.tasks.length) { - var task = q.tasks.shift(); - if (q.empty && q.tasks.length === 0) { - q.empty(); - } - workers += 1; - var next = function () { - workers -= 1; - if (task.callback) { - task.callback.apply(task, arguments); - } - if (q.drain && q.tasks.length + workers === 0) { - q.drain(); - } - q.process(); - }; - var cb = only_once(next); - worker(task.data, cb); - } - }, - length: function () { - return q.tasks.length; - }, - running: function () { - return workers; - }, - idle: function() { - return q.tasks.length + workers === 0; - }, - pause: function () { - if (q.paused === true) { return; } - q.paused = true; - q.process(); - }, - resume: function () { - if (q.paused === false) { return; } - q.paused = false; - q.process(); - } - }; - return q; - }; - - async.priorityQueue = function (worker, concurrency) { - - function _compareTasks(a, b){ - return a.priority - b.priority; - }; - - function _binarySearch(sequence, item, compare) { - var beg = -1, - end = sequence.length - 1; - while (beg < end) { - var mid = beg + ((end - beg + 1) >>> 1); - if (compare(item, sequence[mid]) >= 0) { - beg = mid; - } else { - end = mid - 1; - } - } - return beg; - } - - function _insert(q, data, priority, callback) { - if (!q.started){ - q.started = true; - } - if (!_isArray(data)) { - data = [data]; - } - if(data.length == 0) { - // call drain immediately if there are no tasks - return async.setImmediate(function() { - if (q.drain) { - q.drain(); - } - }); - } - _each(data, function(task) { - var item = { - data: task, - priority: priority, - callback: typeof callback === 'function' ? callback : null - }; - - q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item); - - if (q.saturated && q.tasks.length === q.concurrency) { - q.saturated(); - } - async.setImmediate(q.process); - }); - } - - // Start with a normal queue - var q = async.queue(worker, concurrency); - - // Override push to accept second parameter representing priority - q.push = function (data, priority, callback) { - _insert(q, data, priority, callback); - }; - - // Remove unshift function - delete q.unshift; - - return q; - }; - - async.cargo = function (worker, payload) { - var working = false, - tasks = []; - - var cargo = { - tasks: tasks, - payload: payload, - saturated: null, - empty: null, - drain: null, - drained: true, - push: function (data, callback) { - if (!_isArray(data)) { - data = [data]; - } - _each(data, function(task) { - tasks.push({ - data: task, - callback: typeof callback === 'function' ? callback : null - }); - cargo.drained = false; - if (cargo.saturated && tasks.length === payload) { - cargo.saturated(); - } - }); - async.setImmediate(cargo.process); - }, - process: function process() { - if (working) return; - if (tasks.length === 0) { - if(cargo.drain && !cargo.drained) cargo.drain(); - cargo.drained = true; - return; - } - - var ts = typeof payload === 'number' - ? tasks.splice(0, payload) - : tasks.splice(0, tasks.length); - - var ds = _map(ts, function (task) { - return task.data; - }); - - if(cargo.empty) cargo.empty(); - working = true; - worker(ds, function () { - working = false; - - var args = arguments; - _each(ts, function (data) { - if (data.callback) { - data.callback.apply(null, args); - } - }); - - process(); - }); - }, - length: function () { - return tasks.length; - }, - running: function () { - return working; - } - }; - return cargo; - }; - - var _console_fn = function (name) { - return function (fn) { - var args = Array.prototype.slice.call(arguments, 1); - fn.apply(null, args.concat([function (err) { - var args = Array.prototype.slice.call(arguments, 1); - if (typeof console !== 'undefined') { - if (err) { - if (console.error) { - console.error(err); - } - } - else if (console[name]) { - _each(args, function (x) { - console[name](x); - }); - } - } - }])); - }; - }; - async.log = _console_fn('log'); - async.dir = _console_fn('dir'); - /*async.info = _console_fn('info'); - async.warn = _console_fn('warn'); - async.error = _console_fn('error');*/ - - async.memoize = function (fn, hasher) { - var memo = {}; - var queues = {}; - hasher = hasher || function (x) { - return x; - }; - var memoized = function () { - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - var key = hasher.apply(null, args); - if (key in memo) { - async.nextTick(function () { - callback.apply(null, memo[key]); - }); - } - else if (key in queues) { - queues[key].push(callback); - } - else { - queues[key] = [callback]; - fn.apply(null, args.concat([function () { - memo[key] = arguments; - var q = queues[key]; - delete queues[key]; - for (var i = 0, l = q.length; i < l; i++) { - q[i].apply(null, arguments); - } - }])); - } - }; - memoized.memo = memo; - memoized.unmemoized = fn; - return memoized; - }; - - async.unmemoize = function (fn) { - return function () { - return (fn.unmemoized || fn).apply(null, arguments); - }; - }; - - async.times = function (count, iterator, callback) { - var counter = []; - for (var i = 0; i < count; i++) { - counter.push(i); - } - return async.map(counter, iterator, callback); - }; - - async.timesSeries = function (count, iterator, callback) { - var counter = []; - for (var i = 0; i < count; i++) { - counter.push(i); - } - return async.mapSeries(counter, iterator, callback); - }; - - async.seq = function (/* functions... */) { - var fns = arguments; - return function () { - var that = this; - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - async.reduce(fns, args, function (newargs, fn, cb) { - fn.apply(that, newargs.concat([function () { - var err = arguments[0]; - var nextargs = Array.prototype.slice.call(arguments, 1); - cb(err, nextargs); - }])) - }, - function (err, results) { - callback.apply(that, [err].concat(results)); - }); - }; - }; - - async.compose = function (/* functions... */) { - return async.seq.apply(null, Array.prototype.reverse.call(arguments)); - }; - - var _applyEach = function (eachfn, fns /*args...*/) { - var go = function () { - var that = this; - var args = Array.prototype.slice.call(arguments); - var callback = args.pop(); - return eachfn(fns, function (fn, cb) { - fn.apply(that, args.concat([cb])); - }, - callback); - }; - if (arguments.length > 2) { - var args = Array.prototype.slice.call(arguments, 2); - return go.apply(this, args); - } - else { - return go; - } - }; - async.applyEach = doParallel(_applyEach); - async.applyEachSeries = doSeries(_applyEach); - - async.forever = function (fn, callback) { - function next(err) { - if (err) { - if (callback) { - return callback(err); - } - throw err; - } - fn(next); - } - next(); - }; - - // Node.js - if (typeof module !== 'undefined' && module.exports) { - module.exports = async; - } - // AMD / RequireJS - else if (typeof define !== 'undefined' && define.amd) { - define([], function () { - return async; - }); - } - // included directly via - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/deferred.html b/bower_components/leaflet-plugins/examples/deferred.html deleted file mode 100644 index 26023c3..0000000 --- a/bower_components/leaflet-plugins/examples/deferred.html +++ /dev/null @@ -1,54 +0,0 @@ - - - Leaflet - - - - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/distance.html b/bower_components/leaflet-plugins/examples/distance.html deleted file mode 100644 index 2ffda81..0000000 --- a/bower_components/leaflet-plugins/examples/distance.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - Leaflet - - - - - - - - - - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/fells_loop.gpx b/bower_components/leaflet-plugins/examples/fells_loop.gpx deleted file mode 100644 index d8a1df5..0000000 --- a/bower_components/leaflet-plugins/examples/fells_loop.gpx +++ /dev/null @@ -1,1077 +0,0 @@ - - - - - - 44.586548 - - 5066 - - Crossing - - - - 57.607200 - - 5067 - - Dot - - - - 44.826904 - - 5096 - - Dot - - - - 50.594727 - - 5142 - - Dot - - - - 127.711200 - - 5156 - - Dot - - - - 96.926400 - - 5224 - - Dot - - - - 82.600800 - - 5229 - - Dot - - - - 82.905600 - - 5237 - - Dot - - - - 66.696655 - - 5254 - - Dot - - - - 74.627442 - - 5258 - - Dot - - - - 65.254761 - - 5264 - - Dot - - - - 77.419200 - - 526708 - - Dot - - - - 74.676000 - - 526750 - - Dot - - - - 78.713135 - - 527614 - - Dot - - - - 78.713135 - - 527631 - - Dot - - - - 68.275200 - - 5278 - - Dot - - - - 64.008000 - - 5289 - - Dot - - - - 52.997925 - - 5374FIRE - - Dot - - - - 56.388000 - - 5376 - - Dot - - - - 56.388000 - - 6006 - - Dot - - - - 46.028564 - - 6006BLUE - - Dot - - - - 37.616943 - - 6014MEADOW - - Dot - - - - 56.388000 - - 6029 - - Dot - - - - 50.292000 - - 6053 - - Dot - - - - 25.603200 - - 6066 - - Dot - - - - 34.442400 - - 6067 - - Dot - - - - 30.480000 - - 6071 - - Dot - - - - 15.240000 - - 6073 - - Dot - - - - 37.795200 - - 6084 - - Dot - - - - 64.008000 - - 6130 - - Dot - - - - 64.008000 - - 6131 - - Dot - - - - 62.788800 - - 6153 - - Dot - - - - 55.473600 - - 6171 - - Dot - - - - 62.484000 - - 6176 - - Dot - - - - 62.179200 - - 6177 - - Dot - - - - 69.799200 - - 6272 - - Dot - - - - 73.152000 - - 6272 - - Dot - - - - 70.104000 - - 6278 - - Dot - - - - 57.564209 - - 6280 - - Dot - - - - 66.696655 - - 6283 - - Dot - - - - 72.945191 - - 6289 - - Dot - - - - 72.847200 - - 6297 - - Dot - - - - 53.644800 - - 6328 - - Dot - - - - 43.891200 - - 6354 - - Dot - - - - 48.768000 - - 635722 - - Dot - - - - 49.072800 - - 635783 - - Dot - - - - 62.484000 - - 6373 - - Dot - - - - 3.962400 - - 6634 - - Dot - - - - 13.411200 - - 6979 - - Dot - - - - 34.012085 - - 6997 - - Dot - - - - 87.782400 - - BEAR HILL - BEAR HILL TOWER - - Tall Tower - - - - 23.469600 - - BELLEVUE - BELLEVUE - - Parking Area - - - - 43.384766 - - 6016 - - Trailhead - - - - 89.916000 - - 5236BRIDGE - - Bridge - - - - 55.473600 - - 5376BRIDGE - - Bridge - - - - 52.730400 - - 6181CROSS - - Crossing - - - - 45.110400 - - 6042CROSS - - Crossing - - - - DARKHOLLPO - - Fishing Area - - - 56.083200 - - 6121DEAD - - Danger Area - - - - 117.043200 - - 5179DEAD - - Danger Area - - - - 69.494400 - - 5299DEAD - - Danger Area - - - - 56.997600 - - 5376DEAD - - Danger Area - - - - 46.939200 - - 6353DEAD - - Danger Area - - - - 61.264800 - - 6155DEAD - - Danger Area - - - - 110.947200 - - GATE14 - - Truck Stop - - - - 77.724000 - - GATE16 - - Truck Stop - - - - 65.836800 - - GATE17 - - Truck Stop - - - - 57.302400 - - GATE19 - - Truck Stop - - - - 49.377600 - - GATE21 - - Truck Stop - - - - 81.076800 - - GATE24 - - Truck Stop - - - - 21.515015 - - GATE5 - - Truck Stop - - - - 26.561890 - - GATE6 - - Trailhead - - - - 32.004000 - - 6077LOGS - - Amusement Park - - - - 119.809082 - - 5148NANEPA - - Trailhead - - - - 73.761600 - - 5267OBSTAC - - Amusement Park - - - - 45.307495 - - PANTHRCAVE - - Tunnel - - - - 77.992066 - - 5252PURPLE - - Summit - - - - 67.970400 - - 5287WATER - - Swimming Area - - - - 81.076800 - - 5239ROAD - - Truck Stop - - - - 67.360800 - - 5278ROAD - - Truck Stop - - - - 53.949600 - - 5058ROAD - ROAD CROSSING - - Dot - - - - 69.799200 - - SHEEPFOLD - - Parking Area - - - - 64.008000 - - SOAPBOX - - Cemetery - - - - 64.533692 - - 5376STREAM - - Bridge - - - - 61.649902 - - 5144SUMMIT - - Summit - - - - 67.360800 - - 5150TANK - WATER TANK - - Museum - - - - BELLEVUE - - 1 - - 23.469600 - - BELLEVUE - BELLEVUE - - Parking Area - - - - 26.561890 - - GATE6 - - Trailhead - - - - 45.307495 - - PANTHRCAVE - - Tunnel - - - - 37.616943 - - 6014MEADOW - - Dot - - - - 56.388000 - - 6006 - - Dot - - - - 46.028564 - - 6006BLUE - - Dot - - - - 44.826904 - - 5096 - - Dot - - - - 44.586548 - - 5066 - - Crossing - - - - 57.607200 - - 5067 - - Dot - - - - 53.949600 - - 5058ROAD - ROAD CROSSING - - Dot - - - - 67.360800 - - 5150TANK - WATER TANK - - Museum - - - - 50.594727 - - 5142 - - Dot - - - - 61.649902 - - 5144SUMMIT - - Summit - - - - 127.711200 - - 5156 - - Dot - - - - 119.809082 - - 5148NANEPA - - Trailhead - - - - 74.627442 - - 5258 - - Dot - - - - 77.992066 - - 5252PURPLE - - Summit - - - - 78.713135 - - 527631 - - Dot - - - - 78.713135 - - 527614 - - Dot - - - - 73.761600 - - 5267OBSTAC - - Amusement Park - - - - 68.275200 - - 5278 - - Dot - - - - 64.008000 - - 5289 - - Dot - - - - 52.997925 - - 5374FIRE - - Dot - - - - 56.388000 - - 5376 - - Dot - - - - 64.533692 - - 5376STREAM - - Bridge - - - - 53.644800 - - 6328 - - Dot - - - - 48.768000 - - 635722 - - Dot - - - - 49.072800 - - 635783 - - Dot - - - - 62.484000 - - 6373 - - Dot - - - - 87.782400 - - BEAR HILL - BEAR HILL TOWER - - Tall Tower - - - - 72.945191 - - 6289 - - Dot - - - - 72.847200 - - 6297 - - Dot - - - - 66.696655 - - 6283 - - Dot - - - - 57.564209 - - 6280 - - Dot - - - - 62.179200 - - 6177 - - Dot - - - - 62.484000 - - 6176 - - Dot - - - - 62.788800 - - 6153 - - Dot - - - - 55.473600 - - 6171 - - Dot - - - - 64.008000 - - 6131 - - Dot - - - - 64.008000 - - 6130 - - Dot - - - - 56.388000 - - 6029 - - Dot - - - - 56.388000 - - 6006 - - Dot - - - - 37.616943 - - 6014MEADOW - - Dot - - - - 45.307495 - - PANTHRCAVE - - Tunnel - - - - 26.561890 - - GATE6 - - Trailhead - - - - 23.469600 - - BELLEVUE - BELLEVUE - - Parking Area - - - - \ No newline at end of file diff --git a/bower_components/leaflet-plugins/examples/google-custom.html b/bower_components/leaflet-plugins/examples/google-custom.html deleted file mode 100644 index 54448fd..0000000 --- a/bower_components/leaflet-plugins/examples/google-custom.html +++ /dev/null @@ -1,33 +0,0 @@ - - - Google Custom Styles // Leaflet - - - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/google.html b/bower_components/leaflet-plugins/examples/google.html deleted file mode 100644 index a15d36e..0000000 --- a/bower_components/leaflet-plugins/examples/google.html +++ /dev/null @@ -1,22 +0,0 @@ - - - Google // Leaflet - - - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/gpx-no-wpt.html b/bower_components/leaflet-plugins/examples/gpx-no-wpt.html deleted file mode 100644 index 79389c5..0000000 --- a/bower_components/leaflet-plugins/examples/gpx-no-wpt.html +++ /dev/null @@ -1,24 +0,0 @@ - - - Leaflet - GPX track without Waypoints - - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/gpx-speed.html b/bower_components/leaflet-plugins/examples/gpx-speed.html deleted file mode 100644 index 2ba5852..0000000 --- a/bower_components/leaflet-plugins/examples/gpx-speed.html +++ /dev/null @@ -1,26 +0,0 @@ - - - Leaflet - - - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/gpx.html b/bower_components/leaflet-plugins/examples/gpx.html deleted file mode 100644 index 7207a8f..0000000 --- a/bower_components/leaflet-plugins/examples/gpx.html +++ /dev/null @@ -1,24 +0,0 @@ - - - Leaflet - - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/kml.html b/bower_components/leaflet-plugins/examples/kml.html deleted file mode 100644 index 6089699..0000000 --- a/bower_components/leaflet-plugins/examples/kml.html +++ /dev/null @@ -1,24 +0,0 @@ - - - Leaflet - - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/marker-canvas.html b/bower_components/leaflet-plugins/examples/marker-canvas.html deleted file mode 100644 index ba37a7b..0000000 --- a/bower_components/leaflet-plugins/examples/marker-canvas.html +++ /dev/null @@ -1,39 +0,0 @@ - - - Leaflet - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/marker-rotate.html b/bower_components/leaflet-plugins/examples/marker-rotate.html deleted file mode 100644 index 17afdc1..0000000 --- a/bower_components/leaflet-plugins/examples/marker-rotate.html +++ /dev/null @@ -1,27 +0,0 @@ - - - Leaflet - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/marker-text.html b/bower_components/leaflet-plugins/examples/marker-text.html deleted file mode 100644 index c99eacc..0000000 --- a/bower_components/leaflet-plugins/examples/marker-text.html +++ /dev/null @@ -1,21 +0,0 @@ - - - Leaflet - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/osb.html b/bower_components/leaflet-plugins/examples/osb.html deleted file mode 100644 index 572a8d4..0000000 --- a/bower_components/leaflet-plugins/examples/osb.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - Leaflet - - - - - - - -
- - - diff --git a/bower_components/leaflet-plugins/examples/osm.html b/bower_components/leaflet-plugins/examples/osm.html deleted file mode 100644 index 4311b0b..0000000 --- a/bower_components/leaflet-plugins/examples/osm.html +++ /dev/null @@ -1,21 +0,0 @@ - - - Leaflet - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/permalink.html b/bower_components/leaflet-plugins/examples/permalink.html deleted file mode 100644 index a988cd2..0000000 --- a/bower_components/leaflet-plugins/examples/permalink.html +++ /dev/null @@ -1,23 +0,0 @@ - - - Leaflet - - - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/examples/speed.gpx b/bower_components/leaflet-plugins/examples/speed.gpx deleted file mode 100755 index baa8c0b..0000000 --- a/bower_components/leaflet-plugins/examples/speed.gpx +++ /dev/null @@ -1,80059 +0,0 @@ - - - - - - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 4.0 - - - 145.0 - - 4.0 - - - 145.0 - - 4.0 - - - 145.0 - - 4.0 - - - 145.0 - - 4.0 - - - 145.0 - - 4.0 - - - 145.0 - - 4.0 - - - 145.0 - - 4.0 - - - 145.0 - - 4.0 - - - 145.0 - - 4.0 - - - 145.0 - - 4.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 2.0 - - - 145.0 - - 2.0 - - - 145.0 - - 2.0 - - - 145.0 - - 2.0 - - - 146.0 - - 2.0 - - - 147.0 - - 4.0 - - - 147.0 - - 6.0 - - - 147.0 - - 6.0 - - - 147.0 - - 4.0 - - - 147.0 - - 4.0 - - - 147.0 - - 4.0 - - - 147.0 - - 4.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 2.0 - - - 147.0 - - 3.0 - - - 147.0 - - 2.0 - - - 147.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 2.0 - - - 147.0 - - 2.0 - - - 147.0 - - 2.0 - - - 147.0 - - 2.0 - - - 147.0 - - 2.0 - - - 147.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 147.0 - - 2.0 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 2.0 - - - 152.0 - - 1.5 - - - 152.0 - - 2.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 2.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 2.0 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 1.5 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 1.5 - - - 150.0 - - 2.0 - - - 150.0 - - 1.5 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 151.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 149.0 - - 0.75 - - - 150.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 148.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 150.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 150.0 - - 1.0 - - - 149.0 - - 0.75 - - - 150.0 - - 1.0 - - - 149.0 - - 0.75 - - - 150.0 - - 1.0 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 2.0 - - - 149.0 - - 1.5 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 3.0 - - - 149.0 - - 3.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 152.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 150.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.5 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 151.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 153.0 - - 3.0 - - - 152.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 150.0 - - 2.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 3.0 - - - 153.0 - - 3.0 - - - 153.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 153.0 - - 3.0 - - - 153.0 - - 2.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 2.0 - - - 152.0 - - 3.0 - - - 153.0 - - 3.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 3.0 - - - 152.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 6.0 - - - 161.0 - - 6.0 - - - 160.0 - - 6.0 - - - 160.0 - - 6.0 - - - 161.0 - - 6.0 - - - 160.0 - - 6.0 - - - 160.0 - - 6.0 - - - 159.0 - - 6.0 - - - 159.0 - - 6.0 - - - 159.0 - - 6.0 - - - 159.0 - - 6.0 - - - 158.0 - - 6.0 - - - 158.0 - - 6.0 - - - 157.0 - - 6.0 - - - 157.0 - - 6.0 - - - 157.0 - - 6.0 - - - 157.0 - - 6.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 157.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 155.0 - - 4.0 - - - 156.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 156.0 - - 3.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 155.0 - - 3.0 - - - 156.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 155.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 2.0 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 4.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 164.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 3.0 - - - 162.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 3.0 - - - 159.0 - - 3.0 - - - 160.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 162.0 - - 3.0 - - - 161.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 160.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 166.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 168.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 4.0 - - - 169.0 - - 4.0 - - - 170.0 - - 4.0 - - - 170.0 - - 4.0 - - - 171.0 - - 4.0 - - - 171.0 - - 4.0 - - - 171.0 - - 4.0 - - - 172.0 - - 4.0 - - - 172.0 - - 4.0 - - - 172.0 - - 4.0 - - - 172.0 - - 4.0 - - - 172.0 - - 4.0 - - - 173.0 - - 4.0 - - - 173.0 - - 4.0 - - - 174.0 - - 3.0 - - - 175.0 - - 4.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 175.0 - - 3.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 173.0 - - 4.0 - - - 173.0 - - 4.0 - - - 173.0 - - 4.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 175.0 - - 4.0 - - - 175.0 - - 4.0 - - - 174.0 - - 4.0 - - - 175.0 - - 4.0 - - - 175.0 - - 4.0 - - - 176.0 - - 4.0 - - - 176.0 - - 4.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 178.0 - - 4.0 - - - 178.0 - - 4.0 - - - 179.0 - - 4.0 - - - 180.0 - - 4.0 - - - 180.0 - - 4.0 - - - 180.0 - - 4.0 - - - 180.0 - - 4.0 - - - 180.0 - - 4.0 - - - 180.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 180.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 180.0 - - 4.0 - - - 180.0 - - 4.0 - - - 180.0 - - 4.0 - - - 180.0 - - 4.0 - - - 181.0 - - 4.0 - - - 181.0 - - 4.0 - - - 182.0 - - 4.0 - - - 182.0 - - 4.0 - - - 182.0 - - 3.0 - - - 182.0 - - 3.0 - - - 182.0 - - 3.0 - - - 182.0 - - 3.0 - - - 183.0 - - 3.0 - - - 182.0 - - 3.0 - - - 182.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 184.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 182.0 - - 3.0 - - - 182.0 - - 3.0 - - - 181.0 - - 3.0 - - - 181.0 - - 3.0 - - - 181.0 - - 3.0 - - - 181.0 - - 3.0 - - - 181.0 - - 3.0 - - - 180.0 - - 4.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 181.0 - - 3.0 - - - 182.0 - - 3.0 - - - 182.0 - - 3.0 - - - 182.0 - - 3.0 - - - 182.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 185.0 - - 3.0 - - - 185.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 185.0 - - 3.0 - - - 185.0 - - 3.0 - - - 185.0 - - 3.0 - - - 185.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 183.0 - - 3.0 - - - 184.0 - - 3.0 - - - 185.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 184.0 - - 3.0 - - - 183.0 - - 3.0 - - - 183.0 - - 3.0 - - - 182.0 - - 3.0 - - - 182.0 - - 3.0 - - - 181.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 179.0 - - 3.0 - - - 178.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 176.0 - - 3.0 - - - 174.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 175.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 4.0 - - - 178.0 - - 4.0 - - - 178.0 - - 4.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 178.0 - - 4.0 - - - 178.0 - - 4.0 - - - 179.0 - - 3.0 - - - 180.0 - - 3.0 - - - 179.0 - - 4.0 - - - 179.0 - - 4.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 4.0 - - - 178.0 - - 3.0 - - - 177.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 177.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 177.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 178.0 - - 4.0 - - - 178.0 - - 4.0 - - - 177.0 - - 4.0 - - - 175.0 - - 4.0 - - - 174.0 - - 4.0 - - - 173.0 - - 4.0 - - - 170.0 - - 4.0 - - - 170.0 - - 4.0 - - - 171.0 - - 4.0 - - - 171.0 - - 4.0 - - - 170.0 - - 4.0 - - - 170.0 - - 4.0 - - - 168.0 - - 6.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 165.0 - - 4.0 - - - 163.0 - - 4.0 - - - 164.0 - - 4.0 - - - 165.0 - - 6.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 166.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 164.0 - - 4.0 - - - 163.0 - - 4.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 161.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 160.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 1.5 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 168.0 - - 3.0 - - - 167.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 1.5 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 155.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 160.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 163.0 - - 3.0 - - - 162.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 160.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 3.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 6.0 - - - 158.0 - - 6.0 - - - 158.0 - - 6.0 - - - 158.0 - - 8.0 - - - 158.0 - - 8.0 - - - 158.0 - - 6.0 - - - 157.0 - - 6.0 - - - 157.0 - - 6.0 - - - 157.0 - - 6.0 - - - 157.0 - - 6.0 - - - 157.0 - - 6.0 - - - 157.0 - - 4.0 - - - 157.0 - - 4.0 - - - 157.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 2.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 158.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 161.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 167.0 - - 2.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 174.0 - - 3.0 - - - 172.0 - - 3.0 - - - 172.0 - - 4.0 - - - 173.0 - - 4.0 - - - 172.0 - - 4.0 - - - 172.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 172.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 168.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 167.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 166.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 163.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 165.0 - - 2.0 - - - 164.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 4.0 - - - 166.0 - - 3.0 - - - 165.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 169.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 172.0 - - 3.0 - - - 172.0 - - 3.0 - - - 172.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 172.0 - - 3.0 - - - 172.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 174.0 - - 3.0 - - - 175.0 - - 3.0 - - - 174.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 175.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 3.0 - - - 178.0 - - 3.0 - - - 177.0 - - 3.0 - - - 178.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 177.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 175.0 - - 3.0 - - - 176.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 173.0 - - 4.0 - - - 174.0 - - 4.0 - - - 175.0 - - 4.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 4.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 179.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 4.0 - - - 178.0 - - 4.0 - - - 177.0 - - 4.0 - - - 177.0 - - 4.0 - - - 176.0 - - 4.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 173.0 - - 4.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 173.0 - - 4.0 - - - 173.0 - - 4.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 173.0 - - 4.0 - - - 172.0 - - 4.0 - - - 172.0 - - 4.0 - - - 171.0 - - 4.0 - - - 172.0 - - 4.0 - - - 171.0 - - 4.0 - - - 171.0 - - 4.0 - - - 172.0 - - 4.0 - - - 171.0 - - 4.0 - - - 172.0 - - 4.0 - - - 172.0 - - 4.0 - - - 172.0 - - 4.0 - - - 172.0 - - 4.0 - - - 171.0 - - 4.0 - - - 171.0 - - 4.0 - - - 171.0 - - 4.0 - - - 171.0 - - 4.0 - - - 171.0 - - 4.0 - - - 170.0 - - 4.0 - - - 169.0 - - 4.0 - - - 169.0 - - 6.0 - - - 169.0 - - 6.0 - - - 169.0 - - 6.0 - - - 169.0 - - 4.0 - - - 169.0 - - 4.0 - - - 169.0 - - 4.0 - - - 169.0 - - 4.0 - - - 169.0 - - 4.0 - - - 170.0 - - 4.0 - - - 170.0 - - 4.0 - - - 171.0 - - 4.0 - - - 172.0 - - 4.0 - - - 172.0 - - 4.0 - - - 171.0 - - 4.0 - - - 170.0 - - 4.0 - - - 168.0 - - 4.0 - - - 169.0 - - 4.0 - - - 171.0 - - 4.0 - - - 171.0 - - 4.0 - - - 172.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 174.0 - - 3.0 - - - 172.0 - - 3.0 - - - 172.0 - - 3.0 - - - 172.0 - - 3.0 - - - 172.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 170.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 168.0 - - 3.0 - - - 167.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 168.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 171.0 - - 3.0 - - - 172.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 174.0 - - 3.0 - - - 174.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 176.0 - - 3.0 - - - 175.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 177.0 - - 2.0 - - - 176.0 - - 2.0 - - - 176.0 - - 2.0 - - - 176.0 - - 2.0 - - - 176.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 178.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 176.0 - - 2.0 - - - 175.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 174.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 174.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 3.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 175.0 - - 2.0 - - - 174.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 176.0 - - 2.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 178.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 179.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 180.0 - - 3.0 - - - 181.0 - - 3.0 - - - 181.0 - - 2.0 - - - 180.0 - - 2.0 - - - 180.0 - - 2.0 - - - 180.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 179.0 - - 2.0 - - - 180.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 180.0 - - 2.0 - - - 180.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 178.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 178.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 1.5 - - - 178.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 176.0 - - 1.5 - - - 175.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.0 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.0 - - - 167.0 - - 1.0 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 163.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 161.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 161.0 - - 0.75 - - - 160.0 - - 1.0 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 2.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 156.0 - - 0.75 - - - 155.0 - - 0.5 - - - 155.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.75 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 155.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 157.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 158.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.5 - - - 164.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 0.75 - - - 165.0 - - 0.75 - - - 166.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 164.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 166.0 - - 1.0 - - - 166.0 - - 1.0 - - - 166.0 - - 1.0 - - - 166.0 - - 1.0 - - - 166.0 - - 1.0 - - - 166.0 - - 1.0 - - - 166.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 1.0 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 165.0 - - 0.75 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 165.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 163.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 162.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 1.0 - - - 162.0 - - 1.0 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 0.5 - - - 165.0 - - 0.5 - - - 165.0 - - 0.5 - - - 165.0 - - 0.5 - - - 164.0 - - 0.5 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.5 - - - 164.0 - - 0.5 - - - 163.0 - - 0.5 - - - 163.0 - - 0.5 - - - 163.0 - - 0.75 - - - 162.0 - - 0.5 - - - 162.0 - - 0.5 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 1.5 - - - 164.0 - - 2.0 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.0 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 160.0 - - 6.0 - - - 160.0 - - 6.0 - - - 160.0 - - 6.0 - - - 160.0 - - 6.0 - - - 161.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 3.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 8.0 - - - 163.0 - - 8.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 16.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 164.0 - - 12.0 - - - 163.0 - - 8.0 - - - 164.0 - - 8.0 - - - 164.0 - - 6.0 - - - 164.0 - - 6.0 - - - 162.0 - - 6.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 6.0 - - - 165.0 - - 6.0 - - - 165.0 - - 6.0 - - - 165.0 - - 6.0 - - - 165.0 - - 6.0 - - - 165.0 - - 6.0 - - - 165.0 - - 6.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 167.0 - - 2.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 167.0 - - 4.0 - - - 167.0 - - 6.0 - - - 167.0 - - 6.0 - - - 168.0 - - 4.0 - - - 167.0 - - 4.0 - - - 167.0 - - 4.0 - - - 167.0 - - 6.0 - - - 167.0 - - 6.0 - - - 167.0 - - 6.0 - - - 167.0 - - 4.0 - - - 167.0 - - 4.0 - - - 168.0 - - 6.0 - - - 168.0 - - 6.0 - - - 168.0 - - 6.0 - - - 168.0 - - 6.0 - - - 168.0 - - 6.0 - - - 168.0 - - 6.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 169.0 - - 12.0 - - - 169.0 - - 12.0 - - - 169.0 - - 12.0 - - - 169.0 - - 12.0 - - - 169.0 - - 12.0 - - - 169.0 - - 8.0 - - - 169.0 - - 12.0 - - - 169.0 - - 12.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 167.0 - - 8.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 167.0 - - 12.0 - - - 167.0 - - 12.0 - - - 167.0 - - 12.0 - - - 168.0 - - 12.0 - - - 170.0 - - 8.0 - - - 173.0 - - 6.0 - - - 174.0 - - 6.0 - - - 174.0 - - 4.0 - - - 174.0 - - 4.0 - - - 175.0 - - 4.0 - - - 176.0 - - 3.0 - - - 175.0 - - 3.0 - - - 174.0 - - 3.0 - - - 175.0 - - 3.0 - - - 174.0 - - 2.0 - - - 173.0 - - 2.0 - - - 174.0 - - 1.5 - - - 175.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.0 - - - 171.0 - - 1.5 - - - 171.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 168.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 166.0 - - 1.0 - - - 167.0 - - 1.0 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 6.0 - - - 166.0 - - 6.0 - - - 166.0 - - 6.0 - - - 166.0 - - 8.0 - - - 166.0 - - 8.0 - - - 166.0 - - 12.0 - - - 166.0 - - 12.0 - - - 166.0 - - 12.0 - - - 166.0 - - 12.0 - - - 167.0 - - 12.0 - - - 167.0 - - 12.0 - - - 167.0 - - 12.0 - - - 167.0 - - 12.0 - - - 167.0 - - 12.0 - - - 167.0 - - 12.0 - - - 167.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 168.0 - - 12.0 - - - 171.0 - - 12.0 - - - 169.0 - - 8.0 - - - 169.0 - - 8.0 - - - 170.0 - - 8.0 - - - 170.0 - - 8.0 - - - 170.0 - - 8.0 - - - 169.0 - - 8.0 - - - 169.0 - - 8.0 - - - 169.0 - - 8.0 - - - 169.0 - - 8.0 - - - 169.0 - - 8.0 - - - 169.0 - - 8.0 - - - 169.0 - - 8.0 - - - 169.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 8.0 - - - 168.0 - - 12.0 - - - 169.0 - - 12.0 - - - 169.0 - - 12.0 - - - 165.0 - - 12.0 - - - 167.0 - - 6.0 - - - 167.0 - - 6.0 - - - 170.0 - - 4.0 - - - 172.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 170.0 - - 3.0 - - - 167.0 - - 3.0 - - - 166.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 168.0 - - 3.0 - - - 169.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 165.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 156.0 - - 3.0 - - - 155.0 - - 4.0 - - - 154.0 - - 4.0 - - - 154.0 - - 4.0 - - - 154.0 - - 4.0 - - - 155.0 - - 4.0 - - - 155.0 - - 4.0 - - - 155.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 155.0 - - 4.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 158.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 160.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 165.0 - - 2.0 - - - 166.0 - - 2.0 - - - 165.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 2.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 157.0 - - 4.0 - - - 157.0 - - 4.0 - - - 155.0 - - 4.0 - - - 153.0 - - 4.0 - - - 151.0 - - 4.0 - - - 148.0 - - 4.0 - - - 146.0 - - 3.0 - - - 145.0 - - 4.0 - - - 144.0 - - 4.0 - - - 144.0 - - 4.0 - - - 143.0 - - 4.0 - - - 144.0 - - 4.0 - - - 144.0 - - 4.0 - - - 144.0 - - 3.0 - - - 143.0 - - 3.0 - - - 145.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 149.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 150.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 2.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.0 - - - 153.0 - - 1.5 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 152.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 152.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 0.75 - - - 149.0 - - 0.75 - - - 148.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.5 - - - 150.0 - - 0.5 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 151.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 2.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 0.75 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 157.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 156.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 1.0 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.5 - - - 150.0 - - 0.5 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 151.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 151.0 - - 2.0 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 152.0 - - 1.0 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.5 - - - 153.0 - - 0.5 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 152.0 - - 0.75 - - - 153.0 - - 0.5 - - - 153.0 - - 0.5 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 152.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 152.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 150.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.5 - - - 152.0 - - 0.5 - - - 152.0 - - 0.75 - - - 152.0 - - 0.5 - - - 152.0 - - 0.5 - - - 152.0 - - 0.5 - - - 152.0 - - 0.5 - - - 152.0 - - 0.5 - - - 152.0 - - 0.5 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 1.0 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 153.0 - - 0.75 - - - 152.0 - - 1.0 - - - 153.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.0 - - - 153.0 - - 1.5 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 0.75 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.5 - - - 153.0 - - 0.5 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 1.0 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 155.0 - - 1.0 - - - 154.0 - - 0.75 - - - 155.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 1.0 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 156.0 - - 1.0 - - - 157.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 154.0 - - 0.5 - - - 153.0 - - 0.5 - - - 153.0 - - 0.5 - - - 153.0 - - 0.75 - - - 152.0 - - 0.75 - - - 153.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 152.0 - - 1.0 - - - 155.0 - - 0.75 - - - 156.0 - - 0.75 - - - 155.0 - - 0.75 - - - 153.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 153.0 - - 0.75 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 158.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.5 - - - 154.0 - - 0.5 - - - 153.0 - - 0.5 - - - 152.0 - - 0.5 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 148.0 - - 1.0 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.0 - - - 149.0 - - 1.0 - - - 148.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 148.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 145.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 147.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 2.0 - - - 146.0 - - 2.0 - - - 147.0 - - 2.0 - - - 147.0 - - 2.0 - - - 148.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 150.0 - - 2.0 - - - 149.0 - - 2.0 - - - 148.0 - - 2.0 - - - 148.0 - - 2.0 - - - 148.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 151.0 - - 2.0 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 3.0 - - - 155.0 - - 2.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 153.0 - - 3.0 - - - 153.0 - - 3.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 6.0 - - - 153.0 - - 6.0 - - - 153.0 - - 6.0 - - - 153.0 - - 6.0 - - - 153.0 - - 6.0 - - - 153.0 - - 6.0 - - - 153.0 - - 8.0 - - - 153.0 - - 8.0 - - - 153.0 - - 8.0 - - - 153.0 - - 8.0 - - - 153.0 - - 8.0 - - - 153.0 - - 8.0 - - - 153.0 - - 8.0 - - - 153.0 - - 8.0 - - - 153.0 - - 8.0 - - - 153.0 - - 8.0 - - - 153.0 - - 8.0 - - - 153.0 - - 8.0 - - - 153.0 - - 6.0 - - - 153.0 - - 6.0 - - - 153.0 - - 6.0 - - - 153.0 - - 6.0 - - - 153.0 - - 6.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 4.0 - - - 154.0 - - 4.0 - - - 153.0 - - 4.0 - - - 153.0 - - 3.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 0.75 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.0 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.5 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 3.0 - - - 154.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 2.0 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 2.0 - - - 153.0 - - 1.5 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 157.0 - - 2.0 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 2.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 3.0 - - - 153.0 - - 3.0 - - - 153.0 - - 3.0 - - - 153.0 - - 3.0 - - - 153.0 - - 3.0 - - - 154.0 - - 3.0 - - - 153.0 - - 3.0 - - - 153.0 - - 3.0 - - - 153.0 - - 3.0 - - - 153.0 - - 3.0 - - - 152.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 152.0 - - 2.0 - - - 151.0 - - 3.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 153.0 - - 3.0 - - - 152.0 - - 3.0 - - - 150.0 - - 3.0 - - - 148.0 - - 3.0 - - - 148.0 - - 3.0 - - - 150.0 - - 3.0 - - - 149.0 - - 3.0 - - - 148.0 - - 3.0 - - - 148.0 - - 3.0 - - - 150.0 - - 3.0 - - - 148.0 - - 3.0 - - - 148.0 - - 3.0 - - - 148.0 - - 3.0 - - - 148.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 2.0 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.0 - - - 150.0 - - 1.5 - - - 150.0 - - 1.0 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 149.0 - - 4.0 - - - 149.0 - - 4.0 - - - 149.0 - - 4.0 - - - 149.0 - - 4.0 - - - 149.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 4.0 - - - 150.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 150.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 1.0 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 3.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 153.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 149.0 - - 3.0 - - - 149.0 - - 3.0 - - - 150.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 149.0 - - 3.0 - - - 149.0 - - 3.0 - - - 148.0 - - 3.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 149.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 0.75 - - - 155.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 0.75 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 161.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 165.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 165.0 - - 1.0 - - - 167.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 165.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 168.0 - - 1.5 - - - 167.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 174.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 177.0 - - 1.5 - - - 176.0 - - 1.0 - - - 176.0 - - 1.0 - - - 175.0 - - 1.0 - - - 174.0 - - 1.0 - - - 176.0 - - 1.0 - - - 176.0 - - 1.0 - - - 176.0 - - 1.0 - - - 176.0 - - 1.0 - - - 177.0 - - 1.5 - - - 177.0 - - 1.5 - - - 177.0 - - 1.5 - - - 176.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 177.0 - - 1.5 - - - 177.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.0 - - - 176.0 - - 1.0 - - - 176.0 - - 1.0 - - - 176.0 - - 1.0 - - - 176.0 - - 1.5 - - - 175.0 - - 1.5 - - - 176.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.0 - - - 176.0 - - 1.5 - - - 177.0 - - 1.5 - - - 177.0 - - 1.5 - - - 177.0 - - 1.5 - - - 177.0 - - 1.5 - - - 178.0 - - 1.5 - - - 178.0 - - 1.5 - - - 178.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 180.0 - - 1.5 - - - 180.0 - - 1.5 - - - 180.0 - - 1.5 - - - 181.0 - - 1.5 - - - 180.0 - - 1.5 - - - 180.0 - - 1.5 - - - 180.0 - - 1.5 - - - 181.0 - - 1.5 - - - 181.0 - - 1.5 - - - 181.0 - - 1.5 - - - 181.0 - - 1.5 - - - 181.0 - - 1.5 - - - 181.0 - - 1.5 - - - 180.0 - - 1.5 - - - 181.0 - - 1.5 - - - 181.0 - - 1.5 - - - 180.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 180.0 - - 1.5 - - - 180.0 - - 1.5 - - - 180.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 180.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 179.0 - - 2.0 - - - 180.0 - - 1.5 - - - 180.0 - - 1.5 - - - 179.0 - - 2.0 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 178.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 1.5 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 180.0 - - 2.0 - - - 180.0 - - 2.0 - - - 180.0 - - 2.0 - - - 179.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 1.5 - - - 179.0 - - 1.5 - - - 177.0 - - 1.5 - - - 176.0 - - 1.5 - - - 175.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 168.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 2.0 - - - 164.0 - - 1.5 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 0.75 - - - 162.0 - - 0.75 - - - 161.0 - - 0.75 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 3.0 - - - 154.0 - - 3.0 - - - 154.0 - - 4.0 - - - 154.0 - - 4.0 - - - 154.0 - - 4.0 - - - 154.0 - - 6.0 - - - 154.0 - - 6.0 - - - 154.0 - - 6.0 - - - 154.0 - - 6.0 - - - 154.0 - - 6.0 - - - 154.0 - - 6.0 - - - 154.0 - - 6.0 - - - 154.0 - - 6.0 - - - 154.0 - - 6.0 - - - 154.0 - - 8.0 - - - 154.0 - - 8.0 - - - 154.0 - - 8.0 - - - 154.0 - - 8.0 - - - 154.0 - - 12.0 - - - 154.0 - - 12.0 - - - 154.0 - - 12.0 - - - 154.0 - - 12.0 - - - 155.0 - - 12.0 - - - 155.0 - - 12.0 - - - 155.0 - - 12.0 - - - 155.0 - - 12.0 - - - 154.0 - - 12.0 - - - 154.0 - - 8.0 - - - 154.0 - - 8.0 - - - 155.0 - - 8.0 - - - 154.0 - - 8.0 - - - 154.0 - - 8.0 - - - 154.0 - - 8.0 - - - 154.0 - - 8.0 - - - 155.0 - - 8.0 - - - 154.0 - - 8.0 - - - 154.0 - - 8.0 - - - 154.0 - - 8.0 - - - 154.0 - - 8.0 - - - 155.0 - - 8.0 - - - 155.0 - - 12.0 - - - 155.0 - - 12.0 - - - 155.0 - - 12.0 - - - 155.0 - - 12.0 - - - 155.0 - - 8.0 - - - 155.0 - - 8.0 - - - 155.0 - - 8.0 - - - 155.0 - - 8.0 - - - 156.0 - - 8.0 - - - 156.0 - - 8.0 - - - 156.0 - - 8.0 - - - 156.0 - - 8.0 - - - 156.0 - - 6.0 - - - 157.0 - - 6.0 - - - 158.0 - - 6.0 - - - 158.0 - - 6.0 - - - 159.0 - - 6.0 - - - 160.0 - - 6.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 6.0 - - - 160.0 - - 6.0 - - - 161.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 161.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 161.0 - - 6.0 - - - 162.0 - - 6.0 - - - 161.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 161.0 - - 4.0 - - - 162.0 - - 4.0 - - - 161.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 163.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 162.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 163.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 161.0 - - 4.0 - - - 160.0 - - 4.0 - - - 159.0 - - 4.0 - - - 158.0 - - 4.0 - - - 159.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 157.0 - - 4.0 - - - 158.0 - - 4.0 - - - 157.0 - - 4.0 - - - 157.0 - - 4.0 - - - 157.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 156.0 - - 4.0 - - - 157.0 - - 4.0 - - - 158.0 - - 4.0 - - - 157.0 - - 4.0 - - - 157.0 - - 4.0 - - - 158.0 - - 4.0 - - - 159.0 - - 4.0 - - - 159.0 - - 4.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 4.0 - - - 162.0 - - 3.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 161.0 - - 4.0 - - - 160.0 - - 4.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 160.0 - - 3.0 - - - 162.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 168.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 4.0 - - - 167.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 167.0 - - 4.0 - - - 166.0 - - 4.0 - - - 167.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 165.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 4.0 - - - 168.0 - - 4.0 - - - 168.0 - - 4.0 - - - 168.0 - - 4.0 - - - 168.0 - - 4.0 - - - 168.0 - - 4.0 - - - 169.0 - - 4.0 - - - 169.0 - - 4.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 4.0 - - - 170.0 - - 4.0 - - - 170.0 - - 4.0 - - - 169.0 - - 4.0 - - - 170.0 - - 4.0 - - - 170.0 - - 4.0 - - - 171.0 - - 4.0 - - - 172.0 - - 4.0 - - - 173.0 - - 3.0 - - - 174.0 - - 3.0 - - - 174.0 - - 3.0 - - - 173.0 - - 3.0 - - - 174.0 - - 3.0 - - - 174.0 - - 3.0 - - - 174.0 - - 3.0 - - - 174.0 - - 3.0 - - - 174.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 172.0 - - 3.0 - - - 171.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 168.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 165.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 167.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 171.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 169.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 3.0 - - - 171.0 - - 3.0 - - - 170.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 3.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 3.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 1.5 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 3.0 - - - 172.0 - - 3.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 3.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 176.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 176.0 - - 1.5 - - - 177.0 - - 1.5 - - - 178.0 - - 1.5 - - - 178.0 - - 1.5 - - - 177.0 - - 1.5 - - - 178.0 - - 1.5 - - - 178.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 180.0 - - 1.5 - - - 180.0 - - 1.5 - - - 180.0 - - 1.5 - - - 179.0 - - 1.5 - - - 178.0 - - 1.5 - - - 178.0 - - 1.5 - - - 178.0 - - 1.5 - - - 178.0 - - 1.0 - - - 177.0 - - 1.0 - - - 178.0 - - 1.0 - - - 178.0 - - 1.0 - - - 178.0 - - 1.0 - - - 177.0 - - 1.5 - - - 177.0 - - 1.5 - - - 177.0 - - 1.5 - - - 178.0 - - 1.5 - - - 177.0 - - 1.5 - - - 177.0 - - 1.0 - - - 177.0 - - 1.0 - - - 177.0 - - 1.5 - - - 178.0 - - 1.0 - - - 178.0 - - 1.0 - - - 178.0 - - 1.5 - - - 177.0 - - 1.0 - - - 177.0 - - 1.0 - - - 178.0 - - 1.0 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 178.0 - - 1.5 - - - 178.0 - - 1.0 - - - 178.0 - - 1.0 - - - 178.0 - - 1.0 - - - 178.0 - - 1.0 - - - 178.0 - - 1.0 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 178.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 180.0 - - 1.5 - - - 180.0 - - 1.5 - - - 181.0 - - 1.5 - - - 180.0 - - 1.5 - - - 179.0 - - 1.0 - - - 178.0 - - 1.0 - - - 177.0 - - 1.0 - - - 176.0 - - 1.0 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.0 - - - 172.0 - - 1.0 - - - 170.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 167.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 165.0 - - 1.5 - - - 163.0 - - 1.5 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 156.0 - - 1.5 - - - 154.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 159.0 - - 4.0 - - - 159.0 - - 3.0 - - - 159.0 - - 4.0 - - - 159.0 - - 4.0 - - - 159.0 - - 4.0 - - - 159.0 - - 4.0 - - - 158.0 - - 4.0 - - - 157.0 - - 4.0 - - - 157.0 - - 4.0 - - - 157.0 - - 4.0 - - - 157.0 - - 4.0 - - - 157.0 - - 4.0 - - - 157.0 - - 4.0 - - - 157.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 159.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 159.0 - - 4.0 - - - 159.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 158.0 - - 4.0 - - - 159.0 - - 4.0 - - - 159.0 - - 4.0 - - - 159.0 - - 4.0 - - - 159.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 166.0 - - 1.0 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.0 - - - 166.0 - - 1.0 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 167.0 - - 1.0 - - - 166.0 - - 1.0 - - - 166.0 - - 1.0 - - - 166.0 - - 1.0 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.5 - - - 162.0 - - 0.5 - - - 162.0 - - 0.5 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 0.75 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 3.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 1.5 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.0 - - - 168.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 167.0 - - 1.0 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 166.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 0.75 - - - 164.0 - - 0.75 - - - 164.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 0.75 - - - 164.0 - - 0.75 - - - 165.0 - - 1.0 - - - 164.0 - - 1.0 - - - 165.0 - - 1.0 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.0 - - - 166.0 - - 1.0 - - - 163.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.0 - - - 166.0 - - 1.0 - - - 167.0 - - 1.0 - - - 166.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 166.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.5 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.0 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 3.0 - - - 160.0 - - 2.0 - - - 159.0 - - 3.0 - - - 159.0 - - 3.0 - - - 159.0 - - 2.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 155.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 1.0 - - - 159.0 - - 0.75 - - - 159.0 - - 1.0 - - - 159.0 - - 0.75 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 159.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 2.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 168.0 - - 1.5 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 172.0 - - 2.0 - - - 174.0 - - 2.0 - - - 173.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 166.0 - - 1.5 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 167.0 - - 1.5 - - - 168.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 175.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 2.0 - - - 176.0 - - 2.0 - - - 176.0 - - 2.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 175.0 - - 3.0 - - - 176.0 - - 3.0 - - - 175.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 174.0 - - 3.0 - - - 173.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 171.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 3.0 - - - 170.0 - - 2.0 - - - 170.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 174.0 - - 2.0 - - - 175.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 173.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 174.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 176.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 178.0 - - 2.0 - - - 177.0 - - 3.0 - - - 178.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 179.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 178.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 176.0 - - 2.0 - - - 175.0 - - 2.0 - - - 176.0 - - 2.0 - - - 176.0 - - 2.0 - - - 176.0 - - 2.0 - - - 176.0 - - 2.0 - - - 176.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 176.0 - - 3.0 - - - 176.0 - - 2.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 175.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 176.0 - - 3.0 - - - 177.0 - - 3.0 - - - 177.0 - - 2.0 - - - 178.0 - - 2.0 - - - 179.0 - - 2.0 - - - 179.0 - - 2.0 - - - 180.0 - - 2.0 - - - 180.0 - - 2.0 - - - 180.0 - - 2.0 - - - 181.0 - - 2.0 - - - 182.0 - - 2.0 - - - 182.0 - - 2.0 - - - 182.0 - - 2.0 - - - 181.0 - - 2.0 - - - 179.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 178.0 - - 2.0 - - - 179.0 - - 2.0 - - - 178.0 - - 2.0 - - - 176.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 175.0 - - 2.0 - - - 176.0 - - 2.0 - - - 176.0 - - 2.0 - - - 176.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 176.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 177.0 - - 2.0 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 175.0 - - 1.5 - - - 176.0 - - 1.5 - - - 175.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 173.0 - - 2.0 - - - 174.0 - - 2.0 - - - 173.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 170.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 168.0 - - 1.0 - - - 169.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 168.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 171.0 - - 1.0 - - - 171.0 - - 1.0 - - - 171.0 - - 1.0 - - - 171.0 - - 1.0 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 170.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.0 - - - 172.0 - - 1.5 - - - 171.0 - - 1.0 - - - 170.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 168.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 167.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 165.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 158.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 157.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 157.0 - - 0.5 - - - 157.0 - - 0.75 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 158.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.75 - - - 158.0 - - 0.5 - - - 159.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.75 - - - 158.0 - - 0.5 - - - 158.0 - - 0.75 - - - 157.0 - - 0.75 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.75 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 2.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 0.75 - - - 160.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 160.0 - - 1.5 - - - 160.0 - - 2.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 4.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 4.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 6.0 - - - 166.0 - - 6.0 - - - 166.0 - - 6.0 - - - 166.0 - - 6.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 3.0 - - - 167.0 - - 3.0 - - - 166.0 - - 3.0 - - - 166.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 161.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 0.75 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 1.5 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 2.0 - - - 165.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 168.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 167.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 167.0 - - 1.5 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 2.0 - - - 169.0 - - 2.0 - - - 168.0 - - 3.0 - - - 168.0 - - 3.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 168.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 1.5 - - - 167.0 - - 2.0 - - - 167.0 - - 1.5 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 168.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 166.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 167.0 - - 2.0 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 169.0 - - 2.0 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 2.0 - - - 172.0 - - 1.5 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 172.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 2.0 - - - 171.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 172.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 174.0 - - 1.5 - - - 175.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 174.0 - - 1.5 - - - 175.0 - - 1.5 - - - 175.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 177.0 - - 1.5 - - - 177.0 - - 1.5 - - - 178.0 - - 1.5 - - - 179.0 - - 1.5 - - - 178.0 - - 1.5 - - - 178.0 - - 1.5 - - - 178.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 179.0 - - 1.5 - - - 180.0 - - 1.5 - - - 180.0 - - 1.5 - - - 180.0 - - 1.5 - - - 181.0 - - 1.5 - - - 181.0 - - 1.5 - - - 181.0 - - 1.5 - - - 182.0 - - 1.5 - - - 182.0 - - 1.5 - - - 182.0 - - 1.5 - - - 182.0 - - 1.5 - - - 183.0 - - 1.5 - - - 183.0 - - 1.0 - - - 184.0 - - 1.5 - - - 185.0 - - 1.5 - - - 185.0 - - 1.5 - - - 183.0 - - 1.5 - - - 182.0 - - 1.0 - - - 183.0 - - 1.0 - - - 182.0 - - 1.0 - - - 182.0 - - 1.0 - - - 181.0 - - 1.0 - - - 181.0 - - 1.0 - - - 180.0 - - 1.0 - - - 179.0 - - 1.0 - - - 178.0 - - 1.0 - - - 177.0 - - 1.0 - - - 177.0 - - 1.0 - - - 176.0 - - 1.0 - - - 175.0 - - 0.75 - - - 174.0 - - 0.75 - - - 173.0 - - 0.75 - - - 172.0 - - 0.75 - - - 171.0 - - 0.75 - - - 171.0 - - 0.75 - - - 171.0 - - 0.75 - - - 169.0 - - 0.75 - - - 168.0 - - 0.75 - - - 167.0 - - 0.75 - - - 167.0 - - 0.75 - - - 166.0 - - 0.75 - - - 166.0 - - 0.75 - - - 165.0 - - 0.75 - - - 164.0 - - 0.75 - - - 163.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 161.0 - - 0.75 - - - 160.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 157.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 157.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 157.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 155.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.5 - - - 155.0 - - 0.5 - - - 155.0 - - 0.5 - - - 154.0 - - 0.5 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 151.0 - - 1.0 - - - 150.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 148.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 148.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 150.0 - - 0.5 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 145.0 - - 1.0 - - - 146.0 - - 1.0 - - - 145.0 - - 1.0 - - - 146.0 - - 0.75 - - - 146.0 - - 0.75 - - - 146.0 - - 0.75 - - - 146.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 146.0 - - 0.75 - - - 146.0 - - 0.75 - - - 146.0 - - 1.0 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 2.0 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 145.0 - - 1.5 - - - 144.0 - - 1.5 - - - 145.0 - - 1.5 - - - 145.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 0.75 - - - 145.0 - - 1.0 - - - 146.0 - - 0.75 - - - 145.0 - - 0.75 - - - 146.0 - - 0.75 - - - 146.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 145.0 - - 1.0 - - - 145.0 - - 1.0 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 145.0 - - 1.0 - - - 145.0 - - 1.0 - - - 145.0 - - 1.0 - - - 145.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 1.0 - - - 148.0 - - 1.5 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.5 - - - 148.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.0 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 171.0 - - 1.5 - - - 173.0 - - 1.0 - - - 175.0 - - 1.0 - - - 176.0 - - 1.0 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 176.0 - - 1.5 - - - 175.0 - - 1.5 - - - 174.0 - - 1.5 - - - 173.0 - - 1.5 - - - 173.0 - - 1.0 - - - 173.0 - - 1.0 - - - 173.0 - - 1.0 - - - 173.0 - - 1.0 - - - 173.0 - - 1.0 - - - 172.0 - - 1.0 - - - 172.0 - - 1.0 - - - 172.0 - - 1.0 - - - 173.0 - - 1.0 - - - 173.0 - - 1.0 - - - 173.0 - - 1.0 - - - 173.0 - - 1.0 - - - 173.0 - - 1.0 - - - 174.0 - - 1.0 - - - 174.0 - - 1.0 - - - 174.0 - - 1.0 - - - 172.0 - - 1.0 - - - 172.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 169.0 - - 1.0 - - - 168.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 168.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.0 - - - 169.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 171.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 171.0 - - 1.0 - - - 170.0 - - 1.0 - - - 169.0 - - 1.0 - - - 170.0 - - 1.0 - - - 169.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 171.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 171.0 - - 1.5 - - - 170.0 - - 1.5 - - - 170.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.5 - - - 169.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 169.0 - - 1.0 - - - 170.0 - - 1.0 - - - 171.0 - - 1.0 - - - 171.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 170.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 169.0 - - 1.0 - - - 169.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 168.0 - - 1.0 - - - 167.0 - - 1.0 - - - 166.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 158.0 - - 3.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 2.0 - - - 157.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 2.0 - - - 157.0 - - 2.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 162.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 165.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 3.0 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 1.0 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 4.0 - - - 165.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 6.0 - - - 164.0 - - 6.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 164.0 - - 4.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 162.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 165.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 2.0 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 3.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 6.0 - - - 164.0 - - 6.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 3.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 4.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 164.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 4.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 6.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 4.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 8.0 - - - 163.0 - - 8.0 - - - 163.0 - - 8.0 - - - 163.0 - - 8.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 16.0 - - - 163.0 - - 16.0 - - - 163.0 - - 16.0 - - - 163.0 - - 16.0 - - - 163.0 - - 12.0 - - - 163.0 - - 12.0 - - - 163.0 - - 6.0 - - - 163.0 - - 6.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 162.0 - - 3.0 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 16.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 16.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 8.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 6.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 4.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 8.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 12.0 - - - 162.0 - - 16.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 6.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 3.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.0 - - - 157.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 156.0 - - 0.75 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 0.75 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 0.75 - - - 159.0 - - 0.75 - - - 158.0 - - 0.75 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 161.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 163.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 0.75 - - - 161.0 - - 1.0 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 0.75 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 158.0 - - 1.0 - - - 156.0 - - 1.0 - - - 154.0 - - 1.0 - - - 151.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 146.0 - - 1.0 - - - 144.0 - - 1.5 - - - 143.0 - - 1.5 - - - 142.0 - - 1.5 - - - 142.0 - - 1.5 - - - 141.0 - - 1.5 - - - 142.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 142.0 - - 1.5 - - - 142.0 - - 1.5 - - - 142.0 - - 1.5 - - - 142.0 - - 1.5 - - - 142.0 - - 1.5 - - - 143.0 - - 1.5 - - - 143.0 - - 1.5 - - - 143.0 - - 1.5 - - - 142.0 - - 1.5 - - - 143.0 - - 1.5 - - - 143.0 - - 1.5 - - - 146.0 - - 1.5 - - - 149.0 - - 1.5 - - - 151.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.0 - - - 147.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 149.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 150.0 - - 3.0 - - - 148.0 - - 3.0 - - - 148.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 148.0 - - 3.0 - - - 147.0 - - 4.0 - - - 147.0 - - 4.0 - - - 145.0 - - 4.0 - - - 144.0 - - 4.0 - - - 144.0 - - 4.0 - - - 143.0 - - 6.0 - - - 143.0 - - 6.0 - - - 144.0 - - 6.0 - - - 143.0 - - 6.0 - - - 143.0 - - 6.0 - - - 143.0 - - 8.0 - - - 143.0 - - 8.0 - - - 143.0 - - 8.0 - - - 143.0 - - 12.0 - - - 143.0 - - 12.0 - - - 143.0 - - 12.0 - - - 144.0 - - 12.0 - - - 144.0 - - 8.0 - - - 144.0 - - 8.0 - - - 145.0 - - 6.0 - - - 145.0 - - 6.0 - - - 146.0 - - 4.0 - - - 147.0 - - 4.0 - - - 148.0 - - 3.0 - - - 148.0 - - 3.0 - - - 148.0 - - 2.0 - - - 150.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 150.0 - - 2.0 - - - 153.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 150.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 149.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 149.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 148.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.5 - - - 147.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 147.0 - - 1.0 - - - 148.0 - - 1.0 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 147.0 - - 2.0 - - - 147.0 - - 2.0 - - - 147.0 - - 2.0 - - - 147.0 - - 2.0 - - - 147.0 - - 2.0 - - - 148.0 - - 3.0 - - - 148.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 147.0 - - 3.0 - - - 148.0 - - 3.0 - - - 148.0 - - 3.0 - - - 148.0 - - 3.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.0 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 151.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 3.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 2.0 - - - 157.0 - - 1.5 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 2.0 - - - 160.0 - - 1.5 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 162.0 - - 2.0 - - - 163.0 - - 3.0 - - - 162.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 160.0 - - 3.0 - - - 160.0 - - 3.0 - - - 159.0 - - 3.0 - - - 158.0 - - 3.0 - - - 158.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 157.0 - - 3.0 - - - 158.0 - - 3.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 2.0 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 167.0 - - 2.0 - - - 166.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 0.75 - - - 163.0 - - 0.75 - - - 164.0 - - 0.75 - - - 165.0 - - 0.75 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 166.0 - - 1.0 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 166.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 166.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 1.0 - - - 164.0 - - 0.75 - - - 163.0 - - 0.75 - - - 163.0 - - 0.75 - - - 162.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 161.0 - - 0.75 - - - 160.0 - - 0.75 - - - 160.0 - - 0.75 - - - 159.0 - - 0.75 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 159.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 156.0 - - 1.0 - - - 157.0 - - 0.75 - - - 157.0 - - 0.75 - - - 156.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 154.0 - - 0.75 - - - 153.0 - - 0.75 - - - 152.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 150.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 148.0 - - 0.75 - - - 147.0 - - 0.75 - - - 146.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 143.0 - - 0.75 - - - 143.0 - - 0.75 - - - 143.0 - - 0.75 - - - 143.0 - - 0.75 - - - 143.0 - - 0.75 - - - 143.0 - - 0.75 - - - 143.0 - - 0.75 - - - 143.0 - - 0.75 - - - 144.0 - - 0.75 - - - 143.0 - - 0.75 - - - 142.0 - - 0.75 - - - 143.0 - - 0.75 - - - 142.0 - - 0.75 - - - 142.0 - - 0.75 - - - 141.0 - - 0.75 - - - 142.0 - - 0.75 - - - 141.0 - - 0.75 - - - 141.0 - - 0.75 - - - 140.0 - - 0.75 - - - 140.0 - - 0.75 - - - 140.0 - - 0.75 - - - 140.0 - - 0.75 - - - 140.0 - - 0.75 - - - 139.0 - - 0.75 - - - 139.0 - - 0.75 - - - 138.0 - - 0.75 - - - 138.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 136.0 - - 0.75 - - - 136.0 - - 0.75 - - - 136.0 - - 0.75 - - - 136.0 - - 0.75 - - - 136.0 - - 0.75 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 136.0 - - 0.5 - - - 135.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 134.0 - - 0.5 - - - 134.0 - - 0.5 - - - 133.0 - - 0.5 - - - 133.0 - - 0.5 - - - 133.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 133.0 - - 0.5 - - - 132.0 - - 0.5 - - - 131.0 - - 0.5 - - - 131.0 - - 0.5 - - - 131.0 - - 0.5 - - - 131.0 - - 0.5 - - - 131.0 - - 0.75 - - - 131.0 - - 0.5 - - - 131.0 - - 0.5 - - - 131.0 - - 0.75 - - - 132.0 - - 0.75 - - - 133.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 131.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 132.0 - - 0.5 - - - 131.0 - - 0.5 - - - 130.0 - - 0.5 - - - 130.0 - - 0.5 - - - 131.0 - - 0.5 - - - 130.0 - - 0.5 - - - 130.0 - - 0.5 - - - 131.0 - - 0.5 - - - 132.0 - - 0.5 - - - 133.0 - - 0.5 - - - 133.0 - - 0.5 - - - 133.0 - - 0.5 - - - 133.0 - - 0.5 - - - 133.0 - - 0.5 - - - 133.0 - - 0.5 - - - 133.0 - - 0.5 - - - 133.0 - - 0.5 - - - 133.0 - - 0.5 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 134.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 1.0 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 1.0 - - - 134.0 - - 1.0 - - - 135.0 - - 1.0 - - - 135.0 - - 1.5 - - - 134.0 - - 1.0 - - - 134.0 - - 1.0 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 133.0 - - 0.75 - - - 134.0 - - 0.75 - - - 133.0 - - 1.0 - - - 134.0 - - 1.0 - - - 134.0 - - 1.0 - - - 134.0 - - 1.5 - - - 134.0 - - 1.0 - - - 133.0 - - 0.75 - - - 134.0 - - 0.75 - - - 134.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 132.0 - - 0.75 - - - 132.0 - - 1.0 - - - 132.0 - - 1.0 - - - 132.0 - - 1.0 - - - 132.0 - - 1.0 - - - 132.0 - - 1.5 - - - 132.0 - - 1.5 - - - 132.0 - - 1.5 - - - 132.0 - - 1.5 - - - 132.0 - - 2.0 - - - 132.0 - - 2.0 - - - 132.0 - - 1.5 - - - 132.0 - - 1.5 - - - 132.0 - - 1.5 - - - 132.0 - - 1.0 - - - 133.0 - - 1.0 - - - 134.0 - - 1.0 - - - 135.0 - - 1.0 - - - 134.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 136.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 134.0 - - 0.5 - - - 134.0 - - 0.5 - - - 134.0 - - 0.5 - - - 134.0 - - 0.5 - - - 134.0 - - 0.5 - - - 134.0 - - 0.5 - - - 134.0 - - 0.5 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 132.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 133.0 - - 0.75 - - - 134.0 - - 1.0 - - - 134.0 - - 0.75 - - - 135.0 - - 1.0 - - - 135.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 1.0 - - - 135.0 - - 1.0 - - - 135.0 - - 1.0 - - - 135.0 - - 1.0 - - - 134.0 - - 1.5 - - - 134.0 - - 1.5 - - - 134.0 - - 1.5 - - - 134.0 - - 1.5 - - - 133.0 - - 1.5 - - - 134.0 - - 1.5 - - - 133.0 - - 1.5 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 3.0 - - - 134.0 - - 3.0 - - - 134.0 - - 3.0 - - - 134.0 - - 3.0 - - - 134.0 - - 4.0 - - - 134.0 - - 4.0 - - - 133.0 - - 4.0 - - - 134.0 - - 3.0 - - - 133.0 - - 1.5 - - - 132.0 - - 1.5 - - - 131.0 - - 1.5 - - - 132.0 - - 1.5 - - - 133.0 - - 1.5 - - - 132.0 - - 1.5 - - - 132.0 - - 1.0 - - - 133.0 - - 1.0 - - - 134.0 - - 1.0 - - - 134.0 - - 1.5 - - - 134.0 - - 1.5 - - - 134.0 - - 1.5 - - - 135.0 - - 1.5 - - - 135.0 - - 1.5 - - - 136.0 - - 1.5 - - - 136.0 - - 1.0 - - - 136.0 - - 1.0 - - - 136.0 - - 0.75 - - - 136.0 - - 0.75 - - - 137.0 - - 0.75 - - - 138.0 - - 0.75 - - - 138.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.5 - - - 137.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.75 - - - 136.0 - - 0.75 - - - 136.0 - - 0.75 - - - 136.0 - - 0.75 - - - 135.0 - - 0.75 - - - 136.0 - - 0.75 - - - 136.0 - - 0.75 - - - 136.0 - - 0.75 - - - 135.0 - - 0.75 - - - 135.0 - - 0.75 - - - 136.0 - - 0.75 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 135.0 - - 0.5 - - - 135.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.5 - - - 137.0 - - 0.5 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 138.0 - - 0.75 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 139.0 - - 0.5 - - - 139.0 - - 0.5 - - - 139.0 - - 0.5 - - - 139.0 - - 0.5 - - - 139.0 - - 0.5 - - - 139.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 137.0 - - 0.5 - - - 137.0 - - 0.5 - - - 137.0 - - 0.5 - - - 137.0 - - 0.5 - - - 137.0 - - 0.5 - - - 137.0 - - 0.5 - - - 137.0 - - 0.75 - - - 137.0 - - 0.5 - - - 137.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.5 - - - 138.0 - - 0.75 - - - 138.0 - - 0.75 - - - 138.0 - - 0.75 - - - 138.0 - - 0.75 - - - 138.0 - - 0.75 - - - 138.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.5 - - - 136.0 - - 0.5 - - - 136.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.5 - - - 137.0 - - 0.5 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 137.0 - - 0.75 - - - 138.0 - - 0.75 - - - 138.0 - - 0.75 - - - 138.0 - - 0.75 - - - 138.0 - - 0.5 - - - 139.0 - - 0.5 - - - 140.0 - - 0.5 - - - 140.0 - - 0.5 - - - 140.0 - - 0.5 - - - 140.0 - - 0.5 - - - 140.0 - - 0.5 - - - 140.0 - - 0.5 - - - 141.0 - - 0.5 - - - 141.0 - - 0.5 - - - 141.0 - - 0.5 - - - 141.0 - - 0.5 - - - 141.0 - - 0.75 - - - 142.0 - - 0.75 - - - 142.0 - - 0.75 - - - 142.0 - - 0.75 - - - 143.0 - - 0.5 - - - 144.0 - - 0.5 - - - 144.0 - - 0.5 - - - 144.0 - - 0.5 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 146.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 153.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 156.0 - - 0.75 - - - 155.0 - - 0.5 - - - 156.0 - - 0.5 - - - 156.0 - - 0.5 - - - 157.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 158.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 159.0 - - 0.5 - - - 160.0 - - 0.5 - - - 160.0 - - 0.5 - - - 161.0 - - 0.5 - - - 161.0 - - 0.5 - - - 161.0 - - 0.5 - - - 161.0 - - 0.5 - - - 161.0 - - 0.5 - - - 161.0 - - 0.5 - - - 160.0 - - 0.5 - - - 161.0 - - 0.5 - - - 161.0 - - 0.75 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 3.0 - - - 161.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 162.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 164.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 6.0 - - - 165.0 - - 6.0 - - - 165.0 - - 6.0 - - - 166.0 - - 6.0 - - - 166.0 - - 6.0 - - - 165.0 - - 6.0 - - - 165.0 - - 6.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 165.0 - - 4.0 - - - 166.0 - - 4.0 - - - 166.0 - - 4.0 - - - 164.0 - - 3.0 - - - 162.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 160.0 - - 3.0 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 3.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 158.0 - - 2.0 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.0 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 3.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 3.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 2.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 146.0 - - 3.0 - - - 145.0 - - 3.0 - - - 145.0 - - 2.0 - - - 145.0 - - 2.0 - - - 144.0 - - 3.0 - - - 144.0 - - 2.0 - - - 144.0 - - 3.0 - - - 142.0 - - 3.0 - - - 141.0 - - 3.0 - - - 139.0 - - 4.0 - - - 139.0 - - 3.0 - - - 138.0 - - 3.0 - - - 138.0 - - 3.0 - - - 138.0 - - 3.0 - - - 137.0 - - 3.0 - - - 137.0 - - 3.0 - - - 136.0 - - 3.0 - - - 136.0 - - 1.5 - - - 136.0 - - 1.5 - - - 135.0 - - 1.5 - - - 135.0 - - 1.5 - - - 135.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 3.0 - - - 133.0 - - 1.5 - - - 133.0 - - 1.5 - - - 133.0 - - 1.5 - - - 133.0 - - 1.0 - - - 133.0 - - 0.75 - - - 132.0 - - 0.75 - - - 132.0 - - 0.75 - - - 132.0 - - 0.75 - - - 132.0 - - 0.75 - - - 131.0 - - 0.75 - - - 131.0 - - 0.75 - - - 131.0 - - 1.0 - - - 132.0 - - 1.5 - - - 132.0 - - 1.5 - - - 132.0 - - 1.5 - - - 133.0 - - 1.5 - - - 132.0 - - 1.5 - - - 132.0 - - 1.5 - - - 132.0 - - 2.0 - - - 132.0 - - 2.0 - - - 132.0 - - 3.0 - - - 132.0 - - 2.0 - - - 132.0 - - 2.0 - - - 132.0 - - 1.5 - - - 132.0 - - 1.5 - - - 132.0 - - 1.5 - - - 133.0 - - 1.5 - - - 132.0 - - 1.5 - - - 132.0 - - 1.5 - - - 132.0 - - 1.5 - - - 133.0 - - 1.5 - - - 133.0 - - 1.5 - - - 132.0 - - 1.5 - - - 133.0 - - 1.5 - - - 133.0 - - 1.5 - - - 133.0 - - 1.5 - - - 133.0 - - 1.5 - - - 134.0 - - 1.0 - - - 133.0 - - 1.5 - - - 134.0 - - 1.5 - - - 134.0 - - 1.5 - - - 134.0 - - 1.5 - - - 134.0 - - 1.5 - - - 133.0 - - 1.5 - - - 133.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 132.0 - - 1.5 - - - 133.0 - - 1.5 - - - 133.0 - - 1.5 - - - 134.0 - - 1.5 - - - 134.0 - - 1.5 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 134.0 - - 2.0 - - - 136.0 - - 1.5 - - - 137.0 - - 1.5 - - - 137.0 - - 1.5 - - - 137.0 - - 1.5 - - - 137.0 - - 1.5 - - - 137.0 - - 1.5 - - - 137.0 - - 1.5 - - - 137.0 - - 1.5 - - - 137.0 - - 1.5 - - - 137.0 - - 1.5 - - - 138.0 - - 1.0 - - - 139.0 - - 1.0 - - - 138.0 - - 1.0 - - - 138.0 - - 1.0 - - - 139.0 - - 1.0 - - - 139.0 - - 0.75 - - - 139.0 - - 0.75 - - - 139.0 - - 0.75 - - - 140.0 - - 0.75 - - - 140.0 - - 0.75 - - - 139.0 - - 0.75 - - - 138.0 - - 0.75 - - - 139.0 - - 0.75 - - - 139.0 - - 1.0 - - - 139.0 - - 1.0 - - - 140.0 - - 1.0 - - - 140.0 - - 1.0 - - - 140.0 - - 1.0 - - - 140.0 - - 1.5 - - - 140.0 - - 1.5 - - - 140.0 - - 1.5 - - - 140.0 - - 1.5 - - - 140.0 - - 1.5 - - - 140.0 - - 1.5 - - - 140.0 - - 1.5 - - - 140.0 - - 1.5 - - - 140.0 - - 1.5 - - - 140.0 - - 1.5 - - - 140.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 141.0 - - 1.5 - - - 140.0 - - 1.5 - - - 139.0 - - 1.0 - - - 139.0 - - 1.0 - - - 140.0 - - 1.0 - - - 140.0 - - 1.0 - - - 140.0 - - 1.0 - - - 140.0 - - 1.0 - - - 140.0 - - 1.0 - - - 141.0 - - 1.0 - - - 142.0 - - 1.0 - - - 142.0 - - 1.0 - - - 142.0 - - 1.0 - - - 142.0 - - 1.0 - - - 142.0 - - 0.75 - - - 143.0 - - 0.75 - - - 143.0 - - 0.75 - - - 143.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.5 - - - 144.0 - - 0.5 - - - 144.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 144.0 - - 0.5 - - - 144.0 - - 0.5 - - - 144.0 - - 0.5 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 1.0 - - - 145.0 - - 1.0 - - - 145.0 - - 1.0 - - - 145.0 - - 1.0 - - - 144.0 - - 1.0 - - - 144.0 - - 1.0 - - - 143.0 - - 1.0 - - - 143.0 - - 1.0 - - - 143.0 - - 1.0 - - - 143.0 - - 1.0 - - - 143.0 - - 1.0 - - - 143.0 - - 1.0 - - - 143.0 - - 1.0 - - - 142.0 - - 1.0 - - - 142.0 - - 1.0 - - - 142.0 - - 1.0 - - - 142.0 - - 1.0 - - - 142.0 - - 1.0 - - - 142.0 - - 1.0 - - - 142.0 - - 0.75 - - - 142.0 - - 0.75 - - - 142.0 - - 0.75 - - - 143.0 - - 0.75 - - - 143.0 - - 0.75 - - - 142.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.5 - - - 144.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 146.0 - - 0.5 - - - 146.0 - - 0.5 - - - 146.0 - - 0.5 - - - 146.0 - - 0.5 - - - 146.0 - - 0.5 - - - 146.0 - - 0.5 - - - 146.0 - - 0.5 - - - 146.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 146.0 - - 0.5 - - - 145.0 - - 0.5 - - - 146.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.5 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 145.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 145.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 145.0 - - 1.0 - - - 144.0 - - 0.75 - - - 144.0 - - 0.75 - - - 145.0 - - 0.75 - - - 146.0 - - 0.75 - - - 146.0 - - 0.75 - - - 146.0 - - 1.0 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 1.0 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 147.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 149.0 - - 0.75 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 150.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 148.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 150.0 - - 0.5 - - - 150.0 - - 0.5 - - - 150.0 - - 0.5 - - - 150.0 - - 0.5 - - - 151.0 - - 0.5 - - - 151.0 - - 0.5 - - - 151.0 - - 0.5 - - - 151.0 - - 0.5 - - - 151.0 - - 0.5 - - - 151.0 - - 0.5 - - - 150.0 - - 0.5 - - - 150.0 - - 0.5 - - - 150.0 - - 0.5 - - - 150.0 - - 0.5 - - - 150.0 - - 0.5 - - - 150.0 - - 0.5 - - - 150.0 - - 0.5 - - - 150.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 150.0 - - 0.5 - - - 149.0 - - 0.5 - - - 150.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.75 - - - 150.0 - - 0.75 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 149.0 - - 0.5 - - - 150.0 - - 0.5 - - - 151.0 - - 0.5 - - - 151.0 - - 0.5 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 152.0 - - 0.75 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 2.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 148.0 - - 2.0 - - - 148.0 - - 2.0 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 2.0 - - - 148.0 - - 2.0 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 2.0 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 2.0 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.0 - - - 149.0 - - 1.0 - - - 151.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 158.0 - - 2.0 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.0 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 152.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 145.0 - - 1.5 - - - 145.0 - - 1.5 - - - 146.0 - - 1.5 - - - 145.0 - - 1.5 - - - 145.0 - - 1.5 - - - 145.0 - - 1.5 - - - 145.0 - - 1.5 - - - 145.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.0 - - - 149.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 147.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 1.0 - - - 149.0 - - 1.0 - - - 149.0 - - 0.75 - - - 150.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 152.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 153.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 156.0 - - 3.0 - - - 156.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 3.0 - - - 155.0 - - 3.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 153.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 149.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 148.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 147.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 145.0 - - 1.5 - - - 145.0 - - 1.5 - - - 145.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 2.0 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 145.0 - - 1.5 - - - 144.0 - - 1.5 - - - 145.0 - - 1.5 - - - 144.0 - - 1.5 - - - 143.0 - - 1.5 - - - 144.0 - - 1.5 - - - 144.0 - - 1.5 - - - 145.0 - - 1.5 - - - 145.0 - - 1.0 - - - 145.0 - - 1.0 - - - 145.0 - - 1.0 - - - 145.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.0 - - - 146.0 - - 1.5 - - - 146.0 - - 1.5 - - - 147.0 - - 1.5 - - - 146.0 - - 1.5 - - - 146.0 - - 1.0 - - - 147.0 - - 1.0 - - - 146.0 - - 1.0 - - - 148.0 - - 1.0 - - - 148.0 - - 0.75 - - - 148.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 149.0 - - 0.75 - - - 150.0 - - 0.75 - - - 150.0 - - 0.75 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 150.0 - - 0.75 - - - 150.0 - - 1.0 - - - 150.0 - - 1.0 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 151.0 - - 0.75 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 149.0 - - 1.0 - - - 149.0 - - 1.0 - - - 150.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 151.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 152.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.0 - - - 157.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 153.0 - - 1.0 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 1.0 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 0.75 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.0 - - - 154.0 - - 1.5 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 149.0 - - 2.0 - - - 150.0 - - 2.0 - - - 149.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 150.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 151.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 155.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 166.0 - - 1.0 - - - 165.0 - - 1.0 - - - 165.0 - - 1.0 - - - 164.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 161.0 - - 1.0 - - - 160.0 - - 1.0 - - - 160.0 - - 1.5 - - - 159.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 157.0 - - 1.5 - - - 156.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 2.0 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 151.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 150.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 151.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 152.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 157.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 0.75 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.5 - - - 155.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 156.0 - - 1.5 - - - 157.0 - - 1.0 - - - 156.0 - - 1.0 - - - 156.0 - - 1.0 - - - 155.0 - - 1.0 - - - 155.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 154.0 - - 1.0 - - - 155.0 - - 1.0 - - - 159.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 159.0 - - 1.5 - - - 160.0 - - 1.5 - - - 160.0 - - 1.5 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.0 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 4.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 3.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 2.0 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 163.0 - - 2.0 - - - 162.0 - - 1.5 - - - 162.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 2.0 - - - 160.0 - - 2.0 - - - 159.0 - - 2.0 - - - 159.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 155.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 2.0 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 154.0 - - 1.5 - - - 153.0 - - 1.5 - - - 153.0 - - 1.5 - - - 154.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 152.0 - - 2.0 - - - 153.0 - - 2.0 - - - 154.0 - - 2.0 - - - 155.0 - - 2.0 - - - 156.0 - - 2.0 - - - 156.0 - - 2.0 - - - 157.0 - - 2.0 - - - 157.0 - - 2.0 - - - 158.0 - - 1.5 - - - 158.0 - - 1.5 - - - 160.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.5 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 161.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.0 - - - 162.0 - - 1.5 - - - 163.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 1.5 - - - 164.0 - - 2.0 - - - 164.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 2.0 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - 165.0 - - 1.5 - - - - \ No newline at end of file diff --git a/bower_components/leaflet-plugins/examples/yandex.html b/bower_components/leaflet-plugins/examples/yandex.html deleted file mode 100644 index b592939..0000000 --- a/bower_components/leaflet-plugins/examples/yandex.html +++ /dev/null @@ -1,24 +0,0 @@ - - - Leaflet - - - - - - -
- - - - diff --git a/bower_components/leaflet-plugins/layer/Icon.Canvas.js b/bower_components/leaflet-plugins/layer/Icon.Canvas.js deleted file mode 100644 index 0cadeef..0000000 --- a/bower_components/leaflet-plugins/layer/Icon.Canvas.js +++ /dev/null @@ -1,27 +0,0 @@ -L.Icon.Canvas = L.Icon.extend({ - options: { - iconSize: new L.Point(20, 20), // Have to be supplied - /* - iconAnchor: (Point) - popupAnchor: (Point) - */ - className: 'leaflet-canvas-icon' - }, - - createIcon: function () { - var e = document.createElement('canvas'); - this._setIconStyles(e, 'icon'); - var s = this.options.iconSize; - e.width = s.x; - e.height = s.y; - this.draw(e.getContext('2d'), s.x, s.y); - return e; - }, - - createShadow: function () { - return null; - }, - - draw: function(canvas, width, height) { - } -}); diff --git a/bower_components/leaflet-plugins/layer/Layer.Deferred.js b/bower_components/leaflet-plugins/layer/Layer.Deferred.js deleted file mode 100644 index 6d310e3..0000000 --- a/bower_components/leaflet-plugins/layer/Layer.Deferred.js +++ /dev/null @@ -1,57 +0,0 @@ -L.DeferredLayer = L.LayerGroup.extend({ - options: { - js: [], - init: null - }, - - _script_cache: {}, - - initialize: function(options) { - L.Util.setOptions(this, options); - L.LayerGroup.prototype.initialize.apply(this); - this._loaded = false; - }, - - onAdd: function(map) { - L.LayerGroup.prototype.onAdd.apply(this, [map]); - if (this._loaded) return; - //console.info('Script cache', this._script_cache); - var loaded = function() { - //console.info('Loaded', this, this.options); - this._loaded = true; - var l = this.options.init(); - if (l) - this.addLayer(l); - }; - this._loadScripts(this.options.js.reverse(), L.Util.bind(loaded, this)); - }, - - _loadScripts: function(scripts, cb, args) { - if (!scripts || scripts.length === 0) - return cb(args); - var _this = this, s = scripts.pop(), c; - c = this._script_cache[s]; - if (c === undefined) { - c = {url: s, wait: []}; - //console.info('Load ', s); - var script = document.createElement('script'); - script.src = s; - script.type = 'text/javascript'; - script.onload = function () { - //console.info('Element(cb)', c.e.readyState); - c.e.readyState = 'completed'; - var i = 0; - for (i = 0; i < c.wait.length; i++) - c.wait[i](); - }; - c.e = script; - document.getElementsByTagName('head')[0].appendChild(script); - } - function _cb() { _this._loadScripts(scripts, cb, args); } - c.wait.push(_cb); - //console.info('Element', c.e.readyState); - if (c.e.readyState === 'completed') - _cb(); - this._script_cache[s] = c; - } -}); diff --git a/bower_components/leaflet-plugins/layer/Marker.Rotate.js b/bower_components/leaflet-plugins/layer/Marker.Rotate.js deleted file mode 100644 index 32a8741..0000000 --- a/bower_components/leaflet-plugins/layer/Marker.Rotate.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Based on comments by @runanet and @coomsie - * https://github.com/CloudMade/Leaflet/issues/386 - * - * Wrapping function is needed to preserve L.Marker.update function - */ -(function () { - var _old__setPos = L.Marker.prototype._setPos; - L.Marker.include({ - _updateImg: function(i, a, s) { - a = L.point(s).divideBy(2)._subtract(L.point(a)); - var transform = ''; - transform += ' translate(' + -a.x + 'px, ' + -a.y + 'px)'; - transform += ' rotate(' + this.options.iconAngle + 'deg)'; - transform += ' translate(' + a.x + 'px, ' + a.y + 'px)'; - i.style[L.DomUtil.TRANSFORM] += transform; - }, - - setIconAngle: function (iconAngle) { - this.options.iconAngle = iconAngle; - if (this._map) - this.update(); - }, - - _setPos: function (pos) { - if (this._icon) - this._icon.style[L.DomUtil.TRANSFORM] = ''; - if (this._shadow) - this._shadow.style[L.DomUtil.TRANSFORM] = ''; - - _old__setPos.apply(this,[pos]); - - if (this.options.iconAngle) { - var a = this.options.icon.options.iconAnchor; - var s = this.options.icon.options.iconSize; - var i; - if (this._icon) { - i = this._icon; - this._updateImg(i, a, s); - } - if (this._shadow) { - if (this.options.icon.options.shadowAnchor) - a = this.options.icon.options.shadowAnchor; - s = this.options.icon.options.shadowSize; - i = this._shadow; - this._updateImg(i, a, s); - } - } - } - }); -}()); diff --git a/bower_components/leaflet-plugins/layer/Marker.Text.js b/bower_components/leaflet-plugins/layer/Marker.Text.js deleted file mode 100644 index f1bc247..0000000 --- a/bower_components/leaflet-plugins/layer/Marker.Text.js +++ /dev/null @@ -1,51 +0,0 @@ -L.Icon.Text = L.Icon.extend({ - initialize: function (text, options) { - this._text = text; - L.Icon.prototype.initialize.apply(this, [options]); - }, - - createIcon: function() { - var el = document.createElement('div'); - el.appendChild(document.createTextNode(this._text)); - this._setIconStyles(el, 'icon'); - el.style.textShadow = '2px 2px 2px #fff'; - return el; - }, - - createShadow: function() { return null; } - -}); - -L.Marker.Text = L.Marker.extend({ - initialize: function (latlng, text, options) { - L.Marker.prototype.initialize.apply(this, [latlng, options]); - this._fakeicon = new L.Icon.Text(text); - }, - - _initIcon: function() { - L.Marker.prototype._initIcon.apply(this); - - var i = this._icon, s = this._shadow, obj = this.options.icon; - this._icon = this._shadow = null; - - this.options.icon = this._fakeicon; - L.Marker.prototype._initIcon.apply(this); - this.options.icon = obj; - - if (s) { - s.parentNode.removeChild(s); - this._icon.appendChild(s); - } - - i.parentNode.removeChild(i); - this._icon.appendChild(i); - - var w = this._icon.clientWidth, h = this._icon.clientHeight; - this._icon.style.marginLeft = -w / 2 + 'px'; - //this._icon.style.backgroundColor = "red"; - var off = new L.Point(w/2, 0); - if (L.Browser.webkit) off.y = -h; - L.DomUtil.setPosition(i, off); - if (s) L.DomUtil.setPosition(s, off); - } -}); diff --git a/bower_components/leaflet-plugins/layer/OpenStreetBugs.js b/bower_components/leaflet-plugins/layer/OpenStreetBugs.js deleted file mode 100644 index cac4c21..0000000 --- a/bower_components/leaflet-plugins/layer/OpenStreetBugs.js +++ /dev/null @@ -1,496 +0,0 @@ -/* global alert: true */ -L.OpenStreetBugs = L.FeatureGroup.extend({ - options : { - serverURL : 'http://openstreetbugs.schokokeks.org/api/0.1/', - readonly : false, - setCookie : true, - username : 'NoName', - cookieLifetime : 1000, - cookiePath : null, - permalinkZoom : 14, - permalinkUrl: null, - opacity : 0.7, - showOpen: true, - showClosed: true, - iconOpen: 'http://openstreetbugs.schokokeks.org/client/open_bug_marker.png', - iconClosed:'http://openstreetbugs.schokokeks.org/client/closed_bug_marker.png', - iconActive: undefined, - editArea: 0.01, - popupOptions: {autoPan: false}, - dblClick: true - }, - - initialize : function(options) - { - var tmp = L.Util.extend({}, this.options.popupOptions, (options || {}).popupOptions); - L.Util.setOptions(this, options); - this.options.popupOptions = tmp; - - putAJAXMarker.layers.push(this); - - this.bugs = {}; - this._layers = {}; - - var username = this.get_cookie('osbUsername'); - if (username) - this.options.username = username; - - L.OpenStreetBugs.setCSS(); - }, - - onAdd : function(map) - { - L.FeatureGroup.prototype.onAdd.apply(this, [map]); - - this._map.on('moveend', this.loadBugs, this); - this.loadBugs(); - if (!this.options.readonly) { - if (this.options.dblClick) { - map.doubleClickZoom.disable(); - map.on('dblclick', this.addBug, this); - } - else { - map.on('click', this.addBug, this); - } - } - this.fire('add'); - }, - - onRemove : function(map) - { - this._map.off('moveend', this.loadBugs, this); - this._iterateLayers(map.removeLayer, map); - delete this._map; - if (!this.options.readonly) { - if (this.options.dblClick) { - map.doubleClickZoom.enable(); - map.off('dblclick', this.addBug, this); - } - else { - map.off('click', this.addBug, this); - } - } - this.fire('remove'); - }, - - set_cookie : function(name, value) - { - var expires = (new Date((new Date()).getTime() + 604800000)).toGMTString(); // one week from now - document.cookie = name+'='+encodeURIComponent(value)+';'; - }, - - get_cookie : function(name) - { - var cookies = (document.cookie || '').split(/;\s*/); - for(var i=0; i'; - content += '
'+L.i18n('Comment')+':
'; - content += '
'; - form.innerHTML = content; - form.ok.value = L.i18n('OK'); - form.cancel.value = L.i18n('Cancel'); - form.osbnickname.value = this.options.username; - return form; - }, - - addBug: function(e) { - var newContent = L.DomUtil.create('div', 'osb-popup'); - - newContent.innerHTML += '

'+L.i18n('New bug')+'

'; - newContent.innerHTML += '
'+L.i18n('Find your bug?')+'
'+L.i18n('Contact details and someone will fix it.')+'
'; - - var popup = new L.Popup(); - var _this = this; - var form = this.createCommentForm(newContent); - form.osblat.value = e.latlng.lat; - form.osblon.value = e.latlng.lng; - form.ok.value = L.i18n('Add comment'); - form.onsubmit = function(e) { - _this._map.closePopup(popup); - _this.createBug(form); - return false; - }; - form.cancel.onclick = function(e) { _this._map.closePopup(popup); }; - - popup.setLatLng(e.latlng); - popup.setContent(newContent); - popup.options.maxWidth=410; - popup.options.minWidth=410; - popup.options.className += ' osb osbCreate'; - - this._map.openPopup(popup); - }, - - createBug: function(form) { - if (!form.osbcomment.value) return; - var nickname = form.osbnickname.value || this.options.username; - this.apiRequest('addPOIexec' - + '?lat='+encodeURIComponent(form.osblat.value) - + '&lon='+encodeURIComponent(form.osblon.value) - + '&text='+encodeURIComponent(form.osbcomment.value + ' [' + nickname + ']') - + '&format=js', true - ); - this.set_cookie('osbUsername',nickname); - this.options.username=nickname; - }, - - remoteEdit: function(x) { - var ydelta = this.options.editArea || 0.01; - var xdelta = ydelta * 2; - var p = [ 'left=' + (x.lng - xdelta), 'bottom=' + (x.lat - ydelta), 'right=' + (x.lng + xdelta), 'top=' + (x.lat + ydelta)]; - var url = 'http://localhost:8111/load_and_zoom?' + p.join('&'); - var frame = L.DomUtil.create('iframe', null); - frame.style.display = 'none'; - frame.src = url; - document.body.appendChild(frame); - frame.onload = function(e) { document.body.removeChild(frame); }; - return false; - } -}); - -L.OpenStreetBugs.setCSS = function() { - if(L.OpenStreetBugs.setCSS.done) - return; - else - L.OpenStreetBugs.setCSS.done = true; - - // See http://www.hunlock.com/blogs/Totally_Pwn_CSS_with_Javascript - var idx = 0; - var addRule = function(selector, rules) { - var s = document.styleSheets[0]; - var rule; - if(s.addRule) // M$IE - rule = s.addRule(selector, rules, idx); - else - rule = s.insertRule(selector + ' { ' + rules + ' }', idx); - s.style = L.Util.extend(s.style || {}, rules); - idx++; - }; - - addRule('.osb-popup dl', 'margin:0; padding:0;'); - addRule('.osb-popup dt', 'margin:0; padding:0; font-weight:bold; float:left; clear:left;'); - addRule('.osb-popup dt:after', 'content: ": ";'); - addRule('* html .osb-popup dt', 'margin-right:1ex;'); - addRule('.osb-popup dd', 'margin:0; padding:0;'); - addRule('.osb-popup ul.buttons', 'list-style-type:none; padding:0; margin:0;'); - addRule('.osb-popup ul.buttons li', 'display:inline; margin:0; padding:0;'); - addRule('.osb-popup h3', 'font-size:1.2em; margin:.2em 0 .7em 0;'); -}; - -function putAJAXMarker(id, lon, lat, text, closed) -{ - var comments = text.split(/
/); - var comments_only = []; - var nickname = []; - var datetime = []; - var info = null; - var isplit = 0; - var i; - for(i=0; i').replace(/&/g, '&'); - isplit = comments[i].lastIndexOf('['); - if (isplit > 0) { - comments_only[i] = comments[i].substr(0,isplit-1); - info = comments[i].substr(isplit+1); - nickname[i] = info.substr(0,info.lastIndexOf(',')); - datetime[i] = info.substr(info.lastIndexOf(',')+2); - datetime[i] = datetime[i].substr(0,datetime[i].lastIndexOf(']')); - } - else { - comments_only[i] = comments[i]; - } - } - var old = putAJAXMarker.bugs[id]; - putAJAXMarker.bugs[id] = [ - new L.LatLng(lat, lon), - comments, - closed, - text, - comments_only, - nickname, - datetime - ]; - var force = (old && old[3]) !== text; - for(i=0; i 0; i--) { - var digit = 0; - var mask = 1 << (i - 1); - if ((x & mask) !== 0) digit += 1; - if ((y & mask) !== 0) digit += 2; - quad = quad + digit; - } - return quad; - }, - - getTileUrl: function(p, z) { - var zoom = this._getZoomForUrl(); - var subdomains = this.options.subdomains, - s = this.options.subdomains[Math.abs((p.x + p.y) % subdomains.length)]; - return this._url.replace('{subdomain}', s) - .replace('{quadkey}', this.tile2quad(p.x, p.y, zoom)) - .replace('{culture}', this.options.culture); - }, - - loadMetadata: function() { - var _this = this; - var cbid = '_bing_metadata_' + L.Util.stamp(this); - window[cbid] = function (meta) { - _this.meta = meta; - window[cbid] = undefined; - var e = document.getElementById(cbid); - e.parentNode.removeChild(e); - if (meta.errorDetails) { - if (window.console) console.log('Leaflet Bing Plugin Error - Got metadata: ' + meta.errorDetails); - return; - } - _this.initMetadata(); - }; - var url = document.location.protocol + '//dev.virtualearth.net/REST/v1/Imagery/Metadata/' + this.options.type + '?include=ImageryProviders&jsonp=' + cbid + - '&key=' + this._key + '&UriScheme=' + document.location.protocol.slice(0, -1); - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.src = url; - script.id = cbid; - document.getElementsByTagName('head')[0].appendChild(script); - }, - - initMetadata: function() { - var r = this.meta.resourceSets[0].resources[0]; - this.options.subdomains = r.imageUrlSubdomains; - this._url = r.imageUrl; - this._providers = []; - if (r.imageryProviders) { - for (var i = 0; i < r.imageryProviders.length; i++) { - var p = r.imageryProviders[i]; - for (var j = 0; j < p.coverageAreas.length; j++) { - var c = p.coverageAreas[j]; - var coverage = {zoomMin: c.zoomMin, zoomMax: c.zoomMax, active: false}; - var bounds = new L.LatLngBounds( - new L.LatLng(c.bbox[0]+0.01, c.bbox[1]+0.01), - new L.LatLng(c.bbox[2]-0.01, c.bbox[3]-0.01) - ); - coverage.bounds = bounds; - coverage.attrib = p.attribution; - this._providers.push(coverage); - } - } - } - this._update(); - }, - - _update: function() { - if (this._url === null || !this._map) return; - this._update_attribution(); - L.TileLayer.prototype._update.apply(this, []); - }, - - _update_attribution: function() { - var bounds = this._map.getBounds(); - var zoom = this._map.getZoom(); - for (var i = 0; i < this._providers.length; i++) { - var p = this._providers[i]; - if ((zoom <= p.zoomMax && zoom >= p.zoomMin) && - bounds.intersects(p.bounds)) { - if (!p.active && this._map.attributionControl) - this._map.attributionControl.addAttribution(p.attrib); - p.active = true; - } else { - if (p.active && this._map.attributionControl) - this._map.attributionControl.removeAttribution(p.attrib); - p.active = false; - } - } - }, - - onRemove: function(map) { - for (var i = 0; i < this._providers.length; i++) { - var p = this._providers[i]; - if (p.active && this._map.attributionControl) { - this._map.attributionControl.removeAttribution(p.attrib); - p.active = false; - } - } - L.TileLayer.prototype.onRemove.apply(this, [map]); - } -}); - -L.bingLayer = function (key, options) { - return new L.BingLayer(key, options); -}; diff --git a/bower_components/leaflet-plugins/layer/tile/Google.js b/bower_components/leaflet-plugins/layer/tile/Google.js deleted file mode 100644 index 6ea68c8..0000000 --- a/bower_components/leaflet-plugins/layer/tile/Google.js +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Google layer using Google Maps API - */ - -/* global google: true */ - -L.Google = L.Class.extend({ - includes: L.Mixin.Events, - - options: { - minZoom: 0, - maxZoom: 18, - tileSize: 256, - subdomains: 'abc', - errorTileUrl: '', - attribution: '', - opacity: 1, - continuousWorld: false, - noWrap: false, - mapOptions: { - backgroundColor: '#dddddd' - } - }, - - // Possible types: SATELLITE, ROADMAP, HYBRID, TERRAIN - initialize: function(type, options) { - L.Util.setOptions(this, options); - - this._ready = google.maps.Map !== undefined; - if (!this._ready) L.Google.asyncWait.push(this); - - this._type = type || 'SATELLITE'; - }, - - onAdd: function(map, insertAtTheBottom) { - this._map = map; - this._insertAtTheBottom = insertAtTheBottom; - - // create a container div for tiles - this._initContainer(); - this._initMapObject(); - - // set up events - map.on('viewreset', this._resetCallback, this); - - this._limitedUpdate = L.Util.limitExecByInterval(this._update, 150, this); - map.on('move', this._update, this); - - map.on('zoomanim', this._handleZoomAnim, this); - - //20px instead of 1em to avoid a slight overlap with google's attribution - map._controlCorners.bottomright.style.marginBottom = '20px'; - - this._reset(); - this._update(); - }, - - onRemove: function(map) { - this._map._container.removeChild(this._container); - //this._container = null; - - this._map.off('viewreset', this._resetCallback, this); - - this._map.off('move', this._update, this); - - this._map.off('zoomanim', this._handleZoomAnim, this); - - map._controlCorners.bottomright.style.marginBottom = '0em'; - //this._map.off('moveend', this._update, this); - }, - - getAttribution: function() { - return this.options.attribution; - }, - - setOpacity: function(opacity) { - this.options.opacity = opacity; - if (opacity < 1) { - L.DomUtil.setOpacity(this._container, opacity); - } - }, - - setElementSize: function(e, size) { - e.style.width = size.x + 'px'; - e.style.height = size.y + 'px'; - }, - - _initContainer: function() { - var tilePane = this._map._container, - first = tilePane.firstChild; - - if (!this._container) { - this._container = L.DomUtil.create('div', 'leaflet-google-layer leaflet-top leaflet-left'); - this._container.id = '_GMapContainer_' + L.Util.stamp(this); - this._container.style.zIndex = 'auto'; - } - - tilePane.insertBefore(this._container, first); - - this.setOpacity(this.options.opacity); - this.setElementSize(this._container, this._map.getSize()); - }, - - _initMapObject: function() { - if (!this._ready) return; - this._google_center = new google.maps.LatLng(0, 0); - var map = new google.maps.Map(this._container, { - center: this._google_center, - zoom: 0, - tilt: 0, - mapTypeId: google.maps.MapTypeId[this._type], - disableDefaultUI: true, - keyboardShortcuts: false, - draggable: false, - disableDoubleClickZoom: true, - scrollwheel: false, - streetViewControl: false, - styles: this.options.mapOptions.styles, - backgroundColor: this.options.mapOptions.backgroundColor - }); - - var _this = this; - this._reposition = google.maps.event.addListenerOnce(map, 'center_changed', - function() { _this.onReposition(); }); - this._google = map; - - google.maps.event.addListenerOnce(map, 'idle', - function() { _this._checkZoomLevels(); }); - }, - - _checkZoomLevels: function() { - //setting the zoom level on the Google map may result in a different zoom level than the one requested - //(it won't go beyond the level for which they have data). - // verify and make sure the zoom levels on both Leaflet and Google maps are consistent - if (this._google.getZoom() !== this._map.getZoom()) { - //zoom levels are out of sync. Set the leaflet zoom level to match the google one - this._map.setZoom( this._google.getZoom() ); - } - }, - - _resetCallback: function(e) { - this._reset(e.hard); - }, - - _reset: function(clearOldContainer) { - this._initContainer(); - }, - - _update: function(e) { - if (!this._google) return; - this._resize(); - - var center = e && e.latlng ? e.latlng : this._map.getCenter(); - var _center = new google.maps.LatLng(center.lat, center.lng); - - this._google.setCenter(_center); - this._google.setZoom(this._map.getZoom()); - - this._checkZoomLevels(); - //this._google.fitBounds(google_bounds); - }, - - _resize: function() { - var size = this._map.getSize(); - if (this._container.style.width === size.x && - this._container.style.height === size.y) - return; - this.setElementSize(this._container, size); - this.onReposition(); - }, - - - _handleZoomAnim: function (e) { - var center = e.center; - var _center = new google.maps.LatLng(center.lat, center.lng); - - this._google.setCenter(_center); - this._google.setZoom(e.zoom); - }, - - - onReposition: function() { - if (!this._google) return; - google.maps.event.trigger(this._google, 'resize'); - } -}); - -L.Google.asyncWait = []; -L.Google.asyncInitialize = function() { - var i; - for (i = 0; i < L.Google.asyncWait.length; i++) { - var o = L.Google.asyncWait[i]; - o._ready = true; - if (o._container) { - o._initMapObject(); - o._update(); - } - } - L.Google.asyncWait = []; -}; \ No newline at end of file diff --git a/bower_components/leaflet-plugins/layer/tile/Yandex.js b/bower_components/leaflet-plugins/layer/tile/Yandex.js deleted file mode 100644 index 87dc168..0000000 --- a/bower_components/leaflet-plugins/layer/tile/Yandex.js +++ /dev/null @@ -1,161 +0,0 @@ -/* - * L.TileLayer is used for standard xyz-numbered tile layers. - */ - -/* global ymaps: true */ -/* global console: true */ - -L.Yandex = L.Class.extend({ - includes: L.Mixin.Events, - - options: { - minZoom: 0, - maxZoom: 18, - attribution: '', - opacity: 1, - traffic: false - }, - - // Possible types: map, satellite, hybrid, publicMap, publicMapHybrid - initialize: function(type, options) { - L.Util.setOptions(this, options); - - this._type = 'yandex#' + (type || 'map'); - }, - - onAdd: function(map, insertAtTheBottom) { - this._map = map; - this._insertAtTheBottom = insertAtTheBottom; - - // create a container div for tiles - this._initContainer(); - this._initMapObject(); - - // set up events - map.on('viewreset', this._resetCallback, this); - - this._limitedUpdate = L.Util.limitExecByInterval(this._update, 150, this); - map.on('move', this._update, this); - - map._controlCorners.bottomright.style.marginBottom = '3em'; - - this._reset(); - this._update(true); - }, - - onRemove: function(map) { - this._map._container.removeChild(this._container); - - this._map.off('viewreset', this._resetCallback, this); - - this._map.off('move', this._update, this); - - map._controlCorners.bottomright.style.marginBottom = '0em'; - }, - - getAttribution: function() { - return this.options.attribution; - }, - - setOpacity: function(opacity) { - this.options.opacity = opacity; - if (opacity < 1) { - L.DomUtil.setOpacity(this._container, opacity); - } - }, - - setElementSize: function(e, size) { - e.style.width = size.x + 'px'; - e.style.height = size.y + 'px'; - }, - - _initContainer: function() { - var tilePane = this._map._container, - first = tilePane.firstChild; - - if (!this._container) { - this._container = L.DomUtil.create('div', 'leaflet-yandex-layer leaflet-top leaflet-left'); - this._container.id = '_YMapContainer_' + L.Util.stamp(this); - this._container.style.zIndex = 'auto'; - } - - if (this.options.overlay) { - first = this._map._container.getElementsByClassName('leaflet-map-pane')[0]; - first = first.nextSibling; - // XXX: Bug with layer order - if (L.Browser.opera) - this._container.className += ' leaflet-objects-pane'; - } - tilePane.insertBefore(this._container, first); - - this.setOpacity(this.options.opacity); - this.setElementSize(this._container, this._map.getSize()); - }, - - _initMapObject: function() { - if (this._yandex) return; - - // Check that ymaps.Map is ready - if (ymaps.Map === undefined) { - if (console) { - console.debug('L.Yandex: Waiting on ymaps.load("package.map")'); - } - return ymaps.load(['package.map'], this._initMapObject, this); - } - - // If traffic layer is requested check if control.TrafficControl is ready - if (this.options.traffic) - if (ymaps.control === undefined || - ymaps.control.TrafficControl === undefined) { - if (console) { - console.debug('L.Yandex: loading traffic and controls'); - } - return ymaps.load(['package.traffic', 'package.controls'], - this._initMapObject, this); - } - - var map = new ymaps.Map(this._container, {center: [0,0], zoom: 0, behaviors: []}); - - if (this.options.traffic) - map.controls.add(new ymaps.control.TrafficControl({shown: true})); - - if (this._type === 'yandex#null') { - this._type = new ymaps.MapType('null', []); - map.container.getElement().style.background = 'transparent'; - } - map.setType(this._type); - - this._yandex = map; - this._update(true); - }, - - _resetCallback: function(e) { - this._reset(e.hard); - }, - - _reset: function(clearOldContainer) { - this._initContainer(); - }, - - _update: function(force) { - if (!this._yandex) return; - this._resize(force); - - var center = this._map.getCenter(); - var _center = [center.lat, center.lng]; - var zoom = this._map.getZoom(); - - if (force || this._yandex.getZoom() !== zoom) - this._yandex.setZoom(zoom); - this._yandex.panTo(_center, {duration: 0, delay: 0}); - }, - - _resize: function(force) { - var size = this._map.getSize(), style = this._container.style; - if (style.width === size.x + 'px' && style.height === size.y + 'px') - if (force !== true) return; - this.setElementSize(this._container, size); - var b = this._map.getBounds(), sw = b.getSouthWest(), ne = b.getNorthEast(); - this._yandex.container.fitToViewport(); - } -}); \ No newline at end of file diff --git a/bower_components/leaflet-plugins/layer/vector/GPX.Speed.js b/bower_components/leaflet-plugins/layer/vector/GPX.Speed.js deleted file mode 100644 index 2b8f6c9..0000000 --- a/bower_components/leaflet-plugins/layer/vector/GPX.Speed.js +++ /dev/null @@ -1,80 +0,0 @@ -//#include 'GPX.js' - -(function() { - -function d2h(d) { - var hex = '0123456789ABCDEF'; - var r = ''; - d = Math.floor(d); - while (d !== 0) { - r = hex[d % 16] + r; - d = Math.floor(d / 16); - } - while (r.length < 2) r = '0' + r; - return r; -} - -function gradient(color) { - // First arc (0, PI) in HSV colorspace - function f2h(d) { return d2h(256 * d); } - if (color < 0) - return '#FF0000'; - else if (color < 1.0/3) - return '#FF' + f2h(3 * color) + '00'; - else if (color < 2.0/3) - return '#' + f2h(2 - 3 * color) + 'FF00'; - else if (color < 1) - return '#00FF' + f2h(3 * color - 2); - else - return '#00FFFF'; -} - -function gpx2time(s) { - // 2011-09-24T12:07:53Z - if (s.length !== 10 + 1 + 8 + 1) - return new Date(); - return new Date(s); -} - -L.GPX.include({ - options: { - maxSpeed: 110, - chunks: 200 - }, - - speedSplitEnable: function(options) { - L.Util.setOptions(this, options); - return this.on('addline', this.speed_split, this); - }, - - speedSplitDisable: function() { - return this.off('addline', this.speed_split, this); - }, - - speed_split: function(e) { - var l = e.line.pop(), ll = l.getLatLngs(); - var chunk = Math.floor(ll.length / this.options.chunks); - if (chunk < 3) chunk = 3; - var p = null; - for (var i = 0; i < ll.length; i += chunk) { - var d = 0, t = null; - if (i + chunk > ll.length) - chunk = ll.length - i; - for (var j = 0; j < chunk; j++) { - if (p) d += p.distanceTo(ll[i+j]); - p = ll[i + j]; - if (!t) t = gpx2time(p.meta.time); - } - p = ll[i + chunk - 1]; - t = (gpx2time(p.meta.time) - t) / (3600 * 1000); - var speed = 0.001 * d / t; - //console.info('Dist: ' + d + '; Speed: ' + speed); - var color = gradient(speed / this.options.maxSpeed); - var poly = new L.Polyline(ll.slice(i, i+chunk+1), {color: color, weight: 2, opacity: 1}); - poly.bindPopup('Dist: ' + d.toFixed() + 'm; Speed: ' + speed.toFixed(2) + ' km/h'); - e.line.push(poly); - } - } - -}); -})(); diff --git a/bower_components/leaflet-plugins/layer/vector/GPX.js b/bower_components/leaflet-plugins/layer/vector/GPX.js deleted file mode 100644 index e2e7d6a..0000000 --- a/bower_components/leaflet-plugins/layer/vector/GPX.js +++ /dev/null @@ -1,141 +0,0 @@ -L.GPX = L.FeatureGroup.extend({ - initialize: function(gpx, options) { - L.Util.setOptions(this, options); - this._gpx = gpx; - this._layers = {}; - - if (gpx) { - this.addGPX(gpx, options, this.options.async); - } - }, - - loadXML: function(url, cb, options, async) { - if (async === undefined) async = this.options.async; - if (options === undefined) options = this.options; - - var req = new window.XMLHttpRequest(); - req.open('GET', url, async); - try { - req.overrideMimeType('text/xml'); // unsupported by IE - } catch(e) {} - req.onreadystatechange = function() { - if (req.readyState !== 4) return; - if(req.status === 200) cb(req.responseXML, options); - }; - req.send(null); - }, - - _humanLen: function(l) { - if (l < 2000) - return l.toFixed(0) + ' m'; - else - return (l/1000).toFixed(1) + ' km'; - }, - - _polylineLen: function(line)//line is a L.Polyline() - { - var ll = line._latlngs; - var d = 0, p = null; - for (var i = 0; i < ll.length; i++) - { - if(i && p) - d += p.distanceTo(ll[i]); - p = ll[i]; - } - return d; - }, - - addGPX: function(url, options, async) { - var _this = this; - var cb = function(gpx, options) { _this._addGPX(gpx, options); }; - this.loadXML(url, cb, options, async); - }, - - _addGPX: function(gpx, options) { - var layers = this.parseGPX(gpx, options); - if (!layers) return; - this.addLayer(layers); - this.fire('loaded'); - }, - - parseGPX: function(xml, options) { - var j, i, el, layers = []; - var named = false, tags = [['rte','rtept'], ['trkseg','trkpt']]; - - for (j = 0; j < tags.length; j++) { - el = xml.getElementsByTagName(tags[j][0]); - for (i = 0; i < el.length; i++) { - var l = this.parse_trkseg(el[i], xml, options, tags[j][1]); - for (var k = 0; k < l.length; k++) { - if (this.parse_name(el[i], l[k])) named = true; - layers.push(l[k]); - } - } - } - - el = xml.getElementsByTagName('wpt'); - if (options.display_wpt !== false) { - for (i = 0; i < el.length; i++) { - var marker = this.parse_wpt(el[i], xml, options); - if (!marker) continue; - if (this.parse_name(el[i], marker)) named = true; - layers.push(marker); - } - } - - if (!layers.length) return; - var layer = layers[0]; - if (layers.length > 1) - layer = new L.FeatureGroup(layers); - if (!named) this.parse_name(xml, layer); - return layer; - }, - - parse_name: function(xml, layer) { - var i, el, txt='', name, descr='', len=0; - el = xml.getElementsByTagName('name'); - if (el.length) - name = el[0].childNodes[0].nodeValue; - el = xml.getElementsByTagName('desc'); - for (i = 0; i < el.length; i++) { - for (var j = 0; j < el[i].childNodes.length; j++) - descr = descr + el[i].childNodes[j].nodeValue; - } - - if(layer instanceof L.Path) - len = this._polylineLen(layer); - - if (name) txt += '

' + name + '

' + descr; - if (len) txt += '

' + this._humanLen(len) + '

'; - - if (layer && layer._popup === undefined) layer.bindPopup(txt); - return txt; - }, - - parse_trkseg: function(line, xml, options, tag) { - var el = line.getElementsByTagName(tag); - if (!el.length) return []; - var coords = []; - for (var i = 0; i < el.length; i++) { - var ll = new L.LatLng(el[i].getAttribute('lat'), - el[i].getAttribute('lon')); - ll.meta = {}; - for (var j in el[i].childNodes) { - var e = el[i].childNodes[j]; - if (!e.tagName) continue; - ll.meta[e.tagName] = e.textContent; - } - coords.push(ll); - } - var l = [new L.Polyline(coords, options)]; - this.fire('addline', {line:l}); - return l; - }, - - parse_wpt: function(e, xml, options) { - var m = new L.Marker(new L.LatLng(e.getAttribute('lat'), - e.getAttribute('lon')), options); - this.fire('addpoint', {point:m}); - return m; - } -}); diff --git a/bower_components/leaflet-plugins/layer/vector/KML.js b/bower_components/leaflet-plugins/layer/vector/KML.js deleted file mode 100644 index 8efcf31..0000000 --- a/bower_components/leaflet-plugins/layer/vector/KML.js +++ /dev/null @@ -1,355 +0,0 @@ -L.KML = L.FeatureGroup.extend({ - options: { - async: true - }, - - initialize: function(kml, options) { - L.Util.setOptions(this, options); - this._kml = kml; - this._layers = {}; - - if (kml) { - this.addKML(kml, options, this.options.async); - } - }, - - loadXML: function(url, cb, options, async) { - if (async === undefined) async = this.options.async; - if (options === undefined) options = this.options; - - var req = new window.XMLHttpRequest(); - req.open('GET', url, async); - try { - req.overrideMimeType('text/xml'); // unsupported by IE - } catch(e) {} - req.onreadystatechange = function() { - if (req.readyState !== 4) return; - if (req.status === 200) cb(req.responseXML, options); - }; - req.send(null); - }, - - addKML: function(url, options, async) { - var _this = this; - var cb = function(gpx, options) { _this._addKML(gpx, options); }; - this.loadXML(url, cb, options, async); - }, - - _addKML: function(xml, options) { - var layers = L.KML.parseKML(xml); - if (!layers || !layers.length) return; - for (var i = 0; i < layers.length; i++) { - this.fire('addlayer', { - layer: layers[i] - }); - this.addLayer(layers[i]); - } - this.latLngs = L.KML.getLatLngs(xml); - this.fire('loaded'); - }, - - latLngs: [] -}); - -L.Util.extend(L.KML, { - - parseKML: function (xml) { - var style = this.parseStyle(xml); - this.parseStyleMap(xml, style); - var el = xml.getElementsByTagName('Folder'); - var layers = [], l; - for (var i = 0; i < el.length; i++) { - if (!this._check_folder(el[i])) { continue; } - l = this.parseFolder(el[i], style); - if (l) { layers.push(l); } - } - el = xml.getElementsByTagName('Placemark'); - for (var j = 0; j < el.length; j++) { - if (!this._check_folder(el[j])) { continue; } - l = this.parsePlacemark(el[j], xml, style); - if (l) { layers.push(l); } - } - return layers; - }, - - // Return false if e's first parent Folder is not [folder] - // - returns true if no parent Folders - _check_folder: function (e, folder) { - e = e.parentElement; - while (e && e.tagName !== 'Folder') - { - e = e.parentElement; - } - return !e || e === folder; - }, - - parseStyle: function (xml) { - var style = {}; - var sl = xml.getElementsByTagName('Style'); - - //for (var i = 0; i < sl.length; i++) { - var attributes = {color: true, width: true, Icon: true, href: true, - hotSpot: true}; - - function _parse(xml) { - var options = {}; - for (var i = 0; i < xml.childNodes.length; i++) { - var e = xml.childNodes[i]; - var key = e.tagName; - if (!attributes[key]) { continue; } - if (key === 'hotSpot') - { - for (var j = 0; j < e.attributes.length; j++) { - options[e.attributes[j].name] = e.attributes[j].nodeValue; - } - } else { - var value = e.childNodes[0].nodeValue; - if (key === 'color') { - options.opacity = parseInt(value.substring(0, 2), 16) / 255.0; - options.color = '#' + value.substring(6, 8) + value.substring(4, 6) + value.substring(2, 4); - } else if (key === 'width') { - options.weight = value; - } else if (key === 'Icon') { - ioptions = _parse(e); - if (ioptions.href) { options.href = ioptions.href; } - } else if (key === 'href') { - options.href = value; - } - } - } - return options; - } - - for (var i = 0; i < sl.length; i++) { - var e = sl[i], el; - var options = {}, poptions = {}, ioptions = {}; - el = e.getElementsByTagName('LineStyle'); - if (el && el[0]) { options = _parse(el[0]); } - el = e.getElementsByTagName('PolyStyle'); - if (el && el[0]) { poptions = _parse(el[0]); } - if (poptions.color) { options.fillColor = poptions.color; } - if (poptions.opacity) { options.fillOpacity = poptions.opacity; } - el = e.getElementsByTagName('IconStyle'); - if (el && el[0]) { ioptions = _parse(el[0]); } - if (ioptions.href) { - // save anchor info until the image is loaded - options.icon = new L.KMLIcon({ - iconUrl: ioptions.href, - shadowUrl: null, - iconAnchorRef: {x: ioptions.x, y: ioptions.y}, - iconAnchorType: {x: ioptions.xunits, y: ioptions.yunits} - }); - } - style['#' + e.getAttribute('id')] = options; - } - return style; - }, - - parseStyleMap: function (xml, existingStyles) { - var sl = xml.getElementsByTagName('StyleMap'); - - for (var i = 0; i < sl.length; i++) { - var e = sl[i], el; - var smKey, smStyleUrl; - - el = e.getElementsByTagName('key'); - if (el && el[0]) { smKey = el[0].textContent; } - el = e.getElementsByTagName('styleUrl'); - if (el && el[0]) { smStyleUrl = el[0].textContent; } - - if (smKey === 'normal') - { - existingStyles['#' + e.getAttribute('id')] = existingStyles[smStyleUrl]; - } - } - - return; - }, - - parseFolder: function (xml, style) { - var el, layers = [], l; - el = xml.getElementsByTagName('Folder'); - for (var i = 0; i < el.length; i++) { - if (!this._check_folder(el[i], xml)) { continue; } - l = this.parseFolder(el[i], style); - if (l) { layers.push(l); } - } - el = xml.getElementsByTagName('Placemark'); - for (var j = 0; j < el.length; j++) { - if (!this._check_folder(el[j], xml)) { continue; } - l = this.parsePlacemark(el[j], xml, style); - if (l) { layers.push(l); } - } - if (!layers.length) { return; } - if (layers.length === 1) { return layers[0]; } - return new L.FeatureGroup(layers); - }, - - parsePlacemark: function (place, xml, style) { - var i, j, el, options = {}; - el = place.getElementsByTagName('styleUrl'); - for (i = 0; i < el.length; i++) { - var url = el[i].childNodes[0].nodeValue; - for (var a in style[url]) - { - // for jshint - if (true) - { - options[a] = style[url][a]; - } - } - } - var layers = []; - - var parse = ['LineString', 'Polygon', 'Point']; - for (j in parse) { - // for jshint - if (true) - { - var tag = parse[j]; - el = place.getElementsByTagName(tag); - for (i = 0; i < el.length; i++) { - var l = this['parse' + tag](el[i], xml, options); - if (l) { layers.push(l); } - } - } - } - - if (!layers.length) { - return; - } - var layer = layers[0]; - if (layers.length > 1) { - layer = new L.FeatureGroup(layers); - } - - var name, descr = ''; - el = place.getElementsByTagName('name'); - if (el.length && el[0].childNodes.length) { - name = el[0].childNodes[0].nodeValue; - } - el = place.getElementsByTagName('description'); - for (i = 0; i < el.length; i++) { - for (j = 0; j < el[i].childNodes.length; j++) { - descr = descr + el[i].childNodes[j].nodeValue; - } - } - - if (name) { - layer.bindPopup('

' + name + '

' + descr); - } - - return layer; - }, - - parseCoords: function (xml) { - var el = xml.getElementsByTagName('coordinates'); - return this._read_coords(el[0]); - }, - - parseLineString: function (line, xml, options) { - var coords = this.parseCoords(line); - if (!coords.length) { return; } - return new L.Polyline(coords, options); - }, - - parsePoint: function (line, xml, options) { - var el = line.getElementsByTagName('coordinates'); - if (!el.length) { - return; - } - var ll = el[0].childNodes[0].nodeValue.split(','); - return new L.KMLMarker(new L.LatLng(ll[1], ll[0]), options); - }, - - parsePolygon: function (line, xml, options) { - var el, polys = [], inner = [], i, coords; - el = line.getElementsByTagName('outerBoundaryIs'); - for (i = 0; i < el.length; i++) { - coords = this.parseCoords(el[i]); - if (coords) { - polys.push(coords); - } - } - el = line.getElementsByTagName('innerBoundaryIs'); - for (i = 0; i < el.length; i++) { - coords = this.parseCoords(el[i]); - if (coords) { - inner.push(coords); - } - } - if (!polys.length) { - return; - } - if (options.fillColor) { - options.fill = true; - } - if (polys.length === 1) { - return new L.Polygon(polys.concat(inner), options); - } - return new L.MultiPolygon(polys, options); - }, - - getLatLngs: function (xml) { - var el = xml.getElementsByTagName('coordinates'); - var coords = []; - for (var j = 0; j < el.length; j++) { - // text might span many childNodes - coords = coords.concat(this._read_coords(el[j])); - } - return coords; - }, - - _read_coords: function (el) { - var text = '', coords = [], i; - for (i = 0; i < el.childNodes.length; i++) { - text = text + el.childNodes[i].nodeValue; - } - text = text.split(/[\s\n]+/); - for (i = 0; i < text.length; i++) { - var ll = text[i].split(','); - if (ll.length < 2) { - continue; - } - coords.push(new L.LatLng(ll[1], ll[0])); - } - return coords; - } - -}); - -L.KMLIcon = L.Icon.extend({ - - createIcon: function () { - var img = this._createIcon('icon'); - img.onload = function () { - var i = img; - this.style.width = i.width + 'px'; - this.style.height = i.height + 'px'; - - if (this.anchorType.x === 'UNITS_FRACTION' || this.anchorType.x === 'fraction') { - img.style.marginLeft = (-this.anchor.x * i.width) + 'px'; - } - if (this.anchorType.y === 'UNITS_FRACTION' || this.anchorType.x === 'fraction') { - img.style.marginTop = (-(1 - this.anchor.y) * i.height) + 'px'; - } - this.style.display = ''; - }; - return img; - }, - - _setIconStyles: function (img, name) { - L.Icon.prototype._setIconStyles.apply(this, [img, name]); - // save anchor information to the image - img.anchor = this.options.iconAnchorRef; - img.anchorType = this.options.iconAnchorType; - } -}); - - -L.KMLMarker = L.Marker.extend({ - options: { - icon: new L.KMLIcon.Default() - } -}); - diff --git a/bower_components/leaflet-plugins/layer/vector/OSM.js b/bower_components/leaflet-plugins/layer/vector/OSM.js deleted file mode 100644 index f8f4eed..0000000 --- a/bower_components/leaflet-plugins/layer/vector/OSM.js +++ /dev/null @@ -1,173 +0,0 @@ -/* global console: true */ - -L.OSM = L.FeatureGroup.extend({ - options: { - async: true, - forceAll: false - }, - - initialize: function(url, options) { - L.Util.setOptions(this, options); - this._url = url; - this._layers = {}; - - if (url) { - this.addXML(url, options, this.options.async); - } - }, - - loadXML: function(url, cb, options, async) { - if (async === undefined) async = this.options.async; - if (options === undefined) options = this.options; - - var req = new window.XMLHttpRequest(); - req.open('GET', url, async); - req.overrideMimeType('text/xml'); - req.onreadystatechange = function() { - if (req.readyState !== 4) return; - if (req.status === 200) cb(req.responseXML, options); - }; - req.send(null); - }, - - addXML: function(url, options, async) { - var _this = this; - var cb = function(xml, options) { _this._addXML(xml, options); }; - this.loadXML(url, cb, options, async); - }, - - _addXML: function(xml, options) { - var layers = this.parseOSM(xml, options); - if (!layers) return; - this.addLayer(layers); - this.fire('loaded'); - }, - - parseOSM: function(xml, options) { - var i, el, ll, layers = []; - var nodes = {}; - var ways = {}; - var named = false; - - el = xml.getElementsByTagName('node'); - for (i = 0; i < el.length; i++) { - var l = this.parse_node(el[i], xml, options); - if (l === undefined) continue; - nodes[l.osmid] = l; - if (!this.options.forceAll && !l.tags.length) continue; - var m = this.named_node(l, options); - if (!ll) ll = m.getLatLng(); - if (this.parse_name(m, l, 'Node')) named = true; - layers.push(m); - } - - el = xml.getElementsByTagName('way'); - for (i = 0; i < el.length; i++) { - if (i > 10) break; - var way = this.parse_way(el[i], nodes, options); - if (!way) continue; - if (!ll) ll = way.getLatLngs()[0]; - if (this.parse_name(way, way, 'Way')) named = true; - layers.push(way); - ways[way.osmid] = way; - } - - el = xml.getElementsByTagName('relation'); - for (i = 0; i < el.length; i++) { - if (i > 10) break; - var relation = this.parse_relation(el[i], ways, options); - if (!relation) continue; - if (!ll) ll = relation.getLatLngs()[0]; - if (this.parse_name(relation, relation, 'Relation')) named = true; - layers.push(relation); - } - - if (!layers.length) return; - var layer = layers[0]; - if (layers.length > 1) - layer = new L.FeatureGroup(layers); - if (!named) this.parse_name(xml, layer); - layer.focusPoint = ll; - return layer; - }, - - parse_name: function(layer, obj, obj_name) { - console.info('parse name'); - console.info(this.options); - if (!this.options.forceAll) - if (!obj.tags || !obj.tags.length) return; - var i, txt = ''; - for (i = 0; i < obj.tags.length; i++) { - var t = obj.tags[i]; - txt += ''; - } - txt += '
' + t.k + '=' + t.v + '
'; - txt = '

' + obj_name + ' ' + obj.osmid + '

' + txt; - if (layer) layer.bindPopup(txt); - return txt; - }, - - parse_tags: function(line) { - var tags = [], el = line.getElementsByTagName('tag'); - for (var i = 0; i < el.length; i++) - tags.push({k: el[i].getAttribute('k'), v: el[i].getAttribute('v')}); - return tags; - }, - - parse_node: function(e) { - var n = { osmid: e.getAttribute('id'), - lat:e.getAttribute('lat'), - lon:e.getAttribute('lon') - }; - n.ll = new L.LatLng(n.lat, n.lon); - n.tags = this.parse_tags(e); - return n; - }, - - parse_way: function(line, nodes, options) { - var el = line.getElementsByTagName('nd'); - if (!el.length) return; - var coords = [], tags = []; - for (var i = 0; i < el.length; i++) { - var ref = el[i].getAttribute('ref'), n = nodes[ref]; - if (!n) return; - coords.push(n.ll); - } - var layer = new L.Polyline(coords, options); - layer.tags = this.parse_tags(line); - layer.osmid = line.getAttribute('id'); - return layer; - }, - - parse_relation: function(line, ways, options) { - var el = line.getElementsByTagName('member'); - if (!el.length) return; - var rt, coords = [], tags = this.parse_tags(line); - var i; - for (i = 0; i < tags.length; i++) - if (tags[i].k === 'type') rt = tags[i].v; - - if (rt !== 'multipolygon' && rt !== 'boundary' && rt !== 'waterway') - return; - - for (i = 0; i < el.length; i++) { - var mt = el[i].getAttribute('type'), ref = el[i].getAttribute('ref'); - if (mt !== 'way') continue; - var w = ways[ref]; - console.info('Way: ' + ref + ' ' + w); - if (!w) return; - coords.push(w); - } - console.info('Coords: ' + coords.length); - if (!coords.length) return; - var layer = new L.MultiPolyline(coords, options); - layer.tags = this.parse_tags(line); - layer.osmid = line.getAttribute('id'); - return layer; - }, - - named_node: function(node, options) { - var marker = new L.Marker(new L.LatLng(node.lat, node.lon), options); - return marker; - } -}); diff --git a/bower_components/leaflet-plugins/package.json b/bower_components/leaflet-plugins/package.json deleted file mode 100644 index c87d3da..0000000 --- a/bower_components/leaflet-plugins/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "author": "Pavel Shramov", - "name": "leaflet-plugins", - "version": "1.1.2", - "description": "Miscellaneous plugins for Leaflet library for services that need to display route information and need satellite imagery from different providers", - "repository": { - "type": "git", - "url": "git@github.com:shramov/leaflet-plugins.git" - }, - "scripts": { - "test": "jshint control/* layer/*" - }, - "devDependencies": { - "jshint": "2.5.0" - }, - "contributors": [ - "Bruno Bergot ", - "Andrey Lushchick " - ], - "keywords": [ - "leaflet", - "plugins", - "map", - "google", - "bing", - "yandex" - ] -} diff --git a/bower_components/leaflet-routing/.bower.json b/bower_components/leaflet-routing/.bower.json deleted file mode 100644 index 48bf337..0000000 --- a/bower_components/leaflet-routing/.bower.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "leaflet-routing", - "homepage": "https://github.com/nrenner/leaflet-routing", - "_release": "ed9a880cb3", - "_resolution": { - "type": "branch", - "branch": "styles", - "commit": "ed9a880cb353e1f2ef1c5de56bb2ac2758578663" - }, - "_source": "git://github.com/nrenner/leaflet-routing.git", - "_target": "styles", - "_originalSource": "nrenner/leaflet-routing" -} \ No newline at end of file diff --git a/bower_components/leaflet-routing/.gitignore b/bower_components/leaflet-routing/.gitignore deleted file mode 100644 index 1377554..0000000 --- a/bower_components/leaflet-routing/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.swp diff --git a/bower_components/leaflet-routing/CHANGELOG.md b/bower_components/leaflet-routing/CHANGELOG.md deleted file mode 100644 index 44a84a1..0000000 --- a/bower_components/leaflet-routing/CHANGELOG.md +++ /dev/null @@ -1,41 +0,0 @@ -Changelog -========= - -### 0.2.0 (Unreadlesed) - -**Features** - -* Add option for overriding draw shortcuts (#23) -* Add option for disabling drawing marker (#18) -* Add options for tooltips (waypoint, segment) -* Disable shortcuts by setting `options.shortcut` to `false`. -* Add support for loading GeoJSON without waypoints (#16). -* Add option to #loadGeoJSON() to disable map fit bounds. -* Add [OSM demo](http://turistforeningen.github.io/leaflet-routing/examples/osm.html) -* …as well as countless updates to the readme and code readability. - -**Breaking changes** - -* Default shortcut key for draw enable is `d` -* Default shortcut key for draw disable is `q` - -### 0.1.1 March 11, 2014 - -**Features** - -* Add changelog overview (#14) -* Add Change map bounds when loading GeoJSON (#13) - -**Bugfixes** - -* Fix undefined evaluation when snapping layer is not avaiable (#15) -* Fail gracefully when loading invalid GeoJSON (#12) - -### 0.1.0 March 10, 2014 - -* Implements `#loadGeoJSON()` method (#3) - -#### Backwards compability note - -* Format of `properties.waypoints` in `#toGeoJSON()` is changed according to #3. - diff --git a/bower_components/leaflet-routing/LICENSE b/bower_components/leaflet-routing/LICENSE deleted file mode 100644 index c01d507..0000000 --- a/bower_components/leaflet-routing/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2014, Den Norske Turistforening -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are -permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, this list of - conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, this list - of conditions and the following disclaimer in the documentation and/or other materials - provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY -EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/bower_components/leaflet-routing/README.md b/bower_components/leaflet-routing/README.md deleted file mode 100644 index dc8ae81..0000000 --- a/bower_components/leaflet-routing/README.md +++ /dev/null @@ -1,183 +0,0 @@ -Leaflet.Routing -=============== - -Leaflet.Routing is a routing controller for the popular Leaflet mapping -framework. The module provides an intuitive interface for routing paths between -waypoints using any user specified routing service. A demo using the OSM data -can be found -[here](http://turistforeningen.github.io/leaflet-routing/examples/osm.html). - -![Prototype Routing using Leaflet](https://raw.github.com/Turistforeningen/leaflet-routing/gh-pages/images/promo.gif) - -## Features - -* Route handling interface for Leaflet -* Use your own routing backend, or OSM - -## Usage - -```javascript -var routing = new L.Routing({ - position: 'topright' - ,routing: { - router: myRouterFunction - } - ,tooltips: { - waypoint: 'Waypoint. Drag to move; Click to remove.', - segment: 'Drag to create a new waypoint' - } - ,styles: { // see http://leafletjs.com/reference.html#polyline-options - trailer: {} // drawing line - ,track: {} // calculated route result - ,nodata: {} // line when no result (error) - } - ,snapping: { - layers: [mySnappingLayer] - ,sensitivity: 15 - ,vertexonly: false - } - ,shortcut: { - draw: { - enable: 68 // 'd' - ,disable: 81 // 'q' - } - } -}); -map.addControl(routing); -``` - -### Enable Drawing - -```javascript -routing.draw(true); -``` - -### Enable Routing `NOT IMPLEMENTED` - -```javascript -routing.routing(true); -``` - -### Enable Snapping `NOT IMPLEMETED` - -```javascript -routing.snapping(true); -``` - -### Recalculate the complete route by routing each segment - -```javascript -routing.rerouteAllSegments(callback); -``` - -### Get first waypoint - -```javascript -var first = routing.getFirst(); -``` - -### Get last waypoint - -```javascript -var last = routing.getLast(); -``` - -### Get all waypoints - -```javascript -var waypointsArray = routing.getWaypoints(); -``` - -### Routing to Polyline - -```javascript -var polyline = routing.toPolyline(); -``` - -### To GeoJSON - -```javascript -var geoJSON3D = routing.toGeoJSON(); -var geoJSON2D = routing.toGeoJSON(false); -``` - -### Load GeoJSON - -Load GeoJSON with and without `properties.waypoints`. - -#### Options - -* `number` waypointDistance - distance between inserted waypoints for GeoJSON without waypoints. -* `boolean` fitBounds - fit map arround loaded GeoJSON. - -```javascript -routing.loadGeoJSON(geojson, [options], function(err) { - if (err) { - console.log(err); - } else { - console.log('Finished loading GeoJSON'); - } -}); -``` - -## Events - -All events form Leaflet.Routing is prefixed with `routing:`. - -### Usage - -```javascript -routing.on('routing:someEvent', function() { - console.log('routing:someEvent triggered'); -}); -``` - -### L.Routing Events - -| Event name | Description | -|------------|-------------| -| `routing:draw-start` | Fired when drawing mode is started | -| `routing:draw-new` | Fired when drawing mode is started for a new route | -| `routing:draw-continue` | Fired when drawing mode is started for an existing route | -| `routing:draw-stop` | Fired when drawing mode ends | -| `routing:edit-start` | Fired when editing mode starts | -| `routing:edit-end` | Fired when editing mode ends | - -### Waypoint Events - -| Event name | Description | -|------------|-------------| -| `routing:routeWaypointStart` | Fired when a new or existing waypoint is created or moved | -| `routing:routeWaypointEnd` | Fired when routing is finished for new or moved waypoint | - -### Segment Events - -| Event name | Description | -|------------|-------------| -| `routing:rerouteAllSegmentsStart` | Fired when rerouting of all segments starts | -| `routing:rerouteAllSegmentsEnd` | Fired when rerouting of all segments completes | - -## Copyright - -Copyright (c) 2014, Den Norske Turistforening - -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted -provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions - and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions - and the following disclaimer in the documentation and/or other materials provided with the - distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER -IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF -THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/bower_components/leaflet-routing/app.css b/bower_components/leaflet-routing/app.css deleted file mode 100644 index 28c0de1..0000000 --- a/bower_components/leaflet-routing/app.css +++ /dev/null @@ -1,68 +0,0 @@ -#map { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} - -div.line-mouse-marker { - background-color: #ffffff; - border: 2px solid black; - border-radius: 10px; -} - -#export { - position: absolute; - right: 10px; - top: 10px; - background-color: rgb(228,225,218); - border: 1px solid rgb(196, 196, 196); - padding: 10px; - z-index: 3000; -} - -#search { - position: relative; - margin: 10px auto; - background-color: rgb(228,225,218); - border: 1px solid rgb(196, 196, 196); - padding: 10px; - z-index: 3000; - width: 300px; -} - -#search input { - width: 240px; -} - -.typeahead { - background-color: #fff; -} - -.tt-dropdown-menu { - width: 240px; - padding: 8px 0; - background-color: #fff; - border: 1px solid #ccc; -} - -.tt-suggestion { - padding: 3px 20px; - font-size: 18px; - line-height: 24px; -} - -.tt-suggestion.tt-is-under-cursor { - color: #fff; - background-color: #0097cf; - -} - -.tt-suggestion p { - margin: 0; -} - -#export input { - width: 70px; -} \ No newline at end of file diff --git a/bower_components/leaflet-routing/app.js b/bower_components/leaflet-routing/app.js deleted file mode 100644 index 1b3efce..0000000 --- a/bower_components/leaflet-routing/app.js +++ /dev/null @@ -1,228 +0,0 @@ -/* - Routing capability using the Leaflet framework - Copyright (c) 2013, Turistforeningen, Hans Kristian Flaatten - - https://github.com/Turistforeningen/leaflet-routing -*/ - -var routing, data; - -(function() { - "use strict"; - jQuery(function($) { - var api, apiKey, rUrl, sUrl, topo, map, snapping, inport, myRouter; - - api = window.location.hash.substr(1).split('@'); - if (api.length === 2) { - rUrl = 'http://' + api[1] + '/route/?coords=' - sUrl = 'http://' + api[1] + '/bbox/?bbox='; - apiKey = api[0]; - } else { - throw new Error('API auth failed'); - } - - topo = L.tileLayer('http://opencache.statkart.no/gatekeeper/gk/gk.open_gmaps?layers=topo2&zoom={z}&x={x}&y={y}', { - maxZoom: 16, - attribution: '
Statens kartverk' - }); - - var summer = L.tileLayer('http://mt3.turistforeningen.no/prod/trail_summer/{z}/{x}/{y}.png', { - maxZoom: 16, - attribution: 'DNT' - }); - var winter = L.tileLayer('http://mt3.turistforeningen.no/prod/trail_winter/{z}/{x}/{y}.png', { - maxZoom: 16, - attribution: 'DNT' - }); - var cabin = L.tileLayer('http://mt3.turistforeningen.no/prod/cabin/{z}/{x}/{y}.png', { - maxZoom: 16, - attribution: 'DNT' - }); - - map = new L.Map('map', { - layers: [topo] - ,center: new L.LatLng(61.5, 9) - ,zoom: 13 - }); - cabin.addTo(map); - summer.addTo(map); - - L.control.layers({'Topo 2': topo}, { - 'DNTs merkede stier': summer - ,'DNTs merkede vinterruter': winter - ,'DNTs turisthytter': cabin - }, { - position: 'topleft' - }).addTo(map); - - // Import Layer - inport = new L.layerGroup(null, { - style: { - opacity:0.5 - ,clickable:false - } - }).addTo(map); - - // Snapping Layer - snapping = new L.geoJson(null, { - style: { - opacity:0 - ,clickable:false - } - }).addTo(map); - map.on('moveend', function() { - if (map.getZoom() > 12) { - var url; - url = sUrl + map.getBounds().toBBoxString() + '&callback=?'; - $.getJSON(url).always(function(data, status) { - if (status === 'success') { - data = JSON.parse(data); - if (data.geometries && data.geometries.length > 0) { - snapping.clearLayers(); - snapping.addData(data); - } - } else { - console.error('Could not load snapping data'); - } - }); - } else { - snapping.clearLayers(); - } - }); - map.fire('moveend'); - - // Routing Function - // @todo speed up geometryToLayer() - myRouter = function(l1, l2, cb) { - var req = $.getJSON(rUrl + [l1.lng, l1.lat, l2.lng, l2.lat].join(',') + '&callback=?'); - req.always(function(data, status) { - if (status === 'success') { - try { - L.GeoJSON.geometryToLayer(JSON.parse(data)).eachLayer(function (layer) { - // 14026 - var d1 = l1.distanceTo(layer._latlngs[0]); - var d2 = l2.distanceTo(layer._latlngs[layer._latlngs.length-1]); - - if (d1 < 10 && d2 < 10) { - return cb(null, layer); - } else { - return cb(new Error('This has been discarded')); - } - }); - } catch(e) { - return cb(new Error('Invalid JSON')); - } - } else { - return cb(new Error('Routing failed')); - } - }); - } - - // Leaflet Routing Module - routing = new L.Routing({ - position: 'topleft' - ,routing: { - router: myRouter - } - ,snapping: { - layers: [snapping] - ,sensitivity: 15 - ,vertexonly: false - } - }); - map.addControl(routing); - routing.draw(true); // enable drawing mode - - $('#eta-export').hide(); - $('#eta-export').on('click', function() { - var id = $('#eta-id').val(); - if (!id) { alert('Ingen tp_id definert!'); return; } - if (confirm('Eksport til ETA vil overskrive eksisterende geometri!')) { - var coords = routing.toGeoJSON().coordinates; - var data = []; - for (var i = 0; i < coords.length; i++) { - data.push(coords[i][0] + ' ' + coords[i][1]); - } - data = 'LINESTRING(' + data.join(',') + ')'; - $.post('http://mintur.ut.no/lib/ajax/post_geom.php?api_key=' + apiKey + '&tp_id=' + id, {coords: data}, function(data) { - if (data.error) { - alert('Eksport feilet med feilkode ' + data.error); - } else if (data.success) { - window.location.href = 'http://mintur.ut.no/index.php?tp_id=' + id + '&tab=kart'; - //alert('Eksport suksess!'); - } - }); - } - }); - - $('#eta-import').on('click', function() { - var id = $('#eta-id').val(); - if (!id) { alert('Ingen tp_id definert!'); return; } - $.get('http://mintur.ut.no/lib/ajax/post_geom.php?api_key=' + apiKey + '&tp_id=' + id, function(data) { - if (data.error) { - alert('Import feilet med feilkode ' + data.error); - } else if (typeof data.coords !== 'undefined') { - $('#eta-import').hide(); - $('#eta-export').show(); - $('#eta-id').attr('readonly', 'readonly'); - - if (data.coords) { - data.coords = data.coords.replace('LINESTRING(', '').replace(')', '').split(','); - for (var i = 0; i < data.coords.length; i++) { - data.coords[i] = new L.LatLng(data.coords[i].split(' ')[1], data.coords[i].split(' ')[0]); - } - inport.clearLayers(); - var p = new L.Polyline(data.coords, {clickable:false, color: '#000000', opacity: 0.4}); - inport.addLayer(p); - map.fitBounds(p.getBounds()); - } - } - }); - }); - - function fetchSsrAc(search, cb) { - var result = []; - $.ajax({ - url: "https://ws.geonorge.no/SKWS3Index/ssr/sok?navn=" + search + "*&epsgKode=4326&antPerSide=10" - ,type: "GET" - ,dataType: 'xml' - ,success: function(xml) { - $(xml).find('sokRes > stedsnavn').each(function(){ - result.push({ - title: $(this).find('stedsnavn').text() - ,lat: $(this).find('aust').text() - ,lng: $(this).find('nord').text() - }); - }); - cb(null, result); - } - }); - } - - $('#ssr-search').typeahead({ - remote: { - url: 'https://ws.geonorge.no/SKWS3Index/ssr/sok?navn=%QUERY*&epsgKode=4326&antPerSide=10', - dataType: 'xml', - filter: function(xml) { - var result = []; - $(xml).find('sokRes > stedsnavn').each(function(){ - result.push({ - value: $(this).find('stedsnavn').text() - ,tokens: [$(this).find('stedsnavn').text()] - ,lat: $(this).find('nord').text() - ,lng: $(this).find('aust').text() - }); - }); - return result; - } - } - }); - - $('#ssr-search').on('typeahead:selected', function(e, object) { - var ll = new L.LatLng(object.lat, object.lng); - map.panTo(ll); - $('#ssr-search').val(''); - }) - - }); -}).call(this); diff --git a/bower_components/leaflet-routing/images/promo.gif b/bower_components/leaflet-routing/images/promo.gif deleted file mode 100644 index e6fc0c4..0000000 Binary files a/bower_components/leaflet-routing/images/promo.gif and /dev/null differ diff --git a/bower_components/leaflet-routing/images/promo.png b/bower_components/leaflet-routing/images/promo.png deleted file mode 100644 index 4dd4548..0000000 Binary files a/bower_components/leaflet-routing/images/promo.png and /dev/null differ diff --git a/bower_components/leaflet-routing/index.html b/bower_components/leaflet-routing/index.html deleted file mode 100644 index 136e383..0000000 --- a/bower_components/leaflet-routing/index.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - Routing in Leaflet - - - - - - - - -
- tp_id: - - -
-
- - - - - - - - - - - - - diff --git a/bower_components/leaflet-routing/src/L.Routing.Draw.js b/bower_components/leaflet-routing/src/L.Routing.Draw.js deleted file mode 100644 index 2d940e8..0000000 --- a/bower_components/leaflet-routing/src/L.Routing.Draw.js +++ /dev/null @@ -1,309 +0,0 @@ -/* - * L.Routing.Draw class - * - * Responsible for drawing and contine drawing - * - * @dependencies L, L.Routing - * - * @usage new L.Routing.Draw(map, options); -*/ - -L.Routing.Draw = L.Handler.extend({ - - // INCLUDES - includes: [L.Mixin.Events] - - // OPTIONS - ,options: {} - - /** - * Draw Constructor - * - * @access public - * - * @param <> parent - parent class instance - * @param options - routing options - * - * @return void - * - * @todo fetch last waypoint - */ - ,initialize: function (parent, options) { - this._parent = parent; - this._map = parent._map; - - this._enabled = false; - - L.Util.setOptions(this, options); - } - - /** - * Enable drawing - * - * @access public - * - * @event map.routing:draw-start - * @event map.routing:draw-new - * @event map.routing:draw-continue - * - * @return void - */ - ,enable: function() { - if (this._enabled) { return; } - - this._enabled = true; - this._hidden = false; - this._dragging = false; - this._addHooks(); - this.fire('enabled'); - - this._map.fire('routing:draw-start'); - if (this._parent._segments._layers.length === 0) { - this._map.fire('routing:draw-new'); - } else { - this._map.fire('routing:draw-continue'); - } - } - - /** - * Disable drawing - * - * @access public - * - * @event map.routing:draw-end - * - * @return void - */ - ,disable: function() { - if (!this._enabled) { return; } - - this._enabled = false; - this._removeHooks(); - this.fire('disabled'); - - this._map.fire('routing:draw-end'); - } - - /** - * Add hooks - * - * @access private - * - * @return void - */ - ,_addHooks: function() { - if (!this._map) { return; } - - // Visible Marker - if (!this._marker) { - this._marker = new L.Marker(this._map.getCenter(), { - icon: (this.options.icons.draw ? this.options.icons.draw : new L.Icon.Default()) - ,opacity: (this.options.icons.draw ? 1.0 : 0.0) - ,zIndexOffset: this.options.zIndexOffset - ,clickable: false - }); - } - - // Trailing line - if (!this._trailer) { - var ll = this._map.getCenter(); - this._trailerOpacity = this.options.styles.trailer.opacity || 0.2; - var style = L.extend({}, this.options.styles.trailer, { - opacity: 0.0 - ,clickable: false - }); - this._trailer = new L.Polyline([ll, ll], style); - } - - this._parent.on('waypoint:mouseover', this._catchWaypointEvent, this); - this._parent.on('waypoint:mouseout' , this._catchWaypointEvent, this); - this._parent.on('waypoint:dragstart', this._catchWaypointEvent, this); - this._parent.on('waypoint:dragend' , this._catchWaypointEvent, this); - - this._parent.on('segment:mouseover' , this._catchWaypointEvent, this); - this._parent.on('segment:mouseout' , this._catchWaypointEvent, this); - this._parent.on('segment:dragstart' , this._catchWaypointEvent, this); - this._parent.on('segment:dragend' , this._catchWaypointEvent, this); - - this._map.on('mousemove', this._onMouseMove, this); - this._map.on('click', this._onMouseClick, this); - - this._marker.addTo(this._map); - this._trailer.addTo(this._map); - } - - /** - * Remove hooks - * - * This method is invoked after the `disable()` has been called and removes - * all the hooks set up using the `_addHooks()` method. - * - * @access private - * - * @return void - */ - ,_removeHooks: function() { - if (!this._map) { return; } - - this._parent.off('waypoint:mouseover', this._catchWaypointEvent, this); - this._parent.off('waypoint:mouseout' , this._catchWaypointEvent, this); - this._parent.off('waypoint:dragstart', this._catchWaypointEvent, this); - this._parent.off('waypoint:dragend' , this._catchWaypointEvent, this); - - this._parent.off('segment:mouseover' , this._catchWaypointEvent, this); - this._parent.off('segment:mouseout' , this._catchWaypointEvent, this); - this._parent.off('segment:dragstart' , this._catchWaypointEvent, this); - this._parent.off('segment:dragend' , this._catchWaypointEvent, this); - - this._map.off('click', this._onMouseClick, this); - this._map.off('mousemove', this._onMouseMove, this); - - this._map.removeLayer(this._marker); - this._map.removeLayer(this._trailer); - - delete this._marker; - delete this._trailer; - } - - /** - * Handle waypoint events - * - * @access private - * - * @param e - waypoint event - * - * @return void - */ - ,_catchWaypointEvent: function(e) { - var type = e.type.split(':')[1]; - - if (this._hidden) { - if (this._dragging) { - if (type === 'dragend') { - this._dragging = false; - } - } else { - if (type === 'mouseout') { - this._show(); - } else if (type === 'dragstart') { - this._dragging = true; - } - } - } else { - if (type === 'mouseover') { - this._hide(); - } - } - } - - /** - * Hide HUD - * - * Call this method in order to quickly hide graphical drawing elements for - * instance hoovering over draggable objects which should tempoarily disable - * dragging. - * - * @access private - * - * @return void - */ - ,_hide: function() { - this._hidden = true; - this._marker.setOpacity(0.0); - this._trailer.setStyle({opacity: 0.0}); - } - - /** - * Show HUD - * - * Call this method to restore graphical drawing elements after they have been - * hidden. - * - * @access private - * - * @return void - */ - ,_show: function() { - this._hidden = false; - this._marker.setOpacity(this.options.icons.draw ? 1.0 : 0.0); - this._showTrailer(); - } - - /** - * Show trailer when hidden - * - * @access private - * - * @return void - */ - ,_showTrailer: function() { - if (this._trailer.options.opacity === 0.0) { - this._trailer.setStyle({opacity: this._trailerOpacity}); - } - } - - /** - * Set trailing guide line - * - */ - ,_setTrailer: function(fromLatLng, toLatLng) { - this._trailer.setLatLngs([fromLatLng, toLatLng]); - this._showTrailer(); - } - - /** - * Mouse move handler - * - * @access private - * - * @param e - mouse move event - * - * @return void - */ - ,_onMouseMove : function(e) { - if (this._hidden) { return; } - - var latlng = e.latlng; - var last = this._parent.getLast(); - - if (this.options.snapping) { - latlng = L.LineUtil.snapToLayers(latlng, null, this.options.snapping); - } - - this._marker.setLatLng(latlng); - - - if (last !== null) { - this._setTrailer(last.getLatLng(), latlng); - }; - } - - /** - * Mouse click handler - * - * @access private - * - * @param e - mouse click event - * - * @event map.routing:new-waypoint - * - * @return void - */ - ,_onMouseClick: function(e) { - if (this._hidden) { return; } - - var marker, latlng, last; - - latlng = e.latlng; - if (this.options.snapping) { - latlng = L.LineUtil.snapToLayers(latlng, null, this.options.snapping); - } - marker = new L.Marker(latlng, {title: this.options.tooltips.waypoint }); - last = this._parent.getLast(); - - this._setTrailer(latlng, latlng); - this._parent.addWaypoint(marker, last, null, function(err, data) { - // console.log(err, data); - }); - } -}); diff --git a/bower_components/leaflet-routing/src/L.Routing.Edit.js b/bower_components/leaflet-routing/src/L.Routing.Edit.js deleted file mode 100644 index 918b226..0000000 --- a/bower_components/leaflet-routing/src/L.Routing.Edit.js +++ /dev/null @@ -1,389 +0,0 @@ -/* - * L.Routing.Edit class - * - * Responsible handle edits - * - * @dependencies L, L.Routing - * - * @usage new L.Routing.Draw(map, options); -*/ - -L.Routing.Edit = L.Handler.extend({ - - // INCLUDES - includes: [L.Mixin.Events] - - // OPTIONS - ,options: {} - - /** - * Edit Constructor - * - * @access public - * - * @param <> parent - parent class instance - * @param options - routing options - * - * @return void - * - * @todo fetch last waypoint - */ - ,initialize: function (parent, options) { - this._parent = parent; - this._map = parent._map; - - this._enabled = false; - - L.Util.setOptions(this, options); - } - - /** - * Enable drawing - * - * @access public - * - * @event map.routing:edit-start - * - * @return void - */ - ,enable: function() { - if (this._enabled) { return; } - - this._enabled = true; - this._addHooks(); - this.fire('enabled'); - - this._map.fire('routing:edit-start'); - } - - /** - * Disable drawing - * - * @access public - * - * @event map.draw:edit-end - * - * @return void - */ - ,disable: function() { - if (!this._enabled) { return; } - - this._enabled = false; - this._removeHooks(); - this.fire('disabled'); - - this._map.fire('routing:edit-end'); - } - - /** - * Add hooks - * - * This method is invoked when `enable()` is called – and sets up all - * necessary hooks such as: - * * text selection - * * key listeners - * * mouse marker - * - * @access private - * - * @return void - * - * @todo hide and style the trailer! - */ - ,_addHooks: function() { - if (!this._map) { return; } - - if (!this._mouseMarker) { - this._mouseMarker = new L.Marker(this._map.getCenter(), { - icon: L.divIcon({ - className: 'line-mouse-marker' - ,iconAnchor: [5, 5] - ,iconSize: [10, 10] - }) - ,clickable: true - ,draggable: true - ,opacity: 0 - ,zIndexOffset: this.options.zIndexOffset - ,title: this.options.tooltips.segment - }); - } - this._mouseMarker.addTo(this._map); - - if (!this._trailer1) { - var ll = this._map.getCenter(); - this._trailerOpacity = this.options.styles.trailer.opacity || 0.2; - var style = L.extend({}, this.options.styles.trailer, {opacity: 0.0,clickable: false}); - this._trailer1 = new L.Polyline([ll, ll], style); - this._trailer2 = new L.Polyline([ll, ll], style); - } - this._trailer1.addTo(this._map); - this._trailer2.addTo(this._map); - - this._parent.on('segment:mouseover' , this._segmentOnMouseover, this); - - this._mouseMarker.on('dragstart' , this._segmentOnDragstart, this); - this._mouseMarker.on('drag' , this._segmentOnDrag, this); - this._mouseMarker.on('dragend' , this._segmentOnDragend, this); - - this._parent.on('waypoint:dragstart', this._waypointOnDragstart, this); - this._parent.on('waypoint:drag' , this._waypointOnDrag, this); - this._parent.on('waypoint:dragend' , this._waypointOnDragend, this); - } - - /** - * Remove hooks - * - * This method is invoked after the `disable()` has been called and removes - * all the hooks set up using the `_addHooks()` method. - * - * @access private - * - * @return void - */ - ,_removeHooks: function() { - if (!this._map) { return; } - - // this._trailer1.addTo(this._map); - // this._trailer2.addTo(this._map); - - this._parent.off('segment:mouseover' , this._segmentOnMouseover, this); - - this._mouseMarker.off('dragstart' , this._segmentOnDragstart, this); - this._mouseMarker.off('drag' , this._segmentOnDrag, this); - this._mouseMarker.off('dragend' , this._segmentOnDragend, this); - - this._parent.off('waypoint:dragstart', this._waypointOnDragstart, this); - this._parent.off('waypoint:drag' , this._waypointOnDrag, this); - this._parent.off('waypoint:dragend' , this._waypointOnDragend, this); - } - - /** - * Fired when the mouse first enters a segment - * - * @access private - * - * @param e - mouse over event - * - * @return void - */ - ,_segmentOnMouseover: function(e) { - this._mouseMarker.setOpacity(1.0); - this._map.on('mousemove', this._segmentOnMousemove, this); - } - - /** - * Fired when the mouse leaves a segement - * - * @access private - * - * @param e - mouse move event - * - * @return void - */ - ,_segmentOnMouseout: function(e) { - if (this._dragging) { return; } - - this._mouseMarker.setOpacity(0.0); - this._map.off('mousemove', this._segmentOnMousemove, this); - - this.fire('segment:mouseout'); - } - - /** - * Fired when the mouse is moved - * - * This method is fired continously when mouse is moved in edition mode. - * - * @access private - * - * @param e - mouse move event - * - * @return void - */ - ,_segmentOnMousemove: function(e) { - if (this._dragging) { return; } - - var latlng = L.LineUtil.snapToLayers(e.latlng, null, { - layers: [this._parent._segments] - ,sensitivity: 40 - ,vertexonly: false - }); - - if (latlng._feature === null) { - this._segmentOnMouseout(e); - } else { - this._mouseMarker._snapping = latlng._feature._routing; - this._mouseMarker.setLatLng(latlng); - } - } - - /** - * Mouse marker dragstart - * - * @access private - * - * @param e - mouse dragstart event - * - * @return void - */ - ,_segmentOnDragstart: function(e) { - var latlng = e.target.getLatLng(); - var next = e.target._snapping.nextMarker; - var prev = e.target._snapping.prevMarker; - - this._setTrailers(latlng, next, prev, true); - - this._dragging = true; - this.fire('segment:dragstart'); - } - - /** - * Fired when a marker is dragged - * - * This method is fired continously when dragging a marker and snapps the - * marker to the snapping layer. - * - * @access private - * - * @param e - mouse drag event - * - * @return void - */ - ,_segmentOnDrag: function(e) { - var latlng = e.target.getLatLng(); - var next = e.target._snapping.nextMarker; - var prev = e.target._snapping.prevMarker; - - if (this.options.snapping) { - latlng = L.LineUtil.snapToLayers(latlng, null, this.options.snapping); - } - - e.target.setLatLng(latlng); - this._setTrailers(latlng, next, prev); - } - - /** - * Mouse marker dragend - * - * @access private - * - * @param e - mouse dragend event - * - * @return void - */ - ,_segmentOnDragend: function(e) { - var next = this._mouseMarker._snapping.nextMarker; - var prev = this._mouseMarker._snapping.prevMarker; - var latlng = this._mouseMarker.getLatLng(); - - this._parent.addWaypoint(latlng, prev, next, function(err, data) { - //console.log(err, data); - }); - - this._dragging = false; - this._setTrailers(null, null, null, false); - this.fire('segment:dragend'); - } - - /** - * Fired when marker drag start - * - * @access private - * - * @param e - mouse dragend event - * - * @return void - */ - ,_waypointOnDragstart: function(e) { - var next = e.marker._routing.nextMarker; - var prev = e.marker._routing.prevMarker; - - this._setTrailers(e.marker.getLatLng(), next, prev, true); - } - - /** - * Fired while dragging marker - * - * @access private - * - * @access private - * - * @param e - mouse drag event - * - * @return void - */ - ,_waypointOnDrag: function(e) { - var latlng = e.marker._latlng; - var next = e.marker._routing.nextMarker; - var prev = e.marker._routing.prevMarker; - - if (this.options.snapping) { - latlng = L.LineUtil.snapToLayers(latlng, null, this.options.snapping); - } - - e.marker.setLatLng(latlng); - this._setTrailers(latlng, next, prev); - } - - /** - * Fired when marker drag ends - * - * @access private - * - * @param e - mouse dragend event - * - * @return void - */ - ,_waypointOnDragend: function(e) { - this._setTrailers(null, null, null, false); - this._parent.routeWaypoint(e.marker, function(err, data) { - //console.log('_waypointOnDragend.cb', err, data); - }); - } - - /** - * Fired when marker is clicked - * - * This method is fired when a marker is clicked by the user. It will then - * procede to remove the marker and reroute any connected line segments. - * - * @access private - * - * @param e - mouse click event - * - * @return void - */ - ,_waypointOnClick: function(e) { - this._parent.removeWaypoint(e.layer, function(err, data) { - //console.log('_waypointOnDragend.cb', err, data); - }); - } - - /** - * Set trailing guide lines - * - */ - ,_setTrailers: function(latlng, next, prev, show) { - if (typeof show !== 'undefined') { - if (show === false) { - this._trailer1.setStyle({opacity: 0.0}); - this._trailer2.setStyle({opacity: 0.0}); - return; - } else { - if (next !== null) { - this._trailer1.setStyle({opacity: this._trailerOpacity}); - } - if (prev !== null) { - this._trailer2.setStyle({opacity: this._trailerOpacity}); - } - } - } - if (next) { - this._trailer1.setLatLngs([latlng, next.getLatLng()]); - } - if (prev) { - this._trailer2.setLatLngs([latlng, prev.getLatLng()]); - } - } -}); - diff --git a/bower_components/leaflet-routing/src/L.Routing.Storage.js b/bower_components/leaflet-routing/src/L.Routing.Storage.js deleted file mode 100644 index 989a9c4..0000000 --- a/bower_components/leaflet-routing/src/L.Routing.Storage.js +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Leaflet Routing Storage - * - * Storing routable objects - * - * @dependencies L, L.Routing - * - * @usage new L.Routing(options); -*/ - -(function () { - L.Routing.Storage = L.MultiPolyline.extend({ - /** - * Class constructor - */ - initialize: function (latlngs, options) { - this._layers = {}; - this._options = options; - this.setLatLngs(latlngs); - - this.on('layeradd', function() { - console.log('layeradd', arguments); - }, this); - } - }); - - L.Routing.storage = function (latlngs, options) { - return new L.MultiPolyline(latlngs, options); - }; - -}()); diff --git a/bower_components/leaflet-routing/src/L.Routing.js b/bower_components/leaflet-routing/src/L.Routing.js deleted file mode 100644 index f49948f..0000000 --- a/bower_components/leaflet-routing/src/L.Routing.js +++ /dev/null @@ -1,723 +0,0 @@ -/* - * L.Routing main class - * - * Main clase for the Leaflet routing module - * - * @dependencies L - * - * @usage new L.Routing(options); - * - * @todo use L.Class.extend instead? -*/ - -L.Routing = L.Control.extend({ - - // INCLUDES - includes: [L.Mixin.Events] - - // CONSTANTS - ,statics: { - VERSION: '0.1.1-dev' - } - - // OPTIONS - ,options: { - position: 'topleft' - ,tooltips: { - waypoint: 'Waypoint. Drag to move; Click to remove.', - segment: 'Drag to create a new waypoint' - } - ,icons: { - start: new L.Icon.Default() - ,end: new L.Icon.Default() - ,normal: new L.Icon.Default() - ,draw: new L.Icon.Default() - } - ,styles: { - trailer: {} - ,track: {} - ,nodata: {} - } - ,zIndexOffset: 2000 - ,routing: { - router: null // function ( l1, l2, cb) - } - ,snapping: { - layers: [] // layers to snap to - ,sensitivity: 10 // snapping sensitivity - ,vertexonly: false // vertex only snapping - } - ,shortcut: { - draw: { - enable: 68, // char code for 'd' - disable: 81 // char code for 'q' - } - } - } - - /** - * Routing Constructor - * - * @access public - * - * @param options - non-default options - * - * @todo render display of segments and waypoints - */ - ,initialize: function (options) { - this._editing = false; - this._drawing = false; - - L.Util.setOptions(this, options); - } - - /** - * Called when controller is added to map - * - * @access public - * - * @param map - map instance - * - * @return container - */ - ,onAdd: function (map) { - this._map = map; - this._container = this._map._container; - this._overlayPane = this._map._panes.overlayPane; - this._popupPane = this._map._panes.popupPane; - - this._router = this.options.routing.router; - this._segments = new L.FeatureGroup().addTo(map); - this._waypoints = new L.FeatureGroup().addTo(map); - this._waypoints._first = null; - this._waypoints._last = null; - - //L.DomUtil.disableTextSelection(); - //this._tooltip = new L.Tooltip(this._map); - //this._tooltip.updateContent({ text: L.drawLocal.draw.marker.tooltip.start }); - - if (this.options.shortcut) { - L.DomEvent.addListener(this._container, 'keyup', this._keyupListener, this); - } - - this._draw = new L.Routing.Draw(this, this.options); - this._edit = new L.Routing.Edit(this, this.options); - this._edit.enable(); - - this.on('waypoint:click', this._waypointClickHandler, this) - this._segments.on('mouseover' , this._fireSegmentEvent, this); - this._edit.on('segment:mouseout' , this._fireSegmentEvent, this); - this._edit.on('segment:dragstart', this._fireSegmentEvent, this); - this._edit.on('segment:dragend' , this._fireSegmentEvent, this); - - var container = L.DomUtil.create('div', 'leaflet-routing'); - - return container; - } - - /** - * Called when controller is removed from map - * - * @access public - * - * @param map - map instance - */ - ,onRemove: function(map) { - //L.DomUtil.create('div', 'leaflet-routing'); <= delete this - - this.off('waypoint:click', this._waypointClickHandler, this) - this._segments.off('mouseover' , this._fireSegmentEvent, this); - this._edit.off('segment:mouseout' , this._fireSegmentEvent, this); - this._edit.off('segment:dragstart', this._fireSegmentEvent, this); - this._edit.off('segment:dragend' , this._fireSegmentEvent, this); - - this._edit.disable(); - this._draw.disable(); - - L.DomUtil.enableTextSelection(); - // this._tooltip.dispose(); - // this._tooltip = null; - L.DomEvent.removeListener(this._container, 'keyup', this._keyupListener); - - delete this._draw; - delete this._edit; - delete this._map; - delete this._router; - delete this._segments; - delete this._waypoints; - delete this.options; - } - - /** - * Called whenever a waypoint is clicked - * - * @access private - * - * @param e - click event - */ - ,_waypointClickHandler: function(e) { - this.removeWaypoint(e.marker, function() { - // console.log(arguments); - }); - } - - /** - * Add new waypoint to path - * - * @access public - * - * @param marker - new waypoint marker (can be ll) - * @param prev - previous waypoint marker - * @param next - next waypoint marker - * @param cb - callback method (err, marker) - * - * @return void - */ - ,addWaypoint: function(marker, prev, next, cb) { - if (marker instanceof L.LatLng) { - marker = new L.Marker(marker, { title: this.options.tooltips.waypoint }); - } - - marker._routing = { - prevMarker : prev - ,nextMarker : next - ,prevLine : null - ,nextLine : null - ,timeoutID : null - }; - - if (this._waypoints._first === null && this._waypoints._last === null) { - this._waypoints._first = marker; - this._waypoints._last = marker; - } else if (next === null) { - this._waypoints._last = marker; - } else if (prev === null) { - this._waypoints._first = marker; - } - - if (marker._routing.prevMarker !== null) { - marker._routing.prevMarker._routing.nextMarker = marker; - marker._routing.prevLine = marker._routing.prevMarker._routing.nextLine; - if (marker._routing.prevLine !== null) { - marker._routing.prevLine._routing.nextMarker = marker; - } - } - - if (marker._routing.nextMarker !== null) { - marker._routing.nextMarker._routing.prevMarker = marker; - marker.nextLine = marker._routing.nextMarker._routing.prevLine; - if (marker._routing.nextLine !== null) { - marker._routing.nextLine._routing.prevMarker = marker; - } - } - - marker.on('mouseover', this._fireWaypointEvent, this); - marker.on('mouseout' , this._fireWaypointEvent, this); - marker.on('dragstart', this._fireWaypointEvent, this); - marker.on('dragend' , this._fireWaypointEvent, this); - marker.on('drag' , this._fireWaypointEvent, this); - marker.on('click' , this._fireWaypointEvent, this); - - this.routeWaypoint(marker, cb); - this._waypoints.addLayer(marker); - marker.dragging.enable(); - } - - /** - * Remove a waypoint from path - * - * @access public - * - * @param marker - new waypoint marker (can be ll) - * @param cb - callback method - * - * @return void - */ - ,removeWaypoint: function(marker, cb) { - marker.off('mouseover', this._fireWaypointEvent, this); - marker.off('mouseout' , this._fireWaypointEvent, this); - marker.off('dragstart', this._fireWaypointEvent, this); - marker.off('dragend' , this._fireWaypointEvent, this); - marker.off('drag' , this._fireWaypointEvent, this); - marker.off('click' , this._fireWaypointEvent, this); - - var prev = marker._routing.prevMarker; - var next = marker._routing.nextMarker; - - if (this._waypoints._first && marker._leaflet_id === this._waypoints._first._leaflet_id) { - this._waypoints._first = next; - } - - if (this._waypoints._last && marker._leaflet_id === this._waypoints._last._leaflet_id) { - this._waypoints._last = prev; - } - - if (prev !== null) { - prev._routing.nextMarker = next; - prev._routing.nextLine = null; - } - - if (next !== null) { - next._routing.prevMarker = prev; - next._routing.prevLine = null; - } - - if (marker._routing.nextLine !== null) { - this._segments.removeLayer(marker._routing.nextLine); - } - - if (marker._routing.prevLine !== null) { - this._segments.removeLayer(marker._routing.prevLine); - } - - this._waypoints.removeLayer(marker); - - if (prev !== null) { - this.routeWaypoint(prev, cb); - } else if (next !== null) { - this.routeWaypoint(next, cb); - } else { - this._draw.enable(); - cb(null, null); - } - - } - - /** - * Route with respect to waypoint - * - * @access public - * - * @param marker - marker to route on - * @param cb - callback function - * - * @return void - * - * @todo add propper error checking for callback - */ - ,routeWaypoint: function(marker, cb) { - var i = 0; - var firstErr; - var $this = this; - var callback = function(err, data) { - i++; - firstErr = firstErr || err; - if (i === 2) { - $this.fire('routing:routeWaypointEnd', { err: firstErr }); - cb(firstErr, marker); - } - } - - this.fire('routing:routeWaypointStart'); - - this._routeSegment(marker._routing.prevMarker, marker, callback); - this._routeSegment(marker, marker._routing.nextMarker, callback); - } - - /** - * Recalculate the complete route by routing each segment - * - * @access public - * - * @param cb - callback function - * - * @return void - * - * @todo add propper error checking for callback - */ - ,rerouteAllSegments: function(cb) { - var numSegments = this.getWaypoints().length - 1; - var callbackCount = 0; - var firstErr; - var $this = this; - - var callback = function(err, data) { - callbackCount++; - firstErr = firstErr || err; - if (callbackCount >= numSegments) { - $this.fire('routing:rerouteAllSegmentsEnd', { err: firstErr }); - if (cb) { - cb(firstErr); - } - } - }; - - $this.fire('routing:rerouteAllSegmentsStart'); - - if (numSegments < 1) { - return callback(null, true); - } - - this._eachSegment(function(m1, m2) { - this._routeSegment(m1, m2, callback); - }); - } - - /** - * Route segment between two markers - * - * @access private - * - * @param m1 - first waypoint marker - * @param m2 - second waypoint marker - * @param cb - callback function ( err, data) - * - * @return void - * - * @todo logic if router fails - */ - ,_routeSegment: function(m1, m2, cb) { - var $this = this; - - if (m1 === null || m2 === null) { - return cb(null, true); - } - - this._router(m1.getLatLng(), m2.getLatLng(), function(err, layer) { - if (typeof layer === 'undefined') { - var layer = new L.Polyline([m1.getLatLng(), m2.getLatLng()], $this.options.styles.nodata); - } else { - layer.setStyle($this.options.styles.track); - } - - layer._routing = { - prevMarker: m1 - ,nextMarker: m2 - }; - - if (m1._routing.nextLine !== null) { - $this._segments.removeLayer(m1._routing.nextLine); - } - $this._segments.addLayer(layer); - - m1._routing.nextLine = layer; - m2._routing.prevLine = layer; - - return cb(err, layer); - }); - } - - /** - * Iterate over all segments and execute callback for each segment - * - * @access private - * - * @param callback - function to call for each segment - * @param context - callback execution context (this). Optional, default: this - * - * @return void - */ - ,_eachSegment: function(callback, context) { - var thisArg = context || this; - var marker = this.getFirst(); - - if (marker === null) { return; } - - while (marker._routing.nextMarker !== null) { - var m1 = marker; - var m2 = marker._routing.nextMarker; - var line = marker._routing.nextLine; - - callback.call(thisArg, m1, m2, line); - - marker = marker._routing.nextMarker; - } - } - - /** - * Fire events - * - * @access private - * - * @param e - mouse event - * - * @return void - */ - ,_fireWaypointEvent: function(e) { - this.fire('waypoint:' + e.type, {marker:e.target}); - } - - /** - * - */ - ,_fireSegmentEvent: function(e) { - if (e.type.split(':').length === 2) { - this.fire(e.type); - } else { - this.fire('segment:' + e.type); - } - } - - /** - * Get first waypoint - * - * @access public - * - * @return L.Marker - */ - ,getFirst: function() { - return this._waypoints._first; - } - - /** - * Get last waypoint - * - * @access public - * - * @return L.Marker - */ - ,getLast: function() { - return this._waypoints._last; - } - - /** - * Get all waypoints - * - * @access public - * - * @return all waypoints or empty array if none - */ - ,getWaypoints: function() { - var latLngs = []; - - this._eachSegment(function(m1) { - latLngs.push(m1.getLatLng()); - }); - - if (this.getLast()) { - latLngs.push(this.getLast().getLatLng()); - } - - return latLngs; - } - - /** - * Concatenates all route segments to a single polyline - * - * @access public - * - * @return polyline, with empty _latlngs when no route segments - */ - ,toPolyline: function() { - var latLngs = []; - - this._eachSegment(function(m1, m2, line) { - latLngs = latLngs.concat(line.getLatLngs()); - }); - - return L.polyline(latLngs); - } - - /** - * Export route to GeoJSON - * - * @access public - * - * @param enforce2d - enforce 2DGeoJSON - * - * @return GeoJSON object - * - */ - ,toGeoJSON: function(enforce2d) { - var geojson = {type: "LineString", properties: {waypoints: []}, coordinates: []}; - var current = this._waypoints._first; - - if (current === null) { return geojson; } - - // First waypoint marker - geojson.properties.waypoints.push({ - coordinates: [current.getLatLng().lng, current.getLatLng().lat], - _index: 0 - }); - - while (current._routing.nextMarker) { - var next = current._routing.nextMarker; - - // Line segment - var tmp = current._routing.nextLine.getLatLngs(); - for (var i = 0; i < tmp.length; i++) { - if (tmp[i].alt && (typeof enforce2d === 'undefined' || enforce2d === false)) { - geojson.coordinates.push([tmp[i].lng, tmp[i].lat, tmp[i].alt]); - } else { - geojson.coordinates.push([tmp[i].lng, tmp[i].lat]); - } - } - - // Waypoint marker - geojson.properties.waypoints.push({ - coordinates: [next.getLatLng().lng, next.getLatLng().lat], - _index: geojson.coordinates.length-1 - }); - - // Next waypoint marker - current = current._routing.nextMarker; - } - - return geojson - } - - /** - * Import route from GeoJSON - * - * @access public - * - * @param geojson - GeoJSON object with waypoints - * @param opts - parsing options - * @param cb - callback method (err) - * - * @return undefined - * - */ - ,loadGeoJSON: function(geojson, opts, cb) { - var $this, oldRouter, index, waypoints; - - $this = this; - - // Check for optional options parameter - if (typeof opts === 'function' || typeof opts === 'undefined') { - cb = opts; - opts = {} - } - - // Set default options - opts.waypointDistance = opts.waypointDistance || 50; - opts.fitBounds = opts.fitBounds || true; - - // Check for waypoints before processing geojson - if (!geojson.properties || !geojson.properties.waypoints) { - if (!geojson.properties) { geojson.properties = {} }; - geojson.properties.waypoints = []; - - for (var i = 0; i < geojson.coordinates.length; i = i + opts.waypointDistance) { - geojson.properties.waypoints.push({ - _index: i, - coordinates: geojson.coordinates[i].slice(0, 2) - }); - } - - if (i > geojson.coordinates.length-1) { - geojson.properties.waypoints.push({ - _index: geojson.coordinates.length-1, - coordinates: geojson.coordinates[geojson.coordinates.length-1].slice(0, 2) - }); - } - } - - index = 0; - oldRouter = $this._router; - waypoints = geojson.properties.waypoints; - - // This is a fake router. - // - // It is currently not possible to add a waypoint with a known line segment - // manually. We are hijacking the router so that we can intercept the - // request and return the correct linesegment. - // - // It you want to fix this; please make a patch and submit a pull request on - // GitHub. - $this._router = function(m1, m2, cb) { var start = - waypoints[index-1]._index; var end = waypoints[index]._index+1; - - return cb(null, L.GeoJSON.geometryToLayer({ - type: 'LineString', - coordinates: geojson.coordinates.slice(start, end) - })); - }; - - // Clean up - end = function() { - $this._router = oldRouter; // Restore router - // Set map bounds based on loaded geometry - setTimeout(function() { - if (opts.fitBounds) { - $this._map.fitBounds(L.polyline(L.GeoJSON.coordsToLatLngs(geojson.coordinates)).getBounds()); - } - - if (typeof cb === 'function') { cb(null); } - }, 0); - } - - // Add waypoints - add = function() { - if (!waypoints[index]) { return end() } - - var coords = waypoints[index].coordinates; - var prev = $this._waypoints._last; - - $this.addWaypoint(L.latLng(coords[1], coords[0]), prev, null, function(err, m) { - add(++index); - }); - } - - add(); - } - - /** - * Start (or continue) drawing - * - * Call this method in order to start or continue drawing. The drawing handler - * will be activate and the user can draw on the map. - * - * @access public - * - * @return void - * - * @todo check enable - */ - ,draw: function (enable) { - if (typeof enable === 'undefined') { - var enable = true; - } - - if (enable) { - this._draw.enable(); - } else { - this._draw.disable(); - } - } - - /** - * Enable or disable routing - * - * @access public - * - * @return void - * - * @todo check enable - */ - ,routing: function (enable) { - throw new Error('Not implemented'); - } - - /** - * Enable or disable snapping - * - * @access public - * - * @return void - * - * @todo check enable - */ - ,snapping: function (enable) { - throw new Error('Not implemented'); - } - - /** - * Key up listener - * - * * `ESC` to cancel drawing - * * `M` to enable drawing - * - * @access private - * - * @return void - */ - ,_keyupListener: function (e) { - if (e.keyCode === this.options.shortcut.draw.disable) { - this._draw.disable(); - } else if (e.keyCode === this.options.shortcut.draw.enable) { - this._draw.enable(); - } - } - -}); diff --git a/bower_components/leaflet-routing/src/utils/LineUtil.Snapping.js b/bower_components/leaflet-routing/src/utils/LineUtil.Snapping.js deleted file mode 100644 index b621a45..0000000 --- a/bower_components/leaflet-routing/src/utils/LineUtil.Snapping.js +++ /dev/null @@ -1,191 +0,0 @@ -L.Util.extend(L.LineUtil, { - - /** - * Snap to all layers - * - * @param latlng - original position - * @param id - leaflet unique id - * @param opts - snapping options - * - * @return closest point - */ - snapToLayers: function (latlng, id, opts) { - var i, j, keys, feature, res, sensitivity, vertexonly, layers, minDist, minPoint, map; - - sensitivity = opts.sensitivity || 10; - vertexonly = opts.vertexonly || false; - layers = opts.layers || []; - minDist = Infinity; - minPoint = latlng; - minPoint._feature = null; // containing layer - - if (!opts || !opts.layers || !opts.layers.length) { - return minPoint; - } - - map = opts.layers[0]._map; // @todo check for undef - - for (i = 0; i < opts.layers.length; i++) { - keys = Object.keys(opts.layers[i]._layers); - for (j = 0; j < keys.length; j++) { - feature = opts.layers[i]._layers[keys[j]]; - - // Don't even try snapping to itself! - if (id === feature._leaflet_id) { continue; } - - // GeometryCollection - if (feature._layers) { - var newLatlng = this.snapToLayers(latlng, id, { - 'sensitivity': sensitivity, - 'vertexonly': vertexonly, - 'layers': [feature] - }); - // What if this is the same? - res = {'minDist': latlng.distanceTo(newLatlng), 'minPoint': newLatlng}; - - // Marker - } else if (feature instanceof L.Marker) { - res = this._snapToLatlngs(latlng, [feature.getLatLng()], map, sensitivity, vertexonly, minDist); - - // Polyline - } else if (feature instanceof L.Polyline) { - res = this._snapToLatlngs(latlng, feature.getLatLngs(), map, sensitivity, vertexonly, minDist); - - // MultiPolyline - } else if (feature instanceof L.MultiPolyline) { - console.error('Snapping to MultiPolyline is currently unsupported', feature); - res = {'minDist': minDist, 'minPoint': minPoint}; - - // Polygon - } else if (feature instanceof L.Polygon) { - res = this._snapToPolygon(latlng, feature, map, sensitivity, vertexonly, minDist); - - // MultiPolygon - } else if (feature instanceof L.MultiPolygon) { - res = this._snapToMultiPolygon(latlng, feature, map, sensitivity, vertexonly, minDist); - - // Unknown - } else { - console.error('Unsupported snapping feature', feature); - res = {'minDist': minDist, 'minPoint': minPoint}; - } - - if (res.minDist < minDist) { - minDist = res.minDist; - minPoint = res.minPoint; - minPoint._feature = feature; - } - - } - } - - return minPoint; - }, - - /** - * Snap to Polygon - * - * @param latlng - original position - * @param feature - - * @param map - - * @param sensitivity - - * @param vertexonly - - * @param minDist - - * - * @return minDist and minPoint - */ - _snapToPolygon: function (latlng, polygon, map, sensitivity, vertexonly, minDist) { - var res, keys, latlngs, i, minPoint; - - minPoint = null; - - latlngs = polygon.getLatLngs(); - latlngs.push(latlngs[0]); - res = this._snapToLatlngs(latlng, polygon.getLatLngs(), map, sensitivity, vertexonly, minDist); - if (res.minDist < minDist) { - minDist = res.minDist; - minPoint = res.minPoint; - } - - keys = Object.keys(polygon._holes); - for (i = 0; i < keys.length; i++) { - latlngs = polygon._holes[keys[i]]; - latlngs.push(latlngs[0]); - res = this._snapToLatlngs(latlng, polygon._holes[keys[i]], map, sensitivity, vertexonly, minDist); - if (res.minDist < minDist) { - minDist = res.minDist; - minPoint = res.minPoint; - } - } - - return {'minDist': minDist, 'minPoint': minPoint}; - }, - - /** - * Snap to MultiPolygon - * - * @param latlng - original position - * @param feature - - * @param map - - * @param sensitivity - - * @param vertexonly - - * @param minDist - - * - * @return minDist and minPoint - */ - _snapToMultiPolygon: function (latlng, multipolygon, map, sensitivity, vertexonly, minDist) { - var i, keys, res, minPoint; - - minPoint = null; - - keys = Object.keys(multipolygon._layers); - for (i = 0; i < keys.length; i++) { - res = this._snapToPolygon(latlng, multipolygon._layers[keys[i]], map, sensitivity, vertexonly, minDist); - - if (res.minDist < minDist) { - minDist = res.minDist; - minPoint = res.minPoint; - } - } - - return {'minDist': minDist, 'minPoint': minPoint}; - }, - - - /** - * Snap to of - * - * @param latlng - cursor click - * @param latlngs - array of to snap to - * @param opts - snapping options - * @param isPolygon - if feature is a polygon - * - * @return minDist and minPoint - */ - _snapToLatlngs: function (latlng, latlngs, map, sensitivity, vertexonly, minDist) { - var i, tmpDist, minPoint, p, p1, p2, d2; - - p = map.latLngToLayerPoint(latlng); - p1 = minPoint = null; - - for (i = 0; i < latlngs.length; i++) { - p2 = map.latLngToLayerPoint(latlngs[i]); - - if (!vertexonly && p1 !== null) { - tmpDist = L.LineUtil.pointToSegmentDistance(p, p1, p2); - if (tmpDist < minDist && tmpDist <= sensitivity) { - minDist = tmpDist; - minPoint = map.layerPointToLatLng(L.LineUtil.closestPointOnSegment(p, p1, p2)); - } - } else if ((d2 = p.distanceTo(p2)) && d2 <= sensitivity && d2 < minDist) { - minDist = d2; - minPoint = latlngs[i]; - } - - p1 = p2; - } - - return {'minDist': minDist, 'minPoint': minPoint}; - } - -}); diff --git a/bower_components/leaflet-routing/src/utils/Marker.Snapping.js b/bower_components/leaflet-routing/src/utils/Marker.Snapping.js deleted file mode 100644 index 0a88a49..0000000 --- a/bower_components/leaflet-routing/src/utils/Marker.Snapping.js +++ /dev/null @@ -1,12 +0,0 @@ -L.Marker.include({ - /** - * Snap to function - * - * @param latlng - original position - * - * @return - new position - */ - snapTo: function (latlng) { - return L.LineUtil.snapToLayers(latlng, this._leaflet_id, this.options.snapping); - } -}); \ No newline at end of file diff --git a/bower_components/leaflet-routing/src/utils/Polyline.Snapping.js b/bower_components/leaflet-routing/src/utils/Polyline.Snapping.js deleted file mode 100644 index 4b78839..0000000 --- a/bower_components/leaflet-routing/src/utils/Polyline.Snapping.js +++ /dev/null @@ -1,12 +0,0 @@ -L.Polyline.include({ - /** - * Snap to function - * - * @param latlng - original position - * - * @return - new position - */ - snapTo: function (latlng) { - return L.LineUtil.snapToLayers(latlng, this._leaflet_id, this.options.snapping); - } -}); \ No newline at end of file diff --git a/bower_components/leaflet-search/.bower.json b/bower_components/leaflet-search/.bower.json deleted file mode 100644 index e8d9d5b..0000000 --- a/bower_components/leaflet-search/.bower.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "leaflet-search", - "version": "1.5.1", - "main": "leaflet-search.js", - "ignore": [ - "**/.*", - "node_modules", - "components", - "bower_components", - "examples" - ], - "homepage": "https://github.com/stefanocudini/leaflet-search", - "_release": "1.5.1", - "_resolution": { - "type": "version", - "tag": "v1.5.1", - "commit": "75ab103b838a966692cfb6cb3dc78c3b0f306eee" - }, - "_source": "git://github.com/stefanocudini/leaflet-search.git", - "_target": "*", - "_originalSource": "leaflet-search" -} \ No newline at end of file diff --git a/bower_components/leaflet-search/BUGS b/bower_components/leaflet-search/BUGS deleted file mode 100644 index b973543..0000000 --- a/bower_components/leaflet-search/BUGS +++ /dev/null @@ -1,12 +0,0 @@ -. option condition problem {autoCollapse: true, markerLocation: true} not show location, row 61 - -. option condition problem {autoCollapse:false }, row 62 - -. problem with jsonp/ajax when remote filter has different behavior of this._filterRecords, row 322 - -. _handleAutoresize Should resize max search box size when map is resized., row 616 - -. if collapse in _handleSubmit hide _markerLoc!, row 684 - -. autoCollapse option hide this._markerLoc before that visualized!!, row 714 - diff --git a/bower_components/leaflet-search/Gruntfile.js b/bower_components/leaflet-search/Gruntfile.js deleted file mode 100755 index 7c5b220..0000000 --- a/bower_components/leaflet-search/Gruntfile.js +++ /dev/null @@ -1,115 +0,0 @@ -'use strict'; - -module.exports = function(grunt) { - -grunt.loadNpmTasks('grunt-contrib-uglify'); -grunt.loadNpmTasks('grunt-contrib-concat'); -grunt.loadNpmTasks('grunt-contrib-clean'); -grunt.loadNpmTasks('grunt-contrib-cssmin'); -grunt.loadNpmTasks('grunt-contrib-jshint'); -grunt.loadNpmTasks('grunt-contrib-watch'); -grunt.loadNpmTasks('grunt-todos'); - -grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - meta: { - banner: - '/* \n'+ - ' * Leaflet Search Control v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %> \n'+ - ' * \n'+ - ' * Copyright 2014 <%= pkg.author.name %> \n'+ - ' * <%= pkg.author.email %> \n'+ - ' * <%= pkg.author.url %> \n'+ - ' * \n'+ - ' * Licensed under the <%= pkg.license %> license. \n'+ - ' * \n'+ - ' * Demo: \n'+ - ' * <%= pkg.homepage %> \n'+ - ' * \n'+ - ' * Source: \n'+ - ' * <%= pkg.repository.url %> \n'+ - ' * \n'+ - ' */\n' - }, - clean: { - dist: { - src: ['dist/*'] - } - }, - jshint: { - options: { - globals: { - console: true, - module: true - }, - "-W099": true, //ignora tabs e space warning - "-W033": true, - "-W044": true //ignore regexp - }, - files: ['src/*.js'] - }, - concat: { - //TODO cut out SearchMarker - options: { - banner: '<%= meta.banner %>' - }, - dist: { - files: { - 'dist/leaflet-search.src.js': ['src/leaflet-search.js'], - 'dist/leaflet-search.src.css': ['src/leaflet-search.css'], - 'dist/leaflet-search.mobile.src.css': ['src/leaflet-search.mobile.css'] - } - } - }, - uglify: { - options: { - banner: '<%= meta.banner %>' - }, - dist: { - files: { - 'dist/leaflet-search.min.js': ['dist/leaflet-search.src.js'] - } - } - }, - cssmin: { - combine: { - files: { - 'dist/leaflet-search.min.css': ['src/leaflet-search.css'], - 'dist/leaflet-search.mobile.min.css': ['src/leaflet-search.mobile.css'] - } - }, - options: { - banner: '<%= meta.banner %>' - }, - minify: { - expand: true, - cwd: 'dist/', - files: { - 'dist/leaflet-search.min.css': ['src/leaflet-search.css'], - 'dist/leaflet-search.mobile.min.css': ['src/leaflet-search.mobile.css'] - } - } - }, - todos: { - options: { verbose: false }, - TODO: ['src/*.js'], - }, - watch: { - dist: { - options: { livereload: true }, - files: ['src/*'], - tasks: ['clean','concat','cssmin','jshint'] - } - } -}); - -grunt.registerTask('default', [ - 'clean', - 'concat', - 'cssmin', - 'jshint', - 'uglify', - 'todos' -]); - -}; \ No newline at end of file diff --git a/bower_components/leaflet-search/LICENSE.txt b/bower_components/leaflet-search/LICENSE.txt deleted file mode 100644 index 1005995..0000000 --- a/bower_components/leaflet-search/LICENSE.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2013 Stefano Cudini - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/bower_components/leaflet-search/README.md b/bower_components/leaflet-search/README.md deleted file mode 100644 index 08ed0fd..0000000 --- a/bower_components/leaflet-search/README.md +++ /dev/null @@ -1,98 +0,0 @@ -Leaflet.Control.Search -============ - -A leaflet control that search markers/features location by custom property.
-With ajax/jsonp autocompletion and JSON fields filter/remap - -Copyright 2014 [Stefano Cudini](http://labs.easyblog.it/stefano-cudini/) - -Tested in Leaflet 0.7.2 - - -#Where - -**Demo online:** -[labs.easyblog.it/maps/leaflet-search](http://labs.easyblog.it/maps/leaflet-search/) - -**Source code:** -[Github](https://github.com/stefanocudini/leaflet-search) -[Bitbucket](https://bitbucket.org/zakis_/leaflet-search) -[NPM](https://npmjs.org/package/leaflet-search) -[Atmosphere](https://atmosphere.meteor.com/package/leaflet-search) - -#Build - -Since Version 1.4.7 this plugin support [Grunt](http://gruntjs.com/) for building process. -Therefore the deployment require [NPM](https://npmjs.org/) installed in your system. -After you've made sure to have npm working, run this in command line: -```bash -npm install -grunt -``` - -#Examples -(require src/leaflet-search.css) - -Adding the search control to the map: -```javascript -map.addControl( new L.Control.Search({layer: searchLayer}) ); -//searchLayer is a L.LayerGroup contains searched markers -``` - -Short way: -```javascript -var map = new L.Map('map', { searchControl: {layer: searchLayer} }); -``` - -#Advanced Examples - -Ajax request to search.php for retrieve elements locations: -```javascript -map.addControl( new L.Control.Search({url: 'search.php?q={s}'}) ); -``` - -Request to third party JSONP service, implements Geocode Searching using OSM API: -```javascript -map.addControl( new L.Control.Search({ - url: 'http://nominatim.openstreetmap.org/search?format=json&q={s}', - jsonpParam: 'json_callback', - propertyName: 'display_name', - propertyLoc: ['lat','lon'] -}) ); -``` - -Search and color features vector in GeoJSON layer: -```javascript -var searchControl = new L.Control.Search({layer: geojsonLayer, circleLocation:false}); -searchControl.on('search_locationfound', function(e) { - - e.layer.setStyle({fillColor: '#3f0'}); - -}).on('search_collapsed', function(e) { - - featuresLayer.eachLayer(function(layer) { - featuresLayer.resetStyle(layer); - }); -}); -map.addControl(searchControl); -``` - -Static data source: -``` -var data = [ - {"loc":[41.575330,13.102411], "title":"aquamarine"}, - {"loc":[41.575730,13.002411], "title":"black"}, - {"loc":[41.219190,13.062145], "title":"cyan"} -]; - -map.addControl(new L.Control.Search({ - markerLocation: true, - callData: function(text, callResponse) { - - //here can use custom criteria or merge data from multiple layers - - callResponse(data); - } -}) ); -``` - diff --git a/bower_components/leaflet-search/TODO b/bower_components/leaflet-search/TODO deleted file mode 100644 index b3585e0..0000000 --- a/bower_components/leaflet-search/TODO +++ /dev/null @@ -1,59 +0,0 @@ -Tasks found in: src/leaflet-search.js - [Line: 22] [low] //TODO important! implements uniq option 'sourceData' that recognizes source type: url,array,callback or layer - [Line: 23] [low] //TODO implement can do research on multiple sources - [Line: 38] [low] //TODO add option for persist markerLoc after collapse! - [Line: 48] [low] //TODO add option collapsed, like control.layers - [Line: 53] [low] //TODO important optimization!!! always append data in this._recordsCache - [Line: 57] [low] //TODO here insert function that search inputText FIRST in _recordsCache keys and if not find results.. - [Line: 60] [low] //TODO change structure of _recordsCache - [Line: 342] [low] //TODO add option for case sesitive search, also showLocation - [Line: 345] [low] //TODO use .filter or .map - [Line: 407] [low] //TODO throw new Error("propertyName '"+propName+"' not found in JSON data"); - [Line: 412] [low] //TODO remove script node after call run - [Line: 421] [low] //TODO add rnd param or randomize callback name! in recordsFromJsonp - [Line: 441] [low] //TODO add rnd param or randomize callback name! in recordsFromAjax - [Line: 504] [low] //TODO implements autype without selection(useful for mobile device) - [Line: 604] [low] //TODO important optimization!!! always append data in this._recordsCache - [Line: 608] [low] //TODO here insert function that search inputText FIRST in _recordsCache keys and if not find results.. - [Line: 611] [low] //TODO change structure of _recordsCache - [Line: 662] [low] //TODO refact _handleAutoresize now is not accurate - [Line: 758] [low] //TODO showLocation: start animation after setView or panTo, maybe with map.on('moveend')... - [Line: 779] [low] //TODO add custom icon! - [Line: 787] [low] //TODO add inner circle - [Line: 843] [low] //TODO refact animate() more smooth! like this: http://goo.gl/DDlRs - [Line: 865] [low] //TODO use create event 'animateEnd' in SearchMarker - [Line: 50] [med] //FIXME option condition problem {autoCollapse: true, markerLocation: true} not show location - [Line: 51] [med] //FIXME option condition problem {autoCollapse: false } - [Line: 358] [med] //FIXME problem with jsonp/ajax when remote filter has different behavior of this._filterRecords - [Line: 731] [med] //FIXME if collapse in _handleSubmit hide _markerLoc! - [Line: 761] [med] //FIXME autoCollapse option hide this._markerLoc before that visualized!! -Tasks found in: src/leaflet-search_collapsed.js - [Line: 22] [low] //TODO important! implements uniq option 'sourceData' that recognizes source type: url,array,callback or layer - [Line: 23] [low] //TODO implement can do research on multiple sources - [Line: 37] [low] //TODO add option for persist markerLoc after collapse! - [Line: 47] [low] //TODO add option collapsed, like control.layers - [Line: 52] [low] //TODO important optimization!!! always append data in this._recordsCache - [Line: 56] [low] //TODO here insert function that search inputText FIRST in _recordsCache keys and if not find results.. - [Line: 59] [low] //TODO change structure of _recordsCache - [Line: 87] [low] // TODO: touch - [Line: 358] [low] //TODO add option for case sesitive search, also showLocation - [Line: 361] [low] //TODO use .filter or .map - [Line: 423] [low] //TODO throw new Error("propertyName '"+propName+"' not found in JSON data"); - [Line: 428] [low] //TODO remove script node after call run - [Line: 437] [low] //TODO add rnd param or randomize callback name! in recordsFromJsonp - [Line: 457] [low] //TODO add rnd param or randomize callback name! in recordsFromAjax - [Line: 520] [low] //TODO implements autype without selection(useful for mobile device) - [Line: 620] [low] //TODO important optimization!!! always append data in this._recordsCache - [Line: 624] [low] //TODO here insert function that search inputText FIRST in _recordsCache keys and if not find results.. - [Line: 627] [low] //TODO change structure of _recordsCache - [Line: 678] [low] //TODO refact _handleAutoresize now is not accurate - [Line: 774] [low] //TODO showLocation: start animation after setView or panTo, maybe with map.on('moveend')... - [Line: 795] [low] //TODO add custom icon! - [Line: 803] [low] //TODO add inner circle - [Line: 859] [low] //TODO refact animate() more smooth! like this: http://goo.gl/DDlRs - [Line: 881] [low] //TODO use create event 'animateEnd' in SearchMarker - [Line: 49] [med] //FIXME option condition problem {autoCollapse: true, markerLocation: true} not show location - [Line: 50] [med] //FIXME option condition problem {autoCollapse: false } - [Line: 374] [med] //FIXME problem with jsonp/ajax when remote filter has different behavior of this._filterRecords - [Line: 747] [med] //FIXME if collapse in _handleSubmit hide _markerLoc! - [Line: 777] [med] //FIXME autoCollapse option hide this._markerLoc before that visualized!! diff --git a/bower_components/leaflet-search/bower.json b/bower_components/leaflet-search/bower.json deleted file mode 100644 index e9fac8b..0000000 --- a/bower_components/leaflet-search/bower.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "leaflet-search", - "version": "1.5.1", - "main": "leaflet-search.js", - "ignore": [ - "**/.*", - "node_modules", - "components", - "bower_components", - "examples" - ] -} diff --git a/bower_components/leaflet-search/dist/leaflet-search.min.css b/bower_components/leaflet-search/dist/leaflet-search.min.css deleted file mode 100644 index 194352c..0000000 --- a/bower_components/leaflet-search/dist/leaflet-search.min.css +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Leaflet Search Control v1.5.1 - 2014-05-12 - * - * Copyright 2014 Stefano Cudini - * stefano.cudini@gmail.com - * http://labs.easyblog.it/ - * - * Licensed under the MIT license. - * - * Demo: - * http://labs.easyblog.it/maps/leaflet-search/ - * - * Source: - * git@github.com:stefanocudini/leaflet-search.git - * - */ - -.leaflet-container .leaflet-control-search{position:relative;float:left;background:#fff;color:#1978cf;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;background-color:rgba(255,255,255,.8);z-index:1000;box-shadow:0 1px 7px rgba(0,0,0,.65);margin-left:10px;margin-top:10px}.leaflet-control-search.search-exp{box-shadow:0 1px 7px #999;background:#fff}.leaflet-control-search .search-input{display:block;float:left;background:#fff;border:1px solid #666;border-radius:2px;height:18px;padding:0 18px 0 2px;margin:3px 0 3px 3px}.leaflet-control-search.search-load .search-input{background:url(../images/loader.gif) no-repeat center right #fff}.leaflet-control-search.search-load .search-cancel{visibility:hidden}.leaflet-control-search .search-cancel{display:block;width:22px;height:18px;position:absolute;right:22px;margin:3px 0;background:url(../images/search-icon.png) no-repeat 0 -46px;text-decoration:none;filter:alpha(opacity=80);opacity:.8}.leaflet-control-search .search-cancel:hover{filter:alpha(opacity=100);opacity:1}.leaflet-control-search .search-cancel span{display:none;font-size:18px;line-height:20px;color:#ccc;font-weight:700}.leaflet-control-search .search-cancel:hover span{color:#aaa}.leaflet-control-search .search-button{display:block;float:left;width:26px;height:26px;background:url(../images/search-icon.png) no-repeat 2px 2px;border-radius:4px}.leaflet-control-search .search-button:hover{background:url(../images/search-icon.png) no-repeat 2px -22px}.leaflet-control-search .search-tooltip{position:absolute;top:100%;left:0;float:left;min-width:80px;max-height:106px;box-shadow:0 0 8px rgba(0,0,0,.4);-webkit-border-radius:5px;-webkit-border-top-left-radius:0;-moz-border-radius:5px;-moz-border-radius-topleft:0;border-radius:5px;border-top-left-radius:0;background-color:rgba(0,0,0,.25);z-index:1010;overflow-y:auto;overflow-x:hidden}.leaflet-control-search .search-tip{margin:2px;padding:2px;display:block;color:#000;background:#ddd;border-radius:.25em;text-decoration:none;white-space:nowrap;font-size:.85em;vertical-align:center}.leaflet-control-search .search-button:hover,.leaflet-control-search .search-tip-select,.leaflet-control-search .search-tip:hover{background-color:#fff}.leaflet-control-search .search-alert{cursor:pointer;clear:both;font-size:.75em;margin-bottom:5px;padding:0 .25em;color:#e00;font-weight:700;border-radius:.25em} \ No newline at end of file diff --git a/bower_components/leaflet-search/dist/leaflet-search.min.js b/bower_components/leaflet-search/dist/leaflet-search.min.js deleted file mode 100644 index e375541..0000000 --- a/bower_components/leaflet-search/dist/leaflet-search.min.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Leaflet Search Control v1.5.1 - 2014-05-12 - * - * Copyright 2014 Stefano Cudini - * stefano.cudini@gmail.com - * http://labs.easyblog.it/ - * - * Licensed under the MIT license. - * - * Demo: - * http://labs.easyblog.it/maps/leaflet-search/ - * - * Source: - * git@github.com:stefanocudini/leaflet-search.git - * - */ -(function(){L.Control.Search=L.Control.extend({includes:L.Mixin.Events,options:{wrapper:"",url:"",jsonpParam:null,layer:null,callData:null,propertyName:"title",propertyLoc:"loc",callTip:null,filterJSON:null,minLength:1,initial:!0,autoType:!0,delayType:400,tooltipLimit:-1,tipAutoSubmit:!0,autoResize:!0,collapsed:!0,autoCollapse:!1,autoCollapseTime:1200,animateLocation:!0,circleLocation:!0,markerLocation:!1,zoom:null,text:"Search...",textCancel:"Cancel",textErr:"Location not found",position:"topleft"},initialize:function(a){L.Util.setOptions(this,a||{}),this._inputMinSize=this.options.text?this.options.text.length:10,this._layer=this.options.layer||new L.LayerGroup,this._filterJSON=this.options.filterJSON||this._defaultFilterJSON,this._autoTypeTmp=this.options.autoType,this._countertips=0,this._recordsCache={}},onAdd:function(b){return this._map=b,this._container=L.DomUtil.create("div","leaflet-control-search"),this._input=this._createInput(this.options.text,"search-input"),this._tooltip=this._createTooltip("search-tooltip"),this._cancel=this._createCancel(this.options.textCancel,"search-cancel"),this._button=this._createButton(this.options.text,"search-button"),this._alert=this._createAlert("search-alert"),this.options.collapsed===!1&&this.expand(),(this.options.circleLocation||this.options.markerLocation)&&(this._markerLoc=new a([0,0],{marker:this.options.markerLocation})),this.setLayer(this._layer),b.on({resize:this._handleAutoresize},this),this._container},addTo:function(a){return this.options.wrapper?(this._container=this.onAdd(a),this._wrapper=L.DomUtil.get(this.options.wrapper),this._wrapper.style.position="relative",this._wrapper.appendChild(this._container)):L.Control.prototype.addTo.call(this,a),this},onRemove:function(){this._recordsCache={}},_getPath:function(a,b){var c=b.split("."),d=c.pop(),e=c.length,f=c[0],g=1;if(e>0)for(;(a=a[f])&&e>g;)f=c[g++];return a?a[d]:void 0},setLayer:function(a){return this._layer=a,this._layer.addTo(this._map),this._markerLoc&&this._layer.addLayer(this._markerLoc),this},showAlert:function(a){a=a||this.options.textErr,this._alert.style.display="block",this._alert.innerHTML=a,clearTimeout(this.timerAlert);var b=this;return this.timerAlert=setTimeout(function(){b.hideAlert()},this.options.autoCollapseTime),this},hideAlert:function(){return this._alert.style.display="none",this},cancel:function(){return this._input.value="",this._handleKeypress({keyCode:8}),this._input.size=this._inputMinSize,this._input.focus(),this._cancel.style.display="none",this},expand:function(){return this._input.style.display="block",L.DomUtil.addClass(this._container,"search-exp"),this._input.focus(),this._map.on("dragstart",this.collapse,this),this},collapse:function(){return this._hideTooltip(),this.cancel(),this._alert.style.display="none",this._input.blur(),this.options.collapsed&&(this._input.style.display="none",this._cancel.style.display="none",L.DomUtil.removeClass(this._container,"search-exp"),this._map.off("dragstart",this.collapse,this)),this.fire("search_collapsed"),this},collapseDelayed:function(){if(!this.options.autoCollapse)return this;var a=this;return clearTimeout(this.timerCollapse),this.timerCollapse=setTimeout(function(){a.collapse()},this.options.autoCollapseTime),this},collapseDelayedStop:function(){return clearTimeout(this.timerCollapse),this},_createAlert:function(a){var b=L.DomUtil.create("div",a,this._container);return b.style.display="none",L.DomEvent.on(b,"click",L.DomEvent.stop,this).on(b,"click",this.hideAlert,this),b},_createInput:function(a,b){var c=L.DomUtil.create("input",b,this._container);return c.type="text",c.size=this._inputMinSize,c.value="",c.autocomplete="off",c.placeholder=a,c.style.display="none",L.DomEvent.disableClickPropagation(c).on(c,"keyup",this._handleKeypress,this).on(c,"keydown",this._handleAutoresize,this).on(c,"blur",this.collapseDelayed,this).on(c,"focus",this.collapseDelayedStop,this),c},_createCancel:function(a,b){var c=L.DomUtil.create("a",b,this._container);return c.href="#",c.title=a,c.style.display="none",c.innerHTML="",L.DomEvent.on(c,"click",L.DomEvent.stop,this).on(c,"click",this.cancel,this),c},_createButton:function(a,b){var c=L.DomUtil.create("a",b,this._container);return c.href="#",c.title=a,L.DomEvent.on(c,"click",L.DomEvent.stop,this).on(c,"click",this._handleSubmit,this).on(c,"focus",this.collapseDelayedStop,this).on(c,"blur",this.collapseDelayed,this),c},_createTooltip:function(a){var b=L.DomUtil.create("div",a,this._container);b.style.display="none";var c=this;return L.DomEvent.disableClickPropagation(b).on(b,"blur",this.collapseDelayed,this).on(b,"mousewheel",function(a){c.collapseDelayedStop(),L.DomEvent.stopPropagation(a)},this).on(b,"mouseover",function(){c.collapseDelayedStop()},this),b},_createTip:function(a,b){var c;if(this.options.callTip){if(c=this.options.callTip(a,b),"string"==typeof c){var d=L.DomUtil.create("div");d.innerHTML=c,c=d.firstChild}}else c=L.DomUtil.create("a",""),c.href="#",c.innerHTML=a;return L.DomUtil.addClass(c,"search-tip"),c._text=a,L.DomEvent.disableClickPropagation(c).on(c,"click",L.DomEvent.stop,this).on(c,"click",function(){this._input.value=a,this._handleAutoresize(),this._input.focus(),this._hideTooltip(),this.options.tipAutoSubmit&&this._handleSubmit()},this),c},_filterRecords:function(a){var b,c,d=new RegExp("^[.]$|[[]|()*]","g"),e={};a=a.replace(d,""),b=this.options.initial?"^":"",c=new RegExp(b+a,"i");for(var f in this._recordsCache)c.test(f)&&(e[f]=this._recordsCache[f]);return e},showTooltip:function(){var a,b;this._countertips=0,a=this.options.layer?this._filterRecords(this._input.value):this._recordsCache,this._tooltip.innerHTML="",this._tooltip.currentSelection=-1;for(var c in a){if(++this._countertips==this.options.tooltipLimit)break;b=this._createTip(c,a[c]),this._tooltip.appendChild(b)}return this._countertips>0?(this._tooltip.style.display="block",this._autoTypeTmp&&this._autoType(),this._autoTypeTmp=this.options.autoType):this._hideTooltip(),this._tooltip.scrollTop=0,this._countertips},_hideTooltip:function(){return this._tooltip.style.display="none",this._tooltip.innerHTML="",0},_defaultFilterJSON:function(a){var b,c={},d=this.options.propertyName,e=this.options.propertyLoc;if(L.Util.isArray(e))for(b in a)c[this._getPath(a[b],d)]=L.latLng(a[b][e[0]],a[b][e[1]]);else for(b in a)c[this._getPath(a[b],d)]=L.latLng(this._getPath(a[b],e));return c},_recordsFromJsonp:function(a,b){var c=this;L.Control.Search.callJsonp=function(a){var d=c._filterJSON(a);b(d)};var d=L.DomUtil.create("script","search-jsonp",document.getElementsByTagName("body")[0]),e=L.Util.template(this.options.url+"&"+this.options.jsonpParam+"=L.Control.Search.callJsonp",{s:a});return d.type="text/javascript",d.src=e,this},_recordsFromAjax:function(a,b){void 0===window.XMLHttpRequest&&(window.XMLHttpRequest=function(){try{return new ActiveXObject("Microsoft.XMLHTTP.6.0")}catch(a){try{return new ActiveXObject("Microsoft.XMLHTTP.3.0")}catch(b){throw new Error("XMLHttpRequest is not supported")}}});var c=new XMLHttpRequest,d=L.Util.template(this.options.url,{s:a}),e={};c.open("GET",d);var f=this;return c.onreadystatechange=function(){if(4===c.readyState&&200===c.status){e=JSON.parse(c.responseText);var a=f._filterJSON(e);b(a)}},c.send(),this},_recordsFromLayer:function(){var b,c=this,d={},e=this.options.propertyName;return this._layer.eachLayer(function(f){f instanceof a||(f instanceof L.Marker?c._getPath(f.options,e)?(b=f.getLatLng(),b.layer=f,d[c._getPath(f.options,e)]=b):c._getPath(f.feature.properties,e)?(b=f.getLatLng(),b.layer=f,d[c._getPath(f.feature.properties,e)]=b):console.log("propertyName '"+e+"' not found in marker",f):f.hasOwnProperty("feature")&&(f.feature.properties.hasOwnProperty(e)?(b=f.getBounds().getCenter(),b.layer=f,d[f.feature.properties[e]]=b):console.log("propertyName '"+e+"' not found in feature",f)))},this),d},_autoType:function(){var a=this._input.value.length,b=this._tooltip.firstChild._text,c=b.length;if(0===b.indexOf(this._input.value))if(this._input.value=b,this._handleAutoresize(),this._input.createTextRange){var d=this._input.createTextRange();d.collapse(!0),d.moveStart("character",a),d.moveEnd("character",c),d.select()}else this._input.setSelectionRange?this._input.setSelectionRange(a,c):this._input.selectionStart&&(this._input.selectionStart=a,this._input.selectionEnd=c)},_hideAutoType:function(){var a;if((a=this._input.selection)&&a.empty)a.empty();else if(this._input.createTextRange){a=this._input.createTextRange(),a.collapse(!0);var b=this._input.value.length;a.moveStart("character",b),a.moveEnd("character",b),a.select()}else this._input.getSelection&&this._input.getSelection().removeAllRanges(),this._input.selectionStart=this._input.selectionEnd},_handleKeypress:function(a){switch(a.keyCode){case 27:this.collapse();break;case 13:1==this._countertips&&this._handleArrowSelect(1),this._handleSubmit();break;case 38:this._handleArrowSelect(-1);break;case 40:this._handleArrowSelect(1);break;case 37:case 39:case 16:case 17:break;case 8:case 46:this._autoTypeTmp=!1;break;default:if(this._cancel.style.display=this._input.value.length?"block":"none",this._input.value.length>=this.options.minLength){var b=this;clearTimeout(this.timerKeypress),this.timerKeypress=setTimeout(function(){b._fillRecordsCache()},this.options.delayType)}else this._hideTooltip()}},_fillRecordsCache:function(){var a,b=this._input.value;L.DomUtil.addClass(this._container,"search-load"),this.options.callData?(a=this,this.options.callData(b,function(b){a._recordsCache=a._filterJSON(b),a.showTooltip(),L.DomUtil.removeClass(a._container,"search-load")})):this.options.url?this.options.jsonpParam?(a=this,this._recordsFromJsonp(b,function(b){a._recordsCache=b,a.showTooltip(),L.DomUtil.removeClass(a._container,"search-load")})):(a=this,this._recordsFromAjax(b,function(b){a._recordsCache=b,a.showTooltip(),L.DomUtil.removeClass(a._container,"search-load")})):this.options.layer&&(this._recordsCache=this._recordsFromLayer(),this.showTooltip(),L.DomUtil.removeClass(this._container,"search-load"))},_handleAutoresize:function(){this._input.style.maxWidth!=this._map._container.offsetWidth&&(this._input.style.maxWidth=L.DomUtil.getStyle(this._map._container,"width")),this.options.autoResize&&this._container.offsetWidth+45=b.length-1)L.DomUtil.addClass(b[this._tooltip.currentSelection],"search-tip-select");else if(-1==a&&this._tooltip.currentSelection<=0)this._tooltip.currentSelection=-1;else if("none"!=this._tooltip.style.display){this._tooltip.currentSelection+=a,L.DomUtil.addClass(b[this._tooltip.currentSelection],"search-tip-select"),this._input.value=b[this._tooltip.currentSelection]._text;var c=b[this._tooltip.currentSelection].offsetTop;c+b[this._tooltip.currentSelection].clientHeight>=this._tooltip.scrollTop+this._tooltip.clientHeight?this._tooltip.scrollTop=c-this._tooltip.clientHeight+b[this._tooltip.currentSelection].clientHeight:c<=this._tooltip.scrollTop&&(this._tooltip.scrollTop=c)}},_handleSubmit:function(){if(this._hideAutoType(),this.hideAlert(),this._hideTooltip(),"none"==this._input.style.display)this.expand();else if(""===this._input.value)this.collapse();else{var a=this._getLocation(this._input.value);a===!1?this.showAlert():(this.showLocation(a,this._input.value),this.fire("search_locationfound",{latlng:a,text:this._input.value,layer:a.layer?a.layer:null}))}},_getLocation:function(a){return this._recordsCache.hasOwnProperty(a)?this._recordsCache[a]:!1},showLocation:function(a,b){return this.options.zoom?this._map.setView(a,this.options.zoom):this._map.panTo(a),this._markerLoc&&(this._markerLoc.setLatLng(a),this._markerLoc.setTitle(b),this._markerLoc.show(),this.options.animateLocation&&this._markerLoc.animate()),this.options.autoCollapse&&this.collapse(),this}});var a=L.Marker.extend({includes:L.Mixin.Events,options:{radius:10,weight:3,color:"#e03",stroke:!0,fill:!1,title:"",marker:!1},initialize:function(a,b){L.setOptions(this,b),L.Marker.prototype.initialize.call(this,a,b),this._circleLoc=new L.CircleMarker(a,this.options)},onAdd:function(a){L.Marker.prototype.onAdd.call(this,a),a.addLayer(this._circleLoc),this.hide()},onRemove:function(a){L.Marker.prototype.onRemove.call(this,a),a.removeLayer(this._circleLoc)},setLatLng:function(a){return L.Marker.prototype.setLatLng.call(this,a),this._circleLoc.setLatLng(a),this},setTitle:function(a){return a=a||"",this.options.title=a,this._icon&&(this._icon.title=a),this},show:function(){return this.options.marker&&(this._icon&&(this._icon.style.display="block"),this._shadow&&(this._shadow.style.display="block")),this._circleLoc&&this._circleLoc.setStyle({fill:this.options.fill,stroke:this.options.stroke}),this},hide:function(){return this._icon&&(this._icon.style.display="none"),this._shadow&&(this._shadow.style.display="none"),this._circleLoc&&this._circleLoc.setStyle({fill:!1,stroke:!1}),this},animate:function(){var a=this._circleLoc,b=200,c=10,d=parseInt(a._radius/c),e=this.options.radius,f=2.5*a._radius,g=0;return a._timerAnimLoc=setInterval(function(){g+=.5,d+=g,f-=d,a.setRadius(f),e>f&&(clearInterval(a._timerAnimLoc),a.setRadius(e))},b),this}});L.Map.addInitHook(function(){this.options.searchControl&&(this.searchControl=L.control.search(this.options.searchControl),this.addControl(this.searchControl))}),L.control.search=function(a){return new L.Control.Search(a)}}).call(this); \ No newline at end of file diff --git a/bower_components/leaflet-search/dist/leaflet-search.mobile.min.css b/bower_components/leaflet-search/dist/leaflet-search.mobile.min.css deleted file mode 100644 index 6adfa40..0000000 --- a/bower_components/leaflet-search/dist/leaflet-search.mobile.min.css +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Leaflet Search Control v1.5.1 - 2014-05-12 - * - * Copyright 2014 Stefano Cudini - * stefano.cudini@gmail.com - * http://labs.easyblog.it/ - * - * Licensed under the MIT license. - * - * Demo: - * http://labs.easyblog.it/maps/leaflet-search/ - * - * Source: - * git@github.com:stefanocudini/leaflet-search.git - * - */ - -.leaflet-control.leaflet-control-search{z-index:2000}.leaflet-control-search .search-input{display:block;float:left;background:#fff;border:1px solid #666;border-radius:2px;height:24px;font-size:1.25em;padding:0 .125em;margin:3px;padding-right:30px}.leaflet-control-search .search-button,.leaflet-control-search .search-button:hover{background-image:url(../images/search-icon-mobile.png);-webkit-border-radius:4px;border-radius:4px;background-position:1px 1px;width:32px;height:32px}.leaflet-control-search.search-load .search-input{background:url(../images/loader.gif) no-repeat center right #fff}.leaflet-control-search .search-cancel{background-image:url(../images/search-icon-mobile.png);-webkit-border-radius:4px;border-radius:4px;background-position:0 -62px;width:26px;height:26px;right:34px;margin:3px}.leaflet-control-search .search-tooltip{max-height:142px}.leaflet-control-search .search-tip{font-size:1em;margin:2px;padding:2px;display:block;color:#000;background:rgba(255,255,255,.8);border-radius:.25em;text-decoration:none;white-space:nowrap;vertical-align:center}.leaflet-control-search .search-tip .climbo-icon-mini{float:right;display:block;white-space:nowrap}.leaflet-control-search .search-button:hover,.leaflet-control-search .search-tip-select,.leaflet-control-search .search-tip:hover{background-color:#fff}.leaflet-control-search .search-alert{font-size:1.2em} \ No newline at end of file diff --git a/bower_components/leaflet-search/dist/leaflet-search.mobile.src.css b/bower_components/leaflet-search/dist/leaflet-search.mobile.src.css deleted file mode 100644 index be556ab..0000000 --- a/bower_components/leaflet-search/dist/leaflet-search.mobile.src.css +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Leaflet Search Control v1.5.1 - 2014-05-12 - * - * Copyright 2014 Stefano Cudini - * stefano.cudini@gmail.com - * http://labs.easyblog.it/ - * - * Licensed under the MIT license. - * - * Demo: - * http://labs.easyblog.it/maps/leaflet-search/ - * - * Source: - * git@github.com:stefanocudini/leaflet-search.git - * - */ - -/* SEARCH */ -.leaflet-control.leaflet-control-search { - z-index:2000; -} -.leaflet-control-search .search-input { - display:block; - float:left; - background: #fff; - border:1px solid #666; - border-radius:2px; - height:24px; - font-size:1.25em; - padding:0 .125em; - margin:3px; - padding-right:30px; -} -.leaflet-control-search .search-button:hover, -.leaflet-control-search .search-button { - background-image: url('../images/search-icon-mobile.png'); - -webkit-border-radius: 4px; - border-radius: 4px; - background-position: 1px 1px; - width:32px; - height:32px; -} -.leaflet-control-search.search-load .search-input { - background: url('../images/loader.gif') no-repeat center right #fff; -} -.leaflet-control-search .search-cancel { - background-image: url('../images/search-icon-mobile.png'); - -webkit-border-radius: 4px; - border-radius: 4px; - background-position: 0px -62px; - width:26px; - height:26px; - right:34px; - margin:3px; -} -.leaflet-control-search .search-tooltip { - max-height:142px;/*(.search-tip height * 5)*/ -} -.leaflet-control-search .search-tip { - font-size:1em; - margin:2px; - padding:2px; - display:block; - color:black; - background: rgba(255,255,255,0.8); - border-radius:.25em; - text-decoration:none; - white-space:nowrap; - vertical-align:center; -} -.leaflet-control-search .search-tip .climbo-icon-mini { - float:right; - display:block; - white-space:nowrap; -} -.leaflet-control-search .search-button:hover, -.leaflet-control-search .search-tip-select, -.leaflet-control-search .search-tip:hover { - background-color: #fff; -} -.leaflet-control-search .search-alert { - font-size:1.2em; -} \ No newline at end of file diff --git a/bower_components/leaflet-search/dist/leaflet-search.src.css b/bower_components/leaflet-search/dist/leaflet-search.src.css deleted file mode 100644 index ef08560..0000000 --- a/bower_components/leaflet-search/dist/leaflet-search.src.css +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Leaflet Search Control v1.5.1 - 2014-05-12 - * - * Copyright 2014 Stefano Cudini - * stefano.cudini@gmail.com - * http://labs.easyblog.it/ - * - * Licensed under the MIT license. - * - * Demo: - * http://labs.easyblog.it/maps/leaflet-search/ - * - * Source: - * git@github.com:stefanocudini/leaflet-search.git - * - */ - -.leaflet-container .leaflet-control-search { - position:relative; - float:left; - background:#fff; - color:#1978cf; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - background-color: rgba(255, 255, 255, 0.8); - z-index:1000; - box-shadow: 0 1px 7px rgba(0,0,0,0.65); - margin-left: 10px; - margin-top: 10px; -} -.leaflet-control-search.search-exp {/*expanded*/ - box-shadow: 0 1px 7px #999; - background: #fff; -} -.leaflet-control-search .search-input { - display:block; - float:left; - background: #fff; - border:1px solid #666; - border-radius:2px; - height:18px; - padding:0 18px 0 2px; - margin:3px 0 3px 3px; -} -.leaflet-control-search.search-load .search-input { - background: url('../images/loader.gif') no-repeat center right #fff; -} -.leaflet-control-search.search-load .search-cancel { - visibility:hidden; -} -.leaflet-control-search .search-cancel { - display:block; - width:22px; - height:18px; - position:absolute; - right:22px; - margin:3px 0; - background: url('../images/search-icon.png') no-repeat 0 -46px; - text-decoration:none; - filter: alpha(opacity=80); - opacity: 0.8; -} -.leaflet-control-search .search-cancel:hover { - filter: alpha(opacity=100); - opacity: 1; -} -.leaflet-control-search .search-cancel span { - display:none;/* comment for cancel button imageless */ - font-size:18px; - line-height:20px; - color:#ccc; - font-weight:bold; -} -.leaflet-control-search .search-cancel:hover span { - color:#aaa; -} -.leaflet-control-search .search-button { - display:block; - float:left; - width:26px; - height:26px; - background: url('../images/search-icon.png') no-repeat 2px 2px; - border-radius:4px; -} -.leaflet-control-search .search-button:hover { - background: url('../images/search-icon.png') no-repeat 2px -22px; -} -.leaflet-control-search .search-tooltip { - position:absolute; - top:100%; - left:0; - float:left; - min-width:80px; - max-height:106px;/*(.search-tip height * 5)*/ - box-shadow: 0 0 8px rgba(0,0,0,0.4); - -webkit-border-radius: 5px; - -webkit-border-top-left-radius: 0; - -moz-border-radius: 5px; - -moz-border-radius-topleft: 0; - border-radius: 5px; - border-top-left-radius: 0; - background-color: rgba(0, 0, 0, 0.25); - z-index:1010; - overflow-y:auto; - overflow-x:hidden; -} -.leaflet-control-search .search-tip { - font-size:.85em; - margin:2px; - padding:2px; - display:block; - color:black; - background: #ddd; - border-radius:.25em; - text-decoration:none; - white-space:nowrap; - font-size:.85em; - vertical-align:center; -} -.leaflet-control-search .search-tip-select, -.leaflet-control-search .search-tip:hover, -.leaflet-control-search .search-button:hover { - background-color: #fff; -} -.leaflet-control-search .search-alert { - cursor:pointer; - clear:both; - font-size:.75em; - margin-bottom:5px; - padding:0 .25em; - color:#e00; - font-weight:bold; - border-radius:.25em; -} - - diff --git a/bower_components/leaflet-search/dist/leaflet-search.src.js b/bower_components/leaflet-search/dist/leaflet-search.src.js deleted file mode 100644 index 6c7c1d1..0000000 --- a/bower_components/leaflet-search/dist/leaflet-search.src.js +++ /dev/null @@ -1,901 +0,0 @@ -/* - * Leaflet Search Control v1.5.1 - 2014-05-12 - * - * Copyright 2014 Stefano Cudini - * stefano.cudini@gmail.com - * http://labs.easyblog.it/ - * - * Licensed under the MIT license. - * - * Demo: - * http://labs.easyblog.it/maps/leaflet-search/ - * - * Source: - * git@github.com:stefanocudini/leaflet-search.git - * - */ -(function() { - -L.Control.Search = L.Control.extend({ - includes: L.Mixin.Events, - // - // Name Data passed Description - // - //Managed Events: - // search_locationfound {latlng, title, layer} fired after moved and show markerLocation - // search_collapsed {} fired after control was collapsed - // - //Public methods: - // setLayer() L.LayerGroup() set layer search at runtime - // showAlert() 'Text message' Show alert message - // - options: { - wrapper: '', //container id to insert Search Control - url: '', //url for search by ajax request, ex: "search.php?q={s}" - jsonpParam: null, //jsonp param name for search by jsonp service, ex: "callback" - layer: null, //layer where search markers(is a L.LayerGroup) - callData: null, //function that fill _recordsCache, passed searching text by first param and callback in second - //TODO important! implements uniq option 'sourceData' that recognizes source type: url,array,callback or layer - //TODO implement can do research on multiple sources - propertyName: 'title', //property in marker.options(or feature.properties for vector layer) trough filter elements in layer, - propertyLoc: 'loc', //field for remapping location, using array: ['latname','lonname'] for select double fields(ex. ['lat','lon'] ) - // support dotted format: 'prop.subprop.title' - callTip: null, //function that return row tip html node(or html string), receive text tooltip in first param - filterJSON: null, //callback for filtering data to _recordsCache - minLength: 1, //minimal text length for autocomplete - initial: true, //search elements only by initial text - autoType: true, //complete input with first suggested result and select this filled-in text. - delayType: 400, //delay while typing for show tooltip - tooltipLimit: -1, //limit max results to show in tooltip. -1 for no limit. - tipAutoSubmit: true, //auto map panTo when click on tooltip - autoResize: true, //autoresize on input change - collapsed: true, //collapse search control at startup - autoCollapse: false, //collapse search control after submit(on button or on tips if enabled tipAutoSubmit) - //TODO add option for persist markerLoc after collapse! - autoCollapseTime: 1200, //delay for autoclosing alert and collapse after blur - animateLocation: true, //animate a circle over location found - circleLocation: true, //draw a circle in location found - markerLocation: false, //draw a marker in location found - zoom: null, //zoom after pan to location found, default: map.getZoom() - text: 'Search...', //placeholder value - textCancel: 'Cancel', //title in cancel button - textErr: 'Location not found', //error message - position: 'topleft' - //TODO add option collapsed, like control.layers - }, -//FIXME option condition problem {autoCollapse: true, markerLocation: true} not show location -//FIXME option condition problem {autoCollapse: false } -// -//TODO important optimization!!! always append data in this._recordsCache -// now _recordsCache content is emptied and replaced with new data founded -// always appending data on _recordsCache give the possibility of caching ajax, jsonp and layersearch! -// -//TODO here insert function that search inputText FIRST in _recordsCache keys and if not find results.. -// run one of callbacks search(callData,jsonpUrl or options.layer) and run this.showTooltip -// -//TODO change structure of _recordsCache -// like this: _recordsCache = {"text-key1": {loc:[lat,lng], ..other attributes.. }, {"text-key2": {loc:[lat,lng]}...}, ...} -// in this mode every record can have a free structure of attributes, only 'loc' is required - - initialize: function(options) { - L.Util.setOptions(this, options || {}); - this._inputMinSize = this.options.text ? this.options.text.length : 10; - this._layer = this.options.layer || new L.LayerGroup(); - this._filterJSON = this.options.filterJSON || this._defaultFilterJSON; - this._autoTypeTmp = this.options.autoType; //useful for disable autoType temporarily in delete/backspace keydown - this._countertips = 0; //number of tips items - this._recordsCache = {}; //key,value table! that store locations! format: key,latlng - }, - - onAdd: function (map) { - this._map = map; - this._container = L.DomUtil.create('div', 'leaflet-control-search'); - this._input = this._createInput(this.options.text, 'search-input'); - this._tooltip = this._createTooltip('search-tooltip'); - this._cancel = this._createCancel(this.options.textCancel, 'search-cancel'); - this._button = this._createButton(this.options.text, 'search-button'); - this._alert = this._createAlert('search-alert'); - - if(this.options.collapsed===false) - this.expand(); - - if(this.options.circleLocation || this.options.markerLocation) - this._markerLoc = new SearchMarker([0,0], {marker: this.options.markerLocation});//see below - - this.setLayer( this._layer ); - map.on({ - // 'layeradd': this._onLayerAddRemove, - // 'layerremove': this._onLayerAddRemove - 'resize': this._handleAutoresize - }, this); - return this._container; - }, - addTo: function (map) { - - if(this.options.wrapper) { - this._container = this.onAdd(map); - this._wrapper = L.DomUtil.get(this.options.wrapper); - this._wrapper.style.position = 'relative'; - this._wrapper.appendChild(this._container); - } - else - L.Control.prototype.addTo.call(this, map); - - return this; - }, - - onRemove: function(map) { - this._recordsCache = {}; - // map.off({ - // 'layeradd': this._onLayerAddRemove, - // 'layerremove': this._onLayerAddRemove - // }, this); - }, - - // _onLayerAddRemove: function(e) { - // //console.info('_onLayerAddRemove'); - // //without this, run setLayer also for each Markers!! to optimize! - // if(e.layer instanceof L.LayerGroup) - // if( L.stamp(e.layer) != L.stamp(this._layer) ) - // this.setLayer(e.layer); - // }, - - _getPath: function(obj, prop) { - var parts = prop.split('.'), - last = parts.pop(), - len = parts.length, - cur = parts[0], - i = 1; - - if(len > 0) - while((obj = obj[cur]) && i < len) - cur = parts[i++]; - - if(obj) - return obj[last]; - }, - - setLayer: function(layer) { //set search layer at runtime - //this.options.layer = layer; //setting this, run only this._recordsFromLayer() - this._layer = layer; - this._layer.addTo(this._map); - if(this._markerLoc) - this._layer.addLayer(this._markerLoc); - return this; - }, - - showAlert: function(text) { - text = text || this.options.textErr; - this._alert.style.display = 'block'; - this._alert.innerHTML = text; - clearTimeout(this.timerAlert); - var that = this; - this.timerAlert = setTimeout(function() { - that.hideAlert(); - },this.options.autoCollapseTime); - return this; - }, - - hideAlert: function() { - this._alert.style.display = 'none'; - return this; - }, - - cancel: function() { - this._input.value = ''; - this._handleKeypress({keyCode:8});//simulate backspace keypress - this._input.size = this._inputMinSize; - this._input.focus(); - this._cancel.style.display = 'none'; - return this; - }, - - expand: function() { - this._input.style.display = 'block'; - L.DomUtil.addClass(this._container, 'search-exp'); - this._input.focus(); - this._map.on('dragstart', this.collapse, this); - return this; - }, - - collapse: function() { - this._hideTooltip(); - this.cancel(); - this._alert.style.display = 'none'; - this._input.blur(); - if(this.options.collapsed) - { - this._input.style.display = 'none'; - this._cancel.style.display = 'none'; - L.DomUtil.removeClass(this._container, 'search-exp'); - //this._markerLoc.hide();//maybe unuseful - this._map.off('dragstart', this.collapse, this); - } - this.fire('search_collapsed'); - return this; - }, - - collapseDelayed: function() { //collapse after delay, used on_input blur - if (!this.options.autoCollapse) return this; - var that = this; - clearTimeout(this.timerCollapse); - this.timerCollapse = setTimeout(function() { - that.collapse(); - }, this.options.autoCollapseTime); - return this; - }, - - collapseDelayedStop: function() { - clearTimeout(this.timerCollapse); - return this; - }, - -////start DOM creations - _createAlert: function(className) { - var alert = L.DomUtil.create('div', className, this._container); - alert.style.display = 'none'; - - L.DomEvent - .on(alert, 'click', L.DomEvent.stop, this) - .on(alert, 'click', this.hideAlert, this); - - return alert; - }, - - _createInput: function (text, className) { - var input = L.DomUtil.create('input', className, this._container); - input.type = 'text'; - input.size = this._inputMinSize; - input.value = ''; - input.autocomplete = 'off'; - input.placeholder = text; - input.style.display = 'none'; - - L.DomEvent - .disableClickPropagation(input) - .on(input, 'keyup', this._handleKeypress, this) - .on(input, 'keydown', this._handleAutoresize, this) - .on(input, 'blur', this.collapseDelayed, this) - .on(input, 'focus', this.collapseDelayedStop, this); - - return input; - }, - - _createCancel: function (title, className) { - var cancel = L.DomUtil.create('a', className, this._container); - cancel.href = '#'; - cancel.title = title; - cancel.style.display = 'none'; - cancel.innerHTML = "";//imageless(see css) - - L.DomEvent - .on(cancel, 'click', L.DomEvent.stop, this) - .on(cancel, 'click', this.cancel, this); - - return cancel; - }, - - _createButton: function (title, className) { - var button = L.DomUtil.create('a', className, this._container); - button.href = '#'; - button.title = title; - - L.DomEvent - .on(button, 'click', L.DomEvent.stop, this) - .on(button, 'click', this._handleSubmit, this) - .on(button, 'focus', this.collapseDelayedStop, this) - .on(button, 'blur', this.collapseDelayed, this); - - return button; - }, - - _createTooltip: function(className) { - var tool = L.DomUtil.create('div', className, this._container); - tool.style.display = 'none'; - - var that = this; - L.DomEvent - .disableClickPropagation(tool) - .on(tool, 'blur', this.collapseDelayed, this) - .on(tool, 'mousewheel', function(e) { - that.collapseDelayedStop(); - L.DomEvent.stopPropagation(e);//disable zoom map - }, this) - .on(tool, 'mouseover', function(e) { - that.collapseDelayedStop(); - }, this); - return tool; - }, - - _createTip: function(text, val) {//val is object in recordCache, usually is Latlng - var tip; - - if(this.options.callTip) - { - tip = this.options.callTip(text,val); //custom tip node or html string - if(typeof tip === 'string') - { - var tmpNode = L.DomUtil.create('div'); - tmpNode.innerHTML = tip; - tip = tmpNode.firstChild; - } - } - else - { - tip = L.DomUtil.create('a', ''); - tip.href = '#'; - tip.innerHTML = text; - } - - L.DomUtil.addClass(tip, 'search-tip'); - tip._text = text; //value replaced in this._input and used by _autoType - - L.DomEvent - .disableClickPropagation(tip) - .on(tip, 'click', L.DomEvent.stop, this) - .on(tip, 'click', function(e) { - this._input.value = text; - this._handleAutoresize(); - this._input.focus(); - this._hideTooltip(); - if(this.options.tipAutoSubmit)//go to location at once - this._handleSubmit(); - }, this); - - return tip; - }, - -//////end DOM creations - - _filterRecords: function(text) { //Filter this._recordsCache case insensitive and much more.. - - var regFilter = new RegExp("^[.]$|[\[\]|()*]",'g'), //remove . * | ( ) ] [ - I, regSearch, - frecords = {}; - - text = text.replace(regFilter,''); //sanitize text - I = this.options.initial ? '^' : ''; //search only initial text - //TODO add option for case sesitive search, also showLocation - regSearch = new RegExp(I + text,'i'); - - //TODO use .filter or .map - for(var key in this._recordsCache) - if( regSearch.test(key) ) - frecords[key]= this._recordsCache[key]; - - return frecords; - }, - - showTooltip: function() { - var filteredRecords, newTip; - - this._countertips = 0; - - //FIXME problem with jsonp/ajax when remote filter has different behavior of this._filterRecords - if(this.options.layer) - filteredRecords = this._filterRecords( this._input.value ); - else - filteredRecords = this._recordsCache; - - this._tooltip.innerHTML = ''; - this._tooltip.currentSelection = -1; //inizialized for _handleArrowSelect() - - for(var key in filteredRecords)//fill tooltip - { - if(++this._countertips == this.options.tooltipLimit) break; - - newTip = this._createTip(key, filteredRecords[key] ); - - this._tooltip.appendChild(newTip); - } - - if(this._countertips > 0) - { - this._tooltip.style.display = 'block'; - if(this._autoTypeTmp) - this._autoType(); - this._autoTypeTmp = this.options.autoType;//reset default value - } - else - this._hideTooltip(); - - this._tooltip.scrollTop = 0; - return this._countertips; - }, - - _hideTooltip: function() { - this._tooltip.style.display = 'none'; - this._tooltip.innerHTML = ''; - return 0; - }, - - _defaultFilterJSON: function(json) { //default callback for filter data - var jsonret = {}, i, - propName = this.options.propertyName, - propLoc = this.options.propertyLoc; - - if( L.Util.isArray(propLoc) ) - for(i in json) - jsonret[ this._getPath(json[i],propName) ]= L.latLng( json[i][ propLoc[0] ], json[i][ propLoc[1] ] ); - else - for(i in json) - jsonret[ this._getPath(json[i],propName) ]= L.latLng( this._getPath(json[i],propLoc) ); - //TODO throw new Error("propertyName '"+propName+"' not found in JSON data"); - return jsonret; - }, - - _recordsFromJsonp: function(text, callAfter) { //extract searched records from remote jsonp service - //TODO remove script node after call run - var that = this; - L.Control.Search.callJsonp = function(data) { //jsonp callback - var fdata = that._filterJSON(data);//_filterJSON defined in inizialize... - callAfter(fdata); - } - var script = L.DomUtil.create('script','search-jsonp', document.getElementsByTagName('body')[0] ), - url = L.Util.template(this.options.url+'&'+this.options.jsonpParam+'=L.Control.Search.callJsonp', {s: text}); //parsing url - //rnd = '&_='+Math.floor(Math.random()*10000); - //TODO add rnd param or randomize callback name! in recordsFromJsonp - script.type = 'text/javascript'; - script.src = url; - return this; - //may be return {abort: function() { script.parentNode.removeChild(script); } }; - }, - - _recordsFromAjax: function(text, callAfter) { //Ajax request - if (window.XMLHttpRequest === undefined) { - window.XMLHttpRequest = function() { - try { return new ActiveXObject("Microsoft.XMLHTTP.6.0"); } - catch (e1) { - try { return new ActiveXObject("Microsoft.XMLHTTP.3.0"); } - catch (e2) { throw new Error("XMLHttpRequest is not supported"); } - } - }; - } - var request = new XMLHttpRequest(), - url = L.Util.template(this.options.url, {s: text}), //parsing url - //rnd = '&_='+Math.floor(Math.random()*10000); - //TODO add rnd param or randomize callback name! in recordsFromAjax - response = {}; - - request.open("GET", url); - var that = this; - request.onreadystatechange = function() { - if(request.readyState === 4 && request.status === 200) { - response = JSON.parse(request.responseText); - var fdata = that._filterJSON(response);//_filterJSON defined in inizialize... - callAfter(fdata); - } - }; - request.send(); - return this; - }, - - _recordsFromLayer: function() { //return table: key,value from layer - var that = this, - retRecords = {}, - propName = this.options.propertyName, - loc; - - this._layer.eachLayer(function(layer) { - - if(layer instanceof SearchMarker) return; - - if(layer instanceof L.Marker) - { - if(that._getPath(layer.options,propName)) - { - loc = layer.getLatLng(); - loc.layer = layer; - retRecords[ that._getPath(layer.options,propName) ] = loc; - - }else if(that._getPath(layer.feature.properties,propName)){ - - loc = layer.getLatLng(); - loc.layer = layer; - retRecords[ that._getPath(layer.feature.properties,propName) ] = loc; - - }else{ - console.log("propertyName '"+propName+"' not found in marker", layer); - } - } - else if(layer.hasOwnProperty('feature'))//GeoJSON layer - { - if(layer.feature.properties.hasOwnProperty(propName)) - { - loc = layer.getBounds().getCenter(); - loc.layer = layer; - retRecords[ layer.feature.properties[propName] ] = loc; - } - else - console.log("propertyName '"+propName+"' not found in feature", layer); - } - - },this); - - return retRecords; - }, - - _autoType: function() { - - //TODO implements autype without selection(useful for mobile device) - - var start = this._input.value.length, - firstRecord = this._tooltip.firstChild._text, - end = firstRecord.length; - - if (firstRecord.indexOf(this._input.value) === 0) { // If prefix match - this._input.value = firstRecord; - this._handleAutoresize(); - - if (this._input.createTextRange) { - var selRange = this._input.createTextRange(); - selRange.collapse(true); - selRange.moveStart('character', start); - selRange.moveEnd('character', end); - selRange.select(); - } - else if(this._input.setSelectionRange) { - this._input.setSelectionRange(start, end); - } - else if(this._input.selectionStart) { - this._input.selectionStart = start; - this._input.selectionEnd = end; - } - } - }, - - _hideAutoType: function() { // deselect text: - - var sel; - if ((sel = this._input.selection) && sel.empty) { - sel.empty(); - } - else if (this._input.createTextRange) { - sel = this._input.createTextRange(); - sel.collapse(true); - var end = this._input.value.length; - sel.moveStart('character', end); - sel.moveEnd('character', end); - sel.select(); - } - else { - if (this._input.getSelection) { - this._input.getSelection().removeAllRanges(); - } - this._input.selectionStart = this._input.selectionEnd; - } - }, - - _handleKeypress: function (e) { //run _input keyup event - - switch(e.keyCode) - { - case 27: //Esc - this.collapse(); - break; - case 13: //Enter - if(this._countertips == 1) - this._handleArrowSelect(1); - this._handleSubmit(); //do search - break; - case 38://Up - this._handleArrowSelect(-1); - break; - case 40://Down - this._handleArrowSelect(1); - break; - case 37://Left - case 39://Right - case 16://Shift - case 17://Ctrl - //case 32://Space - break; - case 8://backspace - case 46://delete - this._autoTypeTmp = false;//disable temporarily autoType - break; - default://All keys - - if(this._input.value.length) - this._cancel.style.display = 'block'; - else - this._cancel.style.display = 'none'; - - if(this._input.value.length >= this.options.minLength) - { - var that = this; - clearTimeout(this.timerKeypress); //cancel last search request while type in - this.timerKeypress = setTimeout(function() { //delay before request, for limit jsonp/ajax request - - that._fillRecordsCache(); - - }, this.options.delayType); - } - else - this._hideTooltip(); - } - }, - - _fillRecordsCache: function() { -//TODO important optimization!!! always append data in this._recordsCache -// now _recordsCache content is emptied and replaced with new data founded -// always appending data on _recordsCache give the possibility of caching ajax, jsonp and layersearch! -// -//TODO here insert function that search inputText FIRST in _recordsCache keys and if not find results.. -// run one of callbacks search(callData,jsonpUrl or options.layer) and run this.showTooltip -// -//TODO change structure of _recordsCache -// like this: _recordsCache = {"text-key1": {loc:[lat,lng], ..other attributes.. }, {"text-key2": {loc:[lat,lng]}...}, ...} -// in this mode every record can have a free structure of attributes, only 'loc' is required - - var inputText = this._input.value, - that; - - L.DomUtil.addClass(this._container, 'search-load'); - - if(this.options.callData) //CUSTOM SEARCH CALLBACK - { - that = this; - this.options.callData(inputText, function(jsonraw) { - - that._recordsCache = that._filterJSON(jsonraw); - - that.showTooltip(); - - L.DomUtil.removeClass(that._container, 'search-load'); - }); - } - else if(this.options.url) //JSONP/AJAX REQUEST - { - if(this.options.jsonpParam) - { - that = this; - this._recordsFromJsonp(inputText, function(data) {// is async request then it need callback - that._recordsCache = data; - that.showTooltip(); - L.DomUtil.removeClass(that._container, 'search-load'); - }); - } - else - { - that = this; - this._recordsFromAjax(inputText, function(data) {// is async request then it need callback - that._recordsCache = data; - that.showTooltip(); - L.DomUtil.removeClass(that._container, 'search-load'); - }); - } - } - else if(this.options.layer) //SEARCH ELEMENTS IN PRELOADED LAYER - { - this._recordsCache = this._recordsFromLayer(); //fill table key,value from markers into layer - this.showTooltip(); - L.DomUtil.removeClass(this._container, 'search-load'); - } - }, - - _handleAutoresize: function() { //autoresize this._input - //TODO refact _handleAutoresize now is not accurate - if (this._input.style.maxWidth != this._map._container.offsetWidth) //If maxWidth isn't the same as when first set, reset to current Map width - this._input.style.maxWidth = L.DomUtil.getStyle(this._map._container, 'width'); - - if(this.options.autoResize && (this._container.offsetWidth + 45 < this._map._container.offsetWidth)) - this._input.size = this._input.value.length= (searchTips.length - 1))) {// If at end of list. - L.DomUtil.addClass(searchTips[this._tooltip.currentSelection], 'search-tip-select'); - } - else if ((velocity == -1 ) && (this._tooltip.currentSelection <= 0)) { // Going back up to the search box. - this._tooltip.currentSelection = -1; - } - else if (this._tooltip.style.display != 'none') { // regular up/down - this._tooltip.currentSelection += velocity; - - L.DomUtil.addClass(searchTips[this._tooltip.currentSelection], 'search-tip-select'); - - this._input.value = searchTips[this._tooltip.currentSelection]._text; - - // scroll: - var tipOffsetTop = searchTips[this._tooltip.currentSelection].offsetTop; - - if (tipOffsetTop + searchTips[this._tooltip.currentSelection].clientHeight >= this._tooltip.scrollTop + this._tooltip.clientHeight) { - this._tooltip.scrollTop = tipOffsetTop - this._tooltip.clientHeight + searchTips[this._tooltip.currentSelection].clientHeight; - } - else if (tipOffsetTop <= this._tooltip.scrollTop) { - this._tooltip.scrollTop = tipOffsetTop; - } - } - }, - - _handleSubmit: function() { //button and tooltip click and enter submit - - this._hideAutoType(); - - this.hideAlert(); - this._hideTooltip(); - - if(this._input.style.display == 'none') //on first click show _input only - this.expand(); - else - { - if(this._input.value === '') //hide _input only - this.collapse(); - else - { - var loc = this._getLocation(this._input.value); - - if(loc===false) - this.showAlert(); - else - { - this.showLocation(loc, this._input.value); - this.fire('search_locationfound', { - latlng: loc, - text: this._input.value, - layer: loc.layer ? loc.layer : null - }); - } - //this.collapse(); - //FIXME if collapse in _handleSubmit hide _markerLoc! - } - } - }, - - _getLocation: function(key) { //extract latlng from _recordsCache - - if( this._recordsCache.hasOwnProperty(key) ) - return this._recordsCache[key];//then after use .loc attribute - else - return false; - }, - - showLocation: function(latlng, title) { //set location on map from _recordsCache - - if(this.options.zoom) - this._map.setView(latlng, this.options.zoom); - else - this._map.panTo(latlng); - - if(this._markerLoc) - { - this._markerLoc.setLatLng(latlng); //show circle/marker in location found - this._markerLoc.setTitle(title); - this._markerLoc.show(); - if(this.options.animateLocation) - this._markerLoc.animate(); - //TODO showLocation: start animation after setView or panTo, maybe with map.on('moveend')... - } - - //FIXME autoCollapse option hide this._markerLoc before that visualized!! - if(this.options.autoCollapse) - this.collapse(); - return this; - } -}); - -var SearchMarker = L.Marker.extend({ - - includes: L.Mixin.Events, - - options: { - radius: 10, - weight: 3, - color: '#e03', - stroke: true, - fill: false, - title: '', - //TODO add custom icon! - marker: false //show icon optional, show only circleLoc - }, - - initialize: function (latlng, options) { - L.setOptions(this, options); - L.Marker.prototype.initialize.call(this, latlng, options); - this._circleLoc = new L.CircleMarker(latlng, this.options); - //TODO add inner circle - }, - - onAdd: function (map) { - L.Marker.prototype.onAdd.call(this, map); - map.addLayer(this._circleLoc); - this.hide(); - }, - - onRemove: function (map) { - L.Marker.prototype.onRemove.call(this, map); - map.removeLayer(this._circleLoc); - }, - - setLatLng: function (latlng) { - L.Marker.prototype.setLatLng.call(this, latlng); - this._circleLoc.setLatLng(latlng); - return this; - }, - - setTitle: function(title) { - title = title || ''; - this.options.title = title; - if(this._icon) - this._icon.title = title; - return this; - }, - - show: function() { - if(this.options.marker) - { - if(this._icon) - this._icon.style.display = 'block'; - if(this._shadow) - this._shadow.style.display = 'block'; - //this._bringToFront(); - } - if(this._circleLoc) - { - this._circleLoc.setStyle({fill: this.options.fill, stroke: this.options.stroke}); - //this._circleLoc.bringToFront(); - } - return this; - }, - - hide: function() { - if(this._icon) - this._icon.style.display = 'none'; - if(this._shadow) - this._shadow.style.display = 'none'; - if(this._circleLoc) - this._circleLoc.setStyle({fill: false, stroke: false}); - return this; - }, - - animate: function() { - //TODO refact animate() more smooth! like this: http://goo.gl/DDlRs - var circle = this._circleLoc, - tInt = 200, //time interval - ss = 10, //frames - mr = parseInt(circle._radius/ss), - oldrad = this.options.radius, - newrad = circle._radius * 2.5, - acc = 0; - - circle._timerAnimLoc = setInterval(function() { - acc += 0.5; - mr += acc; //adding acceleration - newrad -= mr; - - circle.setRadius(newrad); - - if(newrad - - - Leaflet.Control.Search - - - - - - -

Leaflet.Control.Search

- -
- A Leaflet Control for search markers/features location by attribute
- and much more. -
- -
-
- Other useful stuff for Web Mapping... -
- -
- -
-

Features

-
    -
  • Autocomplete
  • -
  • No require external Ajax libs
  • -
  • Retrieve data locations by Ajax/Jsonp
  • -
  • Pre-filtering data from Ajax/Jsonp
  • -
  • Complete fields remapping for remote Jsonp service
  • -
  • Data source callback support
  • -
  • Localization placeholder and text alert
  • -
  • Autozoom on location founded
  • -
  • Autoresize textbox
  • -
  • Customize tooltip menu
  • -
  • Many options to customize the behavior
  • -
  • Support search in features collection
  • -
  • Render Search Box Outside the Leaflet Map
  • -
-
- - - - - -Fork me on GitHub - -
- For questions and bugs I recommend you to create New Issue on Github repository.
- Or to obtain a fast response consult Official Leaflet community forum.
-
- This is a micro discussion area for methods of implementation.
-
- -
-
-
- - - - - - diff --git a/bower_components/leaflet-search/package.js b/bower_components/leaflet-search/package.js deleted file mode 100644 index ee47f83..0000000 --- a/bower_components/leaflet-search/package.js +++ /dev/null @@ -1,11 +0,0 @@ -Package.describe({ - summary: "Leaflet Control Search" -}); - -Package.on_use(function (api, where) { - api.add_files('dist/leaflet-search.min.js', 'client'); - api.add_files('dist/leaflet-search.min.css', 'client'); - api.add_files('images/search-icon.png', 'client'); - api.add_files('images/loader.gif', 'client'); - //TODO server-side searching... -}); diff --git a/bower_components/leaflet-search/package.json b/bower_components/leaflet-search/package.json deleted file mode 100644 index aec39c3..0000000 --- a/bower_components/leaflet-search/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "leaflet-search", - "version": "1.5.1", - "description": "Leaflet Control for searching markers/features by attribute on map or remote searching in jsonp/ajax", - "repository": { - "type": "git", - "url": "git@github.com:stefanocudini/leaflet-search.git" - }, - "homepage": "http://labs.easyblog.it/maps/leaflet-search/", - "author": { - "name": "Stefano Cudini", - "email": "stefano.cudini@gmail.com", - "url": "http://labs.easyblog.it/" - }, - "license": "MIT", - "keywords": [ - "gis", - "map", - "leaflet" - ], - "dependencies": { - "leaflet": "*" - }, - "devDependencies": { - "grunt": "~0.4.2", - "grunt-cli": "~0.1.11", - "grunt-contrib-uglify": "~0.2.7", - "grunt-contrib-concat": "~0.3.0", - "grunt-contrib-clean": "~0.5.0", - "grunt-contrib-cssmin": "~0.7.0", - "grunt-contrib-jshint": "~0.7.2", - "grunt-contrib-watch": "~0.5.3", - "grunt-todos": "~0.2.0" - } -} diff --git a/bower_components/leaflet-search/smart.json b/bower_components/leaflet-search/smart.json deleted file mode 100644 index 03567b3..0000000 --- a/bower_components/leaflet-search/smart.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "leaflet-search", - "description": "Leaflet Control for searching markers/features by attribute on map or remote searching in jsonp/ajax", - "homepage": "http://labs.easyblog.it/maps/leaflet-search/", - "author": "Stefano Cudini ", - "version": "1.5.1", - "git": "https://github.com/stefanocudini/leaflet-search.git" -} diff --git a/bower_components/leaflet-search/src/leaflet-search.css b/bower_components/leaflet-search/src/leaflet-search.css deleted file mode 100644 index 02a566f..0000000 --- a/bower_components/leaflet-search/src/leaflet-search.css +++ /dev/null @@ -1,121 +0,0 @@ - -.leaflet-container .leaflet-control-search { - position:relative; - float:left; - background:#fff; - color:#1978cf; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - background-color: rgba(255, 255, 255, 0.8); - z-index:1000; - box-shadow: 0 1px 7px rgba(0,0,0,0.65); - margin-left: 10px; - margin-top: 10px; -} -.leaflet-control-search.search-exp {/*expanded*/ - box-shadow: 0 1px 7px #999; - background: #fff; -} -.leaflet-control-search .search-input { - display:block; - float:left; - background: #fff; - border:1px solid #666; - border-radius:2px; - height:18px; - padding:0 18px 0 2px; - margin:3px 0 3px 3px; -} -.leaflet-control-search.search-load .search-input { - background: url('../images/loader.gif') no-repeat center right #fff; -} -.leaflet-control-search.search-load .search-cancel { - visibility:hidden; -} -.leaflet-control-search .search-cancel { - display:block; - width:22px; - height:18px; - position:absolute; - right:22px; - margin:3px 0; - background: url('../images/search-icon.png') no-repeat 0 -46px; - text-decoration:none; - filter: alpha(opacity=80); - opacity: 0.8; -} -.leaflet-control-search .search-cancel:hover { - filter: alpha(opacity=100); - opacity: 1; -} -.leaflet-control-search .search-cancel span { - display:none;/* comment for cancel button imageless */ - font-size:18px; - line-height:20px; - color:#ccc; - font-weight:bold; -} -.leaflet-control-search .search-cancel:hover span { - color:#aaa; -} -.leaflet-control-search .search-button { - display:block; - float:left; - width:26px; - height:26px; - background: url('../images/search-icon.png') no-repeat 2px 2px; - border-radius:4px; -} -.leaflet-control-search .search-button:hover { - background: url('../images/search-icon.png') no-repeat 2px -22px; -} -.leaflet-control-search .search-tooltip { - position:absolute; - top:100%; - left:0; - float:left; - min-width:80px; - max-height:106px;/*(.search-tip height * 5)*/ - box-shadow: 0 0 8px rgba(0,0,0,0.4); - -webkit-border-radius: 5px; - -webkit-border-top-left-radius: 0; - -moz-border-radius: 5px; - -moz-border-radius-topleft: 0; - border-radius: 5px; - border-top-left-radius: 0; - background-color: rgba(0, 0, 0, 0.25); - z-index:1010; - overflow-y:auto; - overflow-x:hidden; -} -.leaflet-control-search .search-tip { - font-size:.85em; - margin:2px; - padding:2px; - display:block; - color:black; - background: #ddd; - border-radius:.25em; - text-decoration:none; - white-space:nowrap; - font-size:.85em; - vertical-align:center; -} -.leaflet-control-search .search-tip-select, -.leaflet-control-search .search-tip:hover, -.leaflet-control-search .search-button:hover { - background-color: #fff; -} -.leaflet-control-search .search-alert { - cursor:pointer; - clear:both; - font-size:.75em; - margin-bottom:5px; - padding:0 .25em; - color:#e00; - font-weight:bold; - border-radius:.25em; -} - - diff --git a/bower_components/leaflet-search/src/leaflet-search.js b/bower_components/leaflet-search/src/leaflet-search.js deleted file mode 100644 index 538d7b4..0000000 --- a/bower_components/leaflet-search/src/leaflet-search.js +++ /dev/null @@ -1,885 +0,0 @@ -(function() { - -L.Control.Search = L.Control.extend({ - includes: L.Mixin.Events, - // - // Name Data passed Description - // - //Managed Events: - // search_locationfound {latlng, title, layer} fired after moved and show markerLocation - // search_collapsed {} fired after control was collapsed - // - //Public methods: - // setLayer() L.LayerGroup() set layer search at runtime - // showAlert() 'Text message' Show alert message - // - options: { - wrapper: '', //container id to insert Search Control - url: '', //url for search by ajax request, ex: "search.php?q={s}" - jsonpParam: null, //jsonp param name for search by jsonp service, ex: "callback" - layer: null, //layer where search markers(is a L.LayerGroup) - callData: null, //function that fill _recordsCache, passed searching text by first param and callback in second - //TODO important! implements uniq option 'sourceData' that recognizes source type: url,array,callback or layer - //TODO implement can do research on multiple sources - propertyName: 'title', //property in marker.options(or feature.properties for vector layer) trough filter elements in layer, - propertyLoc: 'loc', //field for remapping location, using array: ['latname','lonname'] for select double fields(ex. ['lat','lon'] ) - // support dotted format: 'prop.subprop.title' - callTip: null, //function that return row tip html node(or html string), receive text tooltip in first param - filterJSON: null, //callback for filtering data to _recordsCache - minLength: 1, //minimal text length for autocomplete - initial: true, //search elements only by initial text - autoType: true, //complete input with first suggested result and select this filled-in text. - delayType: 400, //delay while typing for show tooltip - tooltipLimit: -1, //limit max results to show in tooltip. -1 for no limit. - tipAutoSubmit: true, //auto map panTo when click on tooltip - autoResize: true, //autoresize on input change - collapsed: true, //collapse search control at startup - autoCollapse: false, //collapse search control after submit(on button or on tips if enabled tipAutoSubmit) - //TODO add option for persist markerLoc after collapse! - autoCollapseTime: 1200, //delay for autoclosing alert and collapse after blur - animateLocation: true, //animate a circle over location found - circleLocation: true, //draw a circle in location found - markerLocation: false, //draw a marker in location found - zoom: null, //zoom after pan to location found, default: map.getZoom() - text: 'Search...', //placeholder value - textCancel: 'Cancel', //title in cancel button - textErr: 'Location not found', //error message - position: 'topleft' - //TODO add option collapsed, like control.layers - }, -//FIXME option condition problem {autoCollapse: true, markerLocation: true} not show location -//FIXME option condition problem {autoCollapse: false } -// -//TODO important optimization!!! always append data in this._recordsCache -// now _recordsCache content is emptied and replaced with new data founded -// always appending data on _recordsCache give the possibility of caching ajax, jsonp and layersearch! -// -//TODO here insert function that search inputText FIRST in _recordsCache keys and if not find results.. -// run one of callbacks search(callData,jsonpUrl or options.layer) and run this.showTooltip -// -//TODO change structure of _recordsCache -// like this: _recordsCache = {"text-key1": {loc:[lat,lng], ..other attributes.. }, {"text-key2": {loc:[lat,lng]}...}, ...} -// in this mode every record can have a free structure of attributes, only 'loc' is required - - initialize: function(options) { - L.Util.setOptions(this, options || {}); - this._inputMinSize = this.options.text ? this.options.text.length : 10; - this._layer = this.options.layer || new L.LayerGroup(); - this._filterJSON = this.options.filterJSON || this._defaultFilterJSON; - this._autoTypeTmp = this.options.autoType; //useful for disable autoType temporarily in delete/backspace keydown - this._countertips = 0; //number of tips items - this._recordsCache = {}; //key,value table! that store locations! format: key,latlng - }, - - onAdd: function (map) { - this._map = map; - this._container = L.DomUtil.create('div', 'leaflet-control-search'); - this._input = this._createInput(this.options.text, 'search-input'); - this._tooltip = this._createTooltip('search-tooltip'); - this._cancel = this._createCancel(this.options.textCancel, 'search-cancel'); - this._button = this._createButton(this.options.text, 'search-button'); - this._alert = this._createAlert('search-alert'); - - if(this.options.collapsed===false) - this.expand(); - - if(this.options.circleLocation || this.options.markerLocation) - this._markerLoc = new SearchMarker([0,0], {marker: this.options.markerLocation});//see below - - this.setLayer( this._layer ); - map.on({ - // 'layeradd': this._onLayerAddRemove, - // 'layerremove': this._onLayerAddRemove - 'resize': this._handleAutoresize - }, this); - return this._container; - }, - addTo: function (map) { - - if(this.options.wrapper) { - this._container = this.onAdd(map); - this._wrapper = L.DomUtil.get(this.options.wrapper); - this._wrapper.style.position = 'relative'; - this._wrapper.appendChild(this._container); - } - else - L.Control.prototype.addTo.call(this, map); - - return this; - }, - - onRemove: function(map) { - this._recordsCache = {}; - // map.off({ - // 'layeradd': this._onLayerAddRemove, - // 'layerremove': this._onLayerAddRemove - // }, this); - }, - - // _onLayerAddRemove: function(e) { - // //console.info('_onLayerAddRemove'); - // //without this, run setLayer also for each Markers!! to optimize! - // if(e.layer instanceof L.LayerGroup) - // if( L.stamp(e.layer) != L.stamp(this._layer) ) - // this.setLayer(e.layer); - // }, - - _getPath: function(obj, prop) { - var parts = prop.split('.'), - last = parts.pop(), - len = parts.length, - cur = parts[0], - i = 1; - - if(len > 0) - while((obj = obj[cur]) && i < len) - cur = parts[i++]; - - if(obj) - return obj[last]; - }, - - setLayer: function(layer) { //set search layer at runtime - //this.options.layer = layer; //setting this, run only this._recordsFromLayer() - this._layer = layer; - this._layer.addTo(this._map); - if(this._markerLoc) - this._layer.addLayer(this._markerLoc); - return this; - }, - - showAlert: function(text) { - text = text || this.options.textErr; - this._alert.style.display = 'block'; - this._alert.innerHTML = text; - clearTimeout(this.timerAlert); - var that = this; - this.timerAlert = setTimeout(function() { - that.hideAlert(); - },this.options.autoCollapseTime); - return this; - }, - - hideAlert: function() { - this._alert.style.display = 'none'; - return this; - }, - - cancel: function() { - this._input.value = ''; - this._handleKeypress({keyCode:8});//simulate backspace keypress - this._input.size = this._inputMinSize; - this._input.focus(); - this._cancel.style.display = 'none'; - return this; - }, - - expand: function() { - this._input.style.display = 'block'; - L.DomUtil.addClass(this._container, 'search-exp'); - this._input.focus(); - this._map.on('dragstart', this.collapse, this); - return this; - }, - - collapse: function() { - this._hideTooltip(); - this.cancel(); - this._alert.style.display = 'none'; - this._input.blur(); - if(this.options.collapsed) - { - this._input.style.display = 'none'; - this._cancel.style.display = 'none'; - L.DomUtil.removeClass(this._container, 'search-exp'); - //this._markerLoc.hide();//maybe unuseful - this._map.off('dragstart', this.collapse, this); - } - this.fire('search_collapsed'); - return this; - }, - - collapseDelayed: function() { //collapse after delay, used on_input blur - if (!this.options.autoCollapse) return this; - var that = this; - clearTimeout(this.timerCollapse); - this.timerCollapse = setTimeout(function() { - that.collapse(); - }, this.options.autoCollapseTime); - return this; - }, - - collapseDelayedStop: function() { - clearTimeout(this.timerCollapse); - return this; - }, - -////start DOM creations - _createAlert: function(className) { - var alert = L.DomUtil.create('div', className, this._container); - alert.style.display = 'none'; - - L.DomEvent - .on(alert, 'click', L.DomEvent.stop, this) - .on(alert, 'click', this.hideAlert, this); - - return alert; - }, - - _createInput: function (text, className) { - var input = L.DomUtil.create('input', className, this._container); - input.type = 'text'; - input.size = this._inputMinSize; - input.value = ''; - input.autocomplete = 'off'; - input.placeholder = text; - input.style.display = 'none'; - - L.DomEvent - .disableClickPropagation(input) - .on(input, 'keyup', this._handleKeypress, this) - .on(input, 'keydown', this._handleAutoresize, this) - .on(input, 'blur', this.collapseDelayed, this) - .on(input, 'focus', this.collapseDelayedStop, this); - - return input; - }, - - _createCancel: function (title, className) { - var cancel = L.DomUtil.create('a', className, this._container); - cancel.href = '#'; - cancel.title = title; - cancel.style.display = 'none'; - cancel.innerHTML = "";//imageless(see css) - - L.DomEvent - .on(cancel, 'click', L.DomEvent.stop, this) - .on(cancel, 'click', this.cancel, this); - - return cancel; - }, - - _createButton: function (title, className) { - var button = L.DomUtil.create('a', className, this._container); - button.href = '#'; - button.title = title; - - L.DomEvent - .on(button, 'click', L.DomEvent.stop, this) - .on(button, 'click', this._handleSubmit, this) - .on(button, 'focus', this.collapseDelayedStop, this) - .on(button, 'blur', this.collapseDelayed, this); - - return button; - }, - - _createTooltip: function(className) { - var tool = L.DomUtil.create('div', className, this._container); - tool.style.display = 'none'; - - var that = this; - L.DomEvent - .disableClickPropagation(tool) - .on(tool, 'blur', this.collapseDelayed, this) - .on(tool, 'mousewheel', function(e) { - that.collapseDelayedStop(); - L.DomEvent.stopPropagation(e);//disable zoom map - }, this) - .on(tool, 'mouseover', function(e) { - that.collapseDelayedStop(); - }, this); - return tool; - }, - - _createTip: function(text, val) {//val is object in recordCache, usually is Latlng - var tip; - - if(this.options.callTip) - { - tip = this.options.callTip(text,val); //custom tip node or html string - if(typeof tip === 'string') - { - var tmpNode = L.DomUtil.create('div'); - tmpNode.innerHTML = tip; - tip = tmpNode.firstChild; - } - } - else - { - tip = L.DomUtil.create('a', ''); - tip.href = '#'; - tip.innerHTML = text; - } - - L.DomUtil.addClass(tip, 'search-tip'); - tip._text = text; //value replaced in this._input and used by _autoType - - L.DomEvent - .disableClickPropagation(tip) - .on(tip, 'click', L.DomEvent.stop, this) - .on(tip, 'click', function(e) { - this._input.value = text; - this._handleAutoresize(); - this._input.focus(); - this._hideTooltip(); - if(this.options.tipAutoSubmit)//go to location at once - this._handleSubmit(); - }, this); - - return tip; - }, - -//////end DOM creations - - _filterRecords: function(text) { //Filter this._recordsCache case insensitive and much more.. - - var regFilter = new RegExp("^[.]$|[\[\]|()*]",'g'), //remove . * | ( ) ] [ - I, regSearch, - frecords = {}; - - text = text.replace(regFilter,''); //sanitize text - I = this.options.initial ? '^' : ''; //search only initial text - //TODO add option for case sesitive search, also showLocation - regSearch = new RegExp(I + text,'i'); - - //TODO use .filter or .map - for(var key in this._recordsCache) - if( regSearch.test(key) ) - frecords[key]= this._recordsCache[key]; - - return frecords; - }, - - showTooltip: function() { - var filteredRecords, newTip; - - this._countertips = 0; - - //FIXME problem with jsonp/ajax when remote filter has different behavior of this._filterRecords - if(this.options.layer) - filteredRecords = this._filterRecords( this._input.value ); - else - filteredRecords = this._recordsCache; - - this._tooltip.innerHTML = ''; - this._tooltip.currentSelection = -1; //inizialized for _handleArrowSelect() - - for(var key in filteredRecords)//fill tooltip - { - if(++this._countertips == this.options.tooltipLimit) break; - - newTip = this._createTip(key, filteredRecords[key] ); - - this._tooltip.appendChild(newTip); - } - - if(this._countertips > 0) - { - this._tooltip.style.display = 'block'; - if(this._autoTypeTmp) - this._autoType(); - this._autoTypeTmp = this.options.autoType;//reset default value - } - else - this._hideTooltip(); - - this._tooltip.scrollTop = 0; - return this._countertips; - }, - - _hideTooltip: function() { - this._tooltip.style.display = 'none'; - this._tooltip.innerHTML = ''; - return 0; - }, - - _defaultFilterJSON: function(json) { //default callback for filter data - var jsonret = {}, i, - propName = this.options.propertyName, - propLoc = this.options.propertyLoc; - - if( L.Util.isArray(propLoc) ) - for(i in json) - jsonret[ this._getPath(json[i],propName) ]= L.latLng( json[i][ propLoc[0] ], json[i][ propLoc[1] ] ); - else - for(i in json) - jsonret[ this._getPath(json[i],propName) ]= L.latLng( this._getPath(json[i],propLoc) ); - //TODO throw new Error("propertyName '"+propName+"' not found in JSON data"); - return jsonret; - }, - - _recordsFromJsonp: function(text, callAfter) { //extract searched records from remote jsonp service - //TODO remove script node after call run - var that = this; - L.Control.Search.callJsonp = function(data) { //jsonp callback - var fdata = that._filterJSON(data);//_filterJSON defined in inizialize... - callAfter(fdata); - } - var script = L.DomUtil.create('script','search-jsonp', document.getElementsByTagName('body')[0] ), - url = L.Util.template(this.options.url+'&'+this.options.jsonpParam+'=L.Control.Search.callJsonp', {s: text}); //parsing url - //rnd = '&_='+Math.floor(Math.random()*10000); - //TODO add rnd param or randomize callback name! in recordsFromJsonp - script.type = 'text/javascript'; - script.src = url; - return this; - //may be return {abort: function() { script.parentNode.removeChild(script); } }; - }, - - _recordsFromAjax: function(text, callAfter) { //Ajax request - if (window.XMLHttpRequest === undefined) { - window.XMLHttpRequest = function() { - try { return new ActiveXObject("Microsoft.XMLHTTP.6.0"); } - catch (e1) { - try { return new ActiveXObject("Microsoft.XMLHTTP.3.0"); } - catch (e2) { throw new Error("XMLHttpRequest is not supported"); } - } - }; - } - var request = new XMLHttpRequest(), - url = L.Util.template(this.options.url, {s: text}), //parsing url - //rnd = '&_='+Math.floor(Math.random()*10000); - //TODO add rnd param or randomize callback name! in recordsFromAjax - response = {}; - - request.open("GET", url); - var that = this; - request.onreadystatechange = function() { - if(request.readyState === 4 && request.status === 200) { - response = JSON.parse(request.responseText); - var fdata = that._filterJSON(response);//_filterJSON defined in inizialize... - callAfter(fdata); - } - }; - request.send(); - return this; - }, - - _recordsFromLayer: function() { //return table: key,value from layer - var that = this, - retRecords = {}, - propName = this.options.propertyName, - loc; - - this._layer.eachLayer(function(layer) { - - if(layer instanceof SearchMarker) return; - - if(layer instanceof L.Marker) - { - if(that._getPath(layer.options,propName)) - { - loc = layer.getLatLng(); - loc.layer = layer; - retRecords[ that._getPath(layer.options,propName) ] = loc; - - }else if(that._getPath(layer.feature.properties,propName)){ - - loc = layer.getLatLng(); - loc.layer = layer; - retRecords[ that._getPath(layer.feature.properties,propName) ] = loc; - - }else{ - console.log("propertyName '"+propName+"' not found in marker", layer); - } - } - else if(layer.hasOwnProperty('feature'))//GeoJSON layer - { - if(layer.feature.properties.hasOwnProperty(propName)) - { - loc = layer.getBounds().getCenter(); - loc.layer = layer; - retRecords[ layer.feature.properties[propName] ] = loc; - } - else - console.log("propertyName '"+propName+"' not found in feature", layer); - } - - },this); - - return retRecords; - }, - - _autoType: function() { - - //TODO implements autype without selection(useful for mobile device) - - var start = this._input.value.length, - firstRecord = this._tooltip.firstChild._text, - end = firstRecord.length; - - if (firstRecord.indexOf(this._input.value) === 0) { // If prefix match - this._input.value = firstRecord; - this._handleAutoresize(); - - if (this._input.createTextRange) { - var selRange = this._input.createTextRange(); - selRange.collapse(true); - selRange.moveStart('character', start); - selRange.moveEnd('character', end); - selRange.select(); - } - else if(this._input.setSelectionRange) { - this._input.setSelectionRange(start, end); - } - else if(this._input.selectionStart) { - this._input.selectionStart = start; - this._input.selectionEnd = end; - } - } - }, - - _hideAutoType: function() { // deselect text: - - var sel; - if ((sel = this._input.selection) && sel.empty) { - sel.empty(); - } - else if (this._input.createTextRange) { - sel = this._input.createTextRange(); - sel.collapse(true); - var end = this._input.value.length; - sel.moveStart('character', end); - sel.moveEnd('character', end); - sel.select(); - } - else { - if (this._input.getSelection) { - this._input.getSelection().removeAllRanges(); - } - this._input.selectionStart = this._input.selectionEnd; - } - }, - - _handleKeypress: function (e) { //run _input keyup event - - switch(e.keyCode) - { - case 27: //Esc - this.collapse(); - break; - case 13: //Enter - if(this._countertips == 1) - this._handleArrowSelect(1); - this._handleSubmit(); //do search - break; - case 38://Up - this._handleArrowSelect(-1); - break; - case 40://Down - this._handleArrowSelect(1); - break; - case 37://Left - case 39://Right - case 16://Shift - case 17://Ctrl - //case 32://Space - break; - case 8://backspace - case 46://delete - this._autoTypeTmp = false;//disable temporarily autoType - break; - default://All keys - - if(this._input.value.length) - this._cancel.style.display = 'block'; - else - this._cancel.style.display = 'none'; - - if(this._input.value.length >= this.options.minLength) - { - var that = this; - clearTimeout(this.timerKeypress); //cancel last search request while type in - this.timerKeypress = setTimeout(function() { //delay before request, for limit jsonp/ajax request - - that._fillRecordsCache(); - - }, this.options.delayType); - } - else - this._hideTooltip(); - } - }, - - _fillRecordsCache: function() { -//TODO important optimization!!! always append data in this._recordsCache -// now _recordsCache content is emptied and replaced with new data founded -// always appending data on _recordsCache give the possibility of caching ajax, jsonp and layersearch! -// -//TODO here insert function that search inputText FIRST in _recordsCache keys and if not find results.. -// run one of callbacks search(callData,jsonpUrl or options.layer) and run this.showTooltip -// -//TODO change structure of _recordsCache -// like this: _recordsCache = {"text-key1": {loc:[lat,lng], ..other attributes.. }, {"text-key2": {loc:[lat,lng]}...}, ...} -// in this mode every record can have a free structure of attributes, only 'loc' is required - - var inputText = this._input.value, - that; - - L.DomUtil.addClass(this._container, 'search-load'); - - if(this.options.callData) //CUSTOM SEARCH CALLBACK - { - that = this; - this.options.callData(inputText, function(jsonraw) { - - that._recordsCache = that._filterJSON(jsonraw); - - that.showTooltip(); - - L.DomUtil.removeClass(that._container, 'search-load'); - }); - } - else if(this.options.url) //JSONP/AJAX REQUEST - { - if(this.options.jsonpParam) - { - that = this; - this._recordsFromJsonp(inputText, function(data) {// is async request then it need callback - that._recordsCache = data; - that.showTooltip(); - L.DomUtil.removeClass(that._container, 'search-load'); - }); - } - else - { - that = this; - this._recordsFromAjax(inputText, function(data) {// is async request then it need callback - that._recordsCache = data; - that.showTooltip(); - L.DomUtil.removeClass(that._container, 'search-load'); - }); - } - } - else if(this.options.layer) //SEARCH ELEMENTS IN PRELOADED LAYER - { - this._recordsCache = this._recordsFromLayer(); //fill table key,value from markers into layer - this.showTooltip(); - L.DomUtil.removeClass(this._container, 'search-load'); - } - }, - - _handleAutoresize: function() { //autoresize this._input - //TODO refact _handleAutoresize now is not accurate - if (this._input.style.maxWidth != this._map._container.offsetWidth) //If maxWidth isn't the same as when first set, reset to current Map width - this._input.style.maxWidth = L.DomUtil.getStyle(this._map._container, 'width'); - - if(this.options.autoResize && (this._container.offsetWidth + 45 < this._map._container.offsetWidth)) - this._input.size = this._input.value.length= (searchTips.length - 1))) {// If at end of list. - L.DomUtil.addClass(searchTips[this._tooltip.currentSelection], 'search-tip-select'); - } - else if ((velocity == -1 ) && (this._tooltip.currentSelection <= 0)) { // Going back up to the search box. - this._tooltip.currentSelection = -1; - } - else if (this._tooltip.style.display != 'none') { // regular up/down - this._tooltip.currentSelection += velocity; - - L.DomUtil.addClass(searchTips[this._tooltip.currentSelection], 'search-tip-select'); - - this._input.value = searchTips[this._tooltip.currentSelection]._text; - - // scroll: - var tipOffsetTop = searchTips[this._tooltip.currentSelection].offsetTop; - - if (tipOffsetTop + searchTips[this._tooltip.currentSelection].clientHeight >= this._tooltip.scrollTop + this._tooltip.clientHeight) { - this._tooltip.scrollTop = tipOffsetTop - this._tooltip.clientHeight + searchTips[this._tooltip.currentSelection].clientHeight; - } - else if (tipOffsetTop <= this._tooltip.scrollTop) { - this._tooltip.scrollTop = tipOffsetTop; - } - } - }, - - _handleSubmit: function() { //button and tooltip click and enter submit - - this._hideAutoType(); - - this.hideAlert(); - this._hideTooltip(); - - if(this._input.style.display == 'none') //on first click show _input only - this.expand(); - else - { - if(this._input.value === '') //hide _input only - this.collapse(); - else - { - var loc = this._getLocation(this._input.value); - - if(loc===false) - this.showAlert(); - else - { - this.showLocation(loc, this._input.value); - this.fire('search_locationfound', { - latlng: loc, - text: this._input.value, - layer: loc.layer ? loc.layer : null - }); - } - //this.collapse(); - //FIXME if collapse in _handleSubmit hide _markerLoc! - } - } - }, - - _getLocation: function(key) { //extract latlng from _recordsCache - - if( this._recordsCache.hasOwnProperty(key) ) - return this._recordsCache[key];//then after use .loc attribute - else - return false; - }, - - showLocation: function(latlng, title) { //set location on map from _recordsCache - - if(this.options.zoom) - this._map.setView(latlng, this.options.zoom); - else - this._map.panTo(latlng); - - if(this._markerLoc) - { - this._markerLoc.setLatLng(latlng); //show circle/marker in location found - this._markerLoc.setTitle(title); - this._markerLoc.show(); - if(this.options.animateLocation) - this._markerLoc.animate(); - //TODO showLocation: start animation after setView or panTo, maybe with map.on('moveend')... - } - - //FIXME autoCollapse option hide this._markerLoc before that visualized!! - if(this.options.autoCollapse) - this.collapse(); - return this; - } -}); - -var SearchMarker = L.Marker.extend({ - - includes: L.Mixin.Events, - - options: { - radius: 10, - weight: 3, - color: '#e03', - stroke: true, - fill: false, - title: '', - //TODO add custom icon! - marker: false //show icon optional, show only circleLoc - }, - - initialize: function (latlng, options) { - L.setOptions(this, options); - L.Marker.prototype.initialize.call(this, latlng, options); - this._circleLoc = new L.CircleMarker(latlng, this.options); - //TODO add inner circle - }, - - onAdd: function (map) { - L.Marker.prototype.onAdd.call(this, map); - map.addLayer(this._circleLoc); - this.hide(); - }, - - onRemove: function (map) { - L.Marker.prototype.onRemove.call(this, map); - map.removeLayer(this._circleLoc); - }, - - setLatLng: function (latlng) { - L.Marker.prototype.setLatLng.call(this, latlng); - this._circleLoc.setLatLng(latlng); - return this; - }, - - setTitle: function(title) { - title = title || ''; - this.options.title = title; - if(this._icon) - this._icon.title = title; - return this; - }, - - show: function() { - if(this.options.marker) - { - if(this._icon) - this._icon.style.display = 'block'; - if(this._shadow) - this._shadow.style.display = 'block'; - //this._bringToFront(); - } - if(this._circleLoc) - { - this._circleLoc.setStyle({fill: this.options.fill, stroke: this.options.stroke}); - //this._circleLoc.bringToFront(); - } - return this; - }, - - hide: function() { - if(this._icon) - this._icon.style.display = 'none'; - if(this._shadow) - this._shadow.style.display = 'none'; - if(this._circleLoc) - this._circleLoc.setStyle({fill: false, stroke: false}); - return this; - }, - - animate: function() { - //TODO refact animate() more smooth! like this: http://goo.gl/DDlRs - var circle = this._circleLoc, - tInt = 200, //time interval - ss = 10, //frames - mr = parseInt(circle._radius/ss), - oldrad = this.options.radius, - newrad = circle._radius * 2.5, - acc = 0; - - circle._timerAnimLoc = setInterval(function() { - acc += 0.5; - mr += acc; //adding acceleration - newrad -= mr; - - circle.setRadius(newrad); - - if(newrad