Skip to content

Instantly share code, notes, and snippets.

@martinbpeters
Last active December 11, 2015 10:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save martinbpeters/4590086 to your computer and use it in GitHub Desktop.
Save martinbpeters/4590086 to your computer and use it in GitHub Desktop.
Map of Ireland with Raphael
<!DOCTYPE html>
<meta charset="utf-8">
<style>
body { font: 12px Arial;}
</style>
<body>
<script src="raphael.js" type="text/javascript" charset="utf-8"></script>
<script src="scale.raphael.js" type="text/javascript" charset="utf-8"></script>
<script src="ireland_coast_county_provinces_water.js" type="text/javascript" charset="utf-8"></script>
<script>
window.onload = function () {
var R = ScaleRaphael("paper", 800, 1000);
var attr = {
fill: "#333",
stroke: "#666",
"stroke-width": 1,
"stroke-linejoin": "round"
};
// Water colour - lightblue
var waterAttr = {
fill: "#ADD8E6"
};
var niAttr = {
fill: "none",
"fill-opacity":1,
"fill-rule": "evenodd",
stroke: "#a08070",
"stroke-width":1.60,
"stroke-linecap":"butt",
"stroke-linejoin":"miter",
"stroke-miterlimit":4,
"stroke-dasharray":"none",
"stroke-opacity":1
};
var provincesAttr = {
fill:"none",
"fill-opacity":0.94117647,
"fill-rule":"evenodd",
stroke:"#a08070",
"stroke-width":1.60,
"stroke-linecap":"butt",
"stroke-linejoin":"miter",
"stroke-miterlimit":4,
"stroke-dasharray":"none",
"stroke-opacity":1
};
// Provincial Boundaries
var provinces = {};
provinces.ulster = R.path(provincePaths.ulster).attr(provincesAttr);
provinces.connacht = R.path(provincePaths.connacht).attr(provincesAttr);
provinces.leinster = R.path(provincePaths.leinster).attr(provincesAttr);
provinces.munster = R.path(provincePaths.munster).attr(provincesAttr);
// Islands/Lakes
var islands = R.path(islandsPath).attr(attr);
var water = R.path(waterPath).attr(waterAttr);
// County Boundaries
var ireland = {};
for (var county in countyPaths) {
ireland[county] = R.path(countyPaths[county]).attr(attr);
}
R.changeSize(400, 500, true, false);
};
</script>
<div id="canvas">
<div id="paper"></div>
</div>
</body>
</html>
var provincePaths = {};
provincePaths.ulster = "M 498.66256,52.4141 C 496.03696,52.4214 493.3856,52.5891 490.86256,52.5891 C 485.76464,52.5891 487.1968,55.6662 490.28752,57.7266 C 493.76384,60.0442 497.02384,64.2386 500,65.7266 C 501.27952,66.3664 505.37008,73.1346 503.42496,74.3016 C 501.14976,75.6667 499.51904,76.3979 498.18752,76.5141 C 498.08512,76.523 497.98656,76.525 497.88752,76.5266 C 496.10384,76.5568 494.8352,75.4152 493.1376,73.1515 C 488.17456,66.5342 491.20336,71.3077 488,72.5891 C 487.13504,72.935 485.56832,73.0966 483.9376,73.1642 C 483.39392,73.1866 482.83264,73.1965 482.3,73.2016 C 480.16928,73.2224 478.32352,73.1336 478.28752,73.1515 C 475.28144,74.6547 470.8624,75.5173 470.86256,80.5891 C 470.8624,84.4366 470.66192,87.2634 471.9376,90.5642 C 472.02864,90.7998 472.11824,91.0355 472.22496,91.2766 C 472.33184,91.5178 472.4512,91.7666 472.57504,92.0141 C 473.9024,94.6688 475.85536,96.2998 477.1376,98.8642 C 478.0584,100.7058 478.48656,102.4398 478.68752,104.2766 C 478.71264,104.5062 478.73152,104.7435 478.75008,104.9766 C 478.87904,106.609 478.8624,108.3342 478.86256,110.3016 C 478.8624,112.7757 479.05664,115.3394 478.8,117.7141 C 478.7744,117.9517 478.74784,118.1806 478.71248,118.4141 C 478.60656,119.1147 478.45328,119.7966 478.2376,120.4517 C 478.1656,120.6699 478.08672,120.8894 478,121.1016 C 477.91328,121.3138 477.8152,121.5211 477.71248,121.7267 C 477.36128,122.4291 477.24,125.0742 477.05008,127.5766 C 477.00256,128.2022 476.94736,128.8133 476.88752,129.3891 C 476.70816,131.117 476.45104,132.4765 476,132.5891 C 473.52256,133.2085 465.71248,134.5403 465.71248,137.7267 C 465.71248,143.5907 466.17952,143.3826 462.28752,146.3016 C 461.77536,146.6858 459.7224,147.6608 457.52496,148.3766 C 457.15888,148.496 456.77984,148.6131 456.41248,148.7141 C 453.10608,149.623 450.01936,149.6254 451.9,145.8642 C 453.5864,142.4912 457.19344,140.9277 458.18752,136.9517 C 459.11744,133.2322 462.42352,132.3206 463.45008,129.8891 C 463.81376,129.0277 460.33376,127.992 460.67504,126.6267 C 460.74128,126.3618 460.81376,126.104 460.88752,125.8642 C 460.96128,125.6243 461.03168,125.407 461.11248,125.1891 C 462.08208,122.5736 463.53744,121.4235 464.98752,119.0392 C 465.10832,118.8405 465.22944,118.6315 465.35008,118.4141 C 465.47056,118.1968 465.59296,117.9659 465.71248,117.7267 C 467.47184,114.208 469.7848,116.8534 468.57504,112.0141 C 467.8552,109.135 466.78752,107.2966 466.78752,103.7141 C 466.78752,100.0443 465.09104,93.5776 461.1376,92.5891 C 458.79472,92.0035 458.18992,91.095 458.1,89.9016 C 458.0872,89.7312 458.08288,89.5458 458.08752,89.3642 C 458.12464,87.9104 458.60848,86.1046 457.71248,84.0141 C 454.87488,77.3933 452.1728,79.439 444,79.439 C 440.41744,79.439 433.61536,80.5278 432.47504,85.0891 C 431.77136,87.9037 426.548,90.0274 427.02496,92.8891 C 427.67776,96.8051 431.42496,95.5518 431.42496,99.4392 C 431.42496,103.6688 428.67168,106.4883 426.86256,108.5891 C 426.67168,107.9858 422.94384,111.173 423.45008,101.9267 C 423.60064,99.1765 423.60656,97.3326 419.87504,96.4392 C 419.564,96.3646 419.22736,96.3005 418.86256,96.2392 C 417.76784,96.0554 416.41744,95.928 414.76256,95.8642 C 412.19168,95.765 418.2208,92.6843 417.4,89.4016 C 416.40672,85.4283 411.73872,86.3634 408.91248,87.7766 C 406.04224,89.2117 407.69536,95.107 405.67504,97.4766 C 404.1696,99.2424 401.02976,99.7842 398.4,100.3016 C 395.45467,100.8813 400.8352,109.1448 393.7625,107.3766 C 391.40797,106.788 391.77422,105.3042 389.5125,102.7267 C 388.22832,101.2632 386.61005,103.9006 384.7125,104.1891 C 384.63659,104.2006 384.55178,104.2106 384.47501,104.2141 C 384.01435,104.2358 383.54094,104.1074 383.05,103.7392 C 377.90406,99.8797 378.59957,103.8488 375.6125,104.6267 C 375.5095,104.6534 375.41216,104.6704 375.3,104.6891 C 375.07566,104.7267 374.82818,104.7517 374.5625,104.7517 C 372.98595,104.7517 368.50002,104.128 368.5,106.3642 C 368.5,107.8933 369.29554,114.1888 370.52501,115.6642 C 373.8124,119.609 371.38898,118.1366 369.7125,121.7267 C 368.02213,125.3464 370.412,129.0302 369.1125,133.4392 C 369.03536,133.5051 368.96237,133.5606 368.8875,133.6141 C 368.73776,133.7211 368.59125,133.804 368.45,133.8642 C 368.37938,133.8942 368.30614,133.92 368.2375,133.9392 C 368.16885,133.9582 368.10427,133.9805 368.0375,133.9891 C 366.23459,134.2234 365.09563,130.7405 363.65,128.5891 C 361.8201,125.8661 362.31611,126.5894 359.85,126.7517 C 359.67386,126.7632 359.48334,126.7723 359.27501,126.7766 C 359.06666,126.781 358.8444,126.7824 358.6,126.7766 C 353.75126,126.6626 355.21373,135.6386 352.3375,137.0766 C 346.90466,139.7931 351.12499,139.1829 351.12501,144.3517 C 351.12501,147.0486 358.81656,150.3242 358,150.8141 C 355.86552,152.0949 351.052,152.0632 347.9,153.6392 C 344.61829,155.28 347.98658,160.4373 350.32501,161.3141 C 351.4025,161.7182 352.43358,162.2475 353.55,162.5267 C 355.15672,162.9283 356.13771,162.8336 356.9,162.5267 C 357.02704,162.4755 357.14552,162.4259 357.2625,162.3642 C 358.31536,161.8086 359.03762,160.8717 360.82501,160.5141 C 364.80843,159.7174 368.84699,159.0202 366.4875,163.7392 C 365.55773,165.5987 364.90162,170.6338 367.2875,171.8267 C 369.64032,173.003 369.57987,173.9856 368.97501,175.1392 C 368.85403,175.3699 368.71243,175.6173 368.5625,175.8642 C 368.26262,176.3579 367.93704,176.884 367.7,177.4766 C 366.76091,179.8243 364.55,181.2891 362.85,177.8891 C 361.57816,175.3454 357.75208,171.753 353.9625,172.2267 C 350.58483,172.6488 349.58573,174.6517 346.6875,174.6517 C 343.77267,174.6517 338.60152,173.0402 339.0125,176.6766 C 339.81298,183.7598 340.88294,180.5139 343.85,182.7392 C 345.77085,184.1798 349.89696,185.1362 351.5375,186.7766 C 352.25315,187.4923 352.78766,189.9389 351.5375,192.4392 C 351.04755,193.419 348.74725,197.1981 346.6375,198.0392 C 346.46168,198.1093 346.28443,198.1632 346.1125,198.1891 C 345.59669,198.267 345.10152,198.1282 344.6625,197.6891 C 343.7813,196.808 343.09771,196.0789 342.42501,195.4642 C 342.20077,195.2592 341.9803,195.0688 341.75,194.8891 C 340.8288,194.1706 339.80278,193.6398 338.2,193.2392 C 335.70418,192.6152 333.01222,187.5891 331.7375,187.5891 C 329.18955,187.5891 325.04248,186.7517 324.0625,189.2016 C 323.68902,190.1354 323.75477,196.975 322.85,197.2766 C 317.60299,199.0256 316.70962,199.3795 313.15,202.9392 C 312.78549,203.3037 312.47661,203.5114 312.2125,203.6016 C 312.14648,203.6242 312.08574,203.6432 312.02501,203.6517 C 310.38466,203.8814 310.59157,199.2046 308.7,201.7267 C 306.72326,204.3622 304.5961,203.7784 306.27501,206.5766 C 307.49814,208.6152 311.11907,213.744 313.15,214.2517 C 315.13978,214.7491 316.13846,223.8837 318,223.1392 C 324.73622,220.4446 323.73253,226.4184 329.7125,225.5642 C 338.91808,224.2491 330.99416,226.0814 335.37501,227.1766 C 337.94493,227.8192 340.74099,222.165 341.4375,222.3392 C 343.74922,222.9171 345.20936,229.7205 346.27501,227.5891 C 347.40376,225.3317 353.26867,220.7888 354.3625,225.1642 C 355.58866,230.0688 353.44789,227.8792 350.32501,231.6267 C 349.33424,232.8155 346.37402,237.6184 350.32501,237.2891 C 350.56114,237.2694 350.79496,237.2507 351.0375,237.2392 C 352.25024,237.1814 353.53059,237.2075 354.7375,237.1016 C 354.97888,237.0805 355.22798,237.0598 355.4625,237.0267 C 357.5731,236.728 359.35469,235.8704 360.0125,233.2392 C 360.88384,229.7538 362.172,226.2637 362.85,223.5517 C 362.95643,223.1259 363.09013,222.751 363.2375,222.4141 C 363.31118,222.2458 363.37978,222.0869 363.4625,221.9392 C 365.86133,217.653 371.89246,221.8338 371.7375,221.9267 C 371.61322,222.0013 371.48581,222.1056 371.3625,222.2267 C 371.30085,222.2872 371.24848,222.3434 371.1875,222.4141 C 369.4803,224.395 368.09149,230.2214 370.27501,230.0517 C 370.35298,230.0456 370.43778,230.036 370.52501,230.0141 C 373.87966,229.1755 374.91528,225.1642 378.6,225.1642 C 381.2364,225.1642 382.50282,222.3339 384.6625,220.7141 C 385.03987,220.4312 393.05976,215.4907 393.9625,219.1016 C 394.14019,219.8123 395.59904,226.1584 394.3625,226.7766 C 389.7093,229.1032 388.88688,231.1283 386.0625,233.5642 C 385.87421,233.7266 385.68286,233.8853 385.47501,234.0517 C 381.92566,236.8912 381.83749,238.3763 381.8375,242.5392 C 381.8375,244.5374 381.44478,245.4475 380.8875,245.8267 C 380.81784,245.8741 380.73677,245.9072 380.6625,245.9392 C 378.9544,246.6752 376.15528,243.6354 377.8,250.2141 C 378.26982,252.0934 378.13802,255.3027 375.5,255.6141 C 375.4023,255.6258 375.30467,255.6358 375.2,255.6392 C 374.78131,255.6526 374.30037,255.5986 373.7625,255.4642 C 373.22376,255.3294 372.67626,255.1989 372.1375,255.0642 C 372.05803,255.1701 371.99547,255.2877 371.9375,255.4141 C 371.90341,255.488 371.87872,255.5726 371.85,255.6517 C 371.82054,255.7339 371.78755,255.8154 371.7625,255.9016 C 371.75389,255.9307 371.74573,255.9598 371.7375,255.9891 C 371.68202,256.1875 371.63502,256.3862 371.5875,256.5891 C 371.57963,256.6229 371.57046,256.6555 371.5625,256.6891 C 372.24085,257.1979 372.2159,257.1792 373.7125,258.3016 C 375.53109,259.6656 381.71072,262.4054 383.42501,264.3016 C 380.8527,262.6342 384.31736,266.6866 384.57501,267.4392 C 384.57499,269.2888 387.87101,276.8059 389.7125,277.7267 C 394.58026,280.1605 395.99888,281.7256 399.42501,285.1517 C 401.77872,287.5053 402.8136,290.8357 406.28752,293.1517 C 407.11088,293.7006 416.6328,301.3483 416.86256,301.4392 C 416.91616,301.4283 416.96848,301.4179 417.02496,301.4141 C 416.68,301.7019 416.33712,301.9958 416,302.3016 C 415.44448,304.5237 414.972,305.4259 412.57504,306.8642 C 406.96304,310.2314 407.42496,310.7066 407.42496,317.1517 C 407.42496,319.6614 406.22912,326.1974 407.42496,328.5891 C 409.82624,333.3917 411.83616,328.6858 416,329.7267 C 419.28272,330.5474 421.11488,331.9438 422.86256,335.4392 C 424.87888,339.472 427.10128,338.5403 429.71248,341.1517 C 434.12544,345.5646 436.55744,343.2482 441.1376,346.3016 C 445.24048,349.037 444.79072,351.0923 448,354.3016 C 450.34976,356.6514 453.02448,359.545 454.86256,362.3016 C 456.84496,365.2755 461.1376,368.4315 461.1376,371.4392 C 461.1376,374.6829 459.4224,382.8581 462.28752,385.1517 C 468.0192,385.1517 465.19792,386.3494 468,389.1517 C 471.04416,392.1958 472.23712,393.9637 475.42496,397.1517 C 477.90016,399.6269 481.41984,403.4286 483.42496,407.4392 C 484.74672,410.0824 487.9792,414.2061 488.57504,416.5891 C 488.884,417.8254 491.85104,428.2995 495.42496,421.1517 C 495.7112,421.1034 495.97024,421.0246 496.21248,420.9392 C 495.75824,420.6875 495.59632,420.2464 496,419.4392 C 496.71808,418.0029 497.72448,418.2931 498.97504,418.6766 C 498.74944,418.4922 498.52624,418.2766 498.3,418.0267 C 496.52608,416.0666 496.5712,415.6813 499.02496,412.4642 C 501.52432,409.1874 504.94448,407.3034 507.51248,407.2891 C 509.05328,407.2805 510.2928,407.9442 510.8376,409.3766 C 512.22464,413.0256 511.85712,413.8142 508.78752,413.8142 C 506.43104,413.8141 505.86672,414.1664 505.4376,415.8766 C 505.19776,416.8315 504.52,417.8806 503.82496,418.4517 C 507.0776,417.8707 514.9984,420.4408 517.71248,417.7267 C 519.34048,416.0986 525.65584,411.9451 528.57504,414.8642 C 529.20304,415.4922 533.26864,420.347 533.71248,420.0142 C 536.5808,417.8629 537.2528,418.6979 541.1376,417.7267 C 542.12528,417.4797 551.53648,418.1902 552.57504,417.1517 C 553.96128,415.7654 555.60528,413.907 553.1376,411.4392 C 552.19488,410.4965 551.82224,405.9043 554.28752,403.4392 C 557.33936,400.3872 553.08144,400.8384 554.28752,396.0141 C 555.90368,389.5491 557.69872,394.8581 561.71248,397.1517 C 562.92624,397.8453 571.94912,401.215 573.71248,398.8642 C 575.72816,396.1766 582.99824,393.0355 584.91248,392.1141 C 584.9048,391.827 584.89424,391.5389 584.88752,391.2517 C 585.60768,391.1779 586.32816,391.1277 587.05008,391.0891 C 589.34176,390.1637 591.86928,389.2232 593.1376,388.5891 C 595.06848,387.6237 598.8624,385.751 598.86256,382.3016 C 598.8624,378.4262 600.76784,375.0552 603.42496,373.7267 C 607.81072,371.5338 604.52416,364.6918 604.6,362.4016 C 604.61072,362.0794 604.68784,361.8427 604.86256,361.7267 C 606.08864,357.9648 610.7376,358.1766 614.86256,358.8642 C 617.36512,359.2813 623.67856,359.6003 624.57504,356.0141 C 625.20208,353.5058 631.42496,350.4842 631.42496,350.3016 C 631.42496,348.0981 638.8456,347.9229 639.47504,346.3016 C 639.46624,346.2573 639.45632,346.2106 639.45008,346.1642 C 639.44352,346.1192 639.44192,346.0733 639.4376,346.0267 C 639.42944,345.9306 639.42496,345.8291 639.42496,345.7267 C 639.42496,345.2091 639.452,344.7813 639.5,344.4016 C 639.5016,344.3891 639.4984,344.3765 639.5,344.3642 C 639.51488,344.2509 639.53088,344.1283 639.55008,344.0267 C 639.56768,343.9325 639.59136,343.8488 639.61248,343.7642 C 639.6136,343.76 639.61152,343.7557 639.61248,343.7517 C 639.61808,343.7298 639.63168,343.7104 639.6376,343.6891 C 639.66144,343.6008 639.68448,343.517 639.71248,343.4392 C 639.7368,343.372 639.76032,343.3112 639.78752,343.2517 C 639.79584,343.2333 639.80384,343.2194 639.81248,343.2016 C 639.83856,343.1482 639.85888,343.0989 639.88752,343.0517 C 639.92896,342.9832 639.97824,342.9198 640.02496,342.8642 C 640.04896,342.8355 640.07456,342.8146 640.1,342.7891 C 640.13008,342.759 640.15552,342.7274 640.18752,342.7016 C 640.21888,342.6766 640.25424,342.6477 640.28752,342.6267 C 640.29536,342.6216 640.30448,342.6189 640.31248,342.6141 C 640.32464,342.6069 640.3376,342.5958 640.35008,342.5891 C 640.38112,342.5722 640.41744,342.5654 640.45008,342.5517 C 640.49552,342.5326 640.53904,342.5147 640.58752,342.5016 C 640.624,342.4917 640.66192,342.4834 640.7,342.4766 C 640.73152,342.4712 640.76752,342.4675 640.8,342.4642 C 640.83152,342.461 640.86752,342.453 640.9,342.4517 C 640.9672,342.449 641.0288,342.4466 641.1,342.4517 C 641.1344,342.4541 641.16464,342.46 641.2,342.4642 C 641.32176,342.4782 641.45472,342.5186 641.58752,342.5517 C 641.61744,342.5592 641.64448,342.5558 641.67504,342.5642 C 641.84544,342.6106 642.02544,342.6683 642.21248,342.7392 C 642.39744,342.8091 642.58704,342.8878 642.78752,342.9766 C 642.98656,343.0648 643.18656,343.1626 643.4,343.2642 C 643.4296,343.2782 643.4576,343.2874 643.48752,343.3016 C 643.89216,343.4954 644.32352,343.7005 644.77504,343.9141 C 644.78912,343.9208 644.79824,343.9325 644.81248,343.9392 C 645.0408,344.0469 645.27328,344.1579 645.51248,344.2642 C 645.7656,344.3766 646.02288,344.4834 646.28752,344.5891 C 648.19232,345.351 650.0952,346.1022 652,346.8642 C 656.2744,348.5739 663.45296,350.8845 666.86256,352.5891 C 672.4264,355.3712 672.388,356.3142 679.06256,356.3141 C 679.15776,356.3141 679.23568,356.1957 679.31248,356.0141 C 679.38944,355.8326 679.4672,355.585 679.5376,355.3392 C 679.66048,354.909 679.78512,354.4731 679.9376,354.3392 C 679.9592,354.32 679.97696,354.3074 680,354.3016 C 683.49072,353.429 686.40848,353.4846 688.57504,349.1517 C 689.98176,346.3381 693.6744,342.0674 695.42496,339.4392 C 696.07584,338.4619 696.62624,337.5715 697.08752,336.7392 C 697.24128,336.4618 697.37664,336.1915 697.51248,335.9267 C 699.14288,332.749 699.54768,330.4158 700.1,327.4392 C 700.34576,326.1149 698.47264,322.679 699.42496,321.7267 C 702.75568,318.396 704.5688,317.1642 703.42496,312.5891 C 703.39312,312.4614 703.36592,312.3118 703.3376,312.1392 C 703.30912,311.9666 703.27344,311.7746 703.25008,311.5642 C 702.9232,308.6173 703.1848,302.3016 706.28752,302.3016 C 710.392,302.3016 711.15024,302.6149 712,306.8642 C 712.59424,309.8354 712.42704,311.8224 714.1376,311.7141 C 714.28,311.7051 714.4424,311.6779 714.61248,311.6392 C 715.12272,311.523 715.7624,311.2704 716.57504,310.8642 C 719.75776,309.2728 723.54608,308.9094 725.1376,305.7267 C 727.20048,301.6006 737.14096,305.1309 736.67504,300.8517 C 736.11648,295.7211 746.84928,297.4877 737.27504,292.5141 C 735.42608,291.5538 736.49632,289.0765 733.71248,288.0141 C 722.79136,283.8464 728.46256,285.6493 728.46256,282.2267 C 728.4624,277.8563 730.63584,274.5637 729.71248,270.3016 C 729.7376,270.201 730.8624,267.0266 730.86256,264.5891 C 730.8624,262.3262 728.58032,257.8165 728.08752,256.4141 C 728.05232,256.3139 728.028,256.2306 728.01248,256.1642 C 727.99696,256.0978 727.9928,256.043 728,256.0141 C 728.54848,253.8206 729.45008,250.2094 729.45008,248.5891 C 729.45008,248.4582 729.44816,248.3184 729.4376,248.1642 C 729.42688,248.0099 729.40784,247.8381 729.38752,247.6642 C 729.10224,245.2299 727.89632,241.048 726.86256,240.0141 C 726.2248,239.3765 719.16272,231.5787 720,231.4392 C 722.41376,231.0368 724.22848,228.7024 726.4376,227.8392 C 726.60752,227.7728 726.77488,227.7115 726.95008,227.6642 C 727.30032,227.5694 727.66096,227.5141 728.0376,227.5141 C 728.22512,227.5141 728.40272,227.5046 728.57504,227.4891 C 728.7472,227.4736 728.91728,227.456 729.07504,227.4267 C 729.3904,227.368 729.67536,227.2805 729.9376,227.1766 C 730.06864,227.1248 730.19344,227.0622 730.31248,227.0016 C 733.52752,225.3654 732.50496,220.8707 735.42496,230.3016 C 735.54576,230.6914 735.67152,231.0686 735.8,231.4392 C 736.63552,233.8474 737.57104,235.9637 737.7,239.2392 C 737.70992,239.491 737.71248,239.7478 737.71248,240.0141 C 737.71248,244.8832 741.1376,246.6829 741.1376,250.8642 C 741.1376,254.317 742.28736,256.2814 742.28752,260.0141 C 742.28752,264.2966 737.71248,266.8638 737.71248,268.0141 C 737.71248,271.5658 738.02672,273.2462 738.86256,276.5891 C 739.09696,277.5274 739.56368,283.185 740.75008,284.7891 C 740.79088,284.8445 740.83232,284.8939 740.87504,284.9392 C 740.96032,285.0298 741.04496,285.1054 741.1376,285.1517 C 742.69248,285.9291 744.08512,286.4128 745.21248,286.3517 C 745.3736,286.3429 745.53776,286.321 745.68752,286.2891 C 746.88576,286.0347 747.7072,285.0226 748,282.8642 C 748.18048,281.5333 750.8624,277.072 750.86256,274.3016 C 750.86256,271.0386 751.5512,270.3059 752.3376,269.2642 C 752.46864,269.0906 752.604,268.9056 752.7376,268.7016 C 752.87104,268.4978 753.0072,268.2747 753.1376,268.0141 C 753.2048,267.8797 753.26608,267.7429 753.32496,267.6016 C 754.20832,265.4843 754.20496,262.6443 754.86256,260.0141 C 754.88736,259.9147 754.92832,259.795 754.97504,259.6517 C 755.67632,257.4998 758.56352,250.721 755.42496,249.1517 C 751.48032,247.1794 753.53472,244.5397 751.42496,241.7267 C 751.04592,241.2213 749.11024,234.1282 748.57504,233.7267 C 746.03408,231.821 745.47168,227.7608 742.86256,225.1517 C 742.40496,224.6941 741.99168,224.2805 741.6376,223.8517 C 740.57504,222.5654 740,221.1742 740,218.3016 C 740,217.0686 740.01344,208.3083 739.42496,208.0141 C 738.34672,207.475 737.59664,207.0984 736.9,206.7517 C 736.68608,206.6448 736.48784,206.5426 736.3,206.4517 C 736.24544,206.4253 736.20272,206.4018 736.15008,206.3766 C 735.8816,206.2483 735.63792,206.1354 735.41248,206.0392 C 735.1872,205.9429 734.98336,205.868 734.78752,205.8016 C 734.59168,205.7352 734.4048,205.6782 734.22496,205.6392 C 734.04512,205.6002 733.87744,205.5782 733.7,205.5642 C 733.52256,205.5501 733.3384,205.543 733.15008,205.5517 C 732.64736,205.5746 732.08336,205.675 731.32496,205.8267 C 726.86704,206.7182 725.46016,209.6597 722.62496,210.2267 C 718.3032,211.091 714.9016,213.1517 709.71248,213.1517 C 704.34144,213.1517 704.6528,215.9363 702.28752,218.3016 C 702.11888,218.4702 701.95568,218.6435 701.8,218.8141 C 701.72752,218.8938 701.6576,218.972 701.58752,219.0517 C 701.5072,219.1427 701.42784,219.2357 701.35008,219.3267 C 701.33296,219.3467 701.31696,219.3691 701.3,219.3891 C 701.02768,219.7093 700.7688,220.019 700.51248,220.3267 C 700.47568,220.3709 700.43664,220.4203 700.4,220.4642 C 700.30176,220.5813 700.19856,220.7006 700.1,220.8141 C 700.0568,220.864 700.0184,220.9152 699.97504,220.9642 C 699.88096,221.0701 699.78336,221.175 699.68752,221.2766 C 699.63536,221.3322 699.57792,221.3851 699.52496,221.4392 C 699.43728,221.5282 699.35296,221.617 699.26256,221.7016 C 699.24544,221.7176 699.22976,221.7358 699.21248,221.7517 C 699.08144,221.8728 698.93904,221.9787 698.8,222.0891 C 698.64336,222.2136 698.48224,222.3306 698.31248,222.4392 C 698.14576,222.5459 697.97008,222.6498 697.78752,222.7392 C 697.41648,222.9208 697.00576,223.0675 696.55008,223.1642 C 696.43504,223.1885 696.32144,223.2083 696.2,223.2267 C 696.13616,223.2363 696.07824,223.2438 696.01248,223.2517 C 695.95312,223.2587 695.8984,223.2586 695.8376,223.2642 C 695.70832,223.2763 695.57408,223.2838 695.4376,223.2891 C 695.35232,223.2925 695.2632,223.3011 695.17504,223.3016 C 695.1272,223.3019 695.07376,223.3022 695.02496,223.3016 C 694.4616,223.295 693.83616,223.2277 693.1376,223.1016 C 692.77712,223.0366 692.4016,222.9645 692,222.8642 C 691.83472,222.8229 691.68928,222.7685 691.55008,222.7016 C 691.54672,222.7 691.5408,222.7034 691.5376,222.7016 C 691.11152,222.4944 690.80368,222.1624 690.6,221.7517 C 690.53216,221.6147 690.47072,221.4696 690.42496,221.3141 C 690.196,220.5373 690.23728,219.5477 690.46256,218.4642 C 690.55136,218.0298 690.668,217.5802 690.81248,217.1267 C 690.8848,216.9 690.96608,216.6678 691.05008,216.4392 C 691.21856,215.9819 691.40512,215.5291 691.61248,215.0766 C 691.71568,214.8504 691.82656,214.6237 691.9376,214.4016 C 692.728,212.8206 693.40336,211.1982 694.17504,209.5642 C 694.51584,208.8114 694.88704,208.072 695.28752,207.3517 C 695.34464,207.247 695.40384,207.1437 695.46256,207.0392 C 695.6872,206.6459 695.92112,206.26 696.16256,205.8766 C 696.17232,205.861 696.1776,205.8424 696.18752,205.8267 C 696.22464,205.768 696.26256,205.7101 696.3,205.6517 C 696.51424,205.3168 696.7376,204.9856 696.97504,204.6517 C 697.13744,204.4104 697.31504,204.1832 697.5,203.9642 C 697.62784,203.8126 697.76208,203.6674 697.9,203.5267 C 697.94352,203.4808 697.99376,203.4331 698.0376,203.3891 C 698.1728,203.2528 698.30048,203.1341 698.4376,203.0141 C 698.57728,202.8918 698.72064,202.7834 698.86256,202.6766 C 699.32032,202.3325 699.78656,202.0522 700.27504,201.8392 C 700.8608,201.5837 701.47712,201.3939 702.12496,201.2517 C 702.3432,201.2034 702.57312,201.1686 702.8,201.1267 C 704.15552,200.88 705.66896,200.72 707.42496,200.3141 C 707.6528,200.2614 707.86752,200.1851 708.07504,200.1016 C 708.07856,200.1002 708.084,200.1032 708.08752,200.1016 C 708.70224,199.8429 709.23376,199.4419 709.7376,198.9891 C 709.9016,198.8272 710.06192,198.656 710.21248,198.4766 C 710.35744,198.3034 710.49232,198.1222 710.62496,197.9392 C 710.62848,197.9346 710.63408,197.9314 710.6376,197.9267 C 710.7712,197.7414 710.89968,197.5555 711.02496,197.3642 C 711.02688,197.3613 711.02304,197.3546 711.02496,197.3517 C 711.152,197.1574 711.27744,196.9608 711.4,196.7642 C 712.11456,195.5758 712.73376,194.3395 713.46256,193.4267 C 713.476,193.4106 713.48656,193.3926 713.5,193.3766 C 713.6144,193.2358 713.72912,193.1118 713.85008,192.9891 C 713.99152,192.8454 714.13472,192.7037 714.28752,192.5891 C 714.80176,192.2034 715.21264,191.7893 715.5376,191.3392 C 715.66416,191.1667 715.76208,190.9874 715.86256,190.8016 C 715.86528,190.7968 715.87232,190.7941 715.87504,190.7891 C 715.92864,190.689 715.99008,190.5926 716.0376,190.4891 C 716.21584,190.0997 716.34544,189.683 716.46256,189.2642 C 716.56448,188.8386 716.6224,188.3986 716.66256,187.9392 C 716.71488,187.1045 716.70848,186.2742 716.68752,185.4392 C 716.68064,185.2394 716.68368,185.0432 716.67504,184.8392 C 716.65856,184.3627 716.63072,183.8781 716.61248,183.4016 C 716.61088,183.361 716.61408,183.3174 716.61248,183.2766 C 716.59328,182.7589 716.57984,182.2445 716.57504,181.7267 C 716.57504,177.7267 716.57504,173.7267 716.57504,169.7267 C 716.57504,168.9574 716.46416,168.1653 716.28752,167.4141 C 716.23152,167.1656 716.17184,166.9258 716.1,166.6891 C 715.74272,165.5112 715.23184,164.5269 714.76256,164.0517 C 714.76048,164.0494 714.76464,164.0413 714.76256,164.0392 C 714.71776,163.9942 714.66896,163.9494 714.62496,163.9141 C 714.62208,163.9118 714.61536,163.9165 714.61248,163.9141 C 714.28928,163.6586 714.00416,163.6762 713.8,164.0766 C 713.772,164.1333 713.7368,164.1914 713.71248,164.2642 C 713.63472,164.4851 713.58432,164.7816 713.55008,165.1642 C 713.52752,165.4149 713.51248,165.6998 713.51248,166.0267 C 713.51248,166.1568 713.49424,166.3293 713.46256,166.5392 C 713.43104,166.7488 713.38512,166.9891 713.32496,167.2642 C 713.20384,167.8174 713.03264,168.481 712.81248,169.2141 C 712.70336,169.5778 712.57888,169.9518 712.45008,170.3392 C 712.32,170.7294 712.1848,171.1275 712.0376,171.5267 C 711.74608,172.3192 711.42832,173.1118 711.08752,173.8517 C 710.91712,174.2216 710.7408,174.5781 710.56256,174.9141 C 710.38416,175.2501 710.19568,175.5638 710.01248,175.8517 C 709.92096,175.9955 709.82976,176.1224 709.7376,176.2517 C 709.73552,176.2544 709.73952,176.2614 709.7376,176.2642 C 709.55504,176.5192 709.3704,176.7397 709.18752,176.9267 C 709.09376,177.0237 709.00656,177.113 708.91248,177.1891 C 708.45616,177.5589 708.0048,177.6675 707.58752,177.4141 C 707.58512,177.4126 707.57744,177.4158 707.57504,177.4141 C 707.49104,177.3619 707.41888,177.2845 707.3376,177.2016 C 707.17488,177.036 707.012,176.8131 706.86256,176.5141 C 706.45328,175.6958 706.17648,174.7928 705.97504,173.8267 C 705.8744,173.3435 705.796,172.8386 705.72496,172.3267 C 705.72336,172.3146 705.72672,172.3013 705.72496,172.2891 C 705.67296,171.9176 705.6304,171.5494 705.58752,171.1766 C 705.57072,171.0248 705.55344,170.8803 705.5376,170.7267 C 705.47968,170.1941 705.42848,169.6598 705.37504,169.1267 C 705.37248,169.1018 705.36496,169.0766 705.36256,169.0517 C 705.30896,168.5187 705.25008,167.9832 705.18752,167.4517 C 705.15296,167.1728 705.11584,166.8826 705.07504,166.6016 C 705.0744,166.5976 705.07568,166.5931 705.07504,166.5891 C 704.9504,165.7341 704.79056,164.876 704.57504,164.0141 C 704.49104,163.6782 704.40528,163.3282 704.31248,162.9642 C 704.22512,162.6261 704.13568,162.2866 704.0376,161.9517 C 704.03392,161.939 704.02864,161.9269 704.02496,161.9141 C 703.92272,161.5669 703.80736,161.2182 703.68752,160.8766 C 703.56768,160.535 703.4432,160.1978 703.3,159.8642 C 703.22672,159.7032 703.14336,159.5419 703.06256,159.3891 C 703.0608,159.3859 703.06416,159.3798 703.06256,159.3766 C 702.48304,158.2861 701.69808,157.4325 700.57504,157.1517 C 700.408,157.1099 700.24704,157.064 700.08752,157.0141 C 700.06608,157.0075 700.0464,156.996 700.02496,156.9891 C 699.84656,156.9318 699.67088,156.8702 699.5,156.8016 C 699.38576,156.7566 699.2728,156.7131 699.16256,156.6642 C 699.12848,156.6486 699.09632,156.6302 699.06256,156.6141 C 698.94832,156.5616 698.83488,156.5083 698.72496,156.4517 C 696.78368,155.451 695.51936,153.8459 694.68752,152.3392 C 694.41616,151.8918 694.20624,151.4211 694.01248,150.9392 C 693.94928,150.7891 693.89232,150.6424 693.8376,150.5016 C 693.69136,150.1266 693.58208,149.824 693.48752,149.5392 C 693.47872,149.5142 693.47136,149.489 693.46256,149.4642 C 693.35776,149.1702 693.252,148.8776 693.1376,148.5891 C 692.5528,148.3942 691.9824,147.9704 691.42496,147.4766 C 691.38608,147.4413 691.3512,147.3998 691.31248,147.3642 C 691.20464,147.2666 691.09488,147.1656 690.98752,147.0642 C 690.876,146.9587 690.76128,146.8573 690.65008,146.7517 C 690.64144,146.7434 690.6336,146.7349 690.62496,146.7267 C 690.31152,146.4294 690.00336,146.1282 689.67504,145.8517 C 689.22112,145.4693 688.73824,145.1238 688.2,144.8517 C 687.87456,144.7214 687.36736,144.4528 686.76256,144.1016 C 686.67744,144.0534 686.59696,144.0008 686.51248,143.9517 C 686.32,143.8373 686.10864,143.7187 685.9,143.5891 C 685.84944,143.5581 685.80048,143.5205 685.75008,143.4891 C 685.5576,143.3685 685.352,143.2453 685.15008,143.1141 C 685.09968,143.0814 685.05024,143.0472 685,143.0141 C 684.97392,142.9971 684.9512,142.9813 684.92496,142.9642 C 684.52944,142.7042 684.1128,142.4155 683.7,142.1267 C 683.22592,141.7949 682.75664,141.4565 682.28752,141.1016 C 681.99504,140.8805 681.70624,140.6517 681.42496,140.4267 C 680.86144,139.9776 680.32496,139.5299 679.85008,139.0891 C 679.37632,138.6472 678.96496,138.2165 678.6376,137.8141 C 678.47376,137.6107 678.3288,137.412 678.21248,137.2267 C 678.152,137.1302 678.1088,137.043 678.06256,136.9517 C 678.0176,136.8638 677.9808,136.7842 677.95008,136.7016 C 677.88832,136.5358 677.85008,136.3813 677.85008,136.2392 C 677.85008,135.8696 677.88368,135.5299 677.92496,135.2016 C 677.92704,135.1858 677.92288,135.1675 677.92496,135.1517 C 677.9256,135.1475 677.92448,135.1434 677.92496,135.1392 C 677.94752,134.9715 677.96912,134.811 678,134.6517 C 678.0008,134.6477 677.9992,134.643 678,134.6392 C 678.03184,134.4758 678.07392,134.3205 678.11248,134.1642 C 678.1912,133.8462 678.28896,133.5418 678.38752,133.2392 C 678.47968,132.9482 678.57968,132.6541 678.67504,132.3642 C 678.68048,132.3482 678.68208,132.3301 678.68752,132.3141 C 678.8888,131.7021 679.08528,131.0922 679.2376,130.4642 C 679.28224,130.2653 679.32768,130.0648 679.36256,129.8517 C 679.38752,129.6941 679.4072,129.5349 679.42496,129.3766 C 679.43056,129.329 679.43264,129.2752 679.4376,129.2267 C 679.45808,129.0184 679.47696,128.8107 679.48752,128.6016 C 679.49552,128.4418 679.49664,128.2744 679.5,128.1141 C 679.5,128.0757 679.50016,128.0061 679.5,127.9642 C 679.50416,127.637 679.496,127.3168 679.48752,126.9891 C 679.47904,126.5347 679.46048,126.0091 679.4376,125.4517 C 679.41616,124.9339 679.38896,124.3814 679.35008,123.8267 C 679.3336,123.5554 679.30848,123.2854 679.28752,123.0141 C 679.2736,122.8347 679.25456,122.6557 679.2376,122.4766 C 679.22784,122.3842 679.22288,122.2933 679.21248,122.2016 C 679.20272,122.1101 679.18592,122.0181 679.17504,121.9267 C 679.14384,121.6722 679.11232,121.4181 679.07504,121.1766 C 679.0696,121.1435 679.068,121.1098 679.06256,121.0766 C 679.03552,120.9064 679.00544,120.7501 678.97504,120.5891 C 678.95552,120.4928 678.93408,120.3976 678.91248,120.3016 C 678.87472,120.1219 678.83024,119.9645 678.78752,119.8016 C 678.71712,119.5402 678.64048,119.2834 678.55008,119.0267 C 678.47856,118.8534 678.39488,118.7016 678.31248,118.5766 C 678.27072,118.5147 678.232,118.4627 678.18752,118.4141 C 678.14336,118.3651 678.09696,118.3237 678.05008,118.2891 C 677.956,118.2202 677.85664,118.1818 677.75008,118.1766 C 677.64336,118.1715 677.53232,118.1976 677.41248,118.2642 C 677.124,118.4227 676.81104,118.5829 676.48752,118.7392 C 676.47488,118.7451 676.46256,118.7582 676.45008,118.7642 C 676.37104,118.8019 676.29296,118.8403 676.21248,118.8766 C 675.99696,118.9728 675.78416,119.0539 675.58752,119.1267 C 675.46928,119.1694 675.3568,119.216 675.2376,119.2517 C 675.22528,119.2555 675.21216,119.2603 675.2,119.2642 C 675.10208,119.2928 674.99824,119.3163 674.9,119.3392 C 673.6888,119.6526 672.8936,119.448 672.37504,118.8891 C 672.27072,118.7768 672.1832,118.6536 672.1,118.5141 C 672.02064,118.381 671.9496,118.232 671.88752,118.0766 C 671.82256,117.9142 671.7608,117.7482 671.71248,117.5642 C 671.66192,117.3846 671.62128,117.1997 671.58752,117.0016 C 671.45216,116.2093 671.42496,115.2835 671.42496,114.3016 C 671.42496,113.7946 671.43248,113.2715 671.4376,112.7517 C 671.43472,110.532 671.4648,108.3165 671.15008,106.1267 C 671.11424,105.8782 671.0704,105.6242 671.02496,105.3766 C 671.02352,105.3685 671.02656,105.3597 671.02496,105.3517 C 671.01344,105.289 670.99968,105.2267 670.98752,105.1642 C 670.94752,104.972 670.9096,104.7778 670.86256,104.5891 C 670.64304,103.7115 670.56576,103.056 670.58752,102.5517 C 670.59168,102.451 670.60064,102.3656 670.61248,102.2766 C 670.63584,102.0989 670.67456,101.9389 670.72496,101.8016 C 670.76624,101.6896 670.81856,101.604 670.87504,101.5141 C 670.88704,101.4941 670.89968,101.4707 670.91248,101.4517 C 670.9144,101.4488 670.91056,101.4419 670.91248,101.4392 C 670.94608,101.3894 670.98688,101.3454 671.02496,101.3016 C 671.02704,101.2994 671.02288,101.2914 671.02496,101.2891 C 671.06544,101.2434 671.1048,101.2045 671.15008,101.1642 C 671.60144,100.7613 672.24784,100.6189 672.77504,100.2141 C 672.82768,100.1738 672.87488,100.1227 672.92496,100.0766 C 672.9752,100.0306 673.028,99.9918 673.07504,99.9392 C 673.38576,99.4611 673.5752,98.9195 673.67504,98.3517 C 673.69552,98.159 673.71248,97.9571 673.71248,97.7267 C 673.71248,97.04 673.68432,96.4616 673.62496,95.9766 C 673.62016,95.9517 673.61744,95.9266 673.61248,95.9016 C 673.48864,95.2878 673.29504,94.6912 673.06256,94.1642 C 672.96208,94.0208 672.85536,93.9139 672.7376,93.8267 C 672.61968,93.7394 672.49472,93.6693 672.36256,93.6267 C 672.30016,93.6066 672.22752,93.5886 672.16256,93.5766 C 672.15856,93.576 672.15408,93.5773 672.15008,93.5766 C 671.6664,93.4912 671.11888,93.6181 670.56256,93.7016 C 670.24352,93.7504 669.92048,93.7853 669.61248,93.7642 C 669.45856,93.7536 669.30848,93.7234 669.16256,93.6766 C 669.01552,93.632 668.87424,93.5667 668.7376,93.4766 C 668.46384,93.2965 668.21456,93.0184 668,92.5891 C 667.75552,92.1002 667.5448,91.5 667.31248,90.8642 C 667.2792,90.7768 667.24576,90.689 667.21248,90.6016 C 667.1944,90.5523 667.16832,90.5011 667.15008,90.4515 C 666.94992,89.9291 666.75472,89.4125 666.52496,88.9016 C 666.51872,88.8882 666.50624,88.8776 666.5,88.8642 C 666.42096,88.6894 666.336,88.511 666.25008,88.339 C 666.15232,88.1542 666.04768,87.967 665.9376,87.7891 C 665.71312,87.4346 665.45632,87.1003 665.17504,86.7891 C 665.0344,86.6334 664.88896,86.4861 664.7376,86.339 C 664.64912,86.2614 664.55712,86.1864 664.46256,86.1141 C 664.38656,86.0581 664.30336,86.0027 664.22496,85.9515 C 664.20496,85.9379 664.18288,85.9275 664.16256,85.9141 C 663.584,85.5482 662.95344,85.315 662.28752,85.1515 C 662.26976,85.148 662.2552,85.1426 662.2376,85.139 C 661.72624,85.0378 661.26688,84.9606 660.8376,84.9016 C 660.80384,84.8976 660.77104,84.893 660.7376,84.8891 C 660.30176,84.8389 659.86496,84.7986 659.4376,84.7642 C 657.82576,84.6784 656.62256,84.8838 654.78752,85.0266 C 654.3912,85.0563 653.99664,85.0834 653.6,85.1016 C 653.48608,85.1074 653.39392,85.1091 653.27504,85.1141 C 652.98688,85.1253 652.7008,85.133 652.41248,85.139 C 652.10144,85.1458 651.77104,85.1515 651.42496,85.1515 C 651.40784,85.1515 651.2424,85.1518 651.21248,85.1515 C 650.57424,85.1518 649.9384,85.1302 649.3,85.1141 C 648.8056,85.1019 648.22464,85.0846 647.6376,85.0642 C 647.55392,85.0608 647.47104,85.055 647.38752,85.0515 C 646.70144,85.0262 645.98304,85.0037 645.26256,84.9642 C 643.89008,84.876 642.53488,84.9293 641.37504,84.6266 C 640.25952,84.4715 639.48928,84.2709 639.42496,84.0141 C 639.32592,83.6179 639.19872,83.2626 639.05008,82.939 C 639.04208,82.9259 639.0328,82.915 639.02496,82.9016 C 638.93872,82.7542 638.8632,82.5973 638.78752,82.4266 C 638.71968,82.3154 638.6368,82.2155 638.56256,82.1141 C 638.50944,82.0418 638.45616,81.9691 638.4,81.9016 C 638.29936,81.7846 638.1984,81.6667 638.08752,81.5642 C 637.42656,80.9526 636.58896,80.5867 635.7,80.3642 C 635.52224,80.3195 635.34384,80.2854 635.16256,80.2515 C 634.65824,80.1749 634.1304,80.1426 633.58752,80.139 C 632.46432,80.1534 631.35184,80.2597 630.2376,80.3766 C 630.19952,80.3813 630.16288,80.3845 630.12496,80.3891 C 629.6024,80.4538 629.07936,80.5261 628.57504,80.5891 C 627.57424,80.7142 626.70224,80.7522 625.92496,80.7266 C 624.97568,80.6954 624.17168,80.5686 623.46256,80.3766 C 623.44608,80.3722 623.42896,80.3686 623.41248,80.3642 C 623.29792,80.3323 623.18496,80.2989 623.07504,80.2642 C 623.04624,80.2547 623.016,80.2488 622.98752,80.239 C 622.81408,80.1822 622.65072,80.1152 622.48752,80.0515 C 622.42144,80.0253 622.35296,80.0042 622.28752,79.9766 C 622.11792,79.9066 621.96096,79.8274 621.8,79.7515 C 621.7064,79.7075 621.61792,79.66 621.52496,79.6141 C 621.31408,79.5088 621.10224,79.4123 620.9,79.3016 C 620.86736,79.2843 620.83264,79.269 620.8,79.2515 C 620.70672,79.2 620.61744,79.1413 620.52496,79.0891 C 619.71408,78.6482 618.9064,78.1925 618.06256,77.8266 C 617.8064,77.7251 617.54448,77.6347 617.26256,77.5515 C 617.12352,77.5106 616.98416,77.4747 616.8376,77.439 C 616.52272,77.3622 616.19376,77.2994 615.8376,77.2515 C 615.69392,77.2331 615.544,77.215 615.4,77.2016 C 615.3592,77.1978 615.31632,77.1925 615.27504,77.1891 C 615.136,77.1776 615.00192,77.1714 614.86256,77.1642 C 614.81808,77.1621 614.77008,77.1656 614.72496,77.1642 C 614.16768,77.1408 613.60784,77.1459 613.05008,77.1766 C 612.65008,77.1966 612.27872,77.2256 611.9376,77.2642 C 611.60288,77.3018 611.29728,77.3485 611.01248,77.4016 C 610.98048,77.4075 610.95632,77.4205 610.92496,77.4266 C 610.74592,77.4645 610.56384,77.5034 610.38752,77.5515 C 609.90896,77.6826 609.44448,77.8485 608.98752,78.0515 C 608.63904,78.223 608.34112,78.4096 608.07504,78.6016 C 607.7536,78.8885 607.42496,79.1499 607.08752,79.3891 C 606.46112,79.8918 605.77824,80.3485 604.57504,80.5891 C 604.46672,80.6056 604.3664,80.6282 604.26256,80.6515 C 604.22992,80.6594 604.1944,80.6686 604.16256,80.6766 C 604.03232,80.7094 603.904,80.7526 603.78752,80.7891 C 603.72464,80.811 603.66144,80.827 603.6,80.8515 C 603.14256,81.0349 602.7192,81.2966 602.32496,81.6266 C 602.11904,81.8523 601.98736,82.1074 601.88752,82.3766 C 601.77984,82.8298 601.68912,83.2776 601.6,83.7266 C 601.4968,84.5266 601.39216,85.4074 600.86256,86.3266 C 600.65008,86.6954 600.37488,87.0642 600,87.439 C 598.95264,88.4866 597.62832,89.1978 596.01248,89.6515 C 595.60848,89.765 595.17776,89.8698 594.7376,89.9515 C 594.51632,89.9934 594.29248,90.0301 594.06256,90.0642 C 593.83712,90.0968 593.59664,90.1259 593.36256,90.1515 C 592.96912,90.1947 592.56832,90.227 592.15008,90.2515 C 592.06144,90.2568 591.97728,90.2597 591.88752,90.2642 C 591.85456,90.2658 591.82064,90.2626 591.78752,90.2642 C 591.30224,90.2859 590.8056,90.3016 590.28752,90.3016 C 589.79296,90.3016 588.84704,90.2368 587.7376,90.1642 C 587.6048,90.1555 587.4504,90.1478 587.31248,90.139 C 586.88112,90.1117 586.40416,90.0763 585.9376,90.0515 C 585.85216,90.0472 585.76112,90.0434 585.67504,90.039 C 585.16256,90.0138 584.63376,89.9901 584.11248,89.9766 C 584.0704,89.9755 584.0296,89.9776 583.98752,89.9766 C 583.20496,89.9582 582.44048,89.9582 581.72496,89.9891 C 581.62432,89.9934 581.5232,89.996 581.42496,90.0016 C 581.35152,90.0058 581.272,90.0091 581.2,90.0141 C 580.94784,90.0317 580.70544,90.0616 580.47504,90.0891 C 580.4152,90.0962 580.35824,90.1062 580.3,90.1141 C 580.08,90.1438 579.86816,90.1733 579.67504,90.2141 C 579.45328,90.2606 579.24256,90.3139 579.06256,90.3766 C 579.02144,90.391 578.976,90.4112 578.9376,90.4266 C 578.88944,90.4458 578.84416,90.4685 578.8,90.4891 C 578.74736,90.5136 578.6968,90.5374 578.65008,90.5642 C 578.62016,90.5811 578.58976,90.5962 578.56256,90.6141 C 578.55792,90.6171 578.55456,90.6235 578.55008,90.6266 C 578.50544,90.6566 578.4624,90.6941 578.42496,90.7266 C 578.4184,90.7325 578.40656,90.7333 578.4,90.739 C 578.35664,90.7787 578.32016,90.8206 578.28752,90.8642 C 577.14736,92.3842 573.90352,100.2061 573.1376,100.5891 C 572.672,100.8219 572.17568,100.9803 571.66256,101.0766 C 571.32048,101.141 570.97328,101.1771 570.61248,101.1891 C 565.74128,101.3514 559.24832,97.0563 553.47504,96.5141 C 545.9848,95.8109 545.60224,98.9658 548.67504,106.7392 C 549.41536,108.612 542.28752,113.0381 542.28752,114.3016 C 542.28752,115.2486 542.74224,120.8619 542.2376,123.1016 C 542.19872,123.2739 542.15072,123.4229 542.1,123.5517 C 541.99856,123.8091 541.86928,123.9749 541.71248,124.0141 C 538.79152,124.7445 531.10192,125.3424 528.9376,125.6517 C 528.776,125.6747 528.61456,125.6882 528.46256,125.7016 C 528.31056,125.7152 528.16816,125.7344 528.02496,125.7392 C 524.16144,125.8654 523.40832,122.8941 518.85008,123.7016 C 518.68112,123.7315 518.50464,123.761 518.32496,123.8016 C 517.96576,123.8829 517.5816,123.9858 517.17504,124.1141 C 517.07024,124.1472 516.95584,124.1638 516.8376,124.1766 C 516.82496,124.1781 516.81264,124.1755 516.8,124.1766 C 516.69168,124.1864 516.58064,124.1946 516.46256,124.1891 C 516.4464,124.1885 516.4288,124.1901 516.41248,124.1891 C 516.29952,124.1821 516.18304,124.171 516.06256,124.1517 C 515.98224,124.1387 515.89568,124.1195 515.81248,124.1016 C 515.75056,124.0883 515.68832,124.0802 515.62496,124.0642 C 515.58368,124.0538 515.54192,124.0382 515.5,124.0267 C 515.49168,124.0243 515.48352,124.0165 515.47504,124.0141 C 515.27392,123.9579 515.06192,123.8926 514.85008,123.8141 C 514.84112,123.8109 514.83392,123.805 514.82496,123.8016 C 514.59584,123.7162 514.36192,123.6206 514.12496,123.5141 C 513.98384,123.451 513.84256,123.3832 513.7,123.3141 C 513.69184,123.3101 513.6832,123.3058 513.67504,123.3016 C 513.35072,123.1438 513.0224,122.9686 512.7,122.7891 C 512.6968,122.7874 512.69072,122.7909 512.68752,122.7891 C 512.35568,122.6043 512.04176,122.4085 511.72496,122.2141 C 511.58352,122.127 511.44912,122.0512 511.31248,121.9642 C 511.14016,121.8549 510.97488,121.7462 510.81248,121.6392 C 510.76416,121.6072 510.7224,121.5834 510.67504,121.5517 C 510.42688,121.3864 510.22784,121.24 510.01248,121.0891 C 509.17184,120.5 508.58256,120.0446 508.57504,120.0141 C 507.57104,115.9986 508.66768,115.3466 511.42496,112.5891 C 513.35632,110.6579 518.33312,107.2936 520.27504,105.3517 C 522.45328,103.1733 521.844,100.3499 524.57504,98.3016 C 527.14704,96.3726 530.296,95.7766 533.71248,93.7267 C 534.56816,93.2133 535.72464,93.0458 536.92496,92.9642 C 537.16512,92.9478 537.40816,92.9382 537.65008,92.9267 C 538.98016,92.8627 540.29776,92.8366 541.28752,92.5016 C 541.37744,92.4712 541.46592,92.4374 541.55008,92.4016 C 542.2232,92.1149 542.70592,91.6469 542.86256,90.8642 C 543.7624,86.364 546.61248,85.9013 545.71248,82.3016 C 545.10976,79.8907 544.92784,74.4846 541.1376,73.7266 C 536.82864,72.8648 533.88928,70.8642 528.57504,70.8642 C 524.50592,70.8642 523.44112,68.6059 521.1376,65.7266 C 520.9576,65.5018 520.7288,65.2416 520.46256,64.9515 C 518.59872,62.9216 514.95568,59.6062 514.28752,59.439 C 509.56848,58.2594 509.80608,54.0312 506.28752,53.1515 C 503.88464,52.5509 501.288,52.4067 498.66256,52.4141 z M 615.7376,193.3141 C 615.8256,193.3072 615.90816,193.3106 615.98752,193.3141 C 616.10656,193.3197 616.21136,193.3363 616.31248,193.3642 C 616.36752,193.3782 616.41232,193.3938 616.46256,193.4141 C 616.50784,193.4331 616.5584,193.4526 616.6,193.4766 C 616.77024,193.5749 616.90752,193.713 617.02496,193.8891 C 617.08368,193.9773 617.13968,194.0706 617.18752,194.1766 C 617.72384,195.3386 617.67024,197.5454 618.28752,200.0141 C 618.34624,200.249 618.4488,200.4557 618.6,200.6392 C 618.67552,200.7309 618.76336,200.8104 618.86256,200.8891 C 618.9616,200.9678 619.072,201.0458 619.18752,201.1141 C 619.41536,201.2493 619.68176,201.3669 619.97504,201.4642 C 619.97888,201.4654 619.98368,201.4629 619.98752,201.4642 C 620.01888,201.4741 620.05552,201.4797 620.08752,201.4891 C 620.3568,201.5691 620.65136,201.6501 620.96256,201.7016 C 621.13872,201.7309 621.31248,201.7557 621.5,201.7766 C 621.50416,201.7771 621.50832,201.7762 621.51248,201.7766 C 621.69616,201.797 621.88208,201.8138 622.07504,201.8267 C 622.0792,201.8269 622.0832,201.8264 622.08752,201.8267 C 624.05712,201.9571 626.47088,201.7136 628.5376,201.4141 C 629.36576,201.2941 630.14528,201.1725 630.81248,201.0517 C 632.14704,200.8099 633.0536,200.6003 633.1376,200.5891 C 633.35856,200.5597 633.54176,200.5206 633.75008,200.4891 C 634.9568,200.2608 636.16448,200.0451 637.37504,199.8392 C 637.77792,199.7642 638.17056,199.692 638.56256,199.6392 C 638.9544,199.5864 639.34816,199.5475 639.75008,199.5267 C 640.1536,199.5067 640.56192,199.5027 641,199.5267 C 641.65728,199.5624 642.37488,199.6603 643.17504,199.8267 C 643.44128,199.8816 643.71232,199.9422 644,200.0141 C 644.06992,200.0317 644.14448,200.0507 644.21248,200.0766 C 644.28016,200.1024 644.33456,200.1306 644.4,200.1642 C 644.80032,200.3669 645.16752,200.7086 645.48752,201.1392 C 645.59328,201.2814 645.69168,201.4294 645.78752,201.5891 C 646.17184,202.2254 646.47568,202.9818 646.68752,203.7267 C 646.68864,203.7304 646.6864,203.7354 646.68752,203.7392 C 646.89728,204.48 647.0144,205.2077 647.02496,205.8016 C 647.02512,205.8056 647.02496,205.8102 647.02496,205.8141 C 647.03184,206.256 646.98048,206.6282 646.86256,206.8642 C 646.12016,208.3488 645.45424,210.0205 644.66256,211.6267 C 644.46944,212.0259 644.2672,212.4162 644.05008,212.8016 C 644.0024,212.8877 643.9488,212.9664 643.9,213.0517 C 643.83728,213.1592 643.77728,213.2706 643.71248,213.3766 C 643.71072,213.3798 643.7144,213.3861 643.71248,213.3891 C 643.59904,213.5747 643.48256,213.7581 643.36256,213.9392 C 643.34608,213.9645 643.32912,213.989 643.31248,214.0141 C 642.96304,214.5458 642.58,215.0544 642.16256,215.5267 C 642.0152,215.6933 641.86992,215.8568 641.71248,216.0141 C 641.5592,216.1702 641.40848,216.3262 641.25008,216.4766 C 641.19008,216.5342 641.12128,216.5962 641.06256,216.6517 C 640.58736,217.1006 640.17648,217.4472 639.78752,217.7891 C 639.72816,217.8422 639.67152,217.8982 639.61248,217.9517 C 639.54992,218.0067 639.47264,218.0736 639.41248,218.1267 C 639.21488,218.3077 639.016,218.489 638.82496,218.6766 C 638.51408,218.9819 638.2184,219.3032 637.9376,219.6392 C 637.24272,220.6149 637.13728,221.7133 637.71248,224.0141 C 637.7592,224.2008 637.8152,224.361 637.88752,224.5016 C 637.95984,224.6424 638.04448,224.7613 638.1376,224.8642 C 638.184,224.9155 638.23648,224.9579 638.28752,225.0016 C 638.3176,225.0275 638.34352,225.0533 638.37504,225.0766 C 638.3968,225.093 638.41504,225.1115 638.4376,225.1267 C 638.5488,225.2024 638.6648,225.2614 638.78752,225.3141 C 639.02656,225.4168 639.28544,225.4875 639.5376,225.5517 C 639.7896,225.6157 640.03712,225.6742 640.26256,225.7642 C 640.488,225.8541 640.69104,225.9712 640.85008,226.1517 C 640.88976,226.1968 640.92864,226.2478 640.96256,226.3016 C 641.06464,226.4614 641.13552,226.6627 641.17504,226.9141 C 641.19552,227.045 641.19984,227.1906 641.2,227.3517 C 641.20016,227.4821 641.1896,227.6242 641.17504,227.7766 C 641.16208,227.9114 641.15024,228.0483 641.12496,228.2016 C 641.12352,228.2104 641.12656,228.2179 641.12496,228.2267 C 641.11728,228.2754 641.1088,228.328 641.1,228.3766 C 641.07072,228.533 641.0296,228.7006 640.98752,228.8766 C 640.95488,229.0128 640.91568,229.1656 640.87504,229.3141 C 640.7808,229.6472 640.67936,229.9763 640.57504,230.3016 C 640.46832,230.6219 640.36192,230.9656 640.25008,231.3392 C 639.46352,233.9582 638.55536,237.7802 637.71248,241.1517 C 637.45744,242.172 637.09472,243.0952 636.65008,243.9517 C 636.53888,244.1658 636.42064,244.3712 636.3,244.5766 C 636.17792,244.7854 636.05568,244.9886 635.92496,245.1891 C 635.79616,245.3866 635.66096,245.5739 635.52496,245.7642 C 635.38736,245.9573 635.25664,246.1403 635.11248,246.3267 C 634.82848,246.6939 634.52752,247.057 634.22496,247.4016 C 633.92256,247.7462 633.61216,248.0747 633.3,248.4016 C 633.144,248.5651 632.99456,248.7291 632.8376,248.8891 C 632.3656,249.3699 631.8872,249.8394 631.42496,250.3016 C 629.22096,252.5058 630.11776,255.1832 629.36256,254.6016 C 629.29376,254.5488 629.21216,254.4738 629.11248,254.3642 C 628.71408,253.9256 628.0416,253.0112 626.86256,251.4392 C 624.41936,248.1816 620.2896,245.6933 619.42496,249.1517 C 619.25616,249.8272 610.39536,247.3312 608,249.7267 C 607.0288,250.6979 605.71792,251.2523 604.57504,252.0141 C 604.4192,252.1181 604.26624,252.2024 604.11248,252.2766 C 604.004,252.3291 603.89488,252.3755 603.78752,252.4141 C 603.72512,252.4366 603.66192,252.4587 603.6,252.4766 C 603.49376,252.5075 603.39248,252.5333 603.28752,252.5517 C 603.27584,252.5538 603.26176,252.5498 603.25008,252.5517 C 603.22064,252.5563 603.19184,252.5603 603.16256,252.5642 C 603.0328,252.581 602.9024,252.5899 602.77504,252.5891 C 602.73696,252.589 602.70048,252.5909 602.66256,252.5891 C 602.5688,252.585 602.47984,252.577 602.38752,252.5642 C 602.3792,252.563 602.37072,252.5654 602.36256,252.5642 C 602.35856,252.5635 602.35408,252.5648 602.35008,252.5642 C 602.31664,252.559 602.2832,252.5453 602.25008,252.5392 C 602.18768,252.5277 602.12416,252.5168 602.06256,252.5016 C 602.00032,252.4864 601.93648,252.4704 601.87504,252.4517 C 601.83792,252.4403 601.79936,252.4267 601.76256,252.4141 C 601.66384,252.3803 601.57168,252.3438 601.47504,252.3016 C 601.3544,252.2494 601.2424,252.1904 601.12496,252.1267 C 601.09248,252.109 601.05712,252.095 601.02496,252.0766 C 600.97776,252.0496 600.93424,252.0179 600.88752,251.9891 C 600.74096,251.899 600.6032,251.8061 600.46256,251.7016 C 600.4336,251.6803 600.40368,251.661 600.37504,251.6392 C 600.25344,251.5459 600.12928,251.4405 600.01248,251.3392 C 599.89632,251.2387 599.78624,251.1331 599.67504,251.0267 C 599.45136,250.8125 599.2392,250.5899 599.0376,250.3642 C 599.01344,250.3371 598.98624,250.3162 598.96256,250.2891 C 598.78288,250.0853 598.6224,249.888 598.46256,249.6891 C 598.2088,249.3736 597.99856,249.0894 597.8,248.8267 C 597.7232,248.7258 597.64304,248.6274 597.57504,248.5392 C 597.50128,248.4427 597.43792,248.3675 597.37504,248.2891 C 597.35952,248.2699 597.35232,248.2571 597.3376,248.2392 C 597.2648,248.1502 597.19392,248.0707 597.1376,248.0141 C 594.70944,245.5861 597.71248,241.1605 597.71248,237.7267 C 597.71248,236.6478 597.76464,235.5806 597.85008,234.5642 C 597.93536,233.5477 598.05856,232.5851 598.21248,231.6891 C 598.52032,229.8971 598.944,228.4011 599.42496,227.4392 C 599.59296,227.1032 601.22976,229.3566 603.48752,229.2141 C 603.59504,229.2074 603.70224,229.1949 603.81248,229.1766 C 604.91504,228.9947 606.148,228.2171 607.42496,226.3016 C 607.54192,226.1261 607.65056,225.9477 607.75008,225.7642 C 609.24128,223.0122 608.87232,219.4194 610.28752,216.5891 C 610.33008,216.5042 610.36736,216.412 610.4,216.3267 C 610.4296,216.249 610.45312,216.1797 610.47504,216.1016 C 610.49344,216.0362 610.512,215.9674 610.52496,215.9016 C 610.52832,215.885 610.53456,215.8685 610.5376,215.8517 C 610.55232,215.7694 610.55552,215.6842 610.56256,215.6016 C 610.56944,215.519 610.57536,215.447 610.57504,215.3642 C 610.57472,215.2813 610.56976,215.1973 610.56256,215.1141 C 610.55056,214.977 610.52944,214.8395 610.5,214.7016 C 610.48576,214.6344 610.468,214.569 610.45008,214.5016 C 610.42608,214.412 610.39264,214.3165 610.36256,214.2267 C 610.35296,214.1982 610.34768,214.1675 610.3376,214.1392 C 610.32416,214.1019 610.31424,214.0638 610.3,214.0267 C 610.26944,213.9469 610.23488,213.869 610.2,213.7891 C 610.17312,213.7274 610.14176,213.6634 610.11248,213.6016 C 610.03248,213.4331 609.94528,213.2704 609.85008,213.1016 C 609.8456,213.0938 609.84192,213.0846 609.8376,213.0766 C 609.82304,213.051 609.8024,213.0272 609.78752,213.0016 C 609.67232,212.8022 609.55536,212.601 609.42496,212.4016 C 609.4168,212.3893 609.40816,212.3766 609.4,212.3642 C 609.13168,211.9563 608.84528,211.5448 608.55008,211.1392 C 608.50112,211.0722 608.4488,211.0061 608.4,210.9392 C 608.3072,210.8118 608.21664,210.6909 608.12496,210.5642 C 607.92656,210.2894 607.7448,210.0237 607.56256,209.7517 C 607.432,209.5571 607.3032,209.357 607.18752,209.1642 C 607.0712,208.9702 606.9584,208.7808 606.86256,208.5891 C 606.5264,207.917 606.24976,207.2539 606.02496,206.5766 C 605.91264,206.2381 605.81296,205.9006 605.72496,205.5517 C 605.28528,203.807 605.1376,201.8915 605.1376,199.4392 C 605.1376,199.3402 605.14,199.2454 605.15008,199.1517 C 605.16,199.0579 605.18048,198.9654 605.2,198.8766 C 605.78656,196.2154 610.55712,195.7762 613.1376,194.3016 C 613.31728,194.2038 613.47248,194.1219 613.6376,194.0392 C 613.69296,194.011 613.74608,193.9906 613.8,193.9642 C 613.87088,193.9296 613.94432,193.8958 614.01248,193.8642 C 614.04192,193.8504 614.07088,193.8274 614.1,193.8141 C 614.32976,193.7099 614.55104,193.6229 614.75008,193.5517 C 614.76912,193.5442 614.79472,193.5328 614.81248,193.5267 C 614.96192,193.4754 615.104,193.435 615.2376,193.4016 C 615.26416,193.3949 615.2864,193.3827 615.31248,193.3766 C 615.33984,193.3704 615.36096,193.3696 615.38752,193.3642 C 615.512,193.3382 615.62752,193.3227 615.7376,193.3141 z M 437.82496,242.3891 C 438.46784,242.3541 439.87568,242.9152 442.32496,244.1517 L 447.26256,246.6392 L 445.6,248.9642 C 444.07344,251.1082 444.05232,251.3773 445.28752,252.4016 C 447.24304,254.0234 448.82496,258.2958 448.82496,261.9642 C 448.82496,264.6906 449.1152,265.2443 450.8376,265.6766 C 451.99232,265.9666 454.27648,268.0904 456.15008,270.6267 C 458.79728,274.2102 459.42496,275.7496 459.42496,278.6141 C 459.42496,280.5666 458.91536,282.868 458.28752,283.7267 C 457.22512,285.1795 456.96128,284.9062 454.47504,279.8642 C 452.92608,276.7232 451.02416,274.091 449.95008,273.6016 C 448.93072,273.1373 446.69408,271.5155 444.98752,269.9891 C 443.28096,268.4627 440.23152,266.2019 438.21248,264.9642 C 436.19344,263.7264 433.94928,261.9627 433.22496,261.0517 C 432.10368,259.641 430.69888,259.3374 423.72496,259.0016 L 415.5376,258.6141 L 416.35008,256.2517 C 416.80176,254.9557 416.9488,253.0053 416.67504,251.9141 C 416.21632,250.0872 416.74352,249.66 423.31248,246.5392 C 429.2024,243.7408 431.05312,243.2155 433.92496,243.5392 C 436.53984,243.8339 437.4,243.6552 437.4,242.8016 C 437.4,242.5453 437.5328,242.4051 437.82496,242.3891 z M 471.21248,302.2141 L 474.68752,304.7141 C 477.41008,306.6694 478.05856,307.5851 477.71248,308.9642 C 477.37936,310.2915 477.78608,310.9584 479.36256,311.6766 C 481.15808,312.4949 481.45008,313.141 481.45008,316.3267 C 481.45008,319.5237 481.90592,320.5286 484.75008,323.6141 C 487.43696,326.5291 487.9448,327.5786 487.51248,329.3016 C 487.2128,330.4952 486.40576,331.4328 485.65008,331.4392 C 484.9136,331.4453 483.5016,331.6614 482.51248,331.9267 C 481.02896,332.3245 480.6184,331.9978 480.21248,330.0766 C 478.83648,323.5654 473.60256,316.1552 466.4376,310.5891 L 463.25008,308.1141 L 467.22496,305.1642 L 471.21248,302.2141 z";
provincePaths.connacht = "M 348.22501,256.6141 C 347.54298,256.6046 347.0875,257.0867 347.0875,258.2891 C 347.0875,261.5803 347.56293,265.0336 344.2625,265.9766 C 338.18762,267.7123 343.54938,271.377 340.62501,272.8392 C 339.51173,273.3958 334.02136,274.0893 333.35,275.2642 C 330.6604,279.971 329.62766,278.5442 324.0625,281.3267 C 322.10982,282.303 320.06285,284.6398 321.6375,287.7891 C 322.34389,289.2019 324.04851,292.5974 325.7375,294.0016 C 325.8501,294.0952 325.96285,294.177 326.07501,294.2517 C 326.99813,294.867 327.75821,295.2062 328.42501,295.3392 C 328.53613,295.3613 328.644,295.3784 328.75,295.3891 C 328.962,295.4106 329.16765,295.4099 329.3625,295.3891 C 329.45994,295.3787 329.556,295.3717 329.65,295.3517 C 330.21397,295.231 330.72566,294.9373 331.2375,294.5392 C 331.40811,294.4064 331.57611,294.2562 331.75,294.1016 C 332.96723,293.0206 334.32006,291.467 336.5875,290.2141 C 338.47861,289.1691 338.90598,297.4531 340.62501,298.7016 C 341.02269,298.9904 341.41272,299.3163 341.7875,299.6642 C 341.9749,299.8381 342.1599,300.0174 342.3375,300.2016 C 344.64616,302.5965 346.01158,305.7363 343.45,306.3766 C 343.26264,306.4235 343.06698,306.4554 342.87501,306.4766 C 339.99533,306.797 336.63334,304.4434 333.75,305.1642 C 331.0133,305.8483 328.86952,307.1632 332.1375,309.6141 C 333.22157,310.4272 339.4125,314.5698 339.4125,315.6766 C 339.4125,318.099 334.26278,323.957 331.7375,320.9267 C 331.67152,320.8475 331.5583,320.7312 331.4125,320.5891 C 330.39189,319.5946 327.65362,317.2427 326.4875,316.0766 C 325.91059,315.4997 321.6375,313.7227 321.6375,312.8392 C 321.6375,311.4046 322.18842,306.0141 320.0125,306.3766 C 319.72894,306.4238 319.45018,306.4686 319.1875,306.5016 C 318.92482,306.5347 318.68173,306.5563 318.4375,306.5766 C 315.01835,306.8619 313.28522,305.9766 309.9125,305.9766 C 307.16542,305.9766 304.03518,309.2374 301.8375,307.5891 C 299.02797,305.4821 299.7977,302.1429 294.1625,303.5517 C 293.84835,303.6302 293.55611,303.6906 293.2875,303.7267 C 293.1532,303.7446 293.02406,303.7558 292.9,303.7642 C 292.65187,303.781 292.42422,303.7822 292.2125,303.7642 C 292.00077,303.7461 291.80643,303.7122 291.62501,303.6642 C 291.35286,303.592 291.10859,303.477 290.8875,303.3517 C 290.59272,303.1845 290.33416,302.9784 290.0875,302.7517 C 288.97752,301.731 288.11187,300.3142 285.2625,300.3141 C 283.10406,300.3141 280.39011,302.8283 278.77501,303.5642 C 278.64042,303.6254 278.51837,303.6802 278.4,303.7141 C 278.34082,303.7312 278.27978,303.7424 278.22501,303.7517 C 278.17022,303.761 278.11262,303.7632 278.0625,303.7642 C 277.86202,303.7677 277.70397,303.7069 277.5875,303.5517 C 277.42619,303.3366 275.94347,297.9064 274.3625,298.3016 C 273.3732,298.549 268.06058,301.593 267.4875,302.7392 C 265.95669,305.8008 267.0875,309.4168 267.0875,312.8392 C 267.0875,316.1608 266.20051,318.5872 264.37501,319.9392 C 264.22286,320.0518 264.06526,320.1541 263.9,320.2517 C 263.73474,320.3493 263.56597,320.4443 263.3875,320.5267 C 263.20902,320.609 263.02925,320.6848 262.8375,320.7517 C 262.64576,320.8186 262.44259,320.8754 262.2375,320.9267 C 262.22171,320.9306 262.19347,320.9485 262.15,320.9891 C 262.14389,320.9947 262.14418,320.9954 262.1375,321.0016 C 262.09541,321.0418 262.03811,321.097 261.97501,321.1642 C 261.89979,321.244 261.78906,321.3763 261.6875,321.4891 C 261.60549,321.5803 261.54651,321.6432 261.45,321.7517 C 261.41997,321.7853 261.4063,321.804 261.37501,321.8392 C 261.1765,322.0624 260.95278,322.3099 260.7125,322.5766 C 260.66234,322.6323 260.62651,322.6824 260.57501,322.7392 C 260.37584,322.959 260.16339,323.1741 259.95,323.4016 C 259.84806,323.5102 259.75355,323.6189 259.65,323.7267 C 259.42317,323.963 259.18894,324.1946 258.9625,324.4141 C 258.87664,324.4973 258.78467,324.5853 258.7,324.6642 C 258.64157,324.7186 258.58262,324.7746 258.52501,324.8267 C 258.43051,324.9118 258.32909,324.9989 258.2375,325.0766 C 258.09101,325.2008 257.94858,325.3141 257.8125,325.4141 C 257.67238,325.5173 257.5377,325.6053 257.4125,325.6766 C 257.32357,325.7274 257.24221,325.7571 257.1625,325.7891 C 257.02163,325.8458 256.89339,325.888 256.7875,325.8766 C 256.77917,325.8758 256.77059,325.8779 256.7625,325.8766 C 256.73006,325.8714 256.70339,325.8533 256.67501,325.8392 C 256.67182,325.8378 256.66563,325.8406 256.6625,325.8392 C 256.6312,325.8221 256.60086,325.8026 256.57501,325.7766 C 256.30562,325.5072 256.14458,324.8718 255.77501,324.9642 C 251.78448,325.9618 254.69509,323.0184 254.5,321.1642 C 254.4925,321.0928 254.47978,321.0195 254.4625,320.9517 C 254.37611,320.6126 254.16621,320.3222 253.75,320.1141 C 251.50814,318.9933 250.51251,319.8491 250.5125,316.4766 C 250.5125,313.2757 250.35064,308.7549 249.7125,305.5642 C 248.68986,300.4509 246.65678,303.547 244.57501,304.4016 C 244.32518,304.5042 244.07462,304.5818 243.82501,304.6016 C 243.49216,304.6282 243.16314,304.5595 242.8375,304.3642 C 242.70786,304.2864 242.5796,304.2051 242.45,304.1141 C 240.50598,302.7506 238.6064,299.9648 237.9875,297.4891 C 237.16558,294.2014 237.30347,295.0155 235.4125,295.2267 C 235.25491,295.2443 235.08757,295.2578 234.9,295.2642 C 234.33731,295.2835 233.63251,295.2432 232.7375,295.0642 C 231.39062,294.7947 230.05485,294.4774 228.7,294.2517 C 228.51158,294.2203 228.30496,294.1805 228.07501,294.1267 C 224.74069,293.347 217.33613,290.4248 214.4375,291.6766 C 214.33755,291.7198 214.23888,291.7733 214.15,291.8267 C 209.2192,294.7851 208.14886,291.8267 203.65,291.8267 C 200.81574,291.8267 197.73288,291.7251 195.1625,292.2392 C 194.48906,292.3738 193.80376,292.4726 193.1375,292.6392 C 188.80456,293.7224 191.21237,294.2517 187.07501,294.2517 C 186.14856,294.2517 184.29862,294.4214 182.27501,294.5016 C 181.93773,294.515 181.59357,294.5192 181.25,294.5267 C 178.15787,294.5942 174.95442,294.3798 174.15,293.0392 C 173.98606,292.7659 173.83766,292.4853 173.6875,292.2016 C 173.63797,292.1082 173.58594,292.0203 173.5375,291.9267 C 173.47203,291.8 173.41386,291.6776 173.35,291.5517 C 173.22346,291.3024 173.09805,291.0538 172.97501,290.8141 C 172.92669,290.72 172.87317,290.6309 172.82501,290.5392 C 172.77891,290.4515 172.73365,290.3741 172.6875,290.2891 C 172.52699,289.993 172.36662,289.7141 172.2,289.4642 C 172.17429,289.4258 172.15096,289.3886 172.12501,289.3517 C 172.07645,289.2821 172.0371,289.2162 171.9875,289.1517 C 171.964,289.1211 171.93627,289.0934 171.9125,289.0642 C 171.86133,289.0011 171.80258,288.9334 171.75,288.8766 C 171.67299,288.7934 171.60555,288.7203 171.52501,288.6517 C 171.44445,288.583 171.35979,288.5291 171.27501,288.4766 C 171.19021,288.4242 171.10216,288.3738 171.0125,288.3392 C 170.92283,288.3045 170.83272,288.2794 170.7375,288.2642 C 170.73354,288.2635 170.72898,288.2648 170.72501,288.2642 C 170.6335,288.2504 170.5347,288.2461 170.4375,288.2517 C 170.36989,288.2555 170.29554,288.2629 170.22501,288.2766 C 169.73312,288.3768 169.16323,288.7259 168.4875,289.4016 C 167.71966,290.1694 165.92587,289.9731 165.6625,291.0267 C 165.32514,292.3762 164.8351,294.5982 165.85,295.6766 C 165.91766,295.7485 165.99349,295.8155 166.07501,295.8766 C 168.71424,297.8562 168.89352,300.1042 170.1125,303.1517 C 170.278,303.5654 172.64571,307.8878 171.52501,309.2267 C 171.48349,309.2762 171.43888,309.3106 171.3875,309.3517 C 171.18197,309.5158 170.89923,309.6141 170.5125,309.6141 C 166.91139,309.6141 164.9619,306.7766 162.4375,306.7766 C 159.38805,306.7766 158.75712,307.3357 157.9875,310.4141 C 157.89726,310.775 157.49576,312.895 156.9125,314.9267 C 156.83958,315.1806 156.76581,315.4291 156.6875,315.6766 C 156.53088,316.1717 156.36264,316.6507 156.1875,317.0766 C 156.09994,317.2896 156.00394,317.4918 155.9125,317.6766 C 155.72962,318.0462 155.54526,318.3504 155.35,318.5642 C 155.30118,318.6176 155.24942,318.6726 155.2,318.7141 C 155.05171,318.8384 154.90267,318.9016 154.75,318.9016 C 154.29282,318.9016 153.1101,318.8914 151.8875,318.7141 C 151.68373,318.6846 151.47747,318.6538 151.27501,318.6141 C 149.45267,318.2571 147.80931,317.4581 148.7,315.6766 C 148.83315,315.4104 148.92717,315.1488 149,314.8891 C 149.03642,314.7594 149.07634,314.6301 149.1,314.5016 C 149.36034,313.0885 148.88626,311.7566 148.7375,310.3766 C 148.72398,310.2512 148.72005,310.1154 148.7125,309.9891 C 148.70496,309.8629 148.7,309.7414 148.7,309.6141 C 148.7,308.5714 149.2491,302.2795 147.8875,301.9392 C 142.7145,300.6459 141.82501,301.0898 141.82501,295.8766 C 141.82501,291.9925 137.94944,290.7664 136.97501,294.6642 C 136.53461,296.4258 132.81376,299.3635 130.9125,300.3141 C 127.69621,301.9222 131.22754,307.3032 130.5125,307.5891 C 128.79387,308.2766 123.75147,307.8171 124.85,310.0141 C 125.8379,311.9899 132.08832,313.0637 130.1125,314.0517 C 129.23243,314.4917 125.56664,314.56 124.45,315.6766 C 122.68536,317.4413 123.2375,320.6422 123.2375,323.7517 C 123.2375,325.0712 126.70981,331.8536 125.6625,332.6392 C 123.98269,333.899 113.98782,338.3395 117.9875,342.3392 C 118.63798,342.9896 122.10818,344.1094 124.5375,343.8891 C 124.73994,343.8709 124.9267,343.8395 125.1125,343.8016 C 125.4841,343.7258 125.82174,343.6058 126.1,343.4392 C 126.16957,343.3974 126.23766,343.3496 126.3,343.3016 C 126.36234,343.2538 126.42045,343.2062 126.47501,343.1517 C 128.55981,341.0669 130.1125,341.1846 130.1125,337.4891 C 130.1125,335.0648 130.1125,332.6386 130.1125,330.2141 C 130.1125,330.0886 130.12162,329.9613 130.1375,329.8267 C 130.15338,329.6922 130.18186,329.5558 130.2125,329.4141 C 130.64157,327.4299 132.45781,324.8285 134.15,324.1517 C 139.1276,322.1606 136.69488,322.0597 137.7875,317.6891 C 138.60965,314.4006 139.02878,314.5218 140.6125,317.6891 C 141.8636,320.1914 147.03739,323.2973 147.8,324.0392 C 147.85085,324.0886 147.8783,324.124 147.8875,324.1517 C 148.28574,325.3464 148.40374,326.2171 148.3375,326.8642 C 148.32646,326.972 148.30853,327.0682 148.2875,327.1642 C 148.22442,327.4523 148.12547,327.6894 147.9875,327.8891 C 147.9415,327.9557 147.89014,328.0179 147.8375,328.0766 C 147.73221,328.1941 147.61442,328.2974 147.4875,328.3891 C 147.42405,328.435 147.35512,328.4858 147.2875,328.5267 C 146.07042,329.2635 144.25,329.275 144.25,331.4267 C 144.25,334.4666 149.81008,335.6565 148.2875,338.7016 C 148.20126,338.8741 148.09706,339.0366 147.9875,339.2016 C 147.33014,340.1914 146.30699,341.0725 145.42501,342.0016 C 145.278,342.1565 145.13616,342.3051 145,342.4642 C 143.9107,343.7363 143.24037,345.1699 144.25,347.1891 C 145.1572,349.0035 146.76701,350.0717 148.4,350.0016 C 148.49072,349.9978 148.58429,349.9877 148.67501,349.9766 C 148.76571,349.9656 148.85952,349.9573 148.95,349.9392 C 149.04048,349.921 149.13499,349.8898 149.22501,349.8642 C 150.21509,349.583 151.16358,348.8582 151.92501,347.5891 C 152.04157,347.3949 152.16536,347.1318 152.2875,346.8141 C 152.40965,346.4965 152.52941,346.1186 152.6625,345.7141 C 153.46102,343.288 154.50568,339.6363 156.37501,338.7016 C 156.53616,338.6211 156.69533,338.539 156.8625,338.4642 C 159.36994,337.3406 162.4375,336.972 162.4375,340.7267 C 162.4375,344.4947 159.2,348.6752 159.2,350.8267 C 159.2,354.8627 152.81176,353.6683 152.0125,356.9642 C 151.95922,357.1838 151.92501,357.4267 151.92501,357.6891 C 151.92501,361.0776 154.40952,361.8157 156.3625,363.3392 C 156.51274,363.4563 156.65736,363.5861 156.8,363.7141 C 157.0853,363.9702 157.34896,364.2461 157.5875,364.5642 C 158.78973,366.1672 158.72131,368.0208 159.0625,369.7517 C 159.09093,369.8958 159.11485,370.0342 159.15,370.1766 C 159.25547,370.6037 159.39885,371.0243 159.6,371.4267 C 161.02717,374.281 161.79392,376.627 163.2375,379.5141 C 163.50686,380.053 163.78062,380.5878 164.05,381.1267 C 163.86326,381.5002 163.68954,381.8138 163.52501,382.0766 C 163.44274,382.208 163.36491,382.3331 163.2875,382.4392 C 163.0553,382.7571 162.84675,382.9606 162.65,383.0766 C 162.58442,383.1154 162.51256,383.145 162.45,383.1642 C 160.88586,383.6446 160.19517,378.2741 156.77501,378.7016 C 151.71318,379.3344 151.52501,381.1296 151.52501,385.9766 C 151.52501,388.8902 149.9125,392.1517 149.9125,394.4642 C 149.9125,399.2443 149.37768,399.7142 154.75,399.7142 C 155.06301,399.7141 155.4132,399.7181 155.7875,399.7142 C 156.5361,399.7064 157.38595,399.6856 158.25,399.6267 C 159.11405,399.5677 159.99341,399.4722 160.8,399.3142 C 161.00165,399.2747 161.19619,399.2242 161.3875,399.1766 C 162.34403,398.9389 163.15469,398.597 163.65,398.1016 C 166.09122,395.6605 172.06946,394.1197 172.5375,393.6517 C 175.93992,390.2493 175.87571,390.6085 179.4,393.2517 C 182.27416,395.4072 185.39586,397.788 187.8125,398.0766 C 187.97362,398.0958 188.13294,398.1016 188.2875,398.1016 C 192.16072,398.1016 190.49587,394.1152 193.95,393.2517 C 194.22126,393.1838 194.45872,393.1346 194.67501,393.1016 C 197.91925,392.6083 195.27645,395.8589 195.5625,397.2891 C 195.58917,397.4226 195.6273,397.5552 195.67501,397.6891 C 195.7227,397.823 195.78501,397.9549 195.85,398.0891 C 196.75995,399.9685 199.17688,401.865 197.9875,403.3517 C 196.35382,405.3938 191.52499,405.1866 191.52501,407.8016 C 191.52501,411.0936 191.43322,412.2194 194.7625,413.0517 C 198.99358,414.1094 199.63224,417.9016 194.7625,417.9016 C 190.05224,417.9016 184.62666,417.3485 180.2125,419.1142 C 179.15523,419.5371 177.22906,420.6266 175.3375,421.4642 C 175.06728,421.5838 174.80379,421.6947 174.5375,421.8016 C 174.2712,421.9086 174.00714,422.0002 173.75,422.0891 C 173.49286,422.1781 173.24272,422.261 173,422.3267 C 171.54366,422.7208 170.39019,422.6499 170.1125,421.5392 C 169.30856,418.3234 167.06878,418.672 164.8625,420.3267 C 163.50085,421.3478 160.88656,421.7397 159.2,422.7517 C 159.10558,422.8083 159.00824,422.8574 158.9125,422.9016 C 158.6253,423.0344 158.33264,423.1174 158.0375,423.1517 C 157.93912,423.163 157.84883,423.1622 157.75,423.1642 C 155.0817,423.2174 152.28523,419.9664 151.52501,420.7267 C 149.11432,423.1373 151.32501,424.7216 151.32501,428.0016 C 151.32501,428.9806 149.67811,435.9136 148.7,436.0766 C 143.63061,436.9216 147.84565,439.9342 148.7,443.3517 C 149.2889,445.7072 145.584,447.8338 147.8875,448.6016 C 148.69562,448.871 147.87358,450.8202 148.7,451.0267 C 151.44333,451.7125 152.14741,453.2741 154.35,455.4766 C 154.49192,455.6186 154.61978,455.759 154.7375,455.9016 C 154.83309,456.0165 154.93195,456.137 155.0125,456.2517 C 155.02901,456.2757 155.04664,456.3027 155.0625,456.3267 C 155.10354,456.3875 155.13819,456.4534 155.17501,456.5142 C 155.31085,456.7381 155.40894,456.9573 155.4875,457.1766 C 155.63195,457.58 155.68472,457.9674 155.6375,458.3392 C 155.6225,458.4571 155.59664,458.5757 155.5625,458.6891 C 155.56134,458.693 155.56368,458.6978 155.5625,458.7016 C 155.52912,458.8104 155.48843,458.9102 155.4375,459.0142 C 155.43347,459.0226 155.42915,459.0309 155.42501,459.0392 C 155.37432,459.1394 155.31707,459.244 155.25,459.3392 C 155.24328,459.3488 155.23189,459.3546 155.22501,459.3642 C 155.14789,459.4704 155.06018,459.5778 154.9625,459.6766 C 154.94616,459.6933 154.92942,459.7102 154.9125,459.7267 C 154.82902,459.8072 154.73493,459.8765 154.6375,459.9517 C 154.5269,460.037 154.416,460.1242 154.2875,460.2016 C 154.27928,460.2066 154.2708,460.2093 154.2625,460.2142 C 154.16739,460.2707 154.0672,460.3246 153.9625,460.3766 C 153.86715,460.4243 153.76584,460.4704 153.6625,460.5142 C 153.55898,460.5578 153.44898,460.5997 153.3375,460.6392 C 153.32858,460.6424 153.32147,460.6485 153.3125,460.6517 C 153.14432,460.7106 152.96099,460.7526 152.77501,460.8016 C 152.76578,460.8042 152.75926,460.8117 152.75,460.8142 C 152.58768,460.8563 152.4132,460.8923 152.2375,460.9267 C 152.20238,460.9334 152.17315,460.9451 152.1375,460.9517 C 152.12051,460.9547 152.10461,460.9611 152.0875,460.9642 C 151.89915,460.9978 151.70299,461.0149 151.5,461.0392 C 151.48262,461.0413 151.46749,461.0496 151.45,461.0517 C 151.27176,461.0722 151.10186,461.0885 150.9125,461.1016 C 150.84446,461.1064 150.78197,461.1104 150.7125,461.1142 C 150.45382,461.1283 150.19101,461.1392 149.9125,461.1392 C 146.41064,461.1392 142.90187,461.139 139.4,461.1392 C 132.72598,461.1392 135.96528,460.7253 136.97501,464.7642 C 137.49403,466.8403 138.01597,467.5694 138.0375,467.7267 C 138.03904,467.7379 138.04128,467.7459 138.0375,467.7517 C 137.97328,467.8491 137.11336,467.1891 134.55,467.1891 C 130.314,467.1891 129.92162,464.7258 126.87501,463.9642 C 122.90027,462.9704 122.86302,465.768 119.8375,466.3016 C 119.73317,466.32 119.63674,466.3389 119.52501,466.3517 C 119.30154,466.3771 119.05648,466.3891 118.8,466.3891 C 117.79674,466.3891 108.69587,463.5432 108.2875,465.1766 C 107.63445,467.7888 108.80917,467.9211 110.3125,470.4267 C 111.8272,472.9512 114.2159,475.5426 116.37501,477.7016 C 118.606,479.9326 124.35546,482.3315 124.05,484.1642 C 123.67163,486.4344 128.53355,489.5974 126.47501,490.6267 C 123.3345,492.197 120.05792,491.8392 116.37501,491.8392 C 115.52205,491.8392 107.83043,492.5459 108.0875,493.4642 C 109.60088,496.0208 111.30422,496.6726 112.32501,498.7142 C 113.15437,500.373 118.02642,506.9955 120,504.3642 C 122.65498,500.8242 124.59875,502.4539 128.0875,503.1517 C 131.79803,503.8938 133.41206,510.4267 137.37501,510.4267 C 137.91722,510.4267 138.40755,510.4218 138.85,510.4016 C 139.07123,510.3917 139.27635,510.3808 139.47501,510.3642 C 142.05754,510.1482 142.80267,509.3285 143.4375,506.7891 C 143.64547,505.9573 144.20517,499.8693 146.27501,501.9392 C 148.07974,503.744 149.30677,504.7766 152.32501,504.7766 C 154.89123,504.7766 157.5875,503.9722 157.5875,506.7891 C 157.5875,508.9949 158.48054,514.4642 155.5625,514.4642 C 154.68923,514.4642 144.64229,514.8613 144.65,514.8766 C 145.30144,516.1795 148.36262,522.6674 149.5,522.9517 C 150.01986,523.0816 150.53355,523.0826 151.0375,523.0016 C 151.20547,522.9747 151.37178,522.9318 151.5375,522.8891 C 151.86894,522.8038 152.1916,522.7014 152.5125,522.5766 C 152.83341,522.4518 153.15411,522.3099 153.4625,522.1766 C 154.69608,521.6437 155.82062,521.1666 156.77501,521.7392 C 160.23525,523.8154 163.31378,523.8504 166.87501,525.3766 C 168.57707,526.1061 170.35173,527.1677 171.8,526.7392 C 171.86896,526.7187 171.93256,526.704 172,526.6766 C 172.67448,526.4029 173.27451,525.7654 173.75,524.5766 C 175.29179,520.7221 173.41662,520.3069 177.3875,519.3142 C 180.20325,518.6102 181.02501,517.8653 181.02501,514.8766 C 181.02501,514.4371 181.07218,514.0018 181.1625,513.5891 C 181.43349,512.3515 182.09762,511.3078 183.02501,510.8267 C 183.10229,510.7866 183.18155,510.7461 183.2625,510.7142 C 184.47686,510.2349 186.09085,510.6957 187.8875,512.8517 C 189.47624,514.7581 192.59917,515.4651 190.3125,518.5142 C 188.12098,521.4362 187.3464,522.9733 186.67501,527.0016 C 186.27238,529.4173 186.32946,533.931 188.2875,535.8891 C 188.33184,535.9334 188.39267,535.969 188.4625,536.0016 C 188.53234,536.0344 188.60826,536.0661 188.7,536.0891 C 189.98443,536.4115 193.24339,535.8752 193.55,537.1016 C 194.6703,541.5829 196.44771,542.3944 198.6375,544.2891 C 198.7939,544.4245 198.95197,544.5659 199.1125,544.7142 C 199.27304,544.8624 199.43552,545.0122 199.6,545.1766 C 201.27104,546.8477 203.38562,548.7106 205.55,548.5142 C 205.6441,548.5056 205.73072,548.4931 205.82501,548.4766 C 206.57926,548.3446 207.33974,547.9494 208.0875,547.2016 C 212.0116,543.2776 216.72866,543.5642 222.2375,543.5642 C 222.68206,543.5642 223.13346,543.5626 223.5875,543.5517 C 226.76584,543.4757 230.13539,543.2136 233.1375,543.9642 C 236.56742,544.8216 238.63992,545.3922 240.5875,545.3142 C 241.0744,545.2947 241.55947,545.2338 242.05,545.1267 C 243.52155,544.8054 245.09018,544.0701 247.2875,542.7517 C 248.72586,541.8886 255.99179,538.1002 257.7875,537.5016 C 260.33224,536.6534 262.58854,536.1197 265.0625,534.2642 C 267.94576,532.1018 273.32926,530.8704 276.7875,533.4642 C 277.65131,534.112 279.31075,535.1464 280.4625,536.4517 C 280.59048,536.5966 280.7112,536.7502 280.82501,536.9016 C 281.50779,537.8102 281.89914,538.8302 281.62501,539.9267 C 281.14749,541.8366 271.56002,542.4541 271.9375,543.9642 C 271.96891,544.0898 271.99893,544.211 272.0375,544.3267 C 272.07608,544.4422 272.11709,544.5581 272.1625,544.6642 C 273.52498,547.8461 277.89698,546.8304 280.82501,548.0016 C 284.58624,549.5062 287.14483,549.5376 284.05,553.6642 C 282.59957,555.5981 283.25,556.5797 283.25,559.7267 C 283.25,561.552 282.98923,562.5829 282.5875,562.8142 C 282.56072,562.8296 282.54054,562.8434 282.5125,562.8517 C 282.06378,562.985 281.45512,562.207 280.82501,560.5267 C 279.54907,557.1242 272.04997,555.289 272.3375,557.3016 C 272.46438,558.1899 274.36251,563.7475 274.3625,565.7891 C 274.3625,566.0165 274.35125,566.2286 274.3375,566.4392 C 274.32602,566.615 274.32099,566.7885 274.3,566.9517 C 274.29342,567.0024 274.2825,567.0522 274.27501,567.1016 C 274.25821,567.2133 274.23392,567.3218 274.2125,567.4267 C 274.19318,567.521 274.17304,567.613 274.15,567.7016 C 274.11837,567.8234 274.08862,567.941 274.05,568.0517 C 274.04584,568.0637 274.04173,568.0773 274.0375,568.0891 C 274.02642,568.1198 274.01165,568.1469 274,568.1766 C 273.96629,568.2638 273.92586,568.3474 273.8875,568.4267 C 273.85382,568.4958 273.82472,568.5637 273.7875,568.6267 C 273.74494,568.699 273.69717,568.7627 273.65,568.8267 C 273.57664,568.9261 273.49691,569.0112 273.4125,569.0891 C 273.40824,569.0931 273.40429,569.0978 273.4,569.1016 C 273.37194,569.127 273.34176,569.1538 273.3125,569.1766 C 273.29592,569.1896 273.27946,569.2021 273.2625,569.2142 C 273.2135,569.2494 273.16469,569.2856 273.1125,569.3142 C 273.0612,569.3421 273.00435,569.3678 272.95,569.3891 C 272.93757,569.3939 272.92509,569.3971 272.9125,569.4016 C 272.83478,569.4296 272.75874,569.4499 272.67501,569.4642 C 272.64581,569.4691 272.61742,569.4734 272.5875,569.4766 C 272.56706,569.4789 272.54578,569.4877 272.52501,569.4891 C 272.43218,569.4952 272.32454,569.4869 272.22501,569.4766 C 272.21699,569.4758 272.20806,569.4776 272.2,569.4766 C 272.14347,569.4701 272.08365,569.451 272.02501,569.4392 C 271.90723,569.4152 271.78877,569.3853 271.6625,569.3392 C 271.61256,569.321 271.56376,569.2984 271.5125,569.2766 C 271.38854,569.2235 271.25661,569.1635 271.12501,569.0891 C 271.226,569.4931 271.324,569.8976 271.42501,570.3016 C 272.76757,575.6718 272.23912,578.4426 277.7125,581.7267 C 281.08669,583.7512 283.78854,584.6568 284.57501,588.5891 C 285.3467,592.4477 289.1375,595.3563 289.1375,598.8642 C 289.1375,600.068 287.60459,607.6309 289.1375,608.0142 C 295.49554,609.6035 297.55125,604.0142 301.7125,604.0142 C 305.60021,604.0141 310.21298,600.0141 310.8625,600.0142 C 315.36014,600.0141 318.51926,600.4677 320.57501,597.7267 C 322.41886,595.2682 326.3072,591.879 330.2875,594.8642 C 332.77603,596.7306 339.72357,597.4501 341.1375,598.8642 C 342.14515,599.8718 346.84648,606.5971 350.8625,604.5891 C 352.86306,603.9086 358.66944,605.3194 362.0375,605.4142 C 361.85954,605.0256 361.71226,604.6534 361.57501,604.2891 C 361.56254,604.4414 361.54333,604.6454 361.55,604.6642 C 361.49802,604.3978 361.45827,604.1402 361.42501,603.8891 C 360.40088,600.9154 360.80227,598.8554 362.6375,598.3891 C 363.55808,597.197 364.84882,596.4323 366.1125,595.8642 C 366.66334,595.3062 367.44587,594.9142 368.1125,594.9142 C 368.32336,594.9141 368.51741,594.8894 368.7,594.8517 C 369.00792,594.7347 369.28614,594.6163 369.52501,594.5016 C 370.51269,593.7843 370.58115,592.2581 369.3875,590.9392 C 368.34453,589.7866 367.95419,588.8592 368.2625,587.6142 C 368.18651,587.0616 368.33293,586.5669 368.85,586.1642 C 369.15341,585.5875 369.55264,584.9395 370.0625,584.1891 C 372.04333,581.2741 372.10642,581.2531 375.9125,581.9642 C 376.21848,582.0213 376.49166,582.0712 376.7625,582.1142 C 376.91259,582.0891 377.06203,582.0661 377.2125,582.0517 C 378.75128,581.9035 380.02573,581.7267 381.0875,581.5392 C 381.70282,581.0168 382.48006,580.6518 382.9625,580.6517 C 383.03272,580.6517 383.09392,580.6608 383.15,580.6766 C 383.27774,580.7126 383.60555,580.7883 383.8625,580.8517 C 388.38957,579.2202 383.42501,576.8176 383.42501,574.8642 C 383.42501,572.2802 384.70741,568.5528 386.8625,568.0142 C 388.00331,567.729 394.28214,562.8019 395.42501,564.3016 C 398.15606,565.2259 404.05952,555.6726 405.1376,554.8642 C 408.19552,552.5706 408.57504,551.1826 408.57504,546.8642 C 408.57504,542.1482 405.82112,542.7538 401.71248,541.7267 C 400.30496,541.3749 398.92963,535.5994 398.4875,532.9891 C 398.49352,532.944 398.49453,532.9082 398.5,532.8642 C 399.47067,530.2749 406.12032,526.3851 406.28752,526.3016 C 410.468,524.2112 412.56624,522.0152 417.22496,520.0142 C 417.24208,520.0141 417.25792,520.0142 417.27504,520.0142 C 417.05744,519.8189 416.82224,519.6298 416.57504,519.4392 C 420.1568,517.6483 414.28752,506.8686 414.28752,502.8642 C 414.28752,499.2171 413.2328,494.1979 413.1376,490.8642 C 412.63328,491.0254 412.77088,490.9254 413.25008,490.6392 C 412.82064,490.3818 412.43344,489.9747 412,489.7267 C 411.97712,489.6118 411.95024,489.5002 411.92496,489.3891 C 411.08064,488.6869 410.38192,487.7899 410.18752,487.0642 C 409.99168,486.3331 409.85408,485.4787 409.77504,484.5766 C 408.58208,482.6413 407.77152,481.2192 409.57504,478.3016 C 410.16576,477.3461 410.6416,476.577 411.0376,475.9517 C 411.48192,473.8472 410.50592,471.8718 408.86256,472.3016 C 407.68912,472.6085 407.0352,472.1968 406.5,470.7891 C 406.23952,470.1042 405.62048,469.2902 404.9,468.6267 C 404.36048,468.2704 403.89504,467.9466 403.52496,467.6392 C 401.59088,466.5899 401.1624,466.0059 402.0376,465.0392 C 402.0384,465.0352 402.03648,465.0307 402.0376,465.0267 C 402.22816,464.2381 403.06784,463.6717 403.5376,463.0642 C 403.5384,463.0603 403.53664,463.0555 403.5376,463.0517 C 403.63584,462.6365 403.68112,462.1104 403.68752,461.4392 C 403.36656,459.8142 403.1624,457.3614 403.26256,454.9392 C 403.07616,451.9824 403.31632,450.8843 404.46256,449.0267 C 404.4736,449.0048 404.4888,448.9858 404.5,448.9642 C 404.64656,448.684 404.8104,448.4275 404.98752,448.2016 C 405.0176,448.1558 405.044,448.1235 405.07504,448.0766 C 406.56224,445.8293 407.948,444.7528 408.92496,444.6766 C 409.50688,444.6314 409.93648,444.9517 410.16256,445.5891 C 410.47968,445.2538 410.71024,444.7752 410.86256,444.0142 C 411.6776,439.9386 412,437.0494 412,432.5891 C 412,430.5458 414.8624,430.1152 414.86256,426.8642 C 414.8624,424.8126 420.07744,426.5792 420.57504,424.5891 C 421.63696,420.3414 417.52848,418.1667 415.42496,416.5891 C 412.26608,414.2198 416.47936,413.1848 418.86256,412.5891 C 418.87168,412.1187 418.86704,411.6378 418.86256,411.1517 C 418.4888,411.1571 429.45216,412.3528 433.1376,407.4392 C 435.82048,403.8619 441.71248,407.5312 441.71248,401.1517 C 441.71248,400.2568 445.92144,394.471 446.86256,392.5891 C 448.92816,388.4579 452.95952,387.2523 457.71248,386.3016 C 458.29152,386.1859 460.49376,385.3126 461.1376,385.1517 C 461.47056,385.0611 461.77312,384.9949 462.06256,384.9392 C 459.52256,382.3974 461.1376,374.5918 461.1376,371.4392 C 461.1376,368.4315 456.84496,365.2755 454.86256,362.3016 C 453.02448,359.545 450.34976,356.6514 448,354.3016 C 444.79072,351.0923 445.24048,349.037 441.1376,346.3016 C 436.55744,343.2482 434.12544,345.5646 429.71248,341.1517 C 427.10128,338.5403 424.87888,339.472 422.86256,335.4392 C 421.11488,331.9438 419.28272,330.5474 416,329.7267 C 411.83616,328.6858 409.82624,333.3917 407.42496,328.5891 C 406.22912,326.1974 407.42496,319.6614 407.42496,317.1517 C 407.42496,310.7066 406.96304,310.2314 412.57504,306.8642 C 414.972,305.4259 415.44448,304.5237 416,302.3016 C 416.33712,301.9958 416.68,301.7019 417.02496,301.4141 C 416.96848,301.4179 416.916,301.4283 416.86256,301.4392 C 416.6328,301.3483 407.11088,293.7006 406.28752,293.1517 C 402.81344,290.8357 401.77872,287.5053 399.42501,285.1517 C 395.99888,281.7256 394.58026,280.1605 389.7125,277.7267 C 387.87101,276.8059 384.57499,269.2888 384.57501,267.4392 C 384.31736,266.6866 380.8527,262.6342 383.42501,264.3016 C 381.71072,262.4054 375.53109,259.6656 373.7125,258.3016 C 372.2159,257.1792 372.24085,257.1979 371.5625,256.6891 C 371.54349,256.7693 371.5201,256.8483 371.5,256.9267 C 371.47365,257.0285 371.44296,257.1302 371.4125,257.2267 C 371.39552,257.2806 371.38133,257.3374 371.3625,257.3891 C 371.35166,257.4187 371.33654,257.448 371.32501,257.4766 C 371.30829,257.5182 371.29342,257.5622 371.27501,257.6016 C 371.25883,257.6358 371.24262,257.6691 371.22501,257.7016 C 371.20746,257.7346 371.18168,257.7707 371.1625,257.8016 C 371.1411,257.835 371.12357,257.8709 371.1,257.9016 C 371.08325,257.924 371.06797,257.9432 371.05,257.9642 C 371.01653,258.0027 370.9755,258.0435 370.9375,258.0766 C 370.92637,258.0862 370.91157,258.0925 370.9,258.1016 C 370.85259,258.1394 370.80491,258.1728 370.75,258.2016 C 370.68086,258.2382 370.60779,258.2685 370.52501,258.2891 C 369.1804,258.6253 361.71859,261.5267 360.82501,261.5267 C 360.75195,261.5267 360.67013,261.532 360.5875,261.5517 C 360.56734,261.5565 360.5457,261.5707 360.52501,261.5766 C 360.49318,261.5858 360.458,261.5901 360.42501,261.6016 C 360.30349,261.6443 360.17344,261.7046 360.0375,261.7766 C 359.93872,261.8286 359.84184,261.8874 359.7375,261.9517 C 359.72277,261.9608 359.70235,261.9674 359.6875,261.9766 C 359.64757,262.0018 359.6157,262.025 359.57501,262.0517 C 359.49192,262.1058 359.41096,262.1667 359.32501,262.2267 C 359.23437,262.2899 359.14323,262.3458 359.05,262.4141 C 358.42365,262.873 357.75426,263.4378 357.1125,263.9141 C 357.05619,263.9558 356.99317,263.9989 356.9375,264.0392 C 356.85022,264.1022 356.76032,264.1678 356.67501,264.2267 C 356.59317,264.2827 356.50459,264.3381 356.42501,264.3891 C 356.27102,264.4883 356.11834,264.576 355.97501,264.6517 C 355.96274,264.6581 355.94968,264.6704 355.9375,264.6766 C 355.91389,264.6888 355.88578,264.7027 355.8625,264.7141 C 355.73877,264.7742 355.62507,264.8283 355.5125,264.8642 C 355.45538,264.8824 355.39136,264.8904 355.3375,264.9016 C 355.29906,264.9094 355.26165,264.9104 355.22501,264.9141 C 355.2125,264.9155 355.19978,264.9258 355.1875,264.9267 C 355.16653,264.9282 355.14531,264.9266 355.12501,264.9267 C 355.09366,264.9267 355.06723,264.9299 355.0375,264.9267 C 355.01221,264.924 354.98661,264.9194 354.9625,264.9141 C 354.9076,264.9024 354.86085,264.8776 354.8125,264.8517 C 354.80453,264.8474 354.79528,264.8438 354.7875,264.8392 C 354.74944,264.8162 354.70843,264.7971 354.67501,264.7642 C 354.6424,264.732 354.61546,264.6813 354.5875,264.6392 C 354.56064,264.5986 354.53483,264.5518 354.5125,264.5016 C 354.48754,264.4454 354.46901,264.383 354.45,264.3141 C 354.43275,264.2515 354.4121,264.1878 354.4,264.1141 C 354.39744,264.0982 354.40232,264.0806 354.4,264.0642 C 354.39019,263.9962 354.38046,263.929 354.37501,263.8517 C 354.36875,263.7603 354.3625,263.6563 354.3625,263.5517 C 354.3625,263.4763 354.35739,263.393 354.35,263.3141 C 354.34726,263.2858 354.34115,263.2554 354.3375,263.2267 C 354.33091,263.1742 354.3221,263.1179 354.3125,263.0642 C 354.3024,263.0082 354.28824,262.9464 354.27501,262.8891 C 354.20856,262.6024 354.11189,262.2995 353.97501,261.9891 C 353.94803,261.928 353.91688,261.8634 353.8875,261.8016 C 353.82755,261.676 353.75677,261.5541 353.6875,261.4267 C 353.58362,261.2355 353.47237,261.044 353.35,260.8517 C 353.31024,260.7891 353.26651,260.7266 353.22501,260.6642 C 353.21867,260.6547 353.20637,260.6486 353.2,260.6392 C 353.05125,260.4173 352.89261,260.1942 352.72501,259.9766 C 352.70672,259.953 352.69347,259.9253 352.67501,259.9016 C 352.62608,259.839 352.57522,259.7762 352.52501,259.7141 C 352.37466,259.5285 352.22234,259.3418 352.0625,259.1642 C 351.84936,258.9275 351.62379,258.7051 351.4,258.4891 C 351.20883,258.3046 351.01915,258.1286 350.82501,257.9642 C 350.75454,257.9043 350.68296,257.8459 350.6125,257.7891 C 350.59106,257.772 350.57144,257.7562 350.55,257.7392 C 350.37968,257.6042 350.21782,257.4787 350.05,257.3642 C 349.88122,257.2491 349.71322,257.1429 349.55,257.0517 C 349.49362,257.02 349.44299,256.9926 349.3875,256.9642 C 349.35264,256.9462 349.32197,256.9309 349.2875,256.9141 C 349.11125,256.8286 348.93842,256.7642 348.77501,256.7141 C 348.67731,256.6843 348.57941,256.6552 348.4875,256.6392 C 348.46541,256.6354 348.44674,256.6296 348.42501,256.6267 C 348.35725,256.6173 348.28894,256.615 348.22501,256.6141 z M 351.1,305.7392 C 351.8899,305.7358 352.84386,305.7571 353.95,305.8016 C 363.52302,306.1877 366.42499,306.829 366.42501,308.5517 C 366.42501,310.1022 364.66478,310.9443 357.8625,312.6392 C 355.61917,313.1981 353.19712,313.8288 352.47501,314.0392 C 351.23586,314.4002 350.88051,313.8166 347.9375,306.4517 C 347.74899,305.9798 348.7303,305.749 351.1,305.7392 z M 164.8375,315.9392 C 166.51682,315.9525 168.5183,316.404 169.67501,317.2141 C 170.87237,318.0528 171.36189,319.0208 171.0625,319.9642 C 170.80856,320.7642 170.99754,322.4458 171.47501,323.7016 C 172.13602,325.4402 172.08792,326.1438 171.2875,326.6517 C 170.7093,327.0186 169.98523,327.3198 169.67501,327.3267 C 168.60562,327.3504 161.572,317.553 162.07501,316.7392 C 162.41627,316.1869 163.53136,315.9288 164.8375,315.9392 z M 407.0376,328.9642 C 407.62688,328.9805 408.03728,329.9918 408.0376,331.7766 C 408.03744,333.3205 408.40128,334.8118 408.85008,335.0891 C 409.996,335.7973 409.85952,338.3344 408.45008,342.7392 C 407.7848,344.8184 407.04928,347.4299 406.81248,348.5517 C 406.57552,349.6733 405.49344,351.6774 404.4,353.0016 L 402.4,355.4016 L 401.47504,353.0016 C 400.96192,351.6774 400.20704,348.2054 399.8,345.2891 C 399.39294,342.3728 398.45598,338.6134 397.7125,336.9267 C 396.64075,334.4954 396.54563,333.4398 397.27501,331.8392 C 398.10928,330.0082 398.53507,329.8558 401.78752,330.3016 C 404.05664,330.6126 405.5808,330.4661 405.9376,329.8891 C 406.28064,329.3338 406.61584,329.0334 406.91248,328.9766 C 406.95328,328.9688 406.99808,328.963 407.0376,328.9642 z M 235.5125,343.0016 C 235.65245,342.9978 235.79338,343 235.92501,343.0016 C 237.76786,343.0256 239.04942,343.7558 241.82501,346.1517 C 245.04677,348.9326 245.70002,349.9714 245.7,352.3016 C 245.7,353.8432 245.2789,355.7573 244.77501,356.5642 C 243.37475,358.8062 245.90546,363.2392 248.5875,363.2392 C 250.0252,363.2392 250.86392,363.8509 251.42501,365.3267 C 252.49536,368.1419 252.59618,367.9462 249.2625,369.3392 C 247.63734,370.0182 246.08168,370.5176 245.8,370.4392 C 245.51832,370.3608 243.6315,370.1525 241.6125,369.9766 C 237.06309,369.5805 234.27995,367.1974 234.2625,363.7016 C 234.25565,362.3218 233.95011,360.7354 233.5875,360.1642 C 232.52106,358.4837 233.43795,354.3059 234.7625,354.8141 C 236.43342,355.4554 236.1703,354.4928 233.8125,351.4016 C 232.3204,349.4453 231.79014,347.8782 231.97501,345.9517 C 232.20994,343.5043 232.50446,343.2277 235.0875,343.0267 C 235.23358,343.0154 235.37256,343.0054 235.5125,343.0016 z M 114.4375,355.8517 C 114.0011,355.8669 113.56171,356.0525 113.1375,356.4766 C 112.21392,357.4002 112.32499,358.3366 112.32501,359.9141 C 112.32501,361.4531 113.16794,362.0734 113.5375,363.5517 C 113.92963,365.1202 112.61912,367.031 111.32501,368.0016 C 110.1547,368.8794 107.52542,369.0016 105.6625,369.0016 C 104.58442,369.0016 102.8375,368.2262 102.8375,369.4141 C 102.8375,371.6152 102.17741,371.2986 100.6125,372.4392 C 100.6125,373.6616 101.5259,375.027 102.42501,375.4766 C 104.80901,376.6686 104.82011,378.1925 107.07501,376.6891 C 107.36272,376.4973 110.81664,374.4402 110.9125,374.4642 C 113.13682,375.0202 114.28686,376.0766 116.77501,376.0766 C 116.83542,376.0766 116.89291,376.0746 116.95,376.0642 C 117.00709,376.0538 117.05875,376.0338 117.1125,376.0141 C 117.86499,375.7406 118.29542,374.6488 118.3875,374.6642 C 123.65957,375.5429 119.0663,375.2422 121.62501,377.2891 C 123.98142,379.1742 123.90376,377.9016 126.47501,377.9016 C 127.18416,377.9016 130.62494,377.7763 130.7125,378.3016 C 131.0316,380.2162 130.5125,381.8682 130.5125,383.9642 C 130.5125,385.4104 131.36504,387.9216 132.32501,388.4016 C 133.44003,388.9592 136.63754,386.7454 136.97501,387.5891 C 137.52302,388.9592 136.97501,390.5008 136.97501,392.0392 C 136.97501,393.9387 136.72091,395.6093 138.1875,396.4891 C 139.64818,397.3656 139.74328,398.1274 140.3625,397.9766 C 140.4141,397.9642 140.46499,397.9398 140.52501,397.9142 C 140.70504,397.8373 140.92982,397.7 141.22501,397.4891 C 141.6964,397.1525 142.22786,396.8987 142.6375,396.4891 C 142.70398,396.4227 142.7636,396.3552 142.8125,396.2766 C 143.25259,395.5696 143.0263,394.4058 142.95,393.4141 C 142.93304,393.1938 142.9181,392.9734 142.92501,392.7766 C 142.93882,392.3832 143.02053,392.0562 143.2375,391.8392 C 143.6296,391.447 143.88803,391.1523 144.0625,390.8891 C 144.10611,390.8234 144.14122,390.7517 144.17501,390.6891 C 144.54664,390.0019 144.37304,389.4635 144.65,387.8016 C 144.85606,386.5653 145.06251,385.0618 145.0625,383.5517 C 145.0625,381.6661 145.06251,379.7874 145.0625,377.9016 C 145.0625,377.7062 145.06157,377.5077 145.05,377.3141 C 144.96904,375.9597 144.66394,374.6467 145.0625,373.2517 C 145.72722,370.9251 144.28762,367.1014 145.0625,365.1642 C 145.87045,363.1443 144.80534,363.7264 143.3375,364.0141 C 143.07062,364.0664 142.79744,364.111 142.5125,364.1267 C 142.08509,364.1501 141.64357,364.1086 141.22501,363.9517 C 141.17802,363.9341 140.83925,363.8728 140.3625,363.7891 C 139.88574,363.7054 139.26573,363.599 138.65,363.4891 C 137.41854,363.2693 136.20518,363.037 136.1625,362.9517 C 135.832,362.2907 134.71621,356.1552 132.9375,357.4891 C 131.43584,358.6154 127.29296,361.3261 125.8625,361.9392 C 125.70038,362.0086 125.51283,362.1002 125.3125,362.2141 C 124.91184,362.4421 124.44267,362.7389 123.95,363.0141 C 122.7183,363.7026 121.33184,364.271 120.4125,363.3517 C 119.59624,362.5354 120.19256,360.9067 119,359.7141 C 118.21042,358.9246 116.32854,355.7856 114.4375,355.8517 z M 372.72501,359.1517 L 376.92501,360.9016 C 380.77302,362.5008 381.11251,362.8547 381.1125,365.3267 C 381.1125,366.808 380.75006,368.9634 380.3125,370.1141 C 379.87493,371.265 379.04693,372.1627 378.47501,372.1016 C 374.7181,371.7003 373.76918,371.1718 373.7625,369.5016 C 373.75867,368.5234 373.52056,365.7958 373.2375,363.4392 L 372.72501,359.1517 z M 252.4375,369.8517 C 252.50398,369.8426 252.54413,369.8434 252.5625,369.8642 C 253.23574,370.6275 255.4875,375.4778 255.4875,376.1642 C 255.4875,376.5864 254.00373,377.5174 252.2,378.2392 C 250.39627,378.9608 248.78341,379.5517 248.6125,379.5517 C 248.44152,379.5517 247.54706,378.2771 246.62501,376.7141 L 244.95,373.8642 L 248.62501,371.7141 C 250.39227,370.6784 251.97208,369.9154 252.4375,369.8517 z M 347.87501,372.2766 L 350.42501,373.6016 C 351.82574,374.3315 353.9641,375.1402 355.1875,375.4016 L 357.4125,375.8766 L 354.37501,380.5642 C 351.62939,384.7906 351.05362,385.2406 348.47501,385.2392 C 344.70685,385.237 343.07904,384.2533 344.6625,382.9392 C 345.29642,382.413 346.28362,379.7955 346.85,377.1267 L 347.87501,372.2766 z M 234.5625,422.4891 C 234.74261,422.4818 234.96374,422.5208 235.22501,422.5891 C 237.11936,423.0845 239.18483,425.8779 238.6625,427.2392 C 238.45154,427.7888 238.8441,428.7011 239.5375,429.2766 C 240.23098,429.8522 240.8,431.0773 240.8,431.9891 C 240.8,433.5902 240.85173,433.5891 242.4125,432.1766 C 243.73509,430.9797 244.26109,430.9101 245.27501,431.7517 C 247.0204,433.2003 246.91358,433.5746 243.0875,439.9891 C 241.20627,443.143 239.43813,445.8736 239.15,446.0517 C 238.86187,446.2298 237.98518,445.047 237.2125,443.4267 C 236.04792,440.9845 235.97939,440.0776 236.7875,438.1267 C 237.65374,436.0352 237.54339,435.5438 235.8125,433.7016 C 234.2549,432.0442 233.84981,430.6795 233.77501,426.9016 C 233.70653,423.4422 233.78202,422.5208 234.5625,422.4891 z M 229.0375,439.6517 C 229.14275,439.6474 229.25882,439.6494 229.37501,439.6517 C 229.80397,439.66 230.31157,439.717 230.9375,439.7766 C 234.63258,440.1291 234.65216,440.1384 233.3875,442.5016 C 232.74288,443.7061 232.74286,444.4195 233.3875,445.0642 C 234.83498,446.5115 234.40094,451.3099 232.6,453.8392 C 231.21933,455.7781 231.09147,456.5002 231.87501,457.9642 C 232.66229,459.4352 232.5809,459.8712 231.3875,460.5392 C 230.06157,461.2811 230.10787,461.4678 231.9125,462.8642 L 233.8625,464.3766 L 230.6,467.2016 C 228.70834,468.844 226.44144,470.0589 225.2,470.0766 C 224.02229,470.0936 221.96989,470.3226 220.6375,470.5891 C 218.39856,471.037 218.05733,470.7661 216.15,467.1142 C 214.28746,463.548 213.78117,463.1406 210.9375,462.9016 C 208.06374,462.6602 206.58296,461.7256 206.55,460.1142 C 206.54315,459.7776 207.98126,459.5016 209.7375,459.5016 C 212.41557,459.5016 213.72426,458.8058 217.8875,455.2142 C 220.61786,452.8586 222.84992,450.4627 222.85,449.8891 C 222.85,449.3154 223.92117,446.7346 225.22501,444.1517 C 227.03005,440.576 227.45861,439.7152 229.0375,439.6517 z M 229.57501,476.5016 C 237.09389,476.44 238.03614,477.1922 242.57501,483.9016 C 244.77821,487.1586 244.90763,487.7154 243.95,489.6142 C 243.36674,490.7709 242.76397,491.9901 242.6,492.3267 C 242.43603,492.6632 242.85765,492.9392 243.5375,492.9392 C 244.21736,492.9392 245.55406,494.043 246.5125,495.3891 C 247.92213,497.3688 248.84518,497.839 251.3375,497.8392 C 253.38261,497.839 254.90752,498.3813 255.8875,499.4642 C 257.06056,500.7602 258.40843,501.1016 262.4125,501.1016 C 265.18445,501.1016 267.66814,501.3197 267.9375,501.5891 C 268.20686,501.8584 267.35374,503.572 266.0375,505.3891 C 264.1003,508.0632 263.6375,509.5189 263.6375,513.0517 C 263.6375,516.4187 263.92792,517.4142 264.8875,517.4142 C 266.51526,517.4141 267.9495,521.2829 267.3,523.9142 C 267.01874,525.0534 265.82363,526.9928 264.65,528.2267 C 262.63646,530.3435 260.96178,530.753 257.7875,529.9142 C 257.00853,529.7083 255.35515,527.025 253.9625,523.6891 C 251.74184,518.3701 251.63498,517.6989 252.77501,516.4392 C 253.91405,515.1805 253.86573,514.8365 252.27501,512.8142 C 250.61574,510.7048 250.6065,510.5421 251.9875,509.8016 C 252.7911,509.3709 253.56722,508.9181 253.7125,508.8016 C 253.85771,508.6851 253.4095,507.5128 252.72501,506.1891 C 251.6987,504.2045 250.81565,503.6838 247.6625,503.2517 C 245.55931,502.9634 242.6077,502.7266 241.1,502.7267 C 238.87274,502.7267 238.35,502.4093 238.35,501.0392 C 238.35,499.7366 237.99477,499.473 236.7625,499.8642 C 235.88498,500.1427 233.64648,499.9174 231.8,499.3642 C 229.2293,498.5939 228.09374,497.6549 226.92501,495.3642 C 226.0855,493.7184 224.42894,491.7491 223.25,490.9766 C 220.5823,489.2286 214.2153,487.2509 211.2,487.2392 C 208.31523,487.228 207.69443,485.6157 209.35,482.4142 C 210.8904,479.4354 210.98427,479.42 213.6625,481.5267 C 216.25107,483.5629 218.70427,483.8222 217.1,481.8891 C 216.2145,480.8222 216.36707,480.297 218.02501,478.6392 C 219.82,476.8443 220.72266,476.6536 227.97501,476.5267 C 228.5377,476.5168 229.07374,476.5058 229.57501,476.5016 z";
provincePaths.leinster = "M 639.47504,346.3016 C 638.8456,347.9229 631.42496,348.0981 631.42496,350.3016 C 631.42496,350.4842 625.20208,353.5058 624.57504,356.0141 C 623.67856,359.6003 617.36512,359.2813 614.86256,358.8642 C 610.7376,358.1766 606.08864,357.9648 604.86256,361.7267 C 603.4472,362.668 608.42784,371.2253 603.42496,373.7267 C 600.76784,375.0552 598.8624,378.4262 598.86256,382.3016 C 598.8624,385.751 595.06848,387.6237 593.1376,388.5891 C 591.44016,389.4378 587.48672,390.845 584.86256,392.0141 C 584.91968,392.0262 584.98,392.0387 585.0376,392.0517 C 583.25616,392.9202 575.75712,396.1379 573.71248,398.8642 C 571.94928,401.215 562.92624,397.8453 561.71248,397.1517 C 557.69872,394.8581 555.90368,389.5491 554.28752,396.0141 C 553.08144,400.8384 557.33936,400.3874 554.28752,403.4392 C 551.82224,405.9043 552.19488,410.4965 553.1376,411.4392 C 555.60544,413.907 553.96128,415.7654 552.57504,417.1517 C 551.53648,418.1902 542.12528,417.4797 541.1376,417.7267 C 537.2528,418.6979 536.5808,417.8629 533.71248,420.0142 C 533.26864,420.347 529.20304,415.4922 528.57504,414.8642 C 525.65584,411.9451 519.34048,416.0986 517.71248,417.7267 C 514.76432,420.6749 505.7696,417.0765 503.19072,418.3661 C 499.90048,420.0112 497.38576,416.6677 496,419.4392 C 495.6968,420.0454 495.70816,420.4446 495.92496,420.7142 C 495.09536,421.2118 494.38592,421.8416 493.85008,422.6517 C 493.64944,422.9549 493.44992,423.2597 493.25008,423.5642 C 490.71056,424.2549 488.8184,417.563 488.57504,416.5891 C 487.9792,414.2061 484.74672,410.0824 483.42496,407.4392 C 481.41984,403.4286 477.90016,399.6269 475.42496,397.1517 C 472.23712,393.9637 471.04416,392.1958 468,389.1517 C 465.19792,386.3494 468.0192,385.1517 462.28752,385.1517 C 462.2072,385.0874 462.13568,385.0125 462.06256,384.9392 C 461.77312,384.9949 461.47056,385.0611 461.1376,385.1517 C 460.49376,385.3126 458.29136,386.1859 457.71248,386.3016 C 452.95952,387.2523 448.92816,388.4579 446.86256,392.5891 C 445.92144,394.471 441.71248,400.2568 441.71248,401.1517 C 441.71248,407.5312 435.82032,403.8619 433.1376,407.4392 C 429.45216,412.3528 418.4888,411.1571 418.86256,411.1517 C 418.86704,411.6378 418.87168,412.1187 418.86256,412.5891 C 416.47936,413.185 412.26608,414.2198 415.42496,416.5891 C 417.52848,418.1667 421.63696,420.3414 420.57504,424.5891 C 420.07744,426.5794 414.8624,424.8126 414.86256,426.8642 C 414.86256,430.1152 412,430.5458 412,432.5891 C 412,437.0494 411.6776,439.9386 410.86256,444.0142 C 410.3248,446.7029 409.8872,440.9469 409.48176,451.981 C 409.21936,459.1232 418.62384,461.2768 417.692,472.457 C 433.55072,464.176 422.84304,472.7622 430.77632,466.7514 C 432.99392,474.4272 437.03504,472.9926 428.57632,475.5168 C 423.09776,477.1517 422.66192,483.8582 424.996,487.6381 C 422.18048,495.0803 430.9224,492.4704 431.35168,492.7278 C 429.94416,491.6218 414.95392,495.2027 415.45824,495.0414 C 415.5536,498.3754 414.28752,499.2171 414.28752,502.8642 C 414.28752,506.8688 420.1568,517.6483 416.57504,519.4392 C 416.82224,519.6298 417.05744,519.8189 417.27504,520.0142 C 417.25792,520.0142 417.24208,520.0141 417.22496,520.0142 C 412.56624,522.0154 410.46832,524.2112 406.28752,526.3016 C 406.12032,526.3851 399.47067,530.2749 398.5,532.8642 C 398.49453,532.9082 398.49352,532.944 398.4875,532.9891 C 398.54971,533.3563 398.64086,533.7955 398.7375,534.2642 C 398.99846,534.5114 399.40768,534.7162 400,534.8642 C 399.70614,535.276 399.43474,535.709 399.1625,536.1392 C 399.80686,538.7082 400.7488,541.4858 401.71248,541.7267 C 405.82112,542.7538 408.57504,542.1482 408.57504,546.8642 C 408.57504,551.1826 408.19552,552.5706 405.1376,554.8642 C 404.26512,555.5184 400.22896,561.8926 397.27501,563.8142 C 397.4507,563.8082 397.62282,563.804 397.8,563.8016 C 399.40347,563.781 400.97376,563.935 401.1376,564.5891 C 401.60368,566.4541 403.48944,572.6538 405.1376,574.3016 C 406.49056,575.6547 408.26864,579.305 411.42496,577.7267 C 414.96976,575.9542 418.28752,577.0315 418.28752,581.7267 C 418.28752,588.2286 414.32288,586.1226 413.1376,590.8642 C 412.73568,592.4715 413.54992,598.0642 412.57504,600.0142 C 410.63296,603.8982 408.48688,605.4795 407.42496,609.7267 C 406.52784,613.3157 403.38656,613.2406 402.28752,615.4392 C 401.20224,617.6093 403.38064,622.3458 401.71248,624.0142 C 399.74771,625.9787 401.32832,626.48 404,629.1517 C 406.1544,631.3061 407.50416,633.7693 410.28752,635.4392 C 412.25424,636.6192 412.5688,640.5891 414.86256,640.5891 C 421.82896,640.5891 416.57504,635.9813 416.57504,632.5891 C 416.57504,622.7766 421.53712,631.2939 425.71248,625.7267 C 427.40832,623.4656 432.57504,621.495 432.57504,618.3016 C 432.57504,615.5366 434.72848,607.8802 438.28752,611.4392 C 440.64272,613.7942 443.6224,612.5018 446.86256,612.8642 C 446.91072,612.84 447.13424,612.956 447.45008,613.1392 C 448.38096,613.6789 450.09024,614.8248 450.28752,614.8642 C 458.01792,616.4102 459.17904,617.9726 455.42496,621.7267 C 453.14224,624.0094 450.28752,625.8454 450.28752,629.7267 C 450.28752,633.1741 450.8624,636.1992 450.86256,639.4392 C 450.8624,644.0147 455.356,650.0131 456,652.5891 C 456.2624,652.7147 456.52512,652.8384 456.78752,652.9642 C 456.53152,652.9317 456.27712,652.9067 456,652.8642 C 455.97488,655.3728 456.30944,657.277 457.1376,660.5891 C 457.91856,663.7134 460.05648,667.172 463.42496,668.0142 C 466.05136,668.6707 471.1856,669.2354 472.57504,672.0142 C 473.47104,673.8062 475.21872,683.2437 476,683.4392 C 480.56592,684.5806 476.93216,686.6106 479.42496,689.7267 C 481.73296,692.6117 486.19552,694.473 484,698.8642 C 483.61904,699.6261 483.30064,700.4213 482.86256,701.1517 C 477.33856,710.3582 484.98,706.7838 486.28752,712.0142 C 487.22928,715.7814 483.42496,717.7808 483.42496,721.1517 C 483.42496,725.4435 485.19824,727.4998 488,730.3016 C 490.39808,732.6997 495.33488,733.2637 496,736.5891 C 496.4472,738.825 496.41872,749.0734 496.57504,749.1517 C 496.49904,749.5514 496.44944,749.8797 496.41248,750.1766 C 496.98256,751.6688 499.36176,754.8514 500.01248,755.1766 C 503.4688,756.9048 509.69936,759.049 510.87504,763.7517 C 511.65872,766.8862 512.63072,770.7965 515.4376,772.9016 C 515.93808,773.277 524.31136,781.3938 525.15008,778.0392 C 525.25984,777.6 529.39072,773.9141 531.27504,773.7766 C 530.27456,770.0546 548.68976,766.6368 549.71248,765.1517 C 548.4072,760.4856 548.43904,757.415 551.95008,754.8267 C 552.46032,754.4504 553.0488,754.0859 553.71248,753.7267 C 553.71248,754.4886 553.71248,755.2522 553.71248,756.0142 C 553.71248,760.2099 553.1376,764.0168 553.1376,766.8642 C 553.13744,767.6261 557.1376,768.3898 557.1376,769.1517 C 557.1376,771.1867 556.9888,777.816 558.28752,779.4392 C 561.29536,783.1989 566.28736,783.5586 566.28752,788.5891 C 566.28752,792.9846 569.17136,793.0643 562.38752,797.1267 C 557.54032,800.0293 564.71104,804.579 569.1376,800.5891 C 573.13744,796.9835 569.79824,796.4146 576,794.8642 C 579.17168,794.0712 577.38768,788.9774 576.57504,785.7267 C 575.33104,780.7507 579.06704,783.171 580,779.4392 C 580.84624,776.0541 583.86688,775.3061 586.28752,777.7267 C 586.9624,778.4014 590.60192,785.1483 592,784.5891 C 604.7624,779.4842 598.86736,784.7341 605.1376,786.3016 C 608.54112,787.1525 609.668,793.8624 611.42496,794.3016 C 614.7624,795.136 620.18368,789.1078 623.32496,789.6891 C 627.15904,790.3986 626.40336,784.5891 628.51248,784.5891 C 631.068,784.5891 630.71312,788.8222 633.1376,788.0142 C 636.10704,787.0243 640.81888,786.5454 643.42496,789.1517 C 645.97024,791.697 649.1376,794.3862 649.1376,788.5891 C 649.1376,784.4046 652,782.933 652,780.5891 C 652,775.0549 651.99248,774.2979 647.42496,772.0142 C 641.0688,768.836 648.02176,768.036 645.71248,765.7267 C 642.96544,762.9795 634.28736,767.3242 634.28752,763.4392 C 634.28752,757.177 631.5176,758.3016 625.71248,758.3016 C 621.44672,758.3016 621.51456,752.5891 623.42496,752.5891 C 624.37744,752.5891 625.33504,752.5891 626.28752,752.5891 C 630.65376,752.5891 634.34064,753.1517 638.86256,753.1517 C 641.5736,753.1517 643.79808,747.6973 644.57504,744.5891 C 645.7,740.0891 649.84288,741.2302 650.86256,737.1517 C 652.0912,732.2366 655.06544,729.2562 657.71248,725.7267 C 659.71728,723.0536 660.40544,718.4318 662.86256,716.5891 C 666.52512,713.8422 665.0704,713.4571 666.28752,708.5891 C 666.83136,706.4139 667.47232,701.8264 666.28752,698.8642 C 664.57824,694.591 663.42496,693.2798 663.42496,688.0142 C 663.42496,683.5258 662.16112,681.2781 665.1376,678.3016 C 665.89952,677.5397 666.6632,676.776 667.42496,676.0142 C 670.952,672.487 668.2824,670.5773 669.1376,666.3016 C 669.57888,664.0952 670.82704,662.6266 671.81248,660.9766 C 672.08848,660.5146 672.33872,660.0374 672.55008,659.5267 C 672.61552,659.3683 672.68112,659.2048 672.7376,659.0392 C 672.74592,659.0144 672.75424,658.9891 672.76256,658.9642 C 672.80816,658.8256 672.84928,658.6837 672.88752,658.5392 C 673.044,657.9483 673.1376,657.3091 673.1376,656.5891 C 673.13744,656.2328 673.1688,655.8882 673.21248,655.5517 C 673.23456,655.3821 673.256,655.2168 673.28752,655.0517 C 673.94544,651.6102 676.57504,649.0926 676.57504,645.7267 C 676.57504,641.9896 677.6672,637.4568 681.1376,636.5891 C 683.84656,635.9118 687.42496,633.3174 687.42496,629.1517 C 687.42496,625.9958 687.4344,622.8421 688,620.0142 C 689.1464,614.2821 687.42496,609.5235 687.42496,604.0142 C 687.42496,603.0618 687.42496,602.104 687.42496,601.1517 C 687.42496,594.7069 686.42496,594.5438 686.42496,588.5891 C 686.42496,584.8234 686.04992,581.2717 686.05008,577.5267 C 686.05008,571.9878 683.66848,571.1075 680.57504,568.0142 C 677.75632,565.1955 678.41344,560.715 676,558.3016 C 675.16384,557.4654 674.73808,556.5971 674.52496,555.7016 C 673.93648,553.2283 675.05632,550.5144 674.28752,547.4392 C 673.37664,543.7957 670.8624,540.5176 670.86256,536.0142 C 670.8624,529.3278 663.13808,532.2896 660,529.1517 C 657.55184,526.7034 658.28736,522.6616 658.28752,518.8642 C 658.28752,512.0686 664.98096,516.0141 669.71248,516.0142 C 677.79904,516.0141 685.07008,517.6667 676,510.8642 C 673.4096,508.9213 667.42496,509.5397 667.42496,506.3016 C 667.42496,505.7302 667.68064,505.1002 667.42496,504.5891 C 666.6816,503.1024 659.28832,494.6947 662.86256,492.0142 C 674.53504,483.2598 667.37088,490.648 665.71248,484.0142 C 663.55168,475.3706 674.28736,479.3722 674.28752,476.5891 C 674.28752,470.675 670.00608,466.3603 665.1376,463.4392 C 659.25072,459.907 660.3456,453.7291 658.28752,452.0142 C 657.51424,451.3698 656.92256,450.6882 656.46256,449.9891 C 653.61072,445.6563 655.94096,440.5302 653.1376,437.7267 C 650.08528,434.6744 649.64512,433.0579 649.58752,428.9642 C 649.34384,429.0178 649.1728,429.077 649.02496,429.1267 C 649.26336,428.7736 649.57872,428.3886 649.57504,427.5766 C 649.57504,421.5011 656.62816,417.356 652,412.5891 C 651.11408,411.8805 650.28752,408.6573 650.28752,407.4392 C 650.28752,402.1002 652.14928,402.424 650.86256,398.3016 C 648.50672,390.7547 648.096,394.3016 642.28752,394.3016 C 639.28928,394.3016 634.28752,393.1466 634.28752,389.7267 C 634.28752,386.311 631.83024,383.9581 633.71248,381.1517 C 636.94496,376.332 633.71248,373.5362 633.71248,369.7267 C 630.68208,367.2645 632.46528,359.4419 636.9376,363.9141 C 640.27216,367.2488 643.45024,372.2173 647.42496,372.0141 C 649.02288,371.9325 652.9488,368.1949 654.86256,369.1517 C 658.39344,370.9171 660.9552,369.7267 665.1376,369.7267 C 670.57664,369.7267 667.76416,367.0464 666.86256,363.4392 C 664.68208,354.7174 663.42752,365.1542 659.42496,361.1517 C 655.85552,357.5821 651.32256,354.6992 647.52496,350.9016 C 645.13936,348.5158 640.04944,349.2133 639.47504,346.3016 z";
provincePaths.munster = "M 265.0625,562.1517 C 259.19064,562.1517 261.42499,562.479 261.42501,566.1891 C 261.42501,570.0704 259.31738,572.6834 254.9625,571.4392 C 250.93394,570.2882 250.72189,570.6392 248.5,570.6392 C 243.94414,570.639 245.33227,568.2267 242.0375,564.5766 C 237.68669,559.7565 233.57994,564.3971 233.55,564.5766 C 233.11938,567.1603 234.05194,574.8853 231.52501,576.2891 C 225.1084,579.8539 228.33704,582.3176 226.67501,583.5642 C 223.80754,585.7147 221.36413,586.5717 220.2125,590.0267 C 219.11843,593.3088 217.52851,596.3429 216.17501,599.7267 C 215.41725,601.6211 209.3,603.9357 209.3,605.3891 C 209.3,608.4206 209.1061,609.4274 208.5,611.8517 C 208.00589,613.8282 202.11926,617.9142 207.6875,617.9142 C 207.7773,617.9142 207.33272,617.9142 208.5,617.9142 C 212.30034,617.9141 213.45485,614.6766 216.97501,614.6766 C 222.01549,614.6766 222.7051,616.6216 219.4,619.9267 C 216.62883,622.6978 219.81685,624.7744 215.7625,626.8016 C 212.81382,628.276 212.43235,632.5104 211.72501,632.8642 C 206.84443,635.3045 206.36027,635.5061 204.05,640.1267 C 202.81411,642.5984 198.4,643.4256 198.4,646.1891 C 198.4,649.5546 200.31717,650.2704 200.8125,652.2517 C 202.20616,657.8262 195.89005,654.6766 192.7375,654.6766 C 187.4185,654.6766 188.46648,659.1365 185.4625,661.1392 C 181.08312,664.0587 179,665.8658 179,670.8392 C 179,673.9774 179.55078,676.9018 175.7625,676.9016 C 173.99392,676.9016 168.43291,676.2824 167.2875,677.7142 C 166.4672,678.7395 164.81267,683.3954 164.05,683.7766 C 161.3204,685.1414 157.77733,689.4267 154.35,689.4267 C 150.20448,689.4267 150.47794,690.6555 147.4875,691.8517 C 145.99782,692.4475 136.16282,698.7267 141.42501,698.7267 C 144.95909,698.7267 152.07752,697.5222 154.75,699.5267 C 158.03168,701.9878 156.8957,698.3141 158.3875,698.3142 C 159.19562,698.3141 160.00438,698.3141 160.8125,698.3142 C 162.4657,698.3142 169.19451,695.9382 170.9125,693.8766 C 171.99739,692.5747 177.24995,687.7142 178.1875,687.4016 C 180.61187,686.5936 183.65547,691.6336 185.4625,689.8267 C 188.00515,687.284 189.23483,685.541 188.2875,681.7517 C 187.68437,679.3392 188.01896,677.6782 191.12501,676.9016 C 193.46984,676.3155 194.64341,680.701 195.97501,683.3642 C 196.96026,685.3347 198.08445,690.7907 202.4375,688.6142 C 209.14418,685.2608 204.21501,689.8267 211.32501,689.8267 C 215.70358,689.8267 216.11539,688.6182 219.8125,686.6016 C 221.53512,685.6621 230.36989,681.0539 232.3375,684.9891 C 234.82608,689.9664 229.28898,684.6237 227.0875,689.0267 C 224.95074,693.3002 228.33414,692.2517 231.92501,692.2517 C 234.10806,692.2517 238.4021,690.8318 240.4125,689.8267 C 245.0139,687.5259 241.06379,688.501 247.2875,685.3891 C 250.91627,683.5747 253.22979,680.2594 255.77501,677.7142 C 257.75504,675.7341 257.88894,671.5627 259.4125,670.0392 C 261.35896,668.0926 264.70795,666.196 263.85,662.7642 C 263.5683,661.6374 263.05416,654.6766 265.0625,654.6766 C 273.46594,654.6766 269.87285,653.6624 271.12501,647.4016 C 271.87355,643.6589 273.04813,643.0536 275.1625,640.9392 C 278.27666,637.825 278.39909,648.2446 278,650.6392 C 277.42467,654.091 272.3375,656.1584 272.3375,659.1267 C 272.3375,662.7942 275.57501,664.1874 275.57501,667.2016 C 275.57501,668.6334 278.68078,669.0352 278.4,670.4392 C 278.26531,671.1126 277.32432,672.3288 278,672.4517 C 280.97886,672.9933 288.7889,673.2642 292.5375,673.2642 C 296.91632,673.2642 299.83104,675.456 304.2625,676.0891 C 305.58939,676.2787 319.48122,677.8827 320.0125,680.5392 C 320.10915,680.7715 320.2447,680.9501 320.4125,681.0891 C 320.3003,681.0467 320.1877,681.0054 320.07501,680.9642 C 320.38106,685.4813 309.94605,684.1766 305.87501,684.1766 C 302.11645,684.1766 295.54578,682.2122 292.5375,682.9642 C 287.61534,684.1947 281.02326,678.0654 275.57501,682.1517 C 271.43107,685.2595 273.53336,687.8086 268.7,688.6142 C 264.75331,689.272 261.2495,692.2517 258.2,692.2517 C 251.454,692.2517 247.67755,695.4483 242.0375,696.7016 C 235.84842,698.077 231.80037,700.6411 225.0625,698.7267 C 223.56288,698.6648 222.04496,698.8718 220.5625,698.6016 C 220.56094,698.6822 220.56434,698.827 220.5625,698.9142 C 220.20411,698.8358 219.79248,698.7234 219.3375,698.5891 C 218.27928,698.9627 218.0145,698.6962 217.9625,698.1642 C 215.68651,697.439 212.98954,696.5312 211.3875,696.5392 C 210.77616,696.5422 210.32334,696.6802 210.12501,697.0142 C 207.29658,701.7773 203.96562,703.3803 200.02501,701.8642 C 198.62149,701.3242 195.63291,696.4075 194.77501,699.8392 C 194.3023,701.7299 189.04162,706.1014 187.9,702.6766 C 187.04336,700.1067 183.04782,698.2728 182.25,701.4642 C 182.08554,702.1221 179.11333,709.4786 179.0125,709.5392 C 173.96187,712.5696 175.88315,714.3155 173.7625,718.0267 C 171.23523,722.4494 168.19474,722.0749 163.6625,724.0891 C 162.45032,724.6278 161.08621,724.9056 160.02501,725.7016 C 158.5012,726.8445 154.82448,724.6662 154.3625,726.5142 C 153.82998,728.6443 150.38462,732.9245 146.6875,730.1517 C 144.55576,728.5528 136.17499,725.1614 136.17501,730.1517 C 136.17501,733.115 136.07525,739.8392 140.22501,739.8392 C 145.36538,739.8392 144.08323,742.4752 147.0875,743.4766 C 153.76621,745.7029 146.80552,750.0571 150.32501,753.5766 C 152.27622,755.5278 155.04958,759.6994 151.1375,761.2642 C 148.88806,762.164 142.68306,764.7037 149.92501,766.5142 C 151.97989,767.0278 155.03083,765.3016 158.4,765.3016 C 160.36741,765.3016 166.42104,764.2483 166.8875,766.1142 C 168.10646,770.9901 160.32074,772.6699 156.7875,773.3766 C 154.68293,773.7976 138.72774,774.4278 138.6,773.7891 C 137.68834,769.2309 130.71845,771.5058 130.52501,770.1517 C 130.09333,767.1299 126.07501,766.0382 126.07501,763.2766 C 126.07501,760.1918 129.17858,757.469 125.27501,758.0267 C 123.33875,758.3032 117.1399,759.5315 118.8125,762.8766 C 119.63178,764.5152 120.42501,765.0822 120.42501,766.9142 C 120.42501,773.3342 118.92309,769.7392 114.7625,769.7392 C 108.90669,769.7392 107.552,770.5256 102.65,772.9766 C 100.43278,774.0853 98.75904,773.2586 100.0125,770.7517 C 100.05205,770.6725 103.50781,763.1451 102.85,763.2766 C 96.90446,764.4658 96.86022,767.4982 92.5375,768.9392 C 91.05512,769.5746 89.23146,771.387 88.1,771.7642 C 85.20563,772.729 80.3391,772.2579 81.22501,775.8016 C 81.73531,777.8429 82.4375,779.3432 82.4375,781.8642 C 82.43749,786.3741 78.43602,781.8282 75.97501,784.2891 C 72.87141,787.3928 68.84256,784.1742 67.4875,781.4642 C 67.08704,780.6634 62.6375,776.7686 62.6375,780.6517 C 62.63749,783.076 62.6375,785.5022 62.6375,787.9267 C 62.63749,789.6827 57.29648,789.2458 58.2,790.7517 C 60.58253,794.7226 61.02499,793.8307 61.02501,797.6267 C 61.02499,800.6382 60.1611,803.251 62.6375,804.4891 C 63.17624,804.7586 63.71208,805.057 64.2625,805.3016 C 65.47469,805.8405 66.45586,805.7942 67.6875,805.3016 C 69.52062,804.5683 71.08066,802.5814 73.15,802.0642 C 75.6852,801.4304 75.5181,798.0864 78.4,799.2392 C 81.55472,800.5011 82.27269,799.004 84.4625,796.8142 C 88.428,792.8486 85.79978,797.4808 90.1125,798.4392 C 91.32469,798.7086 92.50826,799.2392 93.75,799.2392 C 95.62597,799.2392 98.5575,795.4067 99.0125,797.2267 C 99.56053,799.4187 100.84862,802.8766 103.85,802.8766 C 106.87549,802.8766 108.02571,800.8515 109.1125,800.8517 C 111.99611,800.8517 113.81157,798.8643 116.7875,798.4392 C 120.0132,797.9784 129.67235,800.688 132.1375,798.8392 C 135.49339,796.3222 137.34155,797.2434 140.62501,795.6016 C 143.8505,793.9888 145.1175,792.3766 149.1125,792.3766 C 149.89774,792.3766 159.6125,792.6235 159.6125,795.2016 C 159.6125,799.6725 158.33082,799.7429 155.97501,803.2766 C 154.36574,805.6906 151.57766,808.7461 147.5,807.7267 C 144.73546,807.0355 142.50742,804.7667 139.0125,806.5142 C 136.0817,807.9795 139.04099,812.397 137.3875,813.3891 C 133.46416,815.7432 129.65917,816.847 125.27501,819.0392 C 121.78973,820.7818 116.56685,820.0757 111.5375,822.2766 C 108.05272,823.8018 102.9899,827.2251 99.4125,826.7142 C 97.52688,826.4448 95.22883,828.4261 93.35,828.7392 C 89.92408,829.3101 91.79998,833.3947 90.92501,833.5891 C 87.33814,834.3862 81.99731,834.2285 83.25,839.2392 C 83.82227,841.5283 86.89475,845.6944 84.8625,847.7267 C 81.04813,851.541 83.71022,854.6016 75.57501,854.6016 C 73.6143,854.6018 67.04565,857.8109 67.0875,857.8267 C 68.66586,858.4186 74.7625,860.2774 74.7625,863.0766 C 74.7625,864.3242 74.07925,872.035 74.7625,872.3766 C 75.85773,872.9243 81.57741,874.8016 82.85,874.8016 C 83.43482,874.8018 88.03997,871.6242 88.1,871.5642 C 88.66534,870.9989 89.34538,868.2802 90.52501,866.3142 C 91.0469,865.4443 96.59696,859.0706 98.2,862.2766 C 100.08059,866.0379 98.87726,869.1376 96.17501,871.1642 C 92.48624,873.9307 96.07142,876.3106 98.2,878.4392 C 99.98936,880.2285 105.0625,879.1336 105.0625,881.6642 C 105.0625,888.3339 104.96626,889.7794 111.12501,887.7267 C 113.41763,886.9624 115.21757,883.6891 118.8125,883.6891 C 124.94923,883.6891 122.41197,880.0235 125.67501,877.2267 C 126.61781,876.4186 127.25824,874.8016 128.5,874.8016 C 133.29744,874.8018 131.96987,872.9262 135.37501,871.5642 C 140.45906,869.5306 146.2875,874.2531 146.2875,873.5891 C 146.2875,868.7917 153.02066,873.0354 154.7625,869.5517 C 156.87507,865.3266 157.64437,865.5016 163.25,865.5016 C 167.34854,865.5018 168.82341,861.4642 172.95,861.4642 C 176.22702,861.4642 178.97534,860.6642 182.25,860.6642 C 185.24189,860.6642 185.42042,863.2826 184.6625,866.3142 C 183.51866,870.8896 179.96528,870.7642 174.97501,870.7642 C 171.51237,870.7642 166.66819,869.6165 165.67501,873.5891 C 165.08883,875.9339 157.02203,875.7523 157.1875,876.4142 C 157.84986,879.0635 159.41934,883.0378 155.57501,882.0766 C 154.4975,881.8074 153.41499,881.5336 152.3375,881.2642 C 151.31698,881.0091 151.1237,878.1546 150.32501,878.8392 C 148.52728,880.3802 148.77498,884.6619 146.7625,885.2392 C 146.61502,885.2814 146.46102,885.3016 146.2875,885.3016 C 145.61406,885.3018 144.93594,885.3016 144.2625,885.3016 C 142.79763,885.3018 138.6,882.3602 138.6,885.7142 C 138.6,890.2094 136.79653,890.9274 132.55,891.7766 C 125.41088,893.2045 129.87496,894.6766 132.95,896.2142 C 136.02592,897.7522 136.45405,899.5122 132.55,901.4642 C 128.54232,903.468 124.74614,901.7477 122.0375,900.6642 C 119.74784,899.7483 115.01066,899.4517 111.5375,899.4517 C 108.34299,899.4517 108.79864,900.8614 109.9125,903.0891 C 110.53603,904.3362 113.91224,907.2619 112.3375,909.1517 C 109.21296,912.9011 105.15565,912.1037 101.02501,915.2016 C 99.88152,916.0592 95.76238,920.2578 98.6,921.6766 C 100.59942,922.6763 104.90029,925.0638 107.4875,922.4766 C 109.53787,920.4264 112.4645,919.5246 114.7625,917.2267 C 118.24106,913.7482 119.78213,916.5502 124.4625,915.6142 C 128.53438,914.7998 131.48982,915.2016 135.77501,915.2016 C 135.77501,914.9323 135.50563,914.4016 135.77501,914.4016 C 139.12003,914.4018 143.03045,920.2614 145.87501,918.8392 C 149.58898,916.9822 152.01752,915.9032 154.3625,912.7766 C 155.29981,911.5269 157.77293,904.7016 159.2125,904.7016 C 161.83488,904.7018 164.91627,901.8766 165.27501,901.8766 C 167.06941,901.8766 172.40115,903.6976 173.7625,902.6766 C 176.40686,900.6934 178.60862,900.528 181.8375,899.4517 C 185.70016,898.1642 187.2925,895.8157 189.1125,893.3891 C 190.44394,891.6139 193.60875,888.0947 194.77501,892.1766 C 196.35936,897.7219 195.99686,895.8235 198.4125,898.2392 C 199.40106,899.2277 205.26002,901.8293 205.67501,903.4891 C 206.65658,907.4155 204.45355,907.732 200.42501,908.7392 C 197.75584,909.4064 194.94922,912.2566 192.35,912.7766 C 188.42078,913.5626 178.51504,912.2315 176.5875,914.8016 C 172.85506,919.7782 170.31275,918.9891 164.0625,920.8642 C 159.77874,922.1493 154.84053,922.043 150.72501,923.6891 C 146.26741,925.4722 147.42515,927.9896 149.1125,931.3642 C 149.95125,933.0418 150.94066,935.0365 153.55,934.6016 C 156.97246,934.0312 158.92171,931.8885 161.2375,930.1517 C 162.4091,929.273 168.0708,927.137 168.9125,926.9267 C 171.64821,926.2427 175.36448,924.0251 177.8,922.0766 C 181.20869,919.3498 182.24874,920.0517 185.47501,920.0517 C 186.61464,920.0517 193.23026,922.4227 189.92501,924.9016 C 182.9229,930.1533 192.78853,927.4234 180.22501,930.5642 C 175.69866,931.6958 168.29283,932.4736 166.0875,935.4142 C 160.9605,942.2502 163.74811,938.4936 156.7875,941.4766 C 154.19365,942.5883 148.61819,949.1517 152.3375,949.1517 C 155.53242,949.1517 158.39229,949.9517 162.0375,949.9517 C 163.84501,949.9517 167.15512,951.8414 168.1,949.9517 C 169.21285,947.7261 169.79755,944.659 172.1375,943.4891 C 174.11,942.5029 176.74778,942.6766 179.4125,942.6766 C 181.61491,942.6766 187.53368,943.8342 188.7125,941.4766 C 190.73782,937.4261 191.39067,940.2181 194.77501,941.0642 C 196.45069,941.483 198.17902,941.6978 199.6125,940.2642 C 201.97106,937.9056 201.46904,933.3501 204.87501,934.2016 C 208.43213,935.0909 209.3125,936.3514 209.3125,939.8517 C 209.3125,943.6771 211.25107,945.588 214.1625,942.6766 C 216.79298,940.0462 218.6125,941.2192 218.6125,944.7016 C 218.6125,949.1325 218.43216,949.1517 222.25,949.1517 C 225.77179,949.1517 227.50941,946.3142 229.92501,946.3142 C 233.61176,946.3142 234.9692,948.6688 238,949.1517 C 238.66936,949.2584 239.34315,949.3576 240.0125,949.4642 C 240.0125,947.0827 239.6265,944.3552 240.0125,942.0392 C 240.61816,938.4053 246.3,937.4866 246.3,937.4642 C 246.3,931.8547 244.51739,932.0742 248.5875,930.0392 C 252.53248,928.0667 252.45728,934.0686 254.87501,933.4642 C 257.81922,932.7282 262.44611,934.4162 265.6,932.8392 C 269.98456,930.6469 270.81043,929.9747 274.3,933.4642 C 278.17822,937.3424 281.92534,936.7078 283.1375,932.7267 C 283.1375,931.5838 285.86845,931.7386 286.37501,930.7142 C 288.32003,926.7803 285.42021,920.2866 289.72501,920.9016 C 290.47718,921.0091 300.60704,922.4526 301.15,923.1766 C 304.11499,927.1301 308.31491,930.7206 314.3,928.3267 C 318.95595,926.4643 316.51392,922.3534 314.87501,920.3267 C 314.08358,919.348 301.60059,913.5848 309.15,912.3267 C 311.76016,911.8917 313.59442,908.8645 316.0125,909.9392 C 324.88218,913.8813 328.19088,914.2174 334.3,920.3267 C 336.10264,922.1293 337.06054,918.8389 340.3125,915.2392 C 342.9389,912.332 338.90106,909.6155 340.8875,906.1392 C 346.92349,895.5762 349.14533,905.469 353.15,901.4642 C 355.01902,899.5952 356.62942,895.7517 360.5875,895.7517 C 363.14162,895.7517 372.40653,895.2086 370.87501,890.6142 C 370.6119,889.825 370.65656,882.0661 369.72501,880.9016 C 368.96307,879.9493 366.98693,877.579 366.22501,876.6267 C 367.04315,876.0131 374.78765,870.2613 373.72501,869.4642 C 370.92763,867.3662 365.19522,861.1747 368.5875,860.3267 C 371.61978,859.5686 372.47808,863.8611 374.3,862.0392 C 375.64624,860.693 383.82523,857.8634 381.72501,859.1766 C 380.13099,860.1733 386.86784,859.2576 385.72501,870.6142 C 385.25011,875.3328 372.0067,873.5806 379.4375,878.0392 C 381.4177,879.2274 389.43982,884.1755 391.4375,883.1766 C 394.20582,881.7926 400.3816,883.0008 401.15008,881.4642 C 403.0272,877.7096 411.92848,876.197 412.58752,872.9016 C 413.63936,867.6422 415.9944,868.4501 420.01248,866.0392 C 421.10512,865.3837 433.64944,861.9635 431.4376,859.7517 C 430.42592,858.74 425.6256,857.3112 426.3,854.6142 C 426.5608,853.5712 434.6752,845.8923 432.58752,844.3267 C 430.552,842.8 430.01472,840.6259 430.18752,838.0891 C 430.2816,836.7064 430.58704,835.2158 430.97504,833.6642 C 432.21776,828.6931 435.71504,829.9794 436.48752,834.6142 C 436.9304,837.2712 435.64288,842.4821 438.3,842.0392 C 446.52448,840.6685 438.53056,842.8446 442.3,846.6142 C 442.85552,847.1696 449.78848,853.7973 450.3,851.7517 C 451.45392,847.1362 453.5232,849.8803 454.87504,847.1766 C 456.99792,842.9307 457.116,842.272 459.4376,839.1766 C 462.18208,835.5173 469.77136,833.3717 471.4376,830.0392 C 473.74352,825.4272 471.28784,826.8773 469.72496,823.7517 C 468.6144,821.5304 468.20848,817.4642 465.72496,817.4642 C 460.76432,817.4642 462.10704,812.3266 464.58752,812.3267 C 467.06016,812.3266 480.01248,813.7818 480.01248,811.1766 C 480.01248,800.2294 487.76784,807.0176 494.3,803.7517 C 494.68096,803.5611 495.01984,803.2602 495.4376,803.1766 C 503.24112,801.616 510.87488,804.521 510.87504,803.1766 C 510.87504,797.7374 516.27296,800.5325 518.87504,802.6142 C 525.07168,807.5715 522.67888,806.183 527.4376,802.6142 C 528.96128,801.4714 530.3792,800.1566 532.01248,799.1766 C 536.47456,796.4994 538.26704,796.7029 536.58752,800.9016 C 532.78592,810.4056 532.012,806.6141 541.15008,806.6142 C 546.07968,806.6142 547.44864,802.1862 552.58752,800.9016 C 554.4992,800.4237 558.29264,796.0869 556.95008,793.4016 C 556.25344,792.0086 557.1456,784.6016 556.01248,783.7517 C 555.25056,783.1802 554.48688,782.6106 553.72496,782.0392 C 548.02928,777.7674 544.63888,780.9309 542.3,779.1766 C 539.81648,777.3141 533.6416,775.9888 532.35008,774.0766 C 532.23712,774.0651 532.12528,774.0506 532.01248,774.0392 C 530.90944,772.5685 525.2784,777.5258 525.15008,778.0392 C 524.31136,781.3938 515.93808,773.277 515.4376,772.9016 C 512.63072,770.7965 511.65872,766.8862 510.87504,763.7517 C 509.69936,759.049 503.4688,756.9048 500.01248,755.1766 C 499.29264,754.8168 496.46272,750.9451 496.3,749.7517 C 496.67968,748.1381 496.33936,739.9701 496,736.5891 C 495.33488,733.2637 490.39808,732.6997 488,730.3016 C 485.19824,727.4998 483.42496,725.4435 483.42496,721.1517 C 483.42496,717.7808 487.22928,715.7814 486.28752,712.0142 C 484.98,706.7838 477.33856,710.3582 482.86256,701.1517 C 483.30064,700.4213 483.61904,699.6261 484,698.8642 C 486.19552,694.473 481.73296,692.6117 479.42496,689.7267 C 476.93216,686.6106 480.56592,684.5806 476,683.4392 C 475.21872,683.2437 473.47104,673.8061 472.57504,672.0142 C 471.1856,669.2354 466.05136,668.6707 463.42496,668.0142 C 460.05648,667.172 457.91856,663.7134 457.1376,660.5891 C 456.30944,657.277 455.97488,655.3726 456,652.8642 C 456.28192,652.9074 456.53984,652.9438 456.8,652.9766 C 456.53248,652.8486 456.26752,652.7171 456,652.5891 C 455.356,650.0131 450.8624,644.0147 450.86256,639.4392 C 450.8624,636.1992 450.28752,633.1741 450.28752,629.7267 C 450.28752,625.8454 453.14224,624.0094 455.42496,621.7267 C 459.17904,617.9726 458.01792,616.4102 450.28752,614.8642 C 450.02336,614.8114 447.05296,612.769 446.86256,612.8642 C 443.6224,612.5019 440.64272,613.7942 438.28752,611.4392 C 434.72864,607.8803 432.57504,615.5366 432.57504,618.3016 C 432.57504,621.495 427.40832,623.4656 425.71248,625.7267 C 421.53712,631.2939 416.57504,622.7766 416.57504,632.5891 C 416.57504,635.9813 421.82896,640.5891 414.86256,640.5891 C 412.5688,640.5891 412.25424,636.6192 410.28752,635.4392 C 407.50416,633.7693 406.1544,631.3061 404,629.1517 C 401.32832,626.48 399.74776,625.9787 401.71248,624.0142 C 403.38064,622.3458 401.2024,617.6093 402.28752,615.4392 C 403.38656,613.2406 406.52784,613.3157 407.42496,609.7267 C 408.48688,605.4795 410.63296,603.8982 412.57504,600.0142 C 413.54992,598.0642 412.73568,592.4715 413.1376,590.8642 C 414.32288,586.1226 418.28752,588.2286 418.28752,581.7267 C 418.28752,577.0315 414.96976,575.9542 411.42496,577.7267 C 408.26864,579.305 406.49056,575.6547 405.1376,574.3016 C 403.48944,572.6538 401.60368,566.4541 401.1376,564.5891 C 400.97376,563.935 399.40347,563.781 397.8,563.8016 C 397.61859,563.804 397.44258,563.808 397.2625,563.8142 C 396.56912,564.2635 395.94408,564.4773 395.42501,564.3016 C 394.28214,562.8019 388.00331,567.729 386.8625,568.0142 C 384.70741,568.5528 383.42501,572.2802 383.42501,574.8642 C 383.42501,577.3821 391.2132,585.2958 387.89045,585.2958 C 385.27365,585.2958 378.57686,587.8885 377.42565,590.1909 C 376.85739,591.3274 370.8197,602.2883 375.06794,613.1122 C 377.83421,620.1603 370.15366,616.7981 372.34467,623.5794 C 374.93493,631.5963 362.19717,621.627 360.65133,623.8947 C 356.96067,629.3088 355.93744,632.6392 351.40902,642.4117 C 349.68792,646.1258 349.5435,642.588 343.44771,636.2259 C 347.97517,629.5362 346.22637,633.2294 350.74904,626.5664 C 347.92341,626.3586 339.87194,629.3669 342.6584,622.781 C 349.46749,606.6875 355.68078,620.3875 361.84013,614.133 C 371.3245,604.5019 353.55251,603.2442 350.8625,604.5891 C 346.84648,606.5971 342.14515,599.8718 341.1375,598.8642 C 339.72357,597.4502 332.77603,596.7306 330.2875,594.8642 C 326.3072,591.879 322.41886,595.2682 320.57501,597.7267 C 318.51926,600.4677 315.36014,600.0141 310.8625,600.0142 C 310.21298,600.0142 305.60021,604.0141 301.7125,604.0142 C 297.55125,604.0142 295.49554,609.6035 289.1375,608.0142 C 287.60459,607.6309 289.1375,600.068 289.1375,598.8642 C 289.1375,595.3565 285.3467,592.4477 284.57501,588.5891 C 283.78854,584.6568 281.08669,583.7512 277.7125,581.7267 C 272.23912,578.4426 272.76757,575.6718 271.42501,570.3016 C 271.324,569.8976 271.226,569.4931 271.12501,569.0891 C 270.63906,568.8144 270.10008,568.3893 269.5125,567.8016 C 267.94656,566.2357 267.53005,562.1517 265.0625,562.1517 z";
var coastlinePath = "M 498.66256,52.4141 C 496.03696,52.4214 493.3856,52.5891 490.86256,52.5891 C 485.76464,52.5891 487.1968,55.6662 490.28752,57.7266 C 493.76384,60.0442 497.02384,64.2386 500,65.7266 C 501.27952,66.3664 505.37008,73.1346 503.42496,74.3016 C 497.82448,77.6619 496.15568,77.1757 493.1376,73.1515 C 488.17456,66.5342 491.20336,71.3077 488,72.5891 C 485.69344,73.5117 478.35968,73.1155 478.28752,73.1515 C 475.28144,74.6547 470.8624,75.5173 470.86256,80.5891 C 470.8624,84.9864 470.5944,88.0531 472.57504,92.0141 C 473.9024,94.6688 475.85536,96.2998 477.1376,98.8642 C 478.9792,102.5474 478.8624,105.8045 478.86256,110.3016 C 478.8624,114.2602 479.35632,118.4387 477.71248,121.7267 C 477.01008,123.1315 477.20256,132.2885 476,132.5891 C 473.52256,133.2085 465.71248,134.5403 465.71248,137.7267 C 465.71248,143.5907 466.17952,143.3826 462.28752,146.3016 C 460.92176,147.3259 448.55664,152.5509 451.9,145.8642 C 453.5864,142.4912 457.19344,140.9277 458.18752,136.9517 C 459.11744,133.2322 462.42352,132.3206 463.45008,129.8891 C 463.81376,129.0277 460.33376,127.992 460.67504,126.6267 C 461.73456,122.3882 463.79856,121.5542 465.71248,117.7267 C 467.47184,114.208 469.7848,116.8534 468.57504,112.0141 C 467.8552,109.135 466.78752,107.2966 466.78752,103.7141 C 466.78752,100.0443 465.09104,93.5776 461.1376,92.5891 C 455.78256,91.2504 459.50432,88.1952 457.71248,84.0141 C 454.87488,77.3933 452.1728,79.439 444,79.439 C 440.41744,79.439 433.61536,80.5278 432.47504,85.0891 C 431.77136,87.9037 426.548,90.0274 427.02496,92.8891 C 427.67776,96.8051 431.42496,95.5518 431.42496,99.4392 C 431.42496,103.6688 428.67168,106.4883 426.86256,108.5891 C 426.67168,107.9858 422.94384,111.173 423.45008,101.9267 C 423.65072,98.2597 423.58848,96.205 414.76256,95.8642 C 412.19168,95.765 418.2208,92.6843 417.4,89.4016 C 416.40672,85.4283 411.73872,86.3634 408.91248,87.7766 C 406.04224,89.2117 407.69536,95.107 405.67504,97.4766 C 404.1696,99.2424 401.02976,99.7842 398.4,100.3016 C 395.45467,100.8813 400.8352,109.1448 393.7625,107.3766 C 391.40797,106.788 391.77422,105.3042 389.5125,102.7267 C 387.86874,100.8533 385.66838,105.7029 383.05,103.7392 C 377.37173,99.4805 378.81328,104.7517 374.5625,104.7517 C 372.98595,104.7517 368.50002,104.128 368.5,106.3642 C 368.5,107.8933 369.29554,114.1888 370.52501,115.6642 C 373.8124,119.609 371.38898,118.1366 369.7125,121.7267 C 368.02213,125.3464 370.412,129.0302 369.1125,133.4392 C 366.64416,135.5506 365.36333,131.1389 363.65,128.5891 C 361.55867,125.477 362.51046,126.8686 358.6,126.7766 C 353.75126,126.6626 355.21373,135.6386 352.3375,137.0766 C 346.90466,139.7931 351.12499,139.1829 351.12501,144.3517 C 351.12501,147.0486 358.81656,150.3242 358,150.8141 C 355.86552,152.0949 351.052,152.0632 347.9,153.6392 C 344.61829,155.28 347.98658,160.4373 350.32501,161.3141 C 351.4025,161.7182 352.43358,162.2475 353.55,162.5267 C 357.83459,163.5978 357.64741,161.1496 360.82501,160.5141 C 364.80843,159.7174 368.84699,159.0202 366.4875,163.7392 C 365.55773,165.5987 364.90162,170.6338 367.2875,171.8267 C 371.052,173.709 368.64818,175.1062 367.7,177.4766 C 366.76091,179.8243 364.55,181.2891 362.85,177.8891 C 361.57816,175.3454 357.75208,171.753 353.9625,172.2267 C 350.58483,172.6488 349.58573,174.6517 346.6875,174.6517 C 343.77267,174.6517 338.60152,173.0402 339.0125,176.6766 C 339.81298,183.7598 340.88294,180.5139 343.85,182.7392 C 345.77085,184.1798 349.89696,185.1362 351.5375,186.7766 C 352.25315,187.4923 352.78766,189.9389 351.5375,192.4392 C 350.88424,193.7456 347.00389,200.0306 344.6625,197.6891 C 342.31261,195.3392 341.40555,194.0405 338.2,193.2392 C 335.70418,192.6152 333.01222,187.5891 331.7375,187.5891 C 329.18955,187.5891 325.04248,186.7517 324.0625,189.2016 C 323.68902,190.1354 323.75477,196.975 322.85,197.2766 C 317.60299,199.0256 316.70962,199.3795 313.15,202.9392 C 310.23382,205.8554 310.94186,198.7374 308.7,201.7267 C 306.72326,204.3622 304.5961,203.7784 306.27501,206.5766 C 307.49814,208.6152 311.11907,213.744 313.15,214.2517 C 315.13978,214.7491 316.13846,223.8837 318,223.1392 C 324.73622,220.4446 323.73253,226.4184 329.7125,225.5642 C 338.91808,224.2491 330.99416,226.0814 335.37501,227.1766 C 337.94493,227.8192 340.74099,222.165 341.4375,222.3392 C 343.74922,222.9171 345.20936,229.7205 346.27501,227.5891 C 347.40376,225.3317 353.26867,220.7888 354.3625,225.1642 C 355.58866,230.0688 353.44789,227.8792 350.32501,231.6267 C 349.33424,232.8155 346.37402,237.6184 350.32501,237.2891 C 354.10326,236.9742 358.84304,237.917 360.0125,233.2392 C 360.88384,229.7538 362.172,226.2637 362.85,223.5517 C 364.55296,216.7398 371.90851,221.824 371.7375,221.9267 C 369.7489,223.1198 367.73389,230.712 370.52501,230.0141 C 373.87966,229.1755 374.91528,225.1642 378.6,225.1642 C 381.2364,225.1642 382.50282,222.3339 384.6625,220.7141 C 385.03987,220.4312 393.05976,215.4907 393.9625,219.1016 C 394.14019,219.8123 395.59904,226.1584 394.3625,226.7766 C 389.39907,229.2584 388.80094,231.3909 385.47501,234.0517 C 381.92566,236.8912 381.83749,238.3763 381.8375,242.5392 C 381.8375,250.5325 375.5117,241.061 377.8,250.2141 C 378.35683,252.4414 378.06541,256.5398 373.7625,255.4642 C 373.22376,255.3294 372.67626,255.1989 372.1375,255.0642 C 371.4147,256.0278 371.69371,257.997 370.52501,258.2891 C 369.1804,258.6253 361.71859,261.5267 360.82501,261.5267 C 359.06461,261.5267 354.36248,267.5662 354.3625,263.5517 C 354.3625,260.2451 347.08749,253.4795 347.0875,258.2891 C 347.0875,261.5803 347.56293,265.0336 344.2625,265.9766 C 338.18762,267.7123 343.54938,271.377 340.62501,272.8392 C 339.51173,273.3958 334.02136,274.0893 333.35,275.2642 C 330.6604,279.971 329.62766,278.5442 324.0625,281.3267 C 322.10982,282.303 320.06285,284.6398 321.6375,287.7891 C 322.39098,289.2962 324.28048,293.0554 326.07501,294.2517 C 330.9983,297.5339 331.4048,293.0781 336.5875,290.2141 C 338.47861,289.1691 338.90598,297.4531 340.62501,298.7016 C 343.8065,301.0123 346.6027,305.5885 343.45,306.3766 C 340.45238,307.1261 336.82557,304.3952 333.75,305.1642 C 331.0133,305.8483 328.86952,307.1632 332.1375,309.6141 C 333.22157,310.4272 339.4125,314.5698 339.4125,315.6766 C 339.4125,318.099 334.26278,323.957 331.7375,320.9267 C 331.20962,320.2931 327.82021,317.4093 326.4875,316.0766 C 325.91059,315.4997 321.6375,313.7227 321.6375,312.8392 C 321.6375,311.4046 322.18842,306.0141 320.0125,306.3766 C 315.47549,307.1328 313.76702,305.9766 309.9125,305.9766 C 307.16542,305.9766 304.03518,309.2374 301.8375,307.5891 C 299.02797,305.4821 299.7977,302.1429 294.1625,303.5517 C 289.13618,304.8082 290.32805,300.3142 285.2625,300.3141 C 282.38459,300.3141 278.51926,304.7939 277.5875,303.5517 C 277.42619,303.3366 275.94347,297.9064 274.3625,298.3016 C 273.3732,298.549 268.06058,301.593 267.4875,302.7392 C 265.95669,305.8008 267.0875,309.4168 267.0875,312.8392 C 267.0875,317.268 265.51893,320.1062 262.2375,320.9267 C 261.96989,320.9936 257.49448,326.6962 256.57501,325.7766 C 256.30562,325.5072 256.14458,324.8718 255.77501,324.9642 C 250.86358,326.192 256.41379,321.4461 253.75,320.1141 C 251.50814,318.9933 250.51251,319.8491 250.5125,316.4766 C 250.5125,313.2757 250.35064,308.7549 249.7125,305.5642 C 248.4035,299.0192 245.44256,305.9272 242.8375,304.3642 C 240.7632,303.1195 238.64766,300.1298 237.9875,297.4891 C 236.8916,293.1056 237.51094,296.0189 232.7375,295.0642 C 231.39062,294.7947 230.05485,294.4774 228.7,294.2517 C 225.68528,293.7491 216.99432,290.12 214.15,291.8267 C 209.2192,294.7851 208.14886,291.8267 203.65,291.8267 C 200.81574,291.8267 197.73288,291.7251 195.1625,292.2392 C 194.48906,292.3738 193.80376,292.4726 193.1375,292.6392 C 188.80456,293.7224 191.21237,294.2517 187.07501,294.2517 C 184.60446,294.2517 175.58008,295.4226 174.15,293.0392 C 172.41142,290.1416 171.59947,286.2898 168.4875,289.4016 C 167.71966,290.1694 165.92587,289.9731 165.6625,291.0267 C 165.30264,292.4661 164.77078,294.8986 166.07501,295.8766 C 168.71424,297.8562 168.89352,300.1042 170.1125,303.1517 C 170.30866,303.6421 173.60635,309.6141 170.5125,309.6141 C 166.91139,309.6141 164.9619,306.7766 162.4375,306.7766 C 159.38805,306.7766 158.75712,307.3357 157.9875,310.4141 C 157.80704,311.136 156.37842,318.9016 154.75,318.9016 C 153.53085,318.9016 147.11654,318.8435 148.7,315.6766 C 149.76528,313.5461 148.7,311.6509 148.7,309.6141 C 148.7,308.5714 149.2491,302.2795 147.8875,301.9392 C 142.7145,300.6459 141.82501,301.0898 141.82501,295.8766 C 141.82501,291.9925 137.94944,290.7664 136.97501,294.6642 C 136.53461,296.4258 132.81376,299.3635 130.9125,300.3141 C 127.69621,301.9222 131.22754,307.3032 130.5125,307.5891 C 128.79387,308.2766 123.75147,307.8171 124.85,310.0141 C 125.8379,311.9899 132.08832,313.0637 130.1125,314.0517 C 129.23243,314.4917 125.56664,314.56 124.45,315.6766 C 122.68536,317.4413 123.2375,320.6422 123.2375,323.7517 C 123.2375,325.0712 126.70981,331.8536 125.6625,332.6392 C 123.98269,333.899 113.98782,338.3395 117.9875,342.3392 C 118.85482,343.2064 124.72933,344.8973 126.47501,343.1517 C 128.55981,341.0669 130.1125,341.1846 130.1125,337.4891 C 130.1125,335.0648 130.1125,332.6386 130.1125,330.2141 C 130.1125,328.2053 132.21606,324.9253 134.15,324.1517 C 139.1276,322.1606 136.69488,322.0597 137.7875,317.6891 C 138.60965,314.4006 139.02878,314.5218 140.6125,317.6891 C 141.94699,320.3581 147.74035,323.7102 147.8875,324.1517 C 150.01152,330.5237 144.25,327.6018 144.25,331.4267 C 144.25,334.4666 149.81008,335.6565 148.2875,338.7016 C 146.90763,341.4614 142.23075,343.1507 144.25,347.1891 C 145.86278,350.4147 149.70998,351.2808 151.92501,347.5891 C 152.85747,346.035 153.88258,339.9478 156.37501,338.7016 C 158.95358,337.4123 162.4375,336.7216 162.4375,340.7267 C 162.4375,344.4947 159.2,348.6752 159.2,350.8267 C 159.2,355.1317 151.92501,353.4894 151.92501,357.6891 C 151.92501,361.8597 155.67914,362.0197 157.5875,364.5642 C 159.19048,366.7014 158.52717,369.281 159.6,371.4267 C 161.02717,374.281 161.79392,376.627 163.2375,379.5141 C 163.50686,380.053 163.78062,380.5878 164.05,381.1267 C 161.06227,387.1021 161.15282,378.1544 156.77501,378.7016 C 151.71318,379.3344 151.52501,381.1296 151.52501,385.9766 C 151.52501,388.8902 149.9125,392.1517 149.9125,394.4642 C 149.9125,399.2443 149.37768,399.7142 154.75,399.7142 C 157.2541,399.7141 162.06501,399.6867 163.65,398.1016 C 166.09122,395.6605 172.06946,394.1197 172.5375,393.6517 C 175.93992,390.2493 175.87571,390.6085 179.4,393.2517 C 182.46578,395.551 185.81474,398.1016 188.2875,398.1016 C 192.16072,398.1016 190.49587,394.1152 193.95,393.2517 C 198.29037,392.1666 195.25738,395.7635 195.5625,397.2891 C 195.98923,399.4229 199.34678,401.6525 197.9875,403.3517 C 196.35382,405.3938 191.52499,405.1866 191.52501,407.8016 C 191.52501,411.0936 191.43322,412.2194 194.7625,413.0517 C 198.99358,414.1094 199.63224,417.9016 194.7625,417.9016 C 190.05224,417.9016 184.62666,417.3485 180.2125,419.1142 C 177.79589,420.0808 170.85302,424.5011 170.1125,421.5392 C 169.30856,418.3234 167.06878,418.672 164.8625,420.3267 C 163.50085,421.3478 160.88656,421.7397 159.2,422.7517 C 156.17859,424.5645 152.42602,419.8256 151.52501,420.7267 C 149.11432,423.1373 151.32501,424.7216 151.32501,428.0016 C 151.32501,428.9806 149.67811,435.9136 148.7,436.0766 C 143.63061,436.9216 147.84565,439.9342 148.7,443.3517 C 149.2889,445.7072 145.584,447.8338 147.8875,448.6016 C 148.69562,448.871 147.87358,450.8202 148.7,451.0267 C 151.44333,451.7125 152.14741,453.2741 154.35,455.4766 C 157.0963,458.223 155.48386,461.139 149.9125,461.1392 C 146.41064,461.1392 142.90187,461.139 139.4,461.1392 C 132.72598,461.1392 135.96528,460.7253 136.97501,464.7642 C 138.16138,469.5096 139.37515,467.1891 134.55,467.1891 C 130.314,467.1891 129.92162,464.7258 126.87501,463.9642 C 122.48909,462.8677 122.90382,466.3891 118.8,466.3891 C 117.79674,466.3891 108.69587,463.5432 108.2875,465.1766 C 107.63445,467.7888 108.80917,467.9211 110.3125,470.4267 C 111.8272,472.9512 114.2159,475.5426 116.37501,477.7016 C 118.606,479.9326 124.35546,482.3315 124.05,484.1642 C 123.67163,486.4344 128.53355,489.5974 126.47501,490.6267 C 123.3345,492.197 120.05792,491.8392 116.37501,491.8392 C 115.52205,491.8392 107.83043,492.5459 108.0875,493.4642 C 109.60088,496.0208 111.30422,496.6726 112.32501,498.7142 C 113.15437,500.373 118.02642,506.9955 120,504.3642 C 122.65498,500.8242 124.59875,502.4539 128.0875,503.1517 C 131.79803,503.8938 133.41206,510.4267 137.37501,510.4267 C 141.71272,510.4267 142.65618,509.9144 143.4375,506.7891 C 143.64547,505.9573 144.20517,499.8693 146.27501,501.9392 C 148.07974,503.744 149.30677,504.7766 152.32501,504.7766 C 154.89123,504.7766 157.5875,503.9722 157.5875,506.7891 C 157.5875,508.9949 158.48054,514.4642 155.5625,514.4642 C 154.68923,514.4642 144.64229,514.8613 144.65,514.8766 C 145.30144,516.1795 148.36262,522.6674 149.5,522.9517 C 152.27256,523.6448 154.86626,520.5939 156.77501,521.7392 C 160.23525,523.8154 163.31378,523.8504 166.87501,525.3766 C 169.46864,526.4882 172.22843,528.3805 173.75,524.5766 C 175.29179,520.7221 173.41662,520.3069 177.3875,519.3142 C 180.20325,518.6102 181.02501,517.8653 181.02501,514.8766 C 181.02501,511.3598 184.05462,508.2522 187.8875,512.8517 C 189.47624,514.7581 192.59917,515.4651 190.3125,518.5142 C 188.12098,521.4362 187.3464,522.9733 186.67501,527.0016 C 186.27238,529.4173 186.32946,533.931 188.2875,535.8891 C 188.99683,536.5986 193.1996,535.7 193.55,537.1016 C 194.83034,542.223 196.96824,542.545 199.6,545.1766 C 201.92493,547.5016 205.09646,550.1926 208.0875,547.2016 C 212.0116,543.2776 216.72866,543.5642 222.2375,543.5642 C 225.79394,543.5642 229.70651,543.1064 233.1375,543.9642 C 239.99734,545.6792 241.42797,546.2674 247.2875,542.7517 C 248.72586,541.8886 255.99179,538.1002 257.7875,537.5016 C 260.33224,536.6534 262.58854,536.1197 265.0625,534.2642 C 267.94576,532.1018 273.32926,530.8704 276.7875,533.4642 C 278.32317,534.616 282.356,537.0027 281.62501,539.9267 C 281.14749,541.8366 271.56002,542.4541 271.9375,543.9642 C 272.94259,547.9845 277.70179,546.7523 280.82501,548.0016 C 284.58624,549.5062 287.14483,549.5376 284.05,553.6642 C 282.59957,555.5981 283.25,556.5797 283.25,559.7267 C 283.25,563.6208 282.08525,563.8874 280.82501,560.5267 C 279.54907,557.1242 272.04997,555.289 272.3375,557.3016 C 272.46438,558.1899 274.36251,563.7475 274.3625,565.7891 C 274.3625,569.3696 272.64627,570.9354 269.5125,567.8016 C 267.94656,566.2357 267.53005,562.1517 265.0625,562.1517 C 259.19064,562.1517 261.42499,562.479 261.42501,566.1891 C 261.42501,570.0704 259.31738,572.6834 254.9625,571.4392 C 250.93394,570.2882 250.72189,570.6392 248.5,570.6392 C 243.94414,570.6392 245.33227,568.2267 242.0375,564.5766 C 237.68669,559.7565 233.57994,564.3971 233.55,564.5766 C 233.11938,567.1603 234.05194,574.8853 231.52501,576.2891 C 225.1084,579.8539 228.33704,582.3176 226.67501,583.5642 C 223.80754,585.7147 221.36413,586.5717 220.2125,590.0267 C 219.11843,593.3088 217.52851,596.3429 216.17501,599.7267 C 215.41725,601.6211 209.3,603.9357 209.3,605.3891 C 209.3,608.4206 209.1061,609.4274 208.5,611.8517 C 208.00589,613.8282 202.11926,617.9142 207.6875,617.9142 C 207.7773,617.9142 207.33272,617.9142 208.5,617.9142 C 212.30034,617.9141 213.45485,614.6766 216.97501,614.6766 C 222.01549,614.6766 222.7051,616.6216 219.4,619.9267 C 216.62883,622.6978 219.81685,624.7744 215.7625,626.8016 C 212.81382,628.276 212.43235,632.5104 211.72501,632.8642 C 206.84443,635.3045 206.36027,635.5061 204.05,640.1267 C 202.81411,642.5984 198.4,643.4256 198.4,646.1891 C 198.4,649.5546 200.31717,650.2704 200.8125,652.2517 C 202.20616,657.8262 195.89005,654.6766 192.7375,654.6766 C 187.4185,654.6766 188.46648,659.1365 185.4625,661.1392 C 181.08312,664.0587 179,665.8658 179,670.8392 C 179,673.9774 179.55078,676.9018 175.7625,676.9016 C 173.99392,676.9016 168.43291,676.2824 167.2875,677.7142 C 166.4672,678.7395 164.81267,683.3954 164.05,683.7766 C 161.3204,685.1414 157.77733,689.4267 154.35,689.4267 C 150.20448,689.4267 150.47794,690.6555 147.4875,691.8517 C 145.99782,692.4475 136.16282,698.7267 141.42501,698.7267 C 144.95909,698.7267 152.07752,697.5222 154.75,699.5267 C 158.03168,701.9878 156.8957,698.3141 158.3875,698.3142 C 159.19562,698.3142 160.00438,698.3141 160.8125,698.3142 C 162.4657,698.3142 169.19451,695.9382 170.9125,693.8766 C 171.99739,692.5747 177.24995,687.7142 178.1875,687.4016 C 180.61187,686.5936 183.65547,691.6336 185.4625,689.8267 C 188.00515,687.284 189.23483,685.541 188.2875,681.7517 C 187.68437,679.3392 188.01896,677.6782 191.12501,676.9016 C 193.46984,676.3155 194.64341,680.701 195.97501,683.3642 C 196.96026,685.3347 198.08445,690.7907 202.4375,688.6142 C 209.14418,685.2608 204.21501,689.8267 211.32501,689.8267 C 215.70358,689.8267 216.11539,688.6182 219.8125,686.6016 C 221.53512,685.6621 230.36989,681.0539 232.3375,684.9891 C 234.82608,689.9664 229.28898,684.6237 227.0875,689.0267 C 224.95074,693.3002 228.33414,692.2517 231.92501,692.2517 C 234.10806,692.2517 238.4021,690.8318 240.4125,689.8267 C 245.0139,687.5259 241.06379,688.501 247.2875,685.3891 C 250.91627,683.5747 253.22979,680.2594 255.77501,677.7142 C 257.75504,675.7341 257.88894,671.5627 259.4125,670.0392 C 261.35896,668.0926 264.70795,666.196 263.85,662.7642 C 263.5683,661.6374 263.05416,654.6766 265.0625,654.6766 C 273.46594,654.6766 269.87285,653.6624 271.12501,647.4016 C 271.87355,643.6589 273.04813,643.0536 275.1625,640.9392 C 278.27666,637.825 278.39909,648.2446 278,650.6392 C 277.42467,654.0912 272.3375,656.1584 272.3375,659.1267 C 272.3375,662.7942 275.57501,664.1874 275.57501,667.2016 C 275.57501,668.6334 278.68078,669.0352 278.4,670.4392 C 278.26531,671.1126 277.32432,672.3288 278,672.4517 C 280.97886,672.9933 288.7889,673.2642 292.5375,673.2642 C 296.91632,673.2642 299.83104,675.456 304.2625,676.0891 C 305.58939,676.2787 319.48122,677.8827 320.0125,680.5392 C 321.01792,685.5662 310.07,684.1766 305.87501,684.1766 C 302.11645,684.1766 295.54578,682.2122 292.5375,682.9642 C 287.61534,684.1947 281.02326,678.0654 275.57501,682.1517 C 271.43107,685.2595 273.53336,687.8086 268.7,688.6142 C 264.75331,689.272 261.2495,692.2517 258.2,692.2517 C 251.454,692.2517 247.67755,695.4483 242.0375,696.7016 C 235.84842,698.077 231.80037,700.6411 225.0625,698.7267 C 223.85032,698.7267 222.63718,698.7267 221.42501,698.7267 C 219.33872,698.7267 211.17037,694.9202 210.1125,696.7016 C 207.28408,701.4646 203.95312,703.0678 200.0125,701.5517 C 198.60899,701.0117 195.6204,696.095 194.7625,699.5267 C 194.28981,701.4174 189.02912,705.789 187.8875,702.3642 C 187.03085,699.7942 183.03533,697.9603 182.2375,701.1517 C 182.07304,701.8094 179.10083,709.1661 179,709.2267 C 173.94936,712.257 175.87066,714.003 173.75,717.7142 C 171.22274,722.137 168.18222,721.7624 163.65,723.7766 C 162.43782,724.3154 161.07371,724.5931 160.0125,725.3891 C 158.48869,726.532 154.81197,724.3538 154.35,726.2016 C 153.81747,728.3317 150.37213,732.612 146.67501,729.8392 C 144.54325,728.2403 136.1625,724.849 136.1625,729.8392 C 136.1625,732.8026 136.06275,739.5267 140.2125,739.5267 C 145.35288,739.5267 144.07074,742.1627 147.07501,743.1642 C 153.75371,745.3904 146.79302,749.7446 150.3125,753.2642 C 152.26371,755.2154 155.03709,759.3867 151.12501,760.9517 C 148.87557,761.8514 142.67056,764.3912 149.9125,766.2016 C 151.96738,766.7154 155.01834,764.9891 158.3875,764.9891 C 160.3549,764.9891 166.40853,763.9358 166.87501,765.8016 C 168.09395,770.6774 160.30822,772.3574 156.77501,773.0642 C 154.67042,773.4851 138.71523,774.1154 138.5875,773.4766 C 137.67584,768.9184 130.70595,771.1933 130.5125,769.8392 C 130.08082,766.8174 126.0625,765.7258 126.0625,762.9642 C 126.0625,759.8794 129.16608,757.1565 125.2625,757.7142 C 123.32624,757.9907 117.12741,759.2189 118.8,762.5642 C 119.61926,764.2027 120.4125,764.7698 120.4125,766.6016 C 120.4125,773.0218 118.91059,769.4267 114.75,769.4267 C 108.89418,769.4267 107.53949,770.2131 102.6375,772.6642 C 100.42029,773.7728 98.74654,772.9461 100,770.4392 C 100.03955,770.36 103.49531,762.8326 102.8375,762.9642 C 96.89195,764.1533 96.84773,767.1858 92.52501,768.6267 C 91.04261,769.2619 89.21894,771.0746 88.0875,771.4517 C 85.19314,772.4165 80.32659,771.9454 81.2125,775.4891 C 81.72283,777.5304 82.42501,779.0307 82.42501,781.5517 C 82.42501,786.0616 78.42352,781.5157 75.9625,783.9766 C 72.85891,787.0803 68.83005,783.8618 67.47501,781.1517 C 67.07454,780.3507 62.62501,776.4562 62.62501,780.3392 C 62.62501,782.7635 62.62501,785.1898 62.62501,787.6142 C 62.62501,789.3702 57.28398,788.9333 58.1875,790.4392 C 60.57003,794.4101 61.0125,793.5182 61.0125,797.3142 C 61.0125,800.3258 60.14859,802.9386 62.62501,804.1766 C 63.16374,804.4461 63.69958,804.7445 64.25,804.9891 C 65.46218,805.528 66.44336,805.4818 67.67501,804.9891 C 69.50813,804.2558 71.06816,802.269 73.1375,801.7517 C 75.6727,801.1179 75.5056,797.7739 78.3875,798.9267 C 81.54222,800.1886 82.26018,798.6915 84.45,796.5016 C 88.4155,792.5362 85.78726,797.1683 90.1,798.1267 C 91.31218,798.396 92.49574,798.9267 93.7375,798.9267 C 95.61347,798.9267 98.54501,795.0942 99,796.9142 C 99.54803,799.1062 100.83611,802.5642 103.8375,802.5642 C 106.86299,802.5642 108.0132,800.539 109.1,800.5392 C 111.9836,800.5392 113.79907,798.5518 116.77501,798.1267 C 120.0007,797.6659 129.65986,800.3755 132.12501,798.5267 C 135.48088,796.0098 137.32906,796.9309 140.6125,795.2891 C 143.83798,793.6763 145.10499,792.0642 149.1,792.0642 C 149.88523,792.0642 159.6,792.311 159.6,794.8891 C 159.6,799.36 158.3183,799.4304 155.9625,802.9642 C 154.35323,805.3781 151.56515,808.4334 147.4875,807.4142 C 144.72294,806.723 142.49491,804.4542 139,806.2016 C 136.0692,807.667 139.02848,812.0845 137.37501,813.0766 C 133.45165,815.4307 129.64667,816.5346 125.2625,818.7267 C 121.77722,820.4693 116.55434,819.7632 111.52501,821.9642 C 108.04022,823.4891 102.97741,826.9126 99.4,826.4016 C 97.51438,826.1323 95.21634,828.1134 93.3375,828.4267 C 89.9116,828.9976 91.78749,833.0822 90.9125,833.2766 C 87.32565,834.0738 81.9848,833.9158 83.2375,838.9267 C 83.80978,841.2158 86.88226,845.3819 84.85,847.4142 C 81.03563,851.2285 83.69773,854.2891 75.5625,854.2891 C 73.60181,854.2891 67.03315,857.4984 67.07501,857.5142 C 68.65336,858.1061 74.75,859.965 74.75,862.7642 C 74.75,864.0115 74.06675,871.7226 74.75,872.0642 C 75.84523,872.6117 81.56491,874.4891 82.8375,874.4891 C 83.42232,874.4891 88.02746,871.3117 88.0875,871.2517 C 88.65285,870.6862 89.33288,867.9677 90.5125,866.0016 C 91.0344,865.1318 96.58445,858.7581 98.1875,861.9642 C 100.06808,865.7254 98.86477,868.825 96.1625,870.8517 C 92.47373,873.6182 96.05893,875.9981 98.1875,878.1267 C 99.97686,879.916 105.05,878.8211 105.05,881.3517 C 105.05,888.0214 104.95374,889.4669 111.1125,887.4142 C 113.40512,886.6499 115.20506,883.3766 118.8,883.3766 C 124.93674,883.3766 122.39947,879.711 125.6625,876.9142 C 126.60531,876.1061 127.24574,874.4891 128.4875,874.4891 C 133.28494,874.4891 131.95738,872.6138 135.3625,871.2517 C 140.44656,869.2181 146.27499,873.9406 146.27501,873.2766 C 146.27501,868.4792 153.00816,872.7229 154.75,869.2392 C 156.86256,865.0141 157.63187,865.1891 163.2375,865.1891 C 167.33605,865.1891 168.8109,861.1517 172.9375,861.1517 C 176.21451,861.1517 178.96285,860.3517 182.2375,860.3517 C 185.22939,860.3517 185.40792,862.9701 184.65,866.0016 C 183.50614,870.5771 179.95278,870.4517 174.9625,870.4517 C 171.49986,870.4517 166.6557,869.304 165.6625,873.2766 C 165.07634,875.6213 157.00954,875.4398 157.17501,876.1016 C 157.83736,878.751 159.40685,882.7253 155.5625,881.7642 C 154.48501,881.4949 153.4025,881.221 152.32501,880.9517 C 151.30446,880.6965 151.11118,877.8421 150.3125,878.5267 C 148.38302,880.1805 148.81627,884.9891 146.27501,884.9891 C 145.60157,884.9891 144.92344,884.9891 144.25,884.9891 C 142.78512,884.9891 138.5875,882.0477 138.5875,885.4016 C 138.5875,889.897 136.78403,890.6149 132.5375,891.4642 C 125.39838,892.892 129.86246,894.3642 132.9375,895.9016 C 136.01341,897.4395 136.44155,899.1997 132.5375,901.1517 C 128.52981,903.1555 124.73365,901.4352 122.02501,900.3517 C 119.73533,899.4358 114.99814,899.1392 111.52501,899.1392 C 108.33048,899.1392 108.78613,900.549 109.9,902.7766 C 110.52352,904.0237 113.89973,906.9494 112.32501,908.8392 C 109.20046,912.5886 105.14315,911.7912 101.0125,914.8891 C 99.86902,915.7467 95.74989,919.9453 98.5875,921.3642 C 100.58693,922.3638 104.88778,924.7514 107.47501,922.1642 C 109.52536,920.1138 112.452,919.2122 114.75,916.9142 C 118.22854,913.4357 119.76963,916.2378 124.45,915.3016 C 128.52189,914.4872 131.47731,914.8891 135.7625,914.8891 C 135.7625,914.6198 135.49314,914.0891 135.7625,914.0891 C 139.10754,914.0891 143.01795,919.949 145.8625,918.5267 C 149.57646,916.6696 152.00502,915.5907 154.35,912.4642 C 155.28731,911.2144 157.76043,904.3891 159.2,904.3891 C 161.82237,904.3891 164.90378,901.564 165.2625,901.5642 C 167.0569,901.5642 172.38864,903.3851 173.75,902.3642 C 176.39437,900.3808 178.59611,900.2155 181.82501,899.1392 C 185.68765,897.8517 187.28,895.5032 189.1,893.0766 C 190.43144,891.3014 193.59626,887.7822 194.7625,891.8642 C 196.34686,897.4094 195.98437,895.511 198.4,897.9267 C 199.38854,898.9152 205.2475,901.5168 205.6625,903.1766 C 206.64408,907.103 204.44106,907.4195 200.4125,908.4267 C 197.74333,909.0939 194.93672,911.9442 192.3375,912.4642 C 188.40829,913.2499 178.50253,911.919 176.57501,914.4891 C 172.84256,919.4658 170.30024,918.6766 164.05,920.5517 C 159.76622,921.8368 154.82803,921.7306 150.7125,923.3766 C 146.25491,925.1597 147.41266,927.677 149.1,931.0517 C 149.93875,932.7291 150.92816,934.724 153.5375,934.2891 C 156.95995,933.7187 158.90922,931.576 161.22501,929.8392 C 162.39661,928.9605 168.0583,926.8245 168.9,926.6142 C 171.6357,925.9302 175.35197,923.7126 177.7875,921.7642 C 181.19618,919.0373 182.23624,919.7392 185.4625,919.7392 C 186.60214,919.7392 193.21776,922.1102 189.9125,924.5891 C 182.91038,929.8408 192.77603,927.1109 180.2125,930.2517 C 175.68614,931.3832 168.28034,932.1611 166.07501,935.1016 C 160.948,941.9376 163.7356,938.1811 156.77501,941.1642 C 154.18114,942.2758 148.6057,948.8392 152.32501,948.8392 C 155.51992,948.8392 158.37978,949.6392 162.02501,949.6392 C 163.83251,949.6392 167.14261,951.529 168.0875,949.6392 C 169.20034,947.4134 169.78506,944.3466 172.12501,943.1766 C 174.09749,942.1904 176.73528,942.3642 179.4,942.3642 C 181.60242,942.3642 187.52118,943.5218 188.7,941.1642 C 190.72533,937.1136 191.37818,939.9056 194.7625,940.7517 C 196.43819,941.1706 198.16653,941.3851 199.6,939.9517 C 201.95856,937.5931 201.45654,933.0376 204.8625,933.8891 C 208.41963,934.7784 209.3,936.0389 209.3,939.5392 C 209.3,943.3645 211.23858,945.2755 214.15,942.3642 C 216.78048,939.7338 218.6,940.9067 218.6,944.3891 C 218.6,948.82 218.41966,948.8392 222.2375,948.8392 C 225.75928,948.8392 227.49691,946.0018 229.9125,946.0016 C 233.59926,946.0016 234.9567,948.3563 237.9875,948.8392 C 238.65685,948.9459 239.33064,949.0451 240,949.1517 C 240,946.7702 239.614,944.0427 240,941.7267 C 240.60565,938.0928 246.2875,937.1741 246.2875,937.1517 C 246.2875,931.5422 244.5049,931.7618 248.57501,929.7267 C 252.51997,927.7542 252.44478,933.7562 254.8625,933.1517 C 257.8067,932.4157 262.43362,934.1035 265.5875,932.5267 C 269.97205,930.3344 270.79792,929.6621 274.2875,933.1517 C 278.16573,937.0299 281.91283,936.3954 283.12501,932.4142 C 283.12501,931.2714 285.85597,931.4261 286.3625,930.4016 C 288.30754,926.4678 285.4077,919.9741 289.7125,920.5891 C 290.46472,920.6966 300.59454,922.1402 301.1375,922.8642 C 304.10251,926.8176 308.30243,930.4082 314.2875,928.0142 C 318.94346,926.1518 316.50142,922.041 314.8625,920.0142 C 314.0711,919.0355 301.58811,913.2723 309.1375,912.0142 C 311.74768,911.579 313.58189,908.552 316,909.6267 C 324.86966,913.5688 328.1784,913.905 334.2875,920.0142 C 336.09016,921.8168 337.04803,918.5264 340.3,914.9267 C 342.9264,912.0194 338.88854,909.3029 340.87501,905.8267 C 346.91099,895.2637 349.13285,905.1563 353.1375,901.1517 C 355.00656,899.2826 356.61693,895.4392 360.57501,895.4392 C 363.1291,895.4392 372.39402,894.8962 370.8625,890.3016 C 370.59942,889.5125 370.64408,881.7536 369.7125,880.5891 C 368.95059,879.6368 366.97442,877.2666 366.2125,876.3142 C 367.03069,875.7005 374.77514,869.9486 373.7125,869.1517 C 370.91517,867.0536 365.18272,860.8622 368.57501,860.0142 C 371.60728,859.256 372.46557,863.5486 374.2875,861.7267 C 375.63376,860.3805 383.81277,857.5509 381.7125,858.8642 C 380.11851,859.8608 386.85536,858.9451 385.7125,870.3016 C 385.23765,875.0203 371.99419,873.2682 379.42501,877.7267 C 381.40518,878.9147 389.42731,883.863 391.42501,882.8642 C 394.19331,881.48 400.36912,882.6883 401.1376,881.1517 C 403.01472,877.3971 411.916,875.8845 412.57504,872.5891 C 413.62688,867.3298 415.98192,868.1376 420,865.7267 C 421.09248,865.071 433.63696,861.651 431.42496,859.4392 C 430.41344,858.4275 425.61312,856.9987 426.28752,854.3016 C 426.54832,853.2586 434.66272,845.5798 432.57504,844.0142 C 429.42992,841.6554 429.86288,837.7501 430.96256,833.3517 C 432.20528,828.3806 435.70256,829.6667 436.47504,834.3016 C 436.91792,836.9587 435.6304,842.1694 438.28752,841.7267 C 446.512,840.3558 438.51808,842.5322 442.28752,846.3016 C 442.84304,846.8571 449.776,853.4848 450.28752,851.4392 C 451.44144,846.8237 453.51072,849.5678 454.86256,846.8642 C 456.98544,842.6182 457.10352,841.9595 459.42496,838.8642 C 462.1696,835.2048 469.75872,833.0592 471.42496,829.7267 C 473.73104,825.1147 471.27536,826.5648 469.71248,823.4392 C 468.60192,821.2179 468.196,817.1517 465.71248,817.1517 C 460.75184,817.1517 462.09472,812.0141 464.57504,812.0142 C 467.04768,812.0141 480,813.4693 480,810.8642 C 480,799.917 487.75536,806.7051 494.28752,803.4392 C 494.66848,803.2486 495.00736,802.9477 495.42496,802.8642 C 503.22864,801.3035 510.8624,804.2085 510.86256,802.8642 C 510.86256,797.425 516.26032,800.22 518.86256,802.3016 C 525.05904,807.2589 522.6664,805.8706 527.42496,802.3016 C 528.9488,801.1587 530.36672,799.8442 532,798.8642 C 536.46208,796.1869 538.25456,796.3902 536.57504,800.5891 C 532.77344,810.0931 531.99952,806.3016 541.1376,806.3016 C 546.0672,806.3016 547.43616,801.8738 552.57504,800.5891 C 554.48672,800.1112 558.28016,795.7744 556.9376,793.0891 C 556.24096,791.6962 557.13312,784.2891 556,783.4392 C 555.23808,782.8677 554.4744,782.2981 553.71248,781.7267 C 548.0168,777.4549 544.6264,780.6184 542.28752,778.8642 C 539.11664,776.4861 529.94128,774.9762 532.57504,772.0142 C 539.26288,764.4925 550.57456,768.2333 549.71248,765.1517 C 548.2176,759.8075 548.48304,756.5582 553.71248,753.7267 C 553.71248,754.4886 553.71248,755.2522 553.71248,756.0142 C 553.71248,760.2099 553.1376,764.0168 553.1376,766.8642 C 553.13744,767.6261 557.1376,768.3898 557.1376,769.1517 C 557.1376,771.1867 556.9888,777.816 558.28752,779.4392 C 561.29536,783.1989 566.28736,783.5586 566.28752,788.5891 C 566.28752,792.9846 569.17136,793.0643 562.38752,797.1267 C 557.54032,800.0293 564.71104,804.579 569.1376,800.5891 C 573.13744,796.9835 569.79824,796.4146 576,794.8642 C 579.17168,794.0712 577.38768,788.9774 576.57504,785.7267 C 575.33104,780.7507 579.06704,783.171 580,779.4392 C 580.84624,776.0541 583.86688,775.3061 586.28752,777.7267 C 586.9624,778.4014 590.60192,785.1483 592,784.5891 C 604.7624,779.4842 598.86736,784.7341 605.1376,786.3016 C 608.54112,787.1525 609.668,793.8624 611.42496,794.3016 C 614.7624,795.136 620.18368,789.1078 623.32496,789.6891 C 627.15904,790.3986 626.40336,784.5891 628.51248,784.5891 C 631.068,784.5891 630.71312,788.8222 633.1376,788.0142 C 636.10704,787.0243 640.81888,786.5454 643.42496,789.1517 C 645.97024,791.697 649.1376,794.3862 649.1376,788.5891 C 649.1376,784.4046 652,782.933 652,780.5891 C 652,775.0549 651.99248,774.2979 647.42496,772.0142 C 641.0688,768.836 648.02176,768.036 645.71248,765.7267 C 642.96544,762.9795 634.28736,767.3242 634.28752,763.4392 C 634.28752,757.177 631.5176,758.3016 625.71248,758.3016 C 621.44672,758.3016 621.51456,752.5891 623.42496,752.5891 C 624.37744,752.5891 625.33504,752.5891 626.28752,752.5891 C 630.65376,752.5891 634.34064,753.1517 638.86256,753.1517 C 641.5736,753.1517 643.79808,747.6973 644.57504,744.5891 C 645.7,740.0891 649.84288,741.2302 650.86256,737.1517 C 652.0912,732.2366 655.06544,729.2562 657.71248,725.7267 C 659.71728,723.0536 660.40544,718.4318 662.86256,716.5891 C 666.52512,713.8422 665.0704,713.4571 666.28752,708.5891 C 666.83136,706.4139 667.47232,701.8264 666.28752,698.8642 C 664.57824,694.591 663.42496,693.2798 663.42496,688.0142 C 663.42496,683.5258 662.16112,681.2781 665.1376,678.3016 C 665.89952,677.5397 666.6632,676.776 667.42496,676.0142 C 670.952,672.487 668.2824,670.5773 669.1376,666.3016 C 669.90848,662.4472 673.1376,660.8538 673.1376,656.5891 C 673.13744,652.3134 676.57504,649.5734 676.57504,645.7267 C 676.57504,641.9896 677.6672,637.4568 681.1376,636.5891 C 683.84656,635.9118 687.42496,633.3174 687.42496,629.1517 C 687.42496,625.9958 687.4344,622.8421 688,620.0142 C 689.1464,614.2821 687.42496,609.5235 687.42496,604.0142 C 687.42496,603.0618 687.42496,602.104 687.42496,601.1517 C 687.42496,594.7069 686.42496,594.5438 686.42496,588.5891 C 686.42496,584.8234 686.04992,581.2717 686.05008,577.5267 C 686.05008,571.9878 683.66848,571.1075 680.57504,568.0142 C 677.75632,565.1955 678.41344,560.715 676,558.3016 C 672.85424,555.1558 675.33456,551.6277 674.28752,547.4392 C 673.37664,543.7957 670.8624,540.5176 670.86256,536.0142 C 670.8624,529.3278 663.13808,532.2896 660,529.1517 C 657.55184,526.7034 658.28736,522.6616 658.28752,518.8642 C 658.28752,512.0686 664.98096,516.0141 669.71248,516.0142 C 677.79904,516.0141 685.07008,517.6667 676,510.8642 C 673.4096,508.9213 667.42496,509.5397 667.42496,506.3016 C 667.42496,505.7302 667.68064,505.1002 667.42496,504.5891 C 666.6816,503.1024 659.28832,494.6947 662.86256,492.0142 C 674.53504,483.2598 667.37088,490.648 665.71248,484.0142 C 663.55168,475.3706 674.28736,479.3722 674.28752,476.5891 C 674.28752,470.675 670.00608,466.3603 665.1376,463.4392 C 659.25072,459.907 660.3456,453.7291 658.28752,452.0142 C 652.72096,447.3754 656.39328,440.9824 653.1376,437.7267 C 649.75728,434.3464 649.57504,432.7563 649.57504,427.5766 C 649.57504,421.5011 656.62816,417.356 652,412.5891 C 651.11408,411.8805 650.28752,408.6573 650.28752,407.4392 C 650.28752,402.1002 652.14928,402.424 650.86256,398.3016 C 648.50672,390.7547 648.096,394.3016 642.28752,394.3016 C 639.28928,394.3016 634.28752,393.1466 634.28752,389.7267 C 634.28752,386.311 631.83024,383.9581 633.71248,381.1517 C 636.94496,376.332 633.71248,373.5362 633.71248,369.7267 C 630.68208,367.2645 632.46528,359.4419 636.9376,363.9141 C 640.27216,367.2488 643.45024,372.2173 647.42496,372.0141 C 649.02288,371.9325 652.9488,368.1949 654.86256,369.1517 C 658.39344,370.9171 660.9552,369.7267 665.1376,369.7267 C 670.57664,369.7267 667.76416,367.0464 666.86256,363.4392 C 664.68208,354.7174 663.42752,365.1542 659.42496,361.1517 C 655.85552,357.5821 651.32256,354.6992 647.52496,350.9016 C 644.99456,348.371 639.42496,349.3054 639.42496,345.7267 C 639.42496,340.2259 642.1976,342.9531 646.28752,344.5891 C 648.19232,345.351 650.0952,346.1022 652,346.8642 C 656.2744,348.5739 663.45296,350.8845 666.86256,352.5891 C 672.4264,355.3712 672.388,356.3142 679.06256,356.3141 C 679.44336,356.3141 679.6304,354.3941 680,354.3016 C 683.49072,353.429 686.40848,353.4846 688.57504,349.1517 C 689.98176,346.3381 693.6744,342.0674 695.42496,339.4392 C 698.89632,334.2277 699.36352,331.408 700.1,327.4392 C 700.34576,326.1149 698.47264,322.679 699.42496,321.7267 C 702.75568,318.396 704.5688,317.1642 703.42496,312.5891 C 702.91424,310.5459 702.7416,302.3016 706.28752,302.3016 C 710.392,302.3016 711.15024,302.6149 712,306.8642 C 712.79232,310.8258 712.24112,313.0312 716.57504,310.8642 C 719.75776,309.2728 723.54608,308.9094 725.1376,305.7267 C 727.20048,301.6006 737.14096,305.1309 736.67504,300.8517 C 736.11648,295.7211 746.84928,297.4877 737.27504,292.5141 C 735.42608,291.5538 736.49632,289.0765 733.71248,288.0141 C 722.79136,283.8464 728.46256,285.6493 728.46256,282.2267 C 728.4624,277.8563 730.63584,274.5637 729.71248,270.3016 C 729.7376,270.201 730.8624,267.0266 730.86256,264.5891 C 730.8624,262.0029 727.8848,256.4752 728,256.0141 C 728.54848,253.8206 729.45008,250.2094 729.45008,248.5891 C 729.45008,246.4933 728.044,241.1957 726.86256,240.0141 C 726.2248,239.3765 719.16272,231.5787 720,231.4392 C 722.97072,230.944 725.02576,227.5141 728.0376,227.5141 C 734.03984,227.5141 731.96432,219.1243 735.42496,230.3016 C 736.3904,233.4197 737.71248,235.7522 737.71248,240.0141 C 737.71248,244.8832 741.1376,246.6829 741.1376,250.8642 C 741.1376,254.317 742.28736,256.2814 742.28752,260.0141 C 742.28752,264.2966 737.71248,266.8638 737.71248,268.0141 C 737.71248,271.5658 738.02672,273.2462 738.86256,276.5891 C 739.12128,277.6245 739.65728,284.4115 741.1376,285.1517 C 744.69168,286.9286 747.41456,287.181 748,282.8642 C 748.18048,281.5333 750.8624,277.072 750.86256,274.3016 C 750.86256,269.9509 752.09536,270.0986 753.1376,268.0141 C 754.21328,265.8627 754.16112,262.8197 754.86256,260.0141 C 755.26032,258.423 758.7728,250.8256 755.42496,249.1517 C 751.48032,247.1794 753.53472,244.5397 751.42496,241.7267 C 751.04592,241.2213 749.11024,234.1282 748.57504,233.7267 C 746.03408,231.821 745.47168,227.7608 742.86256,225.1517 C 741.032,223.3211 740,222.1317 740,218.3016 C 740,217.0686 740.01344,208.3083 739.42496,208.0141 C 734.31776,205.4605 734.35824,205.22 731.32496,205.8267 C 726.86704,206.7182 725.46016,209.6597 722.62496,210.2267 C 718.3032,211.091 714.9016,213.1517 709.71248,213.1517 C 704.34144,213.1517 704.6528,215.9363 702.28752,218.3016 C 699.4176,221.1715 698.65248,224.5274 692,222.8642 C 689.29136,222.187 690.16176,217.9531 691.9376,214.4016 C 693.51856,211.2395 694.65376,207.9168 696.97504,204.6517 C 699.77184,200.7173 702.74224,201.3966 707.42496,200.3141 C 711.13136,199.4574 712.02208,194.2883 714.28752,192.5891 C 717.5792,190.1205 716.57504,186.2802 716.57504,181.7267 C 716.57504,177.7267 716.57504,173.7267 716.57504,169.7267 C 716.57504,165.6458 713.51248,160.7987 713.51248,166.0267 C 713.51248,168.1102 709.25456,181.2982 706.86256,176.5141 C 705.22592,173.2411 705.72416,168.611 704.57504,164.0141 C 703.93328,161.447 703.14224,157.7934 700.57504,157.1517 C 694.52464,155.639 693.39072,148.6736 693.1376,148.5891 C 691.4232,148.0178 689.87776,145.5227 688.2,144.8517 C 686.21888,144.0592 677.84992,138.5136 677.85008,136.2392 C 677.85008,133.137 679.5,131.723 679.5,128.1141 C 679.5,125.803 679.32944,117.1989 677.41248,118.2642 C 671.95968,121.2946 671.42496,118.2293 671.42496,114.3016 C 671.42496,111.1115 671.61664,107.6058 670.86256,104.5891 C 669.47024,99.02 673.71248,102.276 673.71248,97.7267 C 673.71248,90.0418 669.71712,96.0234 668,92.5891 C 666.8832,90.3555 666.3408,85.9622 662.28752,85.1515 C 657.72096,84.2382 656.88432,85.1515 651.42496,85.1515 C 650.73552,85.1515 639.67712,85.0226 639.42496,84.0141 C 638.19056,79.076 632.90224,80.0482 628.57504,80.5891 C 620.56832,81.5899 620.62,77.1515 614.28752,77.1515 C 607.02656,77.1515 608.224,79.8594 604.57504,80.5891 C 599.9416,81.5158 602.99888,84.4402 600,87.439 C 597.90512,89.5339 594.69056,90.3016 590.28752,90.3016 C 588.29024,90.3016 579.49552,89.2533 578.28752,90.8642 C 577.14736,92.3842 573.90352,100.2061 573.1376,100.5891 C 568.17168,103.0722 560.31744,97.1566 553.47504,96.5141 C 545.9848,95.8109 545.60224,98.9658 548.67504,106.7392 C 549.41536,108.612 542.28752,113.0381 542.28752,114.3016 C 542.28752,115.4672 542.96704,123.7005 541.71248,124.0141 C 538.79152,124.7445 531.10192,125.3424 528.9376,125.6517 C 523.76832,126.3901 523.6792,122.061 517.17504,124.1141 C 514.78512,124.8686 508.60064,120.1165 508.57504,120.0141 C 507.57104,115.9986 508.66768,115.3466 511.42496,112.5891 C 513.35632,110.6579 518.33312,107.2936 520.27504,105.3517 C 522.45328,103.1733 521.844,100.3499 524.57504,98.3016 C 527.14704,96.3726 530.296,95.7766 533.71248,93.7267 C 536.4504,92.0838 542.23616,93.995 542.86256,90.8642 C 543.7624,86.364 546.61248,85.9013 545.71248,82.3016 C 545.10976,79.8907 544.92784,74.4846 541.1376,73.7266 C 536.82864,72.8648 533.88928,70.8642 528.57504,70.8642 C 524.50592,70.8642 523.44112,68.6059 521.1376,65.7266 C 519.69904,63.9283 515.0512,59.6301 514.28752,59.439 C 509.56848,58.2594 509.80608,54.0312 506.28752,53.1515 C 503.88464,52.5509 501.288,52.4067 498.66256,52.4141 z";
var northernirelandPath = "M 614.39744,75.822111 C 612.12844,75.822111 610.68294,76.086261 609.65994,76.472111 C 609.45534,76.549281 609.27164,76.636371 609.09744,76.722111 C 607.35484,77.579521 606.96554,78.803481 604.68494,79.259611 C 600.05144,80.186301 603.10884,83.110721 600.10994,86.109611 C 598.40784,87.811721 595.96474,88.634751 592.74744,88.884611 C 592.49994,88.903831 592.25414,88.922071 591.99744,88.934611 C 591.48404,88.959691 590.94784,88.972111 590.39744,88.972111 C 588.46254,88.972111 580.15094,87.994091 578.53494,89.397111 C 578.48284,89.442371 578.43514,89.484271 578.39744,89.534611 C 577.25734,91.054651 574.01334,98.876621 573.24744,99.259611 C 572.78184,99.492391 572.28554,99.650701 571.77244,99.747111 C 571.43034,99.811391 571.08324,99.847601 570.72244,99.859611 C 565.85124,100.0218 559.35824,95.726721 553.58494,95.184611 C 546.09464,94.481291 545.71214,97.636161 548.78494,105.40961 C 549.52524,107.28244 542.39734,111.70854 542.39744,112.97211 C 542.39744,113.91916 542.85204,119.53238 542.34744,121.77211 C 542.30864,121.9444 542.26064,122.0934 542.20994,122.22211 C 542.10844,122.47953 541.97924,122.64541 541.82244,122.68461 C 538.90144,123.41486 531.21174,124.0129 529.04744,124.32211 C 528.88584,124.34519 528.72444,124.35858 528.57244,124.37211 C 528.42044,124.38564 528.27804,124.40493 528.13494,124.40961 C 526.99014,124.44704 526.11404,124.21227 525.33494,123.88461 C 525.14014,123.8027 524.95844,123.71287 524.77244,123.62211 C 523.19164,122.85068 521.82994,121.86363 518.95994,122.37211 C 518.79104,122.40202 518.61454,122.43148 518.43494,122.47211 C 518.07574,122.55337 517.69144,122.65629 517.28494,122.78461 C 517.18014,122.81769 517.06574,122.83427 516.94744,122.84711 C 516.93484,122.84846 516.92264,122.84598 516.90994,122.84711 C 516.80154,122.85682 516.69064,122.86503 516.57244,122.85961 C 516.55624,122.85891 516.53874,122.86059 516.52244,122.85961 C 516.40944,122.85253 516.29294,122.84146 516.17244,122.82211 C 516.09224,122.80924 516.00554,122.79004 515.92244,122.77211 C 515.86044,122.75876 515.79834,122.7506 515.73494,122.73461 C 515.69364,122.72417 515.65184,122.70864 515.60994,122.69711 C 515.60154,122.6948 515.59334,122.68697 515.58494,122.68461 C 515.38384,122.62836 515.17184,122.56306 514.95994,122.48461 C 514.95104,122.48133 514.94384,122.47543 514.93494,122.47211 C 514.70574,122.38654 514.47184,122.29103 514.23494,122.18461 C 514.09384,122.12148 513.95244,122.05368 513.80994,121.98461 C 513.80164,121.9806 513.79314,121.97615 513.78494,121.97211 C 513.46064,121.81424 513.13234,121.63903 512.80994,121.45961 C 512.80674,121.45785 512.80054,121.46138 512.79744,121.45961 C 512.46554,121.27474 512.15164,121.07892 511.83494,120.88461 C 511.69334,120.79746 511.55904,120.72169 511.42244,120.63461 C 511.25014,120.5253 511.08484,120.41672 510.92244,120.30961 C 510.87404,120.2776 510.83224,120.25378 510.78494,120.22211 C 510.53684,120.05687 510.33764,119.91048 510.12244,119.75961 C 510.00904,119.78005 509.88774,119.80278 509.82244,119.82211 C 509.88134,124.39563 504.87544,123.25962 500.10994,123.25961 C 499.82754,123.25961 495.05204,127.25962 493.24744,127.25961 C 485.90154,127.25961 488.64104,129.13591 485.82244,134.68461 C 484.47684,137.33311 485.09254,144.97212 488.68494,144.97211 C 491.56734,144.97211 487.24434,152.24555 489.82244,153.53461 C 490.05834,153.65257 488.72684,154.6336 488.39744,155.53461 C 486.89464,158.0143 485.21524,160.42933 484.10994,161.53461 C 481.03424,164.61034 480.10994,165.55453 480.10994,170.10961 C 480.10994,176.58911 474.69004,173.48916 473.24744,179.25961 C 472.53844,182.09546 472.68494,185.23839 472.68494,188.39711 C 472.68494,189.38141 471.40044,200.01779 468.68494,196.39711 C 468.06514,195.57078 461.24744,189.70538 461.24744,194.68461 C 461.24744,202.06336 448.28584,199.44733 447.53494,199.25961 C 445.28464,198.69705 438.68604,198.10961 434.39744,198.10961 C 425.81234,198.10961 434.50194,204.10409 429.82244,206.10961 C 423.43404,208.84748 425.24744,207.89578 425.24744,211.82211 C 425.24744,215.90077 423.48614,221.53462 428.68494,221.53461 C 433.98144,221.53461 434.50924,226.1407 436.68494,226.68461 C 443.95124,228.50118 437.54684,220.39711 440.68494,220.39711 C 443.16844,220.39711 444.75104,215.28646 446.97244,216.39711 C 452.28934,219.0556 448.23954,222.76387 450.09744,225.23461 C 449.67944,225.25409 439.79004,229.98208 439.53494,230.10961 C 436.99644,231.37884 442.08174,236.90104 437.24744,238.10961 C 433.96734,238.92963 434.93324,241.10836 432.95994,242.13466 C 433.30904,242.14496 433.66244,242.16766 434.03494,242.20966 C 436.64964,242.50436 437.50994,242.32566 437.50994,241.47216 C 437.50994,241.21576 437.64264,241.07556 437.93494,241.05966 C 438.57784,241.02456 439.98564,241.58566 442.43494,242.82216 L 447.37244,245.30966 L 445.70994,247.63466 C 444.18324,249.77856 444.16224,250.04776 445.39744,251.07216 C 447.35294,252.69386 448.93494,256.96626 448.93494,260.63466 C 448.93494,263.36106 449.22504,263.91486 450.94744,264.34716 C 452.10224,264.63696 454.38634,266.76086 456.25994,269.29716 C 458.90724,272.88066 459.53494,274.41996 459.53494,277.28466 C 459.53494,279.23706 459.02534,281.53836 458.39744,282.39716 C 457.33494,283.84996 457.07124,283.57666 454.58494,278.53466 C 453.03604,275.39376 451.13404,272.76156 450.05994,272.27216 C 449.04064,271.80776 446.80404,270.18596 445.09744,268.65966 C 443.39084,267.13326 440.34144,264.87236 438.32244,263.63466 C 436.30334,262.39686 434.05914,260.63326 433.33494,259.72216 C 432.21364,258.31146 430.80884,258.00796 423.83494,257.67216 L 415.64744,257.28466 L 416.45994,254.92216 C 416.91174,253.62606 417.05864,251.67566 416.78494,250.58466 C 416.32624,248.75756 416.85344,248.33056 423.42244,245.20966 C 426.08484,243.94466 427.91824,243.13966 429.39744,242.67216 C 425.58124,242.57776 423.49624,241.22776 420.68494,239.82211 C 417.37434,238.16683 414.14994,240.66295 411.53494,241.53466 C 408.07104,242.68926 408.68494,246.70106 408.68494,250.10966 C 408.68494,255.31276 402.75064,253.96556 401.24744,256.97216 C 399.41244,260.64196 392.97444,258.90796 389.82244,261.53466 C 388.55182,262.59346 386.54655,262.93346 383.53492,262.97216 C 380.96262,261.30476 384.42727,265.35706 384.68492,266.10966 C 384.68491,267.95936 387.98093,275.47636 389.82244,276.39716 C 394.69014,278.83096 396.10884,280.39596 399.53494,283.82216 C 401.88864,286.17576 402.92324,289.50616 406.39744,291.82216 C 407.22074,292.37116 416.74274,300.01886 416.97244,300.10966 C 417.02594,300.09876 417.07844,300.08846 417.13494,300.08466 C 418.11904,300.01816 419.50274,300.96406 419.53494,300.97216 C 424.68674,302.26006 422.91464,303.20186 425.82244,306.10966 C 428.03284,308.32006 429.81454,311.23916 432.10994,313.53466 C 434.56354,315.98826 435.77654,319.82216 438.97244,319.82216 C 443.35654,319.82216 443.87114,318.76246 448.10994,319.82216 C 451.98524,320.79096 454.39744,320.51366 454.39744,324.97216 C 454.39734,329.32796 454.67074,330.68466 459.53494,330.68466 C 464.64994,330.68456 467.51834,332.38676 472.10994,333.53466 C 473.60764,333.90906 476.75834,344.88616 481.82244,339.82216 C 482.29754,339.34706 486.38324,331.79056 487.53494,336.39716 C 488.95504,342.07736 494.13984,338.31156 497.24744,337.53466 C 497.39254,337.49836 506.85904,327.68806 506.39744,329.53466 C 506.51374,329.47796 506.73124,329.34356 506.98494,329.18466 C 507.57964,324.82216 510.39584,324.37836 511.53494,319.82216 C 512.34374,316.58686 521.02184,313.43556 522.97244,309.53466 C 523.33844,308.80236 520.10994,303.60846 520.10994,300.97216 C 520.10994,298.47846 518.63484,295.42266 519.53494,291.82216 C 520.17714,289.25316 521.73204,289.98536 523.53494,289.53466 C 523.46094,289.19936 523.39734,288.88286 523.33494,288.55966 C 525.99164,287.80236 530.90314,286.23566 531.53494,284.97216 C 533.90594,280.23006 532.78294,279.14906 535.53494,276.39716 C 537.93444,273.99766 538.53724,270.49596 541.90994,270.47216 C 542.39174,270.46866 542.92664,270.53256 543.53494,270.68466 C 545.34474,271.13706 555.21704,270.80746 555.53494,272.39716 C 555.81984,273.82146 553.86444,279.83576 556.10994,280.39716 C 558.04564,280.88106 563.66764,285.90256 564.97244,287.80966 C 564.97304,287.81366 564.97144,287.81806 564.97244,287.82216 C 564.07164,293.13956 566.39734,299.05986 566.39744,303.82216 C 566.39734,308.90506 569.49924,308.31356 570.97244,311.25966 C 572.01534,313.34576 575.04744,317.38486 575.53494,319.82216 C 576.03774,322.33616 579.10804,328.30146 583.53494,325.53466 C 586.98684,323.37716 589.49414,320.63136 592.68494,323.82216 C 594.80124,325.93846 594.97244,329.11666 594.97244,332.97216 C 594.97244,335.57796 595.53494,338.75416 595.53494,340.97216 C 595.53494,344.22486 594.75324,348.69526 595.53494,351.82216 C 596.12464,354.18076 603.71874,362.53696 604.10994,360.97216 C 604.32144,361.01416 604.51774,361.04346 604.70994,361.07216 C 604.72064,360.74976 604.79784,360.51326 604.97244,360.39716 C 606.19854,356.63526 610.84754,356.84716 614.97244,357.53466 C 617.47504,357.95176 623.78844,358.27066 624.68494,354.68466 C 625.31204,352.17616 631.53494,349.15466 631.53494,348.97216 C 631.53494,346.76846 638.95554,346.59336 639.58494,344.97216 C 639.57614,344.92766 639.56624,344.88106 639.55994,344.83466 C 639.55344,344.78966 639.55184,344.74366 639.54744,344.69716 C 639.53924,344.60106 639.53494,344.49946 639.53494,344.39716 C 639.53494,338.89646 642.30744,341.62366 646.39744,343.25966 C 648.30214,344.02156 650.20514,344.77276 652.10994,345.53466 C 656.38424,347.24436 663.56294,349.55486 666.97244,351.25966 C 672.53634,354.04156 672.49784,354.98466 679.17244,354.98466 C 679.26764,354.98466 679.34554,354.86606 679.42244,354.68466 C 679.49924,354.50316 679.57714,354.25536 679.64744,354.00966 C 679.77044,353.57946 679.89504,353.14356 680.04744,353.00966 C 680.06924,352.99046 680.08684,352.97786 680.10994,352.97216 C 683.60064,352.09946 686.51844,352.15516 688.68494,347.82216 C 690.09174,345.00846 693.78434,340.73776 695.53494,338.10966 C 699.00624,332.89816 699.47344,330.07856 700.20994,326.10966 C 700.22524,326.02686 700.23494,325.93276 700.23494,325.83466 C 700.23504,324.36246 698.64204,321.28996 699.53494,320.39716 C 702.86554,317.06646 704.67864,315.83456 703.53494,311.25966 C 703.50304,311.13196 703.47584,310.98226 703.44744,310.80966 C 703.02054,308.22036 703.07304,300.97206 706.39744,300.97216 C 710.50194,300.97216 711.26004,301.28536 712.10994,305.53466 C 712.70414,308.50586 712.53694,310.49286 714.24744,310.38466 C 714.38994,310.37556 714.55234,310.34836 714.72244,310.30966 C 715.23264,310.19346 715.87234,309.94096 716.68494,309.53466 C 719.86764,307.94326 723.65604,307.57986 725.24744,304.39716 C 727.31044,300.27106 737.25084,303.80136 736.78494,299.52216 C 736.22634,294.39156 746.95924,296.15816 737.38494,291.18466 C 735.53604,290.22416 736.60624,287.74696 733.82244,286.68466 C 722.90124,282.51686 728.57244,284.31966 728.57244,280.89716 C 728.57244,276.52676 730.74574,273.23416 729.82244,268.97216 C 729.84764,268.87146 730.97234,265.69706 730.97244,263.25966 C 730.97244,260.99666 728.69014,256.48686 728.19744,255.08466 C 728.16224,254.98446 728.13784,254.90106 728.12244,254.83466 C 728.10694,254.76816 728.10274,254.71346 728.10994,254.68466 C 728.65834,252.49106 729.55994,248.87996 729.55994,247.25966 C 729.55994,245.16376 728.15394,239.86617 726.97244,238.68461 C 726.33474,238.04695 719.27264,230.24917 720.10994,230.10961 C 722.52364,229.70733 724.33844,227.37285 726.54744,226.50961 C 726.71734,226.44321 726.88484,226.38199 727.05994,226.33461 C 727.41014,226.23986 727.77094,226.18461 728.14744,226.18461 C 728.33504,226.18461 728.51274,226.17514 728.68494,226.15961 C 728.85714,226.14408 729.02724,226.12647 729.18494,226.09711 C 729.50024,226.03839 729.78524,225.9509 730.04744,225.84711 C 730.17854,225.79522 730.30334,225.73272 730.42244,225.67211 C 733.63744,224.03584 732.61494,219.54123 735.53494,228.97211 C 735.65564,229.36186 735.78134,229.73911 735.90994,230.10961 C 736.74544,232.51788 737.68094,234.63407 737.80994,237.90961 C 737.81984,238.16158 737.82244,238.41824 737.82244,238.68461 C 737.82244,243.55366 741.24744,245.35336 741.24744,249.53466 C 741.24744,252.98746 742.39734,254.95186 742.39744,258.68466 C 742.39744,262.96706 737.82244,265.53436 737.82244,266.68466 C 737.82244,270.23616 738.13664,271.91666 738.97244,275.25966 C 739.20694,276.19786 739.67354,281.85536 740.85994,283.45966 C 740.90084,283.51496 740.94224,283.56426 740.98494,283.60966 C 741.07024,283.70026 741.15484,283.77586 741.24744,283.82216 C 742.80234,284.59956 744.19504,285.08326 745.32244,285.02216 C 745.48344,285.01336 745.64764,284.99146 745.79744,284.95966 C 746.99564,284.70516 747.81714,283.69296 748.10994,281.53466 C 748.29044,280.20376 750.97244,275.74246 750.97244,272.97216 C 750.97244,269.70906 751.66104,268.97636 752.44744,267.93466 C 752.57844,267.76096 752.71394,267.57606 752.84744,267.37216 C 752.98084,267.16816 753.11714,266.94516 753.24744,266.68466 C 753.31464,266.55016 753.37604,266.41326 753.43494,266.27216 C 754.31814,264.15476 754.31484,261.31476 754.97244,258.68466 C 754.99724,258.58516 755.03814,258.46556 755.08494,258.32216 C 755.78624,256.17026 758.67344,249.39136 755.53494,247.82216 C 751.59024,245.84976 753.64474,243.21016 751.53494,240.39711 C 751.15594,239.89176 749.22024,232.79857 748.68494,232.39711 C 746.14404,230.49144 745.58154,226.43127 742.97244,223.82211 C 742.51484,223.3645 742.10164,222.95088 741.74744,222.52211 C 740.68494,221.23582 740.10994,219.84468 740.10994,216.97211 C 740.10994,215.73914 740.12334,206.97882 739.53494,206.68461 C 734.42764,204.13094 734.46824,203.89046 731.43494,204.49711 C 726.97694,205.38872 725.57014,208.33007 722.73494,208.89711 C 718.41304,209.76149 715.01154,211.82212 709.82244,211.82211 C 704.45144,211.82211 704.76264,214.60673 702.39744,216.97211 C 700.42434,218.94517 699.44034,221.15355 696.85994,221.79711 C 696.74264,221.82636 696.62154,221.84947 696.49744,221.87211 C 696.24914,221.9174 695.98864,221.94279 695.70994,221.95961 C 695.57054,221.96802 695.43264,221.97132 695.28494,221.97211 C 694.84184,221.9745 694.36164,221.94434 693.83494,221.87211 C 693.65934,221.84804 693.47084,221.81765 693.28494,221.78461 C 692.91324,221.71853 692.52574,221.63856 692.10994,221.53461 C 689.40134,220.85747 690.27164,216.62355 692.04744,213.07211 C 693.62854,209.90994 694.76374,206.58724 697.08494,203.32211 C 699.88184,199.38778 702.85204,200.06707 707.53494,198.98461 C 711.24134,198.12786 712.13194,192.9587 714.39744,191.25961 C 717.68904,188.79087 716.68494,184.95066 716.68494,180.39711 C 716.68494,176.39711 716.68494,172.39711 716.68494,168.39711 C 716.68494,164.31614 713.62244,159.4692 713.62244,164.69711 C 713.62244,166.38998 710.80954,175.41385 708.47244,176.17211 C 708.38254,176.20128 708.29824,176.21829 708.20994,176.22211 C 708.03334,176.22976 707.85294,176.18898 707.68494,176.08461 C 707.60094,176.03243 707.52874,175.95496 707.44744,175.87211 C 707.28484,175.70642 707.12194,175.48362 706.97244,175.18461 C 705.33584,171.91153 705.83414,167.28147 704.68494,162.68461 C 704.04314,160.11744 703.25204,156.4639 700.68494,155.82211 C 695.01264,154.40405 693.66524,148.18743 693.30994,147.34711 C 693.28624,147.29109 693.26324,147.26488 693.24744,147.25961 C 691.53314,146.68818 689.98764,144.19322 688.30994,143.52211 C 686.32884,142.72966 677.95984,137.18401 677.95994,134.90961 C 677.95994,131.80735 679.60994,130.39349 679.60994,126.78461 C 679.60994,124.47343 679.43934,115.86928 677.52244,116.93461 C 676.32964,117.59752 675.37794,117.9628 674.60994,118.09711 C 674.50024,118.1163 674.38704,118.13744 674.28494,118.14711 C 674.08064,118.16647 673.89784,118.16388 673.72244,118.14711 C 673.63464,118.13873 673.54084,118.12655 673.45994,118.10961 C 671.76054,117.75394 671.53494,115.54963 671.53494,112.97211 C 671.53494,112.17456 671.54124,111.35903 671.54744,110.53461 C 671.55984,108.88578 671.54864,107.20255 671.37244,105.59711 C 671.32834,105.19575 671.27684,104.8004 671.20994,104.40961 C 671.14304,104.01882 671.06664,103.63669 670.97244,103.25961 C 669.58004,97.690441 673.82244,100.94643 673.82244,96.397111 C 673.82244,88.712201 669.82704,94.693871 668.10994,91.259611 C 666.99314,89.025981 666.45064,84.632761 662.39744,83.822111 C 658.97254,83.137131 657.64994,83.483061 654.89744,83.697111 C 654.43864,83.732791 653.93924,83.761421 653.38494,83.784611 C 652.83064,83.807801 652.21734,83.822111 651.53494,83.822111 C 650.84544,83.822111 639.78704,83.693041 639.53494,82.684611 C 638.30044,77.746511 633.01204,78.718721 628.68494,79.259611 C 620.67824,80.260441 620.72994,75.822111 614.39744,75.822111 z M 615.84744,191.98461 C 615.93544,191.9777 616.01814,191.98098 616.09744,191.98461 C 618.00104,192.07192 617.50224,195.10425 618.39744,198.68461 C 618.80844,200.32859 621.64114,200.65639 624.72244,200.49711 C 625.16264,200.47436 625.60324,200.43716 626.04744,200.39711 C 626.49154,200.35706 626.93694,200.31207 627.37244,200.25961 C 627.80784,200.20715 628.23324,200.14461 628.64744,200.08461 C 631.13234,199.72463 633.12164,199.27638 633.24744,199.25961 C 637.82764,198.64892 639.50664,197.53381 644.10994,198.68461 C 646.34894,199.24437 647.60814,204.26322 646.97244,205.53461 C 645.48774,208.50384 644.30404,212.20303 641.82244,214.68461 C 638.22994,218.27711 636.67184,218.08289 637.82244,222.68461 C 638.14914,223.99147 639.16924,224.06826 640.02244,224.30961 C 640.14434,224.34409 640.25964,224.38962 640.37244,224.43461 C 640.59784,224.52458 640.80104,224.64174 640.95994,224.82211 C 640.99964,224.8672 641.03844,224.91885 641.07244,224.97211 C 641.44664,225.55801 641.45364,226.66596 640.68494,228.97211 C 639.83104,231.53385 638.78414,235.97497 637.82244,239.82211 C 636.80204,243.90376 634.00034,246.50666 631.53494,248.97216 C 629.33084,251.17626 630.22774,253.85366 629.47244,253.27216 C 629.40374,253.21926 629.32204,253.14426 629.22244,253.03466 C 628.82404,252.59606 628.15144,251.68166 626.97244,250.10966 C 624.52924,246.85206 620.39954,244.36366 619.53494,247.82216 C 619.36604,248.49766 610.50534,246.00166 608.10994,248.39716 C 607.38144,249.12556 606.45624,249.62426 605.55994,250.14716 C 605.26114,250.32136 604.97064,250.49416 604.68494,250.68466 C 604.24664,250.97676 603.81754,251.14876 603.39744,251.22216 C 603.29244,251.24046 603.18854,251.25306 603.08494,251.25966 C 600.28684,251.43616 598.01014,247.44736 597.24744,246.68466 C 595.42634,244.86356 596.65414,241.91676 597.38494,239.10961 C 597.44584,238.87568 597.50804,238.6409 597.55994,238.40961 C 597.71544,237.71574 597.82244,237.04096 597.82244,236.39711 C 597.82244,232.08183 598.57294,228.03354 599.53494,226.10961 C 599.70284,225.77374 601.33964,228.02706 603.59744,227.88461 C 603.70494,227.87783 603.81214,227.86531 603.92244,227.84711 C 604.80444,227.70156 605.76714,227.17071 606.77244,225.98461 C 606.89804,225.83635 607.02064,225.67898 607.14744,225.50961 C 607.27424,225.34024 607.40724,225.16366 607.53494,224.97211 C 609.40724,222.16373 608.88794,218.27852 610.39744,215.25961 C 611.69484,212.66465 608.26994,209.85456 606.97244,207.25961 C 605.62784,204.57057 605.24744,202.0335 605.24744,198.10961 C 605.24744,197.61428 605.37074,197.1845 605.59744,196.80961 C 605.68804,196.65966 605.80204,196.51868 605.92244,196.38461 C 607.42654,194.70882 611.09704,194.20089 613.24744,192.97211 C 614.39364,192.34838 615.23104,192.033 615.84744,191.98461 z M 471.32244,300.88466 L 474.79744,303.38466 C 477.52004,305.33986 478.16844,306.25566 477.82244,307.63466 C 477.48924,308.96196 477.89604,309.62886 479.47244,310.34716 C 481.26804,311.16526 481.55994,311.81146 481.55994,314.99716 C 481.55994,318.19416 482.01574,319.19906 484.85994,322.28466 C 487.54684,325.19956 488.05484,326.24896 487.62244,327.97216 C 487.32284,329.16566 486.51574,330.10336 485.75994,330.10966 C 485.02344,330.11576 483.61144,330.33186 482.62244,330.59716 C 481.13884,330.99486 480.72834,330.66826 480.32244,328.74716 C 478.94634,322.23596 473.71244,314.82566 466.54744,309.25966 L 463.35994,306.78466 L 467.33494,303.83466 L 471.32244,300.88466 z";
var islandsPath = "M 643.3,61.0642 C 641.8184,61.0718 639.71248,62.2907 639.71248,63.4141 C 639.71248,64.8032 642.19936,65.1147 643.4376,63.8766 C 643.90032,63.4138 645.24848,63.3506 646.66256,63.7266 C 648.39744,64.1878 649.1632,64.9334 649.3376,66.3515 C 649.47152,67.443 649.7368,68.8032 649.92496,69.3642 C 650.11328,69.925 650.66272,70.3766 651.15008,70.3766 C 651.69808,70.3766 651.94128,68.8986 651.78752,66.5016 C 651.54048,62.6502 651.5184,62.6229 648.27504,62.1891 C 646.48032,61.949 644.64864,61.5322 644.2,61.2642 C 643.9592,61.1202 643.64192,61.0622 643.3,61.0642 z M 339.8625,132.4392 C 338.95435,132.5296 338.27738,133.3898 338.27501,135.2517 C 338.27328,136.5874 337.96715,138.161 337.5875,138.7517 C 337.13989,139.4478 337.43408,140.2229 338.4125,140.9642 C 339.24261,141.5931 341.07198,142.125 342.4875,142.1392 C 345.03944,142.1648 345.06099,142.1395 344.65,138.7016 C 344.19533,134.8984 341.59626,132.2666 339.8625,132.4392 z M 137.7375,405.7891 L 134.8375,407.7642 C 133.23846,408.8507 131.28069,409.7392 130.4875,409.7392 C 129.58918,409.7392 129.0375,410.3478 129.0375,411.3642 C 129.0375,412.7088 129.57877,412.9914 132.1,412.9766 C 133.78248,412.9667 136.80598,412.2109 138.82501,411.2891 L 142.5,409.6142 L 140.12501,407.7016 L 137.7375,405.7891 z M 120.1125,432.5766 C 117.60469,432.5766 116.35352,433.6368 117.2125,435.0267 C 117.85624,436.0683 118.95341,436.051 120.9375,434.9891 C 123.25838,433.747 122.85514,432.5766 120.1125,432.5766 z M 107.22501,448.9517 C 106.44904,448.9896 105.30493,449.2643 103.55,449.7517 C 100.20787,450.6798 100.25808,450.6182 101,452.5517 C 101.41566,453.6349 102.16734,453.779 104.87501,453.3267 C 108.42762,452.7331 109.57635,451.7842 108.8875,449.9891 C 108.63566,449.3328 108.30904,448.9856 107.5375,448.9517 C 107.44106,448.9474 107.33586,448.9462 107.22501,448.9517 z M 178.17501,535.3766 C 175.51864,535.4003 174.46483,536.7763 174.3875,540.3766 C 174.31384,543.8058 174.41146,543.9429 177.17501,544.4267 C 181.13339,545.1197 181.62389,544.915 181.9125,542.4891 C 182.24379,539.7032 179.96242,535.3608 178.17501,535.3766 z M 158.6,563.4891 C 158.47472,563.5118 158.4125,563.5904 158.4125,563.7142 C 158.4125,564.1542 161.0301,565.68 164.2375,567.1142 C 167.44491,568.5483 171.35286,570.7026 172.92501,571.9016 C 174.49722,573.1008 177.1111,574.685 178.72501,575.4142 C 181.7792,576.7942 183.7,576.2397 183.7,573.9891 C 183.7,573.193 183.10952,573.0074 181.7375,573.3517 C 178.72066,574.1088 176.20781,572.3902 176.5125,569.7766 C 176.75021,567.737 176.49082,567.5381 172.6875,566.8891 C 170.44416,566.5064 167.80424,565.8138 166.82501,565.3517 C 165.84576,564.8896 164.45176,564.7352 163.72501,565.0142 C 162.99824,565.293 161.49818,564.9338 160.4,564.2142 C 159.7137,563.7645 159.10976,563.5118 158.75,563.4891 C 158.69603,563.4858 158.64176,563.4816 158.6,563.4891 z M 189.5,577.7766 C 187.77133,577.7766 187.02824,578.2485 186.6875,579.5517 C 186.4325,580.5269 186.39544,581.613 186.6125,581.9642 C 186.82958,582.3154 187.6417,582.376 188.4125,582.1016 C 192.41787,580.6758 193.14645,577.7766 189.5,577.7766 z M 197.72501,585.1642 C 197.36261,585.1622 196.9153,585.1987 196.3875,585.2642 C 194.31915,585.5208 194.29664,585.5954 195.5875,587.4267 L 196.92501,589.3142 L 198.1375,587.5766 C 199.33923,585.861 199.29538,585.1726 197.72501,585.1642 z M 114.4375,355.8517 C 114.0011,355.8669 113.56171,356.0525 113.1375,356.4766 C 112.21392,357.4002 112.32499,358.3366 112.32501,359.9141 C 112.32501,361.4531 113.16794,362.0734 113.5375,363.5517 C 113.92963,365.1202 112.61912,367.031 111.32501,368.0016 C 110.1547,368.8794 107.52542,369.0016 105.6625,369.0016 C 104.58442,369.0016 102.8375,368.2262 102.8375,369.4141 C 102.8375,371.6152 102.17741,371.2986 100.6125,372.4392 C 100.6125,373.6616 101.5259,375.027 102.42501,375.4766 C 104.80901,376.6686 104.82011,378.1925 107.07501,376.6891 C 107.36272,376.4973 110.81664,374.4402 110.9125,374.4642 C 113.13682,375.0202 114.28686,376.0766 116.77501,376.0766 C 117.74163,376.0766 118.28227,374.6466 118.3875,374.6642 C 123.65957,375.5429 119.0663,375.2422 121.62501,377.2891 C 123.98142,379.1742 123.90376,377.9016 126.47501,377.9016 C 127.18416,377.9016 130.62494,377.7763 130.7125,378.3016 C 131.0316,380.2162 130.5125,381.8682 130.5125,383.9642 C 130.5125,385.4104 131.36504,387.9216 132.32501,388.4016 C 133.44003,388.9592 136.63754,386.7454 136.97501,387.5891 C 137.52302,388.9592 136.97501,390.5008 136.97501,392.0392 C 136.97501,393.9387 136.72091,395.6093 138.1875,396.4891 C 140.13507,397.6578 139.65072,398.6136 141.22501,397.4891 C 141.6964,397.1525 142.22786,396.8987 142.6375,396.4891 C 143.70138,395.4253 142.36963,392.707 143.2375,391.8392 C 144.8059,390.2707 144.24714,390.2189 144.65,387.8016 C 144.85606,386.5653 145.06251,385.0618 145.0625,383.5517 C 145.0625,381.6661 145.06251,379.7874 145.0625,377.9016 C 145.0625,376.3389 144.60699,374.8459 145.0625,373.2517 C 145.72722,370.9251 144.28762,367.1014 145.0625,365.1642 C 146.23768,362.2262 143.45736,364.7888 141.22501,363.9517 C 141.03706,363.8811 136.24789,363.1224 136.1625,362.9517 C 135.832,362.2907 134.71621,356.1552 132.9375,357.4891 C 131.43584,358.6154 127.29296,361.3261 125.8625,361.9392 C 124.56558,362.495 121.88344,364.8226 120.4125,363.3517 C 119.59624,362.5354 120.19256,360.9067 119,359.7141 C 118.21042,358.9246 116.32854,355.7856 114.4375,355.8517 z";
var waterPath = "M 153.9625,460.3766 C 153.86693,460.4242 153.76603,460.4706 153.6625,460.5142 C 153.76584,460.4704 153.86715,460.4243 153.9625,460.3766 z M 615.7376,193.3141 C 615.8256,193.3072 615.90816,193.3106 615.98752,193.3141 C 617.89104,193.4014 617.39232,196.4338 618.28752,200.0141 C 619.22688,203.7718 632.80208,200.6339 633.1376,200.5891 C 637.71776,199.9784 639.3968,198.8634 644,200.0141 C 646.23904,200.5739 647.49824,205.5928 646.86256,206.8642 C 645.37792,209.8334 644.19408,213.5326 641.71248,216.0141 C 638.12,219.6067 636.56192,219.4125 637.71248,224.0141 C 638.45936,227.0013 642.8112,223.5928 640.57504,230.3016 C 639.72112,232.8634 638.67424,237.3045 637.71248,241.1517 C 636.69216,245.2333 633.8904,247.8362 631.42496,250.3016 C 628.21904,253.5077 631.57872,257.7275 626.86256,251.4392 C 624.41936,248.1816 620.2896,245.6933 619.42496,249.1517 C 619.25616,249.8272 610.39536,247.3312 608,249.7267 C 607.0288,250.6979 605.71792,251.2523 604.57504,252.0141 C 601.06912,254.3515 598.0416,248.9181 597.1376,248.0141 C 594.70944,245.5861 597.71248,241.1605 597.71248,237.7267 C 597.71248,233.4114 598.46304,229.363 599.42496,227.4392 C 599.68096,226.9274 603.33856,232.4314 607.42496,226.3016 C 609.29728,223.4933 608.77808,219.608 610.28752,216.5891 C 611.58496,213.9942 608.16,211.1842 606.86256,208.5891 C 605.51792,205.9002 605.1376,203.363 605.1376,199.4392 C 605.1376,196.269 610.38512,195.8746 613.1376,194.3016 C 614.28368,193.6779 615.12112,193.3626 615.7376,193.3141 z M 437.82496,242.3891 C 438.46784,242.3541 439.87568,242.9152 442.32496,244.1517 L 447.26256,246.6392 L 445.6,248.9642 C 444.07344,251.1082 444.05232,251.3773 445.28752,252.4016 C 447.24304,254.0234 448.82496,258.2958 448.82496,261.9642 C 448.82496,264.6906 449.1152,265.2443 450.8376,265.6766 C 451.99232,265.9666 454.27648,268.0904 456.15008,270.6267 C 458.79728,274.2102 459.42496,275.7496 459.42496,278.6141 C 459.42496,280.5666 458.91536,282.868 458.28752,283.7267 C 457.22512,285.1795 456.96128,284.9062 454.47504,279.8642 C 452.92608,276.7232 451.02416,274.091 449.95008,273.6016 C 448.93072,273.1373 446.69408,271.5155 444.98752,269.9891 C 443.28096,268.4627 440.23152,266.2019 438.21248,264.9642 C 436.19344,263.7264 433.94928,261.9627 433.22496,261.0517 C 432.10368,259.641 430.69888,259.3374 423.72496,259.0016 L 415.5376,258.6141 L 416.35008,256.2517 C 416.80176,254.9557 416.9488,253.0053 416.67504,251.9141 C 416.21632,250.0872 416.74352,249.66 423.31248,246.5392 C 429.2024,243.7408 431.05312,243.2155 433.92496,243.5392 C 436.53984,243.8339 437.4,243.6552 437.4,242.8016 C 437.4,242.5453 437.5328,242.4051 437.82496,242.3891 z M 471.21248,302.2141 L 474.68752,304.7141 C 477.41008,306.6694 478.05856,307.5851 477.71248,308.9642 C 477.37936,310.2915 477.78608,310.9584 479.36256,311.6766 C 481.15808,312.4949 481.45008,313.141 481.45008,316.3267 C 481.45008,319.5237 481.90592,320.5286 484.75008,323.6141 C 487.43696,326.5291 487.94496,327.5786 487.51248,329.3016 C 487.2128,330.4952 486.40576,331.4328 485.65008,331.4392 C 484.9136,331.4453 483.5016,331.6614 482.51248,331.9267 C 481.02896,332.3245 480.6184,331.9978 480.21248,330.0766 C 478.83648,323.5654 473.60256,316.1552 466.4376,310.5891 L 463.25008,308.1141 L 467.22496,305.1642 L 471.21248,302.2141 z M 351.1,305.7392 C 351.8899,305.7358 352.84386,305.7571 353.95,305.8016 C 363.52302,306.1877 366.42499,306.829 366.42501,308.5517 C 366.42501,310.1022 364.66478,310.9443 357.8625,312.6392 C 355.61917,313.1981 353.19712,313.8288 352.47501,314.0392 C 351.23586,314.4002 350.88051,313.8166 347.9375,306.4517 C 347.74899,305.9798 348.7303,305.749 351.1,305.7392 z M 164.8375,315.9392 C 166.51682,315.9525 168.5183,316.404 169.67501,317.2141 C 170.87237,318.0528 171.36189,319.0208 171.0625,319.9642 C 170.80856,320.7642 170.99754,322.4458 171.47501,323.7016 C 172.13602,325.4402 172.08792,326.1438 171.2875,326.6517 C 170.7093,327.0186 169.98523,327.3198 169.67501,327.3267 C 168.60562,327.3504 161.572,317.553 162.07501,316.7392 C 162.41627,316.1869 163.53136,315.9288 164.8375,315.9392 z M 407.0376,328.9642 C 407.62688,328.9805 408.03744,329.9918 408.0376,331.7766 C 408.03744,333.3205 408.40128,334.8118 408.85008,335.0891 C 409.996,335.7973 409.85952,338.3344 408.45008,342.7392 C 407.7848,344.8184 407.04928,347.4299 406.81248,348.5517 C 406.57552,349.6733 405.49344,351.6774 404.4,353.0016 L 402.4,355.4016 L 401.47504,353.0016 C 400.96192,351.6774 400.20704,348.2054 399.8,345.2891 C 399.39294,342.3728 398.45598,338.6134 397.7125,336.9267 C 396.64075,334.4954 396.54563,333.4398 397.27501,331.8392 C 398.10928,330.0082 398.53509,329.8558 401.78752,330.3016 C 404.05664,330.6126 405.5808,330.4661 405.9376,329.8891 C 406.28064,329.3338 406.61584,329.0334 406.91248,328.9766 C 406.95328,328.9688 406.99808,328.963 407.0376,328.9642 z M 235.5125,343.0016 C 235.65245,342.9978 235.79338,343 235.92501,343.0016 C 237.76786,343.0256 239.04942,343.7558 241.82501,346.1517 C 245.04677,348.9326 245.70002,349.9714 245.7,352.3016 C 245.7,353.8432 245.2789,355.7573 244.77501,356.5642 C 243.37475,358.8062 245.90546,363.2392 248.5875,363.2392 C 250.0252,363.2392 250.86392,363.8509 251.42501,365.3267 C 252.49536,368.1419 252.59618,367.9462 249.2625,369.3392 C 247.63734,370.0182 246.08168,370.5176 245.8,370.4392 C 245.51832,370.3608 243.6315,370.1525 241.6125,369.9766 C 237.06309,369.5805 234.27995,367.1974 234.2625,363.7016 C 234.25565,362.3218 233.95011,360.7354 233.5875,360.1642 C 232.52106,358.4837 233.43795,354.3059 234.7625,354.8141 C 236.43342,355.4554 236.1703,354.4928 233.8125,351.4016 C 232.3204,349.4453 231.79014,347.8782 231.97501,345.9517 C 232.20994,343.5043 232.50446,343.2277 235.0875,343.0267 C 235.23358,343.0154 235.37256,343.0054 235.5125,343.0016 z M 372.72501,359.1517 L 376.92501,360.9016 C 380.77302,362.5008 381.11251,362.8547 381.1125,365.3267 C 381.1125,366.808 380.75006,368.9634 380.3125,370.1141 C 379.87493,371.265 379.04693,372.1627 378.47501,372.1016 C 374.7181,371.7003 373.76918,371.1718 373.7625,369.5016 C 373.75867,368.5234 373.52056,365.7958 373.2375,363.4392 L 372.72501,359.1517 z M 252.4375,369.8517 C 252.50398,369.8426 252.54413,369.8434 252.5625,369.8642 C 253.23574,370.6275 255.4875,375.4778 255.4875,376.1642 C 255.4875,376.5864 254.00373,377.5174 252.2,378.2392 C 250.39627,378.9608 248.78341,379.5517 248.6125,379.5517 C 248.44152,379.5517 247.54706,378.2771 246.62501,376.7141 L 244.95,373.8642 L 248.62501,371.7141 C 250.39227,370.6784 251.97208,369.9154 252.4375,369.8517 z M 347.87501,372.2766 L 350.42501,373.6016 C 351.82574,374.3315 353.9641,375.1402 355.1875,375.4016 L 357.4125,375.8766 L 354.37501,380.5642 C 351.62939,384.7906 351.05362,385.2406 348.47501,385.2392 C 344.70685,385.237 343.07904,384.2533 344.6625,382.9392 C 345.29642,382.413 346.28362,379.7955 346.85,377.1267 L 347.87501,372.2766 z M 507.51248,407.2891 C 509.05328,407.2805 510.2928,407.9442 510.8376,409.3766 C 512.22464,413.0256 511.85712,413.8142 508.78752,413.8142 C 506.43104,413.8141 505.86672,414.1664 505.4376,415.8766 C 505.15296,417.0101 504.25376,418.2898 503.4376,418.7267 C 501.2504,419.8971 499.81424,419.6998 498.3,418.0267 C 496.52608,416.0666 496.5712,415.6813 499.02496,412.4642 C 501.52432,409.1874 504.94448,407.3034 507.51248,407.2891 z M 234.5625,422.4891 C 234.74261,422.4818 234.96374,422.5208 235.22501,422.5891 C 237.11936,423.0845 239.18483,425.8779 238.6625,427.2392 C 238.45154,427.7888 238.8441,428.7011 239.5375,429.2766 C 240.23098,429.8522 240.8,431.0773 240.8,431.9891 C 240.8,433.5902 240.85173,433.5891 242.4125,432.1766 C 243.73509,430.9797 244.26109,430.9101 245.27501,431.7517 C 247.0204,433.2003 246.91358,433.5746 243.0875,439.9891 C 241.20627,443.143 239.43813,445.8736 239.15,446.0517 C 238.86187,446.2298 237.98518,445.047 237.2125,443.4267 C 236.04792,440.9845 235.97939,440.0776 236.7875,438.1267 C 237.65374,436.0352 237.54339,435.5438 235.8125,433.7016 C 234.2549,432.0442 233.84981,430.6795 233.77501,426.9016 C 233.70653,423.4422 233.78202,422.5208 234.5625,422.4891 z M 229.0375,439.6517 C 229.14275,439.6474 229.25882,439.6494 229.37501,439.6517 C 229.80397,439.66 230.31157,439.717 230.9375,439.7766 C 234.63258,440.1291 234.65216,440.1384 233.3875,442.5016 C 232.74288,443.7061 232.74286,444.4195 233.3875,445.0642 C 234.83498,446.5115 234.40094,451.3099 232.6,453.8392 C 231.21933,455.7781 231.09147,456.5002 231.87501,457.9642 C 232.66229,459.4352 232.5809,459.8712 231.3875,460.5392 C 230.06157,461.2811 230.10787,461.4678 231.9125,462.8642 L 233.8625,464.3766 L 230.6,467.2016 C 228.70834,468.844 226.44144,470.0589 225.2,470.0766 C 224.02229,470.0936 221.96989,470.3227 220.6375,470.5891 C 218.39856,471.037 218.05733,470.7662 216.15,467.1142 C 214.28746,463.548 213.78117,463.1406 210.9375,462.9016 C 208.06374,462.6602 206.58296,461.7256 206.55,460.1142 C 206.54315,459.7776 207.98126,459.5016 209.7375,459.5016 C 212.41557,459.5016 213.72426,458.8058 217.8875,455.2142 C 220.61786,452.8586 222.84992,450.4627 222.85,449.8891 C 222.85,449.3154 223.92117,446.7346 225.22501,444.1517 C 227.03005,440.576 227.45861,439.7152 229.0375,439.6517 z M 498.11248,443.4642 C 499.74624,443.4451 500.73136,444.072 503.16256,446.0642 C 505.31328,447.8266 506.73744,449.6782 506.7376,450.7016 C 506.7376,451.6387 507.65328,453.6061 508.77504,455.0766 C 509.89664,456.5472 510.81248,457.9598 510.81248,458.2142 C 510.81248,459.6901 503.73088,456.3314 499.92496,453.0517 C 499.09104,452.3331 497.24704,451.7517 495.8376,451.7517 C 493.37008,451.7517 493.27248,451.6011 493.0376,447.9766 L 492.78752,444.2142 L 496.18752,443.6766 C 496.95568,443.5538 497.56784,443.4704 498.11248,443.4642 z M 408.92496,444.6766 C 410.35296,444.5654 410.9088,446.608 409.61248,450.3267 C 408.87872,452.4317 409.05072,453.4254 410.75008,456.7642 C 411.85632,458.9378 413.72144,461.6139 414.88752,462.7016 C 416.60432,464.3032 417,465.4262 417,468.6142 C 417,470.7792 417.2824,472.5517 417.62496,472.5517 C 417.96752,472.5517 420.17552,471.2589 422.52496,469.6766 C 426.53488,466.9763 426.8,466.9026 426.8,468.5392 C 426.8,470.2627 426.81168,470.261 428.3376,468.3766 L 429.87504,466.4642 L 431.18752,469.6142 C 431.90896,471.3406 432.5,473.0538 432.5,473.4267 C 432.5,473.7995 430.85648,474.8336 428.8376,475.7267 C 425.73248,477.1002 425.16256,477.7088 425.16256,479.6642 C 425.1624,480.9355 424.58592,482.792 423.88752,483.7891 C 422.73824,485.4301 422.73824,485.6016 423.88752,485.6016 C 425.35744,485.6016 425.51344,486.6922 424.3376,488.8891 C 423.63984,490.1926 423.92096,490.6616 426.16256,491.8517 L 428.8376,493.2642 L 424.5,493.9267 C 422.1136,494.2864 419.4744,494.9411 418.6376,495.3891 C 416.19696,496.695 415.37504,496.1587 415.37504,493.2392 C 415.37504,491.991 414.57872,490.9426 413.02496,490.1392 C 411.736,489.4726 410.46272,488.0915 410.18752,487.0642 C 409.39696,484.1128 409.58256,479.1219 410.55008,477.3142 C 411.88544,474.8186 410.86112,471.779 408.86256,472.3016 C 407.68912,472.6085 407.0352,472.1968 406.5,470.7891 C 406.09344,469.7198 404.80928,468.3288 403.6376,467.7016 C 401.17984,466.3862 401.02176,465.811 402.75008,464.3766 C 403.76,463.5384 403.88992,462.1939 403.45008,457.3392 C 402.944,451.7541 403.05952,451.1222 405.07504,448.0766 C 406.56224,445.8293 407.948,444.7528 408.92496,444.6766 z M 493.52496,460.7891 C 493.85376,460.7662 494.2312,460.8622 494.71248,461.0392 C 495.71856,461.409 497.80864,463.4621 499.35008,465.6016 C 502.03376,469.3269 502.07856,469.5422 500.61248,470.6142 C 498.28288,472.3178 497.17392,472.0072 493.55008,468.6267 L 490.22496,465.5142 L 491.55008,462.9392 C 492.32032,461.4494 492.80176,460.8394 493.52496,460.7891 z M 229.57501,476.5016 C 237.09389,476.44 238.03614,477.1922 242.57501,483.9016 C 244.77821,487.1586 244.90763,487.7154 243.95,489.6142 C 243.36674,490.7709 242.76397,491.9901 242.6,492.3267 C 242.43603,492.6632 242.85765,492.9392 243.5375,492.9392 C 244.21736,492.9392 245.55406,494.043 246.5125,495.3891 C 247.92213,497.3688 248.84518,497.839 251.3375,497.8392 C 253.38261,497.839 254.90752,498.3813 255.8875,499.4642 C 257.06056,500.7602 258.40843,501.1016 262.4125,501.1016 C 265.18445,501.1016 267.66814,501.3198 267.9375,501.5891 C 268.20686,501.8584 267.35374,503.572 266.0375,505.3891 C 264.1003,508.0632 263.6375,509.5189 263.6375,513.0517 C 263.6375,516.4187 263.92792,517.4142 264.8875,517.4142 C 266.51526,517.4141 267.9495,521.2829 267.3,523.9142 C 267.01874,525.0534 265.82363,526.9928 264.65,528.2267 C 262.63646,530.3435 260.96178,530.753 257.7875,529.9142 C 257.00853,529.7083 255.35515,527.025 253.9625,523.6891 C 251.74184,518.3701 251.63498,517.6989 252.77501,516.4392 C 253.91405,515.1805 253.86573,514.8365 252.27501,512.8142 C 250.61574,510.7048 250.6065,510.5421 251.9875,509.8016 C 252.7911,509.3709 253.56722,508.9181 253.7125,508.8016 C 253.85771,508.6851 253.4095,507.5128 252.72501,506.1891 C 251.6987,504.2045 250.81565,503.6838 247.6625,503.2517 C 245.55931,502.9634 242.6077,502.7266 241.1,502.7267 C 238.87274,502.7267 238.35,502.4093 238.35,501.0392 C 238.35,499.7366 237.99477,499.473 236.7625,499.8642 C 235.88498,500.1427 233.64648,499.9174 231.8,499.3642 C 229.2293,498.5939 228.09374,497.655 226.92501,495.3642 C 226.0855,493.7184 224.42894,491.7491 223.25,490.9766 C 220.5823,489.2286 214.2153,487.2509 211.2,487.2392 C 208.31523,487.228 207.69443,485.6157 209.35,482.4142 C 210.8904,479.4354 210.98427,479.42 213.6625,481.5267 C 216.25107,483.5629 218.70427,483.8222 217.1,481.8891 C 216.2145,480.8222 216.36707,480.2971 218.02501,478.6392 C 219.82,476.8443 220.72266,476.6536 227.97501,476.5267 C 228.5377,476.5168 229.07374,476.5058 229.57501,476.5016 z M 498.62496,485.6392 C 500.14448,485.6918 500.21248,486.7635 500.21248,490.0016 L 500.21248,494.4016 L 496.75008,495.8016 C 494.8432,496.5726 492.81952,497.38 492.26256,497.6016 C 491.70528,497.8234 491.0656,497.4211 490.8376,496.7016 C 490.60928,495.9821 490.24,494.8074 490.01248,494.0891 C 489.27776,491.7707 492.81744,486.6307 495.52496,486.0891 C 496.94864,485.8045 497.9344,485.6152 498.62496,485.6392 z M 382.9625,580.6517 C 383.03272,580.6517 383.09392,580.6608 383.15,580.6766 C 383.59867,580.8032 384.99946,581.1347 386.2625,581.4142 C 390.14944,582.2742 388.82162,584.8978 382.7875,588.3016 C 378.42026,590.7653 377.41909,591.7517 376.8125,594.1142 C 376.41107,595.6773 375.52602,597.5728 374.85,598.3267 C 373.06162,600.3211 372.83485,612.7077 374.55,614.7891 C 375.70072,616.1856 375.65619,616.416 373.97501,617.5392 C 372.59792,618.459 372.13749,619.5531 372.1375,621.9267 L 372.1375,625.1016 L 368.67501,625.0642 C 366.76816,625.0446 363.64434,624.7205 361.7375,624.3517 C 358.31858,623.6902 358.27499,623.7163 358.27501,625.9891 C 358.27501,627.3475 357.4803,629.0627 356.3375,630.1642 C 355.17398,631.2856 354.18933,633.4251 353.87501,635.5267 C 353.58688,637.4525 352.52619,640.2934 351.52501,641.8392 C 350.5239,643.385 349.46926,644.6586 349.1875,644.6642 C 348.90565,644.6698 347.87384,642.5141 346.8875,639.8766 L 345.0875,635.0891 L 347.2,632.9766 C 350.65605,629.5205 349.91822,625.173 345.97501,625.7517 C 344.3611,625.9885 342.97029,625.6078 341.9,624.6392 C 340.29328,623.1851 340.31637,623.125 343.7375,619.6392 C 347.44211,615.8645 350.00773,615.2728 355.6,616.8766 C 357.74562,617.492 358.69611,617.3019 360.82501,615.8517 C 365.24667,612.8395 365.50808,611.744 362.9125,607.1267 C 360.17147,602.2506 360.18818,598.7206 362.9625,598.3267 C 363.97299,598.1832 365.17406,597.3552 365.6375,596.4891 C 366.10101,595.623 367.21688,594.9142 368.1125,594.9142 C 370.31171,594.9141 371.0129,592.7352 369.3875,590.9392 C 367.58762,588.9502 367.71507,587.6437 370.0625,584.1891 C 372.04333,581.2741 372.10642,581.2531 375.9125,581.9642 C 378.82656,582.5086 380.0733,582.4114 381.05,581.5642 C 381.67043,581.0258 382.47094,580.6518 382.9625,580.6517 z M 184.9375,815.9891 C 187.26984,815.9891 191.65067,818.0261 193.9375,820.1766 C 195.30488,821.4626 196.86053,822.5141 197.4,822.5142 C 197.97715,822.5141 198.3875,823.684 198.3875,825.3642 C 198.3875,828.1413 198.29661,828.2142 195.1875,828.2142 C 193.42954,828.2142 191.46277,828.4194 190.82501,828.6642 C 190.10232,828.9414 188.19982,827.3795 185.7625,824.5267 C 182.13301,820.2784 181.92634,819.807 182.9125,817.9642 C 183.49699,816.8722 184.40726,815.9891 184.9375,815.9891 z";
var countyPaths = {};
countyPaths.tipperary = "M 397.8,563.8016 C 397.61859,563.804 397.44258,563.808 397.2625,563.8142 C 396.56912,564.2635 395.94408,564.4773 395.42501,564.3016 C 394.28214,562.8019 388.00331,567.729 386.8625,568.0142 C 384.70741,568.5528 383.42501,572.2802 383.42501,574.8642 C 383.42501,577.3821 392.51234,582.1264 389.18958,582.1264 C 386.57278,582.1264 383.3969,590.0499 377.6509,592.3523 C 374.79531,593.4965 375.3712,598.3 374.8009,601.1517 C 374.42822,603.015 376.97075,612.7251 375.1085,613.8538 C 376.22045,616.9654 371.85699,621.4875 371.85699,627.0299 C 371.85699,631.644 368.88674,619.7146 364.57501,622.3016 C 361.39102,624.212 358.38869,625.4384 358.38869,628.5891 C 358.3887,634.5222 352.01979,634.3802 352.01979,639.0395 C 352.01981,641.7379 350.048,645.643 348.57501,648.5891 C 347.17011,651.3989 344.06619,659.948 346.2875,657.7267 C 346.24202,657.9016 346.19547,658.0766 346.15,658.2517 C 346.21331,658.323 346.26085,658.4331 346.2875,658.5891 C 346.44155,660.0624 346.6776,660.987 346.8625,661.7267 C 347.7196,665.155 346.4131,669.9779 348,673.1517 C 352.03366,681.219 352.41378,673.827 358.8625,675.4392 C 361.74899,676.1608 363.75323,670.9125 365.7125,673.1517 C 367.04584,674.6755 368.80699,672.4906 369.7125,674.3016 C 371.71965,678.316 390.43062,674.5416 389.7125,675.4392 C 387.22104,678.5534 377.45859,685.6173 376.57501,689.1517 C 375.67502,692.7515 380.57501,692.333 380.57501,694.3016 C 380.57499,697.3133 376.92008,699.9586 377.7125,702.8642 C 381.33805,716.1578 380.57424,707.44 374.8625,713.1517 C 373.18603,714.8282 359.5064,718.576 358.8625,721.1517 C 358.46829,722.7285 354.17797,728.5038 356.57501,730.3016 C 359.20549,732.2746 366.2875,728.7259 366.2875,732.0142 C 366.2875,738.2869 365.25605,738.8642 372,738.8642 C 380.3673,738.8642 373.22086,742.9475 376.57501,746.3016 C 378.0681,747.7947 383.23117,754.3877 385.1375,754.8642 C 392.34965,756.6672 388,757.8197 388,764.0142 C 387.98979,764.8058 387.9852,765.5976 387.97501,766.3891 C 387.5607,765.9283 387.10078,765.5923 387.1375,765.1517 C 387.05475,766.607 390.29466,767.0826 387.4375,770.7016 C 387.4375,774.5853 386.3,774.9557 386.3,778.6142 C 386.3,784.4106 393.25514,785.7794 394.5625,785.7267 C 394.4741,785.6397 394.38795,785.552 394.3,785.4642 C 394.89219,785.7078 394.85586,786.0195 395.5375,786.6642 C 395.59883,786.5517 395.67189,786.4406 395.72501,786.3267 C 395.43928,782.2091 406.84448,786.0571 409.15008,783.7517 C 412.63072,780.271 406.80736,778.6003 416.01248,780.9016 C 418.48976,781.521 423.9424,783.4354 426.87504,784.9016 C 430.03824,786.4832 434.5984,782.8278 439.4376,784.9016 C 445.47248,787.488 446.3,782.6952 446.3,778.6142 C 446.3,773.233 437.272,775.9054 442.87504,768.9016 C 444.27824,767.1475 441.556,761.3754 441.15008,759.7517 C 440.59872,757.5466 449.80704,756.9744 451.4376,755.7517 C 454.08208,753.7682 456.03952,753.4642 461.72496,753.4642 C 470.50592,753.4642 466.21664,749.9021 476.01248,753.4642 C 480.43264,755.0715 481.69952,752.1797 484.58752,752.9016 C 487.99104,753.7525 493.1504,749.916 496.02496,749.7517 C 496.11776,749.7464 496.21216,749.7491 496.3,749.7517 C 496.67968,748.1381 496.33936,739.9701 496,736.5891 C 495.33488,733.2637 490.39808,732.6997 488,730.3016 C 485.19824,727.4998 483.42496,725.4435 483.42496,721.1517 C 483.42496,717.7808 487.22928,715.7814 486.28752,712.0142 C 484.98,706.7838 477.33856,710.3582 482.86256,701.1517 C 483.30064,700.4213 483.61904,699.6261 484,698.8642 C 486.19552,694.473 481.73296,692.6117 479.42496,689.7267 C 476.93216,686.6106 480.56592,684.5806 476,683.4392 C 475.21872,683.2437 473.47104,673.8061 472.57504,672.0142 C 471.1856,669.2354 466.05136,668.6707 463.42496,668.0142 C 460.05648,667.172 457.91856,663.7134 457.1376,660.5891 C 456.30944,657.277 455.97488,655.3726 456,652.8642 C 456.28192,652.9074 456.53984,652.9438 456.8,652.9766 C 456.53248,652.8486 456.26752,652.7171 456,652.5891 C 455.356,650.0131 450.8624,644.0147 450.86256,639.4392 C 450.8624,636.1992 450.28752,633.1741 450.28752,629.7267 C 450.28752,625.8454 453.14224,624.0094 455.42496,621.7267 C 459.17904,617.9726 458.01792,616.4102 450.28752,614.8642 C 450.02336,614.8114 447.05296,612.769 446.86256,612.8642 C 443.6224,612.5019 440.64272,613.7942 438.28752,611.4392 C 434.72864,607.8803 432.57504,615.5366 432.57504,618.3016 C 432.57504,621.495 427.40832,623.4656 425.71248,625.7267 C 421.53712,631.2939 416.57504,622.7766 416.57504,632.5891 C 416.57504,635.9813 421.82896,640.5891 414.86256,640.5891 C 412.5688,640.5891 412.25424,636.6192 410.28752,635.4392 C 407.50416,633.7693 406.1544,631.3061 404,629.1517 C 401.32832,626.48 399.74778,625.9787 401.71248,624.0142 C 403.38064,622.3458 401.2024,617.6093 402.28752,615.4392 C 403.38656,613.2406 406.52784,613.3157 407.42496,609.7267 C 408.48688,605.4795 410.63296,603.8982 412.57504,600.0142 C 413.54992,598.0642 412.73568,592.4715 413.1376,590.8642 C 414.32288,586.1226 418.28752,588.2286 418.28752,581.7267 C 418.28752,577.0315 414.96976,575.9542 411.42496,577.7267 C 408.26864,579.305 406.49056,575.6547 405.1376,574.3016 C 403.48944,572.6538 401.60368,566.4541 401.1376,564.5891 C 400.97376,563.935 399.40347,563.781 397.8,563.8016 z ";
countyPaths.cork = "M 300.35712,744.867 C 298.77341,744.8555 297.57573,745.18 297.14464,746.0421 C 296.63352,747.0643 298.26213,749.2277 297.14464,749.467 C 280.57589,753.0176 293.51069,752.5386 288.58213,757.467 C 288.07997,757.9693 274.29462,765.829 274.29462,761.467 C 274.29462,756.7835 268.66816,756.7624 265.14462,757.467 C 262.89266,757.9174 257.19576,759.2051 254.86963,758.0421 C 253.29168,757.2531 250.34936,754.4504 247.43213,755.1797 C 244.41848,755.9331 239.77264,761.2765 238.29462,762.6171 C 237.15178,762.9981 238.96202,766.2475 238.86963,766.6171 C 238.49346,768.1218 235.47242,773.6093 234.29462,775.1797 C 232.0511,778.171 225.44688,779.3992 229.14462,784.3296 C 231.94694,788.0659 234.96286,790.5333 236.00714,795.7546 C 236.40762,797.7571 238.86963,802.8694 238.86963,804.9046 C 238.86963,807.9782 236.85877,813.1813 239.43213,815.7546 C 243.43483,819.7573 240.89749,820.2739 238.86963,824.3296 C 235.71822,830.6323 244.00714,827.5093 244.00714,832.3296 C 244.00714,839.2342 233.30373,838.4008 229.71963,843.1797 C 227.57742,846.036 226.86963,849.8198 226.86963,853.467 C 226.86963,855.8418 227.98894,864.6805 225.71963,866.0421 C 222.3971,868.0357 211.77027,866.8539 209.71963,868.9046 C 206.39934,872.225 205.99616,878.6171 200.00714,878.6171 C 197.94682,878.6171 196.9264,881.9211 194.86963,882.0421 C 191.63154,882.2326 188.38832,882.6171 185.14462,882.6171 C 179.00013,882.6171 173.41786,880.9742 172.00714,886.6171 C 171.07149,890.3597 167.22827,893.3806 164.58213,894.0421 C 160.01,895.1851 156.03824,898.3078 154.29462,899.1797 C 152.49037,900.0818 147.43213,904.3814 147.43213,899.1797 C 147.43213,895.7632 147.73803,888.1867 146.75714,885.2421 C 146.60965,885.2845 146.45565,885.3046 146.28213,885.3046 C 145.6087,885.3046 144.93058,885.3045 144.25714,885.3046 C 142.79226,885.3046 138.59462,882.363 138.59462,885.7171 C 138.59462,890.2123 136.79115,890.9302 132.54462,891.7797 C 125.40552,893.2074 129.8696,894.6795 132.94462,896.2171 C 136.02054,897.755 136.44869,899.515 132.54462,901.467 C 128.53694,903.471 124.74078,901.7506 122.03213,900.667 C 119.74246,899.7512 115.00528,899.4546 111.53213,899.4546 C 108.33762,899.4546 108.79326,900.8643 109.90714,903.0922 C 110.53066,904.3392 113.90686,907.265 112.33213,909.1546 C 109.20758,912.9042 105.15029,912.1066 101.01963,915.2046 C 99.87616,916.0622 95.75702,920.2608 98.59462,921.6797 C 100.59406,922.6794 104.89491,925.0667 107.48213,922.4797 C 109.5325,920.4293 112.45912,919.5275 114.75714,917.2296 C 118.23568,913.751 119.77677,916.5531 124.45714,915.6171 C 128.52902,914.8027 131.48445,915.2046 135.76963,915.2046 C 135.76963,914.9352 135.50026,914.4045 135.76963,914.4046 C 139.11466,914.4046 143.02509,920.2645 145.86963,918.8421 C 149.5836,916.9851 152.01214,915.9062 154.35714,912.7797 C 155.29445,911.5298 157.76757,904.7046 159.20714,904.7046 C 161.8295,904.7046 164.9109,901.8795 165.26963,901.8797 C 167.06403,901.8797 172.39578,903.7006 173.75714,902.6797 C 176.4015,900.6963 178.60325,900.5309 181.83213,899.4546 C 185.69478,898.167 187.28714,895.8187 189.10714,893.3922 C 190.43856,891.6168 193.60339,888.0978 194.76963,892.1797 C 196.35398,897.7248 195.9915,895.8266 198.40714,898.2421 C 199.39568,899.2307 205.25464,901.8322 205.66963,903.4922 C 206.65122,907.4184 204.44819,907.7349 200.41963,908.7421 C 197.75046,909.4094 194.94386,912.2597 192.34462,912.7797 C 188.41541,913.5654 178.50966,912.2346 176.58213,914.8046 C 172.8497,919.7811 170.30738,918.992 164.05714,920.867 C 159.77336,922.1522 154.83515,922.0459 150.71963,923.6922 C 146.26203,925.4752 147.41979,927.9925 149.10714,931.367 C 149.94589,933.0446 150.93528,935.0395 153.54462,934.6046 C 156.96709,934.0341 158.91634,931.8914 161.23213,930.1546 C 162.40374,929.2758 168.06544,927.14 168.90714,926.9296 C 171.64283,926.2456 175.3591,924.028 177.79462,922.0797 C 181.20331,919.3526 182.24338,920.0546 185.46963,920.0546 C 186.60928,920.0546 193.2249,922.4256 189.91963,924.9046 C 182.91752,930.1562 192.78317,927.4262 180.21963,930.567 C 175.69328,931.6987 168.28747,932.4766 166.08213,935.4171 C 160.95512,942.2531 163.74274,938.4965 156.78213,941.4797 C 154.18827,942.5912 148.61282,949.1546 152.33213,949.1546 C 155.52706,949.1546 158.38691,949.9546 162.03213,949.9546 C 163.83963,949.9546 167.14974,951.8445 168.09462,949.9546 C 169.20747,947.729 169.79218,944.6621 172.13213,943.4922 C 174.10462,942.5059 176.74242,942.6795 179.40714,942.6797 C 181.60955,942.6795 187.52832,943.8373 188.70714,941.4797 C 190.73246,937.429 191.38531,940.221 194.76963,941.067 C 196.44531,941.4861 198.17366,941.7006 199.60714,940.267 C 201.9657,937.9085 201.46368,933.3531 204.86963,934.2046 C 208.42675,935.0939 209.30714,936.3542 209.30714,939.8546 C 209.30714,943.68 211.2457,945.591 214.15714,942.6797 C 216.7876,940.0491 218.60712,941.2221 218.60714,944.7046 C 218.60714,949.1355 218.4268,949.1546 222.24462,949.1546 C 225.76642,949.1546 227.50403,946.3171 229.91963,946.3171 C 233.60638,946.3171 234.96384,948.6717 237.99462,949.1546 C 238.66398,949.2613 239.33778,949.3605 240.00714,949.467 C 240.00714,947.0856 239.62112,944.3581 240.00714,942.0421 C 240.61278,938.4082 246.29462,937.4894 246.29462,937.467 C 246.29462,931.8578 244.51203,932.0771 248.58213,930.0421 C 252.5271,928.0696 252.45192,934.0715 254.86963,933.467 C 257.81384,932.731 262.44074,934.419 265.59462,932.8421 C 269.97918,930.6498 270.80506,929.9776 274.29462,933.467 C 278.17285,937.3453 281.91997,936.7107 283.13213,932.7296 C 283.13213,931.5867 285.86309,931.7414 286.36965,930.7171 C 288.31469,926.7834 285.41485,920.2896 289.71965,920.9046 C 290.47184,921.0122 300.60168,922.4557 301.14464,923.1797 C 304.10965,927.133 308.30957,930.7235 314.29464,928.3296 C 318.95061,926.4672 316.50856,922.3563 314.86965,920.3296 C 314.07824,919.3509 301.59525,913.5878 309.14464,912.3296 C 311.7548,911.8946 313.58904,908.8674 316.00712,909.9421 C 324.8768,913.8842 328.18552,914.2205 334.29464,920.3296 C 336.09728,922.1323 337.05517,918.8418 340.30712,915.2421 C 342.93352,912.3349 338.89568,909.6184 340.88213,906.1421 C 346.91813,895.579 349.13997,905.4718 353.14464,901.467 C 355.01368,899.5981 356.62405,895.7546 360.58213,895.7546 C 363.13624,895.7546 372.40117,895.2117 370.86965,890.6171 C 370.60656,889.8278 370.6512,882.069 369.71965,880.9046 C 368.95773,879.9522 366.98157,877.5819 366.21965,876.6296 C 367.03781,876.016 374.78229,870.2642 373.71965,869.467 C 370.92229,867.3691 365.18984,861.1776 368.58213,860.3296 C 371.6144,859.5715 372.47272,863.864 374.29464,862.0421 C 375.64088,860.6958 383.81989,857.8664 381.71965,859.1797 C 380.12565,860.1763 386.86248,859.2605 385.71965,870.6171 C 385.24477,875.3358 372.00133,873.5837 379.43213,878.0421 C 381.41232,879.2302 389.43445,884.1784 391.43213,883.1797 C 394.20045,881.7955 400.37632,883.0038 401.14464,881.467 C 403.02192,877.7126 411.92304,876.2 412.58208,872.9046 C 413.63408,867.6451 415.98896,868.453 420.0072,866.0421 C 421.09968,865.3866 433.64416,861.9666 431.43216,859.7546 C 430.42048,858.743 425.62032,857.3142 426.29472,854.6171 C 426.55536,853.5741 434.66992,845.8954 432.58208,844.3296 C 430.54656,842.803 430.00944,840.6288 430.18208,838.0922 C 430.02352,838.0754 429.89328,838.0576 429.71968,838.0421 C 432.60608,837.3205 418.82464,833.3795 417.71968,830.6171 C 416.65712,827.9608 415.50544,824.4029 413.71968,822.6171 C 407.66736,816.5648 416.23376,816.5064 405.14464,814.0421 C 401.98464,813.3398 398.14973,808.1846 396.00712,806.0421 C 392.18861,802.2235 389.14464,802.0373 389.14464,795.7546 C 389.14464,792.3322 393.83272,789.777 395.53213,786.667 C 395.20384,786.361 394.87933,786.0464 394.55712,785.7296 C 393.24976,785.7822 386.29464,784.4134 386.29464,778.6171 C 386.29464,774.9587 387.43213,774.5883 387.43213,770.7046 C 390.28928,767.0856 387.04941,766.6099 387.14464,765.467 C 380.1432,766.1102 377.8628,764.9045 370.86965,764.9046 C 369.51944,764.9046 361.14464,761.2763 361.14464,761.467 C 361.14464,761.848 361.44213,762.379 361.14464,762.6171 C 359.13304,764.2264 348.47032,770.5674 345.71965,769.467 C 344.0092,768.7829 335.77189,769.8069 334.29464,768.3296 C 334.09877,768.1338 327.1068,759.7546 326.86965,759.7546 C 320.17317,759.7546 326.44765,753.7352 322.29464,752.9046 C 308.73717,750.1931 321.85957,753.0986 314.86965,748.9046 C 313.35453,747.9955 305.10829,744.9016 300.35712,744.867 z ";
countyPaths.kerry = "M 211.38213,696.5421 C 210.77078,696.5451 210.31798,696.683 210.11963,697.0171 C 207.2912,701.7802 203.96026,703.3834 200.01963,701.867 C 198.61613,701.327 195.62754,696.4106 194.76963,699.8421 C 194.29694,701.7328 189.03624,706.1045 187.89462,702.6797 C 187.03798,700.1096 183.04246,698.2758 182.24462,701.467 C 182.08018,702.125 179.10797,709.4816 179.00714,709.5421 C 173.9565,712.5725 175.87779,714.3184 173.75714,718.0296 C 171.22987,722.4523 168.18936,722.0778 163.65714,724.0922 C 162.44494,724.6309 161.08083,724.9086 160.01963,725.7046 C 158.49582,726.8474 154.8191,724.6693 154.35714,726.5171 C 153.82461,728.6472 150.37925,732.9274 146.68213,730.1546 C 144.55038,728.5558 136.16963,725.1643 136.16963,730.1546 C 136.16963,733.1181 136.06989,739.8421 140.21963,739.8421 C 145.36002,739.8421 144.07787,742.4782 147.08213,743.4797 C 153.76085,745.7058 146.80016,750.0602 150.31963,753.5797 C 152.27085,755.5309 155.04422,759.7022 151.13213,761.267 C 148.8827,762.1669 142.6777,764.7066 149.91963,766.5171 C 151.97451,767.0309 155.02546,765.3046 158.39462,765.3046 C 160.36203,765.3046 166.41566,764.2512 166.88213,766.1171 C 168.10109,770.993 160.31536,772.673 156.78213,773.3797 C 154.67755,773.8005 138.72237,774.4307 138.59462,773.7922 C 137.68298,769.2338 130.71309,771.5086 130.51963,770.1546 C 130.08795,767.1328 126.06963,766.0413 126.06963,763.2797 C 126.06963,760.1949 129.17322,757.472 125.26963,758.0296 C 123.33338,758.3062 117.13454,759.5344 118.80714,762.8797 C 119.6264,764.5182 120.41963,765.0851 120.41963,766.9171 C 120.41963,773.3371 118.91773,769.7421 114.75714,769.7421 C 108.90131,769.7421 107.54662,770.5286 102.64462,772.9797 C 100.42742,774.0882 98.75368,773.2614 100.00714,770.7546 C 100.04669,770.6755 103.50245,763.148 102.84462,763.2797 C 96.89909,764.4686 96.85486,767.5011 92.53213,768.9421 C 91.04974,769.5774 89.22608,771.3899 88.09462,771.767 C 85.20027,772.7318 80.33373,772.261 81.21963,775.8046 C 81.72995,777.8459 82.43213,779.3462 82.43213,781.867 C 82.43213,786.3771 78.43066,781.831 75.96963,784.2922 C 72.86603,787.3957 68.83718,784.1773 67.48213,781.467 C 67.08168,780.6662 62.63213,776.7717 62.63213,780.6546 C 62.63213,783.079 62.63213,785.5053 62.63213,787.9296 C 62.63213,789.6858 57.29112,789.2488 58.19462,790.7546 C 60.57717,794.7256 61.01963,793.8338 61.01963,797.6296 C 61.01963,800.6413 60.15573,803.2539 62.63213,804.4922 C 63.17088,804.7614 63.7067,805.06 64.25714,805.3046 C 65.46931,805.8434 66.4505,805.7973 67.68213,805.3046 C 69.51526,804.5714 71.0753,802.5845 73.14462,802.067 C 75.67984,801.4333 75.51274,798.0893 78.39462,799.2421 C 81.54936,800.504 82.26731,799.0069 84.45714,796.8171 C 88.42262,792.8517 85.7944,797.4837 90.10714,798.4421 C 91.31931,798.7115 92.50288,799.2421 93.74462,799.2421 C 95.62061,799.2421 98.55214,795.4096 99.00714,797.2296 C 99.55515,799.4216 100.84325,802.8795 103.84462,802.8797 C 106.87011,802.8797 108.02034,800.8546 109.10714,800.8546 C 111.99074,800.8546 113.80619,798.8672 116.78213,798.4421 C 120.00782,797.9813 129.66698,800.6909 132.13213,798.8421 C 135.48802,796.3251 137.33618,797.2464 140.61963,795.6046 C 143.84512,793.9918 145.11213,792.3797 149.10714,792.3797 C 149.89237,792.3797 159.60714,792.6264 159.60714,795.2046 C 159.60714,799.6755 158.32544,799.7459 155.96963,803.2797 C 154.36037,805.6934 151.57229,808.749 147.49462,807.7296 C 144.73008,807.0384 142.50205,804.7696 139.00714,806.5171 C 136.07632,807.9826 139.03562,812.4 137.38213,813.3922 C 133.45878,815.7461 129.65379,816.8501 125.26963,819.0421 C 121.78435,820.7848 116.56147,820.0786 111.53213,822.2797 C 108.04734,823.8046 102.98454,827.2282 99.40714,826.7171 C 97.52152,826.4477 95.22347,828.429 93.34462,828.7421 C 89.91872,829.3131 91.79461,833.3976 90.91963,833.5922 C 87.33278,834.3891 81.99194,834.2314 83.24462,839.2421 C 83.81691,841.5312 86.88939,845.6973 84.85714,847.7296 C 81.04277,851.544 83.70486,854.6046 75.56963,854.6046 C 73.60894,854.6046 67.04027,857.8139 67.08213,857.8296 C 68.6605,858.4214 74.75714,860.2805 74.75714,863.0797 C 74.75714,864.327 74.07389,872.0379 74.75714,872.3797 C 75.85237,872.9272 81.57205,874.8045 82.84462,874.8046 C 83.42946,874.8046 88.03459,871.627 88.09462,871.567 C 88.65998,871.0018 89.34002,868.2832 90.51963,866.3171 C 91.04154,865.4472 96.59158,859.0736 98.19462,862.2797 C 100.07522,866.0408 98.8719,869.1405 96.16963,871.167 C 92.48086,873.9336 96.06605,876.3134 98.19462,878.4421 C 99.984,880.2315 105.05714,879.1365 105.05714,881.667 C 105.05714,888.337 104.96088,889.7824 111.11963,887.7296 C 113.41226,886.9653 115.21219,883.6922 118.80714,883.6922 C 124.94387,883.6922 122.40659,880.0266 125.66963,877.2296 C 126.61245,876.4214 127.25288,874.8045 128.49462,874.8046 C 133.29206,874.8046 131.9645,872.9291 135.36963,871.567 C 140.45368,869.5334 146.28213,874.256 146.28213,873.5922 C 146.28213,868.7946 153.0153,873.0382 154.75714,869.5546 C 156.8697,865.3294 157.63901,865.5046 163.24462,865.5046 C 167.34317,865.5046 168.81803,861.467 172.94462,861.467 C 176.22165,861.467 178.96997,860.667 182.24462,860.667 C 185.23653,860.667 185.41506,863.2854 184.65714,866.3171 C 183.51328,870.8925 179.95992,870.767 174.96963,870.767 C 171.50699,870.767 166.66282,869.6194 165.66963,873.5922 C 165.08347,875.9368 157.01666,875.7552 157.18213,876.4171 C 157.84448,879.0666 159.41398,883.0406 155.56963,882.0797 C 154.49214,881.8102 153.40963,881.5365 152.33213,881.267 C 151.3116,881.012 151.11832,878.1576 150.31963,878.8421 C 148.5219,880.383 148.7696,884.6648 146.75714,885.2421 C 147.73803,888.1867 147.43213,895.7632 147.43213,899.1797 C 147.43213,904.3814 152.49037,900.0818 154.29462,899.1797 C 156.03824,898.3078 160.01,895.1851 164.58213,894.0421 C 167.22827,893.3806 171.07149,890.3597 172.00714,886.6171 C 173.41786,880.9742 179.00013,882.6171 185.14462,882.6171 C 188.38832,882.6171 191.63154,882.2326 194.86963,882.0421 C 196.9264,881.9211 197.94682,878.6171 200.00714,878.6171 C 205.99616,878.6171 206.39934,872.225 209.71963,868.9046 C 211.77027,866.8539 222.3971,868.0357 225.71963,866.0421 C 227.98894,864.6805 226.86963,855.8418 226.86963,853.467 C 226.86963,849.8198 227.57742,846.0358 229.71963,843.1797 C 233.30373,838.4008 244.00714,839.2342 244.00714,832.3296 C 244.00714,827.5093 235.71822,830.6323 238.86963,824.3296 C 240.89749,820.2739 243.43483,819.7573 239.43213,815.7546 C 236.85877,813.1811 238.86963,807.9782 238.86963,804.9046 C 238.86963,802.8693 236.40762,797.757 236.00714,795.7546 C 234.96286,790.5333 231.94694,788.0659 229.14462,784.3296 C 225.44688,779.3992 232.0511,778.171 234.29462,775.1797 C 235.47242,773.6091 238.49346,768.1218 238.86963,766.6171 C 238.91347,766.4418 238.52632,765.6128 238.23213,764.7546 C 237.48381,764.2374 236.74315,763.7051 236.00714,763.1797 C 240.35483,763.1797 228.89626,757.4438 224.58213,756.9046 C 218.7979,756.1816 218.96368,753.5133 220.58213,749.467 C 222.48352,744.7136 222.74486,745.2301 220.58213,740.9046 C 218.98034,737.701 223.87624,733.7501 225.14462,732.9046 C 225.80072,732.4672 224.2633,721.939 225.71963,719.7546 C 227.95795,716.3971 223.37819,711.7006 221.71963,710.0421 C 220.26587,708.5883 220.51517,701.7306 220.56963,698.9171 C 220.20872,698.8387 219.79174,698.7277 219.33213,698.5922 C 218.27392,698.9656 218.00914,698.6992 217.95714,698.167 C 215.68114,697.4419 212.98416,696.5341 211.38213,696.5421 z ";
countyPaths.waterford = "M 496.01968,749.7546 C 493.14512,749.9189 487.98576,753.7555 484.58208,752.9046 C 481.69424,752.1826 480.4272,755.0744 476.00704,753.467 C 466.21136,749.905 470.50064,753.467 461.71968,753.467 C 456.03408,753.467 454.0768,753.7712 451.43216,755.7546 C 449.80176,756.9774 440.59344,757.5494 441.14464,759.7546 C 441.55056,761.3782 444.27296,767.1504 442.8696,768.9046 C 437.26656,775.9083 446.29472,773.2358 446.29472,778.6171 C 446.29456,782.6982 445.4672,787.491 439.43216,784.9046 C 434.59328,782.8307 430.0328,786.4862 426.8696,784.9046 C 423.93712,783.4382 418.48448,781.5238 416.0072,780.9046 C 406.80224,778.6034 412.62528,780.2739 409.14464,783.7546 C 406.8392,786.0602 395.43392,782.212 395.71965,786.3296 C 394.1968,789.5981 389.14464,792.2067 389.14464,795.7546 C 389.14464,802.0373 392.18861,802.2235 396.00712,806.0421 C 398.14973,808.1846 401.98464,813.3398 405.14464,814.0421 C 416.23376,816.5064 407.66736,816.5648 413.71968,822.6171 C 415.50544,824.4029 416.65712,827.9608 417.71968,830.6171 C 418.82464,833.3795 432.60624,837.3205 429.71968,838.0421 C 429.89328,838.0576 430.02352,838.0754 430.18208,838.0922 C 430.27632,836.7094 430.58176,835.2189 430.9696,833.667 C 432.21232,828.6962 435.7096,829.9822 436.48208,834.6171 C 436.92496,837.2742 435.63744,842.485 438.29472,842.0421 C 446.51904,840.6714 438.52512,842.8477 442.29472,846.6171 C 442.85008,847.1726 449.7832,853.8002 450.29472,851.7546 C 451.44848,847.139 453.51776,849.8832 454.8696,847.1797 C 456.99248,842.9338 457.11056,842.275 459.43216,839.1797 C 462.17664,835.5203 469.76592,833.3746 471.43216,830.0421 C 473.73808,825.4301 471.2824,826.8802 469.71968,823.7546 C 468.60896,821.5333 468.2032,817.4672 465.71968,817.467 C 460.75904,817.467 462.10176,812.3296 464.58208,812.3296 C 467.05488,812.3296 480.00704,813.7848 480.00704,811.1797 C 480.00704,800.2325 487.7624,807.0206 494.29472,803.7546 C 494.67552,803.5642 495.01456,803.2632 495.43216,803.1797 C 503.23584,801.6189 510.8696,804.5238 510.8696,803.1797 C 510.8696,797.7403 516.26752,800.5355 518.8696,802.6171 C 525.06624,807.5744 522.67344,806.1861 527.43216,802.6171 C 528.956,801.4742 530.37376,800.1597 532.00704,799.1797 C 536.46912,796.5024 538.2616,796.7058 536.58208,800.9046 C 532.78048,810.4086 532.00672,806.6171 541.14464,806.6171 C 546.07424,806.6171 547.44336,802.1893 552.58208,800.9046 C 554.49392,800.4266 558.2872,796.0898 556.94464,793.4046 C 556.24816,792.0117 557.14032,784.6045 556.00704,783.7546 C 555.24528,783.1832 554.4816,782.6136 553.71968,782.0421 C 548.02384,777.7702 544.6336,780.9339 542.29472,779.1797 C 539.8112,777.317 533.63632,775.9918 532.34464,774.0797 C 532.23184,774.0682 532.11984,774.0536 532.00704,774.0421 C 530.904,772.5714 525.27296,777.5288 525.14464,778.0421 C 524.30608,781.3966 515.93264,773.28 515.43216,772.9046 C 512.62528,770.7994 511.65328,766.8891 510.8696,763.7546 C 509.69392,759.0518 503.46336,756.9078 500.00704,755.1797 C 499.28736,754.8198 496.45728,750.948 496.29472,749.7546 C 496.20688,749.752 496.11232,749.7493 496.01968,749.7546 z ";
countyPaths.limerick = "M 346.0125,658.1642 C 344.68346,657.8888 339.42501,667.2883 339.42501,669.7267 C 339.42501,671.9184 336.92125,674.7466 336,676.5891 C 335.67872,677.2317 327.59966,678.7021 326.8625,679.4392 C 325.21974,681.0819 324.18387,681.1517 320.57501,681.1517 C 320.40992,681.0909 320.24221,681.0253 320.07501,680.9642 C 320.38106,685.4813 309.94605,684.1766 305.87501,684.1766 C 302.11645,684.1766 295.54578,682.2122 292.5375,682.9642 C 287.61534,684.1947 281.02326,678.0654 275.57501,682.1517 C 271.43107,685.2595 273.53336,687.8086 268.7,688.6142 C 264.75331,689.272 261.2495,692.2517 258.2,692.2517 C 251.454,692.2517 247.67755,695.4483 242.0375,696.7016 C 235.84842,698.077 231.80037,700.6411 225.0625,698.7267 C 223.56288,698.6648 222.04496,698.8718 220.5625,698.6016 C 220.50803,701.415 220.25874,708.273 221.7125,709.7267 C 223.37106,711.3853 227.95082,716.0818 225.7125,719.4392 C 224.25616,721.6237 225.7936,732.1517 225.1375,732.5891 C 223.86912,733.4347 218.9732,737.3856 220.57501,740.5891 C 222.73774,744.9146 222.47638,744.3982 220.57501,749.1517 C 218.95654,753.1978 218.79078,755.8661 224.57501,756.5891 C 228.88912,757.1283 240.3477,762.8642 236,762.8642 C 236.73603,763.3896 237.47667,763.9219 238.22501,764.4392 C 237.89933,763.489 237.68704,762.5018 238.2875,762.3016 C 239.7655,760.961 244.41134,755.6176 247.42501,754.8642 C 250.34222,754.1349 253.28454,756.9378 254.8625,757.7267 C 257.18864,758.8898 262.88552,757.6021 265.1375,757.1517 C 268.66102,756.447 274.2875,756.468 274.2875,761.1517 C 274.2875,765.5134 288.07282,757.6539 288.57501,757.1517 C 293.50354,752.2232 280.56874,752.7021 297.1375,749.1517 C 298.25499,748.9122 296.6264,746.7488 297.1375,745.7267 C 297.56858,744.8645 298.76629,744.5402 300.35,744.5517 C 305.10115,744.5862 313.34739,747.68 314.8625,748.5891 C 321.85242,752.783 308.73002,749.8776 322.2875,752.5891 C 326.44051,753.4197 320.16605,759.4392 326.8625,759.4392 C 327.09966,759.4392 334.09163,767.8182 334.2875,768.0142 C 335.76475,769.4914 344.00206,768.4675 345.7125,769.1517 C 348.46318,770.252 359.12592,763.9109 361.1375,762.3016 C 361.43498,762.0637 361.1375,761.5326 361.1375,761.1517 C 361.1375,760.9608 369.5123,764.5891 370.8625,764.5891 C 377.85566,764.5891 380.13608,765.7947 387.1375,765.1517 C 387.10078,765.5923 387.5607,765.9283 387.97501,766.3891 C 387.9852,765.5976 387.98979,764.8058 388,764.0142 C 388,757.8198 392.34965,756.6672 385.1375,754.8642 C 383.23117,754.3877 378.0681,747.7947 376.57501,746.3016 C 373.22086,742.9475 380.3673,738.8642 372,738.8642 C 365.25605,738.8642 366.2875,738.2869 366.2875,732.0142 C 366.2875,728.7261 359.20549,732.2746 356.57501,730.3016 C 354.17797,728.5038 358.46829,722.7285 358.8625,721.1517 C 359.5064,718.576 373.18603,714.8282 374.8625,713.1517 C 380.57424,707.44 381.33805,716.1579 377.7125,702.8642 C 376.92008,699.9586 380.57499,697.3133 380.57501,694.3016 C 380.57501,692.333 375.67502,692.7515 376.57501,689.1517 C 377.45859,685.6173 387.22104,678.5534 389.7125,675.4392 C 390.43062,674.5416 371.71965,678.316 369.7125,674.3016 C 368.80699,672.4906 367.04584,674.6755 365.7125,673.1517 C 363.75323,670.9125 361.74899,676.1608 358.8625,675.4392 C 352.41378,673.827 352.03366,681.219 348,673.1517 C 346.4131,669.9779 347.7196,665.155 346.8625,661.7267 C 346.6776,660.987 346.44155,660.0624 346.2875,658.5891 C 346.24413,658.3354 346.14998,658.1926 346.0125,658.1642 z ";
countyPaths.clare = "M 265.0625,562.1517 C 259.19064,562.1517 261.42499,562.479 261.42501,566.1891 C 261.42501,570.0704 259.31738,572.6834 254.9625,571.4392 C 250.93394,570.2882 250.72189,570.6392 248.5,570.6392 C 243.94414,570.639 245.33227,568.2267 242.0375,564.5766 C 237.68669,559.7565 233.57994,564.3971 233.55,564.5766 C 233.11938,567.1603 234.05194,574.8853 231.52501,576.2891 C 225.1084,579.8539 228.33704,582.3176 226.67501,583.5642 C 223.80754,585.7147 221.36413,586.5717 220.2125,590.0267 C 219.11843,593.3088 217.52851,596.3429 216.17501,599.7267 C 215.41725,601.6211 209.3,603.9357 209.3,605.3891 C 209.3,608.4206 209.1061,609.4274 208.5,611.8517 C 208.00589,613.8282 202.11926,617.9142 207.6875,617.9142 C 207.7773,617.9142 207.33272,617.9142 208.5,617.9142 C 212.30034,617.9141 213.45485,614.6766 216.97501,614.6766 C 222.01549,614.6766 222.7051,616.6216 219.4,619.9267 C 216.62883,622.6978 219.81685,624.7744 215.7625,626.8016 C 212.81382,628.276 212.43235,632.5104 211.72501,632.8642 C 206.84443,635.3045 206.36027,635.5061 204.05,640.1267 C 202.81411,642.5984 198.4,643.4256 198.4,646.1891 C 198.4,649.5546 200.31717,650.2704 200.8125,652.2517 C 202.20616,657.8262 195.89005,654.6766 192.7375,654.6766 C 187.4185,654.6766 188.46648,659.1365 185.4625,661.1392 C 181.08312,664.0587 179,665.8658 179,670.8392 C 179,673.9774 179.55078,676.9018 175.7625,676.9016 C 173.99392,676.9016 168.43291,676.2824 167.2875,677.7142 C 166.4672,678.7395 164.81267,683.3954 164.05,683.7766 C 161.3204,685.1414 157.77733,689.4267 154.35,689.4267 C 150.20448,689.4267 150.47794,690.6555 147.4875,691.8517 C 145.99782,692.4475 136.16282,698.7267 141.42501,698.7267 C 144.95909,698.7267 152.07752,697.5222 154.75,699.5267 C 158.03168,701.9878 156.8957,698.3141 158.3875,698.3142 C 159.19562,698.3141 160.00438,698.3141 160.8125,698.3142 C 162.4657,698.3142 169.19451,695.9382 170.9125,693.8766 C 171.99739,692.5747 177.24995,687.7142 178.1875,687.4016 C 180.61187,686.5936 183.65547,691.6336 185.4625,689.8267 C 188.00515,687.284 189.23483,685.541 188.2875,681.7517 C 187.68437,679.3392 188.01896,677.6782 191.12501,676.9016 C 193.46984,676.3155 194.64341,680.701 195.97501,683.3642 C 196.96026,685.3347 198.08445,690.7907 202.4375,688.6142 C 209.14418,685.2608 204.21501,689.8267 211.32501,689.8267 C 215.70358,689.8267 216.11539,688.6182 219.8125,686.6016 C 221.53512,685.6621 230.36989,681.0539 232.3375,684.9891 C 234.82608,689.9664 229.28898,684.6237 227.0875,689.0267 C 224.95074,693.3002 228.33414,692.2517 231.92501,692.2517 C 234.10806,692.2517 238.4021,690.8318 240.4125,689.8267 C 245.0139,687.5259 241.06379,688.501 247.2875,685.3891 C 250.91627,683.5747 253.22979,680.2594 255.77501,677.7142 C 257.75504,675.7341 257.88894,671.5627 259.4125,670.0392 C 261.35896,668.0926 264.70795,666.196 263.85,662.7642 C 263.5683,661.6374 263.05416,654.6766 265.0625,654.6766 C 273.46594,654.6766 269.87285,653.6624 271.12501,647.4016 C 271.87355,643.6589 273.04813,643.0536 275.1625,640.9392 C 278.27666,637.825 278.39909,648.2446 278,650.6392 C 277.42467,654.091 272.3375,656.1584 272.3375,659.1267 C 272.3375,662.7942 275.57501,664.1874 275.57501,667.2016 C 275.57501,668.6334 278.68078,669.0352 278.4,670.4392 C 278.26531,671.1126 277.32432,672.3288 278,672.4517 C 280.97886,672.9933 288.7889,673.2642 292.5375,673.2642 C 296.91632,673.2642 299.83104,675.456 304.2625,676.0891 C 305.58939,676.2787 319.48122,677.8827 320.0125,680.5392 C 320.94827,682.7885 325.58395,680.344 326.8625,679.4392 C 327.59966,678.7021 335.67872,677.2317 336,676.5891 C 336.92125,674.7466 339.42501,671.9184 339.42501,669.7267 C 339.42501,667.2883 344.68346,657.8888 346.0125,658.1642 C 346.06547,658.1752 346.11032,658.2069 346.15,658.2517 C 346.19547,658.0766 346.24202,657.9016 346.2875,657.7267 C 344.06619,659.948 347.17011,651.3989 348.57501,648.5891 C 350.048,645.643 344.14301,640.4251 344.14301,637.7267 C 344.14301,633.0674 356.4195,625.3326 340.00952,623.9944 C 336.86923,623.7382 346.95024,617.648 350.13422,615.7376 C 354.44597,613.1506 363.32379,617.8595 363.32381,613.2456 C 363.32381,607.4904 366.20016,607.8555 365.1375,604.3016 C 365.79126,607.6043 354.04286,602.9989 350.8625,604.5891 C 346.84648,606.5971 342.14515,599.8718 341.1375,598.8642 C 339.72357,597.4502 332.77603,596.7306 330.2875,594.8642 C 326.3072,591.879 322.41886,595.2682 320.57501,597.7267 C 318.51926,600.4677 315.36014,600.0141 310.8625,600.0142 C 310.21298,600.0142 305.60021,604.0141 301.7125,604.0142 C 297.55125,604.0142 295.49554,609.6037 289.1375,608.0142 C 287.60459,607.6309 289.1375,600.0682 289.1375,598.8642 C 289.1375,595.3565 285.3467,592.4477 284.57501,588.5891 C 283.78854,584.6568 281.08669,583.7512 277.7125,581.7267 C 272.23912,578.4426 272.76757,575.6718 271.42501,570.3016 C 271.324,569.8976 271.226,569.4931 271.12501,569.0891 C 270.63906,568.8144 270.10008,568.3893 269.5125,567.8016 C 267.94656,566.2357 267.53005,562.1517 265.0625,562.1517 z ";
countyPaths.dublin = "M 656.46256,449.9891 C 656.30848,450.096 656.15408,450.192 656,450.3016 C 655.25632,450.153 649.71248,457.9102 649.71248,460.5891 C 649.71248,465.1464 648.52272,464.8605 645.1376,464.0142 C 639.54016,462.6149 639.5416,461.2533 633.71248,463.4392 C 633.07344,463.6789 630.3728,468.2528 628.57504,469.1517 C 624.13088,471.3738 631.33024,476.6494 632,477.1517 C 633.5136,478.2869 638.28752,482.8762 638.28752,485.1517 C 638.28752,489.0517 640.12352,492.4531 637.1376,495.4392 C 634.07888,498.4979 632.53152,501.1672 629.1376,502.8642 C 628.8232,503.0214 627.70512,507.585 624.57504,508.8642 C 625.89312,513.8507 625.30768,518.5715 620.57504,521.7267 C 618.72304,522.9613 616.43984,528.3693 616,528.5891 C 613.00096,530.0886 613.1376,531.471 613.1376,536.0142 C 613.1376,540.8453 617.57776,546.8659 622,547.1517 C 622.85712,547.4374 623.42864,547.4392 624,547.4392 C 629.07136,547.4392 632.85968,547.1613 636,550.3016 C 636.82352,551.1251 644.57504,558.3968 644.57504,557.7267 C 644.57504,554.1674 645.43984,546.0166 650.86256,551.4392 C 651.2368,551.8134 658.28752,559.1056 658.28752,556.5891 C 658.28752,552.9581 659.01808,548.0499 663.42496,549.1517 C 666.00704,549.7971 670.45312,554.0008 673.1376,556.0142 C 673.59952,555.9216 674.05872,555.7522 674.52496,555.7016 C 673.93648,553.2283 675.05632,550.5144 674.28752,547.4392 C 673.37664,543.7957 670.8624,540.5176 670.86256,536.0142 C 670.8624,529.3278 663.13808,532.2896 660,529.1517 C 657.55184,526.7034 658.28752,522.6616 658.28752,518.8642 C 658.28752,512.0686 664.98096,516.0141 669.71248,516.0142 C 677.79904,516.0141 685.07008,517.6667 676,510.8642 C 673.4096,508.9213 667.42496,509.5397 667.42496,506.3016 C 667.42496,505.7302 667.68064,505.1002 667.42496,504.5891 C 666.6816,503.1024 659.28832,494.6947 662.86256,492.0142 C 674.53504,483.2598 667.37104,490.648 665.71248,484.0142 C 663.55168,475.3706 674.28752,479.3722 674.28752,476.5891 C 674.28752,470.675 670.00608,466.3603 665.1376,463.4392 C 659.25072,459.907 660.3456,453.7291 658.28752,452.0142 C 657.51424,451.3698 656.92256,450.6882 656.46256,449.9891 z ";
countyPaths.carlow = "M 585.31248,619.7642 C 585.25392,619.847 585.19328,619.929 585.1376,620.0142 C 584.31824,621.6528 582.04624,623.8168 581.71248,625.1517 C 580.61504,629.5416 574.2968,627.9643 573.71248,630.3016 C 572.66304,634.4998 561.71072,631.9154 561.42496,632.3016 C 560.936,632.6258 558.86256,634.9261 558.86256,636.5891 C 558.8624,644.1522 557.5248,639.5738 553.1376,642.8642 C 549.6904,645.4496 544.77904,649.5173 542.57504,650.8642 C 542.10352,651.0357 539.89536,661.8312 539.42496,662.3016 C 535.61104,666.1157 535.5936,669.0765 540,672.0142 C 543.65472,674.4507 549.71248,675.3067 549.71248,680.0142 C 549.71248,684.1816 548.7352,688.7494 551.42496,691.4392 C 553.3632,693.3774 558.17856,696.7037 558.86256,699.4392 C 559.52864,702.1043 564.6536,703.8446 563.42496,706.3016 C 562.53488,708.0819 559.87392,711.3936 558.86256,715.4392 C 557.67776,720.1782 559.93424,721.661 562.28752,724.0142 C 562.33072,724.1366 562.36,724.2459 562.4,724.3642 C 564.08704,721.4336 572.37424,717.3546 573.1376,714.3016 C 574.66016,708.2112 584.96784,713.0109 582.86256,704.5891 C 581.88256,700.6693 582.8624,695.5285 582.86256,691.4392 C 582.8624,684.1176 593.24512,684.5891 597.71248,684.5891 C 602.49488,684.5891 603.92912,681.6558 601.1376,678.8642 C 597.45184,675.1786 600.20944,674.6432 606.28752,670.3016 C 606.63472,670.1162 606.9752,669.9298 607.3,669.7392 C 604.40704,669.391 606.7712,659.3478 604.57504,657.1517 C 602.01152,654.5882 599.42496,657.3578 599.42496,651.4392 C 599.42496,647.94 603.0392,645.1138 605.1376,644.5891 C 608.48,643.7534 612.58448,642.8642 617.1376,642.8642 C 618.61184,642.864 617.1376,632.5091 617.1376,631.4392 C 617.1376,628.2706 620.49264,621.7739 614.86256,624.5891 C 613.86912,625.0859 612.95248,625.7302 612,626.3016 C 607.75696,628.8475 606.85936,625.1486 604.57504,622.8642 C 601.89824,620.1874 599.54768,622.9256 596,621.1517 C 592.75648,619.5299 590.49184,621.1517 586.86256,621.1517 C 586.26768,620.8542 585.7584,620.3701 585.31248,619.7642 z ";
countyPaths.kilkenny = "M 525.87504,629.4766 C 523.792,629.4808 521.62256,629.7267 520,629.7267 C 515.00832,629.7267 513.68896,630.4082 512.57504,634.8642 C 511.23616,640.2194 511.15792,638.3016 506.28752,638.3016 C 502.1064,638.3016 501.85024,640.261 498.28752,641.1517 C 495.4328,641.8653 496,644.897 496,648.0142 C 496,649.6963 488.48544,649.1517 486.86256,649.1517 C 485.224,649.1517 485.63856,653.1517 484,653.1517 C 480.25216,653.1517 477.70768,649.1522 474.86256,648.0142 C 471.9808,646.8614 473.51584,643.3539 468.57504,644.5891 C 466.0408,645.2227 464.62192,647.4392 460.57504,647.4392 C 460.47312,647.4392 467.55088,654.6366 456,652.8642 C 455.97488,655.3728 456.30944,657.277 457.1376,660.5891 C 457.91856,663.7134 460.05648,667.172 463.42496,668.0142 C 466.05136,668.6707 471.1856,669.2354 472.57504,672.0142 C 473.47104,673.8062 475.21872,683.2437 476,683.4392 C 480.56592,684.5806 476.93216,686.6106 479.42496,689.7267 C 481.73296,692.6117 486.19552,694.473 484,698.8642 C 483.61904,699.6261 483.30064,700.4213 482.86256,701.1517 C 477.33856,710.3582 484.98,706.7838 486.28752,712.0142 C 487.22928,715.7814 483.42496,717.7808 483.42496,721.1517 C 483.42496,725.4435 485.19824,727.4998 488,730.3016 C 490.39808,732.6997 495.33488,733.2637 496,736.5891 C 496.4472,738.825 496.41872,749.0734 496.57504,749.1517 C 496.49904,749.5514 496.44944,749.8797 496.41248,750.1766 C 496.98256,751.6688 499.36176,754.8514 500.01248,755.1766 C 503.4688,756.9048 509.69936,759.049 510.87504,763.7517 C 511.65872,766.8862 512.63072,770.7965 515.4376,772.9016 C 515.93808,773.277 524.31136,781.3938 525.15008,778.0392 C 525.2784,777.5258 530.90944,772.5685 532.01248,774.0392 C 532.12528,774.0506 532.23712,774.9934 532.35008,775.005 C 526.03648,770.8224 548.57776,766.7992 549.71248,765.1517 C 548.4072,760.4856 548.43904,757.415 551.95008,754.8267 C 552.10688,754.5712 552.30208,754.2488 552.57504,753.7267 C 553.46992,750.147 555.53664,747.6819 558.28752,744.0142 C 561.11344,740.2461 555.75424,738.3662 562.86256,736.5891 C 567.08832,735.5326 565.34016,732.2043 562.86256,729.7267 C 560.51408,727.3782 560.6032,728.5592 562.57504,726.3016 C 561.96672,725.7501 561.98192,725.0906 562.4,724.3642 C 562.36,724.2458 562.33072,724.1366 562.28752,724.0142 C 559.93424,721.661 557.67776,720.1781 558.86256,715.4392 C 559.87392,711.3936 562.53488,708.0819 563.42496,706.3016 C 564.6536,703.8446 559.52864,702.1042 558.86256,699.4392 C 558.17856,696.7037 553.3632,693.3773 551.42496,691.4392 C 548.7352,688.7494 549.71248,684.1816 549.71248,680.0142 C 549.71248,675.3067 543.65472,674.4507 540,672.0142 C 535.5936,669.0765 535.61104,666.1157 539.42496,662.3016 C 539.89536,661.8312 542.10352,651.0357 542.57504,650.8642 C 542.77152,650.744 543.01344,650.5746 543.25008,650.4142 C 542.93184,650.371 542.60816,650.3336 542.28752,650.3016 C 542.28752,645.8925 540.63408,641.1517 534.86256,641.1517 C 533.14816,641.1517 531.42672,641.1517 529.71248,641.1517 C 527.05952,641.1517 532.57504,636.3797 532.57504,633.7267 C 532.57504,630.1344 529.34672,629.4698 525.87504,629.4766 z ";
countyPaths.wexford = "M 639.9,645.9267 C 634.6808,646.0221 635.3368,650.0384 638.28752,653.7267 C 639.64416,655.4226 634.28752,656.6925 634.28752,658.8642 C 634.28736,661.1878 632.4168,665.1858 629.71248,665.7267 C 623.24528,667.0202 622.89392,670.3016 618.28752,670.3016 C 616.3264,670.3016 615.09856,673.1517 613.1376,673.1517 C 608.82032,673.1517 609.59488,672.3485 607.71248,669.7267 C 607.5624,669.7509 607.42848,669.7546 607.3,669.7392 C 606.9752,669.9298 606.63472,670.1162 606.28752,670.3016 C 600.20944,674.6432 597.45184,675.1786 601.1376,678.8642 C 603.92912,681.6558 602.49488,684.5891 597.71248,684.5891 C 593.24512,684.5891 582.8624,684.1178 582.86256,691.4392 C 582.8624,695.5285 581.88256,700.6693 582.86256,704.5891 C 584.96784,713.0109 574.66016,708.2112 573.1376,714.3016 C 572.18512,718.1112 559.51264,723.525 562.57504,726.3016 C 560.6032,728.5592 560.51408,727.3782 562.86256,729.7267 C 565.34016,732.2043 567.08832,735.5326 562.86256,736.5891 C 555.75424,738.3662 561.11344,740.2462 558.28752,744.0142 C 555.53664,747.6819 553.46992,750.147 552.57504,753.7267 C 552.30208,754.2488 552.10688,754.5712 551.95008,754.8267 C 552.46032,754.4504 553.0488,754.0859 553.71248,753.7267 C 553.71248,754.4886 553.71248,755.2522 553.71248,756.0142 C 553.71248,760.2099 553.1376,764.0168 553.1376,766.8642 C 553.13744,767.6261 557.1376,768.3898 557.1376,769.1517 C 557.1376,771.1867 556.98896,777.816 558.28752,779.4392 C 561.29536,783.1989 566.28752,783.5586 566.28752,788.5891 C 566.28752,792.9846 569.17136,793.0643 562.38752,797.1267 C 557.54032,800.0293 564.71104,804.579 569.1376,800.5891 C 573.13744,796.9835 569.79824,796.4146 576,794.8642 C 579.17168,794.0712 577.38768,788.9774 576.57504,785.7267 C 575.33104,780.7507 579.06704,783.171 580,779.4392 C 580.84624,776.0541 583.86688,775.3061 586.28752,777.7267 C 586.9624,778.4014 590.60192,785.1483 592,784.5891 C 604.7624,779.4842 598.86736,784.7341 605.1376,786.3016 C 608.54112,787.1525 609.668,793.8624 611.42496,794.3016 C 614.7624,795.136 620.18368,789.1078 623.32496,789.6891 C 627.15904,790.3986 626.40336,784.5891 628.51248,784.5891 C 631.068,784.5891 630.71312,788.8222 633.1376,788.0142 C 636.10704,787.0243 640.81888,786.5454 643.42496,789.1517 C 645.97024,791.697 649.1376,794.3862 649.1376,788.5891 C 649.1376,784.4046 652,782.933 652,780.5891 C 652,775.0549 651.99248,774.2979 647.42496,772.0142 C 641.0688,768.836 648.02176,768.036 645.71248,765.7267 C 642.96544,762.9795 634.28752,767.3242 634.28752,763.4392 C 634.28752,757.177 631.5176,758.3016 625.71248,758.3016 C 621.44672,758.3016 621.51456,752.5891 623.42496,752.5891 C 624.37744,752.5891 625.33504,752.5891 626.28752,752.5891 C 630.65376,752.5891 634.34064,753.1517 638.86256,753.1517 C 641.5736,753.1517 643.79808,747.6973 644.57504,744.5891 C 645.7,740.0891 649.84288,741.2302 650.86256,737.1517 C 652.0912,732.2366 655.06544,729.2562 657.71248,725.7267 C 659.71728,723.0536 660.40544,718.4318 662.86256,716.5891 C 666.52512,713.8422 665.0704,713.4571 666.28752,708.5891 C 666.83136,706.4139 667.47232,701.8264 666.28752,698.8642 C 664.57824,694.591 663.42496,693.28 663.42496,688.0142 C 663.42496,683.5258 662.16112,681.2781 665.1376,678.3016 C 665.89952,677.5397 666.6632,676.776 667.42496,676.0142 C 670.952,672.487 668.2824,670.5773 669.1376,666.3016 C 669.57888,664.0952 670.82704,662.6266 671.81248,660.9766 C 671.368,660.9544 670.98432,660.9419 670.75008,660.9517 C 670.7568,660.9646 670.86192,661.149 670.86256,661.1517 C 670.3248,661.0227 670.3704,660.9674 670.75008,660.9517 C 670.52672,660.5302 667.20704,654.9907 666.28752,653.1517 C 665.2232,651.0232 657.85152,650.9083 655.42496,650.3016 C 650.02128,648.9507 648.27632,647.2718 643.42496,646.3016 C 642.03264,646.0232 640.86656,645.909 639.9,645.9267 z M 676.42496,647.1267 C 676.33712,647.5477 676.20944,647.9602 676.06256,648.3642 C 676.20976,647.959 676.33712,647.5488 676.42496,647.1267 z M 676.06256,648.3642 C 675.98912,648.5662 675.90912,648.7648 675.82496,648.9642 C 675.90944,648.7643 675.9888,648.5666 676.06256,648.3642 z M 675.27504,650.1517 C 674.928,650.855 674.55952,651.5626 674.22496,652.2891 C 674.56048,651.5614 674.9272,650.856 675.27504,650.1517 z M 674.22496,652.2891 C 674.12464,652.5072 674.0296,652.7288 673.9376,652.9517 C 674.02976,652.7283 674.12432,652.5077 674.22496,652.2891 z M 673.9376,652.9517 C 673.85904,653.1418 673.78272,653.332 673.71248,653.5267 C 673.78288,653.3318 673.85888,653.1421 673.9376,652.9517 z M 673.28752,655.0517 C 673.256,655.2168 673.23456,655.3821 673.21248,655.5517 C 673.2344,655.3834 673.25616,655.2155 673.28752,655.0517 z M 672.88752,658.5392 C 672.84928,658.6837 672.80816,658.8256 672.76256,658.9642 C 672.80816,658.8253 672.84912,658.684 672.88752,658.5392 z M 672.7376,659.0392 C 672.68112,659.2048 672.61552,659.3683 672.55008,659.5267 C 672.616,659.3674 672.6808,659.2058 672.7376,659.0392 z ";
countyPaths.wicklow = "M 621.08752,547.0016 C 620.89984,547.3392 620.72832,547.6803 620.57504,548.0142 C 623.32096,553.5061 613.70592,549.7778 612.57504,554.3016 C 611.72384,557.7061 613.71248,560.1195 613.71248,562.8642 C 613.71248,568.1888 609.18672,566.7906 606.86256,571.4392 C 605.84032,573.4834 601.31872,578.8251 598.86256,579.4392 C 595.01984,580.3998 592.06288,582.2264 589.1376,585.1517 C 586.69424,587.595 581.71248,591.2466 581.71248,594.8642 C 581.71248,599.2066 581.09248,600.0592 578.28752,602.8642 C 574.55408,606.5976 578.0728,606.6494 580.57504,609.1517 C 582.86576,611.4424 583.40144,619.4211 586.86256,621.1517 C 590.49184,621.1517 592.75648,619.5299 596,621.1517 C 599.54768,622.9256 601.89824,620.1874 604.57504,622.8642 C 606.85936,625.1486 607.75696,628.8475 612,626.3016 C 612.95248,625.7302 613.86912,625.0859 614.86256,624.5891 C 620.49264,621.7739 617.1376,628.2706 617.1376,631.4392 C 617.1376,632.5091 618.61184,642.8642 617.1376,642.8642 C 612.58448,642.8642 608.48,643.7534 605.1376,644.5891 C 603.0392,645.1138 599.42496,647.94 599.42496,651.4392 C 599.42496,657.3578 602.01152,654.5882 604.57504,657.1517 C 606.86864,659.4453 604.18304,670.2981 607.71248,669.7267 C 609.59488,672.3485 608.82032,673.1517 613.1376,673.1517 C 615.09856,673.1517 616.3264,670.3016 618.28752,670.3016 C 622.89392,670.3016 623.24528,667.0202 629.71248,665.7267 C 632.4168,665.1858 634.28752,661.1878 634.28752,658.8642 C 634.28752,656.6925 639.64416,655.4226 638.28752,653.7267 C 634.7904,649.3554 634.51392,644.5194 643.42496,646.3016 C 648.27632,647.2718 650.02128,648.9507 655.42496,650.3016 C 657.85152,650.9083 665.2232,651.0232 666.28752,653.1517 C 667.20704,654.9907 670.52672,660.5302 670.75008,660.9517 C 670.98432,660.9419 671.368,660.9544 671.81248,660.9766 C 672.54848,659.7445 673.1376,658.4125 673.1376,656.5891 C 673.13744,652.3134 676.57504,649.5734 676.57504,645.7267 C 676.57504,641.9896 677.6672,637.4568 681.1376,636.5891 C 683.84656,635.9118 687.42496,633.3174 687.42496,629.1517 C 687.42496,625.9958 687.4344,622.8421 688,620.0142 C 689.1464,614.2821 687.42496,609.5235 687.42496,604.0142 C 687.42496,603.0618 687.42496,602.104 687.42496,601.1517 C 687.42496,594.7069 686.42496,594.5438 686.42496,588.5891 C 686.42496,584.8234 686.04992,581.2717 686.05008,577.5267 C 686.05008,571.9878 683.66848,571.1075 680.57504,568.0142 C 677.75632,565.1955 678.41344,560.715 676,558.3016 C 675.16384,557.4654 674.73808,556.5971 674.52496,555.7016 C 674.5248,555.701 674.51264,555.7024 674.51248,555.7016 C 674.0504,555.7538 673.59552,555.9224 673.1376,556.0142 C 670.45312,554.0006 666.00704,549.7971 663.42496,549.1517 C 659.01808,548.0499 658.28752,552.9581 658.28752,556.5891 C 658.28752,559.1056 651.2368,551.8134 650.86256,551.4392 C 645.43984,546.0165 644.57504,554.1674 644.57504,557.7267 C 644.57504,558.3968 636.82352,551.1251 636,550.3016 C 632.85968,547.1613 629.07136,547.4392 624,547.4392 C 623.42864,547.4392 622.85712,547.4374 622,547.1517 C 621.69392,547.1318 621.39216,547.0741 621.08752,547.0016 z M 670.75008,660.9517 C 670.3704,660.9674 670.3248,661.0227 670.86256,661.1517 C 670.86192,661.149 670.7568,660.9646 670.75008,660.9517 z ";
countyPaths.meath = "M 585.05008,392.0517 C 583.27968,392.9157 575.75952,396.1347 573.71248,398.8642 C 571.94928,401.215 562.92624,397.8453 561.71248,397.1517 C 557.69872,394.8581 555.90368,389.5491 554.28752,396.0141 C 553.08144,400.8384 557.33936,400.3874 554.28752,403.4392 C 551.82224,405.9043 552.19488,410.4965 553.1376,411.4392 C 555.60544,413.907 553.96128,415.7654 552.57504,417.1517 C 551.53648,418.1902 542.12528,417.4797 541.1376,417.7267 C 537.2528,418.6979 536.5808,417.8629 533.71248,420.0142 C 533.26864,420.347 529.20304,415.4922 528.57504,414.8642 C 525.65584,411.9451 519.34048,416.0986 517.71248,417.7267 C 514.76432,420.6749 505.44144,415.2995 502.86256,416.5891 C 499.57232,418.2342 497.38576,416.6677 496,419.4392 C 494.61424,422.2106 499.80224,420.7251 501.1376,421.7267 C 502.4728,422.7282 510.28752,428.5277 510.28752,429.1517 C 510.28752,434.2205 510.55552,433.4322 513.71248,436.5891 C 515.36656,438.2432 519.25776,440.3942 522.28752,441.1517 C 524.83424,441.7883 531.6568,444.1232 533.71248,446.8642 C 535.12464,448.7472 537.92704,450.1434 538.86256,452.0142 C 539.87856,454.0461 542.28752,455.9827 542.28752,451.4392 C 542.28752,451.211 542.96176,440.3424 544,441.7267 C 545.79872,444.125 549.71248,448.147 549.71248,452.0142 C 549.71248,452.8638 549.1256,460.8582 549.71248,461.1517 C 552.09792,462.3443 553.45168,464.5891 548.57504,464.5891 C 545.03264,464.5891 542.27312,463.9816 543.42496,468.5891 C 544.52256,472.9789 542.61888,479.409 543.42496,483.4392 C 544.94128,491.0208 536.21856,483.727 534.86256,489.1517 C 533.456,494.7773 527.88592,492.593 526.28752,496.5891 C 525.3384,498.9619 515.99712,500.7333 518.23216,501.4392 C 518.9176,502.6962 521.0584,503.2094 522.43152,503.1739 C 524.70896,505.7914 529.29456,508.6181 533.1376,509.1517 C 533.5488,508.7403 543.50512,505.5202 549.1376,502.3016 C 555.61136,498.6024 557.77408,498.3139 564.57504,500.0142 C 569.7224,501.301 572.7792,501.5758 577.71248,500.5891 C 578.66496,500.3987 579.60384,500.0142 580.57504,500.0142 C 585.3448,500.0141 591.87952,505.1517 592.57504,505.1517 C 599.70768,505.1517 604.84016,500.731 610.86256,503.4392 C 614.51184,505.0802 613.66016,504.7096 613.1,504.7267 C 612.53984,504.7437 620.42976,508.831 620.95008,509.0392 C 622.00992,509.4632 623.35312,509.715 624.81248,509.8642 C 624.74208,509.5339 624.66304,509.1973 624.57504,508.8642 C 627.70512,507.5848 628.8232,503.0213 629.1376,502.8642 C 632.53152,501.1672 634.07872,498.4978 637.1376,495.4392 C 640.12352,492.4531 638.28736,489.0517 638.28752,485.1517 C 638.28752,482.8762 633.5136,478.2869 632,477.1517 C 631.33024,476.6494 624.13088,471.3738 628.57504,469.1517 C 630.3728,468.2528 633.07328,463.6789 633.71248,463.4392 C 639.5416,461.2533 639.54016,462.6149 645.1376,464.0142 C 648.52272,464.8603 649.71248,465.1464 649.71248,460.5891 C 649.71248,457.9102 655.25632,450.153 656,450.3016 C 656.15408,450.192 656.30832,450.096 656.46256,449.9891 C 653.61072,445.6563 655.94096,440.5302 653.1376,437.7267 C 650.08528,434.6744 649.64512,433.0579 649.58752,428.9642 C 648.072,429.2976 648.56608,429.4355 649.1376,430.8642 C 647.97408,429.9917 637.64336,430.7712 636,430.3016 C 632.6424,429.3424 631.45712,426.3003 626.86256,425.1517 C 624.37632,424.5301 623.4296,421.1602 621.1376,420.0142 C 618.37536,418.6331 610.81104,420.0141 608,420.0142 C 605.33424,420.0142 603.42496,410.3989 603.42496,408.5891 C 603.42496,404.3597 601.28192,402.4334 598.86256,400.0142 C 595.04304,396.1947 589.48224,393.048 585.05008,392.0517 z ";
countyPaths.westmeath = "M 495.92496,420.7142 C 495.09536,421.2118 494.38592,421.8416 493.85008,422.6517 C 493.424,423.2955 493.00096,423.9451 492.57504,424.5891 C 492.57504,426.113 492.57504,427.6278 492.57504,429.1517 C 492.57504,432.6536 482.8624,436.6536 482.86256,433.1517 C 482.8624,431.0003 483.6696,422.852 480,427.4392 C 476.70672,431.5558 478.00672,435.9968 475.42496,439.4392 C 471.89552,444.1451 473.87344,445.0835 466.86256,448.5891 C 462.64688,450.697 460.69856,449.9862 463.42496,455.4392 C 465.38224,459.3538 463.21232,460.8019 460.57504,463.4392 C 456.41904,467.595 460.72384,469.1971 461.71248,473.1517 C 462.66064,476.9443 461.09712,478.3016 456.57504,478.3016 C 450.3512,478.3016 445.16784,476.0141 439.42496,476.0142 C 434.91552,476.0141 433.3832,473.481 429.71248,477.1517 C 428.64016,478.224 426.90512,478.9971 425.16256,479.7766 C 425.13136,481.0432 424.5664,482.82 423.88752,483.7891 C 422.73824,485.4301 422.73824,485.6016 423.88752,485.6016 C 425.35744,485.6016 425.51344,486.6922 424.3376,488.8891 C 423.63984,490.1926 423.92096,490.6616 426.16256,491.8517 L 428.8376,493.2642 L 424.5,493.9267 C 422.1136,494.2864 419.4744,494.9413 418.6376,495.3891 C 416.19696,496.695 415.37504,496.1587 415.37504,493.2392 C 415.37504,492.1443 414.7616,491.2086 413.56256,490.4517 C 412.87312,490.8565 412.548,491.0528 413.1376,490.8642 C 413.23296,494.1981 414.28752,499.2171 414.28752,502.8642 C 414.28752,506.8688 420.1568,517.6483 416.57504,519.4392 C 416.82224,519.6298 417.05744,519.8189 417.27504,520.0142 C 421.35296,520.0018 424.21888,518.5314 425.1376,518.3016 C 428.46512,517.4698 433.87904,516.5533 436.57504,516.0142 C 437.24464,515.8802 448.74208,517.021 449.1376,515.4392 C 449.76592,512.9258 455.42496,513.4549 455.42496,510.8642 C 455.42496,505.1062 457.31792,501.8946 462.28752,506.8642 C 466.06512,510.6418 468.57504,509.3542 468.57504,515.4392 C 468.57504,519.2762 468.48608,522.509 473.1376,523.4392 C 477.24048,524.2598 484.27744,524.5891 489.1376,524.5891 C 494.8768,524.5891 495.04752,518.1054 498.86256,517.1517 C 500.16016,516.8272 506.02512,514.2638 506.86256,512.5891 C 507.79504,510.724 510.91488,508.9046 511.42496,506.8642 C 513.4584,503.9898 516.20864,501.5952 517.98752,501.3517 C 518.00512,501.3493 518.02016,501.3536 518.0376,501.3517 C 516.69808,500.5958 525.37408,498.8725 526.28752,496.5891 C 527.88592,492.593 533.456,494.7773 534.86256,489.1517 C 536.21856,483.727 544.94128,491.0208 543.42496,483.4392 C 542.61888,479.409 544.52256,472.9789 543.42496,468.5891 C 542.27312,463.9816 545.03264,464.5891 548.57504,464.5891 C 553.45168,464.5891 552.09776,462.3443 549.71248,461.1517 C 549.1256,460.8582 549.71248,452.8638 549.71248,452.0142 C 549.71248,448.147 545.79872,444.125 544,441.7267 C 542.96176,440.3424 542.28752,451.2109 542.28752,451.4392 C 542.28752,455.9827 539.87856,454.0461 538.86256,452.0142 C 537.92704,450.1434 535.12464,448.747 533.71248,446.8642 C 531.6568,444.1232 524.83408,441.7883 522.28752,441.1517 C 519.25776,440.3942 515.36656,438.2432 513.71248,436.5891 C 510.55552,433.4322 510.28752,434.2205 510.28752,429.1517 C 510.28752,428.5277 502.4728,422.7282 501.1376,421.7267 C 500.09424,420.9443 496.69952,421.6763 495.92496,420.7142 z M 498.11248,443.4642 C 499.74624,443.4451 500.73152,444.0722 503.16256,446.0642 C 505.31328,447.8266 506.73744,449.6782 506.7376,450.7016 C 506.7376,451.6387 507.65328,453.6061 508.77504,455.0766 C 509.89664,456.5472 510.81248,457.9598 510.81248,458.2142 C 510.81248,459.6901 503.73088,456.3314 499.92496,453.0517 C 499.09104,452.3331 497.24704,451.7517 495.8376,451.7517 C 493.37008,451.7517 493.27248,451.6011 493.0376,447.9766 L 492.78752,444.2142 L 496.18752,443.6766 C 496.95568,443.5538 497.56784,443.4706 498.11248,443.4642 z M 493.52496,460.7891 C 493.85376,460.7662 494.2312,460.8622 494.71248,461.0392 C 495.71856,461.409 497.80864,463.4621 499.35008,465.6016 C 502.03376,469.3269 502.07856,469.5422 500.61248,470.6142 C 498.28288,472.3178 497.17392,472.0072 493.55008,468.6267 L 490.22496,465.5142 L 491.55008,462.9392 C 492.32032,461.4494 492.80176,460.8394 493.52496,460.7891 z ";
countyPaths.longford = "M 462.06256,384.9392 C 461.77312,384.9949 461.47056,385.0611 461.1376,385.1517 C 460.49376,385.3126 458.29136,386.1859 457.71248,386.3016 C 452.95952,387.2523 448.92816,388.4579 446.86256,392.5891 C 445.92144,394.471 441.71248,400.2568 441.71248,401.1517 C 441.71248,407.5312 435.82032,403.8619 433.1376,407.4392 C 429.45216,412.3528 418.4888,411.1571 418.86256,411.1517 C 418.86704,411.6378 418.87168,412.1187 418.86256,412.5891 C 416.47936,413.185 412.26608,414.2198 415.42496,416.5891 C 417.52848,418.1667 421.63696,420.3414 420.57504,424.5891 C 420.07744,426.5794 414.8624,424.8126 414.86256,426.8642 C 414.86256,430.1152 412,430.5458 412,432.5891 C 412,437.0494 411.6776,439.9386 410.86256,444.0142 C 410.77008,444.4766 410.5344,445.0488 410.2,445.6766 C 410.48912,446.617 410.35536,448.1957 409.61248,450.3267 C 408.87872,452.4317 409.05072,453.4254 410.75008,456.7642 C 411.85632,458.9378 413.72144,461.6139 414.88752,462.7016 C 416.60432,464.3032 417,465.4262 417,468.6142 C 417,470.7792 417.2824,472.5517 417.62496,472.5517 C 417.96752,472.5517 420.17552,471.2589 422.52496,469.6766 C 426.53488,466.9763 426.8,466.9026 426.8,468.5392 C 426.8,470.2627 426.81168,470.261 428.3376,468.3766 L 429.87504,466.4642 L 431.18752,469.6142 C 431.90896,471.3406 432.5,473.0538 432.5,473.4267 C 432.5,473.7995 430.85648,474.8336 428.8376,475.7267 C 425.73248,477.1002 425.16256,477.7088 425.16256,479.6642 C 425.16256,479.6998 425.16336,479.7402 425.16256,479.7766 C 426.90512,478.9971 428.64016,478.224 429.71248,477.1517 C 433.3832,473.481 434.91552,476.0141 439.42496,476.0142 C 445.16784,476.0141 450.3512,478.3016 456.57504,478.3016 C 461.09712,478.3016 462.66064,476.9443 461.71248,473.1517 C 460.72384,469.1971 456.41904,467.595 460.57504,463.4392 C 463.21232,460.8019 465.38224,459.3538 463.42496,455.4392 C 460.69856,449.9862 462.64688,450.697 466.86256,448.5891 C 473.87344,445.0835 471.89552,444.1451 475.42496,439.4392 C 478.00672,435.9968 476.70672,431.5557 480,427.4392 C 483.6696,422.852 482.8624,431.0003 482.86256,433.1517 C 482.8624,436.6536 492.57504,432.6536 492.57504,429.1517 C 492.57504,427.6278 492.57504,426.113 492.57504,424.5891 C 492.80048,424.2483 493.02544,423.9064 493.25008,423.5642 C 490.71056,424.2549 488.8184,417.563 488.57504,416.5891 C 487.9792,414.2061 484.74672,410.0824 483.42496,407.4392 C 481.41984,403.4286 477.90016,399.6269 475.42496,397.1517 C 472.23712,393.9637 471.04416,392.1958 468,389.1517 C 465.19792,386.3494 468.0192,385.1517 462.28752,385.1517 C 462.2072,385.0874 462.13568,385.0125 462.06256,384.9392 z M 418.8,408.6517 C 418.8296,409.4907 418.85504,410.3336 418.86256,411.1392 C 419.01264,410.3069 418.98208,409.473 418.8,408.6517 z ";
countyPaths.louth = "M 639.47504,346.3016 C 638.8456,347.9229 631.42496,348.0981 631.42496,350.3016 C 631.42496,350.4842 625.20208,353.5058 624.57504,356.0141 C 623.67856,359.6003 617.36512,359.2813 614.86256,358.8642 C 610.7376,358.1766 606.08864,357.9648 604.86256,361.7267 C 603.4472,362.668 608.42784,371.2253 603.42496,373.7267 C 600.76784,375.0552 598.8624,378.4262 598.86256,382.3016 C 598.8624,385.751 595.06864,387.6237 593.1376,388.5891 C 591.44016,389.4378 587.48672,390.845 584.86256,392.0141 C 589.32384,392.9635 594.99024,396.1418 598.86256,400.0142 C 601.28192,402.4336 603.42496,404.3597 603.42496,408.5891 C 603.42496,410.3989 605.33424,420.0142 608,420.0142 C 610.81104,420.0141 618.37536,418.6331 621.1376,420.0142 C 623.4296,421.1602 624.37648,424.5301 626.86256,425.1517 C 631.45712,426.3003 632.6424,429.3424 636,430.3016 C 637.64336,430.7712 647.97408,429.9917 649.1376,430.8642 C 648.092,429.0779 649.58304,429.3315 649.57504,427.5766 C 649.57504,421.5011 656.62816,417.356 652,412.5891 C 651.11408,411.8805 650.28752,408.6574 650.28752,407.4392 C 650.28752,402.1002 652.14928,402.424 650.86256,398.3016 C 648.50672,390.7547 648.096,394.3016 642.28752,394.3016 C 639.28928,394.3016 634.28752,393.1466 634.28752,389.7267 C 634.28752,386.311 631.83024,383.9581 633.71248,381.1517 C 636.94496,376.332 633.71248,373.5362 633.71248,369.7267 C 630.68208,367.2645 632.46528,359.4419 636.9376,363.9141 C 640.27216,367.2488 643.45024,372.2173 647.42496,372.0141 C 649.02288,371.9325 652.9488,368.1949 654.86256,369.1517 C 658.39344,370.9171 660.95536,369.7267 665.1376,369.7267 C 670.57664,369.7267 667.76432,367.0464 666.86256,363.4392 C 664.68208,354.7174 663.42752,365.1542 659.42496,361.1517 C 655.85552,357.5821 651.32256,354.6992 647.52496,350.9016 C 645.13936,348.5158 640.04944,349.2133 639.47504,346.3016 z ";
countyPaths.kildare = "M 558.41248,499.0142 C 555.5496,499.0086 553.18368,499.9896 549.1376,502.3016 C 543.88048,505.3058 534.86384,508.305 533.35008,509.0267 C 534.57648,511.5403 535.94256,514.7917 537.71248,517.1517 C 540.59392,520.9938 542.28752,522.5834 542.28752,528.0142 C 542.28752,533.8592 544.57504,533.6395 544.57504,536.0142 C 544.57504,539.5454 536.43088,543.8699 538.28752,545.7267 C 540.33648,547.7755 545.17536,551.1451 538.86256,554.3016 C 536.94304,555.2614 533.8056,555.4392 530.28752,555.4392 C 529.21424,555.4392 517.8184,556.744 521.71248,558.3016 C 531.716,562.303 530.0224,562.5186 533.47504,565.1142 C 534.23696,565.0189 534.6632,564.9648 535.42496,565.7267 C 545.18016,575.4818 535.48064,568.1006 538.86256,574.8642 C 540.27392,577.687 542.7336,583.1096 541.1376,586.3016 C 539.54208,589.4923 538.28752,591.2752 538.28752,595.4392 C 538.28752,599.232 534.25344,602.1462 539.42496,603.4392 C 542.58208,604.2285 548.20256,602.6942 550.28752,606.8642 C 552.18912,610.6674 557.28976,612.881 559.42496,617.1517 C 560.8904,620.0824 561.02528,630.7883 560.57504,632.5891 C 560.59536,632.636 560.70624,632.8894 560.7376,632.9642 C 561.03216,632.6352 561.29168,632.3901 561.42496,632.3016 C 561.71072,631.9154 572.66304,634.4998 573.71248,630.3016 C 574.2968,627.9643 580.61504,629.5416 581.71248,625.1517 C 582.04624,623.8168 584.31824,621.6528 585.1376,620.0142 C 585.19312,619.929 585.25392,619.847 585.31248,619.7642 C 583.16448,616.8445 582.472,611.0486 580.57504,609.1517 C 578.0728,606.6494 574.55408,606.5976 578.28752,602.8642 C 581.09248,600.059 581.71248,599.2066 581.71248,594.8642 C 581.71248,591.2466 586.69408,587.595 589.1376,585.1517 C 592.06288,582.2264 595.01984,580.3998 598.86256,579.4392 C 601.31872,578.8251 605.84032,573.4834 606.86256,571.4392 C 609.18672,566.7906 613.71248,568.1886 613.71248,562.8642 C 613.71248,560.1195 611.72384,557.7061 612.57504,554.3016 C 613.70592,549.7778 623.32096,553.5061 620.57504,548.0142 C 620.72832,547.6803 620.89968,547.3392 621.08752,547.0016 C 616.9888,546.0278 613.1376,540.5109 613.1376,536.0142 C 613.1376,531.4709 613.00096,530.0886 616,528.5891 C 616.43984,528.3691 618.72304,522.9613 620.57504,521.7267 C 624.99168,518.7822 625.796,514.479 624.81248,509.8642 C 623.35312,509.715 622.00992,509.463 620.95008,509.0392 C 620.42976,508.831 612.53984,504.7437 613.1,504.7267 C 613.66016,504.7096 614.51184,505.0802 610.86256,503.4392 C 604.84016,500.731 599.70768,505.1517 592.57504,505.1517 C 591.87952,505.1517 585.3448,500.0141 580.57504,500.0142 C 579.60384,500.0142 578.6648,500.3987 577.71248,500.5891 C 572.7792,501.5758 569.7224,501.301 564.57504,500.0142 C 562.02464,499.3766 560.13024,499.0173 558.41248,499.0142 z M 605.37504,623.7766 C 605.6264,624.0915 605.86416,624.4125 606.1,624.7267 C 605.86352,624.412 605.62688,624.0922 605.37504,623.7766 z ";
countyPaths.laois = "M 493.1376,550.8642 C 485.25008,550.8642 488.19728,553.4411 484,556.5891 C 479.99152,559.5955 473.70896,557.8642 469.1376,560.5891 C 468.05984,561.2315 469.98448,569.7267 467.42496,569.7267 C 461.15136,569.7267 460.57504,569.6112 460.57504,573.7267 C 460.57504,576.5226 465.74096,583.3824 465.71248,583.4392 C 465.49904,583.8664 456.99232,592.0667 455.42496,592.5891 C 450.9472,594.0818 449.94304,595.3251 452,599.4392 C 453.13232,601.7037 446.22928,611.2683 447.42496,611.4392 C 447.47536,612.0694 447.47776,612.6267 447.45008,613.1392 C 448.38096,613.6789 450.09024,614.8248 450.28752,614.8642 C 458.01792,616.4102 459.17904,617.9726 455.42496,621.7267 C 453.14224,624.0094 450.28752,625.8454 450.28752,629.7267 C 450.28752,633.1741 450.8624,636.1992 450.86256,639.4392 C 450.8624,644.0147 455.356,650.0131 456,652.5891 C 456.2624,652.7147 456.52512,652.8384 456.78752,652.9642 C 456.79248,652.9666 456.79504,652.9742 456.8,652.9766 C 467.19664,654.2882 460.47552,647.4392 460.57504,647.4392 C 464.62192,647.4392 466.0408,645.2227 468.57504,644.5891 C 473.51584,643.3538 471.98064,646.8614 474.86256,648.0142 C 477.70768,649.1522 480.25216,653.1517 484,653.1517 C 485.63856,653.1517 485.22384,649.1517 486.86256,649.1517 C 488.48544,649.1517 496,649.6963 496,648.0142 C 496,644.897 495.4328,641.8653 498.28752,641.1517 C 501.85024,640.261 502.1064,638.3016 506.28752,638.3016 C 511.15792,638.3016 511.23616,640.2194 512.57504,634.8642 C 513.68896,630.4082 515.00832,629.7267 520,629.7267 C 521.62256,629.7267 523.792,629.4808 525.87504,629.4766 C 529.34672,629.4698 532.57504,630.1344 532.57504,633.7267 C 532.57504,636.3797 527.05952,641.1517 529.71248,641.1517 C 531.42672,641.1517 533.14816,641.1517 534.86256,641.1517 C 540.63408,641.1517 542.28752,645.8925 542.28752,650.3016 C 542.60816,650.3336 542.93184,650.371 543.25008,650.4142 C 545.66704,648.7758 549.99776,645.219 553.1376,642.8642 C 557.5248,639.5736 558.8624,644.1522 558.86256,636.5891 C 558.86256,635.3794 559.95104,633.8424 560.7376,632.9642 C 560.70624,632.8894 560.59536,632.636 560.57504,632.5891 C 561.02528,630.7883 560.8904,620.0824 559.42496,617.1517 C 557.28976,612.881 552.18912,610.6672 550.28752,606.8642 C 548.20256,602.6942 542.58208,604.2283 539.42496,603.4392 C 534.25344,602.1462 538.28752,599.232 538.28752,595.4392 C 538.28752,591.2752 539.54208,589.4923 541.1376,586.3016 C 542.7336,583.1096 540.27392,577.687 538.86256,574.8642 C 535.48064,568.1006 545.18016,575.4818 535.42496,565.7267 C 535.2768,565.5784 535.14032,565.4688 535.01248,565.3766 C 534.5648,565.3186 534.12608,565.2483 533.71248,565.1517 C 532.83088,565.3722 532.78192,565.3874 531.42496,565.7267 C 528.41904,566.4782 522.76832,565.5205 518.86256,566.3016 C 517.60112,566.5539 507.10288,569.753 506.86256,569.1517 C 506.30992,567.7704 504.3608,567.1699 504,565.7267 C 503.42272,563.4176 504.18736,558.7099 503.42496,557.7267 C 498.15552,550.931 501.46944,550.8642 493.1376,550.8642 z M 561.6,632.2642 C 561.69616,632.2608 561.82304,632.2638 561.98752,632.2766 C 561.83136,632.2651 561.6912,632.2603 561.6,632.2642 z ";
countyPaths.offaly = "M 511.42496,506.8642 C 510.91488,508.9046 507.79504,510.724 506.86256,512.5891 C 506.02512,514.2638 500.16016,516.8272 498.86256,517.1517 C 495.04752,518.1054 494.8768,524.5891 489.1376,524.5891 C 484.27744,524.5891 477.24048,524.2598 473.1376,523.4392 C 468.48608,522.509 468.57504,519.2762 468.57504,515.4392 C 468.57504,509.3542 466.06512,510.6418 462.28752,506.8642 C 457.31792,501.8946 455.42496,505.1062 455.42496,510.8642 C 455.42496,513.4549 449.76592,512.9258 449.1376,515.4392 C 448.74208,517.021 437.24464,515.8802 436.57504,516.0142 C 433.87904,516.5533 428.46512,517.4698 425.1376,518.3016 C 424.21504,518.5323 421.33008,520.0141 417.22496,520.0142 C 412.56624,522.0154 410.46832,524.2112 406.28752,526.3016 C 406.12048,526.3851 399.47067,530.2749 398.5,532.8642 C 398.49453,532.9082 398.49352,532.944 398.4875,532.9891 C 398.54971,533.3563 398.64086,533.7955 398.7375,534.2642 C 398.99846,534.5114 399.40768,534.7162 400,534.8642 C 399.70614,535.276 399.43474,535.709 399.1625,536.1392 C 399.80686,538.7082 400.74896,541.4858 401.71248,541.7267 C 405.82112,542.7538 408.57504,542.1482 408.57504,546.8642 C 408.57504,551.1826 408.19568,552.5706 405.1376,554.8642 C 404.26528,555.5184 400.22896,561.8926 397.27501,563.8142 C 397.4507,563.8082 397.62282,563.804 397.8,563.8016 C 399.40347,563.781 400.97376,563.935 401.1376,564.5891 C 401.60368,566.4541 403.48944,572.6538 405.1376,574.3016 C 406.49056,575.6547 408.26864,579.305 411.42496,577.7267 C 414.96976,575.9542 418.28752,577.0315 418.28752,581.7267 C 418.28752,588.2286 414.32288,586.1226 413.1376,590.8642 C 412.73568,592.4715 413.54992,598.0642 412.57504,600.0142 C 410.63296,603.8982 408.48688,605.4795 407.42496,609.7267 C 406.52784,613.3157 403.38656,613.2406 402.28752,615.4392 C 401.20224,617.6093 403.38064,622.3458 401.71248,624.0142 C 399.74774,625.9787 401.32832,626.48 404,629.1517 C 406.1544,631.3061 407.50416,633.7693 410.28752,635.4392 C 412.25424,636.6192 412.5688,640.5891 414.86256,640.5891 C 421.82896,640.5891 416.57504,635.9813 416.57504,632.5891 C 416.57504,622.7766 421.53712,631.2939 425.71248,625.7267 C 427.40832,623.4656 432.57504,621.495 432.57504,618.3016 C 432.57504,615.5366 434.72848,607.8802 438.28752,611.4392 C 440.64272,613.7942 443.6224,612.5018 446.86256,612.8642 C 446.91072,612.84 447.13424,612.956 447.45008,613.1392 C 447.47776,612.6267 447.47536,612.0693 447.42496,611.4392 C 446.22928,611.2683 453.13232,601.7037 452,599.4392 C 449.94304,595.3251 450.9472,594.0818 455.42496,592.5891 C 456.99232,592.0667 465.49904,583.8664 465.71248,583.4392 C 465.74096,583.3824 460.57504,576.5226 460.57504,573.7267 C 460.57504,569.6112 461.15136,569.7267 467.42496,569.7267 C 469.98448,569.7267 468.05984,561.2315 469.1376,560.5891 C 473.70896,557.8642 479.99152,559.5955 484,556.5891 C 488.19728,553.4411 485.24992,550.8642 493.1376,550.8642 C 501.46944,550.8642 498.15552,550.931 503.42496,557.7267 C 504.18736,558.7099 503.42272,563.4176 504,565.7267 C 504.3608,567.1699 506.30992,567.7704 506.86256,569.1517 C 507.10288,569.753 517.60096,566.5539 518.86256,566.3016 C 522.76832,565.5205 528.41904,566.4782 531.42496,565.7267 C 532.78192,565.3874 532.83088,565.3722 533.71248,565.1517 C 534.12224,565.2474 534.55664,565.3189 535,565.3766 C 534.47536,565.0018 534.08544,565.0379 533.47504,565.1142 C 530.0224,562.5186 531.71584,562.303 521.71248,558.3016 C 517.8184,556.744 529.21424,555.4392 530.28752,555.4392 C 533.8056,555.4392 536.94288,555.2614 538.86256,554.3016 C 545.17536,551.1451 540.33648,547.7755 538.28752,545.7267 C 536.43088,543.8699 544.57504,539.5454 544.57504,536.0142 C 544.57504,533.6395 542.28752,533.8592 542.28752,528.0142 C 542.28752,522.5834 540.59392,520.9938 537.71248,517.1517 C 535.94256,514.7917 534.57648,511.5403 533.35008,509.0267 C 528.42864,508.4461 524.80736,505.2765 521.4864,503.5666 C 519.9808,502.7914 519.46528,501.1557 517.99008,501.3578 C 516.2112,501.6013 513.4584,503.9899 511.42496,506.8642 z M 518.08832,501.193 C 518.44112,501.2368 518.50112,501.1194 518.08832,501.193 z ";
countyPaths.galway = "M 335.47501,431.3142 C 335.4125,431.3131 335.35261,431.3197 335.2875,431.3267 C 332.7697,431.5968 328.1232,437.4762 324.57501,436.5891 C 323.26834,436.2624 321.90834,436.2046 320.57501,436.0142 C 317.34734,435.553 320.21578,442.5635 319.42501,445.7267 C 318.9451,447.6462 309.34592,445.9194 308.57501,445.7267 C 307.78776,445.5299 303.12139,443.4374 303.42501,443.1517 C 299.04045,441.4842 290.1953,452.0142 284,452.0142 C 278.45659,452.0141 280.72285,455.1907 276.57501,458.3016 C 273.16746,460.8573 273.1375,461.936 273.1375,466.8642 C 273.1375,470.3787 269.1375,472.8499 269.1375,477.1517 C 269.1375,482.9386 261.88955,478.7558 260.57501,484.0142 C 259.30166,489.1074 249.69432,487.911 246.8625,487.4392 C 245.92622,487.2832 244.75414,486.4859 243.52501,485.3642 C 243.63707,485.5453 243.75859,485.741 243.85,485.9016 C 243.8784,485.9518 243.91106,486.0157 243.9375,486.0642 C 244.04958,486.2693 244.1472,486.4611 244.22501,486.6392 C 244.22638,486.6424 244.22363,486.6485 244.22501,486.6517 C 244.38728,487.0254 244.47627,487.3434 244.5,487.6517 C 244.51786,487.8835 244.50173,488.1082 244.45,488.3392 C 244.43288,488.4157 244.4117,488.4981 244.3875,488.5766 C 244.37867,488.6054 244.37226,488.635 244.3625,488.6642 C 244.3411,488.7299 244.3135,488.796 244.2875,488.8642 C 244.27549,488.8949 244.26291,488.9203 244.25,488.9517 C 244.16656,489.1582 244.07128,489.3738 243.95,489.6142 C 243.36674,490.7709 242.76397,491.9901 242.6,492.3267 C 242.51802,492.4949 242.58011,492.6531 242.75,492.7642 C 242.79246,492.792 242.84499,492.8171 242.9,492.8392 C 243.06506,492.9054 243.28256,492.9392 243.5375,492.9392 C 244.21736,492.9392 245.55406,494.0432 246.5125,495.3891 C 247.92213,497.3688 248.84518,497.8392 251.3375,497.8392 C 251.59314,497.8392 251.83566,497.8472 252.07501,497.8642 C 252.31434,497.8811 252.55206,497.9053 252.77501,497.9392 C 254.11261,498.1424 255.15251,498.652 255.8875,499.4642 C 255.96082,499.5451 256.03722,499.628 256.1125,499.7016 C 257.24182,500.807 258.65869,501.1016 262.4125,501.1016 C 265.18445,501.1016 267.66814,501.3198 267.9375,501.5891 C 267.97117,501.6229 267.98762,501.6755 267.9875,501.7517 C 267.98738,501.8278 267.96883,501.9258 267.9375,502.0392 C 267.81216,502.493 267.44674,503.2234 266.92501,504.0642 C 266.79456,504.2744 266.66126,504.4928 266.5125,504.7142 C 266.36373,504.9355 266.20203,505.1621 266.0375,505.3891 C 264.1003,508.0632 263.6375,509.5189 263.6375,513.0517 C 263.6375,516.4187 263.92792,517.4142 264.8875,517.4142 C 266.51526,517.4141 267.9495,521.2829 267.3,523.9142 C 267.19453,524.3414 266.96317,524.8789 266.65,525.4517 C 266.54562,525.6426 266.43266,525.8438 266.3125,526.0392 C 265.83186,526.8206 265.23682,527.6098 264.65,528.2267 C 264.14662,528.7558 263.66475,529.1787 263.17501,529.5016 C 262.93013,529.6632 262.67723,529.8016 262.42501,529.9142 C 262.04664,530.083 261.66514,530.2002 261.25,530.2642 C 261.11162,530.2854 260.96925,530.2915 260.82501,530.3016 C 259.95946,530.3624 258.97786,530.2286 257.7875,529.9142 C 257.00853,529.7083 255.35515,527.025 253.9625,523.6891 C 251.74184,518.3701 251.63498,517.6989 252.77501,516.4392 C 253.91405,515.1805 253.86573,514.8365 252.27501,512.8142 C 251.44538,511.7595 251.02459,511.1861 250.9875,510.7891 C 250.98286,510.7395 250.99283,510.6965 251,510.6517 C 251.05022,510.3374 251.38331,510.1256 251.9875,509.8016 C 252.7911,509.3709 253.56722,508.9181 253.7125,508.8016 C 253.85771,508.6851 253.4095,507.513 252.72501,506.1891 C 251.6987,504.2045 250.81565,503.6838 247.6625,503.2517 C 245.55931,502.9634 242.6077,502.7266 241.1,502.7267 C 238.87274,502.7267 238.35,502.4094 238.35,501.0392 C 238.35,499.7366 237.99477,499.4731 236.7625,499.8642 C 236.65282,499.899 236.52379,499.9197 236.37501,499.9392 C 236.22621,499.9586 236.05605,499.972 235.87501,499.9766 C 234.78867,500.005 233.18485,499.7792 231.8,499.3642 C 230.35397,498.9309 229.36168,498.4397 228.5625,497.6891 C 228.47371,497.6058 228.3844,497.5294 228.3,497.4392 C 227.79362,496.8979 227.36328,496.2232 226.92501,495.3642 C 226.0855,493.7184 224.42894,491.7491 223.25,490.9766 C 220.5823,489.2286 214.2153,487.2509 211.2,487.2392 C 208.31523,487.228 207.69443,485.6157 209.35,482.4142 C 210.8904,479.4354 210.98427,479.42 213.6625,481.5267 C 215.11858,482.672 216.52765,483.2547 217.2,483.2016 C 217.2747,483.1958 217.34454,483.1859 217.4,483.1642 C 217.73274,483.0339 217.7016,482.6141 217.1,481.8891 C 216.98931,481.7558 216.88984,481.6339 216.8125,481.5142 C 216.27115,480.6762 216.5743,480.0899 218.02501,478.6392 C 219.82,476.8443 220.72266,476.6536 227.97501,476.5267 C 228.5377,476.5168 229.07374,476.5058 229.57501,476.5016 C 230.04493,476.4978 230.49146,476.4979 230.9125,476.5016 C 230.92829,476.5018 230.94678,476.5014 230.9625,476.5016 C 231.78304,476.5098 232.51294,476.5373 233.17501,476.5891 C 233.21504,476.5923 233.26048,476.5982 233.3,476.6016 C 233.31714,476.603 233.33296,476.6002 233.35,476.6016 C 233.67373,476.6301 233.98286,476.6709 234.27501,476.7142 C 234.2789,476.7147 234.28362,476.7136 234.2875,476.7142 C 234.30894,476.7173 234.32872,476.7234 234.35,476.7267 C 234.60763,476.7664 234.8636,476.8107 235.1,476.8642 C 235.26525,476.9019 235.43128,476.944 235.5875,476.9891 C 235.6573,477.0091 235.73184,477.0301 235.8,477.0517 C 235.8595,477.0707 235.91667,477.0939 235.97501,477.1142 C 236.0384,477.136 236.10042,477.1533 236.1625,477.1766 C 236.22579,477.2006 236.28798,477.2261 236.35,477.2517 C 236.59877,477.3534 236.83059,477.4726 237.0625,477.6016 C 237.1745,477.664 237.29093,477.72 237.4,477.7891 C 236.64021,476.5482 236.12555,475.4918 236,474.8642 C 235.07248,470.2266 232.73109,472.0469 228,470.8642 C 226.68408,470.5352 225.20717,470.3346 223.7,470.1766 C 223.22968,470.219 222.73139,470.2776 222.25,470.3392 C 222.11752,470.3562 221.99213,470.371 221.8625,470.3891 C 221.79864,470.3984 221.73786,470.4046 221.67501,470.4142 C 221.56174,470.4307 221.4467,470.4467 221.3375,470.4642 C 221.09806,470.5037 220.84742,470.5472 220.6375,470.5891 C 220.36235,470.6442 220.124,470.6861 219.9,470.7142 C 219.8927,470.715 219.88226,470.7133 219.87501,470.7142 C 219.79274,470.7242 219.70155,470.7339 219.62501,470.7392 C 219.38979,470.7558 219.18157,470.7506 218.9875,470.7142 C 218.96736,470.7102 218.9448,470.7062 218.92501,470.7016 C 218.87464,470.6901 218.82347,470.6803 218.77501,470.6642 C 218.74496,470.6542 218.71693,470.6384 218.6875,470.6267 C 218.63205,470.6043 218.57869,470.5808 218.52501,470.5517 C 218.51672,470.5472 218.50826,470.5437 218.5,470.5392 C 218.39966,470.4834 218.30966,470.4085 218.2125,470.3267 C 218.0091,470.1554 217.80181,469.931 217.5875,469.6267 C 217.58253,469.6195 217.57998,469.6088 217.57501,469.6016 C 216.57758,469.4858 215.65502,469.3498 214.8625,469.1517 C 211.02326,468.1918 206.73898,469.2627 205.1375,470.8642 C 202.74598,473.2557 198.23522,463.3994 197.1375,462.3016 C 194.64994,459.8141 190.47054,460.5891 186.2875,460.5891 C 183.29483,460.5891 179.57834,458.947 177.1375,457.7267 C 176.3335,457.3246 159.82493,456.2141 167.42501,460.0142 C 168.30354,460.4534 162.55477,466.2582 161.1375,460.5891 C 160.82776,459.3502 157.73214,458.3053 156.57501,457.7267 C 156.20242,457.5168 155.83973,457.3381 155.4875,457.1766 C 155.63195,457.58 155.68472,457.9674 155.6375,458.3392 C 155.6225,458.4571 155.59664,458.5757 155.5625,458.6891 C 155.56134,458.693 155.56368,458.6978 155.5625,458.7016 C 155.52912,458.8104 155.48843,458.9102 155.4375,459.0142 C 155.43347,459.0226 155.42915,459.0309 155.42501,459.0392 C 155.37432,459.1394 155.31707,459.244 155.25,459.3392 C 155.24328,459.3488 155.23189,459.3546 155.22501,459.3642 C 155.14789,459.4704 155.06018,459.5778 154.9625,459.6766 C 154.94616,459.6933 154.92942,459.7102 154.9125,459.7267 C 154.82902,459.8072 154.73493,459.8765 154.6375,459.9517 C 154.5269,460.037 154.416,460.1242 154.2875,460.2016 C 154.27928,460.2066 154.2708,460.2091 154.2625,460.2142 C 154.16739,460.2707 154.0672,460.3246 153.9625,460.3766 C 153.86715,460.4243 153.76584,460.4704 153.6625,460.5142 C 153.55898,460.5578 153.44898,460.5995 153.3375,460.6392 C 153.32858,460.6424 153.32147,460.6485 153.3125,460.6517 C 153.14432,460.7106 152.96099,460.7526 152.77501,460.8016 C 152.76578,460.8042 152.75926,460.8117 152.75,460.8142 C 152.58768,460.8563 152.4132,460.8923 152.2375,460.9267 C 152.20238,460.9334 152.17315,460.9451 152.1375,460.9517 C 152.12051,460.9547 152.10461,460.9611 152.0875,460.9642 C 151.89915,460.9978 151.70299,461.0149 151.5,461.0392 C 151.48262,461.0413 151.46749,461.0496 151.45,461.0517 C 151.27176,461.0722 151.10186,461.0885 150.9125,461.1016 C 150.84446,461.1064 150.78197,461.1104 150.7125,461.1142 C 150.45382,461.1283 150.19101,461.139 149.9125,461.1392 C 146.41064,461.1392 142.90187,461.139 139.4,461.1392 C 132.72598,461.139 135.96528,460.7253 136.97501,464.7642 C 137.49403,466.8403 138.01597,467.5694 138.0375,467.7267 C 138.03904,467.7379 138.04128,467.7459 138.0375,467.7517 C 137.97328,467.8491 137.11336,467.1891 134.55,467.1891 C 130.314,467.1891 129.92162,464.7258 126.87501,463.9642 C 122.90027,462.9704 122.86302,465.768 119.8375,466.3016 C 119.73317,466.32 119.63674,466.3389 119.52501,466.3517 C 119.30154,466.3771 119.05648,466.3891 118.8,466.3891 C 117.79674,466.3891 108.69587,463.5432 108.2875,465.1766 C 107.63445,467.7888 108.80917,467.9211 110.3125,470.4267 C 111.8272,472.9512 114.2159,475.5426 116.37501,477.7016 C 118.606,479.9326 124.35546,482.3315 124.05,484.1642 C 123.67163,486.4344 128.53355,489.5974 126.47501,490.6267 C 123.3345,492.197 120.05792,491.8392 116.37501,491.8392 C 115.52205,491.839 107.83043,492.5459 108.0875,493.4642 C 109.60088,496.0208 111.30422,496.6726 112.32501,498.7142 C 113.15437,500.373 118.02642,506.9955 120,504.3642 C 122.65498,500.8242 124.59875,502.4539 128.0875,503.1517 C 131.79803,503.8938 133.41206,510.4267 137.37501,510.4267 C 137.91722,510.4267 138.40755,510.4218 138.85,510.4016 C 139.07123,510.3917 139.27635,510.3808 139.47501,510.3642 C 142.05754,510.1482 142.80267,509.3285 143.4375,506.7891 C 143.64547,505.9573 144.20517,499.8693 146.27501,501.9392 C 148.07974,503.744 149.30677,504.7766 152.32501,504.7766 C 154.89123,504.7766 157.5875,503.9722 157.5875,506.7891 C 157.5875,508.9949 158.48054,514.4642 155.5625,514.4642 C 154.68923,514.4642 144.64229,514.8613 144.65,514.8766 C 145.30144,516.1795 148.36262,522.6674 149.5,522.9517 C 150.01986,523.0816 150.53355,523.0826 151.0375,523.0016 C 151.20547,522.9747 151.37178,522.9318 151.5375,522.8891 C 151.86894,522.8038 152.1916,522.7014 152.5125,522.5766 C 152.83341,522.4518 153.15411,522.3099 153.4625,522.1766 C 154.69608,521.6437 155.82062,521.1666 156.77501,521.7392 C 160.23525,523.8154 163.31378,523.8504 166.87501,525.3766 C 168.57707,526.1061 170.35173,527.1677 171.8,526.7392 C 171.86896,526.7187 171.93256,526.704 172,526.6766 C 172.67448,526.4029 173.27451,525.7654 173.75,524.5766 C 175.29179,520.7221 173.41662,520.3069 177.3875,519.3142 C 180.20325,518.6102 181.02501,517.8653 181.02501,514.8766 C 181.02501,514.4371 181.07218,514.0018 181.1625,513.5891 C 181.43349,512.3515 182.09762,511.3078 183.02501,510.8267 C 183.10229,510.7866 183.18155,510.7461 183.2625,510.7142 C 184.47686,510.2349 186.09085,510.6957 187.8875,512.8517 C 189.47624,514.7581 192.59917,515.4651 190.3125,518.5142 C 188.12098,521.4362 187.3464,522.9733 186.67501,527.0016 C 186.27238,529.4173 186.32946,533.931 188.2875,535.8891 C 188.33184,535.9334 188.39267,535.969 188.4625,536.0016 C 188.53234,536.0344 188.60826,536.0661 188.7,536.0891 C 189.98443,536.4115 193.24339,535.8752 193.55,537.1016 C 194.6703,541.5829 196.44771,542.3944 198.6375,544.2891 C 198.7939,544.4245 198.95197,544.5659 199.1125,544.7142 C 199.27304,544.8624 199.43552,545.0122 199.6,545.1766 C 201.27104,546.8477 203.38562,548.7106 205.55,548.5142 C 205.6441,548.5056 205.73072,548.4931 205.82501,548.4766 C 206.57926,548.3446 207.33974,547.9494 208.0875,547.2016 C 212.0116,543.2776 216.72866,543.5642 222.2375,543.5642 C 222.68206,543.5642 223.13346,543.5626 223.5875,543.5517 C 226.76584,543.4757 230.13539,543.2136 233.1375,543.9642 C 236.56742,544.8216 238.63992,545.3922 240.5875,545.3142 C 241.0744,545.2947 241.55947,545.2338 242.05,545.1267 C 243.52155,544.8054 245.09018,544.0701 247.2875,542.7517 C 248.72586,541.8886 255.99179,538.1002 257.7875,537.5016 C 260.33224,536.6534 262.58854,536.1197 265.0625,534.2642 C 267.94576,532.1018 273.32926,530.8704 276.7875,533.4642 C 277.65131,534.112 279.31075,535.1464 280.4625,536.4517 C 280.59048,536.5966 280.7112,536.7502 280.82501,536.9016 C 281.50779,537.8102 281.89914,538.8302 281.62501,539.9267 C 281.14749,541.8366 271.56002,542.4541 271.9375,543.9642 C 271.96891,544.0898 271.99893,544.211 272.0375,544.3267 C 272.07608,544.4422 272.11709,544.5581 272.1625,544.6642 C 273.52498,547.8461 277.89698,546.8304 280.82501,548.0016 C 284.58624,549.5062 287.14483,549.5376 284.05,553.6642 C 282.59957,555.5981 283.25,556.5797 283.25,559.7267 C 283.25,561.552 282.98923,562.5829 282.5875,562.8142 C 282.56072,562.8296 282.54054,562.8434 282.5125,562.8517 C 282.06378,562.985 281.45512,562.207 280.82501,560.5267 C 279.54907,557.1242 272.04997,555.289 272.3375,557.3016 C 272.46438,558.1899 274.36251,563.7475 274.3625,565.7891 C 274.3625,566.0165 274.35125,566.2286 274.3375,566.4392 C 274.32602,566.615 274.32099,566.7885 274.3,566.9517 C 274.29342,567.0024 274.2825,567.0522 274.27501,567.1016 C 274.25821,567.2133 274.23392,567.3218 274.2125,567.4267 C 274.19318,567.521 274.17304,567.613 274.15,567.7016 C 274.11837,567.8234 274.08862,567.941 274.05,568.0517 C 274.04584,568.0637 274.04173,568.0773 274.0375,568.0891 C 274.02642,568.1198 274.01165,568.1469 274,568.1766 C 273.96629,568.2638 273.92586,568.3474 273.8875,568.4267 C 273.85382,568.4958 273.82472,568.5637 273.7875,568.6267 C 273.74494,568.699 273.69717,568.7627 273.65,568.8267 C 273.57664,568.9261 273.49691,569.0112 273.4125,569.0891 C 273.40824,569.0931 273.40429,569.0978 273.4,569.1016 C 273.37194,569.127 273.34176,569.1538 273.3125,569.1766 C 273.29592,569.1896 273.27946,569.2021 273.2625,569.2142 C 273.2135,569.2494 273.16469,569.2856 273.1125,569.3142 C 273.0612,569.3421 273.00435,569.3678 272.95,569.3891 C 272.93757,569.3939 272.92509,569.3971 272.9125,569.4016 C 272.83478,569.4296 272.75874,569.4499 272.67501,569.4642 C 272.64581,569.4691 272.61742,569.4734 272.5875,569.4766 C 272.56706,569.4789 272.54578,569.4877 272.52501,569.4891 C 272.43218,569.4952 272.32454,569.4869 272.22501,569.4766 C 272.21699,569.4758 272.20806,569.4776 272.2,569.4766 C 272.14347,569.4701 272.08365,569.451 272.02501,569.4392 C 271.90723,569.4152 271.78877,569.3853 271.6625,569.3392 C 271.61256,569.321 271.56376,569.2984 271.5125,569.2766 C 271.38854,569.2235 271.25661,569.1635 271.12501,569.0891 C 271.226,569.4931 271.324,569.8976 271.42501,570.3016 C 272.76757,575.6718 272.23912,578.4426 277.7125,581.7267 C 281.08669,583.7512 283.78854,584.6568 284.57501,588.5891 C 285.3467,592.4477 289.1375,595.3563 289.1375,598.8642 C 289.1375,600.068 287.60459,607.6309 289.1375,608.0142 C 295.49554,609.6035 297.55125,604.0142 301.7125,604.0142 C 305.60021,604.0141 310.21298,600.0141 310.8625,600.0142 C 315.36014,600.0141 318.51926,600.4677 320.57501,597.7267 C 322.41886,595.2682 326.3072,591.879 330.2875,594.8642 C 332.77603,596.7306 339.72357,597.4501 341.1375,598.8642 C 342.14515,599.8718 346.84648,606.5971 350.8625,604.5891 C 352.90854,603.5661 358.49534,605.1016 362.05,605.4517 C 362.03643,605.4222 362.02584,605.3934 362.0125,605.3642 C 361.88488,605.0834 361.76874,604.8074 361.6625,604.5392 C 361.59101,604.3587 361.5243,604.1886 361.4625,604.0142 C 361.43085,603.925 361.40411,603.8392 361.37501,603.7517 C 361.29405,603.5082 361.22389,603.2696 361.1625,603.0392 C 361.1535,603.0054 361.14608,602.9725 361.1375,602.9392 C 361.09693,602.7808 361.05618,602.6285 361.02501,602.4766 C 361.00859,602.3971 360.98883,602.3168 360.97501,602.2392 C 360.93904,602.036 360.91827,601.8416 360.9,601.6517 C 360.86275,601.2646 360.86378,600.9042 360.9,600.5766 C 360.90171,600.561 360.89813,600.5422 360.9,600.5267 C 360.90152,600.5142 360.89837,600.5014 360.9,600.4891 C 360.91914,600.3411 360.9529,600.2112 360.9875,600.0766 C 361.01416,599.973 361.03917,599.872 361.07501,599.7766 C 361.07958,599.7645 361.08277,599.7512 361.0875,599.7392 C 361.11162,599.6774 361.14696,599.6224 361.17501,599.5642 C 361.2144,599.4824 361.25283,599.401 361.3,599.3267 C 361.36248,599.2282 361.43642,599.137 361.5125,599.0517 C 361.52262,599.0403 361.52714,599.0253 361.5375,599.0142 C 361.62126,598.9243 361.71301,598.8506 361.8125,598.7766 C 361.82853,598.7648 361.84606,598.7506 361.8625,598.7392 C 361.95216,598.6768 362.04822,598.6138 362.15,598.5642 C 362.22915,598.5256 362.31352,598.4949 362.4,598.4642 C 362.4255,598.455 362.44886,598.4475 362.47501,598.4392 C 362.55078,598.4149 362.63134,598.395 362.7125,598.3766 C 362.79381,598.3582 362.87581,598.339 362.9625,598.3267 C 363.97299,598.1832 365.17406,597.3552 365.6375,596.4891 C 366.10101,595.623 367.21688,594.9142 368.1125,594.9142 C 369.89936,594.9141 370.69792,593.4794 370.0625,591.9766 C 370.01362,591.8611 369.95354,591.7424 369.8875,591.6267 C 369.75541,591.3952 369.59067,591.1637 369.3875,590.9392 C 367.58762,588.9502 367.71507,587.6437 370.0625,584.1891 C 372.04333,581.2741 372.10642,581.2531 375.9125,581.9642 C 378.82656,582.5086 380.0733,582.4114 381.05,581.5642 C 381.1896,581.443 381.33523,581.3288 381.4875,581.2267 C 381.50501,581.2149 381.5199,581.2006 381.5375,581.1891 C 381.61195,581.1406 381.68731,581.1072 381.7625,581.0642 C 381.83744,581.0211 381.91309,580.9762 381.9875,580.9392 C 382.20264,580.8325 382.41003,580.7494 382.6,580.7016 C 382.65522,580.6878 382.71106,580.6723 382.7625,580.6642 C 382.7756,580.6621 382.78718,580.6659 382.8,580.6642 C 383.39034,578.7298 383.42501,576.2568 383.42501,574.8642 C 383.42501,572.2802 384.70741,568.5528 386.8625,568.0142 C 388.00331,567.729 394.28214,562.8019 395.42501,564.3016 C 398.15606,565.2259 404.05952,555.6726 405.1376,554.8642 C 408.19552,552.5706 408.57504,551.1826 408.57504,546.8642 C 408.57504,542.1482 405.82112,542.7538 401.71248,541.7267 C 400.30512,541.3749 398.92963,535.5994 398.4875,532.9891 C 399.62366,524.4646 390.97645,535.8742 383.42501,528.0142 C 382.84858,525.7085 378.34482,523.5662 377.1375,521.1517 C 376.5701,520.0168 378.2875,512.0421 378.2875,509.7267 C 378.2875,506.6805 372.22478,507.0021 374.8625,501.7267 C 377.02094,497.4098 372,493.237 372,489.1517 C 372,484.3898 372,479.6259 372,474.8642 C 372,473.7213 372,472.5819 372,471.4392 C 372,469.565 363.96424,464.1002 362.8625,463.4392 C 357.0019,459.9229 354.3877,463.4027 353.1375,457.1517 C 352.63494,454.6389 357.71648,454.3062 358.8625,452.0142 C 360.54912,448.6408 354.05154,444.3531 352,442.3016 C 347.07637,437.3781 346.38598,437.8662 340,436.5891 C 337.87042,436.1632 337.94248,432.4104 336,431.4392 C 335.84163,431.36 335.66253,431.3171 335.47501,431.3142 z ";
countyPaths.mayo = "M 170.4375,288.2517 C 169.89659,288.2829 169.26549,288.6237 168.4875,289.4016 C 167.71966,290.1694 165.92587,289.9731 165.6625,291.0267 C 165.30264,292.4661 164.77078,294.8986 166.07501,295.8766 C 168.71424,297.8562 168.89352,300.1042 170.1125,303.1517 C 170.30866,303.6421 173.60635,309.6141 170.5125,309.6141 C 166.91139,309.6141 164.9619,306.7766 162.4375,306.7766 C 159.38805,306.7766 158.75712,307.3357 157.9875,310.4141 C 157.80704,311.136 156.37842,318.9016 154.75,318.9016 C 153.53085,318.9016 147.11654,318.8435 148.7,315.6766 C 149.76528,313.5461 148.7,311.6509 148.7,309.6141 C 148.7,308.5714 149.2491,302.2795 147.8875,301.9392 C 142.7145,300.6459 141.82501,301.0898 141.82501,295.8766 C 141.82501,291.9925 137.94944,290.7664 136.97501,294.6642 C 136.53461,296.4258 132.81376,299.3635 130.9125,300.3141 C 127.69621,301.9222 131.22754,307.3032 130.5125,307.5891 C 128.79387,308.2766 123.75147,307.8171 124.85,310.0141 C 125.8379,311.9899 132.08832,313.0637 130.1125,314.0517 C 129.23243,314.4917 125.56664,314.56 124.45,315.6766 C 122.68536,317.4413 123.2375,320.6422 123.2375,323.7517 C 123.2375,325.0712 126.70981,331.8536 125.6625,332.6392 C 123.98269,333.899 113.98782,338.3395 117.9875,342.3392 C 118.85482,343.2064 124.72933,344.8973 126.47501,343.1517 C 128.55981,341.0669 130.1125,341.1846 130.1125,337.4891 C 130.1125,335.0648 130.1125,332.6386 130.1125,330.2141 C 130.1125,328.2053 132.21606,324.9253 134.15,324.1517 C 139.1276,322.1606 136.69488,322.0597 137.7875,317.6891 C 138.60965,314.4006 139.02878,314.5218 140.6125,317.6891 C 141.94699,320.3581 147.74035,323.7102 147.8875,324.1517 C 150.01152,330.5237 144.25,327.6018 144.25,331.4267 C 144.25,334.4666 149.81008,335.6565 148.2875,338.7016 C 146.90763,341.4614 142.23075,343.1507 144.25,347.1891 C 145.86278,350.4147 149.70998,351.2808 151.92501,347.5891 C 152.85747,346.035 153.88258,339.9478 156.37501,338.7016 C 158.95358,337.4123 162.4375,336.7216 162.4375,340.7267 C 162.4375,344.4947 159.2,348.6752 159.2,350.8267 C 159.2,355.1317 151.92501,353.4894 151.92501,357.6891 C 151.92501,361.8597 155.67914,362.0197 157.5875,364.5642 C 159.19048,366.7014 158.52717,369.281 159.6,371.4267 C 161.02717,374.281 161.79392,376.627 163.2375,379.5141 C 163.50686,380.053 163.78062,380.5878 164.05,381.1267 C 161.06227,387.1021 161.15282,378.1544 156.77501,378.7016 C 151.71318,379.3344 151.52501,381.1296 151.52501,385.9766 C 151.52501,388.8902 149.9125,392.1517 149.9125,394.4642 C 149.9125,399.2443 149.37768,399.7141 154.75,399.7142 C 157.2541,399.7141 162.06501,399.6867 163.65,398.1016 C 166.09122,395.6605 172.06946,394.1197 172.5375,393.6517 C 175.93992,390.2493 175.87571,390.6085 179.4,393.2517 C 182.46578,395.551 185.81474,398.1016 188.2875,398.1016 C 192.16072,398.1016 190.49587,394.1152 193.95,393.2517 C 198.29037,392.1666 195.25738,395.7635 195.5625,397.2891 C 195.98923,399.4229 199.34678,401.6525 197.9875,403.3517 C 196.35382,405.3938 191.52499,405.1866 191.52501,407.8016 C 191.52501,411.0936 191.43322,412.2194 194.7625,413.0517 C 198.99358,414.1094 199.63224,417.9016 194.7625,417.9016 C 190.05224,417.9016 184.62666,417.3485 180.2125,419.1142 C 177.79589,420.0808 170.85302,424.5013 170.1125,421.5392 C 169.30856,418.3234 167.06878,418.672 164.8625,420.3267 C 163.50085,421.3478 160.88656,421.7397 159.2,422.7517 C 156.17859,424.5645 152.42602,419.8256 151.52501,420.7267 C 149.11432,423.1373 151.32501,424.7216 151.32501,428.0016 C 151.32501,428.9806 149.67811,435.9136 148.7,436.0766 C 143.63061,436.9216 147.84565,439.9342 148.7,443.3517 C 149.2889,445.7072 145.584,447.8338 147.8875,448.6016 C 148.69562,448.871 147.87358,450.8202 148.7,451.0267 C 151.44333,451.7125 152.14741,453.2741 154.35,455.4766 C 154.91765,456.0443 155.28877,456.6218 155.4875,457.1766 C 155.83973,457.3381 156.20242,457.5168 156.57501,457.7267 C 157.73214,458.3053 160.82776,459.3501 161.1375,460.5891 C 162.55477,466.2582 168.30354,460.4534 167.42501,460.0142 C 159.82493,456.2141 176.3335,457.3246 177.1375,457.7267 C 179.57834,458.947 183.29483,460.5891 186.2875,460.5891 C 190.47054,460.5891 194.64994,459.8141 197.1375,462.3016 C 198.23522,463.3994 202.74598,473.2557 205.1375,470.8642 C 206.73898,469.2627 211.02326,468.1918 214.8625,469.1517 C 218.22589,469.9925 223.88774,469.8362 228,470.8642 C 232.73109,472.0469 235.07248,470.2266 236,474.8642 C 236.50558,477.3922 243.3575,486.855 246.8625,487.4392 C 249.69432,487.911 259.30166,489.1074 260.57501,484.0142 C 261.88955,478.7558 269.1375,482.9386 269.1375,477.1517 C 269.1375,472.8499 273.1375,470.3787 273.1375,466.8642 C 273.1375,461.936 273.16746,460.8573 276.57501,458.3016 C 280.72285,455.1907 278.45659,452.0141 284,452.0142 C 289.69085,452.0142 297.61101,443.1435 302.2625,442.9891 C 302.26846,442.7603 302.28254,442.5302 302.2875,442.3016 C 301.53546,439.2934 307.9669,438.4797 308.57501,435.4392 C 309.73718,429.6283 316.90184,432.4067 318.2875,426.8642 C 319.07982,423.6949 318.15466,419.761 317.1375,417.7267 C 314.22379,411.8992 304.76146,425.5434 308,412.5891 C 309.02318,408.4963 306.57136,405.7339 308.57501,401.7267 C 310.04006,398.7965 313.92168,399.0208 315.42501,396.0141 C 316.24691,394.3704 335.70613,397.0954 323.42501,389.7267 C 321.34878,388.481 319.33616,384.1963 318.8625,382.3016 C 317.4428,376.6229 319.3091,374.6408 322.2875,373.1517 C 323.66104,372.465 327.6584,374.4971 328.8625,373.7267 C 328.8264,372.459 328.57501,365.2538 328.57501,362.8642 C 328.57499,361.001 321.13597,364.6203 320.57501,366.8642 C 320.07192,368.8765 311.02304,372.5891 309.1375,372.5891 C 303.72813,372.5891 305.85763,376.1154 301.7125,377.1517 C 300.61562,377.4259 296.51829,372.5718 294.2875,372.0141 C 291.60064,371.3424 292.3193,366.3016 286.8625,366.3016 C 281.47944,366.3016 279.70022,364.0141 273.7125,364.0141 C 267.34922,364.0141 273.63835,357.7421 276,357.1517 C 280.40008,356.0517 284.00837,354.3101 282.8625,349.7267 C 281.23675,343.2237 281.1257,343.8306 289.7125,340.0141 C 291.30082,339.3082 281.2532,333.5586 280.57501,333.1517 C 277.466,331.2862 269.7075,331.6333 265.7125,330.3016 C 259.98837,328.3936 263.68013,339.6432 254.8625,332.5891 C 254.38371,332.2061 254.8625,327.4968 254.8625,326.8642 C 255.3847,326.4774 256.26384,326.2747 256.7625,325.8766 C 256.68966,325.8646 256.62672,325.8283 256.57501,325.7766 C 256.30562,325.5072 256.14458,324.8718 255.77501,324.9642 C 250.86358,326.192 256.41379,321.4461 253.75,320.1141 C 251.50814,318.9933 250.51251,319.8491 250.5125,316.4766 C 250.5125,313.2757 250.35064,308.7549 249.7125,305.5642 C 248.4035,299.0192 245.44256,305.9272 242.8375,304.3642 C 240.7632,303.1195 238.64766,300.1298 237.9875,297.4891 C 236.8916,293.1056 237.51094,296.0189 232.7375,295.0642 C 231.39062,294.7947 230.05485,294.4774 228.7,294.2517 C 225.68528,293.7491 216.99432,290.12 214.15,291.8267 C 209.2192,294.7851 208.14886,291.8267 203.65,291.8267 C 200.81574,291.8267 197.73288,291.7251 195.1625,292.2392 C 194.48906,292.3738 193.80376,292.4726 193.1375,292.6392 C 188.80456,293.7224 191.21237,294.2517 187.07501,294.2517 C 184.60446,294.2517 175.58008,295.4226 174.15,293.0392 C 172.84606,290.8659 172.06022,288.1579 170.4375,288.2517 z M 114.4375,355.8517 C 114.0011,355.8669 113.56171,356.0525 113.1375,356.4766 C 112.21392,357.4002 112.32499,358.3366 112.32501,359.9141 C 112.32501,361.4531 113.16794,362.0734 113.5375,363.5517 C 113.92963,365.1202 112.61912,367.031 111.32501,368.0016 C 110.1547,368.8794 107.52542,369.0016 105.6625,369.0016 C 104.58442,369.0016 102.8375,368.2262 102.8375,369.4141 C 102.8375,371.6152 102.17741,371.2986 100.6125,372.4392 C 100.6125,373.6616 101.5259,375.027 102.42501,375.4766 C 104.80901,376.6686 104.82011,378.1925 107.07501,376.6891 C 107.36272,376.4973 110.81664,374.4402 110.9125,374.4642 C 113.13682,375.0202 114.28686,376.0766 116.77501,376.0766 C 117.74163,376.0766 118.28227,374.6466 118.3875,374.6642 C 123.65957,375.5429 119.0663,375.2422 121.62501,377.2891 C 123.98142,379.1742 123.90376,377.9016 126.47501,377.9016 C 127.18416,377.9016 130.62494,377.7763 130.7125,378.3016 C 131.0316,380.2162 130.5125,381.8682 130.5125,383.9642 C 130.5125,385.4104 131.36504,387.9216 132.32501,388.4016 C 133.44003,388.9592 136.63754,386.7454 136.97501,387.5891 C 137.52302,388.9592 136.97501,390.5008 136.97501,392.0392 C 136.97501,393.9387 136.72091,395.6093 138.1875,396.4891 C 140.13507,397.6578 139.65072,398.6136 141.22501,397.4891 C 141.6964,397.1525 142.22786,396.8987 142.6375,396.4891 C 143.70138,395.4253 142.36963,392.707 143.2375,391.8392 C 144.8059,390.2707 144.24714,390.2189 144.65,387.8016 C 144.85606,386.5653 145.06251,385.0618 145.0625,383.5517 C 145.0625,381.6661 145.06251,379.7874 145.0625,377.9016 C 145.0625,376.3389 144.60699,374.8459 145.0625,373.2517 C 145.72722,370.9251 144.28762,367.1014 145.0625,365.1642 C 146.23768,362.2262 143.45736,364.7888 141.22501,363.9517 C 141.03706,363.8811 136.24789,363.1224 136.1625,362.9517 C 135.832,362.2907 134.71621,356.1552 132.9375,357.4891 C 131.43584,358.6154 127.29296,361.3261 125.8625,361.9392 C 124.56558,362.495 121.88344,364.8226 120.4125,363.3517 C 119.59624,362.5354 120.19256,360.9067 119,359.7141 C 118.21042,358.9246 116.32854,355.7856 114.4375,355.8517 z ";
countyPaths.roscommon = "M 389.95,339.7766 C 388.31624,339.7664 386.6025,340.9742 386.2875,342.8642 C 385.59181,342.6917 384.90678,342.4939 384.22501,342.2766 C 383.88134,343.6259 383.31083,344.7491 382.8625,347.4392 C 382.16374,351.6317 374.2875,355.4053 374.2875,357.1517 C 374.2875,358.2531 374.19013,359.0758 374.02501,359.7016 L 376.92501,360.9016 C 380.77302,362.5008 381.11251,362.8547 381.1125,365.3267 C 381.1125,366.808 380.75006,368.9634 380.3125,370.1141 C 379.87493,371.265 379.04693,372.1627 378.47501,372.1016 C 374.7181,371.7003 373.76918,371.1718 373.7625,369.5016 C 373.75867,368.5234 373.52056,365.7958 373.2375,363.4392 L 372.9875,361.3141 C 371.4773,362.2318 368.99309,360.8779 367.42501,364.0141 C 363.31397,372.2362 365.59754,366.8642 360,366.8642 C 352.3372,366.8642 355.08053,368.2098 356,373.7267 C 356.08725,374.2501 356.18645,374.92 356.32501,375.6392 L 357.4125,375.8766 L 356.65,377.0517 C 357.16557,378.877 358.09435,380.6752 360,381.1517 C 360.7619,381.3421 361.52558,381.5362 362.2875,381.7267 C 367.5891,383.052 364.67054,386.0165 368,388.0141 C 369.04494,388.6411 376.60064,391.976 373.7125,394.8642 C 372.18902,396.3877 364.12371,403.909 362.8625,398.8642 C 361.87474,394.9131 356.95645,394.1275 356,390.3016 C 354.57406,384.5979 348.29878,390.0184 344,387.4392 C 340.17773,385.1458 341.84421,381.8584 339.42501,379.4392 C 337.69405,377.7082 331.58382,375.1648 331.07501,375.5016 C 331.19123,375.673 331.30877,375.8429 331.42501,376.0141 C 331.07102,375.731 330.98077,375.564 331.07501,375.5016 C 330.71722,374.9744 330.37027,374.4414 330.0125,373.9141 C 329.68706,373.4346 329.28061,373.0163 328.82501,372.6392 C 328.83339,372.9027 328.85858,373.5891 328.8625,373.7267 C 327.6584,374.4971 323.66104,372.465 322.2875,373.1517 C 319.3091,374.6408 317.4428,376.6229 318.8625,382.3016 C 319.33616,384.1963 321.34878,388.481 323.42501,389.7267 C 335.70613,397.0954 316.24691,394.3704 315.42501,396.0141 C 313.92168,399.0208 310.04006,398.7965 308.57501,401.7267 C 306.57136,405.7339 309.02318,408.4963 308,412.5891 C 304.76146,425.5432 314.22379,411.8992 317.1375,417.7267 C 318.15466,419.761 319.07982,423.6949 318.2875,426.8642 C 316.90184,432.4067 309.73718,429.6282 308.57501,435.4392 C 307.9669,438.4795 301.53546,439.2934 302.2875,442.3016 C 302.28264,442.5261 302.26864,442.752 302.2625,442.9766 C 302.67882,442.9618 303.06485,443.0147 303.42501,443.1517 C 303.12139,443.4374 307.78776,445.5299 308.57501,445.7267 C 309.34592,445.9194 318.9451,447.6462 319.42501,445.7267 C 320.21578,442.5635 317.34734,435.553 320.57501,436.0142 C 321.90834,436.2046 323.26834,436.2624 324.57501,436.5891 C 328.1232,437.4762 332.7697,431.5968 335.2875,431.3267 C 335.35261,431.3197 335.4125,431.3131 335.47501,431.3142 C 335.66253,431.3171 335.84163,431.36 336,431.4392 C 337.94248,432.4104 337.87042,436.1632 340,436.5891 C 346.38598,437.8662 347.07637,437.3781 352,442.3016 C 354.05154,444.3531 360.54912,448.6408 358.8625,452.0142 C 357.71648,454.3062 352.63494,454.6389 353.1375,457.1517 C 354.3877,463.4027 357.0019,459.9227 362.8625,463.4392 C 363.96424,464.1002 372,469.565 372,471.4392 C 372,472.5819 372,473.7213 372,474.8642 C 372,479.6261 372,484.3898 372,489.1517 C 372,493.237 377.02094,497.4098 374.8625,501.7267 C 372.22478,507.0021 378.2875,506.6805 378.2875,509.7267 C 378.2875,512.0421 376.5701,520.0168 377.1375,521.1517 C 378.34482,523.5662 382.84858,525.7085 383.42501,528.0142 C 390.93645,535.8325 399.52738,524.5936 398.5,532.8642 C 399.47067,530.2749 406.12032,526.3851 406.28752,526.3016 C 410.46816,524.2112 412.56624,522.0152 417.22496,520.0142 C 417.24208,520.0141 417.25792,520.0142 417.27504,520.0142 C 417.05744,519.8189 416.82224,519.6298 416.57504,519.4392 C 420.1568,517.6483 414.28752,506.8686 414.28752,502.8642 C 414.28752,499.2171 413.2328,494.1979 413.1376,490.8642 C 412.63328,491.0254 412.77088,490.9254 413.25008,490.6392 C 412.82064,490.3818 412.43344,489.9747 412,489.7267 C 411.97712,489.6118 411.95216,489.4995 411.92496,489.3891 C 411.08064,488.6869 410.38192,487.7901 410.18752,487.0642 C 410.09376,486.7141 410.01664,486.3379 409.95008,485.9392 C 407.53056,483.4813 410.49808,478.696 410.49808,474.5885 C 410.49808,471.1968 405.60464,473.0446 405.7,469.4766 C 405.124,468.7629 404.3608,468.0888 403.6376,467.7016 C 401.76848,466.7013 401.22832,466.1243 401.8376,465.2766 C 401.20784,464.6346 403.50032,460.288 403.35984,459.7261 C 402.484,456.2226 398.90229,455.9941 402.28752,454.3016 C 402.5712,454.1598 402.88608,453.9586 403.21248,453.7267 C 403.16096,451.2354 403.61024,450.2901 405.07504,448.0766 C 406.56224,445.8293 407.948,444.7528 408.92496,444.6766 C 409.53472,444.6291 409.98464,444.976 410.2,445.6766 C 410.5344,445.0488 410.77008,444.4766 410.86256,444.0142 C 411.6776,439.9386 412,437.0494 412,432.5891 C 412,430.5458 414.8624,430.1152 414.86256,426.8642 C 414.8624,424.8126 420.07744,426.5792 420.57504,424.5891 C 421.63696,420.3414 417.52848,418.1667 415.42496,416.5891 C 412.26608,414.2198 416.47936,413.1848 418.86256,412.5891 C 418.87168,412.1187 418.86704,411.6378 418.86256,411.1517 C 418.8632,411.1475 418.86176,411.1432 418.86256,411.1392 C 418.85504,410.3336 418.8296,409.4907 418.8,408.6517 C 418.26256,406.2269 416.4376,403.877 414.28752,401.7267 C 411.95696,399.3962 412.46928,396.3656 410.86256,393.1517 C 409.72448,390.876 403.8816,388.8277 401.71248,388.0141 C 391.8031,384.2982 397.82832,385.3851 398.2875,380.5891 C 398.62518,377.0622 394.19304,377.3493 396,374.3016 C 399.18205,368.9347 401.76,371.6645 400,362.8642 C 399.1917,358.8226 398.2875,358.2938 398.2875,352.5891 C 398.2875,347.8966 393.1375,347.6408 393.1375,344.0141 C 393.1375,341.015 391.58376,339.7869 389.95,339.7766 z ";
countyPaths.leitrim = "M 371.5625,256.6891 C 371.38579,257.4339 371.17979,258.1254 370.52501,258.2891 C 369.1804,258.6253 361.71859,261.5267 360.82501,261.5267 C 360.53394,261.5267 360.15485,261.6942 359.7375,261.9517 C 360.12459,262.5602 360.64051,263.1646 360,265.7267 C 359.47733,267.8173 353.9012,268.7778 355.42501,270.3016 C 356.82595,271.7026 364.57499,274.423 364.57501,276.5891 C 364.57501,277.9813 363.30523,287.5714 362.2875,288.5891 C 357.36371,293.513 363.70981,295.1133 364.57501,299.4392 C 365.042,301.7741 364.38274,306.7075 365.1375,309.7267 C 365.99926,313.1736 368,314.6626 368,318.8642 C 368,321.3848 367.18955,327.7662 368.57501,329.1517 C 370.38061,330.9573 373.728,334.3016 377.1375,334.3016 C 382.61757,334.3016 383.82362,338.1059 384.2875,342.0141 C 384.26723,342.1038 384.24725,342.1893 384.22501,342.2766 C 384.90678,342.4939 385.59181,342.6917 386.2875,342.8642 C 386.91749,339.0843 393.1375,338.0158 393.1375,344.0141 C 393.1375,347.6408 398.2875,347.8966 398.2875,352.5891 C 398.2875,358.2938 399.1917,358.8226 400,362.8642 C 401.76,371.6645 399.18205,368.9347 396,374.3016 C 394.19304,377.3493 398.62518,377.0622 398.2875,380.5891 C 397.82832,385.3851 391.8033,384.2982 401.71248,388.0141 C 403.8816,388.8277 409.72448,390.876 410.86256,393.1517 C 412.46944,396.3656 411.95696,399.3962 414.28752,401.7267 C 417.16976,404.609 419.464,407.8581 418.86256,411.1517 C 418.4888,411.1571 429.45216,412.3528 433.1376,407.4392 C 435.82048,403.8619 441.71248,407.5312 441.71248,401.1517 C 441.71248,400.2568 445.92144,394.471 446.86256,392.5891 C 448.92816,388.4579 452.95952,387.2523 457.71248,386.3016 C 458.29152,386.1859 460.49376,385.3126 461.1376,385.1517 C 461.47056,385.0611 461.77312,384.9949 462.06256,384.9392 C 459.52256,382.3974 461.1376,374.5918 461.1376,371.4392 C 461.1376,368.4315 456.84496,365.2755 454.86256,362.3016 C 453.02448,359.545 450.34976,356.6514 448,354.3016 C 444.79072,351.0923 445.24048,349.037 441.1376,346.3016 C 436.55744,343.2482 434.12544,345.5646 429.71248,341.1517 C 427.10128,338.5403 424.87888,339.472 422.86256,335.4392 C 421.11488,331.9438 419.28272,330.5474 416,329.7267 C 411.83616,328.6858 409.82624,333.3917 407.42496,328.5891 C 406.22912,326.1974 407.42496,319.6614 407.42496,317.1517 C 407.42496,310.7066 406.96304,310.2314 412.57504,306.8642 C 414.972,305.4259 415.44448,304.5237 416,302.3016 C 416.33712,301.9958 416.68,301.7019 417.02496,301.4141 C 416.96848,301.4179 416.91616,301.4283 416.86256,301.4392 C 416.6328,301.3483 407.11088,293.7006 406.28752,293.1517 C 402.81344,290.8357 401.77872,287.5053 399.42501,285.1517 C 395.99888,281.7256 394.58026,280.1605 389.7125,277.7267 C 387.87101,276.8059 384.57499,269.2888 384.57501,267.4392 C 384.31736,266.6866 380.8527,262.6342 383.42501,264.3016 C 381.71072,262.4054 375.53109,259.6656 373.7125,258.3016 C 372.2159,257.1792 372.24085,257.1979 371.5625,256.6891 z ";
countyPaths.sligo = "M 348.22501,256.6141 C 347.54298,256.6046 347.0875,257.0867 347.0875,258.2891 C 347.0875,261.5803 347.56293,265.0336 344.2625,265.9766 C 338.18762,267.7123 343.54938,271.377 340.62501,272.8392 C 339.51173,273.3958 334.02136,274.0893 333.35,275.2642 C 330.6604,279.971 329.62766,278.5442 324.0625,281.3267 C 322.10982,282.303 320.06285,284.6398 321.6375,287.7891 C 322.39098,289.2962 324.28048,293.0554 326.07501,294.2517 C 330.9983,297.5339 331.4048,293.0781 336.5875,290.2141 C 338.47861,289.1691 338.90598,297.4531 340.62501,298.7016 C 343.8065,301.0123 346.6027,305.5885 343.45,306.3766 C 340.45238,307.1261 336.82557,304.3952 333.75,305.1642 C 331.0133,305.8483 328.86952,307.1632 332.1375,309.6141 C 333.22157,310.4272 339.4125,314.5698 339.4125,315.6766 C 339.4125,318.099 334.26278,323.957 331.7375,320.9267 C 331.20962,320.2931 327.82021,317.4093 326.4875,316.0766 C 325.91059,315.4997 321.6375,313.7227 321.6375,312.8392 C 321.6375,311.4046 322.18842,306.0141 320.0125,306.3766 C 315.47549,307.1328 313.76702,305.9766 309.9125,305.9766 C 307.16542,305.9766 304.03518,309.2374 301.8375,307.5891 C 299.02797,305.4821 299.7977,302.1429 294.1625,303.5517 C 289.13618,304.8082 290.32805,300.3142 285.2625,300.3141 C 282.38459,300.3141 278.51926,304.7939 277.5875,303.5517 C 277.42619,303.3366 275.94347,297.9064 274.3625,298.3016 C 273.3732,298.549 268.06058,301.593 267.4875,302.7392 C 265.95669,305.8008 267.0875,309.4168 267.0875,312.8392 C 267.0875,317.268 265.51893,320.1062 262.2375,320.9267 C 261.98493,320.9898 257.98461,326.0779 256.7625,325.8766 C 256.26384,326.2747 255.3847,326.4774 254.8625,326.8642 C 254.8625,327.4968 254.38371,332.2061 254.8625,332.5891 C 263.68013,339.6432 259.98837,328.3936 265.7125,330.3016 C 269.7075,331.6333 277.466,331.2862 280.57501,333.1517 C 281.2532,333.5586 291.30082,339.3082 289.7125,340.0141 C 281.1257,343.8306 281.23675,343.2237 282.8625,349.7267 C 284.00837,354.3101 280.40008,356.0517 276,357.1517 C 273.63835,357.7421 267.34922,364.0141 273.7125,364.0141 C 279.70022,364.0141 281.47944,366.3016 286.8625,366.3016 C 292.3193,366.3016 291.60064,371.3424 294.2875,372.0141 C 296.51829,372.5718 300.61562,377.4259 301.7125,377.1517 C 305.85763,376.1154 303.72813,372.5891 309.1375,372.5891 C 311.02304,372.5891 320.07192,368.8765 320.57501,366.8642 C 321.13597,364.6203 328.57499,361.001 328.57501,362.8642 C 328.57501,364.9946 328.75606,370.4733 328.82501,372.6392 C 329.28061,373.0163 329.68706,373.4346 330.0125,373.9141 C 330.37027,374.4414 330.71722,374.9744 331.07501,375.5016 C 331.58382,375.1648 337.69405,377.7082 339.42501,379.4392 C 341.84421,381.8584 340.17773,385.1458 344,387.4392 C 348.29878,390.0184 354.57406,384.5979 356,390.3016 C 356.95645,394.1275 361.87474,394.9131 362.8625,398.8642 C 364.12371,403.909 372.18902,396.3877 373.7125,394.8642 C 376.60064,391.976 369.04494,388.6411 368,388.0141 C 364.67054,386.0165 367.5891,383.052 362.2875,381.7267 C 361.52558,381.5362 360.7619,381.3421 360,381.1517 C 356.81254,380.3547 356.35512,375.8574 356,373.7267 C 355.08053,368.2098 352.3372,366.8642 360,366.8642 C 365.59754,366.8642 363.31397,372.2362 367.42501,364.0141 C 369.80203,359.2602 374.2875,364.8299 374.2875,357.1517 C 374.2875,355.4053 382.16374,351.6317 382.8625,347.4392 C 383.33984,344.575 383.95424,343.4902 384.2875,342.0141 C 383.82362,338.1059 382.61757,334.3016 377.1375,334.3016 C 373.728,334.3016 370.38061,330.9573 368.57501,329.1517 C 367.18955,327.7662 368,321.3848 368,318.8642 C 368,314.6626 365.99926,313.1736 365.1375,309.7267 C 364.38274,306.7075 365.042,301.7741 364.57501,299.4392 C 363.70981,295.1133 357.36371,293.513 362.2875,288.5891 C 363.30523,287.5714 364.57501,277.9813 364.57501,276.5891 C 364.57499,274.423 356.82595,271.7026 355.42501,270.3016 C 353.9012,268.7778 359.47733,267.8173 360,265.7267 C 360.64051,263.1646 360.12459,262.5602 359.7375,261.9517 C 357.63064,263.2514 354.36248,266.9026 354.3625,263.5517 C 354.3625,261.0718 350.27109,256.6429 348.22501,256.6141 z M 331.07501,375.5016 C 330.98077,375.564 331.07102,375.731 331.42501,376.0141 C 331.30877,375.8429 331.19123,375.673 331.07501,375.5016 z ";
countyPaths.cavan = "M 417.02496,301.4141 C 416.68,301.7019 416.33712,301.9958 416,302.3016 C 415.44448,304.5237 414.972,305.4259 412.57504,306.8642 C 406.96304,310.2314 407.42496,310.7066 407.42496,317.1517 C 407.42496,319.6614 406.22912,326.1974 407.42496,328.5891 C 409.82624,333.3917 411.83616,328.6858 416,329.7267 C 419.28272,330.5474 421.11488,331.9438 422.86256,335.4392 C 424.87888,339.472 427.10128,338.5403 429.71248,341.1517 C 434.12544,345.5646 436.55744,343.2482 441.1376,346.3016 C 445.24048,349.037 444.79072,351.0923 448,354.3016 C 450.34976,356.6514 453.02448,359.545 454.86256,362.3016 C 456.84496,365.2755 461.1376,368.4315 461.1376,371.4392 C 461.1376,374.6829 459.4224,382.8581 462.28752,385.1517 C 468.0192,385.1517 465.19792,386.3494 468,389.1517 C 471.04416,392.1958 472.23712,393.9637 475.42496,397.1517 C 477.90016,399.6269 481.41984,403.4286 483.42496,407.4392 C 484.74672,410.0824 487.9792,414.2061 488.57504,416.5891 C 488.884,417.8254 491.85104,428.2995 495.42496,421.1517 C 495.7112,421.1034 495.97024,421.0246 496.21248,420.9392 C 495.75824,420.6875 495.59632,420.2464 496,419.4392 C 497.38576,416.6677 499.57232,418.2342 502.86256,416.5891 C 505.44144,415.2995 514.76432,420.6749 517.71248,417.7267 C 519.34048,416.0986 525.65584,411.9451 528.57504,414.8642 C 529.20304,415.4922 533.26864,420.347 533.71248,420.0142 C 536.5808,417.8629 537.2528,418.6979 541.1376,417.7267 C 542.12528,417.4797 551.53648,418.1902 552.57504,417.1517 C 553.96128,415.7654 555.60544,413.907 553.1376,411.4392 C 552.19488,410.4965 551.82224,405.9043 554.28752,403.4392 C 557.33936,400.3874 553.08144,400.8384 554.28752,396.0141 C 555.90368,389.5491 557.69872,394.8581 561.71248,397.1517 C 562.92624,397.8453 571.94928,401.215 573.71248,398.8642 C 575.72816,396.1766 582.99824,393.0355 584.91248,392.1141 C 584.9048,391.827 584.8944,391.5389 584.88752,391.2517 C 584.39904,391.3018 583.9096,391.3618 583.42496,391.4392 C 582.7056,391.7989 573.79792,384.0813 571.42496,382.3016 C 567.02512,379.0018 567.08192,380.4248 566.28752,374.8642 C 566.15456,373.9338 560.06176,368.0635 558.86256,366.8642 C 556.10016,364.1019 555.21216,366.4509 553.1376,362.3016 C 551.82416,359.6747 548.71616,356.0464 546.28752,355.4392 C 543.97184,354.8603 541.21824,354.012 540.57504,351.4392 C 539.27232,346.2286 541.6592,345.7267 535.42496,345.7267 C 528.95568,345.7267 524.52208,344.6184 518.86256,348.0141 C 515.06544,350.2923 507.75616,346.3629 504.57504,345.7267 C 504.2192,345.6555 508,338.9662 508,337.1517 C 508,334.1973 509.73808,332.5984 506.86256,330.5891 C 506.86592,330.5627 506.87152,330.5403 506.87504,330.5141 C 506.62128,330.6731 506.40384,330.8075 506.28752,330.8642 C 506.74912,329.0176 497.28256,338.8278 497.1376,338.8642 C 494.02992,339.6411 488.84512,343.4069 487.42496,337.7267 C 486.27344,333.1202 482.18768,340.6766 481.71248,341.1517 C 476.64848,346.2157 473.49776,335.2386 472,334.8642 C 467.40832,333.7163 464.54,332.0141 459.42496,332.0141 C 454.5608,332.0141 454.28752,330.6574 454.28752,326.3016 C 454.28752,321.8432 451.87536,322.1205 448,321.1517 C 443.76128,320.092 443.24672,321.1517 438.86256,321.1517 C 435.66656,321.1517 434.4536,317.3178 432,314.8642 C 429.70464,312.5688 427.92288,309.6496 425.71248,307.4392 C 422.8048,304.5314 424.5768,303.5896 419.42496,302.3016 C 419.3928,302.2936 418.00912,301.3477 417.02496,301.4141 z ";
countyPaths.donegal = "M 498.66256,52.4141 C 496.0368,52.4214 493.3856,52.5891 490.86256,52.5891 C 485.76464,52.5891 487.1968,55.6662 490.28752,57.7266 C 493.76384,60.0442 497.02384,64.2386 500,65.7266 C 501.27952,66.3664 505.37008,73.1346 503.42496,74.3016 C 497.82448,77.6619 496.15568,77.1757 493.1376,73.1515 C 488.17456,66.5342 491.20336,71.3077 488,72.5891 C 485.69344,73.5117 478.35968,73.1155 478.28752,73.1515 C 475.28144,74.6547 470.8624,75.5173 470.86256,80.5891 C 470.8624,84.9864 470.5944,88.0531 472.57504,92.0141 C 473.9024,94.6688 475.85536,96.2998 477.1376,98.8642 C 478.97904,102.5474 478.8624,105.8045 478.86256,110.3016 C 478.8624,114.2602 479.35632,118.4387 477.71248,121.7267 C 477.01008,123.1315 477.20256,132.2885 476,132.5891 C 473.52256,133.2085 465.71248,134.5403 465.71248,137.7267 C 465.71248,143.5907 466.17952,143.3826 462.28752,146.3016 C 460.92176,147.3259 448.55664,152.5509 451.9,145.8642 C 453.5864,142.4912 457.19344,140.9277 458.18752,136.9517 C 459.11728,133.2322 462.42352,132.3206 463.45008,129.8891 C 463.81376,129.0277 460.33376,127.992 460.67504,126.6267 C 461.73456,122.3882 463.79872,121.5542 465.71248,117.7267 C 467.47184,114.208 469.7848,116.8534 468.57504,112.0141 C 467.8552,109.135 466.78752,107.2966 466.78752,103.7141 C 466.78752,100.0443 465.09104,93.5776 461.1376,92.5891 C 455.78256,91.2504 459.50432,88.1952 457.71248,84.0141 C 454.87488,77.3933 452.1728,79.439 444,79.439 C 440.41744,79.439 433.61536,80.5278 432.47504,85.0891 C 431.77136,87.9037 426.548,90.0274 427.02496,92.8891 C 427.67776,96.8051 431.42496,95.5518 431.42496,99.4392 C 431.42496,103.6688 428.67168,106.4883 426.86256,108.5891 C 426.67168,107.9858 422.94384,111.173 423.45008,101.9267 C 423.65072,98.2597 423.58848,96.205 414.76256,95.8642 C 412.19168,95.765 418.2208,92.6843 417.4,89.4016 C 416.40672,85.4283 411.73872,86.3634 408.91248,87.7766 C 406.04224,89.2117 407.69536,95.107 405.67504,97.4766 C 404.1696,99.2424 401.02976,99.7842 398.4,100.3016 C 395.45467,100.8813 400.8352,109.1448 393.7625,107.3766 C 391.40797,106.788 391.77422,105.3042 389.5125,102.7267 C 387.86874,100.8533 385.66838,105.7029 383.05,103.7392 C 377.37173,99.4805 378.81328,104.7517 374.5625,104.7517 C 372.98595,104.7517 368.50002,104.128 368.5,106.3642 C 368.5,107.8933 369.29554,114.1888 370.52501,115.6642 C 373.8124,119.609 371.38898,118.1366 369.7125,121.7267 C 368.02213,125.3464 370.412,129.0302 369.1125,133.4392 C 366.64416,135.5506 365.36333,131.1389 363.65,128.5891 C 361.55867,125.477 362.51046,126.8686 358.6,126.7766 C 353.75126,126.6626 355.21373,135.6386 352.3375,137.0766 C 346.90466,139.7931 351.12499,139.1829 351.12501,144.3517 C 351.12501,147.0486 358.81656,150.3242 358,150.8141 C 355.86552,152.0949 351.052,152.0632 347.9,153.6392 C 344.61829,155.28 347.98658,160.4373 350.32501,161.3141 C 351.4025,161.7182 352.43358,162.2475 353.55,162.5267 C 357.83459,163.5978 357.64741,161.1496 360.82501,160.5141 C 364.80843,159.7174 368.84699,159.0202 366.4875,163.7392 C 365.55773,165.5987 364.90162,170.6338 367.2875,171.8267 C 371.052,173.709 368.64818,175.1062 367.7,177.4766 C 366.76091,179.8243 364.55,181.2891 362.85,177.8891 C 361.57816,175.3454 357.75208,171.753 353.9625,172.2267 C 350.58483,172.6488 349.58573,174.6517 346.6875,174.6517 C 343.77267,174.6517 338.60152,173.0402 339.0125,176.6766 C 339.81298,183.7598 340.88294,180.5139 343.85,182.7392 C 345.77085,184.1798 349.89696,185.1362 351.5375,186.7766 C 352.25315,187.4923 352.78766,189.9389 351.5375,192.4392 C 350.88424,193.7456 347.00389,200.0306 344.6625,197.6891 C 342.31261,195.3392 341.40555,194.0405 338.2,193.2392 C 335.70418,192.6152 333.01222,187.5891 331.7375,187.5891 C 329.18955,187.5891 325.04248,186.7517 324.0625,189.2016 C 323.68902,190.1354 323.75477,196.975 322.85,197.2766 C 317.60299,199.0256 316.70962,199.3795 313.15,202.9392 C 310.23382,205.8554 310.94186,198.7374 308.7,201.7267 C 306.72326,204.3622 304.5961,203.7784 306.27501,206.5766 C 307.49814,208.6152 311.11907,213.744 313.15,214.2517 C 315.13978,214.7491 316.13846,223.8837 318,223.1392 C 324.73622,220.4446 323.73253,226.4184 329.7125,225.5642 C 338.91808,224.2491 330.99416,226.0814 335.37501,227.1766 C 337.94493,227.8192 340.74099,222.165 341.4375,222.3392 C 343.74922,222.9171 345.20936,229.7205 346.27501,227.5891 C 347.40376,225.3317 353.26867,220.7888 354.3625,225.1642 C 355.58866,230.0688 353.44789,227.8792 350.32501,231.6267 C 349.33424,232.8155 346.37402,237.6184 350.32501,237.2891 C 354.10326,236.9742 358.84304,237.917 360.0125,233.2392 C 360.88384,229.7538 362.172,226.2637 362.85,223.5517 C 364.55296,216.7398 371.90851,221.824 371.7375,221.9267 C 369.7489,223.1198 367.73389,230.712 370.52501,230.0141 C 373.87966,229.1755 374.91528,225.1642 378.6,225.1642 C 381.2364,225.1642 382.50282,222.3339 384.6625,220.7141 C 385.03987,220.4312 393.05976,215.4907 393.9625,219.1016 C 394.14019,219.8123 395.59904,226.1584 394.3625,226.7766 C 389.39907,229.2584 388.80094,231.3909 385.47501,234.0517 C 381.92566,236.8912 381.83749,238.3763 381.8375,242.5392 C 381.8375,250.5325 375.5117,241.061 377.8,250.2141 C 378.35683,252.4414 378.06541,256.5398 373.7625,255.4642 C 373.22376,255.3294 372.67626,255.1989 372.1375,255.0642 C 371.81966,255.488 371.70118,256.1046 371.5625,256.6891 C 372.24085,257.1979 372.2159,257.1792 373.7125,258.3016 C 375.53109,259.6656 381.71072,262.4054 383.42501,264.3016 C 386.43664,264.263 388.4419,263.923 389.7125,262.8642 C 392.8645,260.2374 399.30261,261.9715 401.1376,258.3016 C 402.6408,255.295 408.57504,256.6422 408.57504,251.4392 C 408.57504,248.0306 407.96112,244.0187 411.42496,242.8642 C 414.04,241.9925 417.26448,239.4963 420.57504,241.1517 C 423.4896,242.609 425.6208,244.0141 429.71248,244.0141 C 435.92336,244.0141 432.78224,240.528 437.1376,239.4392 C 441.97184,238.2306 436.88656,232.7083 439.42496,231.4392 C 439.68016,231.3117 449.5696,226.5837 449.98752,226.5642 C 448.1296,224.0934 452.17952,220.3851 446.86256,217.7267 C 444.64112,216.616 443.05856,221.7267 440.57504,221.7267 C 437.43696,221.7267 443.84128,229.8307 436.57504,228.0141 C 434.39936,227.4702 433.87152,222.8642 428.57504,222.8642 C 423.37616,222.8642 425.1376,217.2302 425.1376,213.1517 C 425.1376,209.2253 423.32416,210.177 429.71248,207.4392 C 434.39216,205.4336 425.7024,199.4392 434.28752,199.4392 C 438.57616,199.4392 445.17472,200.0266 447.42496,200.5891 C 448.17584,200.7768 461.1376,203.393 461.1376,196.0141 C 461.1376,191.0349 467.9552,196.9003 468.57504,197.7267 C 471.29056,201.3474 472.57504,190.7109 472.57504,189.7267 C 472.57504,186.568 472.42864,183.425 473.1376,180.5891 C 474.58016,174.8187 480,177.9187 480,171.4392 C 480,166.884 480.92432,165.9398 484,162.8642 C 485.10528,161.7589 486.7848,159.3438 488.28752,156.8642 C 488.61696,155.9632 489.94848,154.9821 489.71248,154.8642 C 487.1344,153.575 491.45744,146.3016 488.57504,146.3016 C 484.98256,146.3016 484.36704,138.6627 485.71248,136.0141 C 488.5312,130.4654 485.79168,128.5891 493.1376,128.5891 C 494.94224,128.5891 499.7176,124.5891 500,124.5891 C 504.76544,124.5891 509.77152,125.7251 509.71248,121.1517 C 509.77792,121.1323 509.8992,121.1096 510.01248,121.0891 C 509.17184,120.5 508.58256,120.0446 508.57504,120.0141 C 507.57104,115.9986 508.66768,115.3466 511.42496,112.5891 C 513.35632,110.6579 518.33312,107.2936 520.27504,105.3517 C 522.45328,103.1733 521.844,100.3499 524.57504,98.3016 C 527.14704,96.3726 530.296,95.7766 533.71248,93.7267 C 536.4504,92.0838 542.23616,93.995 542.86256,90.8642 C 543.7624,86.364 546.61248,85.9013 545.71248,82.3016 C 545.10976,79.8907 544.92784,74.4846 541.1376,73.7266 C 536.82864,72.8648 533.88928,70.8642 528.57504,70.8642 C 524.50592,70.8642 523.44112,68.6059 521.1376,65.7266 C 519.69904,63.9283 515.0512,59.6301 514.28752,59.439 C 509.56848,58.2594 509.80608,54.0312 506.28752,53.1515 C 503.88464,52.5509 501.288,52.4067 498.66256,52.4141 z M 449.98752,226.5642 C 449.99312,226.5717 449.99424,226.5818 450,226.5891 C 450.01504,226.5741 450.00432,226.5634 449.98752,226.5642 z ";
countyPaths.monaghan = "M 541.8,271.8016 C 538.42736,271.8254 537.82448,275.3272 535.42496,277.7267 C 532.67312,280.4786 533.796,281.5595 531.42496,286.3016 C 530.79328,287.5651 525.88176,289.132 523.22496,289.8891 C 523.28736,290.2125 523.35104,290.5288 523.42496,290.8642 C 521.62224,291.3149 520.0672,290.5827 519.42496,293.1517 C 518.52496,296.7522 520,299.808 520,302.3016 C 520,304.9379 523.22848,310.1318 522.86256,310.8642 C 520.912,314.7651 512.23392,317.9165 511.42496,321.1517 C 510.2792,325.7352 507.43392,326.1531 506.86256,330.5891 C 509.73808,332.5984 508,334.1973 508,337.1517 C 508,338.9662 504.2192,345.6555 504.57504,345.7267 C 507.75616,346.3629 515.06544,350.2923 518.86256,348.0141 C 524.52208,344.6184 528.95568,345.7267 535.42496,345.7267 C 541.6592,345.7267 539.27232,346.2286 540.57504,351.4392 C 541.21824,354.012 543.97184,354.8603 546.28752,355.4392 C 548.71616,356.0464 551.82416,359.6747 553.1376,362.3016 C 555.21216,366.4509 556.10016,364.1019 558.86256,366.8642 C 560.06176,368.0635 566.15456,373.9338 566.28752,374.8642 C 567.08192,380.4248 567.02512,379.0018 571.42496,382.3016 C 573.79792,384.0813 582.7056,391.7989 583.42496,391.4392 C 584.62416,391.2478 585.83872,391.1538 587.05008,391.0891 C 589.34176,390.1637 591.86928,389.2232 593.1376,388.5891 C 595.06848,387.6237 598.8624,385.751 598.86256,382.3016 C 598.8624,378.4262 600.76784,375.0552 603.42496,373.7267 C 607.81072,371.5338 604.52416,364.6918 604.6,362.4016 C 604.40784,362.373 604.21152,362.3437 604,362.3016 C 603.6088,363.8664 596.01472,355.5102 595.42496,353.1517 C 594.6432,350.0248 595.42496,345.5544 595.42496,342.3016 C 595.42496,340.0837 594.8624,336.9075 594.86256,334.3016 C 594.8624,330.4462 594.69136,327.268 592.57504,325.1517 C 589.38432,321.961 586.8768,324.7067 583.42496,326.8642 C 578.99808,329.631 575.92784,323.6658 575.42496,321.1517 C 574.9376,318.7144 571.90544,314.6754 570.86256,312.5891 C 569.38944,309.643 566.28752,310.2346 566.28752,305.1517 C 566.28752,300.3894 563.96176,294.4691 564.86256,289.1517 C 564.8616,289.1477 564.8632,289.1432 564.86256,289.1392 C 563.55776,287.2322 557.93584,282.2106 556,281.7267 C 553.75456,281.1653 555.70992,275.151 555.42496,273.7267 C 555.10704,272.137 545.23488,272.4666 543.42496,272.0141 C 542.81664,271.8621 542.28176,271.7982 541.8,271.8016 z ";
countyPaths.tyrone = "M 501.9,156.4642 C 498.01024,156.5147 492.10912,158.6283 489.71248,157.7267 C 489.1784,157.6621 488.5408,157.6042 487.85008,157.5517 C 486.46496,159.776 485.00096,161.8632 484,162.8642 C 480.92432,165.9398 480,166.884 480,171.4392 C 480,177.9187 474.58016,174.8187 473.1376,180.5891 C 472.42848,183.425 472.57504,186.568 472.57504,189.7267 C 472.57504,190.7109 471.29056,201.3474 468.57504,197.7267 C 467.9552,196.9003 461.1376,191.0349 461.1376,196.0141 C 461.1376,203.393 448.17584,200.7768 447.42496,200.5891 C 445.17472,200.0266 438.57616,199.4392 434.28752,199.4392 C 425.7024,199.4392 434.392,205.4336 429.71248,207.4392 C 423.32416,210.177 425.1376,209.2253 425.1376,213.1517 C 425.1376,217.2302 423.37616,222.8642 428.57504,222.8642 C 433.87152,222.8642 434.39936,227.4702 436.57504,228.0141 C 437.52256,228.251 438.22832,228.3122 438.76256,228.2517 C 438.95696,228.075 439.184,227.916 439.46256,227.7766 C 439.64512,227.6853 439.824,227.5915 440.01248,227.5141 C 440.9096,225.7878 438.35232,221.7267 440.57504,221.7267 C 443.05856,221.7267 444.64112,216.616 446.86256,217.7267 C 452.01328,220.3021 448.36848,223.8603 449.82496,226.3267 C 449.97856,226.316 450.13392,226.3123 450.28752,226.3016 C 451.25136,226.6229 452.8416,229.4309 453.71248,230.3016 C 456.58224,233.1714 459.36944,236.2784 462.86256,237.1517 C 473.40176,239.7866 466.28752,241.0126 466.28752,245.7267 C 466.28752,246.679 466.28752,247.6368 466.28752,248.5891 C 466.28752,252.9368 457.39136,256.536 460,260.0141 C 462.10736,262.8238 458.88016,269.4498 462.28752,270.3016 C 463.69072,270.6525 469.52896,266.6349 469.71248,266.8642 C 473.04752,271.033 472.32416,271.652 477.1376,269.7267 C 480.70112,268.3013 483.15168,268.1514 487.42496,267.4392 C 493.16208,266.483 490.1824,269.099 493.71248,270.8642 C 497.10192,272.5589 498.63968,275.6451 501.1376,277.7267 C 504.02384,280.1318 507.2192,286.5568 510.86256,288.0141 C 514.50576,289.4715 520.37152,290.637 521.71248,290.3016 C 523.05344,289.9664 530.6336,287.8845 531.42496,286.3016 C 533.796,281.5595 532.67312,280.4786 535.42496,277.7267 C 538.16736,274.9843 538.5584,270.7974 543.42496,272.0141 C 545.23488,272.4666 555.10704,272.137 555.42496,273.7267 C 555.70992,275.151 553.75456,281.1653 556,281.7267 C 557.93584,282.2106 563.55776,287.2322 564.86256,289.1392 C 564.71296,288.2266 570.28752,286.1912 570.28752,281.1517 C 570.28752,274.6336 570.188,274.4291 576.57504,273.1517 C 580.85232,272.2962 587.2704,269.8813 589.71248,267.4392 C 591.37568,265.776 590.28752,259.949 590.28752,257.7267 C 590.28736,252.3056 592.92128,252.6973 597.71248,250.3016 C 597.95472,250.0866 598.20928,249.8877 598.46256,249.6891 C 597.8664,248.9478 597.4048,248.2814 597.1376,248.0141 C 594.70944,245.5861 597.71248,241.1605 597.71248,237.7267 C 597.71248,233.4114 598.46304,229.363 599.42496,227.4392 C 599.68096,226.9274 603.33856,232.4314 607.42496,226.3016 C 609.29728,223.4933 608.77808,219.608 610.28752,216.5891 C 611.20032,214.7634 609.7768,212.8282 608.4,210.9392 C 608.2624,210.9019 608.1272,210.8731 608,210.8642 C 606.65312,210.8642 603.49216,211.4118 602.28752,212.0141 C 601.5256,212.395 600.76192,212.7707 600,213.1517 C 596.9344,214.6845 593.11488,216.313 590.28752,217.7267 C 584.88624,220.4274 586.45472,220.531 582.28752,218.8642 C 580.4608,218.1334 578.67664,214.4573 578.28752,214.3016 C 573.01792,212.1939 576.33728,212.5637 574.28752,207.4392 C 572.13168,202.0498 579.07456,202.3016 567.42496,202.3016 C 561.2304,202.3016 565.25168,198.2485 563.42496,197.7267 C 562.05648,197.3357 555.96144,196.0141 553.1376,196.0141 C 546.53872,196.0141 553.15104,191.4099 554.28752,186.8642 C 555.06656,183.748 554.28736,184.0933 554.28752,182.3016 C 554.28752,177.5666 554.21776,177.7267 552,177.7267 C 549.38144,177.7267 537.25504,178.6334 536.57504,177.7267 C 535.6824,176.5365 535.12384,173.8312 533.71248,174.3016 C 528.70912,175.9694 528.14768,176.088 524.57504,174.3016 C 520.77568,172.4019 514.8624,172.0328 514.86256,165.1517 C 514.8624,160.3098 510.04896,161.6733 505.71248,160.5891 C 504.22272,160.2166 504.93088,156.8904 503.42496,156.5891 C 502.96736,156.4976 502.45568,156.457 501.9,156.4642 z ";
countyPaths.antrim = "M 693.1376,223.0642 C 685.98848,219.2014 695.37248,208.4542 698.0376,203.3766 C 704.05808,200.2157 711.66016,200.3406 714.28752,192.5891 C 718.9032,184.9762 716.36032,173.9986 715.60464,165.3845 C 712.27808,161.1747 713.42784,173.0851 710.55952,174.9131 C 705.2192,182.5614 705.5608,167.2544 704.57504,164.0141 C 703.71264,156.1266 693.73328,155.3261 691.87504,147.8642 C 687.80544,142.837 675.36464,140.8114 678.67504,132.3642 C 679.89584,127.5531 681.3096,114.752 673.12496,119.3766 C 670.50368,114.4606 670.64368,105.8037 671.76256,100.7766 C 675.87792,98.6555 673.392,91.7363 668.7376,93.4766 C 667.00544,84.569 658.25584,83.8296 650.72208,85.1446 C 644.41488,85.7837 639.2856,84.3338 635.16256,80.2515 C 625.7776,83.7066 617.99264,74.8928 608.98752,78.0515 C 604.50112,80.3432 601.048,82.2253 600,87.439 C 596.9328,90.7278 588.2448,89.2824 594.94048,93.939 C 599.99056,100.0546 597.6936,108.0731 597.83056,115.365 C 597.96624,123.1358 593.02864,135.4534 601.55232,139.7122 C 599.4072,144.0429 599.82752,148.564 604.61664,151.8456 C 606.61488,159.6274 607.73632,167.6709 611.99264,174.8718 C 614.28976,180.1597 608.85792,192.5968 615.98752,193.3141 C 618.57904,196.4174 617.54496,204.1326 624.6096,201.825 C 631.58688,202.5274 642.18224,195.28 646.51248,203.1766 C 649.58864,212.103 636.46032,216.1467 637.71248,224.0141 C 645.01216,228.0826 637.2648,238.785 635.92752,245.185 C 631.07648,249.1822 642.6688,245.4398 640.4376,252.0016 C 646.35312,251.7944 653.2064,251.1968 658.56912,256.0851 C 666.08912,257.5598 671.93344,248.492 675.93024,243.0373 C 676.88064,234.3485 685.3624,235.7198 690.67856,238.6474 C 694.268,234.4115 692.80432,228.2093 693.1376,223.0642 z ";
countyPaths.fermanagh = "M 450.28752,226.3016 C 450.13392,226.3123 449.97856,226.316 449.82496,226.3267 C 449.872,226.4062 449.92944,226.4869 449.98752,226.5642 C 449.56944,226.5837 439.68016,231.3117 439.42496,231.4392 C 436.88656,232.7083 441.97184,238.2306 437.1376,239.4392 C 433.85744,240.2592 434.82336,242.4379 432.85008,243.4642 C 433.1992,243.4744 433.55264,243.4971 433.92496,243.5392 C 436.53984,243.8339 437.4,243.6552 437.4,242.8016 C 437.4,242.5453 437.5328,242.4051 437.82496,242.3891 C 438.46784,242.3541 439.87568,242.9152 442.32496,244.1517 L 447.26256,246.6392 L 445.6,248.9642 C 444.07344,251.1082 444.05232,251.3773 445.28752,252.4016 C 447.24304,254.0234 448.82496,258.2958 448.82496,261.9642 C 448.82496,264.6906 449.1152,265.2443 450.8376,265.6766 C 451.99232,265.9666 454.27648,268.0904 456.15008,270.6267 C 458.79728,274.2102 459.42496,275.7496 459.42496,278.6141 C 459.42496,280.5666 458.91536,282.868 458.28752,283.7267 C 457.22512,285.1795 456.96128,284.9062 454.47504,279.8642 C 452.92608,276.7232 451.02416,274.091 449.95008,273.6016 C 448.93072,273.1373 446.69408,271.5155 444.98752,269.9891 C 443.28096,268.4627 440.23152,266.2019 438.21248,264.9642 C 436.19344,263.7264 433.94928,261.9627 433.22496,261.0517 C 432.10368,259.641 430.69888,259.3374 423.72496,259.0016 L 415.5376,258.6141 L 416.35008,256.2517 C 416.80176,254.9557 416.9488,253.0053 416.67504,251.9141 C 416.21632,250.0872 416.74352,249.66 423.31248,246.5392 C 425.97488,245.2742 427.80832,244.4693 429.28752,244.0016 C 425.47136,243.9072 423.3864,242.5573 420.57504,241.1517 C 417.26448,239.4963 414.04,241.9925 411.42496,242.8642 C 407.96112,244.0187 408.57504,248.0306 408.57504,251.4392 C 408.57504,256.6422 402.64064,255.295 401.1376,258.3016 C 399.30251,261.9715 392.8645,260.2374 389.7125,262.8642 C 388.4419,263.923 386.43664,264.263 383.42501,264.3016 C 380.8527,262.6342 384.31736,266.6866 384.57501,267.4392 C 384.57499,269.2888 387.87101,276.8059 389.7125,277.7267 C 394.58026,280.1605 395.99888,281.7256 399.42501,285.1517 C 401.77872,287.5053 402.8136,290.8357 406.28752,293.1517 C 407.11104,293.7006 416.6328,301.3483 416.86256,301.4392 C 417.8488,301.2395 419.39104,302.2931 419.42496,302.3016 C 424.5768,303.5896 422.8048,304.5314 425.71248,307.4392 C 427.92288,309.6496 429.70464,312.5688 432,314.8642 C 434.4536,317.3178 435.66656,321.1517 438.86256,321.1517 C 443.24672,321.1517 443.76128,320.092 448,321.1517 C 451.87536,322.1205 454.28752,321.8432 454.28752,326.3016 C 454.28752,330.6574 454.5608,332.0141 459.42496,332.0141 C 464.54,332.0141 467.40832,333.7163 472,334.8642 C 473.49776,335.2386 476.64848,346.2157 481.71248,341.1517 C 482.18768,340.6766 486.27344,333.1202 487.42496,337.7267 C 488.84512,343.4069 494.02992,339.6411 497.1376,338.8642 C 497.28272,338.8278 506.74912,329.0176 506.28752,330.8642 C 506.40384,330.8075 506.62128,330.6731 506.87504,330.5141 C 507.46976,326.1517 510.28592,325.7078 511.42496,321.1517 C 512.23392,317.9165 520.912,314.7651 522.86256,310.8642 C 523.22848,310.1318 520,304.9379 520,302.3016 C 520,299.808 518.52496,296.7522 519.42496,293.1517 C 519.60688,291.8474 526.44688,288.8925 521.71248,290.3016 C 520.37152,290.637 514.5056,289.4715 510.86256,288.0141 C 507.2192,286.5568 504.02384,280.1318 501.1376,277.7267 C 498.63968,275.6451 497.10192,272.5589 493.71248,270.8642 C 490.1824,269.099 493.16208,266.483 487.42496,267.4392 C 483.15168,268.1514 480.70112,268.3013 477.1376,269.7267 C 472.32416,271.652 473.04752,271.033 469.71248,266.8642 C 469.52896,266.6349 463.69072,270.6525 462.28752,270.3016 C 458.88016,269.4498 462.10736,262.8238 460,260.0141 C 457.39136,256.536 466.28752,252.9368 466.28752,248.5891 C 466.28752,247.6368 466.28752,246.679 466.28752,245.7267 C 466.28752,241.0126 473.40176,239.7866 462.86256,237.1517 C 459.36944,236.2784 456.58208,233.1714 453.71248,230.3016 C 452.8416,229.4309 451.25136,226.6229 450.28752,226.3016 z M 471.21248,302.2141 L 474.68752,304.7141 C 477.41008,306.6694 478.05856,307.5851 477.71248,308.9642 C 477.37936,310.2915 477.78608,310.9584 479.36256,311.6766 C 481.15808,312.4949 481.45008,313.141 481.45008,316.3267 C 481.45008,319.5237 481.90592,320.5286 484.75008,323.6141 C 487.43696,326.5291 487.9448,327.5786 487.51248,329.3016 C 487.2128,330.4952 486.40576,331.4328 485.65008,331.4392 C 484.9136,331.4453 483.5016,331.6614 482.51248,331.9267 C 481.02896,332.3245 480.6184,331.9978 480.21248,330.0766 C 478.83648,323.5654 473.60256,316.1552 466.4376,310.5891 L 463.25008,308.1141 L 467.22496,305.1642 L 471.21248,302.2141 z ";
countyPaths.derry = "M 583.02496,89.9642 C 580.7968,89.9613 578.816,90.1594 578.28752,90.8642 C 577.14736,92.3842 573.90352,100.2061 573.1376,100.5891 C 568.17168,103.0722 560.31744,97.1566 553.47504,96.5141 C 545.9848,95.8109 545.60224,98.9658 548.67504,106.7392 C 549.41536,108.612 542.28752,113.0381 542.28752,114.3016 C 542.28752,115.4672 542.96704,123.7005 541.71248,124.0141 C 538.79152,124.7445 531.10192,125.3424 528.9376,125.6517 C 523.76832,126.3901 523.6792,122.061 517.17504,124.1141 C 515.49856,124.6434 511.98768,122.4734 510.01248,121.0891 C 509.8992,121.1096 509.77792,121.1323 509.71248,121.1517 C 509.77152,125.7251 504.76544,124.5891 500,124.5891 C 499.7176,124.5891 494.94224,128.5891 493.1376,128.5891 C 485.79168,128.5891 488.5312,130.4654 485.71248,136.0141 C 484.36704,138.6627 484.98256,146.3016 488.57504,146.3016 C 491.45744,146.3016 487.1344,153.575 489.71248,154.8642 C 489.94848,154.9821 488.61696,155.9632 488.28752,156.8642 C 488.1456,157.0984 487.9944,157.3197 487.85008,157.5517 C 488.5408,157.6042 489.1784,157.6621 489.71248,157.7267 C 492.45136,158.7573 499.76368,155.857 503.42496,156.5891 C 504.93088,156.8904 504.22272,160.2166 505.71248,160.5891 C 510.04912,161.6733 514.8624,160.3098 514.86256,165.1517 C 514.8624,172.0328 520.77568,172.4019 524.57504,174.3016 C 528.14768,176.088 528.70912,175.9694 533.71248,174.3016 C 535.12384,173.8312 535.6824,176.5365 536.57504,177.7267 C 537.25504,178.6334 549.38144,177.7267 552,177.7267 C 554.21776,177.7267 554.28752,177.5666 554.28752,182.3016 C 554.28752,184.0933 555.06656,183.748 554.28752,186.8642 C 553.15104,191.4099 546.53872,196.0141 553.1376,196.0141 C 555.96144,196.0141 562.05648,197.3357 563.42496,197.7267 C 565.25168,198.2485 561.2304,202.3016 567.42496,202.3016 C 579.07456,202.3016 572.13168,202.0498 574.28752,207.4392 C 576.33728,212.5637 573.01792,212.1939 578.28752,214.3016 C 578.67664,214.4573 580.4608,218.1334 582.28752,218.8642 C 586.45472,220.531 584.88624,220.4274 590.28752,217.7267 C 593.11488,216.313 596.9344,214.6845 600,213.1517 C 600.76192,212.7707 601.5256,212.395 602.28752,212.0141 C 603.49216,211.4118 606.65312,210.8642 608,210.8642 C 608.84096,211.0926 607.1288,209.079 606.86256,208.5891 C 605.51792,205.9002 605.1376,203.363 605.1376,199.4392 C 605.1376,196.269 610.38512,195.8746 613.1376,194.3016 C 613.49136,194.1091 613.8024,193.9491 614.1,193.8141 C 613.62976,192.5448 612.8552,191.9851 612.57504,190.8642 C 611.8688,188.0397 612.57504,179.3192 612.57504,178.3016 C 612.57504,173.7997 609.00576,168.8787 607.42496,165.1517 C 605.5952,160.837 607.21248,156.739 605.1376,152.5891 C 604.32752,150.9693 598.35408,146.2088 600,144.0141 C 605.59344,136.5563 597.1376,142.0707 597.1376,134.3016 C 597.1376,130.4563 596.21344,125.4226 597.1376,121.7267 C 597.91584,118.6136 597.60864,114.8334 598.28752,111.4392 C 599.00592,107.8467 596.52048,105.8355 598.28752,102.3016 C 599.45456,99.9677 593.46416,90.707 592,91.4392 C 592.02656,91.0379 592.09968,90.647 592.15008,90.2515 C 591.55456,90.2864 590.93408,90.3016 590.28752,90.3016 C 589.164,90.3016 585.88992,89.9677 583.02496,89.9642 z";
countyPaths.down = "M 733.15008,205.5517 C 732.64736,205.5746 732.08336,205.675 731.32496,205.8267 C 726.86704,206.7182 725.46016,209.6597 722.62496,210.2267 C 718.3032,211.091 714.9016,213.1517 709.71248,213.1517 C 704.34144,213.1517 704.6528,215.9363 702.28752,218.3016 C 699.59088,220.9982 698.748,224.1139 693.1376,223.1016 C 693.1376,225.4989 693.1376,227.9045 693.1376,230.3016 C 693.13744,231.7598 692.4464,242.1731 688,237.7267 C 686.73392,236.4605 678.86976,234.2354 677.71248,238.8642 C 676.85904,242.2784 673.63328,246.9434 671.42496,249.1517 C 669.63648,250.9403 662.36144,258.267 659.42496,256.5891 C 654.7456,253.9152 651.97648,250.9243 647.42496,252.0141 C 644.10112,252.8101 644.516,252.1352 644.46256,251.7141 C 644.31008,251.8155 644.15632,251.9152 644,252.0141 C 641.78592,253.1782 640.56048,258.316 638.28752,260.5891 C 635.30816,263.5685 631.42496,264.6947 631.42496,269.7267 C 631.42496,274.5694 621.65216,267.7602 624,277.1517 C 624.61328,279.6048 631.34416,284.5083 633.1376,286.3016 C 638.09408,291.2582 635.59392,295.1982 632,300.5891 C 631.70032,301.0386 633.1376,306.941 633.1376,310.3016 C 633.1376,313.8582 632.57504,316.355 632.57504,319.4392 C 632.57504,323.9442 633.32048,324.721 634.28752,328.5891 C 635.11616,331.9038 635.98672,333.7126 637.1376,336.0141 C 638.43488,338.6088 638.74832,339.9978 641.2,342.4642 C 642.40928,342.6043 644.17168,343.7427 646.28752,344.5891 C 648.19232,345.351 650.0952,346.1022 652,346.8642 C 656.2744,348.5739 663.45296,350.8845 666.86256,352.5891 C 672.4264,355.3712 672.388,356.3142 679.06256,356.3141 C 679.44336,356.3141 679.6304,354.3941 680,354.3016 C 683.49072,353.429 686.40848,353.4846 688.57504,349.1517 C 689.98176,346.3381 693.6744,342.0674 695.42496,339.4392 C 698.89632,334.2277 699.36352,331.408 700.1,327.4392 C 700.34576,326.1149 698.47264,322.679 699.42496,321.7267 C 702.75568,318.396 704.5688,317.1642 703.42496,312.5891 C 702.91424,310.5459 702.7416,302.3016 706.28752,302.3016 C 710.392,302.3016 711.15024,302.6149 712,306.8642 C 712.79232,310.8258 712.24112,313.0312 716.57504,310.8642 C 719.75776,309.2728 723.54608,308.9094 725.1376,305.7267 C 727.20048,301.6006 737.14096,305.1309 736.67504,300.8517 C 736.11648,295.7211 746.84928,297.4877 737.27504,292.5141 C 735.42608,291.5538 736.49632,289.0765 733.71248,288.0141 C 722.79136,283.8464 728.46256,285.6493 728.46256,282.2267 C 728.4624,277.8563 730.63584,274.5637 729.71248,270.3016 C 729.7376,270.201 730.8624,267.0266 730.86256,264.5891 C 730.8624,262.0029 727.8848,256.4752 728,256.0141 C 728.54848,253.8206 729.45008,250.2094 729.45008,248.5891 C 729.45008,246.4933 728.044,241.1957 726.86256,240.0141 C 726.2248,239.3765 719.16272,231.5787 720,231.4392 C 722.97072,230.944 725.02576,227.5141 728.0376,227.5141 C 734.03984,227.5141 731.96432,219.1243 735.42496,230.3016 C 736.3904,233.4197 737.71248,235.7522 737.71248,240.0141 C 737.71248,244.8832 741.1376,246.6829 741.1376,250.8642 C 741.1376,254.317 742.28752,256.2814 742.28752,260.0141 C 742.28752,264.2966 737.71248,266.8638 737.71248,268.0141 C 737.71248,271.5658 738.02672,273.2462 738.86256,276.5891 C 739.12128,277.6245 739.65728,284.4115 741.1376,285.1517 C 744.69168,286.9286 747.41456,287.181 748,282.8642 C 748.18048,281.5333 750.8624,277.072 750.86256,274.3016 C 750.86256,269.9509 752.09536,270.0986 753.1376,268.0141 C 754.21328,265.8627 754.16112,262.8197 754.86256,260.0141 C 755.26032,258.423 758.7728,250.8256 755.42496,249.1517 C 751.48032,247.1794 753.53472,244.5397 751.42496,241.7267 C 751.04592,241.2213 749.11024,234.1282 748.57504,233.7267 C 746.03408,231.821 745.47168,227.7608 742.86256,225.1517 C 741.032,223.3211 740,222.1317 740,218.3016 C 740,217.0686 740.01344,208.3083 739.42496,208.0141 C 735.59456,206.0989 734.6576,205.483 733.15008,205.5517 z M 644.1376,349.1891 C 644.324,349.6914 644.62896,350.0837 645.1376,350.3016 C 646.08512,350.7078 647.2008,351.201 648.36256,351.7141 C 648.08032,351.448 647.80016,351.1768 647.52496,350.9016 C 646.64352,350.0202 645.39248,349.567 644.1376,349.1891 z ";
countyPaths.armagh = "M 636.96256,247.1267 C 636.15472,247.1285 635.23536,247.295 634.28752,247.4392 C 634.27088,247.4418 634.24704,247.4208 634.22496,247.4016 C 633.3176,248.4355 632.3496,249.3771 631.42496,250.3016 C 628.21904,253.5077 631.57872,257.7275 626.86256,251.4392 C 624.41936,248.1816 620.2896,245.6933 619.42496,249.1517 C 619.25616,249.8272 610.39536,247.3312 608,249.7267 C 607.0288,250.6979 605.71792,251.2523 604.57504,252.0141 C 602.10576,253.6603 599.8824,251.4549 598.46256,249.6891 C 598.20928,249.8877 597.95472,250.0866 597.71248,250.3016 C 592.92128,252.6973 590.28736,252.3056 590.28752,257.7267 C 590.28752,259.949 591.37568,265.776 589.71248,267.4392 C 587.2704,269.8813 580.85232,272.2962 576.57504,273.1517 C 570.188,274.4291 570.28752,274.6336 570.28752,281.1517 C 570.28752,286.2138 564.66048,288.245 564.86256,289.1517 C 563.96176,294.4691 566.28752,300.3894 566.28752,305.1517 C 566.28752,310.2346 569.38944,309.643 570.86256,312.5891 C 571.90544,314.6754 574.9376,318.7144 575.42496,321.1517 C 575.92784,323.6658 578.99808,329.631 583.42496,326.8642 C 586.8768,324.7067 589.38432,321.961 592.57504,325.1517 C 594.69136,327.268 594.8624,330.4462 594.86256,334.3016 C 594.8624,336.9075 595.42496,340.0837 595.42496,342.3016 C 595.42496,345.5544 594.6432,350.0248 595.42496,353.1517 C 596.01472,355.5102 603.6088,363.8664 604,362.3016 C 604.21152,362.3437 604.40784,362.373 604.6,362.4016 C 604.61072,362.0794 604.68784,361.8427 604.86256,361.7267 C 606.08864,357.9648 610.7376,358.1766 614.86256,358.8642 C 617.36512,359.2813 623.67856,359.6003 624.57504,356.0141 C 625.20208,353.5058 631.42496,350.4842 631.42496,350.3016 C 631.42496,348.0981 638.8456,347.9229 639.47504,346.3016 C 639.44016,346.125 639.42496,345.9314 639.42496,345.7267 C 639.42496,343.0717 640.07184,342.3334 641.2,342.4642 C 638.74832,339.9978 638.43488,338.6088 637.1376,336.0141 C 635.98672,333.7126 635.11616,331.9038 634.28752,328.5891 C 633.32048,324.721 632.57504,323.9442 632.57504,319.4392 C 632.57504,316.355 633.1376,313.8582 633.1376,310.3016 C 633.1376,306.941 631.70032,301.0386 632,300.5891 C 635.59392,295.1982 638.09408,291.2582 633.1376,286.3016 C 631.34416,284.5083 624.61328,279.6048 624,277.1517 C 621.65216,267.7602 631.42496,274.5694 631.42496,269.7267 C 631.42496,264.6947 635.30816,263.5685 638.28752,260.5891 C 640.78576,257.9035 641.28736,253.7838 644.46256,251.7141 C 643.2944,250.613 640.948,253.1243 640,251.4392 C 640,247.9096 638.73968,247.1227 636.96256,247.1267 z ";
// ┌────────────────────────────────────────────────────────────────────┐ \\
// │ Raphaël 2.1.0 - JavaScript Vector Library │ \\
// ├────────────────────────────────────────────────────────────────────┤ \\
// │ Copyright © 2008-2012 Dmitry Baranovskiy (http://raphaeljs.com) │ \\
// │ Copyright © 2008-2012 Sencha Labs (http://sencha.com) │ \\
// ├────────────────────────────────────────────────────────────────────┤ \\
// │ Licensed under the MIT (http://raphaeljs.com/license.html) license.│ \\
// └────────────────────────────────────────────────────────────────────┘ \\
// ┌──────────────────────────────────────────────────────────────────────────────────────┐ \\
// │ Eve 0.3.4 - JavaScript Events Library │ \\
// ├──────────────────────────────────────────────────────────────────────────────────────┤ \\
// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://dmitry.baranovskiy.com/) │ \\
// │ Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license. │ \\
// └──────────────────────────────────────────────────────────────────────────────────────┘ \\
(function (glob) {
var version = "0.3.4",
has = "hasOwnProperty",
separator = /[\.\/]/,
wildcard = "*",
fun = function () {},
numsort = function (a, b) {
return a - b;
},
current_event,
stop,
events = {n: {}},
eve = function (name, scope) {
var e = events,
oldstop = stop,
args = Array.prototype.slice.call(arguments, 2),
listeners = eve.listeners(name),
z = 0,
f = false,
l,
indexed = [],
queue = {},
out = [],
ce = current_event,
errors = [];
current_event = name;
stop = 0;
for (var i = 0, ii = listeners.length; i < ii; i++) if ("zIndex" in listeners[i]) {
indexed.push(listeners[i].zIndex);
if (listeners[i].zIndex < 0) {
queue[listeners[i].zIndex] = listeners[i];
}
}
indexed.sort(numsort);
while (indexed[z] < 0) {
l = queue[indexed[z++]];
out.push(l.apply(scope, args));
if (stop) {
stop = oldstop;
return out;
}
}
for (i = 0; i < ii; i++) {
l = listeners[i];
if ("zIndex" in l) {
if (l.zIndex == indexed[z]) {
out.push(l.apply(scope, args));
if (stop) {
break;
}
do {
z++;
l = queue[indexed[z]];
l && out.push(l.apply(scope, args));
if (stop) {
break;
}
} while (l)
} else {
queue[l.zIndex] = l;
}
} else {
out.push(l.apply(scope, args));
if (stop) {
break;
}
}
}
stop = oldstop;
current_event = ce;
return out.length ? out : null;
};
eve.listeners = function (name) {
var names = name.split(separator),
e = events,
item,
items,
k,
i,
ii,
j,
jj,
nes,
es = [e],
out = [];
for (i = 0, ii = names.length; i < ii; i++) {
nes = [];
for (j = 0, jj = es.length; j < jj; j++) {
e = es[j].n;
items = [e[names[i]], e[wildcard]];
k = 2;
while (k--) {
item = items[k];
if (item) {
nes.push(item);
out = out.concat(item.f || []);
}
}
}
es = nes;
}
return out;
};
eve.on = function (name, f) {
var names = name.split(separator),
e = events;
for (var i = 0, ii = names.length; i < ii; i++) {
e = e.n;
!e[names[i]] && (e[names[i]] = {n: {}});
e = e[names[i]];
}
e.f = e.f || [];
for (i = 0, ii = e.f.length; i < ii; i++) if (e.f[i] == f) {
return fun;
}
e.f.push(f);
return function (zIndex) {
if (+zIndex == +zIndex) {
f.zIndex = +zIndex;
}
};
};
eve.stop = function () {
stop = 1;
};
eve.nt = function (subname) {
if (subname) {
return new RegExp("(?:\\.|\\/|^)" + subname + "(?:\\.|\\/|$)").test(current_event);
}
return current_event;
};
eve.off = eve.unbind = function (name, f) {
var names = name.split(separator),
e,
key,
splice,
i, ii, j, jj,
cur = [events];
for (i = 0, ii = names.length; i < ii; i++) {
for (j = 0; j < cur.length; j += splice.length - 2) {
splice = [j, 1];
e = cur[j].n;
if (names[i] != wildcard) {
if (e[names[i]]) {
splice.push(e[names[i]]);
}
} else {
for (key in e) if (e[has](key)) {
splice.push(e[key]);
}
}
cur.splice.apply(cur, splice);
}
}
for (i = 0, ii = cur.length; i < ii; i++) {
e = cur[i];
while (e.n) {
if (f) {
if (e.f) {
for (j = 0, jj = e.f.length; j < jj; j++) if (e.f[j] == f) {
e.f.splice(j, 1);
break;
}
!e.f.length && delete e.f;
}
for (key in e.n) if (e.n[has](key) && e.n[key].f) {
var funcs = e.n[key].f;
for (j = 0, jj = funcs.length; j < jj; j++) if (funcs[j] == f) {
funcs.splice(j, 1);
break;
}
!funcs.length && delete e.n[key].f;
}
} else {
delete e.f;
for (key in e.n) if (e.n[has](key) && e.n[key].f) {
delete e.n[key].f;
}
}
e = e.n;
}
}
};
eve.once = function (name, f) {
var f2 = function () {
var res = f.apply(this, arguments);
eve.unbind(name, f2);
return res;
};
return eve.on(name, f2);
};
eve.version = version;
eve.toString = function () {
return "You are running Eve " + version;
};
(typeof module != "undefined" && module.exports) ? (module.exports = eve) : (typeof define != "undefined" ? (define("eve", [], function() { return eve; })) : (glob.eve = eve));
})(this);
// ┌─────────────────────────────────────────────────────────────────────┐ \\
// │ "Raphaël 2.1.0" - JavaScript Vector Library │ \\
// ├─────────────────────────────────────────────────────────────────────┤ \\
// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com) │ \\
// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com) │ \\
// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\
// └─────────────────────────────────────────────────────────────────────┘ \\
(function () {
function R(first) {
if (R.is(first, "function")) {
return loaded ? first() : eve.on("raphael.DOMload", first);
} else if (R.is(first, array)) {
return R._engine.create[apply](R, first.splice(0, 3 + R.is(first[0], nu))).add(first);
} else {
var args = Array.prototype.slice.call(arguments, 0);
if (R.is(args[args.length - 1], "function")) {
var f = args.pop();
return loaded ? f.call(R._engine.create[apply](R, args)) : eve.on("raphael.DOMload", function () {
f.call(R._engine.create[apply](R, args));
});
} else {
return R._engine.create[apply](R, arguments);
}
}
}
R.version = "2.1.0";
R.eve = eve;
var loaded,
separator = /[, ]+/,
elements = {circle: 1, rect: 1, path: 1, ellipse: 1, text: 1, image: 1},
formatrg = /\{(\d+)\}/g,
proto = "prototype",
has = "hasOwnProperty",
g = {
doc: document,
win: window
},
oldRaphael = {
was: Object.prototype[has].call(g.win, "Raphael"),
is: g.win.Raphael
},
Paper = function () {
this.ca = this.customAttributes = {};
},
paperproto,
appendChild = "appendChild",
apply = "apply",
concat = "concat",
supportsTouch = "createTouch" in g.doc,
E = "",
S = " ",
Str = String,
split = "split",
events = "click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[split](S),
touchMap = {
mousedown: "touchstart",
mousemove: "touchmove",
mouseup: "touchend"
},
lowerCase = Str.prototype.toLowerCase,
math = Math,
mmax = math.max,
mmin = math.min,
abs = math.abs,
pow = math.pow,
PI = math.PI,
nu = "number",
string = "string",
array = "array",
toString = "toString",
fillString = "fill",
objectToString = Object.prototype.toString,
paper = {},
push = "push",
ISURL = R._ISURL = /^url\(['"]?([^\)]+?)['"]?\)$/i,
colourRegExp = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,
isnan = {"NaN": 1, "Infinity": 1, "-Infinity": 1},
bezierrg = /^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,
round = math.round,
setAttribute = "setAttribute",
toFloat = parseFloat,
toInt = parseInt,
upperCase = Str.prototype.toUpperCase,
availableAttrs = R._availableAttrs = {
"arrow-end": "none",
"arrow-start": "none",
blur: 0,
"clip-rect": "0 0 1e9 1e9",
cursor: "default",
cx: 0,
cy: 0,
fill: "#fff",
"fill-opacity": 1,
font: '10px "Arial"',
"font-family": '"Arial"',
"font-size": "10",
"font-style": "normal",
"font-weight": 400,
gradient: 0,
height: 0,
href: "http://raphaeljs.com/",
"letter-spacing": 0,
opacity: 1,
path: "M0,0",
r: 0,
rx: 0,
ry: 0,
src: "",
stroke: "#000",
"stroke-dasharray": "",
"stroke-linecap": "butt",
"stroke-linejoin": "butt",
"stroke-miterlimit": 0,
"stroke-opacity": 1,
"stroke-width": 1,
target: "_blank",
"text-anchor": "middle",
title: "Raphael",
transform: "",
width: 0,
x: 0,
y: 0
},
availableAnimAttrs = R._availableAnimAttrs = {
blur: nu,
"clip-rect": "csv",
cx: nu,
cy: nu,
fill: "colour",
"fill-opacity": nu,
"font-size": nu,
height: nu,
opacity: nu,
path: "path",
r: nu,
rx: nu,
ry: nu,
stroke: "colour",
"stroke-opacity": nu,
"stroke-width": nu,
transform: "transform",
width: nu,
x: nu,
y: nu
},
whitespace = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]/g,
commaSpaces = /[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/,
hsrg = {hs: 1, rg: 1},
p2s = /,?([achlmqrstvxz]),?/gi,
pathCommand = /([achlmrqstvz])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/ig,
tCommand = /([rstm])[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*)+)/ig,
pathValues = /(-?\d*\.?\d*(?:e[\-+]?\d+)?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,?[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*/ig,
radial_gradient = R._radial_gradient = /^r(?:\(([^,]+?)[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*,[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029]*([^\)]+?)\))?/,
eldata = {},
sortByKey = function (a, b) {
return a.key - b.key;
},
sortByNumber = function (a, b) {
return toFloat(a) - toFloat(b);
},
fun = function () {},
pipe = function (x) {
return x;
},
rectPath = R._rectPath = function (x, y, w, h, r) {
if (r) {
return [["M", x + r, y], ["l", w - r * 2, 0], ["a", r, r, 0, 0, 1, r, r], ["l", 0, h - r * 2], ["a", r, r, 0, 0, 1, -r, r], ["l", r * 2 - w, 0], ["a", r, r, 0, 0, 1, -r, -r], ["l", 0, r * 2 - h], ["a", r, r, 0, 0, 1, r, -r], ["z"]];
}
return [["M", x, y], ["l", w, 0], ["l", 0, h], ["l", -w, 0], ["z"]];
},
ellipsePath = function (x, y, rx, ry) {
if (ry == null) {
ry = rx;
}
return [["M", x, y], ["m", 0, -ry], ["a", rx, ry, 0, 1, 1, 0, 2 * ry], ["a", rx, ry, 0, 1, 1, 0, -2 * ry], ["z"]];
},
getPath = R._getPath = {
path: function (el) {
return el.attr("path");
},
circle: function (el) {
var a = el.attrs;
return ellipsePath(a.cx, a.cy, a.r);
},
ellipse: function (el) {
var a = el.attrs;
return ellipsePath(a.cx, a.cy, a.rx, a.ry);
},
rect: function (el) {
var a = el.attrs;
return rectPath(a.x, a.y, a.width, a.height, a.r);
},
image: function (el) {
var a = el.attrs;
return rectPath(a.x, a.y, a.width, a.height);
},
text: function (el) {
var bbox = el._getBBox();
return rectPath(bbox.x, bbox.y, bbox.width, bbox.height);
}
},
mapPath = R.mapPath = function (path, matrix) {
if (!matrix) {
return path;
}
var x, y, i, j, ii, jj, pathi;
path = path2curve(path);
for (i = 0, ii = path.length; i < ii; i++) {
pathi = path[i];
for (j = 1, jj = pathi.length; j < jj; j += 2) {
x = matrix.x(pathi[j], pathi[j + 1]);
y = matrix.y(pathi[j], pathi[j + 1]);
pathi[j] = x;
pathi[j + 1] = y;
}
}
return path;
};
R._g = g;
R.type = (g.win.SVGAngle || g.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "SVG" : "VML");
if (R.type == "VML") {
var d = g.doc.createElement("div"),
b;
d.innerHTML = '<v:shape adj="1"/>';
b = d.firstChild;
b.style.behavior = "url(#default#VML)";
if (!(b && typeof b.adj == "object")) {
return (R.type = E);
}
d = null;
}
R.svg = !(R.vml = R.type == "VML");
R._Paper = Paper;
R.fn = paperproto = Paper.prototype = R.prototype;
R._id = 0;
R._oid = 0;
R.is = function (o, type) {
type = lowerCase.call(type);
if (type == "finite") {
return !isnan[has](+o);
}
if (type == "array") {
return o instanceof Array;
}
return (type == "null" && o === null) ||
(type == typeof o && o !== null) ||
(type == "object" && o === Object(o)) ||
(type == "array" && Array.isArray && Array.isArray(o)) ||
objectToString.call(o).slice(8, -1).toLowerCase() == type;
};
function clone(obj) {
if (Object(obj) !== obj) {
return obj;
}
var res = new obj.constructor;
for (var key in obj) if (obj[has](key)) {
res[key] = clone(obj[key]);
}
return res;
}
R.angle = function (x1, y1, x2, y2, x3, y3) {
if (x3 == null) {
var x = x1 - x2,
y = y1 - y2;
if (!x && !y) {
return 0;
}
return (180 + math.atan2(-y, -x) * 180 / PI + 360) % 360;
} else {
return R.angle(x1, y1, x3, y3) - R.angle(x2, y2, x3, y3);
}
};
R.rad = function (deg) {
return deg % 360 * PI / 180;
};
R.deg = function (rad) {
return rad * 180 / PI % 360;
};
R.snapTo = function (values, value, tolerance) {
tolerance = R.is(tolerance, "finite") ? tolerance : 10;
if (R.is(values, array)) {
var i = values.length;
while (i--) if (abs(values[i] - value) <= tolerance) {
return values[i];
}
} else {
values = +values;
var rem = value % values;
if (rem < tolerance) {
return value - rem;
}
if (rem > values - tolerance) {
return value - rem + values;
}
}
return value;
};
var createUUID = R.createUUID = (function (uuidRegEx, uuidReplacer) {
return function () {
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(uuidRegEx, uuidReplacer).toUpperCase();
};
})(/[xy]/g, function (c) {
var r = math.random() * 16 | 0,
v = c == "x" ? r : (r & 3 | 8);
return v.toString(16);
});
R.setWindow = function (newwin) {
eve("raphael.setWindow", R, g.win, newwin);
g.win = newwin;
g.doc = g.win.document;
if (R._engine.initWin) {
R._engine.initWin(g.win);
}
};
var toHex = function (color) {
if (R.vml) {
// http://dean.edwards.name/weblog/2009/10/convert-any-colour-value-to-hex-in-msie/
var trim = /^\s+|\s+$/g;
var bod;
try {
var docum = new ActiveXObject("htmlfile");
docum.write("<body>");
docum.close();
bod = docum.body;
} catch(e) {
bod = createPopup().document.body;
}
var range = bod.createTextRange();
toHex = cacher(function (color) {
try {
bod.style.color = Str(color).replace(trim, E);
var value = range.queryCommandValue("ForeColor");
value = ((value & 255) << 16) | (value & 65280) | ((value & 16711680) >>> 16);
return "#" + ("000000" + value.toString(16)).slice(-6);
} catch(e) {
return "none";
}
});
} else {
var i = g.doc.createElement("i");
i.title = "Rapha\xebl Colour Picker";
i.style.display = "none";
g.doc.body.appendChild(i);
toHex = cacher(function (color) {
i.style.color = color;
return g.doc.defaultView.getComputedStyle(i, E).getPropertyValue("color");
});
}
return toHex(color);
},
hsbtoString = function () {
return "hsb(" + [this.h, this.s, this.b] + ")";
},
hsltoString = function () {
return "hsl(" + [this.h, this.s, this.l] + ")";
},
rgbtoString = function () {
return this.hex;
},
prepareRGB = function (r, g, b) {
if (g == null && R.is(r, "object") && "r" in r && "g" in r && "b" in r) {
b = r.b;
g = r.g;
r = r.r;
}
if (g == null && R.is(r, string)) {
var clr = R.getRGB(r);
r = clr.r;
g = clr.g;
b = clr.b;
}
if (r > 1 || g > 1 || b > 1) {
r /= 255;
g /= 255;
b /= 255;
}
return [r, g, b];
},
packageRGB = function (r, g, b, o) {
r *= 255;
g *= 255;
b *= 255;
var rgb = {
r: r,
g: g,
b: b,
hex: R.rgb(r, g, b),
toString: rgbtoString
};
R.is(o, "finite") && (rgb.opacity = o);
return rgb;
};
R.color = function (clr) {
var rgb;
if (R.is(clr, "object") && "h" in clr && "s" in clr && "b" in clr) {
rgb = R.hsb2rgb(clr);
clr.r = rgb.r;
clr.g = rgb.g;
clr.b = rgb.b;
clr.hex = rgb.hex;
} else if (R.is(clr, "object") && "h" in clr && "s" in clr && "l" in clr) {
rgb = R.hsl2rgb(clr);
clr.r = rgb.r;
clr.g = rgb.g;
clr.b = rgb.b;
clr.hex = rgb.hex;
} else {
if (R.is(clr, "string")) {
clr = R.getRGB(clr);
}
if (R.is(clr, "object") && "r" in clr && "g" in clr && "b" in clr) {
rgb = R.rgb2hsl(clr);
clr.h = rgb.h;
clr.s = rgb.s;
clr.l = rgb.l;
rgb = R.rgb2hsb(clr);
clr.v = rgb.b;
} else {
clr = {hex: "none"};
clr.r = clr.g = clr.b = clr.h = clr.s = clr.v = clr.l = -1;
}
}
clr.toString = rgbtoString;
return clr;
};
R.hsb2rgb = function (h, s, v, o) {
if (this.is(h, "object") && "h" in h && "s" in h && "b" in h) {
v = h.b;
s = h.s;
h = h.h;
o = h.o;
}
h *= 360;
var R, G, B, X, C;
h = (h % 360) / 60;
C = v * s;
X = C * (1 - abs(h % 2 - 1));
R = G = B = v - C;
h = ~~h;
R += [C, X, 0, 0, X, C][h];
G += [X, C, C, X, 0, 0][h];
B += [0, 0, X, C, C, X][h];
return packageRGB(R, G, B, o);
};
R.hsl2rgb = function (h, s, l, o) {
if (this.is(h, "object") && "h" in h && "s" in h && "l" in h) {
l = h.l;
s = h.s;
h = h.h;
}
if (h > 1 || s > 1 || l > 1) {
h /= 360;
s /= 100;
l /= 100;
}
h *= 360;
var R, G, B, X, C;
h = (h % 360) / 60;
C = 2 * s * (l < .5 ? l : 1 - l);
X = C * (1 - abs(h % 2 - 1));
R = G = B = l - C / 2;
h = ~~h;
R += [C, X, 0, 0, X, C][h];
G += [X, C, C, X, 0, 0][h];
B += [0, 0, X, C, C, X][h];
return packageRGB(R, G, B, o);
};
R.rgb2hsb = function (r, g, b) {
b = prepareRGB(r, g, b);
r = b[0];
g = b[1];
b = b[2];
var H, S, V, C;
V = mmax(r, g, b);
C = V - mmin(r, g, b);
H = (C == 0 ? null :
V == r ? (g - b) / C :
V == g ? (b - r) / C + 2 :
(r - g) / C + 4
);
H = ((H + 360) % 6) * 60 / 360;
S = C == 0 ? 0 : C / V;
return {h: H, s: S, b: V, toString: hsbtoString};
};
R.rgb2hsl = function (r, g, b) {
b = prepareRGB(r, g, b);
r = b[0];
g = b[1];
b = b[2];
var H, S, L, M, m, C;
M = mmax(r, g, b);
m = mmin(r, g, b);
C = M - m;
H = (C == 0 ? null :
M == r ? (g - b) / C :
M == g ? (b - r) / C + 2 :
(r - g) / C + 4);
H = ((H + 360) % 6) * 60 / 360;
L = (M + m) / 2;
S = (C == 0 ? 0 :
L < .5 ? C / (2 * L) :
C / (2 - 2 * L));
return {h: H, s: S, l: L, toString: hsltoString};
};
R._path2string = function () {
return this.join(",").replace(p2s, "$1");
};
function repush(array, item) {
for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {
return array.push(array.splice(i, 1)[0]);
}
}
function cacher(f, scope, postprocessor) {
function newf() {
var arg = Array.prototype.slice.call(arguments, 0),
args = arg.join("\u2400"),
cache = newf.cache = newf.cache || {},
count = newf.count = newf.count || [];
if (cache[has](args)) {
repush(count, args);
return postprocessor ? postprocessor(cache[args]) : cache[args];
}
count.length >= 1e3 && delete cache[count.shift()];
count.push(args);
cache[args] = f[apply](scope, arg);
return postprocessor ? postprocessor(cache[args]) : cache[args];
}
return newf;
}
var preload = R._preload = function (src, f) {
var img = g.doc.createElement("img");
img.style.cssText = "position:absolute;left:-9999em;top:-9999em";
img.onload = function () {
f.call(this);
this.onload = null;
g.doc.body.removeChild(this);
};
img.onerror = function () {
g.doc.body.removeChild(this);
};
g.doc.body.appendChild(img);
img.src = src;
};
function clrToString() {
return this.hex;
}
R.getRGB = cacher(function (colour) {
if (!colour || !!((colour = Str(colour)).indexOf("-") + 1)) {
return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: clrToString};
}
if (colour == "none") {
return {r: -1, g: -1, b: -1, hex: "none", toString: clrToString};
}
!(hsrg[has](colour.toLowerCase().substring(0, 2)) || colour.charAt() == "#") && (colour = toHex(colour));
var res,
red,
green,
blue,
opacity,
t,
values,
rgb = colour.match(colourRegExp);
if (rgb) {
if (rgb[2]) {
blue = toInt(rgb[2].substring(5), 16);
green = toInt(rgb[2].substring(3, 5), 16);
red = toInt(rgb[2].substring(1, 3), 16);
}
if (rgb[3]) {
blue = toInt((t = rgb[3].charAt(3)) + t, 16);
green = toInt((t = rgb[3].charAt(2)) + t, 16);
red = toInt((t = rgb[3].charAt(1)) + t, 16);
}
if (rgb[4]) {
values = rgb[4][split](commaSpaces);
red = toFloat(values[0]);
values[0].slice(-1) == "%" && (red *= 2.55);
green = toFloat(values[1]);
values[1].slice(-1) == "%" && (green *= 2.55);
blue = toFloat(values[2]);
values[2].slice(-1) == "%" && (blue *= 2.55);
rgb[1].toLowerCase().slice(0, 4) == "rgba" && (opacity = toFloat(values[3]));
values[3] && values[3].slice(-1) == "%" && (opacity /= 100);
}
if (rgb[5]) {
values = rgb[5][split](commaSpaces);
red = toFloat(values[0]);
values[0].slice(-1) == "%" && (red *= 2.55);
green = toFloat(values[1]);
values[1].slice(-1) == "%" && (green *= 2.55);
blue = toFloat(values[2]);
values[2].slice(-1) == "%" && (blue *= 2.55);
(values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360);
rgb[1].toLowerCase().slice(0, 4) == "hsba" && (opacity = toFloat(values[3]));
values[3] && values[3].slice(-1) == "%" && (opacity /= 100);
return R.hsb2rgb(red, green, blue, opacity);
}
if (rgb[6]) {
values = rgb[6][split](commaSpaces);
red = toFloat(values[0]);
values[0].slice(-1) == "%" && (red *= 2.55);
green = toFloat(values[1]);
values[1].slice(-1) == "%" && (green *= 2.55);
blue = toFloat(values[2]);
values[2].slice(-1) == "%" && (blue *= 2.55);
(values[0].slice(-3) == "deg" || values[0].slice(-1) == "\xb0") && (red /= 360);
rgb[1].toLowerCase().slice(0, 4) == "hsla" && (opacity = toFloat(values[3]));
values[3] && values[3].slice(-1) == "%" && (opacity /= 100);
return R.hsl2rgb(red, green, blue, opacity);
}
rgb = {r: red, g: green, b: blue, toString: clrToString};
rgb.hex = "#" + (16777216 | blue | (green << 8) | (red << 16)).toString(16).slice(1);
R.is(opacity, "finite") && (rgb.opacity = opacity);
return rgb;
}
return {r: -1, g: -1, b: -1, hex: "none", error: 1, toString: clrToString};
}, R);
R.hsb = cacher(function (h, s, b) {
return R.hsb2rgb(h, s, b).hex;
});
R.hsl = cacher(function (h, s, l) {
return R.hsl2rgb(h, s, l).hex;
});
R.rgb = cacher(function (r, g, b) {
return "#" + (16777216 | b | (g << 8) | (r << 16)).toString(16).slice(1);
});
R.getColor = function (value) {
var start = this.getColor.start = this.getColor.start || {h: 0, s: 1, b: value || .75},
rgb = this.hsb2rgb(start.h, start.s, start.b);
start.h += .075;
if (start.h > 1) {
start.h = 0;
start.s -= .2;
start.s <= 0 && (this.getColor.start = {h: 0, s: 1, b: start.b});
}
return rgb.hex;
};
R.getColor.reset = function () {
delete this.start;
};
// http://schepers.cc/getting-to-the-point
function catmullRom2bezier(crp, z) {
var d = [];
for (var i = 0, iLen = crp.length; iLen - 2 * !z > i; i += 2) {
var p = [
{x: +crp[i - 2], y: +crp[i - 1]},
{x: +crp[i], y: +crp[i + 1]},
{x: +crp[i + 2], y: +crp[i + 3]},
{x: +crp[i + 4], y: +crp[i + 5]}
];
if (z) {
if (!i) {
p[0] = {x: +crp[iLen - 2], y: +crp[iLen - 1]};
} else if (iLen - 4 == i) {
p[3] = {x: +crp[0], y: +crp[1]};
} else if (iLen - 2 == i) {
p[2] = {x: +crp[0], y: +crp[1]};
p[3] = {x: +crp[2], y: +crp[3]};
}
} else {
if (iLen - 4 == i) {
p[3] = p[2];
} else if (!i) {
p[0] = {x: +crp[i], y: +crp[i + 1]};
}
}
d.push(["C",
(-p[0].x + 6 * p[1].x + p[2].x) / 6,
(-p[0].y + 6 * p[1].y + p[2].y) / 6,
(p[1].x + 6 * p[2].x - p[3].x) / 6,
(p[1].y + 6*p[2].y - p[3].y) / 6,
p[2].x,
p[2].y
]);
}
return d;
}
R.parsePathString = function (pathString) {
if (!pathString) {
return null;
}
var pth = paths(pathString);
if (pth.arr) {
return pathClone(pth.arr);
}
var paramCounts = {a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0},
data = [];
if (R.is(pathString, array) && R.is(pathString[0], array)) { // rough assumption
data = pathClone(pathString);
}
if (!data.length) {
Str(pathString).replace(pathCommand, function (a, b, c) {
var params = [],
name = b.toLowerCase();
c.replace(pathValues, function (a, b) {
b && params.push(+b);
});
if (name == "m" && params.length > 2) {
data.push([b][concat](params.splice(0, 2)));
name = "l";
b = b == "m" ? "l" : "L";
}
if (name == "r") {
data.push([b][concat](params));
} else while (params.length >= paramCounts[name]) {
data.push([b][concat](params.splice(0, paramCounts[name])));
if (!paramCounts[name]) {
break;
}
}
});
}
data.toString = R._path2string;
pth.arr = pathClone(data);
return data;
};
R.parseTransformString = cacher(function (TString) {
if (!TString) {
return null;
}
var paramCounts = {r: 3, s: 4, t: 2, m: 6},
data = [];
if (R.is(TString, array) && R.is(TString[0], array)) { // rough assumption
data = pathClone(TString);
}
if (!data.length) {
Str(TString).replace(tCommand, function (a, b, c) {
var params = [],
name = lowerCase.call(b);
c.replace(pathValues, function (a, b) {
b && params.push(+b);
});
data.push([b][concat](params));
});
}
data.toString = R._path2string;
return data;
});
// PATHS
var paths = function (ps) {
var p = paths.ps = paths.ps || {};
if (p[ps]) {
p[ps].sleep = 100;
} else {
p[ps] = {
sleep: 100
};
}
setTimeout(function () {
for (var key in p) if (p[has](key) && key != ps) {
p[key].sleep--;
!p[key].sleep && delete p[key];
}
});
return p[ps];
};
R.findDotsAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {
var t1 = 1 - t,
t13 = pow(t1, 3),
t12 = pow(t1, 2),
t2 = t * t,
t3 = t2 * t,
x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,
y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y,
mx = p1x + 2 * t * (c1x - p1x) + t2 * (c2x - 2 * c1x + p1x),
my = p1y + 2 * t * (c1y - p1y) + t2 * (c2y - 2 * c1y + p1y),
nx = c1x + 2 * t * (c2x - c1x) + t2 * (p2x - 2 * c2x + c1x),
ny = c1y + 2 * t * (c2y - c1y) + t2 * (p2y - 2 * c2y + c1y),
ax = t1 * p1x + t * c1x,
ay = t1 * p1y + t * c1y,
cx = t1 * c2x + t * p2x,
cy = t1 * c2y + t * p2y,
alpha = (90 - math.atan2(mx - nx, my - ny) * 180 / PI);
(mx > nx || my < ny) && (alpha += 180);
return {
x: x,
y: y,
m: {x: mx, y: my},
n: {x: nx, y: ny},
start: {x: ax, y: ay},
end: {x: cx, y: cy},
alpha: alpha
};
};
R.bezierBBox = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {
if (!R.is(p1x, "array")) {
p1x = [p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y];
}
var bbox = curveDim.apply(null, p1x);
return {
x: bbox.min.x,
y: bbox.min.y,
x2: bbox.max.x,
y2: bbox.max.y,
width: bbox.max.x - bbox.min.x,
height: bbox.max.y - bbox.min.y
};
};
R.isPointInsideBBox = function (bbox, x, y) {
return x >= bbox.x && x <= bbox.x2 && y >= bbox.y && y <= bbox.y2;
};
R.isBBoxIntersect = function (bbox1, bbox2) {
var i = R.isPointInsideBBox;
return i(bbox2, bbox1.x, bbox1.y)
|| i(bbox2, bbox1.x2, bbox1.y)
|| i(bbox2, bbox1.x, bbox1.y2)
|| i(bbox2, bbox1.x2, bbox1.y2)
|| i(bbox1, bbox2.x, bbox2.y)
|| i(bbox1, bbox2.x2, bbox2.y)
|| i(bbox1, bbox2.x, bbox2.y2)
|| i(bbox1, bbox2.x2, bbox2.y2)
|| (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)
&& (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);
};
function base3(t, p1, p2, p3, p4) {
var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,
t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;
return t * t2 - 3 * p1 + 3 * p2;
}
function bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {
if (z == null) {
z = 1;
}
z = z > 1 ? 1 : z < 0 ? 0 : z;
var z2 = z / 2,
n = 12,
Tvalues = [-0.1252,0.1252,-0.3678,0.3678,-0.5873,0.5873,-0.7699,0.7699,-0.9041,0.9041,-0.9816,0.9816],
Cvalues = [0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472],
sum = 0;
for (var i = 0; i < n; i++) {
var ct = z2 * Tvalues[i] + z2,
xbase = base3(ct, x1, x2, x3, x4),
ybase = base3(ct, y1, y2, y3, y4),
comb = xbase * xbase + ybase * ybase;
sum += Cvalues[i] * math.sqrt(comb);
}
return z2 * sum;
}
function getTatLen(x1, y1, x2, y2, x3, y3, x4, y4, ll) {
if (ll < 0 || bezlen(x1, y1, x2, y2, x3, y3, x4, y4) < ll) {
return;
}
var t = 1,
step = t / 2,
t2 = t - step,
l,
e = .01;
l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);
while (abs(l - ll) > e) {
step /= 2;
t2 += (l < ll ? 1 : -1) * step;
l = bezlen(x1, y1, x2, y2, x3, y3, x4, y4, t2);
}
return t2;
}
function intersect(x1, y1, x2, y2, x3, y3, x4, y4) {
if (
mmax(x1, x2) < mmin(x3, x4) ||
mmin(x1, x2) > mmax(x3, x4) ||
mmax(y1, y2) < mmin(y3, y4) ||
mmin(y1, y2) > mmax(y3, y4)
) {
return;
}
var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),
ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),
denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);
if (!denominator) {
return;
}
var px = nx / denominator,
py = ny / denominator,
px2 = +px.toFixed(2),
py2 = +py.toFixed(2);
if (
px2 < +mmin(x1, x2).toFixed(2) ||
px2 > +mmax(x1, x2).toFixed(2) ||
px2 < +mmin(x3, x4).toFixed(2) ||
px2 > +mmax(x3, x4).toFixed(2) ||
py2 < +mmin(y1, y2).toFixed(2) ||
py2 > +mmax(y1, y2).toFixed(2) ||
py2 < +mmin(y3, y4).toFixed(2) ||
py2 > +mmax(y3, y4).toFixed(2)
) {
return;
}
return {x: px, y: py};
}
function inter(bez1, bez2) {
return interHelper(bez1, bez2);
}
function interCount(bez1, bez2) {
return interHelper(bez1, bez2, 1);
}
function interHelper(bez1, bez2, justCount) {
var bbox1 = R.bezierBBox(bez1),
bbox2 = R.bezierBBox(bez2);
if (!R.isBBoxIntersect(bbox1, bbox2)) {
return justCount ? 0 : [];
}
var l1 = bezlen.apply(0, bez1),
l2 = bezlen.apply(0, bez2),
n1 = ~~(l1 / 5),
n2 = ~~(l2 / 5),
dots1 = [],
dots2 = [],
xy = {},
res = justCount ? 0 : [];
for (var i = 0; i < n1 + 1; i++) {
var p = R.findDotsAtSegment.apply(R, bez1.concat(i / n1));
dots1.push({x: p.x, y: p.y, t: i / n1});
}
for (i = 0; i < n2 + 1; i++) {
p = R.findDotsAtSegment.apply(R, bez2.concat(i / n2));
dots2.push({x: p.x, y: p.y, t: i / n2});
}
for (i = 0; i < n1; i++) {
for (var j = 0; j < n2; j++) {
var di = dots1[i],
di1 = dots1[i + 1],
dj = dots2[j],
dj1 = dots2[j + 1],
ci = abs(di1.x - di.x) < .001 ? "y" : "x",
cj = abs(dj1.x - dj.x) < .001 ? "y" : "x",
is = intersect(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y);
if (is) {
if (xy[is.x.toFixed(4)] == is.y.toFixed(4)) {
continue;
}
xy[is.x.toFixed(4)] = is.y.toFixed(4);
var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),
t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);
if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1) {
if (justCount) {
res++;
} else {
res.push({
x: is.x,
y: is.y,
t1: t1,
t2: t2
});
}
}
}
}
}
return res;
}
R.pathIntersection = function (path1, path2) {
return interPathHelper(path1, path2);
};
R.pathIntersectionNumber = function (path1, path2) {
return interPathHelper(path1, path2, 1);
};
function interPathHelper(path1, path2, justCount) {
path1 = R._path2curve(path1);
path2 = R._path2curve(path2);
var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,
res = justCount ? 0 : [];
for (var i = 0, ii = path1.length; i < ii; i++) {
var pi = path1[i];
if (pi[0] == "M") {
x1 = x1m = pi[1];
y1 = y1m = pi[2];
} else {
if (pi[0] == "C") {
bez1 = [x1, y1].concat(pi.slice(1));
x1 = bez1[6];
y1 = bez1[7];
} else {
bez1 = [x1, y1, x1, y1, x1m, y1m, x1m, y1m];
x1 = x1m;
y1 = y1m;
}
for (var j = 0, jj = path2.length; j < jj; j++) {
var pj = path2[j];
if (pj[0] == "M") {
x2 = x2m = pj[1];
y2 = y2m = pj[2];
} else {
if (pj[0] == "C") {
bez2 = [x2, y2].concat(pj.slice(1));
x2 = bez2[6];
y2 = bez2[7];
} else {
bez2 = [x2, y2, x2, y2, x2m, y2m, x2m, y2m];
x2 = x2m;
y2 = y2m;
}
var intr = interHelper(bez1, bez2, justCount);
if (justCount) {
res += intr;
} else {
for (var k = 0, kk = intr.length; k < kk; k++) {
intr[k].segment1 = i;
intr[k].segment2 = j;
intr[k].bez1 = bez1;
intr[k].bez2 = bez2;
}
res = res.concat(intr);
}
}
}
}
}
return res;
}
R.isPointInsidePath = function (path, x, y) {
var bbox = R.pathBBox(path);
return R.isPointInsideBBox(bbox, x, y) &&
interPathHelper(path, [["M", x, y], ["H", bbox.x2 + 10]], 1) % 2 == 1;
};
R._removedFactory = function (methodname) {
return function () {
eve("raphael.log", null, "Rapha\xebl: you are calling to method \u201c" + methodname + "\u201d of removed object", methodname);
};
};
var pathDimensions = R.pathBBox = function (path) {
var pth = paths(path);
if (pth.bbox) {
return pth.bbox;
}
if (!path) {
return {x: 0, y: 0, width: 0, height: 0, x2: 0, y2: 0};
}
path = path2curve(path);
var x = 0,
y = 0,
X = [],
Y = [],
p;
for (var i = 0, ii = path.length; i < ii; i++) {
p = path[i];
if (p[0] == "M") {
x = p[1];
y = p[2];
X.push(x);
Y.push(y);
} else {
var dim = curveDim(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);
X = X[concat](dim.min.x, dim.max.x);
Y = Y[concat](dim.min.y, dim.max.y);
x = p[5];
y = p[6];
}
}
var xmin = mmin[apply](0, X),
ymin = mmin[apply](0, Y),
xmax = mmax[apply](0, X),
ymax = mmax[apply](0, Y),
bb = {
x: xmin,
y: ymin,
x2: xmax,
y2: ymax,
width: xmax - xmin,
height: ymax - ymin
};
pth.bbox = clone(bb);
return bb;
},
pathClone = function (pathArray) {
var res = clone(pathArray);
res.toString = R._path2string;
return res;
},
pathToRelative = R._pathToRelative = function (pathArray) {
var pth = paths(pathArray);
if (pth.rel) {
return pathClone(pth.rel);
}
if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption
pathArray = R.parsePathString(pathArray);
}
var res = [],
x = 0,
y = 0,
mx = 0,
my = 0,
start = 0;
if (pathArray[0][0] == "M") {
x = pathArray[0][1];
y = pathArray[0][2];
mx = x;
my = y;
start++;
res.push(["M", x, y]);
}
for (var i = start, ii = pathArray.length; i < ii; i++) {
var r = res[i] = [],
pa = pathArray[i];
if (pa[0] != lowerCase.call(pa[0])) {
r[0] = lowerCase.call(pa[0]);
switch (r[0]) {
case "a":
r[1] = pa[1];
r[2] = pa[2];
r[3] = pa[3];
r[4] = pa[4];
r[5] = pa[5];
r[6] = +(pa[6] - x).toFixed(3);
r[7] = +(pa[7] - y).toFixed(3);
break;
case "v":
r[1] = +(pa[1] - y).toFixed(3);
break;
case "m":
mx = pa[1];
my = pa[2];
default:
for (var j = 1, jj = pa.length; j < jj; j++) {
r[j] = +(pa[j] - ((j % 2) ? x : y)).toFixed(3);
}
}
} else {
r = res[i] = [];
if (pa[0] == "m") {
mx = pa[1] + x;
my = pa[2] + y;
}
for (var k = 0, kk = pa.length; k < kk; k++) {
res[i][k] = pa[k];
}
}
var len = res[i].length;
switch (res[i][0]) {
case "z":
x = mx;
y = my;
break;
case "h":
x += +res[i][len - 1];
break;
case "v":
y += +res[i][len - 1];
break;
default:
x += +res[i][len - 2];
y += +res[i][len - 1];
}
}
res.toString = R._path2string;
pth.rel = pathClone(res);
return res;
},
pathToAbsolute = R._pathToAbsolute = function (pathArray) {
var pth = paths(pathArray);
if (pth.abs) {
return pathClone(pth.abs);
}
if (!R.is(pathArray, array) || !R.is(pathArray && pathArray[0], array)) { // rough assumption
pathArray = R.parsePathString(pathArray);
}
if (!pathArray || !pathArray.length) {
return [["M", 0, 0]];
}
var res = [],
x = 0,
y = 0,
mx = 0,
my = 0,
start = 0;
if (pathArray[0][0] == "M") {
x = +pathArray[0][1];
y = +pathArray[0][2];
mx = x;
my = y;
start++;
res[0] = ["M", x, y];
}
var crz = pathArray.length == 3 && pathArray[0][0] == "M" && pathArray[1][0].toUpperCase() == "R" && pathArray[2][0].toUpperCase() == "Z";
for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {
res.push(r = []);
pa = pathArray[i];
if (pa[0] != upperCase.call(pa[0])) {
r[0] = upperCase.call(pa[0]);
switch (r[0]) {
case "A":
r[1] = pa[1];
r[2] = pa[2];
r[3] = pa[3];
r[4] = pa[4];
r[5] = pa[5];
r[6] = +(pa[6] + x);
r[7] = +(pa[7] + y);
break;
case "V":
r[1] = +pa[1] + y;
break;
case "H":
r[1] = +pa[1] + x;
break;
case "R":
var dots = [x, y][concat](pa.slice(1));
for (var j = 2, jj = dots.length; j < jj; j++) {
dots[j] = +dots[j] + x;
dots[++j] = +dots[j] + y;
}
res.pop();
res = res[concat](catmullRom2bezier(dots, crz));
break;
case "M":
mx = +pa[1] + x;
my = +pa[2] + y;
default:
for (j = 1, jj = pa.length; j < jj; j++) {
r[j] = +pa[j] + ((j % 2) ? x : y);
}
}
} else if (pa[0] == "R") {
dots = [x, y][concat](pa.slice(1));
res.pop();
res = res[concat](catmullRom2bezier(dots, crz));
r = ["R"][concat](pa.slice(-2));
} else {
for (var k = 0, kk = pa.length; k < kk; k++) {
r[k] = pa[k];
}
}
switch (r[0]) {
case "Z":
x = mx;
y = my;
break;
case "H":
x = r[1];
break;
case "V":
y = r[1];
break;
case "M":
mx = r[r.length - 2];
my = r[r.length - 1];
default:
x = r[r.length - 2];
y = r[r.length - 1];
}
}
res.toString = R._path2string;
pth.abs = pathClone(res);
return res;
},
l2c = function (x1, y1, x2, y2) {
return [x1, y1, x2, y2, x2, y2];
},
q2c = function (x1, y1, ax, ay, x2, y2) {
var _13 = 1 / 3,
_23 = 2 / 3;
return [
_13 * x1 + _23 * ax,
_13 * y1 + _23 * ay,
_13 * x2 + _23 * ax,
_13 * y2 + _23 * ay,
x2,
y2
];
},
a2c = function (x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {
// for more information of where this math came from visit:
// http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes
var _120 = PI * 120 / 180,
rad = PI / 180 * (+angle || 0),
res = [],
xy,
rotate = cacher(function (x, y, rad) {
var X = x * math.cos(rad) - y * math.sin(rad),
Y = x * math.sin(rad) + y * math.cos(rad);
return {x: X, y: Y};
});
if (!recursive) {
xy = rotate(x1, y1, -rad);
x1 = xy.x;
y1 = xy.y;
xy = rotate(x2, y2, -rad);
x2 = xy.x;
y2 = xy.y;
var cos = math.cos(PI / 180 * angle),
sin = math.sin(PI / 180 * angle),
x = (x1 - x2) / 2,
y = (y1 - y2) / 2;
var h = (x * x) / (rx * rx) + (y * y) / (ry * ry);
if (h > 1) {
h = math.sqrt(h);
rx = h * rx;
ry = h * ry;
}
var rx2 = rx * rx,
ry2 = ry * ry,
k = (large_arc_flag == sweep_flag ? -1 : 1) *
math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),
cx = k * rx * y / ry + (x1 + x2) / 2,
cy = k * -ry * x / rx + (y1 + y2) / 2,
f1 = math.asin(((y1 - cy) / ry).toFixed(9)),
f2 = math.asin(((y2 - cy) / ry).toFixed(9));
f1 = x1 < cx ? PI - f1 : f1;
f2 = x2 < cx ? PI - f2 : f2;
f1 < 0 && (f1 = PI * 2 + f1);
f2 < 0 && (f2 = PI * 2 + f2);
if (sweep_flag && f1 > f2) {
f1 = f1 - PI * 2;
}
if (!sweep_flag && f2 > f1) {
f2 = f2 - PI * 2;
}
} else {
f1 = recursive[0];
f2 = recursive[1];
cx = recursive[2];
cy = recursive[3];
}
var df = f2 - f1;
if (abs(df) > _120) {
var f2old = f2,
x2old = x2,
y2old = y2;
f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);
x2 = cx + rx * math.cos(f2);
y2 = cy + ry * math.sin(f2);
res = a2c(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);
}
df = f2 - f1;
var c1 = math.cos(f1),
s1 = math.sin(f1),
c2 = math.cos(f2),
s2 = math.sin(f2),
t = math.tan(df / 4),
hx = 4 / 3 * rx * t,
hy = 4 / 3 * ry * t,
m1 = [x1, y1],
m2 = [x1 + hx * s1, y1 - hy * c1],
m3 = [x2 + hx * s2, y2 - hy * c2],
m4 = [x2, y2];
m2[0] = 2 * m1[0] - m2[0];
m2[1] = 2 * m1[1] - m2[1];
if (recursive) {
return [m2, m3, m4][concat](res);
} else {
res = [m2, m3, m4][concat](res).join()[split](",");
var newres = [];
for (var i = 0, ii = res.length; i < ii; i++) {
newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;
}
return newres;
}
},
findDotAtSegment = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {
var t1 = 1 - t;
return {
x: pow(t1, 3) * p1x + pow(t1, 2) * 3 * t * c1x + t1 * 3 * t * t * c2x + pow(t, 3) * p2x,
y: pow(t1, 3) * p1y + pow(t1, 2) * 3 * t * c1y + t1 * 3 * t * t * c2y + pow(t, 3) * p2y
};
},
curveDim = cacher(function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y) {
var a = (c2x - 2 * c1x + p1x) - (p2x - 2 * c2x + c1x),
b = 2 * (c1x - p1x) - 2 * (c2x - c1x),
c = p1x - c1x,
t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a,
t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a,
y = [p1y, p2y],
x = [p1x, p2x],
dot;
abs(t1) > "1e12" && (t1 = .5);
abs(t2) > "1e12" && (t2 = .5);
if (t1 > 0 && t1 < 1) {
dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);
x.push(dot.x);
y.push(dot.y);
}
if (t2 > 0 && t2 < 1) {
dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);
x.push(dot.x);
y.push(dot.y);
}
a = (c2y - 2 * c1y + p1y) - (p2y - 2 * c2y + c1y);
b = 2 * (c1y - p1y) - 2 * (c2y - c1y);
c = p1y - c1y;
t1 = (-b + math.sqrt(b * b - 4 * a * c)) / 2 / a;
t2 = (-b - math.sqrt(b * b - 4 * a * c)) / 2 / a;
abs(t1) > "1e12" && (t1 = .5);
abs(t2) > "1e12" && (t2 = .5);
if (t1 > 0 && t1 < 1) {
dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t1);
x.push(dot.x);
y.push(dot.y);
}
if (t2 > 0 && t2 < 1) {
dot = findDotAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t2);
x.push(dot.x);
y.push(dot.y);
}
return {
min: {x: mmin[apply](0, x), y: mmin[apply](0, y)},
max: {x: mmax[apply](0, x), y: mmax[apply](0, y)}
};
}),
path2curve = R._path2curve = cacher(function (path, path2) {
var pth = !path2 && paths(path);
if (!path2 && pth.curve) {
return pathClone(pth.curve);
}
var p = pathToAbsolute(path),
p2 = path2 && pathToAbsolute(path2),
attrs = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},
attrs2 = {x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null},
processPath = function (path, d) {
var nx, ny;
if (!path) {
return ["C", d.x, d.y, d.x, d.y, d.x, d.y];
}
!(path[0] in {T:1, Q:1}) && (d.qx = d.qy = null);
switch (path[0]) {
case "M":
d.X = path[1];
d.Y = path[2];
break;
case "A":
path = ["C"][concat](a2c[apply](0, [d.x, d.y][concat](path.slice(1))));
break;
case "S":
nx = d.x + (d.x - (d.bx || d.x));
ny = d.y + (d.y - (d.by || d.y));
path = ["C", nx, ny][concat](path.slice(1));
break;
case "T":
d.qx = d.x + (d.x - (d.qx || d.x));
d.qy = d.y + (d.y - (d.qy || d.y));
path = ["C"][concat](q2c(d.x, d.y, d.qx, d.qy, path[1], path[2]));
break;
case "Q":
d.qx = path[1];
d.qy = path[2];
path = ["C"][concat](q2c(d.x, d.y, path[1], path[2], path[3], path[4]));
break;
case "L":
path = ["C"][concat](l2c(d.x, d.y, path[1], path[2]));
break;
case "H":
path = ["C"][concat](l2c(d.x, d.y, path[1], d.y));
break;
case "V":
path = ["C"][concat](l2c(d.x, d.y, d.x, path[1]));
break;
case "Z":
path = ["C"][concat](l2c(d.x, d.y, d.X, d.Y));
break;
}
return path;
},
fixArc = function (pp, i) {
if (pp[i].length > 7) {
pp[i].shift();
var pi = pp[i];
while (pi.length) {
pp.splice(i++, 0, ["C"][concat](pi.splice(0, 6)));
}
pp.splice(i, 1);
ii = mmax(p.length, p2 && p2.length || 0);
}
},
fixM = function (path1, path2, a1, a2, i) {
if (path1 && path2 && path1[i][0] == "M" && path2[i][0] != "M") {
path2.splice(i, 0, ["M", a2.x, a2.y]);
a1.bx = 0;
a1.by = 0;
a1.x = path1[i][1];
a1.y = path1[i][2];
ii = mmax(p.length, p2 && p2.length || 0);
}
};
for (var i = 0, ii = mmax(p.length, p2 && p2.length || 0); i < ii; i++) {
p[i] = processPath(p[i], attrs);
fixArc(p, i);
p2 && (p2[i] = processPath(p2[i], attrs2));
p2 && fixArc(p2, i);
fixM(p, p2, attrs, attrs2, i);
fixM(p2, p, attrs2, attrs, i);
var seg = p[i],
seg2 = p2 && p2[i],
seglen = seg.length,
seg2len = p2 && seg2.length;
attrs.x = seg[seglen - 2];
attrs.y = seg[seglen - 1];
attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;
attrs.by = toFloat(seg[seglen - 3]) || attrs.y;
attrs2.bx = p2 && (toFloat(seg2[seg2len - 4]) || attrs2.x);
attrs2.by = p2 && (toFloat(seg2[seg2len - 3]) || attrs2.y);
attrs2.x = p2 && seg2[seg2len - 2];
attrs2.y = p2 && seg2[seg2len - 1];
}
if (!p2) {
pth.curve = pathClone(p);
}
return p2 ? [p, p2] : p;
}, null, pathClone),
parseDots = R._parseDots = cacher(function (gradient) {
var dots = [];
for (var i = 0, ii = gradient.length; i < ii; i++) {
var dot = {},
par = gradient[i].match(/^([^:]*):?([\d\.]*)/);
dot.color = R.getRGB(par[1]);
if (dot.color.error) {
return null;
}
dot.color = dot.color.hex;
par[2] && (dot.offset = par[2] + "%");
dots.push(dot);
}
for (i = 1, ii = dots.length - 1; i < ii; i++) {
if (!dots[i].offset) {
var start = toFloat(dots[i - 1].offset || 0),
end = 0;
for (var j = i + 1; j < ii; j++) {
if (dots[j].offset) {
end = dots[j].offset;
break;
}
}
if (!end) {
end = 100;
j = ii;
}
end = toFloat(end);
var d = (end - start) / (j - i + 1);
for (; i < j; i++) {
start += d;
dots[i].offset = start + "%";
}
}
}
return dots;
}),
tear = R._tear = function (el, paper) {
el == paper.top && (paper.top = el.prev);
el == paper.bottom && (paper.bottom = el.next);
el.next && (el.next.prev = el.prev);
el.prev && (el.prev.next = el.next);
},
tofront = R._tofront = function (el, paper) {
if (paper.top === el) {
return;
}
tear(el, paper);
el.next = null;
el.prev = paper.top;
paper.top.next = el;
paper.top = el;
},
toback = R._toback = function (el, paper) {
if (paper.bottom === el) {
return;
}
tear(el, paper);
el.next = paper.bottom;
el.prev = null;
paper.bottom.prev = el;
paper.bottom = el;
},
insertafter = R._insertafter = function (el, el2, paper) {
tear(el, paper);
el2 == paper.top && (paper.top = el);
el2.next && (el2.next.prev = el);
el.next = el2.next;
el.prev = el2;
el2.next = el;
},
insertbefore = R._insertbefore = function (el, el2, paper) {
tear(el, paper);
el2 == paper.bottom && (paper.bottom = el);
el2.prev && (el2.prev.next = el);
el.prev = el2.prev;
el2.prev = el;
el.next = el2;
},
toMatrix = R.toMatrix = function (path, transform) {
var bb = pathDimensions(path),
el = {
_: {
transform: E
},
getBBox: function () {
return bb;
}
};
extractTransform(el, transform);
return el.matrix;
},
transformPath = R.transformPath = function (path, transform) {
return mapPath(path, toMatrix(path, transform));
},
extractTransform = R._extractTransform = function (el, tstr) {
if (tstr == null) {
return el._.transform;
}
tstr = Str(tstr).replace(/\.{3}|\u2026/g, el._.transform || E);
var tdata = R.parseTransformString(tstr),
deg = 0,
dx = 0,
dy = 0,
sx = 1,
sy = 1,
_ = el._,
m = new Matrix;
_.transform = tdata || [];
if (tdata) {
for (var i = 0, ii = tdata.length; i < ii; i++) {
var t = tdata[i],
tlen = t.length,
command = Str(t[0]).toLowerCase(),
absolute = t[0] != command,
inver = absolute ? m.invert() : 0,
x1,
y1,
x2,
y2,
bb;
if (command == "t" && tlen == 3) {
if (absolute) {
x1 = inver.x(0, 0);
y1 = inver.y(0, 0);
x2 = inver.x(t[1], t[2]);
y2 = inver.y(t[1], t[2]);
m.translate(x2 - x1, y2 - y1);
} else {
m.translate(t[1], t[2]);
}
} else if (command == "r") {
if (tlen == 2) {
bb = bb || el.getBBox(1);
m.rotate(t[1], bb.x + bb.width / 2, bb.y + bb.height / 2);
deg += t[1];
} else if (tlen == 4) {
if (absolute) {
x2 = inver.x(t[2], t[3]);
y2 = inver.y(t[2], t[3]);
m.rotate(t[1], x2, y2);
} else {
m.rotate(t[1], t[2], t[3]);
}
deg += t[1];
}
} else if (command == "s") {
if (tlen == 2 || tlen == 3) {
bb = bb || el.getBBox(1);
m.scale(t[1], t[tlen - 1], bb.x + bb.width / 2, bb.y + bb.height / 2);
sx *= t[1];
sy *= t[tlen - 1];
} else if (tlen == 5) {
if (absolute) {
x2 = inver.x(t[3], t[4]);
y2 = inver.y(t[3], t[4]);
m.scale(t[1], t[2], x2, y2);
} else {
m.scale(t[1], t[2], t[3], t[4]);
}
sx *= t[1];
sy *= t[2];
}
} else if (command == "m" && tlen == 7) {
m.add(t[1], t[2], t[3], t[4], t[5], t[6]);
}
_.dirtyT = 1;
el.matrix = m;
}
}
el.matrix = m;
_.sx = sx;
_.sy = sy;
_.deg = deg;
_.dx = dx = m.e;
_.dy = dy = m.f;
if (sx == 1 && sy == 1 && !deg && _.bbox) {
_.bbox.x += +dx;
_.bbox.y += +dy;
} else {
_.dirtyT = 1;
}
},
getEmpty = function (item) {
var l = item[0];
switch (l.toLowerCase()) {
case "t": return [l, 0, 0];
case "m": return [l, 1, 0, 0, 1, 0, 0];
case "r": if (item.length == 4) {
return [l, 0, item[2], item[3]];
} else {
return [l, 0];
}
case "s": if (item.length == 5) {
return [l, 1, 1, item[3], item[4]];
} else if (item.length == 3) {
return [l, 1, 1];
} else {
return [l, 1];
}
}
},
equaliseTransform = R._equaliseTransform = function (t1, t2) {
t2 = Str(t2).replace(/\.{3}|\u2026/g, t1);
t1 = R.parseTransformString(t1) || [];
t2 = R.parseTransformString(t2) || [];
var maxlength = mmax(t1.length, t2.length),
from = [],
to = [],
i = 0, j, jj,
tt1, tt2;
for (; i < maxlength; i++) {
tt1 = t1[i] || getEmpty(t2[i]);
tt2 = t2[i] || getEmpty(tt1);
if ((tt1[0] != tt2[0]) ||
(tt1[0].toLowerCase() == "r" && (tt1[2] != tt2[2] || tt1[3] != tt2[3])) ||
(tt1[0].toLowerCase() == "s" && (tt1[3] != tt2[3] || tt1[4] != tt2[4]))
) {
return;
}
from[i] = [];
to[i] = [];
for (j = 0, jj = mmax(tt1.length, tt2.length); j < jj; j++) {
j in tt1 && (from[i][j] = tt1[j]);
j in tt2 && (to[i][j] = tt2[j]);
}
}
return {
from: from,
to: to
};
};
R._getContainer = function (x, y, w, h) {
var container;
container = h == null && !R.is(x, "object") ? g.doc.getElementById(x) : x;
if (container == null) {
return;
}
if (container.tagName) {
if (y == null) {
return {
container: container,
width: container.style.pixelWidth || container.offsetWidth,
height: container.style.pixelHeight || container.offsetHeight
};
} else {
return {
container: container,
width: y,
height: w
};
}
}
return {
container: 1,
x: x,
y: y,
width: w,
height: h
};
};
R.pathToRelative = pathToRelative;
R._engine = {};
R.path2curve = path2curve;
R.matrix = function (a, b, c, d, e, f) {
return new Matrix(a, b, c, d, e, f);
};
function Matrix(a, b, c, d, e, f) {
if (a != null) {
this.a = +a;
this.b = +b;
this.c = +c;
this.d = +d;
this.e = +e;
this.f = +f;
} else {
this.a = 1;
this.b = 0;
this.c = 0;
this.d = 1;
this.e = 0;
this.f = 0;
}
}
(function (matrixproto) {
matrixproto.add = function (a, b, c, d, e, f) {
var out = [[], [], []],
m = [[this.a, this.c, this.e], [this.b, this.d, this.f], [0, 0, 1]],
matrix = [[a, c, e], [b, d, f], [0, 0, 1]],
x, y, z, res;
if (a && a instanceof Matrix) {
matrix = [[a.a, a.c, a.e], [a.b, a.d, a.f], [0, 0, 1]];
}
for (x = 0; x < 3; x++) {
for (y = 0; y < 3; y++) {
res = 0;
for (z = 0; z < 3; z++) {
res += m[x][z] * matrix[z][y];
}
out[x][y] = res;
}
}
this.a = out[0][0];
this.b = out[1][0];
this.c = out[0][1];
this.d = out[1][1];
this.e = out[0][2];
this.f = out[1][2];
};
matrixproto.invert = function () {
var me = this,
x = me.a * me.d - me.b * me.c;
return new Matrix(me.d / x, -me.b / x, -me.c / x, me.a / x, (me.c * me.f - me.d * me.e) / x, (me.b * me.e - me.a * me.f) / x);
};
matrixproto.clone = function () {
return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);
};
matrixproto.translate = function (x, y) {
this.add(1, 0, 0, 1, x, y);
};
matrixproto.scale = function (x, y, cx, cy) {
y == null && (y = x);
(cx || cy) && this.add(1, 0, 0, 1, cx, cy);
this.add(x, 0, 0, y, 0, 0);
(cx || cy) && this.add(1, 0, 0, 1, -cx, -cy);
};
matrixproto.rotate = function (a, x, y) {
a = R.rad(a);
x = x || 0;
y = y || 0;
var cos = +math.cos(a).toFixed(9),
sin = +math.sin(a).toFixed(9);
this.add(cos, sin, -sin, cos, x, y);
this.add(1, 0, 0, 1, -x, -y);
};
matrixproto.x = function (x, y) {
return x * this.a + y * this.c + this.e;
};
matrixproto.y = function (x, y) {
return x * this.b + y * this.d + this.f;
};
matrixproto.get = function (i) {
return +this[Str.fromCharCode(97 + i)].toFixed(4);
};
matrixproto.toString = function () {
return R.svg ?
"matrix(" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)].join() + ")" :
[this.get(0), this.get(2), this.get(1), this.get(3), 0, 0].join();
};
matrixproto.toFilter = function () {
return "progid:DXImageTransform.Microsoft.Matrix(M11=" + this.get(0) +
", M12=" + this.get(2) + ", M21=" + this.get(1) + ", M22=" + this.get(3) +
", Dx=" + this.get(4) + ", Dy=" + this.get(5) + ", sizingmethod='auto expand')";
};
matrixproto.offset = function () {
return [this.e.toFixed(4), this.f.toFixed(4)];
};
function norm(a) {
return a[0] * a[0] + a[1] * a[1];
}
function normalize(a) {
var mag = math.sqrt(norm(a));
a[0] && (a[0] /= mag);
a[1] && (a[1] /= mag);
}
matrixproto.split = function () {
var out = {};
// translation
out.dx = this.e;
out.dy = this.f;
// scale and shear
var row = [[this.a, this.c], [this.b, this.d]];
out.scalex = math.sqrt(norm(row[0]));
normalize(row[0]);
out.shear = row[0][0] * row[1][0] + row[0][1] * row[1][1];
row[1] = [row[1][0] - row[0][0] * out.shear, row[1][1] - row[0][1] * out.shear];
out.scaley = math.sqrt(norm(row[1]));
normalize(row[1]);
out.shear /= out.scaley;
// rotation
var sin = -row[0][1],
cos = row[1][1];
if (cos < 0) {
out.rotate = R.deg(math.acos(cos));
if (sin < 0) {
out.rotate = 360 - out.rotate;
}
} else {
out.rotate = R.deg(math.asin(sin));
}
out.isSimple = !+out.shear.toFixed(9) && (out.scalex.toFixed(9) == out.scaley.toFixed(9) || !out.rotate);
out.isSuperSimple = !+out.shear.toFixed(9) && out.scalex.toFixed(9) == out.scaley.toFixed(9) && !out.rotate;
out.noRotation = !+out.shear.toFixed(9) && !out.rotate;
return out;
};
matrixproto.toTransformString = function (shorter) {
var s = shorter || this[split]();
if (s.isSimple) {
s.scalex = +s.scalex.toFixed(4);
s.scaley = +s.scaley.toFixed(4);
s.rotate = +s.rotate.toFixed(4);
return (s.dx || s.dy ? "t" + [s.dx, s.dy] : E) +
(s.scalex != 1 || s.scaley != 1 ? "s" + [s.scalex, s.scaley, 0, 0] : E) +
(s.rotate ? "r" + [s.rotate, 0, 0] : E);
} else {
return "m" + [this.get(0), this.get(1), this.get(2), this.get(3), this.get(4), this.get(5)];
}
};
})(Matrix.prototype);
// WebKit rendering bug workaround method
var version = navigator.userAgent.match(/Version\/(.*?)\s/) || navigator.userAgent.match(/Chrome\/(\d+)/);
if ((navigator.vendor == "Apple Computer, Inc.") && (version && version[1] < 4 || navigator.platform.slice(0, 2) == "iP") ||
(navigator.vendor == "Google Inc." && version && version[1] < 8)) {
paperproto.safari = function () {
var rect = this.rect(-99, -99, this.width + 99, this.height + 99).attr({stroke: "none"});
setTimeout(function () {rect.remove();});
};
} else {
paperproto.safari = fun;
}
var preventDefault = function () {
this.returnValue = false;
},
preventTouch = function () {
return this.originalEvent.preventDefault();
},
stopPropagation = function () {
this.cancelBubble = true;
},
stopTouch = function () {
return this.originalEvent.stopPropagation();
},
addEvent = (function () {
if (g.doc.addEventListener) {
return function (obj, type, fn, element) {
var realName = supportsTouch && touchMap[type] ? touchMap[type] : type,
f = function (e) {
var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,
scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,
x = e.clientX + scrollX,
y = e.clientY + scrollY;
if (supportsTouch && touchMap[has](type)) {
for (var i = 0, ii = e.targetTouches && e.targetTouches.length; i < ii; i++) {
if (e.targetTouches[i].target == obj) {
var olde = e;
e = e.targetTouches[i];
e.originalEvent = olde;
e.preventDefault = preventTouch;
e.stopPropagation = stopTouch;
break;
}
}
}
return fn.call(element, e, x, y);
};
obj.addEventListener(realName, f, false);
return function () {
obj.removeEventListener(realName, f, false);
return true;
};
};
} else if (g.doc.attachEvent) {
return function (obj, type, fn, element) {
var f = function (e) {
e = e || g.win.event;
var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,
scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,
x = e.clientX + scrollX,
y = e.clientY + scrollY;
e.preventDefault = e.preventDefault || preventDefault;
e.stopPropagation = e.stopPropagation || stopPropagation;
return fn.call(element, e, x, y);
};
obj.attachEvent("on" + type, f);
var detacher = function () {
obj.detachEvent("on" + type, f);
return true;
};
return detacher;
};
}
})(),
drag = [],
dragMove = function (e) {
var x = e.clientX,
y = e.clientY,
scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,
scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft,
dragi,
j = drag.length;
while (j--) {
dragi = drag[j];
if (supportsTouch) {
var i = e.touches.length,
touch;
while (i--) {
touch = e.touches[i];
if (touch.identifier == dragi.el._drag.id) {
x = touch.clientX;
y = touch.clientY;
(e.originalEvent ? e.originalEvent : e).preventDefault();
break;
}
}
} else {
e.preventDefault();
}
var node = dragi.el.node,
o,
next = node.nextSibling,
parent = node.parentNode,
display = node.style.display;
g.win.opera && parent.removeChild(node);
node.style.display = "none";
o = dragi.el.paper.getElementByPoint(x, y);
node.style.display = display;
g.win.opera && (next ? parent.insertBefore(node, next) : parent.appendChild(node));
o && eve("raphael.drag.over." + dragi.el.id, dragi.el, o);
x += scrollX;
y += scrollY;
eve("raphael.drag.move." + dragi.el.id, dragi.move_scope || dragi.el, x - dragi.el._drag.x, y - dragi.el._drag.y, x, y, e);
}
},
dragUp = function (e) {
R.unmousemove(dragMove).unmouseup(dragUp);
var i = drag.length,
dragi;
while (i--) {
dragi = drag[i];
dragi.el._drag = {};
eve("raphael.drag.end." + dragi.el.id, dragi.end_scope || dragi.start_scope || dragi.move_scope || dragi.el, e);
}
drag = [];
},
elproto = R.el = {};
for (var i = events.length; i--;) {
(function (eventName) {
R[eventName] = elproto[eventName] = function (fn, scope) {
if (R.is(fn, "function")) {
this.events = this.events || [];
this.events.push({name: eventName, f: fn, unbind: addEvent(this.shape || this.node || g.doc, eventName, fn, scope || this)});
}
return this;
};
R["un" + eventName] = elproto["un" + eventName] = function (fn) {
var events = this.events || [],
l = events.length;
while (l--) if (events[l].name == eventName && events[l].f == fn) {
events[l].unbind();
events.splice(l, 1);
!events.length && delete this.events;
return this;
}
return this;
};
})(events[i]);
}
elproto.data = function (key, value) {
var data = eldata[this.id] = eldata[this.id] || {};
if (arguments.length == 1) {
if (R.is(key, "object")) {
for (var i in key) if (key[has](i)) {
this.data(i, key[i]);
}
return this;
}
eve("raphael.data.get." + this.id, this, data[key], key);
return data[key];
}
data[key] = value;
eve("raphael.data.set." + this.id, this, value, key);
return this;
};
elproto.removeData = function (key) {
if (key == null) {
eldata[this.id] = {};
} else {
eldata[this.id] && delete eldata[this.id][key];
}
return this;
};
elproto.hover = function (f_in, f_out, scope_in, scope_out) {
return this.mouseover(f_in, scope_in).mouseout(f_out, scope_out || scope_in);
};
elproto.unhover = function (f_in, f_out) {
return this.unmouseover(f_in).unmouseout(f_out);
};
var draggable = [];
elproto.drag = function (onmove, onstart, onend, move_scope, start_scope, end_scope) {
function start(e) {
(e.originalEvent || e).preventDefault();
var scrollY = g.doc.documentElement.scrollTop || g.doc.body.scrollTop,
scrollX = g.doc.documentElement.scrollLeft || g.doc.body.scrollLeft;
this._drag.x = e.clientX + scrollX;
this._drag.y = e.clientY + scrollY;
this._drag.id = e.identifier;
!drag.length && R.mousemove(dragMove).mouseup(dragUp);
drag.push({el: this, move_scope: move_scope, start_scope: start_scope, end_scope: end_scope});
onstart && eve.on("raphael.drag.start." + this.id, onstart);
onmove && eve.on("raphael.drag.move." + this.id, onmove);
onend && eve.on("raphael.drag.end." + this.id, onend);
eve("raphael.drag.start." + this.id, start_scope || move_scope || this, e.clientX + scrollX, e.clientY + scrollY, e);
}
this._drag = {};
draggable.push({el: this, start: start});
this.mousedown(start);
return this;
};
elproto.onDragOver = function (f) {
f ? eve.on("raphael.drag.over." + this.id, f) : eve.unbind("raphael.drag.over." + this.id);
};
elproto.undrag = function () {
var i = draggable.length;
while (i--) if (draggable[i].el == this) {
this.unmousedown(draggable[i].start);
draggable.splice(i, 1);
eve.unbind("raphael.drag.*." + this.id);
}
!draggable.length && R.unmousemove(dragMove).unmouseup(dragUp);
};
paperproto.circle = function (x, y, r) {
var out = R._engine.circle(this, x || 0, y || 0, r || 0);
this.__set__ && this.__set__.push(out);
return out;
};
paperproto.rect = function (x, y, w, h, r) {
var out = R._engine.rect(this, x || 0, y || 0, w || 0, h || 0, r || 0);
this.__set__ && this.__set__.push(out);
return out;
};
paperproto.ellipse = function (x, y, rx, ry) {
var out = R._engine.ellipse(this, x || 0, y || 0, rx || 0, ry || 0);
this.__set__ && this.__set__.push(out);
return out;
};
paperproto.path = function (pathString) {
pathString && !R.is(pathString, string) && !R.is(pathString[0], array) && (pathString += E);
var out = R._engine.path(R.format[apply](R, arguments), this);
this.__set__ && this.__set__.push(out);
return out;
};
paperproto.image = function (src, x, y, w, h) {
var out = R._engine.image(this, src || "about:blank", x || 0, y || 0, w || 0, h || 0);
this.__set__ && this.__set__.push(out);
return out;
};
paperproto.text = function (x, y, text) {
var out = R._engine.text(this, x || 0, y || 0, Str(text));
this.__set__ && this.__set__.push(out);
return out;
};
paperproto.set = function (itemsArray) {
!R.is(itemsArray, "array") && (itemsArray = Array.prototype.splice.call(arguments, 0, arguments.length));
var out = new Set(itemsArray);
this.__set__ && this.__set__.push(out);
return out;
};
paperproto.setStart = function (set) {
this.__set__ = set || this.set();
};
paperproto.setFinish = function (set) {
var out = this.__set__;
delete this.__set__;
return out;
};
paperproto.setSize = function (width, height) {
return R._engine.setSize.call(this, width, height);
};
paperproto.setViewBox = function (x, y, w, h, fit) {
return R._engine.setViewBox.call(this, x, y, w, h, fit);
};
paperproto.top = paperproto.bottom = null;
paperproto.raphael = R;
var getOffset = function (elem) {
var box = elem.getBoundingClientRect(),
doc = elem.ownerDocument,
body = doc.body,
docElem = doc.documentElement,
clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,
top = box.top + (g.win.pageYOffset || docElem.scrollTop || body.scrollTop ) - clientTop,
left = box.left + (g.win.pageXOffset || docElem.scrollLeft || body.scrollLeft) - clientLeft;
return {
y: top,
x: left
};
};
paperproto.getElementByPoint = function (x, y) {
var paper = this,
svg = paper.canvas,
target = g.doc.elementFromPoint(x, y);
if (g.win.opera && target.tagName == "svg") {
var so = getOffset(svg),
sr = svg.createSVGRect();
sr.x = x - so.x;
sr.y = y - so.y;
sr.width = sr.height = 1;
var hits = svg.getIntersectionList(sr, null);
if (hits.length) {
target = hits[hits.length - 1];
}
}
if (!target) {
return null;
}
while (target.parentNode && target != svg.parentNode && !target.raphael) {
target = target.parentNode;
}
target == paper.canvas.parentNode && (target = svg);
target = target && target.raphael ? paper.getById(target.raphaelid) : null;
return target;
};
paperproto.getById = function (id) {
var bot = this.bottom;
while (bot) {
if (bot.id == id) {
return bot;
}
bot = bot.next;
}
return null;
};
paperproto.forEach = function (callback, thisArg) {
var bot = this.bottom;
while (bot) {
if (callback.call(thisArg, bot) === false) {
return this;
}
bot = bot.next;
}
return this;
};
paperproto.getElementsByPoint = function (x, y) {
var set = this.set();
this.forEach(function (el) {
if (el.isPointInside(x, y)) {
set.push(el);
}
});
return set;
};
function x_y() {
return this.x + S + this.y;
}
function x_y_w_h() {
return this.x + S + this.y + S + this.width + " \xd7 " + this.height;
}
elproto.isPointInside = function (x, y) {
var rp = this.realPath = this.realPath || getPath[this.type](this);
return R.isPointInsidePath(rp, x, y);
};
elproto.getBBox = function (isWithoutTransform) {
if (this.removed) {
return {};
}
var _ = this._;
if (isWithoutTransform) {
if (_.dirty || !_.bboxwt) {
this.realPath = getPath[this.type](this);
_.bboxwt = pathDimensions(this.realPath);
_.bboxwt.toString = x_y_w_h;
_.dirty = 0;
}
return _.bboxwt;
}
if (_.dirty || _.dirtyT || !_.bbox) {
if (_.dirty || !this.realPath) {
_.bboxwt = 0;
this.realPath = getPath[this.type](this);
}
_.bbox = pathDimensions(mapPath(this.realPath, this.matrix));
_.bbox.toString = x_y_w_h;
_.dirty = _.dirtyT = 0;
}
return _.bbox;
};
elproto.clone = function () {
if (this.removed) {
return null;
}
var out = this.paper[this.type]().attr(this.attr());
this.__set__ && this.__set__.push(out);
return out;
};
elproto.glow = function (glow) {
if (this.type == "text") {
return null;
}
glow = glow || {};
var s = {
width: (glow.width || 10) + (+this.attr("stroke-width") || 1),
fill: glow.fill || false,
opacity: glow.opacity || .5,
offsetx: glow.offsetx || 0,
offsety: glow.offsety || 0,
color: glow.color || "#000"
},
c = s.width / 2,
r = this.paper,
out = r.set(),
path = this.realPath || getPath[this.type](this);
path = this.matrix ? mapPath(path, this.matrix) : path;
for (var i = 1; i < c + 1; i++) {
out.push(r.path(path).attr({
stroke: s.color,
fill: s.fill ? s.color : "none",
"stroke-linejoin": "round",
"stroke-linecap": "round",
"stroke-width": +(s.width / c * i).toFixed(3),
opacity: +(s.opacity / c).toFixed(3)
}));
}
return out.insertBefore(this).translate(s.offsetx, s.offsety);
};
var curveslengths = {},
getPointAtSegmentLength = function (p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length) {
if (length == null) {
return bezlen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y);
} else {
return R.findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, getTatLen(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, length));
}
},
getLengthFactory = function (istotal, subpath) {
return function (path, length, onlystart) {
path = path2curve(path);
var x, y, p, l, sp = "", subpaths = {}, point,
len = 0;
for (var i = 0, ii = path.length; i < ii; i++) {
p = path[i];
if (p[0] == "M") {
x = +p[1];
y = +p[2];
} else {
l = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6]);
if (len + l > length) {
if (subpath && !subpaths.start) {
point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);
sp += ["C" + point.start.x, point.start.y, point.m.x, point.m.y, point.x, point.y];
if (onlystart) {return sp;}
subpaths.start = sp;
sp = ["M" + point.x, point.y + "C" + point.n.x, point.n.y, point.end.x, point.end.y, p[5], p[6]].join();
len += l;
x = +p[5];
y = +p[6];
continue;
}
if (!istotal && !subpath) {
point = getPointAtSegmentLength(x, y, p[1], p[2], p[3], p[4], p[5], p[6], length - len);
return {x: point.x, y: point.y, alpha: point.alpha};
}
}
len += l;
x = +p[5];
y = +p[6];
}
sp += p.shift() + p;
}
subpaths.end = sp;
point = istotal ? len : subpath ? subpaths : R.findDotsAtSegment(x, y, p[0], p[1], p[2], p[3], p[4], p[5], 1);
point.alpha && (point = {x: point.x, y: point.y, alpha: point.alpha});
return point;
};
};
var getTotalLength = getLengthFactory(1),
getPointAtLength = getLengthFactory(),
getSubpathsAtLength = getLengthFactory(0, 1);
R.getTotalLength = getTotalLength;
R.getPointAtLength = getPointAtLength;
R.getSubpath = function (path, from, to) {
if (this.getTotalLength(path) - to < 1e-6) {
return getSubpathsAtLength(path, from).end;
}
var a = getSubpathsAtLength(path, to, 1);
return from ? getSubpathsAtLength(a, from).end : a;
};
elproto.getTotalLength = function () {
if (this.type != "path") {return;}
if (this.node.getTotalLength) {
return this.node.getTotalLength();
}
return getTotalLength(this.attrs.path);
};
elproto.getPointAtLength = function (length) {
if (this.type != "path") {return;}
return getPointAtLength(this.attrs.path, length);
};
elproto.getSubpath = function (from, to) {
if (this.type != "path") {return;}
return R.getSubpath(this.attrs.path, from, to);
};
var ef = R.easing_formulas = {
linear: function (n) {
return n;
},
"<": function (n) {
return pow(n, 1.7);
},
">": function (n) {
return pow(n, .48);
},
"<>": function (n) {
var q = .48 - n / 1.04,
Q = math.sqrt(.1734 + q * q),
x = Q - q,
X = pow(abs(x), 1 / 3) * (x < 0 ? -1 : 1),
y = -Q - q,
Y = pow(abs(y), 1 / 3) * (y < 0 ? -1 : 1),
t = X + Y + .5;
return (1 - t) * 3 * t * t + t * t * t;
},
backIn: function (n) {
var s = 1.70158;
return n * n * ((s + 1) * n - s);
},
backOut: function (n) {
n = n - 1;
var s = 1.70158;
return n * n * ((s + 1) * n + s) + 1;
},
elastic: function (n) {
if (n == !!n) {
return n;
}
return pow(2, -10 * n) * math.sin((n - .075) * (2 * PI) / .3) + 1;
},
bounce: function (n) {
var s = 7.5625,
p = 2.75,
l;
if (n < (1 / p)) {
l = s * n * n;
} else {
if (n < (2 / p)) {
n -= (1.5 / p);
l = s * n * n + .75;
} else {
if (n < (2.5 / p)) {
n -= (2.25 / p);
l = s * n * n + .9375;
} else {
n -= (2.625 / p);
l = s * n * n + .984375;
}
}
}
return l;
}
};
ef.easeIn = ef["ease-in"] = ef["<"];
ef.easeOut = ef["ease-out"] = ef[">"];
ef.easeInOut = ef["ease-in-out"] = ef["<>"];
ef["back-in"] = ef.backIn;
ef["back-out"] = ef.backOut;
var animationElements = [],
requestAnimFrame = window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function (callback) {
setTimeout(callback, 16);
},
animation = function () {
var Now = +new Date,
l = 0;
for (; l < animationElements.length; l++) {
var e = animationElements[l];
if (e.el.removed || e.paused) {
continue;
}
var time = Now - e.start,
ms = e.ms,
easing = e.easing,
from = e.from,
diff = e.diff,
to = e.to,
t = e.t,
that = e.el,
set = {},
now,
init = {},
key;
if (e.initstatus) {
time = (e.initstatus * e.anim.top - e.prev) / (e.percent - e.prev) * ms;
e.status = e.initstatus;
delete e.initstatus;
e.stop && animationElements.splice(l--, 1);
} else {
e.status = (e.prev + (e.percent - e.prev) * (time / ms)) / e.anim.top;
}
if (time < 0) {
continue;
}
if (time < ms) {
var pos = easing(time / ms);
for (var attr in from) if (from[has](attr)) {
switch (availableAnimAttrs[attr]) {
case nu:
now = +from[attr] + pos * ms * diff[attr];
break;
case "colour":
now = "rgb(" + [
upto255(round(from[attr].r + pos * ms * diff[attr].r)),
upto255(round(from[attr].g + pos * ms * diff[attr].g)),
upto255(round(from[attr].b + pos * ms * diff[attr].b))
].join(",") + ")";
break;
case "path":
now = [];
for (var i = 0, ii = from[attr].length; i < ii; i++) {
now[i] = [from[attr][i][0]];
for (var j = 1, jj = from[attr][i].length; j < jj; j++) {
now[i][j] = +from[attr][i][j] + pos * ms * diff[attr][i][j];
}
now[i] = now[i].join(S);
}
now = now.join(S);
break;
case "transform":
if (diff[attr].real) {
now = [];
for (i = 0, ii = from[attr].length; i < ii; i++) {
now[i] = [from[attr][i][0]];
for (j = 1, jj = from[attr][i].length; j < jj; j++) {
now[i][j] = from[attr][i][j] + pos * ms * diff[attr][i][j];
}
}
} else {
var get = function (i) {
return +from[attr][i] + pos * ms * diff[attr][i];
};
// now = [["r", get(2), 0, 0], ["t", get(3), get(4)], ["s", get(0), get(1), 0, 0]];
now = [["m", get(0), get(1), get(2), get(3), get(4), get(5)]];
}
break;
case "csv":
if (attr == "clip-rect") {
now = [];
i = 4;
while (i--) {
now[i] = +from[attr][i] + pos * ms * diff[attr][i];
}
}
break;
default:
var from2 = [][concat](from[attr]);
now = [];
i = that.paper.customAttributes[attr].length;
while (i--) {
now[i] = +from2[i] + pos * ms * diff[attr][i];
}
break;
}
set[attr] = now;
}
that.attr(set);
(function (id, that, anim) {
setTimeout(function () {
eve("raphael.anim.frame." + id, that, anim);
});
})(that.id, that, e.anim);
} else {
(function(f, el, a) {
setTimeout(function() {
eve("raphael.anim.frame." + el.id, el, a);
eve("raphael.anim.finish." + el.id, el, a);
R.is(f, "function") && f.call(el);
});
})(e.callback, that, e.anim);
that.attr(to);
animationElements.splice(l--, 1);
if (e.repeat > 1 && !e.next) {
for (key in to) if (to[has](key)) {
init[key] = e.totalOrigin[key];
}
e.el.attr(init);
runAnimation(e.anim, e.el, e.anim.percents[0], null, e.totalOrigin, e.repeat - 1);
}
if (e.next && !e.stop) {
runAnimation(e.anim, e.el, e.next, null, e.totalOrigin, e.repeat);
}
}
}
R.svg && that && that.paper && that.paper.safari();
animationElements.length && requestAnimFrame(animation);
},
upto255 = function (color) {
return color > 255 ? 255 : color < 0 ? 0 : color;
};
elproto.animateWith = function (el, anim, params, ms, easing, callback) {
var element = this;
if (element.removed) {
callback && callback.call(element);
return element;
}
var a = params instanceof Animation ? params : R.animation(params, ms, easing, callback),
x, y;
runAnimation(a, element, a.percents[0], null, element.attr());
for (var i = 0, ii = animationElements.length; i < ii; i++) {
if (animationElements[i].anim == anim && animationElements[i].el == el) {
animationElements[ii - 1].start = animationElements[i].start;
break;
}
}
return element;
//
//
// var a = params ? R.animation(params, ms, easing, callback) : anim,
// status = element.status(anim);
// return this.animate(a).status(a, status * anim.ms / a.ms);
};
function CubicBezierAtTime(t, p1x, p1y, p2x, p2y, duration) {
var cx = 3 * p1x,
bx = 3 * (p2x - p1x) - cx,
ax = 1 - cx - bx,
cy = 3 * p1y,
by = 3 * (p2y - p1y) - cy,
ay = 1 - cy - by;
function sampleCurveX(t) {
return ((ax * t + bx) * t + cx) * t;
}
function solve(x, epsilon) {
var t = solveCurveX(x, epsilon);
return ((ay * t + by) * t + cy) * t;
}
function solveCurveX(x, epsilon) {
var t0, t1, t2, x2, d2, i;
for(t2 = x, i = 0; i < 8; i++) {
x2 = sampleCurveX(t2) - x;
if (abs(x2) < epsilon) {
return t2;
}
d2 = (3 * ax * t2 + 2 * bx) * t2 + cx;
if (abs(d2) < 1e-6) {
break;
}
t2 = t2 - x2 / d2;
}
t0 = 0;
t1 = 1;
t2 = x;
if (t2 < t0) {
return t0;
}
if (t2 > t1) {
return t1;
}
while (t0 < t1) {
x2 = sampleCurveX(t2);
if (abs(x2 - x) < epsilon) {
return t2;
}
if (x > x2) {
t0 = t2;
} else {
t1 = t2;
}
t2 = (t1 - t0) / 2 + t0;
}
return t2;
}
return solve(t, 1 / (200 * duration));
}
elproto.onAnimation = function (f) {
f ? eve.on("raphael.anim.frame." + this.id, f) : eve.unbind("raphael.anim.frame." + this.id);
return this;
};
function Animation(anim, ms) {
var percents = [],
newAnim = {};
this.ms = ms;
this.times = 1;
if (anim) {
for (var attr in anim) if (anim[has](attr)) {
newAnim[toFloat(attr)] = anim[attr];
percents.push(toFloat(attr));
}
percents.sort(sortByNumber);
}
this.anim = newAnim;
this.top = percents[percents.length - 1];
this.percents = percents;
}
Animation.prototype.delay = function (delay) {
var a = new Animation(this.anim, this.ms);
a.times = this.times;
a.del = +delay || 0;
return a;
};
Animation.prototype.repeat = function (times) {
var a = new Animation(this.anim, this.ms);
a.del = this.del;
a.times = math.floor(mmax(times, 0)) || 1;
return a;
};
function runAnimation(anim, element, percent, status, totalOrigin, times) {
percent = toFloat(percent);
var params,
isInAnim,
isInAnimSet,
percents = [],
next,
prev,
timestamp,
ms = anim.ms,
from = {},
to = {},
diff = {};
if (status) {
for (i = 0, ii = animationElements.length; i < ii; i++) {
var e = animationElements[i];
if (e.el.id == element.id && e.anim == anim) {
if (e.percent != percent) {
animationElements.splice(i, 1);
isInAnimSet = 1;
} else {
isInAnim = e;
}
element.attr(e.totalOrigin);
break;
}
}
} else {
status = +to; // NaN
}
for (var i = 0, ii = anim.percents.length; i < ii; i++) {
if (anim.percents[i] == percent || anim.percents[i] > status * anim.top) {
percent = anim.percents[i];
prev = anim.percents[i - 1] || 0;
ms = ms / anim.top * (percent - prev);
next = anim.percents[i + 1];
params = anim.anim[percent];
break;
} else if (status) {
element.attr(anim.anim[anim.percents[i]]);
}
}
if (!params) {
return;
}
if (!isInAnim) {
for (var attr in params) if (params[has](attr)) {
if (availableAnimAttrs[has](attr) || element.paper.customAttributes[has](attr)) {
from[attr] = element.attr(attr);
(from[attr] == null) && (from[attr] = availableAttrs[attr]);
to[attr] = params[attr];
switch (availableAnimAttrs[attr]) {
case nu:
diff[attr] = (to[attr] - from[attr]) / ms;
break;
case "colour":
from[attr] = R.getRGB(from[attr]);
var toColour = R.getRGB(to[attr]);
diff[attr] = {
r: (toColour.r - from[attr].r) / ms,
g: (toColour.g - from[attr].g) / ms,
b: (toColour.b - from[attr].b) / ms
};
break;
case "path":
var pathes = path2curve(from[attr], to[attr]),
toPath = pathes[1];
from[attr] = pathes[0];
diff[attr] = [];
for (i = 0, ii = from[attr].length; i < ii; i++) {
diff[attr][i] = [0];
for (var j = 1, jj = from[attr][i].length; j < jj; j++) {
diff[attr][i][j] = (toPath[i][j] - from[attr][i][j]) / ms;
}
}
break;
case "transform":
var _ = element._,
eq = equaliseTransform(_[attr], to[attr]);
if (eq) {
from[attr] = eq.from;
to[attr] = eq.to;
diff[attr] = [];
diff[attr].real = true;
for (i = 0, ii = from[attr].length; i < ii; i++) {
diff[attr][i] = [from[attr][i][0]];
for (j = 1, jj = from[attr][i].length; j < jj; j++) {
diff[attr][i][j] = (to[attr][i][j] - from[attr][i][j]) / ms;
}
}
} else {
var m = (element.matrix || new Matrix),
to2 = {
_: {transform: _.transform},
getBBox: function () {
return element.getBBox(1);
}
};
from[attr] = [
m.a,
m.b,
m.c,
m.d,
m.e,
m.f
];
extractTransform(to2, to[attr]);
to[attr] = to2._.transform;
diff[attr] = [
(to2.matrix.a - m.a) / ms,
(to2.matrix.b - m.b) / ms,
(to2.matrix.c - m.c) / ms,
(to2.matrix.d - m.d) / ms,
(to2.matrix.e - m.e) / ms,
(to2.matrix.f - m.f) / ms
];
// from[attr] = [_.sx, _.sy, _.deg, _.dx, _.dy];
// var to2 = {_:{}, getBBox: function () { return element.getBBox(); }};
// extractTransform(to2, to[attr]);
// diff[attr] = [
// (to2._.sx - _.sx) / ms,
// (to2._.sy - _.sy) / ms,
// (to2._.deg - _.deg) / ms,
// (to2._.dx - _.dx) / ms,
// (to2._.dy - _.dy) / ms
// ];
}
break;
case "csv":
var values = Str(params[attr])[split](separator),
from2 = Str(from[attr])[split](separator);
if (attr == "clip-rect") {
from[attr] = from2;
diff[attr] = [];
i = from2.length;
while (i--) {
diff[attr][i] = (values[i] - from[attr][i]) / ms;
}
}
to[attr] = values;
break;
default:
values = [][concat](params[attr]);
from2 = [][concat](from[attr]);
diff[attr] = [];
i = element.paper.customAttributes[attr].length;
while (i--) {
diff[attr][i] = ((values[i] || 0) - (from2[i] || 0)) / ms;
}
break;
}
}
}
var easing = params.easing,
easyeasy = R.easing_formulas[easing];
if (!easyeasy) {
easyeasy = Str(easing).match(bezierrg);
if (easyeasy && easyeasy.length == 5) {
var curve = easyeasy;
easyeasy = function (t) {
return CubicBezierAtTime(t, +curve[1], +curve[2], +curve[3], +curve[4], ms);
};
} else {
easyeasy = pipe;
}
}
timestamp = params.start || anim.start || +new Date;
e = {
anim: anim,
percent: percent,
timestamp: timestamp,
start: timestamp + (anim.del || 0),
status: 0,
initstatus: status || 0,
stop: false,
ms: ms,
easing: easyeasy,
from: from,
diff: diff,
to: to,
el: element,
callback: params.callback,
prev: prev,
next: next,
repeat: times || anim.times,
origin: element.attr(),
totalOrigin: totalOrigin
};
animationElements.push(e);
if (status && !isInAnim && !isInAnimSet) {
e.stop = true;
e.start = new Date - ms * status;
if (animationElements.length == 1) {
return animation();
}
}
if (isInAnimSet) {
e.start = new Date - e.ms * status;
}
animationElements.length == 1 && requestAnimFrame(animation);
} else {
isInAnim.initstatus = status;
isInAnim.start = new Date - isInAnim.ms * status;
}
eve("raphael.anim.start." + element.id, element, anim);
}
R.animation = function (params, ms, easing, callback) {
if (params instanceof Animation) {
return params;
}
if (R.is(easing, "function") || !easing) {
callback = callback || easing || null;
easing = null;
}
params = Object(params);
ms = +ms || 0;
var p = {},
json,
attr;
for (attr in params) if (params[has](attr) && toFloat(attr) != attr && toFloat(attr) + "%" != attr) {
json = true;
p[attr] = params[attr];
}
if (!json) {
return new Animation(params, ms);
} else {
easing && (p.easing = easing);
callback && (p.callback = callback);
return new Animation({100: p}, ms);
}
};
elproto.animate = function (params, ms, easing, callback) {
var element = this;
if (element.removed) {
callback && callback.call(element);
return element;
}
var anim = params instanceof Animation ? params : R.animation(params, ms, easing, callback);
runAnimation(anim, element, anim.percents[0], null, element.attr());
return element;
};
elproto.setTime = function (anim, value) {
if (anim && value != null) {
this.status(anim, mmin(value, anim.ms) / anim.ms);
}
return this;
};
elproto.status = function (anim, value) {
var out = [],
i = 0,
len,
e;
if (value != null) {
runAnimation(anim, this, -1, mmin(value, 1));
return this;
} else {
len = animationElements.length;
for (; i < len; i++) {
e = animationElements[i];
if (e.el.id == this.id && (!anim || e.anim == anim)) {
if (anim) {
return e.status;
}
out.push({
anim: e.anim,
status: e.status
});
}
}
if (anim) {
return 0;
}
return out;
}
};
elproto.pause = function (anim) {
for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {
if (eve("raphael.anim.pause." + this.id, this, animationElements[i].anim) !== false) {
animationElements[i].paused = true;
}
}
return this;
};
elproto.resume = function (anim) {
for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {
var e = animationElements[i];
if (eve("raphael.anim.resume." + this.id, this, e.anim) !== false) {
delete e.paused;
this.status(e.anim, e.status);
}
}
return this;
};
elproto.stop = function (anim) {
for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {
if (eve("raphael.anim.stop." + this.id, this, animationElements[i].anim) !== false) {
animationElements.splice(i--, 1);
}
}
return this;
};
function stopAnimation(paper) {
for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.paper == paper) {
animationElements.splice(i--, 1);
}
}
eve.on("raphael.remove", stopAnimation);
eve.on("raphael.clear", stopAnimation);
elproto.toString = function () {
return "Rapha\xebl\u2019s object";
};
// Set
var Set = function (items) {
this.items = [];
this.length = 0;
this.type = "set";
if (items) {
for (var i = 0, ii = items.length; i < ii; i++) {
if (items[i] && (items[i].constructor == elproto.constructor || items[i].constructor == Set)) {
this[this.items.length] = this.items[this.items.length] = items[i];
this.length++;
}
}
}
},
setproto = Set.prototype;
setproto.push = function () {
var item,
len;
for (var i = 0, ii = arguments.length; i < ii; i++) {
item = arguments[i];
if (item && (item.constructor == elproto.constructor || item.constructor == Set)) {
len = this.items.length;
this[len] = this.items[len] = item;
this.length++;
}
}
return this;
};
setproto.pop = function () {
this.length && delete this[this.length--];
return this.items.pop();
};
setproto.forEach = function (callback, thisArg) {
for (var i = 0, ii = this.items.length; i < ii; i++) {
if (callback.call(thisArg, this.items[i], i) === false) {
return this;
}
}
return this;
};
for (var method in elproto) if (elproto[has](method)) {
setproto[method] = (function (methodname) {
return function () {
var arg = arguments;
return this.forEach(function (el) {
el[methodname][apply](el, arg);
});
};
})(method);
}
setproto.attr = function (name, value) {
if (name && R.is(name, array) && R.is(name[0], "object")) {
for (var j = 0, jj = name.length; j < jj; j++) {
this.items[j].attr(name[j]);
}
} else {
for (var i = 0, ii = this.items.length; i < ii; i++) {
this.items[i].attr(name, value);
}
}
return this;
};
setproto.clear = function () {
while (this.length) {
this.pop();
}
};
setproto.splice = function (index, count, insertion) {
index = index < 0 ? mmax(this.length + index, 0) : index;
count = mmax(0, mmin(this.length - index, count));
var tail = [],
todel = [],
args = [],
i;
for (i = 2; i < arguments.length; i++) {
args.push(arguments[i]);
}
for (i = 0; i < count; i++) {
todel.push(this[index + i]);
}
for (; i < this.length - index; i++) {
tail.push(this[index + i]);
}
var arglen = args.length;
for (i = 0; i < arglen + tail.length; i++) {
this.items[index + i] = this[index + i] = i < arglen ? args[i] : tail[i - arglen];
}
i = this.items.length = this.length -= count - arglen;
while (this[i]) {
delete this[i++];
}
return new Set(todel);
};
setproto.exclude = function (el) {
for (var i = 0, ii = this.length; i < ii; i++) if (this[i] == el) {
this.splice(i, 1);
return true;
}
};
setproto.animate = function (params, ms, easing, callback) {
(R.is(easing, "function") || !easing) && (callback = easing || null);
var len = this.items.length,
i = len,
item,
set = this,
collector;
if (!len) {
return this;
}
callback && (collector = function () {
!--len && callback.call(set);
});
easing = R.is(easing, string) ? easing : collector;
var anim = R.animation(params, ms, easing, collector);
item = this.items[--i].animate(anim);
while (i--) {
this.items[i] && !this.items[i].removed && this.items[i].animateWith(item, anim, anim);
}
return this;
};
setproto.insertAfter = function (el) {
var i = this.items.length;
while (i--) {
this.items[i].insertAfter(el);
}
return this;
};
setproto.getBBox = function () {
var x = [],
y = [],
x2 = [],
y2 = [];
for (var i = this.items.length; i--;) if (!this.items[i].removed) {
var box = this.items[i].getBBox();
x.push(box.x);
y.push(box.y);
x2.push(box.x + box.width);
y2.push(box.y + box.height);
}
x = mmin[apply](0, x);
y = mmin[apply](0, y);
x2 = mmax[apply](0, x2);
y2 = mmax[apply](0, y2);
return {
x: x,
y: y,
x2: x2,
y2: y2,
width: x2 - x,
height: y2 - y
};
};
setproto.clone = function (s) {
s = new Set;
for (var i = 0, ii = this.items.length; i < ii; i++) {
s.push(this.items[i].clone());
}
return s;
};
setproto.toString = function () {
return "Rapha\xebl\u2018s set";
};
R.registerFont = function (font) {
if (!font.face) {
return font;
}
this.fonts = this.fonts || {};
var fontcopy = {
w: font.w,
face: {},
glyphs: {}
},
family = font.face["font-family"];
for (var prop in font.face) if (font.face[has](prop)) {
fontcopy.face[prop] = font.face[prop];
}
if (this.fonts[family]) {
this.fonts[family].push(fontcopy);
} else {
this.fonts[family] = [fontcopy];
}
if (!font.svg) {
fontcopy.face["units-per-em"] = toInt(font.face["units-per-em"], 10);
for (var glyph in font.glyphs) if (font.glyphs[has](glyph)) {
var path = font.glyphs[glyph];
fontcopy.glyphs[glyph] = {
w: path.w,
k: {},
d: path.d && "M" + path.d.replace(/[mlcxtrv]/g, function (command) {
return {l: "L", c: "C", x: "z", t: "m", r: "l", v: "c"}[command] || "M";
}) + "z"
};
if (path.k) {
for (var k in path.k) if (path[has](k)) {
fontcopy.glyphs[glyph].k[k] = path.k[k];
}
}
}
}
return font;
};
paperproto.getFont = function (family, weight, style, stretch) {
stretch = stretch || "normal";
style = style || "normal";
weight = +weight || {normal: 400, bold: 700, lighter: 300, bolder: 800}[weight] || 400;
if (!R.fonts) {
return;
}
var font = R.fonts[family];
if (!font) {
var name = new RegExp("(^|\\s)" + family.replace(/[^\w\d\s+!~.:_-]/g, E) + "(\\s|$)", "i");
for (var fontName in R.fonts) if (R.fonts[has](fontName)) {
if (name.test(fontName)) {
font = R.fonts[fontName];
break;
}
}
}
var thefont;
if (font) {
for (var i = 0, ii = font.length; i < ii; i++) {
thefont = font[i];
if (thefont.face["font-weight"] == weight && (thefont.face["font-style"] == style || !thefont.face["font-style"]) && thefont.face["font-stretch"] == stretch) {
break;
}
}
}
return thefont;
};
paperproto.print = function (x, y, string, font, size, origin, letter_spacing) {
origin = origin || "middle"; // baseline|middle
letter_spacing = mmax(mmin(letter_spacing || 0, 1), -1);
var letters = Str(string)[split](E),
shift = 0,
notfirst = 0,
path = E,
scale;
R.is(font, string) && (font = this.getFont(font));
if (font) {
scale = (size || 16) / font.face["units-per-em"];
var bb = font.face.bbox[split](separator),
top = +bb[0],
lineHeight = bb[3] - bb[1],
shifty = 0,
height = +bb[1] + (origin == "baseline" ? lineHeight + (+font.face.descent) : lineHeight / 2);
for (var i = 0, ii = letters.length; i < ii; i++) {
if (letters[i] == "\n") {
shift = 0;
curr = 0;
notfirst = 0;
shifty += lineHeight;
} else {
var prev = notfirst && font.glyphs[letters[i - 1]] || {},
curr = font.glyphs[letters[i]];
shift += notfirst ? (prev.w || font.w) + (prev.k && prev.k[letters[i]] || 0) + (font.w * letter_spacing) : 0;
notfirst = 1;
}
if (curr && curr.d) {
path += R.transformPath(curr.d, ["t", shift * scale, shifty * scale, "s", scale, scale, top, height, "t", (x - top) / scale, (y - height) / scale]);
}
}
}
return this.path(path).attr({
fill: "#000",
stroke: "none"
});
};
paperproto.add = function (json) {
if (R.is(json, "array")) {
var res = this.set(),
i = 0,
ii = json.length,
j;
for (; i < ii; i++) {
j = json[i] || {};
elements[has](j.type) && res.push(this[j.type]().attr(j));
}
}
return res;
};
R.format = function (token, params) {
var args = R.is(params, array) ? [0][concat](params) : arguments;
token && R.is(token, string) && args.length - 1 && (token = token.replace(formatrg, function (str, i) {
return args[++i] == null ? E : args[i];
}));
return token || E;
};
R.fullfill = (function () {
var tokenRegex = /\{([^\}]+)\}/g,
objNotationRegex = /(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g, // matches .xxxxx or ["xxxxx"] to run over object properties
replacer = function (all, key, obj) {
var res = obj;
key.replace(objNotationRegex, function (all, name, quote, quotedName, isFunc) {
name = name || quotedName;
if (res) {
if (name in res) {
res = res[name];
}
typeof res == "function" && isFunc && (res = res());
}
});
res = (res == null || res == obj ? all : res) + "";
return res;
};
return function (str, obj) {
return String(str).replace(tokenRegex, function (all, key) {
return replacer(all, key, obj);
});
};
})();
R.ninja = function () {
oldRaphael.was ? (g.win.Raphael = oldRaphael.is) : delete Raphael;
return R;
};
R.st = setproto;
// Firefox <3.6 fix: http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html
(function (doc, loaded, f) {
if (doc.readyState == null && doc.addEventListener){
doc.addEventListener(loaded, f = function () {
doc.removeEventListener(loaded, f, false);
doc.readyState = "complete";
}, false);
doc.readyState = "loading";
}
function isLoaded() {
(/in/).test(doc.readyState) ? setTimeout(isLoaded, 9) : R.eve("raphael.DOMload");
}
isLoaded();
})(document, "DOMContentLoaded");
oldRaphael.was ? (g.win.Raphael = R) : (Raphael = R);
eve.on("raphael.DOMload", function () {
loaded = true;
});
})();
// ┌─────────────────────────────────────────────────────────────────────┐ \\
// │ Raphaël - JavaScript Vector Library │ \\
// ├─────────────────────────────────────────────────────────────────────┤ \\
// │ SVG Module │ \\
// ├─────────────────────────────────────────────────────────────────────┤ \\
// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com) │ \\
// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com) │ \\
// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\
// └─────────────────────────────────────────────────────────────────────┘ \\
window.Raphael.svg && function (R) {
var has = "hasOwnProperty",
Str = String,
toFloat = parseFloat,
toInt = parseInt,
math = Math,
mmax = math.max,
abs = math.abs,
pow = math.pow,
separator = /[, ]+/,
eve = R.eve,
E = "",
S = " ";
var xlink = "http://www.w3.org/1999/xlink",
markers = {
block: "M5,0 0,2.5 5,5z",
classic: "M5,0 0,2.5 5,5 3.5,3 3.5,2z",
diamond: "M2.5,0 5,2.5 2.5,5 0,2.5z",
open: "M6,1 1,3.5 6,6",
oval: "M2.5,0A2.5,2.5,0,0,1,2.5,5 2.5,2.5,0,0,1,2.5,0z"
},
markerCounter = {};
R.toString = function () {
return "Your browser supports SVG.\nYou are running Rapha\xebl " + this.version;
};
var $ = function (el, attr) {
if (attr) {
if (typeof el == "string") {
el = $(el);
}
for (var key in attr) if (attr[has](key)) {
if (key.substring(0, 6) == "xlink:") {
el.setAttributeNS(xlink, key.substring(6), Str(attr[key]));
} else {
el.setAttribute(key, Str(attr[key]));
}
}
} else {
el = R._g.doc.createElementNS("http://www.w3.org/2000/svg", el);
el.style && (el.style.webkitTapHighlightColor = "rgba(0,0,0,0)");
}
return el;
},
addGradientFill = function (element, gradient) {
var type = "linear",
id = element.id + gradient,
fx = .5, fy = .5,
o = element.node,
SVG = element.paper,
s = o.style,
el = R._g.doc.getElementById(id);
if (!el) {
gradient = Str(gradient).replace(R._radial_gradient, function (all, _fx, _fy) {
type = "radial";
if (_fx && _fy) {
fx = toFloat(_fx);
fy = toFloat(_fy);
var dir = ((fy > .5) * 2 - 1);
pow(fx - .5, 2) + pow(fy - .5, 2) > .25 &&
(fy = math.sqrt(.25 - pow(fx - .5, 2)) * dir + .5) &&
fy != .5 &&
(fy = fy.toFixed(5) - 1e-5 * dir);
}
return E;
});
gradient = gradient.split(/\s*\-\s*/);
if (type == "linear") {
var angle = gradient.shift();
angle = -toFloat(angle);
if (isNaN(angle)) {
return null;
}
var vector = [0, 0, math.cos(R.rad(angle)), math.sin(R.rad(angle))],
max = 1 / (mmax(abs(vector[2]), abs(vector[3])) || 1);
vector[2] *= max;
vector[3] *= max;
if (vector[2] < 0) {
vector[0] = -vector[2];
vector[2] = 0;
}
if (vector[3] < 0) {
vector[1] = -vector[3];
vector[3] = 0;
}
}
var dots = R._parseDots(gradient);
if (!dots) {
return null;
}
id = id.replace(/[\(\)\s,\xb0#]/g, "_");
if (element.gradient && id != element.gradient.id) {
SVG.defs.removeChild(element.gradient);
delete element.gradient;
}
if (!element.gradient) {
el = $(type + "Gradient", {id: id});
element.gradient = el;
$(el, type == "radial" ? {
fx: fx,
fy: fy
} : {
x1: vector[0],
y1: vector[1],
x2: vector[2],
y2: vector[3],
gradientTransform: element.matrix.invert()
});
SVG.defs.appendChild(el);
for (var i = 0, ii = dots.length; i < ii; i++) {
el.appendChild($("stop", {
offset: dots[i].offset ? dots[i].offset : i ? "100%" : "0%",
"stop-color": dots[i].color || "#fff"
}));
}
}
}
$(o, {
fill: "url(#" + id + ")",
opacity: 1,
"fill-opacity": 1
});
s.fill = E;
s.opacity = 1;
s.fillOpacity = 1;
return 1;
},
updatePosition = function (o) {
var bbox = o.getBBox(1);
$(o.pattern, {patternTransform: o.matrix.invert() + " translate(" + bbox.x + "," + bbox.y + ")"});
},
addArrow = function (o, value, isEnd) {
if (o.type == "path") {
var values = Str(value).toLowerCase().split("-"),
p = o.paper,
se = isEnd ? "end" : "start",
node = o.node,
attrs = o.attrs,
stroke = attrs["stroke-width"],
i = values.length,
type = "classic",
from,
to,
dx,
refX,
attr,
w = 3,
h = 3,
t = 5;
while (i--) {
switch (values[i]) {
case "block":
case "classic":
case "oval":
case "diamond":
case "open":
case "none":
type = values[i];
break;
case "wide": h = 5; break;
case "narrow": h = 2; break;
case "long": w = 5; break;
case "short": w = 2; break;
}
}
if (type == "open") {
w += 2;
h += 2;
t += 2;
dx = 1;
refX = isEnd ? 4 : 1;
attr = {
fill: "none",
stroke: attrs.stroke
};
} else {
refX = dx = w / 2;
attr = {
fill: attrs.stroke,
stroke: "none"
};
}
if (o._.arrows) {
if (isEnd) {
o._.arrows.endPath && markerCounter[o._.arrows.endPath]--;
o._.arrows.endMarker && markerCounter[o._.arrows.endMarker]--;
} else {
o._.arrows.startPath && markerCounter[o._.arrows.startPath]--;
o._.arrows.startMarker && markerCounter[o._.arrows.startMarker]--;
}
} else {
o._.arrows = {};
}
if (type != "none") {
var pathId = "raphael-marker-" + type,
markerId = "raphael-marker-" + se + type + w + h;
if (!R._g.doc.getElementById(pathId)) {
p.defs.appendChild($($("path"), {
"stroke-linecap": "round",
d: markers[type],
id: pathId
}));
markerCounter[pathId] = 1;
} else {
markerCounter[pathId]++;
}
var marker = R._g.doc.getElementById(markerId),
use;
if (!marker) {
marker = $($("marker"), {
id: markerId,
markerHeight: h,
markerWidth: w,
orient: "auto",
refX: refX,
refY: h / 2
});
use = $($("use"), {
"xlink:href": "#" + pathId,
transform: (isEnd ? "rotate(180 " + w / 2 + " " + h / 2 + ") " : E) + "scale(" + w / t + "," + h / t + ")",
"stroke-width": (1 / ((w / t + h / t) / 2)).toFixed(4)
});
marker.appendChild(use);
p.defs.appendChild(marker);
markerCounter[markerId] = 1;
} else {
markerCounter[markerId]++;
use = marker.getElementsByTagName("use")[0];
}
$(use, attr);
var delta = dx * (type != "diamond" && type != "oval");
if (isEnd) {
from = o._.arrows.startdx * stroke || 0;
to = R.getTotalLength(attrs.path) - delta * stroke;
} else {
from = delta * stroke;
to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);
}
attr = {};
attr["marker-" + se] = "url(#" + markerId + ")";
if (to || from) {
attr.d = Raphael.getSubpath(attrs.path, from, to);
}
$(node, attr);
o._.arrows[se + "Path"] = pathId;
o._.arrows[se + "Marker"] = markerId;
o._.arrows[se + "dx"] = delta;
o._.arrows[se + "Type"] = type;
o._.arrows[se + "String"] = value;
} else {
if (isEnd) {
from = o._.arrows.startdx * stroke || 0;
to = R.getTotalLength(attrs.path) - from;
} else {
from = 0;
to = R.getTotalLength(attrs.path) - (o._.arrows.enddx * stroke || 0);
}
o._.arrows[se + "Path"] && $(node, {d: Raphael.getSubpath(attrs.path, from, to)});
delete o._.arrows[se + "Path"];
delete o._.arrows[se + "Marker"];
delete o._.arrows[se + "dx"];
delete o._.arrows[se + "Type"];
delete o._.arrows[se + "String"];
}
for (attr in markerCounter) if (markerCounter[has](attr) && !markerCounter[attr]) {
var item = R._g.doc.getElementById(attr);
item && item.parentNode.removeChild(item);
}
}
},
dasharray = {
"": [0],
"none": [0],
"-": [3, 1],
".": [1, 1],
"-.": [3, 1, 1, 1],
"-..": [3, 1, 1, 1, 1, 1],
". ": [1, 3],
"- ": [4, 3],
"--": [8, 3],
"- .": [4, 3, 1, 3],
"--.": [8, 3, 1, 3],
"--..": [8, 3, 1, 3, 1, 3]
},
addDashes = function (o, value, params) {
value = dasharray[Str(value).toLowerCase()];
if (value) {
var width = o.attrs["stroke-width"] || "1",
butt = {round: width, square: width, butt: 0}[o.attrs["stroke-linecap"] || params["stroke-linecap"]] || 0,
dashes = [],
i = value.length;
while (i--) {
dashes[i] = value[i] * width + ((i % 2) ? 1 : -1) * butt;
}
$(o.node, {"stroke-dasharray": dashes.join(",")});
}
},
setFillAndStroke = function (o, params) {
var node = o.node,
attrs = o.attrs,
vis = node.style.visibility;
node.style.visibility = "hidden";
for (var att in params) {
if (params[has](att)) {
if (!R._availableAttrs[has](att)) {
continue;
}
var value = params[att];
attrs[att] = value;
switch (att) {
case "blur":
o.blur(value);
break;
case "href":
case "title":
case "target":
var pn = node.parentNode;
if (pn.tagName.toLowerCase() != "a") {
var hl = $("a");
pn.insertBefore(hl, node);
hl.appendChild(node);
pn = hl;
}
if (att == "target") {
pn.setAttributeNS(xlink, "show", value == "blank" ? "new" : value);
} else {
pn.setAttributeNS(xlink, att, value);
}
break;
case "cursor":
node.style.cursor = value;
break;
case "transform":
o.transform(value);
break;
case "arrow-start":
addArrow(o, value);
break;
case "arrow-end":
addArrow(o, value, 1);
break;
case "clip-rect":
var rect = Str(value).split(separator);
if (rect.length == 4) {
o.clip && o.clip.parentNode.parentNode.removeChild(o.clip.parentNode);
var el = $("clipPath"),
rc = $("rect");
el.id = R.createUUID();
$(rc, {
x: rect[0],
y: rect[1],
width: rect[2],
height: rect[3]
});
el.appendChild(rc);
o.paper.defs.appendChild(el);
$(node, {"clip-path": "url(#" + el.id + ")"});
o.clip = rc;
}
if (!value) {
var path = node.getAttribute("clip-path");
if (path) {
var clip = R._g.doc.getElementById(path.replace(/(^url\(#|\)$)/g, E));
clip && clip.parentNode.removeChild(clip);
$(node, {"clip-path": E});
delete o.clip;
}
}
break;
case "path":
if (o.type == "path") {
$(node, {d: value ? attrs.path = R._pathToAbsolute(value) : "M0,0"});
o._.dirty = 1;
if (o._.arrows) {
"startString" in o._.arrows && addArrow(o, o._.arrows.startString);
"endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1);
}
}
break;
case "width":
node.setAttribute(att, value);
o._.dirty = 1;
if (attrs.fx) {
att = "x";
value = attrs.x;
} else {
break;
}
case "x":
if (attrs.fx) {
value = -attrs.x - (attrs.width || 0);
}
case "rx":
if (att == "rx" && o.type == "rect") {
break;
}
case "cx":
node.setAttribute(att, value);
o.pattern && updatePosition(o);
o._.dirty = 1;
break;
case "height":
node.setAttribute(att, value);
o._.dirty = 1;
if (attrs.fy) {
att = "y";
value = attrs.y;
} else {
break;
}
case "y":
if (attrs.fy) {
value = -attrs.y - (attrs.height || 0);
}
case "ry":
if (att == "ry" && o.type == "rect") {
break;
}
case "cy":
node.setAttribute(att, value);
o.pattern && updatePosition(o);
o._.dirty = 1;
break;
case "r":
if (o.type == "rect") {
$(node, {rx: value, ry: value});
} else {
node.setAttribute(att, value);
}
o._.dirty = 1;
break;
case "src":
if (o.type == "image") {
node.setAttributeNS(xlink, "href", value);
}
break;
case "stroke-width":
if (o._.sx != 1 || o._.sy != 1) {
value /= mmax(abs(o._.sx), abs(o._.sy)) || 1;
}
if (o.paper._vbSize) {
value *= o.paper._vbSize;
}
node.setAttribute(att, value);
if (attrs["stroke-dasharray"]) {
addDashes(o, attrs["stroke-dasharray"], params);
}
if (o._.arrows) {
"startString" in o._.arrows && addArrow(o, o._.arrows.startString);
"endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1);
}
break;
case "stroke-dasharray":
addDashes(o, value, params);
break;
case "fill":
var isURL = Str(value).match(R._ISURL);
if (isURL) {
el = $("pattern");
var ig = $("image");
el.id = R.createUUID();
$(el, {x: 0, y: 0, patternUnits: "userSpaceOnUse", height: 1, width: 1});
$(ig, {x: 0, y: 0, "xlink:href": isURL[1]});
el.appendChild(ig);
(function (el) {
R._preload(isURL[1], function () {
var w = this.offsetWidth,
h = this.offsetHeight;
$(el, {width: w, height: h});
$(ig, {width: w, height: h});
o.paper.safari();
});
})(el);
o.paper.defs.appendChild(el);
$(node, {fill: "url(#" + el.id + ")"});
o.pattern = el;
o.pattern && updatePosition(o);
break;
}
var clr = R.getRGB(value);
if (!clr.error) {
delete params.gradient;
delete attrs.gradient;
!R.is(attrs.opacity, "undefined") &&
R.is(params.opacity, "undefined") &&
$(node, {opacity: attrs.opacity});
!R.is(attrs["fill-opacity"], "undefined") &&
R.is(params["fill-opacity"], "undefined") &&
$(node, {"fill-opacity": attrs["fill-opacity"]});
} else if ((o.type == "circle" || o.type == "ellipse" || Str(value).charAt() != "r") && addGradientFill(o, value)) {
if ("opacity" in attrs || "fill-opacity" in attrs) {
var gradient = R._g.doc.getElementById(node.getAttribute("fill").replace(/^url\(#|\)$/g, E));
if (gradient) {
var stops = gradient.getElementsByTagName("stop");
$(stops[stops.length - 1], {"stop-opacity": ("opacity" in attrs ? attrs.opacity : 1) * ("fill-opacity" in attrs ? attrs["fill-opacity"] : 1)});
}
}
attrs.gradient = value;
attrs.fill = "none";
break;
}
clr[has]("opacity") && $(node, {"fill-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});
case "stroke":
clr = R.getRGB(value);
node.setAttribute(att, clr.hex);
att == "stroke" && clr[has]("opacity") && $(node, {"stroke-opacity": clr.opacity > 1 ? clr.opacity / 100 : clr.opacity});
if (att == "stroke" && o._.arrows) {
"startString" in o._.arrows && addArrow(o, o._.arrows.startString);
"endString" in o._.arrows && addArrow(o, o._.arrows.endString, 1);
}
break;
case "gradient":
(o.type == "circle" || o.type == "ellipse" || Str(value).charAt() != "r") && addGradientFill(o, value);
break;
case "opacity":
if (attrs.gradient && !attrs[has]("stroke-opacity")) {
$(node, {"stroke-opacity": value > 1 ? value / 100 : value});
}
// fall
case "fill-opacity":
if (attrs.gradient) {
gradient = R._g.doc.getElementById(node.getAttribute("fill").replace(/^url\(#|\)$/g, E));
if (gradient) {
stops = gradient.getElementsByTagName("stop");
$(stops[stops.length - 1], {"stop-opacity": value});
}
break;
}
default:
att == "font-size" && (value = toInt(value, 10) + "px");
var cssrule = att.replace(/(\-.)/g, function (w) {
return w.substring(1).toUpperCase();
});
node.style[cssrule] = value;
o._.dirty = 1;
node.setAttribute(att, value);
break;
}
}
}
tuneText(o, params);
node.style.visibility = vis;
},
leading = 1.2,
tuneText = function (el, params) {
if (el.type != "text" || !(params[has]("text") || params[has]("font") || params[has]("font-size") || params[has]("x") || params[has]("y"))) {
return;
}
var a = el.attrs,
node = el.node,
fontSize = node.firstChild ? toInt(R._g.doc.defaultView.getComputedStyle(node.firstChild, E).getPropertyValue("font-size"), 10) : 10;
if (params[has]("text")) {
a.text = params.text;
while (node.firstChild) {
node.removeChild(node.firstChild);
}
var texts = Str(params.text).split("\n"),
tspans = [],
tspan;
for (var i = 0, ii = texts.length; i < ii; i++) {
tspan = $("tspan");
i && $(tspan, {dy: fontSize * leading, x: a.x});
tspan.appendChild(R._g.doc.createTextNode(texts[i]));
node.appendChild(tspan);
tspans[i] = tspan;
}
} else {
tspans = node.getElementsByTagName("tspan");
for (i = 0, ii = tspans.length; i < ii; i++) if (i) {
$(tspans[i], {dy: fontSize * leading, x: a.x});
} else {
$(tspans[0], {dy: 0});
}
}
$(node, {x: a.x, y: a.y});
el._.dirty = 1;
var bb = el._getBBox(),
dif = a.y - (bb.y + bb.height / 2);
dif && R.is(dif, "finite") && $(tspans[0], {dy: dif});
},
Element = function (node, svg) {
var X = 0,
Y = 0;
this[0] = this.node = node;
node.raphael = true;
this.id = R._oid++;
node.raphaelid = this.id;
this.matrix = R.matrix();
this.realPath = null;
this.paper = svg;
this.attrs = this.attrs || {};
this._ = {
transform: [],
sx: 1,
sy: 1,
deg: 0,
dx: 0,
dy: 0,
dirty: 1
};
!svg.bottom && (svg.bottom = this);
this.prev = svg.top;
svg.top && (svg.top.next = this);
svg.top = this;
this.next = null;
},
elproto = R.el;
Element.prototype = elproto;
elproto.constructor = Element;
R._engine.path = function (pathString, SVG) {
var el = $("path");
SVG.canvas && SVG.canvas.appendChild(el);
var p = new Element(el, SVG);
p.type = "path";
setFillAndStroke(p, {
fill: "none",
stroke: "#000",
path: pathString
});
return p;
};
elproto.rotate = function (deg, cx, cy) {
if (this.removed) {
return this;
}
deg = Str(deg).split(separator);
if (deg.length - 1) {
cx = toFloat(deg[1]);
cy = toFloat(deg[2]);
}
deg = toFloat(deg[0]);
(cy == null) && (cx = cy);
if (cx == null || cy == null) {
var bbox = this.getBBox(1);
cx = bbox.x + bbox.width / 2;
cy = bbox.y + bbox.height / 2;
}
this.transform(this._.transform.concat([["r", deg, cx, cy]]));
return this;
};
elproto.scale = function (sx, sy, cx, cy) {
if (this.removed) {
return this;
}
sx = Str(sx).split(separator);
if (sx.length - 1) {
sy = toFloat(sx[1]);
cx = toFloat(sx[2]);
cy = toFloat(sx[3]);
}
sx = toFloat(sx[0]);
(sy == null) && (sy = sx);
(cy == null) && (cx = cy);
if (cx == null || cy == null) {
var bbox = this.getBBox(1);
}
cx = cx == null ? bbox.x + bbox.width / 2 : cx;
cy = cy == null ? bbox.y + bbox.height / 2 : cy;
this.transform(this._.transform.concat([["s", sx, sy, cx, cy]]));
return this;
};
elproto.translate = function (dx, dy) {
if (this.removed) {
return this;
}
dx = Str(dx).split(separator);
if (dx.length - 1) {
dy = toFloat(dx[1]);
}
dx = toFloat(dx[0]) || 0;
dy = +dy || 0;
this.transform(this._.transform.concat([["t", dx, dy]]));
return this;
};
elproto.transform = function (tstr) {
var _ = this._;
if (tstr == null) {
return _.transform;
}
R._extractTransform(this, tstr);
this.clip && $(this.clip, {transform: this.matrix.invert()});
this.pattern && updatePosition(this);
this.node && $(this.node, {transform: this.matrix});
if (_.sx != 1 || _.sy != 1) {
var sw = this.attrs[has]("stroke-width") ? this.attrs["stroke-width"] : 1;
this.attr({"stroke-width": sw});
}
return this;
};
elproto.hide = function () {
!this.removed && this.paper.safari(this.node.style.display = "none");
return this;
};
elproto.show = function () {
!this.removed && this.paper.safari(this.node.style.display = "");
return this;
};
elproto.remove = function () {
if (this.removed || !this.node.parentNode) {
return;
}
var paper = this.paper;
paper.__set__ && paper.__set__.exclude(this);
eve.unbind("raphael.*.*." + this.id);
if (this.gradient) {
paper.defs.removeChild(this.gradient);
}
R._tear(this, paper);
if (this.node.parentNode.tagName.toLowerCase() == "a") {
this.node.parentNode.parentNode.removeChild(this.node.parentNode);
} else {
this.node.parentNode.removeChild(this.node);
}
for (var i in this) {
this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null;
}
this.removed = true;
};
elproto._getBBox = function () {
if (this.node.style.display == "none") {
this.show();
var hide = true;
}
var bbox = {};
try {
bbox = this.node.getBBox();
} catch(e) {
// Firefox 3.0.x plays badly here
} finally {
bbox = bbox || {};
}
hide && this.hide();
return bbox;
};
elproto.attr = function (name, value) {
if (this.removed) {
return this;
}
if (name == null) {
var res = {};
for (var a in this.attrs) if (this.attrs[has](a)) {
res[a] = this.attrs[a];
}
res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient;
res.transform = this._.transform;
return res;
}
if (value == null && R.is(name, "string")) {
if (name == "fill" && this.attrs.fill == "none" && this.attrs.gradient) {
return this.attrs.gradient;
}
if (name == "transform") {
return this._.transform;
}
var names = name.split(separator),
out = {};
for (var i = 0, ii = names.length; i < ii; i++) {
name = names[i];
if (name in this.attrs) {
out[name] = this.attrs[name];
} else if (R.is(this.paper.customAttributes[name], "function")) {
out[name] = this.paper.customAttributes[name].def;
} else {
out[name] = R._availableAttrs[name];
}
}
return ii - 1 ? out : out[names[0]];
}
if (value == null && R.is(name, "array")) {
out = {};
for (i = 0, ii = name.length; i < ii; i++) {
out[name[i]] = this.attr(name[i]);
}
return out;
}
if (value != null) {
var params = {};
params[name] = value;
} else if (name != null && R.is(name, "object")) {
params = name;
}
for (var key in params) {
eve("raphael.attr." + key + "." + this.id, this, params[key]);
}
for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) {
var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));
this.attrs[key] = params[key];
for (var subkey in par) if (par[has](subkey)) {
params[subkey] = par[subkey];
}
}
setFillAndStroke(this, params);
return this;
};
elproto.toFront = function () {
if (this.removed) {
return this;
}
if (this.node.parentNode.tagName.toLowerCase() == "a") {
this.node.parentNode.parentNode.appendChild(this.node.parentNode);
} else {
this.node.parentNode.appendChild(this.node);
}
var svg = this.paper;
svg.top != this && R._tofront(this, svg);
return this;
};
elproto.toBack = function () {
if (this.removed) {
return this;
}
var parent = this.node.parentNode;
if (parent.tagName.toLowerCase() == "a") {
parent.parentNode.insertBefore(this.node.parentNode, this.node.parentNode.parentNode.firstChild);
} else if (parent.firstChild != this.node) {
parent.insertBefore(this.node, this.node.parentNode.firstChild);
}
R._toback(this, this.paper);
var svg = this.paper;
return this;
};
elproto.insertAfter = function (element) {
if (this.removed) {
return this;
}
var node = element.node || element[element.length - 1].node;
if (node.nextSibling) {
node.parentNode.insertBefore(this.node, node.nextSibling);
} else {
node.parentNode.appendChild(this.node);
}
R._insertafter(this, element, this.paper);
return this;
};
elproto.insertBefore = function (element) {
if (this.removed) {
return this;
}
var node = element.node || element[0].node;
node.parentNode.insertBefore(this.node, node);
R._insertbefore(this, element, this.paper);
return this;
};
elproto.blur = function (size) {
// Experimental. No Safari support. Use it on your own risk.
var t = this;
if (+size !== 0) {
var fltr = $("filter"),
blur = $("feGaussianBlur");
t.attrs.blur = size;
fltr.id = R.createUUID();
$(blur, {stdDeviation: +size || 1.5});
fltr.appendChild(blur);
t.paper.defs.appendChild(fltr);
t._blur = fltr;
$(t.node, {filter: "url(#" + fltr.id + ")"});
} else {
if (t._blur) {
t._blur.parentNode.removeChild(t._blur);
delete t._blur;
delete t.attrs.blur;
}
t.node.removeAttribute("filter");
}
};
R._engine.circle = function (svg, x, y, r) {
var el = $("circle");
svg.canvas && svg.canvas.appendChild(el);
var res = new Element(el, svg);
res.attrs = {cx: x, cy: y, r: r, fill: "none", stroke: "#000"};
res.type = "circle";
$(el, res.attrs);
return res;
};
R._engine.rect = function (svg, x, y, w, h, r) {
var el = $("rect");
svg.canvas && svg.canvas.appendChild(el);
var res = new Element(el, svg);
res.attrs = {x: x, y: y, width: w, height: h, r: r || 0, rx: r || 0, ry: r || 0, fill: "none", stroke: "#000"};
res.type = "rect";
$(el, res.attrs);
return res;
};
R._engine.ellipse = function (svg, x, y, rx, ry) {
var el = $("ellipse");
svg.canvas && svg.canvas.appendChild(el);
var res = new Element(el, svg);
res.attrs = {cx: x, cy: y, rx: rx, ry: ry, fill: "none", stroke: "#000"};
res.type = "ellipse";
$(el, res.attrs);
return res;
};
R._engine.image = function (svg, src, x, y, w, h) {
var el = $("image");
$(el, {x: x, y: y, width: w, height: h, preserveAspectRatio: "none"});
el.setAttributeNS(xlink, "href", src);
svg.canvas && svg.canvas.appendChild(el);
var res = new Element(el, svg);
res.attrs = {x: x, y: y, width: w, height: h, src: src};
res.type = "image";
return res;
};
R._engine.text = function (svg, x, y, text) {
var el = $("text");
svg.canvas && svg.canvas.appendChild(el);
var res = new Element(el, svg);
res.attrs = {
x: x,
y: y,
"text-anchor": "middle",
text: text,
font: R._availableAttrs.font,
stroke: "none",
fill: "#000"
};
res.type = "text";
setFillAndStroke(res, res.attrs);
return res;
};
R._engine.setSize = function (width, height) {
this.width = width || this.width;
this.height = height || this.height;
this.canvas.setAttribute("width", this.width);
this.canvas.setAttribute("height", this.height);
if (this._viewBox) {
this.setViewBox.apply(this, this._viewBox);
}
return this;
};
R._engine.create = function () {
var con = R._getContainer.apply(0, arguments),
container = con && con.container,
x = con.x,
y = con.y,
width = con.width,
height = con.height;
if (!container) {
throw new Error("SVG container not found.");
}
var cnvs = $("svg"),
css = "overflow:hidden;",
isFloating;
x = x || 0;
y = y || 0;
width = width || 512;
height = height || 342;
$(cnvs, {
height: height,
version: 1.1,
width: width,
xmlns: "http://www.w3.org/2000/svg"
});
if (container == 1) {
cnvs.style.cssText = css + "position:absolute;left:" + x + "px;top:" + y + "px";
R._g.doc.body.appendChild(cnvs);
isFloating = 1;
} else {
cnvs.style.cssText = css + "position:relative";
if (container.firstChild) {
container.insertBefore(cnvs, container.firstChild);
} else {
container.appendChild(cnvs);
}
}
container = new R._Paper;
container.width = width;
container.height = height;
container.canvas = cnvs;
container.clear();
container._left = container._top = 0;
isFloating && (container.renderfix = function () {});
container.renderfix();
return container;
};
R._engine.setViewBox = function (x, y, w, h, fit) {
eve("raphael.setViewBox", this, this._viewBox, [x, y, w, h, fit]);
var size = mmax(w / this.width, h / this.height),
top = this.top,
aspectRatio = fit ? "meet" : "xMinYMin",
vb,
sw;
if (x == null) {
if (this._vbSize) {
size = 1;
}
delete this._vbSize;
vb = "0 0 " + this.width + S + this.height;
} else {
this._vbSize = size;
vb = x + S + y + S + w + S + h;
}
$(this.canvas, {
viewBox: vb,
preserveAspectRatio: aspectRatio
});
while (size && top) {
sw = "stroke-width" in top.attrs ? top.attrs["stroke-width"] : 1;
top.attr({"stroke-width": sw});
top._.dirty = 1;
top._.dirtyT = 1;
top = top.prev;
}
this._viewBox = [x, y, w, h, !!fit];
return this;
};
R.prototype.renderfix = function () {
var cnvs = this.canvas,
s = cnvs.style,
pos;
try {
pos = cnvs.getScreenCTM() || cnvs.createSVGMatrix();
} catch (e) {
pos = cnvs.createSVGMatrix();
}
var left = -pos.e % 1,
top = -pos.f % 1;
if (left || top) {
if (left) {
this._left = (this._left + left) % 1;
s.left = this._left + "px";
}
if (top) {
this._top = (this._top + top) % 1;
s.top = this._top + "px";
}
}
};
R.prototype.clear = function () {
R.eve("raphael.clear", this);
var c = this.canvas;
while (c.firstChild) {
c.removeChild(c.firstChild);
}
this.bottom = this.top = null;
(this.desc = $("desc")).appendChild(R._g.doc.createTextNode("Created with Rapha\xebl " + R.version));
c.appendChild(this.desc);
c.appendChild(this.defs = $("defs"));
};
R.prototype.remove = function () {
eve("raphael.remove", this);
this.canvas.parentNode && this.canvas.parentNode.removeChild(this.canvas);
for (var i in this) {
this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null;
}
};
var setproto = R.st;
for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {
setproto[method] = (function (methodname) {
return function () {
var arg = arguments;
return this.forEach(function (el) {
el[methodname].apply(el, arg);
});
};
})(method);
}
}(window.Raphael);
// ┌─────────────────────────────────────────────────────────────────────┐ \\
// │ Raphaël - JavaScript Vector Library │ \\
// ├─────────────────────────────────────────────────────────────────────┤ \\
// │ VML Module │ \\
// ├─────────────────────────────────────────────────────────────────────┤ \\
// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com) │ \\
// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com) │ \\
// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\
// └─────────────────────────────────────────────────────────────────────┘ \\
window.Raphael.vml && function (R) {
var has = "hasOwnProperty",
Str = String,
toFloat = parseFloat,
math = Math,
round = math.round,
mmax = math.max,
mmin = math.min,
abs = math.abs,
fillString = "fill",
separator = /[, ]+/,
eve = R.eve,
ms = " progid:DXImageTransform.Microsoft",
S = " ",
E = "",
map = {M: "m", L: "l", C: "c", Z: "x", m: "t", l: "r", c: "v", z: "x"},
bites = /([clmz]),?([^clmz]*)/gi,
blurregexp = / progid:\S+Blur\([^\)]+\)/g,
val = /-?[^,\s-]+/g,
cssDot = "position:absolute;left:0;top:0;width:1px;height:1px",
zoom = 21600,
pathTypes = {path: 1, rect: 1, image: 1},
ovalTypes = {circle: 1, ellipse: 1},
path2vml = function (path) {
var total = /[ahqstv]/ig,
command = R._pathToAbsolute;
Str(path).match(total) && (command = R._path2curve);
total = /[clmz]/g;
if (command == R._pathToAbsolute && !Str(path).match(total)) {
var res = Str(path).replace(bites, function (all, command, args) {
var vals = [],
isMove = command.toLowerCase() == "m",
res = map[command];
args.replace(val, function (value) {
if (isMove && vals.length == 2) {
res += vals + map[command == "m" ? "l" : "L"];
vals = [];
}
vals.push(round(value * zoom));
});
return res + vals;
});
return res;
}
var pa = command(path), p, r;
res = [];
for (var i = 0, ii = pa.length; i < ii; i++) {
p = pa[i];
r = pa[i][0].toLowerCase();
r == "z" && (r = "x");
for (var j = 1, jj = p.length; j < jj; j++) {
r += round(p[j] * zoom) + (j != jj - 1 ? "," : E);
}
res.push(r);
}
return res.join(S);
},
compensation = function (deg, dx, dy) {
var m = R.matrix();
m.rotate(-deg, .5, .5);
return {
dx: m.x(dx, dy),
dy: m.y(dx, dy)
};
},
setCoords = function (p, sx, sy, dx, dy, deg) {
var _ = p._,
m = p.matrix,
fillpos = _.fillpos,
o = p.node,
s = o.style,
y = 1,
flip = "",
dxdy,
kx = zoom / sx,
ky = zoom / sy;
s.visibility = "hidden";
if (!sx || !sy) {
return;
}
o.coordsize = abs(kx) + S + abs(ky);
s.rotation = deg * (sx * sy < 0 ? -1 : 1);
if (deg) {
var c = compensation(deg, dx, dy);
dx = c.dx;
dy = c.dy;
}
sx < 0 && (flip += "x");
sy < 0 && (flip += " y") && (y = -1);
s.flip = flip;
o.coordorigin = (dx * -kx) + S + (dy * -ky);
if (fillpos || _.fillsize) {
var fill = o.getElementsByTagName(fillString);
fill = fill && fill[0];
o.removeChild(fill);
if (fillpos) {
c = compensation(deg, m.x(fillpos[0], fillpos[1]), m.y(fillpos[0], fillpos[1]));
fill.position = c.dx * y + S + c.dy * y;
}
if (_.fillsize) {
fill.size = _.fillsize[0] * abs(sx) + S + _.fillsize[1] * abs(sy);
}
o.appendChild(fill);
}
s.visibility = "visible";
};
R.toString = function () {
return "Your browser doesn\u2019t support SVG. Falling down to VML.\nYou are running Rapha\xebl " + this.version;
};
var addArrow = function (o, value, isEnd) {
var values = Str(value).toLowerCase().split("-"),
se = isEnd ? "end" : "start",
i = values.length,
type = "classic",
w = "medium",
h = "medium";
while (i--) {
switch (values[i]) {
case "block":
case "classic":
case "oval":
case "diamond":
case "open":
case "none":
type = values[i];
break;
case "wide":
case "narrow": h = values[i]; break;
case "long":
case "short": w = values[i]; break;
}
}
var stroke = o.node.getElementsByTagName("stroke")[0];
stroke[se + "arrow"] = type;
stroke[se + "arrowlength"] = w;
stroke[se + "arrowwidth"] = h;
},
setFillAndStroke = function (o, params) {
// o.paper.canvas.style.display = "none";
o.attrs = o.attrs || {};
var node = o.node,
a = o.attrs,
s = node.style,
xy,
newpath = pathTypes[o.type] && (params.x != a.x || params.y != a.y || params.width != a.width || params.height != a.height || params.cx != a.cx || params.cy != a.cy || params.rx != a.rx || params.ry != a.ry || params.r != a.r),
isOval = ovalTypes[o.type] && (a.cx != params.cx || a.cy != params.cy || a.r != params.r || a.rx != params.rx || a.ry != params.ry),
res = o;
for (var par in params) if (params[has](par)) {
a[par] = params[par];
}
if (newpath) {
a.path = R._getPath[o.type](o);
o._.dirty = 1;
}
params.href && (node.href = params.href);
params.title && (node.title = params.title);
params.target && (node.target = params.target);
params.cursor && (s.cursor = params.cursor);
"blur" in params && o.blur(params.blur);
if (params.path && o.type == "path" || newpath) {
node.path = path2vml(~Str(a.path).toLowerCase().indexOf("r") ? R._pathToAbsolute(a.path) : a.path);
if (o.type == "image") {
o._.fillpos = [a.x, a.y];
o._.fillsize = [a.width, a.height];
setCoords(o, 1, 1, 0, 0, 0);
}
}
"transform" in params && o.transform(params.transform);
if (isOval) {
var cx = +a.cx,
cy = +a.cy,
rx = +a.rx || +a.r || 0,
ry = +a.ry || +a.r || 0;
node.path = R.format("ar{0},{1},{2},{3},{4},{1},{4},{1}x", round((cx - rx) * zoom), round((cy - ry) * zoom), round((cx + rx) * zoom), round((cy + ry) * zoom), round(cx * zoom));
}
if ("clip-rect" in params) {
var rect = Str(params["clip-rect"]).split(separator);
if (rect.length == 4) {
rect[2] = +rect[2] + (+rect[0]);
rect[3] = +rect[3] + (+rect[1]);
var div = node.clipRect || R._g.doc.createElement("div"),
dstyle = div.style;
dstyle.clip = R.format("rect({1}px {2}px {3}px {0}px)", rect);
if (!node.clipRect) {
dstyle.position = "absolute";
dstyle.top = 0;
dstyle.left = 0;
dstyle.width = o.paper.width + "px";
dstyle.height = o.paper.height + "px";
node.parentNode.insertBefore(div, node);
div.appendChild(node);
node.clipRect = div;
}
}
if (!params["clip-rect"]) {
node.clipRect && (node.clipRect.style.clip = "auto");
}
}
if (o.textpath) {
var textpathStyle = o.textpath.style;
params.font && (textpathStyle.font = params.font);
params["font-family"] && (textpathStyle.fontFamily = '"' + params["font-family"].split(",")[0].replace(/^['"]+|['"]+$/g, E) + '"');
params["font-size"] && (textpathStyle.fontSize = params["font-size"]);
params["font-weight"] && (textpathStyle.fontWeight = params["font-weight"]);
params["font-style"] && (textpathStyle.fontStyle = params["font-style"]);
}
if ("arrow-start" in params) {
addArrow(res, params["arrow-start"]);
}
if ("arrow-end" in params) {
addArrow(res, params["arrow-end"], 1);
}
if (params.opacity != null ||
params["stroke-width"] != null ||
params.fill != null ||
params.src != null ||
params.stroke != null ||
params["stroke-width"] != null ||
params["stroke-opacity"] != null ||
params["fill-opacity"] != null ||
params["stroke-dasharray"] != null ||
params["stroke-miterlimit"] != null ||
params["stroke-linejoin"] != null ||
params["stroke-linecap"] != null) {
var fill = node.getElementsByTagName(fillString),
newfill = false;
fill = fill && fill[0];
!fill && (newfill = fill = createNode(fillString));
if (o.type == "image" && params.src) {
fill.src = params.src;
}
params.fill && (fill.on = true);
if (fill.on == null || params.fill == "none" || params.fill === null) {
fill.on = false;
}
if (fill.on && params.fill) {
var isURL = Str(params.fill).match(R._ISURL);
if (isURL) {
fill.parentNode == node && node.removeChild(fill);
fill.rotate = true;
fill.src = isURL[1];
fill.type = "tile";
var bbox = o.getBBox(1);
fill.position = bbox.x + S + bbox.y;
o._.fillpos = [bbox.x, bbox.y];
R._preload(isURL[1], function () {
o._.fillsize = [this.offsetWidth, this.offsetHeight];
});
} else {
fill.color = R.getRGB(params.fill).hex;
fill.src = E;
fill.type = "solid";
if (R.getRGB(params.fill).error && (res.type in {circle: 1, ellipse: 1} || Str(params.fill).charAt() != "r") && addGradientFill(res, params.fill, fill)) {
a.fill = "none";
a.gradient = params.fill;
fill.rotate = false;
}
}
}
if ("fill-opacity" in params || "opacity" in params) {
var opacity = ((+a["fill-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+R.getRGB(params.fill).o + 1 || 2) - 1);
opacity = mmin(mmax(opacity, 0), 1);
fill.opacity = opacity;
if (fill.src) {
fill.color = "none";
}
}
node.appendChild(fill);
var stroke = (node.getElementsByTagName("stroke") && node.getElementsByTagName("stroke")[0]),
newstroke = false;
!stroke && (newstroke = stroke = createNode("stroke"));
if ((params.stroke && params.stroke != "none") ||
params["stroke-width"] ||
params["stroke-opacity"] != null ||
params["stroke-dasharray"] ||
params["stroke-miterlimit"] ||
params["stroke-linejoin"] ||
params["stroke-linecap"]) {
stroke.on = true;
}
(params.stroke == "none" || params.stroke === null || stroke.on == null || params.stroke == 0 || params["stroke-width"] == 0) && (stroke.on = false);
var strokeColor = R.getRGB(params.stroke);
stroke.on && params.stroke && (stroke.color = strokeColor.hex);
opacity = ((+a["stroke-opacity"] + 1 || 2) - 1) * ((+a.opacity + 1 || 2) - 1) * ((+strokeColor.o + 1 || 2) - 1);
var width = (toFloat(params["stroke-width"]) || 1) * .75;
opacity = mmin(mmax(opacity, 0), 1);
params["stroke-width"] == null && (width = a["stroke-width"]);
params["stroke-width"] && (stroke.weight = width);
width && width < 1 && (opacity *= width) && (stroke.weight = 1);
stroke.opacity = opacity;
params["stroke-linejoin"] && (stroke.joinstyle = params["stroke-linejoin"] || "miter");
stroke.miterlimit = params["stroke-miterlimit"] || 8;
params["stroke-linecap"] && (stroke.endcap = params["stroke-linecap"] == "butt" ? "flat" : params["stroke-linecap"] == "square" ? "square" : "round");
if (params["stroke-dasharray"]) {
var dasharray = {
"-": "shortdash",
".": "shortdot",
"-.": "shortdashdot",
"-..": "shortdashdotdot",
". ": "dot",
"- ": "dash",
"--": "longdash",
"- .": "dashdot",
"--.": "longdashdot",
"--..": "longdashdotdot"
};
stroke.dashstyle = dasharray[has](params["stroke-dasharray"]) ? dasharray[params["stroke-dasharray"]] : E;
}
newstroke && node.appendChild(stroke);
}
if (res.type == "text") {
res.paper.canvas.style.display = E;
var span = res.paper.span,
m = 100,
fontSize = a.font && a.font.match(/\d+(?:\.\d*)?(?=px)/);
s = span.style;
a.font && (s.font = a.font);
a["font-family"] && (s.fontFamily = a["font-family"]);
a["font-weight"] && (s.fontWeight = a["font-weight"]);
a["font-style"] && (s.fontStyle = a["font-style"]);
fontSize = toFloat(a["font-size"] || fontSize && fontSize[0]) || 10;
s.fontSize = fontSize * m + "px";
res.textpath.string && (span.innerHTML = Str(res.textpath.string).replace(/</g, "&#60;").replace(/&/g, "&#38;").replace(/\n/g, "<br>"));
var brect = span.getBoundingClientRect();
res.W = a.w = (brect.right - brect.left) / m;
res.H = a.h = (brect.bottom - brect.top) / m;
// res.paper.canvas.style.display = "none";
res.X = a.x;
res.Y = a.y + res.H / 2;
("x" in params || "y" in params) && (res.path.v = R.format("m{0},{1}l{2},{1}", round(a.x * zoom), round(a.y * zoom), round(a.x * zoom) + 1));
var dirtyattrs = ["x", "y", "text", "font", "font-family", "font-weight", "font-style", "font-size"];
for (var d = 0, dd = dirtyattrs.length; d < dd; d++) if (dirtyattrs[d] in params) {
res._.dirty = 1;
break;
}
// text-anchor emulation
switch (a["text-anchor"]) {
case "start":
res.textpath.style["v-text-align"] = "left";
res.bbx = res.W / 2;
break;
case "end":
res.textpath.style["v-text-align"] = "right";
res.bbx = -res.W / 2;
break;
default:
res.textpath.style["v-text-align"] = "center";
res.bbx = 0;
break;
}
res.textpath.style["v-text-kern"] = true;
}
// res.paper.canvas.style.display = E;
},
addGradientFill = function (o, gradient, fill) {
o.attrs = o.attrs || {};
var attrs = o.attrs,
pow = Math.pow,
opacity,
oindex,
type = "linear",
fxfy = ".5 .5";
o.attrs.gradient = gradient;
gradient = Str(gradient).replace(R._radial_gradient, function (all, fx, fy) {
type = "radial";
if (fx && fy) {
fx = toFloat(fx);
fy = toFloat(fy);
pow(fx - .5, 2) + pow(fy - .5, 2) > .25 && (fy = math.sqrt(.25 - pow(fx - .5, 2)) * ((fy > .5) * 2 - 1) + .5);
fxfy = fx + S + fy;
}
return E;
});
gradient = gradient.split(/\s*\-\s*/);
if (type == "linear") {
var angle = gradient.shift();
angle = -toFloat(angle);
if (isNaN(angle)) {
return null;
}
}
var dots = R._parseDots(gradient);
if (!dots) {
return null;
}
o = o.shape || o.node;
if (dots.length) {
o.removeChild(fill);
fill.on = true;
fill.method = "none";
fill.color = dots[0].color;
fill.color2 = dots[dots.length - 1].color;
var clrs = [];
for (var i = 0, ii = dots.length; i < ii; i++) {
dots[i].offset && clrs.push(dots[i].offset + S + dots[i].color);
}
fill.colors = clrs.length ? clrs.join() : "0% " + fill.color;
if (type == "radial") {
fill.type = "gradientTitle";
fill.focus = "100%";
fill.focussize = "0 0";
fill.focusposition = fxfy;
fill.angle = 0;
} else {
// fill.rotate= true;
fill.type = "gradient";
fill.angle = (270 - angle) % 360;
}
o.appendChild(fill);
}
return 1;
},
Element = function (node, vml) {
this[0] = this.node = node;
node.raphael = true;
this.id = R._oid++;
node.raphaelid = this.id;
this.X = 0;
this.Y = 0;
this.attrs = {};
this.paper = vml;
this.matrix = R.matrix();
this._ = {
transform: [],
sx: 1,
sy: 1,
dx: 0,
dy: 0,
deg: 0,
dirty: 1,
dirtyT: 1
};
!vml.bottom && (vml.bottom = this);
this.prev = vml.top;
vml.top && (vml.top.next = this);
vml.top = this;
this.next = null;
};
var elproto = R.el;
Element.prototype = elproto;
elproto.constructor = Element;
elproto.transform = function (tstr) {
if (tstr == null) {
return this._.transform;
}
var vbs = this.paper._viewBoxShift,
vbt = vbs ? "s" + [vbs.scale, vbs.scale] + "-1-1t" + [vbs.dx, vbs.dy] : E,
oldt;
if (vbs) {
oldt = tstr = Str(tstr).replace(/\.{3}|\u2026/g, this._.transform || E);
}
R._extractTransform(this, vbt + tstr);
var matrix = this.matrix.clone(),
skew = this.skew,
o = this.node,
split,
isGrad = ~Str(this.attrs.fill).indexOf("-"),
isPatt = !Str(this.attrs.fill).indexOf("url(");
matrix.translate(-.5, -.5);
if (isPatt || isGrad || this.type == "image") {
skew.matrix = "1 0 0 1";
skew.offset = "0 0";
split = matrix.split();
if ((isGrad && split.noRotation) || !split.isSimple) {
o.style.filter = matrix.toFilter();
var bb = this.getBBox(),
bbt = this.getBBox(1),
dx = bb.x - bbt.x,
dy = bb.y - bbt.y;
o.coordorigin = (dx * -zoom) + S + (dy * -zoom);
setCoords(this, 1, 1, dx, dy, 0);
} else {
o.style.filter = E;
setCoords(this, split.scalex, split.scaley, split.dx, split.dy, split.rotate);
}
} else {
o.style.filter = E;
skew.matrix = Str(matrix);
skew.offset = matrix.offset();
}
oldt && (this._.transform = oldt);
return this;
};
elproto.rotate = function (deg, cx, cy) {
if (this.removed) {
return this;
}
if (deg == null) {
return;
}
deg = Str(deg).split(separator);
if (deg.length - 1) {
cx = toFloat(deg[1]);
cy = toFloat(deg[2]);
}
deg = toFloat(deg[0]);
(cy == null) && (cx = cy);
if (cx == null || cy == null) {
var bbox = this.getBBox(1);
cx = bbox.x + bbox.width / 2;
cy = bbox.y + bbox.height / 2;
}
this._.dirtyT = 1;
this.transform(this._.transform.concat([["r", deg, cx, cy]]));
return this;
};
elproto.translate = function (dx, dy) {
if (this.removed) {
return this;
}
dx = Str(dx).split(separator);
if (dx.length - 1) {
dy = toFloat(dx[1]);
}
dx = toFloat(dx[0]) || 0;
dy = +dy || 0;
if (this._.bbox) {
this._.bbox.x += dx;
this._.bbox.y += dy;
}
this.transform(this._.transform.concat([["t", dx, dy]]));
return this;
};
elproto.scale = function (sx, sy, cx, cy) {
if (this.removed) {
return this;
}
sx = Str(sx).split(separator);
if (sx.length - 1) {
sy = toFloat(sx[1]);
cx = toFloat(sx[2]);
cy = toFloat(sx[3]);
isNaN(cx) && (cx = null);
isNaN(cy) && (cy = null);
}
sx = toFloat(sx[0]);
(sy == null) && (sy = sx);
(cy == null) && (cx = cy);
if (cx == null || cy == null) {
var bbox = this.getBBox(1);
}
cx = cx == null ? bbox.x + bbox.width / 2 : cx;
cy = cy == null ? bbox.y + bbox.height / 2 : cy;
this.transform(this._.transform.concat([["s", sx, sy, cx, cy]]));
this._.dirtyT = 1;
return this;
};
elproto.hide = function () {
!this.removed && (this.node.style.display = "none");
return this;
};
elproto.show = function () {
!this.removed && (this.node.style.display = E);
return this;
};
elproto._getBBox = function () {
if (this.removed) {
return {};
}
return {
x: this.X + (this.bbx || 0) - this.W / 2,
y: this.Y - this.H,
width: this.W,
height: this.H
};
};
elproto.remove = function () {
if (this.removed || !this.node.parentNode) {
return;
}
this.paper.__set__ && this.paper.__set__.exclude(this);
R.eve.unbind("raphael.*.*." + this.id);
R._tear(this, this.paper);
this.node.parentNode.removeChild(this.node);
this.shape && this.shape.parentNode.removeChild(this.shape);
for (var i in this) {
this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null;
}
this.removed = true;
};
elproto.attr = function (name, value) {
if (this.removed) {
return this;
}
if (name == null) {
var res = {};
for (var a in this.attrs) if (this.attrs[has](a)) {
res[a] = this.attrs[a];
}
res.gradient && res.fill == "none" && (res.fill = res.gradient) && delete res.gradient;
res.transform = this._.transform;
return res;
}
if (value == null && R.is(name, "string")) {
if (name == fillString && this.attrs.fill == "none" && this.attrs.gradient) {
return this.attrs.gradient;
}
var names = name.split(separator),
out = {};
for (var i = 0, ii = names.length; i < ii; i++) {
name = names[i];
if (name in this.attrs) {
out[name] = this.attrs[name];
} else if (R.is(this.paper.customAttributes[name], "function")) {
out[name] = this.paper.customAttributes[name].def;
} else {
out[name] = R._availableAttrs[name];
}
}
return ii - 1 ? out : out[names[0]];
}
if (this.attrs && value == null && R.is(name, "array")) {
out = {};
for (i = 0, ii = name.length; i < ii; i++) {
out[name[i]] = this.attr(name[i]);
}
return out;
}
var params;
if (value != null) {
params = {};
params[name] = value;
}
value == null && R.is(name, "object") && (params = name);
for (var key in params) {
eve("raphael.attr." + key + "." + this.id, this, params[key]);
}
if (params) {
for (key in this.paper.customAttributes) if (this.paper.customAttributes[has](key) && params[has](key) && R.is(this.paper.customAttributes[key], "function")) {
var par = this.paper.customAttributes[key].apply(this, [].concat(params[key]));
this.attrs[key] = params[key];
for (var subkey in par) if (par[has](subkey)) {
params[subkey] = par[subkey];
}
}
// this.paper.canvas.style.display = "none";
if (params.text && this.type == "text") {
this.textpath.string = params.text;
}
setFillAndStroke(this, params);
// this.paper.canvas.style.display = E;
}
return this;
};
elproto.toFront = function () {
!this.removed && this.node.parentNode.appendChild(this.node);
this.paper && this.paper.top != this && R._tofront(this, this.paper);
return this;
};
elproto.toBack = function () {
if (this.removed) {
return this;
}
if (this.node.parentNode.firstChild != this.node) {
this.node.parentNode.insertBefore(this.node, this.node.parentNode.firstChild);
R._toback(this, this.paper);
}
return this;
};
elproto.insertAfter = function (element) {
if (this.removed) {
return this;
}
if (element.constructor == R.st.constructor) {
element = element[element.length - 1];
}
if (element.node.nextSibling) {
element.node.parentNode.insertBefore(this.node, element.node.nextSibling);
} else {
element.node.parentNode.appendChild(this.node);
}
R._insertafter(this, element, this.paper);
return this;
};
elproto.insertBefore = function (element) {
if (this.removed) {
return this;
}
if (element.constructor == R.st.constructor) {
element = element[0];
}
element.node.parentNode.insertBefore(this.node, element.node);
R._insertbefore(this, element, this.paper);
return this;
};
elproto.blur = function (size) {
var s = this.node.runtimeStyle,
f = s.filter;
f = f.replace(blurregexp, E);
if (+size !== 0) {
this.attrs.blur = size;
s.filter = f + S + ms + ".Blur(pixelradius=" + (+size || 1.5) + ")";
s.margin = R.format("-{0}px 0 0 -{0}px", round(+size || 1.5));
} else {
s.filter = f;
s.margin = 0;
delete this.attrs.blur;
}
};
R._engine.path = function (pathString, vml) {
var el = createNode("shape");
el.style.cssText = cssDot;
el.coordsize = zoom + S + zoom;
el.coordorigin = vml.coordorigin;
var p = new Element(el, vml),
attr = {fill: "none", stroke: "#000"};
pathString && (attr.path = pathString);
p.type = "path";
p.path = [];
p.Path = E;
setFillAndStroke(p, attr);
vml.canvas.appendChild(el);
var skew = createNode("skew");
skew.on = true;
el.appendChild(skew);
p.skew = skew;
p.transform(E);
return p;
};
R._engine.rect = function (vml, x, y, w, h, r) {
var path = R._rectPath(x, y, w, h, r),
res = vml.path(path),
a = res.attrs;
res.X = a.x = x;
res.Y = a.y = y;
res.W = a.width = w;
res.H = a.height = h;
a.r = r;
a.path = path;
res.type = "rect";
return res;
};
R._engine.ellipse = function (vml, x, y, rx, ry) {
var res = vml.path(),
a = res.attrs;
res.X = x - rx;
res.Y = y - ry;
res.W = rx * 2;
res.H = ry * 2;
res.type = "ellipse";
setFillAndStroke(res, {
cx: x,
cy: y,
rx: rx,
ry: ry
});
return res;
};
R._engine.circle = function (vml, x, y, r) {
var res = vml.path(),
a = res.attrs;
res.X = x - r;
res.Y = y - r;
res.W = res.H = r * 2;
res.type = "circle";
setFillAndStroke(res, {
cx: x,
cy: y,
r: r
});
return res;
};
R._engine.image = function (vml, src, x, y, w, h) {
var path = R._rectPath(x, y, w, h),
res = vml.path(path).attr({stroke: "none"}),
a = res.attrs,
node = res.node,
fill = node.getElementsByTagName(fillString)[0];
a.src = src;
res.X = a.x = x;
res.Y = a.y = y;
res.W = a.width = w;
res.H = a.height = h;
a.path = path;
res.type = "image";
fill.parentNode == node && node.removeChild(fill);
fill.rotate = true;
fill.src = src;
fill.type = "tile";
res._.fillpos = [x, y];
res._.fillsize = [w, h];
node.appendChild(fill);
setCoords(res, 1, 1, 0, 0, 0);
return res;
};
R._engine.text = function (vml, x, y, text) {
var el = createNode("shape"),
path = createNode("path"),
o = createNode("textpath");
x = x || 0;
y = y || 0;
text = text || "";
path.v = R.format("m{0},{1}l{2},{1}", round(x * zoom), round(y * zoom), round(x * zoom) + 1);
path.textpathok = true;
o.string = Str(text);
o.on = true;
el.style.cssText = cssDot;
el.coordsize = zoom + S + zoom;
el.coordorigin = "0 0";
var p = new Element(el, vml),
attr = {
fill: "#000",
stroke: "none",
font: R._availableAttrs.font,
text: text
};
p.shape = el;
p.path = path;
p.textpath = o;
p.type = "text";
p.attrs.text = Str(text);
p.attrs.x = x;
p.attrs.y = y;
p.attrs.w = 1;
p.attrs.h = 1;
setFillAndStroke(p, attr);
el.appendChild(o);
el.appendChild(path);
vml.canvas.appendChild(el);
var skew = createNode("skew");
skew.on = true;
el.appendChild(skew);
p.skew = skew;
p.transform(E);
return p;
};
R._engine.setSize = function (width, height) {
var cs = this.canvas.style;
this.width = width;
this.height = height;
width == +width && (width += "px");
height == +height && (height += "px");
cs.width = width;
cs.height = height;
cs.clip = "rect(0 " + width + " " + height + " 0)";
if (this._viewBox) {
R._engine.setViewBox.apply(this, this._viewBox);
}
return this;
};
R._engine.setViewBox = function (x, y, w, h, fit) {
R.eve("raphael.setViewBox", this, this._viewBox, [x, y, w, h, fit]);
var width = this.width,
height = this.height,
size = 1 / mmax(w / width, h / height),
H, W;
if (fit) {
H = height / h;
W = width / w;
if (w * H < width) {
x -= (width - w * H) / 2 / H;
}
if (h * W < height) {
y -= (height - h * W) / 2 / W;
}
}
this._viewBox = [x, y, w, h, !!fit];
this._viewBoxShift = {
dx: -x,
dy: -y,
scale: size
};
this.forEach(function (el) {
el.transform("...");
});
return this;
};
var createNode;
R._engine.initWin = function (win) {
var doc = win.document;
doc.createStyleSheet().addRule(".rvml", "behavior:url(#default#VML)");
try {
!doc.namespaces.rvml && doc.namespaces.add("rvml", "urn:schemas-microsoft-com:vml");
createNode = function (tagName) {
return doc.createElement('<rvml:' + tagName + ' class="rvml">');
};
} catch (e) {
createNode = function (tagName) {
return doc.createElement('<' + tagName + ' xmlns="urn:schemas-microsoft.com:vml" class="rvml">');
};
}
};
R._engine.initWin(R._g.win);
R._engine.create = function () {
var con = R._getContainer.apply(0, arguments),
container = con.container,
height = con.height,
s,
width = con.width,
x = con.x,
y = con.y;
if (!container) {
throw new Error("VML container not found.");
}
var res = new R._Paper,
c = res.canvas = R._g.doc.createElement("div"),
cs = c.style;
x = x || 0;
y = y || 0;
width = width || 512;
height = height || 342;
res.width = width;
res.height = height;
width == +width && (width += "px");
height == +height && (height += "px");
res.coordsize = zoom * 1e3 + S + zoom * 1e3;
res.coordorigin = "0 0";
res.span = R._g.doc.createElement("span");
res.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;";
c.appendChild(res.span);
cs.cssText = R.format("top:0;left:0;width:{0};height:{1};display:inline-block;position:relative;clip:rect(0 {0} {1} 0);overflow:hidden", width, height);
if (container == 1) {
R._g.doc.body.appendChild(c);
cs.left = x + "px";
cs.top = y + "px";
cs.position = "absolute";
} else {
if (container.firstChild) {
container.insertBefore(c, container.firstChild);
} else {
container.appendChild(c);
}
}
res.renderfix = function () {};
return res;
};
R.prototype.clear = function () {
R.eve("raphael.clear", this);
this.canvas.innerHTML = E;
this.span = R._g.doc.createElement("span");
this.span.style.cssText = "position:absolute;left:-9999em;top:-9999em;padding:0;margin:0;line-height:1;display:inline;";
this.canvas.appendChild(this.span);
this.bottom = this.top = null;
};
R.prototype.remove = function () {
R.eve("raphael.remove", this);
this.canvas.parentNode.removeChild(this.canvas);
for (var i in this) {
this[i] = typeof this[i] == "function" ? R._removedFactory(i) : null;
}
return true;
};
var setproto = R.st;
for (var method in elproto) if (elproto[has](method) && !setproto[has](method)) {
setproto[method] = (function (methodname) {
return function () {
var arg = arguments;
return this.forEach(function (el) {
el[methodname].apply(el, arg);
});
};
})(method);
}
}(window.Raphael);
/*
* ScaleRaphael 0.8 by Zevan Rosser 2010
* For use with Raphael library : www.raphaeljs.com
* Licensed under the MIT license.
*
* www.shapevent.com/scaleraphael/
*/
(function(){
window.ScaleRaphael = function(container, width, height){
var wrapper = document.getElementById(container);
if (!wrapper.style.position) wrapper.style.position = "relative";
wrapper.style.width = width + "px";
wrapper.style.height = height + "px";
wrapper.style.overflow = "hidden";
var nestedWrapper;
if (Raphael.type == "VML"){
wrapper.innerHTML = "<rvml:group style='position : absolute; width: 1000px; height: 1000px; top: 0px; left: 0px' coordsize='1000,1000' class='rvml' id='vmlgroup'><\/rvml:group>";
nestedWrapper = document.getElementById("vmlgroup");
}else{
wrapper.innerHTML = "<div id='svggroup'><\/div>";
nestedWrapper = document.getElementById("svggroup");
}
var paper = new Raphael(nestedWrapper, width, height);
var vmlDiv;
if (Raphael.type == "SVG"){
paper.canvas.setAttribute("viewBox", "0 0 "+width+" "+height);
}else{
vmlDiv = wrapper.getElementsByTagName("div")[0];
}
paper.changeSize = function(w, h, center, clipping){
clipping = !clipping;
var ratioW = w / width;
var ratioH = h / height;
var scale = ratioW < ratioH ? ratioW : ratioH;
var newHeight = parseInt(height * scale);
var newWidth = parseInt(width * scale);
if (Raphael.type == "VML"){
// scale the textpaths
var txt = document.getElementsByTagName("textpath");
for (var i in txt){
var curr = txt[i];
if (curr.style){
if(!curr._fontSize){
var mod = curr.style.font.split("px");
curr._fontSize = parseInt(mod[0]);
curr._font = mod[1];
}
curr.style.font = curr._fontSize * scale + "px" + curr._font;
}
}
var newSize;
if (newWidth < newHeight){
newSize = newWidth * 1000 / width;
}else{
newSize = newHeight * 1000 / height;
}
newSize = parseInt(newSize);
nestedWrapper.style.width = newSize + "px";
nestedWrapper.style.height = newSize + "px";
if (clipping){
nestedWrapper.style.left = parseInt((w - newWidth) / 2) + "px";
nestedWrapper.style.top = parseInt((h - newHeight) / 2) + "px";
}
vmlDiv.style.overflow = "visible";
}
if (clipping){
newWidth = w;
newHeight = h;
}
wrapper.style.width = newWidth + "px";
wrapper.style.height = newHeight + "px";
paper.setSize(newWidth, newHeight);
if (center){
wrapper.style.position = "absolute";
wrapper.style.left = parseInt((w - newWidth) / 2) + "px";
wrapper.style.top = parseInt((h - newHeight) / 2) + "px";
}
}
paper.scaleAll = function(amount){
paper.changeSize(width * amount, height * amount);
}
paper.changeSize(width, height);
paper.w = width;
paper.h = height;
return paper;
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment