@zwishing/emap 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/LICENSE +373 -0
  3. package/README.md +294 -0
  4. package/SECURITY.md +56 -0
  5. package/dist/adapter/mapshaper-adapter.d.ts +282 -0
  6. package/dist/core/drag-pan-handler.d.ts +28 -0
  7. package/dist/core/events.d.ts +16 -0
  8. package/dist/core/interactions.d.ts +20 -0
  9. package/dist/core/mapshaper-worker-pool.d.ts +151 -0
  10. package/dist/core/tween.d.ts +26 -0
  11. package/dist/edit/commands/composite.d.ts +16 -0
  12. package/dist/edit/commands/dataset-replace.d.ts +43 -0
  13. package/dist/edit/commands/feature-affine.d.ts +72 -0
  14. package/dist/edit/commands/feature-create.d.ts +47 -0
  15. package/dist/edit/commands/feature-delete.d.ts +72 -0
  16. package/dist/edit/commands/feature-property-change.d.ts +34 -0
  17. package/dist/edit/commands/feature-translate.d.ts +55 -0
  18. package/dist/edit/commands/field-add.d.ts +24 -0
  19. package/dist/edit/commands/field-remove.d.ts +20 -0
  20. package/dist/edit/commands/field-rename.d.ts +19 -0
  21. package/dist/edit/commands/split-shared-arcs.d.ts +71 -0
  22. package/dist/edit/commands/vertex-delete.d.ts +26 -0
  23. package/dist/edit/commands/vertex-insert.d.ts +26 -0
  24. package/dist/edit/commands/vertex-move.d.ts +45 -0
  25. package/dist/edit/edit-command.d.ts +72 -0
  26. package/dist/edit/edit-history.d.ts +130 -0
  27. package/dist/edit/transaction.d.ts +59 -0
  28. package/dist/emap-worker.js +1 -0
  29. package/dist/emap.css +157 -0
  30. package/dist/emap.js +5 -0
  31. package/dist/emap.mjs +5 -0
  32. package/dist/geo/bounds.d.ts +18 -0
  33. package/dist/geo/crs-resolver.d.ts +35 -0
  34. package/dist/geo/projection.d.ts +28 -0
  35. package/dist/geo/transform.d.ts +19 -0
  36. package/dist/geo/viewport.d.ts +52 -0
  37. package/dist/index.d.ts +86 -0
  38. package/dist/map/attribute-ops.d.ts +61 -0
  39. package/dist/map/command-args.d.ts +28 -0
  40. package/dist/map/edit-sessions.d.ts +97 -0
  41. package/dist/map/edit-state-store.d.ts +41 -0
  42. package/dist/map/emap-host.d.ts +79 -0
  43. package/dist/map/feature-accessor.d.ts +43 -0
  44. package/dist/map/feature-query.d.ts +58 -0
  45. package/dist/map/highlight-manager.d.ts +17 -0
  46. package/dist/map/layer-registry.d.ts +33 -0
  47. package/dist/map/layer.d.ts +29 -0
  48. package/dist/map/map.d.ts +386 -0
  49. package/dist/map/mapshaper-ops.d.ts +56 -0
  50. package/dist/map/op-result.d.ts +46 -0
  51. package/dist/map/ops/_context.d.ts +41 -0
  52. package/dist/map/ops/_runner.d.ts +55 -0
  53. package/dist/map/ops/affine.d.ts +4 -0
  54. package/dist/map/ops/buffer.d.ts +4 -0
  55. package/dist/map/ops/check-geometry.d.ts +4 -0
  56. package/dist/map/ops/clean.d.ts +4 -0
  57. package/dist/map/ops/clip-erase.d.ts +5 -0
  58. package/dist/map/ops/data-fill.d.ts +4 -0
  59. package/dist/map/ops/dissolve.d.ts +20 -0
  60. package/dist/map/ops/divide.d.ts +4 -0
  61. package/dist/map/ops/drop-layer.d.ts +4 -0
  62. package/dist/map/ops/each-filter.d.ts +5 -0
  63. package/dist/map/ops/explode.d.ts +4 -0
  64. package/dist/map/ops/filter-fields.d.ts +4 -0
  65. package/dist/map/ops/filter-geom.d.ts +4 -0
  66. package/dist/map/ops/filter-islands.d.ts +4 -0
  67. package/dist/map/ops/filter-slivers.d.ts +4 -0
  68. package/dist/map/ops/innerlines.d.ts +4 -0
  69. package/dist/map/ops/intersection-points.d.ts +4 -0
  70. package/dist/map/ops/join-table.d.ts +4 -0
  71. package/dist/map/ops/lines.d.ts +4 -0
  72. package/dist/map/ops/merge-layers.d.ts +4 -0
  73. package/dist/map/ops/mosaic.d.ts +4 -0
  74. package/dist/map/ops/points.d.ts +4 -0
  75. package/dist/map/ops/polygons.d.ts +4 -0
  76. package/dist/map/ops/project.d.ts +4 -0
  77. package/dist/map/ops/rebuild-topology.d.ts +4 -0
  78. package/dist/map/ops/rename-fields.d.ts +4 -0
  79. package/dist/map/ops/rename-layer.d.ts +4 -0
  80. package/dist/map/ops/simplify.d.ts +4 -0
  81. package/dist/map/ops/snap.d.ts +4 -0
  82. package/dist/map/ops/sort-features.d.ts +4 -0
  83. package/dist/map/ops/split-layer.d.ts +4 -0
  84. package/dist/map/ops/union.d.ts +4 -0
  85. package/dist/map/ops/unique-features.d.ts +4 -0
  86. package/dist/map/selection.d.ts +73 -0
  87. package/dist/map/types.d.ts +1072 -0
  88. package/dist/map/worker-routing.d.ts +40 -0
  89. package/dist/mapshaper-vendor.js +1 -0
  90. package/dist/renderer/canvas-painter.d.ts +50 -0
  91. package/dist/renderer/edit-overlay-renderer.d.ts +22 -0
  92. package/dist/renderer/painter.d.ts +52 -0
  93. package/dist/shim.d.ts +1 -0
  94. package/dist/source/display-arcs.d.ts +49 -0
  95. package/dist/source/layer-utils.d.ts +12 -0
  96. package/dist/source/mapshaper-runner.d.ts +22 -0
  97. package/dist/source/source.d.ts +80 -0
  98. package/dist/source/topology-source.d.ts +145 -0
  99. package/dist/types/mapshaper-types.d.ts +182 -0
  100. package/dist/ui/basemap-control.d.ts +35 -0
  101. package/dist/ui/box-select-control.d.ts +67 -0
  102. package/dist/ui/control.d.ts +6 -0
  103. package/dist/ui/draw-feature-control.d.ts +82 -0
  104. package/dist/ui/edit-toolbar.d.ts +27 -0
  105. package/dist/ui/history-control.d.ts +29 -0
  106. package/dist/ui/lasso-select-control.d.ts +96 -0
  107. package/dist/ui/navigation-control.d.ts +16 -0
  108. package/dist/ui/simplify-control.d.ts +40 -0
  109. package/dist/ui/status-control.d.ts +23 -0
  110. package/dist/ui/vertex-edit-control.d.ts +111 -0
  111. package/dist/validation/builtin/topology.d.ts +19 -0
  112. package/dist/validation/registry.d.ts +23 -0
  113. package/dist/validation/validator.d.ts +47 -0
  114. package/package.json +90 -0
