diff --git a/.gitignore b/.gitignore index b546cef..b97f623 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,8 @@ legacy.config # other *~ +# Ignore git mergetool backup files +*.orig + +# Ignore Vim swap files +*.swp diff --git a/.gitmodules b/.gitmodules index 9cf7b11..99bca1b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,6 +4,3 @@ [submodule "src/submods/metrics-lib"] path = src/submods/metrics-lib url = https://git.torproject.org/metrics-lib.git -[submodule "src/main/resources/web/rs"] - path = src/main/resources/web/rs - url = https://git.torproject.org/atlas.git diff --git a/LICENCE.flags b/LICENCE.flags new file mode 100644 index 0000000..95f81c4 --- /dev/null +++ b/LICENCE.flags @@ -0,0 +1,35 @@ +These flags are built from the sources at: + + https://github.com/gosquared/flags + +To update these flags: + + * apt install pngcrush imagemagick icnsutils rename + * git clone https://github.com/gosquared/flags + * cd flags; make + * cp flags/flags-iso/shiny/16/* $RELAYSEARCH/img/cc/ + * cd $RELAYSEARCH/img/cc/; rename 'y/A-Z/a-z/' *.png; cp _unknown.png xz.png + +The flags are made available under the MIT license: + +----------------------------------------------------------------------- +Copyright (c) 2017 Go Squared Ltd. http://www.gosquared.com/ + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +----------------------------------------------------------------------- diff --git a/LICENSE.relaysearch b/LICENSE.relaysearch new file mode 100644 index 0000000..a36fe06 --- /dev/null +++ b/LICENSE.relaysearch @@ -0,0 +1,23 @@ +Copyright (c) 2012, 2013, Arturo Filastò +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/build.xml b/build.xml index acf7f51..77ab672 100644 --- a/build.xml +++ b/build.xml @@ -182,7 +182,7 @@ includes="logback.xml" /> + includes="css/* images/** js/** fonts/** templates/**" /> diff --git a/src/main/java/org/torproject/metrics/web/RelaySearchServlet.java b/src/main/java/org/torproject/metrics/web/RelaySearchServlet.java index 9a235ce..a9c0dcb 100644 --- a/src/main/java/org/torproject/metrics/web/RelaySearchServlet.java +++ b/src/main/java/org/torproject/metrics/web/RelaySearchServlet.java @@ -23,7 +23,7 @@ public class RelaySearchServlet extends AnyServlet { HttpServletResponse response) throws IOException, ServletException { /* Forward the request to the JSP that does all the hard work. */ - String[] additionalStylesheets = {"/rs/css/atlas.css"}; + String[] additionalStylesheets = {"/css/atlas.css"}; request.setAttribute("additionalStylesheets", additionalStylesheets); request.setAttribute("categories", this.categories); request.getRequestDispatcher("WEB-INF/rs.jsp").forward(request, diff --git a/src/main/resources/web/css/atlas.css b/src/main/resources/web/css/atlas.css new file mode 100644 index 0000000..2a2064f --- /dev/null +++ b/src/main/resources/web/css/atlas.css @@ -0,0 +1,103 @@ +.progress { + width: 50%; + margin: 100px auto; + display: none; +} + +.progress-bar { + width: 100%; +} + +#secondary-search { + display: none; +} + +a.alleged { + color: #FE9F30; +} + +.flags { + padding: 2px; +} + +span.flags { + display: inline-block; +} + +.tooltip-inner { + text-align:left; +} + +#outdatedData > div { + position:relative; + top:60px; +} + +.circle { + display: inline-block; + vertical-align: middle; + background: #999999; + width: 10px; + height: 10px; + -moz-border-radius: 50%; + -webkit-border-radius: 50%; + border-radius: 50%; +} + +.circle-online { + background: #25d918; +} + +.circle-offline { + background: #ff1515; +} + +#home-search, #home-aggregate-search, #home-advanced-search, #map-radio-buttons { + padding: 0; + margin: 0 0 10px 0; + width: 100%; +} + +td, th { + padding: 2px!important; +} + +.form-control { + max-width: none !important; +} + +.flags-cell { + width: 150px; +} + +/* Allow displaying long contact info (#23868) */ +dd { + -ms-word-break: break-all; + word-break: break-all; + + /* Non standard for webkit */ + word-break: break-word; + + -webkit-hyphens: auto; + -moz-hyphens: auto; + hyphens: auto; +} + +/* Override style.css from metrics.torproject.org style */ +td a { + padding-right: 0 !important; +} + +.day-spinner { + width: 120px; + display: inline; +} + +label.radio-inline { + display: inline !important; + width: auto; +} + +#no-svg { + display: none; +} diff --git a/src/main/resources/web/images/atlas.png b/src/main/resources/web/images/atlas.png new file mode 100644 index 0000000..b070884 Binary files /dev/null and b/src/main/resources/web/images/atlas.png differ diff --git a/src/main/resources/web/images/atlas.xcf b/src/main/resources/web/images/atlas.xcf new file mode 100644 index 0000000..9dd0824 Binary files /dev/null and b/src/main/resources/web/images/atlas.xcf differ diff --git a/src/main/resources/web/images/cc/_abkhazia.png b/src/main/resources/web/images/cc/_abkhazia.png new file mode 100644 index 0000000..ad5d130 Binary files /dev/null and b/src/main/resources/web/images/cc/_abkhazia.png differ diff --git a/src/main/resources/web/images/cc/_basque-country.png b/src/main/resources/web/images/cc/_basque-country.png new file mode 100644 index 0000000..616a65a Binary files /dev/null and b/src/main/resources/web/images/cc/_basque-country.png differ diff --git a/src/main/resources/web/images/cc/_british-antarctic-territory.png b/src/main/resources/web/images/cc/_british-antarctic-territory.png new file mode 100644 index 0000000..114bcba Binary files /dev/null and b/src/main/resources/web/images/cc/_british-antarctic-territory.png differ diff --git a/src/main/resources/web/images/cc/_commonwealth.png b/src/main/resources/web/images/cc/_commonwealth.png new file mode 100644 index 0000000..2cb8848 Binary files /dev/null and b/src/main/resources/web/images/cc/_commonwealth.png differ diff --git a/src/main/resources/web/images/cc/_england.png b/src/main/resources/web/images/cc/_england.png new file mode 100644 index 0000000..87d6ded Binary files /dev/null and b/src/main/resources/web/images/cc/_england.png differ diff --git a/src/main/resources/web/images/cc/_gosquared.png b/src/main/resources/web/images/cc/_gosquared.png new file mode 100644 index 0000000..87fa676 Binary files /dev/null and b/src/main/resources/web/images/cc/_gosquared.png differ diff --git a/src/main/resources/web/images/cc/_kosovo.png b/src/main/resources/web/images/cc/_kosovo.png new file mode 100644 index 0000000..e143b3a Binary files /dev/null and b/src/main/resources/web/images/cc/_kosovo.png differ diff --git a/src/main/resources/web/images/cc/_mars.png b/src/main/resources/web/images/cc/_mars.png new file mode 100644 index 0000000..7a472a7 Binary files /dev/null and b/src/main/resources/web/images/cc/_mars.png differ diff --git a/src/main/resources/web/images/cc/_nagorno-karabakh.png b/src/main/resources/web/images/cc/_nagorno-karabakh.png new file mode 100644 index 0000000..53d7a93 Binary files /dev/null and b/src/main/resources/web/images/cc/_nagorno-karabakh.png differ diff --git a/src/main/resources/web/images/cc/_nato.png b/src/main/resources/web/images/cc/_nato.png new file mode 100644 index 0000000..f52845a Binary files /dev/null and b/src/main/resources/web/images/cc/_nato.png differ diff --git a/src/main/resources/web/images/cc/_northern-cyprus.png b/src/main/resources/web/images/cc/_northern-cyprus.png new file mode 100644 index 0000000..37e5cf6 Binary files /dev/null and b/src/main/resources/web/images/cc/_northern-cyprus.png differ diff --git a/src/main/resources/web/images/cc/_olympics.png b/src/main/resources/web/images/cc/_olympics.png new file mode 100644 index 0000000..c4a764c Binary files /dev/null and b/src/main/resources/web/images/cc/_olympics.png differ diff --git a/src/main/resources/web/images/cc/_red-cross.png b/src/main/resources/web/images/cc/_red-cross.png new file mode 100644 index 0000000..c672f88 Binary files /dev/null and b/src/main/resources/web/images/cc/_red-cross.png differ diff --git a/src/main/resources/web/images/cc/_scotland.png b/src/main/resources/web/images/cc/_scotland.png new file mode 100644 index 0000000..3cccbb8 Binary files /dev/null and b/src/main/resources/web/images/cc/_scotland.png differ diff --git a/src/main/resources/web/images/cc/_somaliland.png b/src/main/resources/web/images/cc/_somaliland.png new file mode 100644 index 0000000..46ce0d5 Binary files /dev/null and b/src/main/resources/web/images/cc/_somaliland.png differ diff --git a/src/main/resources/web/images/cc/_south-ossetia.png b/src/main/resources/web/images/cc/_south-ossetia.png new file mode 100644 index 0000000..c076713 Binary files /dev/null and b/src/main/resources/web/images/cc/_south-ossetia.png differ diff --git a/src/main/resources/web/images/cc/_united-nations.png b/src/main/resources/web/images/cc/_united-nations.png new file mode 100644 index 0000000..732eef9 Binary files /dev/null and b/src/main/resources/web/images/cc/_united-nations.png differ diff --git a/src/main/resources/web/images/cc/_unknown.png b/src/main/resources/web/images/cc/_unknown.png new file mode 100644 index 0000000..44a6fc9 Binary files /dev/null and b/src/main/resources/web/images/cc/_unknown.png differ diff --git a/src/main/resources/web/images/cc/_wales.png b/src/main/resources/web/images/cc/_wales.png new file mode 100644 index 0000000..aad4ede Binary files /dev/null and b/src/main/resources/web/images/cc/_wales.png differ diff --git a/src/main/resources/web/images/cc/ad.png b/src/main/resources/web/images/cc/ad.png new file mode 100644 index 0000000..c330f5c Binary files /dev/null and b/src/main/resources/web/images/cc/ad.png differ diff --git a/src/main/resources/web/images/cc/ae.png b/src/main/resources/web/images/cc/ae.png new file mode 100644 index 0000000..351b5c5 Binary files /dev/null and b/src/main/resources/web/images/cc/ae.png differ diff --git a/src/main/resources/web/images/cc/af.png b/src/main/resources/web/images/cc/af.png new file mode 100644 index 0000000..1ae8674 Binary files /dev/null and b/src/main/resources/web/images/cc/af.png differ diff --git a/src/main/resources/web/images/cc/ag.png b/src/main/resources/web/images/cc/ag.png new file mode 100644 index 0000000..0f22d74 Binary files /dev/null and b/src/main/resources/web/images/cc/ag.png differ diff --git a/src/main/resources/web/images/cc/ai.png b/src/main/resources/web/images/cc/ai.png new file mode 100644 index 0000000..3a45b36 Binary files /dev/null and b/src/main/resources/web/images/cc/ai.png differ diff --git a/src/main/resources/web/images/cc/al.png b/src/main/resources/web/images/cc/al.png new file mode 100644 index 0000000..49d01e8 Binary files /dev/null and b/src/main/resources/web/images/cc/al.png differ diff --git a/src/main/resources/web/images/cc/am.png b/src/main/resources/web/images/cc/am.png new file mode 100644 index 0000000..6255e2e Binary files /dev/null and b/src/main/resources/web/images/cc/am.png differ diff --git a/src/main/resources/web/images/cc/an.png b/src/main/resources/web/images/cc/an.png new file mode 100644 index 0000000..0fc1c3b Binary files /dev/null and b/src/main/resources/web/images/cc/an.png differ diff --git a/src/main/resources/web/images/cc/ao.png b/src/main/resources/web/images/cc/ao.png new file mode 100644 index 0000000..f98f37b Binary files /dev/null and b/src/main/resources/web/images/cc/ao.png differ diff --git a/src/main/resources/web/images/cc/aq.png b/src/main/resources/web/images/cc/aq.png new file mode 100644 index 0000000..a502638 Binary files /dev/null and b/src/main/resources/web/images/cc/aq.png differ diff --git a/src/main/resources/web/images/cc/ar.png b/src/main/resources/web/images/cc/ar.png new file mode 100644 index 0000000..e1fa97b Binary files /dev/null and b/src/main/resources/web/images/cc/ar.png differ diff --git a/src/main/resources/web/images/cc/as.png b/src/main/resources/web/images/cc/as.png new file mode 100644 index 0000000..6b79481 Binary files /dev/null and b/src/main/resources/web/images/cc/as.png differ diff --git a/src/main/resources/web/images/cc/at.png b/src/main/resources/web/images/cc/at.png new file mode 100644 index 0000000..794bd2f Binary files /dev/null and b/src/main/resources/web/images/cc/at.png differ diff --git a/src/main/resources/web/images/cc/au.png b/src/main/resources/web/images/cc/au.png new file mode 100644 index 0000000..11f4d1c Binary files /dev/null and b/src/main/resources/web/images/cc/au.png differ diff --git a/src/main/resources/web/images/cc/aw.png b/src/main/resources/web/images/cc/aw.png new file mode 100644 index 0000000..98e7300 Binary files /dev/null and b/src/main/resources/web/images/cc/aw.png differ diff --git a/src/main/resources/web/images/cc/ax.png b/src/main/resources/web/images/cc/ax.png new file mode 100644 index 0000000..19312e9 Binary files /dev/null and b/src/main/resources/web/images/cc/ax.png differ diff --git a/src/main/resources/web/images/cc/az.png b/src/main/resources/web/images/cc/az.png new file mode 100644 index 0000000..9e2c6ba Binary files /dev/null and b/src/main/resources/web/images/cc/az.png differ diff --git a/src/main/resources/web/images/cc/ba.png b/src/main/resources/web/images/cc/ba.png new file mode 100644 index 0000000..24b609d Binary files /dev/null and b/src/main/resources/web/images/cc/ba.png differ diff --git a/src/main/resources/web/images/cc/bb.png b/src/main/resources/web/images/cc/bb.png new file mode 100644 index 0000000..d69f58d Binary files /dev/null and b/src/main/resources/web/images/cc/bb.png differ diff --git a/src/main/resources/web/images/cc/bd.png b/src/main/resources/web/images/cc/bd.png new file mode 100644 index 0000000..266eff8 Binary files /dev/null and b/src/main/resources/web/images/cc/bd.png differ diff --git a/src/main/resources/web/images/cc/be.png b/src/main/resources/web/images/cc/be.png new file mode 100644 index 0000000..e3ea806 Binary files /dev/null and b/src/main/resources/web/images/cc/be.png differ diff --git a/src/main/resources/web/images/cc/bf.png b/src/main/resources/web/images/cc/bf.png new file mode 100644 index 0000000..20c6c2e Binary files /dev/null and b/src/main/resources/web/images/cc/bf.png differ diff --git a/src/main/resources/web/images/cc/bg.png b/src/main/resources/web/images/cc/bg.png new file mode 100644 index 0000000..775550c Binary files /dev/null and b/src/main/resources/web/images/cc/bg.png differ diff --git a/src/main/resources/web/images/cc/bh.png b/src/main/resources/web/images/cc/bh.png new file mode 100644 index 0000000..b3eb851 Binary files /dev/null and b/src/main/resources/web/images/cc/bh.png differ diff --git a/src/main/resources/web/images/cc/bi.png b/src/main/resources/web/images/cc/bi.png new file mode 100644 index 0000000..394a829 Binary files /dev/null and b/src/main/resources/web/images/cc/bi.png differ diff --git a/src/main/resources/web/images/cc/bj.png b/src/main/resources/web/images/cc/bj.png new file mode 100644 index 0000000..d8842e3 Binary files /dev/null and b/src/main/resources/web/images/cc/bj.png differ diff --git a/src/main/resources/web/images/cc/bl.png b/src/main/resources/web/images/cc/bl.png new file mode 100644 index 0000000..67a69ec Binary files /dev/null and b/src/main/resources/web/images/cc/bl.png differ diff --git a/src/main/resources/web/images/cc/bm.png b/src/main/resources/web/images/cc/bm.png new file mode 100644 index 0000000..132e990 Binary files /dev/null and b/src/main/resources/web/images/cc/bm.png differ diff --git a/src/main/resources/web/images/cc/bn.png b/src/main/resources/web/images/cc/bn.png new file mode 100644 index 0000000..62882e8 Binary files /dev/null and b/src/main/resources/web/images/cc/bn.png differ diff --git a/src/main/resources/web/images/cc/bo.png b/src/main/resources/web/images/cc/bo.png new file mode 100644 index 0000000..7f4186b Binary files /dev/null and b/src/main/resources/web/images/cc/bo.png differ diff --git a/src/main/resources/web/images/cc/br.png b/src/main/resources/web/images/cc/br.png new file mode 100644 index 0000000..6bb4378 Binary files /dev/null and b/src/main/resources/web/images/cc/br.png differ diff --git a/src/main/resources/web/images/cc/bs.png b/src/main/resources/web/images/cc/bs.png new file mode 100644 index 0000000..6a08b9d Binary files /dev/null and b/src/main/resources/web/images/cc/bs.png differ diff --git a/src/main/resources/web/images/cc/bt.png b/src/main/resources/web/images/cc/bt.png new file mode 100644 index 0000000..fe1df29 Binary files /dev/null and b/src/main/resources/web/images/cc/bt.png differ diff --git a/src/main/resources/web/images/cc/bv.png b/src/main/resources/web/images/cc/bv.png new file mode 100644 index 0000000..160b6b5 Binary files /dev/null and b/src/main/resources/web/images/cc/bv.png differ diff --git a/src/main/resources/web/images/cc/bw.png b/src/main/resources/web/images/cc/bw.png new file mode 100644 index 0000000..b4a502b Binary files /dev/null and b/src/main/resources/web/images/cc/bw.png differ diff --git a/src/main/resources/web/images/cc/by.png b/src/main/resources/web/images/cc/by.png new file mode 100644 index 0000000..55b61e8 Binary files /dev/null and b/src/main/resources/web/images/cc/by.png differ diff --git a/src/main/resources/web/images/cc/bz.png b/src/main/resources/web/images/cc/bz.png new file mode 100644 index 0000000..fd97f8a Binary files /dev/null and b/src/main/resources/web/images/cc/bz.png differ diff --git a/src/main/resources/web/images/cc/ca.png b/src/main/resources/web/images/cc/ca.png new file mode 100644 index 0000000..06671e7 Binary files /dev/null and b/src/main/resources/web/images/cc/ca.png differ diff --git a/src/main/resources/web/images/cc/cc.png b/src/main/resources/web/images/cc/cc.png new file mode 100644 index 0000000..c10a918 Binary files /dev/null and b/src/main/resources/web/images/cc/cc.png differ diff --git a/src/main/resources/web/images/cc/cd.png b/src/main/resources/web/images/cc/cd.png new file mode 100644 index 0000000..724caf2 Binary files /dev/null and b/src/main/resources/web/images/cc/cd.png differ diff --git a/src/main/resources/web/images/cc/cf.png b/src/main/resources/web/images/cc/cf.png new file mode 100644 index 0000000..32cb360 Binary files /dev/null and b/src/main/resources/web/images/cc/cf.png differ diff --git a/src/main/resources/web/images/cc/cg.png b/src/main/resources/web/images/cc/cg.png new file mode 100644 index 0000000..7a1bc57 Binary files /dev/null and b/src/main/resources/web/images/cc/cg.png differ diff --git a/src/main/resources/web/images/cc/ch.png b/src/main/resources/web/images/cc/ch.png new file mode 100644 index 0000000..de304f3 Binary files /dev/null and b/src/main/resources/web/images/cc/ch.png differ diff --git a/src/main/resources/web/images/cc/ci.png b/src/main/resources/web/images/cc/ci.png new file mode 100644 index 0000000..47251d3 Binary files /dev/null and b/src/main/resources/web/images/cc/ci.png differ diff --git a/src/main/resources/web/images/cc/ck.png b/src/main/resources/web/images/cc/ck.png new file mode 100644 index 0000000..d74d1f4 Binary files /dev/null and b/src/main/resources/web/images/cc/ck.png differ diff --git a/src/main/resources/web/images/cc/cl.png b/src/main/resources/web/images/cc/cl.png new file mode 100644 index 0000000..57bf33e Binary files /dev/null and b/src/main/resources/web/images/cc/cl.png differ diff --git a/src/main/resources/web/images/cc/cm.png b/src/main/resources/web/images/cc/cm.png new file mode 100644 index 0000000..1d13837 Binary files /dev/null and b/src/main/resources/web/images/cc/cm.png differ diff --git a/src/main/resources/web/images/cc/cn.png b/src/main/resources/web/images/cc/cn.png new file mode 100644 index 0000000..5ac1e13 Binary files /dev/null and b/src/main/resources/web/images/cc/cn.png differ diff --git a/src/main/resources/web/images/cc/co.png b/src/main/resources/web/images/cc/co.png new file mode 100644 index 0000000..85db6f6 Binary files /dev/null and b/src/main/resources/web/images/cc/co.png differ diff --git a/src/main/resources/web/images/cc/cr.png b/src/main/resources/web/images/cc/cr.png new file mode 100644 index 0000000..17eeb62 Binary files /dev/null and b/src/main/resources/web/images/cc/cr.png differ diff --git a/src/main/resources/web/images/cc/cs.png b/src/main/resources/web/images/cc/cs.png new file mode 100644 index 0000000..8254790 Binary files /dev/null and b/src/main/resources/web/images/cc/cs.png differ diff --git a/src/main/resources/web/images/cc/ct.png b/src/main/resources/web/images/cc/ct.png new file mode 100644 index 0000000..1e8b74b Binary files /dev/null and b/src/main/resources/web/images/cc/ct.png differ diff --git a/src/main/resources/web/images/cc/cu.png b/src/main/resources/web/images/cc/cu.png new file mode 100644 index 0000000..cd80f6d Binary files /dev/null and b/src/main/resources/web/images/cc/cu.png differ diff --git a/src/main/resources/web/images/cc/cv.png b/src/main/resources/web/images/cc/cv.png new file mode 100644 index 0000000..4fac2a3 Binary files /dev/null and b/src/main/resources/web/images/cc/cv.png differ diff --git a/src/main/resources/web/images/cc/cw.png b/src/main/resources/web/images/cc/cw.png new file mode 100644 index 0000000..340cee8 Binary files /dev/null and b/src/main/resources/web/images/cc/cw.png differ diff --git a/src/main/resources/web/images/cc/cx.png b/src/main/resources/web/images/cc/cx.png new file mode 100644 index 0000000..79452bb Binary files /dev/null and b/src/main/resources/web/images/cc/cx.png differ diff --git a/src/main/resources/web/images/cc/cy.png b/src/main/resources/web/images/cc/cy.png new file mode 100644 index 0000000..664cd5c Binary files /dev/null and b/src/main/resources/web/images/cc/cy.png differ diff --git a/src/main/resources/web/images/cc/cz.png b/src/main/resources/web/images/cc/cz.png new file mode 100644 index 0000000..196f74e Binary files /dev/null and b/src/main/resources/web/images/cc/cz.png differ diff --git a/src/main/resources/web/images/cc/de.png b/src/main/resources/web/images/cc/de.png new file mode 100644 index 0000000..8458c23 Binary files /dev/null and b/src/main/resources/web/images/cc/de.png differ diff --git a/src/main/resources/web/images/cc/dj.png b/src/main/resources/web/images/cc/dj.png new file mode 100644 index 0000000..78660a1 Binary files /dev/null and b/src/main/resources/web/images/cc/dj.png differ diff --git a/src/main/resources/web/images/cc/dk.png b/src/main/resources/web/images/cc/dk.png new file mode 100644 index 0000000..a81768c Binary files /dev/null and b/src/main/resources/web/images/cc/dk.png differ diff --git a/src/main/resources/web/images/cc/dm.png b/src/main/resources/web/images/cc/dm.png new file mode 100644 index 0000000..a9d8f89 Binary files /dev/null and b/src/main/resources/web/images/cc/dm.png differ diff --git a/src/main/resources/web/images/cc/do.png b/src/main/resources/web/images/cc/do.png new file mode 100644 index 0000000..4b2c207 Binary files /dev/null and b/src/main/resources/web/images/cc/do.png differ diff --git a/src/main/resources/web/images/cc/dz.png b/src/main/resources/web/images/cc/dz.png new file mode 100644 index 0000000..705dbba Binary files /dev/null and b/src/main/resources/web/images/cc/dz.png differ diff --git a/src/main/resources/web/images/cc/ec.png b/src/main/resources/web/images/cc/ec.png new file mode 100644 index 0000000..234cf8c Binary files /dev/null and b/src/main/resources/web/images/cc/ec.png differ diff --git a/src/main/resources/web/images/cc/ee.png b/src/main/resources/web/images/cc/ee.png new file mode 100644 index 0000000..c8f3721 Binary files /dev/null and b/src/main/resources/web/images/cc/ee.png differ diff --git a/src/main/resources/web/images/cc/eg.png b/src/main/resources/web/images/cc/eg.png new file mode 100644 index 0000000..96c93ed Binary files /dev/null and b/src/main/resources/web/images/cc/eg.png differ diff --git a/src/main/resources/web/images/cc/eh.png b/src/main/resources/web/images/cc/eh.png new file mode 100644 index 0000000..621dc79 Binary files /dev/null and b/src/main/resources/web/images/cc/eh.png differ diff --git a/src/main/resources/web/images/cc/er.png b/src/main/resources/web/images/cc/er.png new file mode 100644 index 0000000..3530096 Binary files /dev/null and b/src/main/resources/web/images/cc/er.png differ diff --git a/src/main/resources/web/images/cc/es.png b/src/main/resources/web/images/cc/es.png new file mode 100644 index 0000000..c915d36 Binary files /dev/null and b/src/main/resources/web/images/cc/es.png differ diff --git a/src/main/resources/web/images/cc/et.png b/src/main/resources/web/images/cc/et.png new file mode 100644 index 0000000..f743e64 Binary files /dev/null and b/src/main/resources/web/images/cc/et.png differ diff --git a/src/main/resources/web/images/cc/eu.png b/src/main/resources/web/images/cc/eu.png new file mode 100644 index 0000000..70378d6 Binary files /dev/null and b/src/main/resources/web/images/cc/eu.png differ diff --git a/src/main/resources/web/images/cc/fi.png b/src/main/resources/web/images/cc/fi.png new file mode 100644 index 0000000..627ad2e Binary files /dev/null and b/src/main/resources/web/images/cc/fi.png differ diff --git a/src/main/resources/web/images/cc/fj.png b/src/main/resources/web/images/cc/fj.png new file mode 100644 index 0000000..a90ae00 Binary files /dev/null and b/src/main/resources/web/images/cc/fj.png differ diff --git a/src/main/resources/web/images/cc/fk.png b/src/main/resources/web/images/cc/fk.png new file mode 100644 index 0000000..da821cc Binary files /dev/null and b/src/main/resources/web/images/cc/fk.png differ diff --git a/src/main/resources/web/images/cc/fm.png b/src/main/resources/web/images/cc/fm.png new file mode 100644 index 0000000..5d73677 Binary files /dev/null and b/src/main/resources/web/images/cc/fm.png differ diff --git a/src/main/resources/web/images/cc/fo.png b/src/main/resources/web/images/cc/fo.png new file mode 100644 index 0000000..4264083 Binary files /dev/null and b/src/main/resources/web/images/cc/fo.png differ diff --git a/src/main/resources/web/images/cc/fr.png b/src/main/resources/web/images/cc/fr.png new file mode 100644 index 0000000..a76cb1a Binary files /dev/null and b/src/main/resources/web/images/cc/fr.png differ diff --git a/src/main/resources/web/images/cc/ga.png b/src/main/resources/web/images/cc/ga.png new file mode 100644 index 0000000..3e8abf1 Binary files /dev/null and b/src/main/resources/web/images/cc/ga.png differ diff --git a/src/main/resources/web/images/cc/gb.png b/src/main/resources/web/images/cc/gb.png new file mode 100644 index 0000000..99a3cc3 Binary files /dev/null and b/src/main/resources/web/images/cc/gb.png differ diff --git a/src/main/resources/web/images/cc/gd.png b/src/main/resources/web/images/cc/gd.png new file mode 100644 index 0000000..e07a669 Binary files /dev/null and b/src/main/resources/web/images/cc/gd.png differ diff --git a/src/main/resources/web/images/cc/ge.png b/src/main/resources/web/images/cc/ge.png new file mode 100644 index 0000000..086967e Binary files /dev/null and b/src/main/resources/web/images/cc/ge.png differ diff --git a/src/main/resources/web/images/cc/gf.png b/src/main/resources/web/images/cc/gf.png new file mode 100644 index 0000000..8332c4e Binary files /dev/null and b/src/main/resources/web/images/cc/gf.png differ diff --git a/src/main/resources/web/images/cc/gg.png b/src/main/resources/web/images/cc/gg.png new file mode 100644 index 0000000..f2c1b71 Binary files /dev/null and b/src/main/resources/web/images/cc/gg.png differ diff --git a/src/main/resources/web/images/cc/gh.png b/src/main/resources/web/images/cc/gh.png new file mode 100644 index 0000000..b07163d Binary files /dev/null and b/src/main/resources/web/images/cc/gh.png differ diff --git a/src/main/resources/web/images/cc/gi.png b/src/main/resources/web/images/cc/gi.png new file mode 100644 index 0000000..7a79f3e Binary files /dev/null and b/src/main/resources/web/images/cc/gi.png differ diff --git a/src/main/resources/web/images/cc/gl.png b/src/main/resources/web/images/cc/gl.png new file mode 100644 index 0000000..a2ed3e9 Binary files /dev/null and b/src/main/resources/web/images/cc/gl.png differ diff --git a/src/main/resources/web/images/cc/gm.png b/src/main/resources/web/images/cc/gm.png new file mode 100644 index 0000000..b056657 Binary files /dev/null and b/src/main/resources/web/images/cc/gm.png differ diff --git a/src/main/resources/web/images/cc/gn.png b/src/main/resources/web/images/cc/gn.png new file mode 100644 index 0000000..243d8f0 Binary files /dev/null and b/src/main/resources/web/images/cc/gn.png differ diff --git a/src/main/resources/web/images/cc/gp.png b/src/main/resources/web/images/cc/gp.png new file mode 100644 index 0000000..dbb086d Binary files /dev/null and b/src/main/resources/web/images/cc/gp.png differ diff --git a/src/main/resources/web/images/cc/gq.png b/src/main/resources/web/images/cc/gq.png new file mode 100644 index 0000000..9168ef2 Binary files /dev/null and b/src/main/resources/web/images/cc/gq.png differ diff --git a/src/main/resources/web/images/cc/gr.png b/src/main/resources/web/images/cc/gr.png new file mode 100644 index 0000000..9321a1e Binary files /dev/null and b/src/main/resources/web/images/cc/gr.png differ diff --git a/src/main/resources/web/images/cc/gs.png b/src/main/resources/web/images/cc/gs.png new file mode 100644 index 0000000..fbd3fd7 Binary files /dev/null and b/src/main/resources/web/images/cc/gs.png differ diff --git a/src/main/resources/web/images/cc/gt.png b/src/main/resources/web/images/cc/gt.png new file mode 100644 index 0000000..dacd490 Binary files /dev/null and b/src/main/resources/web/images/cc/gt.png differ diff --git a/src/main/resources/web/images/cc/gu.png b/src/main/resources/web/images/cc/gu.png new file mode 100644 index 0000000..b0ac67b Binary files /dev/null and b/src/main/resources/web/images/cc/gu.png differ diff --git a/src/main/resources/web/images/cc/gw.png b/src/main/resources/web/images/cc/gw.png new file mode 100644 index 0000000..c1e5415 Binary files /dev/null and b/src/main/resources/web/images/cc/gw.png differ diff --git a/src/main/resources/web/images/cc/gy.png b/src/main/resources/web/images/cc/gy.png new file mode 100644 index 0000000..63d5148 Binary files /dev/null and b/src/main/resources/web/images/cc/gy.png differ diff --git a/src/main/resources/web/images/cc/hk.png b/src/main/resources/web/images/cc/hk.png new file mode 100644 index 0000000..a4cf92c Binary files /dev/null and b/src/main/resources/web/images/cc/hk.png differ diff --git a/src/main/resources/web/images/cc/hm.png b/src/main/resources/web/images/cc/hm.png new file mode 100644 index 0000000..a01389a Binary files /dev/null and b/src/main/resources/web/images/cc/hm.png differ diff --git a/src/main/resources/web/images/cc/hn.png b/src/main/resources/web/images/cc/hn.png new file mode 100644 index 0000000..51f6eae Binary files /dev/null and b/src/main/resources/web/images/cc/hn.png differ diff --git a/src/main/resources/web/images/cc/hr.png b/src/main/resources/web/images/cc/hr.png new file mode 100644 index 0000000..6e86e8d Binary files /dev/null and b/src/main/resources/web/images/cc/hr.png differ diff --git a/src/main/resources/web/images/cc/ht.png b/src/main/resources/web/images/cc/ht.png new file mode 100644 index 0000000..3522053 Binary files /dev/null and b/src/main/resources/web/images/cc/ht.png differ diff --git a/src/main/resources/web/images/cc/hu.png b/src/main/resources/web/images/cc/hu.png new file mode 100644 index 0000000..ae5c6c9 Binary files /dev/null and b/src/main/resources/web/images/cc/hu.png differ diff --git a/src/main/resources/web/images/cc/ic.png b/src/main/resources/web/images/cc/ic.png new file mode 100644 index 0000000..c1d8d46 Binary files /dev/null and b/src/main/resources/web/images/cc/ic.png differ diff --git a/src/main/resources/web/images/cc/id.png b/src/main/resources/web/images/cc/id.png new file mode 100644 index 0000000..0640473 Binary files /dev/null and b/src/main/resources/web/images/cc/id.png differ diff --git a/src/main/resources/web/images/cc/ie.png b/src/main/resources/web/images/cc/ie.png new file mode 100644 index 0000000..c970d38 Binary files /dev/null and b/src/main/resources/web/images/cc/ie.png differ diff --git a/src/main/resources/web/images/cc/il.png b/src/main/resources/web/images/cc/il.png new file mode 100644 index 0000000..2f58f14 Binary files /dev/null and b/src/main/resources/web/images/cc/il.png differ diff --git a/src/main/resources/web/images/cc/im.png b/src/main/resources/web/images/cc/im.png new file mode 100644 index 0000000..c4a6b6a Binary files /dev/null and b/src/main/resources/web/images/cc/im.png differ diff --git a/src/main/resources/web/images/cc/in.png b/src/main/resources/web/images/cc/in.png new file mode 100644 index 0000000..109281e Binary files /dev/null and b/src/main/resources/web/images/cc/in.png differ diff --git a/src/main/resources/web/images/cc/io.png b/src/main/resources/web/images/cc/io.png new file mode 100644 index 0000000..3e74b6a Binary files /dev/null and b/src/main/resources/web/images/cc/io.png differ diff --git a/src/main/resources/web/images/cc/iq.png b/src/main/resources/web/images/cc/iq.png new file mode 100644 index 0000000..f352c63 Binary files /dev/null and b/src/main/resources/web/images/cc/iq.png differ diff --git a/src/main/resources/web/images/cc/ir.png b/src/main/resources/web/images/cc/ir.png new file mode 100644 index 0000000..6fcdfa3 Binary files /dev/null and b/src/main/resources/web/images/cc/ir.png differ diff --git a/src/main/resources/web/images/cc/is.png b/src/main/resources/web/images/cc/is.png new file mode 100644 index 0000000..d535f7f Binary files /dev/null and b/src/main/resources/web/images/cc/is.png differ diff --git a/src/main/resources/web/images/cc/it.png b/src/main/resources/web/images/cc/it.png new file mode 100644 index 0000000..a45445a Binary files /dev/null and b/src/main/resources/web/images/cc/it.png differ diff --git a/src/main/resources/web/images/cc/je.png b/src/main/resources/web/images/cc/je.png new file mode 100644 index 0000000..2e04508 Binary files /dev/null and b/src/main/resources/web/images/cc/je.png differ diff --git a/src/main/resources/web/images/cc/jm.png b/src/main/resources/web/images/cc/jm.png new file mode 100644 index 0000000..6d93858 Binary files /dev/null and b/src/main/resources/web/images/cc/jm.png differ diff --git a/src/main/resources/web/images/cc/jo.png b/src/main/resources/web/images/cc/jo.png new file mode 100644 index 0000000..8e11b7b Binary files /dev/null and b/src/main/resources/web/images/cc/jo.png differ diff --git a/src/main/resources/web/images/cc/jp.png b/src/main/resources/web/images/cc/jp.png new file mode 100644 index 0000000..a742140 Binary files /dev/null and b/src/main/resources/web/images/cc/jp.png differ diff --git a/src/main/resources/web/images/cc/ke.png b/src/main/resources/web/images/cc/ke.png new file mode 100644 index 0000000..e1ac097 Binary files /dev/null and b/src/main/resources/web/images/cc/ke.png differ diff --git a/src/main/resources/web/images/cc/kg.png b/src/main/resources/web/images/cc/kg.png new file mode 100644 index 0000000..70f5d3b Binary files /dev/null and b/src/main/resources/web/images/cc/kg.png differ diff --git a/src/main/resources/web/images/cc/kh.png b/src/main/resources/web/images/cc/kh.png new file mode 100644 index 0000000..4690096 Binary files /dev/null and b/src/main/resources/web/images/cc/kh.png differ diff --git a/src/main/resources/web/images/cc/ki.png b/src/main/resources/web/images/cc/ki.png new file mode 100644 index 0000000..df235ed Binary files /dev/null and b/src/main/resources/web/images/cc/ki.png differ diff --git a/src/main/resources/web/images/cc/km.png b/src/main/resources/web/images/cc/km.png new file mode 100644 index 0000000..310d53a Binary files /dev/null and b/src/main/resources/web/images/cc/km.png differ diff --git a/src/main/resources/web/images/cc/kn.png b/src/main/resources/web/images/cc/kn.png new file mode 100644 index 0000000..bb3efe4 Binary files /dev/null and b/src/main/resources/web/images/cc/kn.png differ diff --git a/src/main/resources/web/images/cc/kp.png b/src/main/resources/web/images/cc/kp.png new file mode 100644 index 0000000..9716adc Binary files /dev/null and b/src/main/resources/web/images/cc/kp.png differ diff --git a/src/main/resources/web/images/cc/kr.png b/src/main/resources/web/images/cc/kr.png new file mode 100644 index 0000000..f055313 Binary files /dev/null and b/src/main/resources/web/images/cc/kr.png differ diff --git a/src/main/resources/web/images/cc/kw.png b/src/main/resources/web/images/cc/kw.png new file mode 100644 index 0000000..af0191c Binary files /dev/null and b/src/main/resources/web/images/cc/kw.png differ diff --git a/src/main/resources/web/images/cc/ky.png b/src/main/resources/web/images/cc/ky.png new file mode 100644 index 0000000..c787eb0 Binary files /dev/null and b/src/main/resources/web/images/cc/ky.png differ diff --git a/src/main/resources/web/images/cc/kz.png b/src/main/resources/web/images/cc/kz.png new file mode 100644 index 0000000..061b7c4 Binary files /dev/null and b/src/main/resources/web/images/cc/kz.png differ diff --git a/src/main/resources/web/images/cc/la.png b/src/main/resources/web/images/cc/la.png new file mode 100644 index 0000000..d68c937 Binary files /dev/null and b/src/main/resources/web/images/cc/la.png differ diff --git a/src/main/resources/web/images/cc/lb.png b/src/main/resources/web/images/cc/lb.png new file mode 100644 index 0000000..627a3aa Binary files /dev/null and b/src/main/resources/web/images/cc/lb.png differ diff --git a/src/main/resources/web/images/cc/lc.png b/src/main/resources/web/images/cc/lc.png new file mode 100644 index 0000000..672aea9 Binary files /dev/null and b/src/main/resources/web/images/cc/lc.png differ diff --git a/src/main/resources/web/images/cc/li.png b/src/main/resources/web/images/cc/li.png new file mode 100644 index 0000000..f71507f Binary files /dev/null and b/src/main/resources/web/images/cc/li.png differ diff --git a/src/main/resources/web/images/cc/lk.png b/src/main/resources/web/images/cc/lk.png new file mode 100644 index 0000000..61887d2 Binary files /dev/null and b/src/main/resources/web/images/cc/lk.png differ diff --git a/src/main/resources/web/images/cc/lr.png b/src/main/resources/web/images/cc/lr.png new file mode 100644 index 0000000..4918491 Binary files /dev/null and b/src/main/resources/web/images/cc/lr.png differ diff --git a/src/main/resources/web/images/cc/ls.png b/src/main/resources/web/images/cc/ls.png new file mode 100644 index 0000000..c8a5493 Binary files /dev/null and b/src/main/resources/web/images/cc/ls.png differ diff --git a/src/main/resources/web/images/cc/lt.png b/src/main/resources/web/images/cc/lt.png new file mode 100644 index 0000000..51513de Binary files /dev/null and b/src/main/resources/web/images/cc/lt.png differ diff --git a/src/main/resources/web/images/cc/lu.png b/src/main/resources/web/images/cc/lu.png new file mode 100644 index 0000000..59b08cc Binary files /dev/null and b/src/main/resources/web/images/cc/lu.png differ diff --git a/src/main/resources/web/images/cc/lv.png b/src/main/resources/web/images/cc/lv.png new file mode 100644 index 0000000..c31180d Binary files /dev/null and b/src/main/resources/web/images/cc/lv.png differ diff --git a/src/main/resources/web/images/cc/ly.png b/src/main/resources/web/images/cc/ly.png new file mode 100644 index 0000000..8804e5a Binary files /dev/null and b/src/main/resources/web/images/cc/ly.png differ diff --git a/src/main/resources/web/images/cc/ma.png b/src/main/resources/web/images/cc/ma.png new file mode 100644 index 0000000..2012156 Binary files /dev/null and b/src/main/resources/web/images/cc/ma.png differ diff --git a/src/main/resources/web/images/cc/mc.png b/src/main/resources/web/images/cc/mc.png new file mode 100644 index 0000000..0640473 Binary files /dev/null and b/src/main/resources/web/images/cc/mc.png differ diff --git a/src/main/resources/web/images/cc/md.png b/src/main/resources/web/images/cc/md.png new file mode 100644 index 0000000..01353a3 Binary files /dev/null and b/src/main/resources/web/images/cc/md.png differ diff --git a/src/main/resources/web/images/cc/me.png b/src/main/resources/web/images/cc/me.png new file mode 100644 index 0000000..9e275ec Binary files /dev/null and b/src/main/resources/web/images/cc/me.png differ diff --git a/src/main/resources/web/images/cc/mf.png b/src/main/resources/web/images/cc/mf.png new file mode 100644 index 0000000..4aafb1f Binary files /dev/null and b/src/main/resources/web/images/cc/mf.png differ diff --git a/src/main/resources/web/images/cc/mg.png b/src/main/resources/web/images/cc/mg.png new file mode 100644 index 0000000..c55a2f4 Binary files /dev/null and b/src/main/resources/web/images/cc/mg.png differ diff --git a/src/main/resources/web/images/cc/mh.png b/src/main/resources/web/images/cc/mh.png new file mode 100644 index 0000000..ed647dc Binary files /dev/null and b/src/main/resources/web/images/cc/mh.png differ diff --git a/src/main/resources/web/images/cc/mk.png b/src/main/resources/web/images/cc/mk.png new file mode 100644 index 0000000..b8d15b8 Binary files /dev/null and b/src/main/resources/web/images/cc/mk.png differ diff --git a/src/main/resources/web/images/cc/ml.png b/src/main/resources/web/images/cc/ml.png new file mode 100644 index 0000000..40b696d Binary files /dev/null and b/src/main/resources/web/images/cc/ml.png differ diff --git a/src/main/resources/web/images/cc/mm.png b/src/main/resources/web/images/cc/mm.png new file mode 100644 index 0000000..547b1d0 Binary files /dev/null and b/src/main/resources/web/images/cc/mm.png differ diff --git a/src/main/resources/web/images/cc/mn.png b/src/main/resources/web/images/cc/mn.png new file mode 100644 index 0000000..9c56174 Binary files /dev/null and b/src/main/resources/web/images/cc/mn.png differ diff --git a/src/main/resources/web/images/cc/mo.png b/src/main/resources/web/images/cc/mo.png new file mode 100644 index 0000000..108c88c Binary files /dev/null and b/src/main/resources/web/images/cc/mo.png differ diff --git a/src/main/resources/web/images/cc/mp.png b/src/main/resources/web/images/cc/mp.png new file mode 100644 index 0000000..0a80d84 Binary files /dev/null and b/src/main/resources/web/images/cc/mp.png differ diff --git a/src/main/resources/web/images/cc/mq.png b/src/main/resources/web/images/cc/mq.png new file mode 100644 index 0000000..5d78e64 Binary files /dev/null and b/src/main/resources/web/images/cc/mq.png differ diff --git a/src/main/resources/web/images/cc/mr.png b/src/main/resources/web/images/cc/mr.png new file mode 100644 index 0000000..1b4b7f4 Binary files /dev/null and b/src/main/resources/web/images/cc/mr.png differ diff --git a/src/main/resources/web/images/cc/ms.png b/src/main/resources/web/images/cc/ms.png new file mode 100644 index 0000000..1689556 Binary files /dev/null and b/src/main/resources/web/images/cc/ms.png differ diff --git a/src/main/resources/web/images/cc/mt.png b/src/main/resources/web/images/cc/mt.png new file mode 100644 index 0000000..e77d8b2 Binary files /dev/null and b/src/main/resources/web/images/cc/mt.png differ diff --git a/src/main/resources/web/images/cc/mu.png b/src/main/resources/web/images/cc/mu.png new file mode 100644 index 0000000..c5352f3 Binary files /dev/null and b/src/main/resources/web/images/cc/mu.png differ diff --git a/src/main/resources/web/images/cc/mv.png b/src/main/resources/web/images/cc/mv.png new file mode 100644 index 0000000..94d63cf Binary files /dev/null and b/src/main/resources/web/images/cc/mv.png differ diff --git a/src/main/resources/web/images/cc/mw.png b/src/main/resources/web/images/cc/mw.png new file mode 100644 index 0000000..838b135 Binary files /dev/null and b/src/main/resources/web/images/cc/mw.png differ diff --git a/src/main/resources/web/images/cc/mx.png b/src/main/resources/web/images/cc/mx.png new file mode 100644 index 0000000..d05b37a Binary files /dev/null and b/src/main/resources/web/images/cc/mx.png differ diff --git a/src/main/resources/web/images/cc/my.png b/src/main/resources/web/images/cc/my.png new file mode 100644 index 0000000..bea68c4 Binary files /dev/null and b/src/main/resources/web/images/cc/my.png differ diff --git a/src/main/resources/web/images/cc/mz.png b/src/main/resources/web/images/cc/mz.png new file mode 100644 index 0000000..a919a16 Binary files /dev/null and b/src/main/resources/web/images/cc/mz.png differ diff --git a/src/main/resources/web/images/cc/na.png b/src/main/resources/web/images/cc/na.png new file mode 100644 index 0000000..9a584c3 Binary files /dev/null and b/src/main/resources/web/images/cc/na.png differ diff --git a/src/main/resources/web/images/cc/nc.png b/src/main/resources/web/images/cc/nc.png new file mode 100644 index 0000000..ad88c0c Binary files /dev/null and b/src/main/resources/web/images/cc/nc.png differ diff --git a/src/main/resources/web/images/cc/ne.png b/src/main/resources/web/images/cc/ne.png new file mode 100644 index 0000000..258b692 Binary files /dev/null and b/src/main/resources/web/images/cc/ne.png differ diff --git a/src/main/resources/web/images/cc/nf.png b/src/main/resources/web/images/cc/nf.png new file mode 100644 index 0000000..33df782 Binary files /dev/null and b/src/main/resources/web/images/cc/nf.png differ diff --git a/src/main/resources/web/images/cc/ng.png b/src/main/resources/web/images/cc/ng.png new file mode 100644 index 0000000..4265810 Binary files /dev/null and b/src/main/resources/web/images/cc/ng.png differ diff --git a/src/main/resources/web/images/cc/ni.png b/src/main/resources/web/images/cc/ni.png new file mode 100644 index 0000000..6699ec0 Binary files /dev/null and b/src/main/resources/web/images/cc/ni.png differ diff --git a/src/main/resources/web/images/cc/nl.png b/src/main/resources/web/images/cc/nl.png new file mode 100644 index 0000000..e1ede53 Binary files /dev/null and b/src/main/resources/web/images/cc/nl.png differ diff --git a/src/main/resources/web/images/cc/no.png b/src/main/resources/web/images/cc/no.png new file mode 100644 index 0000000..9f79424 Binary files /dev/null and b/src/main/resources/web/images/cc/no.png differ diff --git a/src/main/resources/web/images/cc/np.png b/src/main/resources/web/images/cc/np.png new file mode 100644 index 0000000..23c3c6d Binary files /dev/null and b/src/main/resources/web/images/cc/np.png differ diff --git a/src/main/resources/web/images/cc/nr.png b/src/main/resources/web/images/cc/nr.png new file mode 100644 index 0000000..008629e Binary files /dev/null and b/src/main/resources/web/images/cc/nr.png differ diff --git a/src/main/resources/web/images/cc/nu.png b/src/main/resources/web/images/cc/nu.png new file mode 100644 index 0000000..354a67c Binary files /dev/null and b/src/main/resources/web/images/cc/nu.png differ diff --git a/src/main/resources/web/images/cc/nz.png b/src/main/resources/web/images/cc/nz.png new file mode 100644 index 0000000..c44ca79 Binary files /dev/null and b/src/main/resources/web/images/cc/nz.png differ diff --git a/src/main/resources/web/images/cc/om.png b/src/main/resources/web/images/cc/om.png new file mode 100644 index 0000000..0e12bf9 Binary files /dev/null and b/src/main/resources/web/images/cc/om.png differ diff --git a/src/main/resources/web/images/cc/pa.png b/src/main/resources/web/images/cc/pa.png new file mode 100644 index 0000000..87f2a4b Binary files /dev/null and b/src/main/resources/web/images/cc/pa.png differ diff --git a/src/main/resources/web/images/cc/pe.png b/src/main/resources/web/images/cc/pe.png new file mode 100644 index 0000000..792a9ce Binary files /dev/null and b/src/main/resources/web/images/cc/pe.png differ diff --git a/src/main/resources/web/images/cc/pf.png b/src/main/resources/web/images/cc/pf.png new file mode 100644 index 0000000..5f9a5a5 Binary files /dev/null and b/src/main/resources/web/images/cc/pf.png differ diff --git a/src/main/resources/web/images/cc/pg.png b/src/main/resources/web/images/cc/pg.png new file mode 100644 index 0000000..8fb2eb6 Binary files /dev/null and b/src/main/resources/web/images/cc/pg.png differ diff --git a/src/main/resources/web/images/cc/ph.png b/src/main/resources/web/images/cc/ph.png new file mode 100644 index 0000000..fd9d8fb Binary files /dev/null and b/src/main/resources/web/images/cc/ph.png differ diff --git a/src/main/resources/web/images/cc/pk.png b/src/main/resources/web/images/cc/pk.png new file mode 100644 index 0000000..819eea2 Binary files /dev/null and b/src/main/resources/web/images/cc/pk.png differ diff --git a/src/main/resources/web/images/cc/pl.png b/src/main/resources/web/images/cc/pl.png new file mode 100644 index 0000000..c3855d3 Binary files /dev/null and b/src/main/resources/web/images/cc/pl.png differ diff --git a/src/main/resources/web/images/cc/pm.png b/src/main/resources/web/images/cc/pm.png new file mode 100644 index 0000000..ba91d2c Binary files /dev/null and b/src/main/resources/web/images/cc/pm.png differ diff --git a/src/main/resources/web/images/cc/pn.png b/src/main/resources/web/images/cc/pn.png new file mode 100644 index 0000000..18b8e38 Binary files /dev/null and b/src/main/resources/web/images/cc/pn.png differ diff --git a/src/main/resources/web/images/cc/pr.png b/src/main/resources/web/images/cc/pr.png new file mode 100644 index 0000000..bac124c Binary files /dev/null and b/src/main/resources/web/images/cc/pr.png differ diff --git a/src/main/resources/web/images/cc/ps.png b/src/main/resources/web/images/cc/ps.png new file mode 100644 index 0000000..7145cbe Binary files /dev/null and b/src/main/resources/web/images/cc/ps.png differ diff --git a/src/main/resources/web/images/cc/pt.png b/src/main/resources/web/images/cc/pt.png new file mode 100644 index 0000000..009ccc5 Binary files /dev/null and b/src/main/resources/web/images/cc/pt.png differ diff --git a/src/main/resources/web/images/cc/pw.png b/src/main/resources/web/images/cc/pw.png new file mode 100644 index 0000000..2fd3f7b Binary files /dev/null and b/src/main/resources/web/images/cc/pw.png differ diff --git a/src/main/resources/web/images/cc/py.png b/src/main/resources/web/images/cc/py.png new file mode 100644 index 0000000..ab391d7 Binary files /dev/null and b/src/main/resources/web/images/cc/py.png differ diff --git a/src/main/resources/web/images/cc/qa.png b/src/main/resources/web/images/cc/qa.png new file mode 100644 index 0000000..995f281 Binary files /dev/null and b/src/main/resources/web/images/cc/qa.png differ diff --git a/src/main/resources/web/images/cc/re.png b/src/main/resources/web/images/cc/re.png new file mode 100644 index 0000000..a7ca8d0 Binary files /dev/null and b/src/main/resources/web/images/cc/re.png differ diff --git a/src/main/resources/web/images/cc/ro.png b/src/main/resources/web/images/cc/ro.png new file mode 100644 index 0000000..1f7d7e4 Binary files /dev/null and b/src/main/resources/web/images/cc/ro.png differ diff --git a/src/main/resources/web/images/cc/rs.png b/src/main/resources/web/images/cc/rs.png new file mode 100644 index 0000000..95b00cc Binary files /dev/null and b/src/main/resources/web/images/cc/rs.png differ diff --git a/src/main/resources/web/images/cc/ru.png b/src/main/resources/web/images/cc/ru.png new file mode 100644 index 0000000..0d74832 Binary files /dev/null and b/src/main/resources/web/images/cc/ru.png differ diff --git a/src/main/resources/web/images/cc/rw.png b/src/main/resources/web/images/cc/rw.png new file mode 100644 index 0000000..d1ac663 Binary files /dev/null and b/src/main/resources/web/images/cc/rw.png differ diff --git a/src/main/resources/web/images/cc/sa.png b/src/main/resources/web/images/cc/sa.png new file mode 100644 index 0000000..9e91d7f Binary files /dev/null and b/src/main/resources/web/images/cc/sa.png differ diff --git a/src/main/resources/web/images/cc/sb.png b/src/main/resources/web/images/cc/sb.png new file mode 100644 index 0000000..94a9ee2 Binary files /dev/null and b/src/main/resources/web/images/cc/sb.png differ diff --git a/src/main/resources/web/images/cc/sc.png b/src/main/resources/web/images/cc/sc.png new file mode 100644 index 0000000..0ff3930 Binary files /dev/null and b/src/main/resources/web/images/cc/sc.png differ diff --git a/src/main/resources/web/images/cc/sd.png b/src/main/resources/web/images/cc/sd.png new file mode 100644 index 0000000..41aa35e Binary files /dev/null and b/src/main/resources/web/images/cc/sd.png differ diff --git a/src/main/resources/web/images/cc/se.png b/src/main/resources/web/images/cc/se.png new file mode 100644 index 0000000..803b87b Binary files /dev/null and b/src/main/resources/web/images/cc/se.png differ diff --git a/src/main/resources/web/images/cc/sg.png b/src/main/resources/web/images/cc/sg.png new file mode 100644 index 0000000..24256ff Binary files /dev/null and b/src/main/resources/web/images/cc/sg.png differ diff --git a/src/main/resources/web/images/cc/sh.png b/src/main/resources/web/images/cc/sh.png new file mode 100644 index 0000000..020b335 Binary files /dev/null and b/src/main/resources/web/images/cc/sh.png differ diff --git a/src/main/resources/web/images/cc/si.png b/src/main/resources/web/images/cc/si.png new file mode 100644 index 0000000..5b257f2 Binary files /dev/null and b/src/main/resources/web/images/cc/si.png differ diff --git a/src/main/resources/web/images/cc/sj.png b/src/main/resources/web/images/cc/sj.png new file mode 100644 index 0000000..160b6b5 Binary files /dev/null and b/src/main/resources/web/images/cc/sj.png differ diff --git a/src/main/resources/web/images/cc/sk.png b/src/main/resources/web/images/cc/sk.png new file mode 100644 index 0000000..f82cf6a Binary files /dev/null and b/src/main/resources/web/images/cc/sk.png differ diff --git a/src/main/resources/web/images/cc/sl.png b/src/main/resources/web/images/cc/sl.png new file mode 100644 index 0000000..23695b3 Binary files /dev/null and b/src/main/resources/web/images/cc/sl.png differ diff --git a/src/main/resources/web/images/cc/sm.png b/src/main/resources/web/images/cc/sm.png new file mode 100644 index 0000000..64e5428 Binary files /dev/null and b/src/main/resources/web/images/cc/sm.png differ diff --git a/src/main/resources/web/images/cc/sn.png b/src/main/resources/web/images/cc/sn.png new file mode 100644 index 0000000..77a5d1d Binary files /dev/null and b/src/main/resources/web/images/cc/sn.png differ diff --git a/src/main/resources/web/images/cc/so.png b/src/main/resources/web/images/cc/so.png new file mode 100644 index 0000000..021f6ca Binary files /dev/null and b/src/main/resources/web/images/cc/so.png differ diff --git a/src/main/resources/web/images/cc/sr.png b/src/main/resources/web/images/cc/sr.png new file mode 100644 index 0000000..2b114de Binary files /dev/null and b/src/main/resources/web/images/cc/sr.png differ diff --git a/src/main/resources/web/images/cc/ss.png b/src/main/resources/web/images/cc/ss.png new file mode 100644 index 0000000..8c6616c Binary files /dev/null and b/src/main/resources/web/images/cc/ss.png differ diff --git a/src/main/resources/web/images/cc/st.png b/src/main/resources/web/images/cc/st.png new file mode 100644 index 0000000..7cb3ffa Binary files /dev/null and b/src/main/resources/web/images/cc/st.png differ diff --git a/src/main/resources/web/images/cc/sv.png b/src/main/resources/web/images/cc/sv.png new file mode 100644 index 0000000..c595d57 Binary files /dev/null and b/src/main/resources/web/images/cc/sv.png differ diff --git a/src/main/resources/web/images/cc/sx.png b/src/main/resources/web/images/cc/sx.png new file mode 100644 index 0000000..0f0b589 Binary files /dev/null and b/src/main/resources/web/images/cc/sx.png differ diff --git a/src/main/resources/web/images/cc/sy.png b/src/main/resources/web/images/cc/sy.png new file mode 100644 index 0000000..7a0e97c Binary files /dev/null and b/src/main/resources/web/images/cc/sy.png differ diff --git a/src/main/resources/web/images/cc/sz.png b/src/main/resources/web/images/cc/sz.png new file mode 100644 index 0000000..f3ce6c9 Binary files /dev/null and b/src/main/resources/web/images/cc/sz.png differ diff --git a/src/main/resources/web/images/cc/tc.png b/src/main/resources/web/images/cc/tc.png new file mode 100644 index 0000000..5edc6e9 Binary files /dev/null and b/src/main/resources/web/images/cc/tc.png differ diff --git a/src/main/resources/web/images/cc/td.png b/src/main/resources/web/images/cc/td.png new file mode 100644 index 0000000..2bbc6cb Binary files /dev/null and b/src/main/resources/web/images/cc/td.png differ diff --git a/src/main/resources/web/images/cc/tf.png b/src/main/resources/web/images/cc/tf.png new file mode 100644 index 0000000..ff14546 Binary files /dev/null and b/src/main/resources/web/images/cc/tf.png differ diff --git a/src/main/resources/web/images/cc/tg.png b/src/main/resources/web/images/cc/tg.png new file mode 100644 index 0000000..7779981 Binary files /dev/null and b/src/main/resources/web/images/cc/tg.png differ diff --git a/src/main/resources/web/images/cc/th.png b/src/main/resources/web/images/cc/th.png new file mode 100644 index 0000000..485709a Binary files /dev/null and b/src/main/resources/web/images/cc/th.png differ diff --git a/src/main/resources/web/images/cc/tj.png b/src/main/resources/web/images/cc/tj.png new file mode 100644 index 0000000..ab2805e Binary files /dev/null and b/src/main/resources/web/images/cc/tj.png differ diff --git a/src/main/resources/web/images/cc/tk.png b/src/main/resources/web/images/cc/tk.png new file mode 100644 index 0000000..8761ab1 Binary files /dev/null and b/src/main/resources/web/images/cc/tk.png differ diff --git a/src/main/resources/web/images/cc/tl.png b/src/main/resources/web/images/cc/tl.png new file mode 100644 index 0000000..cde8db6 Binary files /dev/null and b/src/main/resources/web/images/cc/tl.png differ diff --git a/src/main/resources/web/images/cc/tm.png b/src/main/resources/web/images/cc/tm.png new file mode 100644 index 0000000..3200f49 Binary files /dev/null and b/src/main/resources/web/images/cc/tm.png differ diff --git a/src/main/resources/web/images/cc/tn.png b/src/main/resources/web/images/cc/tn.png new file mode 100644 index 0000000..fd2b160 Binary files /dev/null and b/src/main/resources/web/images/cc/tn.png differ diff --git a/src/main/resources/web/images/cc/to.png b/src/main/resources/web/images/cc/to.png new file mode 100644 index 0000000..ea666d2 Binary files /dev/null and b/src/main/resources/web/images/cc/to.png differ diff --git a/src/main/resources/web/images/cc/tr.png b/src/main/resources/web/images/cc/tr.png new file mode 100644 index 0000000..f605875 Binary files /dev/null and b/src/main/resources/web/images/cc/tr.png differ diff --git a/src/main/resources/web/images/cc/tt.png b/src/main/resources/web/images/cc/tt.png new file mode 100644 index 0000000..7f3a033 Binary files /dev/null and b/src/main/resources/web/images/cc/tt.png differ diff --git a/src/main/resources/web/images/cc/tv.png b/src/main/resources/web/images/cc/tv.png new file mode 100644 index 0000000..5228a55 Binary files /dev/null and b/src/main/resources/web/images/cc/tv.png differ diff --git a/src/main/resources/web/images/cc/tw.png b/src/main/resources/web/images/cc/tw.png new file mode 100644 index 0000000..b0602f3 Binary files /dev/null and b/src/main/resources/web/images/cc/tw.png differ diff --git a/src/main/resources/web/images/cc/tz.png b/src/main/resources/web/images/cc/tz.png new file mode 100644 index 0000000..b3ed426 Binary files /dev/null and b/src/main/resources/web/images/cc/tz.png differ diff --git a/src/main/resources/web/images/cc/ua.png b/src/main/resources/web/images/cc/ua.png new file mode 100644 index 0000000..5c920e3 Binary files /dev/null and b/src/main/resources/web/images/cc/ua.png differ diff --git a/src/main/resources/web/images/cc/ug.png b/src/main/resources/web/images/cc/ug.png new file mode 100644 index 0000000..7b99c10 Binary files /dev/null and b/src/main/resources/web/images/cc/ug.png differ diff --git a/src/main/resources/web/images/cc/um.png b/src/main/resources/web/images/cc/um.png new file mode 100644 index 0000000..c1dd965 Binary files /dev/null and b/src/main/resources/web/images/cc/um.png differ diff --git a/src/main/resources/web/images/cc/us.png b/src/main/resources/web/images/cc/us.png new file mode 100644 index 0000000..5706b57 Binary files /dev/null and b/src/main/resources/web/images/cc/us.png differ diff --git a/src/main/resources/web/images/cc/uy.png b/src/main/resources/web/images/cc/uy.png new file mode 100644 index 0000000..bc2a97d Binary files /dev/null and b/src/main/resources/web/images/cc/uy.png differ diff --git a/src/main/resources/web/images/cc/uz.png b/src/main/resources/web/images/cc/uz.png new file mode 100644 index 0000000..b88e27e Binary files /dev/null and b/src/main/resources/web/images/cc/uz.png differ diff --git a/src/main/resources/web/images/cc/va.png b/src/main/resources/web/images/cc/va.png new file mode 100644 index 0000000..da76146 Binary files /dev/null and b/src/main/resources/web/images/cc/va.png differ diff --git a/src/main/resources/web/images/cc/vc.png b/src/main/resources/web/images/cc/vc.png new file mode 100644 index 0000000..da26903 Binary files /dev/null and b/src/main/resources/web/images/cc/vc.png differ diff --git a/src/main/resources/web/images/cc/ve.png b/src/main/resources/web/images/cc/ve.png new file mode 100644 index 0000000..904c7ee Binary files /dev/null and b/src/main/resources/web/images/cc/ve.png differ diff --git a/src/main/resources/web/images/cc/vg.png b/src/main/resources/web/images/cc/vg.png new file mode 100644 index 0000000..d337635 Binary files /dev/null and b/src/main/resources/web/images/cc/vg.png differ diff --git a/src/main/resources/web/images/cc/vi.png b/src/main/resources/web/images/cc/vi.png new file mode 100644 index 0000000..5fa3126 Binary files /dev/null and b/src/main/resources/web/images/cc/vi.png differ diff --git a/src/main/resources/web/images/cc/vn.png b/src/main/resources/web/images/cc/vn.png new file mode 100644 index 0000000..bffadb2 Binary files /dev/null and b/src/main/resources/web/images/cc/vn.png differ diff --git a/src/main/resources/web/images/cc/vu.png b/src/main/resources/web/images/cc/vu.png new file mode 100644 index 0000000..41ac003 Binary files /dev/null and b/src/main/resources/web/images/cc/vu.png differ diff --git a/src/main/resources/web/images/cc/wf.png b/src/main/resources/web/images/cc/wf.png new file mode 100644 index 0000000..79bf057 Binary files /dev/null and b/src/main/resources/web/images/cc/wf.png differ diff --git a/src/main/resources/web/images/cc/ws.png b/src/main/resources/web/images/cc/ws.png new file mode 100644 index 0000000..d0bdf9b Binary files /dev/null and b/src/main/resources/web/images/cc/ws.png differ diff --git a/src/main/resources/web/images/cc/xz.png b/src/main/resources/web/images/cc/xz.png new file mode 100644 index 0000000..44a6fc9 Binary files /dev/null and b/src/main/resources/web/images/cc/xz.png differ diff --git a/src/main/resources/web/images/cc/ye.png b/src/main/resources/web/images/cc/ye.png new file mode 100644 index 0000000..19a9e90 Binary files /dev/null and b/src/main/resources/web/images/cc/ye.png differ diff --git a/src/main/resources/web/images/cc/yt.png b/src/main/resources/web/images/cc/yt.png new file mode 100644 index 0000000..3665c0e Binary files /dev/null and b/src/main/resources/web/images/cc/yt.png differ diff --git a/src/main/resources/web/images/cc/za.png b/src/main/resources/web/images/cc/za.png new file mode 100644 index 0000000..2c2eff8 Binary files /dev/null and b/src/main/resources/web/images/cc/za.png differ diff --git a/src/main/resources/web/images/cc/zm.png b/src/main/resources/web/images/cc/zm.png new file mode 100644 index 0000000..a6e6eb5 Binary files /dev/null and b/src/main/resources/web/images/cc/zm.png differ diff --git a/src/main/resources/web/images/cc/zw.png b/src/main/resources/web/images/cc/zw.png new file mode 100644 index 0000000..cbf90eb Binary files /dev/null and b/src/main/resources/web/images/cc/zw.png differ diff --git a/src/main/resources/web/images/flags/authority.png b/src/main/resources/web/images/flags/authority.png new file mode 100644 index 0000000..ebd207b Binary files /dev/null and b/src/main/resources/web/images/flags/authority.png differ diff --git a/src/main/resources/web/images/flags/badexit.png b/src/main/resources/web/images/flags/badexit.png new file mode 100644 index 0000000..b5d8a73 Binary files /dev/null and b/src/main/resources/web/images/flags/badexit.png differ diff --git a/src/main/resources/web/images/flags/bridge.png b/src/main/resources/web/images/flags/bridge.png new file mode 100644 index 0000000..a0cbfa6 Binary files /dev/null and b/src/main/resources/web/images/flags/bridge.png differ diff --git a/src/main/resources/web/images/flags/country.png b/src/main/resources/web/images/flags/country.png new file mode 100644 index 0000000..9eda2b2 Binary files /dev/null and b/src/main/resources/web/images/flags/country.png differ diff --git a/src/main/resources/web/images/flags/directory.png b/src/main/resources/web/images/flags/directory.png new file mode 100644 index 0000000..c330702 Binary files /dev/null and b/src/main/resources/web/images/flags/directory.png differ diff --git a/src/main/resources/web/images/flags/exit.png b/src/main/resources/web/images/flags/exit.png new file mode 100644 index 0000000..ec9cb90 Binary files /dev/null and b/src/main/resources/web/images/flags/exit.png differ diff --git a/src/main/resources/web/images/flags/fallbackdir.png b/src/main/resources/web/images/flags/fallbackdir.png new file mode 100644 index 0000000..0c25009 Binary files /dev/null and b/src/main/resources/web/images/flags/fallbackdir.png differ diff --git a/src/main/resources/web/images/flags/fast.png b/src/main/resources/web/images/flags/fast.png new file mode 100644 index 0000000..7c65b9f Binary files /dev/null and b/src/main/resources/web/images/flags/fast.png differ diff --git a/src/main/resources/web/images/flags/fingerprint.png b/src/main/resources/web/images/flags/fingerprint.png new file mode 100644 index 0000000..b1b1ebf Binary files /dev/null and b/src/main/resources/web/images/flags/fingerprint.png differ diff --git a/src/main/resources/web/images/flags/guard.png b/src/main/resources/web/images/flags/guard.png new file mode 100644 index 0000000..1c55c39 Binary files /dev/null and b/src/main/resources/web/images/flags/guard.png differ diff --git a/src/main/resources/web/images/flags/hibernating.png b/src/main/resources/web/images/flags/hibernating.png new file mode 100644 index 0000000..5e6e2d4 Binary files /dev/null and b/src/main/resources/web/images/flags/hibernating.png differ diff --git a/src/main/resources/web/images/flags/hsdir.png b/src/main/resources/web/images/flags/hsdir.png new file mode 100644 index 0000000..19e3126 Binary files /dev/null and b/src/main/resources/web/images/flags/hsdir.png differ diff --git a/src/main/resources/web/images/flags/ipv4.png b/src/main/resources/web/images/flags/ipv4.png new file mode 100644 index 0000000..d9e3de8 Binary files /dev/null and b/src/main/resources/web/images/flags/ipv4.png differ diff --git a/src/main/resources/web/images/flags/ipv6.png b/src/main/resources/web/images/flags/ipv6.png new file mode 100644 index 0000000..1665726 Binary files /dev/null and b/src/main/resources/web/images/flags/ipv6.png differ diff --git a/src/main/resources/web/images/flags/ipv6exit.png b/src/main/resources/web/images/flags/ipv6exit.png new file mode 100644 index 0000000..8c731ec Binary files /dev/null and b/src/main/resources/web/images/flags/ipv6exit.png differ diff --git a/src/main/resources/web/images/flags/noedconsensus.png b/src/main/resources/web/images/flags/noedconsensus.png new file mode 100644 index 0000000..e68495c Binary files /dev/null and b/src/main/resources/web/images/flags/noedconsensus.png differ diff --git a/src/main/resources/web/images/flags/notrecommended.png b/src/main/resources/web/images/flags/notrecommended.png new file mode 100644 index 0000000..f7a93d4 Binary files /dev/null and b/src/main/resources/web/images/flags/notrecommended.png differ diff --git a/src/main/resources/web/images/flags/onion-alt.png b/src/main/resources/web/images/flags/onion-alt.png new file mode 100644 index 0000000..ace78cf Binary files /dev/null and b/src/main/resources/web/images/flags/onion-alt.png differ diff --git a/src/main/resources/web/images/flags/onion.png b/src/main/resources/web/images/flags/onion.png new file mode 100644 index 0000000..e738fda Binary files /dev/null and b/src/main/resources/web/images/flags/onion.png differ diff --git a/src/main/resources/web/images/flags/reachableipv4.png b/src/main/resources/web/images/flags/reachableipv4.png new file mode 100644 index 0000000..e929d87 Binary files /dev/null and b/src/main/resources/web/images/flags/reachableipv4.png differ diff --git a/src/main/resources/web/images/flags/reachableipv6.png b/src/main/resources/web/images/flags/reachableipv6.png new file mode 100644 index 0000000..b4f6990 Binary files /dev/null and b/src/main/resources/web/images/flags/reachableipv6.png differ diff --git a/src/main/resources/web/images/flags/relay.png b/src/main/resources/web/images/flags/relay.png new file mode 100644 index 0000000..ee171d4 Binary files /dev/null and b/src/main/resources/web/images/flags/relay.png differ diff --git a/src/main/resources/web/images/flags/running.png b/src/main/resources/web/images/flags/running.png new file mode 100644 index 0000000..6d716cf Binary files /dev/null and b/src/main/resources/web/images/flags/running.png differ diff --git a/src/main/resources/web/images/flags/stable.png b/src/main/resources/web/images/flags/stable.png new file mode 100644 index 0000000..172e618 Binary files /dev/null and b/src/main/resources/web/images/flags/stable.png differ diff --git a/src/main/resources/web/images/flags/tshirt.png b/src/main/resources/web/images/flags/tshirt.png new file mode 100644 index 0000000..46384f0 Binary files /dev/null and b/src/main/resources/web/images/flags/tshirt.png differ diff --git a/src/main/resources/web/images/flags/unmeasured.png b/src/main/resources/web/images/flags/unmeasured.png new file mode 100644 index 0000000..8b0e43a Binary files /dev/null and b/src/main/resources/web/images/flags/unmeasured.png differ diff --git a/src/main/resources/web/images/flags/unreachableipv4.png b/src/main/resources/web/images/flags/unreachableipv4.png new file mode 100644 index 0000000..497d4c6 Binary files /dev/null and b/src/main/resources/web/images/flags/unreachableipv4.png differ diff --git a/src/main/resources/web/images/flags/unreachableipv6.png b/src/main/resources/web/images/flags/unreachableipv6.png new file mode 100644 index 0000000..db44b88 Binary files /dev/null and b/src/main/resources/web/images/flags/unreachableipv6.png differ diff --git a/src/main/resources/web/images/flags/v2dir.png b/src/main/resources/web/images/flags/v2dir.png new file mode 100644 index 0000000..a68b7ee Binary files /dev/null and b/src/main/resources/web/images/flags/v2dir.png differ diff --git a/src/main/resources/web/images/flags/valid.png b/src/main/resources/web/images/flags/valid.png new file mode 100644 index 0000000..6de0737 Binary files /dev/null and b/src/main/resources/web/images/flags/valid.png differ diff --git a/src/main/resources/web/images/glyphicons-halflings-white.png b/src/main/resources/web/images/glyphicons-halflings-white.png new file mode 100644 index 0000000..a20760b Binary files /dev/null and b/src/main/resources/web/images/glyphicons-halflings-white.png differ diff --git a/src/main/resources/web/images/glyphicons-halflings.png b/src/main/resources/web/images/glyphicons-halflings.png new file mode 100644 index 0000000..92d4445 Binary files /dev/null and b/src/main/resources/web/images/glyphicons-halflings.png differ diff --git a/src/main/resources/web/images/noscript.png b/src/main/resources/web/images/noscript.png new file mode 100644 index 0000000..3bc118b Binary files /dev/null and b/src/main/resources/web/images/noscript.png differ diff --git a/src/main/resources/web/js/rs/app.build.js b/src/main/resources/web/js/rs/app.build.js new file mode 100644 index 0000000..b460373 --- /dev/null +++ b/src/main/resources/web/js/rs/app.build.js @@ -0,0 +1,18 @@ +// This is used to build the app and compact it +({ + appDir: "../", + baseUrl: "js", + dir: "../build", + paths: { + jquery: 'libs/jquery/jquery-min', + underscore: 'libs/underscore/underscore-min', + backbone: 'libs/backbone/backbone-optamd3-min', + text: 'libs/require/text', + templates: '../templates' + }, + modules: [ + { + name: "main" + } + ] +}) diff --git a/src/main/resources/web/js/rs/app.js b/src/main/resources/web/js/rs/app.js new file mode 100644 index 0000000..839579c --- /dev/null +++ b/src/main/resources/web/js/rs/app.js @@ -0,0 +1,16 @@ +// ~ app.js ~ +define([ + 'jquery', + 'underscore', + 'backbone', + 'router', // Request router.js +], function($, _, Backbone, Router){ + var initialize = function(){ + // Pass in our Router module and call it's initialize function + Router.initialize(); + }; + + return { + initialize: initialize + }; +}); diff --git a/src/main/resources/web/js/rs/boilerplate.js b/src/main/resources/web/js/rs/boilerplate.js new file mode 100644 index 0000000..68be69c --- /dev/null +++ b/src/main/resources/web/js/rs/boilerplate.js @@ -0,0 +1,11 @@ +// This is the boilerplate file +// it should be used as a base for every module +define([ + 'jquery', + 'underscore', + 'backbone' +], function($, _, Backbone){ + /* YOU CODE GOES HERE */ + return {}; +}); + diff --git a/src/main/resources/web/js/rs/collections/aggregates.js b/src/main/resources/web/js/rs/collections/aggregates.js new file mode 100644 index 0000000..9ddce23 --- /dev/null +++ b/src/main/resources/web/js/rs/collections/aggregates.js @@ -0,0 +1,137 @@ +// ~ collections/aggregates ~ +define([ + 'jquery', + 'underscore', + 'backbone', + 'models/aggregate' +], function($, _, Backbone, aggregateModel){ + var aggregatesCollection = Backbone.Collection.extend({ + model: aggregateModel, + baseurl: 'https://onionoo.torproject.org/details?running=true&type=relay&fields=country,guard_probability,middle_probability,exit_probability,consensus_weight,consensus_weight_fraction,advertised_bandwidth,flags,as_number,as_name,measured,version', + url: '', + aType: 'cc', + lookup: function(options) { + var success = options.success; + var error = options.error; + var err = -1; + var collection = this; + options.success = $.getJSON(this.url, function(response) { + checkIfDataIsUpToDate(options.success.getResponseHeader("Last-Modified")); + this.fresh_until = response.fresh_until; + this.valid_after = response.valid_after; + var aggregates = {}; + var relaysPublished = response.relays_published; + var bridgesPublished = response.bridges_published; + options.error = function(options) { + error(options.error, collection, options); + } + _.each(response.relays, function(relay) { + /* If a relay country is unknown, use XZ as the country code. + This code will never be assigned for use with ISO 3166-1 and is "user-assigned". + Fun fact: UN/LOCODE assigns XZ to represent installations in international waters. */ + relay.country = ((typeof relay.country) == "undefined") ? "xz" : relay.country; + relay.as_number = ((typeof relay.as_number) == "undefined") ? 0 : relay.as_number; + if (relay.as_number == 0) relay.as_name = "Unknown"; + + var ccAggregate = false; + var asAggregate = false; + var versionAggregate = false; + + if (collection.aType == "all") { + aggregateKey = "zz"; // A user-assigned ISO 3166-1 code, but really just a static key + } else if (collection.aType == "cc") { + aggregateKey = relay.country; + ccAggregate = true; + } else if (collection.aType == "as") { + aggregateKey = relay.as_number; + asAggregate = true; + } else if (collection.aType == "version") { + aggregateKey = relay.version.split(".").slice(0, 3).join(".") + "."; + versionAggregate = true; + } else { + aggregateKey = relay.country + "/" + relay.as_number; + ccAggregate = asAggregate = true; + } + + if (!(aggregateKey in aggregates)) { + aggregates[aggregateKey] = new aggregateModel; + if (ccAggregate) { + aggregates[aggregateKey].country = relay.country; + } else { + aggregates[aggregateKey].country = new Set(); + } + if (asAggregate) { + aggregates[aggregateKey].as = relay.as_number; + } else { + aggregates[aggregateKey].as = new Set(); + } + if (versionAggregate) { + aggregates[aggregateKey].version = aggregateKey; + } + aggregates[aggregateKey].as_name = relay.as_name; + } + + if (!ccAggregate) { + if (relay.country !== "xz") aggregates[aggregateKey].country.add(relay.country); + } + if (!asAggregate) { + if (relay.as_number !== 0) aggregates[aggregateKey].as.add(relay.as_number); + } + aggregates[aggregateKey].relays++; + if ((typeof relay.guard_probability) !== "undefined") aggregates[aggregateKey].guard_probability += relay.guard_probability; + if ((typeof relay.middle_probability) !== "undefined") aggregates[aggregateKey].middle_probability += relay.middle_probability; + if ((typeof relay.exit_probability) !== "undefined") aggregates[aggregateKey].exit_probability += relay.exit_probability; + if ((typeof relay.consensus_weight) !== "undefined") aggregates[aggregateKey].consensus_weight += relay.consensus_weight; + if ((typeof relay.consensus_weight_fraction) !== "undefined") aggregates[aggregateKey].consensus_weight_fraction += relay.consensus_weight_fraction; + if ((typeof relay.advertised_bandwidth) !== "undefined" && relay.advertised_bandwidth > 0) { + aggregates[aggregateKey].advertised_bandwidth += relay.advertised_bandwidth; + if (relay.measured) { + aggregates[aggregateKey].consensus_weight_to_bandwidth_count++; + aggregates[aggregateKey].consensus_weight_to_bandwidth += ((relay.consensus_weight*1024)/relay.advertised_bandwidth); // This is divided by number of relays for which data existed below to provide a mean average + } + } + _.each(relay.flags, function(flag) { + if (flag == "Guard") aggregates[aggregateKey].guards++; + if (flag == "Exit") aggregates[aggregateKey].exits++; + }); + }); + if (Object.keys(aggregates).length == 0) { + error(0); + return false; + } + var aggregatesArr = []; + _.each(Object.keys(aggregates), function(aggregateKey) { + var aggregate = aggregates[aggregateKey]; + if ((typeof aggregate.as) !== "string") { + if (aggregate.as.size == 1) { + aggregate.as.forEach(function(value1, value2, set) { + aggregate.as = value1; + }); + } + } + if ((typeof aggregate.country) !== "string") { + if (aggregate.country.size == 1) { + aggregate.country.forEach(function(value1, value2, set) { + aggregate.country = value1; + }); + } + } + if (aggregate.consensus_weight_to_bandwidth_count > 0) { + aggregate.consensus_weight_to_bandwidth = aggregate.consensus_weight_to_bandwidth/aggregate.consensus_weight_to_bandwidth_count; + } + aggregatesArr.push(aggregate); + }); + collection[options.add ? 'add' : 'reset'](aggregatesArr, options); + success(err, relaysPublished, bridgesPublished); + }).fail(function(jqXHR, textStatus, errorThrown) { + if(jqXHR.statusText == "error") { + error(2); + } else { + error(3); + } + }); + } + }); + return aggregatesCollection; +}); + diff --git a/src/main/resources/web/js/rs/collections/results.js b/src/main/resources/web/js/rs/collections/results.js new file mode 100644 index 0000000..73ef819 --- /dev/null +++ b/src/main/resources/web/js/rs/collections/results.js @@ -0,0 +1,90 @@ +// ~ collections/results ~ +define([ + 'jquery', + 'underscore', + 'backbone', + 'models/relay' +], function($, _, Backbone, relayModel){ + var resultsCollection = Backbone.Collection.extend({ + model: relayModel, + baseurl: 'https://onionoo.torproject.org/details?search=', + url: '', + lookup: function(options) { + var success = options.success; + var error = options.error; + var err = 0; + var collection = this; + options.success = $.getJSON(this.url, function(response) { + checkIfDataIsUpToDate(options.success.getResponseHeader("Last-Modified")); + this.fresh_until = response.fresh_until; + this.valid_after = response.valid_after; + var relays = []; + var relaysPublished = response.relays_published; + var bridgesPublished = response.bridges_published; + options.error = function(options) { + error(options.error, collection, options); + } + _.each(response.relays, function(relay, resultsC) { + crelay = new relayModel; + crelay.fingerprint = relay.fingerprint; + crelay.relay = relay; + crelay.relay.is_bridge = false; + relays.push(crelay); + }); + _.each(response.bridges, function(relay, resultsC) { + crelay = new relayModel; + crelay.fingerprint = relay.hashed_fingerprint; + crelay.relay = relay; + crelay.relay.is_bridge = true; + relays.push(crelay); + }); + if (relays.length == 0) { + error(0); + return false; + } else if (relays.length > 2000) { + relays = relays.slice(0, 2000); + err = 4; + } + var lookedUpRelays = 0; + var relayChunks = relays.chunk(600); + var chunkedLookup = function() { + _.each(relayChunks.pop(), function(relay) { + relay.lookup({ + success: function(){ + lookedUpRelays++; + }, + error: function() { + lookedUpRelays++; + error(0); + } + }); + }); + if (lookedUpRelays == relays.length) { + $('.progress-bar').width("100%"); + $('.progress-bar').html("Rendering results..."); + setTimeout(function() { + collection[options.add ? 'add' : 'reset'](relays, options); + success(err, relaysPublished, bridgesPublished); + }, 500); + } else { + $('.progress-bar').width((lookedUpRelays / relays.length * 100) + "%"); + $('.progress-bar').html(lookedUpRelays + " of " + relays.length + " loaded"); + setTimeout(chunkedLookup, 50); + } + } + chunkedLookup(); + }).fail( + function(jqXHR, textStatus, errorThrown) { + if(jqXHR.statusText == "error") { + error(2); + } else { + error(3); + } + } + ); + } + + }); + return resultsCollection; +}); + diff --git a/src/main/resources/web/js/rs/fallback_dir.js b/src/main/resources/web/js/rs/fallback_dir.js new file mode 100644 index 0000000..93f97c5 --- /dev/null +++ b/src/main/resources/web/js/rs/fallback_dir.js @@ -0,0 +1,16 @@ + + +/* +This file is generated by scripts/fallback_dir.py. + +To update run: + +python3 scripts/fallback_dir.py > js/fallback_dir.js +*/ + +var fallbackDirs = ["001524DD403D729F08F7E5D77813EF12756CFA8D", "0111BA9B604669E636FFD5B503F382A4B7AD6E80", "025B66CEBC070FCB0519D206CF0CF4965C20C96E", "0756B7CD4DFC8182BE23143FAC0642F515182CEB", "0B85617241252517E8ECF2CFC7F4C1A32DCD153F", "0BEA4A88D069753218EAAAD6D22EA87B9A1319D6", "0CF8F3E6590F45D50B70F2F7DA6605ECA6CD408F", "0D3EBA17E1C78F1E9900BABDB23861D46FCAF163", "0E8C0C8315B66DB5F703804B3889A1DD66C67CE0", "11DF0017A43AF1F08825CD5D973297F81AB00FF3", "12AD30E5D25AA67F519780E2111E611A455FDC89", "12FD624EE73CEF37137C90D38B2406A66F68FAA2", "136F9299A5009A4E0E96494E723BDB556FB0A26B", "16102E458460349EE45C0901DAA6C30094A9BBEA", "175921396C7C426309AB03775A9930B6F611F794", "185663B7C12777F052B2C2D23D7A239D8DA88A0F", "1938EBACBB1A7BFA888D9623C90061130E63BB3F", "1AE039EE0B11DB79E4B4B29CBA9F752864A0259E", "1C90D3AEADFF3BCD079810632C8B85637924A58E", "1DBAED235E3957DE1ABD25B4206BE71406FB61F8", "1ECD73B936CB6E6B3CD647CC204F108D9DF2C9F7", "1F6ABD086F40B890A33C93CC4606EE68B31C9556", "1FA8F638298645BE58AC905276680889CB795A94", "20462CBA5DA4C2D963567D17D0B7249718114A68", "204DFD2A2C6A0DC1FA0EACB495218E0B661704FD", "230A8B2A8BA861210D9B4BA97745AEC217A94207", "231C2B9C8C31C295C472D031E06964834B745996", "2BA2C8E96B2590E1072AECE2BDB5C48921BF8510", "2CDCFED0142B28B002E89D305CBA2E26063FADE2", "2F0F32AB1E5B943CA7D062C03F18960C86E70D94", "30C19B81981F450C402306E2E7CFB6C3F79CB6B2", "328E54981C6DDD7D89B89E418724A4A7881E3192", "330CD3DB6AD266DC70CDB512B036957D03D9BC59", "33DA0CAB7C27812EFF2E22C9705630A54D101FEB", "3711E80B5B04494C971FB0459D4209AB7F2EA799", "379FB450010D17078B3766C2273303C358C3A442", "387B065A38E4DAA16D9D41C2964ECBC4B31D30FF", "39F096961ED2576975C866D450373A9913AFDC92", "3B33F6FCA645AD4E91428A3AF7DC736AD9FB727B", "3C79699D4FBC37DE1A212D5033B56DAE079AC0EF", "3D7E274A87D9A89AF064C13D1EE4CA1F184F2600", "3E53D3979DB07EFD736661C934A1DED14127B684", "4061C553CA88021B8302F0814365070AAE617270", "40E7D6CE5085E4CDDA31D51A29D1457EB53F12AD", "41C59606AFE1D1AA6EC6EF6719690B856F0B6587", "439D0447772CB107B886F7782DBC201FA26B92D1", "4623A9EC53BFD83155929E56D6F7B55B5E718C24", "46791D156C9B6C255C2665D4D8393EC7DBAA7798", "484A10BA2B8D48A5F0216674C8DD50EF27BC32F3", "489D94333DF66D57FFE34D9D59CC2D97E2CB0053", "4CC9CC9195EC38645B699A33307058624F660CCF", "4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2", "50586E25BE067FD1F739998550EDDCB1A14CA5B2", "51E1CF613FD6F9F11FE24743C91D6F9981807D82", "52BFADA8BEAA01BA46C8F767F83C18E2FE50C1B9", "587E0A9552E4274B251F29B5B2673D38442EE4BF", "58ED9C9C35E433EE58764D62892B4FFD518A3CD0", "5E56738E7F97AA81DEEF59AF28494293DFBFCCDF", "5F4CD12099AF20FAF9ADFDCEC65316A376D0201C", "616081EC829593AF4232550DE6FFAA1D75B37A90", "68F175CCABE727AA2D2309BCD8789499CEE36ED7", "6A7551EEE18F78A9813096E82BF84F740D32B911", "6EF897645B79B6CB35E853B32506375014DE3621", "72B2B12A3F60408BDBC98C6DF53988D3A0B3F0EE", "7600680249A22080ECC6173FBBF64D6FCF330A61", "763C9556602BD6207771A7A3D958091D44C43228", "774555642FDC1E1D4FDF2E0C31B7CA9501C5C9C7", "775B0FAFDE71AADC23FFC8782B7BEB1D5A92733E", "789EA6C9AE9ADDD8760903171CFA9AC5741B0C70", "78E2BE744A53631B4AAB781468E94C52AB73968B", "79E169B25E4C7CE99584F6ED06F379478F23E2B8", "7A32C9519D80CA458FC8B034A28F5F6815649A98", "7BB70F8585DFC27E75D692970C0EEB0F22983A63", "7BFB908A3AA5B491DA4CA72CCBEE0E1F2A939B55", "7D05A38E39FC5D29AFE6BE487B9B4DC9E635D09E", "7FA8E7E44F1392A4E40FFC3B69DB3B00091B7FD3", "80AAF8D5956A43C197104CEF2550CD42D165C6FB", "8456DFA94161CDD99E480C2A2992C366C6564410", "855BC2DABE24C861CD887DB9B2E950424B49FC34", "8567AD0A6369ED08527A8A8533A5162AC00F7678", "86C281AD135058238D7A337D546C902BE8505DDE", "88487BDD980BF6E72092EE690E8C51C0AA4A538C", "8C00FA7369A7A308F6A137600F0FA07990D9D451", "8D79F73DCD91FC4F5017422FAC70074D6DB8DD81", "9007C1D8E4F03D506A4A011B907A9E8D04E3C605", "91D23D8A539B83D2FB56AA67ECD4D75CC093AC55", "9285B22F7953D7874604EEE2B470609AD81C74E9", "92CFD9565B24646CAC2D172D3DB503D69E777B8A", "92ECC9E0E2AF81BB954719B189AC362E254AD4A5", "9772EFB535397C942C3AB8804FB35CFFAD012438", "998BF3ED7F70E33D1C307247B9626D9E7573C438", "9A0D54D3A6D2E0767596BF1515E6162A75B3293F", "9A68B85A02318F4E7E87F2828039FBD5D75B0142", "9B31F1F1C1554F9FFB3455911F82E818EF7C7883", "9EC5E097663862DF861A18C32B37C5F82284B27D", "9F2856F6D2B89AD4EF6D5723FAB167DB5A53519A", "9F7D6E6420183C2B76D3CE99624EBC98A21A967E", "9FBEB75E8BC142565F12CBBE078D63310236A334", "A0F06C2FADF88D3A39AA3072B406F09D7095AC9E", "A10C4F666D27364036B562823E5830BC448E046A", "A2E6BB5C391CD46B38C55B4329C35304540771F1", "A478E421F83194C114F41E94F95999672AED51FE", "A4C98CEA3F34E05299417E9F885A642C88EF6029", "A9406A006D6E7B5DA30F2C6D4E42A338B5E340B2", "AC66FFA4AB35A59EBBF5BF4C70008BF24D8A7A5C", "ACD889D86E02EDDAB1AFD81F598C0936238DC6D0", "ACDD9E85A05B127BA010466C13C8C47212E8A38F", "AD19490C7DBB26D3A68EFC824F67E69B0A96E601", "B0279A521375F3CB2AE210BDBFC645FDD2E1973A", "B0553175AADB0501E5A61FC61CEA3970BE130FF2", "B06F093A3D4DFAD3E923F4F28A74901BD4F74EB1", "B0CD9F9B5B60651ADC5919C0F1EAA87DBA1D9249", "B143D439B72D239A419F8DCE07B8A8EB1B486FA7", "B291D30517D23299AD7CEE3E60DFE60D0E3A4664", "B4CAFD9CBFB34EC5DAAC146920DC7DFAFE91EA20", "B5212DB685A2A0FCFBAE425738E478D12361710D", "B6904ADD4C0D10CDA7179E051962350A69A63243", "B83DC1558F0D34353BB992EF93AFEAFDB226A73E", "B86137AE9681701901C6720E55C16805B46BD8E3", "BC630CBBB518BE7E9F4E09712AB0269E9DC7D626", "BCEDF6C193AA687AE471B8A22EBF6BC57C2D285E", "BCEF908195805E03E92CCFE669C48738E556B9C5", "BD552C165E2ED2887D3F1CCE9CFF155DDA2D86E6", "BF735F669481EE1CCC348F0731551C933D1E2278", "C2AAB088555850FC434E68943F551072042B85F1", "C37BC191AC389179674578C3E6944E925FE186C2", "C414F28FD2BEC1553024299B31D4E726BEB8E788", "C5A53BCC174EF8FD0DCB223E4AA929FA557DEDB2", "CE47F0356D86CF0A1A2008D97623216D560FB0A8", "CED527EAC230E7B56E5B363F839671829C3BA01B", "D30E9D4D639068611D6D96861C95C2099140B805", "D3E5EDDBE5159388704D6785BE51930AAFACEC6F", "D64366987CB39F61AD21DBCF8142FA0577B92811", "D760C5B436E42F93D77EF2D969157EEA14F9B39C", "D8B7A3A6542AA54D0946B9DC0257C53B6C376679", "DAA39FC00B196B353C2A271459C305C429AF09E4", "DD823AFB415380A802DCAEB9461AE637604107FB", "DD8BD7307017407FCC36F8D04A688F74A0774C02", "DED6892FF89DBD737BA689698A171B2392EB3E82", "E3DB2E354B883B59E8DC56B3E7A353DDFD457812", "E480D577F58E782A5BC4FA6F49A6650E9389302F", "E589316576A399C511A9781A73DA4545640B479D", "E781F4EC69671B3F1864AE2753E0890351506329", "E81EF60A73B3809F8964F73766B01BAA0A171E20", "EFEACD781604EB80FBC025EDEDEA2D523AEAAA2F", "F4263275CF54A6836EE7BD527B1328836A6F06E1", "F70B7C5CD72D74C7F9F2DC84FA9D20D51BA13610", "F93D8F37E35C390BCAD9F9069E13085B745EC216", "FC9AC8EA0160D88BCCFDE066940D7DD9FA45495B", "FE296180018833AF03A8EACD5894A614623D3F76"]; + +function IsFallbackDir(fingerprint) { + return $.inArray(fingerprint, fallbackDirs) > -1; +} + diff --git a/src/main/resources/web/js/rs/helpers.js b/src/main/resources/web/js/rs/helpers.js new file mode 100644 index 0000000..dfff6c8 --- /dev/null +++ b/src/main/resources/web/js/rs/helpers.js @@ -0,0 +1,290 @@ +var CountryCodes = { + "ad" : "Andorra", + "ae" : "United Arab Emirates", + "af" : "Afghanistan", + "ag" : "Antigua and Barbuda", + "ai" : "Anguilla", + "al" : "Albania", + "am" : "Armenia", + "an" : "Netherlands Antilles", + "ao" : "Angola", + "aq" : "Antarctica", + "ar" : "Argentina", + "as" : "American Samoa", + "at" : "Austria", + "au" : "Australia", + "aw" : "Aruba", + "ax" : "Aland Islands", + "az" : "Azerbaijan", + "ba" : "Bosnia and Herzegovina", + "bb" : "Barbados", + "bd" : "Bangladesh", + "be" : "Belgium", + "bf" : "Burkina Faso", + "bg" : "Bulgaria", + "bh" : "Bahrain", + "bi" : "Burundi", + "bj" : "Benin", + "bl" : "Saint Bartelemey", + "bm" : "Bermuda", + "bn" : "Brunei", + "bo" : "Bolivia", + "br" : "Brazil", + "bs" : "Bahamas", + "bt" : "Bhutan", + "bv" : "Bouvet Island", + "bw" : "Botswana", + "by" : "Belarus", + "bz" : "Belize", + "ca" : "Canada", + "cc" : "Cocos (Keeling) Islands", + "cd" : "Democratic Republic of the Congo", + "cf" : "Central African Republic", + "cg" : "Congo", + "ch" : "Switzerland", + "ci" : "Côte d'Ivoire", + "ck" : "Cook Islands", + "cl" : "Chile", + "cm" : "Cameroon", + "cn" : "China", + "co" : "Colombia", + "cr" : "Costa Rica", + "cu" : "Cuba", + "cv" : "Cape Verde", + "cx" : "Christmas Island", + "cy" : "Cyprus", + "cz" : "Czech Republic", + "de" : "Germany", + "dj" : "Djibouti", + "dk" : "Denmark", + "dm" : "Dominica", + "do" : "Dominican Republic", + "dz" : "Algeria", + "ec" : "Ecuador", + "ee" : "Estonia", + "eg" : "Egypt", + "eh" : "Western Sahara", + "er" : "Eritrea", + "es" : "Spain", + "et" : "Ethiopia", + "fi" : "Finland", + "fj" : "Fiji", + "fk" : "Falkland Islands (Malvinas)", + "fm" : "Federated States of Micronesia", + "fo" : "Faroe Islands", + "fr" : "France", + "fx" : "Metropolitan France", + "ga" : "Gabon", + "gb" : "United Kingdom", + "gd" : "Grenada", + "ge" : "Georgia", + "gf" : "French Guiana", + "gg" : "Guernsey", + "gh" : "Ghana", + "gi" : "Gibraltar", + "gl" : "Greenland", + "gm" : "Gambia", + "gn" : "Guinea", + "gp" : "Guadeloupe", + "gq" : "Equatorial Guinea", + "gr" : "Greece", + "gs" : "South Georgia and the South Sandwich Islands", + "gt" : "Guatemala", + "gu" : "Guam", + "gw" : "Guinea-Bissau", + "gy" : "Guyana", + "hk" : "Hong Kong", + "hm" : "Heard Island and McDonald Islands", + "hn" : "Honduras", + "hr" : "Croatia", + "ht" : "Haiti", + "hu" : "Hungary", + "id" : "Indonesia", + "ie" : "Ireland", + "il" : "Israel", + "im" : "Isle of Man", + "in" : "India", + "io" : "British Indian Ocean Territory", + "iq" : "Iraq", + "ir" : "Iran", + "is" : "Iceland", + "it" : "Italy", + "je" : "Jersey", + "jm" : "Jamaica", + "jo" : "Jordan", + "jp" : "Japan", + "ke" : "Kenya", + "kg" : "Kyrgyzstan", + "kh" : "Cambodia", + "ki" : "Kiribati", + "km" : "Comoros", + "kn" : "Saint Kitts and Nevis", + "kp" : "North Korea", + "kr" : "Republic of Korea", + "kw" : "Kuwait", + "ky" : "Cayman Islands", + "kz" : "Kazakhstan", + "la" : "Laos", + "lb" : "Lebanon", + "lc" : "Saint Lucia", + "li" : "Liechtenstein", + "lk" : "Sri Lanka", + "lr" : "Liberia", + "ls" : "Lesotho", + "lt" : "Lithuania", + "lu" : "Luxembourg", + "lv" : "Latvia", + "ly" : "Libya", + "ma" : "Morocco", + "mc" : "Monaco", + "md" : "Republic of Moldova", + "me" : "Montenegro", + "mf" : "Saint Martin", + "mg" : "Madagascar", + "mh" : "Marshall Islands", + "mk" : "Macedonia", + "ml" : "Mali", + "mm" : "Burma", + "mn" : "Mongolia", + "mo" : "Macau", + "mp" : "Northern Mariana Islands", + "mq" : "Martinique", + "mr" : "Mauritania", + "ms" : "Montserrat", + "mt" : "Malta", + "mu" : "Mauritius", + "mv" : "Maldives", + "mw" : "Malawi", + "mx" : "Mexico", + "my" : "Malaysia", + "mz" : "Mozambique", + "na" : "Namibia", + "nc" : "New Caledonia", + "ne" : "Niger", + "nf" : "Norfolk Island", + "ng" : "Nigeria", + "ni" : "Nicaragua", + "nl" : "Netherlands", + "no" : "Norway", + "np" : "Nepal", + "nr" : "Nauru", + "nu" : "Niue", + "nz" : "New Zealand", + "om" : "Oman", + "pa" : "Panama", + "pe" : "Peru", + "pf" : "French Polynesia", + "pg" : "Papua New Guinea", + "ph" : "Philippines", + "pk" : "Pakistan", + "pl" : "Poland", + "pm" : "Saint Pierre and Miquelon", + "pn" : "Pitcairn Islands", + "pr" : "Puerto Rico", + "ps" : "Palestinian Territory", + "pt" : "Portugal", + "pw" : "Palau", + "py" : "Paraguay", + "qa" : "Qatar", + "re" : "Reunion", + "ro" : "Romania", + "rs" : "Serbia", + "ru" : "Russia", + "rw" : "Rwanda", + "sa" : "Saudi Arabia", + "sb" : "Solomon Islands", + "sc" : "Seychelles", + "sd" : "Sudan", + "se" : "Sweden", + "sg" : "Singapore", + "sh" : "Saint Helena", + "si" : "Slovenia", + "sj" : "Svalbard and Jan Mayen", + "sk" : "Slovakia", + "sl" : "Sierra Leone", + "sm" : "San Marino", + "sn" : "Senegal", + "so" : "Somalia", + "sr" : "Suriname", + "ss" : "South Sudan", + "st" : "São Tomé and Príncipe", + "sv" : "El Salvador", + "sy" : "Syrian Arab Republic", + "sz" : "Swaziland", + "tc" : "Turks and Caicos Islands", + "td" : "Chad", + "tf" : "French Southern Territories", + "tg" : "Togo", + "th" : "Thailand", + "tj" : "Tajikistan", + "tk" : "Tokelau", + "tl" : "East Timor", + "tm" : "Turkmenistan", + "tn" : "Tunisia", + "to" : "Tonga", + "tr" : "Turkey", + "tt" : "Trinidad and Tobago", + "tv" : "Tuvalu", + "tw" : "Taiwan", + "tz" : "United Republic of Tanzania", + "ua" : "Ukraine", + "ug" : "Uganda", + "um" : "United States Minor Outlying Islands", + "us" : "United States", + "uy" : "Uruguay", + "uz" : "Uzbekistan", + "va" : "Vatican City", + "vc" : "Saint Vincent and the Grenadines", + "ve" : "Venezuela", + "vg" : "British Virgin Islands", + "vi" : "United States Virgin Islands", + "vn" : "Vietnam", + "vu" : "Vanuatu", + "wf" : "Wallis and Futuna", + "ws" : "Samoa", + "xz" : "Unknown", + "ye" : "Yemen", + "yt" : "Mayotte", + "za" : "South Africa", + "zm" : "Zambia", + "zw" : "Zimbabwe" +} + +function hrBandwidth(bw) { + var bw_k = bw/1024; + var bw_m = bw_k/1024; + + if (bw_m >= 1) { + return Math.round(bw_m * 100) / 100 + " MiB/s"; + } else if (bw_k >= 1) { + return Math.round(bw_k * 100) / 100 + " KiB/s"; + } + + return bw + " B/s"; +} + +function checkIfDataIsUpToDate(lastModifiedHeader) { + // check if onionoo document is up to date: + var lastModified = new Date(Date.parse(lastModifiedHeader)); + var currentTime = new Date(); + var hoursSinceLastUpdate = (currentTime.getTime() - lastModified.getTime()) / (1000 * 60 * 60); + if (hoursSinceLastUpdate > 24 && $("#outdatedData").length==0) { + $('
Outdated data!

The Relay Search data source (Onionoo) was last updated: '+lastModified+'. This issue should be resolved soon, please try again later for more recent information.

').insertAfter(".container > h1"); + } +} + +window.onhashchange = function(){ + // close mobile menu on hash change + if ($('.nav-collapse').height()>50) { + $('.btn-navbar').click(); + } +} + +Object.defineProperty(Array.prototype, 'chunk', { + value: function(chunkSize) { + var R = []; + for (var i=0; i 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) { + options = $.extend({}, options); + + if (value === null || value === undefined) { + options.expires = -1; + } + + if (typeof options.expires === 'number') { + var days = options.expires, t = options.expires = new Date(); + t.setDate(t.getDate() + days); + } + + value = String(value); + + return (document.cookie = [ + encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value), + options.expires ? '; expires=' + options.expires.toUTCString() : '', // max-age is not supported by IE + options.path ? '; path=' + options.path : '', + options.domain ? '; domain=' + options.domain : '', + options.secure ? '; secure' : '' + ].join('')); + } + options = value || {}; + var decode = options.raw ? function (s) { return s; } : decodeURIComponent; + + var pairs = document.cookie.split('; '); + for (var i = 0, pair; pair = pairs[i] && pairs[i].split('='); i++) { + // IE + if (decode(pair[0]) === key) return decode(pair[1] || ''); + } + return null; + }; + + $.fn.cookieBar = function (options) { + var settings = $.extend({ + 'closeButton': 'none', + 'hideOnClose': true, + 'secure': false, + 'path': '/', + 'domain': '' + }, options); + + return this.each(function () { + var cookiebar = $(this); + + // just in case they didnt hide it by default. + cookiebar.hide(); + + // if close button not defined. define it! + if (settings.closeButton == 'none') { + cookiebar.append('Continue'); + $.extend(settings, { 'closeButton': '.cookiebar-close' }); + } + + if ($.cookie('cookiebar') != 'hide') { + cookiebar.show(); + } + + cookiebar.find(settings.closeButton).click(function () { + if (settings.hideOnClose) { + cookiebar.hide(); + } + $.cookie('cookiebar', 'hide', { path: settings.path, secure: settings.secure, domain: settings.domain, expires: 30 }); + cookiebar.trigger('cookieBar-close'); + return false; + }); + }); + }; + + // self injection init + $.cookieBar = function (options) { + $('body').prepend('
'); + $('.cookie-message').cookieBar(options); + }; +})(jQuery); diff --git a/src/main/resources/web/js/rs/libs/backbone/backbone.min.js b/src/main/resources/web/js/rs/libs/backbone/backbone.min.js new file mode 100644 index 0000000..435a72c --- /dev/null +++ b/src/main/resources/web/js/rs/libs/backbone/backbone.min.js @@ -0,0 +1,2 @@ +(function(t){var e=typeof self=="object"&&self.self===self&&self||typeof global=="object"&&global.global===global&&global;if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,n){e.Backbone=t(e,n,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore"),r;try{r=require("jquery")}catch(n){}t(e,exports,i,r)}else{e.Backbone=t(e,{},e._,e.jQuery||e.Zepto||e.ender||e.$)}})(function(t,e,i,r){var n=t.Backbone;var s=Array.prototype.slice;e.VERSION="1.3.3";e.$=r;e.noConflict=function(){t.Backbone=n;return this};e.emulateHTTP=false;e.emulateJSON=false;var a=function(t,e,r){switch(t){case 1:return function(){return i[e](this[r])};case 2:return function(t){return i[e](this[r],t)};case 3:return function(t,n){return i[e](this[r],o(t,this),n)};case 4:return function(t,n,s){return i[e](this[r],o(t,this),n,s)};default:return function(){var t=s.call(arguments);t.unshift(this[r]);return i[e].apply(i,t)}}};var h=function(t,e,r){i.each(e,function(e,n){if(i[n])t.prototype[n]=a(e,n,r)})};var o=function(t,e){if(i.isFunction(t))return t;if(i.isObject(t)&&!e._isModel(t))return l(t);if(i.isString(t))return function(e){return e.get(t)};return t};var l=function(t){var e=i.matches(t);return function(t){return e(t.attributes)}};var u=e.Events={};var c=/\s+/;var f=function(t,e,r,n,s){var a=0,h;if(r&&typeof r==="object"){if(n!==void 0&&"context"in s&&s.context===void 0)s.context=n;for(h=i.keys(r);athis.length)n=this.length;if(n<0)n+=this.length+1;var s=[];var a=[];var h=[];var o=[];var l={};var u=e.add;var c=e.merge;var f=e.remove;var d=false;var v=this.comparator&&n==null&&e.sort!==false;var g=i.isString(this.comparator)?this.comparator:null;var p,m;for(m=0;m7);this._useHashChange=this._wantsHashChange&&this._hasHashChange;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.history&&this.history.pushState);this._usePushState=this._wantsPushState&&this._hasPushState;this.fragment=this.getFragment();this.root=("/"+this.root+"/").replace(O,"/");if(this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var e=this.root.slice(0,-1)||"/";this.location.replace(e+"#"+this.getPath());return true}else if(this._hasPushState&&this.atRoot()){this.navigate(this.getHash(),{replace:true})}}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe");this.iframe.src="javascript:0";this.iframe.style.display="none";this.iframe.tabIndex=-1;var r=document.body;var n=r.insertBefore(this.iframe,r.firstChild).contentWindow;n.document.open();n.document.close();n.location.hash="#"+this.fragment}var s=window.addEventListener||function(t,e){return attachEvent("on"+t,e)};if(this._usePushState){s("popstate",this.checkUrl,false)}else if(this._useHashChange&&!this.iframe){s("hashchange",this.checkUrl,false)}else if(this._wantsHashChange){this._checkUrlInterval=setInterval(this.checkUrl,this.interval)}if(!this.options.silent)return this.loadUrl()},stop:function(){var t=window.removeEventListener||function(t,e){return detachEvent("on"+t,e)};if(this._usePushState){t("popstate",this.checkUrl,false)}else if(this._useHashChange&&!this.iframe){t("hashchange",this.checkUrl,false)}if(this.iframe){document.body.removeChild(this.iframe);this.iframe=null}if(this._checkUrlInterval)clearInterval(this._checkUrlInterval);N.started=false},route:function(t,e){this.handlers.unshift({route:t,callback:e})},checkUrl:function(t){var e=this.getFragment();if(e===this.fragment&&this.iframe){e=this.getHash(this.iframe.contentWindow)}if(e===this.fragment)return false;if(this.iframe)this.navigate(e);this.loadUrl()},loadUrl:function(t){if(!this.matchRoot())return false;t=this.fragment=this.getFragment(t);return i.some(this.handlers,function(e){if(e.route.test(t)){e.callback(t);return true}})},navigate:function(t,e){if(!N.started)return false;if(!e||e===true)e={trigger:!!e};t=this.getFragment(t||"");var i=this.root;if(t===""||t.charAt(0)==="?"){i=i.slice(0,-1)||"/"}var r=i+t;t=this.decodeFragment(t.replace(U,""));if(this.fragment===t)return;this.fragment=t;if(this._usePushState){this.history[e.replace?"replaceState":"pushState"]({},document.title,r)}else if(this._wantsHashChange){this._updateHash(this.location,t,e.replace);if(this.iframe&&t!==this.getHash(this.iframe.contentWindow)){var n=this.iframe.contentWindow;if(!e.replace){n.document.open();n.document.close()}this._updateHash(n.location,t,e.replace)}}else{return this.location.assign(r)}if(e.trigger)return this.loadUrl(t)},_updateHash:function(t,e,i){if(i){var r=t.href.replace(/(javascript:|#).*$/,"");t.replace(r+"#"+e)}else{t.hash="#"+e}}});e.history=new N;var q=function(t,e){var r=this;var n;if(t&&i.has(t,"constructor")){n=t.constructor}else{n=function(){return r.apply(this,arguments)}}i.extend(n,r,e);n.prototype=i.create(r.prototype,t);n.prototype.constructor=n;n.__super__=r.prototype;return n};y.extend=x.extend=$.extend=k.extend=N.extend=q;var F=function(){throw new Error('A "url" property or function must be specified')};var B=function(t,e){var i=e.error;e.error=function(r){if(i)i.call(e.context,t,r,e);t.trigger("error",t,r,e)}};return e}); +//# sourceMappingURL=backbone-min.map \ No newline at end of file diff --git a/src/main/resources/web/js/rs/libs/bootstrap/bootstrap.min.js b/src/main/resources/web/js/rs/libs/bootstrap/bootstrap.min.js new file mode 100644 index 0000000..133aeec --- /dev/null +++ b/src/main/resources/web/js/rs/libs/bootstrap/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under the MIT license + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.5",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.5",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.5",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.5",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.5",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.5",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.5",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.5",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/src/main/resources/web/js/rs/libs/d3js/d3-array.v1.min.js b/src/main/resources/web/js/rs/libs/d3js/d3-array.v1.min.js new file mode 100644 index 0000000..508c424 --- /dev/null +++ b/src/main/resources/web/js/rs/libs/d3js/d3-array.v1.min.js @@ -0,0 +1,2 @@ +// https://d3js.org/d3-array/ Version 1.2.1. Copyright 2017 Mike Bostock. +!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r(n.d3=n.d3||{})}(this,function(n){"use strict";function r(n){return function(r,t){return f(n(r),t)}}function t(n,r){return[n,r]}function e(n,r,t){var e=(r-n)/Math.max(0,t),o=Math.floor(Math.log(e)/Math.LN10),u=e/Math.pow(10,o);return o>=0?(u>=b?10:u>=q?5:u>=L?2:1)*Math.pow(10,o):-Math.pow(10,-o)/(u>=b?10:u>=q?5:u>=L?2:1)}function o(n,r,t){var e=Math.abs(r-n)/Math.max(0,t),o=Math.pow(10,Math.floor(Math.log(e)/Math.LN10)),u=e/o;return u>=b?o*=10:u>=q?o*=5:u>=L&&(o*=2),rr?1:n>=r?0:NaN},l=function(n){return 1===n.length&&(n=r(n)),{left:function(r,t,e,o){for(null==e&&(e=0),null==o&&(o=r.length);e>>1;n(r[u],t)<0?e=u+1:o=u}return e},right:function(r,t,e,o){for(null==e&&(e=0),null==o&&(o=r.length);e>>1;n(r[u],t)>0?o=u:e=u+1}return e}}},i=l(f),a=i.right,h=i.left,c=function(n,r){null==r&&(r=t);for(var e=0,o=n.length-1,u=n[0],f=new Array(o<0?0:o);en?1:r>=n?0:NaN},M=function(n){return null===n?NaN:+n},v=function(n,r){var t,e,o=n.length,u=0,f=-1,l=0,i=0;if(null==r)for(;++f1)return i/(u-1)},p=function(n,r){var t=v(n,r);return t?Math.sqrt(t):t},d=function(n,r){var t,e,o,u=n.length,f=-1;if(null==r){for(;++f=t)for(e=o=t;++ft&&(e=t),o=t)for(e=o=t;++ft&&(e=t),o0)return[n];if((o=r0)for(n=Math.ceil(n/l),r=Math.floor(r/l),f=new Array(u=Math.ceil(r-n+1));++is;)g.pop(),--M;var v,p=new Array(M+1);for(u=0;u<=M;++u)v=p[u]=[],v.x0=u>0?g[u-1]:c,v.x1=u=1)return+t(n[e-1],e-1,n);var e,o=(e-1)*r,u=Math.floor(o),f=+t(n[u],u,n);return f+(+t(n[u+1],u+1,n)-f)*(o-u)}},_=function(n,r,t){return n=m.call(n,M).sort(f),Math.ceil((t-r)/(2*(F(n,.75)-F(n,.25))*Math.pow(n.length,-1/3)))},z=function(n,r,t){return Math.ceil((t-r)/(3.5*p(n)*Math.pow(n.length,-1/3)))},D=function(n,r){var t,e,o=n.length,u=-1;if(null==r){for(;++u=t)for(e=t;++ue&&(e=t)}else for(;++u=t)for(e=t;++ue&&(e=t);return e},I=function(n,r){var t,e=n.length,o=e,u=-1,f=0;if(null==r)for(;++u=0;)for(e=n[o],r=e.length;--r>=0;)t[--f]=e[r];return t},R=function(n,r){var t,e,o=n.length,u=-1;if(null==r){for(;++u=t)for(e=t;++ut&&(e=t)}else for(;++u=t)for(e=t;++ut&&(e=t);return e},B=function(n,r){for(var t=r.length,e=new Array(t);t--;)e[t]=n[r[t]];return e},C=function(n,r){if(t=n.length){var t,e,o=0,u=0,l=n[u];for(null==r&&(r=f);++o1?Mr:n<-1?-Mr:Math.asin(n)}function o(n){return n>1?0:n<-1?jr:Math.acos(n)}function i(n){return n>0?Math.sqrt(n):0}function u(n){return(gr(n)-gr(-n))/2}function a(n){return(gr(n)+gr(-n))/2}function c(n){function r(n,r){var e=lr(n),t=lr(r),i=mr(r),u=t*e,a=-((1-u?sr((1+u)/2)/(1-u):-.5)+o/(1+u));return[a*t*mr(n),a*i]}var e=Pr(n/2),o=2*sr(lr(n/2))/(e*e);return r.invert=function(r,e){var u,a=i(r*r+e*e),c=-n/2,f=50;if(!a)return[0,0];do{var l=c/2,g=lr(l),v=mr(l),s=Pr(l),p=sr(1/g);c-=u=(2/s*p-o*s-a)/(-p/(v*v)+1-o/(2*g*g))}while(ar(u)>Rr&&--f>0);var h=mr(c);return[fr(r*h,a*lr(c)),t(e*h/a)]},r}function f(n,r){var e=lr(r),t=function(n){return n?n/Math.sin(n):1}(o(e*lr(n/=2)));return[2*e*mr(n)*t,mr(r)*t]}function l(n){function r(n,r){var a=lr(r),c=lr(n/=2);return[(1+a)*mr(n),(o*r>-fr(c,i)-.001?0:10*-o)+u+mr(r)*t-(1+a)*e*c]}var e=mr(n),t=lr(n),o=n>=0?1:-1,i=Pr(o*n),u=(1+e-t)/2;return r.invert=function(n,r){var a=0,c=0,f=50;do{var l=lr(a),g=mr(a),v=lr(c),s=mr(c),p=1+v,h=p*g-n,d=u+s*t-p*e*l-r,w=p*l/2,y=-g*s,m=e*p*g/2,P=t*v+e*l*s,R=y*m-P*w,b=(d*y-h*P)/R/2,j=(h*m-d*w)/R;a-=b,c-=j}while((ar(b)>Rr||ar(j)>Rr)&&--f>0);return o*c>-fr(lr(a),i)-.001?[2*a,c]:null},r}function g(n,r){var e=Pr(r/2),t=i(1-e*e),o=1+t*lr(n/=2),u=mr(n)*t/o,a=e/o,c=u*u,f=a*a;return[4/3*u*(3+c-3*f),4/3*a*(3+3*c-f)]}function v(n,r){var e=ar(r);return eMr){var a=fr(o[1],o[0]),c=i(o[0]*o[0]+o[1]*o[1]),f=u*wr((a-Mr)/u)+Mr,l=fr(mr(a-=f),2-lr(a));a=f+t(jr/c*mr(l))-l,o[0]=c*lr(a),o[1]=c*mr(a)}return o}var u=2*jr/n;return e.invert=function(n,e){var t=i(n*n+e*e);if(t>Mr){var a=fr(e,n),c=u*wr((a-Mr)/u)+Mr,f=a>c?-1:1,l=t*lr(c-a),g=1/Pr(f*o((l-jr)/i(jr*(jr-2*l)+t*t)));a=c+2*cr((g+f*i(g*g-3))/3),n=t*lr(a),e=t*mr(a)}return r.geoAzimuthalEquidistantRaw.invert(n,e)},e}function p(n,e){function t(t,o){var i=r.geoAzimuthalEqualAreaRaw(t/e,o);return i[0]*=n,i}return arguments.length<2&&(e=n),1===e?r.geoAzimuthalEqualAreaRaw:e===1/0?h:(t.invert=function(t,o){var i=r.geoAzimuthalEqualAreaRaw.invert(t/n,o);return i[0]*=e,i},t)}function h(n,r){return[n*lr(r)/lr(r/=2),2*mr(r)]}function d(){var n=p(1.68,2);return function(r,e){if(r+e<-1.4){var t=(r-e+1.6)*(r+e+1.4)/8;r+=t,e-=.8*t*mr(e+jr/2)}var o=n(r,e),i=(1-lr(r*e))/12;return o[1]<0&&(o[0]*=1+i),o[1]>0&&(o[1]*=1+i/1.5*o[0]*o[0]),o}}function w(n,r){var e,t=n*mr(r),o=30;do{r-=e=(r+mr(r)-t)/(1+lr(r))}while(ar(e)>Rr&&--o>0);return r/2}function y(n,r,e){function o(t,o){return[n*t*lr(o=w(e,o)),r*mr(o)]}return o.invert=function(o,i){return i=t(i/r),[o/(n*lr(i)),t((2*i+mr(2*i))/e)]},o}function m(n,r){var e=w(jr,r);return[qr*n/(1/lr(r)+Br/lr(e)),(r+Sr*mr(e))/qr]}function P(n,r){return[n*lr(r),r]}function R(n){function r(r,t){var o=e+n-t,i=o?r*lr(t)/o:o;return[o*mr(i),e-o*lr(i)]}if(!n)return P;var e=1/Pr(n);return r.invert=function(r,t){var o=i(r*r+(t=e-t)*t),u=e+n-o;return[o/lr(u)*fr(r,t),u]},r}function b(n){function r(r,e){var t=Mr-e,o=t?r*n*mr(t)/t:t;return[t*mr(o)/n,Mr-t*lr(o)]}return r.invert=function(r,e){var t=r*n,o=Mr-e,u=i(t*t+o*o),a=fr(t,o);return[(u?u/mr(u):1)*a/n,Mr-u]},r}function j(n,r,e,u,a,c){var f,l=lr(c);if(ar(n)>1||ar(c)>1)f=o(e*a+r*u*l);else{var g=mr(n/2),v=mr(c/2);f=2*t(i(g*g+r*u*v*v))}return ar(f)>Rr?[f,fr(u*mr(c),r*a-e*u*l)]:[0,0]}function M(n,r,e){return o((n*n+r*r-e*e)/(2*n*r))}function E(n){return n-2*jr*vr((n+jr)/(2*jr))}function A(n,r,e){for(var t,o=[[n[0],n[1],mr(n[1]),lr(n[1])],[r[0],r[1],mr(r[1]),lr(r[1])],[e[0],e[1],mr(e[1]),lr(e[1])]],i=o[2],u=0;u<3;++u,i=t)t=o[u],i.v=j(t[1]-i[1],i[3],i[2],t[3],t[2],t[0]-i[0]),i.point=[0,0];var a=M(o[0].v[0],o[2].v[0],o[1].v[0]),c=M(o[0].v[0],o[1].v[0],o[2].v[0]),f=jr-a;o[2].point[1]=0,o[0].point[0]=-(o[1].point[0]=o[0].v[0]/2);var l=[o[2].point[0]=o[0].point[0]+o[2].v[0]*lr(a),2*(o[0].point[1]=o[1].point[1]=o[2].v[0]*mr(a))];return function(n,r){var e,t=mr(r),i=lr(r),u=new Array(3);for(e=0;e<3;++e){var a=o[e];if(u[e]=j(r-a[1],a[3],a[2],i,t,n-a[0]),!u[e][0])return a.point;u[e][1]=E(u[e][1]-a.v[1])}var g=l.slice();for(e=0;e<3;++e){var v=2==e?0:e+1,s=M(o[e].v[0],u[e][0],u[v][0]);u[e][1]<0&&(s=-s),e?1==e?(s=c-s,g[0]-=u[e][0]*lr(s),g[1]-=u[e][0]*mr(s)):(s=f-s,g[0]+=u[e][0]*lr(s),g[1]+=u[e][0]*mr(s)):(g[0]+=u[e][0]*lr(s),g[1]-=u[e][0]*mr(s))}return g[0]/=3,g[1]/=3,g}}function S(n){return n[0]*=Cr,n[1]*=Cr,n}function k(n,e,t){var o=r.geoCentroid({type:"MultiPoint",coordinates:[n,e,t]}),i=[-o[0],-o[1]],u=r.geoRotation(i),a=r.geoProjection(A(S(u(n)),S(u(e)),S(u(t)))).rotate(i),c=a.center;return delete a.rotate,a.center=function(n){return arguments.length?c(u(n)):u.invert(c())},a.clipAngle(90)}function x(n,r){var e=i(1-mr(r));return[2/kr*n*e,kr*(1-e)]}function G(n){function r(n,r){return[n,(n?n/mr(n):1)*(mr(r)*lr(n)-e*lr(r))]}var e=Pr(n);return r.invert=e?function(n,r){n&&(r*=mr(n)/n);var t=lr(n);return[n,2*fr(i(t*t+e*e-r*r)-t,e-r)]}:function(n,r){return[n,t(n?r*Pr(n)/n:r)]},r}function C(n,r){return[Wr*n*(2*lr(2*r/3)-1)/kr,Wr*kr*mr(r/3)]}function z(n){function r(n,r){return[n*e,mr(r)/e]}var e=lr(n);return r.invert=function(n,r){return[n/e,t(r*e)]},r}function F(n){function r(n,r){return[n*e,(1+e)*Pr(r/2)]}var e=lr(n);return r.invert=function(n,r){return[n/e,2*cr(r/(1+e))]},r}function L(n,r){var e=i(8/(3*jr));return[e*n*(1-ar(r)/jr),e*r]}function q(n,r){var e=i(4-3*mr(ar(r)));return[2/i(6*jr)*n*e,yr(r)*i(2*jr/3)*(2-e)]}function B(n,r){var e=i(jr*(4+jr));return[2/e*n*(1+i(1-4*r*r/(jr*jr))),4/e*r]}function H(n,r){var e=(2+Mr)*mr(r);r/=2;for(var t=0,o=1/0;t<10&&ar(o)>Rr;t++){var u=lr(r);r-=o=(r+mr(r)*(u+2)-e)/(2*u*(1+u))}return[2/i(jr*(4+jr))*n*(1+lr(r)),2*i(jr/(4+jr))*mr(r)]}function I(n,r){return[n*(1+lr(r))/i(2+jr),2*r/i(2+jr)]}function W(n,r){for(var e=(1+Mr)*mr(r),t=0,o=1/0;t<10&&ar(o)>Rr;t++)r-=o=(r+mr(r)-e)/(1+lr(r));return e=i(2+jr),[n*(1+lr(r))/e,2*r/e]}function T(n,r){var e=mr(n/=2),t=lr(n),o=i(lr(r)),u=lr(r/=2),a=mr(r)/(u+Sr*t*o),c=i(2/(1+a*a)),f=i((Sr*u+(t+e)*o)/(Sr*u+(t-e)*o));return[Tr*(c*(f-1/f)-2*sr(f)),Tr*(c*a*(f+1/f)-2*cr(a))]}function D(n,r){var e=Pr(r/2);return[n*Dr*i(1-e*e),(1+Dr)*e]}function N(n,r){var e=r/2,t=lr(e);return[2*n/kr*lr(r)*t*t,kr*Pr(e)]}function Q(n){return[n[0]/2,t(Pr(n[1]/2*Cr))*Gr]}function V(n){return[2*n[0],2*cr(mr(n[1]*Cr))*Gr]}function _(n,e){function t(e,t){var a=r.geoAzimuthalEquidistantRaw(e,t),c=a[0],f=a[1],l=c*c+f*f;if(l>u){var g=i(l),v=fr(f,c),s=o*wr(v/o),p=v-s,h=n*lr(p),d=(n*mr(p)-p*mr(h))/(Mr-h),w=K(p,d),y=(jr-n)/O(w,h,jr);c=g;var m,P=50;do{c-=m=(n+O(w,h,c)*y-g)/(w(c)*y)}while(ar(m)>Rr&&--P>0);f=p*mr(c),cu){var c=i(a),f=fr(t,e),l=o*wr(f/o),g=f-l;e=c*lr(g),t=c*mr(g);for(var v=e-Mr,s=mr(e),p=t/s,h=eRr&&(n%=Mr);var l=function(n,r){if(r===Mr)return[0,0];var e,o,u=mr(r),a=u*u,c=a*a,f=1+c,l=1+3*c,g=1-c,v=t(1/i(f)),s=g+a*f*v,p=(1-u)/s,h=i(p),d=p*f,w=i(d),y=h*g;if(0===n)return[0,-(y+a*w)];var m,P=lr(r),R=1/P,b=2*u*P,j=(-s*P-(-3*a+v*l)*b*(1-u))/(s*s),M=-R*b,E=-R*(a*f*j+p*l*b),A=-2*R*(g*(.5*j/h)-2*a*h*b),S=4*n/jr;if(n>.222*jr||r.175*jr){if(e=(y+a*i(d*(1+c)-y*y))/(1+c),n>jr/4)return[e,e];var k=e,x=.5*e;e=.5*(x+k),o=50;do{var G=i(d-e*e),C=e*(A+M*G)+E*t(e/w)-S;if(!C)break;C<0?x=e:k=e,e=.5*(x+k)}while(ar(k-x)>Rr&&--o>0)}else{e=Rr,o=25;do{var z=e*e,F=i(d-z),L=A+M*F,q=e*L+E*t(e/w)-S,B=L+(E-M*z)/F;e-=m=F?q/B:0}while(ar(m)>Rr&&--o>0)}return[e,-y-a*i(d-e*e)]}(n>jr/4?Mr-n:n,r);return n>jr/4&&(f=l[0],l[0]=-l[1],l[1]=-f),l[0]*=e,l[1]*=-o,l}function X(n,r){var e,o,c,f,l;if(r=1-Rr)return e=(1-r)/4,o=a(n),f=function(n){return((n=gr(2*n))-1)/(n+1)}(n),c=1/o,l=o*u(n),[f+e*(l-n)/(o*o),c-e*f*c*(l-n),c+e*f*c*(l+n),2*cr(gr(n))-Mr+e*(l-n)/o];var g=[1,0,0,0,0,0,0,0,0],v=[i(r),0,0,0,0,0,0,0,0],s=0;for(o=i(1-r),l=1;ar(v[s]/g[s])>Rr&&s<8;)e=g[s++],v[s]=(e-o)/2,g[s]=(e+o)/2,o=i(e*o),l*=2;c=l*g[s]*n;do{c=(t(f=v[s]*mr(o=c)/g[s])+c)/2}while(--s);return[mr(c),f=lr(c),f/lr(c-o),c]}function Y(n,r){if(!r)return n;if(1===r)return sr(Pr(n/2+Er));for(var e=1,t=i(1-r),o=i(r),u=0;ar(o)>Rr;u++){if(n%jr){var a=cr(t*Pr(n)/e);a<0&&(a+=jr),n+=a+~~(n/jr)*jr}else n+=n;o=(e+t)/2,t=i(e*t),o=((e=o)-t)/2}return n/(dr(2,u)*e)}function Z(n,r){var e=(Sr-1)/(Sr+1),t=i(1-e*e),o=Y(Mr,t*t),a=sr(Pr(jr/4+ar(r)/2)),c=gr(-1*a)/i(e),f=function(n,r){var e=n*n,t=r+1,o=1-e-r*r;return[.5*((n>=0?Mr:-Mr)-fr(o,2*n)),-.25*sr(o*o+4*e)+.5*sr(t*t+e)]}(c*lr(-1*n),c*mr(-1*n)),l=function(n,r,e){var t=ar(n),o=u(ar(r));if(t){var a=1/mr(t),c=1/(Pr(t)*Pr(t)),f=-(c+e*(o*o*a*a)-1+e),l=(-f+i(f*f-(e-1)*c*4))/2;return[Y(cr(1/i(l)),e)*yr(n),Y(cr(i((l/c-1)/e)),1-e)*yr(r)]}return[0,Y(cr(o),1-e)*yr(r)]}(f[0],f[1],t*t);return[-l[1],(r>=0?1:-1)*(.5*o-l[0])]}function $(n){function r(n,r){var i=u(n,r);n=i[0],r=i[1];var a=mr(r),c=lr(r),f=lr(n),l=o(e*a+t*c*f),g=mr(l),v=ar(g)>Rr?l/g:1;return[v*t*mr(n),(ar(n)>Mr?v:-v)*(e*c-t*a*f)]}var e=mr(n),t=lr(n),u=nn(n);return u.invert=nn(-n),r.invert=function(n,r){var t=i(n*n+r*r),o=-mr(t),a=lr(t),c=t*a,f=-r*o,l=t*e,g=i(c*c+f*f-l*l),v=fr(c*l+f*g,f*l-c*g),s=(t>Mr?-1:1)*fr(n*o,t*lr(v)*a+r*mr(v)*o);return u.invert(s,v)},r}function nn(n){var r=mr(n),e=lr(n);return function(n,o){var i=lr(o),u=lr(n)*i,a=mr(n)*i,c=mr(o);return[fr(a,u*e-c*r),t(c*e+u*r)]}}function rn(n){function r(r,l){var g,v=ar(l);if(v>e){var s=hr(n-1,pr(0,vr((r+jr)/a)));(g=x(r+=jr*(n-1)/n-s*a,v))[0]=g[0]*xr/t-xr*(n-1)/(2*n)+s*xr/n,g[1]=o+4*(g[1]-i)*u/xr,l<0&&(g[1]=-g[1])}else g=Jr(r,l);return g[0]*=c,g[1]/=f,g}var e=Ur*Cr,t=x(jr,e)[0]-x(-jr,e)[0],o=Jr(0,e)[1],i=x(0,e)[1],u=kr-i,a=xr/n,c=4/xr,f=o+u*u*4/xr;return r.invert=function(r,e){r/=c;var l=ar(e*=f);if(l>o){var g=hr(n-1,pr(0,vr((r+jr)/a))),v=x.invert(r=(r+jr*(n-1)/n-g*a)*t/xr,.25*(l-o)*xr/u+i);return v[0]-=jr*(n-1)/n-g*a,e<0&&(v[1]=-v[1]),v}return Jr.invert(r,e)},r}function en(n){function r(r,t){var o,v,s=1-mr(t);if(s&&s<2){var p,h=Mr-t,d=25;do{var w=mr(h),y=lr(h),m=a+fr(w,u-y),P=1+g-2*u*y;h-=p=(h-l*a-u*w+P*m-.5*s*e)/(2*u*w*m)}while(ar(p)>br&&--d>0);o=c*i(P),v=r*m/jr}else o=c*(n+s),v=r*a/jr;return[o*mr(v),f-o*lr(v)]}var e,u=1+n,a=t(mr(1/u)),c=2*i(jr/(e=jr+4*a*u)),f=.5*c*(u+i(n*(2+n))),l=n*n,g=u*u;return r.invert=function(n,r){var v=n*n+(r-=f)*r,s=(1+g-v/(c*c))/(2*u),p=o(s),h=mr(p),d=a+fr(h,u-s);return[t(n/i(v))*jr/d,t(1-2*(p-l*a-u*h+(1+g-2*u*s)*d)/e)]},r}function tn(n,r){return r>-Xr?(n=Lr(n,r),n[1]+=Yr,n):P(n,r)}function on(n,r){return ar(r)>Xr?(n=Lr(n,r),n[1]-=r>0?Yr:-Yr,n):P(n,r)}function un(n,r){return ar(n[0]-r[0])2)return null;var i=(r/=2)*r,u=(e/=2)*e,a=2*e/(1+i+u);return a=dr((1+a)/(1-a),1/n),[fr(2*r,1-i-u)/n,t((a-1)/(a+1))]},r}function ln(n,r){return[n*(1+i(lr(r)))/2,r/(lr(r/2)*lr(n/6))]}function gn(n,r){var e=n*n,t=r*r;return[n*(.975534+t*(-.0143059*e-.119161+-.0547009*t)),r*(1.00384+e*(.0802894+-.02855*t+199025e-9*e)+t*(.0998909+-.0491032*t))]}function vn(n,r){return[mr(n)/lr(r),Pr(r)*lr(n)]}function sn(n){function r(r,o){var i=o-n,u=ar(i)=0;)g=(l=n[f])[0]+a*(o=g)-c*v,v=l[1]+a*v+c*o;return g=a*(o=g)-c*v,v=a*v+c*o,[g,v]}var e=n.length-1;return r.invert=function(r,o){var u=20,a=r,c=o;do{for(var f,l=e,g=n[l],v=g[0],s=g[1],p=0,h=0;--l>=0;)p=v+a*(f=p)-c*h,h=s+a*h+c*f,v=(g=n[l])[0]+a*(f=v)-c*s,s=g[1]+a*s+c*f;var d,w,y=(p=v+a*(f=p)-c*h)*p+(h=s+a*h+c*f)*h;a-=d=((v=a*(f=v)-c*s-r)*p+(s=a*s+c*f-o)*h)/y,c-=w=(s*p-v*h)/y}while(ar(d)+ar(w)>Rr*Rr&&--u>0);if(u){var m=i(a*a+c*c),P=2*cr(.5*m),R=mr(P);return[fr(a*R,m*lr(P)),m?t(c*R/m):0]}},r}function dn(n,e){var t=r.geoProjection(hn(n)).rotate(e).clipAngle(90),o=r.geoRotation(e),i=t.center;return delete t.rotate,t.center=function(n){return arguments.length?i(o(n)):o.invert(i())},t}function wn(n,r){var e=t(7*mr(r)/(3*ge));return[ge*n*(2*lr(2*e/3)-1)/ve,9*mr(e/3)/ve]}function yn(n,r){for(var e,t=(1+Ar)*mr(r),o=r,u=0;u<25&&(o-=e=(mr(o/2)+mr(o)-t)/(.5*lr(o/2)+lr(o)),!(ar(e)Rr&&--f>0);var s=r*(l=Pr(c)),p=Pr(ar(i)0?Mr:-Mr)*(f+i*(g-a)/2+i*i*(g-2*f+a)/2)]}function Wn(n,r){function e(r,e){var t=o(r,e),i=t[1],c=i*a/(n-1)+u;return[t[0]*u/c,i/c]}var o=function(n){function r(r,e){var t=lr(e),o=(n-1)/(n-t*lr(r));return[o*t*mr(r),o*mr(e)]}return r.invert=function(r,e){var o=r*r+e*e,u=i(o),a=(n-i(1-o*(n+1)/(n-1)))/((n-1)/u+u/(n-1));return[fr(r*a,u*i(1-a*a)),u?t(e*a/u):0]},r}(n);if(!r)return o;var u=lr(r),a=mr(r);return e.invert=function(r,e){var t=(n-1)/(n-1-e*a);return o.invert(t*r,t*e*u)},e}function Tn(n){return n.length>0}function Dn(n){return n===De||n===Qe?[0,n]:[He,function(n){return Math.floor(n*Be)/Be}(n)]}function Nn(n){var r=n[0],e=n[1],t=!1;return r<=Ie?(r=He,t=!0):r>=Te&&(r=We,t=!0),e<=Ne?(e=De,t=!0):e>=Ve&&(e=Qe,t=!0),t?[r,e]:n}function Qn(n){return n.map(Nn)}function Vn(n,r,e){for(var t=0,o=n.length;t=Te||l<=Ne||l>=Ve){i[u]=Nn(c);for(var g=u+1;gIe&&sNe&&p=a)break;e.push({index:-1,polygon:r,ring:i=i.slice(g-1)}),i[0]=Dn(i[0][1]),u=-1,a=i.length}}}}function _n(n){var r,e,t,o,i,u,a=n.length,c={},f={};for(r=0;r0?1:n<0?-1:0},mr=Math.sin,Pr=Math.tan,Rr=1e-6,br=1e-12,jr=Math.PI,Mr=jr/2,Er=jr/4,Ar=Math.SQRT1_2,Sr=i(2),kr=i(jr),xr=2*jr,Gr=180/jr,Cr=jr/180;f.invert=function(n,r){if(!(n*n+4*r*r>jr*jr+Rr)){var e=n,t=r,u=25;do{var a,c=mr(e),f=mr(e/2),l=lr(e/2),g=mr(t),v=lr(t),s=mr(2*t),p=g*g,h=v*v,d=f*f,w=1-h*l*l,y=w?o(v*l)*i(a=1/w):a=0,m=2*y*v*f-n,P=y*g-r,R=a*(h*d+y*v*l*p),b=a*(.5*c*s-2*y*g*f),j=.25*a*(s*f-y*g*h*c),M=a*(p*l+y*d*v),E=b*j-M*R;if(!E)break;var A=(P*b-m*M)/E,S=(m*j-P*R)/E;e-=A,t-=S}while((ar(A)>Rr||ar(S)>Rr)&&--u>0);return[e,t]}};g.invert=function(n,r){if(n*=3/8,r*=3/8,!n&&ar(r)>1)return null;var e=1+n*n+r*r,o=i((e-i(e*e-4*r*r))/2),c=t(o)/3,f=o?function(n){return sr(n+i(n*n-1))}(ar(r/o))/3:function(n){return sr(n+i(n*n+1))}(ar(n))/3,l=lr(c),g=a(f),v=g*g-l*l;return[2*yr(n)*fr(u(f)*l,.25-v),2*yr(r)*fr(g*mr(c),.25+v)]};var zr=i(8),Fr=sr(1+Sr);v.invert=function(n,r){if((t=ar(r))br&&--i>0);return[n/(lr(o)*(zr-1/mr(o))),yr(r)*o]};h.invert=function(n,r){var e=2*t(r/2);return[n*lr(e/2)/lr(e),e]};var Lr=y(Sr/Mr,Sr,jr),qr=2.00276,Br=1.11072;m.invert=function(n,r){var e,t,o=qr*r,i=r<0?-Er:Er,u=25;do{t=o-Sr*mr(i),i-=e=(mr(2*i)+2*i-jr*mr(t))/(2*lr(2*i)+2+jr*lr(t)*Sr*lr(i))}while(ar(e)>Rr&&--u>0);return t=o-Sr*mr(i),[n*(1/lr(t)+Br/lr(i))/qr,t]};var Hr=function(n){var e=0,t=r.geoProjectionMutator(n),o=t(e);return o.parallel=function(n){return arguments.length?t(e=n*Cr):e*Gr},o};P.invert=function(n,r){return[n/lr(r),r]};var Ir=y(1,4/jr,jr);x.invert=function(n,r){var e=(e=r/kr-1)*e;return[e>0?n*i(jr/e)/2:0,t(1-e)]};var Wr=i(3);C.invert=function(n,r){var e=3*t(r/(Wr*kr));return[kr*n/(Wr*(2*lr(2*e/3)-1)),e]};L.invert=function(n,r){var e=i(8/(3*jr)),t=r/e;return[n/(e*(1-ar(t)/jr)),t]};q.invert=function(n,r){var e=2-ar(r)/i(2*jr/3);return[n*i(6*jr)/(2*e),yr(r)*t((4-e*e)/3)]};B.invert=function(n,r){var e=i(jr*(4+jr))/2;return[n*e/(1+i(1-r*r*(4+jr)/(4*jr))),r*e/2]};H.invert=function(n,r){var e=r*i((4+jr)/jr)/2,o=t(e),u=lr(o);return[n/(2/i(jr*(4+jr))*(1+u)),t((o+e*(u+2))/(2+Mr))]};I.invert=function(n,r){var e=i(2+jr),t=r*e/2;return[e*n/(1+lr(t)),t]};W.invert=function(n,r){var e=1+Mr,o=i(e/2);return[2*n*o/(1+lr(r*=o)),t((r+mr(r))/e)]};var Tr=3+2*Sr;T.invert=function(n,r){if(!(e=g.invert(n/1.2,1.065*r)))return null;var e,t=e[0],o=e[1],u=20;n/=Tr,r/=Tr;do{var a=t/2,c=o/2,f=mr(a),l=lr(a),v=mr(c),s=lr(c),p=lr(o),h=i(p),d=v/(s+Sr*l*h),w=d*d,y=i(2/(1+w)),m=(Sr*s+(l+f)*h)/(Sr*s+(l-f)*h),P=i(m),R=P-1/P,b=P+1/P,j=y*R-2*sr(P)-n,M=y*d*b-2*cr(d)-r,E=v&&Ar*h*f*w/v,A=(Sr*l*s+h)/(2*(s+Sr*l*h)*(s+Sr*l*h)*h),S=-.5*d*y*y*y,k=S*E,x=S*A,G=(G=2*s+Sr*h*(l-f))*G*P,C=(Sr*l*s*h+p)/G,z=-Sr*f*v/(h*G),F=R*k-2*C/P+y*(C+C/m),L=R*x-2*z/P+y*(z+z/m),q=d*b*k-2*E/(1+w)+y*b*E+y*d*(C-C/m),B=d*b*x-2*A/(1+w)+y*b*A+y*d*(z-z/m),H=L*q-B*F;if(!H)break;var I=(M*L-j*B)/H,W=(j*q-M*F)/H;t-=I,o=pr(-Mr,hr(Mr,o-W))}while((ar(I)>Rr||ar(W)>Rr)&&--u>0);return ar(ar(o)-Mr)Rr||ar(s)>Rr)&&--d>0);return[p,h]},l},Qr=Nr(2.8284,-1.6988,.75432,-.18071,1.76003,-.38914,.042555),Vr=Nr(2.583819,-.835827,.170354,-.038094,1.543313,-.411435,.082742),_r=Nr(5/6*jr,-.62636,-.0344,0,1.3493,-.05524,0,.045);U.invert=function(n,r){var e,t=n,o=r,i=50;do{var u=o*o;o-=e=(o*(1+u/12)-r)/(1+u/4)}while(ar(e)>Rr&&--i>0);i=50,n/=1-.162388*u;do{var a=(a=t*t)*a;t-=e=(t*(.87-952426e-9*a)-n)/(.87-.00476213*a)}while(ar(e)>Rr&&--i>0);return[t,o]};var Kr=Nr(2.6516,-.76534,.19123,-.047094,1.36289,-.13965,.031762),Or=function(n){function r(r,t){var o=r>0?-.5:.5,i=n(r+o*jr,t);return i[0]-=o*e,i}var e=n(Mr,0)[0]-n(-Mr,0)[0];return n.invert&&(r.invert=function(r,t){var o=r>0?-.5:.5,i=n.invert(r+o*e,t),u=i[0]-o*jr;return u<-jr?u+=2*jr:u>jr&&(u-=2*jr),i[0]=u,i}),r};J.invert=function(n,r){ar(n)>1&&(n=2*yr(n)-n),ar(r)>1&&(r=2*yr(r)-r);var e=yr(n),o=yr(r),u=-e*n,a=-o*r,c=a/u<1,f=function(n,r){for(var e=0,o=1,u=.5,a=50;;){var c=u*u,f=i(u),l=t(1/i(1+c)),g=1-c+u*(1+c)*l,v=(1-f)/g,s=i(v),p=v*(1+c),h=s*(1-c),d=i(p-n*n),w=r+h+u*d;if(ar(o-e)0?e=u:o=u,u=.5*(e+o)}if(!a)return null;var y=t(f),m=lr(y),P=1/m,R=2*f*m,b=(-g*m-(-3*u+l*(1+3*c))*R*(1-f))/(g*g);return[jr/4*(n*(-2*P*(.5*b/s*(1-c)-2*u*s*R)+-P*R*d)+-P*(u*(1+c)*b+v*(1+3*c)*R)*t(n/i(p))),y]}(c?a:u,c?u:a),l=f[0],g=f[1],v=lr(g);return c&&(l=-Mr-l),[e*(fr(mr(l)*v,-mr(g))+jr),o*t(lr(l)*v)]};Z.invert=function(n,r){var e=(Sr-1)/(Sr+1),t=i(1-e*e),o=function(n,r,e){var t,o,i;return n?(t=X(n,e),r?(o=X(r,1-e),i=o[1]*o[1]+e*t[0]*t[0]*o[0]*o[0],[[t[0]*o[2]/i,t[1]*t[2]*o[0]*o[1]/i],[t[1]*o[1]/i,-t[0]*t[2]*o[0]*o[2]/i],[t[2]*o[1]*o[2]/i,-e*t[0]*t[1]*o[0]/i]]):[[t[0],0],[t[1],0],[t[2],0]]):(o=X(r,1-e),[[0,o[0]/o[1]],[1/o[1],0],[o[2]/o[1],0]])}(.5*Y(Mr,t*t)-r,-n,t*t),u=function(n,r){var e=r[0]*r[0]+r[1]*r[1];return[(n[0]*r[0]+n[1]*r[1])/e,(n[1]*r[0]-n[0]*r[1])/e]}(o[0],o[1]);return[fr(u[1],u[0])/-1,2*cr(gr(-.5*sr(e*u[0]*u[0]+e*u[1]*u[1])))-Mr]};var Ur=41+48/36+37/3600,Jr=z(0),Xr=.7109889596207567,Yr=.0528035274542;tn.invert=function(n,r){return r>-Xr?Lr.invert(n,r-Yr):P.invert(n,r)};on.invert=function(n,r){return ar(r)>Xr?Lr.invert(n,r+(r>0?Yr:-Yr)):P.invert(n,r)};var Zr=function(n,t){function o(r,e){for(var o=e<0?-1:1,i=t[+(e<0)],u=0,a=i.length-1;ui[u][2][0];++u);var c=n(r-i[u][1][0],e);return c[0]+=n(i[u][1][0],o*e>o*i[u][0][1]?i[u][0][1]:e)[0],c}var i,u;n.invert&&(o.invert=function(r,e){for(var i=u[+(e<0)],a=t[+(e<0)],c=0,f=i.length;c=0;--c)t=(r=n[1][c])[0][0],o=r[0][1],i=r[1][1],u=r[2][0],a=r[2][1],f.push(an([[u-Rr,a-Rr],[u-Rr,i+Rr],[t+Rr,i+Rr],[t+Rr,o-Rr]],30));return{type:"Polygon",coordinates:[e.merge(f)]}}(r),t=r.map(function(n){return n.map(function(n){return[[n[0][0]*Cr,n[0][1]*Cr],[n[1][0]*Cr,n[1][1]*Cr],[n[2][0]*Cr,n[2][1]*Cr]]})}),u=t.map(function(r){return r.map(function(r){var e,t=n(r[0][0],r[0][1])[0],o=n(r[2][0],r[2][1])[0],i=n(r[1][0],r[0][1])[1],u=n(r[1][0],r[1][1])[1];return i>u&&(e=i,i=u,u=e),[[t,i],[o,u]]})}),a):t.map(function(n){return n.map(function(n){return[[n[0][0]*Gr,n[0][1]*Gr],[n[1][0]*Gr,n[1][1]*Gr],[n[2][0]*Gr,n[2][1]*Gr]]})})},null!=t&&a.lobes(t),a},$r=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]],ne=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]],re=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]],ee=[[[[-180,0],[-90,90],[0,0]],[[0,0],[90,90],[180,0]]],[[[-180,0],[-90,-90],[0,0]],[[0,0],[90,-90],[180,0]]]],te=[[[[-180,35],[-30,90],[0,35]],[[0,35],[30,90],[180,35]]],[[[-180,-10],[-102,-90],[-65,-10]],[[-65,-10],[5,-90],[77,-10]],[[77,-10],[103,-90],[180,-10]]]],oe=[[[[-180,0],[-110,90],[-40,0]],[[-40,0],[0,90],[40,0]],[[40,0],[110,90],[180,0]]],[[[-180,0],[-110,-90],[-40,0]],[[-40,0],[0,-90],[40,0]],[[40,0],[110,-90],[180,0]]]];cn.invert=function(n,r){return[xr/3*n/i(jr*jr/3-r*r),r]};var ie=jr/Sr;ln.invert=function(n,r){var e=ar(n),t=ar(r),u=Rr,a=Mr;tRr||ar(d)>Rr)&&--o>0);return o&&[e,t]};vn.invert=function(n,r){var e=n*n,u=r*r+1,a=e+u,c=n?Ar*i((a-i(a*a-4*e))/e):1/i(u);return[t(n*c),yr(r)*o(c)]};pn.invert=function(n,r){return[n,2.5*cr(gr(.8*r))-.625*jr]};var ue=[[.9972523,0],[.0052513,-.0041175],[.0074606,.0048125],[-.0153783,-.1968253],[.0636871,-.1408027],[.3660976,-.2937382]],ae=[[.98879,0],[0,0],[-.050909,0],[0,0],[.075528,0]],ce=[[.984299,0],[.0211642,.0037608],[-.1036018,-.0575102],[-.0329095,-.0320119],[.0499471,.1223335],[.026046,.0899805],[7388e-7,-.1435792],[.0075848,-.1334108],[-.0216473,.0776645],[-.0225161,.0853673]],fe=[[.9245,0],[0,0],[.01943,0]],le=[[.721316,0],[0,0],[-.00881625,-.00617325]],ge=i(6),ve=i(7);wn.invert=function(n,r){var e=3*t(r*ve/9);return[n*ve/(ge*(2*lr(2*e/3)-1)),t(3*mr(e)*ge/7)]};yn.invert=function(n,r){var e=r*i(2+Sr)/(2*i(3)),o=2*t(e);return[3*Sr*n/(1+2*lr(o)/lr(o/2)),t((e+mr(o))/(1+Ar))]};mn.invert=function(n,r){var e=i(6/(4+jr)),o=r/e;return ar(ar(o)-Mr)br&&--a>0);return t=u*u,o=t*t,i=t*o,[n/(.84719-.13063*t+i*i*(.05494*t-.04515-.02326*o+.00331*i)),u]};Rn.invert=function(n,r){for(var e=r/2,t=0,o=1/0;t<10&&ar(o)>Rr;++t){var i=lr(r/2);r-=o=(r-Pr(r/2)-e)/(1-.5/(i*i))}return[2*n/(1+lr(r)),r]};var se=1.0148,pe=.23185,he=-.14499,de=.02406,we=se,ye=5*pe,me=7*he,Pe=9*de,Re=1.790857183;bn.invert=function(n,r){r>Re?r=Re:r<-Re&&(r=-Re);var e,t=r;do{var o=t*t;t-=e=(t*(se+o*o*(pe+o*(he+de*o)))-r)/(we+o*o*(ye+o*(me+Pe*o)))}while(ar(e)>Rr);return[n,t]};jn.invert=function(n,r){if(ar(r)Rr&&--a>0);return c=Pr(u),[(ar(r)=0;)if(t=r[a],e[0]===t[0]&&e[1]===t[1]){if(i)return[i,e];i=e}}}(n.face,r.face),t=be(e.map(r.project),e.map(n.project));n.transform=r.transform?Mn(r.transform,t):t;for(var i=r.edges,u=0,a=i.length;ut^s>t&&e<(v-f)*(t-l)/(s-l)+f&&(o=!o)}return o}(n[0],e))return n.push(r),!0})||n.push([r])}),xe=[],n.length?n.length>1?{type:"MultiPolygon",coordinates:n}:{type:"Polygon",coordinates:n[0]}:null}},Fe=function(n){function e(r,e){var o=ar(r)0?r-jr:r+jr,e),u=(i[0]-i[1])*Ar,a=(i[0]+i[1])*Ar;if(o)return[u,a];var c=t*Ar,f=u>0^a>0?-1:1;return[f*u-yr(a)*c,f*a-yr(u)*c]}var t=n(Mr,0)[0]-n(-Mr,0)[0];return n.invert&&(e.invert=function(r,e){var o=(r+e)*Ar,i=(e-r)*Ar,u=ar(o)<.5*t&&ar(i)<.5*t;if(!u){var a=t*Ar,c=o>0^i>0?-1:1,f=-c*r+(i>0?1:-1)*a,l=-c*e+(o>0?1:-1)*a;o=(-f-l)*Ar,i=(f-l)*Ar}var g=n.invert(o,i);return u||(g[0]+=o>0?jr:-jr),g}),r.geoProjection(e).rotate([-90,-90,45]).clipAngle(179.999)},Le=function(){return Fe(Z).scale(111.48)},qe=[[.9986,-.062],[1,0],[.9986,.062],[.9954,.124],[.99,.186],[.9822,.248],[.973,.31],[.96,.372],[.9427,.434],[.9216,.4958],[.8962,.5571],[.8679,.6176],[.835,.6769],[.7986,.7346],[.7597,.7903],[.7186,.8435],[.6732,.8936],[.6213,.9394],[.5722,.9761],[.5322,1]];qe.forEach(function(n){n[1]*=1.0144}),In.invert=function(n,r){var e=r/Mr,t=90*e,o=hr(18,ar(t/5)),i=pr(0,vr(o));do{var u=qe[i][1],a=qe[i+1][1],c=qe[hr(19,i+2)][1],f=c-u,l=c-2*a+u,g=2*(ar(e)-a)/f,v=l/f,s=g*(1-v*g*(1-2*v*g));if(s>=0||1===i){t=(r>=0?5:-5)*(s+o);var p,h=50;do{s=(o=hr(18,ar(t)/5))-(i=vr(o)),u=qe[i][1],a=qe[i+1][1],c=qe[hr(19,i+2)][1],t-=(p=(r>=0?Mr:-Mr)*(a+s*(c-u)/2+s*s*(c-2*a+u)/2)-r)*Gr}while(ar(p)>br&&--h>0);break}}while(--i>=0);var d=qe[i][0],w=qe[i+1][0],y=qe[hr(19,i+2)][0];return[n/(w+s*(y-d)/2+s*s*(y-2*w+d)/2),t*Cr]};var Be=1e4,He=-180,Ie=He+1e-4,We=180,Te=We-1e-4,De=-90,Ne=De+1e-4,Qe=90,Ve=Qe-1e-4;Un.invert=function(n,r){var e=r/1.70711,t=mr(Er*e);return[n/(.74482-.34588*t*t),2*cr(e)]};var _e=function(n,e,o){var i=r.geoInterpolate(e,o),u=i(.5),a=r.geoRotation([-u[0],-u[1]])(e),c=i.distance/2,f=-t(mr(a[1]*Cr)/mr(c)),l=[-u[0],-u[1],-(a[0]>0?jr-f:f)*Gr],g=r.geoProjection(n(c)).rotate(l),v=r.geoRotation(l),s=g.center;return delete g.rotate,g.center=function(n){return arguments.length?s(v(n)):v.invert(s())},g.clipAngle(90)};$n.invert=function(n,r){if(ar(r)Rr&&--c>0);return[yr(n)*(i(o*o+4)+o)*jr/4,Mr*a]};var Ke=4*jr+3*i(3),Oe=2*i(2*jr*i(3)/Ke),Ue=y(Oe*i(3)/jr,Oe,Ke/6);tr.invert=function(n,r){return[n/i(1-3*r*r/(jr*jr)),r]};or.invert=function(n,r){var e=n/2.66723,o=r/1.24104,u=i(e*e+o*o),a=2*t(u/2);return[3*fr(n*Pr(a),2.66723*u),u&&t(r*mr(a)/(1.24104*.90631*u))]};ir.invert=function(n,r){var e=(n*n+r*r)/-2,o=i(-e*(2+e)),u=r*e+n*o,a=n*e-r*o,c=i(a*a+u*u);return[fr(o*u,c*(1+e)),c?-t(o*a/c):0]};ur.invert=function(n,r){var e=n,t=r,u=25;do{var a,c=lr(t),f=mr(t),l=mr(2*t),g=f*f,v=c*c,s=mr(e),p=lr(e/2),h=mr(e/2),d=h*h,w=1-v*p*p,y=w?o(c*p)*i(a=1/w):a=0,m=.5*(2*y*c*h+e/Mr)-n,P=.5*(y*f+t)-r,R=.5*a*(v*d+y*c*p*g)+.5/Mr,b=a*(s*l/4-y*f*h),j=.125*a*(l*h-y*f*v*s),M=.5*a*(g*p+y*d*c)+.5,E=b*j-M*R,A=(P*b-m*M)/E,S=(m*j-P*R)/E;e-=A,t-=S}while((ar(A)>Rr||ar(S)>Rr)&&--u>0);return[e,t]};n.geoAiry=function(){var n=Mr,e=r.geoProjectionMutator(c),t=e(n);return t.radius=function(r){return arguments.length?e(n=r*Cr):n*Gr},t.scale(179.976).clipAngle(147)},n.geoAiryRaw=c,n.geoAitoff=function(){return r.geoProjection(f).scale(152.63)},n.geoAitoffRaw=f,n.geoArmadillo=function(){var n=20*Cr,e=n>=0?1:-1,t=Pr(e*n),o=r.geoProjectionMutator(l),i=o(n),u=i.stream;return i.parallel=function(r){return arguments.length?(t=Pr((e=(n=r*Cr)>=0?1:-1)*n),o(n)):n*Gr},i.stream=function(r){var o=i.rotate(),a=u(r),c=(i.rotate([0,0]),u(r));return i.rotate(o),a.sphere=function(){c.polygonStart(),c.lineStart();for(var r=-180*e;e*r<180;r+=90*e)c.point(r,90*e);for(;e*(r-=n)>=-180;)c.point(r,e*-fr(lr(r*Cr/2),t)*Gr);c.lineEnd(),c.polygonEnd()},a},i.scale(218.695).center([0,28.0974])},n.geoArmadilloRaw=l,n.geoAugust=function(){return r.geoProjection(g).scale(66.1603)},n.geoAugustRaw=g,n.geoBaker=function(){return r.geoProjection(v).scale(112.314)},n.geoBakerRaw=v,n.geoBerghaus=function(){var n=5,e=r.geoProjectionMutator(s),o=e(n),i=o.stream,u=-lr(.01*Cr),a=mr(.01*Cr);return o.lobes=function(r){return arguments.length?e(n=+r):n},o.stream=function(r){var e=o.rotate(),c=i(r),f=(o.rotate([0,0]),i(r));return o.rotate(e),c.sphere=function(){f.polygonStart(),f.lineStart();for(var r=0,e=360/n,o=2*jr/n,i=90-180/n,c=Mr;r=0;)n.point((r=e[o])[0],r[1]);n.lineEnd(),n.polygonEnd()},n},t.scale(79.4187).parallel(45).clipAngle(179.999)},n.geoHammerRetroazimuthalRaw=$,n.geoHealpix=function(){var n=4,t=r.geoProjectionMutator(rn),o=t(n),i=o.stream;return o.lobes=function(r){return arguments.length?t(n=+r):n},o.stream=function(t){var u=o.rotate(),a=i(t),c=(o.rotate([0,0]),i(t));return o.rotate(u),a.sphere=function(){r.geoStream(function(n){return{type:"Polygon",coordinates:[e.range(-180,180+n/2,n).map(function(n,r){return[n,1&r?90-1e-6:Ur]}).concat(e.range(180,-180-n/2,-n).map(function(n,r){return[n,1&r?1e-6-90:-Ur]}))]}}(180/n),c)},a},o.scale(239.75)},n.geoHealpixRaw=rn,n.geoHill=function(){var n=1,e=r.geoProjectionMutator(en),t=e(n);return t.ratio=function(r){return arguments.length?e(n=+r):n},t.scale(167.774).center([0,18.67])},n.geoHillRaw=en,n.geoHomolosine=function(){return r.geoProjection(on).scale(152.63)},n.geoHomolosineRaw=on,n.geoInterrupt=Zr,n.geoInterruptedBoggs=function(){return Zr(m,$r).scale(160.857)},n.geoInterruptedHomolosine=function(){return Zr(on,ne).scale(152.63)},n.geoInterruptedMollweide=function(){return Zr(Lr,re).scale(169.529)},n.geoInterruptedMollweideHemispheres=function(){return Zr(Lr,ee).scale(169.529).rotate([20,0])},n.geoInterruptedSinuMollweide=function(){return Zr(tn,te).rotate([-20,-55]).scale(164.263).center([0,-5.4036])},n.geoInterruptedSinusoidal=function(){return Zr(P,oe).scale(152.63).rotate([-20,0])},n.geoKavrayskiy7=function(){return r.geoProjection(cn).scale(158.837)},n.geoKavrayskiy7Raw=cn,n.geoLagrange=function(){var n=.5,e=r.geoProjectionMutator(fn),t=e(n);return t.spacing=function(r){return arguments.length?e(n=+r):n},t.scale(124.75)},n.geoLagrangeRaw=fn,n.geoLarrivee=function(){return r.geoProjection(ln).scale(97.2672)},n.geoLarriveeRaw=ln,n.geoLaskowski=function(){return r.geoProjection(gn).scale(139.98)},n.geoLaskowskiRaw=gn,n.geoLittrow=function(){return r.geoProjection(vn).scale(144.049).clipAngle(89.999)},n.geoLittrowRaw=vn,n.geoLoximuthal=function(){return Hr(sn).parallel(40).scale(158.837)},n.geoLoximuthalRaw=sn,n.geoMiller=function(){return r.geoProjection(pn).scale(108.318)},n.geoMillerRaw=pn,n.geoModifiedStereographic=dn,n.geoModifiedStereographicRaw=hn,n.geoModifiedStereographicAlaska=function(){return dn(ue,[152,-64]).scale(1500).center([-160.908,62.4864]).clipAngle(25)},n.geoModifiedStereographicGs48=function(){return dn(ae,[95,-38]).scale(1e3).clipAngle(55).center([-96.5563,38.8675])},n.geoModifiedStereographicGs50=function(){return dn(ce,[120,-45]).scale(359.513).clipAngle(55).center([-117.474,53.0628])},n.geoModifiedStereographicMiller=function(){return dn(fe,[-20,-18]).scale(209.091).center([20,16.7214]).clipAngle(82)},n.geoModifiedStereographicLee=function(){return dn(le,[165,10]).scale(250).clipAngle(130).center([-165,-10])},n.geoMollweide=function(){return r.geoProjection(Lr).scale(169.529)},n.geoMollweideRaw=Lr,n.geoMtFlatPolarParabolic=function(){return r.geoProjection(wn).scale(164.859)},n.geoMtFlatPolarParabolicRaw=wn,n.geoMtFlatPolarQuartic=function(){return r.geoProjection(yn).scale(188.209)},n.geoMtFlatPolarQuarticRaw=yn,n.geoMtFlatPolarSinusoidal=function(){return r.geoProjection(mn).scale(166.518)},n.geoMtFlatPolarSinusoidalRaw=mn,n.geoNaturalEarth=r.geoNaturalEarth1,n.geoNaturalEarthRaw=r.geoNaturalEarth1Raw,n.geoNaturalEarth2=function(){return r.geoProjection(Pn).scale(175.295)},n.geoNaturalEarth2Raw=Pn,n.geoNellHammer=function(){return r.geoProjection(Rn).scale(152.63)},n.geoNellHammerRaw=Rn,n.geoPatterson=function(){return r.geoProjection(bn).scale(139.319)},n.geoPattersonRaw=bn,n.geoPolyconic=function(){return r.geoProjection(jn).scale(103.74)},n.geoPolyconicRaw=jn,n.geoPolyhedral=je,n.geoPolyhedralButterfly=function(n){n=n||function(n){var e=r.geoCentroid({type:"MultiPoint",coordinates:n});return r.geoGnomonic().scale(1).translate([0,0]).rotate([-e[0],-e[1]])};var e=Ee.map(function(r){return{face:r,project:n(r)}});return[-1,0,0,1,0,1,4,5].forEach(function(n,r){var t=e[n];t&&(t.children||(t.children=[])).push(e[r])}),je(e[0],function(n,r){return e[n<-jr/2?r<0?6:4:n<0?r<0?2:0:n0?[-e[0],0]:[180-e[0],180])};var e=Ee.map(function(r){return{face:r,project:n(r)}});return[-1,0,0,1,0,1,4,5].forEach(function(n,r){var t=e[n];t&&(t.children||(t.children=[])).push(e[r])}),je(e[0],function(n,r){return e[n<-jr/2?r<0?6:4:n<0?r<0?2:0:n1?Mr:n<-1?-Mr:Math.asin(n)}function o(n){return n>1?0:n<-1?jr:Math.acos(n)}function i(n){return n>0?Math.sqrt(n):0}function u(n){return(gr(n)-gr(-n))/2}function a(n){return(gr(n)+gr(-n))/2}function c(n){function r(n,r){var e=lr(n),t=lr(r),i=mr(r),u=t*e,a=-((1-u?sr((1+u)/2)/(1-u):-.5)+o/(1+u));return[a*t*mr(n),a*i]}var e=Pr(n/2),o=2*sr(lr(n/2))/(e*e);return r.invert=function(r,e){var u,a=i(r*r+e*e),c=-n/2,f=50;if(!a)return[0,0];do{var l=c/2,g=lr(l),v=mr(l),s=Pr(l),p=sr(1/g);c-=u=(2/s*p-o*s-a)/(-p/(v*v)+1-o/(2*g*g))}while(ar(u)>Rr&&--f>0);var h=mr(c);return[fr(r*h,a*lr(c)),t(e*h/a)]},r}function f(n,r){var e=lr(r),t=function(n){return n?n/Math.sin(n):1}(o(e*lr(n/=2)));return[2*e*mr(n)*t,mr(r)*t]}function l(n){function r(n,r){var a=lr(r),c=lr(n/=2);return[(1+a)*mr(n),(o*r>-fr(c,i)-.001?0:10*-o)+u+mr(r)*t-(1+a)*e*c]}var e=mr(n),t=lr(n),o=n>=0?1:-1,i=Pr(o*n),u=(1+e-t)/2;return r.invert=function(n,r){var a=0,c=0,f=50;do{var l=lr(a),g=mr(a),v=lr(c),s=mr(c),p=1+v,h=p*g-n,d=u+s*t-p*e*l-r,w=p*l/2,y=-g*s,m=e*p*g/2,P=t*v+e*l*s,R=y*m-P*w,b=(d*y-h*P)/R/2,j=(h*m-d*w)/R;a-=b,c-=j}while((ar(b)>Rr||ar(j)>Rr)&&--f>0);return o*c>-fr(lr(a),i)-.001?[2*a,c]:null},r}function g(n,r){var e=Pr(r/2),t=i(1-e*e),o=1+t*lr(n/=2),u=mr(n)*t/o,a=e/o,c=u*u,f=a*a;return[4/3*u*(3+c-3*f),4/3*a*(3+3*c-f)]}function v(n,r){var e=ar(r);return eMr){var a=fr(o[1],o[0]),c=i(o[0]*o[0]+o[1]*o[1]),f=u*wr((a-Mr)/u)+Mr,l=fr(mr(a-=f),2-lr(a));a=f+t(jr/c*mr(l))-l,o[0]=c*lr(a),o[1]=c*mr(a)}return o}var u=2*jr/n;return e.invert=function(n,e){var t=i(n*n+e*e);if(t>Mr){var a=fr(e,n),c=u*wr((a-Mr)/u)+Mr,f=a>c?-1:1,l=t*lr(c-a),g=1/Pr(f*o((l-jr)/i(jr*(jr-2*l)+t*t)));a=c+2*cr((g+f*i(g*g-3))/3),n=t*lr(a),e=t*mr(a)}return r.geoAzimuthalEquidistantRaw.invert(n,e)},e}function p(n,e){function t(t,o){var i=r.geoAzimuthalEqualAreaRaw(t/e,o);return i[0]*=n,i}return arguments.length<2&&(e=n),1===e?r.geoAzimuthalEqualAreaRaw:e===1/0?h:(t.invert=function(t,o){var i=r.geoAzimuthalEqualAreaRaw.invert(t/n,o);return i[0]*=e,i},t)}function h(n,r){return[n*lr(r)/lr(r/=2),2*mr(r)]}function d(){var n=p(1.68,2);return function(r,e){if(r+e<-1.4){var t=(r-e+1.6)*(r+e+1.4)/8;r+=t,e-=.8*t*mr(e+jr/2)}var o=n(r,e),i=(1-lr(r*e))/12;return o[1]<0&&(o[0]*=1+i),o[1]>0&&(o[1]*=1+i/1.5*o[0]*o[0]),o}}function w(n,r){var e,t=n*mr(r),o=30;do{r-=e=(r+mr(r)-t)/(1+lr(r))}while(ar(e)>Rr&&--o>0);return r/2}function y(n,r,e){function o(t,o){return[n*t*lr(o=w(e,o)),r*mr(o)]}return o.invert=function(o,i){return i=t(i/r),[o/(n*lr(i)),t((2*i+mr(2*i))/e)]},o}function m(n,r){var e=w(jr,r);return[qr*n/(1/lr(r)+Br/lr(e)),(r+Sr*mr(e))/qr]}function P(n,r){return[n*lr(r),r]}function R(n){function r(r,t){var o=e+n-t,i=o?r*lr(t)/o:o;return[o*mr(i),e-o*lr(i)]}if(!n)return P;var e=1/Pr(n);return r.invert=function(r,t){var o=i(r*r+(t=e-t)*t),u=e+n-o;return[o/lr(u)*fr(r,t),u]},r}function b(n){function r(r,e){var t=Mr-e,o=t?r*n*mr(t)/t:t;return[t*mr(o)/n,Mr-t*lr(o)]}return r.invert=function(r,e){var t=r*n,o=Mr-e,u=i(t*t+o*o),a=fr(t,o);return[(u?u/mr(u):1)*a/n,Mr-u]},r}function j(n,r,e,u,a,c){var f,l=lr(c);if(ar(n)>1||ar(c)>1)f=o(e*a+r*u*l);else{var g=mr(n/2),v=mr(c/2);f=2*t(i(g*g+r*u*v*v))}return ar(f)>Rr?[f,fr(u*mr(c),r*a-e*u*l)]:[0,0]}function M(n,r,e){return o((n*n+r*r-e*e)/(2*n*r))}function E(n){return n-2*jr*vr((n+jr)/(2*jr))}function A(n,r,e){for(var t,o=[[n[0],n[1],mr(n[1]),lr(n[1])],[r[0],r[1],mr(r[1]),lr(r[1])],[e[0],e[1],mr(e[1]),lr(e[1])]],i=o[2],u=0;u<3;++u,i=t)t=o[u],i.v=j(t[1]-i[1],i[3],i[2],t[3],t[2],t[0]-i[0]),i.point=[0,0];var a=M(o[0].v[0],o[2].v[0],o[1].v[0]),c=M(o[0].v[0],o[1].v[0],o[2].v[0]),f=jr-a;o[2].point[1]=0,o[0].point[0]=-(o[1].point[0]=o[0].v[0]/2);var l=[o[2].point[0]=o[0].point[0]+o[2].v[0]*lr(a),2*(o[0].point[1]=o[1].point[1]=o[2].v[0]*mr(a))];return function(n,r){var e,t=mr(r),i=lr(r),u=new Array(3);for(e=0;e<3;++e){var a=o[e];if(u[e]=j(r-a[1],a[3],a[2],i,t,n-a[0]),!u[e][0])return a.point;u[e][1]=E(u[e][1]-a.v[1])}var g=l.slice();for(e=0;e<3;++e){var v=2==e?0:e+1,s=M(o[e].v[0],u[e][0],u[v][0]);u[e][1]<0&&(s=-s),e?1==e?(s=c-s,g[0]-=u[e][0]*lr(s),g[1]-=u[e][0]*mr(s)):(s=f-s,g[0]+=u[e][0]*lr(s),g[1]+=u[e][0]*mr(s)):(g[0]+=u[e][0]*lr(s),g[1]-=u[e][0]*mr(s))}return g[0]/=3,g[1]/=3,g}}function S(n){return n[0]*=Cr,n[1]*=Cr,n}function k(n,e,t){var o=r.geoCentroid({type:"MultiPoint",coordinates:[n,e,t]}),i=[-o[0],-o[1]],u=r.geoRotation(i),a=r.geoProjection(A(S(u(n)),S(u(e)),S(u(t)))).rotate(i),c=a.center;return delete a.rotate,a.center=function(n){return arguments.length?c(u(n)):u.invert(c())},a.clipAngle(90)}function x(n,r){var e=i(1-mr(r));return[2/kr*n*e,kr*(1-e)]}function G(n){function r(n,r){return[n,(n?n/mr(n):1)*(mr(r)*lr(n)-e*lr(r))]}var e=Pr(n);return r.invert=e?function(n,r){n&&(r*=mr(n)/n);var t=lr(n);return[n,2*fr(i(t*t+e*e-r*r)-t,e-r)]}:function(n,r){return[n,t(n?r*Pr(n)/n:r)]},r}function C(n,r){return[Wr*n*(2*lr(2*r/3)-1)/kr,Wr*kr*mr(r/3)]}function z(n){function r(n,r){return[n*e,mr(r)/e]}var e=lr(n);return r.invert=function(n,r){return[n/e,t(r*e)]},r}function F(n){function r(n,r){return[n*e,(1+e)*Pr(r/2)]}var e=lr(n);return r.invert=function(n,r){return[n/e,2*cr(r/(1+e))]},r}function L(n,r){var e=i(8/(3*jr));return[e*n*(1-ar(r)/jr),e*r]}function q(n,r){var e=i(4-3*mr(ar(r)));return[2/i(6*jr)*n*e,yr(r)*i(2*jr/3)*(2-e)]}function B(n,r){var e=i(jr*(4+jr));return[2/e*n*(1+i(1-4*r*r/(jr*jr))),4/e*r]}function H(n,r){var e=(2+Mr)*mr(r);r/=2;for(var t=0,o=1/0;t<10&&ar(o)>Rr;t++){var u=lr(r);r-=o=(r+mr(r)*(u+2)-e)/(2*u*(1+u))}return[2/i(jr*(4+jr))*n*(1+lr(r)),2*i(jr/(4+jr))*mr(r)]}function I(n,r){return[n*(1+lr(r))/i(2+jr),2*r/i(2+jr)]}function W(n,r){for(var e=(1+Mr)*mr(r),t=0,o=1/0;t<10&&ar(o)>Rr;t++)r-=o=(r+mr(r)-e)/(1+lr(r));return e=i(2+jr),[n*(1+lr(r))/e,2*r/e]}function T(n,r){var e=mr(n/=2),t=lr(n),o=i(lr(r)),u=lr(r/=2),a=mr(r)/(u+Sr*t*o),c=i(2/(1+a*a)),f=i((Sr*u+(t+e)*o)/(Sr*u+(t-e)*o));return[Tr*(c*(f-1/f)-2*sr(f)),Tr*(c*a*(f+1/f)-2*cr(a))]}function D(n,r){var e=Pr(r/2);return[n*Dr*i(1-e*e),(1+Dr)*e]}function N(n,r){var e=r/2,t=lr(e);return[2*n/kr*lr(r)*t*t,kr*Pr(e)]}function Q(n){return[n[0]/2,t(Pr(n[1]/2*Cr))*Gr]}function V(n){return[2*n[0],2*cr(mr(n[1]*Cr))*Gr]}function _(n,e){function t(e,t){var a=r.geoAzimuthalEquidistantRaw(e,t),c=a[0],f=a[1],l=c*c+f*f;if(l>u){var g=i(l),v=fr(f,c),s=o*wr(v/o),p=v-s,h=n*lr(p),d=(n*mr(p)-p*mr(h))/(Mr-h),w=K(p,d),y=(jr-n)/O(w,h,jr);c=g;var m,P=50;do{c-=m=(n+O(w,h,c)*y-g)/(w(c)*y)}while(ar(m)>Rr&&--P>0);f=p*mr(c),cu){var c=i(a),f=fr(t,e),l=o*wr(f/o),g=f-l;e=c*lr(g),t=c*mr(g);for(var v=e-Mr,s=mr(e),p=t/s,h=eRr&&(n%=Mr);var l=function(n,r){if(r===Mr)return[0,0];var e,o,u=mr(r),a=u*u,c=a*a,f=1+c,l=1+3*c,g=1-c,v=t(1/i(f)),s=g+a*f*v,p=(1-u)/s,h=i(p),d=p*f,w=i(d),y=h*g;if(0===n)return[0,-(y+a*w)];var m,P=lr(r),R=1/P,b=2*u*P,j=(-s*P-(-3*a+v*l)*b*(1-u))/(s*s),M=-R*b,E=-R*(a*f*j+p*l*b),A=-2*R*(g*(.5*j/h)-2*a*h*b),S=4*n/jr;if(n>.222*jr||r.175*jr){if(e=(y+a*i(d*(1+c)-y*y))/(1+c),n>jr/4)return[e,e];var k=e,x=.5*e;e=.5*(x+k),o=50;do{var G=i(d-e*e),C=e*(A+M*G)+E*t(e/w)-S;if(!C)break;C<0?x=e:k=e,e=.5*(x+k)}while(ar(k-x)>Rr&&--o>0)}else{e=Rr,o=25;do{var z=e*e,F=i(d-z),L=A+M*F,q=e*L+E*t(e/w)-S,B=L+(E-M*z)/F;e-=m=F?q/B:0}while(ar(m)>Rr&&--o>0)}return[e,-y-a*i(d-e*e)]}(n>jr/4?Mr-n:n,r);return n>jr/4&&(f=l[0],l[0]=-l[1],l[1]=-f),l[0]*=e,l[1]*=-o,l}function X(n,r){var e,o,c,f,l;if(r=1-Rr)return e=(1-r)/4,o=a(n),f=function(n){return((n=gr(2*n))-1)/(n+1)}(n),c=1/o,l=o*u(n),[f+e*(l-n)/(o*o),c-e*f*c*(l-n),c+e*f*c*(l+n),2*cr(gr(n))-Mr+e*(l-n)/o];var g=[1,0,0,0,0,0,0,0,0],v=[i(r),0,0,0,0,0,0,0,0],s=0;for(o=i(1-r),l=1;ar(v[s]/g[s])>Rr&&s<8;)e=g[s++],v[s]=(e-o)/2,g[s]=(e+o)/2,o=i(e*o),l*=2;c=l*g[s]*n;do{c=(t(f=v[s]*mr(o=c)/g[s])+c)/2}while(--s);return[mr(c),f=lr(c),f/lr(c-o),c]}function Y(n,r){if(!r)return n;if(1===r)return sr(Pr(n/2+Er));for(var e=1,t=i(1-r),o=i(r),u=0;ar(o)>Rr;u++){if(n%jr){var a=cr(t*Pr(n)/e);a<0&&(a+=jr),n+=a+~~(n/jr)*jr}else n+=n;o=(e+t)/2,t=i(e*t),o=((e=o)-t)/2}return n/(dr(2,u)*e)}function Z(n,r){var e=(Sr-1)/(Sr+1),t=i(1-e*e),o=Y(Mr,t*t),a=sr(Pr(jr/4+ar(r)/2)),c=gr(-1*a)/i(e),f=function(n,r){var e=n*n,t=r+1,o=1-e-r*r;return[.5*((n>=0?Mr:-Mr)-fr(o,2*n)),-.25*sr(o*o+4*e)+.5*sr(t*t+e)]}(c*lr(-1*n),c*mr(-1*n)),l=function(n,r,e){var t=ar(n),o=u(ar(r));if(t){var a=1/mr(t),c=1/(Pr(t)*Pr(t)),f=-(c+e*(o*o*a*a)-1+e),l=(-f+i(f*f-(e-1)*c*4))/2;return[Y(cr(1/i(l)),e)*yr(n),Y(cr(i((l/c-1)/e)),1-e)*yr(r)]}return[0,Y(cr(o),1-e)*yr(r)]}(f[0],f[1],t*t);return[-l[1],(r>=0?1:-1)*(.5*o-l[0])]}function $(n){function r(n,r){var i=u(n,r);n=i[0],r=i[1];var a=mr(r),c=lr(r),f=lr(n),l=o(e*a+t*c*f),g=mr(l),v=ar(g)>Rr?l/g:1;return[v*t*mr(n),(ar(n)>Mr?v:-v)*(e*c-t*a*f)]}var e=mr(n),t=lr(n),u=nn(n);return u.invert=nn(-n),r.invert=function(n,r){var t=i(n*n+r*r),o=-mr(t),a=lr(t),c=t*a,f=-r*o,l=t*e,g=i(c*c+f*f-l*l),v=fr(c*l+f*g,f*l-c*g),s=(t>Mr?-1:1)*fr(n*o,t*lr(v)*a+r*mr(v)*o);return u.invert(s,v)},r}function nn(n){var r=mr(n),e=lr(n);return function(n,o){var i=lr(o),u=lr(n)*i,a=mr(n)*i,c=mr(o);return[fr(a,u*e-c*r),t(c*e+u*r)]}}function rn(n){function r(r,l){var g,v=ar(l);if(v>e){var s=hr(n-1,pr(0,vr((r+jr)/a)));(g=x(r+=jr*(n-1)/n-s*a,v))[0]=g[0]*xr/t-xr*(n-1)/(2*n)+s*xr/n,g[1]=o+4*(g[1]-i)*u/xr,l<0&&(g[1]=-g[1])}else g=Jr(r,l);return g[0]*=c,g[1]/=f,g}var e=Ur*Cr,t=x(jr,e)[0]-x(-jr,e)[0],o=Jr(0,e)[1],i=x(0,e)[1],u=kr-i,a=xr/n,c=4/xr,f=o+u*u*4/xr;return r.invert=function(r,e){r/=c;var l=ar(e*=f);if(l>o){var g=hr(n-1,pr(0,vr((r+jr)/a))),v=x.invert(r=(r+jr*(n-1)/n-g*a)*t/xr,.25*(l-o)*xr/u+i);return v[0]-=jr*(n-1)/n-g*a,e<0&&(v[1]=-v[1]),v}return Jr.invert(r,e)},r}function en(n){function r(r,t){var o,v,s=1-mr(t);if(s&&s<2){var p,h=Mr-t,d=25;do{var w=mr(h),y=lr(h),m=a+fr(w,u-y),P=1+g-2*u*y;h-=p=(h-l*a-u*w+P*m-.5*s*e)/(2*u*w*m)}while(ar(p)>br&&--d>0);o=c*i(P),v=r*m/jr}else o=c*(n+s),v=r*a/jr;return[o*mr(v),f-o*lr(v)]}var e,u=1+n,a=t(mr(1/u)),c=2*i(jr/(e=jr+4*a*u)),f=.5*c*(u+i(n*(2+n))),l=n*n,g=u*u;return r.invert=function(n,r){var v=n*n+(r-=f)*r,s=(1+g-v/(c*c))/(2*u),p=o(s),h=mr(p),d=a+fr(h,u-s);return[t(n/i(v))*jr/d,t(1-2*(p-l*a-u*h+(1+g-2*u*s)*d)/e)]},r}function tn(n,r){return r>-Xr?(n=Lr(n,r),n[1]+=Yr,n):P(n,r)}function on(n,r){return ar(r)>Xr?(n=Lr(n,r),n[1]-=r>0?Yr:-Yr,n):P(n,r)}function un(n,r){return ar(n[0]-r[0])2)return null;var i=(r/=2)*r,u=(e/=2)*e,a=2*e/(1+i+u);return a=dr((1+a)/(1-a),1/n),[fr(2*r,1-i-u)/n,t((a-1)/(a+1))]},r}function ln(n,r){return[n*(1+i(lr(r)))/2,r/(lr(r/2)*lr(n/6))]}function gn(n,r){var e=n*n,t=r*r;return[n*(.975534+t*(-.0143059*e-.119161+-.0547009*t)),r*(1.00384+e*(.0802894+-.02855*t+199025e-9*e)+t*(.0998909+-.0491032*t))]}function vn(n,r){return[mr(n)/lr(r),Pr(r)*lr(n)]}function sn(n){function r(r,o){var i=o-n,u=ar(i)=0;)g=(l=n[f])[0]+a*(o=g)-c*v,v=l[1]+a*v+c*o;return g=a*(o=g)-c*v,v=a*v+c*o,[g,v]}var e=n.length-1;return r.invert=function(r,o){var u=20,a=r,c=o;do{for(var f,l=e,g=n[l],v=g[0],s=g[1],p=0,h=0;--l>=0;)p=v+a*(f=p)-c*h,h=s+a*h+c*f,v=(g=n[l])[0]+a*(f=v)-c*s,s=g[1]+a*s+c*f;var d,w,y=(p=v+a*(f=p)-c*h)*p+(h=s+a*h+c*f)*h;a-=d=((v=a*(f=v)-c*s-r)*p+(s=a*s+c*f-o)*h)/y,c-=w=(s*p-v*h)/y}while(ar(d)+ar(w)>Rr*Rr&&--u>0);if(u){var m=i(a*a+c*c),P=2*cr(.5*m),R=mr(P);return[fr(a*R,m*lr(P)),m?t(c*R/m):0]}},r}function dn(n,e){var t=r.geoProjection(hn(n)).rotate(e).clipAngle(90),o=r.geoRotation(e),i=t.center;return delete t.rotate,t.center=function(n){return arguments.length?i(o(n)):o.invert(i())},t}function wn(n,r){var e=t(7*mr(r)/(3*ge));return[ge*n*(2*lr(2*e/3)-1)/ve,9*mr(e/3)/ve]}function yn(n,r){for(var e,t=(1+Ar)*mr(r),o=r,u=0;u<25&&(o-=e=(mr(o/2)+mr(o)-t)/(.5*lr(o/2)+lr(o)),!(ar(e)Rr&&--f>0);var s=r*(l=Pr(c)),p=Pr(ar(i)0?Mr:-Mr)*(f+i*(g-a)/2+i*i*(g-2*f+a)/2)]}function Wn(n,r){function e(r,e){var t=o(r,e),i=t[1],c=i*a/(n-1)+u;return[t[0]*u/c,i/c]}var o=function(n){function r(r,e){var t=lr(e),o=(n-1)/(n-t*lr(r));return[o*t*mr(r),o*mr(e)]}return r.invert=function(r,e){var o=r*r+e*e,u=i(o),a=(n-i(1-o*(n+1)/(n-1)))/((n-1)/u+u/(n-1));return[fr(r*a,u*i(1-a*a)),u?t(e*a/u):0]},r}(n);if(!r)return o;var u=lr(r),a=mr(r);return e.invert=function(r,e){var t=(n-1)/(n-1-e*a);return o.invert(t*r,t*e*u)},e}function Tn(n){return n.length>0}function Dn(n){return n===De||n===Qe?[0,n]:[He,function(n){return Math.floor(n*Be)/Be}(n)]}function Nn(n){var r=n[0],e=n[1],t=!1;return r<=Ie?(r=He,t=!0):r>=Te&&(r=We,t=!0),e<=Ne?(e=De,t=!0):e>=Ve&&(e=Qe,t=!0),t?[r,e]:n}function Qn(n){return n.map(Nn)}function Vn(n,r,e){for(var t=0,o=n.length;t=Te||l<=Ne||l>=Ve){i[u]=Nn(c);for(var g=u+1;gIe&&sNe&&p=a)break;e.push({index:-1,polygon:r,ring:i=i.slice(g-1)}),i[0]=Dn(i[0][1]),u=-1,a=i.length}}}}function _n(n){var r,e,t,o,i,u,a=n.length,c={},f={};for(r=0;r0?1:n<0?-1:0},mr=Math.sin,Pr=Math.tan,Rr=1e-6,br=1e-12,jr=Math.PI,Mr=jr/2,Er=jr/4,Ar=Math.SQRT1_2,Sr=i(2),kr=i(jr),xr=2*jr,Gr=180/jr,Cr=jr/180;f.invert=function(n,r){if(!(n*n+4*r*r>jr*jr+Rr)){var e=n,t=r,u=25;do{var a,c=mr(e),f=mr(e/2),l=lr(e/2),g=mr(t),v=lr(t),s=mr(2*t),p=g*g,h=v*v,d=f*f,w=1-h*l*l,y=w?o(v*l)*i(a=1/w):a=0,m=2*y*v*f-n,P=y*g-r,R=a*(h*d+y*v*l*p),b=a*(.5*c*s-2*y*g*f),j=.25*a*(s*f-y*g*h*c),M=a*(p*l+y*d*v),E=b*j-M*R;if(!E)break;var A=(P*b-m*M)/E,S=(m*j-P*R)/E;e-=A,t-=S}while((ar(A)>Rr||ar(S)>Rr)&&--u>0);return[e,t]}};g.invert=function(n,r){if(n*=3/8,r*=3/8,!n&&ar(r)>1)return null;var e=1+n*n+r*r,o=i((e-i(e*e-4*r*r))/2),c=t(o)/3,f=o?function(n){return sr(n+i(n*n-1))}(ar(r/o))/3:function(n){return sr(n+i(n*n+1))}(ar(n))/3,l=lr(c),g=a(f),v=g*g-l*l;return[2*yr(n)*fr(u(f)*l,.25-v),2*yr(r)*fr(g*mr(c),.25+v)]};var zr=i(8),Fr=sr(1+Sr);v.invert=function(n,r){if((t=ar(r))br&&--i>0);return[n/(lr(o)*(zr-1/mr(o))),yr(r)*o]};h.invert=function(n,r){var e=2*t(r/2);return[n*lr(e/2)/lr(e),e]};var Lr=y(Sr/Mr,Sr,jr),qr=2.00276,Br=1.11072;m.invert=function(n,r){var e,t,o=qr*r,i=r<0?-Er:Er,u=25;do{t=o-Sr*mr(i),i-=e=(mr(2*i)+2*i-jr*mr(t))/(2*lr(2*i)+2+jr*lr(t)*Sr*lr(i))}while(ar(e)>Rr&&--u>0);return t=o-Sr*mr(i),[n*(1/lr(t)+Br/lr(i))/qr,t]};var Hr=function(n){var e=0,t=r.geoProjectionMutator(n),o=t(e);return o.parallel=function(n){return arguments.length?t(e=n*Cr):e*Gr},o};P.invert=function(n,r){return[n/lr(r),r]};var Ir=y(1,4/jr,jr);x.invert=function(n,r){var e=(e=r/kr-1)*e;return[e>0?n*i(jr/e)/2:0,t(1-e)]};var Wr=i(3);C.invert=function(n,r){var e=3*t(r/(Wr*kr));return[kr*n/(Wr*(2*lr(2*e/3)-1)),e]};L.invert=function(n,r){var e=i(8/(3*jr)),t=r/e;return[n/(e*(1-ar(t)/jr)),t]};q.invert=function(n,r){var e=2-ar(r)/i(2*jr/3);return[n*i(6*jr)/(2*e),yr(r)*t((4-e*e)/3)]};B.invert=function(n,r){var e=i(jr*(4+jr))/2;return[n*e/(1+i(1-r*r*(4+jr)/(4*jr))),r*e/2]};H.invert=function(n,r){var e=r*i((4+jr)/jr)/2,o=t(e),u=lr(o);return[n/(2/i(jr*(4+jr))*(1+u)),t((o+e*(u+2))/(2+Mr))]};I.invert=function(n,r){var e=i(2+jr),t=r*e/2;return[e*n/(1+lr(t)),t]};W.invert=function(n,r){var e=1+Mr,o=i(e/2);return[2*n*o/(1+lr(r*=o)),t((r+mr(r))/e)]};var Tr=3+2*Sr;T.invert=function(n,r){if(!(e=g.invert(n/1.2,1.065*r)))return null;var e,t=e[0],o=e[1],u=20;n/=Tr,r/=Tr;do{var a=t/2,c=o/2,f=mr(a),l=lr(a),v=mr(c),s=lr(c),p=lr(o),h=i(p),d=v/(s+Sr*l*h),w=d*d,y=i(2/(1+w)),m=(Sr*s+(l+f)*h)/(Sr*s+(l-f)*h),P=i(m),R=P-1/P,b=P+1/P,j=y*R-2*sr(P)-n,M=y*d*b-2*cr(d)-r,E=v&&Ar*h*f*w/v,A=(Sr*l*s+h)/(2*(s+Sr*l*h)*(s+Sr*l*h)*h),S=-.5*d*y*y*y,k=S*E,x=S*A,G=(G=2*s+Sr*h*(l-f))*G*P,C=(Sr*l*s*h+p)/G,z=-Sr*f*v/(h*G),F=R*k-2*C/P+y*(C+C/m),L=R*x-2*z/P+y*(z+z/m),q=d*b*k-2*E/(1+w)+y*b*E+y*d*(C-C/m),B=d*b*x-2*A/(1+w)+y*b*A+y*d*(z-z/m),H=L*q-B*F;if(!H)break;var I=(M*L-j*B)/H,W=(j*q-M*F)/H;t-=I,o=pr(-Mr,hr(Mr,o-W))}while((ar(I)>Rr||ar(W)>Rr)&&--u>0);return ar(ar(o)-Mr)Rr||ar(s)>Rr)&&--d>0);return[p,h]},l},Qr=Nr(2.8284,-1.6988,.75432,-.18071,1.76003,-.38914,.042555),Vr=Nr(2.583819,-.835827,.170354,-.038094,1.543313,-.411435,.082742),_r=Nr(5/6*jr,-.62636,-.0344,0,1.3493,-.05524,0,.045);U.invert=function(n,r){var e,t=n,o=r,i=50;do{var u=o*o;o-=e=(o*(1+u/12)-r)/(1+u/4)}while(ar(e)>Rr&&--i>0);i=50,n/=1-.162388*u;do{var a=(a=t*t)*a;t-=e=(t*(.87-952426e-9*a)-n)/(.87-.00476213*a)}while(ar(e)>Rr&&--i>0);return[t,o]};var Kr=Nr(2.6516,-.76534,.19123,-.047094,1.36289,-.13965,.031762),Or=function(n){function r(r,t){var o=r>0?-.5:.5,i=n(r+o*jr,t);return i[0]-=o*e,i}var e=n(Mr,0)[0]-n(-Mr,0)[0];return n.invert&&(r.invert=function(r,t){var o=r>0?-.5:.5,i=n.invert(r+o*e,t),u=i[0]-o*jr;return u<-jr?u+=2*jr:u>jr&&(u-=2*jr),i[0]=u,i}),r};J.invert=function(n,r){ar(n)>1&&(n=2*yr(n)-n),ar(r)>1&&(r=2*yr(r)-r);var e=yr(n),o=yr(r),u=-e*n,a=-o*r,c=a/u<1,f=function(n,r){for(var e=0,o=1,u=.5,a=50;;){var c=u*u,f=i(u),l=t(1/i(1+c)),g=1-c+u*(1+c)*l,v=(1-f)/g,s=i(v),p=v*(1+c),h=s*(1-c),d=i(p-n*n),w=r+h+u*d;if(ar(o-e)0?e=u:o=u,u=.5*(e+o)}if(!a)return null;var y=t(f),m=lr(y),P=1/m,R=2*f*m,b=(-g*m-(-3*u+l*(1+3*c))*R*(1-f))/(g*g);return[jr/4*(n*(-2*P*(.5*b/s*(1-c)-2*u*s*R)+-P*R*d)+-P*(u*(1+c)*b+v*(1+3*c)*R)*t(n/i(p))),y]}(c?a:u,c?u:a),l=f[0],g=f[1],v=lr(g);return c&&(l=-Mr-l),[e*(fr(mr(l)*v,-mr(g))+jr),o*t(lr(l)*v)]};Z.invert=function(n,r){var e=(Sr-1)/(Sr+1),t=i(1-e*e),o=function(n,r,e){var t,o,i;return n?(t=X(n,e),r?(o=X(r,1-e),i=o[1]*o[1]+e*t[0]*t[0]*o[0]*o[0],[[t[0]*o[2]/i,t[1]*t[2]*o[0]*o[1]/i],[t[1]*o[1]/i,-t[0]*t[2]*o[0]*o[2]/i],[t[2]*o[1]*o[2]/i,-e*t[0]*t[1]*o[0]/i]]):[[t[0],0],[t[1],0],[t[2],0]]):(o=X(r,1-e),[[0,o[0]/o[1]],[1/o[1],0],[o[2]/o[1],0]])}(.5*Y(Mr,t*t)-r,-n,t*t),u=function(n,r){var e=r[0]*r[0]+r[1]*r[1];return[(n[0]*r[0]+n[1]*r[1])/e,(n[1]*r[0]-n[0]*r[1])/e]}(o[0],o[1]);return[fr(u[1],u[0])/-1,2*cr(gr(-.5*sr(e*u[0]*u[0]+e*u[1]*u[1])))-Mr]};var Ur=41+48/36+37/3600,Jr=z(0),Xr=.7109889596207567,Yr=.0528035274542;tn.invert=function(n,r){return r>-Xr?Lr.invert(n,r-Yr):P.invert(n,r)};on.invert=function(n,r){return ar(r)>Xr?Lr.invert(n,r+(r>0?Yr:-Yr)):P.invert(n,r)};var Zr=function(n,t){function o(r,e){for(var o=e<0?-1:1,i=t[+(e<0)],u=0,a=i.length-1;ui[u][2][0];++u);var c=n(r-i[u][1][0],e);return c[0]+=n(i[u][1][0],o*e>o*i[u][0][1]?i[u][0][1]:e)[0],c}var i,u;n.invert&&(o.invert=function(r,e){for(var i=u[+(e<0)],a=t[+(e<0)],c=0,f=i.length;c=0;--c)t=(r=n[1][c])[0][0],o=r[0][1],i=r[1][1],u=r[2][0],a=r[2][1],f.push(an([[u-Rr,a-Rr],[u-Rr,i+Rr],[t+Rr,i+Rr],[t+Rr,o-Rr]],30));return{type:"Polygon",coordinates:[e.merge(f)]}}(r),t=r.map(function(n){return n.map(function(n){return[[n[0][0]*Cr,n[0][1]*Cr],[n[1][0]*Cr,n[1][1]*Cr],[n[2][0]*Cr,n[2][1]*Cr]]})}),u=t.map(function(r){return r.map(function(r){var e,t=n(r[0][0],r[0][1])[0],o=n(r[2][0],r[2][1])[0],i=n(r[1][0],r[0][1])[1],u=n(r[1][0],r[1][1])[1];return i>u&&(e=i,i=u,u=e),[[t,i],[o,u]]})}),a):t.map(function(n){return n.map(function(n){return[[n[0][0]*Gr,n[0][1]*Gr],[n[1][0]*Gr,n[1][1]*Gr],[n[2][0]*Gr,n[2][1]*Gr]]})})},null!=t&&a.lobes(t),a},$r=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]],ne=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]],re=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]],ee=[[[[-180,0],[-90,90],[0,0]],[[0,0],[90,90],[180,0]]],[[[-180,0],[-90,-90],[0,0]],[[0,0],[90,-90],[180,0]]]],te=[[[[-180,35],[-30,90],[0,35]],[[0,35],[30,90],[180,35]]],[[[-180,-10],[-102,-90],[-65,-10]],[[-65,-10],[5,-90],[77,-10]],[[77,-10],[103,-90],[180,-10]]]],oe=[[[[-180,0],[-110,90],[-40,0]],[[-40,0],[0,90],[40,0]],[[40,0],[110,90],[180,0]]],[[[-180,0],[-110,-90],[-40,0]],[[-40,0],[0,-90],[40,0]],[[40,0],[110,-90],[180,0]]]];cn.invert=function(n,r){return[xr/3*n/i(jr*jr/3-r*r),r]};var ie=jr/Sr;ln.invert=function(n,r){var e=ar(n),t=ar(r),u=Rr,a=Mr;tRr||ar(d)>Rr)&&--o>0);return o&&[e,t]};vn.invert=function(n,r){var e=n*n,u=r*r+1,a=e+u,c=n?Ar*i((a-i(a*a-4*e))/e):1/i(u);return[t(n*c),yr(r)*o(c)]};pn.invert=function(n,r){return[n,2.5*cr(gr(.8*r))-.625*jr]};var ue=[[.9972523,0],[.0052513,-.0041175],[.0074606,.0048125],[-.0153783,-.1968253],[.0636871,-.1408027],[.3660976,-.2937382]],ae=[[.98879,0],[0,0],[-.050909,0],[0,0],[.075528,0]],ce=[[.984299,0],[.0211642,.0037608],[-.1036018,-.0575102],[-.0329095,-.0320119],[.0499471,.1223335],[.026046,.0899805],[7388e-7,-.1435792],[.0075848,-.1334108],[-.0216473,.0776645],[-.0225161,.0853673]],fe=[[.9245,0],[0,0],[.01943,0]],le=[[.721316,0],[0,0],[-.00881625,-.00617325]],ge=i(6),ve=i(7);wn.invert=function(n,r){var e=3*t(r*ve/9);return[n*ve/(ge*(2*lr(2*e/3)-1)),t(3*mr(e)*ge/7)]};yn.invert=function(n,r){var e=r*i(2+Sr)/(2*i(3)),o=2*t(e);return[3*Sr*n/(1+2*lr(o)/lr(o/2)),t((e+mr(o))/(1+Ar))]};mn.invert=function(n,r){var e=i(6/(4+jr)),o=r/e;return ar(ar(o)-Mr)br&&--a>0);return t=u*u,o=t*t,i=t*o,[n/(.84719-.13063*t+i*i*(.05494*t-.04515-.02326*o+.00331*i)),u]};Rn.invert=function(n,r){for(var e=r/2,t=0,o=1/0;t<10&&ar(o)>Rr;++t){var i=lr(r/2);r-=o=(r-Pr(r/2)-e)/(1-.5/(i*i))}return[2*n/(1+lr(r)),r]};var se=1.0148,pe=.23185,he=-.14499,de=.02406,we=se,ye=5*pe,me=7*he,Pe=9*de,Re=1.790857183;bn.invert=function(n,r){r>Re?r=Re:r<-Re&&(r=-Re);var e,t=r;do{var o=t*t;t-=e=(t*(se+o*o*(pe+o*(he+de*o)))-r)/(we+o*o*(ye+o*(me+Pe*o)))}while(ar(e)>Rr);return[n,t]};jn.invert=function(n,r){if(ar(r)Rr&&--a>0);return c=Pr(u),[(ar(r)=0;)if(t=r[a],e[0]===t[0]&&e[1]===t[1]){if(i)return[i,e];i=e}}}(n.face,r.face),t=be(e.map(r.project),e.map(n.project));n.transform=r.transform?Mn(r.transform,t):t;for(var i=r.edges,u=0,a=i.length;ut^s>t&&e<(v-f)*(t-l)/(s-l)+f&&(o=!o)}return o}(n[0],e))return n.push(r),!0})||n.push([r])}),xe=[],n.length?n.length>1?{type:"MultiPolygon",coordinates:n}:{type:"Polygon",coordinates:n[0]}:null}},Fe=function(n){function e(r,e){var o=ar(r)0?r-jr:r+jr,e),u=(i[0]-i[1])*Ar,a=(i[0]+i[1])*Ar;if(o)return[u,a];var c=t*Ar,f=u>0^a>0?-1:1;return[f*u-yr(a)*c,f*a-yr(u)*c]}var t=n(Mr,0)[0]-n(-Mr,0)[0];return n.invert&&(e.invert=function(r,e){var o=(r+e)*Ar,i=(e-r)*Ar,u=ar(o)<.5*t&&ar(i)<.5*t;if(!u){var a=t*Ar,c=o>0^i>0?-1:1,f=-c*r+(i>0?1:-1)*a,l=-c*e+(o>0?1:-1)*a;o=(-f-l)*Ar,i=(f-l)*Ar}var g=n.invert(o,i);return u||(g[0]+=o>0?jr:-jr),g}),r.geoProjection(e).rotate([-90,-90,45]).clipAngle(179.999)},Le=function(){return Fe(Z).scale(111.48)},qe=[[.9986,-.062],[1,0],[.9986,.062],[.9954,.124],[.99,.186],[.9822,.248],[.973,.31],[.96,.372],[.9427,.434],[.9216,.4958],[.8962,.5571],[.8679,.6176],[.835,.6769],[.7986,.7346],[.7597,.7903],[.7186,.8435],[.6732,.8936],[.6213,.9394],[.5722,.9761],[.5322,1]];qe.forEach(function(n){n[1]*=1.0144}),In.invert=function(n,r){var e=r/Mr,t=90*e,o=hr(18,ar(t/5)),i=pr(0,vr(o));do{var u=qe[i][1],a=qe[i+1][1],c=qe[hr(19,i+2)][1],f=c-u,l=c-2*a+u,g=2*(ar(e)-a)/f,v=l/f,s=g*(1-v*g*(1-2*v*g));if(s>=0||1===i){t=(r>=0?5:-5)*(s+o);var p,h=50;do{s=(o=hr(18,ar(t)/5))-(i=vr(o)),u=qe[i][1],a=qe[i+1][1],c=qe[hr(19,i+2)][1],t-=(p=(r>=0?Mr:-Mr)*(a+s*(c-u)/2+s*s*(c-2*a+u)/2)-r)*Gr}while(ar(p)>br&&--h>0);break}}while(--i>=0);var d=qe[i][0],w=qe[i+1][0],y=qe[hr(19,i+2)][0];return[n/(w+s*(y-d)/2+s*s*(y-2*w+d)/2),t*Cr]};var Be=1e4,He=-180,Ie=He+1e-4,We=180,Te=We-1e-4,De=-90,Ne=De+1e-4,Qe=90,Ve=Qe-1e-4;Un.invert=function(n,r){var e=r/1.70711,t=mr(Er*e);return[n/(.74482-.34588*t*t),2*cr(e)]};var _e=function(n,e,o){var i=r.geoInterpolate(e,o),u=i(.5),a=r.geoRotation([-u[0],-u[1]])(e),c=i.distance/2,f=-t(mr(a[1]*Cr)/mr(c)),l=[-u[0],-u[1],-(a[0]>0?jr-f:f)*Gr],g=r.geoProjection(n(c)).rotate(l),v=r.geoRotation(l),s=g.center;return delete g.rotate,g.center=function(n){return arguments.length?s(v(n)):v.invert(s())},g.clipAngle(90)};$n.invert=function(n,r){if(ar(r)Rr&&--c>0);return[yr(n)*(i(o*o+4)+o)*jr/4,Mr*a]};var Ke=4*jr+3*i(3),Oe=2*i(2*jr*i(3)/Ke),Ue=y(Oe*i(3)/jr,Oe,Ke/6);tr.invert=function(n,r){return[n/i(1-3*r*r/(jr*jr)),r]};or.invert=function(n,r){var e=n/2.66723,o=r/1.24104,u=i(e*e+o*o),a=2*t(u/2);return[3*fr(n*Pr(a),2.66723*u),u&&t(r*mr(a)/(1.24104*.90631*u))]};ir.invert=function(n,r){var e=(n*n+r*r)/-2,o=i(-e*(2+e)),u=r*e+n*o,a=n*e-r*o,c=i(a*a+u*u);return[fr(o*u,c*(1+e)),c?-t(o*a/c):0]};ur.invert=function(n,r){var e=n,t=r,u=25;do{var a,c=lr(t),f=mr(t),l=mr(2*t),g=f*f,v=c*c,s=mr(e),p=lr(e/2),h=mr(e/2),d=h*h,w=1-v*p*p,y=w?o(c*p)*i(a=1/w):a=0,m=.5*(2*y*c*h+e/Mr)-n,P=.5*(y*f+t)-r,R=.5*a*(v*d+y*c*p*g)+.5/Mr,b=a*(s*l/4-y*f*h),j=.125*a*(l*h-y*f*v*s),M=.5*a*(g*p+y*d*c)+.5,E=b*j-M*R,A=(P*b-m*M)/E,S=(m*j-P*R)/E;e-=A,t-=S}while((ar(A)>Rr||ar(S)>Rr)&&--u>0);return[e,t]};n.geoAiry=function(){var n=Mr,e=r.geoProjectionMutator(c),t=e(n);return t.radius=function(r){return arguments.length?e(n=r*Cr):n*Gr},t.scale(179.976).clipAngle(147)},n.geoAiryRaw=c,n.geoAitoff=function(){return r.geoProjection(f).scale(152.63)},n.geoAitoffRaw=f,n.geoArmadillo=function(){var n=20*Cr,e=n>=0?1:-1,t=Pr(e*n),o=r.geoProjectionMutator(l),i=o(n),u=i.stream;return i.parallel=function(r){return arguments.length?(t=Pr((e=(n=r*Cr)>=0?1:-1)*n),o(n)):n*Gr},i.stream=function(r){var o=i.rotate(),a=u(r),c=(i.rotate([0,0]),u(r));return i.rotate(o),a.sphere=function(){c.polygonStart(),c.lineStart();for(var r=-180*e;e*r<180;r+=90*e)c.point(r,90*e);for(;e*(r-=n)>=-180;)c.point(r,e*-fr(lr(r*Cr/2),t)*Gr);c.lineEnd(),c.polygonEnd()},a},i.scale(218.695).center([0,28.0974])},n.geoArmadilloRaw=l,n.geoAugust=function(){return r.geoProjection(g).scale(66.1603)},n.geoAugustRaw=g,n.geoBaker=function(){return r.geoProjection(v).scale(112.314)},n.geoBakerRaw=v,n.geoBerghaus=function(){var n=5,e=r.geoProjectionMutator(s),o=e(n),i=o.stream,u=-lr(.01*Cr),a=mr(.01*Cr);return o.lobes=function(r){return arguments.length?e(n=+r):n},o.stream=function(r){var e=o.rotate(),c=i(r),f=(o.rotate([0,0]),i(r));return o.rotate(e),c.sphere=function(){f.polygonStart(),f.lineStart();for(var r=0,e=360/n,o=2*jr/n,i=90-180/n,c=Mr;r=0;)n.point((r=e[o])[0],r[1]);n.lineEnd(),n.polygonEnd()},n},t.scale(79.4187).parallel(45).clipAngle(179.999)},n.geoHammerRetroazimuthalRaw=$,n.geoHealpix=function(){var n=4,t=r.geoProjectionMutator(rn),o=t(n),i=o.stream;return o.lobes=function(r){return arguments.length?t(n=+r):n},o.stream=function(t){var u=o.rotate(),a=i(t),c=(o.rotate([0,0]),i(t));return o.rotate(u),a.sphere=function(){r.geoStream(function(n){return{type:"Polygon",coordinates:[e.range(-180,180+n/2,n).map(function(n,r){return[n,1&r?90-1e-6:Ur]}).concat(e.range(180,-180-n/2,-n).map(function(n,r){return[n,1&r?1e-6-90:-Ur]}))]}}(180/n),c)},a},o.scale(239.75)},n.geoHealpixRaw=rn,n.geoHill=function(){var n=1,e=r.geoProjectionMutator(en),t=e(n);return t.ratio=function(r){return arguments.length?e(n=+r):n},t.scale(167.774).center([0,18.67])},n.geoHillRaw=en,n.geoHomolosine=function(){return r.geoProjection(on).scale(152.63)},n.geoHomolosineRaw=on,n.geoInterrupt=Zr,n.geoInterruptedBoggs=function(){return Zr(m,$r).scale(160.857)},n.geoInterruptedHomolosine=function(){return Zr(on,ne).scale(152.63)},n.geoInterruptedMollweide=function(){return Zr(Lr,re).scale(169.529)},n.geoInterruptedMollweideHemispheres=function(){return Zr(Lr,ee).scale(169.529).rotate([20,0])},n.geoInterruptedSinuMollweide=function(){return Zr(tn,te).rotate([-20,-55]).scale(164.263).center([0,-5.4036])},n.geoInterruptedSinusoidal=function(){return Zr(P,oe).scale(152.63).rotate([-20,0])},n.geoKavrayskiy7=function(){return r.geoProjection(cn).scale(158.837)},n.geoKavrayskiy7Raw=cn,n.geoLagrange=function(){var n=.5,e=r.geoProjectionMutator(fn),t=e(n);return t.spacing=function(r){return arguments.length?e(n=+r):n},t.scale(124.75)},n.geoLagrangeRaw=fn,n.geoLarrivee=function(){return r.geoProjection(ln).scale(97.2672)},n.geoLarriveeRaw=ln,n.geoLaskowski=function(){return r.geoProjection(gn).scale(139.98)},n.geoLaskowskiRaw=gn,n.geoLittrow=function(){return r.geoProjection(vn).scale(144.049).clipAngle(89.999)},n.geoLittrowRaw=vn,n.geoLoximuthal=function(){return Hr(sn).parallel(40).scale(158.837)},n.geoLoximuthalRaw=sn,n.geoMiller=function(){return r.geoProjection(pn).scale(108.318)},n.geoMillerRaw=pn,n.geoModifiedStereographic=dn,n.geoModifiedStereographicRaw=hn,n.geoModifiedStereographicAlaska=function(){return dn(ue,[152,-64]).scale(1500).center([-160.908,62.4864]).clipAngle(25)},n.geoModifiedStereographicGs48=function(){return dn(ae,[95,-38]).scale(1e3).clipAngle(55).center([-96.5563,38.8675])},n.geoModifiedStereographicGs50=function(){return dn(ce,[120,-45]).scale(359.513).clipAngle(55).center([-117.474,53.0628])},n.geoModifiedStereographicMiller=function(){return dn(fe,[-20,-18]).scale(209.091).center([20,16.7214]).clipAngle(82)},n.geoModifiedStereographicLee=function(){return dn(le,[165,10]).scale(250).clipAngle(130).center([-165,-10])},n.geoMollweide=function(){return r.geoProjection(Lr).scale(169.529)},n.geoMollweideRaw=Lr,n.geoMtFlatPolarParabolic=function(){return r.geoProjection(wn).scale(164.859)},n.geoMtFlatPolarParabolicRaw=wn,n.geoMtFlatPolarQuartic=function(){return r.geoProjection(yn).scale(188.209)},n.geoMtFlatPolarQuarticRaw=yn,n.geoMtFlatPolarSinusoidal=function(){return r.geoProjection(mn).scale(166.518)},n.geoMtFlatPolarSinusoidalRaw=mn,n.geoNaturalEarth=r.geoNaturalEarth1,n.geoNaturalEarthRaw=r.geoNaturalEarth1Raw,n.geoNaturalEarth2=function(){return r.geoProjection(Pn).scale(175.295)},n.geoNaturalEarth2Raw=Pn,n.geoNellHammer=function(){return r.geoProjection(Rn).scale(152.63)},n.geoNellHammerRaw=Rn,n.geoPatterson=function(){return r.geoProjection(bn).scale(139.319)},n.geoPattersonRaw=bn,n.geoPolyconic=function(){return r.geoProjection(jn).scale(103.74)},n.geoPolyconicRaw=jn,n.geoPolyhedral=je,n.geoPolyhedralButterfly=function(n){n=n||function(n){var e=r.geoCentroid({type:"MultiPoint",coordinates:n});return r.geoGnomonic().scale(1).translate([0,0]).rotate([-e[0],-e[1]])};var e=Ee.map(function(r){return{face:r,project:n(r)}});return[-1,0,0,1,0,1,4,5].forEach(function(n,r){var t=e[n];t&&(t.children||(t.children=[])).push(e[r])}),je(e[0],function(n,r){return e[n<-jr/2?r<0?6:4:n<0?r<0?2:0:n0?[-e[0],0]:[180-e[0],180])};var e=Ee.map(function(r){return{face:r,project:n(r)}});return[-1,0,0,1,0,1,4,5].forEach(function(n,r){var t=e[n];t&&(t.children||(t.children=[])).push(e[r])}),je(e[0],function(n,r){return e[n<-jr/2?r<0?6:4:n<0?r<0?2:0:n1?0:n<-1?Gt:Math.acos(n)}function o(n){return n>1?Tt:n<-1?-Tt:Math.asin(n)}function u(n){return(n=Kt(n/2))*n}function c(){}function a(n,t){n&&tr.hasOwnProperty(n.type)&&tr[n.type](n,t)}function l(n,t,r){var i,e=-1,o=n.length-r;for(t.lineStart();++e=0?1:-1,e=i*r,o=Ut(t),u=Kt(t),c=ct*u,a=ut*o+c*Ut(e),l=c*i*Kt(e);ir.add(Dt(l,a)),ot=n,ut=o,ct=u}function v(n){return[Dt(n[1],n[0]),o(n[2])]}function d(n){var t=n[0],r=n[1],i=Ut(r);return[i*Ut(t),i*Kt(t),Kt(r)]}function E(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function y(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function S(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function m(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function M(n){var t=Vt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function x(n,t){dt.push(Et=[at=n,ft=n]),tst&&(st=t)}function _(n,t){var r=d([n*It,t*It]);if(vt){var i=y(vt,r),e=y([i[1],-i[0],0],i);M(e),e=v(e);var o,u=n-pt,c=u>0?1:-1,a=e[0]*Ht*c,l=Wt(u)>180;l^(c*ptst&&(st=o):(a=(a+360)%360-180,l^(c*ptst&&(st=t))),l?nA(at,ft)&&(ft=n):A(n,ft)>A(at,ft)&&(at=n):ft>=at?(nft&&(ft=n)):n>pt?A(at,n)>A(at,ft)&&(ft=n):A(n,ft)>A(at,ft)&&(at=n)}else dt.push(Et=[at=n,ft=n]);tst&&(st=t),vt=r,pt=n}function N(){cr.point=_}function w(){Et[0]=at,Et[1]=ft,cr.point=x,vt=null}function C(n,t){if(vt){var r=n-pt;ur.add(Wt(r)>180?r+(r>0?360:-360):r)}else ht=n,gt=t;or.point(n,t),_(n,t)}function P(){or.lineStart()}function R(){C(ht,gt),or.lineEnd(),Wt(ur)>Ot&&(at=-(ft=180)),Et[0]=at,Et[1]=ft,vt=null}function A(n,t){return(t-=n)<0?t+360:t}function j(n,t){return n[0]-t[0]}function q(n,t){return n[0]<=n[1]?n[0]<=t&&t<=n[1]:tGt?n-Ft:n<-Gt?n+Ft:n,t]}function B(n,t,r){return(n%=Ft)?t||r?fr(U(n),X(t,r)):U(n):t||r?X(t,r):W}function D(n){return function(t,r){return t+=n,[t>Gt?t-Ft:t<-Gt?t+Ft:t,r]}}function U(n){var t=D(n);return t.invert=D(-n),t}function X(n,t){function r(n,t){var r=Ut(t),a=Ut(n)*r,l=Kt(n)*r,f=Kt(t),s=f*i+a*e;return[Dt(l*u-s*c,a*i-f*e),o(s*u+l*c)]}var i=Ut(n),e=Kt(n),u=Ut(t),c=Kt(t);return r.invert=function(n,t){var r=Ut(t),a=Ut(n)*r,l=Kt(n)*r,f=Kt(t),s=f*u-l*c;return[Dt(l*u+f*c,a*i+s*e),o(s*i-a*e)]},r}function Y(n,t,r,i,e,o){if(r){var u=Ut(t),c=Kt(t),a=i*r;null==e?(e=t+i*Ft,o=t-a/2):(e=Z(u,e),o=Z(u,o),(i>0?eo)&&(e+=i*Ft));for(var l,f=e;i>0?f>o:f1}function V(n,t){return((n=n.x)[0]<0?n[1]-Tt-Ot:Tt-n[1])-((t=t.x)[0]<0?t[1]-Tt-Ot:Tt-t[1])}function $(n,r,i,e){function o(t,o){return n<=t&&t<=i&&r<=o&&o<=e}function u(t,o,u,a){var f=0,s=0;if(null==t||(f=c(t,u))!==(s=c(o,u))||l(t,o)<0^u>0)do{a.point(0===f||3===f?n:i,f>1?e:r)}while((f=(f+u+4)%4)!==s);else a.point(o[0],o[1])}function c(t,e){return Wt(t[0]-n)0?0:3:Wt(t[0]-i)0?2:1:Wt(t[1]-r)0?1:0:e>0?3:2}function a(n,t){return l(n.x,t.x)}function l(n,t){var r=c(n,1),i=c(t,1);return r!==i?r-i:0===r?t[1]-n[1]:1===r?n[0]-t[0]:2===r?n[1]-t[1]:t[0]-n[0]}return function(c){function l(n,t){o(n,t)&&x.point(n,t)}function f(t,u){var c=o(t,u);if(p&&h.push([t,u]),m)g=t,v=u,d=c,m=!1,c&&(x.lineStart(),x.point(t,u));else if(c&&S)x.point(t,u);else{var a=[E=Math.max(br,Math.min(zr,E)),y=Math.max(br,Math.min(zr,y))],l=[t=Math.max(br,Math.min(zr,t)),u=Math.max(br,Math.min(zr,u))];qr(a,l,n,r,i,e)?(S||(x.lineStart(),x.point(a[0],a[1])),x.point(l[0],l[1]),c||x.lineEnd(),M=!1):c&&(x.lineStart(),x.point(t,u),M=!1)}E=t,y=u,S=c}var s,p,h,g,v,d,E,y,S,m,M,x=c,_=_r(),N={point:l,lineStart:function(){N.point=f,p&&p.push(h=[]),m=!0,S=!1,E=y=NaN},lineEnd:function(){s&&(f(g,v),d&&S&&_.rejoin(),s.push(_.result())),N.point=l,S&&x.lineEnd()},polygonStart:function(){x=_,s=[],p=[],M=!0},polygonEnd:function(){var r=function(){for(var t=0,r=0,i=p.length;re&&(s-o)*(e-u)>(h-u)*(n-o)&&++t:h<=e&&(s-o)*(e-u)<(h-u)*(n-o)&&--t;return t}(),i=M&&r,o=(s=t.merge(s)).length;(i||o)&&(c.polygonStart(),i&&(c.lineStart(),u(null,null,1,c),c.lineEnd()),o&&wr(s,a,r,u,c),c.polygonEnd()),x=c,s=p=h=null}};return N}}function nn(){Or.point=Or.lineEnd=c}function tn(n,t){sr=n*=It,pr=Kt(t*=It),hr=Ut(t),Or.point=rn}function rn(n,t){n*=It;var r=Kt(t*=It),i=Ut(t),e=Wt(n-sr),o=Ut(e),u=i*Kt(e),c=hr*r-pr*i*o,a=pr*r+hr*i*o;Lr.add(Dt(Vt(u*u+c*c),a)),sr=n,pr=r,hr=i}function en(n,t){return!(!n||!Ir.hasOwnProperty(n.type))&&Ir[n.type](n,t)}function on(n,t){return 0===Fr(n,t)}function un(n,t){var r=Fr(n[0],n[1]);return Fr(n[0],t)+Fr(t,n[1])<=r+Ot}function cn(n,t){return!!Pr(n.map(an),ln(t))}function an(n){return(n=n.map(ln)).pop(),n}function ln(n){return[n[0]*It,n[1]*It]}function fn(n,r,i){var e=t.range(n,r-Ot,i).concat(r);return function(n){return e.map(function(t){return[n,t]})}}function sn(n,r,i){var e=t.range(n,r-Ot,i).concat(r);return function(n){return e.map(function(t){return[t,n]})}}function pn(){function n(){return{type:"MultiLineString",coordinates:r()}}function r(){return t.range(Xt(u/E)*E,o,E).map(h).concat(t.range(Xt(f/y)*y,l,y).map(g)).concat(t.range(Xt(e/v)*v,i,v).filter(function(n){return Wt(n%E)>Ot}).map(s)).concat(t.range(Xt(a/d)*d,c,d).filter(function(n){return Wt(n%y)>Ot}).map(p))}var i,e,o,u,c,a,l,f,s,p,h,g,v=10,d=v,E=90,y=360,S=2.5;return n.lines=function(){return r().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(g(l).slice(1),h(o).reverse().slice(1),g(f).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.extentMajor(t).extentMinor(t):n.extentMinor()},n.extentMajor=function(t){return arguments.length?(u=+t[0][0],o=+t[1][0],f=+t[0][1],l=+t[1][1],u>o&&(t=u,u=o,o=t),f>l&&(t=f,f=l,l=t),n.precision(S)):[[u,f],[o,l]]},n.extentMinor=function(t){return arguments.length?(e=+t[0][0],i=+t[1][0],a=+t[0][1],c=+t[1][1],e>i&&(t=e,e=i,i=t),a>c&&(t=a,a=c,c=t),n.precision(S)):[[e,a],[i,c]]},n.step=function(t){return arguments.length?n.stepMajor(t).stepMinor(t):n.stepMinor()},n.stepMajor=function(t){return arguments.length?(E=+t[0],y=+t[1],n):[E,y]},n.stepMinor=function(t){return arguments.length?(v=+t[0],d=+t[1],n):[v,d]},n.precision=function(t){return arguments.length?(S=+t,s=fn(a,c,90),p=sn(e,i,S),h=fn(f,l,90),g=sn(u,o,S),n):S},n.extentMajor([[-180,-90+Ot],[180,90-Ot]]).extentMinor([[-180,-80-Ot],[180,80+Ot]])}function hn(){Ur.point=gn}function gn(n,t){Ur.point=vn,gr=dr=n,vr=Er=t}function vn(n,t){Dr.add(Er*n-dr*t),dr=n,Er=t}function dn(){vn(gr,vr)}function En(n,t){Qr+=n,Vr+=t,++$r}function yn(){ui.point=Sn}function Sn(n,t){ui.point=mn,En(mr=n,Mr=t)}function mn(n,t){var r=n-mr,i=t-Mr,e=Vt(r*r+i*i);ni+=e*(mr+n)/2,ti+=e*(Mr+t)/2,ri+=e,En(mr=n,Mr=t)}function Mn(){ui.point=En}function xn(){ui.point=Nn}function _n(){wn(yr,Sr)}function Nn(n,t){ui.point=wn,En(yr=mr=n,Sr=Mr=t)}function wn(n,t){var r=n-mr,i=t-Mr,e=Vt(r*r+i*i);ni+=e*(mr+n)/2,ti+=e*(Mr+t)/2,ri+=e,ii+=(e=Mr*n-mr*t)*(mr+n),ei+=e*(Mr+t),oi+=3*e,En(mr=n,Mr=t)}function Cn(n){this._context=n}function Pn(n,t){hi.point=Rn,ai=fi=n,li=si=t}function Rn(n,t){fi-=n,si-=t,pi.add(Vt(fi*fi+si*si)),fi=n,si=t}function An(){this._string=[]}function jn(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function qn(n){return function(t){var r=new zn;for(var i in n)r[i]=n[i];return r.stream=t,r}}function zn(){}function bn(n,t,r){var i=n.clipExtent&&n.clipExtent();return n.scale(150).translate([0,0]),null!=i&&n.clipExtent(null),rr(r,n.stream(Kr)),t(Kr.result()),null!=i&&n.clipExtent(i),n}function Ln(n,t,r){return bn(n,function(r){var i=t[1][0]-t[0][0],e=t[1][1]-t[0][1],o=Math.min(i/(r[1][0]-r[0][0]),e/(r[1][1]-r[0][1])),u=+t[0][0]+(i-o*(r[1][0]+r[0][0]))/2,c=+t[0][1]+(e-o*(r[1][1]+r[0][1]))/2;n.scale(150*o).translate([u,c])},r)}function On(n,t,r){return Ln(n,[[0,0],t],r)}function Gn(n,t,r){return bn(n,function(r){var i=+t,e=i/(r[1][0]-r[0][0]),o=(i-e*(r[1][0]+r[0][0]))/2,u=-e*r[0][1];n.scale(150*e).translate([o,u])},r)}function Tn(n,t,r){return bn(n,function(r){var i=+t,e=i/(r[1][1]-r[0][1]),o=-e*r[0][0],u=(i-e*(r[1][1]+r[0][1]))/2;n.scale(150*e).translate([o,u])},r)}function kn(n){return Fn(function(){return n})()}function Fn(n){function t(n){return n=l(n[0]*It,n[1]*It),[n[0]*v+u,c-n[1]*v]}function r(n,t){return n=o(n,t),[n[0]*v+u,c-n[1]*v]}function i(){l=fr(a=B(m,M,x),o);var n=o(y,S);return u=d-n[0]*v,c=E+n[1]*v,e()}function e(){return h=g=null,t}var o,u,c,a,l,f,s,p,h,g,v=150,d=480,E=250,y=0,S=0,m=0,M=0,x=0,_=null,N=Ar,w=null,C=Wr,P=.5,R=di(r,P);return t.stream=function(n){return h&&g===n?h:h=Ei(function(n){return qn({point:function(t,r){var i=n(t,r);return this.stream.point(i[0],i[1])}})}(a)(N(R(C(g=n)))))},t.preclip=function(n){return arguments.length?(N=n,_=void 0,e()):N},t.postclip=function(n){return arguments.length?(C=n,w=f=s=p=null,e()):C},t.clipAngle=function(n){return arguments.length?(N=+n?jr(_=n*It):(_=null,Ar),e()):_*Ht},t.clipExtent=function(n){return arguments.length?(C=null==n?(w=f=s=p=null,Wr):$(w=+n[0][0],f=+n[0][1],s=+n[1][0],p=+n[1][1]),e()):null==w?null:[[w,f],[s,p]]},t.scale=function(n){return arguments.length?(v=+n,i()):v},t.translate=function(n){return arguments.length?(d=+n[0],E=+n[1],i()):[d,E]},t.center=function(n){return arguments.length?(y=n[0]%360*It,S=n[1]%360*It,i()):[y*Ht,S*Ht]},t.rotate=function(n){return arguments.length?(m=n[0]%360*It,M=n[1]%360*It,x=n.length>2?n[2]%360*It:0,i()):[m*Ht,M*Ht,x*Ht]},t.precision=function(n){return arguments.length?(R=di(r,P=n*n),e()):Vt(P)},t.fitExtent=function(n,r){return Ln(t,n,r)},t.fitSize=function(n,r){return On(t,n,r)},t.fitWidth=function(n,r){return Gn(t,n,r)},t.fitHeight=function(n,r){return Tn(t,n,r)},function(){return o=n.apply(this,arguments),t.invert=o.invert&&function(n){return(n=l.invert((n[0]-u)/v,(c-n[1])/v))&&[n[0]*Ht,n[1]*Ht]},i()}}function Hn(n){var t=0,r=Gt/3,i=Fn(n),e=i(t,r);return e.parallels=function(n){return arguments.length?i(t=n[0]*It,r=n[1]*It):[t*Ht,r*Ht]},e}function In(n,t){function r(n,t){var r=Vt(u-2*e*Kt(t))/e;return[r*Kt(n*=e),c-r*Ut(n)]}var i=Kt(n),e=(i+Kt(t))/2;if(Wt(e)0?t<-Tt+Ot&&(t=-Tt+Ot):t>Tt-Ot&&(t=Tt-Ot);var r=o/Jt(Xn(t),e);return[r*Kt(e*n),o-r*Ut(e*n)]}var i=Ut(n),e=n===t?Kt(n):Zt(i/Ut(t))/Zt(Xn(t)/Xn(n)),o=i*Jt(Xn(n),e)/e;return e?(r.invert=function(n,t){var r=o-t,i=Qt(e)*Vt(n*n+r*r);return[Dt(n,Wt(r))/e*Qt(r),2*Bt(Jt(o/i,1/e))-Tt]},r):Dn}function Zn(n,t){return[n,t]}function Jn(n,t){function r(n,t){var r=o-t,i=e*n;return[r*Kt(i),o-r*Ut(i)]}var i=Ut(n),e=n===t?Kt(n):(i-Ut(t))/(t-n),o=i/e+n;return Wt(e)0?1:n<0?-1:0},Vt=Math.sqrt,$t=Math.tan,nr={Feature:function(n,t){a(n.geometry,t)},FeatureCollection:function(n,t){for(var r=n.features,i=-1,e=r.length;++iOt?st=90:ur<-Ot&&(lt=-90),Et[0]=at,Et[1]=ft}},ar={sphere:c,point:z,lineStart:L,lineEnd:T,polygonStart:function(){ar.lineStart=k,ar.lineEnd=F},polygonEnd:function(){ar.lineStart=L,ar.lineEnd=T}},lr=function(n){return function(){return n}},fr=function(n,t){function r(r,i){return r=n(r,i),t(r[0],r[1])}return n.invert&&t.invert&&(r.invert=function(r,i){return(r=t.invert(r,i))&&n.invert(r[0],r[1])}),r};W.invert=W;var sr,pr,hr,gr,vr,dr,Er,yr,Sr,mr,Mr,xr=function(n){function t(t){return t=n(t[0]*It,t[1]*It),t[0]*=Ht,t[1]*=Ht,t}return n=B(n[0]*It,n[1]*It,n.length>2?n[2]*It:0),t.invert=function(t){return t=n.invert(t[0]*It,t[1]*It),t[0]*=Ht,t[1]*=Ht,t},t},_r=function(){var n,t=[];return{point:function(t,r){n.push([t,r])},lineStart:function(){t.push(n=[])},lineEnd:c,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var r=t;return t=[],n=null,r}}},Nr=function(n,t){return Wt(n[0]-t[0])=0;--o)e.point((f=l[o])[0],f[1]);else i(p.x,p.p.x,-1,e);p=p.p}l=(p=p.o).z,h=!h}while(!p.v);e.lineEnd()}}},Cr=rt(),Pr=function(n,t){var r=t[0],i=t[1],e=[Kt(r),-Ut(r),0],u=0,c=0;Cr.reset();for(var a=0,l=n.length;a=0?1:-1,R=P*C,A=R>Gt,j=v*N;if(Cr.add(Dt(j*P*Kt(R),E*w+j*Ut(R))),u+=A?C+P*Ft:C,A^h>=r^x>=r){var q=y(d(p),d(m));M(q);var z=y(e,q);M(z);var b=(A^C>=0?-1:1)*o(z[2]);(i>b||i===b&&(q[0]||q[1]))&&(c+=A^C>=0?1:-1)}}return(u<-Ot||u0){for(S||(o.polygonStart(),S=!0),o.lineStart(),n=0;n1&&2&e&&u.push(u.pop().concat(u.shift())),g.push(u.filter(Q))}var h,g,v,d=r(o),E=_r(),y=r(E),S=!1,m={point:u,lineStart:a,lineEnd:l,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=p,g=[],h=[]},polygonEnd:function(){m.point=u,m.lineStart=a,m.lineEnd=l,g=t.merge(g);var n=Pr(h,e);g.length?(S||(o.polygonStart(),S=!0),wr(g,V,n,i,o)):n&&(S||(o.polygonStart(),S=!0),o.lineStart(),i(null,null,1,o),o.lineEnd()),S&&(o.polygonEnd(),S=!1),g=h=null},sphere:function(){o.polygonStart(),o.lineStart(),i(null,null,1,o),o.lineEnd(),o.polygonEnd()}};return m}},Ar=Rr(function(){return!0},function(n){var t,r=NaN,i=NaN,e=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(o,u){var c=o>0?Gt:-Gt,a=Wt(o-r);Wt(a-Gt)0?Tt:-Tt),n.point(e,i),n.lineEnd(),n.lineStart(),n.point(c,i),n.point(o,i),t=0):e!==c&&a>=Gt&&(Wt(r-e)Ot?Bt((Kt(t)*(o=Ut(i))*Kt(r)-Kt(i)*(e=Ut(t))*Kt(n))/(e*o*u)):(t+i)/2}(r,i,o,u),n.point(e,i),n.lineEnd(),n.lineStart(),n.point(c,i),t=0),n.point(r=o,i=u),e=c},lineEnd:function(){n.lineEnd(),r=i=NaN},clean:function(){return 2-t}}},function(n,t,r,i){var e;if(null==n)e=r*Tt,i.point(-Gt,e),i.point(0,e),i.point(Gt,e),i.point(Gt,0),i.point(Gt,-e),i.point(0,-e),i.point(-Gt,-e),i.point(-Gt,0),i.point(-Gt,e);else if(Wt(n[0]-t[0])>Ot){var o=n[0]e}function r(n,t,r){var i=[1,0,0],o=y(d(n),d(t)),u=E(o,o),c=o[0],a=u-c*c;if(!a)return!r&&n;var l=e*u/a,f=-e*c/a,s=y(i,o),p=m(i,l);S(p,m(o,f));var h=s,g=E(p,h),M=E(h,h),x=g*g-M*(E(p,p)-1);if(!(x<0)){var _=Vt(x),N=m(h,(-g-_)/M);if(S(N,p),N=v(N),!r)return N;var w,C=n[0],P=t[0],R=n[1],A=t[1];P0^N[1]<(Wt(N[0]-C)Gt^(C<=N[0]&&N[0]<=P)){var z=m(h,(-g+_)/M);return S(z,p),[N,v(z)]}}}function i(t,r){var i=u?n:Gt-n,e=0;return t<-i?e|=1:t>i&&(e|=2),r<-i?e|=4:r>i&&(e|=8),e}var e=Ut(n),o=6*It,u=e>0,c=Wt(e)>Ot;return Rr(t,function(n){var e,o,a,l,f;return{lineStart:function(){l=a=!1,f=1},point:function(s,p){var h,g=[s,p],v=t(s,p),d=u?v?0:i(s,p):v?i(s+(s<0?Gt:-Gt),p):0;if(!e&&(l=a=v)&&n.lineStart(),v!==a&&(!(h=r(e,g))||Nr(e,h)||Nr(g,h))&&(g[0]+=Ot,g[1]+=Ot,v=t(g[0],g[1])),v!==a)f=0,v?(n.lineStart(),h=r(g,e),n.point(h[0],h[1])):(h=r(e,g),n.point(h[0],h[1]),n.lineEnd()),e=h;else if(c&&e&&u^v){var E;d&o||!(E=r(g,e,!0))||(f=0,u?(n.lineStart(),n.point(E[0][0],E[0][1]),n.point(E[1][0],E[1][1]),n.lineEnd()):(n.point(E[1][0],E[1][1]),n.lineEnd(),n.lineStart(),n.point(E[0][0],E[0][1])))}!v||e&&Nr(e,g)||n.point(g[0],g[1]),e=g,a=v,o=d},lineEnd:function(){a&&n.lineEnd(),e=null},clean:function(){return f|(l&&a)<<1}}},function(t,r,i,e){Y(e,n,o,i,t,r)},u?[0,-n]:[-Gt,n-Gt])},qr=function(n,t,r,i,e,o){var u,c=n[0],a=n[1],l=0,f=1,s=t[0]-c,p=t[1]-a;if(u=r-c,s||!(u>0)){if(u/=s,s<0){if(u0){if(u>f)return;u>l&&(l=u)}if(u=e-c,s||!(u<0)){if(u/=s,s<0){if(u>f)return;u>l&&(l=u)}else if(s>0){if(u0)){if(u/=p,p<0){if(u0){if(u>f)return;u>l&&(l=u)}if(u=o-a,p||!(u<0)){if(u/=p,p<0){if(u>f)return;u>l&&(l=u)}else if(p>0){if(u0&&(n[0]=c+l*s,n[1]=a+l*p),f<1&&(t[0]=c+f*s,t[1]=a+f*p),!0}}}}},zr=1e9,br=-zr,Lr=rt(),Or={sphere:c,point:c,lineStart:function(){Or.point=tn,Or.lineEnd=nn},lineEnd:c,polygonStart:c,polygonEnd:c},Gr=function(n){return Lr.reset(),rr(n,Or),+Lr},Tr=[null,null],kr={type:"LineString",coordinates:Tr},Fr=function(n,t){return Tr[0]=n,Tr[1]=t,Gr(kr)},Hr={Feature:function(n,t){return en(n.geometry,t)},FeatureCollection:function(n,t){for(var r=n.features,i=-1,e=r.length;++iZr&&(Zr=n),tJr&&(Jr=t)},lineStart:c,lineEnd:c,polygonStart:c,polygonEnd:c,result:function(){var n=[[Xr,Yr],[Zr,Jr]];return Zr=Jr=-(Yr=Xr=1/0),n}},Qr=0,Vr=0,$r=0,ni=0,ti=0,ri=0,ii=0,ei=0,oi=0,ui={point:En,lineStart:yn,lineEnd:Mn,polygonStart:function(){ui.lineStart=xn,ui.lineEnd=_n},polygonEnd:function(){ui.point=En,ui.lineStart=yn,ui.lineEnd=Mn},result:function(){var n=oi?[ii/oi,ei/oi]:ri?[ni/ri,ti/ri]:$r?[Qr/$r,Vr/$r]:[NaN,NaN];return Qr=Vr=$r=ni=ti=ri=ii=ei=oi=0,n}};Cn.prototype={_radius:4.5,pointRadius:function(n){return this._radius=n,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(n,t){switch(this._point){case 0:this._context.moveTo(n,t),this._point=1;break;case 1:this._context.lineTo(n,t);break;default:this._context.moveTo(n+this._radius,t),this._context.arc(n,t,this._radius,0,Ft)}},result:c};var ci,ai,li,fi,si,pi=rt(),hi={point:c,lineStart:function(){hi.point=Pn},lineEnd:function(){ci&&Rn(ai,li),hi.point=c},polygonStart:function(){ci=!0},polygonEnd:function(){ci=null},result:function(){var n=+pi;return pi.reset(),n}};An.prototype={_radius:4.5,_circle:jn(4.5),pointRadius:function(n){return(n=+n)!==this._radius&&(this._radius=n,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(n,t){switch(this._point){case 0:this._string.push("M",n,",",t),this._point=1;break;case 1:this._string.push("L",n,",",t);break;default:null==this._circle&&(this._circle=jn(this._radius)),this._string.push("M",n,",",t,this._circle)}},result:function(){if(this._string.length){var n=this._string.join("");return this._string=[],n}return null}};zn.prototype={constructor:zn,point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var gi=16,vi=Ut(30*It),di=function(n,t){return+t?function(n,t){function r(i,e,u,c,a,l,f,s,p,h,g,v,d,E){var y=f-i,S=s-e,m=y*y+S*S;if(m>4*t&&d--){var M=c+h,x=a+g,_=l+v,N=Vt(M*M+x*x+_*_),w=o(_/=N),C=Wt(Wt(_)-1)t||Wt((y*j+S*q)/m-.5)>.3||c*h+a*g+l*vOt&&--e>0);return[n/(.8707+(o=i*i)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),i]};$n.invert=Bn(o);nt.invert=Bn(function(n){return 2*Bt(n)});tt.invert=function(n,t){return[-t,2*Bt(Yt(n))-Tt]};n.geoArea=function(n){return er.reset(),rr(n,or),2*er},n.geoBounds=function(n){var t,r,i,e,o,u,c;if(st=ft=-(at=lt=1/0),dt=[],rr(n,cr),r=dt.length){for(dt.sort(j),t=1,o=[i=dt[0]];tA(i[0],i[1])&&(i[1]=e[1]),A(e[0],i[1])>A(i[0],i[1])&&(i[0]=e[0])):o.push(i=e);for(u=-1/0,t=0,i=o[r=o.length-1];t<=r;i=e,++t)e=o[t],(c=A(i[1],e[0]))>u&&(u=c,at=e[0],ft=i[1])}return dt=Et=null,at===1/0||lt===1/0?[[NaN,NaN],[NaN,NaN]]:[[at,lt],[ft,st]]},n.geoCentroid=function(n){yt=St=mt=Mt=xt=_t=Nt=wt=Ct=Pt=Rt=0,rr(n,ar);var t=Ct,r=Pt,i=Rt,e=t*t+r*r+i*i;return e<1e-12&&(t=_t,r=Nt,i=wt,St=.12&&e<.234&&i>=-.425&&i<-.214?l:e>=.166&&e<.234&&i>=-.214&&i<-.115?f:a).invert(n)},n.stream=function(n){return r&&i===n?r:r=function(n){var t=n.length;return{point:function(r,i){for(var e=-1;++e2?n[2]+90:90]):(n=r(),[n[0],n[1],n[2]-90])},r([0,0,90]).scale(159.155)},n.geoTransverseMercatorRaw=tt,n.geoRotation=xr,n.geoStream=rr,n.geoTransform=function(n){return{stream:qn(n)}},Object.defineProperty(n,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/src/main/resources/web/js/rs/libs/d3js/d3.v3.min.js b/src/main/resources/web/js/rs/libs/d3js/d3.v3.min.js new file mode 100644 index 0000000..7f3faa4 --- /dev/null +++ b/src/main/resources/web/js/rs/libs/d3js/d3.v3.min.js @@ -0,0 +1,4 @@ +d3=function(){function t(t){return t.target}function n(t){return t.source}function e(t,n){try{for(var e in n)Object.defineProperty(t.prototype,e,{value:n[e],enumerable:!1})}catch(r){t.prototype=n}}function r(t){for(var n=-1,e=t.length,r=[];e>++n;)r.push(t[n]);return r}function u(t){return Array.prototype.slice.call(t)}function i(){}function a(t){return t}function o(){return!0}function c(t){return"function"==typeof t?t:function(){return t}}function l(t,n,e){return function(){var r=e.apply(n,arguments);return r===n?t:r}}function f(t){return null!=t&&!isNaN(t)}function s(t){return t.length}function h(t){return t.trim().replace(/\s+/g," ")}function g(t){for(var n=1;t*n%1;)n*=10;return n}function p(t){return 1===t.length?function(n,e){t(null==n?e:null)}:t}function d(t){return t.responseText}function m(t){return JSON.parse(t.responseText)}function v(t){var n=Li.createRange();return n.selectNode(Li.body),n.createContextualFragment(t.responseText)}function y(t){return t.responseXML}function M(){}function b(t){function n(){for(var n,r=e,u=-1,i=r.length;i>++u;)(n=r[u].on)&&n.apply(this,arguments);return t}var e=[],r=new i;return n.on=function(n,u){var i,a=r.get(n);return 2>arguments.length?a&&a.on:(a&&(a.on=null,e=e.slice(0,i=e.indexOf(a)).concat(e.slice(i+1)),r.remove(n)),u&&e.push(r.set(n,{on:u})),t)},n}function x(t,n){return n-(t?Math.ceil(Math.log(t)/Math.LN10):1)}function _(t){return t+""}function w(t,n){var e=Math.pow(10,3*Math.abs(8-n));return{scale:n>8?function(t){return t/e}:function(t){return t*e},symbol:t}}function S(t){return function(n){return 0>=n?0:n>=1?1:t(n)}}function k(t){return function(n){return 1-t(1-n)}}function E(t){return function(n){return.5*(.5>n?t(2*n):2-t(2-2*n))}}function A(t){return t*t}function N(t){return t*t*t}function T(t){if(0>=t)return 0;if(t>=1)return 1;var n=t*t,e=n*t;return 4*(.5>t?e:3*(t-n)+e-.75)}function q(t){return function(n){return Math.pow(n,t)}}function C(t){return 1-Math.cos(t*Ti/2)}function z(t){return Math.pow(2,10*(t-1))}function D(t){return 1-Math.sqrt(1-t*t)}function L(t,n){var e;return 2>arguments.length&&(n=.45),arguments.length?e=n/(2*Ti)*Math.asin(1/t):(t=1,e=n/4),function(r){return 1+t*Math.pow(2,10*-r)*Math.sin(2*(r-e)*Ti/n)}}function F(t){return t||(t=1.70158),function(n){return n*n*((t+1)*n-t)}}function H(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function j(){Ci.event.stopPropagation(),Ci.event.preventDefault()}function P(){for(var t,n=Ci.event;t=n.sourceEvent;)n=t;return n}function R(t){for(var n=new M,e=0,r=arguments.length;r>++e;)n[arguments[e]]=b(n);return n.of=function(e,r){return function(u){try{var i=u.sourceEvent=Ci.event;u.target=t,Ci.event=u,n[u.type].apply(e,r)}finally{Ci.event=i}}},n}function O(t){var n=[t.a,t.b],e=[t.c,t.d],r=U(n),u=Y(n,e),i=U(I(e,n,-u))||0;n[0]*e[1]t?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function K(t,n,e){var r,u,i,a=0,o=0,c=0;if(r=/([a-z]+)\((.*)\)/i.exec(t))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return n(nn(u[0]),nn(u[1]),nn(u[2]))}return(i=oa.get(t))?n(i.r,i.g,i.b):(null!=t&&"#"===t.charAt(0)&&(4===t.length?(a=t.charAt(1),a+=a,o=t.charAt(2),o+=o,c=t.charAt(3),c+=c):7===t.length&&(a=t.substring(1,3),o=t.substring(3,5),c=t.substring(5,7)),a=parseInt(a,16),o=parseInt(o,16),c=parseInt(c,16)),n(a,o,c))}function W(t,n,e){var r,u,i=Math.min(t/=255,n/=255,e/=255),a=Math.max(t,n,e),o=a-i,c=(a+i)/2;return o?(u=.5>c?o/(a+i):o/(2-a-i),r=t==a?(n-e)/o+(e>n?6:0):n==a?(e-t)/o+2:(t-n)/o+4,r*=60):u=r=0,en(r,u,c)}function Q(t,n,e){t=tn(t),n=tn(n),e=tn(e);var r=pn((.4124564*t+.3575761*n+.1804375*e)/sa),u=pn((.2126729*t+.7151522*n+.072175*e)/ha),i=pn((.0193339*t+.119192*n+.9503041*e)/ga);return ln(116*u-16,500*(r-u),200*(u-i))}function tn(t){return.04045>=(t/=255)?t/12.92:Math.pow((t+.055)/1.055,2.4)}function nn(t){var n=parseFloat(t);return"%"===t.charAt(t.length-1)?Math.round(2.55*n):n}function en(t,n,e){return new rn(t,n,e)}function rn(t,n,e){this.h=t,this.s=n,this.l=e}function un(t,n,e){function r(t){return t>360?t-=360:0>t&&(t+=360),60>t?i+(a-i)*t/60:180>t?a:240>t?i+(a-i)*(240-t)/60:i}function u(t){return Math.round(255*r(t))}var i,a;return t%=360,0>t&&(t+=360),n=0>n?0:n>1?1:n,e=0>e?0:e>1?1:e,a=.5>=e?e*(1+n):e+n-e*n,i=2*e-a,$(u(t+120),u(t),u(t-120))}function an(t,n,e){return new on(t,n,e)}function on(t,n,e){this.h=t,this.c=n,this.l=e}function cn(t,n,e){return ln(e,Math.cos(t*=zi)*n,Math.sin(t)*n)}function ln(t,n,e){return new fn(t,n,e)}function fn(t,n,e){this.l=t,this.a=n,this.b=e}function sn(t,n,e){var r=(t+16)/116,u=r+n/500,i=r-e/200;return u=gn(u)*sa,r=gn(r)*ha,i=gn(i)*ga,$(dn(3.2404542*u-1.5371385*r-.4985314*i),dn(-.969266*u+1.8760108*r+.041556*i),dn(.0556434*u-.2040259*r+1.0572252*i))}function hn(t,n,e){return an(180*(Math.atan2(e,n)/Ti),Math.sqrt(n*n+e*e),t)}function gn(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function pn(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function dn(t){return Math.round(255*(.00304>=t?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function mn(t){return Vi(t,ba),t}function vn(t){return function(){return da(t,this)}}function yn(t){return function(){return ma(t,this)}}function Mn(t,n){function e(){this.removeAttribute(t)}function r(){this.removeAttributeNS(t.space,t.local)}function u(){this.setAttribute(t,n)}function i(){this.setAttributeNS(t.space,t.local,n)}function a(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}function o(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}return t=Ci.ns.qualify(t),null==n?t.local?r:e:"function"==typeof n?t.local?o:a:t.local?i:u}function bn(t){return RegExp("(?:^|\\s+)"+Ci.requote(t)+"(?:\\s+|$)","g")}function xn(t,n){function e(){for(var e=-1;u>++e;)t[e](this,n)}function r(){for(var e=-1,r=n.apply(this,arguments);u>++e;)t[e](this,r)}t=t.trim().split(/\s+/).map(_n);var u=t.length;return"function"==typeof n?r:e}function _n(t){var n=bn(t);return function(e,r){if(u=e.classList)return r?u.add(t):u.remove(t);var u=e.className,i=null!=u.baseVal,a=i?u.baseVal:u;r?(n.lastIndex=0,n.test(a)||(a=h(a+" "+t),i?u.baseVal=a:e.className=a)):a&&(a=h(a.replace(n," ")),i?u.baseVal=a:e.className=a)}}function wn(t,n,e){function r(){this.style.removeProperty(t)}function u(){this.style.setProperty(t,n,e)}function i(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}return null==n?r:"function"==typeof n?i:u}function Sn(t,n){function e(){delete this[t]}function r(){this[t]=n}function u(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}return null==n?e:"function"==typeof n?u:r}function kn(t){return{__data__:t}}function En(t){return function(){return Ma(this,t)}}function An(t){return arguments.length||(t=Ci.ascending),function(n,e){return!n-!e||t(n.__data__,e.__data__)}}function Nn(t,n,e){function r(){var n=this[i];n&&(this.removeEventListener(t,n,n.$),delete this[i])}function u(){function u(t){var e=Ci.event;Ci.event=t,o[0]=a.__data__;try{n.apply(a,o)}finally{Ci.event=e}}var a=this,o=Ui(arguments);r.call(this),this.addEventListener(t,this[i]=u,u.$=e),u._=n}var i="__on"+t,a=t.indexOf(".");return a>0&&(t=t.substring(0,a)),n?u:r}function Tn(t,n){for(var e=0,r=t.length;r>e;e++)for(var u,i=t[e],a=0,o=i.length;o>a;a++)(u=i[a])&&n(u,a,e);return t}function qn(t){return Vi(t,_a),t}function Cn(t,n){return Vi(t,Sa),t.id=n,t}function zn(t,n,e,r){var u=t.__transition__||(t.__transition__={active:0,count:0}),a=u[e];if(!a){var o=r.time;return a=u[e]={tween:new i,event:Ci.dispatch("start","end"),time:o,ease:r.ease,delay:r.delay,duration:r.duration},++u.count,Ci.timer(function(r){function i(r){return u.active>e?l():(u.active=e,h.start.call(t,f,n),a.tween.forEach(function(e,r){(r=r.call(t,f,n))&&d.push(r)}),c(r)||Ci.timer(c,0,o),1)}function c(r){if(u.active!==e)return l();for(var i=(r-g)/p,a=s(i),o=d.length;o>0;)d[--o].call(t,a);return i>=1?(l(),h.end.call(t,f,n),1):void 0}function l(){return--u.count?delete u[e]:delete t.__transition__,1}var f=t.__data__,s=a.ease,h=a.event,g=a.delay,p=a.duration,d=[];return r>=g?i(r):Ci.timer(i,g,o),1},0,o),a}}function Dn(t){return null==t&&(t=""),function(){this.textContent=t}}function Ln(t,n,e,r){var u=t.id;return Tn(t,"function"==typeof e?function(t,i,a){t.__transition__[u].tween.set(n,r(e.call(t,t.__data__,i,a)))}:(e=r(e),function(t){t.__transition__[u].tween.set(n,e)}))}function Fn(){for(var t,n=Date.now(),e=Ca;e;)t=n-e.then,t>=e.delay&&(e.flush=e.callback(t)),e=e.next;var r=Hn()-n;r>24?(isFinite(r)&&(clearTimeout(Na),Na=setTimeout(Fn,r)),Aa=0):(Aa=1,za(Fn))}function Hn(){for(var t=null,n=Ca,e=1/0;n;)n.flush?(delete qa[n.callback.id],n=t?t.next=n.next:Ca=n.next):(e=Math.min(e,n.then+n.delay),n=(t=n).next);return e}function jn(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>Da&&(Fi.scrollX||Fi.scrollY)){e=Ci.select(Li.body).append("svg").style("position","absolute").style("top",0).style("left",0);var u=e[0][0].getScreenCTM();Da=!(u.f||u.e),e.remove()}return Da?(r.x=n.pageX,r.y=n.pageY):(r.x=n.clientX,r.y=n.clientY),r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var i=t.getBoundingClientRect();return[n.clientX-i.left-t.clientLeft,n.clientY-i.top-t.clientTop]}function Pn(){}function Rn(t){var n=t[0],e=t[t.length-1];return e>n?[n,e]:[e,n]}function On(t){return t.rangeExtent?t.rangeExtent():Rn(t.range())}function Yn(t,n){var e,r=0,u=t.length-1,i=t[r],a=t[u];return i>a&&(e=r,r=u,u=e,e=i,i=a,a=e),(n=n(a-i))&&(t[r]=n.floor(i),t[u]=n.ceil(a)),t}function Un(){return Math}function In(t,n,e,r){function u(){var u=Math.min(t.length,n.length)>2?Gn:Jn,c=r?X:Z;return a=u(t,n,c,e),o=u(n,t,c,Ci.interpolate),i}function i(t){return a(t)}var a,o;return i.invert=function(t){return o(t)},i.domain=function(n){return arguments.length?(t=n.map(Number),u()):t},i.range=function(t){return arguments.length?(n=t,u()):n},i.rangeRound=function(t){return i.range(t).interpolate(Ci.interpolateRound)},i.clamp=function(t){return arguments.length?(r=t,u()):r},i.interpolate=function(t){return arguments.length?(e=t,u()):e},i.ticks=function(n){return Bn(t,n)},i.tickFormat=function(n){return $n(t,n)},i.nice=function(){return Yn(t,Zn),u()},i.copy=function(){return In(t,n,e,r)},u()}function Vn(t,n){return Ci.rebind(t,n,"range","rangeRound","interpolate","clamp")}function Zn(t){return t=Math.pow(10,Math.round(Math.log(t)/Math.LN10)-1),t&&{floor:function(n){return Math.floor(n/t)*t},ceil:function(n){return Math.ceil(n/t)*t}}}function Xn(t,n){var e=Rn(t),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/n)/Math.LN10)),i=n/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Bn(t,n){return Ci.range.apply(Ci,Xn(t,n))}function $n(t,n){return Ci.format(",."+Math.max(0,-Math.floor(Math.log(Xn(t,n)[2])/Math.LN10+.01))+"f")}function Jn(t,n,e,r){var u=e(t[0],t[1]),i=r(n[0],n[1]);return function(t){return i(u(t))}}function Gn(t,n,e,r){var u=[],i=[],a=0,o=Math.min(t.length,n.length)-1;for(t[o]=++a;)u.push(e(t[a-1],t[a])),i.push(r(n[a-1],n[a]));return function(n){var e=Ci.bisect(t,n,1,o)-1;return i[e](u[e](n))}}function Kn(t,n){function e(e){return t(n(e))}var r=n.pow;return e.invert=function(n){return r(t.invert(n))},e.domain=function(u){return arguments.length?(n=0>u[0]?Qn:Wn,r=n.pow,t.domain(u.map(n)),e):t.domain().map(r)},e.nice=function(){return t.domain(Yn(t.domain(),Un)),e},e.ticks=function(){var e=Rn(t.domain()),u=[];if(e.every(isFinite)){var i=Math.floor(e[0]),a=Math.ceil(e[1]),o=r(e[0]),c=r(e[1]);if(n===Qn)for(u.push(r(i));a>i++;)for(var l=9;l>0;l--)u.push(r(i)*l);else{for(;a>i;i++)for(var l=1;10>l;l++)u.push(r(i)*l);u.push(r(i))}for(i=0;o>u[i];i++);for(a=u.length;u[a-1]>c;a--);u=u.slice(i,a)}return u},e.tickFormat=function(t,u){if(2>arguments.length&&(u=La),!arguments.length)return u;var i,a=Math.max(.1,t/e.ticks().length),o=n===Qn?(i=-1e-12,Math.floor):(i=1e-12,Math.ceil);return function(t){return a>=t/r(o(n(t)+i))?u(t):""}},e.copy=function(){return Kn(t.copy(),n)},Vn(e,t)}function Wn(t){return Math.log(0>t?0:t)/Math.LN10}function Qn(t){return-Math.log(t>0?0:-t)/Math.LN10}function te(t,n){function e(n){return t(r(n))}var r=ne(n),u=ne(1/n);return e.invert=function(n){return u(t.invert(n))},e.domain=function(n){return arguments.length?(t.domain(n.map(r)),e):t.domain().map(u)},e.ticks=function(t){return Bn(e.domain(),t)},e.tickFormat=function(t){return $n(e.domain(),t)},e.nice=function(){return e.domain(Yn(e.domain(),Zn))},e.exponent=function(t){if(!arguments.length)return n;var i=e.domain();return r=ne(n=t),u=ne(1/n),e.domain(i)},e.copy=function(){return te(t.copy(),n)},Vn(e,t)}function ne(t){return function(n){return 0>n?-Math.pow(-n,t):Math.pow(n,t)}}function ee(t,n){function e(n){return a[((u.get(n)||u.set(n,t.push(n)))-1)%a.length]}function r(n,e){return Ci.range(t.length).map(function(t){return n+e*t})}var u,a,o;return e.domain=function(r){if(!arguments.length)return t;t=[],u=new i;for(var a,o=-1,c=r.length;c>++o;)u.has(a=r[o])||u.set(a,t.push(a));return e[n.t].apply(e,n.a)},e.range=function(t){return arguments.length?(a=t,o=0,n={t:"range",a:arguments},e):a},e.rangePoints=function(u,i){2>arguments.length&&(i=0);var c=u[0],l=u[1],f=(l-c)/(Math.max(1,t.length-1)+i);return a=r(2>t.length?(c+l)/2:c+f*i/2,f),o=0,n={t:"rangePoints",a:arguments},e},e.rangeBands=function(u,i,c){2>arguments.length&&(i=0),3>arguments.length&&(c=i);var l=u[1]arguments.length&&(i=0),3>arguments.length&&(c=i);var l=u[1]++e;)u[e-1]=Ci.quantile(t,e/i);return r}function r(t){return isNaN(t=+t)?0/0:n[Ci.bisect(u,t)]}var u;return r.domain=function(n){return arguments.length?(t=n.filter(function(t){return!isNaN(t)}).sort(Ci.ascending),e()):t},r.range=function(t){return arguments.length?(n=t,e()):n},r.quantiles=function(){return u},r.copy=function(){return re(t,n)},e()}function ue(t,n,e){function r(n){return e[Math.max(0,Math.min(a,Math.floor(i*(n-t))))]}function u(){return i=e.length/(n-t),a=e.length-1,r}var i,a;return r.domain=function(e){return arguments.length?(t=+e[0],n=+e[e.length-1],u()):[t,n]},r.range=function(t){return arguments.length?(e=t,u()):e},r.copy=function(){return ue(t,n,e)},u()}function ie(t,n){function e(e){return n[Ci.bisect(t,e)]}return e.domain=function(n){return arguments.length?(t=n,e):t},e.range=function(t){return arguments.length?(n=t,e):n},e.copy=function(){return ie(t,n)},e}function ae(t){function n(t){return+t}return n.invert=n,n.domain=n.range=function(e){return arguments.length?(t=e.map(n),n):t},n.ticks=function(n){return Bn(t,n)},n.tickFormat=function(n){return $n(t,n)},n.copy=function(){return ae(t)},n}function oe(t){return t.innerRadius}function ce(t){return t.outerRadius}function le(t){return t.startAngle}function fe(t){return t.endAngle}function se(t){function n(n){function a(){f.push("M",i(t(s),l))}for(var o,f=[],s=[],h=-1,g=n.length,p=c(e),d=c(r);g>++h;)u.call(this,o=n[h],h)?s.push([+p.call(this,o,h),+d.call(this,o,h)]):s.length&&(a(),s=[]);return s.length&&a(),f.length?f.join(""):null}var e=he,r=ge,u=o,i=pe,a=i.key,l=.7;return n.x=function(t){return arguments.length?(e=t,n):e},n.y=function(t){return arguments.length?(r=t,n):r},n.defined=function(t){return arguments.length?(u=t,n):u},n.interpolate=function(t){return arguments.length?(a="function"==typeof t?i=t:(i=Ya.get(t)||pe).key,n):a},n.tension=function(t){return arguments.length?(l=t,n):l},n}function he(t){return t[0]}function ge(t){return t[1]}function pe(t){return t.join("L")}function de(t){return pe(t)+"Z"}function me(t){for(var n=0,e=t.length,r=t[0],u=[r[0],",",r[1]];e>++n;)u.push("V",(r=t[n])[1],"H",r[0]);return u.join("")}function ve(t){for(var n=0,e=t.length,r=t[0],u=[r[0],",",r[1]];e>++n;)u.push("H",(r=t[n])[0],"V",r[1]);return u.join("")}function ye(t,n){return 4>t.length?pe(t):t[1]+xe(t.slice(1,t.length-1),_e(t,n))}function Me(t,n){return 3>t.length?pe(t):t[0]+xe((t.push(t[0]),t),_e([t[t.length-2]].concat(t,[t[1]]),n))}function be(t,n){return 3>t.length?pe(t):t[0]+xe(t,_e(t,n))}function xe(t,n){if(1>n.length||t.length!=n.length&&t.length!=n.length+2)return pe(t);var e=t.length!=n.length,r="",u=t[0],i=t[1],a=n[0],o=a,c=1;if(e&&(r+="Q"+(i[0]-2*a[0]/3)+","+(i[1]-2*a[1]/3)+","+i[0]+","+i[1],u=t[1],c=2),n.length>1){o=n[1],i=t[c],c++,r+="C"+(u[0]+a[0])+","+(u[1]+a[1])+","+(i[0]-o[0])+","+(i[1]-o[1])+","+i[0]+","+i[1];for(var l=2;n.length>l;l++,c++)i=t[c],o=n[l],r+="S"+(i[0]-o[0])+","+(i[1]-o[1])+","+i[0]+","+i[1]}if(e){var f=t[c];r+="Q"+(i[0]+2*o[0]/3)+","+(i[1]+2*o[1]/3)+","+f[0]+","+f[1]}return r}function _e(t,n){for(var e,r=[],u=(1-n)/2,i=t[0],a=t[1],o=1,c=t.length;c>++o;)e=i,i=a,a=t[o],r.push([u*(a[0]-e[0]),u*(a[1]-e[1])]);return r}function we(t){if(3>t.length)return pe(t);var n=1,e=t.length,r=t[0],u=r[0],i=r[1],a=[u,u,u,(r=t[1])[0]],o=[i,i,i,r[1]],c=[u,",",i];for(Ne(c,a,o);e>++n;)r=t[n],a.shift(),a.push(r[0]),o.shift(),o.push(r[1]),Ne(c,a,o);for(n=-1;2>++n;)a.shift(),a.push(r[0]),o.shift(),o.push(r[1]),Ne(c,a,o);return c.join("")}function Se(t){if(4>t.length)return pe(t);for(var n,e=[],r=-1,u=t.length,i=[0],a=[0];3>++r;)n=t[r],i.push(n[0]),a.push(n[1]);for(e.push(Ae(Va,i)+","+Ae(Va,a)),--r;u>++r;)n=t[r],i.shift(),i.push(n[0]),a.shift(),a.push(n[1]),Ne(e,i,a);return e.join("")}function ke(t){for(var n,e,r=-1,u=t.length,i=u+4,a=[],o=[];4>++r;)e=t[r%u],a.push(e[0]),o.push(e[1]);for(n=[Ae(Va,a),",",Ae(Va,o)],--r;i>++r;)e=t[r%u],a.shift(),a.push(e[0]),o.shift(),o.push(e[1]),Ne(n,a,o);return n.join("")}function Ee(t,n){var e=t.length-1;if(e)for(var r,u,i=t[0][0],a=t[0][1],o=t[e][0]-i,c=t[e][1]-a,l=-1;e>=++l;)r=t[l],u=l/e,r[0]=n*r[0]+(1-n)*(i+u*o),r[1]=n*r[1]+(1-n)*(a+u*c);return we(t)}function Ae(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]+t[3]*n[3]}function Ne(t,n,e){t.push("C",Ae(Ua,n),",",Ae(Ua,e),",",Ae(Ia,n),",",Ae(Ia,e),",",Ae(Va,n),",",Ae(Va,e))}function Te(t,n){return(n[1]-t[1])/(n[0]-t[0])}function qe(t){for(var n=0,e=t.length-1,r=[],u=t[0],i=t[1],a=r[0]=Te(u,i);e>++n;)r[n]=(a+(a=Te(u=i,i=t[n+1])))/2;return r[n]=a,r}function Ce(t){for(var n,e,r,u,i=[],a=qe(t),o=-1,c=t.length-1;c>++o;)n=Te(t[o],t[o+1]),1e-6>Math.abs(n)?a[o]=a[o+1]=0:(e=a[o]/n,r=a[o+1]/n,u=e*e+r*r,u>9&&(u=3*n/Math.sqrt(u),a[o]=u*e,a[o+1]=u*r));for(o=-1;c>=++o;)u=(t[Math.min(c,o+1)][0]-t[Math.max(0,o-1)][0])/(6*(1+a[o]*a[o])),i.push([u||0,a[o]*u||0]);return i}function ze(t){return 3>t.length?pe(t):t[0]+xe(t,Ce(t))}function De(t){for(var n,e,r,u=-1,i=t.length;i>++u;)n=t[u],e=n[0],r=n[1]+Ra,n[0]=e*Math.cos(r),n[1]=e*Math.sin(r);return t}function Le(t){function n(n){function o(){m.push("M",l(t(y),g),h,s(t(v.reverse()),g),"Z")}for(var f,p,d,m=[],v=[],y=[],M=-1,b=n.length,x=c(e),_=c(u),w=e===r?function(){return p}:c(r),S=u===i?function(){return d}:c(i);b>++M;)a.call(this,f=n[M],M)?(v.push([p=+x.call(this,f,M),d=+_.call(this,f,M)]),y.push([+w.call(this,f,M),+S.call(this,f,M)])):v.length&&(o(),v=[],y=[]);return v.length&&o(),m.length?m.join(""):null}var e=he,r=he,u=0,i=ge,a=o,l=pe,f=l.key,s=l,h="L",g=.7;return n.x=function(t){return arguments.length?(e=r=t,n):r},n.x0=function(t){return arguments.length?(e=t,n):e},n.x1=function(t){return arguments.length?(r=t,n):r},n.y=function(t){return arguments.length?(u=i=t,n):i},n.y0=function(t){return arguments.length?(u=t,n):u},n.y1=function(t){return arguments.length?(i=t,n):i},n.defined=function(t){return arguments.length?(a=t,n):a},n.interpolate=function(t){return arguments.length?(f="function"==typeof t?l=t:(l=Ya.get(t)||pe).key,s=l.reverse||l,h=l.closed?"M":"L",n):f},n.tension=function(t){return arguments.length?(g=t,n):g},n}function Fe(t){return t.radius}function He(t){return[t.x,t.y]}function je(t){return function(){var n=t.apply(this,arguments),e=n[0],r=n[1]+Ra;return[e*Math.cos(r),e*Math.sin(r)]}}function Pe(){return 64}function Re(){return"circle"}function Oe(t){var n=Math.sqrt(t/Ti);return"M0,"+n+"A"+n+","+n+" 0 1,1 0,"+-n+"A"+n+","+n+" 0 1,1 0,"+n+"Z"}function Ye(t,n){t.attr("transform",function(t){return"translate("+n(t)+",0)"})}function Ue(t,n){t.attr("transform",function(t){return"translate(0,"+n(t)+")"})}function Ie(t,n,e){if(r=[],e&&n.length>1){for(var r,u,i,a=Rn(t.domain()),o=-1,c=n.length,l=(n[1]-n[0])/++e;c>++o;)for(u=e;--u>0;)(i=+n[o]-u*l)>=a[0]&&r.push(i);for(--o,u=0;e>++u&&(i=+n[o]+u*l)++c;)i=a[c],null!=i&&(Ke(i,n,e),t.charge+=i.charge,r+=i.charge*i.cx,u+=i.charge*i.cy);if(t.point){t.leaf||(t.point.x+=Math.random()-.5,t.point.y+=Math.random()-.5);var l=n*e[t.point.index];t.charge+=t.pointCharge=l,r+=l*t.point.x,u+=l*t.point.y}t.cx=r/t.charge,t.cy=u/t.charge}function We(t){return t.x}function Qe(t){return t.y}function tr(t,n,e){t.y0=n,t.y=e}function nr(t){return Ci.range(t.length)}function er(t){for(var n=-1,e=t[0].length,r=[];e>++n;)r[n]=0;return r}function rr(t){for(var n,e=1,r=0,u=t[0][1],i=t.length;i>e;++e)(n=t[e][1])>u&&(r=e,u=n);return r}function ur(t){return t.reduce(ir,0)}function ir(t,n){return t+n[1]}function ar(t,n){return or(t,Math.ceil(Math.log(n.length)/Math.LN2+1))}function or(t,n){for(var e=-1,r=+t[0],u=(t[1]-r)/n,i=[];n>=++e;)i[e]=u*e+r;return i}function cr(t){return[Ci.min(t),Ci.max(t)]}function lr(t,n){return Ci.rebind(t,n,"sort","children","value"),t.nodes=t,t.links=gr,t}function fr(t){return t.children}function sr(t){return t.value}function hr(t,n){return n.value-t.value}function gr(t){return Ci.merge(t.map(function(t){return(t.children||[]).map(function(n){return{source:t,target:n}})}))}function pr(t,n){return t.value-n.value}function dr(t,n){var e=t._pack_next;t._pack_next=n,n._pack_prev=t,n._pack_next=e,e._pack_prev=n}function mr(t,n){t._pack_next=n,n._pack_prev=t}function vr(t,n){var e=n.x-t.x,r=n.y-t.y,u=t.r+n.r;return u*u-e*e-r*r>.001}function yr(t){function n(t){f=Math.min(t.x-t.r,f),s=Math.max(t.x+t.r,s),h=Math.min(t.y-t.r,h),g=Math.max(t.y+t.r,g)}if((e=t.children)&&(l=e.length)){var e,r,u,i,a,o,c,l,f=1/0,s=-1/0,h=1/0,g=-1/0;if(e.forEach(Mr),r=e[0],r.x=-r.r,r.y=0,n(r),l>1&&(u=e[1],u.x=u.r,u.y=0,n(u),l>2))for(i=e[2],_r(r,u,i),n(i),dr(r,i),r._pack_prev=i,dr(i,u),u=r._pack_next,a=3;l>a;a++){_r(r,u,i=e[a]);var p=0,d=1,m=1;for(o=u._pack_next;o!==u;o=o._pack_next,d++)if(vr(o,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==o._pack_prev&&!vr(c,i);c=c._pack_prev,m++);p?(m>d||d==m&&u.ra;a++)i=e[a],i.x-=v,i.y-=y,M=Math.max(M,i.r+Math.sqrt(i.x*i.x+i.y*i.y));t.r=M,e.forEach(br)}}function Mr(t){t._pack_next=t._pack_prev=t}function br(t){delete t._pack_next,delete t._pack_prev}function xr(t,n,e,r){var u=t.children;if(t.x=n+=r*t.x,t.y=e+=r*t.y,t.r*=r,u)for(var i=-1,a=u.length;a>++i;)xr(u[i],n,e,r)}function _r(t,n,e){var r=t.r+e.r,u=n.x-t.x,i=n.y-t.y;if(r&&(u||i)){var a=n.r+e.r,o=u*u+i*i;a*=a,r*=r;var c=.5+(r-a)/(2*o),l=Math.sqrt(Math.max(0,2*a*(r+o)-(r-=o)*r-a*a))/(2*o);e.x=t.x+c*u+l*i,e.y=t.y+c*i-l*u}else e.x=t.x+r,e.y=t.y}function wr(t){return 1+Ci.max(t,function(t){return t.y})}function Sr(t){return t.reduce(function(t,n){return t+n.x},0)/t.length}function kr(t){var n=t.children;return n&&n.length?kr(n[0]):t}function Er(t){var n,e=t.children;return e&&(n=e.length)?Er(e[n-1]):t}function Ar(t,n){return t.parent==n.parent?1:2}function Nr(t){var n=t.children;return n&&n.length?n[0]:t._tree.thread}function Tr(t){var n,e=t.children;return e&&(n=e.length)?e[n-1]:t._tree.thread}function qr(t,n){var e=t.children;if(e&&(u=e.length))for(var r,u,i=-1;u>++i;)n(r=qr(e[i],n),t)>0&&(t=r);return t}function Cr(t,n){return t.x-n.x}function zr(t,n){return n.x-t.x}function Dr(t,n){return t.depth-n.depth}function Lr(t,n){function e(t,r){var u=t.children;if(u&&(a=u.length))for(var i,a,o=null,c=-1;a>++c;)i=u[c],e(i,o),o=i;n(t,r)}e(t,null)}function Fr(t){for(var n,e=0,r=0,u=t.children,i=u.length;--i>=0;)n=u[i]._tree,n.prelim+=e,n.mod+=e,e+=n.shift+(r+=n.change)}function Hr(t,n,e){t=t._tree,n=n._tree;var r=e/(n.number-t.number);t.change+=r,n.change-=r,n.shift+=e,n.prelim+=e,n.mod+=e}function jr(t,n,e){return t._tree.ancestor.parent==n.parent?t._tree.ancestor:e}function Pr(t){return{x:t.x,y:t.y,dx:t.dx,dy:t.dy}}function Rr(t,n){var e=t.x+n[3],r=t.y+n[0],u=t.dx-n[1]-n[3],i=t.dy-n[0]-n[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Or(t,n){function e(t,e){return Ci.xhr(t,n,e).response(r)}function r(t){return e.parse(t.responseText)}function u(n){return n.map(i).join(t)}function i(t){return a.test(t)?'"'+t.replace(/\"/g,'""')+'"':t}var a=RegExp('["'+t+"\n]"),o=t.charCodeAt(0);return e.parse=function(t){var n;return e.parseRows(t,function(t){return n?n(t):(n=Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}"),void 0)})},e.parseRows=function(t,n){function e(){if(f>=l)return a;if(u)return u=!1,i;var n=f;if(34===t.charCodeAt(n)){for(var e=n;l>e++;)if(34===t.charCodeAt(e)){if(34!==t.charCodeAt(e+1))break;++e}f=e+2;var r=t.charCodeAt(e+1);return 13===r?(u=!0,10===t.charCodeAt(e+2)&&++f):10===r&&(u=!0),t.substring(n+1,e).replace(/""/g,'"')}for(;l>f;){var r=t.charCodeAt(f++),c=1;if(10===r)u=!0;else if(13===r)u=!0,10===t.charCodeAt(f)&&(++f,++c);else if(r!==o)continue;return t.substring(n,f-c)}return t.substring(n)}for(var r,u,i={},a={},c=[],l=t.length,f=0,s=0;(r=e())!==a;){for(var h=[];r!==i&&r!==a;)h.push(r),r=e();(!n||(h=n(h,s++)))&&c.push(h)}return c},e.format=function(t){return t.map(u).join("\n")},e}function Yr(t,n){oo.hasOwnProperty(t.type)&&oo[t.type](t,n)}function Ur(t,n,e){var r,u=-1,i=t.length-e;for(n.lineStart();i>++u;)r=t[u],n.point(r[0],r[1]);n.lineEnd()}function Ir(t,n){var e=-1,r=t.length;for(n.polygonStart();r>++e;)Ur(t[e],n,1);n.polygonEnd()}function Vr(t){return[Math.atan2(t[1],t[0]),Math.asin(Math.max(-1,Math.min(1,t[2])))]}function Zr(t,n){return qi>Math.abs(t[0]-n[0])&&qi>Math.abs(t[1]-n[1])}function Xr(t){var n=t[0],e=t[1],r=Math.cos(e);return[r*Math.cos(n),r*Math.sin(n),Math.sin(e)]}function Br(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function $r(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Jr(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Gr(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Kr(t){var n=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function Wr(t){function n(n){function r(e,r){e=t(e,r),n.point(e[0],e[1])}function i(){f=0/0,d.point=a,n.lineStart()}function a(r,i){var a=Xr([r,i]),o=t(r,i);e(f,s,l,h,g,p,f=o[0],s=o[1],l=r,h=a[0],g=a[1],p=a[2],u,n),n.point(f,s)}function o(){d.point=r,n.lineEnd()}function c(){var t,r,c,m,v,y,M;i(),d.point=function(n,e){a(t=n,r=e),c=f,m=s,v=h,y=g,M=p,d.point=a},d.lineEnd=function(){e(f,s,l,h,g,p,c,m,t,v,y,M,u,n),d.lineEnd=o,o()}}var l,f,s,h,g,p,d={point:r,lineStart:i,lineEnd:o,polygonStart:function(){n.polygonStart(),d.lineStart=c},polygonEnd:function(){n.polygonEnd(),d.lineStart=i}};return d}function e(n,u,i,a,o,c,l,f,s,h,g,p,d,m){var v=l-n,y=f-u,M=v*v+y*y;if(M>4*r&&d--){var b=a+h,x=o+g,_=c+p,w=Math.sqrt(b*b+x*x+_*_),S=Math.asin(_/=w),k=qi>Math.abs(Math.abs(_)-1)?(i+s)/2:Math.atan2(x,b),E=t(k,S),A=E[0],N=E[1],T=A-n,q=N-u,C=y*T-v*q;(C*C/M>r||Math.abs((v*T+y*q)/M-.5)>.3)&&(e(n,u,i,a,o,c,A,N,k,b/=w,x/=w,_,d,m),m.point(A,N),e(A,N,k,b,x,_,l,f,s,h,g,p,d,m))}}var r=.5,u=16;return n.precision=function(t){return arguments.length?(u=(r=t*t)>0&&16,n):Math.sqrt(r)},n}function Qr(t,n){function e(t,n){var e=Math.sqrt(i-2*u*Math.sin(n))/u;return[e*Math.sin(t*=u),a-e*Math.cos(t)]}var r=Math.sin(t),u=(r+Math.sin(n))/2,i=1+r*(2*u-r),a=Math.sqrt(i)/u;return e.invert=function(t,n){var e=a-n;return[Math.atan2(t,e)/u,Math.asin((i-(t*t+e*e)*u*u)/(2*u))]},e}function tu(t){function n(t,n){r>t&&(r=t),t>i&&(i=t),u>n&&(u=n),n>a&&(a=n)}function e(){o.point=o.lineEnd=Pn}var r,u,i,a,o={point:n,lineStart:Pn,lineEnd:Pn,polygonStart:function(){o.lineEnd=e},polygonEnd:function(){o.point=n}};return function(n){return a=i=-(r=u=1/0),Ci.geo.stream(n,t(o)),[[r,u],[i,a]]}}function nu(t,n){if(!fo){++so,t*=zi;var e=Math.cos(n*=zi);ho+=(e*Math.cos(t)-ho)/so,go+=(e*Math.sin(t)-go)/so,po+=(Math.sin(n)-po)/so}}function eu(){var t,n;fo=1,ru(),fo=2;var e=mo.point;mo.point=function(r,u){e(t=r,n=u)},mo.lineEnd=function(){mo.point(t,n),uu(),mo.lineEnd=uu}}function ru(){function t(t,u){t*=zi;var i=Math.cos(u*=zi),a=i*Math.cos(t),o=i*Math.sin(t),c=Math.sin(u),l=Math.atan2(Math.sqrt((l=e*c-r*o)*l+(l=r*a-n*c)*l+(l=n*o-e*a)*l),n*a+e*o+r*c);so+=l,ho+=l*(n+(n=a)),go+=l*(e+(e=o)),po+=l*(r+(r=c))}var n,e,r;fo>1||(1>fo&&(fo=1,so=ho=go=po=0),mo.point=function(u,i){u*=zi;var a=Math.cos(i*=zi);n=a*Math.cos(u),e=a*Math.sin(u),r=Math.sin(i),mo.point=t})}function uu(){mo.point=nu}function iu(t,n){var e=Math.cos(t),r=Math.sin(t);return function(u,i,a,o){null!=u?(u=au(e,u),i=au(e,i),(a>0?i>u:u>i)&&(u+=2*a*Ti)):(u=t+2*a*Ti,i=t);for(var c,l=a*n,f=u;a>0?f>i:i>f;f-=l)o.point((c=Vr([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function au(t,n){var e=Xr(n);e[0]-=t,Kr(e);var r=Math.acos(Math.max(-1,Math.min(1,-e[1])));return((0>-e[2]?-r:r)+2*Math.PI-qi)%(2*Math.PI)}function ou(t,n,e){return function(r){function u(n,e){t(n,e)&&r.point(n,e)}function i(t,n){m.point(t,n)}function a(){v.point=i,m.lineStart()}function o(){v.point=u,m.lineEnd()}function c(t,n){M.point(t,n),d.push([t,n])}function l(){M.lineStart(),d=[]}function f(){c(d[0][0],d[0][1]),M.lineEnd();var t,n=M.clean(),e=y.buffer(),u=e.length;if(!u)return p=!0,g+=gu(d,-1),d=null,void 0;if(d=null,1&n){t=e[0],h+=gu(t,1);var i,u=t.length-1,a=-1;for(r.lineStart();u>++a;)r.point((i=t[a])[0],i[1]);return r.lineEnd(),void 0}u>1&&2&n&&e.push(e.pop().concat(e.shift())),s.push(e.filter(su))}var s,h,g,p,d,m=n(r),v={point:u,lineStart:a,lineEnd:o,polygonStart:function(){v.point=c,v.lineStart=l,v.lineEnd=f,p=!1,g=h=0,s=[],r.polygonStart()},polygonEnd:function(){v.point=u,v.lineStart=a,v.lineEnd=o,s=Ci.merge(s),s.length?cu(s,e,r):(-qi>h||p&&-qi>g)&&(r.lineStart(),e(null,null,1,r),r.lineEnd()),r.polygonEnd(),s=null},sphere:function(){r.polygonStart(),r.lineStart(),e(null,null,1,r),r.lineEnd(),r.polygonEnd()}},y=hu(),M=n(y);return v}}function cu(t,n,e){var r=[],u=[];if(t.forEach(function(t){if(!(1>=(n=t.length))){var n,i=t[0],a=t[n-1];if(Zr(i,a)){e.lineStart(); +for(var o=0;n>o;++o)e.point((i=t[o])[0],i[1]);return e.lineEnd(),void 0}var c={point:i,points:t,other:null,visited:!1,entry:!0,subject:!0},l={point:i,points:[i],other:c,visited:!1,entry:!1,subject:!1};c.other=l,r.push(c),u.push(l),c={point:a,points:[a],other:null,visited:!1,entry:!1,subject:!0},l={point:a,points:[a],other:c,visited:!1,entry:!0,subject:!1},c.other=l,r.push(c),u.push(l)}}),u.sort(fu),lu(r),lu(u),r.length)for(var i,a,o,c=r[0];;){for(i=c;i.visited;)if((i=i.next)===c)return;a=i.points,e.lineStart();do{if(i.visited=i.other.visited=!0,i.entry){if(i.subject)for(var l=0;a.length>l;l++)e.point((o=a[l])[0],o[1]);else n(i.point,i.next.point,1,e);i=i.next}else{if(i.subject){a=i.prev.points;for(var l=a.length;--l>=0;)e.point((o=a[l])[0],o[1])}else n(i.point,i.prev.point,-1,e);i=i.prev}i=i.other,a=i.points}while(!i.visited);e.lineEnd()}}function lu(t){if(n=t.length){for(var n,e,r=0,u=t[0];n>++r;)u.next=e=t[r],e.prev=u,u=e;u.next=e=t[0],e.prev=u}}function fu(t,n){return(0>(t=t.point)[0]?t[1]-Ti/2-qi:Ti/2-t[1])-(0>(n=n.point)[0]?n[1]-Ti/2-qi:Ti/2-n[1])}function su(t){return t.length>1}function hu(){var t,n=[];return{lineStart:function(){n.push(t=[])},point:function(n,e){t.push([n,e])},lineEnd:Pn,buffer:function(){var e=n;return n=[],t=null,e}}}function gu(t,n){if(!(e=t.length))return 0;for(var e,r,u,i=0,a=0,o=t[0],c=o[0],l=o[1],f=Math.cos(l),s=Math.atan2(n*Math.sin(c)*f,Math.sin(l)),h=1-n*Math.cos(c)*f,g=s;e>++i;)o=t[i],f=Math.cos(l=o[1]),r=Math.atan2(n*Math.sin(c=o[0])*f,Math.sin(l)),u=1-n*Math.cos(c)*f,qi>Math.abs(h-2)&&qi>Math.abs(u-2)||(qi>Math.abs(u)||qi>Math.abs(h)||(qi>Math.abs(Math.abs(r-s)-Ti)?u+h>2&&(a+=4*(r-s)):a+=qi>Math.abs(h-2)?4*(r-g):((3*Ti+r-s)%(2*Ti)-Ti)*(h+u)),g=s,s=r,h=u);return a}function pu(t){var n,e=0/0,r=0/0,u=0/0;return{lineStart:function(){t.lineStart(),n=1},point:function(i,a){var o=i>0?Ti:-Ti,c=Math.abs(i-e);qi>Math.abs(c-Ti)?(t.point(e,r=(r+a)/2>0?Ti/2:-Ti/2),t.point(u,r),t.lineEnd(),t.lineStart(),t.point(o,r),t.point(i,r),n=0):u!==o&&c>=Ti&&(qi>Math.abs(e-u)&&(e-=u*qi),qi>Math.abs(i-o)&&(i-=o*qi),r=du(e,r,i,a),t.point(u,r),t.lineEnd(),t.lineStart(),t.point(o,r),n=0),t.point(e=i,r=a),u=o},lineEnd:function(){t.lineEnd(),e=r=0/0},clean:function(){return 2-n}}}function du(t,n,e,r){var u,i,a=Math.sin(t-e);return Math.abs(a)>qi?Math.atan((Math.sin(n)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(n))*Math.sin(t))/(u*i*a)):(n+r)/2}function mu(t,n,e,r){var u;if(null==t)u=e*Ti/2,r.point(-Ti,u),r.point(0,u),r.point(Ti,u),r.point(Ti,0),r.point(Ti,-u),r.point(0,-u),r.point(-Ti,-u),r.point(-Ti,0),r.point(-Ti,u);else if(Math.abs(t[0]-n[0])>qi){var i=(t[0]i}function e(t){var e,u,i,a;return{lineStart:function(){i=u=!1,a=1},point:function(o,c){var l,f=[o,c],s=n(o,c);!e&&(i=u=s)&&t.lineStart(),s!==u&&(l=r(e,f),(Zr(e,l)||Zr(f,l))&&(f[0]+=qi,f[1]+=qi,s=n(f[0],f[1]))),s!==u&&(a=0,(u=s)?(t.lineStart(),l=r(f,e),t.point(l[0],l[1])):(l=r(e,f),t.point(l[0],l[1]),t.lineEnd()),e=l),!s||e&&Zr(e,f)||t.point(f[0],f[1]),e=f},lineEnd:function(){u&&t.lineEnd(),e=null},clean:function(){return a|(i&&u)<<1}}}function r(t,n){var e=Xr(t,0),r=Xr(n,0),u=[1,0,0],a=$r(e,r),o=Br(a,a),c=a[0],l=o-c*c;if(!l)return t;var f=i*o/l,s=-i*c/l,h=$r(u,a),g=Gr(u,f),p=Gr(a,s);Jr(g,p);var d=h,m=Br(g,d),v=Br(d,d),y=Math.sqrt(m*m-v*(Br(g,g)-1)),M=Gr(d,(-m-y)/v);return Jr(M,g),Vr(M)}var u=t*zi,i=Math.cos(u),a=iu(u,6*zi);return ou(n,e,a)}function yu(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return e=n.invert(e,r),e&&t.invert(e[0],e[1])}),e}function Mu(t,n){return[t,n]}function bu(t,n,e){var r=Ci.range(t,n-qi,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function xu(t,n,e){var r=Ci.range(t,n-qi,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function _u(t){return(t=Math.sin(t/2))*t}function wu(t,n,e,r){var u=Math.cos(n),i=Math.sin(n),a=Math.cos(r),o=Math.sin(r),c=u*Math.cos(t),l=u*Math.sin(t),f=a*Math.cos(e),s=a*Math.sin(e),h=2*Math.asin(Math.sqrt(_u(r-n)+u*a*_u(e-t))),g=1/Math.sin(h),p=h?function(t){var n=Math.sin(t*=h)*g,e=Math.sin(h-t)*g,r=e*c+n*f,u=e*l+n*s,a=e*i+n*o;return[Math.atan2(u,r)*Di,Math.atan2(a,Math.sqrt(r*r+u*u))*Di]}:function(){return[t*Di,n*Di]};return p.distance=h,p}function Su(t,n){return[t/(2*Ti),Math.max(-.5,Math.min(.5,Math.log(Math.tan(Ti/4+n/2))/(2*Ti)))]}function ku(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Eu(t){var n=Wr(function(n,e){return t([n*Di,e*Di])});return function(t){return t=n(t),{point:function(n,e){t.point(n*zi,e*zi)},sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}}function Au(){function t(t,n){a.push("M",t,",",n,i)}function n(t,n){a.push("M",t,",",n),o.point=e}function e(t,n){a.push("L",t,",",n)}function r(){o.point=t}function u(){a.push("Z")}var i=ku(4.5),a=[],o={point:t,lineStart:function(){o.point=n},lineEnd:r,polygonStart:function(){o.lineEnd=u},polygonEnd:function(){o.lineEnd=r,o.point=t},pointRadius:function(t){return i=ku(t),o},result:function(){if(a.length){var t=a.join("");return a=[],t}}};return o}function Nu(t){function n(n,e){t.moveTo(n,e),t.arc(n,e,a,0,2*Ti)}function e(n,e){t.moveTo(n,e),o.point=r}function r(n,e){t.lineTo(n,e)}function u(){o.point=n}function i(){t.closePath()}var a=4.5,o={point:n,lineStart:function(){o.point=e},lineEnd:u,polygonStart:function(){o.lineEnd=i},polygonEnd:function(){o.lineEnd=u,o.point=n},pointRadius:function(t){return a=t,o},result:Pn};return o}function Tu(){function t(t,n){xo+=u*t-r*n,r=t,u=n}var n,e,r,u;_o.point=function(i,a){_o.point=t,n=r=i,e=u=a},_o.lineEnd=function(){t(n,e)}}function qu(t,n){fo||(ho+=t,go+=n,++po)}function Cu(){function t(t,r){var u=t-n,i=r-e,a=Math.sqrt(u*u+i*i);ho+=a*(n+t)/2,go+=a*(e+r)/2,po+=a,n=t,e=r}var n,e;if(1!==fo){if(!(1>fo))return;fo=1,ho=go=po=0}wo.point=function(r,u){wo.point=t,n=r,e=u}}function zu(){wo.point=qu}function Du(){function t(t,n){var e=u*t-r*n;ho+=e*(r+t),go+=e*(u+n),po+=3*e,r=t,u=n}var n,e,r,u;2>fo&&(fo=2,ho=go=po=0),wo.point=function(i,a){wo.point=t,n=r=i,e=u=a},wo.lineEnd=function(){t(n,e)}}function Lu(){function t(t,n){t*=zi,n=n*zi/2+Ti/4;var e=t-r,a=Math.cos(n),o=Math.sin(n),c=i*o,l=ko,f=Eo,s=u*a+c*Math.cos(e),h=c*Math.sin(e);ko=l*s-f*h,Eo=f*s+l*h,r=t,u=a,i=o}var n,e,r,u,i;Ao.point=function(a,o){Ao.point=t,r=(n=a)*zi,u=Math.cos(o=(e=o)*zi/2+Ti/4),i=Math.sin(o)},Ao.lineEnd=function(){t(n,e)}}function Fu(t){return Hu(function(){return t})()}function Hu(t){function n(t){return t=a(t[0]*zi,t[1]*zi),[t[0]*f+o,c-t[1]*f]}function e(t){return t=a.invert((t[0]-o)/f,(c-t[1])/f),t&&[t[0]*Di,t[1]*Di]}function r(){a=yu(i=Pu(d,m,v),u);var t=u(g,p);return o=s-t[0]*f,c=h+t[1]*f,n}var u,i,a,o,c,l=Wr(function(t,n){return t=u(t,n),[t[0]*f+o,c-t[1]*f]}),f=150,s=480,h=250,g=0,p=0,d=0,m=0,v=0,y=vo,M=null;return n.stream=function(t){return ju(i,y(l(t)))},n.clipAngle=function(t){return arguments.length?(y=null==t?(M=t,vo):vu(M=+t),n):M},n.scale=function(t){return arguments.length?(f=+t,r()):f},n.translate=function(t){return arguments.length?(s=+t[0],h=+t[1],r()):[s,h]},n.center=function(t){return arguments.length?(g=t[0]%360*zi,p=t[1]%360*zi,r()):[g*Di,p*Di]},n.rotate=function(t){return arguments.length?(d=t[0]%360*zi,m=t[1]%360*zi,v=t.length>2?t[2]%360*zi:0,r()):[d*Di,m*Di,v*Di]},Ci.rebind(n,l,"precision"),function(){return u=t.apply(this,arguments),n.invert=u.invert&&e,r()}}function ju(t,n){return{point:function(e,r){r=t(e*zi,r*zi),e=r[0],n.point(e>Ti?e-2*Ti:-Ti>e?e+2*Ti:e,r[1])},sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function Pu(t,n,e){return t?n||e?yu(Ou(t),Yu(n,e)):Ou(t):n||e?Yu(n,e):Mu}function Ru(t){return function(n,e){return n+=t,[n>Ti?n-2*Ti:-Ti>n?n+2*Ti:n,e]}}function Ou(t){var n=Ru(t);return n.invert=Ru(-t),n}function Yu(t,n){function e(t,n){var e=Math.cos(n),o=Math.cos(t)*e,c=Math.sin(t)*e,l=Math.sin(n),f=l*r+o*u;return[Math.atan2(c*i-f*a,o*r-l*u),Math.asin(Math.max(-1,Math.min(1,f*i+c*a)))]}var r=Math.cos(t),u=Math.sin(t),i=Math.cos(n),a=Math.sin(n);return e.invert=function(t,n){var e=Math.cos(n),o=Math.cos(t)*e,c=Math.sin(t)*e,l=Math.sin(n),f=l*i-c*a;return[Math.atan2(c*i+l*a,o*r+f*u),Math.asin(Math.max(-1,Math.min(1,f*r-o*u)))]},e}function Uu(t,n){function e(n,e){var r=Math.cos(n),u=Math.cos(e),i=t(r*u);return[i*u*Math.sin(n),i*Math.sin(e)]}return e.invert=function(t,e){var r=Math.sqrt(t*t+e*e),u=n(r),i=Math.sin(u),a=Math.cos(u);return[Math.atan2(t*i,r*a),Math.asin(r&&e*i/r)]},e}function Iu(t,n,e,r){var u,i,a,o,c,l,f;return u=r[t],i=u[0],a=u[1],u=r[n],o=u[0],c=u[1],u=r[e],l=u[0],f=u[1],(f-a)*(o-i)-(c-a)*(l-i)>0}function Vu(t,n,e){return(e[0]-n[0])*(t[1]-n[1])<(e[1]-n[1])*(t[0]-n[0])}function Zu(t,n,e,r){var u=t[0],i=e[0],a=n[0]-u,o=r[0]-i,c=t[1],l=e[1],f=n[1]-c,s=r[1]-l,h=(o*(c-l)-s*(u-i))/(s*a-o*f);return[u+h*a,c+h*f]}function Xu(t,n){var e={list:t.map(function(t,n){return{index:n,x:t[0],y:t[1]}}).sort(function(t,n){return t.yn.y?1:t.xn.x?1:0}),bottomSite:null},r={list:[],leftEnd:null,rightEnd:null,init:function(){r.leftEnd=r.createHalfEdge(null,"l"),r.rightEnd=r.createHalfEdge(null,"l"),r.leftEnd.r=r.rightEnd,r.rightEnd.l=r.leftEnd,r.list.unshift(r.leftEnd,r.rightEnd)},createHalfEdge:function(t,n){return{edge:t,side:n,vertex:null,l:null,r:null}},insert:function(t,n){n.l=t,n.r=t.r,t.r.l=n,t.r=n},leftBound:function(t){var n=r.leftEnd;do n=n.r;while(n!=r.rightEnd&&u.rightOf(n,t));return n=n.l},del:function(t){t.l.r=t.r,t.r.l=t.l,t.edge=null},right:function(t){return t.r},left:function(t){return t.l},leftRegion:function(t){return null==t.edge?e.bottomSite:t.edge.region[t.side]},rightRegion:function(t){return null==t.edge?e.bottomSite:t.edge.region[To[t.side]]}},u={bisect:function(t,n){var e={region:{l:t,r:n},ep:{l:null,r:null}},r=n.x-t.x,u=n.y-t.y,i=r>0?r:-r,a=u>0?u:-u;return e.c=t.x*r+t.y*u+.5*(r*r+u*u),i>a?(e.a=1,e.b=u/r,e.c/=r):(e.b=1,e.a=r/u,e.c/=u),e},intersect:function(t,n){var e=t.edge,r=n.edge;if(!e||!r||e.region.r==r.region.r)return null;var u=e.a*r.b-e.b*r.a;if(1e-10>Math.abs(u))return null;var i,a,o=(e.c*r.b-r.c*e.b)/u,c=(r.c*e.a-e.c*r.a)/u,l=e.region.r,f=r.region.r;l.y=a.region.r.x;return s&&"l"===i.side||!s&&"r"===i.side?null:{x:o,y:c}},rightOf:function(t,n){var e=t.edge,r=e.region.r,u=n.x>r.x;if(u&&"l"===t.side)return 1;if(!u&&"r"===t.side)return 0;if(1===e.a){var i=n.y-r.y,a=n.x-r.x,o=0,c=0;if(!u&&0>e.b||u&&e.b>=0?c=o=i>=e.b*a:(c=n.x+n.y*e.b>e.c,0>e.b&&(c=!c),c||(o=1)),!o){var l=r.x-e.region.l.x;c=e.b*(a*a-i*i)e.b&&(c=!c)}}else{var f=e.c-e.a*n.x,s=n.y-f,h=n.x-r.x,g=f-r.y;c=s*s>h*h+g*g}return"l"===t.side?c:!c},endPoint:function(t,e,r){t.ep[e]=r,t.ep[To[e]]&&n(t)},distance:function(t,n){var e=t.x-n.x,r=t.y-n.y;return Math.sqrt(e*e+r*r)}},i={list:[],insert:function(t,n,e){t.vertex=n,t.ystar=n.y+e;for(var r=0,u=i.list,a=u.length;a>r;r++){var o=u[r];if(!(t.ystar>o.ystar||t.ystar==o.ystar&&n.x>o.vertex.x))break}u.splice(r,0,t)},del:function(t){for(var n=0,e=i.list,r=e.length;r>n&&e[n]!=t;++n);e.splice(n,1)},empty:function(){return 0===i.list.length},nextEvent:function(t){for(var n=0,e=i.list,r=e.length;r>n;++n)if(e[n]==t)return e[n+1];return null},min:function(){var t=i.list[0];return{x:t.vertex.x,y:t.ystar}},extractMin:function(){return i.list.shift()}};r.init(),e.bottomSite=e.list.shift();for(var a,o,c,l,f,s,h,g,p,d,m,v,y,M=e.list.shift();;)if(i.empty()||(a=i.min()),M&&(i.empty()||M.yg.y&&(p=h,h=g,g=p,y="r"),v=u.bisect(h,g),s=r.createHalfEdge(v,y),r.insert(l,s),u.endPoint(v,To[y],m),d=u.intersect(l,s),d&&(i.del(l),i.insert(l,d,u.distance(d,h))),d=u.intersect(s,f),d&&i.insert(s,d,u.distance(d,h))}for(o=r.right(r.leftEnd);o!=r.rightEnd;o=r.right(o))n(o.edge)}function Bu(){return{leaf:!0,nodes:[],point:null}}function $u(t,n,e,r,u,i){if(!t(n,e,r,u,i)){var a=.5*(e+u),o=.5*(r+i),c=n.nodes;c[0]&&$u(t,c[0],e,r,a,o),c[1]&&$u(t,c[1],a,r,u,o),c[2]&&$u(t,c[2],e,o,a,i),c[3]&&$u(t,c[3],a,o,u,i)}}function Ju(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Gu(t,n,e,r){for(var u,i,a=0,o=n.length,c=e.length;o>a;){if(r>=c)return-1;if(u=n.charCodeAt(a++),37===u){if(i=$o[n.charAt(a++)],!i||0>(r=i(t,e,r)))return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function Ku(t){return RegExp("^(?:"+t.map(Ci.requote).join("|")+")","i")}function Wu(t){for(var n=new i,e=-1,r=t.length;r>++e;)n.set(t[e].toLowerCase(),e);return n}function Qu(t,n,e){t+="";var r=t.length;return e>r?Array(e-r+1).join(n)+t:t}function ti(t,n,e){Yo.lastIndex=0;var r=Yo.exec(n.substring(e));return r?e+=r[0].length:-1}function ni(t,n,e){Oo.lastIndex=0;var r=Oo.exec(n.substring(e));return r?e+=r[0].length:-1}function ei(t,n,e){Vo.lastIndex=0;var r=Vo.exec(n.substring(e));return r?(t.m=Zo.get(r[0].toLowerCase()),e+=r[0].length):-1}function ri(t,n,e){Uo.lastIndex=0;var r=Uo.exec(n.substring(e));return r?(t.m=Io.get(r[0].toLowerCase()),e+=r[0].length):-1}function ui(t,n,e){return Gu(t,""+Bo.c,n,e)}function ii(t,n,e){return Gu(t,""+Bo.x,n,e)}function ai(t,n,e){return Gu(t,""+Bo.X,n,e)}function oi(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+4));return r?(t.y=+r[0],e+=r[0].length):-1}function ci(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+2));return r?(t.y=li(+r[0]),e+=r[0].length):-1}function li(t){return t+(t>68?1900:2e3)}function fi(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+2));return r?(t.m=r[0]-1,e+=r[0].length):-1}function si(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+2));return r?(t.d=+r[0],e+=r[0].length):-1}function hi(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+2));return r?(t.H=+r[0],e+=r[0].length):-1}function gi(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+2));return r?(t.M=+r[0],e+=r[0].length):-1}function pi(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+2));return r?(t.S=+r[0],e+=r[0].length):-1}function di(t,n,e){Jo.lastIndex=0;var r=Jo.exec(n.substring(e,e+3));return r?(t.L=+r[0],e+=r[0].length):-1}function mi(t,n,e){var r=Go.get(n.substring(e,e+=2).toLowerCase());return null==r?-1:(t.p=r,e)}function vi(t){var n=t.getTimezoneOffset(),e=n>0?"-":"+",r=~~(Math.abs(n)/60),u=Math.abs(n)%60;return e+Qu(r,"0",2)+Qu(u,"0",2)}function yi(t){return t.toISOString()}function Mi(t,n,e){function r(n){var e=t(n),r=i(e,1);return r-n>n-e?e:r}function u(e){return n(e=t(new qo(e-1)),1),e}function i(t,e){return n(t=new qo(+t),e),t}function a(t,r,i){var a=u(t),o=[];if(i>1)for(;r>a;)e(a)%i||o.push(new Date(+a)),n(a,1);else for(;r>a;)o.push(new Date(+a)),n(a,1);return o}function o(t,n,e){try{qo=Ju;var r=new Ju;return r._=t,a(r,n,e)}finally{qo=Date}}t.floor=t,t.round=r,t.ceil=u,t.offset=i,t.range=a;var c=t.utc=bi(t);return c.floor=c,c.round=bi(r),c.ceil=bi(u),c.offset=bi(i),c.range=o,t}function bi(t){return function(n,e){try{qo=Ju;var r=new Ju;return r._=n,t(r,e)._}finally{qo=Date}}}function xi(t,n,e){function r(n){return t(n)}return r.invert=function(n){return wi(t.invert(n))},r.domain=function(n){return arguments.length?(t.domain(n),r):t.domain().map(wi)},r.nice=function(t){return r.domain(Yn(r.domain(),function(){return t}))},r.ticks=function(e,u){var i=_i(r.domain());if("function"!=typeof e){var a=i[1]-i[0],o=a/e,c=Ci.bisect(Wo,o);if(c==Wo.length)return n.year(i,e);if(!c)return t.ticks(e).map(wi);Math.log(o/Wo[c-1])n?[n,e]:[e,n]}function wi(t){return new Date(t)}function Si(t){return function(n){for(var e=t.length-1,r=t[e];!r[1](n);)r=t[--e];return r[0](n)}}function ki(t){var n=new Date(t,0,1);return n.setFullYear(t),n}function Ei(t){var n=t.getFullYear(),e=ki(n),r=ki(n+1);return n+(t-e)/(r-e)}function Ai(t){var n=new Date(Date.UTC(t,0,1));return n.setUTCFullYear(t),n}function Ni(t){var n=t.getUTCFullYear(),e=Ai(n),r=Ai(n+1);return n+(t-e)/(r-e)}var Ti=Math.PI,qi=1e-6,Ci={version:"3.0.8"},zi=Ti/180,Di=180/Ti,Li=document,Fi=window,Hi=".",ji=",",Pi=[3,3];Date.now||(Date.now=function(){return+new Date});try{Li.createElement("div").style.setProperty("opacity",0,"")}catch(Ri){var Oi=Fi.CSSStyleDeclaration.prototype,Yi=Oi.setProperty;Oi.setProperty=function(t,n,e){Yi.call(this,t,n+"",e)}}var Ui=u;try{Ui(Li.documentElement.childNodes)[0].nodeType}catch(Ii){Ui=r}var Vi=[].__proto__?function(t,n){t.__proto__=n}:function(t,n){for(var e in n)t[e]=n[e]};Ci.map=function(t){var n=new i;for(var e in t)n.set(e,t[e]);return n},e(i,{has:function(t){return Zi+t in this},get:function(t){return this[Zi+t]},set:function(t,n){return this[Zi+t]=n},remove:function(t){return t=Zi+t,t in this&&delete this[t]},keys:function(){var t=[];return this.forEach(function(n){t.push(n)}),t},values:function(){var t=[];return this.forEach(function(n,e){t.push(e)}),t},entries:function(){var t=[];return this.forEach(function(n,e){t.push({key:n,value:e})}),t},forEach:function(t){for(var n in this)n.charCodeAt(0)===Xi&&t.call(this,n.substring(1),this[n])}});var Zi="\0",Xi=Zi.charCodeAt(0);Ci.functor=c,Ci.rebind=function(t,n){for(var e,r=1,u=arguments.length;u>++r;)t[e=arguments[r]]=l(t,n,n[e]);return t},Ci.ascending=function(t,n){return n>t?-1:t>n?1:t>=n?0:0/0},Ci.descending=function(t,n){return t>n?-1:n>t?1:n>=t?0:0/0},Ci.mean=function(t,n){var e,r=t.length,u=0,i=-1,a=0;if(1===arguments.length)for(;r>++i;)f(e=t[i])&&(u+=(e-u)/++a);else for(;r>++i;)f(e=n.call(t,t[i],i))&&(u+=(e-u)/++a);return a?u:void 0},Ci.median=function(t,n){return arguments.length>1&&(t=t.map(n)),t=t.filter(f),t.length?Ci.quantile(t.sort(Ci.ascending),.5):void 0},Ci.min=function(t,n){var e,r,u=-1,i=t.length;if(1===arguments.length){for(;i>++u&&(null==(e=t[u])||e!=e);)e=void 0;for(;i>++u;)null!=(r=t[u])&&e>r&&(e=r)}else{for(;i>++u&&(null==(e=n.call(t,t[u],u))||e!=e);)e=void 0;for(;i>++u;)null!=(r=n.call(t,t[u],u))&&e>r&&(e=r)}return e},Ci.max=function(t,n){var e,r,u=-1,i=t.length;if(1===arguments.length){for(;i>++u&&(null==(e=t[u])||e!=e);)e=void 0;for(;i>++u;)null!=(r=t[u])&&r>e&&(e=r)}else{for(;i>++u&&(null==(e=n.call(t,t[u],u))||e!=e);)e=void 0;for(;i>++u;)null!=(r=n.call(t,t[u],u))&&r>e&&(e=r)}return e},Ci.extent=function(t,n){var e,r,u,i=-1,a=t.length;if(1===arguments.length){for(;a>++i&&(null==(e=u=t[i])||e!=e);)e=u=void 0;for(;a>++i;)null!=(r=t[i])&&(e>r&&(e=r),r>u&&(u=r))}else{for(;a>++i&&(null==(e=u=n.call(t,t[i],i))||e!=e);)e=void 0;for(;a>++i;)null!=(r=n.call(t,t[i],i))&&(e>r&&(e=r),r>u&&(u=r))}return[e,u]},Ci.random={normal:function(t,n){var e=arguments.length;return 2>e&&(n=1),1>e&&(t=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return t+n*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var t=Ci.random.normal.apply(Ci,arguments);return function(){return Math.exp(t())}},irwinHall:function(t){return function(){for(var n=0,e=0;t>e;e++)n+=Math.random();return n/t}}},Ci.sum=function(t,n){var e,r=0,u=t.length,i=-1;if(1===arguments.length)for(;u>++i;)isNaN(e=+t[i])||(r+=e);else for(;u>++i;)isNaN(e=+n.call(t,t[i],i))||(r+=e);return r},Ci.quantile=function(t,n){var e=(t.length-1)*n+1,r=Math.floor(e),u=+t[r-1],i=e-r;return i?u+i*(t[r]-u):u},Ci.shuffle=function(t){for(var n,e,r=t.length;r;)e=0|Math.random()*r--,n=t[r],t[r]=t[e],t[e]=n;return t},Ci.transpose=function(t){return Ci.zip.apply(Ci,t)},Ci.zip=function(){if(!(r=arguments.length))return[];for(var t=-1,n=Ci.min(arguments,s),e=Array(n);n>++t;)for(var r,u=-1,i=e[t]=Array(r);r>++u;)i[u]=arguments[u][t];return e},Ci.bisector=function(t){return{left:function(n,e,r,u){for(3>arguments.length&&(r=0),4>arguments.length&&(u=n.length);u>r;){var i=r+u>>>1;e>t.call(n,n[i],i)?r=i+1:u=i}return r},right:function(n,e,r,u){for(3>arguments.length&&(r=0),4>arguments.length&&(u=n.length);u>r;){var i=r+u>>>1;t.call(n,n[i],i)>e?u=i:r=i+1}return r}}};var Bi=Ci.bisector(function(t){return t});Ci.bisectLeft=Bi.left,Ci.bisect=Ci.bisectRight=Bi.right,Ci.nest=function(){function t(n,o){if(o>=a.length)return r?r.call(u,n):e?n.sort(e):n;for(var c,l,f,s=-1,h=n.length,g=a[o++],p=new i,d={};h>++s;)(f=p.get(c=g(l=n[s])))?f.push(l):p.set(c,[l]);return p.forEach(function(n,e){d[n]=t(e,o)}),d}function n(t,e){if(e>=a.length)return t;var r,u=[],i=o[e++];for(r in t)u.push({key:r,values:n(t[r],e)});return i&&u.sort(function(t,n){return i(t.key,n.key)}),u}var e,r,u={},a=[],o=[];return u.map=function(n){return t(n,0)},u.entries=function(e){return n(t(e,0),0)},u.key=function(t){return a.push(t),u},u.sortKeys=function(t){return o[a.length-1]=t,u},u.sortValues=function(t){return e=t,u},u.rollup=function(t){return r=t,u},u},Ci.keys=function(t){var n=[];for(var e in t)n.push(e);return n},Ci.values=function(t){var n=[];for(var e in t)n.push(t[e]);return n},Ci.entries=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},Ci.permute=function(t,n){for(var e=[],r=-1,u=n.length;u>++r;)e[r]=t[n[r]];return e},Ci.merge=function(t){return Array.prototype.concat.apply([],t)},Ci.range=function(t,n,e){if(3>arguments.length&&(e=1,2>arguments.length&&(n=t,t=0)),1/0===(n-t)/e)throw Error("infinite range");var r,u=[],i=g(Math.abs(e)),a=-1;if(t*=i,n*=i,e*=i,0>e)for(;(r=t+e*++a)>n;)u.push(r/i);else for(;n>(r=t+e*++a);)u.push(r/i);return u},Ci.requote=function(t){return t.replace($i,"\\$&")};var $i=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;Ci.round=function(t,n){return n?Math.round(t*(n=Math.pow(10,n)))/n:Math.round(t)},Ci.xhr=function(t,n,e){function r(){var t=l.status;!t&&l.responseText||t>=200&&300>t||304===t?i.load.call(u,c.call(u,l)):i.error.call(u,l)}var u={},i=Ci.dispatch("progress","load","error"),o={},c=a,l=new(Fi.XDomainRequest&&/^(http(s)?:)?\/\//.test(t)?XDomainRequest:XMLHttpRequest);return"onload"in l?l.onload=l.onerror=r:l.onreadystatechange=function(){l.readyState>3&&r()},l.onprogress=function(t){var n=Ci.event;Ci.event=t;try{i.progress.call(u,l)}finally{Ci.event=n}},u.header=function(t,n){return t=(t+"").toLowerCase(),2>arguments.length?o[t]:(null==n?delete o[t]:o[t]=n+"",u)},u.mimeType=function(t){return arguments.length?(n=null==t?null:t+"",u):n},u.response=function(t){return c=t,u},["get","post"].forEach(function(t){u[t]=function(){return u.send.apply(u,[t].concat(Ui(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,t,!0),null==n||"accept"in o||(o.accept=n+",*/*"),l.setRequestHeader)for(var a in o)l.setRequestHeader(a,o[a]);return null!=n&&l.overrideMimeType&&l.overrideMimeType(n),null!=i&&u.on("error",i).on("load",function(t){i(null,t)}),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},Ci.rebind(u,i,"on"),2===arguments.length&&"function"==typeof n&&(e=n,n=null),null==e?u:u.get(p(e))},Ci.text=function(){return Ci.xhr.apply(Ci,arguments).response(d)},Ci.json=function(t,n){return Ci.xhr(t,"application/json",n).response(m)},Ci.html=function(t,n){return Ci.xhr(t,"text/html",n).response(v)},Ci.xml=function(){return Ci.xhr.apply(Ci,arguments).response(y)};var Ji={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};Ci.ns={prefix:Ji,qualify:function(t){var n=t.indexOf(":"),e=t;return n>=0&&(e=t.substring(0,n),t=t.substring(n+1)),Ji.hasOwnProperty(e)?{space:Ji[e],local:t}:t}},Ci.dispatch=function(){for(var t=new M,n=-1,e=arguments.length;e>++n;)t[arguments[n]]=b(t);return t},M.prototype.on=function(t,n){var e=t.indexOf("."),r="";return e>0&&(r=t.substring(e+1),t=t.substring(0,e)),2>arguments.length?this[t].on(r):this[t].on(r,n)},Ci.format=function(t){var n=Gi.exec(t),e=n[1]||" ",r=n[2]||">",u=n[3]||"",i=n[4]||"",a=n[5],o=+n[6],c=n[7],l=n[8],f=n[9],s=1,h="",g=!1;switch(l&&(l=+l.substring(1)),(a||"0"===e&&"="===r)&&(a=e="0",r="=",c&&(o-=Math.floor((o-1)/4))),f){case"n":c=!0,f="g";break;case"%":s=100,h="%",f="f";break;case"p":s=100,h="%",f="r";break;case"b":case"o":case"x":case"X":i&&(i="0"+f.toLowerCase());case"c":case"d":g=!0,l=0;break;case"s":s=-1,f="r"}"#"===i&&(i=""),"r"!=f||l||(f="g"),f=Ki.get(f)||_;var p=a&&c;return function(t){if(g&&t%1)return"";var n=0>t||0===t&&0>1/t?(t=-t,"-"):u;if(0>s){var d=Ci.formatPrefix(t,l);t=d.scale(t),h=d.symbol}else t*=s;t=f(t,l),!a&&c&&(t=Wi(t));var m=i.length+t.length+(p?0:n.length),v=o>m?Array(m=o-m+1).join(e):"";return p&&(t=Wi(v+t)),Hi&&t.replace(".",Hi),n+=i,("<"===r?n+t+v:">"===r?v+n+t:"^"===r?v.substring(0,m>>=1)+n+t+v.substring(m):n+(p?t:v+t))+h}};var Gi=/(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/,Ki=Ci.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,n){return t.toPrecision(n)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},r:function(t,n){return(t=Ci.round(t,x(t,n))).toFixed(Math.max(0,Math.min(20,x(t*(1+1e-15),n))))}}),Wi=a;if(Pi){var Qi=Pi.length;Wi=function(t){for(var n=t.lastIndexOf("."),e=n>=0?"."+t.substring(n+1):(n=t.length,""),r=[],u=0,i=Pi[0];n>0&&i>0;)r.push(t.substring(n-=i,n+i)),i=Pi[u=(u+1)%Qi];return r.reverse().join(ji||"")+e}}var ta=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(w);Ci.formatPrefix=function(t,n){var e=0;return t&&(0>t&&(t*=-1),n&&(t=Ci.round(t,x(t,n))),e=1+Math.floor(1e-12+Math.log(t)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((0>=e?e+1:e-1)/3)))),ta[8+e/3]};var na=function(){return a},ea=Ci.map({linear:na,poly:q,quad:function(){return A},cubic:function(){return N},sin:function(){return C},exp:function(){return z},circle:function(){return D},elastic:L,back:F,bounce:function(){return H}}),ra=Ci.map({"in":a,out:k,"in-out":E,"out-in":function(t){return E(k(t))}});Ci.ease=function(t){var n=t.indexOf("-"),e=n>=0?t.substring(0,n):t,r=n>=0?t.substring(n+1):"in";return e=ea.get(e)||na,r=ra.get(r)||a,S(r(e.apply(null,Array.prototype.slice.call(arguments,1))))},Ci.event=null,Ci.transform=function(t){var n=Li.createElementNS(Ci.ns.prefix.svg,"g");return(Ci.transform=function(t){n.setAttribute("transform",t);var e=n.transform.baseVal.consolidate();return new O(e?e.matrix:ua)})(t)},O.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ua={a:1,b:0,c:0,d:1,e:0,f:0};Ci.interpolate=function(t,n){for(var e,r=Ci.interpolators.length;--r>=0&&!(e=Ci.interpolators[r](t,n)););return e},Ci.interpolateNumber=function(t,n){return n-=t,function(e){return t+n*e}},Ci.interpolateRound=function(t,n){return n-=t,function(e){return Math.round(t+n*e)}},Ci.interpolateString=function(t,n){var e,r,u,i,a,o=0,c=0,l=[],f=[];for(ia.lastIndex=0,r=0;e=ia.exec(n);++r)e.index&&l.push(n.substring(o,c=e.index)),f.push({i:l.length,x:e[0]}),l.push(null),o=ia.lastIndex;for(n.length>o&&l.push(n.substring(o)),r=0,i=f.length;(e=ia.exec(t))&&i>r;++r)if(a=f[r],a.x==e[0]){if(a.i)if(null==l[a.i+1])for(l[a.i-1]+=a.x,l.splice(a.i,1),u=r+1;i>u;++u)f[u].i--;else for(l[a.i-1]+=a.x+l[a.i+1],l.splice(a.i,2),u=r+1;i>u;++u)f[u].i-=2;else if(null==l[a.i+1])l[a.i]=a.x;else for(l[a.i]=a.x+l[a.i+1],l.splice(a.i+1,1),u=r+1;i>u;++u)f[u].i--;f.splice(r,1),i--,r--}else a.x=Ci.interpolateNumber(parseFloat(e[0]),parseFloat(a.x));for(;i>r;)a=f.pop(),null==l[a.i+1]?l[a.i]=a.x:(l[a.i]=a.x+l[a.i+1],l.splice(a.i+1,1)),i--;return 1===l.length?null==l[0]?f[0].x:function(){return n}:function(t){for(r=0;i>r;++r)l[(a=f[r]).i]=a.x(t);return l.join("")}},Ci.interpolateTransform=function(t,n){var e,r=[],u=[],i=Ci.transform(t),a=Ci.transform(n),o=i.translate,c=a.translate,l=i.rotate,f=a.rotate,s=i.skew,h=a.skew,g=i.scale,p=a.scale;return o[0]!=c[0]||o[1]!=c[1]?(r.push("translate(",null,",",null,")"),u.push({i:1,x:Ci.interpolateNumber(o[0],c[0])},{i:3,x:Ci.interpolateNumber(o[1],c[1])})):c[0]||c[1]?r.push("translate("+c+")"):r.push(""),l!=f?(l-f>180?f+=360:f-l>180&&(l+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:Ci.interpolateNumber(l,f)})):f&&r.push(r.pop()+"rotate("+f+")"),s!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:Ci.interpolateNumber(s,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:Ci.interpolateNumber(g[0],p[0])},{i:e-2,x:Ci.interpolateNumber(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(t){for(var n,i=-1;e>++i;)r[(n=u[i]).i]=n.x(t);return r.join("")}},Ci.interpolateRgb=function(t,n){t=Ci.rgb(t),n=Ci.rgb(n);var e=t.r,r=t.g,u=t.b,i=n.r-e,a=n.g-r,o=n.b-u;return function(t){return"#"+G(Math.round(e+i*t))+G(Math.round(r+a*t))+G(Math.round(u+o*t))}},Ci.interpolateHsl=function(t,n){t=Ci.hsl(t),n=Ci.hsl(n);var e=t.h,r=t.s,u=t.l,i=n.h-e,a=n.s-r,o=n.l-u;return i>180?i-=360:-180>i&&(i+=360),function(t){return un(e+i*t,r+a*t,u+o*t)+""}},Ci.interpolateLab=function(t,n){t=Ci.lab(t),n=Ci.lab(n);var e=t.l,r=t.a,u=t.b,i=n.l-e,a=n.a-r,o=n.b-u;return function(t){return sn(e+i*t,r+a*t,u+o*t)+""}},Ci.interpolateHcl=function(t,n){t=Ci.hcl(t),n=Ci.hcl(n);var e=t.h,r=t.c,u=t.l,i=n.h-e,a=n.c-r,o=n.l-u;return i>180?i-=360:-180>i&&(i+=360),function(t){return cn(e+i*t,r+a*t,u+o*t)+""}},Ci.interpolateArray=function(t,n){var e,r=[],u=[],i=t.length,a=n.length,o=Math.min(t.length,n.length);for(e=0;o>e;++e)r.push(Ci.interpolate(t[e],n[e]));for(;i>e;++e)u[e]=t[e];for(;a>e;++e)u[e]=n[e];return function(t){for(e=0;o>e;++e)u[e]=r[e](t);return u}},Ci.interpolateObject=function(t,n){var e,r={},u={};for(e in t)e in n?r[e]=V(e)(t[e],n[e]):u[e]=t[e];for(e in n)e in t||(u[e]=n[e]);return function(t){for(e in r)u[e]=r[e](t);return u}};var ia=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;Ci.interpolators=[Ci.interpolateObject,function(t,n){return n instanceof Array&&Ci.interpolateArray(t,n)},function(t,n){return("string"==typeof t||"string"==typeof n)&&Ci.interpolateString(t+"",n+"")},function(t,n){return("string"==typeof n?oa.has(n)||/^(#|rgb\(|hsl\()/.test(n):n instanceof B)&&Ci.interpolateRgb(t,n)},function(t,n){return!isNaN(t=+t)&&!isNaN(n=+n)&&Ci.interpolateNumber(t,n)}],B.prototype.toString=function(){return this.rgb()+""},Ci.rgb=function(t,n,e){return 1===arguments.length?t instanceof J?$(t.r,t.g,t.b):K(""+t,$,un):$(~~t,~~n,~~e)};var aa=J.prototype=new B;aa.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var n=this.r,e=this.g,r=this.b,u=30;return n||e||r?(n&&u>n&&(n=u),e&&u>e&&(e=u),r&&u>r&&(r=u),$(Math.min(255,Math.floor(n/t)),Math.min(255,Math.floor(e/t)),Math.min(255,Math.floor(r/t)))):$(u,u,u)},aa.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),$(Math.floor(t*this.r),Math.floor(t*this.g),Math.floor(t*this.b))},aa.hsl=function(){return W(this.r,this.g,this.b)},aa.toString=function(){return"#"+G(this.r)+G(this.g)+G(this.b)};var oa=Ci.map({aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}); +oa.forEach(function(t,n){oa.set(t,K(n,$,un))}),Ci.hsl=function(t,n,e){return 1===arguments.length?t instanceof rn?en(t.h,t.s,t.l):K(""+t,W,en):en(+t,+n,+e)};var ca=rn.prototype=new B;ca.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),en(this.h,this.s,this.l/t)},ca.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),en(this.h,this.s,t*this.l)},ca.rgb=function(){return un(this.h,this.s,this.l)},Ci.hcl=function(t,n,e){return 1===arguments.length?t instanceof on?an(t.h,t.c,t.l):t instanceof fn?hn(t.l,t.a,t.b):hn((t=Q((t=Ci.rgb(t)).r,t.g,t.b)).l,t.a,t.b):an(+t,+n,+e)};var la=on.prototype=new B;la.brighter=function(t){return an(this.h,this.c,Math.min(100,this.l+fa*(arguments.length?t:1)))},la.darker=function(t){return an(this.h,this.c,Math.max(0,this.l-fa*(arguments.length?t:1)))},la.rgb=function(){return cn(this.h,this.c,this.l).rgb()},Ci.lab=function(t,n,e){return 1===arguments.length?t instanceof fn?ln(t.l,t.a,t.b):t instanceof on?cn(t.l,t.c,t.h):Q((t=Ci.rgb(t)).r,t.g,t.b):ln(+t,+n,+e)};var fa=18,sa=.95047,ha=1,ga=1.08883,pa=fn.prototype=new B;pa.brighter=function(t){return ln(Math.min(100,this.l+fa*(arguments.length?t:1)),this.a,this.b)},pa.darker=function(t){return ln(Math.max(0,this.l-fa*(arguments.length?t:1)),this.a,this.b)},pa.rgb=function(){return sn(this.l,this.a,this.b)};var da=function(t,n){return n.querySelector(t)},ma=function(t,n){return n.querySelectorAll(t)},va=Li.documentElement,ya=va.matchesSelector||va.webkitMatchesSelector||va.mozMatchesSelector||va.msMatchesSelector||va.oMatchesSelector,Ma=function(t,n){return ya.call(t,n)};"function"==typeof Sizzle&&(da=function(t,n){return Sizzle(t,n)[0]||null},ma=function(t,n){return Sizzle.uniqueSort(Sizzle(t,n))},Ma=Sizzle.matchesSelector);var ba=[];Ci.selection=function(){return xa},Ci.selection.prototype=ba,ba.select=function(t){var n,e,r,u,i=[];"function"!=typeof t&&(t=vn(t));for(var a=-1,o=this.length;o>++a;){i.push(n=[]),n.parentNode=(r=this[a]).parentNode;for(var c=-1,l=r.length;l>++c;)(u=r[c])?(n.push(e=t.call(u,u.__data__,c)),e&&"__data__"in u&&(e.__data__=u.__data__)):n.push(null)}return mn(i)},ba.selectAll=function(t){var n,e,r=[];"function"!=typeof t&&(t=yn(t));for(var u=-1,i=this.length;i>++u;)for(var a=this[u],o=-1,c=a.length;c>++o;)(e=a[o])&&(r.push(n=Ui(t.call(e,e.__data__,o))),n.parentNode=e);return mn(r)},ba.attr=function(t,n){if(2>arguments.length){if("string"==typeof t){var e=this.node();return t=Ci.ns.qualify(t),t.local?e.getAttributeNS(t.space,t.local):e.getAttribute(t)}for(n in t)this.each(Mn(n,t[n]));return this}return this.each(Mn(t,n))},ba.classed=function(t,n){if(2>arguments.length){if("string"==typeof t){var e=this.node(),r=(t=t.trim().split(/^|\s+/g)).length,u=-1;if(n=e.classList){for(;r>++u;)if(!n.contains(t[u]))return!1}else for(n=e.className,null!=n.baseVal&&(n=n.baseVal);r>++u;)if(!bn(t[u]).test(n))return!1;return!0}for(n in t)this.each(xn(n,t[n]));return this}return this.each(xn(t,n))},ba.style=function(t,n,e){var r=arguments.length;if(3>r){if("string"!=typeof t){2>r&&(n="");for(e in t)this.each(wn(e,t[e],n));return this}if(2>r)return Fi.getComputedStyle(this.node(),null).getPropertyValue(t);e=""}return this.each(wn(t,n,e))},ba.property=function(t,n){if(2>arguments.length){if("string"==typeof t)return this.node()[t];for(n in t)this.each(Sn(n,t[n]));return this}return this.each(Sn(t,n))},ba.text=function(t){return arguments.length?this.each("function"==typeof t?function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}:null==t?function(){this.textContent=""}:function(){this.textContent=t}):this.node().textContent},ba.html=function(t){return arguments.length?this.each("function"==typeof t?function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}:null==t?function(){this.innerHTML=""}:function(){this.innerHTML=t}):this.node().innerHTML},ba.append=function(t){function n(){return this.appendChild(Li.createElementNS(this.namespaceURI,t))}function e(){return this.appendChild(Li.createElementNS(t.space,t.local))}return t=Ci.ns.qualify(t),this.select(t.local?e:n)},ba.insert=function(t,n){function e(){return this.insertBefore(Li.createElementNS(this.namespaceURI,t),da(n,this))}function r(){return this.insertBefore(Li.createElementNS(t.space,t.local),da(n,this))}return t=Ci.ns.qualify(t),this.select(t.local?r:e)},ba.remove=function(){return this.each(function(){var t=this.parentNode;t&&t.removeChild(this)})},ba.data=function(t,n){function e(t,e){var r,u,a,o=t.length,s=e.length,h=Math.min(o,s),g=Array(s),p=Array(s),d=Array(o);if(n){var m,v=new i,y=new i,M=[];for(r=-1;o>++r;)m=n.call(u=t[r],u.__data__,r),v.has(m)?d[r]=u:v.set(m,u),M.push(m);for(r=-1;s>++r;)m=n.call(e,a=e[r],r),(u=v.get(m))?(g[r]=u,u.__data__=a):y.has(m)||(p[r]=kn(a)),y.set(m,a),v.remove(m);for(r=-1;o>++r;)v.has(M[r])&&(d[r]=t[r])}else{for(r=-1;h>++r;)u=t[r],a=e[r],u?(u.__data__=a,g[r]=u):p[r]=kn(a);for(;s>r;++r)p[r]=kn(e[r]);for(;o>r;++r)d[r]=t[r]}p.update=g,p.parentNode=g.parentNode=d.parentNode=t.parentNode,c.push(p),l.push(g),f.push(d)}var r,u,a=-1,o=this.length;if(!arguments.length){for(t=Array(o=(r=this[0]).length);o>++a;)(u=r[a])&&(t[a]=u.__data__);return t}var c=qn([]),l=mn([]),f=mn([]);if("function"==typeof t)for(;o>++a;)e(r=this[a],t.call(r,r.parentNode.__data__,a));else for(;o>++a;)e(r=this[a],t);return l.enter=function(){return c},l.exit=function(){return f},l},ba.datum=function(t){return arguments.length?this.property("__data__",t):this.property("__data__")},ba.filter=function(t){var n,e,r,u=[];"function"!=typeof t&&(t=En(t));for(var i=0,a=this.length;a>i;i++){u.push(n=[]),n.parentNode=(e=this[i]).parentNode;for(var o=0,c=e.length;c>o;o++)(r=e[o])&&t.call(r,r.__data__,o)&&n.push(r)}return mn(u)},ba.order=function(){for(var t=-1,n=this.length;n>++t;)for(var e,r=this[t],u=r.length-1,i=r[u];--u>=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},ba.sort=function(t){t=An.apply(this,arguments);for(var n=-1,e=this.length;e>++n;)this[n].sort(t);return this.order()},ba.on=function(t,n,e){var r=arguments.length;if(3>r){if("string"!=typeof t){2>r&&(n=!1);for(e in t)this.each(Nn(e,t[e],n));return this}if(2>r)return(r=this.node()["__on"+t])&&r._;e=!1}return this.each(Nn(t,n,e))},ba.each=function(t){return Tn(this,function(n,e,r){t.call(n,n.__data__,e,r)})},ba.call=function(t){var n=Ui(arguments);return t.apply(n[0]=this,n),this},ba.empty=function(){return!this.node()},ba.node=function(){for(var t=0,n=this.length;n>t;t++)for(var e=this[t],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},ba.transition=function(){var t,n,e=wa||++ka,r=[],u=Object.create(Ea);u.time=Date.now();for(var i=-1,a=this.length;a>++i;){r.push(t=[]);for(var o=this[i],c=-1,l=o.length;l>++c;)(n=o[c])&&zn(n,c,e,u),t.push(n)}return Cn(r,e)};var xa=mn([[Li]]);xa[0].parentNode=va,Ci.select=function(t){return"string"==typeof t?xa.select(t):mn([[t]])},Ci.selectAll=function(t){return"string"==typeof t?xa.selectAll(t):mn([Ui(t)])};var _a=[];Ci.selection.enter=qn,Ci.selection.enter.prototype=_a,_a.append=ba.append,_a.insert=ba.insert,_a.empty=ba.empty,_a.node=ba.node,_a.select=function(t){for(var n,e,r,u,i,a=[],o=-1,c=this.length;c>++o;){r=(u=this[o]).update,a.push(n=[]),n.parentNode=u.parentNode;for(var l=-1,f=u.length;f>++l;)(i=u[l])?(n.push(r[l]=e=t.call(u.parentNode,i.__data__,l)),e.__data__=i.__data__):n.push(null)}return mn(a)};var wa,Sa=[],ka=0,Ea={ease:T,delay:0,duration:250};Sa.call=ba.call,Sa.empty=ba.empty,Sa.node=ba.node,Ci.transition=function(t){return arguments.length?wa?t.transition():t:xa.transition()},Ci.transition.prototype=Sa,Sa.select=function(t){var n,e,r,u=this.id,i=[];"function"!=typeof t&&(t=vn(t));for(var a=-1,o=this.length;o>++a;){i.push(n=[]);for(var c=this[a],l=-1,f=c.length;f>++l;)(r=c[l])&&(e=t.call(r,r.__data__,l))?("__data__"in r&&(e.__data__=r.__data__),zn(e,l,u,r.__transition__[u]),n.push(e)):n.push(null)}return Cn(i,u)},Sa.selectAll=function(t){var n,e,r,u,i,a=this.id,o=[];"function"!=typeof t&&(t=yn(t));for(var c=-1,l=this.length;l>++c;)for(var f=this[c],s=-1,h=f.length;h>++s;)if(r=f[s]){i=r.__transition__[a],e=t.call(r,r.__data__,s),o.push(n=[]);for(var g=-1,p=e.length;p>++g;)zn(u=e[g],g,a,i),n.push(u)}return Cn(o,a)},Sa.filter=function(t){var n,e,r,u=[];"function"!=typeof t&&(t=En(t));for(var i=0,a=this.length;a>i;i++){u.push(n=[]);for(var e=this[i],o=0,c=e.length;c>o;o++)(r=e[o])&&t.call(r,r.__data__,o)&&n.push(r)}return Cn(u,this.id,this.time).ease(this.ease())},Sa.attr=function(t,n){function e(){this.removeAttribute(i)}function r(){this.removeAttributeNS(i.space,i.local)}if(2>arguments.length){for(n in t)this.attr(n,t[n]);return this}var u=V(t),i=Ci.ns.qualify(t);return Ln(this,"attr."+t,n,function(t){function n(){var n,e=this.getAttribute(i);return e!==t&&(n=u(e,t),function(t){this.setAttribute(i,n(t))})}function a(){var n,e=this.getAttributeNS(i.space,i.local);return e!==t&&(n=u(e,t),function(t){this.setAttributeNS(i.space,i.local,n(t))})}return null==t?i.local?r:e:(t+="",i.local?a:n)})},Sa.attrTween=function(t,n){function e(t,e){var r=n.call(this,t,e,this.getAttribute(u));return r&&function(t){this.setAttribute(u,r(t))}}function r(t,e){var r=n.call(this,t,e,this.getAttributeNS(u.space,u.local));return r&&function(t){this.setAttributeNS(u.space,u.local,r(t))}}var u=Ci.ns.qualify(t);return this.tween("attr."+t,u.local?r:e)},Sa.style=function(t,n,e){function r(){this.style.removeProperty(t)}var u=arguments.length;if(3>u){if("string"!=typeof t){2>u&&(n="");for(e in t)this.style(e,t[e],n);return this}e=""}var i=V(t);return Ln(this,"style."+t,n,function(n){function u(){var r,u=Fi.getComputedStyle(this,null).getPropertyValue(t);return u!==n&&(r=i(u,n),function(n){this.style.setProperty(t,r(n),e)})}return null==n?r:(n+="",u)})},Sa.styleTween=function(t,n,e){return 3>arguments.length&&(e=""),this.tween("style."+t,function(r,u){var i=n.call(this,r,u,Fi.getComputedStyle(this,null).getPropertyValue(t));return i&&function(n){this.style.setProperty(t,i(n),e)}})},Sa.text=function(t){return Ln(this,"text",t,Dn)},Sa.remove=function(){return this.each("end.transition",function(){var t;!this.__transition__&&(t=this.parentNode)&&t.removeChild(this)})},Sa.ease=function(t){var n=this.id;return 1>arguments.length?this.node().__transition__[n].ease:("function"!=typeof t&&(t=Ci.ease.apply(Ci,arguments)),Tn(this,function(e){e.__transition__[n].ease=t}))},Sa.delay=function(t){var n=this.id;return Tn(this,"function"==typeof t?function(e,r,u){e.__transition__[n].delay=0|t.call(e,e.__data__,r,u)}:(t|=0,function(e){e.__transition__[n].delay=t}))},Sa.duration=function(t){var n=this.id;return Tn(this,"function"==typeof t?function(e,r,u){e.__transition__[n].duration=Math.max(1,0|t.call(e,e.__data__,r,u))}:(t=Math.max(1,0|t),function(e){e.__transition__[n].duration=t}))},Sa.each=function(t,n){var e=this.id;if(2>arguments.length){var r=Ea,u=wa;wa=e,Tn(this,function(n,r,u){Ea=n.__transition__[e],t.call(n,n.__data__,r,u)}),Ea=r,wa=u}else Tn(this,function(r){r.__transition__[e].event.on(t,n)});return this},Sa.transition=function(){for(var t,n,e,r,u=this.id,i=++ka,a=[],o=0,c=this.length;c>o;o++){a.push(t=[]);for(var n=this[o],l=0,f=n.length;f>l;l++)(e=n[l])&&(r=Object.create(e.__transition__[u]),r.delay+=r.duration,zn(e,l,i,r)),t.push(e)}return Cn(a,i)},Sa.tween=function(t,n){var e=this.id;return 2>arguments.length?this.node().__transition__[e].tween.get(t):Tn(this,null==n?function(n){n.__transition__[e].tween.remove(t)}:function(r){r.__transition__[e].tween.set(t,n)})};var Aa,Na,Ta=0,qa={},Ca=null;Ci.timer=function(t,n,e){if(3>arguments.length){if(2>arguments.length)n=0;else if(!isFinite(n))return;e=Date.now()}var r=qa[t.id];r&&r.callback===t?(r.then=e,r.delay=n):qa[t.id=++Ta]=Ca={callback:t,then:e,delay:n,next:Ca},Aa||(Na=clearTimeout(Na),Aa=1,za(Fn))},Ci.timer.flush=function(){for(var t,n=Date.now(),e=Ca;e;)t=n-e.then,e.delay||(e.flush=e.callback(t)),e=e.next;Hn()};var za=Fi.requestAnimationFrame||Fi.webkitRequestAnimationFrame||Fi.mozRequestAnimationFrame||Fi.oRequestAnimationFrame||Fi.msRequestAnimationFrame||function(t){setTimeout(t,17)};Ci.mouse=function(t){return jn(t,P())};var Da=/WebKit/.test(Fi.navigator.userAgent)?-1:0;Ci.touches=function(t,n){return 2>arguments.length&&(n=P().touches),n?Ui(n).map(function(n){var e=jn(t,n);return e.identifier=n.identifier,e}):[]},Ci.scale={},Ci.scale.linear=function(){return In([0,1],[0,1],Ci.interpolate,!1)},Ci.scale.log=function(){return Kn(Ci.scale.linear(),Wn)};var La=Ci.format(".0e");Wn.pow=function(t){return Math.pow(10,t)},Qn.pow=function(t){return-Math.pow(10,-t)},Ci.scale.pow=function(){return te(Ci.scale.linear(),1)},Ci.scale.sqrt=function(){return Ci.scale.pow().exponent(.5)},Ci.scale.ordinal=function(){return ee([],{t:"range",a:[[]]})},Ci.scale.category10=function(){return Ci.scale.ordinal().range(Fa)},Ci.scale.category20=function(){return Ci.scale.ordinal().range(Ha)},Ci.scale.category20b=function(){return Ci.scale.ordinal().range(ja)},Ci.scale.category20c=function(){return Ci.scale.ordinal().range(Pa)};var Fa=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],Ha=["#1f77b4","#aec7e8","#ff7f0e","#ffbb78","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5","#8c564b","#c49c94","#e377c2","#f7b6d2","#7f7f7f","#c7c7c7","#bcbd22","#dbdb8d","#17becf","#9edae5"],ja=["#393b79","#5254a3","#6b6ecf","#9c9ede","#637939","#8ca252","#b5cf6b","#cedb9c","#8c6d31","#bd9e39","#e7ba52","#e7cb94","#843c39","#ad494a","#d6616b","#e7969c","#7b4173","#a55194","#ce6dbd","#de9ed6"],Pa=["#3182bd","#6baed6","#9ecae1","#c6dbef","#e6550d","#fd8d3c","#fdae6b","#fdd0a2","#31a354","#74c476","#a1d99b","#c7e9c0","#756bb1","#9e9ac8","#bcbddc","#dadaeb","#636363","#969696","#bdbdbd","#d9d9d9"];Ci.scale.quantile=function(){return re([],[])},Ci.scale.quantize=function(){return ue(0,1,[0,1])},Ci.scale.threshold=function(){return ie([.5],[0,1])},Ci.scale.identity=function(){return ae([0,1])},Ci.svg={},Ci.svg.arc=function(){function t(){var t=n.apply(this,arguments),i=e.apply(this,arguments),a=r.apply(this,arguments)+Ra,o=u.apply(this,arguments)+Ra,c=(a>o&&(c=a,a=o,o=c),o-a),l=Ti>c?"0":"1",f=Math.cos(a),s=Math.sin(a),h=Math.cos(o),g=Math.sin(o);return c>=Oa?t?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+t+"A"+t+","+t+" 0 1,0 0,"+-t+"A"+t+","+t+" 0 1,0 0,"+t+"Z":"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"Z":t?"M"+i*f+","+i*s+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L"+t*h+","+t*g+"A"+t+","+t+" 0 "+l+",0 "+t*f+","+t*s+"Z":"M"+i*f+","+i*s+"A"+i+","+i+" 0 "+l+",1 "+i*h+","+i*g+"L0,0"+"Z"}var n=oe,e=ce,r=le,u=fe;return t.innerRadius=function(e){return arguments.length?(n=c(e),t):n},t.outerRadius=function(n){return arguments.length?(e=c(n),t):e},t.startAngle=function(n){return arguments.length?(r=c(n),t):r},t.endAngle=function(n){return arguments.length?(u=c(n),t):u},t.centroid=function(){var t=(n.apply(this,arguments)+e.apply(this,arguments))/2,i=(r.apply(this,arguments)+u.apply(this,arguments))/2+Ra;return[Math.cos(i)*t,Math.sin(i)*t]},t};var Ra=-Ti/2,Oa=2*Ti-1e-6;Ci.svg.line=function(){return se(a)};var Ya=Ci.map({linear:pe,"linear-closed":de,"step-before":me,"step-after":ve,basis:we,"basis-open":Se,"basis-closed":ke,bundle:Ee,cardinal:be,"cardinal-open":ye,"cardinal-closed":Me,monotone:ze});Ya.forEach(function(t,n){n.key=t,n.closed=/-closed$/.test(t)});var Ua=[0,2/3,1/3,0],Ia=[0,1/3,2/3,0],Va=[0,1/6,2/3,1/6];Ci.svg.line.radial=function(){var t=se(De);return t.radius=t.x,delete t.x,t.angle=t.y,delete t.y,t},me.reverse=ve,ve.reverse=me,Ci.svg.area=function(){return Le(a)},Ci.svg.area.radial=function(){var t=Le(De);return t.radius=t.x,delete t.x,t.innerRadius=t.x0,delete t.x0,t.outerRadius=t.x1,delete t.x1,t.angle=t.y,delete t.y,t.startAngle=t.y0,delete t.y0,t.endAngle=t.y1,delete t.y1,t},Ci.svg.chord=function(){function e(t,n){var e=r(this,o,t,n),c=r(this,l,t,n);return"M"+e.p0+i(e.r,e.p1,e.a1-e.a0)+(u(e,c)?a(e.r,e.p1,e.r,e.p0):a(e.r,e.p1,c.r,c.p0)+i(c.r,c.p1,c.a1-c.a0)+a(c.r,c.p1,e.r,e.p0))+"Z"}function r(t,n,e,r){var u=n.call(t,e,r),i=f.call(t,u,r),a=s.call(t,u,r)+Ra,o=h.call(t,u,r)+Ra;return{r:i,a0:a,a1:o,p0:[i*Math.cos(a),i*Math.sin(a)],p1:[i*Math.cos(o),i*Math.sin(o)]}}function u(t,n){return t.a0==n.a0&&t.a1==n.a1}function i(t,n,e){return"A"+t+","+t+" 0 "+ +(e>Ti)+",1 "+n}function a(t,n,e,r){return"Q 0,0 "+r}var o=n,l=t,f=Fe,s=le,h=fe;return e.radius=function(t){return arguments.length?(f=c(t),e):f},e.source=function(t){return arguments.length?(o=c(t),e):o},e.target=function(t){return arguments.length?(l=c(t),e):l},e.startAngle=function(t){return arguments.length?(s=c(t),e):s},e.endAngle=function(t){return arguments.length?(h=c(t),e):h},e},Ci.svg.diagonal=function(){function e(t,n){var e=r.call(this,t,n),a=u.call(this,t,n),o=(e.y+a.y)/2,c=[e,{x:e.x,y:o},{x:a.x,y:o},a];return c=c.map(i),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var r=n,u=t,i=He;return e.source=function(t){return arguments.length?(r=c(t),e):r},e.target=function(t){return arguments.length?(u=c(t),e):u},e.projection=function(t){return arguments.length?(i=t,e):i},e},Ci.svg.diagonal.radial=function(){var t=Ci.svg.diagonal(),n=He,e=t.projection;return t.projection=function(t){return arguments.length?e(je(n=t)):n},t},Ci.svg.symbol=function(){function t(t,r){return(Za.get(n.call(this,t,r))||Oe)(e.call(this,t,r))}var n=Re,e=Pe;return t.type=function(e){return arguments.length?(n=c(e),t):n},t.size=function(n){return arguments.length?(e=c(n),t):e},t};var Za=Ci.map({circle:Oe,cross:function(t){var n=Math.sqrt(t/5)/2;return"M"+-3*n+","+-n+"H"+-n+"V"+-3*n+"H"+n+"V"+-n+"H"+3*n+"V"+n+"H"+n+"V"+3*n+"H"+-n+"V"+n+"H"+-3*n+"Z"},diamond:function(t){var n=Math.sqrt(t/(2*Ba)),e=n*Ba;return"M0,"+-n+"L"+e+",0"+" 0,"+n+" "+-e+",0"+"Z"},square:function(t){var n=Math.sqrt(t)/2;return"M"+-n+","+-n+"L"+n+","+-n+" "+n+","+n+" "+-n+","+n+"Z"},"triangle-down":function(t){var n=Math.sqrt(t/Xa),e=n*Xa/2;return"M0,"+e+"L"+n+","+-e+" "+-n+","+-e+"Z"},"triangle-up":function(t){var n=Math.sqrt(t/Xa),e=n*Xa/2;return"M0,"+-e+"L"+n+","+e+" "+-n+","+e+"Z"}});Ci.svg.symbolTypes=Za.keys();var Xa=Math.sqrt(3),Ba=Math.tan(30*zi);Ci.svg.axis=function(){function t(t){t.each(function(){var t,s=Ci.select(this),h=null==l?e.ticks?e.ticks.apply(e,c):e.domain():l,g=null==n?e.tickFormat?e.tickFormat.apply(e,c):String:n,p=Ie(e,h,f),d=s.selectAll(".tick.minor").data(p,String),m=d.enter().insert("line",".tick").attr("class","tick minor").style("opacity",1e-6),v=Ci.transition(d.exit()).style("opacity",1e-6).remove(),y=Ci.transition(d).style("opacity",1),M=s.selectAll(".tick.major").data(h,String),b=M.enter().insert("g","path").attr("class","tick major").style("opacity",1e-6),x=Ci.transition(M.exit()).style("opacity",1e-6).remove(),_=Ci.transition(M).style("opacity",1),w=On(e),S=s.selectAll(".domain").data([0]),k=(S.enter().append("path").attr("class","domain"),Ci.transition(S)),E=e.copy(),A=this.__chart__||E;this.__chart__=E,b.append("line"),b.append("text");var N=b.select("line"),T=_.select("line"),q=M.select("text").text(g),C=b.select("text"),z=_.select("text");switch(r){case"bottom":t=Ye,m.attr("y2",i),y.attr("x2",0).attr("y2",i),N.attr("y2",u),C.attr("y",Math.max(u,0)+o),T.attr("x2",0).attr("y2",u),z.attr("x",0).attr("y",Math.max(u,0)+o),q.attr("dy",".71em").style("text-anchor","middle"),k.attr("d","M"+w[0]+","+a+"V0H"+w[1]+"V"+a);break;case"top":t=Ye,m.attr("y2",-i),y.attr("x2",0).attr("y2",-i),N.attr("y2",-u),C.attr("y",-(Math.max(u,0)+o)),T.attr("x2",0).attr("y2",-u),z.attr("x",0).attr("y",-(Math.max(u,0)+o)),q.attr("dy","0em").style("text-anchor","middle"),k.attr("d","M"+w[0]+","+-a+"V0H"+w[1]+"V"+-a);break;case"left":t=Ue,m.attr("x2",-i),y.attr("x2",-i).attr("y2",0),N.attr("x2",-u),C.attr("x",-(Math.max(u,0)+o)),T.attr("x2",-u).attr("y2",0),z.attr("x",-(Math.max(u,0)+o)).attr("y",0),q.attr("dy",".32em").style("text-anchor","end"),k.attr("d","M"+-a+","+w[0]+"H0V"+w[1]+"H"+-a);break;case"right":t=Ue,m.attr("x2",i),y.attr("x2",i).attr("y2",0),N.attr("x2",u),C.attr("x",Math.max(u,0)+o),T.attr("x2",u).attr("y2",0),z.attr("x",Math.max(u,0)+o).attr("y",0),q.attr("dy",".32em").style("text-anchor","start"),k.attr("d","M"+a+","+w[0]+"H0V"+w[1]+"H"+a)}if(e.ticks)b.call(t,A),_.call(t,E),x.call(t,E),m.call(t,A),y.call(t,E),v.call(t,E);else{var D=E.rangeBand()/2,L=function(t){return E(t)+D};b.call(t,L),_.call(t,L)}})}var n,e=Ci.scale.linear(),r=$a,u=6,i=6,a=6,o=3,c=[10],l=null,f=0;return t.scale=function(n){return arguments.length?(e=n,t):e},t.orient=function(n){return arguments.length?(r=n in Ja?n+"":$a,t):r},t.ticks=function(){return arguments.length?(c=arguments,t):c},t.tickValues=function(n){return arguments.length?(l=n,t):l},t.tickFormat=function(e){return arguments.length?(n=e,t):n},t.tickSize=function(n,e){if(!arguments.length)return u;var r=arguments.length-1;return u=+n,i=r>1?+e:u,a=r>0?+arguments[r]:u,t},t.tickPadding=function(n){return arguments.length?(o=+n,t):o},t.tickSubdivide=function(n){return arguments.length?(f=+n,t):f},t};var $a="bottom",Ja={top:1,right:1,bottom:1,left:1};Ci.svg.brush=function(){function t(i){i.each(function(){var i,a=Ci.select(this),f=a.selectAll(".background").data([0]),s=a.selectAll(".extent").data([0]),h=a.selectAll(".resize").data(l,String);a.style("pointer-events","all").on("mousedown.brush",u).on("touchstart.brush",u),f.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),s.enter().append("rect").attr("class","extent").style("cursor","move"),h.enter().append("g").attr("class",function(t){return"resize "+t}).style("cursor",function(t){return Ga[t]}).append("rect").attr("x",function(t){return/[ew]$/.test(t)?-3:null}).attr("y",function(t){return/^[ns]/.test(t)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),h.style("display",t.empty()?"none":null),h.exit().remove(),o&&(i=On(o),f.attr("x",i[0]).attr("width",i[1]-i[0]),e(a)),c&&(i=On(c),f.attr("y",i[0]).attr("height",i[1]-i[0]),r(a)),n(a)})}function n(t){t.selectAll(".resize").attr("transform",function(t){return"translate("+f[+/e$/.test(t)][0]+","+f[+/^s/.test(t)][1]+")"})}function e(t){t.select(".extent").attr("x",f[0][0]),t.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1][0]-f[0][0])}function r(t){t.select(".extent").attr("y",f[0][1]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",f[1][1]-f[0][1])}function u(){function u(){var t=Ci.event.changedTouches;return t?Ci.touches(v,t)[0]:Ci.mouse(v)}function l(){32==Ci.event.keyCode&&(S||(d=null,k[0]-=f[1][0],k[1]-=f[1][1],S=2),j())}function s(){32==Ci.event.keyCode&&2==S&&(k[0]+=f[1][0],k[1]+=f[1][1],S=0,j())}function h(){var t=u(),i=!1;m&&(t[0]+=m[0],t[1]+=m[1]),S||(Ci.event.altKey?(d||(d=[(f[0][0]+f[1][0])/2,(f[0][1]+f[1][1])/2]),k[0]=f[+(t[0]l?(u=r,r=l):u=l),f[0][e]!==r||f[1][e]!==u?(i=null,f[0][e]=r,f[1][e]=u,!0):void 0}function p(){h(),b.style("pointer-events","all").selectAll(".resize").style("display",t.empty()?"none":null),Ci.select("body").style("cursor",null),E.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),M({type:"brushend"}),j()}var d,m,v=this,y=Ci.select(Ci.event.target),M=a.of(v,arguments),b=Ci.select(v),x=y.datum(),_=!/^(n|s)$/.test(x)&&o,w=!/^(e|w)$/.test(x)&&c,S=y.classed("extent"),k=u(),E=Ci.select(Fi).on("mousemove.brush",h).on("mouseup.brush",p).on("touchmove.brush",h).on("touchend.brush",p).on("keydown.brush",l).on("keyup.brush",s);if(S)k[0]=f[0][0]-k[0],k[1]=f[0][1]-k[1];else if(x){var A=+/w$/.test(x),N=+/^n/.test(x);m=[f[1-A][0]-k[0],f[1-N][1]-k[1]],k[0]=f[A][0],k[1]=f[N][1]}else Ci.event.altKey&&(d=k.slice());b.style("pointer-events","none").selectAll(".resize").style("display",null),Ci.select("body").style("cursor",y.style("cursor")),M({type:"brushstart"}),h(),j()}var i,a=R(t,"brushstart","brush","brushend"),o=null,c=null,l=Ka[0],f=[[0,0],[0,0]];return t.x=function(n){return arguments.length?(o=n,l=Ka[!o<<1|!c],t):o},t.y=function(n){return arguments.length?(c=n,l=Ka[!o<<1|!c],t):c},t.extent=function(n){var e,r,u,a,l;return arguments.length?(i=[[0,0],[0,0]],o&&(e=n[0],r=n[1],c&&(e=e[0],r=r[0]),i[0][0]=e,i[1][0]=r,o.invert&&(e=o(e),r=o(r)),e>r&&(l=e,e=r,r=l),f[0][0]=0|e,f[1][0]=0|r),c&&(u=n[0],a=n[1],o&&(u=u[1],a=a[1]),i[0][1]=u,i[1][1]=a,c.invert&&(u=c(u),a=c(a)),u>a&&(l=u,u=a,a=l),f[0][1]=0|u,f[1][1]=0|a),t):(n=i||f,o&&(e=n[0][0],r=n[1][0],i||(e=f[0][0],r=f[1][0],o.invert&&(e=o.invert(e),r=o.invert(r)),e>r&&(l=e,e=r,r=l))),c&&(u=n[0][1],a=n[1][1],i||(u=f[0][1],a=f[1][1],c.invert&&(u=c.invert(u),a=c.invert(a)),u>a&&(l=u,u=a,a=l))),o&&c?[[e,u],[r,a]]:o?[e,r]:c&&[u,a])},t.clear=function(){return i=null,f[0][0]=f[0][1]=f[1][0]=f[1][1]=0,t},t.empty=function(){return o&&f[0][0]===f[1][0]||c&&f[0][1]===f[1][1]},Ci.rebind(t,a,"on")};var Ga={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ka=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]];Ci.behavior={},Ci.behavior.drag=function(){function t(){this.on("mousedown.drag",n).on("touchstart.drag",n)}function n(){function t(){var t=o.parentNode;return null!=f?Ci.touches(t).filter(function(t){return t.identifier===f})[0]:Ci.mouse(t)}function n(){if(!o.parentNode)return u();var n=t(),e=n[0]-s[0],r=n[1]-s[1];h|=e|r,s=n,j(),c({type:"drag",x:n[0]+a[0],y:n[1]+a[1],dx:e,dy:r})}function u(){c({type:"dragend"}),h&&(j(),Ci.event.target===l&&g.on("click.drag",i,!0)),g.on(null!=f?"touchmove.drag-"+f:"mousemove.drag",null).on(null!=f?"touchend.drag-"+f:"mouseup.drag",null)}function i(){j(),g.on("click.drag",null)}var a,o=this,c=e.of(o,arguments),l=Ci.event.target,f=Ci.event.touches?Ci.event.changedTouches[0].identifier:null,s=t(),h=0,g=Ci.select(Fi).on(null!=f?"touchmove.drag-"+f:"mousemove.drag",n).on(null!=f?"touchend.drag-"+f:"mouseup.drag",u,!0);r?(a=r.apply(o,arguments),a=[a.x-s[0],a.y-s[1]]):a=[0,0],null==f&&j(),c({type:"dragstart"})}var e=R(t,"drag","dragstart","dragend"),r=null;return t.origin=function(n){return arguments.length?(r=n,t):r},Ci.rebind(t,e,"on")},Ci.behavior.zoom=function(){function t(){this.on("mousedown.zoom",o).on("mousemove.zoom",l).on(to+".zoom",c).on("dblclick.zoom",f).on("touchstart.zoom",s).on("touchmove.zoom",h).on("touchend.zoom",s)}function n(t){return[(t[0]-b[0])/x,(t[1]-b[1])/x]}function e(t){return[t[0]*x+b[0],t[1]*x+b[1]]}function r(t){x=Math.max(_[0],Math.min(_[1],t))}function u(t,n){n=e(n),b[0]+=t[0]-n[0],b[1]+=t[1]-n[1]}function i(){m&&m.domain(d.range().map(function(t){return(t-b[0])/x}).map(d.invert)),y&&y.domain(v.range().map(function(t){return(t-b[1])/x}).map(v.invert))}function a(t){i(),Ci.event.preventDefault(),t({type:"zoom",scale:x,translate:b})}function o(){function t(){l=1,u(Ci.mouse(i),s),a(o)}function e(){l&&j(),f.on("mousemove.zoom",null).on("mouseup.zoom",null),l&&Ci.event.target===c&&f.on("click.zoom",r,!0)}function r(){j(),f.on("click.zoom",null)}var i=this,o=w.of(i,arguments),c=Ci.event.target,l=0,f=Ci.select(Fi).on("mousemove.zoom",t).on("mouseup.zoom",e),s=n(Ci.mouse(i));Fi.focus(),j()}function c(){g||(g=n(Ci.mouse(this))),r(Math.pow(2,.002*Wa())*x),u(Ci.mouse(this),g),a(w.of(this,arguments))}function l(){g=null}function f(){var t=Ci.mouse(this),e=n(t),i=Math.log(x)/Math.LN2;r(Math.pow(2,Ci.event.shiftKey?Math.ceil(i)-1:Math.floor(i)+1)),u(t,e),a(w.of(this,arguments))}function s(){var t=Ci.touches(this),e=Date.now();if(p=x,g={},t.forEach(function(t){g[t.identifier]=n(t)}),j(),1===t.length){if(500>e-M){var i=t[0],o=n(t[0]);r(2*x),u(i,o),a(w.of(this,arguments))}M=e}}function h(){var t=Ci.touches(this),n=t[0],e=g[n.identifier];if(i=t[1]){var i,o=g[i.identifier];n=[(n[0]+i[0])/2,(n[1]+i[1])/2],e=[(e[0]+o[0])/2,(e[1]+o[1])/2],r(Ci.event.scale*p)}u(n,e),M=null,a(w.of(this,arguments))}var g,p,d,m,v,y,M,b=[0,0],x=1,_=Qa,w=R(t,"zoom");return t.translate=function(n){return arguments.length?(b=n.map(Number),i(),t):b},t.scale=function(n){return arguments.length?(x=+n,i(),t):x},t.scaleExtent=function(n){return arguments.length?(_=null==n?Qa:n.map(Number),t):_},t.x=function(n){return arguments.length?(m=n,d=n.copy(),b=[0,0],x=1,t):m},t.y=function(n){return arguments.length?(y=n,v=n.copy(),b=[0,0],x=1,t):y},Ci.rebind(t,w,"on")};var Wa,Qa=[0,1/0],to="onwheel"in document?(Wa=function(){return-Ci.event.deltaY*(Ci.event.deltaMode?120:1)},"wheel"):"onmousewheel"in document?(Wa=function(){return Ci.event.wheelDelta},"mousewheel"):(Wa=function(){return-Ci.event.detail},"MozMousePixelScroll");Ci.layout={},Ci.layout.bundle=function(){return function(t){for(var n=[],e=-1,r=t.length;r>++e;)n.push(Ve(t[e]));return n}},Ci.layout.chord=function(){function t(){var t,l,s,h,g,p={},d=[],m=Ci.range(i),v=[];for(e=[],r=[],t=0,h=-1;i>++h;){for(l=0,g=-1;i>++g;)l+=u[h][g];d.push(l),v.push(Ci.range(i)),t+=l}for(a&&m.sort(function(t,n){return a(d[t],d[n])}),o&&v.forEach(function(t,n){t.sort(function(t,e){return o(u[n][t],u[n][e])})}),t=(2*Ti-f*i)/t,l=0,h=-1;i>++h;){for(s=l,g=-1;i>++g;){var y=m[h],M=v[y][g],b=u[y][M],x=l,_=l+=b*t;p[y+"-"+M]={index:y,subindex:M,startAngle:x,endAngle:_,value:b}}r[y]={index:y,startAngle:s,endAngle:l,value:(l-s)/t},l+=f}for(h=-1;i>++h;)for(g=h-1;i>++g;){var w=p[h+"-"+g],S=p[g+"-"+h];(w.value||S.value)&&e.push(w.value(u-e)*o){var c=n.charge*o*o;return t.px-=i*c,t.py-=a*c,!0}if(n.point&&isFinite(o)){var c=n.pointCharge*o*o;t.px-=i*c,t.py-=a*c}}return!n.charge}}function n(t){t.px=Ci.event.x,t.py=Ci.event.y,c.resume()}var e,r,u,i,o,c={},l=Ci.dispatch("start","tick","end"),f=[1,1],s=.9,h=no,g=eo,p=-30,d=.1,m=.8,v=[],y=[];return c.tick=function(){if(.005>(r*=.99))return l.end({type:"end",alpha:r=0}),!0;var n,e,a,c,h,g,m,M,b,x=v.length,_=y.length;for(e=0;_>e;++e)a=y[e],c=a.source,h=a.target,M=h.x-c.x,b=h.y-c.y,(g=M*M+b*b)&&(g=r*i[e]*((g=Math.sqrt(g))-u[e])/g,M*=g,b*=g,h.x-=M*(m=c.weight/(h.weight+c.weight)),h.y-=b*m,c.x+=M*(m=1-m),c.y+=b*m);if((m=r*d)&&(M=f[0]/2,b=f[1]/2,e=-1,m))for(;x>++e;)a=v[e],a.x+=(M-a.x)*m,a.y+=(b-a.y)*m;if(p)for(Ke(n=Ci.geom.quadtree(v),r,o),e=-1;x>++e;)(a=v[e]).fixed||n.visit(t(a));for(e=-1;x>++e;)a=v[e],a.fixed?(a.x=a.px,a.y=a.py):(a.x-=(a.px-(a.px=a.x))*s,a.y-=(a.py-(a.py=a.y))*s);l.tick({type:"tick",alpha:r})},c.nodes=function(t){return arguments.length?(v=t,c):v},c.links=function(t){return arguments.length?(y=t,c):y},c.size=function(t){return arguments.length?(f=t,c):f},c.linkDistance=function(t){return arguments.length?(h="function"==typeof t?t:+t,c):h},c.distance=c.linkDistance,c.linkStrength=function(t){return arguments.length?(g="function"==typeof t?t:+t,c):g},c.friction=function(t){return arguments.length?(s=+t,c):s},c.charge=function(t){return arguments.length?(p="function"==typeof t?t:+t,c):p},c.gravity=function(t){return arguments.length?(d=+t,c):d},c.theta=function(t){return arguments.length?(m=+t,c):m},c.alpha=function(t){return arguments.length?(t=+t,r?r=t>0?t:0:t>0&&(l.start({type:"start",alpha:r=t}),Ci.timer(c.tick)),c):r},c.start=function(){function t(t,r){for(var u,i=n(e),a=-1,o=i.length;o>++a;)if(!isNaN(u=i[a][t]))return u; +return Math.random()*r}function n(){if(!a){for(a=[],r=0;s>r;++r)a[r]=[];for(r=0;d>r;++r){var t=y[r];a[t.source.index].push(t.target),a[t.target.index].push(t.source)}}return a[e]}var e,r,a,l,s=v.length,d=y.length,m=f[0],M=f[1];for(e=0;s>e;++e)(l=v[e]).index=e,l.weight=0;for(e=0;d>e;++e)l=y[e],"number"==typeof l.source&&(l.source=v[l.source]),"number"==typeof l.target&&(l.target=v[l.target]),++l.source.weight,++l.target.weight;for(e=0;s>e;++e)l=v[e],isNaN(l.x)&&(l.x=t("x",m)),isNaN(l.y)&&(l.y=t("y",M)),isNaN(l.px)&&(l.px=l.x),isNaN(l.py)&&(l.py=l.y);if(u=[],"function"==typeof h)for(e=0;d>e;++e)u[e]=+h.call(this,y[e],e);else for(e=0;d>e;++e)u[e]=h;if(i=[],"function"==typeof g)for(e=0;d>e;++e)i[e]=+g.call(this,y[e],e);else for(e=0;d>e;++e)i[e]=g;if(o=[],"function"==typeof p)for(e=0;s>e;++e)o[e]=+p.call(this,v[e],e);else for(e=0;s>e;++e)o[e]=p;return c.resume()},c.resume=function(){return c.alpha(.1)},c.stop=function(){return c.alpha(0)},c.drag=function(){return e||(e=Ci.behavior.drag().origin(a).on("dragstart.force",Be).on("drag.force",n).on("dragend.force",$e)),arguments.length?(this.on("mouseover.force",Je).on("mouseout.force",Ge).call(e),void 0):e},Ci.rebind(c,l,"on")};var no=20,eo=1;Ci.layout.partition=function(){function t(n,e,r,u){var i=n.children;if(n.x=e,n.y=n.depth*u,n.dx=r,n.dy=u,i&&(a=i.length)){var a,o,c,l=-1;for(r=n.value?r/n.value:0;a>++l;)t(o=i[l],e,c=o.value*r,u),e+=c}}function n(t){var e=t.children,r=0;if(e&&(u=e.length))for(var u,i=-1;u>++i;)r=Math.max(r,n(e[i]));return 1+r}function e(e,i){var a=r.call(this,e,i);return t(a[0],0,u[0],u[1]/n(a[0])),a}var r=Ci.layout.hierarchy(),u=[1,1];return e.size=function(t){return arguments.length?(u=t,e):u},lr(e,r)},Ci.layout.pie=function(){function t(i){var a=i.map(function(e,r){return+n.call(t,e,r)}),o=+("function"==typeof r?r.apply(this,arguments):r),c=(("function"==typeof u?u.apply(this,arguments):u)-r)/Ci.sum(a),l=Ci.range(i.length);null!=e&&l.sort(e===ro?function(t,n){return a[n]-a[t]}:function(t,n){return e(i[t],i[n])});var f=[];return l.forEach(function(t){var n;f[t]={data:i[t],value:n=a[t],startAngle:o,endAngle:o+=n*c}}),f}var n=Number,e=ro,r=0,u=2*Ti;return t.value=function(e){return arguments.length?(n=e,t):n},t.sort=function(n){return arguments.length?(e=n,t):e},t.startAngle=function(n){return arguments.length?(r=n,t):r},t.endAngle=function(n){return arguments.length?(u=n,t):u},t};var ro={};Ci.layout.stack=function(){function t(a,c){var l=a.map(function(e,r){return n.call(t,e,r)}),f=l.map(function(n){return n.map(function(n,e){return[i.call(t,n,e),o.call(t,n,e)]})}),s=e.call(t,f,c);l=Ci.permute(l,s),f=Ci.permute(f,s);var h,g,p,d=r.call(t,f,c),m=l.length,v=l[0].length;for(g=0;v>g;++g)for(u.call(t,l[0][g],p=d[g],f[0][g][1]),h=1;m>h;++h)u.call(t,l[h][g],p+=f[h-1][g][1],f[h][g][1]);return a}var n=a,e=nr,r=er,u=tr,i=We,o=Qe;return t.values=function(e){return arguments.length?(n=e,t):n},t.order=function(n){return arguments.length?(e="function"==typeof n?n:uo.get(n)||nr,t):e},t.offset=function(n){return arguments.length?(r="function"==typeof n?n:io.get(n)||er,t):r},t.x=function(n){return arguments.length?(i=n,t):i},t.y=function(n){return arguments.length?(o=n,t):o},t.out=function(n){return arguments.length?(u=n,t):u},t};var uo=Ci.map({"inside-out":function(t){var n,e,r=t.length,u=t.map(rr),i=t.map(ur),a=Ci.range(r).sort(function(t,n){return u[t]-u[n]}),o=0,c=0,l=[],f=[];for(n=0;r>n;++n)e=a[n],c>o?(o+=i[e],l.push(e)):(c+=i[e],f.push(e));return f.reverse().concat(l)},reverse:function(t){return Ci.range(t.length).reverse()},"default":nr}),io=Ci.map({silhouette:function(t){var n,e,r,u=t.length,i=t[0].length,a=[],o=0,c=[];for(e=0;i>e;++e){for(n=0,r=0;u>n;n++)r+=t[n][e][1];r>o&&(o=r),a.push(r)}for(e=0;i>e;++e)c[e]=(o-a[e])/2;return c},wiggle:function(t){var n,e,r,u,i,a,o,c,l,f=t.length,s=t[0],h=s.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(n=0,u=0;f>n;++n)u+=t[n][e][1];for(n=0,i=0,o=s[e][0]-s[e-1][0];f>n;++n){for(r=0,a=(t[n][e][1]-t[n][e-1][1])/(2*o);n>r;++r)a+=(t[r][e][1]-t[r][e-1][1])/o;i+=a*t[n][e][1]}g[e]=c-=u?i/u*o:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(t){var n,e,r,u=t.length,i=t[0].length,a=1/u,o=[];for(e=0;i>e;++e){for(n=0,r=0;u>n;n++)r+=t[n][e][1];if(r)for(n=0;u>n;n++)t[n][e][1]/=r;else for(n=0;u>n;n++)t[n][e][1]=a}for(e=0;i>e;++e)o[e]=0;return o},zero:er});Ci.layout.histogram=function(){function t(t,i){for(var a,o,c=[],l=t.map(e,this),f=r.call(this,l,i),s=u.call(this,f,l,i),i=-1,h=l.length,g=s.length-1,p=n?1:1/h;g>++i;)a=c[i]=[],a.dx=s[i+1]-(a.x=s[i]),a.y=0;if(g>0)for(i=-1;h>++i;)o=l[i],o>=f[0]&&f[1]>=o&&(a=c[Ci.bisect(s,o,1,g)-1],a.y+=p,a.push(t[i]));return c}var n=!0,e=Number,r=cr,u=ar;return t.value=function(n){return arguments.length?(e=n,t):e},t.range=function(n){return arguments.length?(r=c(n),t):r},t.bins=function(n){return arguments.length?(u="number"==typeof n?function(t){return or(t,n)}:c(n),t):u},t.frequency=function(e){return arguments.length?(n=!!e,t):n},t},Ci.layout.hierarchy=function(){function t(n,a,o){var c=u.call(e,n,a);if(n.depth=a,o.push(n),c&&(l=c.length)){for(var l,f,s=-1,h=n.children=[],g=0,p=a+1;l>++s;)f=t(c[s],p,o),f.parent=n,h.push(f),g+=f.value;r&&h.sort(r),i&&(n.value=g)}else i&&(n.value=+i.call(e,n,a)||0);return n}function n(t,r){var u=t.children,a=0;if(u&&(o=u.length))for(var o,c=-1,l=r+1;o>++c;)a+=n(u[c],l);else i&&(a=+i.call(e,t,r)||0);return i&&(t.value=a),a}function e(n){var e=[];return t(n,0,e),e}var r=hr,u=fr,i=sr;return e.sort=function(t){return arguments.length?(r=t,e):r},e.children=function(t){return arguments.length?(u=t,e):u},e.value=function(t){return arguments.length?(i=t,e):i},e.revalue=function(t){return n(t,0),t},e},Ci.layout.pack=function(){function t(t,u){var i=n.call(this,t,u),a=i[0];a.x=0,a.y=0,Lr(a,function(t){t.r=Math.sqrt(t.value)}),Lr(a,yr);var o=r[0],c=r[1],l=Math.max(2*a.r/o,2*a.r/c);if(e>0){var f=e*l/2;Lr(a,function(t){t.r+=f}),Lr(a,yr),Lr(a,function(t){t.r-=f}),l=Math.max(2*a.r/o,2*a.r/c)}return xr(a,o/2,c/2,1/l),i}var n=Ci.layout.hierarchy().sort(pr),e=0,r=[1,1];return t.size=function(n){return arguments.length?(r=n,t):r},t.padding=function(n){return arguments.length?(e=+n,t):e},lr(t,n)},Ci.layout.cluster=function(){function t(t,u){var i,a=n.call(this,t,u),o=a[0],c=0;Lr(o,function(t){var n=t.children;n&&n.length?(t.x=Sr(n),t.y=wr(n)):(t.x=i?c+=e(t,i):0,t.y=0,i=t)});var l=kr(o),f=Er(o),s=l.x-e(l,f)/2,h=f.x+e(f,l)/2;return Lr(o,function(t){t.x=(t.x-s)/(h-s)*r[0],t.y=(1-(o.y?t.y/o.y:1))*r[1]}),a}var n=Ci.layout.hierarchy().sort(null).value(null),e=Ar,r=[1,1];return t.separation=function(n){return arguments.length?(e=n,t):e},t.size=function(n){return arguments.length?(r=n,t):r},lr(t,n)},Ci.layout.tree=function(){function t(t,u){function i(t,n){var r=t.children,u=t._tree;if(r&&(a=r.length)){for(var a,c,l,f=r[0],s=f,h=-1;a>++h;)l=r[h],i(l,c),s=o(l,c,s),c=l;Fr(t);var g=.5*(f._tree.prelim+l._tree.prelim);n?(u.prelim=n._tree.prelim+e(t,n),u.mod=u.prelim-g):u.prelim=g}else n&&(u.prelim=n._tree.prelim+e(t,n))}function a(t,n){t.x=t._tree.prelim+n;var e=t.children;if(e&&(r=e.length)){var r,u=-1;for(n+=t._tree.mod;r>++u;)a(e[u],n)}}function o(t,n,r){if(n){for(var u,i=t,a=t,o=n,c=t.parent.children[0],l=i._tree.mod,f=a._tree.mod,s=o._tree.mod,h=c._tree.mod;o=Tr(o),i=Nr(i),o&&i;)c=Nr(c),a=Tr(a),a._tree.ancestor=t,u=o._tree.prelim+s-i._tree.prelim-l+e(o,i),u>0&&(Hr(jr(o,t,r),t,u),l+=u,f+=u),s+=o._tree.mod,l+=i._tree.mod,h+=c._tree.mod,f+=a._tree.mod;o&&!Tr(a)&&(a._tree.thread=o,a._tree.mod+=s-f),i&&!Nr(c)&&(c._tree.thread=i,c._tree.mod+=l-h,r=t)}return r}var c=n.call(this,t,u),l=c[0];Lr(l,function(t,n){t._tree={ancestor:t,prelim:0,mod:0,change:0,shift:0,number:n?n._tree.number+1:0}}),i(l),a(l,-l._tree.prelim);var f=qr(l,zr),s=qr(l,Cr),h=qr(l,Dr),g=f.x-e(f,s)/2,p=s.x+e(s,f)/2,d=h.depth||1;return Lr(l,function(t){t.x=(t.x-g)/(p-g)*r[0],t.y=t.depth/d*r[1],delete t._tree}),c}var n=Ci.layout.hierarchy().sort(null).value(null),e=Ar,r=[1,1];return t.separation=function(n){return arguments.length?(e=n,t):e},t.size=function(n){return arguments.length?(r=n,t):r},lr(t,n)},Ci.layout.treemap=function(){function t(t,n){for(var e,r,u=-1,i=t.length;i>++u;)r=(e=t[u]).value*(0>n?0:n),e.area=isNaN(r)||0>=r?0:r}function n(e){var i=e.children;if(i&&i.length){var a,o,c,l=s(e),f=[],h=i.slice(),p=1/0,d="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(t(h,l.dx*l.dy/e.value),f.area=0;(c=h.length)>0;)f.push(a=h[c-1]),f.area+=a.area,"squarify"!==g||p>=(o=r(f,d))?(h.pop(),p=o):(f.area-=f.pop().area,u(f,d,l,!1),d=Math.min(l.dx,l.dy),f.length=f.area=0,p=1/0);f.length&&(u(f,d,l,!0),f.length=f.area=0),i.forEach(n)}}function e(n){var r=n.children;if(r&&r.length){var i,a=s(n),o=r.slice(),c=[];for(t(o,a.dx*a.dy/n.value),c.area=0;i=o.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?a.dx:a.dy,a,!o.length),c.length=c.area=0);r.forEach(e)}}function r(t,n){for(var e,r=t.area,u=0,i=1/0,a=-1,o=t.length;o>++a;)(e=t[a].area)&&(i>e&&(i=e),e>u&&(u=e));return r*=r,n*=n,r?Math.max(n*u*p/r,r/(n*i*p)):1/0}function u(t,n,e,r){var u,i=-1,a=t.length,o=e.x,l=e.y,f=n?c(t.area/n):0;if(n==e.dx){for((r||f>e.dy)&&(f=e.dy);a>++i;)u=t[i],u.x=o,u.y=l,u.dy=f,o+=u.dx=Math.min(e.x+e.dx-o,f?c(u.area/f):0);u.z=!0,u.dx+=e.x+e.dx-o,e.y+=f,e.dy-=f}else{for((r||f>e.dx)&&(f=e.dx);a>++i;)u=t[i],u.x=o,u.y=l,u.dx=f,l+=u.dy=Math.min(e.y+e.dy-l,f?c(u.area/f):0);u.z=!1,u.dy+=e.y+e.dy-l,e.x+=f,e.dx-=f}}function i(r){var u=a||o(r),i=u[0];return i.x=0,i.y=0,i.dx=l[0],i.dy=l[1],a&&o.revalue(i),t([i],i.dx*i.dy/i.value),(a?e:n)(i),h&&(a=u),u}var a,o=Ci.layout.hierarchy(),c=Math.round,l=[1,1],f=null,s=Pr,h=!1,g="squarify",p=.5*(1+Math.sqrt(5));return i.size=function(t){return arguments.length?(l=t,i):l},i.padding=function(t){function n(n){var e=t.call(i,n,n.depth);return null==e?Pr(n):Rr(n,"number"==typeof e?[e,e,e,e]:e)}function e(n){return Rr(n,t)}if(!arguments.length)return f;var r;return s=null==(f=t)?Pr:"function"==(r=typeof t)?n:"number"===r?(t=[t,t,t,t],e):e,i},i.round=function(t){return arguments.length?(c=t?Math.round:Number,i):c!=Number},i.sticky=function(t){return arguments.length?(h=t,a=null,i):h},i.ratio=function(t){return arguments.length?(p=t,i):p},i.mode=function(t){return arguments.length?(g=t+"",i):g},lr(i,o)},Ci.csv=Or(",","text/csv"),Ci.tsv=Or(" ","text/tab-separated-values"),Ci.geo={},Ci.geo.stream=function(t,n){ao.hasOwnProperty(t.type)?ao[t.type](t,n):Yr(t,n)};var ao={Feature:function(t,n){Yr(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,u=e.length;u>++r;)Yr(e[r].geometry,n)}},oo={Sphere:function(t,n){n.sphere()},Point:function(t,n){var e=t.coordinates;n.point(e[0],e[1])},MultiPoint:function(t,n){for(var e,r=t.coordinates,u=-1,i=r.length;i>++u;)e=r[u],n.point(e[0],e[1])},LineString:function(t,n){Ur(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,u=e.length;u>++r;)Ur(e[r],n,0)},Polygon:function(t,n){Ir(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,u=e.length;u>++r;)Ir(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,u=e.length;u>++r;)Yr(e[r],n)}};Ci.geo.albersUsa=function(){function t(t){return n(t)(t)}function n(t){var n=t[0],a=t[1];return a>50?r:-140>n?u:21>a?i:e}var e=Ci.geo.albers(),r=Ci.geo.albers().rotate([160,0]).center([0,60]).parallels([55,65]),u=Ci.geo.albers().rotate([160,0]).center([0,20]).parallels([8,18]),i=Ci.geo.albers().rotate([60,0]).center([0,10]).parallels([8,18]);return t.scale=function(n){return arguments.length?(e.scale(n),r.scale(.6*n),u.scale(n),i.scale(1.5*n),t.translate(e.translate())):e.scale()},t.translate=function(n){if(!arguments.length)return e.translate();var a=e.scale(),o=n[0],c=n[1];return e.translate(n),r.translate([o-.4*a,c+.17*a]),u.translate([o-.19*a,c+.2*a]),i.translate([o+.58*a,c+.43*a]),t},t.scale(e.scale())},(Ci.geo.albers=function(){var t=29.5*zi,n=45.5*zi,e=Hu(Qr),r=e(t,n);return r.parallels=function(r){return arguments.length?e(t=r[0]*zi,n=r[1]*zi):[t*Di,n*Di]},r.rotate([98,0]).center([0,38]).scale(1e3)}).raw=Qr;var co=Uu(function(t){return Math.sqrt(2/(1+t))},function(t){return 2*Math.asin(t/2)});(Ci.geo.azimuthalEqualArea=function(){return Fu(co)}).raw=co;var lo=Uu(function(t){var n=Math.acos(t);return n&&n/Math.sin(n)},a);(Ci.geo.azimuthalEquidistant=function(){return Fu(lo)}).raw=lo,Ci.geo.bounds=tu(a),Ci.geo.centroid=function(t){fo=so=ho=go=po=0,Ci.geo.stream(t,mo);var n;return so&&Math.abs(n=Math.sqrt(ho*ho+go*go+po*po))>qi?[Math.atan2(go,ho)*Di,Math.asin(Math.max(-1,Math.min(1,po/n)))*Di]:void 0};var fo,so,ho,go,po,mo={sphere:function(){2>fo&&(fo=2,so=ho=go=po=0)},point:nu,lineStart:ru,lineEnd:uu,polygonStart:function(){2>fo&&(fo=2,so=ho=go=po=0),mo.lineStart=eu},polygonEnd:function(){mo.lineStart=ru}};Ci.geo.circle=function(){function t(){var t="function"==typeof r?r.apply(this,arguments):r,n=Pu(-t[0]*zi,-t[1]*zi,0).invert,u=[];return e(null,null,1,{point:function(t,e){u.push(t=n(t,e)),t[0]*=Di,t[1]*=Di}}),{type:"Polygon",coordinates:[u]}}var n,e,r=[0,0],u=6;return t.origin=function(n){return arguments.length?(r=n,t):r},t.angle=function(r){return arguments.length?(e=iu((n=+r)*zi,u*zi),t):n},t.precision=function(r){return arguments.length?(e=iu(n*zi,(u=+r)*zi),t):u},t.angle(90)};var vo=ou(o,pu,mu);(Ci.geo.equirectangular=function(){return Fu(Mu).scale(250/Ti)}).raw=Mu.invert=Mu;var yo=Uu(function(t){return 1/t},Math.atan);(Ci.geo.gnomonic=function(){return Fu(yo)}).raw=yo,Ci.geo.graticule=function(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return Ci.range(Math.ceil(r/c)*c,e,c).map(a).concat(Ci.range(Math.ceil(i/l)*l,u,l).map(o))}var e,r,u,i,a,o,c=22.5,l=c,f=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[a(r).concat(o(u).slice(1),a(e).reverse().slice(1),o(i).reverse().slice(1))]}},t.extent=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],i=+n[0][1],u=+n[1][1],r>e&&(n=r,r=e,e=n),i>u&&(n=i,i=u,u=n),t.precision(f)):[[r,i],[e,u]]},t.step=function(n){return arguments.length?(c=+n[0],l=+n[1],t):[c,l]},t.precision=function(n){return arguments.length?(f=+n,a=bu(i,u,f),o=xu(r,e,f),t):f},t.extent([[-180+qi,-90+qi],[180-qi,90-qi]])},Ci.geo.interpolate=function(t,n){return wu(t[0]*zi,t[1]*zi,n[0]*zi,n[1]*zi)},Ci.geo.greatArc=function(){function e(){for(var t=r||a.apply(this,arguments),n=u||o.apply(this,arguments),e=i||Ci.geo.interpolate(t,n),l=0,f=c/e.distance,s=[t];1>(l+=f);)s.push(e(l));return s.push(n),{type:"LineString",coordinates:s}}var r,u,i,a=n,o=t,c=6*zi;return e.distance=function(){return(i||Ci.geo.interpolate(r||a.apply(this,arguments),u||o.apply(this,arguments))).distance},e.source=function(t){return arguments.length?(a=t,r="function"==typeof t?null:t,i=r&&u?Ci.geo.interpolate(r,u):null,e):a},e.target=function(t){return arguments.length?(o=t,u="function"==typeof t?null:t,i=r&&u?Ci.geo.interpolate(r,u):null,e):o},e.precision=function(t){return arguments.length?(c=t*zi,e):c/zi},e},Su.invert=function(t,n){return[2*Ti*t,2*Math.atan(Math.exp(2*Ti*n))-Ti/2]},(Ci.geo.mercator=function(){return Fu(Su).scale(500)}).raw=Su;var Mo=Uu(function(){return 1},Math.asin);(Ci.geo.orthographic=function(){return Fu(Mo)}).raw=Mo,Ci.geo.path=function(){function t(t){return t&&Ci.geo.stream(t,r(u.pointRadius("function"==typeof i?+i.apply(this,arguments):i))),u.result()}var n,e,r,u,i=4.5;return t.area=function(t){return bo=0,Ci.geo.stream(t,r(_o)),bo},t.centroid=function(t){return fo=ho=go=po=0,Ci.geo.stream(t,r(wo)),po?[ho/po,go/po]:void 0},t.bounds=function(t){return tu(r)(t)},t.projection=function(e){return arguments.length?(r=(n=e)?e.stream||Eu(e):a,t):n},t.context=function(n){return arguments.length?(u=null==(e=n)?new Au:new Nu(n),t):e},t.pointRadius=function(n){return arguments.length?(i="function"==typeof n?n:+n,t):i},t.projection(Ci.geo.albersUsa()).context(null)};var bo,xo,_o={point:Pn,lineStart:Pn,lineEnd:Pn,polygonStart:function(){xo=0,_o.lineStart=Tu},polygonEnd:function(){_o.lineStart=_o.lineEnd=_o.point=Pn,bo+=Math.abs(xo/2)}},wo={point:qu,lineStart:Cu,lineEnd:zu,polygonStart:function(){wo.lineStart=Du},polygonEnd:function(){wo.point=qu,wo.lineStart=Cu,wo.lineEnd=zu}};Ci.geo.area=function(t){return So=0,Ci.geo.stream(t,Ao),So};var So,ko,Eo,Ao={sphere:function(){So+=4*Ti},point:Pn,lineStart:Pn,lineEnd:Pn,polygonStart:function(){ko=1,Eo=0,Ao.lineStart=Lu},polygonEnd:function(){var t=2*Math.atan2(Eo,ko);So+=0>t?4*Ti+t:t,Ao.lineStart=Ao.lineEnd=Ao.point=Pn}};Ci.geo.projection=Fu,Ci.geo.projectionMutator=Hu;var No=Uu(function(t){return 1/(1+t)},function(t){return 2*Math.atan(t)});(Ci.geo.stereographic=function(){return Fu(No)}).raw=No,Ci.geom={},Ci.geom.hull=function(t){if(3>t.length)return[];var n,e,r,u,i,a,o,c,l,f,s=t.length,h=s-1,g=[],p=[],d=0;for(n=1;s>n;++n)t[n][1]n;++n)n!==d&&(u=t[n][1]-t[d][1],r=t[n][0]-t[d][0],g.push({angle:Math.atan2(u,r),index:n}));for(g.sort(function(t,n){return t.angle-n.angle}),l=g[0].angle,c=g[0].index,o=0,n=1;h>n;++n)e=g[n].index,l==g[n].angle?(r=t[c][0]-t[d][0],u=t[c][1]-t[d][1],i=t[e][0]-t[d][0],a=t[e][1]-t[d][1],r*r+u*u>=i*i+a*a?g[n].index=-1:(g[o].index=-1,l=g[n].angle,o=n,c=e)):(l=g[n].angle,o=n,c=e);for(p.push(d),n=0,e=0;2>n;++e)-1!==g[e].index&&(p.push(g[e].index),n++);for(f=p.length;h>e;++e)if(-1!==g[e].index){for(;!Iu(p[f-2],p[f-1],g[e].index,t);)--f;p[f++]=g[e].index}var m=[];for(n=0;f>n;++n)m.push(t[p[n]]);return m},Ci.geom.polygon=function(t){return t.area=function(){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];e>++n;)r+=t[n-1][1]*t[n][0]-t[n-1][0]*t[n][1];return.5*r},t.centroid=function(n){var e,r,u=-1,i=t.length,a=0,o=0,c=t[i-1];for(arguments.length||(n=-1/(6*t.area()));i>++u;)e=c,c=t[u],r=e[0]*c[1]-c[0]*e[1],a+=(e[0]+c[0])*r,o+=(e[1]+c[1])*r;return[a*n,o*n]},t.clip=function(n){for(var e,r,u,i,a,o,c=-1,l=t.length,f=t[l-1];l>++c;){for(e=n.slice(),n.length=0,i=t[c],a=e[(u=e.length)-1],r=-1;u>++r;)o=e[r],Vu(o,f,i)?(Vu(a,f,i)||n.push(Zu(a,o,f,i)),n.push(o)):Vu(a,f,i)&&n.push(Zu(a,o,f,i)),a=o;f=i}return n},t},Ci.geom.voronoi=function(t){var n=t.map(function(){return[]}),e=1e6;return Xu(t,function(t){var r,u,i,a,o,c;1===t.a&&t.b>=0?(r=t.ep.r,u=t.ep.l):(r=t.ep.l,u=t.ep.r),1===t.a?(o=r?r.y:-e,i=t.c-t.b*o,c=u?u.y:e,a=t.c-t.b*c):(i=r?r.x:-e,o=t.c-t.a*i,a=u?u.x:e,c=t.c-t.a*a);var l=[i,o],f=[a,c];n[t.region.l.index].push(l,f),n[t.region.r.index].push(l,f)}),n=n.map(function(n,e){var r=t[e][0],u=t[e][1],i=n.map(function(t){return Math.atan2(t[0]-r,t[1]-u)}),a=Ci.range(n.length).sort(function(t,n){return i[t]-i[n]});return a.filter(function(t,n){return!n||i[t]-i[a[n-1]]>qi}).map(function(t){return n[t]})}),n.forEach(function(n,r){var u=n.length;if(!u)return n.push([-e,-e],[-e,e],[e,e],[e,-e]);if(!(u>2)){var i=t[r],a=n[0],o=n[1],c=i[0],l=i[1],f=a[0],s=a[1],h=o[0],g=o[1],p=Math.abs(h-f),d=g-s;if(qi>Math.abs(d)){var m=s>l?-e:e;n.push([-e,m],[e,m])}else if(qi>p){var v=f>c?-e:e;n.push([v,-e],[v,e])}else{var m=(f-c)*(g-s)>(h-f)*(s-l)?e:-e,y=Math.abs(d)-p;qi>Math.abs(y)?n.push([0>d?m:-m,m]):(y>0&&(m*=-1),n.push([-e,m],[e,m]))}}}),n};var To={l:"r",r:"l"};Ci.geom.delaunay=function(t){var n=t.map(function(){return[]}),e=[];return Xu(t,function(e){n[e.region.l.index].push(t[e.region.r.index])}),n.forEach(function(n,r){var u=t[r],i=u[0],a=u[1];n.forEach(function(t){t.angle=Math.atan2(t[0]-i,t[1]-a)}),n.sort(function(t,n){return t.angle-n.angle});for(var o=0,c=n.length-1;c>o;o++)e.push([u,n[o],n[o+1]])}),e},Ci.geom.quadtree=function(t,n,e,r,u){function i(t,n,e,r,u,i){if(!isNaN(n.x)&&!isNaN(n.y))if(t.leaf){var o=t.point;o?.01>Math.abs(o.x-n.x)+Math.abs(o.y-n.y)?a(t,n,e,r,u,i):(t.point=null,a(t,o,e,r,u,i),a(t,n,e,r,u,i)):t.point=n}else a(t,n,e,r,u,i)}function a(t,n,e,r,u,a){var o=.5*(e+u),c=.5*(r+a),l=n.x>=o,f=n.y>=c,s=(f<<1)+l;t.leaf=!1,t=t.nodes[s]||(t.nodes[s]=Bu()),l?e=o:u=o,f?r=c:a=c,i(t,n,e,r,u,a)}var o,c=-1,l=t.length;if(5>arguments.length)if(3===arguments.length)u=e,r=n,e=n=0;else for(n=e=1/0,r=u=-1/0;l>++c;)o=t[c],n>o.x&&(n=o.x),e>o.y&&(e=o.y),o.x>r&&(r=o.x),o.y>u&&(u=o.y);var f=r-n,s=u-e;f>s?u=e+f:r=n+s;var h=Bu();return h.add=function(t){i(h,t,n,e,r,u)},h.visit=function(t){$u(t,h,n,e,r,u)},t.forEach(h.add),h},Ci.time={};var qo=Date,Co=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];Ju.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){zo.setUTCDate.apply(this._,arguments)},setDay:function(){zo.setUTCDay.apply(this._,arguments)},setFullYear:function(){zo.setUTCFullYear.apply(this._,arguments)},setHours:function(){zo.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){zo.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){zo.setUTCMinutes.apply(this._,arguments)},setMonth:function(){zo.setUTCMonth.apply(this._,arguments)},setSeconds:function(){zo.setUTCSeconds.apply(this._,arguments)},setTime:function(){zo.setTime.apply(this._,arguments)}};var zo=Date.prototype,Do="%a %b %e %X %Y",Lo="%m/%d/%Y",Fo="%H:%M:%S",Ho=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],jo=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Po=["January","February","March","April","May","June","July","August","September","October","November","December"],Ro=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];Ci.time.format=function(t){function n(n){for(var r,u,i,a=[],o=-1,c=0;e>++o;)37===t.charCodeAt(o)&&(a.push(t.substring(c,o)),null!=(u=Xo[r=t.charAt(++o)])&&(r=t.charAt(++o)),(i=Bo[r])&&(r=i(n,null==u?"e"===r?" ":"0":u)),a.push(r),c=o+1);return a.push(t.substring(c,o)),a.join("")}var e=t.length;return n.parse=function(n){var e={y:1900,m:0,d:1,H:0,M:0,S:0,L:0},r=Gu(e,t,n,0);if(r!=n.length)return null;"p"in e&&(e.H=e.H%12+12*e.p);var u=new qo;return u.setFullYear(e.y,e.m,e.d),u.setHours(e.H,e.M,e.S,e.L),u},n.toString=function(){return t},n};var Oo=Ku(Ho),Yo=Ku(jo),Uo=Ku(Po),Io=Wu(Po),Vo=Ku(Ro),Zo=Wu(Ro),Xo={"-":"",_:" ",0:"0"},Bo={a:function(t){return jo[t.getDay()]},A:function(t){return Ho[t.getDay()]},b:function(t){return Ro[t.getMonth()]},B:function(t){return Po[t.getMonth()]},c:Ci.time.format(Do),d:function(t,n){return Qu(t.getDate(),n,2)},e:function(t,n){return Qu(t.getDate(),n,2)},H:function(t,n){return Qu(t.getHours(),n,2)},I:function(t,n){return Qu(t.getHours()%12||12,n,2)},j:function(t,n){return Qu(1+Ci.time.dayOfYear(t),n,3)},L:function(t,n){return Qu(t.getMilliseconds(),n,3)},m:function(t,n){return Qu(t.getMonth()+1,n,2)},M:function(t,n){return Qu(t.getMinutes(),n,2)},p:function(t){return t.getHours()>=12?"PM":"AM"},S:function(t,n){return Qu(t.getSeconds(),n,2)},U:function(t,n){return Qu(Ci.time.sundayOfYear(t),n,2)},w:function(t){return t.getDay()},W:function(t,n){return Qu(Ci.time.mondayOfYear(t),n,2)},x:Ci.time.format(Lo),X:Ci.time.format(Fo),y:function(t,n){return Qu(t.getFullYear()%100,n,2)},Y:function(t,n){return Qu(t.getFullYear()%1e4,n,4)},Z:vi,"%":function(){return"%"}},$o={a:ti,A:ni,b:ei,B:ri,c:ui,d:si,e:si,H:hi,I:hi,L:di,m:fi,M:gi,p:mi,S:pi,x:ii,X:ai,y:ci,Y:oi},Jo=/^\s*\d+/,Go=Ci.map({am:0,pm:1});Ci.time.format.utc=function(t){function n(t){try{qo=Ju;var n=new qo;return n._=t,e(n)}finally{qo=Date}}var e=Ci.time.format(t);return n.parse=function(t){try{qo=Ju;var n=e.parse(t);return n&&n._}finally{qo=Date}},n.toString=e.toString,n};var Ko=Ci.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");Ci.time.format.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?yi:Ko,yi.parse=function(t){var n=new Date(t);return isNaN(n)?null:n},yi.toString=Ko.toString,Ci.time.second=Mi(function(t){return new qo(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(t.getTime()+1e3*Math.floor(n))},function(t){return t.getSeconds()}),Ci.time.seconds=Ci.time.second.range,Ci.time.seconds.utc=Ci.time.second.utc.range,Ci.time.minute=Mi(function(t){return new qo(6e4*Math.floor(t/6e4))},function(t,n){t.setTime(t.getTime()+6e4*Math.floor(n))},function(t){return t.getMinutes()}),Ci.time.minutes=Ci.time.minute.range,Ci.time.minutes.utc=Ci.time.minute.utc.range,Ci.time.hour=Mi(function(t){var n=t.getTimezoneOffset()/60;return new qo(36e5*(Math.floor(t/36e5-n)+n))},function(t,n){t.setTime(t.getTime()+36e5*Math.floor(n))},function(t){return t.getHours()}),Ci.time.hours=Ci.time.hour.range,Ci.time.hours.utc=Ci.time.hour.utc.range,Ci.time.day=Mi(function(t){var n=new qo(1970,0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n},function(t,n){t.setDate(t.getDate()+n)},function(t){return t.getDate()-1}),Ci.time.days=Ci.time.day.range,Ci.time.days.utc=Ci.time.day.utc.range,Ci.time.dayOfYear=function(t){var n=Ci.time.year(t);return Math.floor((t-n-6e4*(t.getTimezoneOffset()-n.getTimezoneOffset()))/864e5)},Co.forEach(function(t,n){t=t.toLowerCase(),n=7-n;var e=Ci.time[t]=Mi(function(t){return(t=Ci.time.day(t)).setDate(t.getDate()-(t.getDay()+n)%7),t},function(t,n){t.setDate(t.getDate()+7*Math.floor(n))},function(t){var e=Ci.time.year(t).getDay();return Math.floor((Ci.time.dayOfYear(t)+(e+n)%7)/7)-(e!==n)});Ci.time[t+"s"]=e.range,Ci.time[t+"s"].utc=e.utc.range,Ci.time[t+"OfYear"]=function(t){var e=Ci.time.year(t).getDay();return Math.floor((Ci.time.dayOfYear(t)+(e+n)%7)/7)}}),Ci.time.week=Ci.time.sunday,Ci.time.weeks=Ci.time.sunday.range,Ci.time.weeks.utc=Ci.time.sunday.utc.range,Ci.time.weekOfYear=Ci.time.sundayOfYear,Ci.time.month=Mi(function(t){return t=Ci.time.day(t),t.setDate(1),t},function(t,n){t.setMonth(t.getMonth()+n)},function(t){return t.getMonth()}),Ci.time.months=Ci.time.month.range,Ci.time.months.utc=Ci.time.month.utc.range,Ci.time.year=Mi(function(t){return t=Ci.time.day(t),t.setMonth(0,1),t},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t){return t.getFullYear()}),Ci.time.years=Ci.time.year.range,Ci.time.years.utc=Ci.time.year.utc.range;var Wo=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Qo=[[Ci.time.second,1],[Ci.time.second,5],[Ci.time.second,15],[Ci.time.second,30],[Ci.time.minute,1],[Ci.time.minute,5],[Ci.time.minute,15],[Ci.time.minute,30],[Ci.time.hour,1],[Ci.time.hour,3],[Ci.time.hour,6],[Ci.time.hour,12],[Ci.time.day,1],[Ci.time.day,2],[Ci.time.week,1],[Ci.time.month,1],[Ci.time.month,3],[Ci.time.year,1]],tc=[[Ci.time.format("%Y"),o],[Ci.time.format("%B"),function(t){return t.getMonth()}],[Ci.time.format("%b %d"),function(t){return 1!=t.getDate()}],[Ci.time.format("%a %d"),function(t){return t.getDay()&&1!=t.getDate()}],[Ci.time.format("%I %p"),function(t){return t.getHours()}],[Ci.time.format("%I:%M"),function(t){return t.getMinutes()}],[Ci.time.format(":%S"),function(t){return t.getSeconds()}],[Ci.time.format(".%L"),function(t){return t.getMilliseconds()}]],nc=Ci.scale.linear(),ec=Si(tc);Qo.year=function(t,n){return nc.domain(t.map(Ei)).ticks(n).map(ki)},Ci.time.scale=function(){return xi(Ci.scale.linear(),Qo,ec)};var rc=Qo.map(function(t){return[t[0].utc,t[1]]}),uc=[[Ci.time.format.utc("%Y"),o],[Ci.time.format.utc("%B"),function(t){return t.getUTCMonth()}],[Ci.time.format.utc("%b %d"),function(t){return 1!=t.getUTCDate()}],[Ci.time.format.utc("%a %d"),function(t){return t.getUTCDay()&&1!=t.getUTCDate()}],[Ci.time.format.utc("%I %p"),function(t){return t.getUTCHours()}],[Ci.time.format.utc("%I:%M"),function(t){return t.getUTCMinutes()}],[Ci.time.format.utc(":%S"),function(t){return t.getUTCSeconds()}],[Ci.time.format.utc(".%L"),function(t){return t.getUTCMilliseconds()}]],ic=Si(uc);return rc.year=function(t,n){return nc.domain(t.map(Ni)).ticks(n).map(Ai)},Ci.time.scale.utc=function(){return xi(Ci.scale.linear(),rc,ic)},Ci}(); \ No newline at end of file diff --git a/src/main/resources/web/js/rs/libs/d3js/topojson.v1.min.js b/src/main/resources/web/js/rs/libs/d3js/topojson.v1.min.js new file mode 100644 index 0000000..6ebef9a --- /dev/null +++ b/src/main/resources/web/js/rs/libs/d3js/topojson.v1.min.js @@ -0,0 +1,2 @@ +// https://github.com/topojson/topojson-client Version 1.8.0. Copyright 2016 Mike Bostock. +!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.topojson=n.topojson||{})}(this,function(n){"use strict";function t(n){if(!n)return h;var t,r,e=n.scale[0],o=n.scale[1],i=n.translate[0],u=n.translate[1];return function(n,f){f||(t=r=0),n[0]=(t+=n[0])*e+i,n[1]=(r+=n[1])*o+u}}function r(n){if(!n)return h;var t,r,e=n.scale[0],o=n.scale[1],i=n.translate[0],u=n.translate[1];return function(n,f){f||(t=r=0);var c=Math.round((n[0]-i)/e),a=Math.round((n[1]-u)/o);n[0]=c-t,n[1]=a-r,t=c,r=a}}function e(n,t){for(var r,e=n.length,o=e-t;o<--e;)r=n[o],n[o++]=n[e],n[e]=r}function o(n,t){for(var r=0,e=n.length;r>>1;n[o]1){var c,a=[],s={LineString:o,MultiLineString:i,Polygon:i,MultiPolygon:function(n){n.forEach(i)}};u(t),a.forEach(arguments.length<3?function(n){f.push(n[0].i)}:function(n){r(n[0].g,n[n.length-1].g)&&f.push(n[0].i)})}else for(var l=0,h=n.arcs.length;l1)for(var u,f,c=1,a=e(i[0]);ca&&(f=i[0],i[0]=i[c],i[c]=f,a=u);return i})}}function l(n,t){return n[1][2]-t[1][2]}var h=function(){},p=function(n,t){return"GeometryCollection"===t.type?{type:"FeatureCollection",features:t.geometries.map(function(t){return i(n,t)})}:i(n,t)},v=function(n,t){function r(t){var r,e=n.arcs[t<0?~t:t],o=e[0];return n.transform?(r=[0,0],e.forEach(function(n){r[0]+=n[0],r[1]+=n[1]})):r=e[e.length-1],t<0?[r,o]:[o,r]}function e(n,t){for(var r in n){var e=n[r];delete t[e.start],delete e.start,delete e.end,e.forEach(function(n){o[n<0?~n:n]=1}),f.push(e)}}var o={},i={},u={},f=[],c=-1;return t.forEach(function(r,e){var o,i=n.arcs[r<0?~r:r];i.length<3&&!i[1][0]&&!i[1][1]&&(o=t[++c],t[c]=r,t[e]=o)}),t.forEach(function(n){var t,e,o=r(n),f=o[0],c=o[1];if(t=u[f])if(delete u[t.end],t.push(n),t.end=c,e=i[c]){delete i[e.start];var a=e===t?t:t.concat(e);i[a.start=t.start]=u[a.end=e.end]=a}else i[t.start]=u[t.end]=t;else if(t=i[c])if(delete i[t.start],t.unshift(n),t.start=f,e=u[f]){delete u[e.end];var s=e===t?t:e.concat(t);i[s.start=e.start]=u[s.end=t.end]=s}else i[t.start]=u[t.end]=t;else t=[n],i[t.start=f]=u[t.end=c]=t}),e(u,i),e(i,u),t.forEach(function(n){o[n<0?~n:n]||f.push([n])}),f},g=function(n){return u(n,f.apply(this,arguments))},d=function(n){return u(n,s.apply(this,arguments))},y=function(n){function t(n,t){n.forEach(function(n){n<0&&(n=~n);var r=i[n];r?r.push(t):i[n]=[t]})}function r(n,r){n.forEach(function(n){t(n,r)})}function e(n,t){"GeometryCollection"===n.type?n.geometries.forEach(function(n){e(n,t)}):n.type in f&&f[n.type](n.arcs,t)}var i={},u=n.map(function(){return[]}),f={LineString:t,MultiLineString:r,Polygon:r,MultiPolygon:function(n,t){n.forEach(function(n){r(n,t)})}};n.forEach(e);for(var c in i)for(var a=i[c],s=a.length,l=0;l0;){var r=(t+1>>1)-1,o=e[r];if(l(n,o)>=0)break;e[o._=t]=o,e[n._=t=r]=n}}function t(n,t){for(;;){var r=t+1<<1,i=r-1,u=t,f=e[u];if(i0&&(n=e[o],t(e[n._=0]=n,0)),r}},r.remove=function(r){var i,u=r._;if(e[u]===r)return u!==--o&&(i=e[o],(l(i,r)<0?n:t)(e[i._=u]=i,u)),u},r},E=function(n,e){function o(n){f.remove(n),n[1][2]=e(n),f.push(n)}var i=t(n.transform),u=r(n.transform),f=m();return null==e&&(e=c),n.arcs.forEach(function(n){var t,r,c,a,s=[],l=0;for(r=0,c=n.length;r y) ? 1 : 0)); + }, + + "file-size-desc": function ( a, b ) { + var raw = getBytesFromString(a,b) + var x = raw[0] + var y = raw[1] + return ((x < y) ? 1 : ((x > y) ? -1 : 0)); + } + } ); + /** + * Sorts a column containing IP addresses (IPv4 and IPv6) in typical dot + * notation / colon. This can be most useful when using DataTables for a + * networking application, and reporting information containing IP address. + * + * @name IP addresses + * @summary Sort IP addresses numerically + * @author Dominique Fournier + * @author Brad Wasson + * + * @example + * $('#example').dataTable( { + * columnDefs: [ + * { type: 'ip-address', targets: 0 } + * ] + * } ); + */ + + jQuery.extend( jQuery.fn.dataTableExt.oSort, { + "ip-address-pre": function ( a ) { + var i, item; + var m = a.split("."), + n = a.split(":"), + x = "", + xa = ""; + + if (m.length == 4) { + // IPV4 + for(i = 0; i < m.length; i++) { + item = m[i]; + + if(item.length == 1) { + x += "00" + item; + } + else if(item.length == 2) { + x += "0" + item; + } + else { + x += item; + } + } + } + else if (n.length > 0) { + // IPV6 + var count = 0; + for(i = 0; i < n.length; i++) { + item = n[i]; + + if (i > 0) { + xa += ":"; + } + + if(item.length === 0) { + count += 0; + } + else if(item.length == 1) { + xa += "000" + item; + count += 4; + } + else if(item.length == 2) { + xa += "00" + item; + count += 4; + } + else if(item.length == 3) { + xa += "0" + item; + count += 4; + } + else { + xa += item; + count += 4; + } + } + + // Padding the :: + n = xa.split(":"); + var paddDone = 0; + + for (i = 0; i < n.length; i++) { + item = n[i]; + + if (item.length === 0 && paddDone === 0) { + for (var padding = 0 ; padding < (32-count) ; padding++) { + x += "0"; + paddDone = 1; + } + } + else { + x += item; + } + } + } + + return x; + }, + + "ip-address-asc": function ( a, b ) { + return ((a < b) ? -1 : ((a > b) ? 1 : 0)); + }, + + "ip-address-desc": function ( a, b ) { + return ((a < b) ? 1 : ((a > b) ? -1 : 0)); + } + } ); +} \ No newline at end of file diff --git a/src/main/resources/web/js/rs/libs/datatables/dataTables.TorStatus.js b/src/main/resources/web/js/rs/libs/datatables/dataTables.TorStatus.js new file mode 100644 index 0000000..b5319ed --- /dev/null +++ b/src/main/resources/web/js/rs/libs/datatables/dataTables.TorStatus.js @@ -0,0 +1,53 @@ +// There may be occasions when you wish to filter data presented to +// the end user in your own manner, common examples are number range +// filtering (in between two numbers) and date range filtering. +// DataTables provide an API method to add your own filtering functions, +// $.fn.dataTableExt.afnFiltering. This is an array of functions +// (push your own onto it) which will will be run at table draw time +// to see if a particular row should be included or not. + + +/* Custom filtering function which will filter data in column four between two values */ + +$.fn.dataTableExt.afnFiltering.push( + function( oSettings, aData, iDataIndex ) { + var iMin = document.getElementById('bw_from').value * 1; + var iMax = document.getElementById('bw_from').value * 1; + var iVersion = aData[3] == "-" ? 0 : aData[3]*1; + + if ( iMin == "" && iMax == "" ) + { + return true; + } + else if ( iMin == "" && iVersion < iMax) + { + return true; + } + else if ( iMin < iVersion && "" == iMax ) + { + return true; + } + else if ( iMin < iVersion && iVersion < iMax ) + { + return true; + } + return false; + } +); + +/* +$(document).ready(function() { + var oTable = $('#example').dataTable(); + + $('#min').keyup( function() { oTable.fnDraw(); } ); + $('#max').keyup( function() { oTable.fnDraw(); } ); +} ); +*/ + +$.extend( $.fn.dataTableExt.oStdClasses, { + "sSortAsc": "header headerSortDown", + "sSortDesc": "header headerSortUp", + "sSortable": "header" +} ); + + diff --git a/src/main/resources/web/js/rs/libs/datatables/dataTables.bootstrap.js b/src/main/resources/web/js/rs/libs/datatables/dataTables.bootstrap.js new file mode 100644 index 0000000..76b2a92 --- /dev/null +++ b/src/main/resources/web/js/rs/libs/datatables/dataTables.bootstrap.js @@ -0,0 +1,182 @@ +/*! DataTables Bootstrap 3 integration + * ©2011-2015 SpryMedia Ltd - datatables.net/license + */ + +/** + * DataTables integration for Bootstrap 3. This requires Bootstrap 3 and + * DataTables 1.10 or newer. + * + * This file sets the defaults and adds options to DataTables to style its + * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap + * for further information. + */ +(function( factory ){ + if ( typeof define === 'function' && define.amd ) { + // AMD + define( ['jquery', 'datatables'], function ( $ ) { + return factory( $, window, document ); + } ); + } + else if ( typeof exports === 'object' ) { + // CommonJS + module.exports = function (root, $) { + if ( ! root ) { + root = window; + } + + if ( ! $ || ! $.fn.dataTable ) { + // Require DataTables, which attaches to jQuery, including + // jQuery if needed and have a $ property so we can access the + // jQuery object that is used + $ = require('datatables')(root, $).$; + } + + return factory( $, root, root.document ); + }; + } + else { + // Browser + factory( jQuery, window, document ); + } +}(function( $, window, document, undefined ) { +'use strict'; +var DataTable = $.fn.dataTable; + + +/* Set the defaults for DataTables initialisation */ +$.extend( true, DataTable.defaults, { + dom: + "<'row'<'col-sm-6'l><'col-sm-6'f>>" + + "<'row'<'col-sm-12'tr>>" + + "<'row'<'col-sm-5'i><'col-sm-7'p>>", + renderer: 'bootstrap' +} ); + + +/* Default class modification */ +$.extend( DataTable.ext.classes, { + sWrapper: "dataTables_wrapper form-inline dt-bootstrap", + sFilterInput: "form-control input-sm", + sLengthSelect: "form-control input-sm", + sProcessing: "dataTables_processing panel panel-default" +} ); + + +/* Bootstrap paging button renderer */ +DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) { + var api = new DataTable.Api( settings ); + var classes = settings.oClasses; + var lang = settings.oLanguage.oPaginate; + var aria = settings.oLanguage.oAria.paginate || {}; + var btnDisplay, btnClass, counter=0; + + var attach = function( container, buttons ) { + var i, ien, node, button; + var clickHandler = function ( e ) { + e.preventDefault(); + if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) { + api.page( e.data.action ).draw( 'page' ); + } + }; + + for ( i=0, ien=buttons.length ; i 0 ? + '' : ' disabled'); + break; + + case 'previous': + btnDisplay = lang.sPrevious; + btnClass = button + (page > 0 ? + '' : ' disabled'); + break; + + case 'next': + btnDisplay = lang.sNext; + btnClass = button + (page < pages-1 ? + '' : ' disabled'); + break; + + case 'last': + btnDisplay = lang.sLast; + btnClass = button + (page < pages-1 ? + '' : ' disabled'); + break; + + default: + btnDisplay = button + 1; + btnClass = page === button ? + 'active' : ''; + break; + } + + if ( btnDisplay ) { + node = $('
  • ', { + 'class': classes.sPageButton+' '+btnClass, + 'id': idx === 0 && typeof button === 'string' ? + settings.sTableId +'_'+ button : + null + } ) + .append( $('', { + 'href': '#', + 'aria-controls': settings.sTableId, + 'aria-label': aria[ button ], + 'data-dt-idx': counter, + 'tabindex': settings.iTabIndex + } ) + .html( btnDisplay ) + ) + .appendTo( container ); + + settings.oApi._fnBindAction( + node, {action: button}, clickHandler + ); + + counter++; + } + } + } + }; + + // IE9 throws an 'unknown error' if document.activeElement is used + // inside an iframe or frame. + var activeEl; + + try { + // Because this approach is destroying and recreating the paging + // elements, focus is lost on the select button which is bad for + // accessibility. So we want to restore focus once the draw has + // completed + activeEl = $(host).find(document.activeElement).data('dt-idx'); + } + catch (e) {} + + attach( + $(host).empty().html('