@@ -0,0 +1 @@
1
+ importScripts("mapshaper-vendor.js"),function(i){"use strict";function t(i,t){return t.forEach(function(t){t&&"string"!=typeof t&&!Array.isArray(t)&&Object.keys(t).forEach(function(n){if("default"!==n&&!(n in i)){var a=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(i,n,a.get?a:{enumerable:!0,get:function(){return t[n]}})}})}),Object.freeze(i)}function n(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}function a(i){if(i.__esModule)return i;var t=i.default;if("function"==typeof t){var n=function i(){return this instanceof i?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(i).forEach(function(t){var a=Object.getOwnPropertyDescriptor(i,t);Object.defineProperty(n,t,a.get?a:{enumerable:!0,get:function(){return i[t]}})}),n}var e={exports:{}},s=a(Object.freeze({__proto__:null,default:{}}));function r(i,t){for(var n=0,a=i.length-1;a>=0;a--){var e=i[a];"."===e?i.splice(a,1):".."===e?(i.splice(a,1),n++):n&&(i.splice(a,1),n--)}if(t)for(;n--;n)i.unshift("..");return i}var o=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,h=function(i){return o.exec(i).slice(1)};function p(){for(var i="",t=!1,n=arguments.length-1;n>=-1&&!t;n--){var a=n>=0?arguments[n]:"/";if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(i=a+"/"+i,t="/"===a.charAt(0))}return(t?"/":"")+(i=r(v(i.split("/"),function(i){return!!i}),!t).join("/"))||"."}function l(i){var t=c(i),n="/"===A(i,-1);return(i=r(v(i.split("/"),function(i){return!!i}),!t).join("/"))||t||(i="."),i&&n&&(i+="/"),(t?"/":"")+i}function c(i){return"/"===i.charAt(0)}function u(){return l(v(Array.prototype.slice.call(arguments,0),function(i,t){if("string"!=typeof i)throw new TypeError("Arguments to path.join must be strings");return i}).join("/"))}function _(i,t){function n(i){for(var t=0;t<i.length&&""===i[t];t++);for(var n=i.length-1;n>=0&&""===i[n];n--);return t>n?[]:i.slice(t,n-t+1)}i=p(i).substr(1),t=p(t).substr(1);for(var a=n(i.split("/")),e=n(t.split("/")),s=Math.min(a.length,e.length),r=s,o=0;o<s;o++)if(a[o]!==e[o]){r=o;break}var h=[];for(o=r;o<a.length;o++)h.push("..");return(h=h.concat(e.slice(r))).join("/")}function f(i){var t=h(i),n=t[0],a=t[1];return n||a?(a&&(a=a.substr(0,a.length-1)),n+a):"."}function m(i,t){var n=h(i)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n}function d(i){return h(i)[3]}var y={extname:d,basename:m,dirname:f,sep:"/",delimiter:":",relative:_,join:u,isAbsolute:c,normalize:l,resolve:p};function v(i,t){if(i.filter)return i.filter(t);for(var n=[],a=0;a<i.length;a++)t(i[a],a,i)&&n.push(i[a]);return n}var g,A="b"==="ab".substr(-1)?function(i,t,n){return i.substr(t,n)}:function(i,t,n){return t<0&&(t=i.length+t),i.substr(t,n)},C=a(Object.freeze({__proto__:null,basename:m,default:y,delimiter:":",dirname:f,extname:d,isAbsolute:c,join:u,normalize:l,relative:_,resolve:p,sep:"/"}));g=e,function(){var i=Math.abs,t=Math.floor,n=Math.sin,a=Math.cos,e=Math.tan,r=Math.asin,o=Math.acos,h=Math.atan,p=Math.atan2,l=Math.sqrt,c=Math.pow,u=Math.exp,_=Math.log,f=Math.hypot,m=Math.sinh,d=Math.cosh,y=Math.min,v=Math.max,A=1/0,S=Math.PI,x=57.29577951308232,M=.017453292519943295,E=6378137,b=.0066943799901413165,w=S/4,N=S/2,I=1.5*S,G=2*S,k=2/S,P=-45,T=-47,D=1e-10,O={last_errno:0,debug_level:0,logger:null},L=["no arguments in initialization list","no options found in 'init' file","invalid init= string","projection not named","unknown projection id","effective eccentricity = 1","unknown unit conversion id","invalid boolean param argument","unknown elliptical parameter name","reciprocal flattening (1/f) = 0","|radius reference latitude| > 90","squared eccentricity < 0","major axis or radius = 0 or not given","latitude or longitude exceeded limits","invalid x or y","improperly formed DMS value","non-convergent inverse meridional dist","non-convergent inverse phi2","acos/asin: |arg| >1+1e-14","tolerance condition error","conic lat_1 = -lat_2","lat_1 >= 90","lat_1 = 0","lat_ts >= 90","no distance between control points","projection not selected to be rotated","W <= 0 or M <= 0","lsat not in 1-5 range","path not in range","h <= 0","k <= 0","lat_0 = 0 or 90 or alpha = 90","lat_1=lat_2 or lat_1=0 or lat_2=90","elliptical usage required","invalid UTM zone number","arg(s) out of range for Tcheby eval","failed to find projection to be rotated","failed to load datum shift file","both n & m must be spec'd and > 0","n <= 0, n > 1 or not specified","lat_1 or lat_2 not specified","|lat_1| == |lat_2|","lat_0 is pi/2 from mean lat","unparseable coordinate system definition","geocentric transformation missing z or ellps","unknown prime meridian conversion id","illegal axis orientation combination","point not within available datum shift grids","invalid sweep axis, choose x or y","invalid value for h","point outside of projection domain"];function R(){var i=O.last_errno;i&&(i>0||!function(i){return q.indexOf(i)>-1}(i))&&B(i)}var q=[-14,-15,-17,-18,-19,-20,-27,-48];function U(i){O.last_errno=i}function z(){U(-20)}function j(){U(-20)}function W(i){B(i)}function B(i){U(i),H()}function H(i,t){var n;throw t||(t={}),t.code||(t.code=O.last_errno||0),i||(n=t.code,i=L[~n]||"unknown error"),O.last_errno=0,new F(i,t)}function F(i,t){var n=new Error(i);return n.name="ProjError",Object.keys(t).forEach(function(i){n[i]=t[i]}),n}function K(i){return V(i)*M}function V(i){var t=/(-?[0-9.]+)d?([0-9.]*)'?([0-9.]*)"?([nsew]?)$/i.exec(i),n=NaN;return t&&(n=+(t[1]||"0")+ +(t[2]||"0")/60+ +(t[3]||"0")/3600,/[ws]/i.test(t[4])&&(n=-n)),isNaN(n)&&B(-16),n}function J(i){return Y(i)}function Y(i){return parseFloat(i)}function X(i,t){var n,a,e=t[0],s=i[t.substr(1)],r=void 0!==s;return"t"==e?n=r:r?(a=s.param,s.used=!0,"i"==e?n=parseInt(a):"d"==e?n=J(a):"r"==e?n=K(a):"s"==e?n=String(a):"b"==e&&("T"==a||"t"==a||!0===a?n=!0:("F"==a||"f"==a||U(-8),n=!1))):n={i:0,b:!1,d:0,r:0,s:""}[e],void 0===n&&H("invalid request to pj_param, fatal"),n}function Z(i){for(var t,n=/\+([a-z][a-z0-9_]*(?:=[^\s]*)?)/gi,a={};t=n.exec(i);)$(a,t[1]);return a}function $(i,t){var n,a,e=t.split("=");1==e.length?(n=t,a=!0):(n=e[0],a=t.substr(e[0].length+1)),i[n]={used:!1,param:a}}var Q={};function ii(i,t,n,a){Q[t]={init:i,name:n,description:a}}function ti(i){return!i||i.is_latlong}function ni(i){var t=!1,n="";return"datum"in i.params?(t=!0,n+=ei(i,"datum")):"R"in i.params?n+=ei(i,"R"):"ellps"in i.params?n+=ei(i,"ellps"):"a"in i.params?(n+=ei(i,"a"),"b"in i.params?n+=ei(i,"b"):"es"in i.params?n+=ei(i,"es"):"f"in i.params?n+=ei(i,"f"):n+=" +es="+i.es):W(-13),t||(n+=ei(i,"towgs84"),n+=ei(i,"nadgrids")),n+=ei(i,"R_A"),n+=ei(i,"R_V"),n+=ei(i,"R_a"),n+=ei(i,"R_lat_a"),n+=ei(i,"R_lat_g"),n+=ei(i,"pm")}function ai(i){var t="datum,ellps,a,b,es,rf,f,towgs84,nadgrids,R,R_A,R_V,R_a,R_lat_a,R_lat_g,pm,init,no_defs".split(","),n="";return Object.keys(i.params).forEach(function(a){-1==t.indexOf(a)&&(n+=ei(i,a))}),(n+=ni(i)).trim()}function ei(i,t){var n="";return t in i.params&&(n=" +"+t,!0!==i.params[t].param&&(n+="="+X(i.params,"s"+t))),n}var si=[["WGS84","towgs84=0,0,0","WGS84","WGS_1984"],["GGRS87","towgs84=-199.87,74.79,246.62","GRS80","Greek_Geodetic_Reference_System_1987"],["NAD83","towgs84=0,0,0","GRS80","North_American_Datum_1983"],["NAD27","nadgrids=@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat","clrk66","North_American_Datum_1927"],["potsdam","towgs84=598.1,73.7,418.2,0.202,0.045,-2.455,6.7","bessel","Potsdam Rauenberg 1950 DHDN"],["carthage","towgs84=-263.0,6.0,431.0","clrk80ign","Carthage 1934 Tunisia"],["hermannskogel","towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232","bessel","Hermannskogel"],["ire65","towgs84=482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15","mod_airy","Ireland 1965"],["nzgd49","towgs84=59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993","intl","New Zealand Geodetic Datum 1949"],["OSGB36","towgs84=446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894","airy","OSGB 1936"],[null,null,null,null]],ri=[["greenwich","0dE"],["lisbon","9d07'54.862\"W"],["paris","2d20'14.025\"E"],["bogota","74d04'51.3\"W"],["madrid","3d41'16.58\"W"],["rome","12d27'8.4\"E"],["bern","7d26'22.5\"E"],["jakarta","106d48'27.79\"E"],["ferro","17d40'W"],["brussels","4d22'4.71\"E"],["stockholm","18d3'29.8\"E"],["athens","23d42'58.815\"E"],["oslo","10d43'22.5\"E"],[null,null]];function oi(i){var t=si.reduce(function(t,n){return n[0]===i?n:t},null);return t?{id:t[0],defn:t[1],ellipse_id:t[2],name:t[3]}:null}var hi=[["MERIT","a=6378137.0","rf=298.257","MERIT 1983"],["SGS85","a=6378136.0","rf=298.257","Soviet Geodetic System 85"],["GRS80","a=6378137.0","rf=298.257222101","GRS 1980(IUGG, 1980)"],["IAU76","a=6378140.0","rf=298.257","IAU 1976"],["airy","a=6377563.396","b=6356256.910","Airy 1830"],["APL4.9","a=6378137.0","rf=298.25","Appl. Physics. 1965"],["NWL9D","a=6378145.0","rf=298.25","Naval Weapons Lab., 1965"],["mod_airy","a=6377340.189","b=6356034.446","Modified Airy"],["andrae","a=6377104.43","rf=300.0","Andrae 1876 (Den., Iclnd.)"],["aust_SA","a=6378160.0","rf=298.25","Australian Natl & S. Amer. 1969"],["GRS67","a=6378160.0","rf=298.2471674270","GRS 67(IUGG 1967)"],["bessel","a=6377397.155","rf=299.1528128","Bessel 1841"],["bess_nam","a=6377483.865","rf=299.1528128","Bessel 1841 (Namibia)"],["clrk66","a=6378206.4","b=6356583.8","Clarke 1866"],["clrk80","a=6378249.145","rf=293.4663","Clarke 1880 mod."],["clrk80ign","a=6378249.2","rf=293.4660212936269","Clarke 1880 (IGN)."],["CPM","a=6375738.7","rf=334.29","Comm. des Poids et Mesures 1799"],["delmbr","a=6376428","rf=311.5","Delambre 1810 (Belgium)"],["engelis","a=6378136.05","rf=298.2566","Engelis 1985"],["evrst30","a=6377276.345","rf=300.8017","Everest 1830"],["evrst48","a=6377304.063","rf=300.8017","Everest 1948"],["evrst56","a=6377301.243","rf=300.8017","Everest 1956"],["evrst69","a=6377295.664","rf=300.8017","Everest 1969"],["evrstSS","a=6377298.556","rf=300.8017","Everest (Sabah & Sarawak)"],["fschr60","a=6378166","rf=298.3","Fischer (Mercury Datum) 1960"],["fschr60m","a=6378155","rf=298.3","Modified Fischer 1960"],["fschr68","a=6378150","rf=298.3","Fischer 1968"],["helmert","a=6378200","rf=298.3","Helmert 1906"],["hough","a=6378270.0","rf=297","Hough"],["intl","a=6378388.0","rf=297","International 1909 (Hayford)"],["krass","a=6378245.0","rf=298.3","Krasovsky 1940"],["kaula","a=6378163","rf=298.24","Kaula 1961"],["lerch","a=6378139","rf=298.257","Lerch 1979"],["mprts","a=6397300","rf=191","Maupertius 1738"],["new_intl","a=6378157.5","b=6356772.2","New International 1967"],["plessis","a=6376523","b=6355863","Plessis 1817 (France)"],["SEasia","a=6378155.0","b=6356773.3205","Southeast Asia"],["walbeck","a=6376896.0","b=6355834.8467","Walbeck"],["WGS60","a=6378165.0","rf=298.3","WGS 60"],["WGS66","a=6378145.0","rf=298.25","WGS 66"],["WGS72","a=6378135.0","rf=298.26","WGS 72"],["WGS84","a=6378137.0","rf=298.257223563","WGS 84"],["sphere","a=6370997.0","b=6370997.0","Normal Sphere (r=6370997)"],[null,null,null,null]];function pi(i){var t=hi.reduce(function(t,n){return n[0]===i?n:t},null);return t?{id:t[0],major:t[1],ell:t[2],name:t[3]}:null}var li=[["km","1000","Kilometer"],["m","1","Meter"],["dm","1/10","Decimeter"],["cm","1/100","Centimeter"],["mm","1/1000","Millimeter"],["kmi","1852.0","International Nautical Mile"],["in","0.0254","International Inch"],["ft","0.3048","International Foot"],["yd","0.9144","International Yard"],["mi","1609.344","International Statute Mile"],["fath","1.8288","International Fathom"],["ch","20.1168","International Chain"],["link","0.201168","International Link"],["us-in","1/39.37","U.S. Surveyor's Inch"],["us-ft","0.304800609601219","U.S. Surveyor's Foot"],["us-yd","0.914401828803658","U.S. Surveyor's Yard"],["us-ch","20.11684023368047","U.S. Surveyor's Chain"],["us-mi","1609.347218694437","U.S. Surveyor's Statute Mile"],["ind-yd","0.91439523","Indian Yard"],["ind-ft","0.30479841","Indian Foot"],["ind-ch","20.11669506","Indian Chain"],[null,null,null]];function ci(i){var t=li.reduce(function(t,n){return i===n[0]?n:t},null);return t?{id:t[0],to_meter:t[1],name:t[2]}:null}var ui={},_i={};function fi(i){return _i[i]||null}function mi(i){var t,n,a,e,r,o,h,p,l=i.split(":"),c=l[0],u=l[1];return u&&c||W(-3),(t=fi(c=c.toLowerCase()))||(n=c,e=s,o=(r=C).join(r.dirname("/Users/zhang/code/emap/node_modules/mproj/dist"),"../nad"),h=r.join(o,n.toUpperCase()),p=r.join(o,n.toLowerCase()),e.existsSync(h)?a=e.readFileSync(h,"utf8"):e.existsSync(p)?a=e.readFileSync(p,"utf8"):H("unable to read from 'init' file named "+n),t=a,_i[c]=t),t?function(i,t){var n,a,e="",s="";return(n=i.indexOf("<"+t+">"))>-1&&((a=i.lastIndexOf("#",n))>-1&&(s=i.substring(a+1,n).trim(),/\n/.test(s)&&(s="")),e=(e=(e=" "+(e=(e=(e=(e=(e=i.substr(n+t.length+2)).substr(0,e.indexOf("<"))).replace(/#.*/g,"")).replace(/[\s]+/g," ")).replace(/\+title=[^+]*[^ +]/g,function(i){return i.replace(/ /g,"\t")}))).replace(/ (?=[a-z])/gi," +")).replace(/\t/g," ").trim()),e?{opts:e,comment:s}:null}(t,u):null}function di(t){var a,e,s=Z(t),r={params:s,is_latlong:!1,is_geocent:!1,is_long_wrap_set:!1,long_wrap_center:0,axis:"enu",gridlist:null,gridlist_count:0,vgridlist_geoid:null,vgridlist_geoid_count:0};return Object.keys(s).length||W(-1),X(s,"tinit")&&function(i,t){var n=ui[t.toLowerCase()]||null;n||function(i,t){ui[i.toLowerCase()]=t}(t,n=mi(t)),n||W(-2),yi(i,n.opts)}(s,X(s,"sinit")),(a=X(s,"sproj"))||W(-4),(e=Q[a])||W(-5),X(s,"bno_defs")||function(i){yi(i,"+ellps=WGS84")}(r.params),function(i){var t,n,a,e,s=484813681109536e-20,r=i.datum_params=[0,0,0,0,0,0,0];i.datum_type=0,(t=X(i.params,"sdatum"))&&((n=oi(t))||W(-9),n.ellipse_id&&$(i.params,"ellps="+n.ellipse_id),n.defn&&$(i.params,n.defn)),(a=X(i.params,"snadgrids"))&&"@null"!=a&&H("+nadgrids is not implemented"),X(i.params,"scatalog")&&H("+catalog is not implemented"),(e=X(i.params,"stowgs84"))&&(e.split(",").forEach(function(i,t){r[t]=J(i)||0}),0!=r[3]||0!=r[4]||0!=r[5]||0!=r[6]?(i.datum_type=2,r[3]*=s,r[4]*=s,r[5]*=s,r[6]=r[6]/1e6+1):i.datum_type=1)}(r),function(t){var a,e,s,r,o,h=.16666666666666666,p=t.params,c=0,u=0;X(p,"tR")?c=X(p,"dR"):((a=X(p,"sellps"))&&((e=pi(a))||W(-9),$(p,e.major),$(p,e.ell)),c=X(p,"da"),X(p,"tes")?u=X(p,"des"):X(p,"te")?u=(s=X(p,"de"))*s:X(p,"trf")?((s=X(p,"drf"))||W(-10),u=(s=1/s)*(2-s)):X(p,"tf")?u=(s=X(p,"df"))*(2-s):X(p,"tb")&&(u=1-(r=X(p,"db"))*r/(c*c)),r||(r=c*l(1-u)),X(p,"bR_A")?(c*=1-u*(h+u*(.04722222222222222+.022156084656084655*u)),u=0):X(p,"bR_V")?c*=1-u*(h+u*(.06944444444444445+.04243827160493827*u)):X(p,"bR_a")?(c=.5*(c+r),u=0):X(p,"bR_g")?(c=l(c*r),u=0):X(p,"bR_h")?(c+r===0&&W(-20),c=2*c*r/(c+r),u=0):(o=X(p,"tR_lat_a")||X(p,"tR_lat_g"))&&(s=n(X(p,o?"rR_lat_a":"rR_lat_g")),i(s)>N&&W(-11),s=1-u*s*s,c*=o?.5*(1-u+s)/(s*l(s)):l(1-u)/s,u=0)),u<0&&W(-12),c<=0&&W(-13),t.es=u,t.a=c}(r),r.a_orig=r.a,r.es_orig=r.es,r.e=l(r.es),r.ra=1/r.a,r.one_es=1-r.es,r.one_es||W(-6),r.rone_es=1/r.one_es,function(i){return 1==i.datum_type&&i.datum_params[0]==i.datum_params[1]==i.datum_params[2]===0&&6378137==i.a&&Math.abs(i.es-.00669437999)<5e-11}(r)&&(r.datum_type=4),r.geoc=!!r.es&&X(s,"bgeoc"),r.over=X(s,"bover"),r.has_geoid_vgrids=X(s,"tgeoidgrids"),r.has_geoid_vgrids&&X(s,"sgeoidgrids"),r.is_long_wrap_set=X(s,"tlon_wrap"),r.is_long_wrap_set&&(r.long_wrap_center=X(s,"rlon_wrap"),i(r.long_wrap_center)<10*G==0&&W(-14)),X(s,"saxis")&&function(i){var t="ewnsud",n=X(i.params,"saxis");3!=n.length&&W(T),-1!=t.indexOf(n[0])&&-1!=t.indexOf(n[1])&&-1!=t.indexOf(n[2])||W(T),i.axis=n}(r),r.lam0=X(s,"rlon_0"),r.phi0=X(s,"rlat_0"),r.x0=X(s,"dx_0"),r.y0=X(s,"dy_0"),X(s,"tk_0")?r.k0=X(s,"dk_0"):X(s,"tk")?r.k0=X(s,"dk"):r.k0=1,r.k0<=0&&W(-31),function(i){var t,n,a,e=i.params;(t=X(e,"sunits"))&&((a=ci(t))||W(-7),n=a.to_meter),n||(n=X(e,"sto_meter"))?(i.to_meter=vi(n),i.fr_meter=1/i.to_meter):i.to_meter=i.fr_meter=1,n=null,(t=X(e,"svunits"))&&((a=ci(t))||W(-7),n=a.to_meter),n||X(e,"svto_meter")?(i.vto_meter=vi(n),i.vfr_meter=1/i.vto_meter):(i.vto_meter=i.to_meter,i.vfr_meter=i.fr_meter)}(r),function(i){var t,n,a,e=i.params;(t=X(e,"spm"))?(n=function(i){var t=ri.reduce(function(t,n){return n[0]===i?n:t},null);return t?{id:t[0],definition:t[1]}:null}(t),a=K(n?n.definition:t),isNaN(a)&&W(-46),i.from_greenwich=a):i.from_greenwich=0}(r),e.init(r),r}function yi(i,t){var n=Z(t),a=["datum","ellps","a","b","rf","f"].reduce(function(t,n){return t||n in i},!1);Object.keys(n).forEach(function(t){t in i||"ellps"==t&&a||(i[t]=n[t])})}function vi(i){var t=i.split("/"),n=Y(t[0]);return t.length>1&&(n/=Y(t[1])),n}function gi(i,t){var n=0,a=i*i,e=t*t;return i<=0&&(n|=4),t<=0&&(n|=8),i<t&&(n|=16),n?null:{a:i,b:t,a2:a,b2:e,e2:(a-e)/a,ep2:(a-e)/e}}function Ai(i,t,e,s,r){var o,h,p,c,u=0,_=e[t],f=s[t],m=r[t];return f<-N&&f>-1.001*N?f=-N:f>N&&f<1.001*N?f=N:(f<-N||f>N)&&(u|=1),u||(_>S&&(_-=2*S),h=n(f),c=a(f),p=h*h,o=i.a/l(1-i.e2*p),e[t]=(o+m)*c*a(_),s[t]=(o+m)*c*n(_),r[t]=(o*(1-i.e2)+m)*h),u}function Ci(t,n,a,e,s){var r,o,c,u,_,f,m,d,y,v,g,A,C,S,x,M,E=1e-12,b=a[n],w=e[n],I=s[n];if(u=l(b*b+w*w),_=l(b*b+w*w+I*I),u/t.a<E){if(o=0,_/t.a<E)return a[n]=0,e[n]=N,s[n]=-t.b,0}else o=p(w,b);f=I/_,m=u/_,d=1/l(1-t.e2*(2-t.e2)*m*m),g=m*(1-t.e2)*d,A=f*d,M=0;do{M++,c=u*g+I*A-(y=t.a/l(1-t.e2*A*A))*(1-t.e2*A*A),v=t.e2*y/(y+c),x=(S=f*(d=1/l(1-v*(2-v)*m*m)))*g-(C=m*(1-v)*d)*A,g=C,A=S}while(x*x>1e-24&&M<30);r=h(S/i(C)),a[n]=o,e[n]=r,s[n]=c}function Si(i,t,n){var a=n.length>2,e=[n[0]],s=[n[1]],r=[a?n[2]:0];i.is_latlong&&(e[0]*=M,s[0]*=M),O.last_errno=0,xi(i,t,e,s,r),(O.last_errno||e[0]==A)&&H(null,{point:n}),t.is_latlong&&(e[0]*=x,s[0]*=x),n[0]=e[0],n[1]=s[0],a&&(n[2]=r[0])}function xi(i,t,n,a,e){var s,r,o=n.length,h={},p={};if("enu"!=i.axis&&Mi(i.axis,!1,n,a,e),1!=i.vto_meter&&e)for(s=0;s<o;s++)e[s]*=i.vto_meter;if(i.is_geocent){if(e||W(P),1!=i.to_meter)for(s=0;s<o;s++)n[s]!=A&&(n[s]*=i.to_meter,a[s]*=i.to_meter);Ei(i.a_orig,i.es_orig,n,a,e)}else if(!i.is_latlong)if(i.inv3d||i.inv||H("source projection not invertible"),i.inv3d)H("inverse 3d transformations not supported");else for(s=0;s<o;s++)p.x=n[s],p.y=a[s],r=Ii(p,i),n[s]=r.lam,a[s]=r.phi,R();if(0!==i.from_greenwich)for(s=0;s<o;s++)n[s]!=A&&(n[s]+=i.from_greenwich);if(i.has_geoid_vgrids&&e&&H("vgrid transformation not supported"),function(i,t,n,a,e){var s,r,o,h,p=n.length;0!=i.datum_type&&0!=t.datum_type&&(function(i,t){return i.datum_type==t.datum_type&&(!(i.a_orig!=t.a_orig||Math.abs(i.es_orig-t.es_orig)>5e-11)&&(1==i.datum_type?i.datum_params[0]==t.datum_params[0]&&i.datum_params[1]==t.datum_params[1]&&i.datum_params[2]==t.datum_params[2]:2==i.datum_type?i.datum_params[0]==t.datum_params[0]&&i.datum_params[1]==t.datum_params[1]&&i.datum_params[2]==t.datum_params[2]&&i.datum_params[3]==t.datum_params[3]&&i.datum_params[4]==t.datum_params[4]&&i.datum_params[5]==t.datum_params[5]&&i.datum_params[6]==t.datum_params[6]:3!=i.datum_type||X(i.params,"snadgrids")==X(t.params,"snadgrids")))}(i,t)||(s=i.a_orig,r=i.es_orig,o=t.a_orig,h=t.es_orig,e||(e=new Float64Array(p)),3==i.datum_type&&(H("gridshift not implemented"),s=E,r=b),3==t.datum_type&&(o=E,h=b),r==h&&s==o&&1!=i.datum_type&&2!=i.datum_type&&1!=t.datum_type&&2!=t.datum_type||(bi(s,r,n,a,e),1!=i.datum_type&&2!=i.datum_type||function(i,t,n,a){var e,s,r,o,h,p,l,c,u=t.length,_=i.datum_params,f=_[0],m=_[1],d=_[2];if(1==i.datum_type)for(c=0;c<u;c++)t[c]!=A&&(t[c]+=f,n[c]+=m,a[c]+=d);else if(2==i.datum_type)for(o=_[3],h=_[4],p=_[5],l=_[6],c=0;c<u;c++)t[c]!=A&&(e=l*(t[c]-p*n[c]+h*a[c])+f,s=l*(p*t[c]+n[c]-o*a[c])+m,r=l*(-h*t[c]+o*n[c]+a[c])+d,t[c]=e,n[c]=s,a[c]=r)}(i,n,a,e),1!=t.datum_type&&2!=t.datum_type||function(i,t,n,a){var e,s,r,o,h,p,l,c,u=t.length,_=i.datum_params,f=_[0],m=_[1],d=_[2];if(1==i.datum_type)for(c=0;c<u;c++)t[c]!=A&&(t[c]-=f,n[c]-=m,a[c]-=d);else if(2==i.datum_type)for(o=_[3],h=_[4],p=_[5],l=_[6],c=0;c<u;c++)t[c]!=A&&(e=(t[c]-f)/l,s=(n[c]-m)/l,r=(a[c]-d)/l,t[c]=e+p*s-h*r,n[c]=-p*e+s+o*r,a[c]=h*e-o*s+r)}(t,n,a,e),Ei(o,h,n,a,e),3==t.datum_type&&pj_apply_gridshift_2(t,1,n,a,e))))}(i,t,n,a,e),t.has_geoid_vgrids&&e&&H("vgrid transformation not supported"),0!==t.from_greenwich)for(s=0;s<o;s++)n[s]!=A&&(n[s]-=t.from_greenwich);if(t.is_geocent){if(e||W(P),bi(t.a_orig,t.es_orig,n,a,e),1!=t.fr_meter)for(s=0;s<o;s++)n[s]!=A&&(n[s]*=t.fr_meter,a[s]*=t.fr_meter)}else if(t.is_latlong){if(t.is_latlong&&t.is_long_wrap_set)for(s=0;s<o;s++)if(n[s]!=A){for(;n[s]<t.long_wrap_center-S;)n[s]+=G;for(;n[s]>t.long_wrap_center+S;)n[s]-=G}}else if(t.fwd3d)H("3d transformation not supported");else for(s=0;s<o;s++)h.lam=n[s],h.phi=a[s],r=Ni(h,t),n[s]=r.x,a[s]=r.y,R();if(1!=t.vto_meter&&e)for(s=0;s<o;s++)e[s]*=t.vfr_meter;return"enu"!=t.axis&&Mi(t.axis,!0,n,a,e),1==o?O.last_errno:0}function Mi(i,t,n,a,e){var s,r,o,h,p,l,c=n.length,u=0;if(t){for(o=0;o<c;o++)if(s=n[o],r=a[o],s!=A)for(e&&(u=e[o]),h=0;h<3;h++)if(2!=h||e)switch(l=0==h?n:1==h?a:e,i[h]){case"e":l[o]=s;break;case"w":l[o]=-s;break;case"n":l[o]=r;break;case"s":l[o]=-r;break;case"u":l[o]=u;break;case"d":l[o]=-u;break;default:W(T)}}else for(o=0;o<c;o++)if(s=n[o],r=a[o],s!=A)for(e&&(u=e[o]),h=0;h<3;h++)switch(p=0==h?s:1==h?r:u,i[h]){case"e":n[o]=p;break;case"w":n[o]=-p;break;case"n":a[o]=p;break;case"s":a[o]=-p;break;case"u":e&&(e[o]=p);break;case"d":e&&(e[o]=-p);break;default:W(T)}}function Ei(i,t,n,a,e){var s,r,o=n.length;for((r=gi(i,0==t?i:i*l(1-t)))||W(P),s=0;s<o;s++)n[s]!=A&&Ci(r,s,n,a,e)}function bi(i,t,n,a,e){var s,r,o=n.length;for((r=gi(i,0===t?i:i*l(1-t)))||W(P),s=0;s<o;s++)n[s]!=A&&Ai(r,s,n,a,e)&&(n[s]=a[s]=A)}function wi(n){var a=6.283185307179586,e=3.141592653589793;return i(n)>3.14159265359&&(n+=e,n-=a*t(n/a),n-=e),n}function Ni(t,n){var a={x:0,y:0},s=i(t.phi)-N;return s<=1e-12&&i(t.lam)<=10?(O.last_errno=0,i(s)<=1e-12?t.phi=t.phi<0?-N:N:n.geoc&&(t.phi=h(n.rone_es*e(t.phi))),t.lam-=n.lam0,n.over||(t.lam=wi(t.lam)),n.fwd?(n.fwd(t,a),a.x=n.fr_meter*(n.a*a.x+n.x0),a.y=n.fr_meter*(n.a*a.y+n.y0)):a.x=a.y=A):U(-14),!O.last_errno&&isFinite(a.x)&&isFinite(a.y)||(a.x=a.y=A),a}function Ii(t,n){var a={lam:0,phi:0};return t.x<A&&t.y<A?(O.last_errno=0,n.inv?(t.x=(t.x*n.to_meter-n.x0)*n.ra,t.y=(t.y*n.to_meter-n.y0)*n.ra,n.inv(t,a),a.lam+=n.lam0,n.over||(a.lam=wi(a.lam)),n.geoc&&i(i(a.phi)-N)>1e-12&&(a.phi=h(n.one_es*e(a.phi)))):a.lam=a.phi=A):U(-15),!O.last_errno&&isFinite(a.lam)&&isFinite(a.phi)||(a.lam=a.phi=A),a}function Gi(i,n,a,e){var s,r,o;for((i<0||i>=9)&&(i=3),s=1,o=0;o<i;o++)s*=10;return r=3600*s,function(o){var h,p,l,c,u="",_="",f="";return o===A||isNaN(o)?"":(o<0?(o=-o,(l=e||"")||(u="-")):l=a||"",p=(o=t(o*r+.5))/s%60,h=(o=t(o/(60*s)))%60,c=t(o/60)+"d",f=p.toFixed(i),f=(p=parseFloat(f))?(n?f:String(p))+'"':"",(p||h)&&2==(_=String(h)+"'").length&&n&&(_="0"+_),u+c+_+f+l)}}function ki(i,t,n){var a,e,s,r,o,h;return"string"!=typeof i?Tn:("string"!=typeof t?(e="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs",s=i,a=t):(e=i,s=t,a=n),h=Pi(r=di(e),o=di(s)),a?h(a):{forward:h,inverse:Pi(o,r)})}function Pi(i,t){return function(n){var a=Array.isArray(n);return n=a?n.concat():[n.x,n.y],Si(i,t,n),a||(n={x:n[0],y:n[1]}),n}}function Ti(i){var t=i.proj in Q?Q[i.proj].name:"",n=ai(i),a=$i(i);return{PROJCS:{NAME:t?a.NAME+" / "+t:"unnamed",GEOGCS:a,PROJECTION:"custom_proj4",PARAMETER:[],UNIT:Ki(i),EXTENSION:["PROJ4",n+" +wktext"]}}}function Di(i){var t=i.EXTENSION;return t&&"PROJ4"==t[0]?(t[1]||"").replace(" +wktext",""):null}ki.WGS84="+proj=longlat +datum=WGS84",ki.toPoint=function(i){var t={x:i[0],y:i[1]};return i.length>2&&(t.z=i[2]),i.length>3&&(t.m=i[3]),t};var Oi=[],Li=[];function Ri(i){return"string"==typeof i}function qi(i){var t=zi(i,Li);return t||(t=function(i){return Di(i)?Di:null}(i)),t||Hi("unsupported WKT definition: "+(i.NAME||"[unknown]")),t}function Ui(i){var t=zi(i,Oi);return t||(t=Ti),t||Hi("unsupported projection: "+function(i){return ji(i)||"[unknown]"}(i)),t}function zi(i,t){for(var n=0;n<t.length;n++)if((0,t[n][0])(i))return t[n][1];return null}function ji(i){return X(i.params,"sproj")}function Wi(i){return i.replace(/[-_ \/]+/g,"_").toLowerCase()}function Bi(i){var t;return Array.isArray(i)?t=i:i&&i.length>0&&(t=i.split(",")),t}function Hi(i){throw new Error(i)}function Fi(i){return{to_meter:i.UNIT[1]}}function Ki(i){return["Meter",i.to_meter||1]}function Vi(i,t){var n,a,e=i.DATUM,s=e.SPHEROID,r=function(i){var t,n={northamerican1983:"NAD83",newzealand1949:"nzgd49"},a=Ji(i.NAME);if(a in n)return n[a];for(var e=0;e<si.length&&Ji((t=si[e])[3])!=a&&Ji(t[0])!=a;e++);return t?t[0]:null}(e),o=function(i){var t,n={international1924:"intl"},a=Ji(i[0]);if(a in n)return n[a];if(/^grs1980/.test(a))return"GRS80";if("sphere"==a)return null;for(var e=0;e<hi.length&&Ji((t=hi[e])[3])!=a&&Ji(t[0])!=a;e++);return t?t[0]:null}(s),h=t&&t.aux_sphere,p=s[1],l=s[2];return Yi(i.UNIT,"degree"),h?n="+a="+s[1]:r?n="+datum="+r:o?n="+ellps="+o:(n="+a="+p,l>0&&(n+=" +rf="+l)),!e.TOWGS84||h||r||(n+=" +towgs84="+e.TOWGS84.join(",")),((a=i.PRIMEM?i.PRIMEM[1]:0)>0||a<0)&&(n+=" +pm="+a),n}function Ji(i){return(i||"").replace(/^(GCS|D)_/i,"").replace(/[ _]/g,"").toLowerCase()}function Yi(i,t){i&&i[0].toLowerCase()!=t&&Hi("unexpected geographic units: "+geogcs.UNIT[0])}function Xi(i){return function(){return"+proj="+i}}function Zi(i){return function(t){var n,a;return[i.PROJECTION(t),i.PARAMETER(t),i.GEOGCS?i.GEOGCS(t):Vi(t.GEOGCS),(n=Fi(t),a="",1!=n.to_meter&&(a="+to_meter="+n.to_meter),a),"+no_defs"].filter(function(i){return!!i}).join(" ")}}function $i(i){return{NAME:tt(i),DATUM:Qi(i),PRIMEM:["Greenwich",0],UNIT:["degree",.017453292519943295]}}function Qi(i){var t={NAME:at(i),SPHEROID:it(i)},n=X(i.params,"stowgs84");return/[1-9]/.test(n)&&(t.TOWGS84=n),t}function it(i){var t;return t=X(i.params,"trf")?X(i.params,"drf"):i.es?1/(1-Math.sqrt(1-i.es)):0,[nt(i),i.a,t]}function tt(i){var t;return ti(i)&&(t=ht(i)),t||(t=et(i),t=/^[a-z]+$/.test(t)?t[0].toUpperCase()+t.substr(1):t.toUpperCase()),t||"UNK"}function nt(i){var t=pi(function(i){var t=et(i),n=t?oi(t):null;return(n?n.ellipse_id:X(i.params,"sellps"))||""}(i));return t?t.name:"Unknown ellipsoid"}function at(i){var t=oi(et(i));return t&&t.name||"Unknown datum"}function et(i){return X(i.params,"sdatum")}function st(i){return Ui(i)(i)}function rt(i,t){return ot({PROJECTION:i,PARAMETER:kt(t)})}function ot(i){return function(t){var n={GEOGCS:i.GEOGCS&&i.GEOGCS(t)||$i(t),PROJECTION:Ri(i.PROJECTION)?i.PROJECTION:i.PROJECTION(t),PARAMETER:i.PARAMETER(t),UNIT:Ki(t)};return n.NAME=i.NAME&&i.NAME(t,n)||function(i,t){var n=ht(i);return n||t.GEOGCS.NAME+" / "+t.PROJECTION}(t,n),{PROJCS:n}}}function ht(i){var t;return X(i.params,"tinit")&&(t=mi(X(i.params,"sinit"))),t?t.comment:""}function pt(i,t,n){var a=ct(t),e=function(i,t){return Zi({PROJECTION:Xi(i),PARAMETER:Gt(t)})}(i,n);_t(a,e)}function lt(i,t,n){ft(ut(i),rt(t,n))}function ct(i){var t=Bi(i).map(Wi);return function(i){var n=i.PROJECTION[0];return t.indexOf(Wi(n))>-1}}function ut(i){return function(t){var n=ji(t);return n&&n==i}}function _t(i,t){"function"!=typeof i&&Hi("Missing WKT parser test"),"function"!=typeof t&&Hi("Missing WKT parse function"),Li.push([i,t])}function ft(i,t){"function"!=typeof i&&Hi("Missing WKT maker test"),"function"!=typeof t&&Hi("Missing WKT maker function"),Oi.push([i,t])}_t(function(i){return mt.test(Wi(i.NAME))},function(i){return Zi({PROJECTION:Xi("utm"),PARAMETER:function(i){var t=mt.exec(Wi(i.NAME)),n="+zone="+t[1];return"s"==t[2].toLowerCase()&&(n+=" +south"),n}})(i)}),_t(function(i){return dt.test(Wi(i.NAME))},function(i){return Zi({PROJECTION:Xi("ups"),PARAMETER:function(i){var t=dt.exec(Wi(i.NAME));return"south"==t[1].toLowerCase()?"+south":""}})(i)}),ft(ut("utm"),function(i){return ot({NAME:yt,PROJECTION:function(){return"Transverse_Mercator"},PARAMETER:gt})(i)}),ft(ut("ups"),function(i){return ot({NAME:vt,PROJECTION:function(){return"Polar_Stereographic"},PARAMETER:At})(i)});var mt=/UTM_zone_([0-9]{1,2})(N|S)/i,dt=/UPS_(North|South)/i;function yt(i,t){return t.GEOGCS.NAME+" / UTM zone "+X(i.params,"szone")+(X(i.params,"tsouth")?"S":"N")}function vt(i,t){return t.GEOGCS.NAME+" / UPS "+(X(i.params,"tsouth")?"South":"North")}function gt(i){return[["latitude_of_origin",0],["central_meridian",180*i.lam0/S],["scale_factor",i.k0],["false_easting",i.x0],["false_northing",i.y0]]}function At(i){return[["latitude_of_origin",-90],["central_meridian",0],["scale_factor",.994],["false_easting",2e6],["false_northing",2e6]]}function Ct(i){return X(i.params,"tlat_ts")&&0!=X(i.params,"dlat_ts")}function St(i){return 0===i.es&&6378137==i.a}_t(ct("Mercator_2SP,Mercator_1SP,Mercator,Mercator_Auxiliary_Sphere"),Zi({GEOGCS:function(i){var t=function(i){return/(Web_Mercator|Pseudo_Mercator)/i.test(Wi(i.NAME))}(i)?{aux_sphere:!0}:null;return Vi(i.GEOGCS,t)},PROJECTION:Xi("merc"),PARAMETER:function(i){return Gt(function(i){var t=Nt(i,"standard_parallel_1");return t&&0!=t[1]}(i)?"lat_ts,lat_0b":"lat_tsb,lat_ts")(i)}})),ft(ut("merc"),ot({GEOGCS:function(i){return St(i)?$i(di("+proj=longlat +datum=WGS84")):null},PROJECTION:function(i){return Ct(i)?"Mercator_2SP":"Mercator_1SP"},PARAMETER:function(i){return kt(Ct(i)?"lat_ts,lat_0b":"lat_tsb")(i)},NAME:function(i){return St(i)?"WGS 84 / Pseudo-Mercator":null}}));var xt=[["x_0","false_easting","m"],["y_0","false_northing","m"],["k_0","scale_factor","f"],["lat_0","latitude_of_center"],["lon_0","central_meridian"]],Mt={lat_0b:["lat_0","latitude_of_origin"],lat_0c:["lat_0",null],lat_0d:["lat_0","standard_parallel_1"],lat_1:["lat_1","standard_parallel_1"],lat_1b:["lat_1","latitude_of_point_1"],lat_1c:["lat_1","latitude_of_origin"],lat_2:["lat_2","standard_parallel_2"],lat_2b:["lat_2","latitude_of_point_2"],lat_ts:["lat_ts","standard_parallel_1"],lat_tsb:["lat_ts","latitude_of_origin"],lonc:["lonc","central_meridian"],lon_1:["lon_1","longitude_of_point_1"],lon_2:["lon_2","longitude_of_point_2"],alpha:["alpha","azimuth"],gamma:["gamma","rectified_grid_angle"],h:["h","height","f"]},Et={longitude_of_center:"central_meridian",latitude_of_origin:"latitude_of_center",latitude_of_center:"latitude_of_origin",longitude_of_1st_point:"longitude_of_point_1",longitude_of_2nd_point:"longitude_of_point_2",latitude_of_1st_point:"latitude_of_point_1",latitude_of_2nd_point:"latitude_of_point_2",k:"k_0"};function bt(i,t,n){for(var a=0;a<n.length;a++)if(n[a][t]===i)return n[a];return null}function wt(i,t,n){var a=null;return!(a=bt(i=i.toLowerCase(),t,n))&&i in Et&&(a=bt(Et[i],t,n)),a}function Nt(i,t){for(var n,a=i.PARAMETER||[],e=0;e<a.length;e++)if(t===(n=a[e][0].toLowerCase())||t===Et[n])return a[e];return null}function It(i){var t=null;return i&&(t=Bi(i).reduce(function(i,t){var n=Mt[t];return n||Hi("missing parameter rule: "+t),i.push(n),i},[])),(t||[]).concat(xt)}function Gt(i){return function(t){var n=[],a=It(i),e=Fi(t);return(t.PARAMETER||[]).forEach(function(i){var t,s,r=wt(i[0],1,a);r?(t=function(i,t,n){var a=i[0];if("m"==i[2]&&(t*=n.to_meter),!("x_0,y_0,lat_0,lon_0".indexOf(a)>-1&&0===t||"k_0"==a&&1==t))return"+"+a+"="+t}(r,i[1],e),t&&n.push(t)):(s="unhandled parameter: "+i[0],console.error("[wkt] "+s))}),n.join(" ")}}function kt(i){return function(t){var n=[],a=It(i);return Object.keys(t.params).forEach(function(i){var e,s=wt(i,0,a);s&&s[1]&&(e=X(t.params,"s"+i),n.push(function(i,t,n){var a,e=i[2];return a="m"==e?parseFloat(t)/n:"f"==e?parseFloat(t):V(t),[i[1],a]}(s,e,t.to_meter)))}),n}}function Pt(i){return!("lat_1"in i.params&&"lat_2"in i.params)}function Tt(i){return"omerc"==ji(i)&&("alpha"in i.params||"gamma"in i.params)}function Dt(i){return Tt(i)&&("no_uoff"in i.params||"no_off"in i.params)}function Ot(i){return X(i.params,"tlat_ts")}function Lt(i){var t=JSON.stringify(qt(i));return t=(t=t.replace(/\["([A-Z0-9]+)",/g,"$1[")).replace(/"(EAST|NORTH|SOUTH|WEST)"/g,"$1")}function Rt(i){return"NAME,PROJCS,GEOGCS,GEOCCS,DATUM,SPHEROID,PRIMEM,PROJECTION,PARAMETER,UNIT,AXIS".indexOf(i)+1||999}function qt(i,t){var n,a=[];return t=t||0,function(i){return Object.keys(i).sort(function(i,t){return Rt(i)-Rt(t)})}(i).forEach(function(e){var s=i[e];!function(i){return!!i&&"object"==typeof i&&!Array.isArray(i)}(s)?"NAME"==e?a.push(Ri(s)?s:s[0]):"PARAMETER"==e||"AXIS"==e?s.forEach(function(i){a.push([e].concat(i))}):Ri(s)?a.push([e,s]):Array.isArray(s)?a.push([e].concat(s)):((n={})[e]=s,Hi("Incorrectly formatted WKT element: "+JSON.stringify(n))):a.push([e].concat(qt(s,t+1)))}),0===t&&1==a.length&&(a=a[0]),a}function Ut(i){var t={};return zt(i).forEach(function(i){Wt(i,t)}),t}function zt(i){var t;i="["+(i=(i=(i=jt(i)).replace(/([A-Z0-9]+)\[(?![^"]*[^\[,"]")/g,'["$1",')).replace(/, *([a-zA-Z]+) *(?=[,\]])/g,',"$1"'))+"]";try{t=JSON.parse(i)}catch(i){Hi("unparsable WKT format")}return t}function jt(i){var t=0;return i.replace(/"+/g,function(i){var n=t%2==0;return t+=i.length,'"'==i||'""'==i&&n?i:n?'"'+i.substring(1).replace(/""/g,'\\"'):i.replace(/""/g,'\\"')})}function Wt(i,t){var n,a=i[0];if("GEOGCS"==a||"GEOCCS"==a||"PROJCS"==a||"DATUM"==a||"VERTCS"==a)for(t[a]={NAME:i[1]},n=2;n<i.length;n++){if(!Array.isArray(i[n]))throw Hi("WKT parse error");Wt(i[n],t[a])}else"AXIS"==a||"PARAMETER"==a?(a in t==0&&(t[a]=[]),t[a].push(i.slice(1))):t[a]=i.slice(1);return t}_t(ct("Lambert_Conformal_Conic,Lambert_Conformal_Conic_1SP,Lambert_Conformal_Conic_2SP"),Zi({PROJECTION:Xi("lcc"),PARAMETER:function(i){return Gt(function(i){return!Nt(i,"standard_parallel_2")}(i)?"lat_1c":"lat_0b,lat_1,lat_2")(i)}})),ft(ut("lcc"),ot({PROJECTION:function(i){return Pt(i)?"Lambert_Conformal_Conic_1SP":"Lambert_Conformal_Conic_2SP"},PARAMETER:function(i){return kt(Pt(i)?"lat_1c,lat_0c":"lat_0b,lat_1,lat_2")(i)}})),_t(ct("Hotine_Oblique_Mercator,Hotine_Oblique_Mercator_Azimuth_Natural_Origin"),Zi({PROJECTION:Xi("omerc"),PARAMETER:function(i){return Gt("alpha,gamma,lonc")(i)+" +no_uoff"}})),ft(Dt,rt("Hotine_Oblique_Mercator","alpha,gamma,lonc")),pt("omerc","Oblique_Mercator,Hotine_Oblique_Mercator_Azimuth_Center","alpha,gamma,lonc"),ft(function(i){return Tt(i)&&!Dt(i)},rt("Oblique_Mercator","alpha,gamma,lonc")),pt("omerc","Hotine_Oblique_Mercator_Two_Point_Natural_Origin","lat_1b,lat_2b,lon_1,lon_2"),ft(function(i){return"omerc"==ji(i)&&"lat_2"in i.params&&"lon_2"in i.params},rt("Hotine_Oblique_Mercator_Two_Point_Natural_Origin","lat_1b,lat_2b,lon_1,lon_2")),_t(ct("Stereographic,Polar_Stereographic,Stereographic_North_Pole,Stereographic_South_Pole"),Zi({PROJECTION:Xi("stere"),PARAMETER:function(i){var t=Gt("lat_ts,lat_tsb")(i),n=/lat_ts=([^ ]+)/.exec(t);return n&&-1==t.indexOf("lat_0=")&&(t="+lat_0="+(parseFloat(n[1])<0?-90:90)+" "+t),t}})),ft(ut("stere"),ot({PROJECTION:function(i){return Ot(i)?"Polar_Stereographic":"Stereographic"},PARAMETER:function(i){return Ot(i)?kt("lat_tsb,lat_0c")(i):kt("lat_0b")(i)}})),lt("vandg","VanDerGrinten"),_t(ct("VanDerGrinten,Van_der_Grinten_I"),Zi({PROJECTION:Xi("vandg"),PARAMETER:function(i){var t=Gt("")(i);return t&&(t+=" "),t+"+R_A"}})),[["aitoff","Aitoff","lat1"],["aea","Albers_Conic_Equal_Area,Albers","lat_1,lat_2"],["aeqd","Azimuthal_Equidistant"],["bonne","Bonne","lat_1"],["cass","Cassini_Soldner,Cassini"],["cea","Cylindrical_Equal_Area","lat_ts"],["eck1","Eckert_I"],["eck2","Eckert_II"],["eck3","Eckert_III"],["eck4","Eckert_IV"],["eck5","Eckert_V"],["eck6","Eckert_VI"],["eqdc","Equidistant_Conic","lat_1,lat_2"],["eqc","Plate_Carree,Equirectangular,Equidistant_Cylindrical","lat_ts"],["gall","Gall_Stereographic"],["gnom","Gnomonic"],["laea","Lambert_Azimuthal_Equal_Area"],["loxim","Loximuthal","lat_1"],["mill","Miller_Cylindrical"],["moll","Mollweide"],["nsper","Vertical_Near_Side_Perspective","h"],["nzmg","New_Zealand_Map_Grid","lat_0b"],["ortho","Orthographic","lat_0b"],["poly","Polyconic"],["robin","Robinson"],["sinu","Sinusoidal"],["sterea","Oblique_Stereographic,Double_Stereographic"],["tmerc","Transverse_Mercator,Gauss_Kruger","lat_0b"],["tpeqd","Two_Point_Equidistant","lat_1b,lat_2b,lon_1,lon_2"],["wag1","Wagner_I"],["wag2","Wagner_II"],["wag3","Wagner_III","lat_ts"],["wag4","Wagner_IV"],["wag5","Wagner_V"],["wag6","Wagner_VI"],["wag7","Wagner_VII"],["wink1","Winkel_I","lat_ts"],["wink2","Winkel_II"],["wintri","Winkel_Tripel","lat_1"]].forEach(function(i){var t=i[2]||null;pt(i[0],i[1],t),lt(i[0],i[1].split(",")[0],t)});var Bt,Ht,Ft={};function Kt(i,t,n){var a;return t>=1e-7?n*(i/(1-(a=t*i)*a)-.5/t*_((1-a)/(1+a))):i+i}function Vt(i,t,n){return t/l(1-n*i*i)}function Jt(t,e,s){var o,h,c,u,m,d,y,v,g,C,S,x,M,E;t.fwd=function(i,e){var s,r=i.lam;(s=c-(y?h*Kt(n(i.phi),t.e,t.one_es):m*n(i.phi)))<0&&z(),s=u*l(s),e.x=s*n(r*=h),e.y=d-s*a(r)},t.inv=function(e,s){var l=e.x,v=d-e.y,g=f(l,v);0!=g?(h<0&&(g=-g,l=-l,v=-v),s.phi=g/u,y?(s.phi=(c-s.phi*s.phi)/h,i(o-i(s.phi))>1e-7?(s.phi=function(t,e,s){var o,h,p,l,c,u,f=15,m=1e-7,d=1e-10;if(o=r(.5*t),e<m)return o;u=f;do{o+=c=.5*(l=1-(p=e*(h=n(o)))*p)*l/a(o)*(t/s-h/l+.5/e*_((1-p)/(1+p)))}while(i(c)>d&&--u);return u?o:A}(s.phi,t.e,t.one_es))==A&&j():s.phi=s.phi<0?-N:N):i(s.phi=(c-s.phi*s.phi)/m)<=1?s.phi=r(s.phi):s.phi=s.phi<0?-N:N,s.lam=p(l,v)/h):(s.lam=0,s.phi=h>0?N:-N)},i(e+s)<D&&B(-21),h=g=n(e),v=a(e),C=i(e-s)>=D,(y=t.es>0)?(Yt(t.es),E=Vt(g,v,t.es),M=Kt(g,t.e,t.one_es),C&&(x=Vt(g=n(s),v=a(s),t.es),S=Kt(g,t.e,t.one_es),h=(E*E-x*x)/(S-M)),o=1-.5*t.one_es*_((1-t.e)/(1+t.e))/t.e,d=(u=1/h)*l((c=E*E+h*M)-h*Kt(n(t.phi0),t.e,t.one_es))):(C&&(h=.5*(h+n(s))),d=(u=1/h)*l((c=v*v+(m=h+h)*g)-m*n(t.phi0)))}function Yt(i){var t,n=.046875,a=.01953125,e=.01068115234375,s=[];return s[0]=1-i*(.25+i*(n+i*(a+i*e))),s[1]=i*(.75-i*(n+i*(a+i*e))),s[2]=(t=i*i)*(.46875-i*(.013020833333333334+.007120768229166667*i)),s[3]=(t*=i)*(.3645833333333333-.005696614583333333*i),s[4]=t*i*.3076171875,s}function Xt(i,t,n,a){return n*=t,t*=t,a[0]*i-n*(a[1]+t*(a[2]+t*(a[3]+t*a[4])))}function Zt(t,e,s){var r,o,h,p=1/(1-e);h=t;for(var c=10;c>0;--c)if(o=1-e*(r=n(h))*r,h-=o=(Xt(h,r,a(h),s)-t)*(o*l(o))*p,i(o)<1e-11)return h;return U(O),h}function $t(t){var n=i(t);return n>=1?(n>1.00000000000001&&U(-19),t<0?-N:N):r(t)}function Qt(t){var n=i(t);return n>=1?(n>1.00000000000001&&U(-19),t<0?S:0):o(t)}function tn(i){return i<=0?0:l(i)}function nn(t,n){return i(t)<1e-50&&i(n)<1e-50?0:p(t,n)}function an(t){var e=t.opaque||{mode:0};t.inv=function(t,s){var r,h,p,l,u,_,f,m,d,y,v,g,A,C,x,M,E,b=1e-12,w=0;if(i(t.x)<b&&i(t.y)<b)return s.phi=0,void(s.lam=0);s.phi=t.y,s.lam=t.x;do{r=0;do{for(g=n(.5*s.lam),x=a(.5*s.lam),A=n(s.phi),p=1-(h=(C=a(s.phi))*x)*h,l=2*(h=o(h)/c(p,1.5))*p*C*g,u=h*p*A,_=2*(g*x*A*C/p-h*A*g),f=C*C*g*g/p+h*C*x*A*A,m=A*A*x/p+h*g*g*C,d=.5*(A*C*g/p-h*A*C*C*g*x),e.mode&&(l=.5*(l+s.lam*e.cosphi1),u=.5*(u+s.phi),_*=.5,f=.5*(f+e.cosphi1),m=.5*(m+1),d*=.5),l-=t.x,v=((u-=t.y)*_-l*m)/(y=_*d-m*f),y=(l*d-u*f)/y;v>S;)v-=S;for(;v<-S;)v+=S;s.phi-=y,s.lam-=v}while((i(y)>b||i(v)>b)&&r++<10);s.phi>N&&(s.phi-=2*(s.phi-N)),s.phi<-N&&(s.phi-=2*(s.phi+N)),i(i(s.phi)-N)<b&&!e.mode&&(s.lam=0),(h=o(a(s.phi)*a(p=.5*s.lam)))?(M=2*h*a(s.phi)*n(p)*(E=1/n(h)),E*=h*n(s.phi)):M=E=0,e.mode&&(M=.5*(M+s.lam*e.cosphi1),E=.5*(E+s.phi))}while((i(t.x-M)>b||i(t.y-E)>b)&&w++<20)},t.fwd=function(i,t){var s,r;(r=o(a(i.phi)*a(s=.5*i.lam)))?(t.x=2*r*a(i.phi)*n(s)*(t.y=1/n(r)),t.y*=r*n(i.phi)):t.x=t.y=0,e.mode&&(t.x=.5*(t.x+i.lam*e.cosphi1),t.y=.5*(t.y+i.phi))},t.es=0}function en(t,a,e){t.es=0,t.fwd=function(t,s){var r,o,h=2.4674011002723395;s.y=a?N*n(t.phi):t.phi,(r=i(t.lam))>=1e-10?(e&&r>=N?s.x=l(h-t.phi*t.phi+1e-10)+r-N:(o=.5*(h/r+r),s.x=r-o+l(o*o-s.y*s.y)),t.lam<0&&(s.x=-s.x)):s.x=0}}function sn(i){var t,n=[];return n[0]=.3333333333333333*i,t=i*i,n[0]+=.17222222222222222*t,n[1]=.06388888888888888*t,t*=i,n[0]+=.10257936507936508*t,n[1]+=.0664021164021164*t,n[2]=.01677689594356261*t,n}function rn(i,t){var a=i+i;return i+t[0]*n(a)+t[1]*n(a+a)+t[2]*n(a+a+a)}function on(i,t){i.es=0,i.fwd=function(i,n){n.y=t.C_y*i.phi,n.x=t.C_x*i.lam*(t.A+tn(1-t.B*i.phi*i.phi))},i.inv=function(i,n){n.phi=i.y/t.C_y,n.lam=i.x/(t.C_x*(t.A+tn(1-t.B*n.phi*n.phi)))}}function hn(t){var s,r,o,c,u,y,v=[],g=[],C=[],S=[];function x(i,t){for(var e,s=2*a(2*t),r=i.length-1,o=i[r],h=0;--r>=0;)e=s*o-h+i[r],h=o,o=e;return t+e*n(2*t)}function M(i,t,e){for(var s,r,o=n(t),h=a(t),p=m(e),l=d(e),c=2*h*l,u=-2*o*p,_=i.length-1,f=i[_],y=0,v=0,g=0;--_>=0;)s=v,r=y,f=c*(v=f)-s-u*(y=g)+i[_],g=u*v-r+c*y;return[(c=o*l)*f-(u=h*p)*g,c*g+u*f]}t.es<=0&&B(-34),u=c=(o=t.es/(1+l(1-t.es)))/(2-o),v[0]=c*(2+c*(-2/3+c*(c*(116/45+c*(26/45+c*(-2854/675)))-2))),g[0]=c*(c*(2/3+c*(4/3+c*(-82/45+c*(32/45+c*(4642/4725)))))-2),u*=c,v[1]=u*(7/3+c*(c*(-227/45+c*(2704/315+c*(2323/945)))-1.6)),g[1]=u*(5/3+c*(-16/15+c*(-13/9+c*(904/315+c*(-1522/945))))),u*=c,v[2]=u*(56/15+c*(-136/35+c*(-1262/105+c*(73814/2835)))),g[2]=u*(-26/15+c*(34/21+c*(1.6+c*(-12686/2835)))),u*=c,v[3]=u*(4279/630+c*(-332/35+c*(-399572/14175))),g[3]=u*(1237/630+c*(c*(-24832/14175)-2.4)),u*=c,v[4]=u*(4174/315+c*(-144838/6237)),g[4]=u*(-734/315+c*(109598/31185)),u*=c,v[5]=u*(601676/22275),g[5]=u*(444337/155925),u=c*c,s=t.k0/(1+c)*(1+u*(1/4+u*(1/64+u/256))),C[0]=c*(c*(2/3+c*(-37/96+c*(1/360+c*(81/512+c*(-96199/604800)))))-.5),S[0]=c*(.5+c*(-2/3+c*(5/16+c*(41/180+c*(-127/288+c*(7891/37800)))))),C[1]=u*(-1/48+c*(-1/15+c*(437/1440+c*(-46/105+c*(1118711/3870720))))),S[1]=u*(13/48+c*(c*(557/1440+c*(281/630+c*(-1983433/1935360)))-.6)),u*=c,C[2]=u*(-17/480+c*(37/840+c*(209/4480+c*(-5569/90720)))),S[2]=u*(61/240+c*(-103/140+c*(15061/26880+c*(167603/181440)))),u*=c,C[3]=u*(-4397/161280+c*(11/504+c*(830251/7257600))),S[3]=u*(49561/161280+c*(-179/168+c*(6601661/7257600))),u*=c,C[4]=u*(-4583/161280+c*(108847/3991680)),S[4]=u*(34729/80640+c*(-3418889/1995840)),u*=c,C[5]=u*(-20648693/638668800),S[5]=.6650675310896665*u,y=x(g,t.phi0),r=-s*(y+function(i,t){for(var e,s=2*a(t),r=i.length-1,o=i[r],h=0;--r>=0;)e=s*o-h+i[r],h=o,o=e;return n(t)*e}(S,2*y)),t.fwd=function(t,o){var h,l,c,u,m,d,y,v=t.phi,C=t.lam;v=x(g,v),h=n(v),l=a(v),u=n(C),c=a(C),v=p(h,c*l),C=p(u*l,f(h,l*c)),d=e(C),y=function(i){var t=1+i,n=t-1;return 0===n?i:i*_(t)/n}((y=i(d))*(1+y/(f(1,y)+1))),m=M(S,2*v,2*(C=d<0?-y:y)),v+=m[0],C+=m[1],i(C)<=2.623395162778?(o.y=s*v+r,o.x=s*C):o.x=o.y=A},t.inv=function(t,e){var o,l,c,u,_,d=t.y,y=t.x;d=(d-r)/s,i(y/=s)<=2.623395162778?(d+=(_=M(C,2*d,2*y))[0],y+=_[1],y=h(m(y)),o=n(d),l=a(d),u=n(y),c=a(y),y=p(u,c*l),d=p(o*c,f(u,c*l)),e.phi=x(v,d),e.lam=y):e.phi=e.lam=A}}function pn(t){var e;t.es?(e=Yt(t.es),t.fwd=function(i,s){var r,o;s.y=Xt(i.phi,r=n(i.phi),o=a(i.phi),e),s.x=i.lam*o/l(1-t.es*r*r)},t.inv=function(s,r){var o=i(r.phi=Zt(s.y,t.es,e));o<N?(o=n(r.phi),r.lam=s.x*l(1-t.es*o*o)/a(r.phi)):o-D<N?r.lam=0:j()}):ln(t,0,1)}function ln(t,e,s){var r,o;r=(o=l((e+1)/s))/(e+1),t.es=0,t.fwd=function(t,h){var p,l,c;if(e){for(p=s*n(t.phi),c=8;c&&(t.phi-=l=(e*t.phi+n(t.phi)-p)/(e+a(t.phi)),!(i(l)<1e-7));--c);c||z()}else t.phi=1!=s?$t(s*n(t.phi)):t.phi;h.x=r*t.lam*(e+a(t.phi)),h.y=o*t.phi},t.inv=function(i,t){i.y/=o,t.phi=e?$t((e*i.y+n(i.y))/s):1!=s?$t(n(i.y)/s):i.y,t.lam=i.x/(r*(e+a(i.y)))}}function cn(i){_n(i,un(0,N))}function un(i,t){var a=n(t),e=t+t,s=l(G*a/(e+n(e)));return{C_x:2*s/S,C_y:s/a,C_p:e+n(e)}}function _n(t,e){t.fwd=function(t,s){var r,o,h;for(r=e.C_p*n(t.phi),h=10;h&&(t.phi-=o=(t.phi+n(t.phi)-r)/(1+a(t.phi)),!(i(o)<1e-7));--h);h?t.phi*=.5:t.phi=t.phi<0?-N:N,s.x=e.C_x*t.lam*a(t.phi),s.y=e.C_y*n(t.phi)},t.inv=function(t,s){s.phi=$t(t.y/e.C_y),s.lam=t.x/(e.C_x*a(s.phi)),i(s.lam)-S<D?(s.phi+=s.phi,s.phi=$t((s.phi+n(s.phi))/e.C_p)):s.lam=s.phi=A},t.es=0}function fn(a,e){var s,o,h,p,u,_=[[0,-1],[1,0]],f=[[-1,0],[0,-1]],m=[[0,1],[-1,0]],d=[[[1,0],[0,1]],_,f,m,m,f,_],g=1e-15;function C(a,e){var s=a.lam,o=a.phi,h=r(2/3);if(i(o)<=h)e.x=s,e.y=3*S/8*n(o);else{var p,c=l(3*(1-i(n(o)))),u=t(2*s/S+2);u>=4&&(u=3),p=-3*w+N*u,e.x=p+(s-p)*c,e.y=M(o)*w*(2-c)}}function x(n,a){var e=n.x,s=n.y,o=w;if(i(s)<=o)a.lam=e,a.phi=r(8*s/(3*S));else if(i(s)<N){var h,p,l=t(2*e/S+2);l>=4&&(l=3),h=-3*w+N*l,p=2-4*i(s)/S,a.lam=h+(e-h)/p,a.phi=M(s)*r(1-c(p,2)/3)}else a.lam=-S,a.phi=M(s)*N}function M(i){return i>0?1:i<0?-1:0}function E(i){switch(i){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;case-1:return 4;case-2:return 5;case-3:return 6}return 0}function b(i,t){return function(i,t,n){var a,e,s,r,o,h=0,p=i.length;for(o=0;o<p;o++)if(t==i[o][0]&&n==i[o][1])return!0;for(a=i[0][0],e=i[0][1],o=1;o<p;o++)s=i[o%p][0],r=i[o%p][1],n>y(e,r)&&n<=v(e,r)&&t<=v(a,s)&&e!=r&&(a==s||t<=(n-e)*(s-a)/(r-e)+a)&&h++,a=s,e=r;return h%2!=0}(u,i,t)}function I(t,a,e){if(e)return rn(a,p);var s=Kt(n(a),t.e,1-t.es)/h;return i(s)>1&&(s=M(s)),r(s)}function G(i,t,n,a){var e,s,r,o,h,p,l=0,c=function(i,t,n,a,e){var s,r={};if(r.x=i,r.y=t,e){if(t>w)r.region="north",r.x=-3*w+n*N,r.y=N,i-=n*N;else{if(!(t<-w))return r.region="equatorial",r.cn=0,r;r.region="south",r.x=-3*w+a*N,r.y=-N,i-=a*N}"north"==r.region?r.cn=t>=-i-w-g&&t<i+5*w-g?(n+1)%4:t>-i-w+g&&t>=i+5*w-g?(n+2)%4:t<=-i-w+g&&t>i+5*w+g?(n+3)%4:n:"south"==r.region&&(r.cn=t<=i+w+g&&t>-i-5*w+g?(a+1)%4:t<i+w-g&&t<=-i-5*w+g?(a+2)%4:t>=i+w-g&&t<-i-5*w-g?(a+3)%4:a)}else{if(t>w)r.region="north",s=N;else{if(!(t<-w))return r.region="equatorial",r.cn=0,r;r.region="south",s=-N}i<-N?(r.cn=0,r.x=-3*w,r.y=s):i>=-N&&i<0?(r.cn=1,r.x=-w,r.y=s):i>=0&&i<N?(r.cn=2,r.x=w,r.y=s):(r.cn=3,r.x=3*w,r.y=s)}return r}(i.x,i.y,t,n,a);if("equatorial"==c.region)return i.x=c.x,void(i.y=c.y);e=[i.x,i.y],s=[c.x,c.y],a?"north"==c.region?(l=t,p=d[E(-1*(c.cn-l))]):(l=n,p=d[E(c.cn-l)]):"north"==c.region?(l=t,p=d[E(c.cn-l)]):(l=n,p=d[E(-1*(c.cn-l))]),o=function(i,t){return[i[0]-t[0],i[1]-t[1]]}(e,s),h=function(i,t){var n,a,e=[0,0];for(n=0;n<2;n++)for(a=0;a<2;a++)e[n]+=i[n][a]*t[a];return e}(p,o),r=function(i,t){return[i[0]+t[0],i[1]+t[1]]}(h,[-3*w+(a?c.cn:0)*N,N]),i.x=r[0],i.y=r[1]}e?(s=X(a.params,"inorth_square"),o=X(a.params,"isouth_square"),(s<0||s>3)&&B(-47),(o<0||o>3)&&B(-47),u=[[-S-g,w+g],[s*N-S-g,w+g],[s*N-S-g,3*w+g],[(s+1)*N-S+g,3*w+g],[(s+1)*N-S+g,w+g],[S+g,w+g],[S+g,-w-g],[(o+1)*N-S+g,-w-g],[(o+1)*N-S+g,-3*w-g],[o*N-S-g,-3*w-g],[o*N-S-g,-w-g],[-S-g,-w-g]],0!=a.es?(p=sn(a.es),h=Kt(1,a.e,a.one_es),a.a=a.a*l(.5*h),a.ra=1/a.a,a.fwd=function(i,t){return i.phi=I(a,i.phi,0),C(i,t),G(t,s,o,0)},a.inv=function(i,t){if(!b(i.x,i.y))return t.lam=A,t.phi=A,void U(-15);G(i,s,o,1),x(i,t),t.phi=I(a,t.phi,1)}):(a.fwd=function(i,t){C(i,t),G(t,s,o,0)},a.inv=function(i,t){if(!b(i.x,i.y))return t.lam=A,t.phi=A,void U(-15);G(i,s,o,1),x(i,t)})):(u=[[-S-g,w],[-3*w,N+g],[-N,w+g],[-w,N+g],[0,w+g],[w,N+g],[N,w+g],[3*w,N+g],[S+g,w],[S+g,-w],[3*w,-N-g],[N,-w-g],[w,-N-g],[0,-w-g],[-w,-N-g],[-N,-w-g],[-3*w,-N-g],[-S-g,-w]],0!=a.es?(p=sn(a.es),h=Kt(1,a.e,a.one_es),a.a=a.a*l(.5*h),a.ra=1/a.a,a.fwd=function(i,t){i.phi=I(a,i.phi,0),C(i,t)},a.inv=function(i,t){if(!b(i.x,i.y))return t.lam=A,t.phi=A,void U(-15);x(i,t),t.phi=I(a,t.phi,1)}):(a.fwd=function(i,t){C(i,t)},a.inv=function(i,t){if(!b(i.x,i.y))return t.lam=A,t.phi=A,void U(-15);x(i,t)}))}function mn(i){i.x0=0,i.y0=0,i.is_latlong=!0,i.fwd=function(t,n){n.x=t.lam/i.a,n.y=t.phi/i.a},i.inv=function(t,n){n.lam=t.x*i.a,n.phi=t.y*i.a}}function dn(i,t,n){return t*=n,e(.5*(N-i))/c((1-t)/(1+t),.5*n)}function yn(t,a){var e,s,r=.5*a,o=N-2*h(t),p=15;do{e=a*n(o),o+=s=N-2*h(t*c((1-e)/(1+e),r))-o}while(i(s)>1e-10&&--p);return p<=0&&U(-18),o}function vn(i,t){var n,a,e,s=t.length-1;for(a=t[s][0],e=t[s][1];--s>=0;)n=a,a=t[s][0]+i.r*n-i.i*e,e=t[s][1]+i.r*e+i.i*n;return{r:i.r*a-i.i*e,i:i.r*e+i.i*a}}function gn(i,t,n){var a,e,s,r,o,h=!0,p=t.length-1;for(e=r=t[p][0],a=s=t[p][1];--p>=0;)h?h=!1:(r=e+i.r*(o=r)-i.i*s,s=a+i.r*s+i.i*o),e=t[p][0]+i.r*(o=e)-i.i*a,a=t[p][1]+i.r*a+i.i*o;return n.r=e+i.r*r-i.i*s,n.i=a+i.r*s+i.i*r,{r:i.r*e-i.i*a,i:i.r*a+i.i*e}}function An(t,s){var r,o,l,u,_=1e-12;0!=t.es?(r=t.e*n(t.phi0),o=2*h(e(.5*(N+t.phi0))*c((1-r)/(1+r),.5*t.e))-N):o=t.phi0,u=n(o),l=a(o),t.inv=function(r,o){var m,d,y,v,g,C,S,x={},M={},E={},b=0,w=0,I=0,G=0;for(x.r=r.x,x.i=r.y,m=20;m&&((d=gn(x,s,M)).r-=r.x,d.i-=r.y,y=M.r*M.r+M.i*M.i,E.r=-(d.r*M.r+d.i*M.i)/y,E.i=-(d.i*M.r-d.r*M.i)/y,x.r+=E.r,x.i+=E.i,!(i(E.r)+i(E.i)<=_));--m);if(m){if(b=f(x.r,x.i),v=2*h(.5*b),w=n(v),I=a(v),o.lam=t.lam0,i(b)<=_)return o.lam=0,void(o.phi=t.phi0);for(G=g=$t(I*u+x.i*w*l/b),m=20;m&&(C=t.e*n(G),G+=S=2*h(e(.5*(N+g))*c((1+C)/(1-C),.5*t.e))-N-G,!(i(S)<=_));--m);}m?(o.phi=G,o.lam=p(x.r*w,b*l*I-x.i*u*w)):o.lam=o.phi=A},t.fwd=function(i,r){var o,p,_,f,m,d,y,v={};o=n(i.lam),p=a(i.lam),_=t.e*n(i.phi),f=2*h(e(.5*(N+i.phi))*c((1-_)/(1+_),.5*t.e))-N,m=n(f),d=a(f),y=2/(1+u*m+l*d*p),v.r=y*d*o,v.i=y*(l*m-u*d*p),v=vn(v,s),r.x=v.r,r.y=v.i}}function Cn(t,e,s,o){var h,c,u,_,m,d,y,v,g,A,C,S,x=!isNaN(s)&&!isNaN(o);e<=0&&B(-30),x&&(g=a(o),A=n(o),S=a(s),C=n(s)),i(i(t.phi0)-N)<D?h=t.phi0<0?1:0:i(t.phi0)<D?h=2:(h=3,c=n(t.phi0),u=a(t.phi0)),d=e/t.a,m=1/(_=1+d),y=(_+1)*(v=1/d),t.fwd=function(i,t){var e,s,r,o,p;switch(r=n(i.phi),s=a(i.phi),e=a(i.lam),h){case 3:t.y=c*r+u*s*e;break;case 2:t.y=s*e;break;case 1:t.y=-r;break;case 0:t.y=r}switch(t.y<m&&z(),t.y=d/(_-t.y),t.x=t.y*s*n(i.lam),h){case 3:t.y*=u*r-c*s*e;break;case 2:t.y*=r;break;case 0:e=-e;case 1:t.y*=s*e}x&&(p=1/((o=t.y*g+t.x*A)*C*v+S),t.x=(t.x*g-t.y*A)*S*p,t.y=o*p)},t.inv=function(a,e){var s,o,m,v,M,E;if(x&&(E=1/(d-a.y*C),v=d*a.x*E,M=d*a.y*S*E,a.x=v*g+M*A,a.y=M*g-v*A),s=f(a.x,a.y),(m=1-s*s*y)<0&&j(),m=(_-l(m))/(d/s+s/d),o=l(1-m*m),i(s)<=D)e.lam=0,e.phi=t.phi0;else{switch(h){case 3:e.phi=r(o*c+a.y*m*u/s),a.y=(o-c*n(e.phi))*s,a.x*=m*u;break;case 2:e.phi=r(a.y*m/s),a.y=o*s,a.x*=m;break;case 0:e.phi=r(o),a.y=-a.y;break;case 1:e.phi=-r(o)}e.lam=p(a.x,a.y)}},t.es=0}function Sn(i,t){var n=.79788456,a=.1013211836*(t?2:4);i.es=0,i.fwd=function(i,t){t.x=n*i.lam*(1-a*i.phi*i.phi),t.y=n*i.phi},i.inv=function(i,t){t.phi=i.y/n,t.lam=i.x/(n*(1-a*t.phi*t.phi))}}function xn(i,t,e){i.es=0,i.fwd=function(i,s){i.phi=$t(.883883476*n(i.phi)),s.x=t*i.lam*a(i.phi),s.x/=a(i.phi*=.333333333333333),s.y=e*n(i.phi)},i.inv=function(i,s){s.phi=$t(i.y/e),s.lam=i.x*a(s.phi)/t,s.phi*=3,s.lam/=a(s.phi),s.phi=$t(1.13137085*n(s.phi))}}function Mn(i,t){var n=t?1.5:2,a=t?.5:1,e=1.01346,s=1.2158542;i.es=0,i.fwd=function(i,t){t.x=e*i.lam*(n-a*l(1+s*i.phi*i.phi)),t.y=e*i.phi},i.inv=function(i,t){t.phi=i.y/e,t.lam=i.x/(e*(n-a*l(1+s*t.phi*t.phi)))}}function En(t,a){var e,s,r,o,h,p=1.732050807568877;a?(r=.44329,o=.80404,e=6,s=5.61125,h=3):(r=1.01346,o=.9191,e=4,s=2.147143718212938,h=2),t.es=0,t.fwd=function(t,a){var c,u,f,m;for(c=s*n(t.phi),t.phi*=1.10265779,m=10;m&&(u=l(1+t.phi*t.phi),t.phi-=f=((e-u)*t.phi-_(t.phi+u)-c)/(e-2*u),!(i(f)<1e-10));--m);m||(t.phi=c<0?-p:p),a.x=r*t.lam*(h-l(1+t.phi*t.phi)),a.y=o*t.phi},t.inv=function(i,t){var n;t.phi=i.y/o,n=l(1+t.phi*t.phi),t.lam=i.x/(r*(h-n)),t.phi=$t(((e-n)*t.phi-_(t.phi+n))/s)}}function bn(t){return function(s){!function(t,s){var r,o,c,u,_,m,d,y,v,g,A=1e-10;switch(X(t.params,"tlat_1")&&X(t.params,"tlat_2")?(c=X(t.params,"rlat_1"),u=X(t.params,"rlat_2"),y=.5*(u+c),(i(r=.5*(u-c))<A||i(y)<A)&&B(-42)):B(-41),s){case"TISSOT":_=n(y),o=a(r),d=l(((m=_/o+o/_)-2*n(t.phi0))/_);break;case"MURD1":m=n(r)/(r*e(y))+y,d=m-t.phi0,_=n(y);break;case"MURD2":m=(o=l(a(r)))/e(y),d=m+e(y-t.phi0),_=n(y)*o;break;case"MURD3":m=r/(e(y)*e(r))+y,d=m-t.phi0,_=n(y)*n(r)*e(r)/(r*r);break;case"EULER":_=n(y)*n(r)/r,m=(r*=.5)/(e(r)*e(y))+y,d=m-t.phi0;break;case"PCONIC":_=n(y),g=a(r),v=1/e(y),i(r=t.phi0-y)-A>=N&&B(-43),d=g*(v-e(r));break;case"VITK1":_=(o=e(r))*n(y)/r,m=r/(o*e(y))+y,d=m-t.phi0}function C(i,t){var r;switch(s){case"MURD2":r=m+e(y-i.phi);break;case"PCONIC":r=g*(v-e(i.phi-y));break;default:r=m-i.phi}t.x=r*n(i.lam*=_),t.y=d-r*a(i.lam)}function S(i,t){var n;switch(n=f(i.x,i.y=d-i.y),_<0&&(n=-n,i.x=-i.x,i.y=-i.y),t.lam=p(i.x,i.y)/_,s){case"PCONIC":t.phi=h(v-n/g)+y;break;case"MURD2":t.phi=y-h(n-m);break;default:t.phi=m-n}}t.inv=S,t.fwd=C,t.es=0}(s,t)}}function wn(t,s){var o,u,_,m,d,y,v,g,A=1e-10;if(g=i((u=i(t.phi0))-N)<A?t.phi0<0?0:1:u>A?2:3,s=i(s),t.es){switch(g){case 1:case 0:i(s-N)<A?v=2*t.k0/l(c(1+t.e,1+t.e)*c(1-t.e,1-t.e)):(v=a(s)/dn(s,u=n(s),t.e),u*=t.e,v/=l(1-u*u));break;case 3:case 2:u=n(t.phi0),o=2*h(C(t.phi0,u,t.e))-N,u*=t.e,v=2*t.k0*a(t.phi0)/l(1-u*u),d=n(o),y=a(o)}t.fwd=function(i,e){var s,r,o,p,l,c=0,u=0;switch(s=a(i.lam),r=n(i.lam),l=n(i.phi),(2==g||3==g)&&(c=n(o=2*h(C(i.phi,l,t.e))-N),u=a(o)),g){case 2:p=v/(y*(1+d*c+y*u*s)),e.y=p*(y*c-d*u*s),e.x=p*u;break;case 3:p=v/(1+u*s),e.y=p*c,e.x=p*u;break;case 0:i.phi=-i.phi,s=-s,l=-l;case 1:e.x=v*dn(i.phi,l,t.e),e.y=-e.x*s}e.x=e.x*r},t.inv=function(s,o){o.phi;var l,u,_,m,A=0,C=0,S=0,x=0;switch(_=f(s.x,s.y),g){case 2:case 3:l=a(A=2*p(_*y,v)),u=n(A),C=r(0==_?l*d:l*d+s.y*u*y/_),A=e(.5*(N+C)),s.x*=u,s.y=_*y*l-s.y*d*u,x=N,S=.5*t.e;break;case 1:s.y=-s.y;case 0:C=N-2*h(A=-_/v),x=-N,S=-.5*t.e}for(m=0;m<8;m++,C=o.phi)if(u=t.e*n(C),o.phi=2*h(A*c((1+u)/(1-u),S))-x,i(C-o.phi)<1e-10)return 0==g&&(o.phi=-o.phi),void(o.lam=0==s.x&&0==s.y?0:p(s.x,s.y));j()}}else{switch(g){case 2:_=n(t.phi0),m=a(t.phi0);case 3:v=2*t.k0;break;case 0:case 1:v=i(s-N)>=A?a(s)/e(w-.5*s):2*t.k0}t.fwd=function(t,s){var r=t.phi,o=n(r),h=a(r),p=a(t.lam),l=n(t.lam);switch(g){case 3:case 2:s.y=3==g?1+h*p:1+_*o+m*h*p,s.y<=A&&z(),s.x=(s.y=v/s.y)*h*l,s.y*=3==g?o:m*o-_*h*p;break;case 1:p=-p,r=-r;case 0:i(r-N)<1e-8&&z(),s.x=l*(s.y=v*e(w+.5*r)),s.y*=p}},t.inv=function(e,s){var o,l,c,u;switch(c=n(o=2*h((l=f(e.x,e.y))/v)),u=a(o),s.lam=0,g){case 3:i(l)<=A?s.phi=0:s.phi=r(e.y*c/l),0==u&&0==e.x||(s.lam=p(e.x*c,u*l));break;case 2:i(l)<=A?s.phi=t.phi0:s.phi=r(u*_+e.y*c*m/l),0==(o=u-_*n(s.phi))&&0==e.x||(s.lam=p(e.x*c*m,o*l));break;case 1:e.y=-e.y;case 0:i(l)<=A?s.phi=t.phi0:s.phi=r(0==g?-u:u),s.lam=0==e.x&&0==e.y?0:p(e.x,e.y)}}}function C(i,t,n){return t*=n,e(.5*(N+i))*c((1-t)/(1+t),.5*n)}}function Nn(i,t){return c((1-i)/(1+i),t)}function In(i,t,s,r){var o=s/t,p=t,l=1/s;i.inv=function(i,t){var n;i.y/=p,n=a(t.phi=r?h(i.y):$t(i.y)),t.phi/=l,t.lam=i.x/(o*a(t.phi)),r?t.lam/=n*n:t.lam*=n},i.fwd=function(i,t){var s;t.x=o*i.lam*a(i.phi),t.y=p,i.phi*=l,s=a(i.phi),r?(t.x*=s*s,t.y*=e(i.phi)):(t.x/=s,t.y*=n(i.phi))},i.es=0}function Gn(t){var e,s,h,c=1e-10,f=.5,m=.16666666666666666,d=.08333333333333333,y=.05,v=.03333333333333333,g=.023809523809523808,A=.017857142857142856;t.es?((h=Yt(t.es))||e_error_0(),s=Xt(t.phi0,n(t.phi0),a(t.phi0),h),e=t.es/(1-t.es),t.fwd=function(r,o){var p,u,_,f,C,S;r.lam<-N||r.lam>N?U(-14):(p=n(r.phi),u=a(r.phi),_=i(u)>c?p/u:0,_*=_,f=u*r.lam,C=f*f,f/=l(1-t.es*p*p),S=e*u*u,o.x=t.k0*f*(1+m*C*(1-_+S+y*C*(5+_*(_-18)+S*(14-58*_)+g*C*(61+_*(_*(179-_)-479))))),o.y=t.k0*(Xt(r.phi,p,u,h)-s+p*f*r.lam*.5*(1+d*C*(5-_+S*(9+4*S)+v*C*(61+_*(_-58)+S*(270-330*_)+A*C*(1385+_*(_*(543-_)-3111)))))))},t.inv=function(r,o){var p,c,u,_,C,S,x;o.phi=Zt(s+r.y/t.k0,t.es,h),i(o.phi)>=N?(o.phi=r.y<0?-N:N,o.lam=0):(S=n(o.phi),u=a(o.phi),x=i(u)>1e-10?S/u:0,p=e*u*u,_=r.x*l(c=1-t.es*S*S)/t.k0,c*=x,x*=x,C=_*_,o.phi-=c*C/(1-t.es)*f*(1-C*d*(5+x*(3-9*p)+p*(1-4*p)-C*v*(61+x*(90-252*p+45*x)+46*p-C*A*(1385+x*(3633+x*(4095+1575*x)))))),o.lam=_*(1-C*m*(1+2*x+p-C*y*(5+x*(28+24*x+8*p)+6*p-C*g*(61+x*(662+x*(1320+720*x))))))/u)}):(e=t.k0,s=.5*e,t.fwd=function(r,h){var p,u;r.lam<-N||r.lam>N?U(-14):(u=a(r.phi),p=u*n(r.lam),i(i(p)-1)<=c&&z(),h.x=s*_((1+p)/(1-p)),h.y=u*a(r.lam)/l(1-p*p),(p=i(h.y))>=1?p-1>c?z():h.y=0:h.y=o(h.y),r.phi<0&&(h.y=-h.y),h.y=e*(h.y-t.phi0))},t.inv=function(i,n){var s=u(i.x/e),o=.5*(s-1/s);s=a(t.phi0+i.y/e),n.phi=r(l((1-s*s)/(1+o*o))),i.y<0&&-n.phi+t.phi0<0&&(n.phi=-n.phi),n.lam=o||s?p(o,s):0})}function kn(i,t){var e=.8773826753,s=1.139753528477/t;i.es=0,i.fwd=function(i,r){var o=$t(t*n(i.phi));r.x=e*i.lam*a(o),r.y=s*o},i.inv=function(i,r){i.y/=s,r.phi=$t(n(i.y)/t),r.lam=i.x/(e*a(i.y))}}function Pn(t,n){t.fwd=function(t,a){var e,s,r,o;r=i(k*t.phi),o=(o=1-r*r)<0?0:l(o),i(t.lam)<1e-10?(a.x=0,a.y=S*(t.phi<0?-r:r)/(1+o)):(s=.5*i(S/t.lam-t.lam/S),n?(e=r/(1+o),a.x=S*(l(s*s+1-e*e)-s),a.y=S*e):(e=(o*l(1+s*s)-s*o*o)/(1+s*s*r*r),a.x=S*e,a.y=S*l(1-e*(e+2*s)+1e-10)),t.lam<0&&(a.x=-a.x),t.phi<0&&(a.y=-a.y))},t.es=0}Ft.Constants={},Ft.Math={},Ft.Accumulator={},(Bt=Ft.Constants).WGS84={a:6378137,f:1/298.257223563},Bt.version={major:1,minor:48,patch:0},Bt.version_string="1.48",(Ht=Ft.Math).digits=53,Ht.epsilon=Math.pow(.5,Ht.digits-1),Ht.degree=Math.PI/180,Ht.sq=function(i){return i*i},Ht.hypot=function(i,t){var n,a;return i=Math.abs(i),t=Math.abs(t),n=Math.max(i,t),a=Math.min(i,t)/(n||1),n*Math.sqrt(1+a*a)},Ht.cbrt=function(i){var t=Math.pow(Math.abs(i),1/3);return i<0?-t:t},Ht.log1p=function(i){var t=1+i,n=t-1;return 0===n?i:i*Math.log(t)/n},Ht.atanh=function(i){var t=Math.abs(i);return t=Ht.log1p(2*t/(1-t))/2,i<0?-t:t},Ht.copysign=function(i,t){return Math.abs(i)*(t<0||0===t&&1/t<0?-1:1)},Ht.sum=function(i,t){var n=i+t,a=n-t,e=n-a;return{s:n,t:-((a-=i)+(e-=t))}},Ht.polyval=function(i,t,n,a){for(var e=i<0?0:t[n++];--i>=0;)e=e*a+t[n++];return e},Ht.AngRound=function(i){if(0===i)return i;var t=1/16,n=Math.abs(i);return n=n<t?t-(t-n):n,i<0?-n:n},Ht.AngNormalize=function(i){return(i%=360)<=-180?i+360:i<=180?i:i-360},Ht.LatFix=function(i){return Math.abs(i)>90?Number.NaN:i},Ht.AngDiff=function(i,t){var n=Ht.sum(Ht.AngNormalize(-i),Ht.AngNormalize(t)),a=Ht.AngNormalize(n.s),e=n.t;return Ht.sum(180===a&&e>0?-180:a,e)},Ht.sincosd=function(i){var t,n,a,e,s,r;switch(t=i%360,t-=90*(n=Math.floor(t/90+.5)),t*=this.degree,a=Math.sin(t),e=Math.cos(t),3&n){case 0:s=a,r=e;break;case 1:s=e,r=-a;break;case 2:s=-a,r=-e;break;default:s=-e,r=a}return i&&(s+=0,r+=0),{s:s,c:r}},Ht.atan2d=function(i,t){var n,a,e=0;switch(Math.abs(i)>Math.abs(t)&&(n=t,t=i,i=n,e=2),t<0&&(t=-t,++e),a=Math.atan2(i,t)/this.degree,e){case 1:a=(i>=0?180:-180)-a;break;case 2:a=90-a;break;case 3:a=-90+a}return a},function(i,t){i.Accumulator=function(i){this.Set(i)},i.Accumulator.prototype.Set=function(t){t||(t=0),t.constructor===i.Accumulator?(this._s=t._s,this._t=t._t):(this._s=t,this._t=0)},i.Accumulator.prototype.Add=function(i){var n=t.sum(i,this._t),a=t.sum(n.s,this._s);n=n.t,this._s=a.s,this._t=a.t,0===this._s?this._s=n:this._t+=n},i.Accumulator.prototype.Sum=function(t){var n;return t?((n=new i.Accumulator(this)).Add(t),n._s):this._s},i.Accumulator.prototype.Negate=function(){this._s*=-1,this._t*=-1}}(Ft.Accumulator,Ft.Math),Ft.Geodesic={},Ft.GeodesicLine={},Ft.PolygonArea={},function(i,t,n,a,e){var s,r,o,h,p,l,c,u,_,f,m,d=20+a.digits+10,y=a.epsilon,v=200*y,g=Math.sqrt(y),A=y*v,C=1e3*g;i.tiny_=Math.sqrt(Number.MIN_VALUE),i.nC1_=6,i.nC1p_=6,i.nC2_=6,i.nC3_=6,i.nC4_=6,s=i.nC3_*(i.nC3_-1)/2,r=i.nC4_*(i.nC4_+1)/2,i.CAP_C1=1,i.CAP_C1p=2,i.CAP_C2=4,i.CAP_C3=8,i.CAP_C4=16,i.NONE=0,i.ARC=64,i.LATITUDE=128,i.LONGITUDE=256|i.CAP_C3,i.AZIMUTH=512,i.DISTANCE=1024|i.CAP_C1,i.STANDARD=i.LATITUDE|i.LONGITUDE|i.AZIMUTH|i.DISTANCE,i.DISTANCE_IN=2048|i.CAP_C1|i.CAP_C1p,i.REDUCEDLENGTH=4096|i.CAP_C1|i.CAP_C2,i.GEODESICSCALE=8192|i.CAP_C1|i.CAP_C2,i.AREA=16384|i.CAP_C4,i.ALL=32671,i.LONG_UNROLL=32768,i.OUT_MASK=32640|i.LONG_UNROLL,i.SinCosSeries=function(i,t,n,a){var e=a.length,s=e-(i?1:0),r=2*(n-t)*(n+t),o=1&s?a[--e]:0,h=0;for(s=Math.floor(s/2);s--;)o=r*(h=r*o-h+a[--e])-o+a[--e];return i?2*t*n*o:n*(o-h)},o=function(i,t){var n,e,s,r,o,h,p,l,c,u,_,f,m=a.sq(i),d=a.sq(t),y=(m+d-1)/6;return 0===d&&y<=0?n=0:(h=y,(o=(e=m*d/4)*(e+2*(r=y*(s=a.sq(y)))))>=0?(p=e+r,p+=p<0?-Math.sqrt(o):Math.sqrt(o),h+=(l=a.cbrt(p))+(0!==l?s/l:0)):(c=Math.atan2(Math.sqrt(-o),-(e+r)),h+=2*y*Math.cos(c/3)),u=Math.sqrt(a.sq(h)+d),f=((_=h<0?d/(u-h):h+u)-d)/(2*u),n=_/(Math.sqrt(_+a.sq(f))+f)),n},h=[1,4,64,0,256],i.A1m1f=function(i){var t=Math.floor(3);return(a.polyval(t,h,0,a.sq(i))/h[t+1]+i)/(1-i)},p=[-1,6,-16,32,-9,64,-128,2048,9,-16,768,3,-5,512,-7,1280,-7,2048],i.C1f=function(t,n){var e,s,r=a.sq(t),o=t,h=0;for(e=1;e<=i.nC1_;++e)s=Math.floor((i.nC1_-e)/2),n[e]=o*a.polyval(s,p,h,r)/p[h+s+1],h+=s+2,o*=t},l=[205,-432,768,1536,4005,-4736,3840,12288,-225,116,384,-7173,2695,7680,3467,7680,38081,61440],i.C1pf=function(t,n){var e,s,r=a.sq(t),o=t,h=0;for(e=1;e<=i.nC1p_;++e)s=Math.floor((i.nC1p_-e)/2),n[e]=o*a.polyval(s,l,h,r)/l[h+s+1],h+=s+2,o*=t},c=[-11,-28,-192,0,256],i.A2m1f=function(i){var t=Math.floor(3);return(a.polyval(t,c,0,a.sq(i))/c[t+1]-i)/(1+i)},u=[1,2,16,32,35,64,384,2048,15,80,768,7,35,512,63,1280,77,2048],i.C2f=function(t,n){var e,s,r=a.sq(t),o=t,h=0;for(e=1;e<=i.nC2_;++e)s=Math.floor((i.nC2_-e)/2),n[e]=o*a.polyval(s,u,h,r)/u[h+s+1],h+=s+2,o*=t},i.Geodesic=function(i,t){if(this.a=i,this.f=t,this._f1=1-this.f,this._e2=this.f*(2-this.f),this._ep2=this._e2/a.sq(this._f1),this._n=this.f/(2-this.f),this._b=this.a*this._f1,this._c2=(a.sq(this.a)+a.sq(this._b)*(0===this._e2?1:(this._e2>0?a.atanh(Math.sqrt(this._e2)):Math.atan(Math.sqrt(-this._e2)))/Math.sqrt(Math.abs(this._e2))))/2,this._etol2=.1*g/Math.sqrt(Math.max(.001,Math.abs(this.f))*Math.min(1,1-this.f/2)/2),!(isFinite(this.a)&&this.a>0))throw new Error("Equatorial radius is not positive");if(!(isFinite(this._b)&&this._b>0))throw new Error("Polar semi-axis is not positive");this._A3x=new Array(6),this._C3x=new Array(s),this._C4x=new Array(r),this.A3coeff(),this.C3coeff(),this.C4coeff()},_=[-3,128,-2,-3,64,-1,-3,-1,16,3,-1,-2,8,1,-1,2,1,1],i.Geodesic.prototype.A3coeff=function(){var i,t,n=0,e=0;for(i=5;i>=0;--i)t=Math.min(6-i-1,i),this._A3x[e++]=a.polyval(t,_,n,this._n)/_[n+t+1],n+=t+2},f=[3,128,2,5,128,-1,3,3,64,-1,0,1,8,-1,1,4,5,256,1,3,128,-3,-2,3,64,1,-3,2,32,7,512,-10,9,384,5,-9,5,192,7,512,-14,7,512,21,2560],i.Geodesic.prototype.C3coeff=function(){var t,n,e,s=0,r=0;for(t=1;t<i.nC3_;++t)for(n=i.nC3_-1;n>=t;--n)e=Math.min(i.nC3_-n-1,n),this._C3x[r++]=a.polyval(e,f,s,this._n)/f[s+e+1],s+=e+2},m=[97,15015,1088,156,45045,-224,-4784,1573,45045,-10656,14144,-4576,-858,45045,64,624,-4576,6864,-3003,15015,100,208,572,3432,-12012,30030,45045,1,9009,-2944,468,135135,5792,1040,-1287,135135,5952,-11648,9152,-2574,135135,-64,-624,4576,-6864,3003,135135,8,10725,1856,-936,225225,-8448,4992,-1144,225225,-1440,4160,-4576,1716,225225,-136,63063,1024,-208,105105,3584,-3328,1144,315315,-128,135135,-2560,832,405405,128,99099],i.Geodesic.prototype.C4coeff=function(){var t,n,e,s=0,r=0;for(t=0;t<i.nC4_;++t)for(n=i.nC4_-1;n>=t;--n)e=i.nC4_-n-1,this._C4x[r++]=a.polyval(e,m,s,this._n)/m[s+e+1],s+=e+2},i.Geodesic.prototype.A3f=function(i){return a.polyval(5,this._A3x,0,i)},i.Geodesic.prototype.C3f=function(t,n){var e,s,r=1,o=0;for(e=1;e<i.nC3_;++e)s=i.nC3_-e-1,r*=t,n[e]=r*a.polyval(s,this._C3x,o,t),o+=s+1},i.Geodesic.prototype.C4f=function(t,n){var e,s,r=1,o=0;for(e=0;e<i.nC4_;++e)s=i.nC4_-e-1,n[e]=r*a.polyval(s,this._C4x,o,t),o+=s+1,r*=t},i.Geodesic.prototype.Lengths=function(t,n,a,e,s,r,o,h,p,l,c,u,_){var f,m,d,y,v={},g=0,A=0,C=0,S=0;if((c&=i.OUT_MASK)&(i.DISTANCE|i.REDUCEDLENGTH|i.GEODESICSCALE)&&(C=i.A1m1f(t),i.C1f(t,u),c&(i.REDUCEDLENGTH|i.GEODESICSCALE)&&(S=i.A2m1f(t),i.C2f(t,_),g=C-S,S=1+S),C=1+C),c&i.DISTANCE)f=i.SinCosSeries(!0,r,o,u)-i.SinCosSeries(!0,a,e,u),v.s12b=C*(n+f),c&(i.REDUCEDLENGTH|i.GEODESICSCALE)&&(A=g*n+(C*f-S*(i.SinCosSeries(!0,r,o,_)-i.SinCosSeries(!0,a,e,_))));else if(c&(i.REDUCEDLENGTH|i.GEODESICSCALE)){for(m=1;m<=i.nC2_;++m)_[m]=C*u[m]-S*_[m];A=g*n+(i.SinCosSeries(!0,r,o,_)-i.SinCosSeries(!0,a,e,_))}return c&i.REDUCEDLENGTH&&(v.m0=g,v.m12b=h*(e*r)-s*(a*o)-e*o*A),c&i.GEODESICSCALE&&(d=e*o+a*r,y=this._ep2*(p-l)*(p+l)/(s+h),v.M12=d+(y*r-o*A)*a/s,v.M21=d-(y*a-e*A)*r/h),v},i.Geodesic.prototype.InverseStart=function(t,n,e,s,r,h,p,l,c,u,_){var f,m,d,y,g,A,S,x,M,E,b,w,N,I,G,k,P,T,D,O,L={},R=s*n-r*t,q=r*n+s*t;return L.sig12=-1,f=s*n,f+=r*t,(m=q>=0&&R<.5&&r*p<.5)?(y=a.sq(t+s),y/=y+a.sq(n+r),L.dnm=Math.sqrt(1+this._ep2*y),d=p/(this._f1*L.dnm),g=Math.sin(d),A=Math.cos(d)):(g=l,A=c),L.salp1=r*g,L.calp1=A>=0?R+r*t*a.sq(g)/(1+A):f-r*t*a.sq(g)/(1-A),x=a.hypot(L.salp1,L.calp1),M=t*s+n*r*A,m&&x<this._etol2?(L.salp2=n*g,L.calp2=R-n*s*(A>=0?a.sq(g)/(1+A):1-A),S=a.hypot(L.salp2,L.calp2),L.salp2/=S,L.calp2/=S,L.sig12=Math.atan2(x,M)):Math.abs(this._n)>.1||M>=0||x>=6*Math.abs(this._n)*Math.PI*a.sq(n)||(O=Math.atan2(-l,-c),this.f>=0?(I=(N=a.sq(t)*this._ep2)/(2*(1+Math.sqrt(1+N))+N),E=O/(w=this.f*n*this.A3f(I)*Math.PI),b=f/(w*n)):(G=r*n-s*t,k=Math.atan2(f,G),b=p/(w=((E=(P=this.Lengths(this._n,Math.PI+k,t,-n,e,s,r,h,n,r,i.REDUCEDLENGTH,u,_)).m12b/(n*r*P.m0*Math.PI)-1)<-.01?f/E:-this.f*a.sq(n)*Math.PI)/n)),b>-v&&E>-1-C?this.f>=0?(L.salp1=Math.min(1,-E),L.calp1=-Math.sqrt(1-a.sq(L.salp1))):(L.calp1=Math.max(E>-v?0:-1,E),L.salp1=Math.sqrt(1-a.sq(L.calp1))):(T=o(E,b),D=w*(this.f>=0?-E*T/(1+T):-b*(1+T)/T),g=Math.sin(D),A=-Math.cos(D),L.salp1=r*g,L.calp1=f-r*t*a.sq(g)/(1-A))),L.salp1<=0?(L.salp1=1,L.calp1=0):(S=a.hypot(L.salp1,L.calp1),L.salp1/=S,L.calp1/=S),L},i.Geodesic.prototype.Lambda12=function(t,n,e,s,r,o,h,p,l,c,u,_,f,m){var d,y,v,g,A,C,S,x,M,E,b,w,N,I={};return 0===t&&0===p&&(p=-i.tiny_),y=h*n,v=a.hypot(p,h*t),I.ssig1=t,g=y*t,I.csig1=A=p*n,d=a.hypot(I.ssig1,I.csig1),I.ssig1/=d,I.csig1/=d,I.salp2=r!==n?y/r:h,I.calp2=r!==n||Math.abs(s)!==-t?Math.sqrt(a.sq(p*n)+(n<-t?(r-n)*(n+r):(t-s)*(t+s)))/r:Math.abs(p),I.ssig2=s,C=y*s,I.csig2=S=I.calp2*r,d=a.hypot(I.ssig2,I.csig2),I.ssig2/=d,I.csig2/=d,I.sig12=Math.atan2(Math.max(0,I.csig1*I.ssig2-I.ssig1*I.csig2),I.csig1*I.csig2+I.ssig1*I.ssig2),x=Math.max(0,A*C-g*S),M=A*S+g*C,b=Math.atan2(x*c-M*l,M*c+x*l),w=a.sq(v)*this._ep2,I.eps=w/(2*(1+Math.sqrt(1+w))+w),this.C3f(I.eps,m),E=i.SinCosSeries(!0,I.ssig2,I.csig2,m)-i.SinCosSeries(!0,I.ssig1,I.csig1,m),I.domg12=-this.f*this.A3f(I.eps)*y*(I.sig12+E),I.lam12=b+I.domg12,u&&(0===I.calp2?I.dlam12=-2*this._f1*e/t:(N=this.Lengths(I.eps,I.sig12,I.ssig1,I.csig1,e,I.ssig2,I.csig2,o,n,r,i.REDUCEDLENGTH,_,f),I.dlam12=N.m12b,I.dlam12*=this._f1/(I.calp2*r))),I},i.Geodesic.prototype.Inverse=function(t,n,e,s,r){var o,h;return r||(r=i.STANDARD),r===i.LONG_UNROLL&&(r|=i.STANDARD),r&=i.OUT_MASK,h=(o=this.InverseInt(t,n,e,s,r)).vals,r&i.AZIMUTH&&(h.azi1=a.atan2d(o.salp1,o.calp1),h.azi2=a.atan2d(o.salp2,o.calp2)),h},i.Geodesic.prototype.InverseInt=function(t,n,e,s,r){var o,h,p,l,c,u,_,f,m,v,g,C,S,x,M,E,b,w,N,I,G,k,P,T,D,O,L,R,q,U,z,j,W,B,H,F,K,V,J,Y,X,Z,$,Q,ii,ti,ni,ai,ei,si,ri,oi,hi,pi,li,ci,ui,_i,fi,mi,di,yi,vi,gi,Ai,Ci={};if(Ci.lat1=t=a.LatFix(t),Ci.lat2=e=a.LatFix(e),t=a.AngRound(t),e=a.AngRound(e),h=(o=a.AngDiff(n,s)).t,o=o.s,r&i.LONG_UNROLL?(Ci.lon1=n,Ci.lon2=n+o+h):(Ci.lon1=a.AngNormalize(n),Ci.lon2=a.AngNormalize(s)),o=(p=o>=0?1:-1)*a.AngRound(o),h=a.AngRound(180-o-p*h),M=o*a.degree,E=(l=a.sincosd(o>90?h:o)).s,b=(o>90?-1:1)*l.c,(c=Math.abs(t)<Math.abs(e)?-1:1)<0&&(p*=-1,l=t,t=e,e=l),t*=u=t<0?1:-1,e*=u,l=a.sincosd(t),_=this._f1*l.s,f=l.c,_/=l=a.hypot(_,f),f/=l,f=Math.max(i.tiny_,f),l=a.sincosd(e),m=this._f1*l.s,v=l.c,m/=l=a.hypot(m,v),v/=l,v=Math.max(i.tiny_,v),f<-_?v===f&&(m=m<0?_:-_):Math.abs(m)===-_&&(v=f),S=Math.sqrt(1+this._ep2*a.sq(_)),x=Math.sqrt(1+this._ep2*a.sq(m)),P=new Array(i.nC1_+1),T=new Array(i.nC2_+1),D=new Array(i.nC3_),(O=-90===t||0===E)&&(I=E,k=0,R=_,q=(N=b)*f,U=m,z=(G=1)*v,w=Math.atan2(Math.max(0,q*U-R*z),q*z+R*U),g=(L=this.Lengths(this._n,w,R,q,S,U,z,x,f,v,r|i.DISTANCE|i.REDUCEDLENGTH,P,T)).s12b,C=L.m12b,0!==(r&i.GEODESICSCALE)&&(Ci.M12=L.M12,Ci.M21=L.M21),w<1||C>=0?(w<3*i.tiny_&&(w=C=g=0),C*=this._b,g*=this._b,Ci.a12=w/a.degree):O=!1),ui=2,!O&&0===_&&(this.f<=0||h>=180*this.f))N=G=0,I=k=1,g=this.a*M,w=W=M/this._f1,C=this._b*Math.sin(w),r&i.GEODESICSCALE&&(Ci.M12=Ci.M21=Math.cos(w)),Ci.a12=o/this._f1;else if(!O)if(w=(L=this.InverseStart(_,f,S,m,v,x,M,E,b,P,T)).sig12,I=L.salp1,N=L.calp1,w>=0)k=L.salp2,G=L.calp2,B=L.dnm,g=w*this._b*B,C=a.sq(B)*this._b*Math.sin(w/B),r&i.GEODESICSCALE&&(Ci.M12=Ci.M21=Math.cos(w/B)),Ci.a12=w/a.degree,W=M/(this._f1*B);else{for(H=0,F=i.tiny_,K=1,V=i.tiny_,J=-1,Y=!1,X=!1;H<d&&(Z=(L=this.Lambda12(_,f,S,m,v,x,I,N,E,b,H<20,P,T,D)).lam12,k=L.salp2,G=L.calp2,w=L.sig12,R=L.ssig1,q=L.csig1,U=L.ssig2,z=L.csig2,j=L.eps,fi=L.domg12,$=L.dlam12,!X&&Math.abs(Z)>=(Y?8:1)*y);++H)Z>0&&(H<20||N/I>J/V)?(V=I,J=N):Z<0&&(H<20||N/I<K/F)&&(F=I,K=N),H<20&&$>0&&(Q=-Z/$,ii=Math.sin(Q),(ni=I*(ti=Math.cos(Q))+N*ii)>0&&Math.abs(Q)<Math.PI)?(N=N*ti-I*ii,I=ni,I/=l=a.hypot(I,N),N/=l,Y=Math.abs(Z)<=16*y):(I=(F+V)/2,N=(K+J)/2,I/=l=a.hypot(I,N),N/=l,Y=!1,X=Math.abs(F-I)+(K-N)<A||Math.abs(I-V)+(N-J)<A);ai=r|(r&(i.REDUCEDLENGTH|i.GEODESICSCALE)?i.DISTANCE:i.NONE),g=(L=this.Lengths(j,w,R,q,S,U,z,x,f,v,ai,P,T)).s12b,C=L.m12b,0!==(r&i.GEODESICSCALE)&&(Ci.M12=L.M12,Ci.M21=L.M21),C*=this._b,g*=this._b,Ci.a12=w/a.degree,r&i.AREA&&(gi=Math.sin(fi),ui=E*(Ai=Math.cos(fi))-b*gi,_i=b*Ai+E*gi)}return r&i.DISTANCE&&(Ci.s12=0+g),r&i.REDUCEDLENGTH&&(Ci.m12=0+C),r&i.AREA&&(ei=I*f,0!==(si=a.hypot(N,I*_))&&0!==ei?(R=_,q=N*f,U=m,z=G*v,j=(oi=a.sq(si)*this._ep2)/(2*(1+Math.sqrt(1+oi))+oi),hi=a.sq(this.a)*si*ei*this._e2,R/=l=a.hypot(R,q),q/=l,U/=l=a.hypot(U,z),z/=l,pi=new Array(i.nC4_),this.C4f(j,pi),li=i.SinCosSeries(!1,R,q,pi),ci=i.SinCosSeries(!1,U,z,pi),Ci.S12=hi*(ci-li)):Ci.S12=0,!O&&ui>1&&(ui=Math.sin(W),_i=Math.cos(W)),!O&&_i>-.7071&&m-_<1.75?(fi=1+_i,mi=1+f,di=1+v,ri=2*Math.atan2(ui*(_*di+m*mi),fi*(_*m+mi*di))):(vi=G*N+k*I,0===(yi=k*N-G*I)&&vi<0&&(yi=i.tiny_*N,vi=-1),ri=Math.atan2(yi,vi)),Ci.S12+=this._c2*ri,Ci.S12*=c*p*u,Ci.S12+=0),c<0&&(l=I,I=k,k=l,l=N,N=G,G=l,r&i.GEODESICSCALE&&(l=Ci.M12,Ci.M12=Ci.M21,Ci.M21=l)),{vals:Ci,salp1:I*=c*p,calp1:N*=c*u,salp2:k*=c*p,calp2:G*=c*u}},i.Geodesic.prototype.GenDirect=function(n,a,e,s,r,o){return o?o===i.LONG_UNROLL&&(o|=i.STANDARD):o=i.STANDARD,s||(o|=i.DISTANCE_IN),new t.GeodesicLine(this,n,a,e,o).GenPosition(s,r,o)},i.Geodesic.prototype.Direct=function(i,t,n,a,e){return this.GenDirect(i,t,n,!1,a,e)},i.Geodesic.prototype.ArcDirect=function(i,t,n,a,e){return this.GenDirect(i,t,n,!0,a,e)},i.Geodesic.prototype.Line=function(i,n,a,e){return new t.GeodesicLine(this,i,n,a,e)},i.Geodesic.prototype.DirectLine=function(i,t,n,a,e){return this.GenDirectLine(i,t,n,!1,a,e)},i.Geodesic.prototype.ArcDirectLine=function(i,t,n,a,e){return this.GenDirectLine(i,t,n,!0,a,e)},i.Geodesic.prototype.GenDirectLine=function(n,a,e,s,r,o){var h;return o||(o=i.STANDARD|i.DISTANCE_IN),s||(o|=i.DISTANCE_IN),(h=new t.GeodesicLine(this,n,a,e,o)).GenSetDistance(s,r),h},i.Geodesic.prototype.InverseLine=function(n,e,s,r,o){var h,p,l;return o||(o=i.STANDARD|i.DISTANCE_IN),h=this.InverseInt(n,e,s,r,i.ARC),l=a.atan2d(h.salp1,h.calp1),o&i.OUT_MASK&i.DISTANCE_IN&&(o|=i.DISTANCE),(p=new t.GeodesicLine(this,n,e,l,o,h.salp1,h.calp1)).SetArc(h.vals.a12),p},i.Geodesic.prototype.Polygon=function(i){return new n.PolygonArea(this,i)},i.WGS84=new i.Geodesic(e.WGS84.a,e.WGS84.f)}(Ft.Geodesic,Ft.GeodesicLine,Ft.PolygonArea,Ft.Math,Ft.Constants),function(i,t,n){t.GeodesicLine=function(t,a,e,s,r,o,h){var p,l,c,u,_,f;r||(r=i.STANDARD|i.DISTANCE_IN),this.a=t.a,this.f=t.f,this._b=t._b,this._c2=t._c2,this._f1=t._f1,this.caps=r|i.LATITUDE|i.AZIMUTH|i.LONG_UNROLL,this.lat1=n.LatFix(a),this.lon1=e,void 0===o||void 0===h?(this.azi1=n.AngNormalize(s),p=n.sincosd(n.AngRound(this.azi1)),this.salp1=p.s,this.calp1=p.c):(this.azi1=s,this.salp1=o,this.calp1=h),p=n.sincosd(n.AngRound(this.lat1)),c=this._f1*p.s,l=p.c,c/=p=n.hypot(c,l),l/=p,l=Math.max(i.tiny_,l),this._dn1=Math.sqrt(1+t._ep2*n.sq(c)),this._salp0=this.salp1*l,this._calp0=n.hypot(this.calp1,this.salp1*c),this._ssig1=c,this._somg1=this._salp0*c,this._csig1=this._comg1=0!==c||0!==this.calp1?l*this.calp1:1,p=n.hypot(this._ssig1,this._csig1),this._ssig1/=p,this._csig1/=p,this._k2=n.sq(this._calp0)*t._ep2,u=this._k2/(2*(1+Math.sqrt(1+this._k2))+this._k2),this.caps&i.CAP_C1&&(this._A1m1=i.A1m1f(u),this._C1a=new Array(i.nC1_+1),i.C1f(u,this._C1a),this._B11=i.SinCosSeries(!0,this._ssig1,this._csig1,this._C1a),_=Math.sin(this._B11),f=Math.cos(this._B11),this._stau1=this._ssig1*f+this._csig1*_,this._ctau1=this._csig1*f-this._ssig1*_),this.caps&i.CAP_C1p&&(this._C1pa=new Array(i.nC1p_+1),i.C1pf(u,this._C1pa)),this.caps&i.CAP_C2&&(this._A2m1=i.A2m1f(u),this._C2a=new Array(i.nC2_+1),i.C2f(u,this._C2a),this._B21=i.SinCosSeries(!0,this._ssig1,this._csig1,this._C2a)),this.caps&i.CAP_C3&&(this._C3a=new Array(i.nC3_),t.C3f(u,this._C3a),this._A3c=-this.f*this._salp0*t.A3f(u),this._B31=i.SinCosSeries(!0,this._ssig1,this._csig1,this._C3a)),this.caps&i.CAP_C4&&(this._C4a=new Array(i.nC4_),t.C4f(u,this._C4a),this._A4=n.sq(this.a)*this._calp0*this._salp0*t._e2,this._B41=i.SinCosSeries(!1,this._ssig1,this._csig1,this._C4a)),this.a13=this.s13=Number.NaN},t.GeodesicLine.prototype.GenPosition=function(t,a,e){var s,r,o,h,p,l,c,u,_,f,m,d,y,v,g,A,C,S,x,M,E,b,w,N,I,G,k={};return e?e===i.LONG_UNROLL&&(e|=i.STANDARD):e=i.STANDARD,e&=this.caps&i.OUT_MASK,k.lat1=this.lat1,k.azi1=this.azi1,k.lon1=e&i.LONG_UNROLL?this.lon1:n.AngNormalize(this.lon1),t?k.a12=a:k.s12=a,t||this.caps&i.DISTANCE_IN&i.OUT_MASK?(h=0,p=0,t?(s=a*n.degree,r=(w=n.sincosd(a)).s,o=w.c):(u=a/(this._b*(1+this._A1m1)),_=Math.sin(u),f=Math.cos(u),s=u-((h=-i.SinCosSeries(!0,this._stau1*f+this._ctau1*_,this._ctau1*f-this._stau1*_,this._C1pa))-this._B11),r=Math.sin(s),o=Math.cos(s),Math.abs(this.f)>.01&&(l=this._ssig1*o+this._csig1*r,c=this._csig1*o-this._ssig1*r,h=i.SinCosSeries(!0,l,c,this._C1a),s-=((1+this._A1m1)*(s+(h-this._B11))-a/this._b)/Math.sqrt(1+this._k2*n.sq(l)),r=Math.sin(s),o=Math.cos(s))),l=this._ssig1*o+this._csig1*r,c=this._csig1*o-this._ssig1*r,x=Math.sqrt(1+this._k2*n.sq(l)),e&(i.DISTANCE|i.REDUCEDLENGTH|i.GEODESICSCALE)&&((t||Math.abs(this.f)>.01)&&(h=i.SinCosSeries(!0,l,c,this._C1a)),p=(1+this._A1m1)*(h-this._B11)),y=this._calp0*l,0===(v=n.hypot(this._salp0,this._calp0*c))&&(v=c=i.tiny_),C=this._salp0,S=this._calp0*c,t&&e&i.DISTANCE&&(k.s12=this._b*((1+this._A1m1)*s+p)),e&i.LONGITUDE&&(g=this._salp0*l,A=c,d=n.copysign(1,this._salp0),m=((e&i.LONG_UNROLL?d*(s-(Math.atan2(l,c)-Math.atan2(this._ssig1,this._csig1))+(Math.atan2(d*g,A)-Math.atan2(d*this._somg1,this._comg1))):Math.atan2(g*this._comg1-A*this._somg1,A*this._comg1+g*this._somg1))+this._A3c*(s+(i.SinCosSeries(!0,l,c,this._C3a)-this._B31)))/n.degree,k.lon2=e&i.LONG_UNROLL?this.lon1+m:n.AngNormalize(n.AngNormalize(this.lon1)+n.AngNormalize(m))),e&i.LATITUDE&&(k.lat2=n.atan2d(y,this._f1*v)),e&i.AZIMUTH&&(k.azi2=n.atan2d(C,S)),e&(i.REDUCEDLENGTH|i.GEODESICSCALE)&&(M=i.SinCosSeries(!0,l,c,this._C2a),E=(1+this._A2m1)*(M-this._B21),b=(this._A1m1-this._A2m1)*s+(p-E),e&i.REDUCEDLENGTH&&(k.m12=this._b*(x*(this._csig1*l)-this._dn1*(this._ssig1*c)-this._csig1*c*b)),e&i.GEODESICSCALE&&(w=this._k2*(l-this._ssig1)*(l+this._ssig1)/(this._dn1+x),k.M12=o+(w*l-c*b)*this._ssig1/this._dn1,k.M21=o-(w*this._ssig1-this._csig1*b)*l/x)),e&i.AREA&&(N=i.SinCosSeries(!1,l,c,this._C4a),0===this._calp0||0===this._salp0?(I=C*this.calp1-S*this.salp1,G=S*this.calp1+C*this.salp1):(I=this._calp0*this._salp0*(o<=0?this._csig1*(1-o)+r*this._ssig1:r*(this._csig1*r/(1+o)+this._ssig1)),G=n.sq(this._salp0)+n.sq(this._calp0)*this._csig1*c),k.S12=this._c2*Math.atan2(I,G)+this._A4*(N-this._B41)),t||(k.a12=s/n.degree),k):(k.a12=Number.NaN,k)},t.GeodesicLine.prototype.Position=function(i,t){return this.GenPosition(!1,i,t)},t.GeodesicLine.prototype.ArcPosition=function(i,t){return this.GenPosition(!0,i,t)},t.GeodesicLine.prototype.GenSetDistance=function(i,t){i?this.SetArc(t):this.SetDistance(t)},t.GeodesicLine.prototype.SetDistance=function(t){var n;this.s13=t,n=this.GenPosition(!1,this.s13,i.ARC),this.a13=0+n.a12},t.GeodesicLine.prototype.SetArc=function(t){var n;this.a13=t,n=this.GenPosition(!0,this.a13,i.DISTANCE),this.s13=0+n.s12}}(Ft.Geodesic,Ft.GeodesicLine,Ft.Math),function(i,t,n,a){var e,s;e=function(i,t){var a;return i=n.AngNormalize(i),t=n.AngNormalize(t),a=n.AngDiff(i,t).s,i<=0&&t>0&&a>0?1:t<=0&&i>0&&a<0?-1:0},s=function(i,t){return((t%=720)>=0&&t<360||t<-360?0:1)-((i%=720)>=0&&i<360||i<-360?0:1)},i.PolygonArea=function(i,n){this._geod=i,this.a=this._geod.a,this.f=this._geod.f,this._area0=4*Math.PI*i._c2,this.polyline=n||!1,this._mask=t.LATITUDE|t.LONGITUDE|t.DISTANCE|(this.polyline?t.NONE:t.AREA|t.LONG_UNROLL),this.polyline||(this._areasum=new a.Accumulator(0)),this._perimetersum=new a.Accumulator(0),this.Clear()},i.PolygonArea.prototype.Clear=function(){this.num=0,this._crossings=0,this.polyline||this._areasum.Set(0),this._perimetersum.Set(0),this._lat0=this._lon0=this.lat=this.lon=Number.NaN},i.PolygonArea.prototype.AddPoint=function(i,t){var n;0===this.num?(this._lat0=this.lat=i,this._lon0=this.lon=t):(n=this._geod.Inverse(this.lat,this.lon,i,t,this._mask),this._perimetersum.Add(n.s12),this.polyline||(this._areasum.Add(n.S12),this._crossings+=e(this.lon,t)),this.lat=i,this.lon=t),++this.num},i.PolygonArea.prototype.AddEdge=function(i,t){var n;this.num&&(n=this._geod.Direct(this.lat,this.lon,i,t,this._mask),this._perimetersum.Add(t),this.polyline||(this._areasum.Add(n.S12),this._crossings+=s(this.lon,n.lon2)),this.lat=n.lat2,this.lon=n.lon2),++this.num},i.PolygonArea.prototype.Compute=function(i,t){var n,s,r={number:this.num};return this.num<2?(r.perimeter=0,this.polyline||(r.area=0),r):this.polyline?(r.perimeter=this._perimetersum.Sum(),r):(n=this._geod.Inverse(this.lat,this.lon,this._lat0,this._lon0,this._mask),r.perimeter=this._perimetersum.Sum(n.s12),(s=new a.Accumulator(this._areasum)).Add(n.S12),1&this._crossings+e(this.lon,this._lon0)&&s.Add((s.Sum()<0?1:-1)*this._area0/2),i||s.Negate(),t?s.Sum()>this._area0/2?s.Add(-this._area0):s.Sum()<=-this._area0/2&&s.Add(+this._area0):(s.Sum()>=this._area0||s<0)&&s.Add(-this._area0),r.area=s.Sum(),r)},i.PolygonArea.prototype.TestPoint=function(i,t,n,a){var s,r,o,h,p={number:this.num+1};if(0===this.num)return p.perimeter=0,this.polyline||(p.area=0),p;for(p.perimeter=this._perimetersum.Sum(),r=this.polyline?0:this._areasum.Sum(),o=this._crossings,h=0;h<(this.polyline?1:2);++h)s=this._geod.Inverse(0===h?this.lat:i,0===h?this.lon:t,0!==h?this._lat0:i,0!==h?this._lon0:t,this._mask),p.perimeter+=s.s12,this.polyline||(r+=s.S12,o+=e(0===h?this.lon:t,0!==h?this._lon0:t));return this.polyline||(1&o&&(r+=(r<0?1:-1)*this._area0/2),n||(r*=-1),a?r>this._area0/2?r-=this._area0:r<=-this._area0/2&&(r+=this._area0):r>=this._area0?r-=this._area0:r<0&&(r+=this._area0),p.area=r),p},i.PolygonArea.prototype.TestEdge=function(i,t,n,a){var r,o,h,p={number:this.num?this.num+1:0};return 0===this.num||(p.perimeter=this._perimetersum.Sum()+t,this.polyline||(o=this._areasum.Sum(),h=this._crossings,o+=(r=this._geod.Direct(this.lat,this.lon,i,t,this._mask)).S12,h+=s(this.lon,r.lon2),r=this._geod.Inverse(r.lat2,r.lon2,this._lat0,this._lon0,this._mask),p.perimeter+=r.s12,o+=r.S12,1&(h+=e(r.lon2,this._lon0))&&(o+=(o<0?1:-1)*this._area0/2),n||(o*=-1),a?o>this._area0/2?o-=this._area0:o<=-this._area0/2&&(o+=this._area0):o>=this._area0?o-=this._area0:o<0&&(o+=this._area0),p.area=o)),p}}(Ft.PolygonArea,Ft.Geodesic,Ft.Math,Ft.Accumulator),ii(function(i){var t=X(i.params,"rlat_1"),n=X(i.params,"rlat_2");Jt(i,t,n)},"aea","Albers Equal Area","Conic Sph&Ell\nlat_1= lat_2="),ii(function(i){var t=X(i.params,"rlat_1"),n=X(i.params,"bsouth")?-N:N;Jt(i,t,n)},"leac","Lambert Equal Area Conic","Conic, Sph&Ell\nlat_1= south"),ii(function(t){var s,r,h,c,u,_,m,d=1e-10;if(t.phi0=X(t.params,"rlat_0"),i(i(t.phi0)-N)<d?(u=t.phi0<0?1:0,s=t.phi0<0?-1:1,r=0):i(t.phi0)<d?(u=2,s=0,r=1):(u=3,s=n(t.phi0),r=a(t.phi0)),t.es)if(m=new Ft.Geodesic.Geodesic(t.a,t.es/(1+l(t.one_es))),_=Yt(t.es),X(t.params,"bguam"))h=Xt(t.phi0,s,r,_),t.inv=function(i,s){var r,o,p;for(r=.5*i.x*i.x,s.phi=t.phi0,p=0;p<3;++p)o=t.e*n(s.phi),s.phi=Zt(h+i.y-r*e(s.phi)*(o=l(1-o*o)),t.es,_);s.lam=i.x*o/a(s.phi)},t.fwd=function(i,e){var s,r,o;s=a(i.phi),r=n(i.phi),o=1/l(1-t.es*r*r),e.x=i.lam*s*o,e.y=Xt(i.phi,r,s,_)-h+.5*i.lam*i.lam*s*r*o};else{switch(u){case 0:c=Xt(N,1,0,_);break;case 1:c=Xt(-N,-1,0,_);break;case 2:case 3:t.inv=v,t.fwd=y,l(1-t.es*s*s),t.e,l(t.one_es)}t.inv=v,t.fwd=y}else t.inv=function(i,e){var o,h,l,c=i.x,_=i.y;if((h=f(c,_))>S)h-d>S&&j(),h=S;else if(h<d)return e.phi=t.phi0,void(e.lam=0);3==u||2==u?(l=n(h),o=a(h),2==u?(e.phi=$t(_*l/h),c*=l,_=o*h):(e.phi=$t(o*s+_*l*r/h),_=(o-s*n(e.phi))*h,c*=l*r),e.lam=0==_?0:p(c,_)):0==u?(e.phi=N-h,e.lam=p(c,-_)):(e.phi=h-N,e.lam=p(c,_))},t.fwd=function(t,e){var h,p,l;switch(l=n(t.phi),p=a(t.phi),h=a(t.lam),u){case 2:case 3:e.y=2==u?p*h:s*l+r*p*h,i(i(e.y)-1)<1e-14?e.y<0?z():e.x=e.y=0:(e.y=o(e.y),e.y/=n(e.y),e.x=e.y*p*n(t.lam),e.y*=2==u?l:r*l-s*p*h);break;case 0:t.phi=-t.phi,h=-h;case 1:i(t.phi-N)<d&&z(),e.x=(e.y=N+t.phi)*n(t.lam),e.y*=h}};function y(e,s){var r,o,h,p,l,f,y,v,g,A,C;switch(r=a(e.lam),o=a(e.phi),h=n(e.phi),u){case 0:r=-r;case 1:s.x=(p=i(c-Xt(e.phi,h,o,_)))*n(e.lam),s.y=p*r;break;case 2:case 3:if(i(e.lam)<d&&i(e.phi-t.phi0)<d){s.x=s.y=0;break}v=t.phi0/M,y=t.lam0/M,A=e.phi/M,g=(e.lam+t.lam0)/M,l=(C=m.Inverse(v,y,A,g,m.AZIMUTH)).azi1*M,f=C.s12,s.x=f*n(l)/t.a,s.y=f*a(l)/t.a}}function v(i,n){var a,e,s,r,o,h,y,v;if((a=f(i.x,i.y))<d)return n.phi=t.phi0,n.lam=0,n;3==u||2==u?(r=i.x*t.a,o=i.y*t.a,h=t.phi0/M,y=t.lam0/M,e=p(r,o)/M,s=l(r*r+o*o),v=m.Direct(h,y,e,s,m.STANDARD),n.phi=v.lat2*M,n.lam=v.lon2*M,n.lam-=t.lam0):(n.phi=Zt(0==u?c-a:c+a,t.es,_),n.lam=p(i.x,0==u?-i.y:i.y))}},"aeqd","Azimuthal Equidistant","Azi, Sph&Ell\nlat_0 guam"),ii(function(t){var s,r,o,h,p,l,c=1e-10;t.es=0,t.fwd=function(t,l){var u,f,m,d,y,v,g,A;switch(u=n(t.lam),f=a(t.lam),h){case 2:case 3:d=n(t.phi),A=(m=a(t.phi))*f,3==h&&(A=s*d+r*A),!p&&A<-c&&z(),g=i(v=1-A)>c?-_(y=.5*(1+A))/v-o/y:.5-o,l.x=g*m*u,l.y=3==h?g*(r*d-s*m*f):g*d;break;case 1:case 0:t.phi=i(p_halfpi-t.phi),!p&&t.phi-c>N&&z(),(t.phi*=.5)>c?(y=e(t.phi),g=-2*(_(a(t.phi))/y+y*o),l.x=g*u,l.y=g*f,0==h&&(l.y=-l.y)):l.x=l.y=0}},p=X(t.params,"bno_cut"),l=.5*(N-X(t.params,"rlat_b")),i(l)<c?o=-.5:(o=1/e(l),o*=o*_(a(l))),i(i(t.phi0)-N)<c?t.phi0<0?(p_halfpi=-N,h=1):(p_halfpi=N,h=0):i(t.phi0)<c?h=2:(h=3,s=n(t.phi0),r=a(t.phi0))},"airy","Airy","Misc Sph, no inv.\nno_cut lat_b="),ii(function(i){var t=i.opaque={mode:1};X(i.params,"tlat_1")?0===(t.cosphi1=a(X(i.params,"rlat_1")))&&B(-22):t.cosphi1=.6366197723675814,an(i)},"wintri","Winkel Tripel","Misc Sph\nlat_1"),ii(an,"aitoff","Aitoff","Misc Sph"),ii(function(i){i.fwd=function(i,t){var s,r,o,h,p,c,u,_=4/3,f=i.lam;s=e(.5*i.phi),o=1+(r=l(1-s*s))*a(f*=.5),h=n(f)*r/o,c=s/o,t.x=_*h*(3+(p=h*h)-3*(u=c*c)),t.y=_*c*(3+3*p-u)},i.es=0},"august","August Epicycloidal","Misc Sph, no inv."),ii(function(i){en(i,!1,!1)},"apian","Apian Globular I","Misc Sph, no inv."),ii(function(i){en(i,!1,!0)},"ortel","Ortelius Oval","Misc Sph, no inv."),ii(function(i){en(i,!0,!1)},"bacon","Bacon Globular","Misc Sph, no inv."),ii(function(i){var t,e,s,o;i.es=0,i.fwd=function(i,h){var c,u,_,f,m,d;return i.lam+=-16.5*M,u=a(i.phi),_=a(i.lam)*u,f=n(i.lam)*u,d=(m=n(i.phi))*t+_*e,i.lam=p(f*s-d*o,_*t-m*e),d=d*s+f*o,i.phi=r(d),i.lam=wi(i.lam),i.lam+i.phi<-1.4&&(c=(i.lam-i.phi+1.6)*(i.lam+i.phi+1.4)/8,i.lam+=c,i.phi-=.8*c*n(i.phi+S/2)),u=a(i.phi),c=l(2/(1+u*a(i.lam/2))),h.x=1.68*c*u*n(i.lam/2),h.y=c*n(i.phi),c=(1-a(i.lam*i.phi))/12,h.y<0&&(h.x*=1+c),h.y>0&&(h.y*=1+c/1.5*h.x*h.x),h},i.lam0=0,i.phi0=-42*M,t=a(i.phi0),e=n(i.phi0),s=1,o=0},"bertin1953","Bertin 1953","Misc., Sph., NoInv."),ii(function(t){var e=l(2);t.fwd=function(t,s){var r,o,h,p;if(r=t.phi,i(i(t.phi)-N)<1e-7)s.x=0;else{for(h=n(r)*S,p=20;p&&(r-=o=(r+n(r)-h)/(1+a(r)),!(i(o)<1e-7));--p);r*=.5,s.x=2.00276*t.lam/(1/a(t.phi)+1.11072/a(r))}s.y=.49931*(t.phi+e*n(r))},t.es=0},"boggs","Boggs Eumorphic","PCyl., no inv., Sph."),ii(function(t){var s,r,o,h,c,u,_=1e-10;s=X(t.params,"rlat_1"),i(s)<_&&B(-23),t.es?(c=Yt(t.es),h=Xt(s,o=n(s),u=a(s),c),o=u/(l(1-t.es*o*o)*o),t.inv=function(e,s){var r,u;u=f(e.x,e.y=o-e.y),s.phi=Zt(o+h-u,t.es,c),(r=i(s.phi))<N?(r=n(s.phi),s.lam=u*p(e.x,e.y)*l(1-t.es*r*r)/a(s.phi)):i(r-N)<=_?s.lam=0:j()},t.fwd=function(i,e){var s,r,p;s=o+h-Xt(i.phi,r=n(i.phi),p=a(i.phi),c),r=p*i.lam/(s*l(1-t.es*r*r)),e.x=s*n(r),e.y=o-s*a(r)}):(r=i(s)+_>=N?0:1/e(s),t.inv=function(t,n){var e=f(t.x,t.y=r-t.y);n.phi=r+s-e,i(n.phi)>N&&j(),i(i(n.phi)-N)<=_?n.lam=0:n.lam=e*p(t.x,t.y)/a(n.phi)},t.fwd=function(t,e){var o,h;h=r+s-t.phi,i(h)>_?(e.x=h*n(o=t.lam*a(t.phi)/h),e.y=r-h*a(o)):e.x=e.y=0})},"bonne","Bonne (Werner lat_1=90)","Conic Sph&Ell\nlat_1="),ii(function(i){var t,s,o=.16666666666666666,h=.008333333333333333,c=.041666666666666664,u=.06666666666666667;i.es?(s=Yt(i.es),t=Xt(i.phi0,n(i.phi0),a(i.phi0),s),i.fwd=function(r,p){var u,_,f,m,d,y;p.y=Xt(r.phi,u=n(r.phi),m=a(r.phi),s),u=1/l(1-i.es*u*u),y=e(r.phi),_=y*y,f=r.lam*m,m*=i.es*m/(1-i.es),d=f*f,p.x=u*f*(1-d*_*(o-(8-_+8*m)*d*h)),p.y-=t-u*y*d*(.5+(5-_+6*m)*d*c)},i.inv=function(r,o){var h,p,_,f,m,d,y;y=Zt(t+r.y,i.es,s),d=e(y),p=d*d,h=n(y),_=1/(1-i.es*h*h),h=l(_),_*=(1-i.es)*h,f=r.x/h,m=f*f,o.phi=y-h*d/_*m*(.5-(1+3*p)*m*c),o.lam=f*(1+p*m*((1+3*p)*m*u-.3333333333333333))/a(y)}):(i.fwd=function(t,s){s.x=r(a(t.phi)*n(t.lam)),s.y=p(e(t.phi),a(t.lam))-i.phi0},i.inv=function(t,s){var o=t.y+i.phi0;s.phi=r(n(o)*a(t.x)),s.lam=p(e(t.x),a(o))})},"cass","Cassini","Cyl, Sph&Ell"),ii(function(t){var e,s,o=0;X(t.params,"tlat_ts")&&(t.k0=a(o=X(t.params,"rlat_ts")),t.k0<0&&B(-24)),t.es?(o=n(o),t.k0/=l(1-t.es*o*o),t.e=l(t.es),(s=sn(t.es))||e_error_0(),e=Kt(1,t.e,t.one_es),t.fwd=function(i,a){a.x=t.k0*i.lam,a.y=.5*Kt(n(i.phi),t.e,t.one_es)/t.k0},t.inv=function(i,n){n.phi=rn(r(2*i.y*t.k0/e),s),n.lam=i.x/t.k0}):(t.fwd=function(i,a){a.x=t.k0*i.lam,a.y=n(i.phi)/t.k0},t.inv=function(n,a){var e,s=n.x,o=n.y;(e=i(o*=t.k0))-D<=1?(a.phi=e>=1?o<0?-N:N:r(o),a.lam=s/t.k0):j()})},"cea","Equal Area Cylindrical","Cyl, Sph&Ell\nlat_ts="),ii(function(t){var e,s,r,o,h,c,u,_=1/3,f=[];for(c=0;c<3;++c)f[c]={p:{}},f[c].phi=X(t.params,"rlat_"+(c+1)),f[c].lam=X(t.params,"rlon_"+(c+1)),f[c].lam=wi(f[c].lam-t.lam0),f[c].cosphi=a(f[c].phi),f[c].sinphi=n(f[c].phi);for(c=0;c<3;++c)u=2==c?0:c+1,f[c].v=m(f[u].phi-f[c].phi,f[c].cosphi,f[c].sinphi,f[u].cosphi,f[u].sinphi,f[u].lam-f[c].lam),f[c].v.r||B(-25);function m(t,e,s,r,o,h){var c,u,_,f={};return c=a(h),i(t)>1||i(h)>1?f.r=Qt(cs1*o+e*r*c):(u=n(.5*t),_=n(.5*h),f.r=2*$t(l(u*u+e*r*_*_))),i(f.r)>1e-9?f.Az=p(r*n(h),e*o-s*r*c):f.r=f.Az=0,f}function d(i,t,n){return Qt(.5*(i*i+t*t-n*n)/(i*t))}r=d(f[0].v.r,f[2].v.r,f[1].v.r),o=d(f[0].v.r,f[1].v.r,f[2].v.r),h=S-r,s=2*(f[0].p.y=f[1].p.y=f[2].v.r*n(r)),f[2].p.y=0,f[0].p.x=-(f[1].p.x=.5*f[0].v.r),e=f[2].p.x=f[0].p.x+f[2].v.r*a(r),t.es=0,t.fwd=function(i,t){var r,p,l,c,u,y,v,g=[];for(r=n(i.phi),p=a(i.phi),c=0;c<3&&(g[c]=m(i.phi-f[c].phi,f[c].cosphi,f[c].sinphi,p,r,i.lam-f[c].lam),g[c].r);++c)g[c].Az=wi(g[c].Az-f[c].v.Az);if(c<3)y=f[c].p.x,v=f[c].p.y;else{for(y=e,v=s,c=0;c<3;++c)u=2==c?0:c+1,l=d(f[c].v.r,g[c].r,g[u].r),g[c].Az<0&&(l=-l),c?1==c?(l=o-l,y-=g[c].r*a(l),v-=g[c].r*n(l)):(l=h-l,y+=g[c].r*a(l),v+=g[c].r*n(l)):(y+=g[c].r*a(l),v-=g[c].r*n(l));y*=_,v*=_}t.x=y,t.y=v}},"chamb","Chamberlin Trimetric","Misc Sph, no inv.\nlat_1= lon_1= lat_2= lon_2= lat_3= lon_3="),ii(function(i){var t=1/3;i.inv=function(i,n){n.phi=3*r(.32573500793527993*i.y),n.lam=1.0233267079464885*i.x/(2*a((n.phi+n.phi)*t)-1)},i.fwd=function(i,e){i.phi*=t,e.x=.9772050238058398*i.lam*(2*a(i.phi+i.phi)-1),e.y=3.0699801238394655*n(i.phi)},i.es=0},"crast","Craster Parabolic (Putnins P4)","PCyl., Sph."),ii(function(i){var t=.5253,e=.7264,s=1/Math.sqrt(t*e),o=.9701,h=_(22*M),p=f(0),c=n(h),u=a(h);function _(i){return r(e*n(i)+.4188*l(t*e))}function f(i){return t*i}X(i.params,"tlon_0")||(i.lam0=11.023*M),i.es=0,i.fwd=function(i,t){var e=_(i.phi),r=f(i.lam),m=n(e),d=a(e),y=n(r-p),v=a(r-p),g=l(2/(1+n(h)*m+u*d*v));t.x=s*g*d*y*o,t.y=s*g*(u*m-c*d*v)/o}},"cupola","Cupola","PCyl., Sph., NoInv."),ii(function(t){t.fwd=function(t,n){var e=i(t.lam);n.y=t.phi,n.x=t.lam,n.x*=a((.95+e*(e*e*.0016666666666666666-.08333333333333333))*(t.phi*(.9+.03*t.phi*t.phi*t.phi*t.phi)))},t.es=0},"denoy","Denoyer Semi-Elliptical","PCyl, Sph., no inv."),ii(function(t){var n=.9213177319235613,a=.3183098861837907;t.es=0,t.fwd=function(t,e){e.x=n*t.lam*(1-a*i(t.phi)),e.y=n*t.phi},t.inv=function(t,e){e.phi=t.y/n,e.lam=t.x/(n*(1-a*i(e.phi)))}},"eck1","Eckert I","PCyl Sph"),ii(function(t){var a=.46065886596178063,e=1.4472025091165353;t.es=0,t.fwd=function(t,s){s.x=a*t.lam*(s.y=l(4-3*n(i(t.phi)))),s.y=e*(2-s.y),t.phi<0&&(s.y=-s.y)},t.inv=function(t,n){n.lam=t.x/(a*(n.phi=2-i(t.y)/e)),n.phi=.3333333333333333*(4-n.phi*n.phi),i(n.phi)>=1?i(n.phi)>1.0000001?j():n.phi=n.phi<0?-N:N:n.phi=r(n.phi),t.y<0&&(n.phi=-n.phi)}},"eck2","Eckert II","PCyl Sph"),ii(function(i){on(i,{C_x:.4222382003157712,C_y:.8444764006315424,A:1,B:.4052847345693511})},"eck3","Eckert III","PCyl Sph"),ii(function(i){on(i,{C_x:.94745,C_y:.94745,A:0,B:.3039635509270133})},"wag6","Wagner VI","PCyl Sph"),ii(function(i){on(i,{C_x:.8660254037844,C_y:1,A:0,B:.3039635509270133})},"kav7","Kavraisky VII","PCyl Sph"),ii(function(i){on(i,{C_x:1.8949,C_y:.94745,A:-.5,B:.3039635509270133})},"putp1","Putnins P1","PCyl Sph"),ii(function(t){var e=.4222382003157712,s=1.3265004281770023,r=3.5707963267948966;t.es=0,t.fwd=function(t,o){var h,p,l,c,u;for(h=r*n(t.phi),p=t.phi*t.phi,t.phi*=.895168+p*(.0218849+.00826809*p),u=6;u&&(c=a(t.phi),l=n(t.phi),t.phi-=p=(t.phi+l*(c+2)-h)/(1+c*(c+2)-l*l),!(i(p)<1e-7));--u);u?(o.x=e*t.lam*(1+a(t.phi)),o.y=s*n(t.phi)):(o.x=e*t.lam,o.y=t.phi<0?-s:s)},t.inv=function(i,t){var o;t.phi=$t(i.y/s),t.lam=i.x/(e*(1+(o=a(t.phi)))),t.phi=$t((t.phi+n(t.phi)*(o+2))/r)}},"eck4","Eckert IV","PCyl Sph"),ii(function(i){i.es=0,i.fwd=function(i,t){t.x=.4410127717245515*(1+a(i.phi))*i.lam,t.y=.882025543449103*i.phi},i.inv=function(i,t){t.lam=2.267508027238226*i.x/(1+a(t.phi=1.133754013619113*i.y))}},"eck5","Eckert V","PCyl Sph"),ii(function(i){var t=a(X(i.params,"rlat_ts"));t<=0&&B(-24),i.es=0,i.fwd=function(n,a){a.x=t*n.lam,a.y=n.phi-i.phi0},i.inv=function(n,a){a.lam=n.x/t,a.phi=n.y+i.phi0}},"eqc","Equidistant Cylindrical (Plate Caree)","Cyl, Sph\nlat_ts=[, lat_0=0]"),ii(function(t){var e,s,r,o,h,l,c,u,_,m,d,y,v;e=X(t.params,"rlat_1"),s=X(t.params,"rlat_2"),i(e+s)<D&&B(-21),(c=Yt(t.es))||e_error_0(),r=m=n(e),_=a(e),d=i(e-s)>=D,(u=t.es>0)?(v=Vt(m,_,t.es),y=Xt(e,m,_,c),d&&(m=n(s),_=a(s),r=(v-Vt(m,_,t.es))/(Xt(s,m,_,c)-y)),h=(l=y+v/r)-Xt(t.phi0,n(t.phi0),a(t.phi0),c)):(d&&(r=(_-a(s))/(s-e)),l=e+a(e)/r,h=l-t.phi0),t.fwd=function(i,t){o=l-(u?Xt(i.phi,n(i.phi),a(i.phi),c):i.phi),t.x=o*n(i.lam*=r),t.y=h-o*a(i.lam)},t.inv=function(i,n){0!=(o=f(i.x,i.y=h-i.y))?(r<0&&(o=-o,i.x=-i.x,i.y=-i.y),n.phi=l-o,u&&(n.phi=Zt(n.phi,t.es,c)),n.lam=p(i.x,i.y)/r):(n.lam=0,n.phi=r>0?N:-N)}},"eqdc","Equidistant Conic","Conic, Sph&Ell\nlat_1= lat_2="),ii(function(i){var t=1.340264,n=-.081106,a=893e-6,e=.003796,s=Math.sqrt(3)/2;i.es=0,i.fwd=function(i,r){var o=Math.asin(s*Math.sin(i.phi)),h=o*o,p=h*h*h;r.x=i.lam*Math.cos(o)/(s*(t+3*n*h+p*(7*a+9*e*h))),r.y=o*(t+n*h+p*(a+e*h))},i.inv=function(i,r){var o,h,p,l,c=i.y;for(l=0;l<12&&(c-=p=(c*(t+n*(o=c*c)+(h=o*o*o)*(a+e*o))-i.y)/(t+3*n*o+h*(7*a+9*e*o)),!(Math.abs(p)<1e-9));++l);h=(o=c*c)*o*o,r.lam=s*i.x*(t+3*n*o+h*(7*a+9*e*o))/Math.cos(c),r.phi=Math.asin(Math.sin(c)/s)}},"eqearth","Equal Earth","PCyl., Sph."),ii(hn,"etmerc","Extended Transverse Mercator","Cyl, Sph\nlat_ts=(0)\nlat_0=(0)"),ii(function(i){i.fwd=function(i,t){t.x=.7071067811865476*i.lam,t.y=1.7071067811865475*e(.5*i.phi)},i.inv=function(i,t){t.lam=1.4142135623730951*i.x,t.phi=2*h(.585786437626905*i.y)},i.es=0},"gall","Gall (Gall Stereographic)","Cyl, Sph"),ii(function(i){i.is_geocent=!0,i.x0=0,i.y0=0,i.fwd=function(i,t){t.x=i.lam,t.y=i.phi},i.inv=function(i,t){t.phi=i.y,t.lam=i.x}},"geocent","Geocentric",""),ii(function(i){var t,s,r,o,c,u,_,m=X(i.params,"dh"),d=X(i.params,"ssweep");d?"x"==d?_=1:"y"==d?_=0:B(-49):_=0,((c=m/i.a)<=0||c>1e10)&&B(-50),u=(o=1+c)*o-1,0!=i.es?(t=l(i.one_es),s=i.one_es,r=i.rone_es,i.inv=function(i,n){var s,m,d,y,v,g;s=-1,_?(d=e(i.y/c),m=e(i.x/c)*f(1,d)):(m=e(i.x/c),d=e(i.y/c)*f(1,m));var A=(v=2*o*s)*v-4*(y=m*m+(y=d/t)*y+s*s)*u;A<0&&B(-51),g=(-v-l(A))/(2*y),s=o+g*s,m*=g,d*=g,n.lam=p(m,s),n.phi=h(d*a(n.lam)/s),n.phi=h(r*e(n.phi))},i.fwd=function(i,p){var l,u,m,d,y;i.phi=h(s*e(i.phi)),l=t/f(t*a(i.phi),n(i.phi)),u=l*a(i.lam)*a(i.phi),m=l*n(i.lam)*a(i.phi),d=l*n(i.phi),(o-u)*u-m*m-d*d*r<0&&B(-51),y=o-u,_?(p.x=c*h(m/f(d,y)),p.y=c*h(d/y)):(p.x=c*h(m/y),p.y=c*h(d/f(m,y)))}):(t=s=r=1,i.inv=function(i,t){var n,s,r,f,m,d;n=-1,_?(r=e(i.y/c),s=e(i.x/c)*l(1+r*r)):(s=e(i.x/c),r=e(i.y/c)*l(1+s*s));var y=(m=2*o*n)*m-4*(f=s*s+r*r+n*n)*u;y<0&&B(-51),d=(-m-l(y))/(2*f),n=o+d*n,s*=d,r*=d,t.lam=p(s,n),t.phi=h(r*a(t.lam)/n)},i.fwd=function(i,t){var e=a(i.phi),s=a(i.lam)*e,r=n(i.lam)*e,p=n(i.phi);e=o-s,_?(t.x=c*h(r/f(p,e)),t.y=c*h(p/e)):(t.x=c*h(r/e),t.y=c*h(p/f(r,e)))})},"geos","Geostationary Satellite View","Azi, Sph&Ell"),ii(function(i){var t=o(X(i.params,"tlat_1")?X(i.params,"rlat_1"):0),s=n(t),r=a(t);function o(i){return $t(e(.5*i))}i.fwd=function(i,t){var e=.5*i.lam,h=o(i.phi),p=n(h),l=a(h),c=a(e);s*p+r*l*c>=0?(t.x=l*n(e),t.y=r*p-s*l*c):z()},i.es=0},"gilbert","Gilbert Two World Perspective","PCyl., Sph., NoInv.\nlat_1="),ii(function(i){i.fwd=function(i,t){var n=i.phi*i.phi;t.y=i.phi*(1+.08333333333333333*n),t.x=i.lam*(1-.162388*n),n=i.lam*i.lam,t.x*=.87-952426e-9*n*n},i.es=0},"gins8","Ginsburg VIII (TsNIIGAiK)","PCyl, Sph., no inv."),ii(function(i){X(i.params,"tn"),X(i.params,"tm")?ln(i,X(i.params,"dm"),X(i.params,"dn")):B(-99)},"gn_sinu","General Sinusoidal Series","PCyl, Sph.\nm= n="),ii(pn,"sinu","Sinusoidal (Sanson-Flamsteed)","PCyl, Sph&Ell"),ii(function(i){ln(i,1,2.5707963267948966)},"eck6","Eckert VI","PCyl, Sph.\nm= n="),ii(function(i){ln(i,.5,1.7853981633974483)},"mbtfps","McBryde-Thomas Flat-Polar Sinusoidal","PCyl, Sph."),ii(function(t){var e,s,o=1e-10;i(i(t.phi0)-N)<o?s=t.phi0<0?1:0:i(t.phi0)<o?s=2:(s=3,sinph0=n(t.phi0),e=a(t.phi0)),t.inv=function(a,c){var u,_,m,d=a.x,y=a.y;if(u=f(d,y),m=n(c.phi=h(u)),_=l(1-m*m),i(u)<=o)c.phi=t.phi0,c.lam=0;else{switch(s){case 3:c.phi=_*sinph0+y*m*e/u,i(c.phi)>=1?c.phi=c.phi>0?N:-N:c.phi=r(c.phi),y=(_-sinph0*n(c.phi))*u,d*=m*e;break;case 2:c.phi=y*m/u,i(c.phi)>=1?c.phi=c.phi>0?N:-N:c.phi=r(c.phi),y=_*u,d*=m;break;case 1:c.phi-=N;break;case 0:c.phi=N-c.phi,y=-y}c.lam=p(d,y)}},t.fwd=function(i,t){var r,h,p;switch(p=n(i.phi),h=a(i.phi),r=a(i.lam),s){case 2:t.y=h*r;break;case 3:t.y=sinph0*p+e*h*r;break;case 1:t.y=-p;break;case 0:t.y=p}switch(t.y<=o&&z(),t.x=(t.y=1/t.y)*h*n(i.lam),s){case 2:t.y*=p;break;case 3:t.y*=e*p-sinph0*h*r;break;case 0:r=-r;case 1:t.y*=h*r}},t.es=0},"gnom","Gnomonic","Azi, Sph."),ii(cn,"moll","Mollweide","PCyl Sph"),ii(function(i){_n(i,un(0,S/3))},"wag4","Wagner IV","PCyl Sph"),ii(function(i){_n(i,{C_x:.90977,C_y:1.65014,C_p:3.00896})},"wag5","Wagner V","PCyl Sph"),ii(function(t){var n,a,e,s,r=.0528,o=.7109307819790236;t.es=0,pn(t),n=t.fwd,a=t.inv,cn(t),e=t.fwd,s=t.inv,t.fwd=function(t,a){i(t.phi)<o?n(t,a):(e(t,a),a.y-=t.phi>0?r:-r)},t.inv=function(t,n){i(t.y)<=o?a(t,n):(t.y+=t.y>0?r:-r,s(t,n))}},"goode","Goode Homolosine","PCyl, Sph."),ii(function(t){var e,s,r;t.inv=function(t,n){var a=l(1-.25*e*e*t.x*t.x-.25*t.y*t.y);i(2*a*a-1)<1e-10?(n.lam=A,n.phi=A,pj_errno=-14):(n.lam=nn(e*t.x*a,2*a*a-1)/e,n.phi=$t(a*t.y))},t.fwd=function(i,t){var o,h;h=l(2/(1+(o=a(i.phi))*a(i.lam*=e))),t.x=s*h*o*n(i.lam),t.y=r*h*n(i.phi)},t.es=0,X(t.params,"tW")?(e=i(X(t.params,"dW")))<=0&&B(-27):e=.5,X(t.params,"tM")?(s=i(X(t.params,"dM")))<=0&&B(-27):s=1,r=1/s,s/=e},"hammer","Hammer & Eckert-Greifendorff","Misc Sph,\nW= M="),ii(function(t){var e=1.000001;t.inv=function(t,s){var o=t.y*(t.y<0?.5179951515653813:.5686373742600607);i(o)>1?i(o)>e?j():o=o>0?N:-N:o=r(o),s.lam=1.1764705882352942*t.x/a(o),o+=o,s.phi=(o+n(o))*(t.y<0?.4102345310814193:.3736990601468637),i(s.phi)>1?i(s.phi)>e?j():s.phi=s.phi>0?N:-N:s.phi=r(s.phi)},t.fwd=function(t,e){var s,r,o;for(r=n(t.phi)*(t.phi<0?2.43763:2.67595),o=20;o&&(t.phi-=s=(t.phi+n(t.phi)-r)/(1+a(t.phi)),!(i(s)<1e-7));--o);e.x=.85*t.lam*a(t.phi*=.5),e.y=n(t.phi)*(t.phi<0?1.93052:1.75859)},t.es=0},"hatano","Hatano Asymmetrical Equal Area","PCyl., Sph."),ii(fn,"healpix","HEALPix","Sph., Ellps."),ii(function(i){fn(i,!0)},"rhealpix","rHEALPix","Sph., Ellps.\nnorth_square= south_square="),ii(function(t){var e,s=n(.5),h=r(s),c=2*l(S/(e=S+4*h*2)),u=.5*c*(2+l(3));t.es=0,t.fwd=function(t,s){var r,o,_=1-n(t.phi);if(_&&_<2){var f,m,d,y,v,g=N-t.phi,A=25;do{m=n(g),d=a(g),v=h+p(m,2-d),g-=f=(g-1*h-2*m+(y=5-4*d)*v-.5*_*e)/(4*m*v)}while(i(f)>1e-12&&--A>0);r=c*l(y),o=t.lam*v/S}else r=c*(1+_),o=t.lam*h/S;s.x=r*n(o),s.y=u-r*a(o)},t.inv=function(i,t){var a=i.x,s=i.y,_=a*a+(s-=u)*s,f=(5-_/(c*c))/4,m=o(f),d=n(m),y=h+p(d,2-f);t.lam=r(a/l(_))*S/y,t.phi=r(1-2*(m-1*h-2*d+(5-4*f)*y)/e)}},"hill","Hill Eucyclic","PCyl., Sph."),ii(function(t){var s,o,u,_,f,m,d,y,v,g=.785398163397448,A=1.37008346281555;t.a=6377397.155,t.e=l(t.es=.006674372230614),X(t.params,"tlat_0")||(t.phi0=.863937979737193),X(t.params,"tlon_0")||(t.lam0=.4334234309119251),X(t.params,"tk")||(t.k0=.9999),v=1,X(t.params,"tczech")||(v=-1),_=l(1+t.es*c(a(t.phi0),4)/(1-t.es)),s=r(n(t.phi0)/_),u=c((1+t.e*n(t.phi0))/(1-t.e*n(t.phi0)),_*t.e/2),f=e(s/2+g)/c(e(t.phi0/2+g),_)*u,o=l(1-t.es)/(1-t.es*c(n(t.phi0),2)),m=n(A),d=t.k0*o/e(A),y=.5286277629901559,t.inv=function(s,o){var u,C,S,x,M,E,b,w;b=s.x,s.x=s.y,s.y=b,s.x*=v,s.y*=v,M=l(s.x*s.x+s.y*s.y),x=p(s.y,s.x)/n(A),S=2*(h(c(d/M,1/m)*e(A/2+g))-g),u=r(a(y)*n(S)-n(y)*a(S)*a(x)),C=r(a(S)*n(x)/a(u)),o.lam=t.lam0-C/_,E=u,w=0;do{o.phi=2*(h(c(f,-1/_)*c(e(u/2+g),1/_)*c((1+t.e*n(E))/(1-t.e*n(E)),t.e/2))-g),i(E-o.phi)<1e-15&&(w=1),E=o.phi}while(0===w);o.lam-=t.lam0},t.fwd=function(i,s){var o,p,l,u,C,S,x;o=c((1+t.e*n(i.phi))/(1-t.e*n(i.phi)),_*t.e/2),p=2*(h(f*c(e(i.phi/2+g),_)/o)-g),l=-i.lam*_,u=r(a(y)*n(p)+n(y)*a(p)*a(l)),C=r(a(p)*n(l)/a(u)),S=m*C,x=d*c(e(A/2+g),m)/c(e(u/2+g),m),s.y=x*a(S),s.x=x*n(S),s.y*=v,s.x*=v}},"krovak","Krovak","PCyl., Ellps."),ii(function(t){var e,s,o,h,c,u,_,m,d,y,v,g=1e-10;if(y=i(t.phi0),d=i(y-N)<g?t.phi0<0?1:0:i(y)<g?2:3,t.es){switch(t.e=l(t.es),c=Kt(1,t.e,t.one_es),t.es,m=sn(t.es),d){case 0:case 1:u=1;break;case 2:u=1/(_=l(.5*c)),o=1,h=.5*c;break;case 3:_=l(.5*c),v=n(t.phi0),e=Kt(v,t.e,t.one_es)/c,s=l(1-e*e),u=a(t.phi0)/(l(1-t.es*v*v)*_*s),h=(o=_)/u,o*=u}t.inv=function(i,o){var h,l,y,v,A=0;switch(d){case 2:case 3:if(i.x/=u,i.y*=u,(v=f(i.x,i.y))<g)return o.lam=0,o.phi=t.phi0,o;l=2*r(.5*v/_),h=a(l),l=n(l),i.x*=l,3==d?(A=h*e+i.y*l*s/v,i.y=v*s*h-i.y*e*l):(A=i.y*l/v,i.y=v*h);break;case 0:i.y=-i.y;case 1:if(!(y=i.x*i.x+i.y*i.y))return o.lam=0,o.phi=t.phi0,o;A=1-y/c,1==d&&(A=-A)}return o.lam=p(i.x,i.y),o.phi=rn(r(A),m),o},t.fwd=function(r,p){var u,_,f,m,y=0,v=0,A=0;switch(u=a(r.lam),_=n(r.lam),f=n(r.phi),m=Kt(f,t.e,t.one_es),(3==d||2==d)&&(v=l(1-(y=m/c)*y)),d){case 3:A=1+e*y+s*v*u;break;case 2:A=1+v*u;break;case 0:A=N+r.phi,m=c-m;break;case 1:A=r.phi-N,m=c+m}switch(i(A)<g&&z(),d){case 3:case 2:3==d?(A=l(2/A),p.y=h*A*(s*y-e*v*u)):(A=l(2/(1+v*u)),p.y=A*y*h),p.x=o*A*v*_;break;case 0:case 1:m>=0?(A=l(m),p.x=A*_,p.y=u*(1==d?A:-A)):p.x=p.y=0}}}else 3==d&&(e=n(t.phi0),s=a(t.phi0)),t.inv=function(o,h){var l,c=0,u=0;switch(l=f(o.x,o.y),(h.phi=.5*l)>1&&j(),h.phi=2*r(h.phi),(3==d||2==d)&&(u=n(h.phi),c=a(h.phi)),d){case 2:h.phi=i(l)<=g?0:r(o.y*u/l),o.x*=u,o.y=c*l;break;case 3:h.phi=i(l)<=g?t.phi0:r(c*e+o.y*u*s/l),o.x*=u*s,o.y=(c-n(h.phi)*e)*l;break;case 0:o.y=-o.y,h.phi=N-h.phi;break;case 1:h.phi-=N}h.lam=0!=o.y||2!=d&&3!=d?p(o.x,o.y):0},t.fwd=function(r,o){var h,p,c;switch(c=n(r.phi),p=a(r.phi),h=a(r.lam),d){case 2:case 3:o.y=2==d?1+p*h:1+e*c+s*p*h,o.y<=g&&z(),o.y=l(2/o.y),o.x=o.y*p*n(r.lam),o.y*=2==d?c:s*c-e*p*h;break;case 0:h=-h;case 1:i(r.phi+t.phi0)<g&&z(),o.y=w-.5*r.phi,o.y=2*(1==d?a(o.y):n(o.y)),o.x=o.y*n(r.lam),o.y*=h}}},"laea","Lambert Azimuthal Equal Area","Azi, Sph&Ell"),ii(mn,"lonlat","Lat/long (Geodetic)",""),ii(mn,"longlat","Lat/long (Geodetic alias)",""),ii(mn,"latlon","Lat/long (Geodetic alias)",""),ii(mn,"latlong","Lat/long (Geodetic alias)",""),ii(function(t){var s,r,o,u,m,d,y,v,g,C,S,x=1e-10;t.inv=function(i,n){var a,e=i.x,s=i.y;e/=t.k0,s/=t.k0,0!=(a=f(e,s=y-s))?(d<0&&(a=-a,e=-e,s=-s),g?(n.phi=yn(c(a/v,1/d),t.e),n.phi==A&&j()):n.phi=2*h(c(v/a,1/d))-N,n.lam=p(e,s)/d):(n.lam=0,n.phi=d>0?N:-N)},t.fwd=function(s,r){var o,h=s.lam;i(i(s.phi)-N)<x?(s.phi*d<=0&&z(),o=0):o=v*(g?c(dn(s.phi,n(s.phi),t.e),d):c(e(w+.5*s.phi),-d)),h*=d,r.x=t.k0*(o*n(h)),r.y=t.k0*(y-o*a(h))},u=X(t.params,"rlat_1"),X(t.params,"tlat_2")?m=X(t.params,"rlat_2"):(m=u,X(t.params,"tlat_0")||(t.phi0=u)),i(u+m)<x&&B(-21),d=r=n(u),s=a(u),o=i(u-m)>=x,(g=0!=t.es)?(t.e=l(t.es),S=Vt(r,s,t.es),C=dn(u,r,t.e),o&&(r=n(m),d=_(S/Vt(r,a(m),t.es)),d/=_(C/dn(m,r,t.e))),v=y=S*c(C,-d)/d,y*=i(i(t.phi0)-N)<x?0:c(dn(t.phi0,n(t.phi0),t.e),d)):(o&&(d=_(s/a(m))/_(e(w+.5*m)/e(w+.5*u))),v=s*c(e(w+.5*u),d)/d,y=i(i(t.phi0)-N)<x?0:v*c(e(w+.5*t.phi0),-d))},"lcc","Lambert Conformal Conic","Conic, Sph&Ell\nlat_1= and lat_2= or lat_0="),ii(function(t){var n,s,r,o=1e-8;n=X(t.params,"rlat_1"),s=a(n),r=e(w+.5*n),s<o&&B(-22),t.fwd=function(t,a){a.y=t.phi-n,i(a.y)<o?a.x=t.lam*s:(a.x=w+.5*t.phi,i(a.x)<o||i(i(a.x)-N)<o?a.x=0:a.x=t.lam*a.y/_(e(a.x)/r))},t.inv=function(t,a){a.phi=t.y+n,i(t.y)<o?a.lam=t.x/s:(a.lam=w+.5*a.phi,i(a.lam)<o||i(i(a.lam)-N)<o?a.lam=0:a.lam=t.x*_(e(a.lam)/r)/t.y)},t.es=0},"loxim","Loximuthal","PCyl Sph"),ii(function(t){var e=.9525793444156804,s=.9258200997725514,o=3.401680257083045,h=2/3,p=1/3,l=1.0000001;t.fwd=function(i,t){i.phi=r(e*n(i.phi)),t.x=s*i.lam*(2*a(h*i.phi)-1),t.y=o*n(p*i.phi)},t.inv=function(t,p){p.phi=t.y/o,i(p.phi)>=1?i(p.phi)>l?j():p.phi=p.phi<0?-N:N:p.phi=r(p.phi),p.lam=t.x/(s*(2*a(h*(p.phi*=3))-1)),i(p.phi=n(p.phi)/e)>=1?i(p.phi)>l?j():p.phi=p.phi<0?-N:N:p.phi=r(p.phi)},t.es=0},"mbt_fpp","McBride-Thomas Flat-Polar Parabolic","Cyl., Sph."),ii(function(t){var e=1.000001;t.fwd=function(t,e){var s,r,o;for(r=1.7071067811865475*n(t.phi),o=20;o&&(t.phi-=s=(n(.5*t.phi)+n(t.phi)-r)/(.5*a(.5*t.phi)+a(t.phi)),!(i(s)<1e-7));--o);e.x=.3124597141037825*t.lam*(1+2*a(t.phi)/a(.5*t.phi)),e.y=1.874758284622695*n(.5*t.phi)},t.inv=function(t,s){var o;s.phi=.533402096794177*t.y,i(s.phi)>1?i(s.phi)>e?j():s.phi<0?(o=-1,s.phi=-S):(o=1,s.phi=S):s.phi=2*r(o=s.phi),s.lam=3.2004125807650623*t.x/(1+2*a(s.phi)/a(.5*s.phi)),s.phi=.585786437626905*(o+n(s.phi)),i(s.phi)>1?i(s.phi)>e?j():s.phi=s.phi<0?-N:N:s.phi=r(s.phi)},t.es=0},"mbt_fpq","McBryde-Thomas Flat-Polar Quartic","Cyl., Sph."),ii(function(t){var e=.45503,s=1.36509,r=1.41546,o=.22248,h=1.44492,p=1/3;t.fwd=function(t,l){var c,u,_,f;for(c=r*n(t.phi),f=10;f&&(_=t.phi/s,t.phi-=u=(e*n(_)+n(t.phi)-c)/(p*a(_)+a(t.phi)),!(i(u)<1e-7));--f);_=t.phi/s,l.x=o*t.lam*(1+3*a(t.phi)/a(_)),l.y=h*n(_)},t.inv=function(i,t){var p;t.phi=s*(p=$t(i.y/h)),t.lam=i.x/(o*(1+3*a(t.phi)/a(p))),t.phi=$t((e*n(p)+n(t.phi))/r)},t.es=0},"mbt_fps","McBryde-Thomas Flat-Pole Sine (No. 2)","Cyl., Sph."),ii(function(t){var s=1e-10,r=0,o=X(t.params,"tlat_ts");o&&(r=X(t.params,"rlat_ts"))>=N&&B(-24),t.es?(o&&(t.k0=Vt(n(r),a(r),t.es)),t.inv=function(i,n){n.phi=yn(u(-i.y/t.k0),t.e),n.phi===A&&j(),n.lam=i.x/t.k0},t.fwd=function(a,e){i(i(a.phi)-N)<=s&&z(),e.x=t.k0*a.lam,e.y=-t.k0*_(dn(a.phi,n(a.phi),t.e))}):(t.inv=function(i,n){n.phi=N-2*h(u(-i.y/t.k0)),n.lam=i.x/t.k0},t.fwd=function(n,a){i(i(n.phi)-N)<=s&&z(),a.x=t.k0*n.lam,a.y=t.k0*_(e(w+.5*n.phi))})},"merc","Mercator","Cyl, Sph&Ell\nlat_ts="),ii(function(t){t.k0=1,t.inv=function(i,n){n.phi=N-2*h(u(-i.y/t.k0)),n.lam=i.x/t.k0},t.fwd=function(n,a){i(i(n.phi)-N)<=D&&z(),a.x=t.k0*n.lam,a.y=t.k0*_(e(w+.5*n.phi))}},"webmerc","Web Mercator / Pseudo Mercator","Cyl, Ell"),ii(function(i){i.fwd=function(i,t){t.x=i.lam,t.y=1.25*_(e(w+.4*i.phi))},i.inv=function(i,t){t.lam=i.x,t.phi=2.5*(h(u(.8*i.y))-w)},i.es=0},"mill","Miller Cylindrical","Cyl, Sph"),ii(function(i){i.lam0=20*M,i.phi0=18*M,i.es=0,An(i,[[.9245,0],[0,0],[.01943,0]])},"mil_os","Miller Oblated Stereographic","Azi(mod)"),ii(function(i){i.lam0=-165*M,i.phi0=-10*M,i.es=0,An(i,[[.721316,0],[0,0],[-.0088162,-.00617325]])},"lee_os","Lee Oblated Stereographic","Azi(mod)"),ii(function(i){i.lam0=-96*M,i.phi0=39*M,i.es=0,i.a=6370997,An(i,[[.98879,0],[0,0],[-.050909,0],[0,0],[.075528,0]])},"gs48","Mod Stereographic of 48 U.S.","Azi(mod)"),ii(function(i){var t;i.lam0=-152*M,i.phi0=64*M,0!=i.es?(t=[[.9945303,0],[.0052083,-.0027404],[.0072721,.0048181],[-.0151089,-.1932526],[.0642675,-.1381226],[.3582802,-.2884586]],i.a=6378206.4,i.e=l(i.es=.00676866)):(t=[[.9972523,0],[.0052513,-.0041175],[.0074606,.0048125],[-.0153783,-.1968253],[.0636871,-.1408027],[.3660976,-.2937382]],i.a=6370997),An(i,t)},"alsk","Mod Stereographic of Alaska","Azi(mod)"),ii(function(i){var t;i.lam0=-120*M,i.phi0=45*M,0!=i.es?(t=[[.9827497,0],[.0210669,.0053804],[-.1031415,-.0571664],[-.0323337,-.0322847],[.0502303,.1211983],[.0251805,.0895678],[-.0012315,-.1416121],[.0072202,-.1317091],[-.0194029,.0759677],[-.0210072,.0834037]],i.a=6378206.4,i.e=l(i.es=.00676866)):(t=[[.984299,0],[.0211642,.0037608],[-.1036018,-.0575102],[-.0329095,-.0320119],[.0499471,.1223335],[.026046,.0899805],[7388e-7,-.1435792],[.0075848,-.1334108],[-.0216473,.0776645],[-.0225161,.0853673]],i.a=6370997),An(i,t)},"gs50","Mod Stereographic of 50 U.S.","Azi(mod)"),ii(function(t){var n=.8707,a=-.131979,e=-.013791,s=.003971,r=-.001529,o=1.007226,h=.015085,p=-.044475,l=.028874,c=-.005916,u=o,_=3*h,f=7*p,m=9*l,d=11*c,y=.8707*.52*S;t.es=0,t.fwd=function(i,t){var u,_;_=(u=i.phi*i.phi)*u,t.x=i.lam*(n+u*(a+u*(e+_*u*(s+u*r)))),t.y=i.phi*(o+u*(h+_*(p+l*u+c*_)))},t.inv=function(t,v){var g,A,C,S,x=t.x,M=t.y;for(M>y?M=y:M<-y&&(M=-y),g=M;g-=A=(g*(o+(C=g*g)*(h+(S=C*C)*(p+l*C+c*S)))-M)/(u+C*(_+S*(f+m*C+d*S))),!(i(A)<1e-11););v.phi=g,C=g*g,v.lam=x/(n+C*(a+C*(e+C*C*C*(s+C*r))))}},"natearth","Natural Earth","PCyl., Sph."),ii(function(t){var n=.84719,a=-.13063,e=-.04515,s=.05494,r=-.02326,o=.00331,h=1.01183,p=-.02625,l=.01926,c=-.00396,u=h,_=9*p,f=.45334622460635143*S;t.es=0,t.fwd=function(i,t){var u,_,f;f=(u=i.phi*i.phi)*(_=u*u),t.x=i.lam*(n+a*u+f*f*(e+s*u+r*_+o*f)),t.y=i.phi*(h+_*_*(p+l*u+c*_))},t.inv=function(t,m){var d,y,v,g,A,C=t.x,S=t.y;for(S>f?S=f:S<-f&&(S=-f),d=S;d-=y=(d*(h+(g=(v=d*d)*v)*g*(p+l*v+c*g))-S)/(u+g*g*(_+.21186*v+-.05148*g)),!(i(y)<1e-11););m.phi=d,A=(v=d*d)*(g=v*v),m.lam=C/(n+a*v+A*A*(e+s*v+r*g+o*A))}},"natearth2","Natural Earth 2","PCyl., Sph."),ii(function(t){t.inv=function(i,t){t.lam=2*i.x/(1+a(i.y)),t.phi=$t(.5*(i.y+n(i.y)))},t.fwd=function(t,e){var s,r,o;for(s=2*n(t.phi),r=t.phi*t.phi,t.phi*=1.00371+r*(-.011412*r-.0935382),o=10;o&&(t.phi-=r=(t.phi+n(t.phi)-s)/(1+a(t.phi)),!(i(r)<1e-7));--o);e.x=.5*t.lam*(1+a(t.phi)),e.y=t.phi},t.es=0},"nell","Nell","PCyl., Sph."),ii(function(t){t.es=0,t.fwd=function(i,t){t.x=.5*i.lam*(1+a(i.phi)),t.y=2*(i.phi-e(.5*i.phi))},t.inv=function(t,n){var s,r,o,h;for(o=.5*t.y,h=9;h>0&&(r=a(.5*n.phi),n.phi-=s=(n.phi-e(n.phi/2)-o)/(1-.5/(r*r)),!(i(s)<1e-7));--h);h?n.lam=2*t.x/(1+a(n.phi)):(n.phi=o<0?-N:N,n.lam=2*t.x)}},"nell_h","Nell-Hammer","PCyl., Sph."),ii(function(t){t.es=0,t.fwd=function(t,e){var s=1e-10;if(i(t.lam)<s)e.x=0,e.y=t.phi;else if(i(t.phi)<s)e.x=t.lam,e.y=0;else if(i(i(t.lam)-N)<s)e.x=t.lam*a(t.phi),e.y=N*n(t.phi);else if(i(i(t.phi)-N)<s)e.x=0,e.y=t.phi;else{var r=N/t.lam-t.lam/N,o=t.phi/N,h=n(t.phi),p=(1-o*o)/(h-o),c=r/p,u=(r*h/p-.5*r)/(1+(c*=c)),_=(h/c+.5*p)/(1+1/c);e.x=a(t.phi),e.x=l(u*u+e.x*e.x/(1+c)),e.x=N*(u+(t.lam<0?-e.x:e.x)),e.y=l(_*_-(h*h/c+p*h-1)/(1+1/c)),e.y=N*(_+(t.phi<0?e.y:-e.y))}}},"nicol","Nicolosi Globular","Misc Sph, no inv"),ii(function(i){Cn(i,X(i.params,"dh"))},"nsper","Near-sided perspective","Azi, Sph\nh="),ii(function(i){var t=X(i.params,"dtilt")*M,n=X(i.params,"dazi")*M,a=X(i.params,"dh");Cn(i,a,t,n)},"tpers","Tilted perspective","Azi, Sph\ntilt= azi= h="),ii(function(t){var n=[[.7557853228,0],[.249204646,.003371507],[-.001541739,.04105856],[-.10162907,.01727609],[-.26623489,-.36249218],[-.6870983,-1.1651967]],a=[1.5627014243,.5185406398,-.03333098,-.1052906,-.0368594,.007317,.0122,.00394,-.0013],e=[.6399175073,-.1358797613,.063294409,-.02526853,.0117879,-.0055161,.0026906,-.001333,67e-5,-34e-5];t.ra=1/(t.a=6378388),t.lam0=173*M,t.phi0=-41*M,t.x0=251e4,t.y0=6023150,t.inv=function(e,s){var r,o,h,p,l,c,u={r:e.y,i:e.x},_={};for(r=20;r>0&&((l=gn(u,n,_)).r-=e.y,l.i-=e.x,c=_.r*_.r+_.i*_.i,u.r+=h=-(l.r*_.r+l.i*_.i)/c,u.i+=p=-(l.i*_.r-l.r*_.i)/c,!(i(h)+i(p)<=1e-10));--r);if(r>0){for(s.lam=u.i,o=a.length-1,s.phi=a[o],--o;o>=0;--o)s.phi=a[o]+u.r*s.phi;s.phi=t.phi0+u.r*s.phi*.484813681109536}else s.lam=s.phi=A},t.fwd=function(i,a){var s=e.length-1,r={r:e[s]},o=2.0626480624709638*(i.phi-t.phi0);for(--s;s>=0;--s)r.r=e[s]+o*r.r;r.r*=o,r.i=i.lam,r=vn(r,n),a.x=r.i,a.y=r.r}},"nzmg","New Zealand Map Grid","fixed Earth"),ii(function(t){var s,r,o,l,c,u,_,f,m,d,y,v,g,C,S,E=1e-10;s=X(t.params,"so_proj"),r=Q[s],s||B(-26),r&&"ob_tran"!=s||B(-37),t.es=0,o={},Object.keys(t).forEach(function(i){o[i]=t[i]}),r.init(o),o.is_latlong&&1==t.to_meter&&(t.to_meter=M,t.fr_meter=x),X(t.params,"to_alpha")?(f=X(t.params,"ro_lon_c"),m=X(t.params,"ro_lat_c"),d=X(t.params,"ro_alpha"),i(i(m)-N)<=E&&B(-32),l=f+nn(-a(d),-n(d)*n(m)),_=$t(a(m)*n(d))):X(t.params,"to_lat_p")?(l=X(t.params,"ro_lon_p"),_=X(t.params,"ro_lat_p")):(y=X(t.params,"ro_lon_1"),g=X(t.params,"ro_lat_1"),v=X(t.params,"ro_lon_2"),C=X(t.params,"ro_lat_2"),(i(g-C)<=E||(S=i(g))<=E||i(S-N)<=E||i(i(C)-N)<=E)&&B(-33),l=p(a(g)*n(C)*a(y)-n(g)*a(C)*a(v),n(g)*a(C)*n(v)-a(g)*n(C)*n(y)),_=h(-a(l-y)/e(g))),i(_)>E?(c=a(_),u=n(_),t.fwd=function(i,t){var e,s,r;e=a(i.lam),s=n(i.phi),r=a(i.phi),i.lam=wi(nn(r*n(i.lam),u*r*e+c*s)+l),i.phi=$t(u*s-c*r*e),o.fwd(i,t)},t.inv=o.inv?function(i,t){var e,s,r;o.inv(i,t),t.lam!=A&&(e=a(t.lam-=l),s=n(t.phi),r=a(t.phi),t.phi=$t(u*s+c*r*e),t.lam=nn(r*n(t.lam),u*r*e-c*s))}:null):(t.fwd=function(i,t){var e,s;e=a(i.phi),s=a(i.lam),i.lam=wi(nn(e*n(i.lam),n(i.phi))+l),i.phi=$t(-e*s),o.fwd(i,t)},t.inv=o.inv?function(i,t){var e,s;o.inv(i,t),t.lam!=A&&(e=a(t.phi),s=t.lam-l,t.lam=nn(e*n(s),-n(t.phi)),t.phi=$t(e*a(s)))}:null)},"ob_tran","General Oblique Transformation","Misc Sph\no_proj= plus parameters for projection\no_lat_p= o_lon_p= (new pole) or\no_alpha= o_lon_c= o_lat_c= or\no_lon_1= o_lat_1= o_lon_2= o_lat_2="),ii(function(i){var t,s,o,c,u,_,f,m,d,y,v;f=1/i.k0,m=i.k0,X(i.params,"talpha")?(_=X(i.params,"ralpha"),u=X(i.params,"rlonc"),v=h(-a(_)/(-n(0)*n(_)))+u,d=r(a(0)*n(_))):(t=X(i.params,"rlat_1"),s=X(i.params,"rlat_2"),o=X(i.params,"rlon_1"),c=X(i.params,"rlon_2"),v=p(a(t)*n(s)*a(o)-n(t)*a(s)*a(c),n(t)*a(s)*n(c)-a(t)*n(s)*n(o)),o==-N&&(v=-v),d=h(-a(v-o)/e(t))),i.lam0=v+N,y=a(d),d=n(d),v=n(v),i.es=0,i.fwd=function(i,t){var s;t.y=n(i.lam),s=a(i.lam),t.x=h((e(i.phi)*y+d*t.y)/s),s<0&&(t.x+=S),t.x*=m,t.y=f*(d*n(i.phi)-y*a(i.phi)*t.y)},i.inv=function(i,t){var e,s;i.y/=f,i.x/=m,e=l(1-i.y*i.y),t.phi=r(i.y*d+e*y*(s=n(i.x))),t.lam=p(e*d*s-i.y*y,e*a(i.x))}},"ocea","Oblique Cylindrical Equal Area","Cyl, Sph lonc= alpha= or\nlat_1= lat_2= lon_1= lon_2="),ii(function(t){var s,o,f,m,d,y,v,g,C,x,M,E,b,I,k,P,T,O,L,R,q,U,W,H,F,K,V,J=1e-7,Y=0,Z=0,$=0,Q=0,ii=0,ti=0,ni=0,ai=0;V=X(t.params,"tno_rot"),0!=(E=X(t.params,"talpha"))&&(ni=X(t.params,"ralpha")),0!=(b=X(t.params,"tgamma"))&&(Y=X(t.params,"rgamma")),E||b?(Z=X(t.params,"rlonc"),(ai=X(t.params,"tno_off")||X(t.params,"tno_uoff"))&&(X(t.params,"sno_uoff"),X(t.params,"sno_off"))):($=X(t.params,"rlon_1"),ii=X(t.params,"rlat_1"),Q=X(t.params,"rlon_2"),ti=X(t.params,"rlat_2"),(i(ii-ti)<=J||(s=i(ii))<=J||i(s-N)<=J||i(i(t.phi0)-N)<=J||i(i(ti)-N)<=J)&&B(-33)),o=l(t.one_es),i(t.phi0)>D?(g=n(t.phi0),f=a(t.phi0),s=1-t.es*g*g,k=f*f,k=l(1+t.es*k*k/t.one_es),I=k*t.k0*o/s,(d=(m=k*o/(f*l(s)))*m-1)<=0?d=0:(d=l(d),t.phi0<0&&(d=-d)),P=d+=m,P*=c(dn(t.phi0,g,t.e),k)):(k=1/o,I=t.k0,P=m=d=1),E||b?(E?(M=r(n(ni)/m),b||(Y=ni)):ni=r(m*n(M=Y)),t.lam0=Z-r(.5*(d-1/d)*e(M))/k):(y=c(dn(ii,n(ii),t.e),k),v=c(dn(ti,n(ti),t.e),k),d=P/y,C=(v-y)/(v+y),x=((x=P*P)-v*y)/(x+v*y),(s=$-Q)<-S?Q-=G:s>S&&(Q+=G),t.lam0=wi(.5*($+Q)-h(x*e(.5*k*($-Q))/C)/k),M=h(2*n(k*wi($-t.lam0))/(d-1/d)),Y=ni=r(m*n(M))),R=n(M),q=a(M),U=n(Y),W=a(Y),O=1/(T=I*(L=1/k)),ai?K=0:(K=i(T*h(l(m*m-1)/a(ni))),t.phi0<0&&(K=-K)),H=T*_(e(w-(d=.5*M))),F=T*_(e(w+d)),t.fwd=function(e,s){var r,o,h,l,u,f,m,d;i(i(e.phi)-N)>D?(r=.5*((u=P/c(dn(e.phi,n(e.phi),t.e),k))-(f=1/u)),o=.5*(u+f),l=n(k*e.lam),i(i(h=(r*R-l*q)/o)-1)<D&&z(),d=.5*T*_((1-h)/(1+h)),f=a(k*e.lam),m=i(f)<J?I*e.lam:T*p(r*q+l*R,f)):(d=e.phi>0?H:F,m=T*e.phi),V?(s.x=m,s.y=d):(m-=K,s.x=d*W+m*U,s.y=m*W-d*U)},t.inv=function(e,s){var r,o,h,_,f,m,d;V?(o=e.y,r=e.x):(o=e.x*W-e.y*U,r=e.y*W+e.x*U+K),_=.5*((h=u(-O*o))-1/h),f=.5*(h+1/h),m=n(O*r),i(i(d=(m*q+_*R)/f)-1)<D?(s.lam=0,s.phi=d<0?-N:N):(s.phi=P/l((1+d)/(1-d)),(s.phi=yn(c(s.phi,1/k),t.e))==A&&j(),s.lam=-L*p(_*q-m*R,a(O*r)))}},"omerc","Oblique Mercator","Cyl, Sph&Ell no_rot\nalpha= [gamma=] [no_off] lonc= or\nlon_1= lat_1= lon_2= lat_2="),ii(function(t){var e=1e-10,s={};i(i(t.phi0)-N)<=e?s.mode=t.phi0<0?1:0:i(t.phi0)>e?(s.mode=3,s.sinph0=n(t.phi0),s.cosph0=a(t.phi0)):s.mode=2,t.fwd=function(r,o){var h,p,l;switch(p=a(r.phi),h=a(r.lam),s.mode){case 2:p*h<-1e-10&&z(),o.y=n(r.phi);break;case 3:s.sinph0*(l=n(r.phi))+s.cosph0*p*h<-1e-10&&z(),o.y=s.cosph0*l-s.sinph0*p*h;break;case 0:h=-h;case 1:i(r.phi-t.phi0)-e>N&&z(),o.y=p*h}o.x=p*n(r.lam)},t.inv=function(n,a){var h,c,u;if((u=h=f(n.x,n.y))>1&&(u-1>e&&j(),u=1),c=l(1-u*u),i(h)<=e)a.phi=t.phi0,a.lam=0;else{switch(s.mode){case 0:n.y=-n.y,a.phi=o(u);break;case 1:a.phi=-o(u);break;case 2:case 3:2==s.mode?(a.phi=n.y*u/h,n.x*=u,n.y=c*h):(a.phi=c*s.sinph0+n.y*u*s.cosph0/h,n.y=(c-s.sinph0*a.phi)*h,n.x*=u*s.cosph0),i(a.phi)>=1?a.phi=a.phi<0?-N:N:a.phi=r(a.phi)}a.lam=0!=n.y||3!=s.mode&&2!=s.mode?p(n.x,n.y):0==n.x?0:n.x<0?-N:N}},t.es=0},"ortho","Orthographic","Azi, Sph."),ii(function(t){var n=1.0148,a=.23185,e=-.14499,s=.02406,r=n,o=5*a,h=7*e,p=908571831.7;t.es=0,t.fwd=function(i,t){var r=i.phi*i.phi;t.x=i.lam,t.y=i.phi*(n+r*r*(a+r*(e+s*r)))},t.inv=function(t,l){var c,u,_,f;for(c=t.y,t.y>p?t.y=p:t.y<-p&&(t.y=-p),f=100;f&&(c-=u=(c*(n+(_=c*c)*_*(a+_*(e+s*_)))-t.y)/(r+_*_*(o+_*(h+.21654*_))),!(i(u)<1e-11));--f);l.phi=c,l.lam=t.x}},"patterson","Patterson Cylindrical","Cyl., Sph."),ii(function(t){var s,o,h=1e-10,p=1e-12;t.es?(o=Yt(t.es),s=Xt(t.phi0,n(t.phi0),a(t.phi0),o),t.fwd=function(e,r){var p,l,c;i(e.phi)<=h?(r.x=e.lam,r.y=-s):(l=n(e.phi),p=i(c=a(e.phi))>h?Vt(l,c,t.es)/l:0,r.x=p*n(e.lam*=l),r.y=Xt(e.phi,l,c,o)-s+p*(1-a(e.lam)))},t.inv=function(c,u){var _,f,m,d,y,v,g,A,C,S,x=c.x,M=c.y;if(i(M+=s)<=h)u.lam=x,u.phi=0;else{for(_=M*M+x*x,u.phi=M,S=20;S>0&&(y=(m=n(u.phi))*(d=a(u.phi)),i(d)<p&&j(),f=m*(A=l(1-t.es*m*m))/d,g=(v=Xt(u.phi,m,d,o))*v+_,A=t.one_es/(A*A*A),u.phi+=C=(v+v+f*g-2*M*(f*v+1))/(t.es*y*(g-2*M*v)/f+2*(M-v)*(f*A-1/y)-A-A),!(i(C)<=p));--S);S||j(),f=n(u.phi),u.lam=r(x*e(u.phi)*l(1-t.es*f*f))/n(u.phi)}}):(s=-t.phi0,t.fwd=function(r,o){var p,l;i(r.phi)<=h?(o.x=r.lam,o.y=s):(p=1/e(r.phi),o.x=n(l=r.lam*n(r.phi))*p,o.y=r.phi-t.phi0+p*(1-a(l)))},t.inv=function(a,s){var o,p,l,c;if(i(a.y=t.phi0+a.y)<=h)s.lam=a.x,s.phi=0;else{s.phi=a.y,o=a.x*a.x+a.y*a.y,c=10;do{l=e(s.phi),s.phi-=p=(a.y*(s.phi*l+1)-s.phi-.5*(s.phi*s.phi+o)*l)/((s.phi-a.y)/l-1)}while(i(p)>1e-10&&--c);c||j(),s.lam=r(a.x*e(s.phi))/n(s.phi)}})},"poly","Polyconic (American)","Conic, Sph&Ell"),ii(function(t){var e=1.8949,s=1.71848,r=.6141848493043784,o=1.0471975511965976;t.es=0,t.fwd=function(t,h){var p,l,c,u,_;for(p=r*n(t.phi),c=t.phi*t.phi,t.phi*=.615709+c*(.00909953+.0046292*c),_=10;_&&(l=a(t.phi),c=n(t.phi),t.phi-=u=(t.phi+c*(l-1)-p)/(1+l*(l-1)-c*c),!(i(u)<1e-10));--_);_||(t.phi=t.phi<0?-o:o),h.x=e*t.lam*(a(t.phi)-.5),h.y=s*n(t.phi)},t.inv=function(i,t){var o;t.phi=$t(i.y/s),t.lam=i.x/(e*((o=a(t.phi))-.5)),t.phi=$t((t.phi+n(t.phi)*(o-1))/r)}},"putp2","Putnins P2","PCyl., Sph."),ii(Sn,"putp3","Putnins P3","PCyl., Sph."),ii(function(i){Sn(i,!0)},"putp3p","Putnins P3'","PCyl., Sph."),ii(function(i){xn(i,.874038744,3.883251825)},"putp4p","Putnins P4'","PCyl., Sph."),ii(function(i){xn(i,1,4.442882938)},"weren","Werenskiold I","PCyl., Sph."),ii(Mn,"putp5","Putnins P5","PCyl., Sph."),ii(function(i){Mn(i,!0)},"putp5p","Putnins P5'","PCyl., Sph."),ii(En,"putp6","Putnins P6","PCyl., Sph."),ii(function(i){En(i,!0)},"putp6p","Putnins P6'","PCyl., Sph."),ii(function(t){var s,r,c,u;function _(t,n,a){var e,s;return t<1e-10?(e=0,s=0):(s=p(n,a),i(s)<=w?e=0:s>w&&s<=N+w?(e=1,s-=N):s>N+w||s<=-(N+w)?(e=2,s=s>=0?s-S:s+S):(e=3,s+=N)),{area:e,theta:s}}function f(i,t){var n=i+t;return n<-S?n+=G:n>+S&&(n-=G),n}s=t.phi0>=N-w/2?4:t.phi0<=-(N-w/2)?5:i(t.lam0)<=w?0:i(t.lam0)<=N+w?t.lam0>0?1:3:2,0!==t.es&&(t.a,t.a,r=t.a*l(1-t.es),c=1-(t.a-r)/t.a,u=c*c),t.fwd=function(i,r){var p,c,m,d,y,v,g,A,C,x,M,E,b,G;p=0!==t.es?h(u*e(i.phi)):i.phi,c=i.lam,4==s?(d=N-p,c>=w&&c<=N+w?(g=0,m=c-N):c>N+w||c<=-(N+w)?(g=1,m=c>0?c-S:c+S):c>-(N+w)&&c<=-w?(g=2,m=c+N):(g=3,m=c)):5==s?(d=N+p,c>=w&&c<=N+w?(g=0,m=-c+N):c<w&&c>=-w?(g=1,m=-c):c<-w&&c>=-(N+w)?(g=2,m=-c-N):(g=3,m=c>0?-c+S:-c-S)):(1==s?c=f(c,+N):2==s?c=f(c,+S):3==s&&(c=f(c,-N)),M=n(p),E=a(p),b=n(c),A=E*a(c),C=E*b,x=M,0==s?G=_(d=o(A),x,C):1==s?G=_(d=o(C),x,-A):2==s?G=_(d=o(-A),x,-C):3==s?G=_(d=o(-C),x,A):(d=0,G={area:0,theta:0}),m=G.theta,g=G.area),v=h(12/S*(m+o(n(m)*a(w))-N)),y=l((1-a(d))/(a(v)*a(v))/(1-a(h(1/a(m))))),1==g?v+=N:2==g?v+=S:3==g&&(v+=I),r.x=y*a(v),r.y=y*n(v)},t.inv=function(_,m){var d,y,v,g,A,C,x,M,E,b,w,I,G;if(y=h(l(_.x*_.x+_.y*_.y)),d=p(_.y,_.x),_.x>=0&&_.x>=i(_.y)?b=0:_.y>=0&&_.y>=i(_.x)?(b=1,d-=N):_.x<0&&-_.x>=i(_.y)?(b=2,d=d<0?d+S:d-S):(b=3,d+=N),E=S/12*e(d),A=n(E)/(a(E)-1/l(2)),C=h(A),(x=1-(v=a(d))*v*(g=e(y))*g*(1-a(h(1/a(C)))))<-1?x=-1:x>1&&(x=1),4==s)M=o(x),m.phi=N-M,m.lam=0==b?C+N:1==b?C<0?C+S:C-S:2==b?C-N:C;else if(5==s)M=o(x),m.phi=M-N,m.lam=0==b?-C+N:1==b?-C:2==b?-C-N:C<0?-C-S:-C+S;else{var k,P,T;E=(k=x)*k,P=(E+=(T=E>=1?0:l(1-E)*n(C))*T)>=1?0:l(1-E),1==b?(E=P,P=-T,T=E):2==b?(P=-P,T=-T):3==b&&(E=P,P=T,T=-E),1==s?(E=k,k=-P,P=E):2==s?(k=-k,P=-P):3==s&&(E=k,k=P,P=-E),m.phi=o(-T)-N,m.lam=p(P,k),1==s?m.lam=f(m.lam,-N):2==s?m.lam=f(m.lam,-S):3==s&&(m.lam=f(m.lam,+N))}0!==t.es&&(w=m.phi<0?1:0,I=e(m.phi),G=r/l(I*I+u),m.phi=h(l(t.a*t.a-G*G)/(c*G)),w&&(m.phi=-m.phi))}},"qsc","Quadrilateralized Spherical Cube","Azi, Sph."),ii(function(n){var a=p([[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-9.86701e-7],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,1.8736e-8],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,9.34959e-7],[.7986,-.00755338,-500009e-10,9.35324e-7],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]]),e=p([[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-1.26793e-9,4.22642e-10],[.124,.0124,5.07171e-9,-1.60604e-9],[.186,.0123999,-1.90189e-8,6.00152e-9],[.248,.0124002,7.10039e-8,-2.24e-8],[.31,.0123992,-2.64997e-7,8.35986e-8],[.372,.0124029,9.88983e-7,-3.11994e-7],[.434,.0123893,-369093e-11,-4.35621e-7],[.4958,.0123198,-102252e-10,-3.45523e-7],[.5571,.0121916,-154081e-10,-5.82288e-7],[.6176,.0119938,-241424e-10,-5.25327e-7],[.6769,.011713,-320223e-10,-5.16405e-7],[.7346,.0113541,-397684e-10,-6.09052e-7],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-1.40374e-9],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]]),s=.8487,r=1.3523;function o(i,t){return i[0]+t*(i[1]+t*(i[2]+t*i[3]))}function h(i,t){return i[1]+t*(i[2]+i[2]+3*t*i[3])}function p(i){return i.map(function(i){return new Float32Array(i)})}n.es=0,n.fwd=function(n,h){var p,l;(p=t(11.459155902616464*(l=i(n.phi))))<0&&z(),p>=18&&(p=17),l=x*(l-.08726646259971647*p),h.x=o(a[p],l)*s*n.lam,h.y=o(e[p],l)*r,n.phi<0&&(h.y=-h.y)},n.inv=function(n,p){var l,c,u,_;if(p.lam=n.x/s,p.phi=i(n.y/r),p.phi>=1)p.phi>1.000001?j():(p.phi=n.y<0?-N:N,p.lam/=a[18][0]);else{if((_=t(18*p.phi))<0||_>=18)return j();for(;;)if(e[_][0]>p.phi)--_;else{if(!(e[_+1][0]<=p.phi))break;++_}for(u=new Float32Array(e[_]),l=5*(p.phi-u[0])/(e[_+1][0]-u[0]),u[0]-=p.phi;l-=c=o(u,l)/h(u,l),!(i(c)<1e-8););p.phi=(5*_+l)*M,n.y<0&&(p.phi=-p.phi),p.lam/=o(a[_],l)}}},"robin","Robinson","PCyl., Sph."),ii(bn("EULER"),"euler","Euler","Conic, Sph\nlat_1= and lat_2="),ii(bn("MURD1"),"murd1","Murdoch I","Conic, Sph\nlat_1= and lat_2="),ii(bn("MURD2"),"murd2","Murdoch II","Conic, Sph\nlat_1= and lat_2="),ii(bn("MURD3"),"murd3","Murdoch III","Conic, Sph\nlat_1= and lat_2="),ii(bn("PCONIC"),"pconic","Perspective Conic","Conic, Sph\nlat_1= and lat_2="),ii(bn("TISSOT"),"tissot","Tissot","Conic, Sph\nlat_1= and lat_2="),ii(bn("VITK1"),"vitk1","Vitkovsky I","Conic, Sph\nlat_1= and lat_2="),ii(function(t){var s,r,o,p,c,f,m,d,y;o=.5*t.e,m=a(t.phi0),m*=m,r=l(1+t.es*m*m*t.rone_es),y=n(t.phi0),c=a(d=$t(f=y/r)),y*=t.e,s=_(e(w+.5*d))-r*(_(e(w+.5*t.phi0))-o*_((1+y)/(1-y))),p=t.k0*l(t.one_es)/(1-y*y),t.inv=function(l,m){var d,y,v,g,A,C,S,x,M;for(v=2*(h(u(l.y/p))-w),g=l.x/p,A=a(v),d=$t(c*n(v)+f*A*a(g)),y=$t(A*n(g)/a(d)),S=(s-_(e(w+.5*d)))/r,M=6;M&&(C=t.e*n(d),d-=x=(S+_(e(w+.5*d))-o*_((1+C)/(1-C)))*(1-C*C)*a(d)*t.rone_es,!(i(x)<1e-10));--M);M?(m.phi=d,m.lam=y/r):j()},t.fwd=function(i,l){var m,d,y,v,g,A;g=t.e*n(i.phi),m=2*h(u(r*(_(e(w+.5*i.phi))-o*_((1+g)/(1-g)))+s))-N,d=r*i.lam,A=a(m),y=$t(c*n(m)-f*A*a(d)),v=$t(A*n(d)/a(y)),l.x=p*v,l.y=p*_(e(w+.5*y))}},"somerc","Swiss. Obl. Mercator","Cyl, Ell\nFor CH1903"),ii(function(i){var t=X(i.params,"tlat_ts")?X(i.params,"rlat_ts"):N;wn(i,t)},"stere","Stereographic","Azi, Sph&Ell\nlat_ts="),ii(function(i){i.phi0=X(i.params,"bsouth")?-N:N,i.k0=.994,i.x0=2e6,i.y0=2e6,i.lam0=0,i.es||B(-34),wn(i,N)},"ups","Universal Polar Stereographic","Azi, Sph&Ell\nsouth"),ii(function(t){var s,o,u,_,m,d,y,v,g,A=(s=t.e,o=t.phi0,u=s*s,_=n(o),m=a(o),d=l(1-u)/(1-u*_*_),y=l(1+u*m*m*m*m/(1-u)),v=r(_/y),g=.5*y*s,{e:s,K:e(.5*v+w)/(c(e(.5*o+w),y)*Nn(s*_,g)),C:y,chi:v,ratexp:g,rc:d}),C=A.chi,S=2*A.rc,x=n(C),M=a(C);t.fwd=function(i,s){var r,o,p,l;i=function(i,t){return{phi:2*h(t.K*c(e(.5*i.phi+w),t.C)*Nn(t.e*n(i.phi),t.ratexp))-N,lam:t.C*i.lam}}(i,A),o=n(i.phi),r=a(i.phi),p=a(i.lam),l=t.k0*S/(1+x*o+M*r*p),s.x=l*r*n(i.lam),s.y=l*(M*o-x*r*p)},t.inv=function(s,o){var l,u,_,m,d=s.x/t.k0,y=s.y/t.k0;(l=f(d,y))?(u=2*p(l,S),_=n(u),m=a(u),o.phi=r(m*x+y*_*M/l),o.lam=p(d*_,l*M*m-y*x*_)):(o.phi=C,o.lam=0),function(t,a){t.phi;var s,r,o=c(e(.5*t.phi+w)/a.K,1/a.C);for(t.lam/=a.C,s=20;s>0&&(r=2*h(o*Nn(a.e*n(t.phi),-.5*a.e))-N,!(i(r-t.phi)<1e-14));--s)t.phi=r;s||U(-17)}(o,A)}},"sterea","Oblique Stereographic Alternative","Azimuthal, Sph&Ell"),ii(function(i){In(i,1.50488,1.35439,!1)},"kav5","Kavraisky V","PCyl., Sph."),ii(function(i){In(i,2,2,!1)},"qua_aut","Quartic Authalic","PCyl., Sph."),ii(function(i){In(i,2,2,!0)},"fouc","Foucaut","PCyl., Sph."),ii(function(i){In(i,1.48875,1.36509,!1)},"mbt_s","McBryde-Thomas Flat-Polar Sine (No. 1)","PCyl., Sph."),ii(function(i){i.es=0,i.fwd=function(t,s){s.x=a(t.phi)*n(t.lam)/i.k0,s.y=i.k0*(p(e(t.phi),a(t.lam))-i.phi0)},i.inv=function(t,e){var s;t.y=t.y/i.k0+i.phi0,t.x*=i.k0,s=l(1-t.x*t.x),e.phi=r(s*n(t.y)),e.lam=p(t.x,s*a(t.y))}},"tcea","Transverse Cylindrical Equal Area","Cyl, Sph"),ii(function(i){i.es=0,i.fwd=function(i,t){var a=e(i.phi/2),s=n(w*a);t.x=i.lam*(.74482-.34588*s*s),t.y=1.70711*a},i.inv=function(i,t){var a=i.y/1.70711,e=n(w*a);t.lam=i.x/(.74482-.34588*e*e),t.phi=2*h(a)}},"times","Times","Cyl, Sph"),ii(function(t){X(t.params,"bapprox")?Gn(t):function(t){if(0===t.es)return Gn(t);hn(t);var n=t.fwd,a=t.inv;Gn(t);var e=t.fwd,s=t.inv;t.fwd=function(t,a){i(t.lam)>3*M?n(t,a):e(t,a)},t.inv=function(t,n){i(t.x)>.053-.022*t.y*t.y?a(t,n):s(t,n)}}(t)},"tmerc","Transverse Mercator","Cyl, Sph&Ell"),ii(function(i){var n;i.es||B(-34),i.y0=X(i.params,"bsouth")?1e7:0,i.x0=5e5,X(i.params,"tzone")?(n=X(i.params,"izone"))>0&&n<=60?--n:B(-35):(n=t(30*(wi(i.lam0)+S)/S))<0?n=0:n>=60&&(n=59),i.lam0=(n+.5)*S/30-S,i.k0=.9996,i.phi0=0,hn(i)},"utm","Universal Transverse Mercator (UTM)","Cyl, Sph\nzone= south"),ii(function(i){var t,s,r,o,h,l,c,u,_,m,d,y,v,g,A,C,S,x,M,E,b,w,I;E=X(i.params,"rlat_1"),x=X(i.params,"rlon_1"),b=X(i.params,"rlat_2"),M=X(i.params,"rlon_2"),E==b&&x==M&&B(-25),i.lam0=wi(.5*(x+M)),m=wi(M-x),t=a(E),r=a(b),s=n(E),o=n(b),l=t*o,c=s*r,h=t*r*n(m),_=Qt(s*o+t*r*a(m)),d=.5*_,w=p(r*n(m),t*o-s*r*a(m)),g=a(I=$t(t*n(w))),A=n(I),C=wi(p(t*a(w),s)-d),m*=.5,S=N-p(n(w)*s,a(w))-m,y=e(d),v=.5/n(d),u=.5/_,_*=_,i.fwd=function(i,e){var p,f,d,y,v,g,A;g=n(i.phi),A=a(i.phi),f=Qt(s*g+t*A*a(y=i.lam+m)),d=Qt(o*g+r*A*a(v=i.lam-m)),f*=f,d*=d,e.x=u*(p=f-d),p=_-p,e.y=u*tn(4*_*d-p*p),h*g-A*(l*n(y)-c*n(v))<0&&(e.y=-e.y)},i.inv=function(i,t){var e,s,r,o,h,l;r=(e=a(f(i.y,i.x+d)))+(s=a(f(i.y,i.x-d))),o=e-s,t.lam=-p(o,r*y),t.phi=Qt(f(y*r,o)*v),i.y<0&&(t.phi=-t.phi),l=n(t.phi),h=a(t.phi),t.phi=$t(A*l+g*h*(r=a(t.lam-=C))),t.lam=p(h*n(t.lam),A*h*r-g*l)+S},i.es=0},"tpeqd","Two Point Equidistant","Misc Sph\nlat_1= lon_1= lat_2= lon_2="),ii(function(i){var t,e,s,r,o,h;(r=X(i.params,"dn"))>0&&r<=1==0&&B(-40),s=X(i.params,"dq")/3,o=X(i.params,"ralpha"),h=r*n(o),t=a(o)/l(1-h*h),e=1/(t*r),i.fwd=function(i,o){var h=i.phi=$t(r*n(i.phi));o.x=t*i.lam*a(i.phi),h*=h,o.y=i.phi*(1+h*s)*e},i.es=0},"urm5","Urmaev V","PCyl., Sph., no inv.\nn= q= alpha="),ii(function(i){var t=X(i.params,"dn");(t<=0||t>1)&&B(-40),kn(i,t)},"urmfps","Urmaev Flat-Polar Sinusoidal","PCyl, Sph.\nn="),ii(function(i){kn(i,.8660254037844386)},"wag1","Wagner I (Kavraisky VI)","PCyl, Sph."),ii(function(t){var n=1e-10,s=.3333333333333333,h=9.869604401089358,p=19.739208802178716,c=4.934802200544679;t.fwd=function(t,a){var s,o,h,p,c;(c=i(t.phi/N))-n>1&&z(),c>1&&(c=1),i(t.phi)<=n?(a.x=t.lam,a.y=0):i(t.lam)<=n||i(c-1)<n?(a.x=0,a.y=S*e(.5*r(c)),t.phi<0&&(a.y=-a.y)):(o=(s=.5*i(S/t.lam-t.lam/S))*s,h=l(1-c*c),p=(h/=c+h-1)*h,c=h*(2/c-1),c*=c,a.x=h-c,h=c+o,a.x=S*(s*a.x+l(o*a.x*a.x-h*(p-c)))/h,t.lam<0&&(a.x=-a.x),a.y=i(a.x/S),a.y=1-a.y*(a.y+2*s),a.y<-n&&z(),a.y<0?a.y=0:a.y=l(a.y)*(t.phi<0?-S:S))},t.inv=function(t,e){var r,u,_,f,m,d,y,v,g,A,C,x,M;if(x=t.x*t.x,(C=i(t.y))<n)return e.phi=0,r=x*x+p*(x+c),e.lam=i(t.x)<=n?0:.5*(x-h+l(r))/t.x,e;M=t.y*t.y,f=(_=-S*C*((v=x+M)+h))+h*(v-3*M),u=S*C,g=2*l(-s*(d=_/(m=(y=v*v)+G*(C*v+S*(M+S*(C+N))))-s*(f/=m)*f)),(r=i(A=3*(A=.07407407407407407*f*f*f+(u*u-s*f*_)/m)/(d*g)))-n<=1?(A=r>1?A>0?0:S:o(A),e.phi=S*(g*a(A*s+4.188790204786391)-s*f),t.y<0&&(e.phi=-e.phi),r=y+p*(x-M+c),e.lam=i(t.x)<=n?0:.5*(v-h+(r<=0?0:l(r)))/t.x):j()}},"vandg","van der Grinten (I)","Misc Sph"),ii(function(i){Pn(i,!1)},"vandg2","van der Grinten II","Misc Sph, no inv."),ii(function(i){Pn(i,!0)},"vandg3","van der Grinten III","Misc Sph, no inv."),ii(function(t){t.es=0,t.fwd=function(t,n){var a,e,s,r,o,h,p,c,u=1e-10;i(t.phi)<u?(n.x=t.lam,n.y=0):i(t.lam)<u||i(i(t.phi)-N)<u?(n.x=0,n.y=t.phi):(h=(r=.5*((s=i(k*t.phi))*(8-s*(2+(o=s*s)))-5)/(o*(s-1)))*r,p=k*t.lam,p=l((p+=1/p)*p-4),i(t.lam)-N<0&&(p=-p),a=s+r,a=(p*((a*=a)+h-1)+2*l(a*(o+h*(c=p*p)-1)+(1-o)*(o*((e=s+3*r)*e+4*h)+h*(12*s*r+4*h))))/(4*a+c),n.x=N*a,n.y=N*l(1+p*i(a)-a*a),t.lam<0&&(n.x=-n.x),t.phi<0&&(n.y=-n.y))}},"vandg4","van der Grinten IV","Misc Sph, no inv."),ii(function(i){var t=.92483,e=1.38725,s=.88022,r=.8855;i.fwd=function(i,o){i.phi=$t(s*n(r*i.phi)),o.x=t*i.lam*a(i.phi),o.y=e*i.phi},i.inv=function(i,o){o.phi=i.y/e,o.lam=i.x/(t*a(o.phi)),o.phi=$t(n(o.phi)/s)/r}},"wag2","Wagner II","PCyl., Sph."),ii(function(i){var t=.6666666666666666,n=X(i.params,"rlat_ts"),e=a(n)/a(2*n/3);i.es=0,i.fwd=function(i,n){n.x=e*i.lam*a(t*i.phi),n.y=i.phi},i.inv=function(i,n){n.phi=i.y,n.lam=i.x/(e*a(t*n.phi))}},"wag3","Wagner III","PCyl., Sph.\nlat_ts="),ii(function(i){i.es=0,i.fwd=function(i,t){var e,s,o;e=r(t.y=.9063077870366499*n(i.phi)),t.x=2.66723*(s=a(e))*n(i.lam/=3),t.y*=1.24104*(o=1/l(.5*(1+s*a(i.lam)))),t.x*=o}},"wag7","Wagner VII","Misc Sph, no inv."),ii(function(i){var t=a(X(i.params,"rlat_ts"));i.fwd=function(i,n){n.x=.5*i.lam*(t+a(i.phi)),n.y=i.phi},i.inv=function(i,n){n.phi=i.y,n.lam=2*i.x/(t+a(n.phi))},i.es=0},"wink1","Winkel I","PCyl., Sph.\nlat_ts="),ii(function(t){var e=a(X(t.params,"rlat_1"));t.fwd=function(t,s){var r,o,h,p=t.phi;for(s.y=p*k,r=S*n(p),p*=1.8,h=10;h&&(p-=o=(p+n(p)-r)/(1+a(p)),!(i(o)<1e-7));--h);h?p*=.5:p=p<0?-N:N,s.x=.5*t.lam*(a(p)+e),s.y=w*(n(p)+s.y)},t.inv=null,t.es=0},"wink2","Winkel II","PCyl., Sph., no inv.\nlat_1=");var Tn=ki;Tn.pj_init=di,Tn.pj_fwd=Ni,Tn.pj_inv=Ii,Tn.pj_transform=xi,Tn.pj_add=ii,Tn.pj_fwd_deg=function(i,t){return Ni({lam:i.lam*M,phi:i.phi*M},t)},Tn.pj_inv_deg=function(i,t){var n=Ii(i,t);return{lam:n.lam*x,phi:n.phi*x}},Tn.pj_transform_point=Si,Tn.internal={dmstod:V,dmstor:K,get_rtodms:function(i,t,n,a){var e=Gi(i,t,n,a);return function(i){return e(i*x)}},get_dtodms:Gi,get_proj_defn:ai,pj_latlong_from_proj:function(i){return di("+proj=latlong"+ni(i))},pj_get_params:Z,pj_datums:si,pj_list:Q,pj_ellps:hi,pj_units:li,pj_read_init_opts:mi,find_datum:oi,DEG_TO_RAD:M,RAD_TO_DEG:x,wkt_parse:Ut,wkt_unpack:zt,convert_wkt_quotes:jt,wkt_to_proj4:function(i){var t,n,a=Ut(i);return a.PROJCS?t=qi(n=a.PROJCS)(n):a.GEOGCS?t="+proj=longlat "+Vi(a.GEOGCS):a.GEOCCS?Hi("geocentric coordinates are not supported"):Hi("missing a supported WKT CS type"),t},wkt_from_proj4:function(i){return i.length&&(i=di(i)),Lt(ti(i)?{GEOGCS:$i(i)}:st(i))},wkt_make_projcs:st,wkt_get_geogcs_name:tt,wkt_stringify:Lt,mproj_insert_libcache:function(i,t){_i[i]=t},mproj_search_libcache:fi,GeographicLib:Ft},g.exports=Tn}();var S=e.exports,x=t({__proto__:null,default:n(S)},[S]);class M{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(i,t){let n=this.length++;for(;n>0;){const i=n-1>>1,a=this.values[i];if(t>=a)break;this.ids[n]=this.ids[i],this.values[n]=a,n=i}this.ids[n]=i,this.values[n]=t}pop(){if(0===this.length)return;const i=this.ids,t=this.values,n=i[0],a=--this.length;if(a>0){const n=i[a],e=t[a];let s=0;const r=a>>1;for(;s<r;){const n=1+(s<<1),r=n+1,o=n+(+(r<a)&+(t[r]<t[n]));if(t[o]>=e)break;i[s]=i[o],t[s]=t[o],s=o}i[s]=n,t[s]=e}return n}peek(){return this.length>0?this.ids[0]:void 0}peekValue(){return this.length>0?this.values[0]:void 0}shrink(){this.ids.length=this.values.length=this.length}}const E=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class b{static from(i,t=0){if(t%8!=0)throw new Error("byteOffset must be 8-byte aligned.");if(!i||void 0===i.byteLength||i.buffer)throw new Error("Data must be an instance of ArrayBuffer or SharedArrayBuffer.");const[n,a]=new Uint8Array(i,t+0,2);if(251!==n)throw new Error("Data does not appear to be in a Flatbush format.");const e=a>>4;if(3!==e)throw new Error(`Got v${e} data when expected v3.`);const s=E[15&a];if(!s)throw new Error("Unrecognized array type.");const[r]=new Uint16Array(i,t+2,1),[o]=new Uint32Array(i,t+4,1);return new b(o,r,s,void 0,i,t)}constructor(i,t=16,n=Float64Array,a=ArrayBuffer,e,s=0){if(void 0===i)throw new Error("Missing required argument: numItems.");if(isNaN(i)||i<=0)throw new Error(`Unexpected numItems value: ${i}.`);this.numItems=+i,this.nodeSize=Math.min(Math.max(+t,2),65535),this.byteOffset=s;let r=i,o=r;this._levelBounds=[4*r];do{r=Math.ceil(r/this.nodeSize),o+=r,this._levelBounds.push(4*o)}while(1!==r);this.ArrayType=n,this.IndexArrayType=o<16384?Uint16Array:Uint32Array;const h=E.indexOf(n),p=4*o*n.BYTES_PER_ELEMENT;if(h<0)throw new Error(`Unexpected typed array class: ${n}.`);if(e)this.data=e,this._boxes=new n(e,s+8,4*o),this._indices=new this.IndexArrayType(e,s+8+p,o),this._pos=4*o,this.minX=this._boxes[this._pos-4],this.minY=this._boxes[this._pos-3],this.maxX=this._boxes[this._pos-2],this.maxY=this._boxes[this._pos-1];else{const e=this.data=new a(8+p+o*this.IndexArrayType.BYTES_PER_ELEMENT);this._boxes=new n(e,8,4*o),this._indices=new this.IndexArrayType(e,8+p,o),this._pos=0,this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,new Uint8Array(e,0,2).set([251,48+h]),new Uint16Array(e,2,1)[0]=t,new Uint32Array(e,4,1)[0]=i}this._queue=new M}add(i,t,n=i,a=t){const e=this._pos>>2,s=this._boxes;return this._indices[e]=e,s[this._pos++]=i,s[this._pos++]=t,s[this._pos++]=n,s[this._pos++]=a,i<this.minX&&(this.minX=i),t<this.minY&&(this.minY=t),n>this.maxX&&(this.maxX=n),a>this.maxY&&(this.maxY=a),e}finish(){if(this._pos>>2!==this.numItems)throw new Error(`Added ${this._pos>>2} items when expected ${this.numItems}.`);const i=this._boxes;if(this.numItems<=this.nodeSize)return i[this._pos++]=this.minX,i[this._pos++]=this.minY,i[this._pos++]=this.maxX,void(i[this._pos++]=this.maxY);const t=this.maxX-this.minX||1,n=this.maxY-this.minY||1,a=new Uint32Array(this.numItems);for(let e=0,s=0;e<this.numItems;e++){const r=i[s++],o=i[s++],h=i[s++],p=i[s++],l=Math.floor(65535*((r+h)/2-this.minX)/t),c=Math.floor(65535*((o+p)/2-this.minY)/n);a[e]=G(l,c)}N(a,i,this._indices,0,this.numItems-1,this.nodeSize);for(let t=0,n=0;t<this._levelBounds.length-1;t++){const a=this._levelBounds[t];for(;n<a;){const t=n;let e=i[n++],s=i[n++],r=i[n++],o=i[n++];for(let t=1;t<this.nodeSize&&n<a;t++)e=Math.min(e,i[n++]),s=Math.min(s,i[n++]),r=Math.max(r,i[n++]),o=Math.max(o,i[n++]);this._indices[this._pos>>2]=t,i[this._pos++]=e,i[this._pos++]=s,i[this._pos++]=r,i[this._pos++]=o}}}search(i,t,n,a,e){if(this._pos!==this._boxes.length)throw new Error("Data not yet indexed - call index.finish().");let s=this._boxes.length-4;const r=[],o=[];for(;void 0!==s;){const h=Math.min(s+4*this.nodeSize,w(s,this._levelBounds));for(let p=s;p<h;p+=4){const h=this._boxes[p];if(n<h)continue;const l=this._boxes[p+1];if(a<l)continue;const c=this._boxes[p+2];if(i>c)continue;const u=this._boxes[p+3];if(t>u)continue;const _=0|this._indices[p>>2];s>=4*this.numItems?r.push(_):(void 0===e||e(_,h,l,c,u))&&o.push(_)}s=r.pop()}return o}neighbors(i,t,n=1/0,a=1/0,e){if(this._pos!==this._boxes.length)throw new Error("Data not yet indexed - call index.finish().");let s=this._boxes.length-4;const r=this._queue,o=[],h=a*a;i:for(;void 0!==s;){const a=Math.min(s+4*this.nodeSize,w(s,this._levelBounds));for(let n=s;n<a;n+=4){const a=0|this._indices[n>>2],o=this._boxes[n],p=this._boxes[n+1],l=this._boxes[n+2],c=this._boxes[n+3],u=i<o?o-i:i>l?i-l:0,_=t<p?p-t:t>c?t-c:0,f=u*u+_*_;f>h||(s>=4*this.numItems?r.push(a<<1,f):(void 0===e||e(a))&&r.push(1+(a<<1),f))}for(;r.length&&1&r.peek();){if(r.peekValue()>h)break i;if(o.push(r.pop()>>1),o.length===n)break i}s=r.length?r.pop()>>1:void 0}return r.clear(),o}}function w(i,t){let n=0,a=t.length-1;for(;n<a;){const e=n+a>>1;t[e]>i?a=e:n=e+1}return t[n]}function N(i,t,n,a,e,s){if(Math.floor(a/s)>=Math.floor(e/s))return;const r=i[a],o=i[a+e>>1],h=i[e];let p=h;const l=Math.max(r,o);h>l?p=l:l===r?p=Math.max(o,h):l===o&&(p=Math.max(r,h));let c=a-1,u=e+1;for(;;){do{c++}while(i[c]<p);do{u--}while(i[u]>p);if(c>=u)break;I(i,t,n,c,u)}N(i,t,n,a,u,s),N(i,t,n,u+1,e,s)}function I(i,t,n,a,e){const s=i[a];i[a]=i[e],i[e]=s;const r=4*a,o=4*e,h=t[r],p=t[r+1],l=t[r+2],c=t[r+3];t[r]=t[o],t[r+1]=t[o+1],t[r+2]=t[o+2],t[r+3]=t[o+3],t[o]=h,t[o+1]=p,t[o+2]=l,t[o+3]=c;const u=n[a];n[a]=n[e],n[e]=u}function G(i,t){let n=i^t,a=65535^n,e=65535^(i|t),s=i&(65535^t),r=n|a>>1,o=n>>1^n,h=e>>1^a&s>>1^e,p=n&e>>1^s>>1^s;n=r,a=o,e=h,s=p,r=n&n>>2^a&a>>2,o=n&a>>2^a&(n^a)>>2,h^=n&e>>2^a&s>>2,p^=a&e>>2^(n^a)&s>>2,n=r,a=o,e=h,s=p,r=n&n>>4^a&a>>4,o=n&a>>4^a&(n^a)>>4,h^=n&e>>4^a&s>>4,p^=a&e>>4^(n^a)&s>>4,n=r,a=o,e=h,s=p,h^=n&e>>8^a&s>>8,p^=a&e>>8^(n^a)&s>>8,n=h^h>>1,a=p^p>>1;let l=i^t,c=a|65535^(l|n);return l=16711935&(l|l<<8),l=252645135&(l|l<<4),l=858993459&(l|l<<2),l=1431655765&(l|l<<1),c=16711935&(c|c<<8),c=252645135&(c|c<<4),c=858993459&(c|c<<2),c=1431655765&(c|c<<1),(c<<1|l)>>>0}const k=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class P{static from(i){if(!(i instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[t,n]=new Uint8Array(i,0,2);if(219!==t)throw new Error("Data does not appear to be in a KDBush format.");const a=n>>4;if(1!==a)throw new Error(`Got v${a} data when expected v1.`);const e=k[15&n];if(!e)throw new Error("Unrecognized array type.");const[s]=new Uint16Array(i,2,1),[r]=new Uint32Array(i,4,1);return new P(r,s,e,i)}constructor(i,t=64,n=Float64Array,a){if(isNaN(i)||i<0)throw new Error(`Unpexpected numItems value: ${i}.`);this.numItems=+i,this.nodeSize=Math.min(Math.max(+t,2),65535),this.ArrayType=n,this.IndexArrayType=i<65536?Uint16Array:Uint32Array;const e=k.indexOf(this.ArrayType),s=2*i*this.ArrayType.BYTES_PER_ELEMENT,r=i*this.IndexArrayType.BYTES_PER_ELEMENT,o=(8-r%8)%8;if(e<0)throw new Error(`Unexpected typed array class: ${n}.`);a&&a instanceof ArrayBuffer?(this.data=a,this.ids=new this.IndexArrayType(this.data,8,i),this.coords=new this.ArrayType(this.data,8+r+o,2*i),this._pos=2*i,this._finished=!0):(this.data=new ArrayBuffer(8+s+r+o),this.ids=new this.IndexArrayType(this.data,8,i),this.coords=new this.ArrayType(this.data,8+r+o,2*i),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+e]),new Uint16Array(this.data,2,1)[0]=t,new Uint32Array(this.data,4,1)[0]=i)}add(i,t){const n=this._pos>>1;return this.ids[n]=n,this.coords[this._pos++]=i,this.coords[this._pos++]=t,n}finish(){const i=this._pos>>1;if(i!==this.numItems)throw new Error(`Added ${i} items when expected ${this.numItems}.`);return T(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(i,t,n,a){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:e,coords:s,nodeSize:r}=this,o=[0,e.length-1,0],h=[];for(;o.length;){const p=o.pop()||0,l=o.pop()||0,c=o.pop()||0;if(l-c<=r){for(let r=c;r<=l;r++){const o=s[2*r],p=s[2*r+1];o>=i&&o<=n&&p>=t&&p<=a&&h.push(e[r])}continue}const u=c+l>>1,_=s[2*u],f=s[2*u+1];_>=i&&_<=n&&f>=t&&f<=a&&h.push(e[u]),(0===p?i<=_:t<=f)&&(o.push(c),o.push(u-1),o.push(1-p)),(0===p?n>=_:a>=f)&&(o.push(u+1),o.push(l),o.push(1-p))}return h}within(i,t,n){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:a,coords:e,nodeSize:s}=this,r=[0,a.length-1,0],o=[],h=n*n;for(;r.length;){const p=r.pop()||0,l=r.pop()||0,c=r.pop()||0;if(l-c<=s){for(let n=c;n<=l;n++)R(e[2*n],e[2*n+1],i,t)<=h&&o.push(a[n]);continue}const u=c+l>>1,_=e[2*u],f=e[2*u+1];R(_,f,i,t)<=h&&o.push(a[u]),(0===p?i-n<=_:t-n<=f)&&(r.push(c),r.push(u-1),r.push(1-p)),(0===p?i+n>=_:t+n>=f)&&(r.push(u+1),r.push(l),r.push(1-p))}return o}}function T(i,t,n,a,e,s){if(e-a<=n)return;const r=a+e>>1;D(i,t,r,a,e,s),T(i,t,n,a,r-1,1-s),T(i,t,n,r+1,e,1-s)}function D(i,t,n,a,e,s){for(;e>a;){if(e-a>600){const r=e-a+1,o=n-a+1,h=Math.log(r),p=.5*Math.exp(2*h/3),l=.5*Math.sqrt(h*p*(r-p)/r)*(o-r/2<0?-1:1);D(i,t,n,Math.max(a,Math.floor(n-o*p/r+l)),Math.min(e,Math.floor(n+(r-o)*p/r+l)),s)}const r=t[2*n+s];let o=a,h=e;for(O(i,t,a,n),t[2*e+s]>r&&O(i,t,a,e);o<h;){for(O(i,t,o,h),o++,h--;t[2*o+s]<r;)o++;for(;t[2*h+s]>r;)h--}t[2*a+s]===r?O(i,t,a,h):(h++,O(i,t,h,e)),h<=n&&(a=h+1),n<=h&&(e=h-1)}}function O(i,t,n,a){L(i,n,a),L(t,2*n,2*a),L(t,2*n+1,2*a+1)}function L(i,t,n){const a=i[t];i[t]=i[n],i[n]=a}function R(i,t,n,a){const e=i-n,s=t-a;return e*e+s*s}var q={exports:{}};!function(i){var t,n,a,e;(e={}).Constants={},e.Math={},e.Accumulator={},(t=e.Constants).WGS84={a:6378137,f:1/298.257223563},t.version={major:2,minor:2,patch:0},t.version_string="2.2.0",(n=e.Math).digits=53,n.epsilon=Math.pow(.5,n.digits-1),n.degree=Math.PI/180,n.sq=function(i){return i*i},n.hypot=function(i,t){return Math.sqrt(i*i+t*t)},n.cbrt=Math.cbrt||function(i){var t=Math.pow(Math.abs(i),1/3);return i>0?t:i<0?-t:i},n.log1p=Math.log1p||function(i){var t=1+i,n=t-1;return 0===n?i:i*Math.log(t)/n},n.atanh=Math.atanh||function(i){var t=Math.abs(i);return t=n.log1p(2*t/(1-t))/2,i>0?t:i<0?-t:i},n.copysign=function(i,t){return Math.abs(i)*(t<0||0===t&&1/t<0?-1:1)},n.sum=function(i,t){var n=i+t,a=n-t,e=n-a;return a-=i,{s:n,t:n?0-(a+(e-=t)):n}},n.polyval=function(i,t,n,a){for(var e=i<0?0:t[n++];--i>=0;)e=e*a+t[n++];return e},n.AngRound=function(i){var t=1/16,a=Math.abs(i);return a=a<t?t-(t-a):a,n.copysign(a,i)},n.remainder=function(i,t){return(i%=t)<-t/2?i+t:i<t/2?i:i-t},n.AngNormalize=function(i){var t=n.remainder(i,360);return 180===Math.abs(t)?n.copysign(180,i):t},n.LatFix=function(i){return Math.abs(i)>90?NaN:i},n.AngDiff=function(i,t){var a,e,s=n.sum(n.remainder(-i,360),n.remainder(t,360));return a=(s=n.sum(n.remainder(s.s,360),s.t)).s,e=s.t,0!==a&&180!==Math.abs(a)||(a=n.copysign(a,0===e?t-i:-e)),{d:a,e:e}},n.sincosd=function(i){var t,a,e,s,r,o,h;switch(t=i%360,a=(t-=90*(e=Math.round(t/90)))*this.degree,s=Math.sin(a),r=Math.cos(a),45===Math.abs(t)?(r=Math.sqrt(.5),s=n.copysign(r,a)):30===Math.abs(t)&&(r=Math.sqrt(.75),s=n.copysign(.5,a)),3&e){case 0:o=s,h=r;break;case 1:o=r,h=-s;break;case 2:o=-s,h=-r;break;default:o=-r,h=s}return h+=0,0===o&&(o=n.copysign(o,i)),{s:o,c:h}},n.sincosde=function(i,t){var a,e,s,r,o,h,p;switch(a=i%360,s=Math.round(a/90),e=(a=n.AngRound(a-90*s+t))*this.degree,r=Math.sin(e),o=Math.cos(e),45===Math.abs(a)?(o=Math.sqrt(.5),r=n.copysign(o,e)):30===Math.abs(a)&&(o=Math.sqrt(.75),r=n.copysign(.5,e)),3&s){case 0:h=r,p=o;break;case 1:h=o,p=-r;break;case 2:h=-r,p=-o;break;default:h=-o,p=r}return p+=0,0===h&&(h=n.copysign(h,i+t)),{s:h,c:p}},n.atan2d=function(i,t){var a,e=0;switch(Math.abs(i)>Math.abs(t)&&([i,t]=[t,i],e=2),n.copysign(1,t)<0&&(t=-t,++e),a=Math.atan2(i,t)/this.degree,e){case 1:a=n.copysign(180,i)-a;break;case 2:a=90-a;break;case 3:a=-90+a}return a},function(i,t){i.Accumulator=function(i){this.Set(i)},i.Accumulator.prototype.Set=function(t){t||(t=0),t.constructor===i.Accumulator?(this._s=t._s,this._t=t._t):(this._s=t,this._t=0)},i.Accumulator.prototype.Add=function(i){var n=t.sum(i,this._t),a=t.sum(n.s,this._s);n=n.t,this._s=a.s,this._t=a.t,0===this._s?this._s=n:this._t+=n},i.Accumulator.prototype.Sum=function(t){var n;return t?((n=new i.Accumulator(this)).Add(t),n._s):this._s},i.Accumulator.prototype.Negate=function(){this._s*=-1,this._t*=-1},i.Accumulator.prototype.Remainder=function(i){this._s=t.remainder(this._s,i),this.Add(0)}}(e.Accumulator,e.Math),e.Geodesic={},e.GeodesicLine={},e.PolygonArea={},function(i,t,n,a,e){var s,r,o,h,p,l,c,u,_,f,m,d=20+a.digits+10,y=a.epsilon,v=200*y,g=Math.sqrt(y),A=y,C=1e3*g;i.tiny_=Math.sqrt(Number.MIN_VALUE/Number.EPSILON),i.nC1_=6,i.nC1p_=6,i.nC2_=6,i.nC3_=6,i.nC4_=6,s=i.nC3_*(i.nC3_-1)/2,r=i.nC4_*(i.nC4_+1)/2,i.CAP_C1=1,i.CAP_C1p=2,i.CAP_C2=4,i.CAP_C3=8,i.CAP_C4=16,i.NONE=0,i.ARC=64,i.LATITUDE=128,i.LONGITUDE=256|i.CAP_C3,i.AZIMUTH=512,i.DISTANCE=1024|i.CAP_C1,i.STANDARD=i.LATITUDE|i.LONGITUDE|i.AZIMUTH|i.DISTANCE,i.DISTANCE_IN=2048|i.CAP_C1|i.CAP_C1p,i.REDUCEDLENGTH=4096|i.CAP_C1|i.CAP_C2,i.GEODESICSCALE=8192|i.CAP_C1|i.CAP_C2,i.AREA=16384|i.CAP_C4,i.ALL=32671,i.LONG_UNROLL=32768,i.OUT_MASK=32640|i.LONG_UNROLL,i.SinCosSeries=function(i,t,n,a){var e=a.length,s=e-(i?1:0),r=2*(n-t)*(n+t),o=1&s?a[--e]:0,h=0;for(s=Math.floor(s/2);s--;)o=r*(h=r*o-h+a[--e])-o+a[--e];return i?2*t*n*o:n*(o-h)},o=function(i,t){var n,e,s,r,o,h,p,l,c,u,_,f,m=a.sq(i),d=a.sq(t),y=(m+d-1)/6;return 0===d&&y<=0?n=0:(h=y,(o=(e=m*d/4)*(e+2*(r=y*(s=a.sq(y)))))>=0?(p=e+r,p+=p<0?-Math.sqrt(o):Math.sqrt(o),h+=(l=a.cbrt(p))+(0!==l?s/l:0)):(c=Math.atan2(Math.sqrt(-o),-(e+r)),h+=2*y*Math.cos(c/3)),u=Math.sqrt(a.sq(h)+d),f=((_=h<0?d/(u-h):h+u)-d)/(2*u),n=_/(Math.sqrt(_+a.sq(f))+f)),n},h=[1,4,64,0,256],i.A1m1f=function(i){var t=Math.floor(3);return(a.polyval(t,h,0,a.sq(i))/h[t+1]+i)/(1-i)},p=[-1,6,-16,32,-9,64,-128,2048,9,-16,768,3,-5,512,-7,1280,-7,2048],i.C1f=function(t,n){var e,s,r=a.sq(t),o=t,h=0;for(e=1;e<=i.nC1_;++e)s=Math.floor((i.nC1_-e)/2),n[e]=o*a.polyval(s,p,h,r)/p[h+s+1],h+=s+2,o*=t},l=[205,-432,768,1536,4005,-4736,3840,12288,-225,116,384,-7173,2695,7680,3467,7680,38081,61440],i.C1pf=function(t,n){var e,s,r=a.sq(t),o=t,h=0;for(e=1;e<=i.nC1p_;++e)s=Math.floor((i.nC1p_-e)/2),n[e]=o*a.polyval(s,l,h,r)/l[h+s+1],h+=s+2,o*=t},c=[-11,-28,-192,0,256],i.A2m1f=function(i){var t=Math.floor(3);return(a.polyval(t,c,0,a.sq(i))/c[t+1]-i)/(1+i)},u=[1,2,16,32,35,64,384,2048,15,80,768,7,35,512,63,1280,77,2048],i.C2f=function(t,n){var e,s,r=a.sq(t),o=t,h=0;for(e=1;e<=i.nC2_;++e)s=Math.floor((i.nC2_-e)/2),n[e]=o*a.polyval(s,u,h,r)/u[h+s+1],h+=s+2,o*=t},i.Geodesic=function(i,t){if(this.a=i,this.f=t,this._f1=1-this.f,this._e2=this.f*(2-this.f),this._ep2=this._e2/a.sq(this._f1),this._n=this.f/(2-this.f),this._b=this.a*this._f1,this._c2=(a.sq(this.a)+a.sq(this._b)*(0===this._e2?1:(this._e2>0?a.atanh(Math.sqrt(this._e2)):Math.atan(Math.sqrt(-this._e2)))/Math.sqrt(Math.abs(this._e2))))/2,this._etol2=.1*g/Math.sqrt(Math.max(.001,Math.abs(this.f))*Math.min(1,1-this.f/2)/2),!(isFinite(this.a)&&this.a>0))throw new Error("Equatorial radius is not positive");if(!(isFinite(this._b)&&this._b>0))throw new Error("Polar semi-axis is not positive");this._A3x=new Array(6),this._C3x=new Array(s),this._C4x=new Array(r),this.A3coeff(),this.C3coeff(),this.C4coeff()},_=[-3,128,-2,-3,64,-1,-3,-1,16,3,-1,-2,8,1,-1,2,1,1],i.Geodesic.prototype.A3coeff=function(){var i,t,n=0,e=0;for(i=5;i>=0;--i)t=Math.min(6-i-1,i),this._A3x[e++]=a.polyval(t,_,n,this._n)/_[n+t+1],n+=t+2},f=[3,128,2,5,128,-1,3,3,64,-1,0,1,8,-1,1,4,5,256,1,3,128,-3,-2,3,64,1,-3,2,32,7,512,-10,9,384,5,-9,5,192,7,512,-14,7,512,21,2560],i.Geodesic.prototype.C3coeff=function(){var t,n,e,s=0,r=0;for(t=1;t<i.nC3_;++t)for(n=i.nC3_-1;n>=t;--n)e=Math.min(i.nC3_-n-1,n),this._C3x[r++]=a.polyval(e,f,s,this._n)/f[s+e+1],s+=e+2},m=[97,15015,1088,156,45045,-224,-4784,1573,45045,-10656,14144,-4576,-858,45045,64,624,-4576,6864,-3003,15015,100,208,572,3432,-12012,30030,45045,1,9009,-2944,468,135135,5792,1040,-1287,135135,5952,-11648,9152,-2574,135135,-64,-624,4576,-6864,3003,135135,8,10725,1856,-936,225225,-8448,4992,-1144,225225,-1440,4160,-4576,1716,225225,-136,63063,1024,-208,105105,3584,-3328,1144,315315,-128,135135,-2560,832,405405,128,99099],i.Geodesic.prototype.C4coeff=function(){var t,n,e,s=0,r=0;for(t=0;t<i.nC4_;++t)for(n=i.nC4_-1;n>=t;--n)e=i.nC4_-n-1,this._C4x[r++]=a.polyval(e,m,s,this._n)/m[s+e+1],s+=e+2},i.Geodesic.prototype.A3f=function(i){return a.polyval(5,this._A3x,0,i)},i.Geodesic.prototype.C3f=function(t,n){var e,s,r=1,o=0;for(e=1;e<i.nC3_;++e)s=i.nC3_-e-1,r*=t,n[e]=r*a.polyval(s,this._C3x,o,t),o+=s+1},i.Geodesic.prototype.C4f=function(t,n){var e,s,r=1,o=0;for(e=0;e<i.nC4_;++e)s=i.nC4_-e-1,n[e]=r*a.polyval(s,this._C4x,o,t),o+=s+1,r*=t},i.Geodesic.prototype.Lengths=function(t,n,a,e,s,r,o,h,p,l,c,u,_){var f,m,d,y,v={},g=0,A=0,C=0,S=0;if((c&=i.OUT_MASK)&(i.DISTANCE|i.REDUCEDLENGTH|i.GEODESICSCALE)&&(C=i.A1m1f(t),i.C1f(t,u),c&(i.REDUCEDLENGTH|i.GEODESICSCALE)&&(S=i.A2m1f(t),i.C2f(t,_),g=C-S,S=1+S),C=1+C),c&i.DISTANCE)f=i.SinCosSeries(!0,r,o,u)-i.SinCosSeries(!0,a,e,u),v.s12b=C*(n+f),c&(i.REDUCEDLENGTH|i.GEODESICSCALE)&&(A=g*n+(C*f-S*(i.SinCosSeries(!0,r,o,_)-i.SinCosSeries(!0,a,e,_))));else if(c&(i.REDUCEDLENGTH|i.GEODESICSCALE)){for(m=1;m<=i.nC2_;++m)_[m]=C*u[m]-S*_[m];A=g*n+(i.SinCosSeries(!0,r,o,_)-i.SinCosSeries(!0,a,e,_))}return c&i.REDUCEDLENGTH?(v.m0=g,v.m12b=h*(e*r)-s*(a*o)-e*o*A):v.m12b=NaN,c&i.GEODESICSCALE&&(d=e*o+a*r,y=this._ep2*(p-l)*(p+l)/(s+h),v.M12=d+(y*r-o*A)*a/s,v.M21=d-(y*a-e*A)*r/h),v},i.Geodesic.prototype.InverseStart=function(t,n,e,s,r,h,p,l,c,u,_){var f,m,d,y,g,A,S,x,M,E,b,w,N,I,G,k,P,T,D,O,L={},R=s*n-r*t,q=r*n+s*t;return L.sig12=-1,f=s*n,f+=r*t,(m=q>=0&&R<.5&&r*p<.5)?(y=a.sq(t+s),y/=y+a.sq(n+r),L.dnm=Math.sqrt(1+this._ep2*y),d=p/(this._f1*L.dnm),g=Math.sin(d),A=Math.cos(d)):(g=l,A=c),L.salp1=r*g,L.calp1=A>=0?R+r*t*a.sq(g)/(1+A):f-r*t*a.sq(g)/(1-A),x=a.hypot(L.salp1,L.calp1),M=t*s+n*r*A,m&&x<this._etol2?(L.salp2=n*g,L.calp2=R-n*s*(A>=0?a.sq(g)/(1+A):1-A),S=a.hypot(L.salp2,L.calp2),L.salp2/=S,L.calp2/=S,L.sig12=Math.atan2(x,M)):Math.abs(this._n)>.1||M>=0||x>=6*Math.abs(this._n)*Math.PI*a.sq(n)||(O=Math.atan2(-l,-c),this.f>=0?(I=(N=a.sq(t)*this._ep2)/(2*(1+Math.sqrt(1+N))+N),E=O/(w=this.f*n*this.A3f(I)*Math.PI),b=f/(w*n)):(G=r*n-s*t,k=Math.atan2(f,G),b=p/(w=((E=(P=this.Lengths(this._n,Math.PI+k,t,-n,e,s,r,h,n,r,i.REDUCEDLENGTH,u,_)).m12b/(n*r*P.m0*Math.PI)-1)<-.01?f/E:-this.f*a.sq(n)*Math.PI)/n)),b>-v&&E>-1-C?this.f>=0?(L.salp1=Math.min(1,-E),L.calp1=-Math.sqrt(1-a.sq(L.salp1))):(L.calp1=Math.max(E>-v?0:-1,E),L.salp1=Math.sqrt(1-a.sq(L.calp1))):(T=o(E,b),D=w*(this.f>=0?-E*T/(1+T):-b*(1+T)/T),g=Math.sin(D),A=-Math.cos(D),L.salp1=r*g,L.calp1=f-r*t*a.sq(g)/(1-A))),L.salp1<=0?(L.salp1=1,L.calp1=0):(S=a.hypot(L.salp1,L.calp1),L.salp1/=S,L.calp1/=S),L},i.Geodesic.prototype.Lambda12=function(t,n,e,s,r,o,h,p,l,c,u,_,f,m){var d,y,v,g,A,C,S,x,M,E,b,w,N,I={};return 0===t&&0===p&&(p=-i.tiny_),y=h*n,v=a.hypot(p,h*t),I.ssig1=t,g=y*t,I.csig1=A=p*n,d=a.hypot(I.ssig1,I.csig1),I.ssig1/=d,I.csig1/=d,I.salp2=r!==n?y/r:h,I.calp2=r!==n||Math.abs(s)!==-t?Math.sqrt(a.sq(p*n)+(n<-t?(r-n)*(n+r):(t-s)*(t+s)))/r:Math.abs(p),I.ssig2=s,C=y*s,I.csig2=S=I.calp2*r,d=a.hypot(I.ssig2,I.csig2),I.ssig2/=d,I.csig2/=d,I.sig12=Math.atan2(Math.max(0,I.csig1*I.ssig2-I.ssig1*I.csig2),I.csig1*I.csig2+I.ssig1*I.ssig2),x=Math.max(0,A*C-g*S),M=A*S+g*C,b=Math.atan2(x*c-M*l,M*c+x*l),w=a.sq(v)*this._ep2,I.eps=w/(2*(1+Math.sqrt(1+w))+w),this.C3f(I.eps,m),E=i.SinCosSeries(!0,I.ssig2,I.csig2,m)-i.SinCosSeries(!0,I.ssig1,I.csig1,m),I.domg12=-this.f*this.A3f(I.eps)*y*(I.sig12+E),I.lam12=b+I.domg12,u&&(0===I.calp2?I.dlam12=-2*this._f1*e/t:(N=this.Lengths(I.eps,I.sig12,I.ssig1,I.csig1,e,I.ssig2,I.csig2,o,n,r,i.REDUCEDLENGTH,_,f),I.dlam12=N.m12b,I.dlam12*=this._f1/(I.calp2*r))),I},i.Geodesic.prototype.Inverse=function(t,n,e,s,r){var o,h;return r||(r=i.STANDARD),r===i.LONG_UNROLL&&(r|=i.STANDARD),r&=i.OUT_MASK,h=(o=this.InverseInt(t,n,e,s,r)).vals,r&i.AZIMUTH&&(h.azi1=a.atan2d(o.salp1,o.calp1),h.azi2=a.atan2d(o.salp2,o.calp2)),h},i.Geodesic.prototype.InverseInt=function(t,n,e,s,r){var o,h,p,l,c,u,_,f,m,v,C,S,x,M,E,b,w,N,I,G,k,P,T,D,O,L,R,q,U,z,j,W,B,H,F,K,V,J,Y,X,Z,$,Q,ii,ti,ni,ai,ei,si,ri,oi,hi,pi,li,ci,ui,_i,fi,mi,di,yi,vi,gi,Ai,Ci,Si={};if(Si.lat1=t=a.LatFix(t),Si.lat2=e=a.LatFix(e),t=a.AngRound(t),e=a.AngRound(e),h=(o=a.AngDiff(n,s)).e,o=o.d,r&i.LONG_UNROLL?(Si.lon1=n,Si.lon2=n+o+h):(Si.lon1=a.AngNormalize(n),Si.lon2=a.AngNormalize(s)),h*=p=a.copysign(1,o),E=(o*=p)*a.degree,b=(l=a.sincosde(o,h)).s,w=l.c,h=180-o-h,(c=Math.abs(t)<Math.abs(e)||isNaN(e)?-1:1)<0&&(p*=-1,[e,t]=[t,e]),t*=u=a.copysign(1,-t),e*=u,l=a.sincosd(t),_=this._f1*l.s,f=l.c,_/=l=a.hypot(_,f),f/=l,f=Math.max(i.tiny_,f),l=a.sincosd(e),m=this._f1*l.s,v=l.c,m/=l=a.hypot(m,v),v/=l,v=Math.max(i.tiny_,v),f<-_?v===f&&(m=a.copysign(_,m)):Math.abs(m)===-_&&(v=f),x=Math.sqrt(1+this._ep2*a.sq(_)),M=Math.sqrt(1+this._ep2*a.sq(m)),T=new Array(i.nC1_+1),D=new Array(i.nC2_+1),O=new Array(i.nC3_),(L=-90===t||0===b)&&(G=b,P=0,q=_,U=(I=w)*f,z=m,j=(k=1)*v,N=Math.atan2(Math.max(0,U*z-q*j),U*j+q*z),C=(R=this.Lengths(this._n,N,q,U,x,z,j,M,f,v,r|i.DISTANCE|i.REDUCEDLENGTH,T,D)).s12b,S=R.m12b,r&i.GEODESICSCALE&&(Si.M12=R.M12,Si.M21=R.M21),N<g||S>=0?((N<3*i.tiny_||N<y&&(C<0||S<0))&&(N=S=C=0),S*=this._b,C*=this._b,Si.a12=N/a.degree):L=!1),_i=2,!L&&0===_&&(this.f<=0||h>=180*this.f))I=k=0,G=P=1,C=this.a*E,N=B=E/this._f1,S=this._b*Math.sin(N),r&i.GEODESICSCALE&&(Si.M12=Si.M21=Math.cos(N)),Si.a12=o/this._f1;else if(!L)if(N=(R=this.InverseStart(_,f,x,m,v,M,E,b,w,T,D)).sig12,G=R.salp1,I=R.calp1,N>=0)P=R.salp2,k=R.calp2,H=R.dnm,C=N*this._b*H,S=a.sq(H)*this._b*Math.sin(N/H),r&i.GEODESICSCALE&&(Si.M12=Si.M21=Math.cos(N/H)),Si.a12=N/a.degree,B=E/(this._f1*H);else{for(F=0,K=i.tiny_,V=1,J=i.tiny_,Y=-1,X=!1,Z=!1;$=(R=this.Lambda12(_,f,x,m,v,M,G,I,b,w,F<20,T,D,O)).lam12,P=R.salp2,k=R.calp2,N=R.sig12,q=R.ssig1,U=R.csig1,z=R.ssig2,j=R.csig2,W=R.eps,mi=R.domg12,Q=R.dlam12,!Z&&Math.abs($)>=(X?8:1)*y&&F!=d;++F)$>0&&(F<20||I/G>Y/J)?(J=G,Y=I):$<0&&(F<20||I/G<V/K)&&(K=G,V=I),F<20&&Q>0&&(ii=-$/Q,Math.abs(ii)<Math.PI&&(ti=Math.sin(ii),(ai=G*(ni=Math.cos(ii))+I*ti)>0))?(I=I*ni-G*ti,G=ai,G/=l=a.hypot(G,I),I/=l,X=Math.abs($)<=16*y):(G=(K+J)/2,I=(V+Y)/2,G/=l=a.hypot(G,I),I/=l,X=!1,Z=Math.abs(K-G)+(V-I)<A||Math.abs(G-J)+(I-Y)<A);ei=r|(r&(i.REDUCEDLENGTH|i.GEODESICSCALE)?i.DISTANCE:i.NONE),C=(R=this.Lengths(W,N,q,U,x,z,j,M,f,v,ei,T,D)).s12b,S=R.m12b,r&i.GEODESICSCALE&&(Si.M12=R.M12,Si.M21=R.M21),S*=this._b,C*=this._b,Si.a12=N/a.degree,r&i.AREA&&(Ai=Math.sin(mi),_i=b*(Ci=Math.cos(mi))-w*Ai,fi=w*Ci+b*Ai)}return r&i.DISTANCE&&(Si.s12=0+C),r&i.REDUCEDLENGTH&&(Si.m12=0+S),r&i.AREA&&(si=G*f,0!==(ri=a.hypot(I,G*_))&&0!==si?(q=_,U=I*f,z=m,j=k*v,W=(hi=a.sq(ri)*this._ep2)/(2*(1+Math.sqrt(1+hi))+hi),pi=a.sq(this.a)*ri*si*this._e2,q/=l=a.hypot(q,U),U/=l,z/=l=a.hypot(z,j),j/=l,li=new Array(i.nC4_),this.C4f(W,li),ci=i.SinCosSeries(!1,q,U,li),ui=i.SinCosSeries(!1,z,j,li),Si.S12=pi*(ui-ci)):Si.S12=0,L||2!=_i||(_i=Math.sin(B),fi=Math.cos(B)),!L&&fi>-.7071&&m-_<1.75?(mi=1+fi,di=1+f,yi=1+v,oi=2*Math.atan2(_i*(_*yi+m*di),mi*(_*m+di*yi))):(gi=k*I+P*G,0===(vi=P*I-k*G)&&gi<0&&(vi=i.tiny_*I,gi=-1),oi=Math.atan2(vi,gi)),Si.S12+=this._c2*oi,Si.S12*=c*p*u,Si.S12+=0),c<0&&([P,G]=[G,P],[k,I]=[I,k],r&i.GEODESICSCALE&&([Si.M21,Si.M12]=[Si.M12,Si.M21])),{vals:Si,salp1:G*=c*p,calp1:I*=c*u,salp2:P*=c*p,calp2:k*=c*u}},i.Geodesic.prototype.GenDirect=function(n,a,e,s,r,o){return o?o===i.LONG_UNROLL&&(o|=i.STANDARD):o=i.STANDARD,s||(o|=i.DISTANCE_IN),new t.GeodesicLine(this,n,a,e,o).GenPosition(s,r,o)},i.Geodesic.prototype.Direct=function(i,t,n,a,e){return this.GenDirect(i,t,n,!1,a,e)},i.Geodesic.prototype.ArcDirect=function(i,t,n,a,e){return this.GenDirect(i,t,n,!0,a,e)},i.Geodesic.prototype.Line=function(i,n,a,e){return new t.GeodesicLine(this,i,n,a,e)},i.Geodesic.prototype.DirectLine=function(i,t,n,a,e){return this.GenDirectLine(i,t,n,!1,a,e)},i.Geodesic.prototype.ArcDirectLine=function(i,t,n,a,e){return this.GenDirectLine(i,t,n,!0,a,e)},i.Geodesic.prototype.GenDirectLine=function(n,a,e,s,r,o){var h;return o||(o=i.STANDARD|i.DISTANCE_IN),s||(o|=i.DISTANCE_IN),(h=new t.GeodesicLine(this,n,a,e,o)).GenSetDistance(s,r),h},i.Geodesic.prototype.InverseLine=function(n,e,s,r,o){var h,p,l;return o||(o=i.STANDARD|i.DISTANCE_IN),h=this.InverseInt(n,e,s,r,i.ARC),l=a.atan2d(h.salp1,h.calp1),o&i.OUT_MASK&i.DISTANCE_IN&&(o|=i.DISTANCE),(p=new t.GeodesicLine(this,n,e,l,o,h.salp1,h.calp1)).SetArc(h.vals.a12),p},i.Geodesic.prototype.Polygon=function(i){return new n.PolygonArea(this,i)},i.WGS84=new i.Geodesic(e.WGS84.a,e.WGS84.f)}(e.Geodesic,e.GeodesicLine,e.PolygonArea,e.Math,e.Constants),function(i,t,n){t.GeodesicLine=function(t,a,e,s,r,o,h){var p,l,c,u,_,f;r||(r=i.STANDARD|i.DISTANCE_IN),this.a=t.a,this.f=t.f,this._b=t._b,this._c2=t._c2,this._f1=t._f1,this.caps=r|i.LATITUDE|i.AZIMUTH|i.LONG_UNROLL,this.lat1=n.LatFix(a),this.lon1=e,void 0===o||void 0===h?(this.azi1=n.AngNormalize(s),p=n.sincosd(n.AngRound(this.azi1)),this.salp1=p.s,this.calp1=p.c):(this.azi1=s,this.salp1=o,this.calp1=h),p=n.sincosd(n.AngRound(this.lat1)),c=this._f1*p.s,l=p.c,c/=p=n.hypot(c,l),l/=p,l=Math.max(i.tiny_,l),this._dn1=Math.sqrt(1+t._ep2*n.sq(c)),this._salp0=this.salp1*l,this._calp0=n.hypot(this.calp1,this.salp1*c),this._ssig1=c,this._somg1=this._salp0*c,this._csig1=this._comg1=0!==c||0!==this.calp1?l*this.calp1:1,p=n.hypot(this._ssig1,this._csig1),this._ssig1/=p,this._csig1/=p,this._k2=n.sq(this._calp0)*t._ep2,u=this._k2/(2*(1+Math.sqrt(1+this._k2))+this._k2),this.caps&i.CAP_C1&&(this._A1m1=i.A1m1f(u),this._C1a=new Array(i.nC1_+1),i.C1f(u,this._C1a),this._B11=i.SinCosSeries(!0,this._ssig1,this._csig1,this._C1a),_=Math.sin(this._B11),f=Math.cos(this._B11),this._stau1=this._ssig1*f+this._csig1*_,this._ctau1=this._csig1*f-this._ssig1*_),this.caps&i.CAP_C1p&&(this._C1pa=new Array(i.nC1p_+1),i.C1pf(u,this._C1pa)),this.caps&i.CAP_C2&&(this._A2m1=i.A2m1f(u),this._C2a=new Array(i.nC2_+1),i.C2f(u,this._C2a),this._B21=i.SinCosSeries(!0,this._ssig1,this._csig1,this._C2a)),this.caps&i.CAP_C3&&(this._C3a=new Array(i.nC3_),t.C3f(u,this._C3a),this._A3c=-this.f*this._salp0*t.A3f(u),this._B31=i.SinCosSeries(!0,this._ssig1,this._csig1,this._C3a)),this.caps&i.CAP_C4&&(this._C4a=new Array(i.nC4_),t.C4f(u,this._C4a),this._A4=n.sq(this.a)*this._calp0*this._salp0*t._e2,this._B41=i.SinCosSeries(!1,this._ssig1,this._csig1,this._C4a)),this.a13=this.s13=NaN},t.GeodesicLine.prototype.GenPosition=function(t,a,e){var s,r,o,h,p,l,c,u,_,f,m,d,y,v,g,A,C,S,x,M,E,b,w,N,I,G,k={};return e?e===i.LONG_UNROLL&&(e|=i.STANDARD):e=i.STANDARD,e&=this.caps&i.OUT_MASK,k.lat1=this.lat1,k.azi1=this.azi1,k.lon1=e&i.LONG_UNROLL?this.lon1:n.AngNormalize(this.lon1),t?k.a12=a:k.s12=a,t||this.caps&i.DISTANCE_IN&i.OUT_MASK?(h=0,p=0,t?(s=a*n.degree,r=(w=n.sincosd(a)).s,o=w.c):(u=a/(this._b*(1+this._A1m1)),_=Math.sin(u),f=Math.cos(u),s=u-((h=-i.SinCosSeries(!0,this._stau1*f+this._ctau1*_,this._ctau1*f-this._stau1*_,this._C1pa))-this._B11),r=Math.sin(s),o=Math.cos(s),Math.abs(this.f)>.01&&(l=this._ssig1*o+this._csig1*r,c=this._csig1*o-this._ssig1*r,h=i.SinCosSeries(!0,l,c,this._C1a),s-=((1+this._A1m1)*(s+(h-this._B11))-a/this._b)/Math.sqrt(1+this._k2*n.sq(l)),r=Math.sin(s),o=Math.cos(s))),l=this._ssig1*o+this._csig1*r,c=this._csig1*o-this._ssig1*r,x=Math.sqrt(1+this._k2*n.sq(l)),e&(i.DISTANCE|i.REDUCEDLENGTH|i.GEODESICSCALE)&&((t||Math.abs(this.f)>.01)&&(h=i.SinCosSeries(!0,l,c,this._C1a)),p=(1+this._A1m1)*(h-this._B11)),y=this._calp0*l,0===(v=n.hypot(this._salp0,this._calp0*c))&&(v=c=i.tiny_),C=this._salp0,S=this._calp0*c,t&&e&i.DISTANCE&&(k.s12=this._b*((1+this._A1m1)*s+p)),e&i.LONGITUDE&&(g=this._salp0*l,A=c,d=n.copysign(1,this._salp0),m=((e&i.LONG_UNROLL?d*(s-(Math.atan2(l,c)-Math.atan2(this._ssig1,this._csig1))+(Math.atan2(d*g,A)-Math.atan2(d*this._somg1,this._comg1))):Math.atan2(g*this._comg1-A*this._somg1,A*this._comg1+g*this._somg1))+this._A3c*(s+(i.SinCosSeries(!0,l,c,this._C3a)-this._B31)))/n.degree,k.lon2=e&i.LONG_UNROLL?this.lon1+m:n.AngNormalize(n.AngNormalize(this.lon1)+n.AngNormalize(m))),e&i.LATITUDE&&(k.lat2=n.atan2d(y,this._f1*v)),e&i.AZIMUTH&&(k.azi2=n.atan2d(C,S)),e&(i.REDUCEDLENGTH|i.GEODESICSCALE)&&(M=i.SinCosSeries(!0,l,c,this._C2a),E=(1+this._A2m1)*(M-this._B21),b=(this._A1m1-this._A2m1)*s+(p-E),e&i.REDUCEDLENGTH&&(k.m12=this._b*(x*(this._csig1*l)-this._dn1*(this._ssig1*c)-this._csig1*c*b)),e&i.GEODESICSCALE&&(w=this._k2*(l-this._ssig1)*(l+this._ssig1)/(this._dn1+x),k.M12=o+(w*l-c*b)*this._ssig1/this._dn1,k.M21=o-(w*this._ssig1-this._csig1*b)*l/x)),e&i.AREA&&(N=i.SinCosSeries(!1,l,c,this._C4a),0===this._calp0||0===this._salp0?(I=C*this.calp1-S*this.salp1,G=S*this.calp1+C*this.salp1):(I=this._calp0*this._salp0*(o<=0?this._csig1*(1-o)+r*this._ssig1:r*(this._csig1*r/(1+o)+this._ssig1)),G=n.sq(this._salp0)+n.sq(this._calp0)*this._csig1*c),k.S12=this._c2*Math.atan2(I,G)+this._A4*(N-this._B41)),t||(k.a12=s/n.degree),k):(k.a12=NaN,k)},t.GeodesicLine.prototype.Position=function(i,t){return this.GenPosition(!1,i,t)},t.GeodesicLine.prototype.ArcPosition=function(i,t){return this.GenPosition(!0,i,t)},t.GeodesicLine.prototype.GenSetDistance=function(i,t){i?this.SetArc(t):this.SetDistance(t)},t.GeodesicLine.prototype.SetDistance=function(t){var n;this.s13=t,n=this.GenPosition(!1,this.s13,i.ARC),this.a13=0+n.a12},t.GeodesicLine.prototype.SetArc=function(t){var n;this.a13=t,n=this.GenPosition(!0,this.a13,i.DISTANCE),this.s13=0+n.s12}}(e.Geodesic,e.GeodesicLine,e.Math),function(i,t,n,a){var e,s,r,o;e=function(i,t){var a=n.AngDiff(i,t).d;return i=n.AngNormalize(i),t=n.AngNormalize(t),a>0&&(i<0&&t>=0||i>0&&0===t)?1:a<0&&i>=0&&t<0?-1:0},s=function(i,t){return(0<=(t%=720)&&t<360||t<-360?0:1)-(0<=(i%=720)&&i<360||i<-360?0:1)},r=function(i,t,n,a,e){return i.Remainder(t),1&n&&i.Add((i.Sum()<0?1:-1)*t/2),a||i.Negate(),e?i.Sum()>t/2?i.Add(-t):i.Sum()<=-t/2&&i.Add(+t):i.Sum()>=t?i.Add(-t):i.Sum()<0&&i.Add(+t),0+i.Sum()},o=function(i,t,a,e,s){return i=n.remainder(i,t),1&a&&(i+=(i<0?1:-1)*t/2),e||(i*=-1),s?i>t/2?i-=t:i<=-t/2&&(i+=t):i>=t?i-=t:i<0&&(i+=t),0+i},i.PolygonArea=function(i,n){this._geod=i,this.a=this._geod.a,this.f=this._geod.f,this._area0=4*Math.PI*i._c2,this.polyline=n||!1,this._mask=t.LATITUDE|t.LONGITUDE|t.DISTANCE|(this.polyline?t.NONE:t.AREA|t.LONG_UNROLL),this.polyline||(this._areasum=new a.Accumulator(0)),this._perimetersum=new a.Accumulator(0),this.Clear()},i.PolygonArea.prototype.Clear=function(){this.num=0,this._crossings=0,this.polyline||this._areasum.Set(0),this._perimetersum.Set(0),this._lat0=this._lon0=this.lat=this.lon=NaN},i.PolygonArea.prototype.AddPoint=function(i,t){var n;0===this.num?(this._lat0=this.lat=i,this._lon0=this.lon=t):(n=this._geod.Inverse(this.lat,this.lon,i,t,this._mask),this._perimetersum.Add(n.s12),this.polyline||(this._areasum.Add(n.S12),this._crossings+=e(this.lon,t)),this.lat=i,this.lon=t),++this.num},i.PolygonArea.prototype.AddEdge=function(i,t){var n;this.num&&(n=this._geod.Direct(this.lat,this.lon,i,t,this._mask),this._perimetersum.Add(t),this.polyline||(this._areasum.Add(n.S12),this._crossings+=s(this.lon,n.lon2)),this.lat=n.lat2,this.lon=n.lon2),++this.num},i.PolygonArea.prototype.Compute=function(i,t){var n,s,o={number:this.num};return this.num<2?(o.perimeter=0,this.polyline||(o.area=0),o):this.polyline?(o.perimeter=this._perimetersum.Sum(),o):(n=this._geod.Inverse(this.lat,this.lon,this._lat0,this._lon0,this._mask),o.perimeter=this._perimetersum.Sum(n.s12),(s=new a.Accumulator(this._areasum)).Add(n.S12),o.area=r(s,this._area0,this._crossings+e(this.lon,this._lon0),i,t),o)},i.PolygonArea.prototype.TestPoint=function(i,t,n,a){var s,r,h,p,l={number:this.num+1};if(0===this.num)return l.perimeter=0,this.polyline||(l.area=0),l;for(l.perimeter=this._perimetersum.Sum(),r=this.polyline?0:this._areasum.Sum(),h=this._crossings,p=0;p<(this.polyline?1:2);++p)s=this._geod.Inverse(0===p?this.lat:i,0===p?this.lon:t,0!==p?this._lat0:i,0!==p?this._lon0:t,this._mask),l.perimeter+=s.s12,this.polyline||(r+=s.S12,h+=e(0===p?this.lon:t,0!==p?this._lon0:t));return this.polyline||(l.area=o(r,this._area0,h,n,a)),l},i.PolygonArea.prototype.TestEdge=function(i,t,n,a){var r,h,p,l={number:this.num?this.num+1:0};return 0===this.num||(l.perimeter=this._perimetersum.Sum()+t,this.polyline||(h=this._areasum.Sum(),p=this._crossings,h+=(r=this._geod.Direct(this.lat,this.lon,i,t,this._mask)).S12,p+=s(this.lon,r.lon2),p+=e(r.lon2,this._lon0),r=this._geod.Inverse(r.lat2,r.lon2,this._lat0,this._lon0,this._mask),l.perimeter+=r.s12,h+=r.S12,l.area=o(h,this._area0,p,n,a))),l}}(e.PolygonArea,e.Geodesic,e.Math,e.Accumulator),a=e,i.exports?i.exports=a:window.geodesic=a}(q);var U=q.exports,z=t({__proto__:null,default:n(U)},[U]);const j=globalThis;"undefined"==typeof window&&(j.window=j.window||{},j.window.document||(j.window.document={}));const W=j.window.modules=j.window.modules||{};W.mproj=x,W.flatbush=b,W.kdbush=P,W["geographiclib-geodesic"]=z;let B=Promise.resolve();self.onmessage=t=>{const n=t.data;n&&"run"===n.type&&(B=B.then(()=>async function(t){try{const{id:n,cmd:a,commands:e,packed:s,inputFiles:r}=t;let o;if(e&&e.length>0)o=e;else{if("string"!=typeof a)throw new Error("worker: request missing both cmd and commands");o=i.internal.parseCommands(a)}if(r)for(const i of o)i.options&&(i.options.input=r);const h=(await i.internal.restoreSessionData(s)).datasets;if(!h||0===h.length)throw new Error("worker: packed payload contained no datasets");const p=new i.internal.Job;p.catalog.addDataset(h[0]);const l=await new Promise((t,n)=>{i.internal.runParsedCommands(o,p,(i,a)=>{i?n(i):t(a)})}),c=l.catalog.getDefaultTargets(),u=c.length>0?c[0].dataset:h[0],_=await i.internal.exportDatasetsToPack([u],{compact:!1});self.postMessage({id:n,type:"ok",packed:_})}catch(i){const n=i?.message??String(i);self.postMessage({id:t.id,type:"error",message:n})}}(n)).catch(()=>{}))}}(mapshaper);
package/dist/emap.css ADDED
@@ -0,0 +1,157 @@
1
+ /* Navigation Controls */
2
+ .emap-ctrl-group {
3
+ background-color: #fff;
4
+ border-radius: 4px;
5
+ box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
6
+ overflow: hidden;
7
+ display: flex;
8
+ flex-direction: column;
9
+ }
10
+
11
+ .emap-ctrl-group button {
12
+ width: 30px;
13
+ height: 30px;
14
+ display: block;
15
+ padding: 0;
16
+ outline: none;
17
+ border: 0;
18
+ box-sizing: border-box;
19
+ background-color: transparent;
20
+ cursor: pointer;
21
+ border-bottom: 1px solid #ddd;
22
+ }
23
+
24
+ .emap-ctrl-group button:last-child {
25
+ border-bottom: 0;
26
+ }
27
+
28
+ .emap-ctrl-group button:hover {
29
+ background-color: #f2f2f2;
30
+ }
31
+
32
+ .emap-ctrl-icon {
33
+ font-size: 18px;
34
+ line-height: 30px;
35
+ }
36
+
37
+ /* Status Controls */
38
+ .emap-status-ctrl {
39
+ background-color: rgba(255, 255, 255, 0.8);
40
+ padding: 2px 8px;
41
+ border-radius: 4px;
42
+ font-size: 12px;
43
+ color: #333;
44
+ pointer-events: auto;
45
+ white-space: nowrap;
46
+ display: flex;
47
+ align-items: center;
48
+ }
49
+
50
+ .emap-align-left {
51
+ align-self: flex-start;
52
+ }
53
+
54
+ .emap-align-right {
55
+ align-self: flex-end;
56
+ }
57
+
58
+ .emap-align-center {
59
+ align-self: center;
60
+ }
61
+
62
+ .emap-status-zoom,
63
+ .emap-status-mousepos,
64
+ .emap-status-epsg {
65
+ display: inline-block;
66
+ margin-right: 15px;
67
+ }
68
+
69
+ .emap-status-epsg {
70
+ margin-right: 0;
71
+ }
72
+
73
+ /* Basemap Controls */
74
+ .emap-basemap-ctrl {
75
+ background-color: #fff;
76
+ border-radius: 4px;
77
+ box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
78
+ overflow: hidden;
79
+ display: flex;
80
+ flex-direction: row;
81
+ gap: 1px;
82
+ }
83
+
84
+ .emap-basemap-btn {
85
+ padding: 6px 10px;
86
+ background-color: #fff;
87
+ border: 0;
88
+ cursor: pointer;
89
+ font-size: 11px;
90
+ transition: background-color 0.15s ease;
91
+ }
92
+
93
+ .emap-basemap-btn:hover {
94
+ background-color: #f2f2f2;
95
+ }
96
+
97
+ .emap-basemap-btn.active {
98
+ background-color: #0078ff;
99
+ color: #fff;
100
+ }
101
+
102
+ /* Basemap container needs MapLibre CSS import */
103
+ .emap-basemap {
104
+ pointer-events: none;
105
+ }
106
+
107
+ /* Vertex Edit Controls */
108
+ .emap-ctrl-edit {
109
+ font-size: 14px;
110
+ }
111
+
112
+ .emap-ctrl-edit.active {
113
+ background-color: #0078ff !important;
114
+ color: #fff;
115
+ }
116
+
117
+ .emap-edit-active {
118
+ cursor: crosshair;
119
+ }
120
+
121
+ /* Draw Feature Controls */
122
+ .emap-ctrl-draw {
123
+ font-size: 14px;
124
+ }
125
+
126
+ .emap-ctrl-draw.active {
127
+ background-color: #0078ff !important;
128
+ color: #fff;
129
+ }
130
+
131
+ .emap-draw-active {
132
+ cursor: crosshair;
133
+ }
134
+
135
+ /* Box Select rubber-band rectangle. Defaults are inlined by BoxSelectControl
136
+ for option override; this rule lets users restyle via CSS too. */
137
+ .emap-box-select {
138
+ z-index: 5;
139
+ }
140
+
141
+ /* Simplify control */
142
+ .emap-ctrl-simplify-wrap {
143
+ position: relative;
144
+ }
145
+ .emap-ctrl-simplify {
146
+ font-size: 16px;
147
+ }
148
+ .emap-ctrl-simplify.active {
149
+ background-color: #0078ff !important;
150
+ color: #fff;
151
+ }
152
+
153
+ /* Lasso Select free-form polygon overlay. Same z-index as BoxSelect — they
154
+ are mutually exclusive (only one is enabled at a time). */
155
+ .emap-lasso-select {
156
+ z-index: 5;
157
+ }