diff --git a/API/GisStationsMeasurements.idMap.10.txt b/API/GisStationsMeasurements.idMap.10.txt
new file mode 100644
index 000000000..d3bf9cbeb
--- /dev/null
+++ b/API/GisStationsMeasurements.idMap.10.txt
@@ -0,0 +1,100 @@
+// 20240426143439
+// http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsMeasurements
+
+{
+ "Name": "Liste aller Messungen der Geraete",
+ "Zeitstempel": "2024-04-26T14:34:39.4455818+02:00",
+ "IdMap": "10",
+ "Statis": [
+ {
+ "IdLD": 50004,
+ "IdL": 18624,
+ "IdDP": 3,
+ "Na": "FBT",
+ "Val": "20.5",
+ "Unit": "°C",
+ "Gr": "GMA",
+ "Area_Name": "Renzenhof (RG)"
+ },
+ {
+ "IdLD": 50004,
+ "IdL": 18624,
+ "IdDP": 10,
+ "Na": "GT",
+ "Val": "nicht ermittelbar",
+ "Unit": "°C",
+ "Gr": "GMA",
+ "Area_Name": "Renzenhof (RG)"
+ },
+ {
+ "IdLD": 50004,
+ "IdL": 18624,
+ "IdDP": 2,
+ "Na": "LT",
+ "Val": "Datenlücke",
+ "Unit": "°C",
+ "Gr": "GMA",
+ "Area_Name": "Renzenhof (RG)"
+ },
+ {
+ "IdLD": 50004,
+ "IdL": 18624,
+ "IdDP": 6,
+ "Na": "RLF",
+ "Val": "100.0",
+ "Unit": "%",
+ "Gr": "GMA",
+ "Area_Name": "Renzenhof (RG)"
+ },
+ {
+ "IdLD": 50004,
+ "IdL": 18624,
+ "IdDP": 11,
+ "Na": "TPT",
+ "Val": "8.3",
+ "Unit": "°C",
+ "Gr": "GMA",
+ "Area_Name": "Renzenhof (RG)"
+ },
+ {
+ "IdLD": 50004,
+ "IdL": 18624,
+ "IdDP": 12,
+ "Na": "TT1",
+ "Val": "---",
+ "Unit": "°C",
+ "Gr": "GMA",
+ "Area_Name": "Renzenhof (RG)"
+ },
+ {
+ "IdLD": 50004,
+ "IdL": 18624,
+ "IdDP": 16,
+ "Na": "WFD",
+ "Val": "0.12",
+ "Unit": "mm",
+ "Gr": "GMA",
+ "Area_Name": "Renzenhof (RG)"
+ },
+ {
+ "IdLD": 50004,
+ "IdL": 18624,
+ "IdDP": 8,
+ "Na": "WGM",
+ "Val": "---",
+ "Unit": "m/s",
+ "Gr": "GMA",
+ "Area_Name": "Renzenhof (RG)"
+ },
+ {
+ "IdLD": 50004,
+ "IdL": 18624,
+ "IdDP": 9,
+ "Na": "WGS",
+ "Val": "---",
+ "Unit": "m/s",
+ "Gr": "GMA",
+ "Area_Name": "Renzenhof (RG)"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/API/GisStationsStaticDistrict.10.484.txt b/API/GisStationsStaticDistrict.10.484.txt
new file mode 100644
index 000000000..285edaeb0
--- /dev/null
+++ b/API/GisStationsStaticDistrict.10.484.txt
@@ -0,0 +1,265 @@
+// 20240426143033
+// http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsStaticDistrict
+
+{
+ "Name": "Liste aller Geraete einer bestimmten Karte",
+ "Zeitstempel": "2024-04-26T14:30:33.690396+02:00",
+ "IdMap": "10",
+ "Points": [
+ {
+ "LD_Name": "CPL Bentheim",
+ "IdLD": 50017,
+ "Device": "CPL V3.5 mit 16 Kü",
+ "Link": "cpl.aspx?ver=35&kue=16&id=50017",
+ "Location_Name": "Technikraum",
+ "Location_Short": "BEHE",
+ "IdLocation": 17448,
+ "Area_Name": "Bad-Bentheim",
+ "Area_Short": "BEHE--00",
+ "IdArea": 16418,
+ "X": 51.5728,
+ "Y": 9.00056,
+ "Icon": 20,
+ "System": 1,
+ "Active": 0
+ },
+ {
+ "LD_Name": "Drucker",
+ "IdLD": 50084,
+ "Device": "Basisgerät",
+ "Link": "basis.aspx?ver=1&id=50084",
+ "Location_Name": "Technikraum",
+ "Location_Short": "SLUE",
+ "IdLocation": 17776,
+ "Area_Name": "Schlüchtern II",
+ "Area_Short": "SLUE--00",
+ "IdArea": 14688,
+ "X": 53.2455,
+ "Y": 8.1614,
+ "Icon": 14,
+ "System": 200,
+ "Active": 0
+ },
+ {
+ "LD_Name": "Türkontakt",
+ "IdLD": 50666,
+ "Device": "ECI",
+ "Link": "eci.aspx?ver=1&id=50666",
+ "Location_Name": "Technikraum",
+ "Location_Short": "SLUE",
+ "IdLocation": 17776,
+ "Area_Name": "Schlüchtern II",
+ "Area_Short": "SLUE--00",
+ "IdArea": 14688,
+ "X": 53.2455,
+ "Y": 8.1614,
+ "Icon": 17,
+ "System": 2,
+ "Active": 0
+ },
+ {
+ "LD_Name": "Triptis",
+ "IdLD": 50888,
+ "Device": "CPL 200",
+ "Link": "cpl.aspx?ver=30&kue=16&id=50888",
+ "Location_Name": "Technikraum",
+ "Location_Short": "SLUE",
+ "IdLocation": 17776,
+ "Area_Name": "Schlüchtern II",
+ "Area_Short": "SLUE--00",
+ "IdArea": 14688,
+ "X": 53.2455,
+ "Y": 8.1614,
+ "Icon": 20,
+ "System": 1,
+ "Active": 0
+ },
+ {
+ "LD_Name": "Rodaborn I",
+ "IdLD": 50889,
+ "Device": "cpl.mio V>6",
+ "Link": "cplmio.aspx?ver=1&id=50889",
+ "Location_Name": "Technikraum",
+ "Location_Short": "SLUE",
+ "IdLocation": 17776,
+ "Area_Name": "Schlüchtern II",
+ "Area_Short": "SLUE--00",
+ "IdArea": 14688,
+ "X": 53.2455,
+ "Y": 8.1614,
+ "Icon": 20,
+ "System": 1,
+ "Active": 0
+ },
+ {
+ "LD_Name": "Rodaborn II",
+ "IdLD": 50900,
+ "Device": "cpl.mio V>6",
+ "Link": "cplmio.aspx?ver=1&id=50900",
+ "Location_Name": "Technikraum",
+ "Location_Short": "SLUE",
+ "IdLocation": 17776,
+ "Area_Name": "Schlüchtern II",
+ "Area_Short": "SLUE--00",
+ "IdArea": 14688,
+ "X": 53.2455,
+ "Y": 8.1614,
+ "Icon": 20,
+ "System": 1,
+ "Active": 0
+ },
+ {
+ "LD_Name": "Hermsdorf",
+ "IdLD": 50901,
+ "Device": "CPL V3.5 mit 24 Kü",
+ "Link": "cpl.aspx?ver=35&kue=24&id=50901",
+ "Location_Name": "Technikraum",
+ "Location_Short": "SLUE",
+ "IdLocation": 17776,
+ "Area_Name": "Schlüchtern II",
+ "Area_Short": "SLUE--00",
+ "IdArea": 14688,
+ "X": 53.2455,
+ "Y": 8.1614,
+ "Icon": 20,
+ "System": 1,
+ "Active": 1
+ },
+ {
+ "LD_Name": "GMA Littwin (TEST)",
+ "IdLD": 50004,
+ "Device": "Glättemeldeanlage",
+ "Link": "gma.aspx?ver=1&id=50004",
+ "Location_Name": "RG Relaisraum",
+ "Location_Short": "REZR",
+ "IdLocation": 18624,
+ "Area_Name": "Renzenhof (RG)",
+ "Area_Short": "REZHRG00",
+ "IdArea": 16570,
+ "X": 53.246036,
+ "Y": 8.163293,
+ "Icon": 1,
+ "System": 11,
+ "Active": 0
+ },
+ {
+ "LD_Name": "NRS Testserver",
+ "IdLD": 50005,
+ "Device": "Notruf Server",
+ "Link": "nrs_server.aspx?ver=1&id=50005",
+ "Location_Name": "(EV Ammersricht BZR REL)",
+ "Location_Short": "AMME",
+ "IdLocation": 21118,
+ "Area_Name": "Ammersricht BZR (FGN)",
+ "Area_Short": "AMMER--00",
+ "IdArea": 15958,
+ "X": 52.52726,
+ "Y": 12.165488,
+ "Icon": 19,
+ "System": 8,
+ "Active": 0
+ },
+ {
+ "LD_Name": "Gateway 2",
+ "IdLD": 50007,
+ "Device": "Notruf Server",
+ "Link": "nrs_server.aspx?ver=1&id=50007",
+ "Location_Name": "(EV Ammersricht BZR REL)",
+ "Location_Short": "AMME",
+ "IdLocation": 21118,
+ "Area_Name": "Ammersricht BZR (FGN)",
+ "Area_Short": "AMMER--00",
+ "IdArea": 15958,
+ "X": 52.52726,
+ "Y": 12.165488,
+ "Icon": 19,
+ "System": 8,
+ "Active": 0
+ },
+ {
+ "LD_Name": "Basisgerät mit SNMP MVP",
+ "IdLD": 50669,
+ "Device": "Basisgerät + SNMP",
+ "Link": "basisSNMP.aspx?&ver=1&id=50669",
+ "Location_Name": "Mylinghauserstraße Engelbert",
+ "Location_Short": "G-GEVELSBE-1",
+ "IdLocation": 24012,
+ "Area_Name": "Gevelsberg",
+ "Area_Short": "GMA-GEVELSBE",
+ "IdArea": 20919,
+ "X": 51.316799,
+ "Y": 7.33281,
+ "Icon": 14,
+ "System": 200,
+ "Active": 1
+ },
+ {
+ "LD_Name": "Server 3",
+ "IdLD": 50009,
+ "Device": "Notruf Server",
+ "Link": "nrs_server.aspx?ver=1&id=50009",
+ "Location_Name": "Militärringstraße Militärringstraße",
+ "Location_Short": "G-KÖLN-1",
+ "IdLocation": 24015,
+ "Area_Name": "Köln",
+ "Area_Short": "GMA-KÖLN",
+ "IdArea": 20921,
+ "X": 50.898399,
+ "Y": 6.92278,
+ "Icon": 19,
+ "System": 8,
+ "Active": 0
+ },
+ {
+ "LD_Name": "ICL Test 5",
+ "IdLD": 50054,
+ "Device": "ICL",
+ "Link": "icl.aspx?ver=1&id=50054",
+ "Location_Name": "Recheder Mühlenweg Dortmund-Ems-Kanal",
+ "Location_Short": "G-OLFEN-SE-1",
+ "IdLocation": 24022,
+ "Area_Name": "Olfen-Selm",
+ "Area_Short": "GMA-OLFEN-SE",
+ "IdArea": 20926,
+ "X": 51.702202,
+ "Y": 7.40822,
+ "Icon": 23,
+ "System": 100,
+ "Active": 0
+ },
+ {
+ "LD_Name": "ICL Test 3",
+ "IdLD": 50052,
+ "Device": "ICL",
+ "Link": "icl.aspx?ver=1&id=50052",
+ "Location_Name": "Weidenstraße Hestenberg",
+ "Location_Short": "G-PLETTENB-1",
+ "IdLocation": 24024,
+ "Area_Name": "Plettenberg",
+ "Area_Short": "GMA-PLETTENB",
+ "IdArea": 20928,
+ "X": 51.224098,
+ "Y": 7.86969,
+ "Icon": 23,
+ "System": 100,
+ "Active": 0
+ },
+ {
+ "LD_Name": "Test Februar Kai",
+ "IdLD": 50912,
+ "Device": "Dauerzählstelle DZ",
+ "Link": "dauz.aspx?ver=1&id=50912",
+ "Location_Name": "In der Hoffnung Kiesberg - BG Ost",
+ "Location_Short": "G-WUPPERTA-4",
+ "IdLocation": 24039,
+ "Area_Name": "Wuppertal",
+ "Area_Short": "GMA-WUPPERTA",
+ "IdArea": 20937,
+ "X": 51.238899,
+ "Y": 7.12715,
+ "Icon": 14,
+ "System": 110,
+ "Active": 1
+ }
+ ]
+}
\ No newline at end of file
diff --git a/API/GisStationsStatusDistrict.idMap.10.idUser.484.txt b/API/GisStationsStatusDistrict.idMap.10.idUser.484.txt
new file mode 100644
index 000000000..9f10be6df
--- /dev/null
+++ b/API/GisStationsStatusDistrict.idMap.10.idUser.484.txt
@@ -0,0 +1,182 @@
+GisStationsStatusDistrict.idMap.10.idUser.484
+// 20240426143804
+// http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsStatusDistrict
+
+{
+ "Name": "Liste aller Statis der Geraete",
+ "Zeitstempel": "2024-04-26T14:38:04.5711759+02:00",
+ "IdMap": "10",
+ "Statis": [
+ {
+ "IdLD": 50017,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "Eingang DE04 kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "Eingang DE05 kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "Eingang DE06 kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "Eingang DE07 kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "Eingang DE09 kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "Eingang DE10 kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "Eingang DE12 kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "Eingang DE13 kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "Eingang DE14 kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "Eingang DE15 kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "Eingang DE16 kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "Eingang DE17 kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "minor",
+ "Le": 3,
+ "Co": "#FFFF00",
+ "Me": "KÜG 07: Übersapnnung kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50004,
+ "Na": "major",
+ "Le": 2,
+ "Co": "#FF9900",
+ "Me": "Fahrbahntemperatur okay",
+ "Feld": 53,
+ "Icon": 25
+ },
+ {
+ "IdLD": 50017,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KÜG 01: Isolationsminderung kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KÜG 02: Isolationsminderung kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KÜG 03: Isolationsminderung kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KÜG 04: Isolationsminderung kommend",
+ "Feld": 3,
+ "Icon": 0
+ },
+ {
+ "IdLD": 50017,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "Ping True",
+ "Feld": 3,
+ "Icon": 0
+ }
+ ]
+}
\ No newline at end of file
diff --git a/API/GisSystemStatic.10.484.txt b/API/GisSystemStatic.10.484.txt
new file mode 100644
index 000000000..e2c4d1451
--- /dev/null
+++ b/API/GisSystemStatic.10.484.txt
@@ -0,0 +1,108 @@
+// 20240426143207
+// http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisSystemStatic
+
+{
+ "Name": "Liste aller angezeigten Systeme",
+ "Zeitstempel": "2024-04-26T14:32:06.9432321+02:00",
+ "IdMap": "10",
+ "Systems": [
+ {
+ "IdSystem": 1,
+ "Name": "TALAS",
+ "Longname": "Talas Meldestationen",
+ "Allow": 1,
+ "Icon": 1
+ },
+ {
+ "IdSystem": 2,
+ "Name": "ECI",
+ "Longname": "ECI Geräte",
+ "Allow": 1,
+ "Icon": 2
+ },
+ {
+ "IdSystem": 5,
+ "Name": "GSM Modem",
+ "Longname": "LR77 GSM Modems",
+ "Allow": 1,
+ "Icon": 5
+ },
+ {
+ "IdSystem": 6,
+ "Name": "Cisco Router",
+ "Longname": "Cisco Router",
+ "Allow": 1,
+ "Icon": 6
+ },
+ {
+ "IdSystem": 7,
+ "Name": "WAGO",
+ "Longname": "WAGO I/O Systeme",
+ "Allow": 1,
+ "Icon": 7
+ },
+ {
+ "IdSystem": 8,
+ "Name": "Siemens",
+ "Longname": "Siemens Notrufsystem",
+ "Allow": 1,
+ "Icon": 8
+ },
+ {
+ "IdSystem": 9,
+ "Name": "OTDR",
+ "Longname": "Glasfaserüberwachung OTU",
+ "Allow": 1,
+ "Icon": 9
+ },
+ {
+ "IdSystem": 10,
+ "Name": "WDM",
+ "Longname": " Wavelength Division Multiplexing",
+ "Allow": 1,
+ "Icon": 10
+ },
+ {
+ "IdSystem": 11,
+ "Name": "GMA",
+ "Longname": "Glättemeldeanlagen",
+ "Allow": 1,
+ "Icon": 11
+ },
+ {
+ "IdSystem": 13,
+ "Name": "Messstellen",
+ "Longname": "Messstellen",
+ "Allow": 1,
+ "Icon": 13
+ },
+ {
+ "IdSystem": 100,
+ "Name": "TALAS ICL",
+ "Longname": "Talas ICL Unterstationen",
+ "Allow": 1,
+ "Icon": 100
+ },
+ {
+ "IdSystem": 110,
+ "Name": "DAUZ",
+ "Longname": "Dauerzählstellen",
+ "Allow": 1,
+ "Icon": 110
+ },
+ {
+ "IdSystem": 111,
+ "Name": "SMS-Funkmodem",
+ "Longname": "SMS-Funkmodem",
+ "Allow": 1,
+ "Icon": 111
+ },
+ {
+ "IdSystem": 200,
+ "Name": "Sonstige",
+ "Longname": "Sonstige",
+ "Allow": 1,
+ "Icon": 200
+ }
+ ]
+}
\ No newline at end of file
diff --git a/MessagesMap/AlarmCritical.wav b/MessagesMap/AlarmCritical.wav
new file mode 100644
index 000000000..0d0bfb918
Binary files /dev/null and b/MessagesMap/AlarmCritical.wav differ
diff --git a/MessagesMap/AlarmMajor.wav b/MessagesMap/AlarmMajor.wav
new file mode 100644
index 000000000..cef398f9c
Binary files /dev/null and b/MessagesMap/AlarmMajor.wav differ
diff --git a/MessagesMap/AlarmMinor.wav b/MessagesMap/AlarmMinor.wav
new file mode 100644
index 000000000..5e87978c8
Binary files /dev/null and b/MessagesMap/AlarmMinor.wav differ
diff --git a/MessagesMap/CableStatic.json b/MessagesMap/CableStatic.json
new file mode 100644
index 000000000..936f3b181
--- /dev/null
+++ b/MessagesMap/CableStatic.json
@@ -0,0 +1,19696 @@
+{
+ "Name": "Liste aller Straenge",
+ "Zeitstempel": "2021-02-24T10:03:42.8986663+01:00",
+ "Lines": [
+ {
+ "IdS": 10000,
+ "pX": "346950,347600",
+ "pY": "551350,551450.01"
+ },
+ {
+ "IdS": 10001,
+ "pX": "347600,349365,349450",
+ "pY": "551450.01,551755,551550"
+ },
+ {
+ "IdS": 10002,
+ "pX": "349450,349500,349750",
+ "pY": "551550,551750,551800"
+ },
+ {
+ "IdS": 10003,
+ "pX": "349750,350850",
+ "pY": "551800,552000"
+ },
+ {
+ "IdS": 10004,
+ "pX": "350850,351300",
+ "pY": "552000,552050"
+ },
+ {
+ "IdS": 10006,
+ "pX": "351300,351600",
+ "pY": "552050,552100"
+ },
+ {
+ "IdS": 10008,
+ "pX": "352500,352500,352700",
+ "pY": "552050,552200,552250"
+ },
+ {
+ "IdS": 10009,
+ "pX": "352700,352900",
+ "pY": "552250,552300"
+ },
+ {
+ "IdS": 10011,
+ "pX": "353300,353450",
+ "pY": "552400,552450"
+ },
+ {
+ "IdS": 10012,
+ "pX": "353450,353650",
+ "pY": "552450,552500"
+ },
+ {
+ "IdS": 10013,
+ "pX": "353650,354000",
+ "pY": "552500,552550.01"
+ },
+ {
+ "IdS": 10014,
+ "pX": "354000,354300",
+ "pY": "552550.01,552600"
+ },
+ {
+ "IdS": 10016,
+ "pX": "354300,354650",
+ "pY": "552600,552650.01"
+ },
+ {
+ "IdS": 10017,
+ "pX": "354650,355050",
+ "pY": "552650.01,552700"
+ },
+ {
+ "IdS": 10018,
+ "pX": "354650,354800",
+ "pY": "552650.01,551800.01"
+ },
+ {
+ "IdS": 10021,
+ "pX": "355550,356000",
+ "pY": "552800,552900"
+ },
+ {
+ "IdS": 10022,
+ "pX": "356000,356250",
+ "pY": "552900,552900.01"
+ },
+ {
+ "IdS": 10025,
+ "pX": "356000,356000",
+ "pY": "552900,551700"
+ },
+ {
+ "IdS": 10031,
+ "pX": "358100,358400",
+ "pY": "552900,552900"
+ },
+ {
+ "IdS": 10032,
+ "pX": "358400,358800",
+ "pY": "552900,552900"
+ },
+ {
+ "IdS": 10034,
+ "pX": "359300,359600",
+ "pY": "552900,552900.01"
+ },
+ {
+ "IdS": 10035,
+ "pX": "359600,359800",
+ "pY": "552900.01,552900"
+ },
+ {
+ "IdS": 10048,
+ "pX": "356670,356670",
+ "pY": "552535,552900"
+ },
+ {
+ "IdS": 10052,
+ "pX": "359800,360000",
+ "pY": "552900,552900"
+ },
+ {
+ "IdS": 10054,
+ "pX": "360600,361200",
+ "pY": "552900,552900"
+ },
+ {
+ "IdS": 10058,
+ "pX": "362200,363350",
+ "pY": "552900,552900"
+ },
+ {
+ "IdS": 10063,
+ "pX": "364227.2,364368.62",
+ "pY": "553527.21,553668.63"
+ },
+ {
+ "IdS": 10065,
+ "pX": "364368.62,364580.75",
+ "pY": "553668.63,553880.76"
+ },
+ {
+ "IdS": 10066,
+ "pX": "364580.75,364792.89",
+ "pY": "553880.76,554092.89"
+ },
+ {
+ "IdS": 10067,
+ "pX": "364792.89,364934.31",
+ "pY": "554092.89,554234.32"
+ },
+ {
+ "IdS": 10068,
+ "pX": "364934.31,365075.73",
+ "pY": "554234.32,554375.74"
+ },
+ {
+ "IdS": 10069,
+ "pX": "365075.73,365217.15",
+ "pY": "554375.74,554517.16"
+ },
+ {
+ "IdS": 10071,
+ "pX": "365500,365712.13",
+ "pY": "554800,555012.13"
+ },
+ {
+ "IdS": 10073,
+ "pX": "365712.13,366350.01",
+ "pY": "555012.13,555650"
+ },
+ {
+ "IdS": 10076,
+ "pX": "366647.37,366790",
+ "pY": "555415.51,555330"
+ },
+ {
+ "IdS": 10079,
+ "pX": "367246.75,367931.77",
+ "pY": "555053.93,554640.71"
+ },
+ {
+ "IdS": 10080,
+ "pX": "367931.77,368188.65",
+ "pY": "554640.71,554485.75"
+ },
+ {
+ "IdS": 10081,
+ "pX": "368188.65,368650",
+ "pY": "554485.75,554200"
+ },
+ {
+ "IdS": 10083,
+ "pX": "369475,369730",
+ "pY": "553710,553555"
+ },
+ {
+ "IdS": 10084,
+ "pX": "369730,370000",
+ "pY": "553555,553400"
+ },
+ {
+ "IdS": 10085,
+ "pX": "370000,370599.99",
+ "pY": "553400,553400.01"
+ },
+ {
+ "IdS": 10086,
+ "pX": "370599.99,371000",
+ "pY": "553400.01,553400"
+ },
+ {
+ "IdS": 10090,
+ "pX": "373150,373500",
+ "pY": "545000,545600"
+ },
+ {
+ "IdS": 10092,
+ "pX": "373500,373800",
+ "pY": "545600,546100"
+ },
+ {
+ "IdS": 10093,
+ "pX": "373800,374300",
+ "pY": "546100,545900"
+ },
+ {
+ "IdS": 10095,
+ "pX": "375030.01,375030",
+ "pY": "545889.99,546120"
+ },
+ {
+ "IdS": 10096,
+ "pX": "375030.01,375045,375045,375390",
+ "pY": "545889.99,545595,545890,545454.99"
+ },
+ {
+ "IdS": 10097,
+ "pX": "375390,375390",
+ "pY": "545454.99,545650"
+ },
+ {
+ "IdS": 10100,
+ "pX": "376050,376600",
+ "pY": "545200,544950"
+ },
+ {
+ "IdS": 10102,
+ "pX": "376950,377200",
+ "pY": "544800,544700"
+ },
+ {
+ "IdS": 10104,
+ "pX": "376600,376950",
+ "pY": "544950,544800"
+ },
+ {
+ "IdS": 10106,
+ "pX": "377200,377400",
+ "pY": "544700,544600"
+ },
+ {
+ "IdS": 10107,
+ "pX": "377400,377600",
+ "pY": "544600,544500"
+ },
+ {
+ "IdS": 10112,
+ "pX": "378450,379050",
+ "pY": "544200,543900.01"
+ },
+ {
+ "IdS": 10113,
+ "pX": "379050,379350",
+ "pY": "543900.01,543800"
+ },
+ {
+ "IdS": 10114,
+ "pX": "379350,379750",
+ "pY": "543800,543950"
+ },
+ {
+ "IdS": 10122,
+ "pX": "381050,381200",
+ "pY": "543400,543300"
+ },
+ {
+ "IdS": 10123,
+ "pX": "381200,381400",
+ "pY": "543300,543250"
+ },
+ {
+ "IdS": 10125,
+ "pX": "381400,381600",
+ "pY": "543250,543200"
+ },
+ {
+ "IdS": 10127,
+ "pX": "381600,381500",
+ "pY": "543200,543000"
+ },
+ {
+ "IdS": 10128,
+ "pX": "381500,381400",
+ "pY": "543000,542800"
+ },
+ {
+ "IdS": 10129,
+ "pX": "381400,381250",
+ "pY": "542800,542550"
+ },
+ {
+ "IdS": 10131,
+ "pX": "381000,380900",
+ "pY": "542150,541950"
+ },
+ {
+ "IdS": 10138,
+ "pX": "379900,379650",
+ "pY": "541600,541750"
+ },
+ {
+ "IdS": 10139,
+ "pX": "380450,380450",
+ "pY": "541250,541050"
+ },
+ {
+ "IdS": 10140,
+ "pX": "372150,372250",
+ "pY": "545600,545750"
+ },
+ {
+ "IdS": 10151,
+ "pX": "373800,373800",
+ "pY": "546700,547000"
+ },
+ {
+ "IdS": 10152,
+ "pX": "373800,373800",
+ "pY": "547000,547250"
+ },
+ {
+ "IdS": 10153,
+ "pX": "376050,376200",
+ "pY": "545200,545550"
+ },
+ {
+ "IdS": 10154,
+ "pX": "376200,376350",
+ "pY": "545550,545900"
+ },
+ {
+ "IdS": 10155,
+ "pX": "376350,376450",
+ "pY": "545900,546100"
+ },
+ {
+ "IdS": 10157,
+ "pX": "376950,377050",
+ "pY": "547300,547500"
+ },
+ {
+ "IdS": 10159,
+ "pX": "377050,377150.01",
+ "pY": "547500,547700"
+ },
+ {
+ "IdS": 10161,
+ "pX": "372950,373350",
+ "pY": "548950,548800"
+ },
+ {
+ "IdS": 10163,
+ "pX": "373350,374067.28",
+ "pY": "548800,548504.03"
+ },
+ {
+ "IdS": 10164,
+ "pX": "374067.28,375400",
+ "pY": "548504.03,547950"
+ },
+ {
+ "IdS": 10165,
+ "pX": "375400,376000",
+ "pY": "547950,547700"
+ },
+ {
+ "IdS": 10167,
+ "pX": "376000,376450",
+ "pY": "547700,547500"
+ },
+ {
+ "IdS": 10168,
+ "pX": "376450,376950",
+ "pY": "547500,547300"
+ },
+ {
+ "IdS": 10170,
+ "pX": "376600,376600",
+ "pY": "545350,545600"
+ },
+ {
+ "IdS": 10171,
+ "pX": "376600,376600",
+ "pY": "545600,545850"
+ },
+ {
+ "IdS": 10172,
+ "pX": "372800,372800",
+ "pY": "552000,551800"
+ },
+ {
+ "IdS": 10173,
+ "pX": "372800,372800",
+ "pY": "551800,551600"
+ },
+ {
+ "IdS": 10177,
+ "pX": "372800,372800",
+ "pY": "551400,551200.01"
+ },
+ {
+ "IdS": 10179,
+ "pX": "372800,372445.01,372445",
+ "pY": "550600,550600.21,550265.02"
+ },
+ {
+ "IdS": 10188,
+ "pX": "372800,372800",
+ "pY": "551200.01,551000"
+ },
+ {
+ "IdS": 10189,
+ "pX": "371050,370900",
+ "pY": "548300,548400"
+ },
+ {
+ "IdS": 10190,
+ "pX": "370900,370665",
+ "pY": "548400,548565"
+ },
+ {
+ "IdS": 10191,
+ "pX": "370665,370455",
+ "pY": "548565,548755"
+ },
+ {
+ "IdS": 10192,
+ "pX": "370455,370150",
+ "pY": "548755,549050"
+ },
+ {
+ "IdS": 10193,
+ "pX": "370150,369850",
+ "pY": "549050,549350"
+ },
+ {
+ "IdS": 10197,
+ "pX": "351449.09,351418.18",
+ "pY": "553094.33,553291.92"
+ },
+ {
+ "IdS": 10198,
+ "pX": "351418.18,351340.91",
+ "pY": "553291.92,553785.92"
+ },
+ {
+ "IdS": 10199,
+ "pX": "351340.91,351143.31",
+ "pY": "553785.92,553755.01"
+ },
+ {
+ "IdS": 10200,
+ "pX": "351143.31,350945.72",
+ "pY": "553755.01,553724.11"
+ },
+ {
+ "IdS": 10201,
+ "pX": "350883.9,350852.99",
+ "pY": "554119.3,554316.9"
+ },
+ {
+ "IdS": 10202,
+ "pX": "350914.81,350883.9",
+ "pY": "553921.7,554119.3"
+ },
+ {
+ "IdS": 10203,
+ "pX": "350945.72,350914.81",
+ "pY": "553724.11,553921.7"
+ },
+ {
+ "IdS": 10204,
+ "pX": "357300,357300",
+ "pY": "552900.01,552550.01"
+ },
+ {
+ "IdS": 10205,
+ "pX": "357300,357700.13",
+ "pY": "552550.01,552388.58"
+ },
+ {
+ "IdS": 10206,
+ "pX": "357700.13,357800",
+ "pY": "552388.58,552350"
+ },
+ {
+ "IdS": 10207,
+ "pX": "357500,357500",
+ "pY": "551600,551400"
+ },
+ {
+ "IdS": 10208,
+ "pX": "357500,357550",
+ "pY": "551400,551200"
+ },
+ {
+ "IdS": 10209,
+ "pX": "357550,357600",
+ "pY": "551200,551000"
+ },
+ {
+ "IdS": 10210,
+ "pX": "357600,357650",
+ "pY": "551000,550800"
+ },
+ {
+ "IdS": 10211,
+ "pX": "357650,357700",
+ "pY": "550800,550600"
+ },
+ {
+ "IdS": 10212,
+ "pX": "357700,357750",
+ "pY": "550600,550400"
+ },
+ {
+ "IdS": 10213,
+ "pX": "357750,357800",
+ "pY": "550400,550200"
+ },
+ {
+ "IdS": 10215,
+ "pX": "357800,357600",
+ "pY": "550200,550200"
+ },
+ {
+ "IdS": 10217,
+ "pX": "358400,358399.99",
+ "pY": "552900,553601.32"
+ },
+ {
+ "IdS": 10219,
+ "pX": "358400,358400",
+ "pY": "554000,554200"
+ },
+ {
+ "IdS": 10221,
+ "pX": "358400,358399.96",
+ "pY": "554600,554901.32"
+ },
+ {
+ "IdS": 10222,
+ "pX": "358399.96,358399.95",
+ "pY": "554901.32,555101.32"
+ },
+ {
+ "IdS": 10224,
+ "pX": "358399.95,358399.95",
+ "pY": "555101.32,555301.32"
+ },
+ {
+ "IdS": 10226,
+ "pX": "358400,358400.05",
+ "pY": "555501.39,555800.01"
+ },
+ {
+ "IdS": 10227,
+ "pX": "358400.05,358400",
+ "pY": "555800.01,556001.38"
+ },
+ {
+ "IdS": 10228,
+ "pX": "358400,358400",
+ "pY": "556001.38,556201.38"
+ },
+ {
+ "IdS": 10229,
+ "pX": "358400,358400",
+ "pY": "556201.38,556401.38"
+ },
+ {
+ "IdS": 10230,
+ "pX": "358400,358399.99",
+ "pY": "556401.38,556601.38"
+ },
+ {
+ "IdS": 10231,
+ "pX": "358399.99,358400",
+ "pY": "556601.38,556801.38"
+ },
+ {
+ "IdS": 10232,
+ "pX": "357800,357500",
+ "pY": "552350,551600"
+ },
+ {
+ "IdS": 10233,
+ "pX": "358399.95,358400",
+ "pY": "555301.32,555501.39"
+ },
+ {
+ "IdS": 10237,
+ "pX": "356800,356400",
+ "pY": "555801.37,555801.37"
+ },
+ {
+ "IdS": 10238,
+ "pX": "356400,356000",
+ "pY": "555801.37,555800.12"
+ },
+ {
+ "IdS": 10243,
+ "pX": "362200,362200",
+ "pY": "552900,553100"
+ },
+ {
+ "IdS": 10244,
+ "pX": "362200,362200",
+ "pY": "553100,553299.99"
+ },
+ {
+ "IdS": 10246,
+ "pX": "362200,362200.01",
+ "pY": "553299.99,553499.99"
+ },
+ {
+ "IdS": 10247,
+ "pX": "362200.01,362200",
+ "pY": "553499.99,553699.99"
+ },
+ {
+ "IdS": 10248,
+ "pX": "362200,362200",
+ "pY": "553699.99,553900"
+ },
+ {
+ "IdS": 10249,
+ "pX": "362200,362200",
+ "pY": "553900,554100"
+ },
+ {
+ "IdS": 10250,
+ "pX": "362200,362200",
+ "pY": "554100,554300"
+ },
+ {
+ "IdS": 10251,
+ "pX": "362200,362200",
+ "pY": "554300,554500"
+ },
+ {
+ "IdS": 10252,
+ "pX": "362200,362200",
+ "pY": "554500,554700"
+ },
+ {
+ "IdS": 10253,
+ "pX": "362200,362200",
+ "pY": "554700,554900"
+ },
+ {
+ "IdS": 10255,
+ "pX": "362200,362200",
+ "pY": "555100,555300"
+ },
+ {
+ "IdS": 10257,
+ "pX": "364050.02,364849.67",
+ "pY": "552949.72,552950.03"
+ },
+ {
+ "IdS": 10258,
+ "pX": "364849.67,365265",
+ "pY": "552950.03,552750"
+ },
+ {
+ "IdS": 10259,
+ "pX": "365265,365715",
+ "pY": "552750,552750"
+ },
+ {
+ "IdS": 10261,
+ "pX": "366205,366348.52",
+ "pY": "552540,552395.83"
+ },
+ {
+ "IdS": 10262,
+ "pX": "366348.52,366489.93",
+ "pY": "552395.83,552254.41"
+ },
+ {
+ "IdS": 10263,
+ "pX": "366489.93,366631.35",
+ "pY": "552254.41,552112.99"
+ },
+ {
+ "IdS": 10264,
+ "pX": "366631.35,366772.78",
+ "pY": "552112.99,551971.57"
+ },
+ {
+ "IdS": 10265,
+ "pX": "366772.78,366914.2",
+ "pY": "551971.57,551830.14"
+ },
+ {
+ "IdS": 10266,
+ "pX": "366914.2,367055.62",
+ "pY": "551830.14,551688.72"
+ },
+ {
+ "IdS": 10267,
+ "pX": "367055.62,367197.04",
+ "pY": "551688.72,551547.3"
+ },
+ {
+ "IdS": 10268,
+ "pX": "366914.2,367114.2",
+ "pY": "551830.14,551830.14"
+ },
+ {
+ "IdS": 10269,
+ "pX": "367114.2,367314.2",
+ "pY": "551830.14,551830.14"
+ },
+ {
+ "IdS": 10270,
+ "pX": "367314.2,367514.2",
+ "pY": "551830.14,551830.14"
+ },
+ {
+ "IdS": 10271,
+ "pX": "366205,366348.51",
+ "pY": "552540,552678.68"
+ },
+ {
+ "IdS": 10272,
+ "pX": "366489.93,366348.51",
+ "pY": "552254.41,552112.98"
+ },
+ {
+ "IdS": 10274,
+ "pX": "366350.01,366350",
+ "pY": "555650,555900"
+ },
+ {
+ "IdS": 10275,
+ "pX": "366350,366350",
+ "pY": "555900,556100"
+ },
+ {
+ "IdS": 10276,
+ "pX": "366350,366350",
+ "pY": "556100,556300"
+ },
+ {
+ "IdS": 10278,
+ "pX": "366350,366350.01",
+ "pY": "556300,556500"
+ },
+ {
+ "IdS": 10279,
+ "pX": "371670,371164.17",
+ "pY": "556050,555738.51"
+ },
+ {
+ "IdS": 10280,
+ "pX": "371164.17,370485",
+ "pY": "555738.51,555325"
+ },
+ {
+ "IdS": 10281,
+ "pX": "370315,370145",
+ "pY": "555215,555110"
+ },
+ {
+ "IdS": 10282,
+ "pX": "370145,369775",
+ "pY": "555110,554885"
+ },
+ {
+ "IdS": 10286,
+ "pX": "368873.65,369175",
+ "pY": "554072.52,553430"
+ },
+ {
+ "IdS": 10288,
+ "pX": "369200,369350",
+ "pY": "549900,549650"
+ },
+ {
+ "IdS": 10290,
+ "pX": "369650,369650",
+ "pY": "550800.01,551000.01"
+ },
+ {
+ "IdS": 10291,
+ "pX": "369650,369650",
+ "pY": "551000.01,551800"
+ },
+ {
+ "IdS": 10292,
+ "pX": "369650,369650",
+ "pY": "551800,552440"
+ },
+ {
+ "IdS": 10293,
+ "pX": "369650,369760",
+ "pY": "552440,552720"
+ },
+ {
+ "IdS": 10295,
+ "pX": "369900,370000",
+ "pY": "553095,553400"
+ },
+ {
+ "IdS": 10298,
+ "pX": "371295,371195",
+ "pY": "553945,554110"
+ },
+ {
+ "IdS": 10299,
+ "pX": "371195,371045",
+ "pY": "554110,554375"
+ },
+ {
+ "IdS": 10300,
+ "pX": "371045,370941.91",
+ "pY": "554375,554546.69"
+ },
+ {
+ "IdS": 10301,
+ "pX": "370941.91,370840",
+ "pY": "554546.69,554720"
+ },
+ {
+ "IdS": 10302,
+ "pX": "370840,370740",
+ "pY": "554720,554890"
+ },
+ {
+ "IdS": 10303,
+ "pX": "370740,370485",
+ "pY": "554890,555325"
+ },
+ {
+ "IdS": 10312,
+ "pX": "372800,373400.01",
+ "pY": "553400,553400.01"
+ },
+ {
+ "IdS": 10313,
+ "pX": "373400.01,373606.38",
+ "pY": "553400.01,553786.88"
+ },
+ {
+ "IdS": 10314,
+ "pX": "373606.38,373813",
+ "pY": "553786.88,554129.39"
+ },
+ {
+ "IdS": 10315,
+ "pX": "373813,374000",
+ "pY": "554129.39,554450"
+ },
+ {
+ "IdS": 10317,
+ "pX": "374158.24,373815.74",
+ "pY": "555088.96,555295.57"
+ },
+ {
+ "IdS": 10318,
+ "pX": "373815.74,373644.49",
+ "pY": "555295.57,555398.88"
+ },
+ {
+ "IdS": 10320,
+ "pX": "373301.98,373130.72",
+ "pY": "555605.49,555708.79"
+ },
+ {
+ "IdS": 10324,
+ "pX": "372702.6,372600",
+ "pY": "555967.06,556050"
+ },
+ {
+ "IdS": 10326,
+ "pX": "372400,372100",
+ "pY": "556050,556050"
+ },
+ {
+ "IdS": 10327,
+ "pX": "371900,371670",
+ "pY": "556050,556050"
+ },
+ {
+ "IdS": 10328,
+ "pX": "371670,371571.73",
+ "pY": "556050,556226.82"
+ },
+ {
+ "IdS": 10329,
+ "pX": "371571.73,371466.79",
+ "pY": "556226.82,556397.08"
+ },
+ {
+ "IdS": 10330,
+ "pX": "371466.79,371270.46",
+ "pY": "556397.08,556275.9"
+ },
+ {
+ "IdS": 10333,
+ "pX": "371361.85,371256.91",
+ "pY": "556567.34,556737.6"
+ },
+ {
+ "IdS": 10336,
+ "pX": "362200,362200",
+ "pY": "550900,550650"
+ },
+ {
+ "IdS": 10340,
+ "pX": "351400,351750",
+ "pY": "550350,550350"
+ },
+ {
+ "IdS": 10342,
+ "pX": "358900,359100",
+ "pY": "551050,551000"
+ },
+ {
+ "IdS": 10343,
+ "pX": "378950,379250",
+ "pY": "545000,544400"
+ },
+ {
+ "IdS": 10344,
+ "pX": "379250,379150",
+ "pY": "544400,544150"
+ },
+ {
+ "IdS": 10345,
+ "pX": "379150,379050",
+ "pY": "544150,543900.01"
+ },
+ {
+ "IdS": 10346,
+ "pX": "379150,378950",
+ "pY": "544150,544150"
+ },
+ {
+ "IdS": 10348,
+ "pX": "381500,382950",
+ "pY": "542400,541650"
+ },
+ {
+ "IdS": 10349,
+ "pX": "382950,384850",
+ "pY": "541650,540650"
+ },
+ {
+ "IdS": 10350,
+ "pX": "384850,385850",
+ "pY": "540650,540150"
+ },
+ {
+ "IdS": 10351,
+ "pX": "385850,386550",
+ "pY": "540150,540150"
+ },
+ {
+ "IdS": 10352,
+ "pX": "382950,383250",
+ "pY": "541650,542050"
+ },
+ {
+ "IdS": 10353,
+ "pX": "383250,383500",
+ "pY": "542050,542400"
+ },
+ {
+ "IdS": 10354,
+ "pX": "381250,381050",
+ "pY": "542550,542550"
+ },
+ {
+ "IdS": 10356,
+ "pX": "372500,372700",
+ "pY": "547600,547500"
+ },
+ {
+ "IdS": 10357,
+ "pX": "372700,372550",
+ "pY": "547500,547200"
+ },
+ {
+ "IdS": 10358,
+ "pX": "372550,372300",
+ "pY": "547200,546700"
+ },
+ {
+ "IdS": 10359,
+ "pX": "371050,371250",
+ "pY": "548300,548200"
+ },
+ {
+ "IdS": 10362,
+ "pX": "371250,371450",
+ "pY": "548200,548100"
+ },
+ {
+ "IdS": 10363,
+ "pX": "371450,371650",
+ "pY": "548100,548000"
+ },
+ {
+ "IdS": 10364,
+ "pX": "371650,371500",
+ "pY": "548000,547700"
+ },
+ {
+ "IdS": 10365,
+ "pX": "371500,371400",
+ "pY": "547700,547500.01"
+ },
+ {
+ "IdS": 10368,
+ "pX": "371650,371850",
+ "pY": "548000,547900"
+ },
+ {
+ "IdS": 10369,
+ "pX": "371850,372000",
+ "pY": "547900,547825"
+ },
+ {
+ "IdS": 10371,
+ "pX": "372000,372150",
+ "pY": "547825,547750"
+ },
+ {
+ "IdS": 10372,
+ "pX": "372150,372200,372750",
+ "pY": "547750,547850,547600"
+ },
+ {
+ "IdS": 10373,
+ "pX": "372750,372500",
+ "pY": "547600,547600"
+ },
+ {
+ "IdS": 10374,
+ "pX": "371650,371450,371550,371500",
+ "pY": "548000,547800,548000,547700"
+ },
+ {
+ "IdS": 10380,
+ "pX": "371900,372800",
+ "pY": "553400,553400"
+ },
+ {
+ "IdS": 10381,
+ "pX": "372800,372800",
+ "pY": "552800,552200"
+ },
+ {
+ "IdS": 10382,
+ "pX": "372800,372800",
+ "pY": "552200,552000"
+ },
+ {
+ "IdS": 10383,
+ "pX": "372800,372800",
+ "pY": "551600,551400"
+ },
+ {
+ "IdS": 10384,
+ "pX": "372800,372800",
+ "pY": "553400,553100"
+ },
+ {
+ "IdS": 10387,
+ "pX": "371650,371500",
+ "pY": "549850,549700"
+ },
+ {
+ "IdS": 10388,
+ "pX": "371500,371350",
+ "pY": "549700,549500"
+ },
+ {
+ "IdS": 10389,
+ "pX": "371350,371350",
+ "pY": "549500,549250"
+ },
+ {
+ "IdS": 10390,
+ "pX": "371350,371350",
+ "pY": "549250,549050"
+ },
+ {
+ "IdS": 10391,
+ "pX": "371350,371350",
+ "pY": "549050,548800"
+ },
+ {
+ "IdS": 10392,
+ "pX": "371350,371250",
+ "pY": "548800,548650"
+ },
+ {
+ "IdS": 10393,
+ "pX": "371250,371050",
+ "pY": "548650,548300"
+ },
+ {
+ "IdS": 10394,
+ "pX": "372800,372600",
+ "pY": "552800,552800"
+ },
+ {
+ "IdS": 10397,
+ "pX": "372200,371900",
+ "pY": "552800,552800"
+ },
+ {
+ "IdS": 10398,
+ "pX": "371900,371700",
+ "pY": "552800,552800"
+ },
+ {
+ "IdS": 10399,
+ "pX": "362200,362500",
+ "pY": "552300,552300"
+ },
+ {
+ "IdS": 10401,
+ "pX": "362800,363000",
+ "pY": "552300,552300"
+ },
+ {
+ "IdS": 10402,
+ "pX": "366350,366100",
+ "pY": "556300,556300"
+ },
+ {
+ "IdS": 10403,
+ "pX": "365995,366205",
+ "pY": "552750,552540"
+ },
+ {
+ "IdS": 10404,
+ "pX": "365995,365075.73",
+ "pY": "552750,553668.63"
+ },
+ {
+ "IdS": 10405,
+ "pX": "365075.73,364368.62",
+ "pY": "553668.63,553668.63"
+ },
+ {
+ "IdS": 10408,
+ "pX": "372800,372600",
+ "pY": "552200,552200"
+ },
+ {
+ "IdS": 10409,
+ "pX": "358399.96,358600",
+ "pY": "554901.32,554900"
+ },
+ {
+ "IdS": 10410,
+ "pX": "358399.95,358599.95",
+ "pY": "555101.32,555101.32"
+ },
+ {
+ "IdS": 10411,
+ "pX": "372800,372600",
+ "pY": "551600,551600"
+ },
+ {
+ "IdS": 10413,
+ "pX": "381400,381650",
+ "pY": "542800,542800"
+ },
+ {
+ "IdS": 10414,
+ "pX": "353450,353450",
+ "pY": "552450,551600"
+ },
+ {
+ "IdS": 10415,
+ "pX": "367246.75,367350.07",
+ "pY": "555053.93,555225.19"
+ },
+ {
+ "IdS": 10416,
+ "pX": "358400,358600.01",
+ "pY": "554200,554200"
+ },
+ {
+ "IdS": 10417,
+ "pX": "369650,369450",
+ "pY": "550800.01,550800.01"
+ },
+ {
+ "IdS": 10418,
+ "pX": "358399.99,358599.99",
+ "pY": "553601.32,553601.32"
+ },
+ {
+ "IdS": 10419,
+ "pX": "352900,352857.1",
+ "pY": "552300,552504.85"
+ },
+ {
+ "IdS": 10420,
+ "pX": "366772.78,366631.36",
+ "pY": "551971.57,551830.14"
+ },
+ {
+ "IdS": 10421,
+ "pX": "366348.52,366489.93",
+ "pY": "552395.83,552537.25"
+ },
+ {
+ "IdS": 10422,
+ "pX": "365265,365263.59",
+ "pY": "552750,552949.39"
+ },
+ {
+ "IdS": 10423,
+ "pX": "371850,371750",
+ "pY": "547900,547750"
+ },
+ {
+ "IdS": 10424,
+ "pX": "362200,362400",
+ "pY": "550900,550900"
+ },
+ {
+ "IdS": 10425,
+ "pX": "362500,362500",
+ "pY": "552300,552500"
+ },
+ {
+ "IdS": 10426,
+ "pX": "369175,369020",
+ "pY": "553430,553360"
+ },
+ {
+ "IdS": 10427,
+ "pX": "371350,371000",
+ "pY": "549500,549500"
+ },
+ {
+ "IdS": 10428,
+ "pX": "371000,370700",
+ "pY": "549500,549500"
+ },
+ {
+ "IdS": 10429,
+ "pX": "371000,371000",
+ "pY": "549500,549750"
+ },
+ {
+ "IdS": 10430,
+ "pX": "356400,356400",
+ "pY": "555801.37,555601.37"
+ },
+ {
+ "IdS": 10431,
+ "pX": "357700,357700",
+ "pY": "552900,552700"
+ },
+ {
+ "IdS": 10432,
+ "pX": "367114.2,367115",
+ "pY": "551830.14,552030"
+ },
+ {
+ "IdS": 10433,
+ "pX": "367931.77,367828.45",
+ "pY": "554640.71,554469.46"
+ },
+ {
+ "IdS": 10434,
+ "pX": "369475,369370",
+ "pY": "553710,553545"
+ },
+ {
+ "IdS": 10436,
+ "pX": "357300,357700",
+ "pY": "552900.01,552900"
+ },
+ {
+ "IdS": 10437,
+ "pX": "357700,358100",
+ "pY": "552900,552900"
+ },
+ {
+ "IdS": 10438,
+ "pX": "365075.73,365217.15",
+ "pY": "553668.63,553810.05"
+ },
+ {
+ "IdS": 10439,
+ "pX": "364849.67,364850.13",
+ "pY": "552950.03,553198.85"
+ },
+ {
+ "IdS": 10442,
+ "pX": "364368.62,364227.2",
+ "pY": "553668.63,553810.05"
+ },
+ {
+ "IdS": 10443,
+ "pX": "363350,363350",
+ "pY": "552900,552700"
+ },
+ {
+ "IdS": 10444,
+ "pX": "362200,362000",
+ "pY": "551800,551800"
+ },
+ {
+ "IdS": 10445,
+ "pX": "362200,362399.99",
+ "pY": "553100,553101.6"
+ },
+ {
+ "IdS": 10446,
+ "pX": "362200,362399.08",
+ "pY": "553299.99,553301.6"
+ },
+ {
+ "IdS": 10447,
+ "pX": "362200,362397.25",
+ "pY": "553699.99,553701.59"
+ },
+ {
+ "IdS": 10448,
+ "pX": "362200,362400",
+ "pY": "554700,554700"
+ },
+ {
+ "IdS": 10449,
+ "pX": "362200,362000",
+ "pY": "554900,554900"
+ },
+ {
+ "IdS": 10450,
+ "pX": "360000,360000",
+ "pY": "552900,553100"
+ },
+ {
+ "IdS": 10451,
+ "pX": "359600,359600",
+ "pY": "552900.01,553100"
+ },
+ {
+ "IdS": 10452,
+ "pX": "357799.93,357799.93",
+ "pY": "555801.3,555601.3"
+ },
+ {
+ "IdS": 10453,
+ "pX": "356800,356800",
+ "pY": "555801.37,555601.38"
+ },
+ {
+ "IdS": 10454,
+ "pX": "356000,356000",
+ "pY": "555800.12,555601.37"
+ },
+ {
+ "IdS": 10456,
+ "pX": "358399.99,358200",
+ "pY": "556601.38,556601.39"
+ },
+ {
+ "IdS": 10457,
+ "pX": "358400,358400",
+ "pY": "556801.38,557001.38"
+ },
+ {
+ "IdS": 10459,
+ "pX": "358400,358199.99",
+ "pY": "557001.38,557001.38"
+ },
+ {
+ "IdS": 10463,
+ "pX": "369730,369635",
+ "pY": "553555,553400"
+ },
+ {
+ "IdS": 10479,
+ "pX": "359300,359300",
+ "pY": "552900,552700"
+ },
+ {
+ "IdS": 10480,
+ "pX": "359300,359500",
+ "pY": "552700,552700"
+ },
+ {
+ "IdS": 10481,
+ "pX": "359300,359300",
+ "pY": "552700,552400"
+ },
+ {
+ "IdS": 10489,
+ "pX": "370740,370890",
+ "pY": "554890,554980"
+ },
+ {
+ "IdS": 10490,
+ "pX": "370840,371010",
+ "pY": "554720,554820"
+ },
+ {
+ "IdS": 10491,
+ "pX": "371045,371155",
+ "pY": "554375,554440"
+ },
+ {
+ "IdS": 10492,
+ "pX": "371510.09,371700",
+ "pY": "553599.88,553600"
+ },
+ {
+ "IdS": 10496,
+ "pX": "371900,371900",
+ "pY": "553400,553200"
+ },
+ {
+ "IdS": 10497,
+ "pX": "373606.38,373435.13",
+ "pY": "553786.88,553890.17"
+ },
+ {
+ "IdS": 10509,
+ "pX": "373813,374155.51",
+ "pY": "554129.39,553922.8"
+ },
+ {
+ "IdS": 10515,
+ "pX": "355050,355050",
+ "pY": "552700,553000"
+ },
+ {
+ "IdS": 10516,
+ "pX": "354000,354000",
+ "pY": "552550.01,552800"
+ },
+ {
+ "IdS": 10517,
+ "pX": "350883.9,351081.5",
+ "pY": "554119.3,554150.21"
+ },
+ {
+ "IdS": 10518,
+ "pX": "350945.72,350748.12",
+ "pY": "553724.11,553693.21"
+ },
+ {
+ "IdS": 10519,
+ "pX": "351418.18,351220.59",
+ "pY": "553291.92,553261.02"
+ },
+ {
+ "IdS": 10520,
+ "pX": "351449.09,351251.5",
+ "pY": "553094.33,553063.42"
+ },
+ {
+ "IdS": 10522,
+ "pX": "350850,350751.44",
+ "pY": "552000,552377.89"
+ },
+ {
+ "IdS": 10523,
+ "pX": "371500,371700",
+ "pY": "547700,547600"
+ },
+ {
+ "IdS": 10524,
+ "pX": "371450,371250",
+ "pY": "548100,547800"
+ },
+ {
+ "IdS": 10525,
+ "pX": "371250,371150",
+ "pY": "547800,547600"
+ },
+ {
+ "IdS": 10526,
+ "pX": "371250,371100",
+ "pY": "547800,547850"
+ },
+ {
+ "IdS": 10529,
+ "pX": "370455,370250",
+ "pY": "548755,548550"
+ },
+ {
+ "IdS": 10530,
+ "pX": "370665,370450",
+ "pY": "548565,548350"
+ },
+ {
+ "IdS": 10531,
+ "pX": "370900,370750",
+ "pY": "548400,548200"
+ },
+ {
+ "IdS": 10534,
+ "pX": "372000,372000",
+ "pY": "547825,548300"
+ },
+ {
+ "IdS": 10535,
+ "pX": "373150,373400",
+ "pY": "545000,544850"
+ },
+ {
+ "IdS": 10536,
+ "pX": "371164.17,371225",
+ "pY": "555738.51,555635"
+ },
+ {
+ "IdS": 10537,
+ "pX": "372400,372400",
+ "pY": "556050,556250"
+ },
+ {
+ "IdS": 10538,
+ "pX": "356670,356650",
+ "pY": "552900,553200"
+ },
+ {
+ "IdS": 10539,
+ "pX": "357295.08,357100",
+ "pY": "552549.88,552550.01"
+ },
+ {
+ "IdS": 10540,
+ "pX": "357800,358050",
+ "pY": "552350,552250"
+ },
+ {
+ "IdS": 10541,
+ "pX": "372600,372600",
+ "pY": "556050,556249.99"
+ },
+ {
+ "IdS": 10542,
+ "pX": "373045.08,373148.39",
+ "pY": "555760.45,555931.68"
+ },
+ {
+ "IdS": 10543,
+ "pX": "373130.72,373234.03",
+ "pY": "555708.79,555880.05"
+ },
+ {
+ "IdS": 10544,
+ "pX": "373644.49,373747.8",
+ "pY": "555398.88,555570.13"
+ },
+ {
+ "IdS": 10545,
+ "pX": "374000,373800",
+ "pY": "554450,554550"
+ },
+ {
+ "IdS": 10546,
+ "pX": "372800,372600",
+ "pY": "553100,553100"
+ },
+ {
+ "IdS": 10547,
+ "pX": "372600,372600",
+ "pY": "553100,553300"
+ },
+ {
+ "IdS": 10548,
+ "pX": "372600,372400",
+ "pY": "553100,553100"
+ },
+ {
+ "IdS": 10550,
+ "pX": "376600,376900",
+ "pY": "545350,545350"
+ },
+ {
+ "IdS": 10551,
+ "pX": "377400,377500",
+ "pY": "544600,544800"
+ },
+ {
+ "IdS": 10552,
+ "pX": "378000,378000",
+ "pY": "544400,544550"
+ },
+ {
+ "IdS": 10554,
+ "pX": "381050,380950",
+ "pY": "543400,543250"
+ },
+ {
+ "IdS": 10555,
+ "pX": "381500,381750",
+ "pY": "543000,543000"
+ },
+ {
+ "IdS": 10556,
+ "pX": "372445,373150",
+ "pY": "550265.02,549750"
+ },
+ {
+ "IdS": 10557,
+ "pX": "373150,373150",
+ "pY": "549750,549500"
+ },
+ {
+ "IdS": 10560,
+ "pX": "376750,377000",
+ "pY": "546800,546800"
+ },
+ {
+ "IdS": 10562,
+ "pX": "375400,375400",
+ "pY": "547950,548350"
+ },
+ {
+ "IdS": 10563,
+ "pX": "356670,356670.01",
+ "pY": "552535,551650"
+ },
+ {
+ "IdS": 10564,
+ "pX": "372100,372100",
+ "pY": "556050,555850"
+ },
+ {
+ "IdS": 10565,
+ "pX": "368188.65,368085.34",
+ "pY": "554485.75,554314.5"
+ },
+ {
+ "IdS": 10566,
+ "pX": "351143.31,351174.22",
+ "pY": "553755.01,553557.42"
+ },
+ {
+ "IdS": 10567,
+ "pX": "366350,366050",
+ "pY": "555900,555900"
+ },
+ {
+ "IdS": 10568,
+ "pX": "365500,365641.42",
+ "pY": "554800,554658.58"
+ },
+ {
+ "IdS": 10569,
+ "pX": "364792.89,364934.31",
+ "pY": "554092.89,553951.47"
+ },
+ {
+ "IdS": 10571,
+ "pX": "370485,370315",
+ "pY": "555325,555215"
+ },
+ {
+ "IdS": 10572,
+ "pX": "372100,371900",
+ "pY": "556050,556050"
+ },
+ {
+ "IdS": 10573,
+ "pX": "371900,371900",
+ "pY": "556050,555850"
+ },
+ {
+ "IdS": 10574,
+ "pX": "371670,371741.98",
+ "pY": "556050,556331.76"
+ },
+ {
+ "IdS": 10575,
+ "pX": "370315,370210",
+ "pY": "555215,555385"
+ },
+ {
+ "IdS": 10577,
+ "pX": "370105,369925",
+ "pY": "555555,555445"
+ },
+ {
+ "IdS": 10578,
+ "pX": "370105,370000",
+ "pY": "555555,555725"
+ },
+ {
+ "IdS": 10580,
+ "pX": "372750,372500.2",
+ "pY": "553600,553600"
+ },
+ {
+ "IdS": 10582,
+ "pX": "372800,372600",
+ "pY": "553800,553800"
+ },
+ {
+ "IdS": 10583,
+ "pX": "372600,372400",
+ "pY": "553800,553800"
+ },
+ {
+ "IdS": 10584,
+ "pX": "372800,372800",
+ "pY": "553800,554000"
+ },
+ {
+ "IdS": 10586,
+ "pX": "372796.06,372796.29",
+ "pY": "554339.12,554540.5"
+ },
+ {
+ "IdS": 10588,
+ "pX": "372800,372600",
+ "pY": "554000,554000"
+ },
+ {
+ "IdS": 10592,
+ "pX": "373400.01,373600",
+ "pY": "553400.01,553400"
+ },
+ {
+ "IdS": 10593,
+ "pX": "373600,373600",
+ "pY": "553400,553200"
+ },
+ {
+ "IdS": 10596,
+ "pX": "373600,373600.04",
+ "pY": "552400.01,552199.68"
+ },
+ {
+ "IdS": 10601,
+ "pX": "374155.51,374326.76",
+ "pY": "553922.8,553819.48"
+ },
+ {
+ "IdS": 10609,
+ "pX": "370145,370205",
+ "pY": "555110,555015"
+ },
+ {
+ "IdS": 10610,
+ "pX": "370145,370145",
+ "pY": "555110,554970"
+ },
+ {
+ "IdS": 10611,
+ "pX": "370599.99,370600",
+ "pY": "553400.01,553600"
+ },
+ {
+ "IdS": 10612,
+ "pX": "370600,370400",
+ "pY": "553600,553600"
+ },
+ {
+ "IdS": 10613,
+ "pX": "370600,370800",
+ "pY": "553600,553600"
+ },
+ {
+ "IdS": 10614,
+ "pX": "370600,370600",
+ "pY": "553600,553800"
+ },
+ {
+ "IdS": 10615,
+ "pX": "370600,370400",
+ "pY": "553800,553800"
+ },
+ {
+ "IdS": 10616,
+ "pX": "370600,370600",
+ "pY": "553800,554000"
+ },
+ {
+ "IdS": 10617,
+ "pX": "370600,370400",
+ "pY": "554000,554000"
+ },
+ {
+ "IdS": 10626,
+ "pX": "373000,373200",
+ "pY": "550600,550600"
+ },
+ {
+ "IdS": 10627,
+ "pX": "373000,373000",
+ "pY": "550600,550800"
+ },
+ {
+ "IdS": 10628,
+ "pX": "370000,370250",
+ "pY": "553400,553180"
+ },
+ {
+ "IdS": 10629,
+ "pX": "370250,370450",
+ "pY": "553180,553180"
+ },
+ {
+ "IdS": 10630,
+ "pX": "370250,370250",
+ "pY": "553180,552980"
+ },
+ {
+ "IdS": 10631,
+ "pX": "371466.79,371637.05",
+ "pY": "556397.08,556502.02"
+ },
+ {
+ "IdS": 10632,
+ "pX": "371637.05,371479.64",
+ "pY": "556502.02,556757.41"
+ },
+ {
+ "IdS": 10633,
+ "pX": "371479.64,371649.9",
+ "pY": "556757.41,556862.34"
+ },
+ {
+ "IdS": 10634,
+ "pX": "371479.64,371217.29",
+ "pY": "556757.41,557183.05"
+ },
+ {
+ "IdS": 10635,
+ "pX": "371217.29,371387.55",
+ "pY": "557183.05,557287.99"
+ },
+ {
+ "IdS": 10636,
+ "pX": "370210,370105",
+ "pY": "555385,555555"
+ },
+ {
+ "IdS": 10637,
+ "pX": "370210,370265",
+ "pY": "555385,555420"
+ },
+ {
+ "IdS": 10640,
+ "pX": "369850,369700",
+ "pY": "549350,549200"
+ },
+ {
+ "IdS": 10641,
+ "pX": "369700,369500",
+ "pY": "549200,549000"
+ },
+ {
+ "IdS": 10643,
+ "pX": "369500,369350",
+ "pY": "549000,549150"
+ },
+ {
+ "IdS": 10645,
+ "pX": "369200,369000",
+ "pY": "548700,548500"
+ },
+ {
+ "IdS": 10646,
+ "pX": "369000,368800",
+ "pY": "548500,548300"
+ },
+ {
+ "IdS": 10647,
+ "pX": "370150,369900",
+ "pY": "549050,549050"
+ },
+ {
+ "IdS": 10648,
+ "pX": "370150,369900",
+ "pY": "549050,548800"
+ },
+ {
+ "IdS": 10649,
+ "pX": "372300,372500",
+ "pY": "546700,546600"
+ },
+ {
+ "IdS": 10653,
+ "pX": "372550,372750",
+ "pY": "547200,547100"
+ },
+ {
+ "IdS": 10654,
+ "pX": "372750,372950",
+ "pY": "547100,547000"
+ },
+ {
+ "IdS": 10658,
+ "pX": "375030.01,375160.01",
+ "pY": "545889.99,545990"
+ },
+ {
+ "IdS": 10659,
+ "pX": "372702.6,372547.63",
+ "pY": "555967.06,555710.18"
+ },
+ {
+ "IdS": 10660,
+ "pX": "372547.63,372376.38",
+ "pY": "555710.18,555813.49"
+ },
+ {
+ "IdS": 10661,
+ "pX": "372547.63,372444.33",
+ "pY": "555710.18,555538.93"
+ },
+ {
+ "IdS": 10662,
+ "pX": "372444.33,372341.02",
+ "pY": "555538.93,555367.67"
+ },
+ {
+ "IdS": 10663,
+ "pX": "372341.02,372237.71",
+ "pY": "555367.67,555196.42"
+ },
+ {
+ "IdS": 10664,
+ "pX": "372237.71,372175.07",
+ "pY": "555196.42,555089.54"
+ },
+ {
+ "IdS": 10665,
+ "pX": "373815.74,373712.44",
+ "pY": "555295.57,555124.31"
+ },
+ {
+ "IdS": 10666,
+ "pX": "373712.44,373883.69",
+ "pY": "555124.31,555021.01"
+ },
+ {
+ "IdS": 10667,
+ "pX": "373712.44,373609.13",
+ "pY": "555124.31,554953.06"
+ },
+ {
+ "IdS": 10668,
+ "pX": "373609.13,373505.83",
+ "pY": "554953.06,554781.81"
+ },
+ {
+ "IdS": 10669,
+ "pX": "372400,372200",
+ "pY": "553100,553100"
+ },
+ {
+ "IdS": 10670,
+ "pX": "372800,372600",
+ "pY": "552000,552000"
+ },
+ {
+ "IdS": 10671,
+ "pX": "372600,372400",
+ "pY": "552000,552000"
+ },
+ {
+ "IdS": 10672,
+ "pX": "372400,372400",
+ "pY": "552000,552200"
+ },
+ {
+ "IdS": 10673,
+ "pX": "372400,372200",
+ "pY": "552000,552000"
+ },
+ {
+ "IdS": 10675,
+ "pX": "378450,378550",
+ "pY": "544200,544450"
+ },
+ {
+ "IdS": 10685,
+ "pX": "380050,379800",
+ "pY": "544600,544900"
+ },
+ {
+ "IdS": 10694,
+ "pX": "380100,379750",
+ "pY": "545400,545400"
+ },
+ {
+ "IdS": 10698,
+ "pX": "379350,379200",
+ "pY": "545200,545500"
+ },
+ {
+ "IdS": 10702,
+ "pX": "379750,379750",
+ "pY": "543950,544150"
+ },
+ {
+ "IdS": 10705,
+ "pX": "380250,380150",
+ "pY": "543750,543600"
+ },
+ {
+ "IdS": 10708,
+ "pX": "380400,380350",
+ "pY": "543700,543550"
+ },
+ {
+ "IdS": 10709,
+ "pX": "380830.05,380755.39",
+ "pY": "543464.21,543378.7"
+ },
+ {
+ "IdS": 10710,
+ "pX": "381400,381500",
+ "pY": "543250,543450"
+ },
+ {
+ "IdS": 10714,
+ "pX": "382000,382200",
+ "pY": "543200,543200"
+ },
+ {
+ "IdS": 10715,
+ "pX": "381000,380800",
+ "pY": "542150,542150"
+ },
+ {
+ "IdS": 10720,
+ "pX": "379900,380000",
+ "pY": "541600,541750"
+ },
+ {
+ "IdS": 10721,
+ "pX": "377050,377200.01",
+ "pY": "547500,547450"
+ },
+ {
+ "IdS": 10725,
+ "pX": "378950,378850",
+ "pY": "545000,545200"
+ },
+ {
+ "IdS": 10726,
+ "pX": "378850,378750",
+ "pY": "545200,545400"
+ },
+ {
+ "IdS": 10727,
+ "pX": "378750,378650.01",
+ "pY": "545400,545600"
+ },
+ {
+ "IdS": 10730,
+ "pX": "372442.83,372615.05",
+ "pY": "556528.79,556634.89"
+ },
+ {
+ "IdS": 10731,
+ "pX": "372442.83,372547.77",
+ "pY": "556528.79,556358.53"
+ },
+ {
+ "IdS": 10732,
+ "pX": "373045.08,372873.83",
+ "pY": "555760.45,555863.74"
+ },
+ {
+ "IdS": 10733,
+ "pX": "372873.83,372702.6",
+ "pY": "555863.74,555967.06"
+ },
+ {
+ "IdS": 10734,
+ "pX": "373644.49,373473.23",
+ "pY": "555398.88,555502.18"
+ },
+ {
+ "IdS": 10735,
+ "pX": "373473.23,373301.98",
+ "pY": "555502.18,555605.49"
+ },
+ {
+ "IdS": 10736,
+ "pX": "379750,379900",
+ "pY": "543950,543900"
+ },
+ {
+ "IdS": 10738,
+ "pX": "379900,379900",
+ "pY": "543900,544100"
+ },
+ {
+ "IdS": 10740,
+ "pX": "381100,381000",
+ "pY": "542300,542150"
+ },
+ {
+ "IdS": 10744,
+ "pX": "380250,380400",
+ "pY": "543750,543700"
+ },
+ {
+ "IdS": 10745,
+ "pX": "380400,380600",
+ "pY": "543700,543600"
+ },
+ {
+ "IdS": 10747,
+ "pX": "380600,380700",
+ "pY": "543600,543750"
+ },
+ {
+ "IdS": 10748,
+ "pX": "368950,368850",
+ "pY": "554380,554550"
+ },
+ {
+ "IdS": 10749,
+ "pX": "368950,369055",
+ "pY": "554380,554210"
+ },
+ {
+ "IdS": 10750,
+ "pX": "371571.73,371401.47",
+ "pY": "556226.82,556121.89"
+ },
+ {
+ "IdS": 10751,
+ "pX": "374337.75,374430.06",
+ "pY": "553838.4,553990.73"
+ },
+ {
+ "IdS": 10754,
+ "pX": "373609.13,373437.86",
+ "pY": "554953.06,555056.36"
+ },
+ {
+ "IdS": 10755,
+ "pX": "372702.6,372805.91",
+ "pY": "555967.06,556138.3"
+ },
+ {
+ "IdS": 10758,
+ "pX": "372444.33,372273.07",
+ "pY": "555538.93,555642.23"
+ },
+ {
+ "IdS": 10759,
+ "pX": "372341.02,372169.77",
+ "pY": "555367.67,555470.98"
+ },
+ {
+ "IdS": 10760,
+ "pX": "372873.83,373035",
+ "pY": "555863.74,556125"
+ },
+ {
+ "IdS": 10766,
+ "pX": "373473.23,373369.93",
+ "pY": "555502.18,555330.93"
+ },
+ {
+ "IdS": 10770,
+ "pX": "373600,373600",
+ "pY": "553200,553000"
+ },
+ {
+ "IdS": 10771,
+ "pX": "373600,373600",
+ "pY": "552600,552400.01"
+ },
+ {
+ "IdS": 10772,
+ "pX": "373600,373400",
+ "pY": "552600,552600"
+ },
+ {
+ "IdS": 10778,
+ "pX": "372800,372600",
+ "pY": "551200.01,551200"
+ },
+ {
+ "IdS": 10779,
+ "pX": "372800,373000.01",
+ "pY": "551400,551400"
+ },
+ {
+ "IdS": 10780,
+ "pX": "371900,371900",
+ "pY": "552800,552600"
+ },
+ {
+ "IdS": 10781,
+ "pX": "372200,372200",
+ "pY": "552800,552600"
+ },
+ {
+ "IdS": 10782,
+ "pX": "372600,372600",
+ "pY": "552800,552600"
+ },
+ {
+ "IdS": 10783,
+ "pX": "371350,371700",
+ "pY": "549250,549250"
+ },
+ {
+ "IdS": 10785,
+ "pX": "369650,369450",
+ "pY": "551000.01,551000"
+ },
+ {
+ "IdS": 10786,
+ "pX": "369760,369705",
+ "pY": "552720,552740"
+ },
+ {
+ "IdS": 10788,
+ "pX": "379250,379800",
+ "pY": "544400,544900"
+ },
+ {
+ "IdS": 10791,
+ "pX": "371250,371149.99",
+ "pY": "548200,548050"
+ },
+ {
+ "IdS": 10793,
+ "pX": "372000,372000",
+ "pY": "548300,548550"
+ },
+ {
+ "IdS": 10794,
+ "pX": "373130.72,373045.08",
+ "pY": "555708.79,555760.45"
+ },
+ {
+ "IdS": 10797,
+ "pX": "375390,375800",
+ "pY": "545454.99,545300"
+ },
+ {
+ "IdS": 10798,
+ "pX": "375800,376050",
+ "pY": "545300,545200"
+ },
+ {
+ "IdS": 10799,
+ "pX": "375800,375800",
+ "pY": "545300,545500"
+ },
+ {
+ "IdS": 10800,
+ "pX": "372445,371950",
+ "pY": "550265.02,549850"
+ },
+ {
+ "IdS": 10801,
+ "pX": "371950,371650",
+ "pY": "549850,549850"
+ },
+ {
+ "IdS": 10803,
+ "pX": "372800,372600",
+ "pY": "550799.99,550799.99"
+ },
+ {
+ "IdS": 10804,
+ "pX": "372800,373000",
+ "pY": "550600,550600"
+ },
+ {
+ "IdS": 10805,
+ "pX": "372150,372250",
+ "pY": "547750,547700"
+ },
+ {
+ "IdS": 10806,
+ "pX": "372250,372500",
+ "pY": "547700,547600"
+ },
+ {
+ "IdS": 10807,
+ "pX": "372250,372347,372500",
+ "pY": "547700,547747.67,547600"
+ },
+ {
+ "IdS": 10811,
+ "pX": "376600,376900",
+ "pY": "545600,545600"
+ },
+ {
+ "IdS": 10814,
+ "pX": "351050,351050",
+ "pY": "551050,550750"
+ },
+ {
+ "IdS": 10815,
+ "pX": "351050,351050",
+ "pY": "550750,550550"
+ },
+ {
+ "IdS": 10816,
+ "pX": "351050,351050",
+ "pY": "550550,550350"
+ },
+ {
+ "IdS": 10817,
+ "pX": "351050,351400",
+ "pY": "550350,550350"
+ },
+ {
+ "IdS": 10818,
+ "pX": "351050,351400",
+ "pY": "550750,550750"
+ },
+ {
+ "IdS": 10819,
+ "pX": "351050,350750",
+ "pY": "550550,550550"
+ },
+ {
+ "IdS": 10821,
+ "pX": "351050,351050",
+ "pY": "550350,550100"
+ },
+ {
+ "IdS": 10823,
+ "pX": "347600,347600",
+ "pY": "551450.01,551700"
+ },
+ {
+ "IdS": 10824,
+ "pX": "350751.44,350720.53",
+ "pY": "552377.89,552575.5"
+ },
+ {
+ "IdS": 10825,
+ "pX": "351300,351300",
+ "pY": "552050,552300"
+ },
+ {
+ "IdS": 10827,
+ "pX": "352150,352150",
+ "pY": "552200,552400"
+ },
+ {
+ "IdS": 10828,
+ "pX": "353100,353147.71",
+ "pY": "552350,552182.14"
+ },
+ {
+ "IdS": 10829,
+ "pX": "353450,353450",
+ "pY": "551600,551350"
+ },
+ {
+ "IdS": 10830,
+ "pX": "353450,353750",
+ "pY": "551600,551600"
+ },
+ {
+ "IdS": 10831,
+ "pX": "357800,357850",
+ "pY": "550200,550000"
+ },
+ {
+ "IdS": 10833,
+ "pX": "358100,358400",
+ "pY": "551350,551250"
+ },
+ {
+ "IdS": 10834,
+ "pX": "358400,358700",
+ "pY": "551250,551150"
+ },
+ {
+ "IdS": 10835,
+ "pX": "358700,358900",
+ "pY": "551150,551050"
+ },
+ {
+ "IdS": 10837,
+ "pX": "358900,358900",
+ "pY": "551050,550650"
+ },
+ {
+ "IdS": 10838,
+ "pX": "358900,359500",
+ "pY": "550650,550650"
+ },
+ {
+ "IdS": 10839,
+ "pX": "358900,358900.01",
+ "pY": "550650,550250"
+ },
+ {
+ "IdS": 10841,
+ "pX": "358400,358200",
+ "pY": "553800,553800"
+ },
+ {
+ "IdS": 10842,
+ "pX": "360200,360200",
+ "pY": "552900,553100"
+ },
+ {
+ "IdS": 10844,
+ "pX": "360600,360600",
+ "pY": "553100,553300"
+ },
+ {
+ "IdS": 10845,
+ "pX": "360600,360800",
+ "pY": "553100,553100"
+ },
+ {
+ "IdS": 10846,
+ "pX": "360600,360600",
+ "pY": "552900,553100"
+ },
+ {
+ "IdS": 10847,
+ "pX": "361200,361200",
+ "pY": "552900,553101.38"
+ },
+ {
+ "IdS": 10848,
+ "pX": "362200,362400",
+ "pY": "552700,552700"
+ },
+ {
+ "IdS": 10849,
+ "pX": "362200,362000",
+ "pY": "551600,551600"
+ },
+ {
+ "IdS": 10852,
+ "pX": "364850.65,364851.24",
+ "pY": "552549.39,552350.55"
+ },
+ {
+ "IdS": 10853,
+ "pX": "364085.77,363944.36",
+ "pY": "553385.79,553527.22"
+ },
+ {
+ "IdS": 10854,
+ "pX": "364934.31,365075.73",
+ "pY": "553951.47,554092.9"
+ },
+ {
+ "IdS": 10855,
+ "pX": "364580.75,364439.33",
+ "pY": "553880.76,554022.19"
+ },
+ {
+ "IdS": 10856,
+ "pX": "364439.33,364297.91",
+ "pY": "554022.19,554163.61"
+ },
+ {
+ "IdS": 10857,
+ "pX": "364297.91,364156.49",
+ "pY": "554163.61,554305.03"
+ },
+ {
+ "IdS": 10858,
+ "pX": "364934.31,364792.89",
+ "pY": "554234.32,554375.74"
+ },
+ {
+ "IdS": 10859,
+ "pX": "365358.58,365217.15",
+ "pY": "554658.58,554800"
+ },
+ {
+ "IdS": 10860,
+ "pX": "365217.15,365075.73",
+ "pY": "554517.16,554658.58"
+ },
+ {
+ "IdS": 10861,
+ "pX": "365712.13,365853.55",
+ "pY": "555012.13,554870.71"
+ },
+ {
+ "IdS": 10862,
+ "pX": "366350.01,366350",
+ "pY": "556500,556700"
+ },
+ {
+ "IdS": 10863,
+ "pX": "366350,366150",
+ "pY": "556700,556700"
+ },
+ {
+ "IdS": 10864,
+ "pX": "363600,364000",
+ "pY": "556100,556100"
+ },
+ {
+ "IdS": 10865,
+ "pX": "358400,358600.01",
+ "pY": "554000,554000"
+ },
+ {
+ "IdS": 10866,
+ "pX": "358600.01,358800",
+ "pY": "554000,554000"
+ },
+ {
+ "IdS": 10867,
+ "pX": "358600.01,358800",
+ "pY": "554200,554200"
+ },
+ {
+ "IdS": 10868,
+ "pX": "358400,358600",
+ "pY": "554400,554400"
+ },
+ {
+ "IdS": 10870,
+ "pX": "358400,358600",
+ "pY": "554600,554600"
+ },
+ {
+ "IdS": 10871,
+ "pX": "358600,358800",
+ "pY": "554600,554600"
+ },
+ {
+ "IdS": 10872,
+ "pX": "358600,358599.96",
+ "pY": "554600,554801.32"
+ },
+ {
+ "IdS": 10873,
+ "pX": "358400,358600",
+ "pY": "555501.39,555501.39"
+ },
+ {
+ "IdS": 10874,
+ "pX": "358400.05,358199.99",
+ "pY": "555800.01,556001.39"
+ },
+ {
+ "IdS": 10875,
+ "pX": "358400,358600",
+ "pY": "556401.38,556401.38"
+ },
+ {
+ "IdS": 10876,
+ "pX": "358600,358800",
+ "pY": "556401.38,556401.38"
+ },
+ {
+ "IdS": 10877,
+ "pX": "358800,359000",
+ "pY": "556401.38,556401.38"
+ },
+ {
+ "IdS": 10878,
+ "pX": "358400,358400",
+ "pY": "557201.39,557401.38"
+ },
+ {
+ "IdS": 10879,
+ "pX": "358800,358800",
+ "pY": "552900,552700"
+ },
+ {
+ "IdS": 10880,
+ "pX": "366350,366350",
+ "pY": "556700,556900"
+ },
+ {
+ "IdS": 10881,
+ "pX": "350720.53,350658.71",
+ "pY": "552575.5,552970.69"
+ },
+ {
+ "IdS": 10882,
+ "pX": "350658.71,350461.12",
+ "pY": "552970.69,552939.77"
+ },
+ {
+ "IdS": 10883,
+ "pX": "350658.71,350636.6",
+ "pY": "552970.69,553126.14"
+ },
+ {
+ "IdS": 10884,
+ "pX": "350461.12,350263.52",
+ "pY": "552939.77,552908.88"
+ },
+ {
+ "IdS": 10885,
+ "pX": "350461.12,350440",
+ "pY": "552939.77,553090"
+ },
+ {
+ "IdS": 10886,
+ "pX": "350263.52,350074.83",
+ "pY": "552908.88,552875"
+ },
+ {
+ "IdS": 10887,
+ "pX": "350263.52,350246.06",
+ "pY": "552908.88,553071.13"
+ },
+ {
+ "IdS": 10888,
+ "pX": "366989.87,367093.18",
+ "pY": "555208.89,555380.14"
+ },
+ {
+ "IdS": 10889,
+ "pX": "367093.18,366921.93",
+ "pY": "555380.14,555483.45"
+ },
+ {
+ "IdS": 10890,
+ "pX": "367093.18,367196.49",
+ "pY": "555380.14,555551.4"
+ },
+ {
+ "IdS": 10891,
+ "pX": "367196.49,367299.8",
+ "pY": "555551.4,555722.66"
+ },
+ {
+ "IdS": 10892,
+ "pX": "367196.49,367025.23",
+ "pY": "555551.4,555654.71"
+ },
+ {
+ "IdS": 10893,
+ "pX": "367025.23,366853.99",
+ "pY": "555654.71,555758.02"
+ },
+ {
+ "IdS": 10894,
+ "pX": "367025.23,367128.54",
+ "pY": "555654.71,555825.96"
+ },
+ {
+ "IdS": 10895,
+ "pX": "367128.54,367231.84",
+ "pY": "555825.96,555997.21"
+ },
+ {
+ "IdS": 10896,
+ "pX": "367128.54,366957.29",
+ "pY": "555825.96,555929.27"
+ },
+ {
+ "IdS": 10898,
+ "pX": "368650,368400",
+ "pY": "554200,554040"
+ },
+ {
+ "IdS": 10899,
+ "pX": "368400,368280",
+ "pY": "554040,553965"
+ },
+ {
+ "IdS": 10900,
+ "pX": "368280,368145",
+ "pY": "553965,553885"
+ },
+ {
+ "IdS": 10902,
+ "pX": "376750,376950",
+ "pY": "546800,547300"
+ },
+ {
+ "IdS": 10903,
+ "pX": "374000,374219.86",
+ "pY": "554450,554824.9"
+ },
+ {
+ "IdS": 10904,
+ "pX": "374219.86,374329.51,374158.24",
+ "pY": "554824.9,554985.66,555088.96"
+ },
+ {
+ "IdS": 10906,
+ "pX": "374219.86,373950",
+ "pY": "554824.9,554750"
+ },
+ {
+ "IdS": 10907,
+ "pX": "372800,372800",
+ "pY": "551000,550799.99"
+ },
+ {
+ "IdS": 10908,
+ "pX": "372800,372800",
+ "pY": "550799.99,550600"
+ },
+ {
+ "IdS": 10911,
+ "pX": "351600,352150",
+ "pY": "552100,552200"
+ },
+ {
+ "IdS": 10912,
+ "pX": "352150,352400,352500",
+ "pY": "552200,552250,552050"
+ },
+ {
+ "IdS": 10913,
+ "pX": "352900,353100",
+ "pY": "552300,552350"
+ },
+ {
+ "IdS": 10914,
+ "pX": "353100,353300",
+ "pY": "552350,552400"
+ },
+ {
+ "IdS": 10915,
+ "pX": "358399.99,358400",
+ "pY": "553601.32,553800"
+ },
+ {
+ "IdS": 10916,
+ "pX": "358400,358400",
+ "pY": "553800,554000"
+ },
+ {
+ "IdS": 10917,
+ "pX": "362200,362200",
+ "pY": "552900,552700"
+ },
+ {
+ "IdS": 10918,
+ "pX": "362200,362200",
+ "pY": "552700,552300"
+ },
+ {
+ "IdS": 10919,
+ "pX": "362200,362200",
+ "pY": "551800,551600"
+ },
+ {
+ "IdS": 10920,
+ "pX": "362200,362200",
+ "pY": "551600,550900"
+ },
+ {
+ "IdS": 10921,
+ "pX": "364050.02,363849.99,364085.77",
+ "pY": "552949.72,553151.17,553385.79"
+ },
+ {
+ "IdS": 10922,
+ "pX": "364085.77,364227.2",
+ "pY": "553385.79,553527.21"
+ },
+ {
+ "IdS": 10923,
+ "pX": "364934.31,364792.88",
+ "pY": "553951.47,553810.06"
+ },
+ {
+ "IdS": 10924,
+ "pX": "358400,358400",
+ "pY": "554200,554400"
+ },
+ {
+ "IdS": 10925,
+ "pX": "358400,358400",
+ "pY": "554400,554600"
+ },
+ {
+ "IdS": 10926,
+ "pX": "364849.67,364850.65",
+ "pY": "552950.03,552549.39"
+ },
+ {
+ "IdS": 10927,
+ "pX": "364850.65,364663.59",
+ "pY": "552549.39,552549.39"
+ },
+ {
+ "IdS": 10928,
+ "pX": "365715,365995",
+ "pY": "552750,552750"
+ },
+ {
+ "IdS": 10929,
+ "pX": "365995,366080,366205,366205,366205",
+ "pY": "552750,552735,552605,552610,552540"
+ },
+ {
+ "IdS": 10934,
+ "pX": "368650,368873.65",
+ "pY": "554200,554072.52"
+ },
+ {
+ "IdS": 10935,
+ "pX": "368873.65,369475",
+ "pY": "554072.52,553710"
+ },
+ {
+ "IdS": 10936,
+ "pX": "360000,360200",
+ "pY": "552900,552900"
+ },
+ {
+ "IdS": 10937,
+ "pX": "360200,360600",
+ "pY": "552900,552900"
+ },
+ {
+ "IdS": 10938,
+ "pX": "365217.15,365358.58",
+ "pY": "554517.16,554658.58"
+ },
+ {
+ "IdS": 10939,
+ "pX": "365358.58,365500",
+ "pY": "554658.58,554800"
+ },
+ {
+ "IdS": 10940,
+ "pX": "358400,358400",
+ "pY": "557001.38,557201.39"
+ },
+ {
+ "IdS": 10941,
+ "pX": "358400,358200",
+ "pY": "557201.39,557201.39"
+ },
+ {
+ "IdS": 11225,
+ "pX": "381750,382000",
+ "pY": "543000,543000.01"
+ },
+ {
+ "IdS": 11426,
+ "pX": "355550,355550",
+ "pY": "552800,551650"
+ },
+ {
+ "IdS": 11427,
+ "pX": "355550,355550",
+ "pY": "551650,551400"
+ },
+ {
+ "IdS": 11428,
+ "pX": "355550,355300",
+ "pY": "551650,551650"
+ },
+ {
+ "IdS": 11430,
+ "pX": "362800,362800",
+ "pY": "552300,552100"
+ },
+ {
+ "IdS": 11431,
+ "pX": "364227.2,364085.78",
+ "pY": "553527.21,553668.64"
+ },
+ {
+ "IdS": 11433,
+ "pX": "371900,371900.01",
+ "pY": "553200,552999.99"
+ },
+ {
+ "IdS": 11434,
+ "pX": "380900,380800",
+ "pY": "541950,541750"
+ },
+ {
+ "IdS": 11435,
+ "pX": "380800,380450",
+ "pY": "541750,541250"
+ },
+ {
+ "IdS": 11536,
+ "pX": "369175,369335",
+ "pY": "553430,553080"
+ },
+ {
+ "IdS": 11537,
+ "pX": "369335,369650",
+ "pY": "553080,552440"
+ },
+ {
+ "IdS": 11541,
+ "pX": "369335,369125",
+ "pY": "553080,552970.01"
+ },
+ {
+ "IdS": 11563,
+ "pX": "350720.53,350522.93",
+ "pY": "552575.5,552544.59"
+ },
+ {
+ "IdS": 11577,
+ "pX": "356250,356670",
+ "pY": "552900.01,552535"
+ },
+ {
+ "IdS": 11589,
+ "pX": "358800,359100",
+ "pY": "552900,552900"
+ },
+ {
+ "IdS": 11590,
+ "pX": "359100,359300",
+ "pY": "552900,552900"
+ },
+ {
+ "IdS": 11591,
+ "pX": "359100,359100",
+ "pY": "552900,553100"
+ },
+ {
+ "IdS": 11703,
+ "pX": "372250,372300,372500",
+ "pY": "547700,547600,547600"
+ },
+ {
+ "IdS": 11720,
+ "pX": "376600,376600",
+ "pY": "544950,545150"
+ },
+ {
+ "IdS": 11721,
+ "pX": "376600,376600",
+ "pY": "545150,545350"
+ },
+ {
+ "IdS": 200002,
+ "pX": "335040,334900",
+ "pY": "571000,571000"
+ },
+ {
+ "IdS": 200004,
+ "pX": "336000,336000",
+ "pY": "571150,571250"
+ },
+ {
+ "IdS": 200008,
+ "pX": "336700,336650",
+ "pY": "571450,571550"
+ },
+ {
+ "IdS": 200009,
+ "pX": "335750,335600",
+ "pY": "564900,564900"
+ },
+ {
+ "IdS": 200010,
+ "pX": "339100,339100",
+ "pY": "558950,558650"
+ },
+ {
+ "IdS": 200011,
+ "pX": "339100,339100",
+ "pY": "558650,558500"
+ },
+ {
+ "IdS": 200012,
+ "pX": "339100,339305",
+ "pY": "558650,558650"
+ },
+ {
+ "IdS": 200013,
+ "pX": "333300,333148.93",
+ "pY": "568650,568828.84"
+ },
+ {
+ "IdS": 200015,
+ "pX": "333400,333000",
+ "pY": "566550,566200"
+ },
+ {
+ "IdS": 200017,
+ "pX": "339250,339350",
+ "pY": "571050,571050"
+ },
+ {
+ "IdS": 200018,
+ "pX": "339350,339325,339325,339350",
+ "pY": "571050,571075,571150,571175"
+ },
+ {
+ "IdS": 200019,
+ "pX": "339350,339375,339375,339350",
+ "pY": "571050,571075,571150,571175"
+ },
+ {
+ "IdS": 200022,
+ "pX": "344450,344200",
+ "pY": "554700,554700"
+ },
+ {
+ "IdS": 200023,
+ "pX": "344450,344500,344800,344850",
+ "pY": "554700,554650,554650,554700"
+ },
+ {
+ "IdS": 200024,
+ "pX": "344850,344500,344800,344450",
+ "pY": "554700,554750,554750,554700"
+ },
+ {
+ "IdS": 200025,
+ "pX": "344200,343950,344150,343900",
+ "pY": "554700,554650,554650,554700"
+ },
+ {
+ "IdS": 200026,
+ "pX": "344200,343950,344150,343900",
+ "pY": "554700,554750,554750,554700"
+ },
+ {
+ "IdS": 200027,
+ "pX": "345800,345900,346000",
+ "pY": "554450,554400,554400"
+ },
+ {
+ "IdS": 200028,
+ "pX": "338950,338700",
+ "pY": "565850,565850"
+ },
+ {
+ "IdS": 200029,
+ "pX": "345850,345715",
+ "pY": "543700,543630"
+ },
+ {
+ "IdS": 200030,
+ "pX": "345790,345275",
+ "pY": "562105,562500"
+ },
+ {
+ "IdS": 200031,
+ "pX": "346395,346600",
+ "pY": "560105,560355"
+ },
+ {
+ "IdS": 200032,
+ "pX": "347300,347475",
+ "pY": "560605,560525"
+ },
+ {
+ "IdS": 200033,
+ "pX": "347450,347700",
+ "pY": "558800,558800"
+ },
+ {
+ "IdS": 200034,
+ "pX": "347100,347100",
+ "pY": "555600,555450"
+ },
+ {
+ "IdS": 200037,
+ "pX": "345700,345700.01",
+ "pY": "554365,554404.81"
+ },
+ {
+ "IdS": 200038,
+ "pX": "345700,345660",
+ "pY": "554365,554365"
+ },
+ {
+ "IdS": 200040,
+ "pX": "341550,341400",
+ "pY": "573850,574150"
+ },
+ {
+ "IdS": 200042,
+ "pX": "338845.17,338900.61",
+ "pY": "577753.36,577350.73"
+ },
+ {
+ "IdS": 200043,
+ "pX": "339099.6,339281.91",
+ "pY": "576650.66,575964.07"
+ },
+ {
+ "IdS": 200044,
+ "pX": "340050,339800",
+ "pY": "570350,570050"
+ },
+ {
+ "IdS": 200045,
+ "pX": "339800,339450",
+ "pY": "570050,569800"
+ },
+ {
+ "IdS": 200047,
+ "pX": "341400,341200",
+ "pY": "557500,557500"
+ },
+ {
+ "IdS": 200048,
+ "pX": "346500.12,346800",
+ "pY": "555000,554900"
+ },
+ {
+ "IdS": 200049,
+ "pX": "340650,340650",
+ "pY": "558950,558675"
+ },
+ {
+ "IdS": 200050,
+ "pX": "346100,346100,346200",
+ "pY": "549450,549350,549350"
+ },
+ {
+ "IdS": 200051,
+ "pX": "347450,347850",
+ "pY": "552600,552600"
+ },
+ {
+ "IdS": 200052,
+ "pX": "346825,346780",
+ "pY": "550955,551150"
+ },
+ {
+ "IdS": 200053,
+ "pX": "349300,349450",
+ "pY": "551550,551550"
+ },
+ {
+ "IdS": 200054,
+ "pX": "362250,362150",
+ "pY": "550450,550250"
+ },
+ {
+ "IdS": 200055,
+ "pX": "362250,362600",
+ "pY": "550450,550300"
+ },
+ {
+ "IdS": 200056,
+ "pX": "372445,372700",
+ "pY": "550265.02,550400"
+ },
+ {
+ "IdS": 200057,
+ "pX": "375770,375840",
+ "pY": "550575,550575"
+ },
+ {
+ "IdS": 200058,
+ "pX": "375350,375650",
+ "pY": "550600,550600"
+ },
+ {
+ "IdS": 200061,
+ "pX": "375650,375150",
+ "pY": "550600,551350"
+ },
+ {
+ "IdS": 200063,
+ "pX": "374300,373904.4",
+ "pY": "552450,552994.91"
+ },
+ {
+ "IdS": 200064,
+ "pX": "373904.4,373600",
+ "pY": "552994.91,553400"
+ },
+ {
+ "IdS": 200065,
+ "pX": "373600,373803.78",
+ "pY": "553400,553697.49"
+ },
+ {
+ "IdS": 200066,
+ "pX": "373803.78,374180.5",
+ "pY": "553697.49,554341.48"
+ },
+ {
+ "IdS": 200067,
+ "pX": "374180.5,374300",
+ "pY": "554341.48,554550"
+ },
+ {
+ "IdS": 200068,
+ "pX": "374180.5,374000",
+ "pY": "554341.48,554450"
+ },
+ {
+ "IdS": 200070,
+ "pX": "374300,373950",
+ "pY": "554550,554750"
+ },
+ {
+ "IdS": 200071,
+ "pX": "374200,374300,374050",
+ "pY": "555350,555500,555650"
+ },
+ {
+ "IdS": 200072,
+ "pX": "374200,374150,373900,373950",
+ "pY": "555350,555300,555450,555500"
+ },
+ {
+ "IdS": 200073,
+ "pX": "374200,373950",
+ "pY": "555350,555500"
+ },
+ {
+ "IdS": 200074,
+ "pX": "371200,371200",
+ "pY": "534865,534100"
+ },
+ {
+ "IdS": 200075,
+ "pX": "371600.43,371295",
+ "pY": "534899.87,534900"
+ },
+ {
+ "IdS": 200077,
+ "pX": "373550,371600.43",
+ "pY": "534050,534899.87"
+ },
+ {
+ "IdS": 200078,
+ "pX": "373950,373823.65,373623.65,373550",
+ "pY": "534050,533963.79,533963.45,534050"
+ },
+ {
+ "IdS": 200079,
+ "pX": "373950,373550",
+ "pY": "534050,534050"
+ },
+ {
+ "IdS": 200080,
+ "pX": "374350,374223.65,374023.65,373950",
+ "pY": "534050,533964.47,533964.13,534050"
+ },
+ {
+ "IdS": 200081,
+ "pX": "374350,373950",
+ "pY": "534050,534050"
+ },
+ {
+ "IdS": 200082,
+ "pX": "375450,374550,374350",
+ "pY": "533850,533850,534050"
+ },
+ {
+ "IdS": 200083,
+ "pX": "375450,375450",
+ "pY": "534050,533850"
+ },
+ {
+ "IdS": 200084,
+ "pX": "375450,375500,375500,375450",
+ "pY": "534050,534000,533900,533850"
+ },
+ {
+ "IdS": 200085,
+ "pX": "375150,375450",
+ "pY": "534050,534050"
+ },
+ {
+ "IdS": 200089,
+ "pX": "341050,341300",
+ "pY": "568900,569150"
+ },
+ {
+ "IdS": 200090,
+ "pX": "375150,375150",
+ "pY": "534050,533700"
+ },
+ {
+ "IdS": 200091,
+ "pX": "375150,375150",
+ "pY": "533450,533700"
+ },
+ {
+ "IdS": 200092,
+ "pX": "375150,375100,375100,375150",
+ "pY": "533450,533500,533650,533700"
+ },
+ {
+ "IdS": 200093,
+ "pX": "375150,375150",
+ "pY": "533150,533450"
+ },
+ {
+ "IdS": 200094,
+ "pX": "375150,375150",
+ "pY": "532950,533150"
+ },
+ {
+ "IdS": 200095,
+ "pX": "375150,375200,375200,375150",
+ "pY": "532950,533000,533100,533150"
+ },
+ {
+ "IdS": 200096,
+ "pX": "375150,375100,375100,375150",
+ "pY": "532950,533000,533100,533150"
+ },
+ {
+ "IdS": 200097,
+ "pX": "375150,375200,375200,375150",
+ "pY": "533450,533500,533650,533700"
+ },
+ {
+ "IdS": 200098,
+ "pX": "375300,375300",
+ "pY": "531500,531700"
+ },
+ {
+ "IdS": 200099,
+ "pX": "375300,375350,375350,375300",
+ "pY": "531500,531550,531650,531700"
+ },
+ {
+ "IdS": 200100,
+ "pX": "375300,375250,375250,375300",
+ "pY": "531500,531550,531650,531700"
+ },
+ {
+ "IdS": 200101,
+ "pX": "375300,375300",
+ "pY": "531400,531500"
+ },
+ {
+ "IdS": 200102,
+ "pX": "375300,375300",
+ "pY": "531200,531400"
+ },
+ {
+ "IdS": 200103,
+ "pX": "375300,375250,375250,375300",
+ "pY": "531200,531250,531350,531400"
+ },
+ {
+ "IdS": 200104,
+ "pX": "375300,375350,375350,375300",
+ "pY": "531200,531250,531350,531400"
+ },
+ {
+ "IdS": 200105,
+ "pX": "348950,348990",
+ "pY": "555150,555045"
+ },
+ {
+ "IdS": 200106,
+ "pX": "348950,348965,348995,348990",
+ "pY": "555150,555145,555065,555045"
+ },
+ {
+ "IdS": 200107,
+ "pX": "348990,349240",
+ "pY": "555045,554445"
+ },
+ {
+ "IdS": 200108,
+ "pX": "349240,349265,349305,349300",
+ "pY": "554445,554435,554335,554300"
+ },
+ {
+ "IdS": 200109,
+ "pX": "349240,349300",
+ "pY": "554445,554300"
+ },
+ {
+ "IdS": 200110,
+ "pX": "349750,349950,349850,349950",
+ "pY": "555550,555600,555550,555650"
+ },
+ {
+ "IdS": 200111,
+ "pX": "349750,349950",
+ "pY": "555550,555650"
+ },
+ {
+ "IdS": 200112,
+ "pX": "349950,350100",
+ "pY": "555650,555700"
+ },
+ {
+ "IdS": 200113,
+ "pX": "350100,350300,350200,350300",
+ "pY": "555700,555750,555700,555800"
+ },
+ {
+ "IdS": 200114,
+ "pX": "350100,350300",
+ "pY": "555700,555800"
+ },
+ {
+ "IdS": 200115,
+ "pX": "352550,352800",
+ "pY": "556850,556950"
+ },
+ {
+ "IdS": 200116,
+ "pX": "352800,352900",
+ "pY": "556950,556750"
+ },
+ {
+ "IdS": 200117,
+ "pX": "352900,352950,353000",
+ "pY": "556750,556550,556550"
+ },
+ {
+ "IdS": 200118,
+ "pX": "352900,352950,353000",
+ "pY": "556750,556750,556550"
+ },
+ {
+ "IdS": 200119,
+ "pX": "352800,352900",
+ "pY": "556950,557000"
+ },
+ {
+ "IdS": 200122,
+ "pX": "356750,356850",
+ "pY": "563450,563400"
+ },
+ {
+ "IdS": 200123,
+ "pX": "355600,355450",
+ "pY": "563200,563400"
+ },
+ {
+ "IdS": 200124,
+ "pX": "353900,353750",
+ "pY": "568500,568600"
+ },
+ {
+ "IdS": 200125,
+ "pX": "353750,353400",
+ "pY": "568600,568900"
+ },
+ {
+ "IdS": 200126,
+ "pX": "353750,353750,353850,353900",
+ "pY": "568600,568650,568750,568750"
+ },
+ {
+ "IdS": 200127,
+ "pX": "353750,353900,353800,353900",
+ "pY": "568600,568700,568600,568750"
+ },
+ {
+ "IdS": 200130,
+ "pX": "353900,354000",
+ "pY": "568750,568850"
+ },
+ {
+ "IdS": 200131,
+ "pX": "356800,356700",
+ "pY": "568100,568300"
+ },
+ {
+ "IdS": 200132,
+ "pX": "330300,330600",
+ "pY": "563700,563250"
+ },
+ {
+ "IdS": 200133,
+ "pX": "336249.93,336051.62",
+ "pY": "554899.89,554795.75"
+ },
+ {
+ "IdS": 200135,
+ "pX": "344800,344620",
+ "pY": "550150,550315"
+ },
+ {
+ "IdS": 200137,
+ "pX": "337425,337310",
+ "pY": "544180,544015"
+ },
+ {
+ "IdS": 200138,
+ "pX": "345000,344800",
+ "pY": "550150,550150"
+ },
+ {
+ "IdS": 200139,
+ "pX": "344800,343335",
+ "pY": "550150,549530"
+ },
+ {
+ "IdS": 200140,
+ "pX": "341865,340595",
+ "pY": "548890,548310"
+ },
+ {
+ "IdS": 200141,
+ "pX": "340595,339300",
+ "pY": "548310,547700"
+ },
+ {
+ "IdS": 200142,
+ "pX": "339300,339550,339425,339550",
+ "pY": "547700,547440,547700,547200"
+ },
+ {
+ "IdS": 200143,
+ "pX": "339550,339627.49,339300",
+ "pY": "547200,547084.67,546525"
+ },
+ {
+ "IdS": 200148,
+ "pX": "386050,385100",
+ "pY": "538500,539050"
+ },
+ {
+ "IdS": 200149,
+ "pX": "379100,378950",
+ "pY": "542500,542300"
+ },
+ {
+ "IdS": 200150,
+ "pX": "377550,377600,377700,377650",
+ "pY": "543400,543400,543550,543550"
+ },
+ {
+ "IdS": 200151,
+ "pX": "377550,377650",
+ "pY": "543400,543550"
+ },
+ {
+ "IdS": 200152,
+ "pX": "377650,377750",
+ "pY": "543550,543700"
+ },
+ {
+ "IdS": 200153,
+ "pX": "377750,377900",
+ "pY": "543700,543950"
+ },
+ {
+ "IdS": 200154,
+ "pX": "377750,377800,377950,377900",
+ "pY": "543700,543700,543950,543950"
+ },
+ {
+ "IdS": 200155,
+ "pX": "372800,372700",
+ "pY": "546100,545950"
+ },
+ {
+ "IdS": 200156,
+ "pX": "372550,372700",
+ "pY": "545700,545950"
+ },
+ {
+ "IdS": 200157,
+ "pX": "372550,372545,372645,372700",
+ "pY": "545700,545750,545920,545950"
+ },
+ {
+ "IdS": 200158,
+ "pX": "372350,372550",
+ "pY": "545300,545700"
+ },
+ {
+ "IdS": 200159,
+ "pX": "372295,372350",
+ "pY": "545200,545300"
+ },
+ {
+ "IdS": 200160,
+ "pX": "372295,372330,372290,372350",
+ "pY": "545200,545295,545225,545300"
+ },
+ {
+ "IdS": 200161,
+ "pX": "372450,372300",
+ "pY": "546300,546400"
+ },
+ {
+ "IdS": 200163,
+ "pX": "372500,372350",
+ "pY": "547600,547300"
+ },
+ {
+ "IdS": 200165,
+ "pX": "339470,339470",
+ "pY": "572660,572915"
+ },
+ {
+ "IdS": 200166,
+ "pX": "337750,337750",
+ "pY": "570250,570350"
+ },
+ {
+ "IdS": 200167,
+ "pX": "337750,337500",
+ "pY": "570350,570350"
+ },
+ {
+ "IdS": 200168,
+ "pX": "337750,337750",
+ "pY": "570350,570450"
+ },
+ {
+ "IdS": 200169,
+ "pX": "337750,337750",
+ "pY": "570150,570250"
+ },
+ {
+ "IdS": 200170,
+ "pX": "337550,337750",
+ "pY": "570250,570250"
+ },
+ {
+ "IdS": 200171,
+ "pX": "336050,336000,336000,336050",
+ "pY": "569400,569200,569350,569150"
+ },
+ {
+ "IdS": 200172,
+ "pX": "336050,336100,336100,336050",
+ "pY": "569400,569350,569200,569150"
+ },
+ {
+ "IdS": 200173,
+ "pX": "346750,346750",
+ "pY": "543500,543300"
+ },
+ {
+ "IdS": 200174,
+ "pX": "346750,347000",
+ "pY": "543300,543300"
+ },
+ {
+ "IdS": 200175,
+ "pX": "346750,346500",
+ "pY": "543300,543300"
+ },
+ {
+ "IdS": 200176,
+ "pX": "346500,346300",
+ "pY": "543300,543300"
+ },
+ {
+ "IdS": 200178,
+ "pX": "335524.88,335600",
+ "pY": "565200.4,565200"
+ },
+ {
+ "IdS": 200179,
+ "pX": "332250,331950",
+ "pY": "569550,569750"
+ },
+ {
+ "IdS": 200180,
+ "pX": "334200,334450,334450",
+ "pY": "566200,566200,566350"
+ },
+ {
+ "IdS": 200181,
+ "pX": "334950,334950",
+ "pY": "566700,566850"
+ },
+ {
+ "IdS": 200182,
+ "pX": "334950,335000,335000,334950",
+ "pY": "566400,566350,566300,566250"
+ },
+ {
+ "IdS": 200183,
+ "pX": "334950,334900,334900,334950",
+ "pY": "566400,566300,566350,566250"
+ },
+ {
+ "IdS": 200184,
+ "pX": "334800,334700",
+ "pY": "569600,569600"
+ },
+ {
+ "IdS": 200185,
+ "pX": "334300,334300",
+ "pY": "569100,569800"
+ },
+ {
+ "IdS": 200186,
+ "pX": "334950,335350",
+ "pY": "569550,569550"
+ },
+ {
+ "IdS": 200187,
+ "pX": "335350,335300,335300,335350",
+ "pY": "569550,569500,569450,569400"
+ },
+ {
+ "IdS": 200188,
+ "pX": "335350,335400,335400,335350",
+ "pY": "569550,569500,569450,569400"
+ },
+ {
+ "IdS": 200189,
+ "pX": "334800,334950,334950",
+ "pY": "569600,569600,569550"
+ },
+ {
+ "IdS": 200190,
+ "pX": "334800,334850,334950",
+ "pY": "569600,569550,569550"
+ },
+ {
+ "IdS": 200192,
+ "pX": "339300,339310.02,339309.9,339299.92",
+ "pY": "567450,567404.94,567440,567394.84"
+ },
+ {
+ "IdS": 200193,
+ "pX": "339300,339290.07,339290.07,339299.92",
+ "pY": "567450,567439.98,567405.16,567394.84"
+ },
+ {
+ "IdS": 200194,
+ "pX": "339299.92,339300",
+ "pY": "567394.84,566300"
+ },
+ {
+ "IdS": 200203,
+ "pX": "339990.01,340035,340045",
+ "pY": "565695,565695,565630"
+ },
+ {
+ "IdS": 200204,
+ "pX": "339990.01,340045",
+ "pY": "565695,565630"
+ },
+ {
+ "IdS": 200205,
+ "pX": "367055,366450",
+ "pY": "549220,549100"
+ },
+ {
+ "IdS": 200206,
+ "pX": "366450,366000,365750",
+ "pY": "549100,549100,548450"
+ },
+ {
+ "IdS": 200207,
+ "pX": "365750,365650",
+ "pY": "548450,548200"
+ },
+ {
+ "IdS": 200208,
+ "pX": "365650,365550",
+ "pY": "548200,547950"
+ },
+ {
+ "IdS": 200209,
+ "pX": "336450,337249.38",
+ "pY": "563550,563549.22"
+ },
+ {
+ "IdS": 200210,
+ "pX": "337249.89,337311.21",
+ "pY": "563244.76,563010.22"
+ },
+ {
+ "IdS": 200211,
+ "pX": "336600,336500",
+ "pY": "565350,565350"
+ },
+ {
+ "IdS": 200214,
+ "pX": "337750,337750",
+ "pY": "570450,570600"
+ },
+ {
+ "IdS": 200215,
+ "pX": "337750,337750",
+ "pY": "570600,570800"
+ },
+ {
+ "IdS": 200216,
+ "pX": "337500,337750",
+ "pY": "570450,570450"
+ },
+ {
+ "IdS": 200217,
+ "pX": "337500,337500",
+ "pY": "570450,570350"
+ },
+ {
+ "IdS": 200218,
+ "pX": "337500,337500",
+ "pY": "570600,570450"
+ },
+ {
+ "IdS": 200219,
+ "pX": "337500,337550,337550,337500",
+ "pY": "570800,570750,570650,570600"
+ },
+ {
+ "IdS": 200220,
+ "pX": "337500,337450,337450,337500",
+ "pY": "570800,570750,570650,570600"
+ },
+ {
+ "IdS": 200223,
+ "pX": "372050,372050",
+ "pY": "550650,550800"
+ },
+ {
+ "IdS": 200227,
+ "pX": "338000,338100,338300",
+ "pY": "581350,581350,581100"
+ },
+ {
+ "IdS": 200228,
+ "pX": "338000,338000,338300",
+ "pY": "581350,581250,581100"
+ },
+ {
+ "IdS": 200229,
+ "pX": "337700.84,338150,338300",
+ "pY": "581599.61,581600,581100"
+ },
+ {
+ "IdS": 200230,
+ "pX": "337700.84,338300,337700.3,338300",
+ "pY": "581599.61,581750,581750.68,581100"
+ },
+ {
+ "IdS": 200231,
+ "pX": "339450,339450",
+ "pY": "569800,570050"
+ },
+ {
+ "IdS": 200232,
+ "pX": "341700,341700",
+ "pY": "527300,527150"
+ },
+ {
+ "IdS": 200233,
+ "pX": "346825,346855,346840,346780",
+ "pY": "550955,551035,551125,551150"
+ },
+ {
+ "IdS": 200234,
+ "pX": "375350,375250,375050,375050",
+ "pY": "550600,550650,550650,550550"
+ },
+ {
+ "IdS": 200235,
+ "pX": "375350,375250,375050",
+ "pY": "550600,550550,550550"
+ },
+ {
+ "IdS": 200238,
+ "pX": "338000,338000",
+ "pY": "570920,571050"
+ },
+ {
+ "IdS": 200321,
+ "pX": "337750,337415",
+ "pY": "566795,567540"
+ },
+ {
+ "IdS": 200322,
+ "pX": "344580,344580",
+ "pY": "555290,555180"
+ },
+ {
+ "IdS": 200324,
+ "pX": "367410,367055",
+ "pY": "549565,549220"
+ },
+ {
+ "IdS": 200328,
+ "pX": "334450,334450",
+ "pY": "571150,571051.37"
+ },
+ {
+ "IdS": 200350,
+ "pX": "338502.56,338350",
+ "pY": "575297.52,575200"
+ },
+ {
+ "IdS": 200367,
+ "pX": "346250,346270,346755,346775",
+ "pY": "551950,551935,551935,551950"
+ },
+ {
+ "IdS": 200368,
+ "pX": "346250,346775",
+ "pY": "551950,551950"
+ },
+ {
+ "IdS": 200381,
+ "pX": "338743.53,338831.96",
+ "pY": "571298.99,571252.31"
+ },
+ {
+ "IdS": 200383,
+ "pX": "338510.1,338598.53",
+ "pY": "570856.83,570810.14"
+ },
+ {
+ "IdS": 200390,
+ "pX": "369950,369950",
+ "pY": "549950,550500"
+ },
+ {
+ "IdS": 200391,
+ "pX": "369950,369950",
+ "pY": "550500,550750"
+ },
+ {
+ "IdS": 200428,
+ "pX": "347430,347425,347460,347475",
+ "pY": "554415,554400,554305,554300"
+ },
+ {
+ "IdS": 200429,
+ "pX": "347430,347475",
+ "pY": "554415,554300"
+ },
+ {
+ "IdS": 200493,
+ "pX": "338150,338100",
+ "pY": "580150,580350"
+ },
+ {
+ "IdS": 200499,
+ "pX": "338200,338150",
+ "pY": "579950,580150"
+ },
+ {
+ "IdS": 200543,
+ "pX": "338450,337150",
+ "pY": "579050,578300"
+ },
+ {
+ "IdS": 200687,
+ "pX": "340100,340300",
+ "pY": "570200,570200"
+ },
+ {
+ "IdS": 200726,
+ "pX": "339450,339250",
+ "pY": "569800,569650"
+ },
+ {
+ "IdS": 200727,
+ "pX": "339250,339050",
+ "pY": "569650,569650"
+ },
+ {
+ "IdS": 200728,
+ "pX": "339050,338850",
+ "pY": "569650,569650"
+ },
+ {
+ "IdS": 200729,
+ "pX": "339250,339250",
+ "pY": "569650,569450"
+ },
+ {
+ "IdS": 200730,
+ "pX": "339050,339050",
+ "pY": "569650,569800"
+ },
+ {
+ "IdS": 200740,
+ "pX": "346350,346350",
+ "pY": "549200,549000"
+ },
+ {
+ "IdS": 200741,
+ "pX": "348500,348150",
+ "pY": "582100,582100"
+ },
+ {
+ "IdS": 200742,
+ "pX": "348150,348350,348500",
+ "pY": "581800,581850,582100"
+ },
+ {
+ "IdS": 200743,
+ "pX": "348500,349600",
+ "pY": "582100,581300"
+ },
+ {
+ "IdS": 200744,
+ "pX": "349600,350847.22,351700",
+ "pY": "581300,580548,580550"
+ },
+ {
+ "IdS": 200745,
+ "pX": "351700,351700,353700",
+ "pY": "580550,579650,579950"
+ },
+ {
+ "IdS": 200758,
+ "pX": "353700,354600",
+ "pY": "579950,579950"
+ },
+ {
+ "IdS": 200759,
+ "pX": "354600,355500",
+ "pY": "579950,580500"
+ },
+ {
+ "IdS": 200761,
+ "pX": "348150,348100,348100,348150",
+ "pY": "581800,582050,581850,582100"
+ },
+ {
+ "IdS": 200762,
+ "pX": "348150,348200,348200,348150",
+ "pY": "582100,582050,581850,581800"
+ },
+ {
+ "IdS": 200763,
+ "pX": "352550,352500,352450",
+ "pY": "556850,556850,557050"
+ },
+ {
+ "IdS": 200764,
+ "pX": "352450,352350",
+ "pY": "557050,557350"
+ },
+ {
+ "IdS": 200765,
+ "pX": "352550,352500,352450",
+ "pY": "556850,557050,557050"
+ },
+ {
+ "IdS": 200766,
+ "pX": "352350,352300,352250",
+ "pY": "557350,557650,557650"
+ },
+ {
+ "IdS": 200767,
+ "pX": "352350,352300,352250",
+ "pY": "557350,557350,557650"
+ },
+ {
+ "IdS": 200768,
+ "pX": "338195,338255",
+ "pY": "589865,589795"
+ },
+ {
+ "IdS": 200772,
+ "pX": "337815.55,337139.75",
+ "pY": "587920.14,585205.6"
+ },
+ {
+ "IdS": 200773,
+ "pX": "338255,337815.55",
+ "pY": "589795,587920.14"
+ },
+ {
+ "IdS": 200774,
+ "pX": "337139.75,336555.6",
+ "pY": "585205.6,582875.27"
+ },
+ {
+ "IdS": 200775,
+ "pX": "336555.6,337700.84",
+ "pY": "582875.27,581599.61"
+ },
+ {
+ "IdS": 200780,
+ "pX": "335500,335500",
+ "pY": "569700,569500"
+ },
+ {
+ "IdS": 200781,
+ "pX": "335600,335500",
+ "pY": "569700,569700"
+ },
+ {
+ "IdS": 200784,
+ "pX": "335600,335751.96",
+ "pY": "569700,569700.12"
+ },
+ {
+ "IdS": 200788,
+ "pX": "335600,335700.88",
+ "pY": "569950,569950"
+ },
+ {
+ "IdS": 200791,
+ "pX": "346775,346795,347135,347150",
+ "pY": "551950,551965,551965,551950"
+ },
+ {
+ "IdS": 200821,
+ "pX": "350125,349985",
+ "pY": "580555,580375"
+ },
+ {
+ "IdS": 200822,
+ "pX": "338600,338600",
+ "pY": "558950,558850"
+ },
+ {
+ "IdS": 200823,
+ "pX": "338600,338600",
+ "pY": "558950,559200"
+ },
+ {
+ "IdS": 200852,
+ "pX": "336000,336450",
+ "pY": "563550,563550"
+ },
+ {
+ "IdS": 200853,
+ "pX": "338649.28,338845.17",
+ "pY": "578200.38,577753.36"
+ },
+ {
+ "IdS": 200882,
+ "pX": "334450,334090",
+ "pY": "571150,571450"
+ },
+ {
+ "IdS": 200883,
+ "pX": "334090,334090",
+ "pY": "571450,571175"
+ },
+ {
+ "IdS": 200979,
+ "pX": "341250,341399.94,341280",
+ "pY": "559500,559399.98,559330"
+ },
+ {
+ "IdS": 200980,
+ "pX": "336923.73,336850",
+ "pY": "570450.33,570450"
+ },
+ {
+ "IdS": 200988,
+ "pX": "336100,336250,336550",
+ "pY": "572900,572850,572850"
+ },
+ {
+ "IdS": 200996,
+ "pX": "375150,375150",
+ "pY": "532750,532950"
+ },
+ {
+ "IdS": 200997,
+ "pX": "375150,375200,375200,375150",
+ "pY": "532750,532900,532800,532950"
+ },
+ {
+ "IdS": 200998,
+ "pX": "375150,375100,375100,375150",
+ "pY": "532750,532800,532900,532950"
+ },
+ {
+ "IdS": 201000,
+ "pX": "375300,375150",
+ "pY": "531700,531900"
+ },
+ {
+ "IdS": 201001,
+ "pX": "375300,375300,375200,375150",
+ "pY": "531700,531750,531900,531900"
+ },
+ {
+ "IdS": 201002,
+ "pX": "375300,375250,375150,375150",
+ "pY": "531700,531700,531850,531900"
+ },
+ {
+ "IdS": 201044,
+ "pX": "341405.98,341465",
+ "pY": "545554.63,545620"
+ },
+ {
+ "IdS": 201073,
+ "pX": "358500,358600",
+ "pY": "562650,562950"
+ },
+ {
+ "IdS": 201090,
+ "pX": "372050,372050",
+ "pY": "550200,550650"
+ },
+ {
+ "IdS": 201101,
+ "pX": "345475,345195",
+ "pY": "554350,554350"
+ },
+ {
+ "IdS": 201154,
+ "pX": "337060,337110",
+ "pY": "553140,553165"
+ },
+ {
+ "IdS": 201208,
+ "pX": "336297.31,336100.38",
+ "pY": "554699.1,554599.19"
+ },
+ {
+ "IdS": 201209,
+ "pX": "335880,336040",
+ "pY": "555815,555885"
+ },
+ {
+ "IdS": 201210,
+ "pX": "336420,336400,336435,336500",
+ "pY": "554525,554465,554370,554345"
+ },
+ {
+ "IdS": 201211,
+ "pX": "336420,336485,336525,336500",
+ "pY": "554525,554505,554410,554345"
+ },
+ {
+ "IdS": 201247,
+ "pX": "336700,336700",
+ "pY": "570100,569900"
+ },
+ {
+ "IdS": 201275,
+ "pX": "364750,364850",
+ "pY": "549450,549650"
+ },
+ {
+ "IdS": 201287,
+ "pX": "347100,347100",
+ "pY": "555150,555000"
+ },
+ {
+ "IdS": 201301,
+ "pX": "368450,368250",
+ "pY": "549550,549900"
+ },
+ {
+ "IdS": 201317,
+ "pX": "362250,361500",
+ "pY": "550450,549600"
+ },
+ {
+ "IdS": 201318,
+ "pX": "361500,361750",
+ "pY": "549600,549400"
+ },
+ {
+ "IdS": 201319,
+ "pX": "361100,360700",
+ "pY": "549150,548700"
+ },
+ {
+ "IdS": 201320,
+ "pX": "361500,361100",
+ "pY": "549600,549150"
+ },
+ {
+ "IdS": 201321,
+ "pX": "361100,360900",
+ "pY": "549150,549300"
+ },
+ {
+ "IdS": 201322,
+ "pX": "359950,359650",
+ "pY": "547800,547450"
+ },
+ {
+ "IdS": 201324,
+ "pX": "358850,358450",
+ "pY": "546600,546200"
+ },
+ {
+ "IdS": 201325,
+ "pX": "359100,358850",
+ "pY": "546850,546600"
+ },
+ {
+ "IdS": 201326,
+ "pX": "358850,359050",
+ "pY": "546600,546450"
+ },
+ {
+ "IdS": 201327,
+ "pX": "359100,359300",
+ "pY": "546850,546700"
+ },
+ {
+ "IdS": 201335,
+ "pX": "342100,342000",
+ "pY": "573150,573300"
+ },
+ {
+ "IdS": 201337,
+ "pX": "347215,347395",
+ "pY": "560425,560340"
+ },
+ {
+ "IdS": 201343,
+ "pX": "340250,340149.97,340150",
+ "pY": "572300,572234.19,572050"
+ },
+ {
+ "IdS": 201359,
+ "pX": "356750,356800",
+ "pY": "563450,563550"
+ },
+ {
+ "IdS": 201360,
+ "pX": "356800,356900",
+ "pY": "563550,563700"
+ },
+ {
+ "IdS": 201361,
+ "pX": "356800,356900",
+ "pY": "563550,563550"
+ },
+ {
+ "IdS": 201372,
+ "pX": "372450,372450",
+ "pY": "549550,549400"
+ },
+ {
+ "IdS": 201376,
+ "pX": "372450,372200",
+ "pY": "549400,549400"
+ },
+ {
+ "IdS": 201377,
+ "pX": "372450,372450",
+ "pY": "548950,548650"
+ },
+ {
+ "IdS": 201378,
+ "pX": "372450,372950",
+ "pY": "548950,548950"
+ },
+ {
+ "IdS": 201410,
+ "pX": "363800,363534.4",
+ "pY": "546700,546700"
+ },
+ {
+ "IdS": 201422,
+ "pX": "342100,342200",
+ "pY": "573150,573000"
+ },
+ {
+ "IdS": 201438,
+ "pX": "345540,345360",
+ "pY": "543545,543450"
+ },
+ {
+ "IdS": 201440,
+ "pX": "345360,345190.04",
+ "pY": "543450,543359.16"
+ },
+ {
+ "IdS": 201441,
+ "pX": "345360,345450",
+ "pY": "543450,543280"
+ },
+ {
+ "IdS": 201442,
+ "pX": "345190.04,345005",
+ "pY": "543359.16,543260"
+ },
+ {
+ "IdS": 201495,
+ "pX": "336200,336200",
+ "pY": "571020,570950"
+ },
+ {
+ "IdS": 201496,
+ "pX": "336200,336200",
+ "pY": "570950,570875"
+ },
+ {
+ "IdS": 201497,
+ "pX": "336200,336250",
+ "pY": "570950,570950"
+ },
+ {
+ "IdS": 201499,
+ "pX": "345000,345000",
+ "pY": "550450,550750"
+ },
+ {
+ "IdS": 201500,
+ "pX": "345000,344900",
+ "pY": "550450,550450"
+ },
+ {
+ "IdS": 201501,
+ "pX": "345000,345000",
+ "pY": "550750,551050"
+ },
+ {
+ "IdS": 201502,
+ "pX": "345000,344900",
+ "pY": "550750,550750"
+ },
+ {
+ "IdS": 201503,
+ "pX": "345000,345000",
+ "pY": "551050,551550"
+ },
+ {
+ "IdS": 201504,
+ "pX": "345000,344900",
+ "pY": "551050,551050"
+ },
+ {
+ "IdS": 201517,
+ "pX": "340350,340650",
+ "pY": "572250,572400"
+ },
+ {
+ "IdS": 201518,
+ "pX": "335750,335750",
+ "pY": "567150,566950"
+ },
+ {
+ "IdS": 201526,
+ "pX": "338700,338950",
+ "pY": "569950,569950"
+ },
+ {
+ "IdS": 201530,
+ "pX": "359950,360300,360350",
+ "pY": "562150,562150,562050"
+ },
+ {
+ "IdS": 201531,
+ "pX": "360650,360700,361000",
+ "pY": "561950,561850,561850"
+ },
+ {
+ "IdS": 201532,
+ "pX": "360650,360950,361000",
+ "pY": "561950,561950,561850"
+ },
+ {
+ "IdS": 201534,
+ "pX": "360350,360000,359950",
+ "pY": "562050,562050,562150"
+ },
+ {
+ "IdS": 201543,
+ "pX": "361000,361300",
+ "pY": "561850,561750"
+ },
+ {
+ "IdS": 201544,
+ "pX": "361300,361600",
+ "pY": "561750,561650"
+ },
+ {
+ "IdS": 201552,
+ "pX": "354300,354100",
+ "pY": "557700,557600"
+ },
+ {
+ "IdS": 201553,
+ "pX": "341700,341635,341635",
+ "pY": "527300,527300,527150"
+ },
+ {
+ "IdS": 201554,
+ "pX": "354200,353685.07,353700,353685.23,353650",
+ "pY": "552100,552479.64,552050,552060.42,552500"
+ },
+ {
+ "IdS": 201561,
+ "pX": "339000,338880",
+ "pY": "572185,572185"
+ },
+ {
+ "IdS": 201566,
+ "pX": "345475,345475",
+ "pY": "554350,554100"
+ },
+ {
+ "IdS": 201567,
+ "pX": "345475,345475,345765,345765,345775",
+ "pY": "554100,554100,553970,553960,553950"
+ },
+ {
+ "IdS": 201568,
+ "pX": "345475,345425",
+ "pY": "554100,554100"
+ },
+ {
+ "IdS": 201600,
+ "pX": "337807.92,337655",
+ "pY": "551199.78,551130"
+ },
+ {
+ "IdS": 201606,
+ "pX": "338130,337970",
+ "pY": "550470,550395"
+ },
+ {
+ "IdS": 201641,
+ "pX": "355850,355950,355950",
+ "pY": "580400,580400,580200"
+ },
+ {
+ "IdS": 201642,
+ "pX": "355950,355850,355850",
+ "pY": "580200,580200,580400"
+ },
+ {
+ "IdS": 201643,
+ "pX": "355950,356389.67",
+ "pY": "580200,580200.06"
+ },
+ {
+ "IdS": 201645,
+ "pX": "356389.67,356650",
+ "pY": "580200.06,580200"
+ },
+ {
+ "IdS": 201646,
+ "pX": "340050,340100",
+ "pY": "570350,570200"
+ },
+ {
+ "IdS": 201648,
+ "pX": "342650,342400",
+ "pY": "565650,565650"
+ },
+ {
+ "IdS": 201649,
+ "pX": "346115,345775",
+ "pY": "552390,552330"
+ },
+ {
+ "IdS": 201669,
+ "pX": "357619.9,357700.13",
+ "pY": "552210.95,552388.58"
+ },
+ {
+ "IdS": 201728,
+ "pX": "344990,345330",
+ "pY": "553860,553950"
+ },
+ {
+ "IdS": 201729,
+ "pX": "354350,354500",
+ "pY": "568250,568450"
+ },
+ {
+ "IdS": 201745,
+ "pX": "336100,335850",
+ "pY": "565450,565200"
+ },
+ {
+ "IdS": 202164,
+ "pX": "345800,345800",
+ "pY": "554450,554365"
+ },
+ {
+ "IdS": 202165,
+ "pX": "345800,345700",
+ "pY": "554365,554365"
+ },
+ {
+ "IdS": 202166,
+ "pX": "345800,345815",
+ "pY": "554365,554365"
+ },
+ {
+ "IdS": 202182,
+ "pX": "342475.07,342350",
+ "pY": "544474.85,544350"
+ },
+ {
+ "IdS": 202201,
+ "pX": "337249.38,337250,337250,337249.89",
+ "pY": "563549.22,563500,563300,563244.76"
+ },
+ {
+ "IdS": 202223,
+ "pX": "341230,341000",
+ "pY": "532150,532150"
+ },
+ {
+ "IdS": 202271,
+ "pX": "340950,340650",
+ "pY": "572050,571900"
+ },
+ {
+ "IdS": 202302,
+ "pX": "349300,349700",
+ "pY": "554300,554300"
+ },
+ {
+ "IdS": 202303,
+ "pX": "349700,349700",
+ "pY": "554300,554750"
+ },
+ {
+ "IdS": 202304,
+ "pX": "349700,350100",
+ "pY": "554300,554300"
+ },
+ {
+ "IdS": 202305,
+ "pX": "349700,349600,349700",
+ "pY": "554300,554550,554750"
+ },
+ {
+ "IdS": 202306,
+ "pX": "343335,341865",
+ "pY": "549530,548890"
+ },
+ {
+ "IdS": 202408,
+ "pX": "339450,339555,339845",
+ "pY": "575400,575565,575565"
+ },
+ {
+ "IdS": 202409,
+ "pX": "334200,334200",
+ "pY": "569500,569650"
+ },
+ {
+ "IdS": 202410,
+ "pX": "333900,333800",
+ "pY": "569350,569350"
+ },
+ {
+ "IdS": 202411,
+ "pX": "339450,339845",
+ "pY": "575400,575400"
+ },
+ {
+ "IdS": 202412,
+ "pX": "339845,339845",
+ "pY": "575400,575565"
+ },
+ {
+ "IdS": 202413,
+ "pX": "339845,340300",
+ "pY": "575400,575400"
+ },
+ {
+ "IdS": 202418,
+ "pX": "356695,356600",
+ "pY": "563985,564105"
+ },
+ {
+ "IdS": 202432,
+ "pX": "330541.3,330905.43",
+ "pY": "576845.38,575680.13"
+ },
+ {
+ "IdS": 202433,
+ "pX": "330905.43,330997.17",
+ "pY": "575680.13,575290.79"
+ },
+ {
+ "IdS": 202434,
+ "pX": "330997.17,331043.04",
+ "pY": "575290.79,575096.12"
+ },
+ {
+ "IdS": 202435,
+ "pX": "330997.17,331115",
+ "pY": "575290.79,575320"
+ },
+ {
+ "IdS": 202436,
+ "pX": "331043.04,331134.78",
+ "pY": "575096.12,574706.78"
+ },
+ {
+ "IdS": 202437,
+ "pX": "331364.13,331470.75",
+ "pY": "573733.44,573261.59"
+ },
+ {
+ "IdS": 202438,
+ "pX": "331043.04,330968.64,331014.51,331134.78",
+ "pY": "575096.12,574975.85,574781.18,574706.78"
+ },
+ {
+ "IdS": 202444,
+ "pX": "331593.49,331700",
+ "pY": "572760.09,572200"
+ },
+ {
+ "IdS": 202445,
+ "pX": "331593.49,331510",
+ "pY": "572760.09,572760"
+ },
+ {
+ "IdS": 202450,
+ "pX": "332650,333000",
+ "pY": "571850,571700"
+ },
+ {
+ "IdS": 202451,
+ "pX": "332650,332650",
+ "pY": "571850,572000"
+ },
+ {
+ "IdS": 202452,
+ "pX": "332650,332650",
+ "pY": "572000,572200"
+ },
+ {
+ "IdS": 202453,
+ "pX": "332650,332850",
+ "pY": "572000,572000"
+ },
+ {
+ "IdS": 202455,
+ "pX": "333350,333550,333350,333550",
+ "pY": "571550,571650,571650,571550"
+ },
+ {
+ "IdS": 202456,
+ "pX": "333350,333550",
+ "pY": "571550,571550"
+ },
+ {
+ "IdS": 202459,
+ "pX": "335700,336050",
+ "pY": "568855,568855"
+ },
+ {
+ "IdS": 202460,
+ "pX": "336050,336400",
+ "pY": "568855,568855"
+ },
+ {
+ "IdS": 202461,
+ "pX": "336050,336050",
+ "pY": "568855,568555"
+ },
+ {
+ "IdS": 202462,
+ "pX": "336400,336850",
+ "pY": "568855,568855"
+ },
+ {
+ "IdS": 202463,
+ "pX": "335350,335100",
+ "pY": "568855,568655"
+ },
+ {
+ "IdS": 202464,
+ "pX": "336850,336850",
+ "pY": "568855,568690"
+ },
+ {
+ "IdS": 202479,
+ "pX": "331700,331820",
+ "pY": "572200,571785"
+ },
+ {
+ "IdS": 202480,
+ "pX": "331820,331914.58",
+ "pY": "571785,571397.41"
+ },
+ {
+ "IdS": 202481,
+ "pX": "331820,331755",
+ "pY": "571785,571785"
+ },
+ {
+ "IdS": 202482,
+ "pX": "343060,343060",
+ "pY": "573755,573300"
+ },
+ {
+ "IdS": 202483,
+ "pX": "336850,337200",
+ "pY": "568855,568855"
+ },
+ {
+ "IdS": 202494,
+ "pX": "347450,347680",
+ "pY": "559200,559200"
+ },
+ {
+ "IdS": 202501,
+ "pX": "345745,345650,346600.37,346900",
+ "pY": "560560,560450,559821.54,559700"
+ },
+ {
+ "IdS": 202508,
+ "pX": "339800,339750,339750,339782.92",
+ "pY": "571550,571500,571350,571316.72"
+ },
+ {
+ "IdS": 202541,
+ "pX": "333550,334090",
+ "pY": "571550,571550"
+ },
+ {
+ "IdS": 202542,
+ "pX": "334090,334485",
+ "pY": "571550,571550"
+ },
+ {
+ "IdS": 202543,
+ "pX": "334090,334090",
+ "pY": "571550,571450"
+ },
+ {
+ "IdS": 202551,
+ "pX": "342200,342199.96",
+ "pY": "569650,569350.01"
+ },
+ {
+ "IdS": 202574,
+ "pX": "333315,333150",
+ "pY": "571365,571365"
+ },
+ {
+ "IdS": 202588,
+ "pX": "340550,340950",
+ "pY": "572850,572050"
+ },
+ {
+ "IdS": 202590,
+ "pX": "349260,349020",
+ "pY": "551845,551845"
+ },
+ {
+ "IdS": 202592,
+ "pX": "349300,349700",
+ "pY": "552300,552300"
+ },
+ {
+ "IdS": 202601,
+ "pX": "337200,337200",
+ "pY": "579300,579000"
+ },
+ {
+ "IdS": 202604,
+ "pX": "337200,337050",
+ "pY": "579000,579000"
+ },
+ {
+ "IdS": 202607,
+ "pX": "355850,355850",
+ "pY": "580650,580850"
+ },
+ {
+ "IdS": 202614,
+ "pX": "360250,359950",
+ "pY": "548150,547800"
+ },
+ {
+ "IdS": 202615,
+ "pX": "360250,360450",
+ "pY": "548150,548000"
+ },
+ {
+ "IdS": 202630,
+ "pX": "350445,350725",
+ "pY": "578190,577975"
+ },
+ {
+ "IdS": 202644,
+ "pX": "335200,335200",
+ "pY": "570450,570300"
+ },
+ {
+ "IdS": 202654,
+ "pX": "339320.24,339430.05",
+ "pY": "575829.99,575459.9"
+ },
+ {
+ "IdS": 202685,
+ "pX": "342900,343060",
+ "pY": "573600,573755"
+ },
+ {
+ "IdS": 202686,
+ "pX": "342700,342716.65,342800,342900",
+ "pY": "573450,573535.06,573600,573600"
+ },
+ {
+ "IdS": 202687,
+ "pX": "342700,342900",
+ "pY": "573450,573600"
+ },
+ {
+ "IdS": 202690,
+ "pX": "362050,362200",
+ "pY": "550500,550650"
+ },
+ {
+ "IdS": 202748,
+ "pX": "346775,347150",
+ "pY": "551950,551950"
+ },
+ {
+ "IdS": 202761,
+ "pX": "338950,338950",
+ "pY": "569950,570250"
+ },
+ {
+ "IdS": 202771,
+ "pX": "341280,341435",
+ "pY": "559330,559330"
+ },
+ {
+ "IdS": 202779,
+ "pX": "341435,341435",
+ "pY": "559330,559180"
+ },
+ {
+ "IdS": 202781,
+ "pX": "341399.72,341249.23",
+ "pY": "558450.11,558449.94"
+ },
+ {
+ "IdS": 202792,
+ "pX": "336300,336100",
+ "pY": "571800,571800"
+ },
+ {
+ "IdS": 202793,
+ "pX": "336099.74,336100",
+ "pY": "571812.15,571900"
+ },
+ {
+ "IdS": 202794,
+ "pX": "336100,336100",
+ "pY": "571800,571650"
+ },
+ {
+ "IdS": 202812,
+ "pX": "342550.77,342608.82",
+ "pY": "556750.22,556830.87"
+ },
+ {
+ "IdS": 202813,
+ "pX": "343100,343099.99",
+ "pY": "556350,556454.91"
+ },
+ {
+ "IdS": 202856,
+ "pX": "353875.03,353786.03",
+ "pY": "558480.57,558434.97"
+ },
+ {
+ "IdS": 202948,
+ "pX": "338700,338600,338350",
+ "pY": "567450,567500,567499.99"
+ },
+ {
+ "IdS": 202949,
+ "pX": "339189.96,338961.87",
+ "pY": "566284.3,565872.04"
+ },
+ {
+ "IdS": 202950,
+ "pX": "342500,343080",
+ "pY": "563600,563350"
+ },
+ {
+ "IdS": 202958,
+ "pX": "333498.16,333500",
+ "pY": "570797.39,570500"
+ },
+ {
+ "IdS": 202959,
+ "pX": "340150,340250",
+ "pY": "572050,572050"
+ },
+ {
+ "IdS": 202960,
+ "pX": "340250,340350,340350",
+ "pY": "572050,572050,572250"
+ },
+ {
+ "IdS": 202961,
+ "pX": "340250,340250",
+ "pY": "572050,572300"
+ },
+ {
+ "IdS": 202962,
+ "pX": "330500,330200",
+ "pY": "569550,569550"
+ },
+ {
+ "IdS": 202968,
+ "pX": "342345,342200",
+ "pY": "574260,574550"
+ },
+ {
+ "IdS": 202977,
+ "pX": "345585,345350",
+ "pY": "575945,576350"
+ },
+ {
+ "IdS": 202997,
+ "pX": "358000,358050,358500",
+ "pY": "562850,562750,562650"
+ },
+ {
+ "IdS": 202998,
+ "pX": "358000,358450,358500",
+ "pY": "562850,562750,562650"
+ },
+ {
+ "IdS": 203052,
+ "pX": "357300,357300",
+ "pY": "563050,563250"
+ },
+ {
+ "IdS": 203053,
+ "pX": "345330,345775",
+ "pY": "553950,553950"
+ },
+ {
+ "IdS": 203058,
+ "pX": "358500,358550,359000",
+ "pY": "562650,562550,562500"
+ },
+ {
+ "IdS": 203060,
+ "pX": "359000,358955.81,358500",
+ "pY": "562500,562600.49,562650"
+ },
+ {
+ "IdS": 203061,
+ "pX": "359550,359900,359950",
+ "pY": "562300,562250,562150"
+ },
+ {
+ "IdS": 203062,
+ "pX": "359550,359650,359950",
+ "pY": "562300,562200,562150"
+ },
+ {
+ "IdS": 203084,
+ "pX": "342600,342200",
+ "pY": "570800,569650"
+ },
+ {
+ "IdS": 203119,
+ "pX": "336100,336400",
+ "pY": "572900,572650"
+ },
+ {
+ "IdS": 203125,
+ "pX": "336400,336400,336500,336550",
+ "pY": "572650,572600,572550,572550"
+ },
+ {
+ "IdS": 203126,
+ "pX": "336400,336450,336550,336550",
+ "pY": "572650,572650,572600,572550"
+ },
+ {
+ "IdS": 203175,
+ "pX": "334800,334720,334500",
+ "pY": "569600,569500,569500"
+ },
+ {
+ "IdS": 203176,
+ "pX": "334500,334200",
+ "pY": "569500,569500"
+ },
+ {
+ "IdS": 203177,
+ "pX": "334500,334500",
+ "pY": "569500,569650"
+ },
+ {
+ "IdS": 203178,
+ "pX": "339720,339850",
+ "pY": "547295,547040"
+ },
+ {
+ "IdS": 203180,
+ "pX": "339850,339720",
+ "pY": "547040,546900"
+ },
+ {
+ "IdS": 203214,
+ "pX": "348320,348445",
+ "pY": "562845,563120"
+ },
+ {
+ "IdS": 203346,
+ "pX": "336345,336345",
+ "pY": "580480,580270"
+ },
+ {
+ "IdS": 203347,
+ "pX": "336345,335905",
+ "pY": "580480,580480"
+ },
+ {
+ "IdS": 203443,
+ "pX": "342329.21,342248.88",
+ "pY": "549313.55,549496.71"
+ },
+ {
+ "IdS": 203445,
+ "pX": "349350,349500",
+ "pY": "563400,563550"
+ },
+ {
+ "IdS": 203446,
+ "pX": "349350,349350,349450,349500",
+ "pY": "563400,563450,563550,563550"
+ },
+ {
+ "IdS": 203447,
+ "pX": "336164.97,336565",
+ "pY": "591354.9,591495"
+ },
+ {
+ "IdS": 203448,
+ "pX": "336565,336685",
+ "pY": "591495,591265"
+ },
+ {
+ "IdS": 203449,
+ "pX": "336565,336700",
+ "pY": "591495,592050"
+ },
+ {
+ "IdS": 203454,
+ "pX": "336900,337000",
+ "pY": "592050,592050"
+ },
+ {
+ "IdS": 203457,
+ "pX": "336700,336900",
+ "pY": "592050,592050"
+ },
+ {
+ "IdS": 203460,
+ "pX": "340850,340850,340650",
+ "pY": "573300,573250,573100"
+ },
+ {
+ "IdS": 203509,
+ "pX": "348113.46,348239.15",
+ "pY": "564387.16,564542.73"
+ },
+ {
+ "IdS": 203510,
+ "pX": "349200,349350",
+ "pY": "563500,563400"
+ },
+ {
+ "IdS": 203511,
+ "pX": "349200,349150,349300,349350",
+ "pY": "563500,563450,563350,563400"
+ },
+ {
+ "IdS": 203525,
+ "pX": "350447.03,350572.72",
+ "pY": "562501.83,562657.41"
+ },
+ {
+ "IdS": 203601,
+ "pX": "336400,336460.03",
+ "pY": "563900,563899.94"
+ },
+ {
+ "IdS": 203618,
+ "pX": "346250,346850",
+ "pY": "580350,580350"
+ },
+ {
+ "IdS": 203632,
+ "pX": "355750,355300",
+ "pY": "567350,567650"
+ },
+ {
+ "IdS": 203633,
+ "pX": "355750,355900",
+ "pY": "567350,567550"
+ },
+ {
+ "IdS": 203634,
+ "pX": "355300,355450",
+ "pY": "567650,567850"
+ },
+ {
+ "IdS": 203684,
+ "pX": "370000,369915",
+ "pY": "542950,542545"
+ },
+ {
+ "IdS": 203685,
+ "pX": "355300,354850",
+ "pY": "567650,567950"
+ },
+ {
+ "IdS": 203686,
+ "pX": "354850,354700",
+ "pY": "567950,568050"
+ },
+ {
+ "IdS": 203687,
+ "pX": "354850,355000",
+ "pY": "567950,568150"
+ },
+ {
+ "IdS": 203688,
+ "pX": "369915,369650",
+ "pY": "542545,541850"
+ },
+ {
+ "IdS": 203692,
+ "pX": "354700,354350",
+ "pY": "568050,568250"
+ },
+ {
+ "IdS": 203693,
+ "pX": "345489.39,345649.79,346530",
+ "pY": "580994.85,581129.57,581380"
+ },
+ {
+ "IdS": 203694,
+ "pX": "346530,346530",
+ "pY": "581380,581515"
+ },
+ {
+ "IdS": 203698,
+ "pX": "345649.85,345350",
+ "pY": "581049.84,581050"
+ },
+ {
+ "IdS": 203725,
+ "pX": "358250,358400",
+ "pY": "551750,551900"
+ },
+ {
+ "IdS": 203733,
+ "pX": "359350,359100",
+ "pY": "551550,551000"
+ },
+ {
+ "IdS": 203735,
+ "pX": "358400,358500",
+ "pY": "551900,552100"
+ },
+ {
+ "IdS": 203737,
+ "pX": "358650,358750",
+ "pY": "551800,552000"
+ },
+ {
+ "IdS": 203784,
+ "pX": "329850,330300",
+ "pY": "564300,563700"
+ },
+ {
+ "IdS": 203795,
+ "pX": "336600,336550,336550,336600",
+ "pY": "565500,565450,565400,565350"
+ },
+ {
+ "IdS": 203796,
+ "pX": "336600,336650,336650,336600",
+ "pY": "565500,565400,565450,565350"
+ },
+ {
+ "IdS": 203801,
+ "pX": "375770,375430,375350",
+ "pY": "550575,550575,550600"
+ },
+ {
+ "IdS": 204088,
+ "pX": "347450,347450",
+ "pY": "551250,550850"
+ },
+ {
+ "IdS": 204158,
+ "pX": "345005,345095",
+ "pY": "543260,543085"
+ },
+ {
+ "IdS": 204160,
+ "pX": "337999.82,338000",
+ "pY": "567967.08,568200"
+ },
+ {
+ "IdS": 204161,
+ "pX": "345815,346150",
+ "pY": "554365,552600"
+ },
+ {
+ "IdS": 204165,
+ "pX": "346500,346100",
+ "pY": "549450,549450"
+ },
+ {
+ "IdS": 204166,
+ "pX": "346350.37,346350,346350,346344.62,346350",
+ "pY": "549294.52,549245,549230,549235.09,549200"
+ },
+ {
+ "IdS": 204176,
+ "pX": "336200,335800",
+ "pY": "570300,570300"
+ },
+ {
+ "IdS": 204179,
+ "pX": "371400,371650",
+ "pY": "545100,545100"
+ },
+ {
+ "IdS": 204197,
+ "pX": "370200,370450",
+ "pY": "543350,543350"
+ },
+ {
+ "IdS": 204214,
+ "pX": "371400,370800",
+ "pY": "544500,544500"
+ },
+ {
+ "IdS": 204215,
+ "pX": "371400,371700",
+ "pY": "544500,544500"
+ },
+ {
+ "IdS": 204238,
+ "pX": "335800,335800",
+ "pY": "570300,570400"
+ },
+ {
+ "IdS": 204240,
+ "pX": "370050,370350",
+ "pY": "541650,541500"
+ },
+ {
+ "IdS": 204241,
+ "pX": "370050,370250,370050,370350",
+ "pY": "541650,541450,541550,541500"
+ },
+ {
+ "IdS": 204242,
+ "pX": "370350,370600",
+ "pY": "541500,541400"
+ },
+ {
+ "IdS": 204247,
+ "pX": "370910.1,371000",
+ "pY": "541274.79,541400.01"
+ },
+ {
+ "IdS": 204273,
+ "pX": "372000,371800",
+ "pY": "539900,539800"
+ },
+ {
+ "IdS": 204275,
+ "pX": "372150,371950",
+ "pY": "539600,539500"
+ },
+ {
+ "IdS": 204287,
+ "pX": "372600,372600,372700,372750",
+ "pY": "538700,538600,538400,538400"
+ },
+ {
+ "IdS": 204288,
+ "pX": "372600,372750",
+ "pY": "538700,538400"
+ },
+ {
+ "IdS": 204289,
+ "pX": "372750,372850",
+ "pY": "538400,538200"
+ },
+ {
+ "IdS": 204290,
+ "pX": "372850,373000",
+ "pY": "538200,537950"
+ },
+ {
+ "IdS": 204291,
+ "pX": "372850,372850,372950,373000",
+ "pY": "538200,538100,537950,537950"
+ },
+ {
+ "IdS": 204311,
+ "pX": "374574.19,374850",
+ "pY": "534956.46,535100"
+ },
+ {
+ "IdS": 204312,
+ "pX": "374750,374800,375100,375150",
+ "pY": "534550,534500,534500,534550"
+ },
+ {
+ "IdS": 204313,
+ "pX": "374750,375100,374800,375150",
+ "pY": "534550,534600,534600,534550"
+ },
+ {
+ "IdS": 204332,
+ "pX": "335800,335800",
+ "pY": "570400,570505"
+ },
+ {
+ "IdS": 204333,
+ "pX": "336004.93,335799.99",
+ "pY": "570660.19,570659.83"
+ },
+ {
+ "IdS": 204334,
+ "pX": "336004.93,336205.01",
+ "pY": "570660.19,570660.01"
+ },
+ {
+ "IdS": 204335,
+ "pX": "335800,335800",
+ "pY": "570545,570575"
+ },
+ {
+ "IdS": 204336,
+ "pX": "335800,335800",
+ "pY": "570505,570545"
+ },
+ {
+ "IdS": 204337,
+ "pX": "335800,335799.99",
+ "pY": "570575,570659.83"
+ },
+ {
+ "IdS": 204338,
+ "pX": "335800,336005,336050",
+ "pY": "570575,570575,570570"
+ },
+ {
+ "IdS": 204344,
+ "pX": "336300,336400,336400",
+ "pY": "570300,570165,570100"
+ },
+ {
+ "IdS": 204345,
+ "pX": "336400,336549.9",
+ "pY": "570100,570099.85"
+ },
+ {
+ "IdS": 204515,
+ "pX": "341950,342200",
+ "pY": "570000,569650"
+ },
+ {
+ "IdS": 204516,
+ "pX": "341350,341585",
+ "pY": "570850,571020"
+ },
+ {
+ "IdS": 204517,
+ "pX": "341700,341950",
+ "pY": "570350,570000"
+ },
+ {
+ "IdS": 204518,
+ "pX": "341700,341945",
+ "pY": "570350,570540"
+ },
+ {
+ "IdS": 204519,
+ "pX": "341100,341350",
+ "pY": "571200,570850"
+ },
+ {
+ "IdS": 204538,
+ "pX": "346500,346650",
+ "pY": "550150,550150"
+ },
+ {
+ "IdS": 204544,
+ "pX": "348150,347950",
+ "pY": "581800,581800"
+ },
+ {
+ "IdS": 204545,
+ "pX": "346300,346300.17",
+ "pY": "580980,580837.11"
+ },
+ {
+ "IdS": 204549,
+ "pX": "348150,347950,347950",
+ "pY": "582100,582100,581800"
+ },
+ {
+ "IdS": 204566,
+ "pX": "347650,347660,347660,347650",
+ "pY": "581700,581690,581510,581500"
+ },
+ {
+ "IdS": 204569,
+ "pX": "347650,347640,347640,347650",
+ "pY": "581700,581690,581510,581500"
+ },
+ {
+ "IdS": 204573,
+ "pX": "346662.55,346700",
+ "pY": "581223.83,581150"
+ },
+ {
+ "IdS": 204574,
+ "pX": "346300,346350,346300.17",
+ "pY": "580980,580980,580837.11"
+ },
+ {
+ "IdS": 204581,
+ "pX": "347215,347300",
+ "pY": "560425,560605"
+ },
+ {
+ "IdS": 204625,
+ "pX": "349550,349750,349650,349750",
+ "pY": "555450,555500,555450,555550"
+ },
+ {
+ "IdS": 204626,
+ "pX": "349550,349750",
+ "pY": "555450,555550"
+ },
+ {
+ "IdS": 204636,
+ "pX": "351200,351400,351300,351400",
+ "pY": "556200,556250,556200,556300"
+ },
+ {
+ "IdS": 204644,
+ "pX": "351200,351400",
+ "pY": "556200,556300"
+ },
+ {
+ "IdS": 204649,
+ "pX": "351800,351850",
+ "pY": "556500,556400"
+ },
+ {
+ "IdS": 204651,
+ "pX": "351609.51,351650",
+ "pY": "556384.57,556300"
+ },
+ {
+ "IdS": 204665,
+ "pX": "353000,352950",
+ "pY": "557050,557150"
+ },
+ {
+ "IdS": 204694,
+ "pX": "347430,347520",
+ "pY": "554415,554460"
+ },
+ {
+ "IdS": 204696,
+ "pX": "348400,348350",
+ "pY": "554900,555000"
+ },
+ {
+ "IdS": 204697,
+ "pX": "348500,348700",
+ "pY": "554950,555050"
+ },
+ {
+ "IdS": 204698,
+ "pX": "348500,348550",
+ "pY": "554950,554850"
+ },
+ {
+ "IdS": 204699,
+ "pX": "348700,348800,348950",
+ "pY": "555050,555150,555150"
+ },
+ {
+ "IdS": 204700,
+ "pX": "348700,348950",
+ "pY": "555050,555150"
+ },
+ {
+ "IdS": 204702,
+ "pX": "347700,347800",
+ "pY": "554550,554400"
+ },
+ {
+ "IdS": 204705,
+ "pX": "347430,347435,347515,347520",
+ "pY": "554415,554425,554465,554460"
+ },
+ {
+ "IdS": 204716,
+ "pX": "347520,347700",
+ "pY": "554460,554550"
+ },
+ {
+ "IdS": 204717,
+ "pX": "347900,348100",
+ "pY": "554650,554750"
+ },
+ {
+ "IdS": 204718,
+ "pX": "347900,347800",
+ "pY": "554650,554850"
+ },
+ {
+ "IdS": 204720,
+ "pX": "348100,348150",
+ "pY": "554750,554650"
+ },
+ {
+ "IdS": 204732,
+ "pX": "338450,338551.78",
+ "pY": "579050,578699.87"
+ },
+ {
+ "IdS": 204733,
+ "pX": "338900.61,339099.6",
+ "pY": "577350.73,576650.66"
+ },
+ {
+ "IdS": 204734,
+ "pX": "345475,345475",
+ "pY": "554700,554350"
+ },
+ {
+ "IdS": 204739,
+ "pX": "340170,340300",
+ "pY": "571850,571850"
+ },
+ {
+ "IdS": 204788,
+ "pX": "345035,345220",
+ "pY": "561110,561360"
+ },
+ {
+ "IdS": 204789,
+ "pX": "343060,343400",
+ "pY": "573755,573950"
+ },
+ {
+ "IdS": 204791,
+ "pX": "343400,343250",
+ "pY": "573950,574200"
+ },
+ {
+ "IdS": 204796,
+ "pX": "344000,344600",
+ "pY": "574250,574550"
+ },
+ {
+ "IdS": 204797,
+ "pX": "344000,343850",
+ "pY": "574250,574500"
+ },
+ {
+ "IdS": 204798,
+ "pX": "350930,350930",
+ "pY": "579990,580085"
+ },
+ {
+ "IdS": 204806,
+ "pX": "350930,350950,350950,350930",
+ "pY": "579990,580015,580065,580085"
+ },
+ {
+ "IdS": 204807,
+ "pX": "350750,350600",
+ "pY": "580085,580195"
+ },
+ {
+ "IdS": 204808,
+ "pX": "350750,350695,350605,350600",
+ "pY": "580085,580080,580145,580195"
+ },
+ {
+ "IdS": 204858,
+ "pX": "346250,346250",
+ "pY": "578050,578450"
+ },
+ {
+ "IdS": 204860,
+ "pX": "346200,346200,346250",
+ "pY": "577800,578000,578050"
+ },
+ {
+ "IdS": 204861,
+ "pX": "346300,346300,346250",
+ "pY": "577800,578000,578050"
+ },
+ {
+ "IdS": 204862,
+ "pX": "346250,346750",
+ "pY": "578450,578450"
+ },
+ {
+ "IdS": 204901,
+ "pX": "356950,356950",
+ "pY": "567600,567850"
+ },
+ {
+ "IdS": 204903,
+ "pX": "356950,357150",
+ "pY": "567850,567850"
+ },
+ {
+ "IdS": 204904,
+ "pX": "356400,356600",
+ "pY": "569900,569900"
+ },
+ {
+ "IdS": 204905,
+ "pX": "356700,356400",
+ "pY": "568300,568600"
+ },
+ {
+ "IdS": 204907,
+ "pX": "356400,356900",
+ "pY": "568600,568600"
+ },
+ {
+ "IdS": 204939,
+ "pX": "334700.16,334700,334900,334899.39",
+ "pY": "570850.13,570900,570900,570849.69"
+ },
+ {
+ "IdS": 204940,
+ "pX": "334700.16,334899.39",
+ "pY": "570850.13,570849.69"
+ },
+ {
+ "IdS": 204941,
+ "pX": "356400,356350",
+ "pY": "569900,570250"
+ },
+ {
+ "IdS": 204942,
+ "pX": "356350,356350",
+ "pY": "570250,570650"
+ },
+ {
+ "IdS": 204943,
+ "pX": "356350,356150",
+ "pY": "570250,570250"
+ },
+ {
+ "IdS": 204944,
+ "pX": "356700,356400",
+ "pY": "568300,568300"
+ },
+ {
+ "IdS": 204945,
+ "pX": "356300,356600",
+ "pY": "570850,570850"
+ },
+ {
+ "IdS": 204946,
+ "pX": "356300,356300",
+ "pY": "570850,571200"
+ },
+ {
+ "IdS": 204952,
+ "pX": "338350,338450",
+ "pY": "579400,579050"
+ },
+ {
+ "IdS": 204953,
+ "pX": "369650,370500",
+ "pY": "541350,539050"
+ },
+ {
+ "IdS": 204958,
+ "pX": "340205,340260.03",
+ "pY": "572764.96,572765.04"
+ },
+ {
+ "IdS": 204970,
+ "pX": "339550,339300",
+ "pY": "575100,575100"
+ },
+ {
+ "IdS": 204994,
+ "pX": "346550,346600,346600,346550",
+ "pY": "548600,548450,548550,548400"
+ },
+ {
+ "IdS": 204995,
+ "pX": "346550,346500,346500,346550",
+ "pY": "548600,548450,548550,548400"
+ },
+ {
+ "IdS": 205025,
+ "pX": "335350,335700",
+ "pY": "568855,568855"
+ },
+ {
+ "IdS": 205028,
+ "pX": "335350,336050",
+ "pY": "569150,569150"
+ },
+ {
+ "IdS": 205029,
+ "pX": "352075.7,352666.79",
+ "pY": "577108.6,576733.63"
+ },
+ {
+ "IdS": 205030,
+ "pX": "352666.79,352752.71",
+ "pY": "576733.63,576679.12"
+ },
+ {
+ "IdS": 205031,
+ "pX": "352666.79,352613.22",
+ "pY": "576733.63,576649.19"
+ },
+ {
+ "IdS": 205043,
+ "pX": "345000,345000",
+ "pY": "548750,549000"
+ },
+ {
+ "IdS": 205052,
+ "pX": "345000,345050,345050,345000",
+ "pY": "548750,548800,548950,549000"
+ },
+ {
+ "IdS": 205075,
+ "pX": "333924.98,334080",
+ "pY": "558694.86,558780"
+ },
+ {
+ "IdS": 205181,
+ "pX": "332850,332900,332900,332850",
+ "pY": "567150,566900,567100,566850"
+ },
+ {
+ "IdS": 205182,
+ "pX": "332850,332800,332800,332850",
+ "pY": "567150,566900,567100,566850"
+ },
+ {
+ "IdS": 205202,
+ "pX": "332850,333000",
+ "pY": "568650,568650"
+ },
+ {
+ "IdS": 205205,
+ "pX": "347850,347850",
+ "pY": "557950,558200"
+ },
+ {
+ "IdS": 205218,
+ "pX": "333750,333750",
+ "pY": "569970,570150"
+ },
+ {
+ "IdS": 205219,
+ "pX": "333750,333750",
+ "pY": "569750,569600"
+ },
+ {
+ "IdS": 205220,
+ "pX": "333750,333600",
+ "pY": "569750,569750"
+ },
+ {
+ "IdS": 205223,
+ "pX": "337450,337500,337550,337600",
+ "pY": "571400,571550,571550,571400"
+ },
+ {
+ "IdS": 205224,
+ "pX": "337400,337400",
+ "pY": "571700,571600"
+ },
+ {
+ "IdS": 205225,
+ "pX": "337400,337300",
+ "pY": "571600,571600"
+ },
+ {
+ "IdS": 205226,
+ "pX": "337400,337400",
+ "pY": "572000,571700"
+ },
+ {
+ "IdS": 205227,
+ "pX": "337400,337475",
+ "pY": "571700,571700"
+ },
+ {
+ "IdS": 205232,
+ "pX": "337450,337600",
+ "pY": "571400,571400"
+ },
+ {
+ "IdS": 205233,
+ "pX": "337450,337550,337500,337600",
+ "pY": "571400,571450,571450,571400"
+ },
+ {
+ "IdS": 205237,
+ "pX": "337450,337500,337550,337600",
+ "pY": "571400,571500,571500,571400"
+ },
+ {
+ "IdS": 205238,
+ "pX": "337400,337600,337600",
+ "pY": "571600,571600,571400"
+ },
+ {
+ "IdS": 205253,
+ "pX": "331700,331350",
+ "pY": "572200,572200"
+ },
+ {
+ "IdS": 205287,
+ "pX": "375299.68,375300,375150",
+ "pY": "533020.19,533800,534050"
+ },
+ {
+ "IdS": 205289,
+ "pX": "336300,336380",
+ "pY": "570300,570385"
+ },
+ {
+ "IdS": 205299,
+ "pX": "336750,336750",
+ "pY": "571550,571650"
+ },
+ {
+ "IdS": 205315,
+ "pX": "337750,337110,336600",
+ "pY": "566795,565350,565350"
+ },
+ {
+ "IdS": 205347,
+ "pX": "374895,374955",
+ "pY": "544950,545040"
+ },
+ {
+ "IdS": 205356,
+ "pX": "373250,373210.21",
+ "pY": "545850,545794.7"
+ },
+ {
+ "IdS": 205431,
+ "pX": "380550,380445",
+ "pY": "541650,541295"
+ },
+ {
+ "IdS": 205453,
+ "pX": "340152.61,340162,340170",
+ "pY": "572849.21,572862,572865"
+ },
+ {
+ "IdS": 205454,
+ "pX": "340152.61,340165,340170",
+ "pY": "572849.21,572857,572865"
+ },
+ {
+ "IdS": 205455,
+ "pX": "340170,340180",
+ "pY": "572865,572875"
+ },
+ {
+ "IdS": 205457,
+ "pX": "340700,340700,340850",
+ "pY": "573200,573250,573300"
+ },
+ {
+ "IdS": 205458,
+ "pX": "340700,340850",
+ "pY": "573200,573300"
+ },
+ {
+ "IdS": 205459,
+ "pX": "340180,340194,340205",
+ "pY": "572875,572870,572875"
+ },
+ {
+ "IdS": 205460,
+ "pX": "340180,340194,340205",
+ "pY": "572875,572880,572875"
+ },
+ {
+ "IdS": 205462,
+ "pX": "343600,343190",
+ "pY": "577900,577360"
+ },
+ {
+ "IdS": 205463,
+ "pX": "343190,342350",
+ "pY": "577360,576300"
+ },
+ {
+ "IdS": 205464,
+ "pX": "343190,343400",
+ "pY": "577360,577200"
+ },
+ {
+ "IdS": 205465,
+ "pX": "343600,343800",
+ "pY": "577900,577750"
+ },
+ {
+ "IdS": 205467,
+ "pX": "336400,336750",
+ "pY": "566950,566950"
+ },
+ {
+ "IdS": 205693,
+ "pX": "371200,371200",
+ "pY": "537000,534925"
+ },
+ {
+ "IdS": 205739,
+ "pX": "383250,383150",
+ "pY": "540100,539950"
+ },
+ {
+ "IdS": 205769,
+ "pX": "337100,337099.89,336950.08",
+ "pY": "571350,571550.48,571550.07"
+ },
+ {
+ "IdS": 205771,
+ "pX": "336950,336850",
+ "pY": "571000,571000"
+ },
+ {
+ "IdS": 205775,
+ "pX": "336940,336850",
+ "pY": "570890,570890"
+ },
+ {
+ "IdS": 205776,
+ "pX": "336935,336850",
+ "pY": "570700,570700"
+ },
+ {
+ "IdS": 205778,
+ "pX": "336950,337100",
+ "pY": "570800,570800"
+ },
+ {
+ "IdS": 205779,
+ "pX": "336950.08,336950",
+ "pY": "571550.07,571250"
+ },
+ {
+ "IdS": 205780,
+ "pX": "336950.08,336840",
+ "pY": "571550.07,571550"
+ },
+ {
+ "IdS": 205781,
+ "pX": "336950,336950",
+ "pY": "571250,571100"
+ },
+ {
+ "IdS": 205782,
+ "pX": "336950,337100",
+ "pY": "571250,571250"
+ },
+ {
+ "IdS": 205785,
+ "pX": "336950,336950",
+ "pY": "571100,571000"
+ },
+ {
+ "IdS": 205786,
+ "pX": "336950,337100",
+ "pY": "571100,571100"
+ },
+ {
+ "IdS": 205790,
+ "pX": "367050,367300",
+ "pY": "548750,548350"
+ },
+ {
+ "IdS": 205798,
+ "pX": "367400,367100",
+ "pY": "548950,549225"
+ },
+ {
+ "IdS": 205812,
+ "pX": "343900,343700",
+ "pY": "579400,579200"
+ },
+ {
+ "IdS": 205905,
+ "pX": "343900,343800",
+ "pY": "579400,579600"
+ },
+ {
+ "IdS": 205906,
+ "pX": "343800,343900",
+ "pY": "579600,579800"
+ },
+ {
+ "IdS": 205907,
+ "pX": "343900,344000",
+ "pY": "579800,580000"
+ },
+ {
+ "IdS": 205908,
+ "pX": "343900,344200",
+ "pY": "579800,579800"
+ },
+ {
+ "IdS": 205922,
+ "pX": "347250,347250,347450",
+ "pY": "551000,550850,550850"
+ },
+ {
+ "IdS": 205923,
+ "pX": "347911.11,347713.51",
+ "pY": "551123.89,551092.98"
+ },
+ {
+ "IdS": 205924,
+ "pX": "347942.02,347744.42,347713.51",
+ "pY": "550926.29,550895.38,551092.98"
+ },
+ {
+ "IdS": 205941,
+ "pX": "354450,354650",
+ "pY": "559450,559400"
+ },
+ {
+ "IdS": 206048,
+ "pX": "378150,378000",
+ "pY": "543050,542850"
+ },
+ {
+ "IdS": 206050,
+ "pX": "377818.21,377950",
+ "pY": "543274.18,543450"
+ },
+ {
+ "IdS": 206061,
+ "pX": "354600,354300",
+ "pY": "559850,560000"
+ },
+ {
+ "IdS": 206062,
+ "pX": "354700,354800",
+ "pY": "560100,560300"
+ },
+ {
+ "IdS": 206063,
+ "pX": "354700,354400",
+ "pY": "560100,560250"
+ },
+ {
+ "IdS": 206084,
+ "pX": "335100,335350",
+ "pY": "569400,569400"
+ },
+ {
+ "IdS": 206085,
+ "pX": "335100,335100",
+ "pY": "569400,569200"
+ },
+ {
+ "IdS": 206135,
+ "pX": "354900,354550",
+ "pY": "560550,560700"
+ },
+ {
+ "IdS": 206178,
+ "pX": "356050,356050",
+ "pY": "563200,563050"
+ },
+ {
+ "IdS": 206271,
+ "pX": "355600,355350",
+ "pY": "564700,564700"
+ },
+ {
+ "IdS": 206272,
+ "pX": "355350,355350",
+ "pY": "564700,564900"
+ },
+ {
+ "IdS": 206273,
+ "pX": "355350,355250",
+ "pY": "564700,564700"
+ },
+ {
+ "IdS": 206274,
+ "pX": "345000,345000",
+ "pY": "551550,551900"
+ },
+ {
+ "IdS": 206275,
+ "pX": "345000,344860",
+ "pY": "551900,552400"
+ },
+ {
+ "IdS": 206276,
+ "pX": "345000,345200",
+ "pY": "551900,551900"
+ },
+ {
+ "IdS": 206277,
+ "pX": "344860,344600",
+ "pY": "552400,552950"
+ },
+ {
+ "IdS": 206278,
+ "pX": "344860,344985",
+ "pY": "552400,552400"
+ },
+ {
+ "IdS": 206280,
+ "pX": "344600,344480",
+ "pY": "552950,552950"
+ },
+ {
+ "IdS": 206281,
+ "pX": "344990,344990",
+ "pY": "553150,553860"
+ },
+ {
+ "IdS": 206282,
+ "pX": "344990,345135",
+ "pY": "553150,553150"
+ },
+ {
+ "IdS": 206285,
+ "pX": "355100,354800",
+ "pY": "563900,563900"
+ },
+ {
+ "IdS": 206293,
+ "pX": "345330,345215,345030,345030",
+ "pY": "553950,554110,554220,554350"
+ },
+ {
+ "IdS": 206295,
+ "pX": "345030,345030",
+ "pY": "554350,554520"
+ },
+ {
+ "IdS": 206306,
+ "pX": "350100,350050",
+ "pY": "551450,551650"
+ },
+ {
+ "IdS": 206308,
+ "pX": "349800,349750",
+ "pY": "551400,551800"
+ },
+ {
+ "IdS": 206326,
+ "pX": "349300,349300",
+ "pY": "551350,551550"
+ },
+ {
+ "IdS": 206328,
+ "pX": "348408.21,348436.01",
+ "pY": "551184.04,551003.56"
+ },
+ {
+ "IdS": 206330,
+ "pX": "348108.71,347911.11",
+ "pY": "551154.79,551123.89"
+ },
+ {
+ "IdS": 206331,
+ "pX": "348108.71,348139.62,347942.02",
+ "pY": "551154.79,550957.2,550926.29"
+ },
+ {
+ "IdS": 206350,
+ "pX": "344300,344300",
+ "pY": "542615,542365"
+ },
+ {
+ "IdS": 206351,
+ "pX": "344300,344325,344325,344300",
+ "pY": "542615,542590,542385,542365"
+ },
+ {
+ "IdS": 206384,
+ "pX": "355900,355750",
+ "pY": "565200,565300"
+ },
+ {
+ "IdS": 206431,
+ "pX": "356250,356350",
+ "pY": "565750,565900"
+ },
+ {
+ "IdS": 206432,
+ "pX": "356250,356400",
+ "pY": "565750,565750"
+ },
+ {
+ "IdS": 206434,
+ "pX": "356350,356500",
+ "pY": "565900,565900"
+ },
+ {
+ "IdS": 206436,
+ "pX": "356500,356350",
+ "pY": "566200,566200"
+ },
+ {
+ "IdS": 206466,
+ "pX": "346900,347215",
+ "pY": "559700,560425"
+ },
+ {
+ "IdS": 206489,
+ "pX": "371450,371250",
+ "pY": "550160.01,550160"
+ },
+ {
+ "IdS": 206491,
+ "pX": "371450,371450",
+ "pY": "550160.01,550550"
+ },
+ {
+ "IdS": 206505,
+ "pX": "339760,339950",
+ "pY": "569420,569420"
+ },
+ {
+ "IdS": 206547,
+ "pX": "345425,345650",
+ "pY": "560815,561125"
+ },
+ {
+ "IdS": 206584,
+ "pX": "333750,333700,333700,333750",
+ "pY": "569600,569550,569450,569400"
+ },
+ {
+ "IdS": 206585,
+ "pX": "333750,333750",
+ "pY": "569600,569400"
+ },
+ {
+ "IdS": 206586,
+ "pX": "333750,333650,333650,333750",
+ "pY": "569600,569550,569450,569400"
+ },
+ {
+ "IdS": 206587,
+ "pX": "333750,333800,333800,333750",
+ "pY": "569600,569550,569450,569400"
+ },
+ {
+ "IdS": 206605,
+ "pX": "338335,338110",
+ "pY": "545490,545165"
+ },
+ {
+ "IdS": 206611,
+ "pX": "338110,337945",
+ "pY": "545165,545275"
+ },
+ {
+ "IdS": 206658,
+ "pX": "355450,355450",
+ "pY": "552300,551900"
+ },
+ {
+ "IdS": 206672,
+ "pX": "351450,351449.58",
+ "pY": "551700,551849.29"
+ },
+ {
+ "IdS": 206688,
+ "pX": "344400,344199.31",
+ "pY": "585550,585498.88"
+ },
+ {
+ "IdS": 206690,
+ "pX": "344700,344900",
+ "pY": "584350,584400"
+ },
+ {
+ "IdS": 206694,
+ "pX": "375298.41,375299.78",
+ "pY": "532255.17,532885.18"
+ },
+ {
+ "IdS": 206695,
+ "pX": "375298.41,375710.11,375708.36",
+ "pY": "532255.17,532255.23,532148.19"
+ },
+ {
+ "IdS": 206713,
+ "pX": "339550,339800",
+ "pY": "571300,571300"
+ },
+ {
+ "IdS": 206714,
+ "pX": "339550,339550",
+ "pY": "571300,571200"
+ },
+ {
+ "IdS": 206728,
+ "pX": "355400,355550",
+ "pY": "561700,562050"
+ },
+ {
+ "IdS": 206730,
+ "pX": "355550,355900",
+ "pY": "562050,562050"
+ },
+ {
+ "IdS": 206764,
+ "pX": "356350,356300",
+ "pY": "570650,570850"
+ },
+ {
+ "IdS": 206765,
+ "pX": "356950,357150",
+ "pY": "567600,567600"
+ },
+ {
+ "IdS": 206780,
+ "pX": "346100,346000,346000",
+ "pY": "549450,549450,549350"
+ },
+ {
+ "IdS": 206849,
+ "pX": "345725,345700,345548.59,345525",
+ "pY": "551050,551075,551075.08,551050"
+ },
+ {
+ "IdS": 206850,
+ "pX": "345725,345700,345554.19,345525",
+ "pY": "551050,551025,551025.04,551050"
+ },
+ {
+ "IdS": 206851,
+ "pX": "345525,345330",
+ "pY": "551050,551050"
+ },
+ {
+ "IdS": 206898,
+ "pX": "347375,347430",
+ "pY": "554385,554415"
+ },
+ {
+ "IdS": 206899,
+ "pX": "347375,347380,347425,347430",
+ "pY": "554385,554395,554420,554415"
+ },
+ {
+ "IdS": 206940,
+ "pX": "339299.8,339550",
+ "pY": "547515.45,547200"
+ },
+ {
+ "IdS": 206941,
+ "pX": "339299.8,339224.48",
+ "pY": "547515.45,547514.72"
+ },
+ {
+ "IdS": 206994,
+ "pX": "341230,341045",
+ "pY": "548830,548750"
+ },
+ {
+ "IdS": 207000,
+ "pX": "341045,340995",
+ "pY": "548750,548860"
+ },
+ {
+ "IdS": 207020,
+ "pX": "348900,349585,349500",
+ "pY": "562800,563550,563550"
+ },
+ {
+ "IdS": 207033,
+ "pX": "338551.78,338649.28",
+ "pY": "578699.87,578200.38"
+ },
+ {
+ "IdS": 207043,
+ "pX": "351353.89,352075.7",
+ "pY": "577555.27,577108.6"
+ },
+ {
+ "IdS": 207044,
+ "pX": "351353.89,351300.32",
+ "pY": "577555.27,577470.83"
+ },
+ {
+ "IdS": 207045,
+ "pX": "351146.83,351353.89",
+ "pY": "577697.85,577555.27"
+ },
+ {
+ "IdS": 207046,
+ "pX": "351146.83,351093.27",
+ "pY": "577697.85,577613.41"
+ },
+ {
+ "IdS": 207055,
+ "pX": "344450.61,344623.9",
+ "pY": "555829.08,555928.92"
+ },
+ {
+ "IdS": 207057,
+ "pX": "369650,369650",
+ "pY": "541850,541350"
+ },
+ {
+ "IdS": 207058,
+ "pX": "356900,356970",
+ "pY": "563700,563985"
+ },
+ {
+ "IdS": 207065,
+ "pX": "343850,344050",
+ "pY": "543200,543000"
+ },
+ {
+ "IdS": 207078,
+ "pX": "356970,357190",
+ "pY": "563985,563985"
+ },
+ {
+ "IdS": 207174,
+ "pX": "347450,347700",
+ "pY": "558400,558400"
+ },
+ {
+ "IdS": 207195,
+ "pX": "346360,346385,346500",
+ "pY": "551335,551190,551100"
+ },
+ {
+ "IdS": 207196,
+ "pX": "346360,346170",
+ "pY": "551335,551305"
+ },
+ {
+ "IdS": 207204,
+ "pX": "346500,346780",
+ "pY": "551100,551150"
+ },
+ {
+ "IdS": 207205,
+ "pX": "346780,346715,346550,346500",
+ "pY": "551150,551190,551165,551100"
+ },
+ {
+ "IdS": 207240,
+ "pX": "336100,336100",
+ "pY": "566950,567100"
+ },
+ {
+ "IdS": 207249,
+ "pX": "344050,344194.57",
+ "pY": "543000,543163.67"
+ },
+ {
+ "IdS": 207259,
+ "pX": "339800,339950",
+ "pY": "571100,571100"
+ },
+ {
+ "IdS": 207280,
+ "pX": "343750,343550",
+ "pY": "556000,555850"
+ },
+ {
+ "IdS": 207282,
+ "pX": "344050,343900",
+ "pY": "555800,555650"
+ },
+ {
+ "IdS": 207333,
+ "pX": "338550,338860.11",
+ "pY": "571750,571474.56"
+ },
+ {
+ "IdS": 207334,
+ "pX": "338860.11,339100",
+ "pY": "571474.56,571350"
+ },
+ {
+ "IdS": 207336,
+ "pX": "333395.08,333429.99,333499.82,333500",
+ "pY": "569774.88,569764.97,569764.88,569400"
+ },
+ {
+ "IdS": 207337,
+ "pX": "333500,333500",
+ "pY": "569400,569250"
+ },
+ {
+ "IdS": 207338,
+ "pX": "333500,333400",
+ "pY": "569400,569400"
+ },
+ {
+ "IdS": 207355,
+ "pX": "335399.94,335400",
+ "pY": "563104.92,562700"
+ },
+ {
+ "IdS": 207356,
+ "pX": "335398.32,335400.13",
+ "pY": "563550.37,563120.76"
+ },
+ {
+ "IdS": 207357,
+ "pX": "335399.94,335600",
+ "pY": "563104.92,563105"
+ },
+ {
+ "IdS": 207394,
+ "pX": "353300,353250,353250,353300",
+ "pY": "581100,581050,580750,580700"
+ },
+ {
+ "IdS": 207400,
+ "pX": "353300,353350,353350,353300",
+ "pY": "581100,580750,581050,580700"
+ },
+ {
+ "IdS": 207403,
+ "pX": "354200,354200",
+ "pY": "581100,581400"
+ },
+ {
+ "IdS": 207435,
+ "pX": "345350,345569.96",
+ "pY": "581150,581149.69"
+ },
+ {
+ "IdS": 207436,
+ "pX": "345350,345569.96",
+ "pY": "580950,581149.69"
+ },
+ {
+ "IdS": 207437,
+ "pX": "344600,345300",
+ "pY": "574550,574900"
+ },
+ {
+ "IdS": 207438,
+ "pX": "345300,345750",
+ "pY": "574900,575150"
+ },
+ {
+ "IdS": 207439,
+ "pX": "345750,346250",
+ "pY": "575150,575650"
+ },
+ {
+ "IdS": 207440,
+ "pX": "346250,346250",
+ "pY": "575650,576050"
+ },
+ {
+ "IdS": 207441,
+ "pX": "345300,345150",
+ "pY": "574900,575150"
+ },
+ {
+ "IdS": 207442,
+ "pX": "345750,345600",
+ "pY": "575150,575350"
+ },
+ {
+ "IdS": 207443,
+ "pX": "346250,346600",
+ "pY": "575650,575650"
+ },
+ {
+ "IdS": 207445,
+ "pX": "338250,338400",
+ "pY": "571450,571450"
+ },
+ {
+ "IdS": 207447,
+ "pX": "338600,338600",
+ "pY": "571650,571500"
+ },
+ {
+ "IdS": 207448,
+ "pX": "338150,338250,338250",
+ "pY": "571550,571550,571450"
+ },
+ {
+ "IdS": 207453,
+ "pX": "338150,338250",
+ "pY": "571450,571450"
+ },
+ {
+ "IdS": 207461,
+ "pX": "346150,346450",
+ "pY": "552600,552600"
+ },
+ {
+ "IdS": 207462,
+ "pX": "346450,346450",
+ "pY": "552600,552850"
+ },
+ {
+ "IdS": 207463,
+ "pX": "346450,347050",
+ "pY": "552600,552600"
+ },
+ {
+ "IdS": 207464,
+ "pX": "347050,347050",
+ "pY": "552600,552900"
+ },
+ {
+ "IdS": 207465,
+ "pX": "347050,347450",
+ "pY": "552600,552600"
+ },
+ {
+ "IdS": 207494,
+ "pX": "335400,335929.96",
+ "pY": "562700,562699.92"
+ },
+ {
+ "IdS": 207495,
+ "pX": "335929.96,336550",
+ "pY": "562699.92,562700"
+ },
+ {
+ "IdS": 207499,
+ "pX": "335999.4,336000",
+ "pY": "563105.04,563550"
+ },
+ {
+ "IdS": 207502,
+ "pX": "335400,335400",
+ "pY": "562700,561350"
+ },
+ {
+ "IdS": 207503,
+ "pX": "335400,334550",
+ "pY": "561350,561350"
+ },
+ {
+ "IdS": 207504,
+ "pX": "335400,335802.89",
+ "pY": "561350,561349.63"
+ },
+ {
+ "IdS": 207505,
+ "pX": "335398.32,335650.12",
+ "pY": "563550.37,563550"
+ },
+ {
+ "IdS": 207506,
+ "pX": "332250,331750",
+ "pY": "569550,569550"
+ },
+ {
+ "IdS": 207508,
+ "pX": "331350,331350",
+ "pY": "569550,569750"
+ },
+ {
+ "IdS": 207511,
+ "pX": "331750,331350",
+ "pY": "569550,569550"
+ },
+ {
+ "IdS": 207512,
+ "pX": "331750,331750",
+ "pY": "569550,569750"
+ },
+ {
+ "IdS": 207513,
+ "pX": "332150,332150",
+ "pY": "568050,567750"
+ },
+ {
+ "IdS": 207514,
+ "pX": "332150,331950",
+ "pY": "567750,567750"
+ },
+ {
+ "IdS": 207515,
+ "pX": "332150,332150",
+ "pY": "567750,567500"
+ },
+ {
+ "IdS": 207516,
+ "pX": "333750,333400",
+ "pY": "566850,566550"
+ },
+ {
+ "IdS": 207525,
+ "pX": "346970,346925",
+ "pY": "576425,576515"
+ },
+ {
+ "IdS": 207532,
+ "pX": "348570,348840",
+ "pY": "577235,577375"
+ },
+ {
+ "IdS": 207554,
+ "pX": "348840,348745",
+ "pY": "577375,577560"
+ },
+ {
+ "IdS": 207573,
+ "pX": "345037.18,344943.78",
+ "pY": "577798.58,577762.87"
+ },
+ {
+ "IdS": 207578,
+ "pX": "342648.28,342650.43",
+ "pY": "566399.64,565659.55"
+ },
+ {
+ "IdS": 207580,
+ "pX": "339780.17,339779.79,339650",
+ "pY": "570649.94,570649.94,570650"
+ },
+ {
+ "IdS": 207592,
+ "pX": "340100,340250",
+ "pY": "569850,569650"
+ },
+ {
+ "IdS": 207593,
+ "pX": "340250,340500",
+ "pY": "569650,569400"
+ },
+ {
+ "IdS": 207594,
+ "pX": "340250,340450",
+ "pY": "569650,569650"
+ },
+ {
+ "IdS": 207616,
+ "pX": "342650,342350.24",
+ "pY": "564850,564849.69"
+ },
+ {
+ "IdS": 207632,
+ "pX": "339800,339850,339850,339800",
+ "pY": "571550,571500,571350,571300"
+ },
+ {
+ "IdS": 207633,
+ "pX": "342500,342300",
+ "pY": "563600,563500"
+ },
+ {
+ "IdS": 207634,
+ "pX": "342300,341950",
+ "pY": "563500,563300"
+ },
+ {
+ "IdS": 207638,
+ "pX": "341950,342100",
+ "pY": "563300,563000"
+ },
+ {
+ "IdS": 207642,
+ "pX": "340949.54,341199.37",
+ "pY": "572555.22,572688.57"
+ },
+ {
+ "IdS": 207643,
+ "pX": "340949.54,340890.09",
+ "pY": "572555.22,572660.04"
+ },
+ {
+ "IdS": 207644,
+ "pX": "341199.37,341400",
+ "pY": "572688.57,572800"
+ },
+ {
+ "IdS": 207663,
+ "pX": "346615,346850",
+ "pY": "559895,560200"
+ },
+ {
+ "IdS": 207669,
+ "pX": "346430,346650",
+ "pY": "560035,560300"
+ },
+ {
+ "IdS": 207682,
+ "pX": "347450,347250",
+ "pY": "556950,556950"
+ },
+ {
+ "IdS": 207687,
+ "pX": "345220,345455",
+ "pY": "561360,561665"
+ },
+ {
+ "IdS": 207688,
+ "pX": "345455,345790",
+ "pY": "561665,562105"
+ },
+ {
+ "IdS": 207689,
+ "pX": "345455,345615",
+ "pY": "561665,561550"
+ },
+ {
+ "IdS": 207690,
+ "pX": "347450,347850",
+ "pY": "557950,557950"
+ },
+ {
+ "IdS": 207709,
+ "pX": "345200,344850",
+ "pY": "555100,554700"
+ },
+ {
+ "IdS": 207743,
+ "pX": "335450,335600",
+ "pY": "570200,570200"
+ },
+ {
+ "IdS": 207749,
+ "pX": "335900,335900",
+ "pY": "568200,568350"
+ },
+ {
+ "IdS": 207750,
+ "pX": "335900,335900",
+ "pY": "568200,568100"
+ },
+ {
+ "IdS": 207761,
+ "pX": "336100,336400",
+ "pY": "566950,566950"
+ },
+ {
+ "IdS": 207767,
+ "pX": "336400,336400",
+ "pY": "566200,566000"
+ },
+ {
+ "IdS": 207768,
+ "pX": "336400,336550",
+ "pY": "566200,566200"
+ },
+ {
+ "IdS": 207782,
+ "pX": "335750,336100",
+ "pY": "567150,567150"
+ },
+ {
+ "IdS": 207801,
+ "pX": "343650,343750",
+ "pY": "588650,588250"
+ },
+ {
+ "IdS": 207802,
+ "pX": "343750,343800",
+ "pY": "588250,588050"
+ },
+ {
+ "IdS": 207803,
+ "pX": "343750,343900,343900",
+ "pY": "588250,588250,588150"
+ },
+ {
+ "IdS": 207804,
+ "pX": "343800,343850",
+ "pY": "588050,587850"
+ },
+ {
+ "IdS": 207805,
+ "pX": "343800,343900,343900",
+ "pY": "588050,588050,588150"
+ },
+ {
+ "IdS": 207807,
+ "pX": "343060,342600",
+ "pY": "572450,570800"
+ },
+ {
+ "IdS": 207808,
+ "pX": "343060,343250",
+ "pY": "572450,572450"
+ },
+ {
+ "IdS": 207814,
+ "pX": "334350,334200,334200",
+ "pY": "569350,569350,569500"
+ },
+ {
+ "IdS": 207816,
+ "pX": "334350,334350,334300",
+ "pY": "569350,569100,569100"
+ },
+ {
+ "IdS": 207821,
+ "pX": "335600,335437.99,335300",
+ "pY": "570450,570450.75,570450"
+ },
+ {
+ "IdS": 207822,
+ "pX": "335300,335200",
+ "pY": "570450,570450"
+ },
+ {
+ "IdS": 207823,
+ "pX": "335300,335300",
+ "pY": "570450,570300"
+ },
+ {
+ "IdS": 207828,
+ "pX": "336550,336551.76",
+ "pY": "572850,573000.98"
+ },
+ {
+ "IdS": 207829,
+ "pX": "336550,336550",
+ "pY": "572850,572700"
+ },
+ {
+ "IdS": 207842,
+ "pX": "346250,346200,346200",
+ "pY": "577450,577500,577800"
+ },
+ {
+ "IdS": 207843,
+ "pX": "346250,346300,346300",
+ "pY": "577450,577500,577800"
+ },
+ {
+ "IdS": 207844,
+ "pX": "346250,346300,346500,346550",
+ "pY": "576850,576900,576900,576850"
+ },
+ {
+ "IdS": 207845,
+ "pX": "346250,346250",
+ "pY": "576450,576850"
+ },
+ {
+ "IdS": 207846,
+ "pX": "346250,346450",
+ "pY": "576450,576450"
+ },
+ {
+ "IdS": 207847,
+ "pX": "346250,346250",
+ "pY": "576850,577050"
+ },
+ {
+ "IdS": 207848,
+ "pX": "346250,346300,346500,346550",
+ "pY": "576850,576800,576800,576850"
+ },
+ {
+ "IdS": 207849,
+ "pX": "346250,346250",
+ "pY": "577050,577250"
+ },
+ {
+ "IdS": 207850,
+ "pX": "346250,346000",
+ "pY": "577050,577050"
+ },
+ {
+ "IdS": 207851,
+ "pX": "346250,346250",
+ "pY": "577250,577450"
+ },
+ {
+ "IdS": 207852,
+ "pX": "346250,346500",
+ "pY": "577250,577250"
+ },
+ {
+ "IdS": 207860,
+ "pX": "339100,339350",
+ "pY": "571350,571550"
+ },
+ {
+ "IdS": 207861,
+ "pX": "339350,339450",
+ "pY": "571550,571550"
+ },
+ {
+ "IdS": 207862,
+ "pX": "339350,339350",
+ "pY": "571550,571450"
+ },
+ {
+ "IdS": 207863,
+ "pX": "339450,339550",
+ "pY": "571550,571550"
+ },
+ {
+ "IdS": 207864,
+ "pX": "339450,339450",
+ "pY": "571550,571450"
+ },
+ {
+ "IdS": 207868,
+ "pX": "346500,346100,346100",
+ "pY": "551100,551000,549450"
+ },
+ {
+ "IdS": 207869,
+ "pX": "338150,337500",
+ "pY": "570200,569950"
+ },
+ {
+ "IdS": 207871,
+ "pX": "335850,335810,335845",
+ "pY": "571950,571760,571750"
+ },
+ {
+ "IdS": 207875,
+ "pX": "335850,335750",
+ "pY": "571950,571950"
+ },
+ {
+ "IdS": 207882,
+ "pX": "345350,345245,345245,345350",
+ "pY": "581150,580950,581150,580950"
+ },
+ {
+ "IdS": 207894,
+ "pX": "340150,340350",
+ "pY": "573500,573500"
+ },
+ {
+ "IdS": 207895,
+ "pX": "340900,339900",
+ "pY": "574950,574300"
+ },
+ {
+ "IdS": 207896,
+ "pX": "340900,340750",
+ "pY": "574950,575100"
+ },
+ {
+ "IdS": 207920,
+ "pX": "346000.37,346000",
+ "pY": "576489.76,576700"
+ },
+ {
+ "IdS": 207934,
+ "pX": "329500,330600",
+ "pY": "562750,563250"
+ },
+ {
+ "IdS": 207955,
+ "pX": "340150,340150",
+ "pY": "571750,571650"
+ },
+ {
+ "IdS": 207956,
+ "pX": "340150,340150",
+ "pY": "571650,571150"
+ },
+ {
+ "IdS": 207957,
+ "pX": "340150,340350",
+ "pY": "571650,571650.01"
+ },
+ {
+ "IdS": 207958,
+ "pX": "340150,340150,340050",
+ "pY": "571150,570350,570350"
+ },
+ {
+ "IdS": 207959,
+ "pX": "340150,340350",
+ "pY": "571150,571150"
+ },
+ {
+ "IdS": 208002,
+ "pX": "342100,342300",
+ "pY": "573150,573250"
+ },
+ {
+ "IdS": 208003,
+ "pX": "342300,342500",
+ "pY": "573250,573350"
+ },
+ {
+ "IdS": 208004,
+ "pX": "342300,342350",
+ "pY": "573250,573150"
+ },
+ {
+ "IdS": 208005,
+ "pX": "342500,342500,342650,342700",
+ "pY": "573350,573450,573500,573450"
+ },
+ {
+ "IdS": 208006,
+ "pX": "342500,342700",
+ "pY": "573350,573450"
+ },
+ {
+ "IdS": 208007,
+ "pX": "366000,365900",
+ "pY": "547700,547450"
+ },
+ {
+ "IdS": 208008,
+ "pX": "365900,365700",
+ "pY": "547450,547450"
+ },
+ {
+ "IdS": 208009,
+ "pX": "365900,365800",
+ "pY": "547450,547200"
+ },
+ {
+ "IdS": 208030,
+ "pX": "346350,346350,346100,346100",
+ "pY": "545000,544800,544800,545000"
+ },
+ {
+ "IdS": 208031,
+ "pX": "346350,346100",
+ "pY": "545000,545000"
+ },
+ {
+ "IdS": 208043,
+ "pX": "346550,346350",
+ "pY": "545000,545000"
+ },
+ {
+ "IdS": 208047,
+ "pX": "346550,346350",
+ "pY": "544600,544600"
+ },
+ {
+ "IdS": 208048,
+ "pX": "346550,346350",
+ "pY": "545800,545800"
+ },
+ {
+ "IdS": 208053,
+ "pX": "346549.96,346705",
+ "pY": "544384.65,544385"
+ },
+ {
+ "IdS": 208054,
+ "pX": "346550,346750",
+ "pY": "544100,543700"
+ },
+ {
+ "IdS": 208055,
+ "pX": "346550,346350",
+ "pY": "544100,544100"
+ },
+ {
+ "IdS": 208062,
+ "pX": "346550,346724.99",
+ "pY": "545600,545600"
+ },
+ {
+ "IdS": 208108,
+ "pX": "338350,338000",
+ "pY": "567499.99,567500"
+ },
+ {
+ "IdS": 208109,
+ "pX": "338000,338000",
+ "pY": "567500,567300"
+ },
+ {
+ "IdS": 208112,
+ "pX": "337750,337400",
+ "pY": "566795,566400"
+ },
+ {
+ "IdS": 208116,
+ "pX": "338000,337955",
+ "pY": "567300,567090"
+ },
+ {
+ "IdS": 208117,
+ "pX": "338000,338200",
+ "pY": "567300,567300"
+ },
+ {
+ "IdS": 208120,
+ "pX": "346070,346235",
+ "pY": "553135,553165"
+ },
+ {
+ "IdS": 208133,
+ "pX": "345905,345990",
+ "pY": "553985,554000"
+ },
+ {
+ "IdS": 208134,
+ "pX": "345905,345905,346030",
+ "pY": "553985,553985,553340"
+ },
+ {
+ "IdS": 208136,
+ "pX": "346030,346285",
+ "pY": "553340,553390"
+ },
+ {
+ "IdS": 208144,
+ "pX": "346550,346600,346600,346550",
+ "pY": "548400,548350,548250,548200"
+ },
+ {
+ "IdS": 208154,
+ "pX": "346550,346550",
+ "pY": "548200,548000"
+ },
+ {
+ "IdS": 208158,
+ "pX": "346550,346325",
+ "pY": "546700,546700"
+ },
+ {
+ "IdS": 208159,
+ "pX": "346550,346550",
+ "pY": "546700,546500"
+ },
+ {
+ "IdS": 208161,
+ "pX": "346550,346750",
+ "pY": "548000,548000"
+ },
+ {
+ "IdS": 208162,
+ "pX": "346550,346500,346500,346550",
+ "pY": "548400,548350,548260,548200"
+ },
+ {
+ "IdS": 208163,
+ "pX": "346550,346400",
+ "pY": "548000,548000"
+ },
+ {
+ "IdS": 208166,
+ "pX": "339000,339800,339800",
+ "pY": "571650,571650,571550"
+ },
+ {
+ "IdS": 208168,
+ "pX": "370500,371200",
+ "pY": "539050,537000"
+ },
+ {
+ "IdS": 208188,
+ "pX": "336569.61,337554.34",
+ "pY": "562675.67,561288.15"
+ },
+ {
+ "IdS": 208232,
+ "pX": "334650,334850",
+ "pY": "565550,565550"
+ },
+ {
+ "IdS": 208233,
+ "pX": "334650,334650",
+ "pY": "565550,565350"
+ },
+ {
+ "IdS": 208235,
+ "pX": "334950,334950",
+ "pY": "566550,566700"
+ },
+ {
+ "IdS": 208236,
+ "pX": "334950,334950",
+ "pY": "566450,566400"
+ },
+ {
+ "IdS": 208237,
+ "pX": "334950,335100",
+ "pY": "566450,566450"
+ },
+ {
+ "IdS": 208247,
+ "pX": "334200,334200",
+ "pY": "566350,566200"
+ },
+ {
+ "IdS": 208252,
+ "pX": "334650,334650",
+ "pY": "566300,565550"
+ },
+ {
+ "IdS": 208253,
+ "pX": "334650,334800",
+ "pY": "566300,566300"
+ },
+ {
+ "IdS": 208266,
+ "pX": "340350,340250",
+ "pY": "559900,559800"
+ },
+ {
+ "IdS": 208293,
+ "pX": "341045,341045",
+ "pY": "559330,559435"
+ },
+ {
+ "IdS": 208294,
+ "pX": "338940.8,338850.92",
+ "pY": "560884.52,560779.69"
+ },
+ {
+ "IdS": 208320,
+ "pX": "352045,352045",
+ "pY": "580300,580445"
+ },
+ {
+ "IdS": 208351,
+ "pX": "332250,332400",
+ "pY": "569050,569050"
+ },
+ {
+ "IdS": 208353,
+ "pX": "333750,333850,333850,333900",
+ "pY": "569400,569600,569400,569600"
+ },
+ {
+ "IdS": 208354,
+ "pX": "334050,334050",
+ "pY": "569200,569170"
+ },
+ {
+ "IdS": 208359,
+ "pX": "333900,333900",
+ "pY": "569600,569350"
+ },
+ {
+ "IdS": 208360,
+ "pX": "333900,333900",
+ "pY": "569600,569700"
+ },
+ {
+ "IdS": 208361,
+ "pX": "333900,334050",
+ "pY": "569350,569200"
+ },
+ {
+ "IdS": 208363,
+ "pX": "334050,334200",
+ "pY": "569200,569200"
+ },
+ {
+ "IdS": 208364,
+ "pX": "334050,334150",
+ "pY": "569200,569350"
+ },
+ {
+ "IdS": 208365,
+ "pX": "334150,334150",
+ "pY": "569350,569450"
+ },
+ {
+ "IdS": 208367,
+ "pX": "334200,334300",
+ "pY": "569200,569100"
+ },
+ {
+ "IdS": 208368,
+ "pX": "333750,333750,333850,333900",
+ "pY": "569400,569150,569150,569350"
+ },
+ {
+ "IdS": 208372,
+ "pX": "334800,334700,334700,334800",
+ "pY": "569300,569300,569550,569600"
+ },
+ {
+ "IdS": 208373,
+ "pX": "334800,334800",
+ "pY": "569300,569600"
+ },
+ {
+ "IdS": 208377,
+ "pX": "334185.07,334185",
+ "pY": "570300.05,570095"
+ },
+ {
+ "IdS": 208378,
+ "pX": "334185.07,334000.31",
+ "pY": "570300.05,570299.86"
+ },
+ {
+ "IdS": 208380,
+ "pX": "338489.45,341250",
+ "pY": "561524.04,559500"
+ },
+ {
+ "IdS": 208437,
+ "pX": "338450,338250",
+ "pY": "558550,558700"
+ },
+ {
+ "IdS": 208456,
+ "pX": "336350.13,336350.02",
+ "pY": "571234.76,571194.66"
+ },
+ {
+ "IdS": 208457,
+ "pX": "336329.96,336329.88,336550",
+ "pY": "571250,571090.05,570900"
+ },
+ {
+ "IdS": 208467,
+ "pX": "345250,345450,345800",
+ "pY": "582000,582000,582150"
+ },
+ {
+ "IdS": 208469,
+ "pX": "345775,345830",
+ "pY": "553950,553810"
+ },
+ {
+ "IdS": 208470,
+ "pX": "346760,346775",
+ "pY": "551925,551950"
+ },
+ {
+ "IdS": 208471,
+ "pX": "345830,345900",
+ "pY": "553810,553420"
+ },
+ {
+ "IdS": 208472,
+ "pX": "345900,345660",
+ "pY": "553420,553390"
+ },
+ {
+ "IdS": 208473,
+ "pX": "345830,345780",
+ "pY": "553810,553810"
+ },
+ {
+ "IdS": 208474,
+ "pX": "345900,346085,346625,346760",
+ "pY": "553420,552365,552300,551925"
+ },
+ {
+ "IdS": 208475,
+ "pX": "346760,346500,346500",
+ "pY": "551925,551570,551100"
+ },
+ {
+ "IdS": 208476,
+ "pX": "338700,339300",
+ "pY": "567450,567450"
+ },
+ {
+ "IdS": 208486,
+ "pX": "337380,337475",
+ "pY": "561910,561975"
+ },
+ {
+ "IdS": 208496,
+ "pX": "336100,336200",
+ "pY": "571050,571250"
+ },
+ {
+ "IdS": 208497,
+ "pX": "336100,336100,336200",
+ "pY": "571050,571250,571250"
+ },
+ {
+ "IdS": 208501,
+ "pX": "335925,336000",
+ "pY": "570950,570950"
+ },
+ {
+ "IdS": 208505,
+ "pX": "336000,336000",
+ "pY": "571050,571150"
+ },
+ {
+ "IdS": 208514,
+ "pX": "343900,343600",
+ "pY": "579400,579500"
+ },
+ {
+ "IdS": 208515,
+ "pX": "343600,343400",
+ "pY": "579500,579600"
+ },
+ {
+ "IdS": 208516,
+ "pX": "343600,343800",
+ "pY": "579500,579600"
+ },
+ {
+ "IdS": 208517,
+ "pX": "343400,343200",
+ "pY": "579600,579700"
+ },
+ {
+ "IdS": 208526,
+ "pX": "338580,338770",
+ "pY": "591420,591385"
+ },
+ {
+ "IdS": 208527,
+ "pX": "338530,338470,338445,338480",
+ "pY": "591225,591190,591090,591030"
+ },
+ {
+ "IdS": 208528,
+ "pX": "338530,338570,338550,338480",
+ "pY": "591225,591175,591070,591030"
+ },
+ {
+ "IdS": 208533,
+ "pX": "332150,332150,331750",
+ "pY": "568050,568050,568050"
+ },
+ {
+ "IdS": 208534,
+ "pX": "344000,344100",
+ "pY": "580000,580200"
+ },
+ {
+ "IdS": 208536,
+ "pX": "344100,344400",
+ "pY": "580200,580200"
+ },
+ {
+ "IdS": 208541,
+ "pX": "345267.72,345605.45",
+ "pY": "583829.68,584122.83"
+ },
+ {
+ "IdS": 208567,
+ "pX": "350045,349930,349930",
+ "pY": "580615,580700,580700"
+ },
+ {
+ "IdS": 208578,
+ "pX": "350045,350005,349930,349930",
+ "pY": "580615,580605,580660,580700"
+ },
+ {
+ "IdS": 208582,
+ "pX": "349850,349725",
+ "pY": "580760,580850"
+ },
+ {
+ "IdS": 208583,
+ "pX": "349850,349795,349725,349725",
+ "pY": "580760,580755,580800,580850"
+ },
+ {
+ "IdS": 208584,
+ "pX": "348500,348450,348150",
+ "pY": "581750,581800,581800"
+ },
+ {
+ "IdS": 208585,
+ "pX": "348500,348200,348150",
+ "pY": "581750,581750,581800"
+ },
+ {
+ "IdS": 208608,
+ "pX": "341400,341500",
+ "pY": "572800,572850"
+ },
+ {
+ "IdS": 208609,
+ "pX": "341500,341700",
+ "pY": "572850,572950"
+ },
+ {
+ "IdS": 208610,
+ "pX": "341700,341800",
+ "pY": "572950,572800"
+ },
+ {
+ "IdS": 208611,
+ "pX": "341700,341900",
+ "pY": "572950,573050"
+ },
+ {
+ "IdS": 208612,
+ "pX": "341500,341600",
+ "pY": "572850,572700"
+ },
+ {
+ "IdS": 208613,
+ "pX": "341900,342100",
+ "pY": "573050,573150"
+ },
+ {
+ "IdS": 208614,
+ "pX": "341900,341800",
+ "pY": "573050,573200"
+ },
+ {
+ "IdS": 208625,
+ "pX": "344600,344600",
+ "pY": "558800,559100"
+ },
+ {
+ "IdS": 208663,
+ "pX": "336515,336700",
+ "pY": "571250,571250"
+ },
+ {
+ "IdS": 208667,
+ "pX": "337300,337400,337345,337450",
+ "pY": "571400,571450,571450,571400"
+ },
+ {
+ "IdS": 208668,
+ "pX": "337300,337345,337400,337450",
+ "pY": "571400,571550,571550,571400"
+ },
+ {
+ "IdS": 208669,
+ "pX": "337300,337400",
+ "pY": "571400,571400"
+ },
+ {
+ "IdS": 208670,
+ "pX": "337280,337450",
+ "pY": "571385,571300"
+ },
+ {
+ "IdS": 208671,
+ "pX": "337400,337450",
+ "pY": "571400,571400"
+ },
+ {
+ "IdS": 208672,
+ "pX": "337300,337345,337400,337450",
+ "pY": "571400,571495,571495,571400"
+ },
+ {
+ "IdS": 208673,
+ "pX": "337450,337600",
+ "pY": "571300,571300"
+ },
+ {
+ "IdS": 208678,
+ "pX": "337450,337600",
+ "pY": "571150,571150"
+ },
+ {
+ "IdS": 208679,
+ "pX": "337750,337500",
+ "pY": "570900,570900"
+ },
+ {
+ "IdS": 208680,
+ "pX": "337500,337350",
+ "pY": "571000,571000"
+ },
+ {
+ "IdS": 208681,
+ "pX": "337500,337500",
+ "pY": "570900,571000"
+ },
+ {
+ "IdS": 208691,
+ "pX": "336699.88,336700",
+ "pY": "571350,571450"
+ },
+ {
+ "IdS": 208698,
+ "pX": "343500,343000",
+ "pY": "578300,577650"
+ },
+ {
+ "IdS": 208699,
+ "pX": "343500,343300",
+ "pY": "578300,578450"
+ },
+ {
+ "IdS": 208701,
+ "pX": "343000,342850",
+ "pY": "577650,577750"
+ },
+ {
+ "IdS": 208703,
+ "pX": "343900,343983.57",
+ "pY": "578800,578739.31"
+ },
+ {
+ "IdS": 208706,
+ "pX": "342450,342400,342150",
+ "pY": "576949.99,577000,577000"
+ },
+ {
+ "IdS": 208707,
+ "pX": "342250,342200,342150",
+ "pY": "576700,576750,577000"
+ },
+ {
+ "IdS": 208708,
+ "pX": "356800,356800",
+ "pY": "566700,566850"
+ },
+ {
+ "IdS": 208710,
+ "pX": "356800,356950",
+ "pY": "566850,566850"
+ },
+ {
+ "IdS": 208711,
+ "pX": "356900,356950",
+ "pY": "567400,567600"
+ },
+ {
+ "IdS": 208712,
+ "pX": "356900,357100",
+ "pY": "567400,567400"
+ },
+ {
+ "IdS": 208713,
+ "pX": "341001.07,341000",
+ "pY": "558912.73,558750"
+ },
+ {
+ "IdS": 208714,
+ "pX": "354350,354100",
+ "pY": "568250,568400"
+ },
+ {
+ "IdS": 208715,
+ "pX": "354100,353900",
+ "pY": "568400,568500"
+ },
+ {
+ "IdS": 208716,
+ "pX": "354100,354250",
+ "pY": "568400,568600"
+ },
+ {
+ "IdS": 208717,
+ "pX": "333500,333250",
+ "pY": "570500,570500"
+ },
+ {
+ "IdS": 208718,
+ "pX": "333500,333800",
+ "pY": "568650,568650"
+ },
+ {
+ "IdS": 208719,
+ "pX": "333500,333500",
+ "pY": "568650,568150"
+ },
+ {
+ "IdS": 208720,
+ "pX": "333500,333500",
+ "pY": "568150,567900"
+ },
+ {
+ "IdS": 208721,
+ "pX": "333500,333750",
+ "pY": "568150,568150"
+ },
+ {
+ "IdS": 208722,
+ "pX": "333900,334000,334000,334200",
+ "pY": "569350,569500,569350,569500"
+ },
+ {
+ "IdS": 208725,
+ "pX": "333250,333250",
+ "pY": "570500,569850"
+ },
+ {
+ "IdS": 208727,
+ "pX": "333250,333320",
+ "pY": "569850,569850"
+ },
+ {
+ "IdS": 208731,
+ "pX": "333500,333300",
+ "pY": "568650,568650"
+ },
+ {
+ "IdS": 208760,
+ "pX": "335550.31,335550",
+ "pY": "565949.92,565800"
+ },
+ {
+ "IdS": 208761,
+ "pX": "335400,335524.88",
+ "pY": "565200,565200.4"
+ },
+ {
+ "IdS": 208762,
+ "pX": "335400,335400",
+ "pY": "565650,565500"
+ },
+ {
+ "IdS": 208764,
+ "pX": "335400,335400.33",
+ "pY": "565500,565350.48"
+ },
+ {
+ "IdS": 208765,
+ "pX": "335400,335600",
+ "pY": "565650,565650"
+ },
+ {
+ "IdS": 208767,
+ "pX": "335400.33,335400",
+ "pY": "565350.48,565200"
+ },
+ {
+ "IdS": 208768,
+ "pX": "335400,335400,335150,335102.86",
+ "pY": "565200,564800,564800,564748.76"
+ },
+ {
+ "IdS": 208769,
+ "pX": "335550,335400",
+ "pY": "565800,565800"
+ },
+ {
+ "IdS": 208770,
+ "pX": "335400,335400",
+ "pY": "565800,565650"
+ },
+ {
+ "IdS": 208771,
+ "pX": "335102.86,335400,335150,335398.32",
+ "pY": "564748.76,564700,564700,563550.37"
+ },
+ {
+ "IdS": 208781,
+ "pX": "343975,344100",
+ "pY": "556705,556775"
+ },
+ {
+ "IdS": 208833,
+ "pX": "333395.08,333425.04,333424.93,333750",
+ "pY": "569774.88,569749.91,569600.46,569600"
+ },
+ {
+ "IdS": 208917,
+ "pX": "338000,338000",
+ "pY": "567500,567750"
+ },
+ {
+ "IdS": 208918,
+ "pX": "338000,337750",
+ "pY": "567750,567750"
+ },
+ {
+ "IdS": 208919,
+ "pX": "338000,338000",
+ "pY": "567750,567950"
+ },
+ {
+ "IdS": 208939,
+ "pX": "356500,356450",
+ "pY": "563300,563200"
+ },
+ {
+ "IdS": 208941,
+ "pX": "340100,340100",
+ "pY": "570200,569850"
+ },
+ {
+ "IdS": 208957,
+ "pX": "354929.87,354868.14",
+ "pY": "562424.98,562490.53"
+ },
+ {
+ "IdS": 208963,
+ "pX": "342200,342650",
+ "pY": "568150,567750"
+ },
+ {
+ "IdS": 208965,
+ "pX": "342650,342900",
+ "pY": "567750,567750"
+ },
+ {
+ "IdS": 208968,
+ "pX": "350300,350500,350400,350500",
+ "pY": "555800,555850,555800,555900"
+ },
+ {
+ "IdS": 208973,
+ "pX": "350870,351000",
+ "pY": "556055,556100"
+ },
+ {
+ "IdS": 208975,
+ "pX": "350300,350500",
+ "pY": "555800,555900"
+ },
+ {
+ "IdS": 208976,
+ "pX": "350500,350600",
+ "pY": "555900,555950"
+ },
+ {
+ "IdS": 208977,
+ "pX": "351000,351200,351100,351200",
+ "pY": "556100,556150,556100,556200"
+ },
+ {
+ "IdS": 208978,
+ "pX": "351000,351200",
+ "pY": "556100,556200"
+ },
+ {
+ "IdS": 208980,
+ "pX": "350600,350650",
+ "pY": "555950,555850"
+ },
+ {
+ "IdS": 208985,
+ "pX": "341400,341300",
+ "pY": "572800,572950"
+ },
+ {
+ "IdS": 208998,
+ "pX": "338774.73,338600,338550",
+ "pY": "581575.28,581750,581750"
+ },
+ {
+ "IdS": 209000,
+ "pX": "338550,338700,338550,338725.31",
+ "pY": "581750,581550,581700,581524.71"
+ },
+ {
+ "IdS": 209007,
+ "pX": "335750,335600",
+ "pY": "570200,570200"
+ },
+ {
+ "IdS": 209012,
+ "pX": "345605.45,345915",
+ "pY": "584122.83,584870"
+ },
+ {
+ "IdS": 209015,
+ "pX": "346755,347300",
+ "pY": "586895,588200"
+ },
+ {
+ "IdS": 209048,
+ "pX": "336515,336515,336650",
+ "pY": "571250,571195,571100"
+ },
+ {
+ "IdS": 209049,
+ "pX": "336650,336650",
+ "pY": "571100,571025"
+ },
+ {
+ "IdS": 209050,
+ "pX": "336650,336575",
+ "pY": "571100,571100"
+ },
+ {
+ "IdS": 209051,
+ "pX": "336650.03,336650",
+ "pY": "571014.95,570950"
+ },
+ {
+ "IdS": 209052,
+ "pX": "336650,336575",
+ "pY": "571025,571025"
+ },
+ {
+ "IdS": 209075,
+ "pX": "335650,335580,335640,335570",
+ "pY": "571200,571195,571195,571200"
+ },
+ {
+ "IdS": 209086,
+ "pX": "337356.18,337514.94",
+ "pY": "562710.11,562479.97"
+ },
+ {
+ "IdS": 209087,
+ "pX": "337356.18,337525",
+ "pY": "562710.11,562820"
+ },
+ {
+ "IdS": 209122,
+ "pX": "336400,336775.15,336849.97",
+ "pY": "563900,563349.64,563339.95"
+ },
+ {
+ "IdS": 209124,
+ "pX": "336849.97,336940.39",
+ "pY": "563339.95,563400.39"
+ },
+ {
+ "IdS": 209125,
+ "pX": "343450,346334.69",
+ "pY": "556500,554432.16"
+ },
+ {
+ "IdS": 209133,
+ "pX": "353600,353700",
+ "pY": "557350,557400"
+ },
+ {
+ "IdS": 209134,
+ "pX": "353600,353500",
+ "pY": "557350,557500"
+ },
+ {
+ "IdS": 209136,
+ "pX": "353700,353800",
+ "pY": "557400,557250"
+ },
+ {
+ "IdS": 209137,
+ "pX": "353900,354100",
+ "pY": "557500,557600"
+ },
+ {
+ "IdS": 209138,
+ "pX": "353900,353800",
+ "pY": "557500,557700"
+ },
+ {
+ "IdS": 209169,
+ "pX": "354100,353850",
+ "pY": "557600,558100"
+ },
+ {
+ "IdS": 209171,
+ "pX": "353850,353550",
+ "pY": "558100,558100"
+ },
+ {
+ "IdS": 209188,
+ "pX": "335150,335150",
+ "pY": "567200,567100"
+ },
+ {
+ "IdS": 209192,
+ "pX": "335300,335450",
+ "pY": "566615,566615"
+ },
+ {
+ "IdS": 209194,
+ "pX": "335550,335750",
+ "pY": "566250,566250"
+ },
+ {
+ "IdS": 209197,
+ "pX": "334450,334300",
+ "pY": "567850,567850"
+ },
+ {
+ "IdS": 209202,
+ "pX": "335550,335750",
+ "pY": "566450,566450"
+ },
+ {
+ "IdS": 209227,
+ "pX": "334750,334549",
+ "pY": "567550,567550.5"
+ },
+ {
+ "IdS": 209235,
+ "pX": "334600,334500",
+ "pY": "567300,567300"
+ },
+ {
+ "IdS": 209236,
+ "pX": "334600,335137.21,335136.83",
+ "pY": "567100,567100.02,567099.94"
+ },
+ {
+ "IdS": 209237,
+ "pX": "334600,334500",
+ "pY": "567100,567100"
+ },
+ {
+ "IdS": 209238,
+ "pX": "340150,339550,339550",
+ "pY": "571750,571750,571550"
+ },
+ {
+ "IdS": 209270,
+ "pX": "336100,336100",
+ "pY": "565900,566050"
+ },
+ {
+ "IdS": 209271,
+ "pX": "336100,336200",
+ "pY": "565600,565600"
+ },
+ {
+ "IdS": 209276,
+ "pX": "334950,335250",
+ "pY": "566150,566150"
+ },
+ {
+ "IdS": 209287,
+ "pX": "334950,334950",
+ "pY": "566150,565950"
+ },
+ {
+ "IdS": 209294,
+ "pX": "335400,335250",
+ "pY": "566000,566000"
+ },
+ {
+ "IdS": 209298,
+ "pX": "334950,334950",
+ "pY": "565950,565800"
+ },
+ {
+ "IdS": 209300,
+ "pX": "334950,334800",
+ "pY": "565950,565950"
+ },
+ {
+ "IdS": 209302,
+ "pX": "335250,335250",
+ "pY": "566150,566250"
+ },
+ {
+ "IdS": 209320,
+ "pX": "337850,338000",
+ "pY": "571400,571400"
+ },
+ {
+ "IdS": 209321,
+ "pX": "337850,337950,337900,338000",
+ "pY": "571400,571450,571450,571400"
+ },
+ {
+ "IdS": 209322,
+ "pX": "337700,337750,337800,337850",
+ "pY": "571400,571450,571450,571400"
+ },
+ {
+ "IdS": 209323,
+ "pX": "338000,338050,338150",
+ "pY": "571400,571400,571450"
+ },
+ {
+ "IdS": 209333,
+ "pX": "338050,338050,338150",
+ "pY": "571550,571450,571450"
+ },
+ {
+ "IdS": 209335,
+ "pX": "338050,338150",
+ "pY": "571550,571550"
+ },
+ {
+ "IdS": 209356,
+ "pX": "343755,343600",
+ "pY": "574995,575300"
+ },
+ {
+ "IdS": 209366,
+ "pX": "336515,336515",
+ "pY": "579410,579105"
+ },
+ {
+ "IdS": 209367,
+ "pX": "336515,336205",
+ "pY": "579410,579410"
+ },
+ {
+ "IdS": 209369,
+ "pX": "336515,336760",
+ "pY": "579555,579555"
+ },
+ {
+ "IdS": 209429,
+ "pX": "347100,346500.12",
+ "pY": "555150,555000"
+ },
+ {
+ "IdS": 209514,
+ "pX": "337311.21,338489.45",
+ "pY": "563010.22,561524.04"
+ },
+ {
+ "IdS": 209522,
+ "pX": "333750,333750",
+ "pY": "567550,567800"
+ },
+ {
+ "IdS": 209529,
+ "pX": "354400,354900,354900",
+ "pY": "580650,580650,580950"
+ },
+ {
+ "IdS": 209531,
+ "pX": "347550,347300",
+ "pY": "588800,588800"
+ },
+ {
+ "IdS": 209533,
+ "pX": "347300,347299.88",
+ "pY": "588800,588579.39"
+ },
+ {
+ "IdS": 209534,
+ "pX": "347300,347300",
+ "pY": "588800,589000"
+ },
+ {
+ "IdS": 209536,
+ "pX": "336515,336515",
+ "pY": "572200,572400"
+ },
+ {
+ "IdS": 209537,
+ "pX": "336515,336650",
+ "pY": "572200,572200"
+ },
+ {
+ "IdS": 209538,
+ "pX": "336515,336515",
+ "pY": "571250,571500"
+ },
+ {
+ "IdS": 209539,
+ "pX": "336465,336350",
+ "pY": "571650,571650"
+ },
+ {
+ "IdS": 209541,
+ "pX": "336515,336350",
+ "pY": "571500,571500"
+ },
+ {
+ "IdS": 209543,
+ "pX": "336515,336300",
+ "pY": "571800,571800"
+ },
+ {
+ "IdS": 209544,
+ "pX": "336515,336300",
+ "pY": "572050,572050"
+ },
+ {
+ "IdS": 209545,
+ "pX": "336515,336515",
+ "pY": "572050,572200"
+ },
+ {
+ "IdS": 209563,
+ "pX": "337400,337550",
+ "pY": "572000,571900"
+ },
+ {
+ "IdS": 209571,
+ "pX": "337950,337950",
+ "pY": "571650,571775"
+ },
+ {
+ "IdS": 209574,
+ "pX": "336620,336525",
+ "pY": "583455,583070"
+ },
+ {
+ "IdS": 209678,
+ "pX": "336900,336900.15",
+ "pY": "564900,565275.02"
+ },
+ {
+ "IdS": 209679,
+ "pX": "336900,337050",
+ "pY": "564900,564900"
+ },
+ {
+ "IdS": 209700,
+ "pX": "354700,354450",
+ "pY": "580200,580200"
+ },
+ {
+ "IdS": 209701,
+ "pX": "354699.99,354700",
+ "pY": "580839.8,580200"
+ },
+ {
+ "IdS": 209702,
+ "pX": "354700,354900",
+ "pY": "580850,580950"
+ },
+ {
+ "IdS": 209703,
+ "pX": "354700,354700",
+ "pY": "580200,579750"
+ },
+ {
+ "IdS": 209746,
+ "pX": "347300,347655",
+ "pY": "588200,588035"
+ },
+ {
+ "IdS": 209747,
+ "pX": "347655,347655",
+ "pY": "588035,588275"
+ },
+ {
+ "IdS": 209748,
+ "pX": "347655,347765.57",
+ "pY": "588035,587774.39"
+ },
+ {
+ "IdS": 209756,
+ "pX": "341719.87,341800",
+ "pY": "527850.05,527850"
+ },
+ {
+ "IdS": 209786,
+ "pX": "369520,369345",
+ "pY": "542480,542480"
+ },
+ {
+ "IdS": 209817,
+ "pX": "338150,338150",
+ "pY": "570730,570200"
+ },
+ {
+ "IdS": 209818,
+ "pX": "338150,338300",
+ "pY": "570745,570745"
+ },
+ {
+ "IdS": 209819,
+ "pX": "355850,355850",
+ "pY": "580650,580400"
+ },
+ {
+ "IdS": 209826,
+ "pX": "335750,335750",
+ "pY": "566950,566750"
+ },
+ {
+ "IdS": 209833,
+ "pX": "335750,335480,335700,335450.04",
+ "pY": "566750,566700,566700,566750.02"
+ },
+ {
+ "IdS": 209834,
+ "pX": "335750,335750",
+ "pY": "566750,566600"
+ },
+ {
+ "IdS": 209855,
+ "pX": "345642.27,345791.09",
+ "pY": "566557.74,566424.12"
+ },
+ {
+ "IdS": 209863,
+ "pX": "346832.79,346981.61",
+ "pY": "565488.78,565355.16"
+ },
+ {
+ "IdS": 209865,
+ "pX": "345791.09,345929.73",
+ "pY": "566424.12,566562.9"
+ },
+ {
+ "IdS": 209867,
+ "pX": "346981.61,346814.94",
+ "pY": "565355.16,565187.37"
+ },
+ {
+ "IdS": 209891,
+ "pX": "331340,331195",
+ "pY": "562220,562110"
+ },
+ {
+ "IdS": 209904,
+ "pX": "373700,374000",
+ "pY": "536600,536750"
+ },
+ {
+ "IdS": 209927,
+ "pX": "338090,338100",
+ "pY": "591950,591990"
+ },
+ {
+ "IdS": 209928,
+ "pX": "338090,338285",
+ "pY": "591950,591900"
+ },
+ {
+ "IdS": 209930,
+ "pX": "338285,338330",
+ "pY": "591900,592095"
+ },
+ {
+ "IdS": 209933,
+ "pX": "345745,345990",
+ "pY": "560560,560370"
+ },
+ {
+ "IdS": 209935,
+ "pX": "345990,346360",
+ "pY": "560370,560845"
+ },
+ {
+ "IdS": 209936,
+ "pX": "346360,346525",
+ "pY": "560845,560725"
+ },
+ {
+ "IdS": 209937,
+ "pX": "346360,346495",
+ "pY": "560845,561025"
+ },
+ {
+ "IdS": 209940,
+ "pX": "366350,366300",
+ "pY": "548600,548450"
+ },
+ {
+ "IdS": 209941,
+ "pX": "366300,366100",
+ "pY": "548450,547950"
+ },
+ {
+ "IdS": 209942,
+ "pX": "366300,366280,366280",
+ "pY": "548450,548450,548650"
+ },
+ {
+ "IdS": 209943,
+ "pX": "366100,366000",
+ "pY": "547950,547700"
+ },
+ {
+ "IdS": 209944,
+ "pX": "366100,366300",
+ "pY": "547950,547900"
+ },
+ {
+ "IdS": 209954,
+ "pX": "355250,355050",
+ "pY": "563700,563550"
+ },
+ {
+ "IdS": 209969,
+ "pX": "332978.8,333129.27",
+ "pY": "559996.46,560079.67"
+ },
+ {
+ "IdS": 210019,
+ "pX": "365350,365700",
+ "pY": "537650,537650"
+ },
+ {
+ "IdS": 210021,
+ "pX": "340420,340260",
+ "pY": "565320,565160"
+ },
+ {
+ "IdS": 210027,
+ "pX": "340420,340545.34",
+ "pY": "565320,565209.99"
+ },
+ {
+ "IdS": 210051,
+ "pX": "339583.53,339450",
+ "pY": "566038.34,565850"
+ },
+ {
+ "IdS": 210067,
+ "pX": "336255.03,336400",
+ "pY": "570710,570750"
+ },
+ {
+ "IdS": 210108,
+ "pX": "356400,356205",
+ "pY": "553500,553410"
+ },
+ {
+ "IdS": 210113,
+ "pX": "356250,356350",
+ "pY": "553850,553900"
+ },
+ {
+ "IdS": 210116,
+ "pX": "347300,347795",
+ "pY": "560605,561700"
+ },
+ {
+ "IdS": 210117,
+ "pX": "347795,347775,347815,347880",
+ "pY": "561700,561765,561855,561880"
+ },
+ {
+ "IdS": 210120,
+ "pX": "348215,348320",
+ "pY": "562605,562845"
+ },
+ {
+ "IdS": 210121,
+ "pX": "348215,348030",
+ "pY": "562605,562690"
+ },
+ {
+ "IdS": 210122,
+ "pX": "348030,347875,347965,347850",
+ "pY": "562690,562705,562665,562775"
+ },
+ {
+ "IdS": 210123,
+ "pX": "348030,348000,347915,347850",
+ "pY": "562690,562760,562795,562775"
+ },
+ {
+ "IdS": 210124,
+ "pX": "347795,347905,347860,347880",
+ "pY": "561700,561815,561720,561880"
+ },
+ {
+ "IdS": 210125,
+ "pX": "347880,347965",
+ "pY": "561880,562060"
+ },
+ {
+ "IdS": 210126,
+ "pX": "347965,348045",
+ "pY": "562060,562240"
+ },
+ {
+ "IdS": 210127,
+ "pX": "347965,347780",
+ "pY": "562060,562145"
+ },
+ {
+ "IdS": 210128,
+ "pX": "347780,347625,347715,347605",
+ "pY": "562145,562160,562120,562230"
+ },
+ {
+ "IdS": 210129,
+ "pX": "347780,347755,347670,347605",
+ "pY": "562145,562210,562245,562230"
+ },
+ {
+ "IdS": 210131,
+ "pX": "348045,347865",
+ "pY": "562240,562320"
+ },
+ {
+ "IdS": 210135,
+ "pX": "352935,353100",
+ "pY": "580470,580460"
+ },
+ {
+ "IdS": 210136,
+ "pX": "352935,352935",
+ "pY": "580470,580815"
+ },
+ {
+ "IdS": 210137,
+ "pX": "352935,352840",
+ "pY": "580815,580815"
+ },
+ {
+ "IdS": 210138,
+ "pX": "352935,352935",
+ "pY": "580815,580965"
+ },
+ {
+ "IdS": 210139,
+ "pX": "352485,352935,352935",
+ "pY": "580055,580115,580470"
+ },
+ {
+ "IdS": 210140,
+ "pX": "352485,352485",
+ "pY": "580055,579955"
+ },
+ {
+ "IdS": 210145,
+ "pX": "353100,353350",
+ "pY": "580460,580500"
+ },
+ {
+ "IdS": 210169,
+ "pX": "334050,334300",
+ "pY": "567150,567150"
+ },
+ {
+ "IdS": 210177,
+ "pX": "339950,340100",
+ "pY": "570050,569850"
+ },
+ {
+ "IdS": 210178,
+ "pX": "339950,339850.09",
+ "pY": "570050,570049.86"
+ },
+ {
+ "IdS": 210179,
+ "pX": "339350,339950",
+ "pY": "570900,570050"
+ },
+ {
+ "IdS": 210181,
+ "pX": "336950,336950",
+ "pY": "569950,569800"
+ },
+ {
+ "IdS": 210182,
+ "pX": "336950,337150",
+ "pY": "569950,569950"
+ },
+ {
+ "IdS": 210184,
+ "pX": "336950,336950",
+ "pY": "570200,570100"
+ },
+ {
+ "IdS": 210185,
+ "pX": "336950,336950",
+ "pY": "570100,569950"
+ },
+ {
+ "IdS": 210186,
+ "pX": "336950,337150",
+ "pY": "570100,570100"
+ },
+ {
+ "IdS": 210187,
+ "pX": "336950,337150",
+ "pY": "570200,570200"
+ },
+ {
+ "IdS": 210193,
+ "pX": "335450,335700",
+ "pY": "567950,567950"
+ },
+ {
+ "IdS": 210195,
+ "pX": "335750,336050",
+ "pY": "567450,567450"
+ },
+ {
+ "IdS": 212846,
+ "pX": "346550,346750",
+ "pY": "548800,548800"
+ },
+ {
+ "IdS": 212847,
+ "pX": "345095,344925,344740",
+ "pY": "543085,542990,543350"
+ },
+ {
+ "IdS": 212848,
+ "pX": "344740,344560",
+ "pY": "543350,543255"
+ },
+ {
+ "IdS": 212849,
+ "pX": "344740,344645",
+ "pY": "543350,543525"
+ },
+ {
+ "IdS": 212852,
+ "pX": "376600,376485",
+ "pY": "543950,543750"
+ },
+ {
+ "IdS": 212856,
+ "pX": "346750,346750",
+ "pY": "543700,543500"
+ },
+ {
+ "IdS": 212872,
+ "pX": "344600,344600",
+ "pY": "552950,553150"
+ },
+ {
+ "IdS": 212873,
+ "pX": "344600,344990",
+ "pY": "553150,553150"
+ },
+ {
+ "IdS": 212874,
+ "pX": "344600,344600",
+ "pY": "553150,553700"
+ },
+ {
+ "IdS": 212875,
+ "pX": "344600,344600",
+ "pY": "553700,554300"
+ },
+ {
+ "IdS": 212878,
+ "pX": "339850,340200",
+ "pY": "575650,575650"
+ },
+ {
+ "IdS": 212903,
+ "pX": "335600,335450,335450",
+ "pY": "570950,571000,571345"
+ },
+ {
+ "IdS": 212955,
+ "pX": "339350,339435.42",
+ "pY": "570900,570952"
+ },
+ {
+ "IdS": 212956,
+ "pX": "338200,338350",
+ "pY": "579950,580200"
+ },
+ {
+ "IdS": 212957,
+ "pX": "338100,338350",
+ "pY": "580350,580200"
+ },
+ {
+ "IdS": 212976,
+ "pX": "339141.99,339250",
+ "pY": "571254.06,571050"
+ },
+ {
+ "IdS": 212977,
+ "pX": "339250,339350",
+ "pY": "571050,570900"
+ },
+ {
+ "IdS": 213110,
+ "pX": "343060,343060",
+ "pY": "572750,572450"
+ },
+ {
+ "IdS": 213148,
+ "pX": "343060,343300",
+ "pY": "572750,572750"
+ },
+ {
+ "IdS": 213252,
+ "pX": "338585,338130",
+ "pY": "545460,545780"
+ },
+ {
+ "IdS": 213259,
+ "pX": "339300,338585",
+ "pY": "546525,545460"
+ },
+ {
+ "IdS": 213263,
+ "pX": "345000,345000",
+ "pY": "550150,550300"
+ },
+ {
+ "IdS": 213264,
+ "pX": "345000,345000",
+ "pY": "550300,550450"
+ },
+ {
+ "IdS": 213270,
+ "pX": "345000,344993.96,344800",
+ "pY": "550300,550295.89,550150"
+ },
+ {
+ "IdS": 213275,
+ "pX": "336164.97,336700",
+ "pY": "591354.9,592050"
+ },
+ {
+ "IdS": 213278,
+ "pX": "338000,339600",
+ "pY": "592400,592400"
+ },
+ {
+ "IdS": 213279,
+ "pX": "339600,341160",
+ "pY": "592400,592400"
+ },
+ {
+ "IdS": 213280,
+ "pX": "341160,342200",
+ "pY": "592400,592400"
+ },
+ {
+ "IdS": 213281,
+ "pX": "342200,342200",
+ "pY": "592400,592240"
+ },
+ {
+ "IdS": 213282,
+ "pX": "342200,342700.05",
+ "pY": "592400,592400.05"
+ },
+ {
+ "IdS": 213299,
+ "pX": "340450,341100",
+ "pY": "594150,593650"
+ },
+ {
+ "IdS": 213300,
+ "pX": "341100,341900",
+ "pY": "593650,593050"
+ },
+ {
+ "IdS": 213301,
+ "pX": "341900,342700.05",
+ "pY": "593050,592400.05"
+ },
+ {
+ "IdS": 213302,
+ "pX": "355759.96,356069.71",
+ "pY": "562850.15,562849.96"
+ },
+ {
+ "IdS": 213303,
+ "pX": "339720,339605,339695,339550",
+ "pY": "547295,547190,547230,547200"
+ },
+ {
+ "IdS": 213304,
+ "pX": "339720,339565,339655,339550",
+ "pY": "547295,547280,547320,547200"
+ },
+ {
+ "IdS": 213305,
+ "pX": "346100,346050,345865,345800",
+ "pY": "554450,554500,554500,554450"
+ },
+ {
+ "IdS": 213310,
+ "pX": "375300,375550",
+ "pY": "531200,531200"
+ },
+ {
+ "IdS": 213318,
+ "pX": "356800,355895",
+ "pY": "566700,567255"
+ },
+ {
+ "IdS": 213319,
+ "pX": "355895,355750",
+ "pY": "567255,567350"
+ },
+ {
+ "IdS": 213324,
+ "pX": "333250,333250,333500",
+ "pY": "569850,569250,569250"
+ },
+ {
+ "IdS": 213325,
+ "pX": "333500,333500",
+ "pY": "569250,568650"
+ },
+ {
+ "IdS": 213334,
+ "pX": "335700,335850",
+ "pY": "570950,570950"
+ },
+ {
+ "IdS": 213336,
+ "pX": "335850,335850",
+ "pY": "570950,571050"
+ },
+ {
+ "IdS": 213364,
+ "pX": "346525,346700",
+ "pY": "576195,576285"
+ },
+ {
+ "IdS": 213365,
+ "pX": "346700,346970",
+ "pY": "576285,576425"
+ },
+ {
+ "IdS": 213429,
+ "pX": "354900,355150",
+ "pY": "580950,580850"
+ },
+ {
+ "IdS": 213430,
+ "pX": "355150,355850",
+ "pY": "580850,580650"
+ },
+ {
+ "IdS": 213431,
+ "pX": "355150,355150",
+ "pY": "580850,580650"
+ },
+ {
+ "IdS": 213432,
+ "pX": "355150,355150",
+ "pY": "580650,580450"
+ },
+ {
+ "IdS": 213434,
+ "pX": "355150,355000,355000,355150",
+ "pY": "580650,580450,580650,580450"
+ },
+ {
+ "IdS": 213517,
+ "pX": "331700,331650,331400,331350",
+ "pY": "572200,572150,572150,572200"
+ },
+ {
+ "IdS": 213531,
+ "pX": "370350,370350,370580",
+ "pY": "550300,550240,550240"
+ },
+ {
+ "IdS": 213536,
+ "pX": "361500,361500",
+ "pY": "550700,550600"
+ },
+ {
+ "IdS": 213561,
+ "pX": "374150,374300",
+ "pY": "545350,545550"
+ },
+ {
+ "IdS": 213566,
+ "pX": "345000,345000",
+ "pY": "549000,549200"
+ },
+ {
+ "IdS": 213568,
+ "pX": "345000,345250",
+ "pY": "549200,549200"
+ },
+ {
+ "IdS": 213575,
+ "pX": "355800,356200",
+ "pY": "552550,552550"
+ },
+ {
+ "IdS": 213577,
+ "pX": "355800,355800",
+ "pY": "552550,552000"
+ },
+ {
+ "IdS": 213578,
+ "pX": "356200,356200",
+ "pY": "552550,552100"
+ },
+ {
+ "IdS": 213585,
+ "pX": "339550,338700.02,339464.83,338650",
+ "pY": "547200,547145.2,547145.07,547200"
+ },
+ {
+ "IdS": 213587,
+ "pX": "338650,338815.2",
+ "pY": "547200,547300.08"
+ },
+ {
+ "IdS": 213588,
+ "pX": "338650,338350",
+ "pY": "547700,547700"
+ },
+ {
+ "IdS": 213589,
+ "pX": "338650,339300",
+ "pY": "547700,547700"
+ },
+ {
+ "IdS": 213591,
+ "pX": "338350,338350",
+ "pY": "547700,547800"
+ },
+ {
+ "IdS": 213592,
+ "pX": "337050,337050",
+ "pY": "547700,547600"
+ },
+ {
+ "IdS": 213593,
+ "pX": "337050,335550",
+ "pY": "547700,547700"
+ },
+ {
+ "IdS": 213595,
+ "pX": "335550,335550",
+ "pY": "547700,547600"
+ },
+ {
+ "IdS": 213596,
+ "pX": "334150,334250",
+ "pY": "547700,547600"
+ },
+ {
+ "IdS": 213597,
+ "pX": "334150,334050",
+ "pY": "547700,547600"
+ },
+ {
+ "IdS": 213600,
+ "pX": "333150,333250",
+ "pY": "547700,547600"
+ },
+ {
+ "IdS": 213602,
+ "pX": "332050,331050",
+ "pY": "547700,547700"
+ },
+ {
+ "IdS": 213603,
+ "pX": "332050,332050",
+ "pY": "547700,547600"
+ },
+ {
+ "IdS": 213604,
+ "pX": "331050,330850",
+ "pY": "547700,547700"
+ },
+ {
+ "IdS": 213605,
+ "pX": "331050,330849.38",
+ "pY": "547700,547650.81"
+ },
+ {
+ "IdS": 213675,
+ "pX": "333150,333150",
+ "pY": "547700,547585"
+ },
+ {
+ "IdS": 213888,
+ "pX": "355250,355799.91,355799.64",
+ "pY": "562700,562700.19,562885.35"
+ },
+ {
+ "IdS": 213892,
+ "pX": "366450,366450",
+ "pY": "548850,549100"
+ },
+ {
+ "IdS": 213984,
+ "pX": "339550,339650",
+ "pY": "571200,571200"
+ },
+ {
+ "IdS": 213985,
+ "pX": "339650,339650",
+ "pY": "571200,571100"
+ },
+ {
+ "IdS": 213986,
+ "pX": "339650,339550",
+ "pY": "571100,571100"
+ },
+ {
+ "IdS": 214000,
+ "pX": "331700,331650,331400,331350",
+ "pY": "572200,572250,572250,572200"
+ },
+ {
+ "IdS": 214067,
+ "pX": "337500,337500",
+ "pY": "571000,571100"
+ },
+ {
+ "IdS": 214068,
+ "pX": "337450,337500",
+ "pY": "571150,571100"
+ },
+ {
+ "IdS": 214069,
+ "pX": "355160.59,354719.13",
+ "pY": "597927.52,596811.67"
+ },
+ {
+ "IdS": 214070,
+ "pX": "354719.13,354599.17",
+ "pY": "596811.67,596508.44"
+ },
+ {
+ "IdS": 214071,
+ "pX": "378957.24,378775.6",
+ "pY": "534640.82,534557.11"
+ },
+ {
+ "IdS": 214072,
+ "pX": "378775.6,378860.42",
+ "pY": "534557.11,534375.99"
+ },
+ {
+ "IdS": 214073,
+ "pX": "378775.6,378503.15",
+ "pY": "534557.11,534431.53"
+ },
+ {
+ "IdS": 214074,
+ "pX": "378503.15,378139.88",
+ "pY": "534431.53,534264.09"
+ },
+ {
+ "IdS": 214075,
+ "pX": "378503.15,378432.4,378432.17",
+ "pY": "534431.53,534465.12,534556.17"
+ },
+ {
+ "IdS": 214076,
+ "pX": "378503.15,378520.19,378519.7,378503.33",
+ "pY": "534431.53,534540.71,534465.85,534556.06"
+ },
+ {
+ "IdS": 214077,
+ "pX": "378503.15,378484.83,378485.32,378503.33",
+ "pY": "534431.53,534540.23,534466.09,534556.06"
+ },
+ {
+ "IdS": 214078,
+ "pX": "378139.88,377776.6",
+ "pY": "534264.09,534096.67"
+ },
+ {
+ "IdS": 214079,
+ "pX": "378139.88,378223.59",
+ "pY": "534264.09,534082.47"
+ },
+ {
+ "IdS": 214080,
+ "pX": "377776.6,377504.15",
+ "pY": "534096.67,533971.09"
+ },
+ {
+ "IdS": 214081,
+ "pX": "377776.6,377860.32",
+ "pY": "534096.67,533915.03"
+ },
+ {
+ "IdS": 214083,
+ "pX": "377504.15,377420.44",
+ "pY": "533971.09,534152.73"
+ },
+ {
+ "IdS": 214242,
+ "pX": "345330,345445",
+ "pY": "551050,550855"
+ },
+ {
+ "IdS": 214247,
+ "pX": "349300,349300",
+ "pY": "553050,553800"
+ },
+ {
+ "IdS": 214248,
+ "pX": "349300,349300",
+ "pY": "553800,554300"
+ },
+ {
+ "IdS": 214265,
+ "pX": "356250,356115",
+ "pY": "553850,553785"
+ },
+ {
+ "IdS": 214316,
+ "pX": "334800,334800",
+ "pY": "570200,570550"
+ },
+ {
+ "IdS": 214320,
+ "pX": "334800,334800",
+ "pY": "570200,569600"
+ },
+ {
+ "IdS": 214332,
+ "pX": "334200,334700,334800",
+ "pY": "569200,569200,569600"
+ },
+ {
+ "IdS": 214340,
+ "pX": "335600,335700",
+ "pY": "570950,570950"
+ },
+ {
+ "IdS": 214342,
+ "pX": "336000,336000",
+ "pY": "570950,571050"
+ },
+ {
+ "IdS": 214343,
+ "pX": "336000,336100",
+ "pY": "571050,571050"
+ },
+ {
+ "IdS": 214347,
+ "pX": "336539.58,336309.82,336310.15",
+ "pY": "570879.56,571081.16,571195.13"
+ },
+ {
+ "IdS": 214350,
+ "pX": "336350,336399.99",
+ "pY": "571250,571249.99"
+ },
+ {
+ "IdS": 214352,
+ "pX": "336700,336699.88",
+ "pY": "571250,571350"
+ },
+ {
+ "IdS": 214356,
+ "pX": "337100,337150,337280",
+ "pY": "571350,571350,571385"
+ },
+ {
+ "IdS": 214363,
+ "pX": "338400,338600",
+ "pY": "571450,571650"
+ },
+ {
+ "IdS": 214365,
+ "pX": "338600,339000",
+ "pY": "571650,571650"
+ },
+ {
+ "IdS": 214368,
+ "pX": "339100,339000",
+ "pY": "571350,571650"
+ },
+ {
+ "IdS": 214369,
+ "pX": "339141.99,339103.68",
+ "pY": "571254.06,571340.95"
+ },
+ {
+ "IdS": 214376,
+ "pX": "338670,338580",
+ "pY": "591810,591420"
+ },
+ {
+ "IdS": 214379,
+ "pX": "337505.07,338090",
+ "pY": "592094.94,591950"
+ },
+ {
+ "IdS": 214381,
+ "pX": "336900,337505.07",
+ "pY": "592250,592094.94"
+ },
+ {
+ "IdS": 214393,
+ "pX": "338195,338055",
+ "pY": "589865,589285"
+ },
+ {
+ "IdS": 214405,
+ "pX": "336525,336475",
+ "pY": "583070,582875"
+ },
+ {
+ "IdS": 214420,
+ "pX": "336515,336515",
+ "pY": "579820,579555"
+ },
+ {
+ "IdS": 214424,
+ "pX": "336730.02,336330.07,336100",
+ "pY": "578500.31,578419.62,578300"
+ },
+ {
+ "IdS": 214425,
+ "pX": "337950,338100,338150",
+ "pY": "571650,571650,571450"
+ },
+ {
+ "IdS": 214427,
+ "pX": "337550,337950",
+ "pY": "571900,571650"
+ },
+ {
+ "IdS": 214429,
+ "pX": "336850,337400",
+ "pY": "572350,572000"
+ },
+ {
+ "IdS": 214431,
+ "pX": "336550,336850",
+ "pY": "572550,572350"
+ },
+ {
+ "IdS": 214444,
+ "pX": "337200,337200",
+ "pY": "577650,577000"
+ },
+ {
+ "IdS": 214447,
+ "pX": "337200,337200",
+ "pY": "579000,578750"
+ },
+ {
+ "IdS": 214449,
+ "pX": "337200,337200",
+ "pY": "580050,579300"
+ },
+ {
+ "IdS": 214472,
+ "pX": "336834.2,337056.98,337200",
+ "pY": "577783.2,577107.04,577000"
+ },
+ {
+ "IdS": 214475,
+ "pX": "336100,336669.89,336704.26,336584.84,336834.2",
+ "pY": "578300,578404.58,578482.31,578425.06,577783.2"
+ },
+ {
+ "IdS": 214493,
+ "pX": "346250,346525",
+ "pY": "576050,576195"
+ },
+ {
+ "IdS": 214494,
+ "pX": "346970,347150",
+ "pY": "576425,576515"
+ },
+ {
+ "IdS": 214497,
+ "pX": "347150,347505",
+ "pY": "576515,576695"
+ },
+ {
+ "IdS": 214504,
+ "pX": "347505,348570",
+ "pY": "576695,577235"
+ },
+ {
+ "IdS": 214505,
+ "pX": "345585,345955,346250",
+ "pY": "575945,576140,576050"
+ },
+ {
+ "IdS": 214506,
+ "pX": "344990,345585",
+ "pY": "575640,575945"
+ },
+ {
+ "IdS": 214515,
+ "pX": "343195,343755",
+ "pY": "574705,574995"
+ },
+ {
+ "IdS": 214516,
+ "pX": "342740,343195",
+ "pY": "574470,574705"
+ },
+ {
+ "IdS": 214517,
+ "pX": "342345,342740",
+ "pY": "574260,574470"
+ },
+ {
+ "IdS": 214520,
+ "pX": "341550,342345",
+ "pY": "573850,574260"
+ },
+ {
+ "IdS": 214538,
+ "pX": "348840,350445",
+ "pY": "577375,578190"
+ },
+ {
+ "IdS": 214544,
+ "pX": "350445,350930",
+ "pY": "578190,579840"
+ },
+ {
+ "IdS": 214545,
+ "pX": "350930,350930",
+ "pY": "579990,579840"
+ },
+ {
+ "IdS": 214550,
+ "pX": "352045,351000,351000,350930",
+ "pY": "580300,580145,579990,579990"
+ },
+ {
+ "IdS": 214554,
+ "pX": "353100,352045",
+ "pY": "580460,580300"
+ },
+ {
+ "IdS": 214556,
+ "pX": "353300,353100.04,353100",
+ "pY": "580700,580700.12,580460"
+ },
+ {
+ "IdS": 214588,
+ "pX": "344450,343900",
+ "pY": "578950,579400"
+ },
+ {
+ "IdS": 214589,
+ "pX": "346662.55,346300",
+ "pY": "581223.83,580980"
+ },
+ {
+ "IdS": 214596,
+ "pX": "347950,347650",
+ "pY": "581800,581700"
+ },
+ {
+ "IdS": 214598,
+ "pX": "339000,339000",
+ "pY": "572185,571650"
+ },
+ {
+ "IdS": 214600,
+ "pX": "339470,339000",
+ "pY": "572660,572185"
+ },
+ {
+ "IdS": 214609,
+ "pX": "336400,336400,337000",
+ "pY": "570100,569750,569745"
+ },
+ {
+ "IdS": 214611,
+ "pX": "336170,336170,335750",
+ "pY": "570245,570200,570200"
+ },
+ {
+ "IdS": 214615,
+ "pX": "335450,335450",
+ "pY": "570200,568700"
+ },
+ {
+ "IdS": 214616,
+ "pX": "335450,335450",
+ "pY": "568700,568200"
+ },
+ {
+ "IdS": 214617,
+ "pX": "335450,335450",
+ "pY": "568200,567950"
+ },
+ {
+ "IdS": 214618,
+ "pX": "335450,335750",
+ "pY": "567950,567450"
+ },
+ {
+ "IdS": 214619,
+ "pX": "335750,335750",
+ "pY": "567450,567150"
+ },
+ {
+ "IdS": 214620,
+ "pX": "335750,336100",
+ "pY": "566950,566950"
+ },
+ {
+ "IdS": 214622,
+ "pX": "336400,336400",
+ "pY": "566950,566200"
+ },
+ {
+ "IdS": 214625,
+ "pX": "336400,336400",
+ "pY": "566000,565300"
+ },
+ {
+ "IdS": 214628,
+ "pX": "336400,336245.22,336250,336400",
+ "pY": "565300,565299.89,563950,563900"
+ },
+ {
+ "IdS": 214630,
+ "pX": "336255.03,335650,336200,335600",
+ "pY": "570710,570850,570850,570950"
+ },
+ {
+ "IdS": 214638,
+ "pX": "334800,334950,335100",
+ "pY": "569600,569400,569400"
+ },
+ {
+ "IdS": 214641,
+ "pX": "336050,335350",
+ "pY": "569400,569400"
+ },
+ {
+ "IdS": 214647,
+ "pX": "335250.12,334900,334800",
+ "pY": "569700.09,569700,569600"
+ },
+ {
+ "IdS": 214648,
+ "pX": "335500,335250.12",
+ "pY": "569700,569700.09"
+ },
+ {
+ "IdS": 214649,
+ "pX": "335600,335600",
+ "pY": "569950,569700"
+ },
+ {
+ "IdS": 214650,
+ "pX": "335600,335600",
+ "pY": "570200,569950"
+ },
+ {
+ "IdS": 214652,
+ "pX": "335600,335450,335536.36,335448.71,335450",
+ "pY": "570950,570750,570750.01,570436.81,570200"
+ },
+ {
+ "IdS": 214656,
+ "pX": "332850,333365,333365,333395.08",
+ "pY": "569950,569950,569800,569774.88"
+ },
+ {
+ "IdS": 214657,
+ "pX": "332250,332850",
+ "pY": "569950,569950"
+ },
+ {
+ "IdS": 214661,
+ "pX": "332250,332250",
+ "pY": "569050,568650"
+ },
+ {
+ "IdS": 214664,
+ "pX": "332250,332850",
+ "pY": "568650,568650"
+ },
+ {
+ "IdS": 214668,
+ "pX": "332850,332850",
+ "pY": "568650,567600"
+ },
+ {
+ "IdS": 214670,
+ "pX": "332850,332850",
+ "pY": "567300,567150"
+ },
+ {
+ "IdS": 214675,
+ "pX": "332850,333750",
+ "pY": "566850,566850"
+ },
+ {
+ "IdS": 214677,
+ "pX": "333750,333750",
+ "pY": "566850,566350"
+ },
+ {
+ "IdS": 214683,
+ "pX": "334600,334600",
+ "pY": "567300,567100"
+ },
+ {
+ "IdS": 214685,
+ "pX": "335450.04,335300",
+ "pY": "566750.02,566615"
+ },
+ {
+ "IdS": 214687,
+ "pX": "335300,335300,335550",
+ "pY": "566615,566450,566450"
+ },
+ {
+ "IdS": 214689,
+ "pX": "335550,335550",
+ "pY": "566450,566250"
+ },
+ {
+ "IdS": 214690,
+ "pX": "335550,335550.31",
+ "pY": "566250,565949.92"
+ },
+ {
+ "IdS": 214698,
+ "pX": "335755.31,335750",
+ "pY": "565496.72,564900"
+ },
+ {
+ "IdS": 214716,
+ "pX": "338000,338327.49",
+ "pY": "560650,560138.78"
+ },
+ {
+ "IdS": 214717,
+ "pX": "338327.49,338549.25",
+ "pY": "560138.78,559804.57"
+ },
+ {
+ "IdS": 214721,
+ "pX": "338549.25,339100",
+ "pY": "559804.57,558950"
+ },
+ {
+ "IdS": 214722,
+ "pX": "339100,339015,339015,338600",
+ "pY": "558950,558550,558950,558950"
+ },
+ {
+ "IdS": 214731,
+ "pX": "337550,338450",
+ "pY": "557755,558550"
+ },
+ {
+ "IdS": 214738,
+ "pX": "336175,337550",
+ "pY": "556590,557755"
+ },
+ {
+ "IdS": 214740,
+ "pX": "335725,336175",
+ "pY": "556185,556590"
+ },
+ {
+ "IdS": 214741,
+ "pX": "339100,339800",
+ "pY": "558950,558950"
+ },
+ {
+ "IdS": 214753,
+ "pX": "342850,343499.85",
+ "pY": "558800,557590.11"
+ },
+ {
+ "IdS": 214754,
+ "pX": "343499.85,343695",
+ "pY": "557590.11,557230"
+ },
+ {
+ "IdS": 214755,
+ "pX": "343695,343975",
+ "pY": "557230,556705"
+ },
+ {
+ "IdS": 214757,
+ "pX": "343975,344160",
+ "pY": "556705,556355"
+ },
+ {
+ "IdS": 214758,
+ "pX": "344160,344450.61",
+ "pY": "556355,555829.08"
+ },
+ {
+ "IdS": 214763,
+ "pX": "345200,345800,345800",
+ "pY": "555100,554650,554450"
+ },
+ {
+ "IdS": 214774,
+ "pX": "338940.8,339305.52",
+ "pY": "560884.52,560649.84"
+ },
+ {
+ "IdS": 214782,
+ "pX": "341045,341280",
+ "pY": "559330,559330"
+ },
+ {
+ "IdS": 214786,
+ "pX": "341399.72,341400",
+ "pY": "558450.11,557500"
+ },
+ {
+ "IdS": 214787,
+ "pX": "345475,345800",
+ "pY": "554700,554450"
+ },
+ {
+ "IdS": 214790,
+ "pX": "344950,345475",
+ "pY": "555099.38,554700"
+ },
+ {
+ "IdS": 214795,
+ "pX": "343750,344050",
+ "pY": "556000,555800"
+ },
+ {
+ "IdS": 214797,
+ "pX": "343450,343450,343750",
+ "pY": "556500,556235,556000"
+ },
+ {
+ "IdS": 214798,
+ "pX": "343100,343450",
+ "pY": "556350,556500"
+ },
+ {
+ "IdS": 214799,
+ "pX": "342550.77,343100",
+ "pY": "556750.22,556350"
+ },
+ {
+ "IdS": 214803,
+ "pX": "341400,342550.77",
+ "pY": "557500,556750.22"
+ },
+ {
+ "IdS": 214805,
+ "pX": "337500,337500,337000",
+ "pY": "569950,569745,569745"
+ },
+ {
+ "IdS": 214806,
+ "pX": "337750,337500,337500",
+ "pY": "570150,570050,569950"
+ },
+ {
+ "IdS": 214808,
+ "pX": "338150,338050,337750",
+ "pY": "570200,570250,570150"
+ },
+ {
+ "IdS": 214814,
+ "pX": "338743.53,338510.1",
+ "pY": "571298.99,570856.83"
+ },
+ {
+ "IdS": 214815,
+ "pX": "338790,338743.53",
+ "pY": "571395,571298.99"
+ },
+ {
+ "IdS": 214823,
+ "pX": "338000,338000,338150",
+ "pY": "570900,570330,570200"
+ },
+ {
+ "IdS": 214834,
+ "pX": "338700,338700.4",
+ "pY": "567450,566950.73"
+ },
+ {
+ "IdS": 214844,
+ "pX": "340694.72,341607.32",
+ "pY": "565109.81,564298.33"
+ },
+ {
+ "IdS": 214849,
+ "pX": "341607.32,342500",
+ "pY": "564298.33,563600"
+ },
+ {
+ "IdS": 214851,
+ "pX": "345425,345745",
+ "pY": "560815,560560"
+ },
+ {
+ "IdS": 214854,
+ "pX": "345035,345425",
+ "pY": "561110,560815"
+ },
+ {
+ "IdS": 214857,
+ "pX": "344395,345035",
+ "pY": "561600,561110"
+ },
+ {
+ "IdS": 214862,
+ "pX": "343425,344395",
+ "pY": "562265,561600"
+ },
+ {
+ "IdS": 214866,
+ "pX": "343080,342702.7",
+ "pY": "563350,562801.06"
+ },
+ {
+ "IdS": 214872,
+ "pX": "347450,347450",
+ "pY": "557950,556950"
+ },
+ {
+ "IdS": 214874,
+ "pX": "347450,347450",
+ "pY": "558400,557950"
+ },
+ {
+ "IdS": 214876,
+ "pX": "347450,347450",
+ "pY": "558800,558400"
+ },
+ {
+ "IdS": 214877,
+ "pX": "347450,347450",
+ "pY": "559200,558800"
+ },
+ {
+ "IdS": 214879,
+ "pX": "346900,347437.41,347450",
+ "pY": "559700,559697.33,559200"
+ },
+ {
+ "IdS": 214880,
+ "pX": "346615,346900",
+ "pY": "559895,559700"
+ },
+ {
+ "IdS": 214881,
+ "pX": "346430,346615",
+ "pY": "560035,559895"
+ },
+ {
+ "IdS": 214886,
+ "pX": "339800,339800",
+ "pY": "571100,570950"
+ },
+ {
+ "IdS": 214896,
+ "pX": "342650,342650",
+ "pY": "564500,563950"
+ },
+ {
+ "IdS": 214898,
+ "pX": "342650,342650",
+ "pY": "564850,564500"
+ },
+ {
+ "IdS": 214906,
+ "pX": "345800,345495,345495,345775,345775",
+ "pY": "554450,554365,554105,553980,553950"
+ },
+ {
+ "IdS": 214912,
+ "pX": "347450,347100",
+ "pY": "555600,555600"
+ },
+ {
+ "IdS": 214919,
+ "pX": "345800,346100",
+ "pY": "554450,554450"
+ },
+ {
+ "IdS": 214926,
+ "pX": "356250,356060,356000",
+ "pY": "553850,554225,554345"
+ },
+ {
+ "IdS": 214952,
+ "pX": "352719.49,353875.03",
+ "pY": "560595.05,558480.57"
+ },
+ {
+ "IdS": 214955,
+ "pX": "353875.03,354300",
+ "pY": "558480.57,557700"
+ },
+ {
+ "IdS": 214968,
+ "pX": "345775,345855,345800,346115",
+ "pY": "553950,553805,553935,552390"
+ },
+ {
+ "IdS": 214969,
+ "pX": "345800,345825,345905",
+ "pY": "554450,554375,553985"
+ },
+ {
+ "IdS": 214970,
+ "pX": "346030,346070",
+ "pY": "553340,553135"
+ },
+ {
+ "IdS": 214972,
+ "pX": "346070,346170,346150",
+ "pY": "553135,552615,552600"
+ },
+ {
+ "IdS": 214974,
+ "pX": "346150,346250",
+ "pY": "552600,551950"
+ },
+ {
+ "IdS": 214975,
+ "pX": "346250,346360",
+ "pY": "551950,551335"
+ },
+ {
+ "IdS": 214978,
+ "pX": "346780,346500,346750.17,346500",
+ "pY": "551150,550950,551119.94,550150"
+ },
+ {
+ "IdS": 214980,
+ "pX": "346500,346500",
+ "pY": "550150,549450"
+ },
+ {
+ "IdS": 214981,
+ "pX": "346550,346550",
+ "pY": "548800,548600"
+ },
+ {
+ "IdS": 214991,
+ "pX": "346550,346550",
+ "pY": "545800,545600"
+ },
+ {
+ "IdS": 214992,
+ "pX": "346550,346550",
+ "pY": "545600,545400"
+ },
+ {
+ "IdS": 214994,
+ "pX": "346550,346550",
+ "pY": "545400,545000"
+ },
+ {
+ "IdS": 214995,
+ "pX": "346550,346549.96",
+ "pY": "544600,544384.65"
+ },
+ {
+ "IdS": 214996,
+ "pX": "346549.96,346550",
+ "pY": "544384.65,544100"
+ },
+ {
+ "IdS": 214997,
+ "pX": "346750,345850",
+ "pY": "543700,543700"
+ },
+ {
+ "IdS": 214998,
+ "pX": "345715,345540",
+ "pY": "543630,543545"
+ },
+ {
+ "IdS": 215002,
+ "pX": "345005,344300",
+ "pY": "543260,542900"
+ },
+ {
+ "IdS": 215004,
+ "pX": "346780,347450",
+ "pY": "551150,551250"
+ },
+ {
+ "IdS": 215013,
+ "pX": "349450,350050",
+ "pY": "551550,551650"
+ },
+ {
+ "IdS": 215025,
+ "pX": "353150,354450",
+ "pY": "552150,552350"
+ },
+ {
+ "IdS": 215031,
+ "pX": "354450,355800",
+ "pY": "552350,552550"
+ },
+ {
+ "IdS": 215043,
+ "pX": "357619.9,358250,358250",
+ "pY": "552210.95,551950,551750"
+ },
+ {
+ "IdS": 215044,
+ "pX": "358400,358650",
+ "pY": "551900,551800"
+ },
+ {
+ "IdS": 215047,
+ "pX": "358650,359350",
+ "pY": "551800,551550"
+ },
+ {
+ "IdS": 215048,
+ "pX": "359350,359700",
+ "pY": "551550,551400"
+ },
+ {
+ "IdS": 215052,
+ "pX": "359700,360850",
+ "pY": "551400,550950"
+ },
+ {
+ "IdS": 215053,
+ "pX": "360850,361100",
+ "pY": "550950,550850"
+ },
+ {
+ "IdS": 215055,
+ "pX": "361100,361500",
+ "pY": "550850,550700"
+ },
+ {
+ "IdS": 215056,
+ "pX": "361500,362050",
+ "pY": "550700,550500"
+ },
+ {
+ "IdS": 215057,
+ "pX": "362050,362250",
+ "pY": "550500,550450"
+ },
+ {
+ "IdS": 215063,
+ "pX": "364150,363800,364150,363800",
+ "pY": "542500,542450,542450,541150"
+ },
+ {
+ "IdS": 215064,
+ "pX": "363800,363801.08",
+ "pY": "541150,540658.76"
+ },
+ {
+ "IdS": 215069,
+ "pX": "363800,363800",
+ "pY": "548100,547500"
+ },
+ {
+ "IdS": 215072,
+ "pX": "363800,363800",
+ "pY": "547500,546700"
+ },
+ {
+ "IdS": 215074,
+ "pX": "363800,363800",
+ "pY": "546700,545950"
+ },
+ {
+ "IdS": 215075,
+ "pX": "363800,363800",
+ "pY": "545950,545400"
+ },
+ {
+ "IdS": 215078,
+ "pX": "363800,363800",
+ "pY": "545400,544400"
+ },
+ {
+ "IdS": 215079,
+ "pX": "363800,363800",
+ "pY": "544400,543700"
+ },
+ {
+ "IdS": 215086,
+ "pX": "365200,366350,366350",
+ "pY": "549300,548900,548600"
+ },
+ {
+ "IdS": 215087,
+ "pX": "364750,365200",
+ "pY": "549450,549300"
+ },
+ {
+ "IdS": 215094,
+ "pX": "369200,368450",
+ "pY": "549900,549550"
+ },
+ {
+ "IdS": 215098,
+ "pX": "367750,367400",
+ "pY": "549150,548950"
+ },
+ {
+ "IdS": 215101,
+ "pX": "367400,367050",
+ "pY": "548950,548750"
+ },
+ {
+ "IdS": 215102,
+ "pX": "367050,366630.64,366350",
+ "pY": "548750,548501.4,548600"
+ },
+ {
+ "IdS": 215105,
+ "pX": "369950,369250,369200",
+ "pY": "549950,549950,549900"
+ },
+ {
+ "IdS": 215107,
+ "pX": "370800,370580",
+ "pY": "550160,550115"
+ },
+ {
+ "IdS": 215110,
+ "pX": "371250,370800",
+ "pY": "550160,550160"
+ },
+ {
+ "IdS": 215113,
+ "pX": "371850,371450",
+ "pY": "550200,550160.01"
+ },
+ {
+ "IdS": 215114,
+ "pX": "372050,371850",
+ "pY": "550200,550200"
+ },
+ {
+ "IdS": 215115,
+ "pX": "372445,372050",
+ "pY": "550265.02,550200"
+ },
+ {
+ "IdS": 215118,
+ "pX": "373549.58,372445",
+ "pY": "550270.29,550265.02"
+ },
+ {
+ "IdS": 215124,
+ "pX": "375650,374950",
+ "pY": "550600,550350"
+ },
+ {
+ "IdS": 215130,
+ "pX": "372450,372450",
+ "pY": "549400,548950"
+ },
+ {
+ "IdS": 215137,
+ "pX": "372300,372265,372145,371989.4",
+ "pY": "546400,546400,546455,546199.7"
+ },
+ {
+ "IdS": 215138,
+ "pX": "371989.4,371700",
+ "pY": "546199.7,545950"
+ },
+ {
+ "IdS": 215142,
+ "pX": "371700,371400",
+ "pY": "545950,545400"
+ },
+ {
+ "IdS": 215143,
+ "pX": "371400,371400",
+ "pY": "545400,545100"
+ },
+ {
+ "IdS": 215145,
+ "pX": "371400,371400",
+ "pY": "545100,544800"
+ },
+ {
+ "IdS": 215147,
+ "pX": "371400,371400",
+ "pY": "544800,544500"
+ },
+ {
+ "IdS": 215155,
+ "pX": "370200,370000",
+ "pY": "543350,542950"
+ },
+ {
+ "IdS": 215156,
+ "pX": "369650,370050",
+ "pY": "541850,541650"
+ },
+ {
+ "IdS": 215159,
+ "pX": "371095.09,371450",
+ "pY": "541147.06,540950"
+ },
+ {
+ "IdS": 215161,
+ "pX": "371450,371700",
+ "pY": "540950,540500"
+ },
+ {
+ "IdS": 215163,
+ "pX": "371700,371900",
+ "pY": "540500,540100"
+ },
+ {
+ "IdS": 215164,
+ "pX": "371900,372000",
+ "pY": "540100,539900"
+ },
+ {
+ "IdS": 215165,
+ "pX": "372000,372150",
+ "pY": "539900,539600"
+ },
+ {
+ "IdS": 215168,
+ "pX": "372150,372450",
+ "pY": "539600,539000"
+ },
+ {
+ "IdS": 215173,
+ "pX": "373150,373400",
+ "pY": "537650,537200"
+ },
+ {
+ "IdS": 215174,
+ "pX": "373400,373700",
+ "pY": "537200,536600"
+ },
+ {
+ "IdS": 215185,
+ "pX": "373905,374250",
+ "pY": "536215,535550"
+ },
+ {
+ "IdS": 215190,
+ "pX": "375150,375150",
+ "pY": "534550,534050"
+ },
+ {
+ "IdS": 215206,
+ "pX": "349930,349850",
+ "pY": "580700,580760"
+ },
+ {
+ "IdS": 215207,
+ "pX": "350125,350045",
+ "pY": "580555,580615"
+ },
+ {
+ "IdS": 215211,
+ "pX": "350600,350125",
+ "pY": "580195,580555"
+ },
+ {
+ "IdS": 215212,
+ "pX": "350930,350750",
+ "pY": "580085,580085"
+ },
+ {
+ "IdS": 215214,
+ "pX": "336300,336250,336299.82,336299.82,336255.03",
+ "pY": "570300,570350,570590.49,570609.97,570710"
+ },
+ {
+ "IdS": 215215,
+ "pX": "335650,335600",
+ "pY": "571200,570950"
+ },
+ {
+ "IdS": 215217,
+ "pX": "335845,335800,335650",
+ "pY": "571750,571735,571200"
+ },
+ {
+ "IdS": 215222,
+ "pX": "335450.04,335340,334950",
+ "pY": "566750.02,566750,566850"
+ },
+ {
+ "IdS": 215224,
+ "pX": "334950,334050,334050",
+ "pY": "566850,566850,567150"
+ },
+ {
+ "IdS": 215225,
+ "pX": "334050,334050",
+ "pY": "567150,567450"
+ },
+ {
+ "IdS": 215227,
+ "pX": "336170,335800.37,335750",
+ "pY": "570245,570244.7,570200"
+ },
+ {
+ "IdS": 215228,
+ "pX": "335600,335600",
+ "pY": "570450,570200"
+ },
+ {
+ "IdS": 215229,
+ "pX": "335600,335600",
+ "pY": "570950,570450"
+ },
+ {
+ "IdS": 215234,
+ "pX": "334950,334950",
+ "pY": "566550,566450"
+ },
+ {
+ "IdS": 215236,
+ "pX": "334950,334950",
+ "pY": "566250,566150"
+ },
+ {
+ "IdS": 215237,
+ "pX": "335250,335400",
+ "pY": "566150,566150"
+ },
+ {
+ "IdS": 215238,
+ "pX": "335400,335400",
+ "pY": "566150,566000"
+ },
+ {
+ "IdS": 215239,
+ "pX": "335400,335400",
+ "pY": "566000,565900"
+ },
+ {
+ "IdS": 215242,
+ "pX": "336100,336100",
+ "pY": "565600,565500"
+ },
+ {
+ "IdS": 215245,
+ "pX": "336100,336600",
+ "pY": "565500,565500"
+ },
+ {
+ "IdS": 215263,
+ "pX": "340650,341100",
+ "pY": "571900,571200"
+ },
+ {
+ "IdS": 215266,
+ "pX": "341350,341700",
+ "pY": "570850,570350"
+ },
+ {
+ "IdS": 215285,
+ "pX": "348113.46,349200",
+ "pY": "564387.16,563500"
+ },
+ {
+ "IdS": 215300,
+ "pX": "345047.02,345642.27",
+ "pY": "567092.21,566557.74"
+ },
+ {
+ "IdS": 215309,
+ "pX": "350602.6,352719.49",
+ "pY": "562376.15,560595.05"
+ },
+ {
+ "IdS": 215310,
+ "pX": "350447.03,350602.6",
+ "pY": "562501.83,562376.15"
+ },
+ {
+ "IdS": 215314,
+ "pX": "349350,350447.03",
+ "pY": "563400,562501.83"
+ },
+ {
+ "IdS": 215327,
+ "pX": "354929.87,355250",
+ "pY": "562424.98,562700"
+ },
+ {
+ "IdS": 215338,
+ "pX": "380300,379900",
+ "pY": "541800,542050"
+ },
+ {
+ "IdS": 215342,
+ "pX": "381050,380550",
+ "pY": "541350,541650"
+ },
+ {
+ "IdS": 215345,
+ "pX": "381800,381050",
+ "pY": "540950,541350"
+ },
+ {
+ "IdS": 215347,
+ "pX": "382400,381800",
+ "pY": "540600,540950"
+ },
+ {
+ "IdS": 215353,
+ "pX": "383700,383250",
+ "pY": "539850,540100"
+ },
+ {
+ "IdS": 215355,
+ "pX": "384150,383700",
+ "pY": "539600,539850"
+ },
+ {
+ "IdS": 215360,
+ "pX": "376600,375900",
+ "pY": "543950,544350"
+ },
+ {
+ "IdS": 215362,
+ "pX": "377200,376600",
+ "pY": "543600,543950"
+ },
+ {
+ "IdS": 215363,
+ "pX": "377550,377200",
+ "pY": "543400,543600"
+ },
+ {
+ "IdS": 215367,
+ "pX": "378500,378150",
+ "pY": "542850,543050"
+ },
+ {
+ "IdS": 215369,
+ "pX": "379100,378500",
+ "pY": "542500,542850"
+ },
+ {
+ "IdS": 215374,
+ "pX": "372700,372700",
+ "pY": "550400,549300"
+ },
+ {
+ "IdS": 215378,
+ "pX": "372700,372700,372500",
+ "pY": "549300,548050,547600"
+ },
+ {
+ "IdS": 215381,
+ "pX": "372350,371975,372155",
+ "pY": "547300,546570,546485"
+ },
+ {
+ "IdS": 215382,
+ "pX": "372600,372450",
+ "pY": "546200,546300"
+ },
+ {
+ "IdS": 215383,
+ "pX": "372800,372600",
+ "pY": "546100,546200"
+ },
+ {
+ "IdS": 215385,
+ "pX": "373250,372800",
+ "pY": "545850,546100"
+ },
+ {
+ "IdS": 215386,
+ "pX": "373600,373250",
+ "pY": "545650,545850"
+ },
+ {
+ "IdS": 215390,
+ "pX": "374150,373600",
+ "pY": "545350,545650"
+ },
+ {
+ "IdS": 215392,
+ "pX": "374650,374150",
+ "pY": "545050,545350"
+ },
+ {
+ "IdS": 215401,
+ "pX": "374050,372700",
+ "pY": "550550,550400"
+ },
+ {
+ "IdS": 215406,
+ "pX": "375050,374050",
+ "pY": "550550,550550"
+ },
+ {
+ "IdS": 215410,
+ "pX": "370350,369450,369200",
+ "pY": "550300,550300,549900"
+ },
+ {
+ "IdS": 215414,
+ "pX": "371300,370350",
+ "pY": "550400,550300"
+ },
+ {
+ "IdS": 215418,
+ "pX": "372700,371300",
+ "pY": "550400,550400"
+ },
+ {
+ "IdS": 215420,
+ "pX": "369200,368900,368250",
+ "pY": "549900,550050,549650"
+ },
+ {
+ "IdS": 215425,
+ "pX": "368250,367075",
+ "pY": "549650,549195"
+ },
+ {
+ "IdS": 215429,
+ "pX": "367075,366450",
+ "pY": "549195,548650"
+ },
+ {
+ "IdS": 215439,
+ "pX": "359550,358250",
+ "pY": "551250,551750"
+ },
+ {
+ "IdS": 215444,
+ "pX": "361050,359550",
+ "pY": "550650,551250"
+ },
+ {
+ "IdS": 215446,
+ "pX": "361400,361050",
+ "pY": "550500,550650"
+ },
+ {
+ "IdS": 215448,
+ "pX": "362150,361400",
+ "pY": "550250,550500"
+ },
+ {
+ "IdS": 215449,
+ "pX": "362500,362150",
+ "pY": "550100,550250"
+ },
+ {
+ "IdS": 215459,
+ "pX": "365100,363800",
+ "pY": "549100,549600"
+ },
+ {
+ "IdS": 215464,
+ "pX": "366450,365100",
+ "pY": "548650,549100"
+ },
+ {
+ "IdS": 215466,
+ "pX": "347250,346825",
+ "pY": "551000,550955"
+ },
+ {
+ "IdS": 215468,
+ "pX": "347713.51,347250",
+ "pY": "551092.98,551000"
+ },
+ {
+ "IdS": 215477,
+ "pX": "350100,349800",
+ "pY": "551450,551400"
+ },
+ {
+ "IdS": 215479,
+ "pX": "350700,350100",
+ "pY": "551550,551450"
+ },
+ {
+ "IdS": 215483,
+ "pX": "352150,351450",
+ "pY": "551800,551700"
+ },
+ {
+ "IdS": 215484,
+ "pX": "352450,352150",
+ "pY": "551850,551800"
+ },
+ {
+ "IdS": 215486,
+ "pX": "352950,352450",
+ "pY": "551950,551850"
+ },
+ {
+ "IdS": 215488,
+ "pX": "353650,353600,353649.9,352950",
+ "pY": "552500,552100,552085.17,551950"
+ },
+ {
+ "IdS": 215489,
+ "pX": "354600,354200",
+ "pY": "552150,552100"
+ },
+ {
+ "IdS": 215492,
+ "pX": "355150,354600",
+ "pY": "552250,552150"
+ },
+ {
+ "IdS": 215494,
+ "pX": "355450,355150",
+ "pY": "552300,552250"
+ },
+ {
+ "IdS": 215501,
+ "pX": "346825,346025.25,346025",
+ "pY": "550955,550955.09,551050"
+ },
+ {
+ "IdS": 215502,
+ "pX": "346025,345725",
+ "pY": "551050,551050"
+ },
+ {
+ "IdS": 215504,
+ "pX": "345330,345000",
+ "pY": "551050,550300"
+ },
+ {
+ "IdS": 215509,
+ "pX": "343425,343061.85",
+ "pY": "549795,549634.86"
+ },
+ {
+ "IdS": 215512,
+ "pX": "343061.85,342329.21",
+ "pY": "549634.86,549313.55"
+ },
+ {
+ "IdS": 215516,
+ "pX": "342329.21,341230",
+ "pY": "549313.55,548830"
+ },
+ {
+ "IdS": 215521,
+ "pX": "341045,339490",
+ "pY": "548750,548070"
+ },
+ {
+ "IdS": 215523,
+ "pX": "339490,339300",
+ "pY": "548070,547700"
+ },
+ {
+ "IdS": 215525,
+ "pX": "339300,339299.8",
+ "pY": "547700,547515.45"
+ },
+ {
+ "IdS": 215529,
+ "pX": "338910,338620",
+ "pY": "546315,545900"
+ },
+ {
+ "IdS": 215531,
+ "pX": "338620,338335",
+ "pY": "545900,545490"
+ },
+ {
+ "IdS": 215540,
+ "pX": "355900,356100",
+ "pY": "565200,565500"
+ },
+ {
+ "IdS": 215542,
+ "pX": "356100,356250",
+ "pY": "565500,565750"
+ },
+ {
+ "IdS": 215543,
+ "pX": "356350,356500",
+ "pY": "565900,566200"
+ },
+ {
+ "IdS": 215546,
+ "pX": "346750,347375",
+ "pY": "554045,554385"
+ },
+ {
+ "IdS": 215547,
+ "pX": "347700,347900",
+ "pY": "554550,554650"
+ },
+ {
+ "IdS": 215550,
+ "pX": "348100,348300",
+ "pY": "554750,554850"
+ },
+ {
+ "IdS": 215551,
+ "pX": "348300,348400",
+ "pY": "554850,554900"
+ },
+ {
+ "IdS": 215552,
+ "pX": "348400,348500",
+ "pY": "554900,554950"
+ },
+ {
+ "IdS": 215553,
+ "pX": "348950,349165.01",
+ "pY": "555150,555255"
+ },
+ {
+ "IdS": 215556,
+ "pX": "350600,350870",
+ "pY": "555950,556055"
+ },
+ {
+ "IdS": 215562,
+ "pX": "352900,353000",
+ "pY": "557000,557050"
+ },
+ {
+ "IdS": 215565,
+ "pX": "353200,353400",
+ "pY": "557150,557250"
+ },
+ {
+ "IdS": 215570,
+ "pX": "353850,354050",
+ "pY": "558100,558550"
+ },
+ {
+ "IdS": 215575,
+ "pX": "354450,354500",
+ "pY": "559450,559600"
+ },
+ {
+ "IdS": 215576,
+ "pX": "354500,354600",
+ "pY": "559600,559850"
+ },
+ {
+ "IdS": 215578,
+ "pX": "354800,354900",
+ "pY": "560300,560550"
+ },
+ {
+ "IdS": 215581,
+ "pX": "355150,355400",
+ "pY": "561150,561700"
+ },
+ {
+ "IdS": 215587,
+ "pX": "355450,355250",
+ "pY": "563400,563700"
+ },
+ {
+ "IdS": 215588,
+ "pX": "355250,355100",
+ "pY": "563700,563900"
+ },
+ {
+ "IdS": 215589,
+ "pX": "355600,356050",
+ "pY": "563200,563200"
+ },
+ {
+ "IdS": 215590,
+ "pX": "356050,356050",
+ "pY": "563200,563450"
+ },
+ {
+ "IdS": 215592,
+ "pX": "356545,357300",
+ "pY": "563290,563050"
+ },
+ {
+ "IdS": 215608,
+ "pX": "339360,339720",
+ "pY": "548120,547295"
+ },
+ {
+ "IdS": 215613,
+ "pX": "338750,339175,339360",
+ "pY": "548995,548040,548120"
+ },
+ {
+ "IdS": 215619,
+ "pX": "338130,338750",
+ "pY": "550470,548995"
+ },
+ {
+ "IdS": 215635,
+ "pX": "336580,336655.59",
+ "pY": "554160,553972.39"
+ },
+ {
+ "IdS": 215636,
+ "pX": "336500,336580",
+ "pY": "554345,554160"
+ },
+ {
+ "IdS": 215642,
+ "pX": "335725,335880",
+ "pY": "556185,555815"
+ },
+ {
+ "IdS": 215644,
+ "pX": "344050,344300",
+ "pY": "543000,542900"
+ },
+ {
+ "IdS": 215645,
+ "pX": "343700.61,343850",
+ "pY": "543348.66,543200"
+ },
+ {
+ "IdS": 215651,
+ "pX": "342655,343700.61",
+ "pY": "544350,543348.66"
+ },
+ {
+ "IdS": 215663,
+ "pX": "340536.23,341040.04",
+ "pY": "546379.65,545894.98"
+ },
+ {
+ "IdS": 215669,
+ "pX": "344300,344300",
+ "pY": "542900,542615"
+ },
+ {
+ "IdS": 215690,
+ "pX": "340850,340850",
+ "pY": "538850,538500"
+ },
+ {
+ "IdS": 215691,
+ "pX": "340850,340850,340950,340950",
+ "pY": "538500,538305,538305,538295"
+ },
+ {
+ "IdS": 215696,
+ "pX": "340950,340850,340950,340850.46",
+ "pY": "538295,538285,538285,536149.87"
+ },
+ {
+ "IdS": 215721,
+ "pX": "341295,341349.85,341294.99,341500.09",
+ "pY": "530250,530229.85,530229.85,529200.23"
+ },
+ {
+ "IdS": 215738,
+ "pX": "334300,334300",
+ "pY": "569800,569950"
+ },
+ {
+ "IdS": 215739,
+ "pX": "334300,334300",
+ "pY": "569950,570050"
+ },
+ {
+ "IdS": 215740,
+ "pX": "334300,334150",
+ "pY": "569950,569950"
+ },
+ {
+ "IdS": 215745,
+ "pX": "352500,353150",
+ "pY": "552050,552150"
+ },
+ {
+ "IdS": 215768,
+ "pX": "356070.38,356069.71",
+ "pY": "562565.4,562849.96"
+ },
+ {
+ "IdS": 215776,
+ "pX": "334800,334400,334350",
+ "pY": "569600,569450,569350"
+ },
+ {
+ "IdS": 215780,
+ "pX": "350725,351146.83",
+ "pY": "577975,577697.85"
+ },
+ {
+ "IdS": 215806,
+ "pX": "354050,354200",
+ "pY": "558550,558900"
+ },
+ {
+ "IdS": 215808,
+ "pX": "354200,354450",
+ "pY": "558900,558800"
+ },
+ {
+ "IdS": 215814,
+ "pX": "335850,335925",
+ "pY": "570950,570950"
+ },
+ {
+ "IdS": 215815,
+ "pX": "338000,338000,338050",
+ "pY": "571400,571550,571550"
+ },
+ {
+ "IdS": 215816,
+ "pX": "338580,338530",
+ "pY": "591420,591225"
+ },
+ {
+ "IdS": 215819,
+ "pX": "336515,336730.02",
+ "pY": "579105,578500.31"
+ },
+ {
+ "IdS": 215822,
+ "pX": "335150,335450.04",
+ "pY": "567100,566750.02"
+ },
+ {
+ "IdS": 215823,
+ "pX": "335750,335750,336400",
+ "pY": "564900,564000,563900"
+ },
+ {
+ "IdS": 215828,
+ "pX": "346500,346500.14,346740.2,346780",
+ "pY": "551100,550964.79,551129.73,551150"
+ },
+ {
+ "IdS": 215829,
+ "pX": "346500,346550,346550",
+ "pY": "549450,549450,549000"
+ },
+ {
+ "IdS": 215830,
+ "pX": "346550,346550",
+ "pY": "549000,548800"
+ },
+ {
+ "IdS": 215836,
+ "pX": "353627.53,354929.87",
+ "pY": "561323.95,562424.98"
+ },
+ {
+ "IdS": 215838,
+ "pX": "338110,337650",
+ "pY": "545165,544515"
+ },
+ {
+ "IdS": 215843,
+ "pX": "355000,355150",
+ "pY": "560800,561150"
+ },
+ {
+ "IdS": 215844,
+ "pX": "355000,354700",
+ "pY": "560800,560950"
+ },
+ {
+ "IdS": 215848,
+ "pX": "339350,339459.88",
+ "pY": "571300,571299.96"
+ },
+ {
+ "IdS": 215850,
+ "pX": "340045,340085,340420",
+ "pY": "565630,565635,565320"
+ },
+ {
+ "IdS": 215851,
+ "pX": "340545.34,340694.72",
+ "pY": "565209.99,565109.81"
+ },
+ {
+ "IdS": 215860,
+ "pX": "354350,354450",
+ "pY": "559200,559450"
+ },
+ {
+ "IdS": 215861,
+ "pX": "345250,345350",
+ "pY": "582000,581700"
+ },
+ {
+ "IdS": 215866,
+ "pX": "345200,345250",
+ "pY": "582200,582000"
+ },
+ {
+ "IdS": 216186,
+ "pX": "332250,332400,332400,333365.13,333365.07,333395.08",
+ "pY": "569950,569600,569850,569750,569599.79,569774.88"
+ },
+ {
+ "IdS": 216214,
+ "pX": "345000,345000",
+ "pY": "549200,549605"
+ },
+ {
+ "IdS": 216231,
+ "pX": "335330.01,335725",
+ "pY": "556720,556185"
+ },
+ {
+ "IdS": 216237,
+ "pX": "331340,331584.28",
+ "pY": "562220,561884.96"
+ },
+ {
+ "IdS": 216252,
+ "pX": "363801.08,363800",
+ "pY": "540658.76,540100"
+ },
+ {
+ "IdS": 216257,
+ "pX": "363800,364750",
+ "pY": "540100,538300"
+ },
+ {
+ "IdS": 216262,
+ "pX": "364750,365350",
+ "pY": "538300,537650"
+ },
+ {
+ "IdS": 216264,
+ "pX": "365350,365350",
+ "pY": "537650,536900"
+ },
+ {
+ "IdS": 216265,
+ "pX": "340455,340660,340694.72",
+ "pY": "565245,565080,565109.81"
+ },
+ {
+ "IdS": 216267,
+ "pX": "340045,340455",
+ "pY": "565630,565245"
+ },
+ {
+ "IdS": 216268,
+ "pX": "336900,336900",
+ "pY": "592050,592250"
+ },
+ {
+ "IdS": 216277,
+ "pX": "337955,337750",
+ "pY": "567090,566795"
+ },
+ {
+ "IdS": 216290,
+ "pX": "339300,339583.53",
+ "pY": "566300,566038.34"
+ },
+ {
+ "IdS": 216300,
+ "pX": "351600,351700,352500",
+ "pY": "552100,551900,552050"
+ },
+ {
+ "IdS": 216317,
+ "pX": "350050,351500,351600",
+ "pY": "551650,551900,552100"
+ },
+ {
+ "IdS": 216319,
+ "pX": "353350,354400",
+ "pY": "580500,580650"
+ },
+ {
+ "IdS": 216326,
+ "pX": "335925,335925",
+ "pY": "570950,571050"
+ },
+ {
+ "IdS": 216954,
+ "pX": "364624,367404",
+ "pY": "584010,584010"
+ },
+ {
+ "IdS": 216955,
+ "pX": "367404,371404",
+ "pY": "584010,584010"
+ },
+ {
+ "IdS": 216956,
+ "pX": "371404,374004",
+ "pY": "584010,584010"
+ },
+ {
+ "IdS": 216957,
+ "pX": "374004,377804",
+ "pY": "584010,584010"
+ },
+ {
+ "IdS": 216958,
+ "pX": "377804,378804",
+ "pY": "584010,584010"
+ },
+ {
+ "IdS": 216959,
+ "pX": "378804,379604",
+ "pY": "584010,584010"
+ },
+ {
+ "IdS": 216960,
+ "pX": "379604,380604",
+ "pY": "584010,584010"
+ },
+ {
+ "IdS": 216961,
+ "pX": "380604,381404",
+ "pY": "584010,584010"
+ },
+ {
+ "IdS": 216962,
+ "pX": "381404,381404",
+ "pY": "584010,583810"
+ },
+ {
+ "IdS": 216965,
+ "pX": "381404,382404",
+ "pY": "584010,584010"
+ },
+ {
+ "IdS": 216966,
+ "pX": "382404,383604",
+ "pY": "584010,584010"
+ },
+ {
+ "IdS": 216967,
+ "pX": "382404,382404",
+ "pY": "584010,583810"
+ },
+ {
+ "IdS": 216969,
+ "pX": "383604,384604",
+ "pY": "584010,584010"
+ },
+ {
+ "IdS": 216970,
+ "pX": "383604,383604",
+ "pY": "584010,584210"
+ },
+ {
+ "IdS": 216971,
+ "pX": "345250,346000",
+ "pY": "582000,582300"
+ },
+ {
+ "IdS": 216980,
+ "pX": "373700,373905",
+ "pY": "536600,536215"
+ },
+ {
+ "IdS": 216981,
+ "pX": "333900,334800,333950,334175,334800",
+ "pY": "569350,569150,569150,569150,569300"
+ },
+ {
+ "IdS": 216995,
+ "pX": "373035,373183.75",
+ "pY": "556125,556377.5"
+ },
+ {
+ "IdS": 216996,
+ "pX": "378750,379050.01",
+ "pY": "545400,545550"
+ },
+ {
+ "IdS": 216998,
+ "pX": "355750,355965",
+ "pY": "554800,554920"
+ },
+ {
+ "IdS": 217001,
+ "pX": "354850,355050",
+ "pY": "556600,556700"
+ },
+ {
+ "IdS": 217003,
+ "pX": "335550,335550,335600",
+ "pY": "571500,571050,570950"
+ },
+ {
+ "IdS": 217004,
+ "pX": "335550,335350",
+ "pY": "571500,571500"
+ },
+ {
+ "IdS": 217015,
+ "pX": "335600,335400,335400",
+ "pY": "570950,570950,571250"
+ },
+ {
+ "IdS": 217016,
+ "pX": "336204.95,336300",
+ "pY": "570709.98,570920"
+ },
+ {
+ "IdS": 217020,
+ "pX": "339200,339800",
+ "pY": "577800,577950"
+ },
+ {
+ "IdS": 217021,
+ "pX": "339470.18,339550",
+ "pY": "575344.81,575100"
+ },
+ {
+ "IdS": 217025,
+ "pX": "334600,334550",
+ "pY": "571150,571150"
+ },
+ {
+ "IdS": 217026,
+ "pX": "334550,334450",
+ "pY": "571150,571150"
+ },
+ {
+ "IdS": 217122,
+ "pX": "372700,372300",
+ "pY": "550400,550650"
+ },
+ {
+ "IdS": 217125,
+ "pX": "375150,375409.85",
+ "pY": "532950,532949.97"
+ },
+ {
+ "IdS": 217134,
+ "pX": "342910.23,343425",
+ "pY": "562618.04,562265"
+ },
+ {
+ "IdS": 217137,
+ "pX": "340700,339800",
+ "pY": "574400,574200"
+ },
+ {
+ "IdS": 217138,
+ "pX": "340700,340700",
+ "pY": "574400,574150"
+ },
+ {
+ "IdS": 217167,
+ "pX": "340152.61,342150,342850,340325,343250",
+ "pY": "572849.21,573700,572250,572880,572250"
+ },
+ {
+ "IdS": 217172,
+ "pX": "330600,330300",
+ "pY": "563250,563400"
+ },
+ {
+ "IdS": 217173,
+ "pX": "330300,330300",
+ "pY": "563400,563700"
+ },
+ {
+ "IdS": 217174,
+ "pX": "330300,329850,329850",
+ "pY": "563400,563400,564000"
+ },
+ {
+ "IdS": 217176,
+ "pX": "331200,332250",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 217177,
+ "pX": "331200,331200",
+ "pY": "564000,564450"
+ },
+ {
+ "IdS": 217181,
+ "pX": "334950,334950",
+ "pY": "564000,564450"
+ },
+ {
+ "IdS": 217183,
+ "pX": "332250,332250",
+ "pY": "564000,564450"
+ },
+ {
+ "IdS": 217184,
+ "pX": "333150,333150",
+ "pY": "564000,564450"
+ },
+ {
+ "IdS": 217185,
+ "pX": "334050,334050",
+ "pY": "564000,564450"
+ },
+ {
+ "IdS": 217186,
+ "pX": "330300,331000",
+ "pY": "563400,563400"
+ },
+ {
+ "IdS": 217208,
+ "pX": "338150,338200,338550",
+ "pY": "571450,571650,571750"
+ },
+ {
+ "IdS": 217212,
+ "pX": "332850,332850",
+ "pY": "569950,569400"
+ },
+ {
+ "IdS": 217214,
+ "pX": "332850,332750",
+ "pY": "569400,569400"
+ },
+ {
+ "IdS": 217219,
+ "pX": "336395,336345",
+ "pY": "582545,582065"
+ },
+ {
+ "IdS": 217220,
+ "pX": "336395,336500",
+ "pY": "582545,582525"
+ },
+ {
+ "IdS": 217223,
+ "pX": "364300,364750",
+ "pY": "549600,549450"
+ },
+ {
+ "IdS": 217224,
+ "pX": "364300,364407.31",
+ "pY": "549600,549796.53"
+ },
+ {
+ "IdS": 217226,
+ "pX": "363800,363800",
+ "pY": "549600,548905"
+ },
+ {
+ "IdS": 217227,
+ "pX": "363800,363800",
+ "pY": "548905,548100"
+ },
+ {
+ "IdS": 217254,
+ "pX": "344200,344250,344200,344250",
+ "pY": "586350,586350,586600,586600"
+ },
+ {
+ "IdS": 217258,
+ "pX": "345150,345200",
+ "pY": "582400,582200"
+ },
+ {
+ "IdS": 217259,
+ "pX": "345150,345200,345150,345200",
+ "pY": "582400,582400,582550,582550"
+ },
+ {
+ "IdS": 217266,
+ "pX": "344384.26,343900",
+ "pY": "579466.67,578800"
+ },
+ {
+ "IdS": 217267,
+ "pX": "344384.26,344350,344500,344450",
+ "pY": "579466.67,579500,579700,579750"
+ },
+ {
+ "IdS": 217276,
+ "pX": "335550.31,335750,335755.31",
+ "pY": "565949.92,565950,565496.72"
+ },
+ {
+ "IdS": 217288,
+ "pX": "341435,342020",
+ "pY": "559330,559330"
+ },
+ {
+ "IdS": 217290,
+ "pX": "342020,342020",
+ "pY": "559330,559470"
+ },
+ {
+ "IdS": 217309,
+ "pX": "338350,338300",
+ "pY": "579400,579600"
+ },
+ {
+ "IdS": 217311,
+ "pX": "336100,336300",
+ "pY": "572900,573100"
+ },
+ {
+ "IdS": 217313,
+ "pX": "336300,336400.37,336399.77,336299.99",
+ "pY": "573100,573100,573199.77,573199.17"
+ },
+ {
+ "IdS": 217314,
+ "pX": "375150,375707.51,375150,375708.36",
+ "pY": "531900,532099.99,532100,532148.19"
+ },
+ {
+ "IdS": 217315,
+ "pX": "375708.36,375154.79,375658.95,375150",
+ "pY": "532148.19,532219.47,532219.47,532750"
+ },
+ {
+ "IdS": 217316,
+ "pX": "375708.36,375684.28,375348.48",
+ "pY": "532148.19,532130.56,532131.27"
+ },
+ {
+ "IdS": 217317,
+ "pX": "335550,335650",
+ "pY": "565800,565800"
+ },
+ {
+ "IdS": 217318,
+ "pX": "335400,335250",
+ "pY": "565800,565800"
+ },
+ {
+ "IdS": 217322,
+ "pX": "346250,346250",
+ "pY": "579650,580350"
+ },
+ {
+ "IdS": 217327,
+ "pX": "349300,349199.33",
+ "pY": "551550,551605.21"
+ },
+ {
+ "IdS": 217329,
+ "pX": "374300,374600,374350",
+ "pY": "554550,555100,555250"
+ },
+ {
+ "IdS": 217330,
+ "pX": "374350,374200",
+ "pY": "555250,555350"
+ },
+ {
+ "IdS": 217331,
+ "pX": "343400,344000",
+ "pY": "573950,574250"
+ },
+ {
+ "IdS": 217333,
+ "pX": "337400,337397.82",
+ "pY": "572000,572394.6"
+ },
+ {
+ "IdS": 217334,
+ "pX": "337397.82,337399.45",
+ "pY": "572394.6,572646.2"
+ },
+ {
+ "IdS": 217335,
+ "pX": "336004.93,336005",
+ "pY": "570660.19,570840"
+ },
+ {
+ "IdS": 217336,
+ "pX": "352675.03,350549.97",
+ "pY": "560574.98,560580.02"
+ },
+ {
+ "IdS": 217344,
+ "pX": "342750,342750,342015",
+ "pY": "558750,557640,557640"
+ },
+ {
+ "IdS": 217345,
+ "pX": "342015,341550,341400",
+ "pY": "557640,557640,557500"
+ },
+ {
+ "IdS": 217371,
+ "pX": "350549.97,350550",
+ "pY": "560580.02,560850"
+ },
+ {
+ "IdS": 217384,
+ "pX": "344750,344749.88",
+ "pY": "559350,559601.3"
+ },
+ {
+ "IdS": 217436,
+ "pX": "345005,344920",
+ "pY": "543260,543420"
+ },
+ {
+ "IdS": 217505,
+ "pX": "372500,372300,371850",
+ "pY": "547600,547500,546600"
+ },
+ {
+ "IdS": 217506,
+ "pX": "371850,372300",
+ "pY": "546600,546400"
+ },
+ {
+ "IdS": 217507,
+ "pX": "371850,371650",
+ "pY": "546600,546600"
+ },
+ {
+ "IdS": 217520,
+ "pX": "343060,343060",
+ "pY": "573300,573000"
+ },
+ {
+ "IdS": 217521,
+ "pX": "343060,343060",
+ "pY": "573000,572750"
+ },
+ {
+ "IdS": 217522,
+ "pX": "343060,343300",
+ "pY": "573000,573000"
+ },
+ {
+ "IdS": 217525,
+ "pX": "349165.01,349250",
+ "pY": "555255,555300"
+ },
+ {
+ "IdS": 217526,
+ "pX": "349250,349355.26",
+ "pY": "555300,555350.18"
+ },
+ {
+ "IdS": 217530,
+ "pX": "349250,349200",
+ "pY": "555300,555400"
+ },
+ {
+ "IdS": 217612,
+ "pX": "339200,339850",
+ "pY": "577800,577800"
+ },
+ {
+ "IdS": 217615,
+ "pX": "346100,346100,346400,346500.12",
+ "pY": "554450,554680,555000,555000"
+ },
+ {
+ "IdS": 217628,
+ "pX": "338285,338550",
+ "pY": "591900,591840"
+ },
+ {
+ "IdS": 217629,
+ "pX": "338550,338670",
+ "pY": "591840,591810"
+ },
+ {
+ "IdS": 217630,
+ "pX": "338550,338585",
+ "pY": "591840,591970"
+ },
+ {
+ "IdS": 217631,
+ "pX": "372445,372450",
+ "pY": "550265.02,549700"
+ },
+ {
+ "IdS": 217632,
+ "pX": "372450,372450",
+ "pY": "549700,549550"
+ },
+ {
+ "IdS": 217633,
+ "pX": "372450,372300",
+ "pY": "549700,549700"
+ },
+ {
+ "IdS": 217634,
+ "pX": "372450,372450",
+ "pY": "548650,548150"
+ },
+ {
+ "IdS": 217635,
+ "pX": "372450,372450,372500",
+ "pY": "548150,548000,547600"
+ },
+ {
+ "IdS": 217636,
+ "pX": "372450,372600",
+ "pY": "548150,548150"
+ },
+ {
+ "IdS": 217637,
+ "pX": "347100,346900,346500,346500.12",
+ "pY": "555600,555600,555200,555000"
+ },
+ {
+ "IdS": 217638,
+ "pX": "346500.12,346500,346100",
+ "pY": "555000,554900,554450"
+ },
+ {
+ "IdS": 217640,
+ "pX": "337700.84,338000",
+ "pY": "581599.61,581350"
+ },
+ {
+ "IdS": 217736,
+ "pX": "342950,342450",
+ "pY": "591250,591250"
+ },
+ {
+ "IdS": 217750,
+ "pX": "342950,343100",
+ "pY": "591250,590700"
+ },
+ {
+ "IdS": 217753,
+ "pX": "343100,342600",
+ "pY": "590700,590550"
+ },
+ {
+ "IdS": 217772,
+ "pX": "337810,337720",
+ "pY": "588305,587925"
+ },
+ {
+ "IdS": 217775,
+ "pX": "337415,337335",
+ "pY": "586685,586370"
+ },
+ {
+ "IdS": 217778,
+ "pX": "336745.72,336620",
+ "pY": "583964.91,583455"
+ },
+ {
+ "IdS": 217779,
+ "pX": "336745.72,336815",
+ "pY": "583964.91,583950"
+ },
+ {
+ "IdS": 217839,
+ "pX": "344450,343900",
+ "pY": "578950,578250"
+ },
+ {
+ "IdS": 217840,
+ "pX": "343900,343600",
+ "pY": "578250,577900"
+ },
+ {
+ "IdS": 217841,
+ "pX": "343900,344100",
+ "pY": "578250,578100"
+ },
+ {
+ "IdS": 217850,
+ "pX": "344700,344450",
+ "pY": "579250,578950"
+ },
+ {
+ "IdS": 217852,
+ "pX": "344700,344500",
+ "pY": "579250,579400"
+ },
+ {
+ "IdS": 217854,
+ "pX": "346570,346832.79",
+ "pY": "565725,565488.78"
+ },
+ {
+ "IdS": 217856,
+ "pX": "345791.09,346070",
+ "pY": "566424.12,566170"
+ },
+ {
+ "IdS": 217966,
+ "pX": "349300,349000",
+ "pY": "553800,553800"
+ },
+ {
+ "IdS": 217967,
+ "pX": "349000,348750",
+ "pY": "553800,553800"
+ },
+ {
+ "IdS": 218008,
+ "pX": "346570,346475",
+ "pY": "565725,565630"
+ },
+ {
+ "IdS": 218093,
+ "pX": "364050.02,364050",
+ "pY": "552949.72,553100"
+ },
+ {
+ "IdS": 218094,
+ "pX": "364050,364050",
+ "pY": "553100,553200"
+ },
+ {
+ "IdS": 218096,
+ "pX": "343312.21,343410.05,345047.02",
+ "pY": "568650.71,568562.03,567092.21"
+ },
+ {
+ "IdS": 218097,
+ "pX": "343312.21,343564.62",
+ "pY": "568650.71,568902.67"
+ },
+ {
+ "IdS": 218099,
+ "pX": "364050,364200",
+ "pY": "553100,553100"
+ },
+ {
+ "IdS": 218105,
+ "pX": "338405,338195",
+ "pY": "590709.99,589865"
+ },
+ {
+ "IdS": 218118,
+ "pX": "367314.2,367314.13",
+ "pY": "551830.14,551903.98"
+ },
+ {
+ "IdS": 218120,
+ "pX": "367314.13,367313.91",
+ "pY": "551903.98,551969.87"
+ },
+ {
+ "IdS": 218121,
+ "pX": "367313.91,367314.2",
+ "pY": "551969.87,552030.14"
+ },
+ {
+ "IdS": 218140,
+ "pX": "341435,342020",
+ "pY": "559180,559180"
+ },
+ {
+ "IdS": 218141,
+ "pX": "342020,342225,342850",
+ "pY": "559180,559150,558800"
+ },
+ {
+ "IdS": 218147,
+ "pX": "335450,335829.26",
+ "pY": "568200,568200.23"
+ },
+ {
+ "IdS": 218148,
+ "pX": "335829.26,335900",
+ "pY": "568200.23,568200"
+ },
+ {
+ "IdS": 218149,
+ "pX": "338195,337920,338155,337800",
+ "pY": "589865,590045,589955,590000"
+ },
+ {
+ "IdS": 218150,
+ "pX": "338195,338490",
+ "pY": "589865,589800"
+ },
+ {
+ "IdS": 218151,
+ "pX": "353000,353100",
+ "pY": "557050,557100"
+ },
+ {
+ "IdS": 218152,
+ "pX": "353100,353200",
+ "pY": "557100,557150"
+ },
+ {
+ "IdS": 218163,
+ "pX": "342020,342020",
+ "pY": "559330,559180"
+ },
+ {
+ "IdS": 218164,
+ "pX": "342020,341400,342020,341399.72",
+ "pY": "559180,558600,558600,558450.11"
+ },
+ {
+ "IdS": 218203,
+ "pX": "370600,370070",
+ "pY": "554000,554265.01"
+ },
+ {
+ "IdS": 218234,
+ "pX": "346550,346550",
+ "pY": "546500,545950"
+ },
+ {
+ "IdS": 218259,
+ "pX": "345000,345000",
+ "pY": "549605,549700"
+ },
+ {
+ "IdS": 218263,
+ "pX": "346550,346550",
+ "pY": "545950,545800"
+ },
+ {
+ "IdS": 218274,
+ "pX": "381600,382000",
+ "pY": "543200,543200"
+ },
+ {
+ "IdS": 218290,
+ "pX": "380100,380250",
+ "pY": "543800,543750"
+ },
+ {
+ "IdS": 218291,
+ "pX": "380100,380000",
+ "pY": "543800,543650"
+ },
+ {
+ "IdS": 218294,
+ "pX": "379750,380050",
+ "pY": "544350,544350"
+ },
+ {
+ "IdS": 218334,
+ "pX": "344580,344690,345000,345200",
+ "pY": "555290,555250,555250,555100"
+ },
+ {
+ "IdS": 218337,
+ "pX": "344580,344950",
+ "pY": "555290,555099.38"
+ },
+ {
+ "IdS": 218353,
+ "pX": "346250,346550",
+ "pY": "576050,576050"
+ },
+ {
+ "IdS": 218356,
+ "pX": "342220,342350",
+ "pY": "569075,569075"
+ },
+ {
+ "IdS": 218398,
+ "pX": "334050,334350",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 218399,
+ "pX": "334350,334950",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 218400,
+ "pX": "334350,334350",
+ "pY": "564000,564350"
+ },
+ {
+ "IdS": 218401,
+ "pX": "331050,330850.08",
+ "pY": "547700,547750.61"
+ },
+ {
+ "IdS": 218402,
+ "pX": "331050,330849.99",
+ "pY": "547700,547800.79"
+ },
+ {
+ "IdS": 218419,
+ "pX": "338650,338651.74",
+ "pY": "547200,547043.64"
+ },
+ {
+ "IdS": 218420,
+ "pX": "335550,334849.84",
+ "pY": "547700,547701.07"
+ },
+ {
+ "IdS": 218421,
+ "pX": "334849.84,334150",
+ "pY": "547701.07,547700"
+ },
+ {
+ "IdS": 218422,
+ "pX": "334849.84,334849.35",
+ "pY": "547701.07,547901.97"
+ },
+ {
+ "IdS": 218423,
+ "pX": "372800,372599.36",
+ "pY": "551000,551000.57"
+ },
+ {
+ "IdS": 218424,
+ "pX": "346250,346250",
+ "pY": "576050,576150"
+ },
+ {
+ "IdS": 218425,
+ "pX": "346250,346250",
+ "pY": "576150,576450"
+ },
+ {
+ "IdS": 218426,
+ "pX": "346250,346400",
+ "pY": "576150,576300"
+ },
+ {
+ "IdS": 218435,
+ "pX": "335799.59,335800",
+ "pY": "563105.03,563300"
+ },
+ {
+ "IdS": 218444,
+ "pX": "337450,337450",
+ "pY": "571300,571250"
+ },
+ {
+ "IdS": 218445,
+ "pX": "337450,337450",
+ "pY": "571250,571150"
+ },
+ {
+ "IdS": 218446,
+ "pX": "346250,346300,346450,346400",
+ "pY": "576150,576150,576300,576300"
+ },
+ {
+ "IdS": 218450,
+ "pX": "371850,371650",
+ "pY": "550650,550650"
+ },
+ {
+ "IdS": 218451,
+ "pX": "371850,371850",
+ "pY": "550650,550800"
+ },
+ {
+ "IdS": 218453,
+ "pX": "335600,335799.59",
+ "pY": "563105,563105.03"
+ },
+ {
+ "IdS": 218454,
+ "pX": "335799.59,335999.4",
+ "pY": "563105.03,563105.04"
+ },
+ {
+ "IdS": 218457,
+ "pX": "337600,337700",
+ "pY": "571400,571400"
+ },
+ {
+ "IdS": 218458,
+ "pX": "337700,337850",
+ "pY": "571400,571400"
+ },
+ {
+ "IdS": 218459,
+ "pX": "372050,372000",
+ "pY": "550650,550650"
+ },
+ {
+ "IdS": 218460,
+ "pX": "372000,371850",
+ "pY": "550650,550650"
+ },
+ {
+ "IdS": 218461,
+ "pX": "372000,372000",
+ "pY": "550650,550300"
+ },
+ {
+ "IdS": 218464,
+ "pX": "337720,337526.03,337415",
+ "pY": "587925,587146.47,586685"
+ },
+ {
+ "IdS": 218468,
+ "pX": "343550,343650",
+ "pY": "589000,588650"
+ },
+ {
+ "IdS": 218469,
+ "pX": "343550,343500,343450,343250",
+ "pY": "589000,589000,589150,589150"
+ },
+ {
+ "IdS": 218470,
+ "pX": "343250,343000",
+ "pY": "589150,589150"
+ },
+ {
+ "IdS": 218471,
+ "pX": "343250,343250",
+ "pY": "589150,589350"
+ },
+ {
+ "IdS": 218472,
+ "pX": "338700.4,338700,339300",
+ "pY": "566950.73,566300,566300"
+ },
+ {
+ "IdS": 218477,
+ "pX": "336099.74,336099.92",
+ "pY": "578500.09,578749.97"
+ },
+ {
+ "IdS": 218478,
+ "pX": "336099.74,336299.51",
+ "pY": "578500.09,578701.52"
+ },
+ {
+ "IdS": 218480,
+ "pX": "338450,338750,339055",
+ "pY": "579050,579050,578200"
+ },
+ {
+ "IdS": 218481,
+ "pX": "339055,339200",
+ "pY": "578200,577800"
+ },
+ {
+ "IdS": 218482,
+ "pX": "339055,338860",
+ "pY": "578200,578200"
+ },
+ {
+ "IdS": 218487,
+ "pX": "339200,339270",
+ "pY": "577800,577350"
+ },
+ {
+ "IdS": 218491,
+ "pX": "339270,339095",
+ "pY": "577350,577350"
+ },
+ {
+ "IdS": 218494,
+ "pX": "335800,335650",
+ "pY": "572750,572750"
+ },
+ {
+ "IdS": 218500,
+ "pX": "355250,355495",
+ "pY": "562700,562940"
+ },
+ {
+ "IdS": 218501,
+ "pX": "356069.71,355864.77,355520,356050",
+ "pY": "562849.96,562955.12,562955,563450"
+ },
+ {
+ "IdS": 218505,
+ "pX": "355924.88,355924.4",
+ "pY": "562774.84,562599.84"
+ },
+ {
+ "IdS": 218506,
+ "pX": "355924.88,356069.71",
+ "pY": "562774.84,562849.96"
+ },
+ {
+ "IdS": 218514,
+ "pX": "343850,343400",
+ "pY": "587850,587850"
+ },
+ {
+ "IdS": 218515,
+ "pX": "344100,343850",
+ "pY": "587850,587850"
+ },
+ {
+ "IdS": 218516,
+ "pX": "343850,344200",
+ "pY": "587850,586350"
+ },
+ {
+ "IdS": 218517,
+ "pX": "343850,343900,344050,344100",
+ "pY": "587850,587900,587900,587850"
+ },
+ {
+ "IdS": 218519,
+ "pX": "332850,332850",
+ "pY": "567600,567300"
+ },
+ {
+ "IdS": 218521,
+ "pX": "373150,373800",
+ "pY": "549750,549750"
+ },
+ {
+ "IdS": 218524,
+ "pX": "332800,332800",
+ "pY": "547700,547590"
+ },
+ {
+ "IdS": 218525,
+ "pX": "366350,366450",
+ "pY": "548600,548850"
+ },
+ {
+ "IdS": 218526,
+ "pX": "366450,366450",
+ "pY": "548650,548775"
+ },
+ {
+ "IdS": 218528,
+ "pX": "334750.25,334450",
+ "pY": "567850.5,567850"
+ },
+ {
+ "IdS": 218530,
+ "pX": "334849.34,334750.25",
+ "pY": "568199.92,567850.5"
+ },
+ {
+ "IdS": 218531,
+ "pX": "334750.25,334750",
+ "pY": "567850.5,567550"
+ },
+ {
+ "IdS": 218533,
+ "pX": "335650,335580,335640,335570",
+ "pY": "571200,571205,571205,571200"
+ },
+ {
+ "IdS": 218535,
+ "pX": "346550,346550",
+ "pY": "545000,544600"
+ },
+ {
+ "IdS": 218549,
+ "pX": "342700,342950",
+ "pY": "591600,591250"
+ },
+ {
+ "IdS": 218550,
+ "pX": "342700,343045",
+ "pY": "591600,591600"
+ },
+ {
+ "IdS": 218551,
+ "pX": "342700.05,342700",
+ "pY": "592400.05,592300"
+ },
+ {
+ "IdS": 218553,
+ "pX": "342700,342950",
+ "pY": "592300,592300"
+ },
+ {
+ "IdS": 218565,
+ "pX": "380450,380450",
+ "pY": "545400,545650"
+ },
+ {
+ "IdS": 218578,
+ "pX": "378550,378650",
+ "pY": "544450,544650"
+ },
+ {
+ "IdS": 218579,
+ "pX": "378650,378750.01",
+ "pY": "544650,544850"
+ },
+ {
+ "IdS": 218580,
+ "pX": "378650,378850",
+ "pY": "544650,544650"
+ },
+ {
+ "IdS": 218593,
+ "pX": "342750,342770,342850",
+ "pY": "558750,558750,558800"
+ },
+ {
+ "IdS": 218594,
+ "pX": "374300,374550",
+ "pY": "545900,545800"
+ },
+ {
+ "IdS": 218596,
+ "pX": "374550,374700",
+ "pY": "545800,546050"
+ },
+ {
+ "IdS": 218599,
+ "pX": "338510.1,338463.41,338150",
+ "pY": "570856.83,570768.4,570200"
+ },
+ {
+ "IdS": 218601,
+ "pX": "341400,342850,342850",
+ "pY": "557500,557500,558800"
+ },
+ {
+ "IdS": 218610,
+ "pX": "337400,337000",
+ "pY": "566400,565950"
+ },
+ {
+ "IdS": 218635,
+ "pX": "346550,346550",
+ "pY": "548000,546700"
+ },
+ {
+ "IdS": 218636,
+ "pX": "337000,336750",
+ "pY": "565950,566200"
+ },
+ {
+ "IdS": 218657,
+ "pX": "368850,368770",
+ "pY": "554550,554695"
+ },
+ {
+ "IdS": 218658,
+ "pX": "344400,344451.21,344398.32,344448.93",
+ "pY": "585550,585550.68,585751.06,585750.71"
+ },
+ {
+ "IdS": 218659,
+ "pX": "344200,344299.72",
+ "pY": "586350,585947.36"
+ },
+ {
+ "IdS": 218660,
+ "pX": "344299.72,344400",
+ "pY": "585947.36,585550"
+ },
+ {
+ "IdS": 218661,
+ "pX": "344299.72,344300,344350,344345",
+ "pY": "585947.36,586150,585950,586150"
+ },
+ {
+ "IdS": 218662,
+ "pX": "345200,345398.96",
+ "pY": "582200,582250.5"
+ },
+ {
+ "IdS": 218663,
+ "pX": "345350,345295.26,345000",
+ "pY": "581700,581548.31,581550"
+ },
+ {
+ "IdS": 218664,
+ "pX": "345350,345000",
+ "pY": "581700,581700"
+ },
+ {
+ "IdS": 218673,
+ "pX": "369500,369200,369200",
+ "pY": "549000,548700,548700"
+ },
+ {
+ "IdS": 218682,
+ "pX": "344600,346049.13",
+ "pY": "558800,558801.58"
+ },
+ {
+ "IdS": 218683,
+ "pX": "346049.13,346900,346900",
+ "pY": "558801.58,558800,559700"
+ },
+ {
+ "IdS": 218698,
+ "pX": "373600,373600",
+ "pY": "553000,552600"
+ },
+ {
+ "IdS": 218834,
+ "pX": "337800,337850",
+ "pY": "590000,589900"
+ },
+ {
+ "IdS": 218835,
+ "pX": "337850,338115,338195",
+ "pY": "589900,589820,589865"
+ },
+ {
+ "IdS": 218836,
+ "pX": "337850,337850",
+ "pY": "589900,589850"
+ },
+ {
+ "IdS": 218842,
+ "pX": "337150,336250",
+ "pY": "578300,578300"
+ },
+ {
+ "IdS": 218843,
+ "pX": "336250,336100",
+ "pY": "578300,578300"
+ },
+ {
+ "IdS": 218844,
+ "pX": "336250,336250",
+ "pY": "578300,578150"
+ },
+ {
+ "IdS": 218845,
+ "pX": "336250,336100",
+ "pY": "578150,578150"
+ },
+ {
+ "IdS": 218846,
+ "pX": "336250,336200,336100",
+ "pY": "578150,578100,578100"
+ },
+ {
+ "IdS": 218847,
+ "pX": "336250,336200,336100",
+ "pY": "578150,578050,578050"
+ },
+ {
+ "IdS": 218848,
+ "pX": "336250,336200,336100",
+ "pY": "578150,578000,578000"
+ },
+ {
+ "IdS": 218855,
+ "pX": "372800,372800",
+ "pY": "553400,553800"
+ },
+ {
+ "IdS": 218954,
+ "pX": "340150,340160",
+ "pY": "573500,573305"
+ },
+ {
+ "IdS": 218955,
+ "pX": "340160,340190,340152.61",
+ "pY": "573305,572970,572849.21"
+ },
+ {
+ "IdS": 218956,
+ "pX": "340160,340280",
+ "pY": "573305,573305"
+ },
+ {
+ "IdS": 218958,
+ "pX": "342250,342000",
+ "pY": "576700,576400"
+ },
+ {
+ "IdS": 218960,
+ "pX": "342000,342300,342100,342350",
+ "pY": "576400,576350,576400,576300"
+ },
+ {
+ "IdS": 218961,
+ "pX": "342000,342050,342250,342350",
+ "pY": "576400,576350,576300,576300"
+ },
+ {
+ "IdS": 218962,
+ "pX": "336100,336100",
+ "pY": "578300,578350"
+ },
+ {
+ "IdS": 218963,
+ "pX": "336100,336099.74",
+ "pY": "578350,578500.09"
+ },
+ {
+ "IdS": 218965,
+ "pX": "344700,344750",
+ "pY": "584350,584100"
+ },
+ {
+ "IdS": 218967,
+ "pX": "344750,344950,344800,345003.14",
+ "pY": "584100,584150,584150,584095.34"
+ },
+ {
+ "IdS": 218968,
+ "pX": "344750,344950,344800,345003.14",
+ "pY": "584100,584050,584050,584095.34"
+ },
+ {
+ "IdS": 218969,
+ "pX": "345350,345350",
+ "pY": "581050,580950"
+ },
+ {
+ "IdS": 218970,
+ "pX": "345350,345350,344384.26",
+ "pY": "580950,580750,579466.67"
+ },
+ {
+ "IdS": 218971,
+ "pX": "345350,345350",
+ "pY": "581700,581150"
+ },
+ {
+ "IdS": 218972,
+ "pX": "345350,345350",
+ "pY": "581150,581050"
+ },
+ {
+ "IdS": 218988,
+ "pX": "342650,342648.28",
+ "pY": "567750,566399.64"
+ },
+ {
+ "IdS": 218989,
+ "pX": "380450,380100",
+ "pY": "545400,545400"
+ },
+ {
+ "IdS": 218990,
+ "pX": "379900,380100",
+ "pY": "543900,543800"
+ },
+ {
+ "IdS": 218991,
+ "pX": "332850,332850",
+ "pY": "564000,564350"
+ },
+ {
+ "IdS": 218992,
+ "pX": "329700,329700",
+ "pY": "563000,563250"
+ },
+ {
+ "IdS": 218993,
+ "pX": "329700,329700,329850",
+ "pY": "563250,563850,564000"
+ },
+ {
+ "IdS": 218994,
+ "pX": "329700,330600",
+ "pY": "563250,563250"
+ },
+ {
+ "IdS": 218995,
+ "pX": "339550,339800",
+ "pY": "575100,574200"
+ },
+ {
+ "IdS": 218998,
+ "pX": "336450,336515",
+ "pY": "571250,571250"
+ },
+ {
+ "IdS": 218999,
+ "pX": "336450,336450",
+ "pY": "571250,571400"
+ },
+ {
+ "IdS": 219000,
+ "pX": "336450,336250",
+ "pY": "571400,571400"
+ },
+ {
+ "IdS": 219003,
+ "pX": "336255.03,336240.01",
+ "pY": "570710,570674.99"
+ },
+ {
+ "IdS": 219004,
+ "pX": "336240.01,336255.01",
+ "pY": "570674.99,570660.05"
+ },
+ {
+ "IdS": 219005,
+ "pX": "342740,343060",
+ "pY": "574470,573755"
+ },
+ {
+ "IdS": 219006,
+ "pX": "380450,380450",
+ "pY": "544950,545400"
+ },
+ {
+ "IdS": 219007,
+ "pX": "336255.03,336255.01",
+ "pY": "570710,570660.05"
+ },
+ {
+ "IdS": 219008,
+ "pX": "342015,342015",
+ "pY": "557640,557730"
+ },
+ {
+ "IdS": 219009,
+ "pX": "342015,341510,341400",
+ "pY": "557730,557730,557500"
+ },
+ {
+ "IdS": 219020,
+ "pX": "356100,355150",
+ "pY": "526050,525850"
+ },
+ {
+ "IdS": 219021,
+ "pX": "357150,356100",
+ "pY": "526400,526050"
+ },
+ {
+ "IdS": 219022,
+ "pX": "357900,357150",
+ "pY": "527100,526400"
+ },
+ {
+ "IdS": 219023,
+ "pX": "358400,357900",
+ "pY": "527800,527100"
+ },
+ {
+ "IdS": 219024,
+ "pX": "359250,358400",
+ "pY": "529000,527800"
+ },
+ {
+ "IdS": 219025,
+ "pX": "360000,359250",
+ "pY": "529950,529000"
+ },
+ {
+ "IdS": 219026,
+ "pX": "345030,345140",
+ "pY": "554350,554350"
+ },
+ {
+ "IdS": 219027,
+ "pX": "345140,345195",
+ "pY": "554350,554350"
+ },
+ {
+ "IdS": 219031,
+ "pX": "338350,337898.73",
+ "pY": "547700,547700.24"
+ },
+ {
+ "IdS": 219033,
+ "pX": "337898.73,337898.45",
+ "pY": "547700.24,547901.02"
+ },
+ {
+ "IdS": 219034,
+ "pX": "360700,360000",
+ "pY": "531050,529950"
+ },
+ {
+ "IdS": 219035,
+ "pX": "361350,360700",
+ "pY": "532100,531050"
+ },
+ {
+ "IdS": 219036,
+ "pX": "362000,361350",
+ "pY": "532900,532100"
+ },
+ {
+ "IdS": 219037,
+ "pX": "363200,362000",
+ "pY": "533750,532900"
+ },
+ {
+ "IdS": 219040,
+ "pX": "368150,366450",
+ "pY": "538650,538650"
+ },
+ {
+ "IdS": 219043,
+ "pX": "366450,365700",
+ "pY": "537900,537900"
+ },
+ {
+ "IdS": 219049,
+ "pX": "364250,364250",
+ "pY": "536650,536050"
+ },
+ {
+ "IdS": 219050,
+ "pX": "364250,364750",
+ "pY": "536050,536050"
+ },
+ {
+ "IdS": 219051,
+ "pX": "364750,364750",
+ "pY": "536050,535400"
+ },
+ {
+ "IdS": 219056,
+ "pX": "368280,367800",
+ "pY": "541340,540950"
+ },
+ {
+ "IdS": 219057,
+ "pX": "368150,368150",
+ "pY": "540500,539865"
+ },
+ {
+ "IdS": 219059,
+ "pX": "368280,368280,367850",
+ "pY": "541340,541300,540950"
+ },
+ {
+ "IdS": 219062,
+ "pX": "373900,374100",
+ "pY": "546450,546450"
+ },
+ {
+ "IdS": 219065,
+ "pX": "335200,335200",
+ "pY": "564000,564260"
+ },
+ {
+ "IdS": 219093,
+ "pX": "336280.16,335645",
+ "pY": "570919.95,570920"
+ },
+ {
+ "IdS": 219105,
+ "pX": "368835,368650,368650",
+ "pY": "554070,554170,554200"
+ },
+ {
+ "IdS": 219111,
+ "pX": "348580,348570",
+ "pY": "577220,577235"
+ },
+ {
+ "IdS": 219115,
+ "pX": "345815,346250",
+ "pY": "576050,576050"
+ },
+ {
+ "IdS": 219122,
+ "pX": "356700,356680,356595.05",
+ "pY": "552500,552440,552439.81"
+ },
+ {
+ "IdS": 219126,
+ "pX": "337485,337700",
+ "pY": "561335,561455"
+ },
+ {
+ "IdS": 219129,
+ "pX": "339990,340152.61",
+ "pY": "572810,572849.21"
+ },
+ {
+ "IdS": 219132,
+ "pX": "350975,350930",
+ "pY": "579945,579990"
+ },
+ {
+ "IdS": 219134,
+ "pX": "335450,335380,334860,334820,334715,334715,335380,334820,334860,334690",
+ "pY": "571345,571345,570375,570390,570765,570835,570835,570765,569730,569730"
+ },
+ {
+ "IdS": 219137,
+ "pX": "375650,375430,375350",
+ "pY": "550595,550595,550600"
+ },
+ {
+ "IdS": 219138,
+ "pX": "372464.81,372605,372700",
+ "pY": "550254.82,550290,550400"
+ },
+ {
+ "IdS": 219139,
+ "pX": "372460.01,372445",
+ "pY": "550244.91,550265.02"
+ },
+ {
+ "IdS": 219146,
+ "pX": "366350,366615,368505,369440",
+ "pY": "548460,548365,549480,549900"
+ },
+ {
+ "IdS": 219160,
+ "pX": "345685,345775,345775",
+ "pY": "553935,553935,553950"
+ },
+ {
+ "IdS": 219162,
+ "pX": "336380,336400",
+ "pY": "563880,563900"
+ },
+ {
+ "IdS": 219164,
+ "pX": "335450.04,335450",
+ "pY": "566750.02,566905"
+ },
+ {
+ "IdS": 219167,
+ "pX": "332250,332335",
+ "pY": "569550,569630"
+ },
+ {
+ "IdS": 219168,
+ "pX": "332445,332445,332065",
+ "pY": "569455,569855,572200"
+ },
+ {
+ "IdS": 219171,
+ "pX": "331785,331470.75",
+ "pY": "573340,573261.59"
+ },
+ {
+ "IdS": 219173,
+ "pX": "331195,330905.43",
+ "pY": "575745,575680.13"
+ },
+ {
+ "IdS": 219175,
+ "pX": "333749.54,333750",
+ "pY": "566229.09,566350"
+ },
+ {
+ "IdS": 219177,
+ "pX": "331000,330300",
+ "pY": "563700,563700"
+ },
+ {
+ "IdS": 219179,
+ "pX": "331000,330600",
+ "pY": "563250,563250"
+ },
+ {
+ "IdS": 219182,
+ "pX": "346200,346100",
+ "pY": "549480,549450"
+ },
+ {
+ "IdS": 219183,
+ "pX": "346465,346550",
+ "pY": "545950,545950"
+ },
+ {
+ "IdS": 219187,
+ "pX": "344255,344300",
+ "pY": "542795,542900"
+ },
+ {
+ "IdS": 219192,
+ "pX": "342042.38,342020.04",
+ "pY": "540122.45,540145.09"
+ },
+ {
+ "IdS": 219194,
+ "pX": "341339.94,341295",
+ "pY": "530250.02,530250"
+ },
+ {
+ "IdS": 219212,
+ "pX": "381500,381600",
+ "pY": "543450,543650"
+ },
+ {
+ "IdS": 219221,
+ "pX": "341845,342020",
+ "pY": "559080,559180"
+ },
+ {
+ "IdS": 219223,
+ "pX": "336284.92,341510,338545,336395,337230,336805,336970,337835,341510,341845,341845",
+ "pY": "563879.08,559505,561595,563830,562190,562780,563000,562615,559400,559300,559080"
+ },
+ {
+ "IdS": 219224,
+ "pX": "341845,342220,341850,342440,342825,342840",
+ "pY": "559080,559130,559080,559005,558790,558780"
+ },
+ {
+ "IdS": 219231,
+ "pX": "346045,345925,346145,346245,346180,346350",
+ "pY": "553980,553920,552585,551930,552615,551360"
+ },
+ {
+ "IdS": 219232,
+ "pX": "345675,345765,345806.24,346045",
+ "pY": "553945,553945,553956.64,553980"
+ },
+ {
+ "IdS": 219233,
+ "pX": "345685,345685,345665,345675",
+ "pY": "553915,553910,553910,553945"
+ },
+ {
+ "IdS": 219234,
+ "pX": "345685,345685",
+ "pY": "553935,553915"
+ },
+ {
+ "IdS": 219239,
+ "pX": "346350,346495,346380,346495",
+ "pY": "551360,550950,551190,549480"
+ },
+ {
+ "IdS": 219240,
+ "pX": "346495,346200",
+ "pY": "549480,549480"
+ },
+ {
+ "IdS": 219247,
+ "pX": "342840,342850",
+ "pY": "558780,558800"
+ },
+ {
+ "IdS": 219249,
+ "pX": "330750,330500",
+ "pY": "569550,569550"
+ },
+ {
+ "IdS": 219260,
+ "pX": "349500,349350",
+ "pY": "563400,563400"
+ },
+ {
+ "IdS": 219268,
+ "pX": "366175,365995,366150,365995",
+ "pY": "552560,552725,552565,552750"
+ },
+ {
+ "IdS": 219269,
+ "pX": "351759.81,351600,351600",
+ "pY": "551689.55,552050,552100"
+ },
+ {
+ "IdS": 219271,
+ "pX": "364660,365350",
+ "pY": "536900,536900"
+ },
+ {
+ "IdS": 219273,
+ "pX": "344255,344290,344290,342042.38",
+ "pY": "542795,542780,542365,540122.45"
+ },
+ {
+ "IdS": 219276,
+ "pX": "344039.81,339823.55,339722.19",
+ "pY": "542999.68,547041.8,547043.08"
+ },
+ {
+ "IdS": 219279,
+ "pX": "339722.19,338651.74",
+ "pY": "547043.08,547043.64"
+ },
+ {
+ "IdS": 219280,
+ "pX": "346495,346480,346545,346495,346495,346545,346495,346545,346545,346465",
+ "pY": "549480,545955,548200,548550,548260,549445,549445,545955,548600,545950"
+ },
+ {
+ "IdS": 219284,
+ "pX": "355959.81,356299.44",
+ "pY": "580610.04,580504.54"
+ },
+ {
+ "IdS": 219288,
+ "pX": "335200,335565,335760,336245",
+ "pY": "564000,564000,563900,563900"
+ },
+ {
+ "IdS": 219289,
+ "pX": "336245,336400",
+ "pY": "563900,563900"
+ },
+ {
+ "IdS": 219291,
+ "pX": "336245,336230,336230,336230",
+ "pY": "563900,563880,563780,563780"
+ },
+ {
+ "IdS": 219292,
+ "pX": "336245,336260,336260",
+ "pY": "563900,563880,563780"
+ },
+ {
+ "IdS": 219293,
+ "pX": "364050.02,364050",
+ "pY": "552949.72,552775"
+ },
+ {
+ "IdS": 219295,
+ "pX": "336284.92,336400",
+ "pY": "563879.08,563900"
+ },
+ {
+ "IdS": 219298,
+ "pX": "356650,356650",
+ "pY": "578415,577335"
+ },
+ {
+ "IdS": 219299,
+ "pX": "356650,356650",
+ "pY": "577335,576470"
+ },
+ {
+ "IdS": 219304,
+ "pX": "369440,369440,369600,369600,368865",
+ "pY": "549900,549675,549675,552440,554070"
+ },
+ {
+ "IdS": 219305,
+ "pX": "350975,351005,351005,354400,354705,354705,355000,355100,355120,355165,355615,355959.81",
+ "pY": "579945,579950,580140,580645,580845,580645,580905,580865,580840,580840,580710,580610.04"
+ },
+ {
+ "IdS": 219306,
+ "pX": "345815,345990,346285,348580",
+ "pY": "576050,576145,576055,577220"
+ },
+ {
+ "IdS": 219307,
+ "pX": "348580,350445,350935,350935,350975",
+ "pY": "577220,578185,579835,579935,579945"
+ },
+ {
+ "IdS": 219308,
+ "pX": "339990,339990,341545,341560,345815",
+ "pY": "572810,572975,573785,573840,576050"
+ },
+ {
+ "IdS": 219309,
+ "pX": "338950,338985,338985,339440,339470,339990",
+ "pY": "571610,571655,572195,572650,572650,572810"
+ },
+ {
+ "IdS": 219317,
+ "pX": "373800,373800,373900",
+ "pY": "546100,546450,546450"
+ },
+ {
+ "IdS": 219318,
+ "pX": "373900,373900,373800,373800",
+ "pY": "546450,546500,546500,546700"
+ },
+ {
+ "IdS": 219326,
+ "pX": "334535,334895,334680,334945,335345,335340,335490",
+ "pY": "569140,569110,569110,569380,569395,569380,569395"
+ },
+ {
+ "IdS": 219327,
+ "pX": "332065,331785",
+ "pY": "572200,573340"
+ },
+ {
+ "IdS": 219328,
+ "pX": "331785,331195",
+ "pY": "573340,575745"
+ },
+ {
+ "IdS": 219329,
+ "pX": "342840,342855,345085,343630,345335,345340,346115,346490,346490,346905,344020,346500,346515,345155,345160,347025",
+ "pY": "558780,558770,555320,557325,555135,555100,554475,554900,555200,555590,557325,555205,555205,555270,555260,555590"
+ },
+ {
+ "IdS": 219330,
+ "pX": "347025,347065",
+ "pY": "555590,555590"
+ },
+ {
+ "IdS": 219333,
+ "pX": "335285,335285,335530,335530,336110,336110,335765,335765,335795,335795,335765,335765,336295,336380",
+ "pY": "566830,566440,566440,565935,565935,565565,565340,565120,565090,564925,563985,564905,563905,563880"
+ },
+ {
+ "IdS": 219338,
+ "pX": "346465,345555.01,344925,344205.31,346730,346545,346480,345850,346540,344039.81",
+ "pY": "545950,543555,543555,543185.08,543705,545945,545945,543705,544075,542999.68"
+ },
+ {
+ "IdS": 219344,
+ "pX": "341339.94,341450,341550,341450",
+ "pY": "530250.02,528500,528750,527000"
+ },
+ {
+ "IdS": 219351,
+ "pX": "370900,372305",
+ "pY": "535100,535100"
+ },
+ {
+ "IdS": 219352,
+ "pX": "372305,371295,372305,371295",
+ "pY": "535100,534950,534950,534900"
+ },
+ {
+ "IdS": 219353,
+ "pX": "351759.81,352405,352430,352675,352690,353700,353600,352950,354600,355600,355150,354200,356570",
+ "pY": "551689.55,551835,551825,551875,551895,552045,552095,551945,552145,552315,552245,552095,552440"
+ },
+ {
+ "IdS": 219354,
+ "pX": "356570,356755,362065",
+ "pY": "552440,552180,550095"
+ },
+ {
+ "IdS": 219355,
+ "pX": "362065,363745",
+ "pY": "550095,549435"
+ },
+ {
+ "IdS": 219358,
+ "pX": "365460,366350",
+ "pY": "548780,548460"
+ },
+ {
+ "IdS": 219362,
+ "pX": "365460,367185,366175",
+ "pY": "548780,551550,552560"
+ },
+ {
+ "IdS": 219364,
+ "pX": "372429.77,372459.96",
+ "pY": "550240.05,550239.98"
+ },
+ {
+ "IdS": 219365,
+ "pX": "372459.96,373550,374950,375650",
+ "pY": "550239.98,550245,550345,550595"
+ },
+ {
+ "IdS": 219375,
+ "pX": "372805,372725,372805,372700,372555,372305,372305",
+ "pY": "546085,545950,546075,545945,545700,545200,542350"
+ },
+ {
+ "IdS": 219376,
+ "pX": "371020,372245",
+ "pY": "548260,547695"
+ },
+ {
+ "IdS": 219379,
+ "pX": "372305,370940,372305",
+ "pY": "542350,541205,537150"
+ },
+ {
+ "IdS": 219384,
+ "pX": "335450.04,335390,335285",
+ "pY": "566750.02,566765,566830"
+ },
+ {
+ "IdS": 219385,
+ "pX": "333749.54,331000",
+ "pY": "566229.09,563700"
+ },
+ {
+ "IdS": 219386,
+ "pX": "331000,331000",
+ "pY": "563700,563400"
+ },
+ {
+ "IdS": 219388,
+ "pX": "331000,331000",
+ "pY": "563400,563250"
+ },
+ {
+ "IdS": 219389,
+ "pX": "331000,329575",
+ "pY": "563250,562555"
+ },
+ {
+ "IdS": 219399,
+ "pX": "332065,331700",
+ "pY": "572200,572200"
+ },
+ {
+ "IdS": 219400,
+ "pX": "336100,336100",
+ "pY": "575150,574700"
+ },
+ {
+ "IdS": 219403,
+ "pX": "372805,372710,372700",
+ "pY": "546085,545955,545950"
+ },
+ {
+ "IdS": 219405,
+ "pX": "336100,336100",
+ "pY": "574700,574100"
+ },
+ {
+ "IdS": 219406,
+ "pX": "336100,336100",
+ "pY": "574100,573800"
+ },
+ {
+ "IdS": 219409,
+ "pX": "337650,337200",
+ "pY": "580500,580050"
+ },
+ {
+ "IdS": 219410,
+ "pX": "336100,336100",
+ "pY": "573800,573550"
+ },
+ {
+ "IdS": 219411,
+ "pX": "336100,336100",
+ "pY": "573550,572900"
+ },
+ {
+ "IdS": 219412,
+ "pX": "379750,380050",
+ "pY": "544350,544600"
+ },
+ {
+ "IdS": 219413,
+ "pX": "380050,380450",
+ "pY": "544600,544950"
+ },
+ {
+ "IdS": 219418,
+ "pX": "373800,373500",
+ "pY": "546100,546100"
+ },
+ {
+ "IdS": 219422,
+ "pX": "332300,332050",
+ "pY": "547700,547700"
+ },
+ {
+ "IdS": 219423,
+ "pX": "332300,332300",
+ "pY": "547700,547900"
+ },
+ {
+ "IdS": 219425,
+ "pX": "379750,379350",
+ "pY": "545400,545200"
+ },
+ {
+ "IdS": 219426,
+ "pX": "378950,379195",
+ "pY": "545000,545120"
+ },
+ {
+ "IdS": 219429,
+ "pX": "368150,368150",
+ "pY": "539865,539550"
+ },
+ {
+ "IdS": 219430,
+ "pX": "368150,368150",
+ "pY": "539550,538650"
+ },
+ {
+ "IdS": 219432,
+ "pX": "368280,368320",
+ "pY": "541340,541340"
+ },
+ {
+ "IdS": 219437,
+ "pX": "336345,336345",
+ "pY": "582065,580480"
+ },
+ {
+ "IdS": 219439,
+ "pX": "339800,339800",
+ "pY": "570950,570800"
+ },
+ {
+ "IdS": 219461,
+ "pX": "339722.19,339725",
+ "pY": "547043.08,547240"
+ },
+ {
+ "IdS": 219466,
+ "pX": "335750,335950",
+ "pY": "564900,564900"
+ },
+ {
+ "IdS": 219468,
+ "pX": "335954.47,336045.23",
+ "pY": "564900.01,564899.99"
+ },
+ {
+ "IdS": 219469,
+ "pX": "336050,336900",
+ "pY": "564900,564900"
+ },
+ {
+ "IdS": 219472,
+ "pX": "346500,346300",
+ "pY": "559750,559750"
+ },
+ {
+ "IdS": 219473,
+ "pX": "346300,345450,344750",
+ "pY": "559750,559750,559350"
+ },
+ {
+ "IdS": 219478,
+ "pX": "336515,336515",
+ "pY": "571800,572050"
+ },
+ {
+ "IdS": 219501,
+ "pX": "348045,348215",
+ "pY": "562240,562605"
+ },
+ {
+ "IdS": 219502,
+ "pX": "349500,352300,352190,352190",
+ "pY": "563400,566320,566320,566340"
+ },
+ {
+ "IdS": 219503,
+ "pX": "352190,352190,352340,353900",
+ "pY": "566340,566365,566365,568200"
+ },
+ {
+ "IdS": 219505,
+ "pX": "353400,352700,352700",
+ "pY": "568200,568200,571200"
+ },
+ {
+ "IdS": 219508,
+ "pX": "375650,375740",
+ "pY": "550595,550595"
+ },
+ {
+ "IdS": 219509,
+ "pX": "367840,367610",
+ "pY": "549790,549670"
+ },
+ {
+ "IdS": 219510,
+ "pX": "367610,367410",
+ "pY": "549670,549565"
+ },
+ {
+ "IdS": 219511,
+ "pX": "338300,338269.49",
+ "pY": "579600,579707.2"
+ },
+ {
+ "IdS": 219512,
+ "pX": "338269.49,338200",
+ "pY": "579707.2,579950"
+ },
+ {
+ "IdS": 219513,
+ "pX": "353400,353400,353400,353400",
+ "pY": "568200,568450,568350,568900"
+ },
+ {
+ "IdS": 219515,
+ "pX": "344685,344600",
+ "pY": "553700,553700"
+ },
+ {
+ "IdS": 219516,
+ "pX": "344685,344600",
+ "pY": "554300,554300"
+ },
+ {
+ "IdS": 219518,
+ "pX": "345675,344985,344985,345330,344685",
+ "pY": "553945,553855,553640,553945,553700"
+ },
+ {
+ "IdS": 219519,
+ "pX": "344685,344685",
+ "pY": "553700,554000"
+ },
+ {
+ "IdS": 219520,
+ "pX": "344685,344685",
+ "pY": "554000,554300"
+ },
+ {
+ "IdS": 219521,
+ "pX": "345685,345675,345675",
+ "pY": "553915,553915,553945"
+ },
+ {
+ "IdS": 219524,
+ "pX": "347155,347065,347065",
+ "pY": "555540,555540,555590"
+ },
+ {
+ "IdS": 219525,
+ "pX": "347325,347325",
+ "pY": "555275,554960"
+ },
+ {
+ "IdS": 219528,
+ "pX": "344685,344825,344825,345300",
+ "pY": "554000,554140,554555,555110"
+ },
+ {
+ "IdS": 219530,
+ "pX": "345300,345000,345210,344680.41",
+ "pY": "555110,555260,555110,555384.78"
+ },
+ {
+ "IdS": 219531,
+ "pX": "347305,347265,347265",
+ "pY": "554970,554970,554840"
+ },
+ {
+ "IdS": 219532,
+ "pX": "347305,347305",
+ "pY": "554970,554840"
+ },
+ {
+ "IdS": 219533,
+ "pX": "347265,347305",
+ "pY": "554840,554840"
+ },
+ {
+ "IdS": 219534,
+ "pX": "345685,346750,345690,345910,345765,347440",
+ "pY": "553935,554035,553940,553965,553940,554415"
+ },
+ {
+ "IdS": 219535,
+ "pX": "347325,347155",
+ "pY": "555275,555540"
+ },
+ {
+ "IdS": 219537,
+ "pX": "339800,340050,340050,340150",
+ "pY": "571550,572000,571550,572050"
+ },
+ {
+ "IdS": 219561,
+ "pX": "367800,367300.01",
+ "pY": "540950,540549.99"
+ },
+ {
+ "IdS": 219564,
+ "pX": "367300.01,367300",
+ "pY": "540549.99,540500"
+ },
+ {
+ "IdS": 219565,
+ "pX": "367300,368150",
+ "pY": "540500,540500"
+ },
+ {
+ "IdS": 219566,
+ "pX": "367300,367300",
+ "pY": "540500,540400"
+ },
+ {
+ "IdS": 219574,
+ "pX": "335999.4,336300.2",
+ "pY": "563105.04,563105.04"
+ },
+ {
+ "IdS": 219584,
+ "pX": "346550,346650",
+ "pY": "546500,546500"
+ },
+ {
+ "IdS": 219585,
+ "pX": "346650,346750",
+ "pY": "546500,546500"
+ },
+ {
+ "IdS": 219591,
+ "pX": "364750,364750",
+ "pY": "534500,533750"
+ },
+ {
+ "IdS": 219592,
+ "pX": "366450,366450",
+ "pY": "538650,537900"
+ },
+ {
+ "IdS": 219593,
+ "pX": "353900,353900",
+ "pY": "568200,568500"
+ },
+ {
+ "IdS": 219594,
+ "pX": "353900,353400",
+ "pY": "568200,568200"
+ },
+ {
+ "IdS": 219595,
+ "pX": "354550,356300",
+ "pY": "571200,571200"
+ },
+ {
+ "IdS": 219596,
+ "pX": "352800,356100,356300",
+ "pY": "571550,571550,571200"
+ },
+ {
+ "IdS": 219597,
+ "pX": "364250,364250,364250",
+ "pY": "537900,537800,537500"
+ },
+ {
+ "IdS": 219611,
+ "pX": "372305,372305",
+ "pY": "537150,535100"
+ },
+ {
+ "IdS": 219613,
+ "pX": "366350,366350",
+ "pY": "548490,548600"
+ },
+ {
+ "IdS": 219615,
+ "pX": "344039.81,344255,344255",
+ "pY": "542999.68,542910,542795"
+ },
+ {
+ "IdS": 219635,
+ "pX": "364250,364250,364250",
+ "pY": "537500,537200,536650"
+ },
+ {
+ "IdS": 219636,
+ "pX": "365700,364930",
+ "pY": "537900,537900"
+ },
+ {
+ "IdS": 219637,
+ "pX": "364930,364250",
+ "pY": "537900,537900"
+ },
+ {
+ "IdS": 219639,
+ "pX": "364930,364930.69",
+ "pY": "537900,537650.79"
+ },
+ {
+ "IdS": 219640,
+ "pX": "364930,364930,364655,364580",
+ "pY": "537900,537980,538285,538285"
+ },
+ {
+ "IdS": 219641,
+ "pX": "364580,364450,364450",
+ "pY": "538285,538285,538300"
+ },
+ {
+ "IdS": 219642,
+ "pX": "364580,364580,364410,364410,364450",
+ "pY": "538285,538245,538245,538300,538300"
+ },
+ {
+ "IdS": 219644,
+ "pX": "364750,364578.83",
+ "pY": "538300,538299.81"
+ },
+ {
+ "IdS": 219645,
+ "pX": "364578.83,364450",
+ "pY": "538299.81,538300"
+ },
+ {
+ "IdS": 219646,
+ "pX": "345675,345655,345685",
+ "pY": "553945,553905,553905"
+ },
+ {
+ "IdS": 219647,
+ "pX": "364750,364750",
+ "pY": "535400,534500"
+ },
+ {
+ "IdS": 219648,
+ "pX": "364750,363999.89",
+ "pY": "533750,533751.22"
+ },
+ {
+ "IdS": 219649,
+ "pX": "363999.89,363200",
+ "pY": "533751.22,533750"
+ },
+ {
+ "IdS": 219650,
+ "pX": "363999.89,363999.89",
+ "pY": "533751.22,534049.99"
+ },
+ {
+ "IdS": 219652,
+ "pX": "371399.47,371361.85",
+ "pY": "556506.37,556567.34"
+ },
+ {
+ "IdS": 219653,
+ "pX": "371399.47,371300",
+ "pY": "556506.37,556450"
+ },
+ {
+ "IdS": 219658,
+ "pX": "355150,354726.14",
+ "pY": "525850,525172.34"
+ },
+ {
+ "IdS": 219659,
+ "pX": "354726.14,354650",
+ "pY": "525172.34,525050"
+ },
+ {
+ "IdS": 219660,
+ "pX": "354726.14,355050.28",
+ "pY": "525172.34,525000.33"
+ },
+ {
+ "IdS": 219661,
+ "pX": "354650,354013.85",
+ "pY": "525050,524150.19"
+ },
+ {
+ "IdS": 219662,
+ "pX": "354000.27,353200",
+ "pY": "524131.3,523000"
+ },
+ {
+ "IdS": 219663,
+ "pX": "375350,375350,375600,375650",
+ "pY": "550600,550650,550650,550600"
+ },
+ {
+ "IdS": 219664,
+ "pX": "375350,375440,375595,375650",
+ "pY": "550600,550635,550635,550600"
+ },
+ {
+ "IdS": 219674,
+ "pX": "344950,344750",
+ "pY": "583200,583200"
+ },
+ {
+ "IdS": 219675,
+ "pX": "344950,345300",
+ "pY": "583200,583200"
+ },
+ {
+ "IdS": 219676,
+ "pX": "342450,342365",
+ "pY": "576949.99,576845"
+ },
+ {
+ "IdS": 219677,
+ "pX": "342365,342250",
+ "pY": "576845,576700"
+ },
+ {
+ "IdS": 219679,
+ "pX": "345000,345150",
+ "pY": "583000,582400"
+ },
+ {
+ "IdS": 219682,
+ "pX": "344950,345000",
+ "pY": "583200,583000"
+ },
+ {
+ "IdS": 219684,
+ "pX": "336525,336680",
+ "pY": "583070,583035"
+ },
+ {
+ "IdS": 219685,
+ "pX": "336680,336750",
+ "pY": "583035,583000"
+ },
+ {
+ "IdS": 219695,
+ "pX": "347350,347299.78,347300",
+ "pY": "588550,588550.1,588200"
+ },
+ {
+ "IdS": 219698,
+ "pX": "339550,339550,339549.96",
+ "pY": "571540,571500,571478.88"
+ },
+ {
+ "IdS": 219699,
+ "pX": "339549.96,339550",
+ "pY": "571478.88,571450"
+ },
+ {
+ "IdS": 219727,
+ "pX": "345395,345685",
+ "pY": "553850,553935"
+ },
+ {
+ "IdS": 219728,
+ "pX": "347440,347435,347325",
+ "pY": "554415,555100,555275"
+ },
+ {
+ "IdS": 219729,
+ "pX": "347440,347900,347800,347800",
+ "pY": "554415,554645,554845,554850"
+ },
+ {
+ "IdS": 219730,
+ "pX": "338150,338670.01",
+ "pY": "570200,570200"
+ },
+ {
+ "IdS": 219763,
+ "pX": "353400,351800,351805",
+ "pY": "568900,568900,566335"
+ },
+ {
+ "IdS": 219766,
+ "pX": "370800,370610",
+ "pY": "544500,544170"
+ },
+ {
+ "IdS": 219768,
+ "pX": "370610,370770",
+ "pY": "544170,544170"
+ },
+ {
+ "IdS": 219769,
+ "pX": "346750,346750,347325,347325",
+ "pY": "554045,554430,554700,554960"
+ },
+ {
+ "IdS": 219772,
+ "pX": "372800,372400",
+ "pY": "551800,551800"
+ },
+ {
+ "IdS": 219778,
+ "pX": "334200,334450",
+ "pY": "566350,566350"
+ },
+ {
+ "IdS": 219780,
+ "pX": "374950,373549.58",
+ "pY": "550350,550270.29"
+ },
+ {
+ "IdS": 219785,
+ "pX": "383250,382850",
+ "pY": "540100,540350"
+ },
+ {
+ "IdS": 219786,
+ "pX": "382850,382400",
+ "pY": "540350,540600"
+ },
+ {
+ "IdS": 219829,
+ "pX": "340205,340500",
+ "pY": "572764.96,572200"
+ },
+ {
+ "IdS": 219830,
+ "pX": "340500,340650",
+ "pY": "572200,571900"
+ },
+ {
+ "IdS": 219834,
+ "pX": "340500,340700",
+ "pY": "572200,572300"
+ },
+ {
+ "IdS": 219835,
+ "pX": "379350,379750",
+ "pY": "543800,544350"
+ },
+ {
+ "IdS": 219836,
+ "pX": "334050,334050",
+ "pY": "564450,565005"
+ },
+ {
+ "IdS": 219851,
+ "pX": "338550,338400",
+ "pY": "581350,581200"
+ },
+ {
+ "IdS": 219853,
+ "pX": "338400,338449.88",
+ "pY": "581200,581150.41"
+ },
+ {
+ "IdS": 219857,
+ "pX": "334800,334700,334799.97,334700.16",
+ "pY": "570550,570750,570750.03,570850.13"
+ },
+ {
+ "IdS": 219865,
+ "pX": "335300.02,335200",
+ "pY": "570849.97,570750"
+ },
+ {
+ "IdS": 219868,
+ "pX": "335300.02,335300",
+ "pY": "570849.97,570650"
+ },
+ {
+ "IdS": 219881,
+ "pX": "335500,335500,335350,335249.44",
+ "pY": "570849.97,570900,570900,571149.91"
+ },
+ {
+ "IdS": 219883,
+ "pX": "335249.44,335250",
+ "pY": "571149.91,571300"
+ },
+ {
+ "IdS": 219890,
+ "pX": "341250,341350",
+ "pY": "531650,531000"
+ },
+ {
+ "IdS": 219891,
+ "pX": "341350,341350.07,341294.99,341295",
+ "pY": "531000,530270.01,530269.89,530250"
+ },
+ {
+ "IdS": 219892,
+ "pX": "336300,336545.03,336539.58",
+ "pY": "570300,570300.04,570879.56"
+ },
+ {
+ "IdS": 219900,
+ "pX": "334800,334649.97",
+ "pY": "569600,569450.69"
+ },
+ {
+ "IdS": 219907,
+ "pX": "336200,336060",
+ "pY": "570570,570570"
+ },
+ {
+ "IdS": 219908,
+ "pX": "336200,336200",
+ "pY": "570570,570505"
+ },
+ {
+ "IdS": 219909,
+ "pX": "336200,336225,336275",
+ "pY": "570505,570350,570250"
+ },
+ {
+ "IdS": 219910,
+ "pX": "336200,336050,336050",
+ "pY": "570505,570505,570570"
+ },
+ {
+ "IdS": 219913,
+ "pX": "338150,338450",
+ "pY": "578950,579050"
+ },
+ {
+ "IdS": 219914,
+ "pX": "338150,338245",
+ "pY": "578950,578775"
+ },
+ {
+ "IdS": 219915,
+ "pX": "337350.01,337815",
+ "pY": "578465.01,578755"
+ },
+ {
+ "IdS": 219917,
+ "pX": "337815,337875",
+ "pY": "578755,578790"
+ },
+ {
+ "IdS": 219918,
+ "pX": "337875,338150",
+ "pY": "578790,578950"
+ },
+ {
+ "IdS": 219923,
+ "pX": "337815,337765",
+ "pY": "578755,578840"
+ },
+ {
+ "IdS": 219924,
+ "pX": "337765,337735,337765",
+ "pY": "578840,578890,578905"
+ },
+ {
+ "IdS": 219925,
+ "pX": "337875,337825",
+ "pY": "578790,578870"
+ },
+ {
+ "IdS": 219926,
+ "pX": "337825,337795,337765",
+ "pY": "578870,578920,578905"
+ },
+ {
+ "IdS": 219930,
+ "pX": "346115,346650,346775",
+ "pY": "552390,552325,551950"
+ },
+ {
+ "IdS": 219931,
+ "pX": "346775,346515,346775,346780",
+ "pY": "551950,551570,551925,551150"
+ },
+ {
+ "IdS": 219968,
+ "pX": "341453.26,341300",
+ "pY": "575674.42,575800"
+ },
+ {
+ "IdS": 219969,
+ "pX": "340850.46,340850",
+ "pY": "536149.87,534800"
+ },
+ {
+ "IdS": 219984,
+ "pX": "363800,362500",
+ "pY": "549600,550100"
+ },
+ {
+ "IdS": 219985,
+ "pX": "362600,363850,363800",
+ "pY": "550300,549750,549600"
+ },
+ {
+ "IdS": 219987,
+ "pX": "335800,335780",
+ "pY": "572750,572655"
+ },
+ {
+ "IdS": 219989,
+ "pX": "335780,335800,335800",
+ "pY": "572655,572655,572700"
+ },
+ {
+ "IdS": 219990,
+ "pX": "335780,335750",
+ "pY": "572655,572500"
+ },
+ {
+ "IdS": 219992,
+ "pX": "335750,335850",
+ "pY": "572500,572500"
+ },
+ {
+ "IdS": 220002,
+ "pX": "335300.02,335500",
+ "pY": "570849.97,570849.97"
+ },
+ {
+ "IdS": 220003,
+ "pX": "335500,335535,335600",
+ "pY": "570849.97,570850,570950"
+ },
+ {
+ "IdS": 220007,
+ "pX": "336400,336349.88,336350",
+ "pY": "563900,563871.13,563650"
+ },
+ {
+ "IdS": 220033,
+ "pX": "335880,336249.93",
+ "pY": "555815,554899.89"
+ },
+ {
+ "IdS": 220035,
+ "pX": "336249.93,336420",
+ "pY": "554899.89,554525"
+ },
+ {
+ "IdS": 220062,
+ "pX": "331200,331200",
+ "pY": "564000,563835"
+ },
+ {
+ "IdS": 220064,
+ "pX": "346250,345860",
+ "pY": "580350,580675"
+ },
+ {
+ "IdS": 220069,
+ "pX": "346200,346300",
+ "pY": "577800,577800"
+ },
+ {
+ "IdS": 220084,
+ "pX": "346070,346177.08",
+ "pY": "566170,566076.9"
+ },
+ {
+ "IdS": 220085,
+ "pX": "346177.08,346570",
+ "pY": "566076.9,565725"
+ },
+ {
+ "IdS": 220086,
+ "pX": "346177.08,346335",
+ "pY": "566076.9,566245"
+ },
+ {
+ "IdS": 220087,
+ "pX": "368950,368735",
+ "pY": "554380,554250"
+ },
+ {
+ "IdS": 220088,
+ "pX": "368735,368650",
+ "pY": "554250,554200"
+ },
+ {
+ "IdS": 220091,
+ "pX": "335550,335550",
+ "pY": "572150,571500"
+ },
+ {
+ "IdS": 220092,
+ "pX": "335550,335650,335650",
+ "pY": "572150,572150,571800"
+ },
+ {
+ "IdS": 220101,
+ "pX": "335600,335690,335885,335845",
+ "pY": "570950,570985,571730,571750"
+ },
+ {
+ "IdS": 220111,
+ "pX": "336100,335925,335965",
+ "pY": "572900,572315,572300"
+ },
+ {
+ "IdS": 220112,
+ "pX": "335965,335920,335850",
+ "pY": "572300,572290,571950"
+ },
+ {
+ "IdS": 220113,
+ "pX": "335845,335895,336005,335965",
+ "pY": "571750,571750,572290,572300"
+ },
+ {
+ "IdS": 220114,
+ "pX": "335965,336140,336010,336100",
+ "pY": "572300,572835,572315,572900"
+ },
+ {
+ "IdS": 220120,
+ "pX": "334899.39,335049.97",
+ "pY": "570849.69,570849.97"
+ },
+ {
+ "IdS": 220121,
+ "pX": "335049.97,335300.02",
+ "pY": "570849.97,570849.97"
+ },
+ {
+ "IdS": 220122,
+ "pX": "335049.97,335050",
+ "pY": "570849.97,571240"
+ },
+ {
+ "IdS": 220134,
+ "pX": "336300,336299.99",
+ "pY": "573100,573199.17"
+ },
+ {
+ "IdS": 220137,
+ "pX": "372245,372280,372395,372240,372245,371735,372055",
+ "pY": "547695,547580,547580,547500,547670,546545,546380"
+ },
+ {
+ "IdS": 220140,
+ "pX": "375150,375410,375675",
+ "pY": "534050,533795,533300"
+ },
+ {
+ "IdS": 220145,
+ "pX": "334800,334850,334850.63",
+ "pY": "569600,569400,568963.51"
+ },
+ {
+ "IdS": 220146,
+ "pX": "334850.63,334849.34",
+ "pY": "568963.51,568199.92"
+ },
+ {
+ "IdS": 220149,
+ "pX": "340500,340755.69",
+ "pY": "569400,569167.48"
+ },
+ {
+ "IdS": 220150,
+ "pX": "340755.69,341050",
+ "pY": "569167.48,568900"
+ },
+ {
+ "IdS": 220151,
+ "pX": "366989.87,367191.75",
+ "pY": "555208.89,555087.66"
+ },
+ {
+ "IdS": 220152,
+ "pX": "367191.75,367246.75",
+ "pY": "555087.66,555053.93"
+ },
+ {
+ "IdS": 220153,
+ "pX": "385100,384990",
+ "pY": "539050,539115"
+ },
+ {
+ "IdS": 220154,
+ "pX": "384990,384150",
+ "pY": "539115,539600"
+ },
+ {
+ "IdS": 220155,
+ "pX": "384990,385099.98,385029.28,385090",
+ "pY": "539115,539254.93,539134.32,539290"
+ },
+ {
+ "IdS": 220156,
+ "pX": "385090,385054.92,384979.94,384990",
+ "pY": "539290,539279.81,539155.46,539115"
+ },
+ {
+ "IdS": 220157,
+ "pX": "342700,342700",
+ "pY": "592300,591800"
+ },
+ {
+ "IdS": 220158,
+ "pX": "342700,342700",
+ "pY": "591800,591600"
+ },
+ {
+ "IdS": 220159,
+ "pX": "342700,343000",
+ "pY": "591800,591800"
+ },
+ {
+ "IdS": 220160,
+ "pX": "342900,342900.46,343000",
+ "pY": "592100,591949.51,591950"
+ },
+ {
+ "IdS": 220161,
+ "pX": "343000,343000",
+ "pY": "591950,591800"
+ },
+ {
+ "IdS": 220162,
+ "pX": "342700.05,342750,342750,342900",
+ "pY": "592400.05,592400,592100,592100"
+ },
+ {
+ "IdS": 220163,
+ "pX": "342900,343300",
+ "pY": "592100,592100"
+ },
+ {
+ "IdS": 220164,
+ "pX": "342900,342900,343300",
+ "pY": "592100,592200,592200"
+ },
+ {
+ "IdS": 220165,
+ "pX": "343300,343600",
+ "pY": "592200,592200"
+ },
+ {
+ "IdS": 220166,
+ "pX": "342900,342805",
+ "pY": "592100,592195"
+ },
+ {
+ "IdS": 220167,
+ "pX": "343000,343200",
+ "pY": "591950,591950"
+ },
+ {
+ "IdS": 220187,
+ "pX": "333218.06,333345.24",
+ "pY": "559635.52,559459.88"
+ },
+ {
+ "IdS": 220267,
+ "pX": "336100,336100",
+ "pY": "575750,575650"
+ },
+ {
+ "IdS": 220268,
+ "pX": "336100,336100",
+ "pY": "575650,575150"
+ },
+ {
+ "IdS": 220270,
+ "pX": "335995.76,336100",
+ "pY": "575808.69,575750"
+ },
+ {
+ "IdS": 220279,
+ "pX": "336100,336201.28",
+ "pY": "575750,575699.04"
+ },
+ {
+ "IdS": 220295,
+ "pX": "340805.01,341240,341240,341340,341339.94",
+ "pY": "534799.99,532155,531650,531000,530250.02"
+ },
+ {
+ "IdS": 220470,
+ "pX": "369325,369440",
+ "pY": "549900,549900"
+ },
+ {
+ "IdS": 220471,
+ "pX": "369440,369500,369950,370550,370800,371450,371850,372050,372345,372429.77",
+ "pY": "549900,549945,549945,550095,550145,550145,550195,550195,550230,550240.05"
+ },
+ {
+ "IdS": 220515,
+ "pX": "349150,349150,347080",
+ "pY": "559885,560000,560000"
+ },
+ {
+ "IdS": 220525,
+ "pX": "347440,347440",
+ "pY": "557550,558030"
+ },
+ {
+ "IdS": 220526,
+ "pX": "347440,349130,349150",
+ "pY": "558030,559885,559885"
+ },
+ {
+ "IdS": 220527,
+ "pX": "342464.99,342440",
+ "pY": "563600.07,563600"
+ },
+ {
+ "IdS": 220645,
+ "pX": "334300,334375",
+ "pY": "569800,569800"
+ },
+ {
+ "IdS": 220646,
+ "pX": "334375,334450",
+ "pY": "569800,569800"
+ },
+ {
+ "IdS": 220647,
+ "pX": "334375,334375",
+ "pY": "569800,569900"
+ },
+ {
+ "IdS": 220653,
+ "pX": "339550,339549.56,339815.17",
+ "pY": "573800,573735.61,573309.77"
+ },
+ {
+ "IdS": 220661,
+ "pX": "377650,377550",
+ "pY": "543340,543400"
+ },
+ {
+ "IdS": 220662,
+ "pX": "372300,372265,372110",
+ "pY": "546400,546370,546445"
+ },
+ {
+ "IdS": 220663,
+ "pX": "336201.28,336595.37",
+ "pY": "575699.04,575482.83"
+ },
+ {
+ "IdS": 220671,
+ "pX": "376845,377800,377650",
+ "pY": "544300,543550,543340"
+ },
+ {
+ "IdS": 220672,
+ "pX": "373300,373300",
+ "pY": "546100,545950"
+ },
+ {
+ "IdS": 220673,
+ "pX": "374500,374405",
+ "pY": "545550,545405"
+ },
+ {
+ "IdS": 220678,
+ "pX": "375650,375480",
+ "pY": "545000,544750"
+ },
+ {
+ "IdS": 220679,
+ "pX": "336595.37,336955.24",
+ "pY": "575482.83,575286.71"
+ },
+ {
+ "IdS": 220681,
+ "pX": "376845,376700",
+ "pY": "544300,544050"
+ },
+ {
+ "IdS": 220682,
+ "pX": "336955.24,337510.13",
+ "pY": "575286.71,574987.83"
+ },
+ {
+ "IdS": 220683,
+ "pX": "337510.13,337897.44",
+ "pY": "574987.83,574774.37"
+ },
+ {
+ "IdS": 220684,
+ "pX": "337897.44,338645",
+ "pY": "574774.37,574640"
+ },
+ {
+ "IdS": 220696,
+ "pX": "336700,336700,336700",
+ "pY": "570750,570550,570100"
+ },
+ {
+ "IdS": 220697,
+ "pX": "336300,336300,336255.03",
+ "pY": "570300,570550,570710"
+ },
+ {
+ "IdS": 220700,
+ "pX": "336550,336615",
+ "pY": "570900,570840"
+ },
+ {
+ "IdS": 220701,
+ "pX": "336615,336700",
+ "pY": "570840,570750"
+ },
+ {
+ "IdS": 220710,
+ "pX": "332800,332675",
+ "pY": "547700,547700"
+ },
+ {
+ "IdS": 220712,
+ "pX": "332675,332625",
+ "pY": "547700,547700"
+ },
+ {
+ "IdS": 220713,
+ "pX": "332625,332300",
+ "pY": "547700,547700"
+ },
+ {
+ "IdS": 220714,
+ "pX": "332675,332675,332650",
+ "pY": "547700,547850,547850"
+ },
+ {
+ "IdS": 220715,
+ "pX": "332625,332625,332650",
+ "pY": "547700,547850,547850"
+ },
+ {
+ "IdS": 220720,
+ "pX": "339800,339800.01",
+ "pY": "571300,571149.99"
+ },
+ {
+ "IdS": 220721,
+ "pX": "339800.01,339800",
+ "pY": "571149.99,571100"
+ },
+ {
+ "IdS": 220758,
+ "pX": "333500,333500.03",
+ "pY": "570500,570017.05"
+ },
+ {
+ "IdS": 220759,
+ "pX": "333500.03,333430.02,333500,333395.08",
+ "pY": "570017.05,569784.97,569785,569774.88"
+ },
+ {
+ "IdS": 220768,
+ "pX": "340095,340095,340152.61",
+ "pY": "572785.01,572804.99,572849.21"
+ },
+ {
+ "IdS": 220769,
+ "pX": "340152.61,340185,340205",
+ "pY": "572849.21,572915,572915"
+ },
+ {
+ "IdS": 220770,
+ "pX": "340205,340460,340205,341550",
+ "pY": "572915,573285,572935,573850"
+ },
+ {
+ "IdS": 220771,
+ "pX": "339815.17,340075,340095",
+ "pY": "573309.77,572915,572915"
+ },
+ {
+ "IdS": 220772,
+ "pX": "340095,340095,340152.61",
+ "pY": "572915,572895.01,572849.21"
+ },
+ {
+ "IdS": 220773,
+ "pX": "340152.61,340080",
+ "pY": "572849.21,572850"
+ },
+ {
+ "IdS": 220774,
+ "pX": "340080,339470",
+ "pY": "572850,572660"
+ },
+ {
+ "IdS": 220776,
+ "pX": "340095,340115,340152.61",
+ "pY": "572915,572915.01,572849.21"
+ },
+ {
+ "IdS": 220777,
+ "pX": "340180,340205,340205",
+ "pY": "572875,572900,572915"
+ },
+ {
+ "IdS": 220778,
+ "pX": "340205,340225,340700",
+ "pY": "572915,572915,573200"
+ },
+ {
+ "IdS": 220779,
+ "pX": "340152.61,340205.01,340205",
+ "pY": "572849.21,572805,572784.99"
+ },
+ {
+ "IdS": 220780,
+ "pX": "340205,340225,340550",
+ "pY": "572784.99,572785,572850"
+ },
+ {
+ "IdS": 220781,
+ "pX": "340152.61,340185,340205",
+ "pY": "572849.21,572785,572784.99"
+ },
+ {
+ "IdS": 220782,
+ "pX": "340205,340205",
+ "pY": "572784.99,572764.96"
+ },
+ {
+ "IdS": 220785,
+ "pX": "340152.61,340115,340095",
+ "pY": "572849.21,572785,572785.01"
+ },
+ {
+ "IdS": 220786,
+ "pX": "340095,340095,340250",
+ "pY": "572785.01,572765.01,572300"
+ },
+ {
+ "IdS": 220795,
+ "pX": "339800,340135,340150",
+ "pY": "574200,572950,572934.99"
+ },
+ {
+ "IdS": 220796,
+ "pX": "340150,340135,340152.61",
+ "pY": "572934.99,572920,572849.21"
+ },
+ {
+ "IdS": 220798,
+ "pX": "340150,340165,340152.61",
+ "pY": "572934.99,572920,572849.21"
+ },
+ {
+ "IdS": 220826,
+ "pX": "344990,344900.17",
+ "pY": "575640,575799.27"
+ },
+ {
+ "IdS": 220832,
+ "pX": "349876.77,349750",
+ "pY": "560191.63,560350"
+ },
+ {
+ "IdS": 220833,
+ "pX": "350549.97,350600",
+ "pY": "560580.02,560500"
+ },
+ {
+ "IdS": 220835,
+ "pX": "349360,349150",
+ "pY": "559875,559750"
+ },
+ {
+ "IdS": 220836,
+ "pX": "349360,349250.16",
+ "pY": "559875,560049.19"
+ },
+ {
+ "IdS": 220875,
+ "pX": "380100,380100",
+ "pY": "545400,545550"
+ },
+ {
+ "IdS": 220876,
+ "pX": "380100,380100",
+ "pY": "545550,545650"
+ },
+ {
+ "IdS": 220877,
+ "pX": "339900,339950",
+ "pY": "574300,574050"
+ },
+ {
+ "IdS": 220878,
+ "pX": "339950,340150",
+ "pY": "574050,573500"
+ },
+ {
+ "IdS": 220879,
+ "pX": "339950,340000",
+ "pY": "574050,574050"
+ },
+ {
+ "IdS": 220910,
+ "pX": "341280,341505,341830,341800,342005,343450",
+ "pY": "559330,559390,559285,557595,557470,556500"
+ },
+ {
+ "IdS": 220911,
+ "pX": "336750,336650",
+ "pY": "571550,571550"
+ },
+ {
+ "IdS": 220912,
+ "pX": "347650,346662.55",
+ "pY": "581700,581223.83"
+ },
+ {
+ "IdS": 220916,
+ "pX": "334340,334340,334185.07",
+ "pY": "570199.97,570300,570300.05"
+ },
+ {
+ "IdS": 220919,
+ "pX": "355050.25,355270",
+ "pY": "556450.61,556565"
+ },
+ {
+ "IdS": 220921,
+ "pX": "355350,355250.01",
+ "pY": "555850,555800"
+ },
+ {
+ "IdS": 220922,
+ "pX": "355350,356300",
+ "pY": "555850,554150"
+ },
+ {
+ "IdS": 220923,
+ "pX": "356300,356550",
+ "pY": "554150,554295"
+ },
+ {
+ "IdS": 220924,
+ "pX": "356300,356545",
+ "pY": "554150,553715"
+ },
+ {
+ "IdS": 220925,
+ "pX": "356545,356800,356730",
+ "pY": "553715,553100,552680"
+ },
+ {
+ "IdS": 220926,
+ "pX": "356545,356770",
+ "pY": "553715,553840"
+ },
+ {
+ "IdS": 220927,
+ "pX": "356730,356700",
+ "pY": "552680,552500"
+ },
+ {
+ "IdS": 220929,
+ "pX": "356850,356899.61",
+ "pY": "563400,563350.15"
+ },
+ {
+ "IdS": 220930,
+ "pX": "356500,356545",
+ "pY": "563300,563290"
+ },
+ {
+ "IdS": 220932,
+ "pX": "356730,356750",
+ "pY": "552680,552595"
+ },
+ {
+ "IdS": 220933,
+ "pX": "356750,356700",
+ "pY": "552595,552500"
+ },
+ {
+ "IdS": 220950,
+ "pX": "351300,351200,351050,351050",
+ "pY": "552050,552250,552250,551050"
+ },
+ {
+ "IdS": 220980,
+ "pX": "337350,337350,337200",
+ "pY": "579850,580050,580050"
+ },
+ {
+ "IdS": 221017,
+ "pX": "340152.61,340220",
+ "pY": "572849.21,572850"
+ },
+ {
+ "IdS": 221027,
+ "pX": "336100,336100,336100",
+ "pY": "565900,565750,565600"
+ },
+ {
+ "IdS": 221029,
+ "pX": "356650,356555",
+ "pY": "563370,563370"
+ },
+ {
+ "IdS": 221030,
+ "pX": "356545,356650",
+ "pY": "563290,563370"
+ },
+ {
+ "IdS": 221045,
+ "pX": "343400,338700",
+ "pY": "587850,589750"
+ },
+ {
+ "IdS": 221046,
+ "pX": "338700,338490",
+ "pY": "589750,589800"
+ },
+ {
+ "IdS": 221057,
+ "pX": "356650,356750",
+ "pY": "563370,563450"
+ },
+ {
+ "IdS": 221073,
+ "pX": "330983.36,330750",
+ "pY": "569550.06,569550"
+ },
+ {
+ "IdS": 221074,
+ "pX": "337000,337000,336660.17",
+ "pY": "569745,569400,569400.01"
+ },
+ {
+ "IdS": 221075,
+ "pX": "336660.17,336050",
+ "pY": "569400.01,569400"
+ },
+ {
+ "IdS": 221076,
+ "pX": "335350,335350",
+ "pY": "569400,569200"
+ },
+ {
+ "IdS": 221077,
+ "pX": "335350,335350",
+ "pY": "569200,569150"
+ },
+ {
+ "IdS": 221079,
+ "pX": "368195,368085",
+ "pY": "541350,541350"
+ },
+ {
+ "IdS": 221081,
+ "pX": "368195,368195,368205",
+ "pY": "541350,541470,541475"
+ },
+ {
+ "IdS": 221084,
+ "pX": "347650,347645,347645,347650",
+ "pY": "581500,581480,581495,581475"
+ },
+ {
+ "IdS": 221085,
+ "pX": "347650,347650",
+ "pY": "581475,581390"
+ },
+ {
+ "IdS": 221088,
+ "pX": "347650,347645,347645,347650",
+ "pY": "581390,581385,581365,581360"
+ },
+ {
+ "IdS": 221089,
+ "pX": "347650,347655,347655,347650",
+ "pY": "581500,581495,581480,581475"
+ },
+ {
+ "IdS": 221090,
+ "pX": "347650,347655,347655,347650",
+ "pY": "581390,581385,581365,581360"
+ },
+ {
+ "IdS": 221091,
+ "pX": "337500,337599.67",
+ "pY": "571100,571099.97"
+ },
+ {
+ "IdS": 221092,
+ "pX": "337599.67,337600",
+ "pY": "571099.97,571000"
+ },
+ {
+ "IdS": 221123,
+ "pX": "336100,336150,336300,336300",
+ "pY": "572900,572900,573050,573100"
+ },
+ {
+ "IdS": 221142,
+ "pX": "332850,332600",
+ "pY": "567300,567300"
+ },
+ {
+ "IdS": 221156,
+ "pX": "334450,334450,334650,334950",
+ "pY": "566350,566550,566550,566550"
+ },
+ {
+ "IdS": 221167,
+ "pX": "333750,333750.02",
+ "pY": "566850,567117.92"
+ },
+ {
+ "IdS": 221168,
+ "pX": "333750.02,333750",
+ "pY": "567117.92,567550"
+ },
+ {
+ "IdS": 221178,
+ "pX": "332999.48,332150",
+ "pY": "568050.64,568050"
+ },
+ {
+ "IdS": 221192,
+ "pX": "373550,373400",
+ "pY": "546000,546000"
+ },
+ {
+ "IdS": 221193,
+ "pX": "372300,372400,372880",
+ "pY": "546400,546550,546310"
+ },
+ {
+ "IdS": 221194,
+ "pX": "372880,373300",
+ "pY": "546310,546100"
+ },
+ {
+ "IdS": 221195,
+ "pX": "372880,372730",
+ "pY": "546310,546125.15"
+ },
+ {
+ "IdS": 221231,
+ "pX": "337600,337600.05",
+ "pY": "571000,570950.06"
+ },
+ {
+ "IdS": 221232,
+ "pX": "336550,336700",
+ "pY": "572700,572700"
+ },
+ {
+ "IdS": 221233,
+ "pX": "336700,336800",
+ "pY": "572700,572700"
+ },
+ {
+ "IdS": 221234,
+ "pX": "336800,336900",
+ "pY": "572700,572700"
+ },
+ {
+ "IdS": 221239,
+ "pX": "346360,346450.01",
+ "pY": "551335,551349.99"
+ },
+ {
+ "IdS": 221259,
+ "pX": "334134.54,334470.84",
+ "pY": "558376.64,557912.65"
+ },
+ {
+ "IdS": 221260,
+ "pX": "333345.24,333722.83",
+ "pY": "559459.88,558942.93"
+ },
+ {
+ "IdS": 221266,
+ "pX": "331815,332143.66",
+ "pY": "561565,561117.76"
+ },
+ {
+ "IdS": 221267,
+ "pX": "332143.66,332635",
+ "pY": "561117.76,560440"
+ },
+ {
+ "IdS": 221269,
+ "pX": "331086.85,331340",
+ "pY": "562572.65,562220"
+ },
+ {
+ "IdS": 221270,
+ "pX": "336475,336430,336395",
+ "pY": "582875,582680,582545"
+ },
+ {
+ "IdS": 221271,
+ "pX": "330600,330839.98",
+ "pY": "563250,562915.89"
+ },
+ {
+ "IdS": 221272,
+ "pX": "330839.98,331086.85",
+ "pY": "562915.89,562572.65"
+ },
+ {
+ "IdS": 221298,
+ "pX": "331584.28,331695,331815",
+ "pY": "561884.96,561735,561565"
+ },
+ {
+ "IdS": 221299,
+ "pX": "337335,337150,337050",
+ "pY": "586370,585600,585200"
+ },
+ {
+ "IdS": 221314,
+ "pX": "332800,332800,332840,332840",
+ "pY": "547700,547705,547705,547850"
+ },
+ {
+ "IdS": 221315,
+ "pX": "333150,332910",
+ "pY": "547700,547700"
+ },
+ {
+ "IdS": 221316,
+ "pX": "332910,332800",
+ "pY": "547700,547700"
+ },
+ {
+ "IdS": 221317,
+ "pX": "332910,332910,332870,332870",
+ "pY": "547700,547705,547705,547850"
+ },
+ {
+ "IdS": 221320,
+ "pX": "332840,332840,332855",
+ "pY": "547850,547920,547920"
+ },
+ {
+ "IdS": 221321,
+ "pX": "332855,332870,332870",
+ "pY": "547920,547920,547850"
+ },
+ {
+ "IdS": 221324,
+ "pX": "338650,338650",
+ "pY": "547200,547490"
+ },
+ {
+ "IdS": 221325,
+ "pX": "338650,338650",
+ "pY": "547490,547700"
+ },
+ {
+ "IdS": 221326,
+ "pX": "338650,338705",
+ "pY": "547490,547490"
+ },
+ {
+ "IdS": 221328,
+ "pX": "375550,375550,375450",
+ "pY": "531200,531950,531950"
+ },
+ {
+ "IdS": 221329,
+ "pX": "375450,375300,375298.41",
+ "pY": "531950,531950,532255.17"
+ },
+ {
+ "IdS": 221330,
+ "pX": "375450,375450,375500",
+ "pY": "531950,532000,532000"
+ },
+ {
+ "IdS": 221345,
+ "pX": "356050,356438.15",
+ "pY": "563450,563320.89"
+ },
+ {
+ "IdS": 221346,
+ "pX": "356438.15,356500",
+ "pY": "563320.89,563300"
+ },
+ {
+ "IdS": 221347,
+ "pX": "355100,355199.92",
+ "pY": "563900,563900.07"
+ },
+ {
+ "IdS": 221350,
+ "pX": "339583.53,339950",
+ "pY": "566038.34,565705"
+ },
+ {
+ "IdS": 221351,
+ "pX": "339950,340045",
+ "pY": "565705,565630"
+ },
+ {
+ "IdS": 221352,
+ "pX": "339300,339374.66,339944.8,339950",
+ "pY": "566300,566299.38,565759.61,565705"
+ },
+ {
+ "IdS": 221353,
+ "pX": "339950,339990.01",
+ "pY": "565705,565695"
+ },
+ {
+ "IdS": 221370,
+ "pX": "368280,368205",
+ "pY": "541340,541340"
+ },
+ {
+ "IdS": 221371,
+ "pX": "368205,368095,368085",
+ "pY": "541340,541340,541350"
+ },
+ {
+ "IdS": 221372,
+ "pX": "368205,368205",
+ "pY": "541340,541475"
+ },
+ {
+ "IdS": 221378,
+ "pX": "338700,338700.25",
+ "pY": "569650,569300.75"
+ },
+ {
+ "IdS": 221379,
+ "pX": "338699.31,338701.98",
+ "pY": "568700.75,568149.93"
+ },
+ {
+ "IdS": 221380,
+ "pX": "338701.98,338700",
+ "pY": "568149.93,567450"
+ },
+ {
+ "IdS": 221381,
+ "pX": "338700.25,338699.31",
+ "pY": "569300.75,568700.75"
+ },
+ {
+ "IdS": 221384,
+ "pX": "337086.45,337160,337380",
+ "pY": "562342.22,562240,561910"
+ },
+ {
+ "IdS": 221402,
+ "pX": "336900.47,336900",
+ "pY": "592261.33,592350"
+ },
+ {
+ "IdS": 221403,
+ "pX": "336900,336900",
+ "pY": "592350,592450"
+ },
+ {
+ "IdS": 221405,
+ "pX": "338670.01,338670.11",
+ "pY": "570200,570003.94"
+ },
+ {
+ "IdS": 221407,
+ "pX": "338150,338700.2,338250,338700",
+ "pY": "570200,570220.07,570220,569950"
+ },
+ {
+ "IdS": 221415,
+ "pX": "361400,361400,361500",
+ "pY": "550500,550600,550600"
+ },
+ {
+ "IdS": 221432,
+ "pX": "341035.07,340900",
+ "pY": "575113.83,574950"
+ },
+ {
+ "IdS": 221434,
+ "pX": "341035.07,340910.78",
+ "pY": "575113.83,575239.04"
+ },
+ {
+ "IdS": 221438,
+ "pX": "339800,340000,340100.07",
+ "pY": "574200,574200,573890.02"
+ },
+ {
+ "IdS": 221439,
+ "pX": "340100.07,340150,340206.83,340165,340150",
+ "pY": "573890.02,573750,573298.68,572950,572934.99"
+ },
+ {
+ "IdS": 221458,
+ "pX": "336550,336395.32",
+ "pY": "574450,573917.11"
+ },
+ {
+ "IdS": 221459,
+ "pX": "336395.32,336100",
+ "pY": "573917.11,572900"
+ },
+ {
+ "IdS": 221465,
+ "pX": "337200,337200",
+ "pY": "578750,578450"
+ },
+ {
+ "IdS": 221466,
+ "pX": "337200,337200,337200",
+ "pY": "578450,578300,577650"
+ },
+ {
+ "IdS": 221469,
+ "pX": "343000,342650.3",
+ "pY": "577650,577199.34"
+ },
+ {
+ "IdS": 221470,
+ "pX": "342650.3,342450",
+ "pY": "577199.34,576949.99"
+ },
+ {
+ "IdS": 221471,
+ "pX": "342650.3,342550.04",
+ "pY": "577199.34,577299.6"
+ },
+ {
+ "IdS": 221473,
+ "pX": "337200,336975.45",
+ "pY": "577000,576087.24"
+ },
+ {
+ "IdS": 221474,
+ "pX": "336975.45,336749.99",
+ "pY": "576087.24,575250"
+ },
+ {
+ "IdS": 221477,
+ "pX": "336749.99,336612.53",
+ "pY": "575250,574699.95"
+ },
+ {
+ "IdS": 221478,
+ "pX": "336612.53,336550",
+ "pY": "574699.95,574450"
+ },
+ {
+ "IdS": 221493,
+ "pX": "351450,351350.07",
+ "pY": "551700,551699.92"
+ },
+ {
+ "IdS": 221494,
+ "pX": "351350.07,350700",
+ "pY": "551699.92,551550"
+ },
+ {
+ "IdS": 221500,
+ "pX": "336350,337150.38,337149.77",
+ "pY": "563650,563649.93,563499.68"
+ },
+ {
+ "IdS": 221505,
+ "pX": "338900.14,338950",
+ "pY": "571549.56,571610"
+ },
+ {
+ "IdS": 221506,
+ "pX": "338900.14,338085,338190,338850.3,338030",
+ "pY": "571549.56,570295,570295,571600.19,570200"
+ },
+ {
+ "IdS": 221513,
+ "pX": "332445,332635,334875",
+ "pY": "569455,569035,569035"
+ },
+ {
+ "IdS": 221514,
+ "pX": "332445,332250",
+ "pY": "569455,569550"
+ },
+ {
+ "IdS": 221519,
+ "pX": "338250,338345.03",
+ "pY": "571380,571379.98"
+ },
+ {
+ "IdS": 221520,
+ "pX": "338345.03,338700,338595,338855,338900.14",
+ "pY": "571379.98,571630,571630,571495,571549.56"
+ },
+ {
+ "IdS": 221521,
+ "pX": "338345.03,338344.99,340025.23",
+ "pY": "571379.98,571289.89,572779.72"
+ },
+ {
+ "IdS": 221522,
+ "pX": "340025.23,340152.61",
+ "pY": "572779.72,572849.21"
+ },
+ {
+ "IdS": 221531,
+ "pX": "335490,335440,335440,335490,335650,335655,335704.82",
+ "pY": "569395,567945,569180,569185,567575,567595,567479.86"
+ },
+ {
+ "IdS": 221532,
+ "pX": "335704.82,335740,335720,335740,336390,336390,336385,336390,336390,336300,336530,336530,336320,336385,336284.92",
+ "pY": "567479.86,567445,567480,566940,566145,566940,566140,566080,565340,565270,564945,564045,563940,566085,563879.08"
+ },
+ {
+ "IdS": 221543,
+ "pX": "338099.88,338300.12",
+ "pY": "575849.88,575574.74"
+ },
+ {
+ "IdS": 221544,
+ "pX": "338300.12,338502.56",
+ "pY": "575574.74,575297.52"
+ },
+ {
+ "IdS": 221545,
+ "pX": "337200,337744.64",
+ "pY": "577000,576304.15"
+ },
+ {
+ "IdS": 221546,
+ "pX": "337744.64,338099.88",
+ "pY": "576304.15,575849.88"
+ },
+ {
+ "IdS": 221557,
+ "pX": "340500,340470.07",
+ "pY": "572200,572184.92"
+ },
+ {
+ "IdS": 221570,
+ "pX": "338585,338700.19",
+ "pY": "591970,591949.62"
+ },
+ {
+ "IdS": 221585,
+ "pX": "338250.29,338190.18",
+ "pY": "561349.95,561279.44"
+ },
+ {
+ "IdS": 221604,
+ "pX": "337514.94,337769.89",
+ "pY": "562479.97,562086.6"
+ },
+ {
+ "IdS": 221605,
+ "pX": "337769.89,338250.29",
+ "pY": "562086.6,561349.95"
+ },
+ {
+ "IdS": 221608,
+ "pX": "338250.29,338940.8",
+ "pY": "561349.95,560884.52"
+ },
+ {
+ "IdS": 221621,
+ "pX": "336399.99,336420.01",
+ "pY": "571249.99,571249.93"
+ },
+ {
+ "IdS": 221622,
+ "pX": "336420.01,336450",
+ "pY": "571249.93,571250"
+ },
+ {
+ "IdS": 221623,
+ "pX": "336420.01,336420",
+ "pY": "571249.93,571190"
+ },
+ {
+ "IdS": 221624,
+ "pX": "336420.01,336425,336425,336420",
+ "pY": "571249.93,571244.99,571195,571190"
+ },
+ {
+ "IdS": 221630,
+ "pX": "338300,338577.1",
+ "pY": "581100,580801.94"
+ },
+ {
+ "IdS": 221631,
+ "pX": "338300,338294.69,338540.25,338577.1",
+ "pY": "581100,581010.33,580760.26,580801.94"
+ },
+ {
+ "IdS": 221636,
+ "pX": "338100,338005",
+ "pY": "580350,581024.94"
+ },
+ {
+ "IdS": 221637,
+ "pX": "338005,337700.84",
+ "pY": "581024.94,581599.61"
+ },
+ {
+ "IdS": 221638,
+ "pX": "338400,338335.06",
+ "pY": "581200,581134.93"
+ },
+ {
+ "IdS": 221639,
+ "pX": "338335.06,338300",
+ "pY": "581134.93,581100"
+ },
+ {
+ "IdS": 221640,
+ "pX": "338300,338335.01,338335.06",
+ "pY": "581100,581099.99,581134.93"
+ },
+ {
+ "IdS": 221641,
+ "pX": "338335.06,338360.07,337650",
+ "pY": "581134.93,581105.01,580500"
+ },
+ {
+ "IdS": 221645,
+ "pX": "339550,339614.99,339854.65,339815.17",
+ "pY": "573800,573799.93,573354.15,573309.77"
+ },
+ {
+ "IdS": 221646,
+ "pX": "339815.17,340095,339870.13,340095",
+ "pY": "573309.77,572935,573325.67,572915"
+ },
+ {
+ "IdS": 221649,
+ "pX": "339305.52,339863.86",
+ "pY": "560649.84,560249.41"
+ },
+ {
+ "IdS": 221650,
+ "pX": "339863.86,340350",
+ "pY": "560249.41,559900"
+ },
+ {
+ "IdS": 221651,
+ "pX": "340350,340495.97",
+ "pY": "559900,559785.23"
+ },
+ {
+ "IdS": 221652,
+ "pX": "340495.97,341045",
+ "pY": "559785.23,559330"
+ },
+ {
+ "IdS": 221669,
+ "pX": "340650,340880.68",
+ "pY": "572400,572519.76"
+ },
+ {
+ "IdS": 221670,
+ "pX": "340880.68,340949.54",
+ "pY": "572519.76,572555.22"
+ },
+ {
+ "IdS": 221673,
+ "pX": "377504.15,376118.99",
+ "pY": "533971.09,533373.81"
+ },
+ {
+ "IdS": 221674,
+ "pX": "376118.99,375277.63,375150",
+ "pY": "533373.81,533040.98,532950"
+ },
+ {
+ "IdS": 221675,
+ "pX": "376118.99,376113.68,375889.97",
+ "pY": "533373.81,533388.05,533300.18"
+ },
+ {
+ "IdS": 221676,
+ "pX": "375889.97,375880,375675",
+ "pY": "533300.18,533329.72,533300"
+ },
+ {
+ "IdS": 221677,
+ "pX": "375889.97,375699.89,375675",
+ "pY": "533300.18,533274.86,533300"
+ },
+ {
+ "IdS": 221679,
+ "pX": "371295,371295",
+ "pY": "534900,534655"
+ },
+ {
+ "IdS": 221681,
+ "pX": "371295,371445",
+ "pY": "534655,534675"
+ },
+ {
+ "IdS": 221701,
+ "pX": "374515.38,374601.32",
+ "pY": "553749.7,553887.43"
+ },
+ {
+ "IdS": 221702,
+ "pX": "374326.76,374840.53",
+ "pY": "553819.48,553509.57"
+ },
+ {
+ "IdS": 221707,
+ "pX": "365350,366937.16,368750,365350,369200",
+ "pY": "536900,536136.93,535550,536650,535400"
+ },
+ {
+ "IdS": 221708,
+ "pX": "369200,370000,370900",
+ "pY": "535400,535100,535100"
+ },
+ {
+ "IdS": 221713,
+ "pX": "371295,371335,375150",
+ "pY": "534655,534635,532950"
+ },
+ {
+ "IdS": 221714,
+ "pX": "345860,345713.96",
+ "pY": "580675,580804.67"
+ },
+ {
+ "IdS": 221715,
+ "pX": "345713.96,345489.39",
+ "pY": "580804.67,580994.85"
+ },
+ {
+ "IdS": 221721,
+ "pX": "346248.57,346250",
+ "pY": "579459.35,579650"
+ },
+ {
+ "IdS": 221723,
+ "pX": "346249.54,346248.57",
+ "pY": "579234.16,579459.35"
+ },
+ {
+ "IdS": 221724,
+ "pX": "378000,378450",
+ "pY": "544400,544200"
+ },
+ {
+ "IdS": 221731,
+ "pX": "334750,334703.43",
+ "pY": "567550,567467.4"
+ },
+ {
+ "IdS": 221732,
+ "pX": "334703.43,334600",
+ "pY": "567467.4,567300"
+ },
+ {
+ "IdS": 221740,
+ "pX": "342650,342650.16",
+ "pY": "565650,565149.71"
+ },
+ {
+ "IdS": 221741,
+ "pX": "342650.16,342650",
+ "pY": "565149.71,564850"
+ },
+ {
+ "IdS": 221744,
+ "pX": "340100,340300.08,340124.93,340300",
+ "pY": "570200,570185.04,570185.04,570200"
+ },
+ {
+ "IdS": 221770,
+ "pX": "335300,335230",
+ "pY": "570650,570650"
+ },
+ {
+ "IdS": 221773,
+ "pX": "345700,345700.02",
+ "pY": "554365,554349.9"
+ },
+ {
+ "IdS": 221774,
+ "pX": "345700,345725.03",
+ "pY": "554365,554380.01"
+ },
+ {
+ "IdS": 221775,
+ "pX": "345700.02,345700.02",
+ "pY": "554349.9,554319.96"
+ },
+ {
+ "IdS": 221776,
+ "pX": "345700.02,345699.9",
+ "pY": "554290,554194.63"
+ },
+ {
+ "IdS": 221777,
+ "pX": "345700.02,345700.02",
+ "pY": "554319.96,554290"
+ },
+ {
+ "IdS": 221787,
+ "pX": "336515,336205",
+ "pY": "579555,579555"
+ },
+ {
+ "IdS": 221794,
+ "pX": "339650.26,339273.35",
+ "pY": "582444.86,582072.7"
+ },
+ {
+ "IdS": 221795,
+ "pX": "339273.35,338774.73",
+ "pY": "582072.7,581575.28"
+ },
+ {
+ "IdS": 221797,
+ "pX": "340220.01,339650.26",
+ "pY": "583019.75,582444.86"
+ },
+ {
+ "IdS": 221798,
+ "pX": "339650.26,339684.98",
+ "pY": "582444.86,582415.23"
+ },
+ {
+ "IdS": 221799,
+ "pX": "341200,340810.28",
+ "pY": "584000,583609.71"
+ },
+ {
+ "IdS": 221800,
+ "pX": "340810.28,340220.01",
+ "pY": "583609.71,583019.75"
+ },
+ {
+ "IdS": 221801,
+ "pX": "338774.73,338725.31",
+ "pY": "581575.28,581524.71"
+ },
+ {
+ "IdS": 221802,
+ "pX": "338725.31,338550",
+ "pY": "581524.71,581350"
+ },
+ {
+ "IdS": 221809,
+ "pX": "334690,334535",
+ "pY": "569730,569140"
+ },
+ {
+ "IdS": 221815,
+ "pX": "336200,336329.96",
+ "pY": "571250,571250"
+ },
+ {
+ "IdS": 221816,
+ "pX": "336329.96,336350",
+ "pY": "571250,571250"
+ },
+ {
+ "IdS": 221843,
+ "pX": "332850,332850,332750",
+ "pY": "569400,569250,569250"
+ },
+ {
+ "IdS": 221848,
+ "pX": "338645,338670,339139.66,339239.87",
+ "pY": "574640,574545,574104.63,574104.8"
+ },
+ {
+ "IdS": 221849,
+ "pX": "339239.87,339240.3,339485.23,339550",
+ "pY": "574104.8,574005.37,573799.93,573800"
+ },
+ {
+ "IdS": 221851,
+ "pX": "339239.87,339549.92,339340.38,339550",
+ "pY": "574104.8,573864.81,574104.9,573800"
+ },
+ {
+ "IdS": 221860,
+ "pX": "368450,368359.92",
+ "pY": "549550,549494.87"
+ },
+ {
+ "IdS": 221861,
+ "pX": "368359.92,367750",
+ "pY": "549494.87,549150"
+ },
+ {
+ "IdS": 221865,
+ "pX": "340850,340987.42",
+ "pY": "534800,533889.97"
+ },
+ {
+ "IdS": 221867,
+ "pX": "341500.09,341610.19",
+ "pY": "529200.23,528434.88"
+ },
+ {
+ "IdS": 221871,
+ "pX": "344580,344680.41",
+ "pY": "555290,555384.78"
+ },
+ {
+ "IdS": 221882,
+ "pX": "342700,342755.03",
+ "pY": "591600,591629.88"
+ },
+ {
+ "IdS": 221883,
+ "pX": "342350,341331.78",
+ "pY": "576300,574940.23"
+ },
+ {
+ "IdS": 221884,
+ "pX": "341331.78,341150,340700",
+ "pY": "574940.23,574700,574400"
+ },
+ {
+ "IdS": 221888,
+ "pX": "342199.96,342201.99",
+ "pY": "569350.01,568776.12"
+ },
+ {
+ "IdS": 221889,
+ "pX": "342201.99,342200",
+ "pY": "568776.12,568150"
+ },
+ {
+ "IdS": 221890,
+ "pX": "334150,333650.59",
+ "pY": "547700,547700.77"
+ },
+ {
+ "IdS": 221892,
+ "pX": "333650.59,333650",
+ "pY": "547700.77,547630"
+ },
+ {
+ "IdS": 221893,
+ "pX": "333650.59,333374.97",
+ "pY": "547700.77,547699.77"
+ },
+ {
+ "IdS": 221894,
+ "pX": "333374.97,333150",
+ "pY": "547699.77,547700"
+ },
+ {
+ "IdS": 221895,
+ "pX": "333374.97,333375",
+ "pY": "547699.77,547625"
+ },
+ {
+ "IdS": 221900,
+ "pX": "350549.97,350550",
+ "pY": "560580.02,560480"
+ },
+ {
+ "IdS": 221901,
+ "pX": "350549.97,350174.87",
+ "pY": "560580.02,560374.3"
+ },
+ {
+ "IdS": 221903,
+ "pX": "350174.87,350210",
+ "pY": "560374.3,560325"
+ },
+ {
+ "IdS": 221904,
+ "pX": "350174.87,350100.01",
+ "pY": "560374.3,560330.13"
+ },
+ {
+ "IdS": 221906,
+ "pX": "350100.01,350130.01",
+ "pY": "560330.13,560284.59"
+ },
+ {
+ "IdS": 221907,
+ "pX": "350100.01,350005",
+ "pY": "560330.13,560270"
+ },
+ {
+ "IdS": 221908,
+ "pX": "350005,349876.77",
+ "pY": "560270,560191.63"
+ },
+ {
+ "IdS": 221909,
+ "pX": "350005,350035",
+ "pY": "560270,560225"
+ },
+ {
+ "IdS": 221925,
+ "pX": "339565,339300",
+ "pY": "575900,575900"
+ },
+ {
+ "IdS": 221926,
+ "pX": "339850,339500,339515.35",
+ "pY": "575650,575650,575599.73"
+ },
+ {
+ "IdS": 221927,
+ "pX": "339515.35,339900",
+ "pY": "575599.73,574300"
+ },
+ {
+ "IdS": 221928,
+ "pX": "339515.35,339450",
+ "pY": "575599.73,575400"
+ },
+ {
+ "IdS": 221942,
+ "pX": "351374.97,352485",
+ "pY": "579900,580055"
+ },
+ {
+ "IdS": 221943,
+ "pX": "351374.97,351375",
+ "pY": "579900,579990"
+ },
+ {
+ "IdS": 221944,
+ "pX": "350930,351374.97",
+ "pY": "579840,579900"
+ },
+ {
+ "IdS": 221945,
+ "pX": "372600,372200",
+ "pY": "552800,552800"
+ },
+ {
+ "IdS": 221947,
+ "pX": "347450,347530",
+ "pY": "556950,556205"
+ },
+ {
+ "IdS": 221948,
+ "pX": "347530,347450",
+ "pY": "556205,555600"
+ },
+ {
+ "IdS": 221949,
+ "pX": "347065,347440,347440",
+ "pY": "555590,555590,556205"
+ },
+ {
+ "IdS": 221950,
+ "pX": "347440,347440",
+ "pY": "556205,557550"
+ },
+ {
+ "IdS": 221952,
+ "pX": "344300,344284.91",
+ "pY": "542365,542349.93"
+ },
+ {
+ "IdS": 221953,
+ "pX": "344284.91,343035",
+ "pY": "542349.93,541105"
+ },
+ {
+ "IdS": 221954,
+ "pX": "356595,356690,356700",
+ "pY": "552430,552430,552500"
+ },
+ {
+ "IdS": 221959,
+ "pX": "334535,334535,334875,334875",
+ "pY": "569140,569095,569095,569035"
+ },
+ {
+ "IdS": 221961,
+ "pX": "334690,334744.8",
+ "pY": "569730,569659.71"
+ },
+ {
+ "IdS": 221962,
+ "pX": "334744.8,334800",
+ "pY": "569659.71,569600"
+ },
+ {
+ "IdS": 221963,
+ "pX": "334535,334725.16,334675,334550,334744.8",
+ "pY": "569140,569649.75,569640,569155,569659.71"
+ },
+ {
+ "IdS": 221966,
+ "pX": "354300,354399.85",
+ "pY": "557700,557754.94"
+ },
+ {
+ "IdS": 221967,
+ "pX": "354399.85,355050.25",
+ "pY": "557754.94,556450.61"
+ },
+ {
+ "IdS": 221968,
+ "pX": "354399.85,354450.08",
+ "pY": "557754.94,557784.65"
+ },
+ {
+ "IdS": 221981,
+ "pX": "354850,354556.38",
+ "pY": "556600,557187.52"
+ },
+ {
+ "IdS": 221982,
+ "pX": "354556.38,354300",
+ "pY": "557187.52,557700"
+ },
+ {
+ "IdS": 221997,
+ "pX": "334535,333740,333740,333395",
+ "pY": "569140,569940,569140,569940"
+ },
+ {
+ "IdS": 222000,
+ "pX": "342850,343498.31",
+ "pY": "558800,558799.14"
+ },
+ {
+ "IdS": 222004,
+ "pX": "333395.08,333425.14,333750,333424.99,333750",
+ "pY": "569774.88,569949.92,569950,569799.91,569750"
+ },
+ {
+ "IdS": 222023,
+ "pX": "339800,340230.91",
+ "pY": "558950,558949.98"
+ },
+ {
+ "IdS": 222028,
+ "pX": "336204.95,336205.01",
+ "pY": "570709.98,570660.01"
+ },
+ {
+ "IdS": 222030,
+ "pX": "336240.01,336205.01",
+ "pY": "570674.99,570660.01"
+ },
+ {
+ "IdS": 222031,
+ "pX": "336204.95,336239.98,336240.01",
+ "pY": "570709.98,570694.94,570674.99"
+ },
+ {
+ "IdS": 222032,
+ "pX": "336204.95,336225.02,336240.01",
+ "pY": "570709.98,570680.06,570674.99"
+ },
+ {
+ "IdS": 222034,
+ "pX": "333395,333395.08",
+ "pY": "569905,569774.88"
+ },
+ {
+ "IdS": 222035,
+ "pX": "333395,333395",
+ "pY": "569940,569905"
+ },
+ {
+ "IdS": 222048,
+ "pX": "338785,339240,339240,340495",
+ "pY": "567375,567375,566250,565165"
+ },
+ {
+ "IdS": 222049,
+ "pX": "340495,341579.3,340640,342464.99",
+ "pY": "565165,564261.37,565050,563600.07"
+ },
+ {
+ "IdS": 222050,
+ "pX": "340510,340540",
+ "pY": "565175,565205"
+ },
+ {
+ "IdS": 222078,
+ "pX": "344400,344500",
+ "pY": "585550,585150"
+ },
+ {
+ "IdS": 222079,
+ "pX": "344500,344700",
+ "pY": "585150,584350"
+ },
+ {
+ "IdS": 222080,
+ "pX": "344500,344530,344545.09",
+ "pY": "585150,585150,585089.52"
+ },
+ {
+ "IdS": 222089,
+ "pX": "337916.22,338000",
+ "pY": "560600.04,560650"
+ },
+ {
+ "IdS": 222090,
+ "pX": "337245,337725",
+ "pY": "561200,560485"
+ },
+ {
+ "IdS": 222091,
+ "pX": "337245,337485",
+ "pY": "561200,561335"
+ },
+ {
+ "IdS": 222092,
+ "pX": "337725,337916.22",
+ "pY": "560485,560600.04"
+ },
+ {
+ "IdS": 222099,
+ "pX": "337725,341215,340670,341400,341885,341885,341990,339085,342015",
+ "pY": "560485,559155,558915,559155,559155,558635,557755,558930,557730"
+ },
+ {
+ "IdS": 222107,
+ "pX": "338502.56,338645",
+ "pY": "575297.52,574640"
+ },
+ {
+ "IdS": 222108,
+ "pX": "338645,338755,339240.02,339239.87",
+ "pY": "574640,574605,574204.99,574104.8"
+ },
+ {
+ "IdS": 222113,
+ "pX": "334938.9,335330.01",
+ "pY": "557262.51,556720"
+ },
+ {
+ "IdS": 222118,
+ "pX": "340805.01,340850",
+ "pY": "534799.99,534800"
+ },
+ {
+ "IdS": 222121,
+ "pX": "340987.42,341139.11",
+ "pY": "533889.97,532882.73"
+ },
+ {
+ "IdS": 222122,
+ "pX": "341139.11,341250,341250",
+ "pY": "532882.73,532150,531650"
+ },
+ {
+ "IdS": 222128,
+ "pX": "343498.31,344600",
+ "pY": "558799.14,558800"
+ },
+ {
+ "IdS": 222139,
+ "pX": "338450,338600,338600",
+ "pY": "558550,558700,558850"
+ },
+ {
+ "IdS": 222149,
+ "pX": "375150,374300",
+ "pY": "551350,552450"
+ },
+ {
+ "IdS": 222161,
+ "pX": "336699.88,337045.44",
+ "pY": "571350,571349.72"
+ },
+ {
+ "IdS": 222162,
+ "pX": "337045.44,337100",
+ "pY": "571349.72,571350"
+ },
+ {
+ "IdS": 222166,
+ "pX": "349150,346989.52,346900",
+ "pY": "559750,559765.07,559700"
+ },
+ {
+ "IdS": 222167,
+ "pX": "346900,346500",
+ "pY": "559700,559750"
+ },
+ {
+ "IdS": 222172,
+ "pX": "355263.66,355250",
+ "pY": "562665.22,562700"
+ },
+ {
+ "IdS": 222173,
+ "pX": "356080,356050",
+ "pY": "563410,563450"
+ },
+ {
+ "IdS": 222174,
+ "pX": "352675.03,352719.49",
+ "pY": "560574.98,560595.05"
+ },
+ {
+ "IdS": 222181,
+ "pX": "337380,337700",
+ "pY": "561910,561455"
+ },
+ {
+ "IdS": 222186,
+ "pX": "336400,336399.66",
+ "pY": "565300,564815.19"
+ },
+ {
+ "IdS": 222188,
+ "pX": "342840,342840,342755,342750",
+ "pY": "558780,558745,558745,558750"
+ },
+ {
+ "IdS": 222191,
+ "pX": "346300,346299.87",
+ "pY": "559750,559720.63"
+ },
+ {
+ "IdS": 222192,
+ "pX": "346299.87,346300,346400",
+ "pY": "559720.63,559450,559450"
+ },
+ {
+ "IdS": 222195,
+ "pX": "346500,346500",
+ "pY": "559750,559719.81"
+ },
+ {
+ "IdS": 222196,
+ "pX": "346500,346500,346400",
+ "pY": "559719.81,559450,559450"
+ },
+ {
+ "IdS": 222197,
+ "pX": "349150,349150",
+ "pY": "559750,559885"
+ },
+ {
+ "IdS": 222215,
+ "pX": "337000,336900,336899.93,336400",
+ "pY": "565950,565850,565299.97,565300"
+ },
+ {
+ "IdS": 222225,
+ "pX": "336400,336550,336865.09,336849.97",
+ "pY": "563900,563850,563404.81,563339.95"
+ },
+ {
+ "IdS": 222236,
+ "pX": "336515,336515",
+ "pY": "571500,571800"
+ },
+ {
+ "IdS": 222241,
+ "pX": "342200,342779.78",
+ "pY": "569650,569130.34"
+ },
+ {
+ "IdS": 222242,
+ "pX": "342779.78,343312.21",
+ "pY": "569130.34,568650.71"
+ },
+ {
+ "IdS": 222261,
+ "pX": "343100,343278.29",
+ "pY": "590700,590015.07"
+ },
+ {
+ "IdS": 222262,
+ "pX": "343278.29,343550",
+ "pY": "590015.07,589000"
+ },
+ {
+ "IdS": 222263,
+ "pX": "343278.29,342740.9",
+ "pY": "590015.07,589862.7"
+ },
+ {
+ "IdS": 222264,
+ "pX": "341050,341239.71",
+ "pY": "568900,568730.19"
+ },
+ {
+ "IdS": 222266,
+ "pX": "341239.71,341450,342200",
+ "pY": "568730.19,568550,568150"
+ },
+ {
+ "IdS": 222269,
+ "pX": "336849.97,336949.94,336849.79,336834.12,337015",
+ "pY": "563339.95,563114.79,563339.7,563275.07,563115"
+ },
+ {
+ "IdS": 222270,
+ "pX": "337015,336550",
+ "pY": "563115,562700"
+ },
+ {
+ "IdS": 222271,
+ "pX": "336849.97,336920.17,337014.98,337015",
+ "pY": "563339.95,563329.99,563189.66,563115"
+ },
+ {
+ "IdS": 222272,
+ "pX": "337015,336770,337014.57,337086.45",
+ "pY": "563115,562780,563035.29,562342.22"
+ },
+ {
+ "IdS": 222275,
+ "pX": "340650,341215",
+ "pY": "558950,559180"
+ },
+ {
+ "IdS": 222276,
+ "pX": "341215,341435",
+ "pY": "559180,559180"
+ },
+ {
+ "IdS": 222279,
+ "pX": "333350,333350",
+ "pY": "571550,571250"
+ },
+ {
+ "IdS": 222283,
+ "pX": "341964.9,342655",
+ "pY": "545004.83,544350"
+ },
+ {
+ "IdS": 222304,
+ "pX": "355050.25,355199.95",
+ "pY": "556450.61,556149.84"
+ },
+ {
+ "IdS": 222305,
+ "pX": "355199.95,355350",
+ "pY": "556149.84,555850"
+ },
+ {
+ "IdS": 222306,
+ "pX": "355199.95,355125",
+ "pY": "556149.84,556115"
+ },
+ {
+ "IdS": 222313,
+ "pX": "335490,335500,336300,336300.02",
+ "pY": "569395,569395,569800,570249.96"
+ },
+ {
+ "IdS": 222315,
+ "pX": "336275,336200",
+ "pY": "570250,570300"
+ },
+ {
+ "IdS": 222316,
+ "pX": "335800,335699.98,335660,335660",
+ "pY": "570575,570574.96,570650,570650"
+ },
+ {
+ "IdS": 222317,
+ "pX": "335660,335659.82",
+ "pY": "570650,570740.29"
+ },
+ {
+ "IdS": 222318,
+ "pX": "335659.82,335725.59",
+ "pY": "570740.29,570635.04"
+ },
+ {
+ "IdS": 222319,
+ "pX": "335659.82,335755",
+ "pY": "570740.29,570740"
+ },
+ {
+ "IdS": 222320,
+ "pX": "335725.59,335755",
+ "pY": "570635.04,570740"
+ },
+ {
+ "IdS": 222322,
+ "pX": "336255.01,336254.98",
+ "pY": "570660.05,570655"
+ },
+ {
+ "IdS": 222323,
+ "pX": "336254.98,336204.99",
+ "pY": "570655,570655"
+ },
+ {
+ "IdS": 222324,
+ "pX": "336205.01,336204.99",
+ "pY": "570660.01,570655"
+ },
+ {
+ "IdS": 222325,
+ "pX": "336240.01,336239.87",
+ "pY": "570674.99,570635.13"
+ },
+ {
+ "IdS": 222326,
+ "pX": "336239.87,336200",
+ "pY": "570635.13,570570"
+ },
+ {
+ "IdS": 222327,
+ "pX": "336239.87,335725.59",
+ "pY": "570635.13,570635.04"
+ },
+ {
+ "IdS": 222328,
+ "pX": "336255.03,336214.94,336244.96,336204.95",
+ "pY": "570710,570714.99,570714.91,570709.98"
+ },
+ {
+ "IdS": 222329,
+ "pX": "340495,340510",
+ "pY": "565165,565175"
+ },
+ {
+ "IdS": 222330,
+ "pX": "338785,338749.99",
+ "pY": "567375,567404.91"
+ },
+ {
+ "IdS": 222331,
+ "pX": "338749.99,338700",
+ "pY": "567404.91,567450"
+ },
+ {
+ "IdS": 222350,
+ "pX": "331914.58,332135",
+ "pY": "571397.41,570460"
+ },
+ {
+ "IdS": 222351,
+ "pX": "332135,332250",
+ "pY": "570460,569950"
+ },
+ {
+ "IdS": 222352,
+ "pX": "332135,331867.91",
+ "pY": "570460,570417.06"
+ },
+ {
+ "IdS": 222394,
+ "pX": "340850,340960",
+ "pY": "534800,534800"
+ },
+ {
+ "IdS": 222416,
+ "pX": "342464.99,342500",
+ "pY": "563600.07,563600"
+ },
+ {
+ "IdS": 222424,
+ "pX": "332675.04,332675,332250",
+ "pY": "569800.13,569550,569550"
+ },
+ {
+ "IdS": 222429,
+ "pX": "347655,347694.59",
+ "pY": "588035,588035.03"
+ },
+ {
+ "IdS": 222440,
+ "pX": "338030,338030.15",
+ "pY": "570200,568824.05"
+ },
+ {
+ "IdS": 222441,
+ "pX": "338030.15,335704.82",
+ "pY": "568824.05,567479.86"
+ },
+ {
+ "IdS": 222446,
+ "pX": "340300,340300,340264.99",
+ "pY": "570200,570210,570210.03"
+ },
+ {
+ "IdS": 222447,
+ "pX": "340300,340365",
+ "pY": "570200,570200"
+ },
+ {
+ "IdS": 222485,
+ "pX": "359650,359237.69",
+ "pY": "547450,547000.08"
+ },
+ {
+ "IdS": 222486,
+ "pX": "359237.69,359100",
+ "pY": "547000.08,546850"
+ },
+ {
+ "IdS": 222502,
+ "pX": "333000,333179.95",
+ "pY": "571700,571620.24"
+ },
+ {
+ "IdS": 222503,
+ "pX": "333179.95,333350",
+ "pY": "571620.24,571550"
+ },
+ {
+ "IdS": 222504,
+ "pX": "333179.95,333210",
+ "pY": "571620.24,571675"
+ },
+ {
+ "IdS": 222505,
+ "pX": "331700,332154.77",
+ "pY": "572200,572035.15"
+ },
+ {
+ "IdS": 222506,
+ "pX": "332154.77,332650",
+ "pY": "572035.15,571850"
+ },
+ {
+ "IdS": 222507,
+ "pX": "332154.77,332165",
+ "pY": "572035.15,572060"
+ },
+ {
+ "IdS": 222519,
+ "pX": "331134.78,331249.88",
+ "pY": "574706.78,574205.08"
+ },
+ {
+ "IdS": 222520,
+ "pX": "331249.88,331364.13",
+ "pY": "574205.08,573733.44"
+ },
+ {
+ "IdS": 222521,
+ "pX": "331249.88,331285.1",
+ "pY": "574205.08,574214.74"
+ },
+ {
+ "IdS": 222522,
+ "pX": "331470.75,331585",
+ "pY": "573261.59,572785"
+ },
+ {
+ "IdS": 222523,
+ "pX": "331585,331593.49",
+ "pY": "572785,572760.09"
+ },
+ {
+ "IdS": 222524,
+ "pX": "331585,331620",
+ "pY": "572785,572785"
+ },
+ {
+ "IdS": 222531,
+ "pX": "339480.03,339450,339460",
+ "pY": "576315.56,576305,576275"
+ },
+ {
+ "IdS": 222532,
+ "pX": "339270,339480.03",
+ "pY": "577350,576315.56"
+ },
+ {
+ "IdS": 222533,
+ "pX": "339480.03,339565",
+ "pY": "576315.56,575900"
+ },
+ {
+ "IdS": 222534,
+ "pX": "335249.44,334884.99",
+ "pY": "571149.91,571149.97"
+ },
+ {
+ "IdS": 222535,
+ "pX": "334884.99,334600",
+ "pY": "571149.97,571150"
+ },
+ {
+ "IdS": 222545,
+ "pX": "336600,336550.01,336585.38,336617.4",
+ "pY": "565350,565235.09,564630.73,564585.85"
+ },
+ {
+ "IdS": 222546,
+ "pX": "336617.4,336549.9,336585.02,336400",
+ "pY": "564585.85,564000.06,564544.91,563900"
+ },
+ {
+ "IdS": 222547,
+ "pX": "336600,336649.38,336649.59,336617.4",
+ "pY": "565350,564630.36,565235.09,564585.85"
+ },
+ {
+ "IdS": 222548,
+ "pX": "336617.4,336650,336650,336400",
+ "pY": "564585.85,564000,564545,563900"
+ },
+ {
+ "IdS": 222553,
+ "pX": "354200,354199.97",
+ "pY": "581100,581009.52"
+ },
+ {
+ "IdS": 222561,
+ "pX": "336750,336900.14",
+ "pY": "566950,566950"
+ },
+ {
+ "IdS": 222564,
+ "pX": "338700,338309.9",
+ "pY": "567450,567035.36"
+ },
+ {
+ "IdS": 222565,
+ "pX": "338309.9,337750",
+ "pY": "567035.36,566795"
+ },
+ {
+ "IdS": 222570,
+ "pX": "337415,337415",
+ "pY": "567540,567755"
+ },
+ {
+ "IdS": 222620,
+ "pX": "339800,339799.92",
+ "pY": "570050,569654.97"
+ },
+ {
+ "IdS": 222635,
+ "pX": "339290.04,339019.95",
+ "pY": "568525.27,568034.66"
+ },
+ {
+ "IdS": 222637,
+ "pX": "339569.82,339290.04",
+ "pY": "569034.98,568525.27"
+ },
+ {
+ "IdS": 222638,
+ "pX": "339019.95,338869.97",
+ "pY": "568034.66,567759.71"
+ },
+ {
+ "IdS": 222639,
+ "pX": "338869.97,338700",
+ "pY": "567759.71,567450"
+ },
+ {
+ "IdS": 222647,
+ "pX": "354200,354000.02",
+ "pY": "581100,581099.98"
+ },
+ {
+ "IdS": 222648,
+ "pX": "354000.02,353300",
+ "pY": "581099.98,581100"
+ },
+ {
+ "IdS": 222675,
+ "pX": "371500,371654.94",
+ "pY": "553400,553399.96"
+ },
+ {
+ "IdS": 222676,
+ "pX": "371654.94,371900",
+ "pY": "553399.96,553400"
+ },
+ {
+ "IdS": 222677,
+ "pX": "372800,372800.43",
+ "pY": "553100,552924.78"
+ },
+ {
+ "IdS": 222678,
+ "pX": "372800.43,372800",
+ "pY": "552924.78,552800"
+ },
+ {
+ "IdS": 222694,
+ "pX": "347080,347460,347455,347405,347450,347475,347490,347765,347825",
+ "pY": "560000,560850,560965,560850,560975,561030,561035,561650,561650"
+ },
+ {
+ "IdS": 222695,
+ "pX": "347825,347905,349500",
+ "pY": "561650,561650,563400"
+ },
+ {
+ "IdS": 222696,
+ "pX": "347825,347825",
+ "pY": "561650,561665"
+ },
+ {
+ "IdS": 222697,
+ "pX": "347825,347795",
+ "pY": "561665,561700"
+ },
+ {
+ "IdS": 222709,
+ "pX": "335575.16,335550",
+ "pY": "572195.08,572150"
+ },
+ {
+ "IdS": 222710,
+ "pX": "335575.16,335649.34",
+ "pY": "572195.08,572195"
+ },
+ {
+ "IdS": 222726,
+ "pX": "337884.12,338130",
+ "pY": "551057.12,550470"
+ },
+ {
+ "IdS": 222729,
+ "pX": "335645,335600",
+ "pY": "570940,570950"
+ },
+ {
+ "IdS": 222730,
+ "pX": "335645,335645",
+ "pY": "570920,570940"
+ },
+ {
+ "IdS": 222740,
+ "pX": "373300,373350.03",
+ "pY": "546100,546079.99"
+ },
+ {
+ "IdS": 222741,
+ "pX": "373350.03,373550",
+ "pY": "546079.99,546000"
+ },
+ {
+ "IdS": 222742,
+ "pX": "373350.03,373340.1",
+ "pY": "546079.99,546039.93"
+ },
+ {
+ "IdS": 222744,
+ "pX": "375650,375854.35",
+ "pY": "545000,544879.05"
+ },
+ {
+ "IdS": 222745,
+ "pX": "375854.35,376845",
+ "pY": "544879.05,544300"
+ },
+ {
+ "IdS": 222746,
+ "pX": "375854.35,375699.29",
+ "pY": "544879.05,544666.6"
+ },
+ {
+ "IdS": 222747,
+ "pX": "332250,332250",
+ "pY": "569950,569550"
+ },
+ {
+ "IdS": 222748,
+ "pX": "332250,332250",
+ "pY": "569550,569050"
+ },
+ {
+ "IdS": 222753,
+ "pX": "357300,357495.09",
+ "pY": "563050,562995.53"
+ },
+ {
+ "IdS": 222775,
+ "pX": "357495.09,357704.95",
+ "pY": "562995.53,562935.02"
+ },
+ {
+ "IdS": 222776,
+ "pX": "357704.95,358000",
+ "pY": "562935.02,562850"
+ },
+ {
+ "IdS": 222777,
+ "pX": "359000,359149.96",
+ "pY": "562500,562445.09"
+ },
+ {
+ "IdS": 222781,
+ "pX": "359149.96,359329.86",
+ "pY": "562445.09,562380.27"
+ },
+ {
+ "IdS": 222782,
+ "pX": "359329.86,359550",
+ "pY": "562380.27,562300"
+ },
+ {
+ "IdS": 222787,
+ "pX": "360350,360514.88",
+ "pY": "562050,561994.98"
+ },
+ {
+ "IdS": 222788,
+ "pX": "360514.88,360650",
+ "pY": "561994.98,561950"
+ },
+ {
+ "IdS": 222795,
+ "pX": "347450,348448.06",
+ "pY": "551250,551411.98"
+ },
+ {
+ "IdS": 222796,
+ "pX": "348448.06,349300",
+ "pY": "551411.98,551550"
+ },
+ {
+ "IdS": 222801,
+ "pX": "379900,379100",
+ "pY": "542050,542500"
+ },
+ {
+ "IdS": 222803,
+ "pX": "333780,334050",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 222804,
+ "pX": "333780,333780",
+ "pY": "564000,564310"
+ },
+ {
+ "IdS": 222805,
+ "pX": "332850,332995",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 222806,
+ "pX": "332995,333150",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 222807,
+ "pX": "332995,332995",
+ "pY": "564000,564290"
+ },
+ {
+ "IdS": 222813,
+ "pX": "332710,332850",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 222814,
+ "pX": "332710,332710",
+ "pY": "564000,564215"
+ },
+ {
+ "IdS": 222816,
+ "pX": "332655,332710",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 222817,
+ "pX": "332655,332655",
+ "pY": "564000,564215"
+ },
+ {
+ "IdS": 222818,
+ "pX": "346250,345445,346020,345444.84",
+ "pY": "576050,576450,576450,576996.2"
+ },
+ {
+ "IdS": 222819,
+ "pX": "375900,374650",
+ "pY": "544350,545050"
+ },
+ {
+ "IdS": 222821,
+ "pX": "332395,332655",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 222822,
+ "pX": "332395,332395",
+ "pY": "564000,564255"
+ },
+ {
+ "IdS": 222824,
+ "pX": "332355,332395",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 222825,
+ "pX": "332355,332355",
+ "pY": "564000,564160"
+ },
+ {
+ "IdS": 222826,
+ "pX": "332250,332324.78",
+ "pY": "564000,563999.95"
+ },
+ {
+ "IdS": 222827,
+ "pX": "332324.78,332355",
+ "pY": "563999.95,564000"
+ },
+ {
+ "IdS": 222828,
+ "pX": "332324.78,332325",
+ "pY": "563999.95,564205"
+ },
+ {
+ "IdS": 222835,
+ "pX": "333150,333400",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 222836,
+ "pX": "333400,333780",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 222837,
+ "pX": "333400,333400",
+ "pY": "564000,564315"
+ },
+ {
+ "IdS": 222858,
+ "pX": "378150,377650",
+ "pY": "543050,543340"
+ },
+ {
+ "IdS": 222859,
+ "pX": "334950,335135",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 222860,
+ "pX": "335135,335200",
+ "pY": "564000,564000"
+ },
+ {
+ "IdS": 222861,
+ "pX": "335135,335135",
+ "pY": "564000,563470"
+ },
+ {
+ "IdS": 222909,
+ "pX": "345990,346430",
+ "pY": "560370,560035"
+ },
+ {
+ "IdS": 222912,
+ "pX": "372450,372553.78",
+ "pY": "539000,538792.56"
+ },
+ {
+ "IdS": 222913,
+ "pX": "372553.78,372600",
+ "pY": "538792.56,538700"
+ },
+ {
+ "IdS": 222948,
+ "pX": "337350.01,337349.97",
+ "pY": "578465.01,579040.13"
+ },
+ {
+ "IdS": 222949,
+ "pX": "337349.97,337350",
+ "pY": "579040.13,579850"
+ },
+ {
+ "IdS": 222950,
+ "pX": "337349.97,337475",
+ "pY": "579040.13,579040"
+ },
+ {
+ "IdS": 222967,
+ "pX": "352750,352760.06,352750",
+ "pY": "560600,560634.95,560659.97"
+ },
+ {
+ "IdS": 222968,
+ "pX": "352750,352739.96,352750",
+ "pY": "560600,560634.71,560659.97"
+ },
+ {
+ "IdS": 222978,
+ "pX": "353350,353350",
+ "pY": "580500,579700"
+ },
+ {
+ "IdS": 222983,
+ "pX": "342350.24,342170",
+ "pY": "564849.69,564850"
+ },
+ {
+ "IdS": 222984,
+ "pX": "336100,335950.06",
+ "pY": "572900,572825.19"
+ },
+ {
+ "IdS": 222985,
+ "pX": "335950.06,335800",
+ "pY": "572825.19,572750"
+ },
+ {
+ "IdS": 222992,
+ "pX": "349300,348108.71",
+ "pY": "551350,551154.79"
+ },
+ {
+ "IdS": 222999,
+ "pX": "370600,370900,371095.09",
+ "pY": "541400,541250,541147.06"
+ },
+ {
+ "IdS": 223020,
+ "pX": "333329.89,333330",
+ "pY": "569399.88,569350"
+ },
+ {
+ "IdS": 223021,
+ "pX": "333400,333329.89",
+ "pY": "569400,569399.88"
+ },
+ {
+ "IdS": 223028,
+ "pX": "334925,335190",
+ "pY": "571110,571110"
+ },
+ {
+ "IdS": 223035,
+ "pX": "372700,372425,372595,372424.95",
+ "pY": "550400,550150,550190,549714.84"
+ },
+ {
+ "IdS": 223037,
+ "pX": "372424.95,372300",
+ "pY": "549714.84,549700"
+ },
+ {
+ "IdS": 223038,
+ "pX": "372424.95,372424.87",
+ "pY": "549714.84,548170.5"
+ },
+ {
+ "IdS": 223039,
+ "pX": "372424.87,372250,371760,372485,372425,372075.16",
+ "pY": "548170.5,547500,546570,547620,548000,546434.91"
+ },
+ {
+ "IdS": 223040,
+ "pX": "372424.87,372600",
+ "pY": "548170.5,548150"
+ },
+ {
+ "IdS": 223047,
+ "pX": "369325,369200",
+ "pY": "549900,549900"
+ },
+ {
+ "IdS": 223048,
+ "pX": "369440,369440",
+ "pY": "549900,549930"
+ },
+ {
+ "IdS": 223049,
+ "pX": "369440,369200",
+ "pY": "549930,549900"
+ },
+ {
+ "IdS": 223050,
+ "pX": "371020,371035",
+ "pY": "548260,548280"
+ },
+ {
+ "IdS": 223051,
+ "pX": "371035,371050",
+ "pY": "548280,548300"
+ },
+ {
+ "IdS": 223052,
+ "pX": "369440,369255,369845,369345,370635,370144.8,371020",
+ "pY": "549900,549785,549345,549645,548575,549035.3,548260"
+ },
+ {
+ "IdS": 223057,
+ "pX": "363745,363758.27",
+ "pY": "549435,549478.31"
+ },
+ {
+ "IdS": 223058,
+ "pX": "363758.27,363800",
+ "pY": "549478.31,549600"
+ },
+ {
+ "IdS": 223059,
+ "pX": "363745,364635,365460",
+ "pY": "549435,549085,548780"
+ },
+ {
+ "IdS": 223061,
+ "pX": "368865,368835",
+ "pY": "554070,554070"
+ },
+ {
+ "IdS": 223066,
+ "pX": "372245,372260",
+ "pY": "547695,547660"
+ },
+ {
+ "IdS": 223067,
+ "pX": "372260,372290,372455,372500",
+ "pY": "547660,547590,547590,547600"
+ },
+ {
+ "IdS": 223074,
+ "pX": "362065,362085.79",
+ "pY": "550095,550129.88"
+ },
+ {
+ "IdS": 223075,
+ "pX": "362085.79,362150",
+ "pY": "550129.88,550250"
+ },
+ {
+ "IdS": 223076,
+ "pX": "372075.16,372065.13",
+ "pY": "546434.91,546395.27"
+ },
+ {
+ "IdS": 223077,
+ "pX": "372065.13,372055",
+ "pY": "546395.27,546380"
+ },
+ {
+ "IdS": 223082,
+ "pX": "368865,372580,368775,371675,372724.97",
+ "pY": "554070,556605,554265,556045,556605.09"
+ },
+ {
+ "IdS": 223107,
+ "pX": "336345,336609.47",
+ "pY": "582065,582065.06"
+ },
+ {
+ "IdS": 223110,
+ "pX": "344100,344456.97",
+ "pY": "580200,581160.16"
+ },
+ {
+ "IdS": 223127,
+ "pX": "344456.97,344739.91",
+ "pY": "581160.16,582054.88"
+ },
+ {
+ "IdS": 223128,
+ "pX": "344739.91,344885",
+ "pY": "582054.88,582500"
+ },
+ {
+ "IdS": 223150,
+ "pX": "363800,363950,364070.13",
+ "pY": "549600,549700,549664.92"
+ },
+ {
+ "IdS": 223151,
+ "pX": "364070.13,364300",
+ "pY": "549664.92,549600"
+ },
+ {
+ "IdS": 223160,
+ "pX": "370580,370580",
+ "pY": "550115,550240"
+ },
+ {
+ "IdS": 223161,
+ "pX": "370580,370365.11,370364.94,370350.02",
+ "pY": "550115,550059.96,550220.03,550219.87"
+ },
+ {
+ "IdS": 223162,
+ "pX": "370350.02,370350.04,369950",
+ "pY": "550219.87,550060.06,549950"
+ },
+ {
+ "IdS": 223190,
+ "pX": "339159.91,339225",
+ "pY": "571829.93,571830"
+ },
+ {
+ "IdS": 223191,
+ "pX": "339225,339649.9",
+ "pY": "571830,572309.94"
+ },
+ {
+ "IdS": 223192,
+ "pX": "339649.9,340075,340095",
+ "pY": "572309.94,572785,572785.01"
+ },
+ {
+ "IdS": 223224,
+ "pX": "341700,341700",
+ "pY": "527150,527000"
+ },
+ {
+ "IdS": 223244,
+ "pX": "380550,380339.93",
+ "pY": "541650,541774.58"
+ },
+ {
+ "IdS": 223245,
+ "pX": "380339.93,380300",
+ "pY": "541774.58,541800"
+ },
+ {
+ "IdS": 223246,
+ "pX": "380339.93,380365,380325",
+ "pY": "541774.58,541805,541830"
+ },
+ {
+ "IdS": 223266,
+ "pX": "354700,354754.99,354800.02",
+ "pY": "581100,581114.97,581099.97"
+ },
+ {
+ "IdS": 223267,
+ "pX": "354800.02,354800,354705",
+ "pY": "581099.97,581500,581600"
+ },
+ {
+ "IdS": 223268,
+ "pX": "354900,354800.02",
+ "pY": "580950,581099.97"
+ },
+ {
+ "IdS": 223269,
+ "pX": "354800.02,354754.98,354700",
+ "pY": "581099.97,581084.89,581100"
+ },
+ {
+ "IdS": 223270,
+ "pX": "355850,354749.99",
+ "pY": "580850,581014.99"
+ },
+ {
+ "IdS": 223271,
+ "pX": "354749.99,354750.05,354700",
+ "pY": "581014.99,581054.93,581100"
+ },
+ {
+ "IdS": 223272,
+ "pX": "354700,354715.12,354749.99",
+ "pY": "581100,581040.01,581014.99"
+ },
+ {
+ "IdS": 223273,
+ "pX": "354749.99,354200",
+ "pY": "581014.99,581100"
+ },
+ {
+ "IdS": 223280,
+ "pX": "354705,354600,354600",
+ "pY": "581600,581500,581099.97"
+ },
+ {
+ "IdS": 223281,
+ "pX": "354600,354645.01,354700",
+ "pY": "581099.97,581114.98,581100"
+ },
+ {
+ "IdS": 223302,
+ "pX": "354700,354645,354600",
+ "pY": "581100,581085,581099.97"
+ },
+ {
+ "IdS": 223303,
+ "pX": "354600,354599.99,354700",
+ "pY": "581099.97,580910.35,580850"
+ },
+ {
+ "IdS": 223310,
+ "pX": "345915,346339.57",
+ "pY": "584870,585894.25"
+ },
+ {
+ "IdS": 223311,
+ "pX": "346339.57,346755",
+ "pY": "585894.25,586895"
+ },
+ {
+ "IdS": 223322,
+ "pX": "366350,366350",
+ "pY": "548460,548490"
+ },
+ {
+ "IdS": 223323,
+ "pX": "356570,356595",
+ "pY": "552440,552430"
+ },
+ {
+ "IdS": 223334,
+ "pX": "344129.9,344129.43",
+ "pY": "559350.19,559227.03"
+ },
+ {
+ "IdS": 223335,
+ "pX": "344750,344544.23",
+ "pY": "559350,559349.45"
+ },
+ {
+ "IdS": 223336,
+ "pX": "344544.23,344129.9",
+ "pY": "559349.45,559350.19"
+ },
+ {
+ "IdS": 223337,
+ "pX": "344544.23,344545.11",
+ "pY": "559349.45,559275"
+ },
+ {
+ "IdS": 223338,
+ "pX": "344750,344750.12",
+ "pY": "559350,559279.92"
+ },
+ {
+ "IdS": 223353,
+ "pX": "354700,354685.01,354649.97",
+ "pY": "581100,581040.06,581014.9"
+ },
+ {
+ "IdS": 223354,
+ "pX": "354649.97,354650.04,354620.03",
+ "pY": "581014.9,580974.96,580944.95"
+ },
+ {
+ "IdS": 223355,
+ "pX": "354700,354650,354649.97",
+ "pY": "581100,581055.01,581014.9"
+ },
+ {
+ "IdS": 223356,
+ "pX": "354649.97,354620.03,354620.03",
+ "pY": "581014.9,580984.99,580944.95"
+ },
+ {
+ "IdS": 223385,
+ "pX": "360700,360455",
+ "pY": "548700,548399.87"
+ },
+ {
+ "IdS": 223386,
+ "pX": "360455,360250",
+ "pY": "548399.87,548150"
+ },
+ {
+ "IdS": 223410,
+ "pX": "373550,374239.44",
+ "pY": "546000,545669.51"
+ },
+ {
+ "IdS": 223411,
+ "pX": "374239.44,374500",
+ "pY": "545669.51,545550"
+ },
+ {
+ "IdS": 223412,
+ "pX": "374239.44,374189.92",
+ "pY": "545669.51,545600.04"
+ },
+ {
+ "IdS": 223445,
+ "pX": "355263.66,355499.96",
+ "pY": "562665.22,562880.64"
+ },
+ {
+ "IdS": 223446,
+ "pX": "355499.96,356080",
+ "pY": "562880.64,563410"
+ },
+ {
+ "IdS": 223447,
+ "pX": "355499.96,355520.24",
+ "pY": "562880.64,562859.74"
+ },
+ {
+ "IdS": 223448,
+ "pX": "355520.24,355520,355760",
+ "pY": "562859.74,562795,562795"
+ },
+ {
+ "IdS": 223449,
+ "pX": "355760,355759.96",
+ "pY": "562795,562850.15"
+ },
+ {
+ "IdS": 223450,
+ "pX": "355760,355829.74,356069.71",
+ "pY": "562795,562795.22,562849.96"
+ },
+ {
+ "IdS": 223456,
+ "pX": "331350,331160",
+ "pY": "569550,569550"
+ },
+ {
+ "IdS": 223457,
+ "pX": "331160,330983.36",
+ "pY": "569550,569550.06"
+ },
+ {
+ "IdS": 223462,
+ "pX": "339799.92,339569.82",
+ "pY": "569654.97,569034.98"
+ },
+ {
+ "IdS": 223468,
+ "pX": "338000,338150,338150",
+ "pY": "570900,570830,570745"
+ },
+ {
+ "IdS": 223469,
+ "pX": "338150,338099.98,338100,338000",
+ "pY": "571450,571347.62,570900,570900"
+ },
+ {
+ "IdS": 223470,
+ "pX": "338150,338150",
+ "pY": "571450,570845"
+ },
+ {
+ "IdS": 223474,
+ "pX": "374500,374625.12",
+ "pY": "545550,545490.37"
+ },
+ {
+ "IdS": 223475,
+ "pX": "374625.12,375650",
+ "pY": "545490.37,545000"
+ },
+ {
+ "IdS": 223476,
+ "pX": "374625.12,374520",
+ "pY": "545490.37,545320"
+ },
+ {
+ "IdS": 223485,
+ "pX": "372055,372250,372300,372595,372730",
+ "pY": "546380,546290,546390,546195,546125.15"
+ },
+ {
+ "IdS": 223486,
+ "pX": "372730,372805",
+ "pY": "546125.15,546085"
+ },
+ {
+ "IdS": 223487,
+ "pX": "349876.77,349619.57",
+ "pY": "560191.63,560034.95"
+ },
+ {
+ "IdS": 223488,
+ "pX": "349619.57,349360",
+ "pY": "560034.95,559875"
+ },
+ {
+ "IdS": 223489,
+ "pX": "349619.57,349569.98",
+ "pY": "560034.95,560094.97"
+ },
+ {
+ "IdS": 223493,
+ "pX": "373600.04,373600",
+ "pY": "552199.68,552105"
+ },
+ {
+ "IdS": 223494,
+ "pX": "373600,373599.8",
+ "pY": "552105,551999.91"
+ },
+ {
+ "IdS": 223495,
+ "pX": "373600,373775",
+ "pY": "552105,552105"
+ },
+ {
+ "IdS": 223496,
+ "pX": "337650,337425",
+ "pY": "544515,544180"
+ },
+ {
+ "IdS": 223497,
+ "pX": "355500,356155.03",
+ "pY": "580500,580504.88"
+ },
+ {
+ "IdS": 223498,
+ "pX": "356155.03,356299.44",
+ "pY": "580504.88,580504.54"
+ },
+ {
+ "IdS": 223499,
+ "pX": "356299.44,356260.03,356299.97",
+ "pY": "580504.54,580580.31,580665.09"
+ },
+ {
+ "IdS": 223500,
+ "pX": "356299.97,355850",
+ "pY": "580665.09,580850"
+ },
+ {
+ "IdS": 223501,
+ "pX": "356299.44,356469.97",
+ "pY": "580504.54,580505.26"
+ },
+ {
+ "IdS": 223502,
+ "pX": "356469.97,356650",
+ "pY": "580505.26,580200"
+ },
+ {
+ "IdS": 223503,
+ "pX": "356389.67,356390.07,356389.64,356299.97",
+ "pY": "580200.06,580425.39,580629.77,580665.09"
+ },
+ {
+ "IdS": 223504,
+ "pX": "356299.97,356339.46,356299.44",
+ "pY": "580665.09,580580.55,580504.54"
+ },
+ {
+ "IdS": 223509,
+ "pX": "341699.82,341700",
+ "pY": "527749.94,527300"
+ },
+ {
+ "IdS": 223510,
+ "pX": "345444.84,345099.6",
+ "pY": "576996.2,577675.34"
+ },
+ {
+ "IdS": 223511,
+ "pX": "345099.6,345037.18",
+ "pY": "577675.34,577798.58"
+ },
+ {
+ "IdS": 223518,
+ "pX": "355100,355411.86",
+ "pY": "563900,564399.04"
+ },
+ {
+ "IdS": 223519,
+ "pX": "355411.86,355600",
+ "pY": "564399.04,564700"
+ },
+ {
+ "IdS": 223520,
+ "pX": "340150,340150",
+ "pY": "572050,571750"
+ },
+ {
+ "IdS": 223531,
+ "pX": "342020.04,342039.88,342010,342019.85",
+ "pY": "540145.09,540105.15,540135.09,540084.87"
+ },
+ {
+ "IdS": 223532,
+ "pX": "342019.85,341693.2",
+ "pY": "540084.87,539743.01"
+ },
+ {
+ "IdS": 223533,
+ "pX": "343035,342078.68",
+ "pY": "541105,540144"
+ },
+ {
+ "IdS": 223534,
+ "pX": "342078.68,342059.83,342029.95,342020.04",
+ "pY": "540144,540124.95,540154.85,540145.09"
+ },
+ {
+ "IdS": 223537,
+ "pX": "344129.9,343650,342964.47",
+ "pY": "559350.19,559350,559180.87"
+ },
+ {
+ "IdS": 223538,
+ "pX": "342964.47,342750,342750",
+ "pY": "559180.87,559130,558750"
+ },
+ {
+ "IdS": 223539,
+ "pX": "342964.47,342990.6",
+ "pY": "559180.87,559084.54"
+ },
+ {
+ "IdS": 223540,
+ "pX": "336515,336515.12",
+ "pY": "579555,579479.6"
+ },
+ {
+ "IdS": 223541,
+ "pX": "336515.12,336515",
+ "pY": "579479.6,579410"
+ },
+ {
+ "IdS": 223556,
+ "pX": "343755,344169.73",
+ "pY": "574995,575211.76"
+ },
+ {
+ "IdS": 223557,
+ "pX": "344169.73,344990",
+ "pY": "575211.76,575640"
+ },
+ {
+ "IdS": 223570,
+ "pX": "363800,363800,364150",
+ "pY": "543700,542500,542500"
+ },
+ {
+ "IdS": 223571,
+ "pX": "339500,339690.42",
+ "pY": "594850,594710.68"
+ },
+ {
+ "IdS": 223572,
+ "pX": "339690.42,340450",
+ "pY": "594710.68,594150"
+ },
+ {
+ "IdS": 223574,
+ "pX": "339690.42,339625",
+ "pY": "594710.68,594630"
+ },
+ {
+ "IdS": 223599,
+ "pX": "379350,379295.12",
+ "pY": "545200,545159.81"
+ },
+ {
+ "IdS": 223607,
+ "pX": "385090,385200,385100",
+ "pY": "539290,539235,539050"
+ },
+ {
+ "IdS": 223616,
+ "pX": "373000,373101.43",
+ "pY": "537950,537750.09"
+ },
+ {
+ "IdS": 223617,
+ "pX": "373101.43,373150",
+ "pY": "537750.09,537650"
+ },
+ {
+ "IdS": 223618,
+ "pX": "373101.43,373215",
+ "pY": "537750.09,537805"
+ },
+ {
+ "IdS": 223619,
+ "pX": "352755.01,352785.03",
+ "pY": "560599.77,560629.93"
+ },
+ {
+ "IdS": 223620,
+ "pX": "352795.09,353627.53",
+ "pY": "560638.3,561323.95"
+ },
+ {
+ "IdS": 223649,
+ "pX": "356050,356845,356970",
+ "pY": "563450,564075,563985"
+ },
+ {
+ "IdS": 223650,
+ "pX": "356970,356860,356975,357200",
+ "pY": "563985,564085,564005,564350"
+ },
+ {
+ "IdS": 223651,
+ "pX": "356970,357060",
+ "pY": "563985,563875"
+ },
+ {
+ "IdS": 223652,
+ "pX": "345775,345790,346189.9",
+ "pY": "553950,553965,553998.21"
+ },
+ {
+ "IdS": 223654,
+ "pX": "346189.9,346439.75",
+ "pY": "553998.21,554020.14"
+ },
+ {
+ "IdS": 223655,
+ "pX": "346439.75,346750",
+ "pY": "554020.14,554045"
+ },
+ {
+ "IdS": 223665,
+ "pX": "351649.96,351800",
+ "pY": "556430.09,556500"
+ },
+ {
+ "IdS": 223678,
+ "pX": "339850,339900",
+ "pY": "574280,574300"
+ },
+ {
+ "IdS": 223679,
+ "pX": "340025.23,340135,340180,339805.44",
+ "pY": "572779.72,573020,572960,574269.15"
+ },
+ {
+ "IdS": 223680,
+ "pX": "339805.44,339850",
+ "pY": "574269.15,574280"
+ },
+ {
+ "IdS": 223681,
+ "pX": "339000,338860.11",
+ "pY": "571650,571474.56"
+ },
+ {
+ "IdS": 223682,
+ "pX": "338860.11,338790",
+ "pY": "571474.56,571395"
+ },
+ {
+ "IdS": 223683,
+ "pX": "337274.94,337300",
+ "pY": "571400.04,571400"
+ },
+ {
+ "IdS": 223684,
+ "pX": "337300,337299.93",
+ "pY": "571400,571390.1"
+ },
+ {
+ "IdS": 223685,
+ "pX": "336300,336194.81",
+ "pY": "572050,572049.94"
+ },
+ {
+ "IdS": 223686,
+ "pX": "336194.81,336150",
+ "pY": "572049.94,572050"
+ },
+ {
+ "IdS": 223697,
+ "pX": "341635,341700",
+ "pY": "527150,527000"
+ },
+ {
+ "IdS": 223729,
+ "pX": "344580,344580",
+ "pY": "555395,555290"
+ },
+ {
+ "IdS": 223730,
+ "pX": "344050,344550,344580",
+ "pY": "555800,555380,555290"
+ },
+ {
+ "IdS": 223731,
+ "pX": "344450.61,344600,344600,344750,344580",
+ "pY": "555829.08,555395,555335,555615,555290"
+ },
+ {
+ "IdS": 223732,
+ "pX": "333800,333800,333620.2",
+ "pY": "570800,570500,570499.56"
+ },
+ {
+ "IdS": 223733,
+ "pX": "333620.2,333500",
+ "pY": "570499.56,570500"
+ },
+ {
+ "IdS": 223740,
+ "pX": "338030,338040",
+ "pY": "570200,570200"
+ },
+ {
+ "IdS": 223741,
+ "pX": "338040,338150",
+ "pY": "570200,570200"
+ },
+ {
+ "IdS": 223744,
+ "pX": "341435,341435",
+ "pY": "559180,559025"
+ },
+ {
+ "IdS": 223747,
+ "pX": "340455,340315",
+ "pY": "538725,538725"
+ },
+ {
+ "IdS": 223748,
+ "pX": "340455,346255",
+ "pY": "538725,538725"
+ },
+ {
+ "IdS": 223749,
+ "pX": "346255,354300",
+ "pY": "538725,538725"
+ },
+ {
+ "IdS": 223750,
+ "pX": "354300,354300",
+ "pY": "538725,539100"
+ },
+ {
+ "IdS": 223751,
+ "pX": "354300,360550",
+ "pY": "538725,538725"
+ },
+ {
+ "IdS": 223753,
+ "pX": "342042.38,340455",
+ "pY": "540122.45,538725"
+ },
+ {
+ "IdS": 223754,
+ "pX": "340455,340805.01",
+ "pY": "538725,534799.99"
+ },
+ {
+ "IdS": 223773,
+ "pX": "346100,346019.62",
+ "pY": "549450,549349.07"
+ },
+ {
+ "IdS": 223777,
+ "pX": "333750,334200",
+ "pY": "566350,566350"
+ },
+ {
+ "IdS": 223778,
+ "pX": "333150,333104.72",
+ "pY": "547700,547579.54"
+ },
+ {
+ "IdS": 223783,
+ "pX": "346100,346200",
+ "pY": "549450,549350"
+ },
+ {
+ "IdS": 223788,
+ "pX": "347580,347679.67",
+ "pY": "564820,564735.9"
+ },
+ {
+ "IdS": 223789,
+ "pX": "347679.67,348113.46",
+ "pY": "564735.9,564387.16"
+ },
+ {
+ "IdS": 223790,
+ "pX": "346981.61,347490.44",
+ "pY": "565355.16,564900.55"
+ },
+ {
+ "IdS": 223792,
+ "pX": "347490.44,347525,347580",
+ "pY": "564900.55,564940,564820"
+ },
+ {
+ "IdS": 223793,
+ "pX": "347580,347720,347679.67",
+ "pY": "564820,564775,564735.9"
+ },
+ {
+ "IdS": 223794,
+ "pX": "347490.44,347580",
+ "pY": "564900.55,564820"
+ },
+ {
+ "IdS": 223795,
+ "pX": "338480,338405",
+ "pY": "591030,590709.99"
+ },
+ {
+ "IdS": 223807,
+ "pX": "349800,349500.32,349600,349450",
+ "pY": "551400,551350.03,551350,551550"
+ },
+ {
+ "IdS": 223808,
+ "pX": "349450,349400,349300",
+ "pY": "551550,551350,551350"
+ },
+ {
+ "IdS": 223809,
+ "pX": "351600,351480,351449.09",
+ "pY": "552100,552896.73,553094.33"
+ },
+ {
+ "IdS": 223814,
+ "pX": "336300,336280.16",
+ "pY": "570920,570919.95"
+ },
+ {
+ "IdS": 223819,
+ "pX": "336275,336300.02",
+ "pY": "570250,570249.96"
+ },
+ {
+ "IdS": 223834,
+ "pX": "335645,336005,336110,336220,336725,336725,335655,336005,338230",
+ "pY": "570920,571035,571035,571240,571240,571340,570930,570930,571340"
+ },
+ {
+ "IdS": 223835,
+ "pX": "338230,338250",
+ "pY": "571340,571380"
+ },
+ {
+ "IdS": 223871,
+ "pX": "336950,336950",
+ "pY": "571000,570800"
+ },
+ {
+ "IdS": 223872,
+ "pX": "336950,336949.96",
+ "pY": "570800,570700.07"
+ },
+ {
+ "IdS": 223874,
+ "pX": "336949.96,336950",
+ "pY": "570700.07,570450"
+ },
+ {
+ "IdS": 223875,
+ "pX": "336950,336950",
+ "pY": "570450,570200"
+ },
+ {
+ "IdS": 223884,
+ "pX": "337149.77,337150.21,337015",
+ "pY": "563499.68,563114.88,563115"
+ },
+ {
+ "IdS": 223893,
+ "pX": "336700,336549.9",
+ "pY": "570100,570099.85"
+ },
+ {
+ "IdS": 223896,
+ "pX": "335400,336100",
+ "pY": "565900,565900"
+ },
+ {
+ "IdS": 223901,
+ "pX": "337898.73,337470.12",
+ "pY": "547700.24,547700.27"
+ },
+ {
+ "IdS": 223902,
+ "pX": "337470.12,337050",
+ "pY": "547700.27,547700"
+ },
+ {
+ "IdS": 223903,
+ "pX": "337470.12,337470.05",
+ "pY": "547700.27,547580.07"
+ },
+ {
+ "IdS": 223904,
+ "pX": "337050,337119.79",
+ "pY": "547700,547594.58"
+ },
+ {
+ "IdS": 223909,
+ "pX": "344709.82,344580",
+ "pY": "555314.49,555290"
+ },
+ {
+ "IdS": 223910,
+ "pX": "342015,342774.23,343619.93,344402.34",
+ "pY": "557730,557279.98,557285.29,555879.95"
+ },
+ {
+ "IdS": 223913,
+ "pX": "337015,337356.18",
+ "pY": "563115,562710.11"
+ },
+ {
+ "IdS": 223919,
+ "pX": "340230.91,340474.97",
+ "pY": "558949.98,558949.99"
+ },
+ {
+ "IdS": 223920,
+ "pX": "340474.97,340650",
+ "pY": "558949.99,558950"
+ },
+ {
+ "IdS": 223921,
+ "pX": "334800,334399.86",
+ "pY": "570200,570199.94"
+ },
+ {
+ "IdS": 223922,
+ "pX": "334399.86,334340",
+ "pY": "570199.94,570199.97"
+ },
+ {
+ "IdS": 223923,
+ "pX": "339100,339303.56",
+ "pY": "571350,571309.19"
+ },
+ {
+ "IdS": 223924,
+ "pX": "339303.56,339350",
+ "pY": "571309.19,571300"
+ },
+ {
+ "IdS": 223925,
+ "pX": "334450,334649.51",
+ "pY": "566350,566350.11"
+ },
+ {
+ "IdS": 223926,
+ "pX": "334649.51,334650",
+ "pY": "566350.11,566300"
+ },
+ {
+ "IdS": 223927,
+ "pX": "334185.07,334099.89,334060.04",
+ "pY": "570300.05,570099.82,570099.95"
+ },
+ {
+ "IdS": 223928,
+ "pX": "334060.04,334059.95,334019.95",
+ "pY": "570099.95,570179.96,570180.18"
+ },
+ {
+ "IdS": 223929,
+ "pX": "334019.95,333980.03,333979.89",
+ "pY": "570180.18,570180.08,570100.13"
+ },
+ {
+ "IdS": 223930,
+ "pX": "333979.89,333900",
+ "pY": "570100.13,570100"
+ },
+ {
+ "IdS": 223931,
+ "pX": "338550,338900.56",
+ "pY": "571750,571749.73"
+ },
+ {
+ "IdS": 223932,
+ "pX": "338900.56,339000",
+ "pY": "571749.73,571650"
+ },
+ {
+ "IdS": 223933,
+ "pX": "339000,339209.97",
+ "pY": "571650,571814.99"
+ },
+ {
+ "IdS": 223934,
+ "pX": "339209.97,339160,339159.91",
+ "pY": "571814.99,571815,571829.93"
+ },
+ {
+ "IdS": 223935,
+ "pX": "336345,336509.52",
+ "pY": "580270,580049.87"
+ },
+ {
+ "IdS": 223936,
+ "pX": "336509.52,337200",
+ "pY": "580049.87,580050"
+ },
+ {
+ "IdS": 223937,
+ "pX": "337200,337170,336514.86",
+ "pY": "580050,579990,579989.82"
+ },
+ {
+ "IdS": 223939,
+ "pX": "372110,372075.16",
+ "pY": "546445,546434.91"
+ },
+ {
+ "IdS": 223940,
+ "pX": "372075.16,372199.91",
+ "pY": "546434.91,546369.54"
+ },
+ {
+ "IdS": 223941,
+ "pX": "372199.91,372265,372300",
+ "pY": "546369.54,546335,546400"
+ },
+ {
+ "IdS": 223942,
+ "pX": "372075.16,370624.19",
+ "pY": "546434.91,545124.47"
+ },
+ {
+ "IdS": 223943,
+ "pX": "370624.19,371008.96",
+ "pY": "545124.47,545125.1"
+ },
+ {
+ "IdS": 223945,
+ "pX": "370070.72,370394.61",
+ "pY": "544630.14,544630.54"
+ },
+ {
+ "IdS": 223946,
+ "pX": "370070.72,369824.25",
+ "pY": "544630.14,544187.22"
+ },
+ {
+ "IdS": 223947,
+ "pX": "369824.25,370795.04",
+ "pY": "544187.22,544099.98"
+ },
+ {
+ "IdS": 223948,
+ "pX": "369824.25,369734.04",
+ "pY": "544187.22,543919.77"
+ },
+ {
+ "IdS": 223949,
+ "pX": "369734.04,370054.83",
+ "pY": "543919.77,543919.83"
+ },
+ {
+ "IdS": 223950,
+ "pX": "369734.04,369734.93",
+ "pY": "543919.77,543514.28"
+ },
+ {
+ "IdS": 223951,
+ "pX": "369734.93,370450",
+ "pY": "543514.28,543350"
+ },
+ {
+ "IdS": 223953,
+ "pX": "369569.82,369570.43",
+ "pY": "541854.93,541350.04"
+ },
+ {
+ "IdS": 223954,
+ "pX": "369570.43,369370.19",
+ "pY": "541350.04,541349.09"
+ },
+ {
+ "IdS": 223955,
+ "pX": "369370.19,368195",
+ "pY": "541349.09,541350"
+ },
+ {
+ "IdS": 223956,
+ "pX": "369570.43,369650",
+ "pY": "541350.04,541350"
+ },
+ {
+ "IdS": 223960,
+ "pX": "349300,349300.8",
+ "pY": "552300,552581.25"
+ },
+ {
+ "IdS": 223961,
+ "pX": "349300.8,349300",
+ "pY": "552581.25,553050"
+ },
+ {
+ "IdS": 223965,
+ "pX": "346755,346780",
+ "pY": "551430,551150"
+ },
+ {
+ "IdS": 223969,
+ "pX": "346840,346780",
+ "pY": "551445,551150"
+ },
+ {
+ "IdS": 224016,
+ "pX": "347440,347469.94",
+ "pY": "556205,556204.91"
+ },
+ {
+ "IdS": 224017,
+ "pX": "347469.94,347530",
+ "pY": "556204.91,556205"
+ },
+ {
+ "IdS": 224018,
+ "pX": "346045,347260,347540,347260,347540,347110,347145,347024.91",
+ "pY": "553980,553980,555570,554500,554640,555580,555570,555579.96"
+ },
+ {
+ "IdS": 224019,
+ "pX": "347024.91,346120,346510,346905,346510,345300",
+ "pY": "555579.96,554460,554900,555580,555195,555110"
+ },
+ {
+ "IdS": 224020,
+ "pX": "347024.91,347065",
+ "pY": "555579.96,555590"
+ },
+ {
+ "IdS": 224022,
+ "pX": "348849.95,348500",
+ "pY": "581494.96,581750"
+ },
+ {
+ "IdS": 224023,
+ "pX": "348849.95,348829.81",
+ "pY": "581494.96,581474.63"
+ },
+ {
+ "IdS": 224024,
+ "pX": "349725,349273.48",
+ "pY": "580850,581182.84"
+ },
+ {
+ "IdS": 224025,
+ "pX": "349273.48,348849.95",
+ "pY": "581182.84,581494.96"
+ },
+ {
+ "IdS": 224031,
+ "pX": "330749.51,331200",
+ "pY": "563999.48,564000"
+ },
+ {
+ "IdS": 224032,
+ "pX": "330749.51,330749.49",
+ "pY": "563999.48,563850.2"
+ },
+ {
+ "IdS": 224044,
+ "pX": "344402.34,344680.41",
+ "pY": "555879.95,555384.78"
+ },
+ {
+ "IdS": 224045,
+ "pX": "344402.34,344430.19",
+ "pY": "555879.95,555894.92"
+ },
+ {
+ "IdS": 224046,
+ "pX": "344430.19,344623.9",
+ "pY": "555894.92,555928.92"
+ },
+ {
+ "IdS": 224047,
+ "pX": "338030.15,338180.63",
+ "pY": "568824.05,568430.33"
+ },
+ {
+ "IdS": 224048,
+ "pX": "338180.63,338590,338785",
+ "pY": "568430.33,567375,567375"
+ },
+ {
+ "IdS": 224049,
+ "pX": "338180.63,338352.9",
+ "pY": "568430.33,568489.99"
+ },
+ {
+ "IdS": 224050,
+ "pX": "338352.9,338855",
+ "pY": "568489.99,568700"
+ },
+ {
+ "IdS": 224051,
+ "pX": "356700,356770.02",
+ "pY": "552500,552499.98"
+ },
+ {
+ "IdS": 224052,
+ "pX": "356770.02,357619.9",
+ "pY": "552499.98,552210.95"
+ },
+ {
+ "IdS": 224053,
+ "pX": "356200,356595,356625",
+ "pY": "552550,552550,552500"
+ },
+ {
+ "IdS": 224054,
+ "pX": "356625,356635,356690,356700",
+ "pY": "552500,552510,552510,552500"
+ },
+ {
+ "IdS": 224055,
+ "pX": "356700,356690,356635,356625",
+ "pY": "552500,552490,552490,552500"
+ },
+ {
+ "IdS": 224056,
+ "pX": "356625,356595,355450",
+ "pY": "552500,552450,552300"
+ },
+ {
+ "IdS": 224057,
+ "pX": "358250,356770,356740",
+ "pY": "551750,552430,552430"
+ },
+ {
+ "IdS": 224058,
+ "pX": "356740,356720,356745,356700",
+ "pY": "552430,552490,552445,552500"
+ },
+ {
+ "IdS": 224059,
+ "pX": "356700,356740",
+ "pY": "552500,552430"
+ },
+ {
+ "IdS": 224060,
+ "pX": "356740,356750,356750,356740",
+ "pY": "552430,552420,552390,552380"
+ },
+ {
+ "IdS": 224061,
+ "pX": "356700,356725,356700,356740",
+ "pY": "552500,552430,552475,552430"
+ },
+ {
+ "IdS": 224062,
+ "pX": "356740,356730,356730,356740",
+ "pY": "552430,552390,552420,552380"
+ },
+ {
+ "IdS": 224063,
+ "pX": "356700,356679.82",
+ "pY": "552500,552568.16"
+ },
+ {
+ "IdS": 224064,
+ "pX": "356679.82,356400",
+ "pY": "552568.16,553500"
+ },
+ {
+ "IdS": 224065,
+ "pX": "372700,372699.92",
+ "pY": "550400,550499.92"
+ },
+ {
+ "IdS": 224066,
+ "pX": "372699.92,372835.06",
+ "pY": "550499.92,550499.83"
+ },
+ {
+ "IdS": 224084,
+ "pX": "333300,333000",
+ "pY": "568650,568650"
+ },
+ {
+ "IdS": 224085,
+ "pX": "333000,332999.48",
+ "pY": "568650,568050.64"
+ },
+ {
+ "IdS": 224087,
+ "pX": "333055.29,333148.93",
+ "pY": "568714.82,568828.84"
+ },
+ {
+ "IdS": 224089,
+ "pX": "353400,353559.49",
+ "pY": "557250,557329.56"
+ },
+ {
+ "IdS": 224090,
+ "pX": "353559.49,353600",
+ "pY": "557329.56,557350"
+ },
+ {
+ "IdS": 224091,
+ "pX": "353700,353785.36",
+ "pY": "557400,557442.45"
+ },
+ {
+ "IdS": 224092,
+ "pX": "353785.36,353900",
+ "pY": "557442.45,557500"
+ },
+ {
+ "IdS": 224101,
+ "pX": "335285,333960.36,333959.93,333749.54",
+ "pY": "566830,566828.12,566230.35,566229.09"
+ },
+ {
+ "IdS": 224112,
+ "pX": "354600,354633.15",
+ "pY": "559850,559932.09"
+ },
+ {
+ "IdS": 224113,
+ "pX": "354633.15,354700",
+ "pY": "559932.09,560100"
+ },
+ {
+ "IdS": 224114,
+ "pX": "354900,354950.66",
+ "pY": "560550,560674.57"
+ },
+ {
+ "IdS": 224115,
+ "pX": "354950.66,355000",
+ "pY": "560674.57,560800"
+ },
+ {
+ "IdS": 224123,
+ "pX": "354200,354242.26",
+ "pY": "558900,558985.04"
+ },
+ {
+ "IdS": 224124,
+ "pX": "354242.26,354350",
+ "pY": "558985.04,559200"
+ },
+ {
+ "IdS": 224129,
+ "pX": "355550,355646.13",
+ "pY": "562050,562242.21"
+ },
+ {
+ "IdS": 224130,
+ "pX": "355646.13,356070.38",
+ "pY": "562242.21,562565.4"
+ },
+ {
+ "IdS": 224137,
+ "pX": "345000,345000,345000",
+ "pY": "549700,550000,550150"
+ },
+ {
+ "IdS": 224138,
+ "pX": "372600,372486.23",
+ "pY": "556050,556049.71"
+ },
+ {
+ "IdS": 224139,
+ "pX": "372486.23,372400",
+ "pY": "556049.71,556050"
+ },
+ {
+ "IdS": 224150,
+ "pX": "369760,369800.4",
+ "pY": "552720,552828.64"
+ },
+ {
+ "IdS": 224151,
+ "pX": "369800.4,369900",
+ "pY": "552828.64,553095"
+ },
+ {
+ "IdS": 224181,
+ "pX": "341950,341579.72",
+ "pY": "563300,563084.29"
+ },
+ {
+ "IdS": 224182,
+ "pX": "341579.72,341350",
+ "pY": "563084.29,562950"
+ },
+ {
+ "IdS": 224270,
+ "pX": "371670,372107.88",
+ "pY": "556050,556320.47"
+ },
+ {
+ "IdS": 224271,
+ "pX": "372107.88,372442.83",
+ "pY": "556320.47,556528.79"
+ },
+ {
+ "IdS": 224276,
+ "pX": "366350.01,366485.2",
+ "pY": "555650,555543.38"
+ },
+ {
+ "IdS": 224277,
+ "pX": "366485.2,366647.37",
+ "pY": "555543.38,555415.51"
+ },
+ {
+ "IdS": 224284,
+ "pX": "371466.79,371436.53",
+ "pY": "556397.08,556446.15"
+ },
+ {
+ "IdS": 224285,
+ "pX": "371436.53,371399.47",
+ "pY": "556446.15,556506.37"
+ },
+ {
+ "IdS": 224295,
+ "pX": "366888.56,366989.87",
+ "pY": "555269.82,555208.89"
+ },
+ {
+ "IdS": 224300,
+ "pX": "356670,357300",
+ "pY": "552900,552900.01"
+ },
+ {
+ "IdS": 224312,
+ "pX": "371000,371225.11",
+ "pY": "553400,553400.07"
+ },
+ {
+ "IdS": 224313,
+ "pX": "371225.11,371500",
+ "pY": "553400.07,553400"
+ },
+ {
+ "IdS": 224318,
+ "pX": "369350,369650,369649.58",
+ "pY": "549650,549650,550113.81"
+ },
+ {
+ "IdS": 224319,
+ "pX": "369649.58,369650",
+ "pY": "550113.81,550800.01"
+ },
+ {
+ "IdS": 224320,
+ "pX": "352700,353560.36",
+ "pY": "571200,571196.85"
+ },
+ {
+ "IdS": 224321,
+ "pX": "353560.36,354550",
+ "pY": "571196.85,571200"
+ },
+ {
+ "IdS": 224322,
+ "pX": "353560.36,353560.47",
+ "pY": "571196.85,570992.85"
+ },
+ {
+ "IdS": 224338,
+ "pX": "369570.43,369620.05",
+ "pY": "541350.04,540264.95"
+ },
+ {
+ "IdS": 224339,
+ "pX": "369620.05,370079.9",
+ "pY": "540264.95,538990.08"
+ },
+ {
+ "IdS": 224340,
+ "pX": "370079.9,370347.22",
+ "pY": "538990.08,538264.76"
+ },
+ {
+ "IdS": 224341,
+ "pX": "370347.22,370663.94",
+ "pY": "538264.76,537235.83"
+ },
+ {
+ "IdS": 224342,
+ "pX": "370663.94,370849.89",
+ "pY": "537235.83,536174.69"
+ },
+ {
+ "IdS": 224343,
+ "pX": "370849.89,370934.47",
+ "pY": "536174.69,535464.18"
+ },
+ {
+ "IdS": 224344,
+ "pX": "370934.47,371085.17",
+ "pY": "535464.18,534899.95"
+ },
+ {
+ "IdS": 224345,
+ "pX": "371085.17,371295",
+ "pY": "534899.95,534900"
+ },
+ {
+ "IdS": 224346,
+ "pX": "369620.05,369920.1",
+ "pY": "540264.95,540264.97"
+ },
+ {
+ "IdS": 224347,
+ "pX": "370079.9,370430.13",
+ "pY": "538990.08,538989.86"
+ },
+ {
+ "IdS": 224348,
+ "pX": "370347.22,370684.48",
+ "pY": "538264.76,538264.54"
+ },
+ {
+ "IdS": 224349,
+ "pX": "370663.94,370965.19",
+ "pY": "537235.83,537234.5"
+ },
+ {
+ "IdS": 224351,
+ "pX": "370849.89,371084.94",
+ "pY": "536174.69,536174.95"
+ },
+ {
+ "IdS": 224352,
+ "pX": "370934.47,371129.54",
+ "pY": "535464.18,535464.85"
+ },
+ {
+ "IdS": 224353,
+ "pX": "339850,340536.23",
+ "pY": "547040,546379.65"
+ },
+ {
+ "IdS": 224358,
+ "pX": "337050,336955,336745.72",
+ "pY": "585200,584815,583964.91"
+ },
+ {
+ "IdS": 224361,
+ "pX": "372429.77,372464.81",
+ "pY": "550240.05,550254.82"
+ },
+ {
+ "IdS": 224362,
+ "pX": "372459.96,372460.01",
+ "pY": "550239.98,550244.91"
+ },
+ {
+ "IdS": 224363,
+ "pX": "333900,333608.68,333680.12,333850.34,333500",
+ "pY": "569350,569250.19,569250.02,569250.68,569250"
+ },
+ {
+ "IdS": 224371,
+ "pX": "334875,334770,334875,334770,334625,334625,335090.08",
+ "pY": "569035,567840,568195,567535,567290,567085,567084.62"
+ },
+ {
+ "IdS": 224372,
+ "pX": "335090.08,335140,335285,335285",
+ "pY": "567084.62,567085,566885,566830"
+ },
+ {
+ "IdS": 224373,
+ "pX": "335090.08,335089.76",
+ "pY": "567084.62,567199.82"
+ },
+ {
+ "IdS": 224374,
+ "pX": "335089.76,335150",
+ "pY": "567199.82,567200"
+ },
+ {
+ "IdS": 224381,
+ "pX": "345184.48,344700",
+ "pY": "579994.42,579250"
+ },
+ {
+ "IdS": 224388,
+ "pX": "352775.06,355263.66",
+ "pY": "560574.89,562665.22"
+ },
+ {
+ "IdS": 224389,
+ "pX": "352719.49,352775.06",
+ "pY": "560595.05,560574.89"
+ },
+ {
+ "IdS": 224390,
+ "pX": "352675.03,352775.06",
+ "pY": "560574.98,560574.89"
+ },
+ {
+ "IdS": 224391,
+ "pX": "338350,338349.98",
+ "pY": "567499.99,567644.68"
+ },
+ {
+ "IdS": 224392,
+ "pX": "338349.98,338350",
+ "pY": "567644.68,567700"
+ },
+ {
+ "IdS": 224393,
+ "pX": "341699.82,341719.85,341764.93",
+ "pY": "527749.94,527759.88,527760.05"
+ },
+ {
+ "IdS": 224395,
+ "pX": "341699.82,341720.18,341764.93",
+ "pY": "527749.94,527745.03,527760.05"
+ },
+ {
+ "IdS": 224406,
+ "pX": "339800,339800,340050,340050",
+ "pY": "570800,570650,570650,570350"
+ },
+ {
+ "IdS": 224408,
+ "pX": "336399.99,336400",
+ "pY": "564014.94,563900"
+ },
+ {
+ "IdS": 224413,
+ "pX": "335725,335725.11",
+ "pY": "556185,556229.55"
+ },
+ {
+ "IdS": 224414,
+ "pX": "338950,338999.96",
+ "pY": "571610,571609.96"
+ },
+ {
+ "IdS": 224415,
+ "pX": "338999.96,339000",
+ "pY": "571609.96,571650"
+ },
+ {
+ "IdS": 224416,
+ "pX": "338239.98,338150",
+ "pY": "571389.95,571450"
+ },
+ {
+ "IdS": 224417,
+ "pX": "338250,338239.98",
+ "pY": "571380,571389.95"
+ },
+ {
+ "IdS": 224420,
+ "pX": "380450,379900",
+ "pY": "541250,541600"
+ },
+ {
+ "IdS": 224432,
+ "pX": "344885,345230",
+ "pY": "582500,583694.97"
+ },
+ {
+ "IdS": 224433,
+ "pX": "345230,345267.72",
+ "pY": "583694.97,583829.68"
+ },
+ {
+ "IdS": 224434,
+ "pX": "344750,344870.11",
+ "pY": "584100,583560.06"
+ },
+ {
+ "IdS": 224435,
+ "pX": "344870.11,344950",
+ "pY": "583560.06,583200"
+ },
+ {
+ "IdS": 224436,
+ "pX": "344870.11,344895.07,345180.01,345230",
+ "pY": "583560.06,583604.27,583694.91,583694.97"
+ },
+ {
+ "IdS": 224437,
+ "pX": "345230,344870.11",
+ "pY": "583694.97,583560.06"
+ },
+ {
+ "IdS": 224447,
+ "pX": "362200.06,362200",
+ "pY": "555019.91,555100"
+ },
+ {
+ "IdS": 224448,
+ "pX": "358100,358100.53",
+ "pY": "552900,551698.53"
+ },
+ {
+ "IdS": 224449,
+ "pX": "358100.53,358100",
+ "pY": "551698.53,551350"
+ },
+ {
+ "IdS": 224450,
+ "pX": "361450,361810.05",
+ "pY": "552900,552899.96"
+ },
+ {
+ "IdS": 224451,
+ "pX": "361810.05,362200",
+ "pY": "552899.96,552900"
+ },
+ {
+ "IdS": 224452,
+ "pX": "357799.93,357144.81",
+ "pY": "555801.3,555800.04"
+ },
+ {
+ "IdS": 224453,
+ "pX": "357144.81,356800",
+ "pY": "555800.04,555801.37"
+ },
+ {
+ "IdS": 224457,
+ "pX": "355050,355332.55",
+ "pY": "552700,552756.37"
+ },
+ {
+ "IdS": 224458,
+ "pX": "355332.55,355550",
+ "pY": "552756.37,552800"
+ },
+ {
+ "IdS": 224470,
+ "pX": "343900,343579.74",
+ "pY": "578800,578399.53"
+ },
+ {
+ "IdS": 224471,
+ "pX": "343579.74,343500",
+ "pY": "578399.53,578300"
+ },
+ {
+ "IdS": 224472,
+ "pX": "343579.74,344143.48,344449.54",
+ "pY": "578399.53,577909.92,577909.79"
+ },
+ {
+ "IdS": 224478,
+ "pX": "345037.18,344879.99,344499.79,344449.54",
+ "pY": "577798.58,578109.81,577909.76,577909.79"
+ },
+ {
+ "IdS": 224479,
+ "pX": "344449.54,344860.87,344450",
+ "pY": "577909.79,578146.23,578950"
+ },
+ {
+ "IdS": 224480,
+ "pX": "355250.01,355018.61",
+ "pY": "555800,556262.85"
+ },
+ {
+ "IdS": 224481,
+ "pX": "355018.61,354850",
+ "pY": "556262.85,556600"
+ },
+ {
+ "IdS": 224482,
+ "pX": "362200,362145.02",
+ "pY": "555100,555099.87"
+ },
+ {
+ "IdS": 224483,
+ "pX": "362145.02,362000",
+ "pY": "555099.87,555100"
+ },
+ {
+ "IdS": 224484,
+ "pX": "329850,329934.61",
+ "pY": "564000,564000.03"
+ },
+ {
+ "IdS": 224485,
+ "pX": "329934.61,330749.51",
+ "pY": "564000.03,563999.48"
+ },
+ {
+ "IdS": 224486,
+ "pX": "329934.61,329934.95",
+ "pY": "564000.03,563934.91"
+ },
+ {
+ "IdS": 224580,
+ "pX": "361200,361325.04",
+ "pY": "552900,552900"
+ },
+ {
+ "IdS": 224581,
+ "pX": "361325.04,361450",
+ "pY": "552900,552900"
+ },
+ {
+ "IdS": 224591,
+ "pX": "355750,355725.18",
+ "pY": "554800,554850.68"
+ },
+ {
+ "IdS": 224592,
+ "pX": "355725.18,355250.01",
+ "pY": "554850.68,555800"
+ },
+ {
+ "IdS": 224597,
+ "pX": "356400,356333.6",
+ "pY": "553500,553654.71"
+ },
+ {
+ "IdS": 224598,
+ "pX": "356333.6,356250",
+ "pY": "553654.71,553850"
+ },
+ {
+ "IdS": 224599,
+ "pX": "362200,362200.07",
+ "pY": "554900,554940.01"
+ },
+ {
+ "IdS": 224621,
+ "pX": "362500,362615.07",
+ "pY": "552300,552300.05"
+ },
+ {
+ "IdS": 224622,
+ "pX": "362615.07,362800",
+ "pY": "552300.05,552300"
+ },
+ {
+ "IdS": 224625,
+ "pX": "362200,362200.36",
+ "pY": "552300,551995.4"
+ },
+ {
+ "IdS": 224626,
+ "pX": "362200.36,362200",
+ "pY": "551995.4,551800"
+ },
+ {
+ "IdS": 224659,
+ "pX": "356000,355719.94",
+ "pY": "555800.12,555799.91"
+ },
+ {
+ "IdS": 224660,
+ "pX": "355719.94,355250.01",
+ "pY": "555799.91,555800"
+ },
+ {
+ "IdS": 224663,
+ "pX": "333722.83,334134.54",
+ "pY": "558942.93,558376.64"
+ },
+ {
+ "IdS": 224668,
+ "pX": "362200.07,362200.1",
+ "pY": "554940.01,554986.36"
+ },
+ {
+ "IdS": 224669,
+ "pX": "362200.1,362200.06",
+ "pY": "554986.36,555019.91"
+ },
+ {
+ "IdS": 224672,
+ "pX": "332635,333218.06",
+ "pY": "560440,559635.52"
+ },
+ {
+ "IdS": 224697,
+ "pX": "336100,336730.02",
+ "pY": "578300,578500.31"
+ },
+ {
+ "IdS": 224698,
+ "pX": "336730.02,337150,337350.01",
+ "pY": "578500.31,578350,578465.01"
+ },
+ {
+ "IdS": 224705,
+ "pX": "336730.02,336696.19,337089.35,337200",
+ "pY": "578500.31,578406.85,577227.2,577000"
+ },
+ {
+ "IdS": 224706,
+ "pX": "336729.84,337160.25",
+ "pY": "578414.66,577224.35"
+ },
+ {
+ "IdS": 224707,
+ "pX": "336729.84,336730.02",
+ "pY": "578414.66,578500.31"
+ },
+ {
+ "IdS": 224708,
+ "pX": "337160.25,337200",
+ "pY": "577224.35,577000"
+ },
+ {
+ "IdS": 224709,
+ "pX": "370610,370213.24",
+ "pY": "544170,543376.81"
+ },
+ {
+ "IdS": 224710,
+ "pX": "370208.95,370200",
+ "pY": "543367.9,543350"
+ },
+ {
+ "IdS": 224713,
+ "pX": "347100,347100,347100",
+ "pY": "555450,555250,555150"
+ },
+ {
+ "IdS": 224780,
+ "pX": "335350,335349.8",
+ "pY": "569150,569003.28"
+ },
+ {
+ "IdS": 224781,
+ "pX": "335349.8,335350",
+ "pY": "569003.28,568855"
+ },
+ {
+ "IdS": 224791,
+ "pX": "356080,356110.08",
+ "pY": "563410,563369.88"
+ },
+ {
+ "IdS": 224792,
+ "pX": "357220,357269.87",
+ "pY": "564329.66,564285.03"
+ },
+ {
+ "IdS": 224793,
+ "pX": "356080,357220",
+ "pY": "563410,564329.66"
+ },
+ {
+ "IdS": 224794,
+ "pX": "357220,357200",
+ "pY": "564329.66,564350"
+ },
+ {
+ "IdS": 224843,
+ "pX": "349350,349304.98",
+ "pY": "563400,563579.95"
+ },
+ {
+ "IdS": 224862,
+ "pX": "356069.71,356069.95,355600,355600",
+ "pY": "562849.96,562954.02,563100,563200"
+ },
+ {
+ "IdS": 224873,
+ "pX": "355600,355843.58",
+ "pY": "564700,565105.95"
+ },
+ {
+ "IdS": 224874,
+ "pX": "355843.58,355900",
+ "pY": "565105.95,565200"
+ },
+ {
+ "IdS": 224880,
+ "pX": "356500,356679.79",
+ "pY": "566200,566500.24"
+ },
+ {
+ "IdS": 224881,
+ "pX": "356679.79,356800",
+ "pY": "566500.24,566700"
+ },
+ {
+ "IdS": 224892,
+ "pX": "335450.04,335535",
+ "pY": "566750.02,566750"
+ },
+ {
+ "IdS": 224894,
+ "pX": "346250,346250.05",
+ "pY": "578900,578964.95"
+ },
+ {
+ "IdS": 224895,
+ "pX": "346250.05,346249.54",
+ "pY": "578964.95,579234.16"
+ },
+ {
+ "IdS": 224896,
+ "pX": "346250,346249.65",
+ "pY": "578450,578759.63"
+ },
+ {
+ "IdS": 224897,
+ "pX": "346249.65,346250",
+ "pY": "578759.63,578900"
+ },
+ {
+ "IdS": 224903,
+ "pX": "341040.04,341400,341330,341905,341964.9",
+ "pY": "545894.98,545550,545615,545060,545004.83"
+ },
+ {
+ "IdS": 224927,
+ "pX": "337149.68,337605.91",
+ "pY": "552799.51,551714.51"
+ },
+ {
+ "IdS": 224928,
+ "pX": "337605.91,337884.12",
+ "pY": "551714.51,551057.12"
+ },
+ {
+ "IdS": 224935,
+ "pX": "336655.59,336906.32",
+ "pY": "553972.39,553375.26"
+ },
+ {
+ "IdS": 224936,
+ "pX": "336906.32,337149.68",
+ "pY": "553375.26,552799.51"
+ },
+ {
+ "IdS": 224937,
+ "pX": "341693.2,341266.14",
+ "pY": "539743.01,539287.42"
+ },
+ {
+ "IdS": 224938,
+ "pX": "341266.14,340850",
+ "pY": "539287.42,538850"
+ },
+ {
+ "IdS": 224939,
+ "pX": "374250,374550,374750",
+ "pY": "535550,534950,534550"
+ },
+ {
+ "IdS": 224940,
+ "pX": "337700,338150,338000.1",
+ "pY": "561455,560750,560679.88"
+ },
+ {
+ "IdS": 224941,
+ "pX": "338000.1,338019.99,338000",
+ "pY": "560679.88,560670.03,560650"
+ },
+ {
+ "IdS": 224942,
+ "pX": "337395,337575.81,338000.1",
+ "pY": "561145,561256.23,560679.88"
+ },
+ {
+ "IdS": 224943,
+ "pX": "338000.1,338000",
+ "pY": "560679.88,560650"
+ },
+ {
+ "IdS": 224949,
+ "pX": "338055,337959.89",
+ "pY": "589285,588898.68"
+ },
+ {
+ "IdS": 224950,
+ "pX": "337959.89,337810",
+ "pY": "588898.68,588305"
+ },
+ {
+ "IdS": 224958,
+ "pX": "372800,372800.02,372800,372874.35",
+ "pY": "554000,554285.01,554200,554284.99"
+ },
+ {
+ "IdS": 224987,
+ "pX": "336399.66,336399.94",
+ "pY": "564815.19,564400.01"
+ },
+ {
+ "IdS": 224988,
+ "pX": "336399.94,336399.99",
+ "pY": "564400.01,564014.94"
+ },
+ {
+ "IdS": 225003,
+ "pX": "351800,352550",
+ "pY": "556500,556850"
+ },
+ {
+ "IdS": 225004,
+ "pX": "351400,351649.96",
+ "pY": "556300,556430.09"
+ },
+ {
+ "IdS": 225005,
+ "pX": "336100,336169.89,336559.91",
+ "pY": "575750,575770.07,575554.73"
+ },
+ {
+ "IdS": 225006,
+ "pX": "339550,339245.65",
+ "pY": "547200,546780.76"
+ },
+ {
+ "IdS": 225007,
+ "pX": "339245.65,338910",
+ "pY": "546780.76,546315"
+ },
+ {
+ "IdS": 225008,
+ "pX": "349135.1,346980.08",
+ "pY": "559720.05,559714.73"
+ },
+ {
+ "IdS": 225009,
+ "pX": "346900.06,346900",
+ "pY": "559930.12,559700"
+ },
+ {
+ "IdS": 225011,
+ "pX": "346900,346794.65",
+ "pY": "559700,559598.03"
+ },
+ {
+ "IdS": 225015,
+ "pX": "342440,342670,342985,346650,344435,346900.03",
+ "pY": "563600,562895,563300,560000,561715,560000.03"
+ },
+ {
+ "IdS": 225016,
+ "pX": "346900.03,347080",
+ "pY": "560000.03,560000"
+ },
+ {
+ "IdS": 225017,
+ "pX": "346900.03,346899.97",
+ "pY": "560000.03,559974.89"
+ },
+ {
+ "IdS": 225018,
+ "pX": "346899.97,346900.06",
+ "pY": "559974.89,559930.12"
+ },
+ {
+ "IdS": 225023,
+ "pX": "341610.19,341676.93",
+ "pY": "528434.88,527999.58"
+ },
+ {
+ "IdS": 225024,
+ "pX": "341676.93,341700,341699.82",
+ "pY": "527999.58,527850,527749.94"
+ },
+ {
+ "IdS": 225025,
+ "pX": "334470.84,334760.63",
+ "pY": "557912.65,557508.13"
+ },
+ {
+ "IdS": 225026,
+ "pX": "334760.63,334938.9",
+ "pY": "557508.13,557262.51"
+ },
+ {
+ "IdS": 225031,
+ "pX": "352550,352560.06",
+ "pY": "556850,556830.03"
+ },
+ {
+ "IdS": 225034,
+ "pX": "351649.96,351659.99",
+ "pY": "556430.09,556414.63"
+ },
+ {
+ "IdS": 225046,
+ "pX": "336700,336840,337349.93",
+ "pY": "592050,591850,592089.86"
+ },
+ {
+ "IdS": 225047,
+ "pX": "337349.93,338000",
+ "pY": "592089.86,592400"
+ },
+ {
+ "IdS": 225048,
+ "pX": "337349.93,337494.98",
+ "pY": "592089.86,592090"
+ },
+ {
+ "IdS": 225049,
+ "pX": "337349.93,336930.07,336900",
+ "pY": "592089.86,592220.38,592250"
+ },
+ {
+ "IdS": 225054,
+ "pX": "360550,364555.29",
+ "pY": "538725,536944.53"
+ },
+ {
+ "IdS": 225055,
+ "pX": "364555.29,364660",
+ "pY": "536944.53,536900"
+ },
+ {
+ "IdS": 225056,
+ "pX": "370624.19,370344.74",
+ "pY": "545124.47,544874.44"
+ },
+ {
+ "IdS": 225057,
+ "pX": "370344.74,370070.72",
+ "pY": "544874.44,544630.14"
+ },
+ {
+ "IdS": 225058,
+ "pX": "370344.74,370484.48",
+ "pY": "544874.44,544839.99"
+ },
+ {
+ "IdS": 225081,
+ "pX": "338585,338200,337830,337650",
+ "pY": "545460,544900,544405,544515"
+ },
+ {
+ "IdS": 225084,
+ "pX": "375409.85,375299.68",
+ "pY": "532949.97,533020.19"
+ },
+ {
+ "IdS": 225085,
+ "pX": "375299.68,375150",
+ "pY": "533020.19,532950"
+ },
+ {
+ "IdS": 225086,
+ "pX": "375299.78,375150",
+ "pY": "532885.18,532950"
+ },
+ {
+ "IdS": 225087,
+ "pX": "375409.85,375299.78",
+ "pY": "532949.97,532885.18"
+ },
+ {
+ "IdS": 225088,
+ "pX": "375299.78,375299.68",
+ "pY": "532885.18,533020.19"
+ },
+ {
+ "IdS": 225141,
+ "pX": "349355.26,349550",
+ "pY": "555350.18,555450"
+ },
+ {
+ "IdS": 225142,
+ "pX": "342702.7,342901.54,342865",
+ "pY": "562801.06,562624.99,562580"
+ },
+ {
+ "IdS": 225145,
+ "pX": "336400.15,336400",
+ "pY": "567165.42,567285"
+ },
+ {
+ "IdS": 225146,
+ "pX": "336100,336750",
+ "pY": "567150,567150"
+ },
+ {
+ "IdS": 225150,
+ "pX": "375350,375349.87",
+ "pY": "550600,550528.54"
+ },
+ {
+ "IdS": 225209,
+ "pX": "372300,372043.11",
+ "pY": "546700,546150.36"
+ },
+ {
+ "IdS": 225210,
+ "pX": "372043.11,371950,371700",
+ "pY": "546150.36,545950,545950"
+ },
+ {
+ "IdS": 225253,
+ "pX": "369775,369631.77",
+ "pY": "554885,554797.55"
+ },
+ {
+ "IdS": 225254,
+ "pX": "369631.77,369520",
+ "pY": "554797.55,554730"
+ },
+ {
+ "IdS": 225255,
+ "pX": "369520,369128.17",
+ "pY": "554730,554489.29"
+ },
+ {
+ "IdS": 225256,
+ "pX": "369128.17,368950",
+ "pY": "554489.29,554380"
+ },
+ {
+ "IdS": 225257,
+ "pX": "358400.05,358235.09",
+ "pY": "555800.01,555799.89"
+ },
+ {
+ "IdS": 225258,
+ "pX": "358235.09,357799.93",
+ "pY": "555799.89,555801.3"
+ },
+ {
+ "IdS": 225271,
+ "pX": "380600,380671.24",
+ "pY": "543600,543564.35"
+ },
+ {
+ "IdS": 225272,
+ "pX": "380671.24,380700",
+ "pY": "543564.35,543550"
+ },
+ {
+ "IdS": 225280,
+ "pX": "377932.22,378000",
+ "pY": "544416.87,544400"
+ },
+ {
+ "IdS": 225281,
+ "pX": "339565,339584.59",
+ "pY": "575900,575829.81"
+ },
+ {
+ "IdS": 225282,
+ "pX": "339584.59,339600,339850,339850",
+ "pY": "575829.81,575750,575750,575650"
+ },
+ {
+ "IdS": 225286,
+ "pX": "339584.59,339679.81",
+ "pY": "575829.81,575830.06"
+ },
+ {
+ "IdS": 225289,
+ "pX": "373400.01,373257.24",
+ "pY": "553400.01,553657.82"
+ },
+ {
+ "IdS": 225292,
+ "pX": "381250,381338.16",
+ "pY": "542550,542496.94"
+ },
+ {
+ "IdS": 225293,
+ "pX": "381338.16,381500",
+ "pY": "542496.94,542400"
+ },
+ {
+ "IdS": 225294,
+ "pX": "369350,369588.81",
+ "pY": "549650,549506.97"
+ },
+ {
+ "IdS": 225295,
+ "pX": "369588.81,369850",
+ "pY": "549506.97,549350"
+ },
+ {
+ "IdS": 225296,
+ "pX": "381250,381165.58",
+ "pY": "542550,542409.59"
+ },
+ {
+ "IdS": 225297,
+ "pX": "381165.58,381100",
+ "pY": "542409.59,542300"
+ },
+ {
+ "IdS": 225298,
+ "pX": "372750,372920.55",
+ "pY": "547600,547977.7"
+ },
+ {
+ "IdS": 225299,
+ "pX": "372920.55,372950,372950",
+ "pY": "547977.7,548050,548950"
+ },
+ {
+ "IdS": 225300,
+ "pX": "363350,363559.15",
+ "pY": "552900,552995.85"
+ },
+ {
+ "IdS": 225301,
+ "pX": "363559.15,363805.69,363980.12,364050.02",
+ "pY": "552995.85,553109.35,552949.93,552949.72"
+ },
+ {
+ "IdS": 225308,
+ "pX": "376450,376601.36",
+ "pY": "546100,546453.33"
+ },
+ {
+ "IdS": 225309,
+ "pX": "376601.36,376750",
+ "pY": "546453.33,546800"
+ },
+ {
+ "IdS": 225312,
+ "pX": "355050,355250,355450",
+ "pY": "556700,556800,556900"
+ },
+ {
+ "IdS": 225315,
+ "pX": "371700,371834.51",
+ "pY": "545950,545845.24"
+ },
+ {
+ "IdS": 225316,
+ "pX": "371834.51,372150",
+ "pY": "545845.24,545600"
+ },
+ {
+ "IdS": 225317,
+ "pX": "372150,372507.66",
+ "pY": "545600,545384.73"
+ },
+ {
+ "IdS": 225318,
+ "pX": "372507.66,373150",
+ "pY": "545384.73,545000"
+ },
+ {
+ "IdS": 225319,
+ "pX": "374550,374833.47",
+ "pY": "545800,545681.72"
+ },
+ {
+ "IdS": 225320,
+ "pX": "374833.47,375030,375030.01",
+ "pY": "545681.72,545600,545889.99"
+ },
+ {
+ "IdS": 225321,
+ "pX": "377600,377684.94",
+ "pY": "544500,544478.75"
+ },
+ {
+ "IdS": 225327,
+ "pX": "377684.94,377730.25",
+ "pY": "544478.75,544467.21"
+ },
+ {
+ "IdS": 225328,
+ "pX": "377730.25,377769.99",
+ "pY": "544467.21,544457.54"
+ },
+ {
+ "IdS": 225329,
+ "pX": "377769.99,377845.04",
+ "pY": "544457.54,544438.49"
+ },
+ {
+ "IdS": 225330,
+ "pX": "377845.04,377932.22",
+ "pY": "544438.49,544416.87"
+ },
+ {
+ "IdS": 225407,
+ "pX": "349300,349300",
+ "pY": "551550,552300"
+ },
+ {
+ "IdS": 225439,
+ "pX": "372644.61,372725.07",
+ "pY": "575120.23,556634.88"
+ },
+ {
+ "IdS": 225440,
+ "pX": "372725.07,372724.97",
+ "pY": "556634.88,556605.09"
+ },
+ {
+ "IdS": 225441,
+ "pX": "372725.07,372685.18",
+ "pY": "556634.88,556634.86"
+ },
+ {
+ "IdS": 225442,
+ "pX": "372685.18,372615.05",
+ "pY": "556634.86,556634.89"
+ },
+ {
+ "IdS": 225517,
+ "pX": "336204.95,336220.02",
+ "pY": "570709.98,570709.95"
+ },
+ {
+ "IdS": 225518,
+ "pX": "336220.02,336239.95",
+ "pY": "570709.95,570709.98"
+ },
+ {
+ "IdS": 225519,
+ "pX": "336239.95,336255.03",
+ "pY": "570709.98,570710"
+ },
+ {
+ "IdS": 225520,
+ "pX": "336255.03,336295.04",
+ "pY": "570710,570709.92"
+ },
+ {
+ "IdS": 225521,
+ "pX": "336295.04,336335.01",
+ "pY": "570709.92,570709.9"
+ },
+ {
+ "IdS": 225522,
+ "pX": "336335.01,336334.81",
+ "pY": "570709.9,570660.03"
+ },
+ {
+ "IdS": 225523,
+ "pX": "336334.81,336294.87",
+ "pY": "570660.03,570659.89"
+ },
+ {
+ "IdS": 225524,
+ "pX": "336294.87,336255.01",
+ "pY": "570659.89,570660.05"
+ },
+ {
+ "IdS": 225525,
+ "pX": "336255.01,336205.01",
+ "pY": "570660.05,570660.01"
+ },
+ {
+ "IdS": 225530,
+ "pX": "344620,343867.1",
+ "pY": "550315,549987.09"
+ },
+ {
+ "IdS": 225531,
+ "pX": "343867.1,343425",
+ "pY": "549987.09,549795"
+ },
+ {
+ "IdS": 225694,
+ "pX": "380700,381050",
+ "pY": "543550,543400"
+ },
+ {
+ "IdS": 225699,
+ "pX": "346300,345650.02",
+ "pY": "580980,580980.05"
+ },
+ {
+ "IdS": 225700,
+ "pX": "345650.02,345649.85",
+ "pY": "580980.05,581049.84"
+ },
+ {
+ "IdS": 225701,
+ "pX": "345649.85,345595.04,345650.02",
+ "pY": "581049.84,580990.03,580980.05"
+ },
+ {
+ "IdS": 225702,
+ "pX": "345650.02,345550.11,345184.48",
+ "pY": "580980.05,580555.18,579994.42"
+ },
+ {
+ "IdS": 225703,
+ "pX": "338699.62,338699.99",
+ "pY": "569939.15,569891.57"
+ },
+ {
+ "IdS": 225705,
+ "pX": "338699.99,338699.9",
+ "pY": "569891.57,569827.41"
+ },
+ {
+ "IdS": 225706,
+ "pX": "338699.9,338700",
+ "pY": "569827.41,569650"
+ },
+ {
+ "IdS": 225707,
+ "pX": "345489.39,345560.01",
+ "pY": "580994.85,580980"
+ },
+ {
+ "IdS": 225708,
+ "pX": "345560.01,345650.02",
+ "pY": "580980,580980.05"
+ },
+ {
+ "IdS": 225709,
+ "pX": "345650.02,345705.2,345649.85",
+ "pY": "580980.05,581049.84,581049.84"
+ },
+ {
+ "IdS": 225731,
+ "pX": "369734.93,369635",
+ "pY": "543514.28,542480"
+ },
+ {
+ "IdS": 225732,
+ "pX": "369635,369569.82",
+ "pY": "542480,541854.93"
+ },
+ {
+ "IdS": 225733,
+ "pX": "369635,369520",
+ "pY": "542480,542480"
+ },
+ {
+ "IdS": 225753,
+ "pX": "356800,356819.92",
+ "pY": "566850,566954.81"
+ },
+ {
+ "IdS": 225754,
+ "pX": "356819.92,356900",
+ "pY": "566954.81,567400"
+ },
+ {
+ "IdS": 225755,
+ "pX": "356950,356899.96",
+ "pY": "567850,567935.03"
+ },
+ {
+ "IdS": 225756,
+ "pX": "356899.96,356800",
+ "pY": "567935.03,568100"
+ },
+ {
+ "IdS": 225761,
+ "pX": "356400,356399.98",
+ "pY": "568600,568779.94"
+ },
+ {
+ "IdS": 225762,
+ "pX": "356399.98,356400",
+ "pY": "568779.94,569000"
+ },
+ {
+ "IdS": 225763,
+ "pX": "356400,356399.94",
+ "pY": "569000,569164.91"
+ },
+ {
+ "IdS": 225767,
+ "pX": "356399.94,356400",
+ "pY": "569164.91,569470"
+ },
+ {
+ "IdS": 225768,
+ "pX": "356400,356400",
+ "pY": "569470,569900"
+ },
+ {
+ "IdS": 225769,
+ "pX": "356400,356615",
+ "pY": "569470,569470"
+ },
+ {
+ "IdS": 225782,
+ "pX": "336380,336410,336965,336540,337245",
+ "pY": "563880,563865,563065,562685,561200"
+ },
+ {
+ "IdS": 225787,
+ "pX": "355959.81,356650,356650,356650",
+ "pY": "580610.04,579450,579450,578415"
+ },
+ {
+ "IdS": 225790,
+ "pX": "356650,356645,372644.61",
+ "pY": "576470,575125,575120.23"
+ },
+ {
+ "IdS": 225791,
+ "pX": "371500,371500,371295",
+ "pY": "553400,553600,553945"
+ },
+ {
+ "IdS": 225793,
+ "pX": "346350,346755",
+ "pY": "551360,551430"
+ },
+ {
+ "IdS": 225794,
+ "pX": "351759.81,348570,349300,348480,350700,349600,349800,351355,346840",
+ "pY": "551689.55,551220,551345,551710,551545,551345,551395,551645,551445"
+ },
+ {
+ "IdS": 225797,
+ "pX": "335550,335355.05",
+ "pY": "571500,571445.01"
+ },
+ {
+ "IdS": 225826,
+ "pX": "334850,335650.08",
+ "pY": "576450,575999.77"
+ },
+ {
+ "IdS": 225827,
+ "pX": "335650.08,335995.76",
+ "pY": "575999.77,575808.69"
+ },
+ {
+ "IdS": 225840,
+ "pX": "345815,345830,344195,344600,345185",
+ "pY": "576050,576015,575175,574420,567235"
+ },
+ {
+ "IdS": 225841,
+ "pX": "345185,345047.02",
+ "pY": "567235,567092.21"
+ },
+ {
+ "IdS": 225842,
+ "pX": "345185,345380,345175,344610,342464.99",
+ "pY": "567235,567080,566830,564995,563600.07"
+ },
+ {
+ "IdS": 225843,
+ "pX": "342464.99,347905,342665,344650,349470,349500",
+ "pY": "563600.07,561660,563645,564925,563385,563400"
+ },
+ {
+ "IdS": 225856,
+ "pX": "356000,355750",
+ "pY": "554345,554800"
+ },
+ {
+ "IdS": 225859,
+ "pX": "329934.61,329880.45",
+ "pY": "564000.03,563935.03"
+ },
+ {
+ "IdS": 225864,
+ "pX": "341453.26,341314.52",
+ "pY": "575674.42,575485.03"
+ },
+ {
+ "IdS": 225865,
+ "pX": "341314.52,341035.07",
+ "pY": "575485.03,575113.83"
+ },
+ {
+ "IdS": 225866,
+ "pX": "341314.52,341135",
+ "pY": "575485.03,575645"
+ },
+ {
+ "IdS": 225867,
+ "pX": "342000,341940",
+ "pY": "576400,576320"
+ },
+ {
+ "IdS": 225869,
+ "pX": "341940,341620.93",
+ "pY": "576320,575888.37"
+ },
+ {
+ "IdS": 225870,
+ "pX": "341620.93,341453.26",
+ "pY": "575888.37,575674.42"
+ },
+ {
+ "IdS": 225871,
+ "pX": "341940,341800",
+ "pY": "576320,576425"
+ },
+ {
+ "IdS": 225872,
+ "pX": "341620.93,341455",
+ "pY": "575888.37,576005"
+ },
+ {
+ "IdS": 225892,
+ "pX": "342650,342599.55",
+ "pY": "563950,563835.33"
+ },
+ {
+ "IdS": 225893,
+ "pX": "342599.55,342500",
+ "pY": "563835.33,563600"
+ },
+ {
+ "IdS": 225896,
+ "pX": "376700,376600",
+ "pY": "544050,543950"
+ },
+ {
+ "IdS": 225907,
+ "pX": "336514.86,336514.93",
+ "pY": "579989.82,579869.94"
+ },
+ {
+ "IdS": 225908,
+ "pX": "336514.93,336515",
+ "pY": "579869.94,579820"
+ },
+ {
+ "IdS": 225915,
+ "pX": "335750,335640.08",
+ "pY": "572500,572310.37"
+ },
+ {
+ "IdS": 225916,
+ "pX": "335640.08,335575.16",
+ "pY": "572310.37,572195.08"
+ },
+ {
+ "IdS": 225917,
+ "pX": "335640.08,335540",
+ "pY": "572310.37,572355"
+ },
+ {
+ "IdS": 225922,
+ "pX": "333395,332840,332675.04",
+ "pY": "569940,569940,569800.13"
+ },
+ {
+ "IdS": 225923,
+ "pX": "366790,366830",
+ "pY": "555330,555305"
+ },
+ {
+ "IdS": 225924,
+ "pX": "366830,366888.56",
+ "pY": "555305,555269.82"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/MessagesMap/CablesStatic.json b/MessagesMap/CablesStatic.json
new file mode 100644
index 000000000..c36282fa6
--- /dev/null
+++ b/MessagesMap/CablesStatic.json
@@ -0,0 +1,23838 @@
+{
+ "Name": "Liste aller Straenge",
+ "Zeitstempel": "2021-04-27T11:55:10.4183182+02:00",
+ "Lines": [
+ {
+ "IdS": 10000,
+ "PX": "346950,347600",
+ "PY": "551350,551450.01",
+ "In": "KAB-C-FGN001001-1"
+ },
+ {
+ "IdS": 10001,
+ "PX": "347600,349365,349450",
+ "PY": "551450.01,551755,551550",
+ "In": "KAB-C-FGN001001-2"
+ },
+ {
+ "IdS": 10002,
+ "PX": "349450,349500,349750",
+ "PY": "551550,551750,551800",
+ "In": "KAB-C-FGN001003-1"
+ },
+ {
+ "IdS": 10003,
+ "PX": "349750,350850",
+ "PY": "551800,552000",
+ "In": "KAB-C-FGN0010040-1"
+ },
+ {
+ "IdS": 10004,
+ "PX": "350850,351300",
+ "PY": "552000,552050",
+ "In": "KAB-C-FGN001005-1"
+ },
+ {
+ "IdS": 10006,
+ "PX": "351300,351600",
+ "PY": "552050,552100",
+ "In": "KAB-C-FGN001006-1"
+ },
+ {
+ "IdS": 10008,
+ "PX": "352500,352500,352700",
+ "PY": "552050,552200,552250",
+ "In": "KAB-C-FGN001008-1"
+ },
+ {
+ "IdS": 10009,
+ "PX": "352700,352900",
+ "PY": "552250,552300",
+ "In": "KAB-C-FGN001009-1"
+ },
+ {
+ "IdS": 10011,
+ "PX": "353300,353450",
+ "PY": "552400,552450",
+ "In": "KAB-C-FGN001011-1"
+ },
+ {
+ "IdS": 10012,
+ "PX": "353450,353650",
+ "PY": "552450,552500",
+ "In": "KAB-C-FGN001012-1"
+ },
+ {
+ "IdS": 10013,
+ "PX": "353650,354000",
+ "PY": "552500,552550.01",
+ "In": "KAB-C-FGN001013-1"
+ },
+ {
+ "IdS": 10014,
+ "PX": "354000,354300",
+ "PY": "552550.01,552600",
+ "In": "KAB-C-FGN001014-1"
+ },
+ {
+ "IdS": 10016,
+ "PX": "354300,354650",
+ "PY": "552600,552650.01",
+ "In": "KAB-C-FGN001015-1"
+ },
+ {
+ "IdS": 10017,
+ "PX": "354650,355050",
+ "PY": "552650.01,552700",
+ "In": "KAB-C-FGN001015-2"
+ },
+ {
+ "IdS": 10018,
+ "PX": "354650,354800",
+ "PY": "552650.01,551800.01",
+ "In": "KAB-C-FGN001015-3"
+ },
+ {
+ "IdS": 10021,
+ "PX": "355550,356000",
+ "PY": "552800,552900",
+ "In": "KAB-C-FGN001017-1"
+ },
+ {
+ "IdS": 10022,
+ "PX": "356000,356250",
+ "PY": "552900,552900.01",
+ "In": "KAB-C-FGN001017-2"
+ },
+ {
+ "IdS": 10025,
+ "PX": "356000,356000",
+ "PY": "552900,551700",
+ "In": "KAB-C-FGN001017-3"
+ },
+ {
+ "IdS": 10031,
+ "PX": "358100,358400",
+ "PY": "552900,552900",
+ "In": "KAB-C-FGN001025-1"
+ },
+ {
+ "IdS": 10032,
+ "PX": "358400,358800",
+ "PY": "552900,552900",
+ "In": "KAB-C-FGN001026-1"
+ },
+ {
+ "IdS": 10034,
+ "PX": "359300,359600",
+ "PY": "552900,552900.01",
+ "In": "KAB-C-FGN001028-1"
+ },
+ {
+ "IdS": 10035,
+ "PX": "359600,359800",
+ "PY": "552900.01,552900",
+ "In": "KAB-C-FGN001029-1"
+ },
+ {
+ "IdS": 10048,
+ "PX": "356670,356670",
+ "PY": "552535,552900",
+ "In": "KAB-C-FGN001020-1"
+ },
+ {
+ "IdS": 10052,
+ "PX": "359800,360000",
+ "PY": "552900,552900",
+ "In": "KAB-C-FGN001030-1"
+ },
+ {
+ "IdS": 10054,
+ "PX": "360600,361200",
+ "PY": "552900,552900",
+ "In": "KAB-C-FGN001032-1"
+ },
+ {
+ "IdS": 10058,
+ "PX": "362200,363350",
+ "PY": "552900,552900",
+ "In": "KAB-C-FGN001035-1"
+ },
+ {
+ "IdS": 10063,
+ "PX": "364227.2,364368.62",
+ "PY": "553527.21,553668.63",
+ "In": "KAB-C-FGN001038-1"
+ },
+ {
+ "IdS": 10065,
+ "PX": "364368.62,364580.75",
+ "PY": "553668.63,553880.76",
+ "In": "KAB-C-FGN001039-1"
+ },
+ {
+ "IdS": 10066,
+ "PX": "364580.75,364792.89",
+ "PY": "553880.76,554092.89",
+ "In": "KAB-C-FGN001040-1"
+ },
+ {
+ "IdS": 10067,
+ "PX": "364792.89,364934.31",
+ "PY": "554092.89,554234.32",
+ "In": "KAB-C-FGN001041-1"
+ },
+ {
+ "IdS": 10068,
+ "PX": "364934.31,365075.73",
+ "PY": "554234.32,554375.74",
+ "In": "KAB-C-FGN001042-1"
+ },
+ {
+ "IdS": 10069,
+ "PX": "365075.73,365217.15",
+ "PY": "554375.74,554517.16",
+ "In": "KAB-C-FGN001043-1"
+ },
+ {
+ "IdS": 10071,
+ "PX": "365500,365712.13",
+ "PY": "554800,555012.13",
+ "In": "KAB-C-FGN001045-1"
+ },
+ {
+ "IdS": 10073,
+ "PX": "365712.13,366350.01",
+ "PY": "555012.13,555650",
+ "In": "KAB-C-FGN001046-1"
+ },
+ {
+ "IdS": 10076,
+ "PX": "366647.37,366790",
+ "PY": "555415.51,555330",
+ "In": "KAB-C-FGN001048-1"
+ },
+ {
+ "IdS": 10079,
+ "PX": "367246.75,367931.77",
+ "PY": "555053.93,554640.71",
+ "In": "KAB-C-FGN001051-1"
+ },
+ {
+ "IdS": 10080,
+ "PX": "367931.77,368188.65",
+ "PY": "554640.71,554485.75",
+ "In": "KAB-C-FGN001052-1"
+ },
+ {
+ "IdS": 10081,
+ "PX": "368188.65,368650",
+ "PY": "554485.75,554200",
+ "In": "KAB-C-FGN001053-1"
+ },
+ {
+ "IdS": 10083,
+ "PX": "369475,369730",
+ "PY": "553710,553555",
+ "In": "KAB-C-FGN001055-1"
+ },
+ {
+ "IdS": 10084,
+ "PX": "369730,370000",
+ "PY": "553555,553400",
+ "In": "KAB-C-FGN001056-1"
+ },
+ {
+ "IdS": 10085,
+ "PX": "370000,370599.99",
+ "PY": "553400,553400.01",
+ "In": "KAB-C-FGN001057-1"
+ },
+ {
+ "IdS": 10086,
+ "PX": "370599.99,371000",
+ "PY": "553400.01,553400",
+ "In": "KAB-C-FGN001058-1"
+ },
+ {
+ "IdS": 10090,
+ "PX": "373150,373500",
+ "PY": "545000,545600",
+ "In": "KAB-C-FGN006003-1"
+ },
+ {
+ "IdS": 10092,
+ "PX": "373500,373800",
+ "PY": "545600,546100",
+ "In": "KAB-C-FGN006004-1"
+ },
+ {
+ "IdS": 10093,
+ "PX": "373800,374300",
+ "PY": "546100,545900",
+ "In": "KAB-C-FGN006005-1"
+ },
+ {
+ "IdS": 10095,
+ "PX": "375030.01,375030",
+ "PY": "545889.99,546120",
+ "In": "KAB-C-FGN006007-1"
+ },
+ {
+ "IdS": 10096,
+ "PX": "375030.01,375045,375045,375390",
+ "PY": "545889.99,545890,545595,545454.99",
+ "In": "KAB-C-FGN006008-1"
+ },
+ {
+ "IdS": 10097,
+ "PX": "375390,375390",
+ "PY": "545454.99,545650",
+ "In": "KAB-C-FGN006009-1"
+ },
+ {
+ "IdS": 10100,
+ "PX": "376050,376600",
+ "PY": "545200,544950",
+ "In": "KAB-C-FGN006011-1"
+ },
+ {
+ "IdS": 10102,
+ "PX": "376950,377200",
+ "PY": "544800,544700",
+ "In": "KAB-C-FGN006013-1"
+ },
+ {
+ "IdS": 10104,
+ "PX": "376600,376950",
+ "PY": "544950,544800",
+ "In": "KAB-C-FGN006012-1"
+ },
+ {
+ "IdS": 10106,
+ "PX": "377200,377400",
+ "PY": "544700,544600",
+ "In": "KAB-C-FGN006014-1"
+ },
+ {
+ "IdS": 10107,
+ "PX": "377400,377600",
+ "PY": "544600,544500",
+ "In": "KAB-C-FGN006015-1"
+ },
+ {
+ "IdS": 10112,
+ "PX": "378450,379050",
+ "PY": "544200,543900.01",
+ "In": "KAB-C-FGN006020-1"
+ },
+ {
+ "IdS": 10113,
+ "PX": "379050,379350",
+ "PY": "543900.01,543800",
+ "In": "KAB-C-FGN006021-1"
+ },
+ {
+ "IdS": 10114,
+ "PX": "379350,379750",
+ "PY": "543800,543950",
+ "In": "KAB-C-FGN006022-1"
+ },
+ {
+ "IdS": 10122,
+ "PX": "381050,381200",
+ "PY": "543400,543300",
+ "In": "KAB-C-FGN006028-1"
+ },
+ {
+ "IdS": 10123,
+ "PX": "381200,381400",
+ "PY": "543300,543250",
+ "In": "KAB-C-FGN006029-1"
+ },
+ {
+ "IdS": 10125,
+ "PX": "381400,381600",
+ "PY": "543250,543200",
+ "In": "KAB-C-FGN006030-1"
+ },
+ {
+ "IdS": 10127,
+ "PX": "381600,381500",
+ "PY": "543200,543000",
+ "In": "KAB-C-FGN006031-1"
+ },
+ {
+ "IdS": 10128,
+ "PX": "381500,381400",
+ "PY": "543000,542800",
+ "In": "KAB-C-FGN006032-1"
+ },
+ {
+ "IdS": 10129,
+ "PX": "381400,381250",
+ "PY": "542800,542550",
+ "In": "KAB-C-FGN006033-1"
+ },
+ {
+ "IdS": 10131,
+ "PX": "381000,380900",
+ "PY": "542150,541950",
+ "In": "KAB-C-FGN006035-1"
+ },
+ {
+ "IdS": 10138,
+ "PX": "379900,379650",
+ "PY": "541600,541750",
+ "In": "KAB-C-FGN006038-1"
+ },
+ {
+ "IdS": 10139,
+ "PX": "380450,380450",
+ "PY": "541250,541050",
+ "In": "KAB-C-FGN006039-1"
+ },
+ {
+ "IdS": 10140,
+ "PX": "372150,372250",
+ "PY": "545600,545750",
+ "In": "KAB-C-FGN006050-1"
+ },
+ {
+ "IdS": 10151,
+ "PX": "373800,373800",
+ "PY": "546700,547000",
+ "In": "KAB-C-FGN006062-1"
+ },
+ {
+ "IdS": 10152,
+ "PX": "373800,373800",
+ "PY": "547000,547250",
+ "In": "KAB-C-FGN006063-1"
+ },
+ {
+ "IdS": 10153,
+ "PX": "376050,376200",
+ "PY": "545200,545550",
+ "In": "KAB-C-FGN006070-1"
+ },
+ {
+ "IdS": 10154,
+ "PX": "376200,376350",
+ "PY": "545550,545900",
+ "In": "KAB-C-FGN006071-1"
+ },
+ {
+ "IdS": 10155,
+ "PX": "376350,376450",
+ "PY": "545900,546100",
+ "In": "KAB-C-FGN006072-1"
+ },
+ {
+ "IdS": 10157,
+ "PX": "376950,377050",
+ "PY": "547300,547500",
+ "In": "KAB-C-FGN006076-1"
+ },
+ {
+ "IdS": 10159,
+ "PX": "377050,377150.01",
+ "PY": "547500,547700",
+ "In": "KAB-C-FGN006078-1"
+ },
+ {
+ "IdS": 10161,
+ "PX": "372950,373350",
+ "PY": "548950,548800",
+ "In": "KAB-C-FGN006080-1"
+ },
+ {
+ "IdS": 10163,
+ "PX": "373350,374067.28",
+ "PY": "548800,548504.03",
+ "In": "KAB-C-FGN006081-1"
+ },
+ {
+ "IdS": 10164,
+ "PX": "374067.28,375400",
+ "PY": "548504.03,547950",
+ "In": "KAB-C-FGN006082-1"
+ },
+ {
+ "IdS": 10165,
+ "PX": "375400,376000",
+ "PY": "547950,547700",
+ "In": "KAB-C-FGN006083-1"
+ },
+ {
+ "IdS": 10167,
+ "PX": "376000,376450",
+ "PY": "547700,547500",
+ "In": "KAB-C-FGN006084-1"
+ },
+ {
+ "IdS": 10168,
+ "PX": "376450,376950",
+ "PY": "547500,547300",
+ "In": "KAB-C-FGN006085-1"
+ },
+ {
+ "IdS": 10170,
+ "PX": "376600,376600",
+ "PY": "545350,545600",
+ "In": "KAB-C-FGN006091-1"
+ },
+ {
+ "IdS": 10171,
+ "PX": "376600,376600",
+ "PY": "545600,545850",
+ "In": "KAB-C-FGN0060920-1"
+ },
+ {
+ "IdS": 10172,
+ "PX": "372800,372800",
+ "PY": "552000,551800",
+ "In": "KAB-C-FGN003001--"
+ },
+ {
+ "IdS": 10173,
+ "PX": "372800,372800",
+ "PY": "551800,551600",
+ "In": "KAB-C-FGN003002--"
+ },
+ {
+ "IdS": 10177,
+ "PX": "372800,372800",
+ "PY": "551400,551200.01",
+ "In": "KAB-C-FGN003004-1"
+ },
+ {
+ "IdS": 10179,
+ "PX": "372800,372445.01,372445",
+ "PY": "550600,550600.21,550265.02",
+ "In": "KAB-C-FGN003007-1"
+ },
+ {
+ "IdS": 10188,
+ "PX": "372800,372800",
+ "PY": "551200.01,551000",
+ "In": "KAB-C-FGN003005--"
+ },
+ {
+ "IdS": 10189,
+ "PX": "371050,370900",
+ "PY": "548300,548400",
+ "In": "KAB-C-FGN003010-1"
+ },
+ {
+ "IdS": 10190,
+ "PX": "370900,370665",
+ "PY": "548400,548565",
+ "In": "KAB-C-FGN003011-1"
+ },
+ {
+ "IdS": 10191,
+ "PX": "370665,370455",
+ "PY": "548565,548755",
+ "In": "KAB-C-FGN003012-1"
+ },
+ {
+ "IdS": 10192,
+ "PX": "370455,370150",
+ "PY": "548755,549050",
+ "In": "KAB-C-FGN003013-1"
+ },
+ {
+ "IdS": 10193,
+ "PX": "370150,369850",
+ "PY": "549050,549350",
+ "In": "KAB-C-FGN003014-1"
+ },
+ {
+ "IdS": 10197,
+ "PX": "351449.09,351418.18",
+ "PY": "553094.33,553291.92",
+ "In": "KAB-C-FGN001075-1"
+ },
+ {
+ "IdS": 10198,
+ "PX": "351418.18,351340.91",
+ "PY": "553291.92,553785.92",
+ "In": "KAB-C-FGN001076-1"
+ },
+ {
+ "IdS": 10199,
+ "PX": "351340.91,351143.31",
+ "PY": "553785.92,553755.01",
+ "In": "KAB-C-FGN001077-1"
+ },
+ {
+ "IdS": 10200,
+ "PX": "351143.31,350945.72",
+ "PY": "553755.01,553724.11",
+ "In": "KAB-C-FGN001078-1"
+ },
+ {
+ "IdS": 10201,
+ "PX": "350883.9,350852.99",
+ "PY": "554119.3,554316.9",
+ "In": "KAB-C-FGN001079-1"
+ },
+ {
+ "IdS": 10202,
+ "PX": "350914.81,350883.9",
+ "PY": "553921.7,554119.3",
+ "In": "KAB-C-FGN001080-1"
+ },
+ {
+ "IdS": 10203,
+ "PX": "350945.72,350914.81",
+ "PY": "553724.11,553921.7",
+ "In": "KAB-C-FGN001081-1"
+ },
+ {
+ "IdS": 10204,
+ "PX": "357300,357300",
+ "PY": "552900.01,552550.01",
+ "In": "KAB-C-FGN001082-1"
+ },
+ {
+ "IdS": 10205,
+ "PX": "357300,357700.13",
+ "PY": "552550.01,552388.58",
+ "In": "KAB-C-FGN001083-1"
+ },
+ {
+ "IdS": 10206,
+ "PX": "357700.13,357800",
+ "PY": "552388.58,552350",
+ "In": "KAB-C-FGN001084-1"
+ },
+ {
+ "IdS": 10207,
+ "PX": "357500,357500",
+ "PY": "551600,551400",
+ "In": "KAB-C-FGN001086-1"
+ },
+ {
+ "IdS": 10208,
+ "PX": "357500,357550",
+ "PY": "551400,551200",
+ "In": "KAB-C-FGN001087-1"
+ },
+ {
+ "IdS": 10209,
+ "PX": "357550,357600",
+ "PY": "551200,551000",
+ "In": "KAB-C-FGN001088-1"
+ },
+ {
+ "IdS": 10210,
+ "PX": "357600,357650",
+ "PY": "551000,550800",
+ "In": "KAB-C-FGN001089-1"
+ },
+ {
+ "IdS": 10211,
+ "PX": "357650,357700",
+ "PY": "550800,550600",
+ "In": "KAB-C-FGN001090-1"
+ },
+ {
+ "IdS": 10212,
+ "PX": "357700,357750",
+ "PY": "550600,550400",
+ "In": "KAB-C-FGN001091-1"
+ },
+ {
+ "IdS": 10213,
+ "PX": "357750,357800",
+ "PY": "550400,550200",
+ "In": "KAB-C-FGN001092-1"
+ },
+ {
+ "IdS": 10215,
+ "PX": "357800,357600",
+ "PY": "550200,550200",
+ "In": "KAB-C-FGN001093-1"
+ },
+ {
+ "IdS": 10217,
+ "PX": "358400,358399.99",
+ "PY": "552900,553601.32",
+ "In": "KAB-C-FGN001059-1"
+ },
+ {
+ "IdS": 10219,
+ "PX": "358400,358400",
+ "PY": "554000,554200",
+ "In": "KAB-C-FGN001061-1"
+ },
+ {
+ "IdS": 10221,
+ "PX": "358400,358399.96",
+ "PY": "554600,554901.32",
+ "In": "KAB-C-FGN001063-1"
+ },
+ {
+ "IdS": 10222,
+ "PX": "358399.96,358399.95",
+ "PY": "554901.32,555101.32",
+ "In": "KAB-C-FGN001064-1"
+ },
+ {
+ "IdS": 10224,
+ "PX": "358399.95,358399.95",
+ "PY": "555101.32,555301.32",
+ "In": "KAB-C-FGN001066-1"
+ },
+ {
+ "IdS": 10226,
+ "PX": "358400,358400.05",
+ "PY": "555501.39,555800.01",
+ "In": "KAB-C-FGN001068-1"
+ },
+ {
+ "IdS": 10227,
+ "PX": "358400.05,358400",
+ "PY": "555800.01,556001.38",
+ "In": "KAB-C-FGN001069-1"
+ },
+ {
+ "IdS": 10228,
+ "PX": "358400,358400",
+ "PY": "556001.38,556201.38",
+ "In": "KAB-C-FGN001070-1"
+ },
+ {
+ "IdS": 10229,
+ "PX": "358400,358400",
+ "PY": "556201.38,556401.38",
+ "In": "KAB-C-FGN001071-1"
+ },
+ {
+ "IdS": 10230,
+ "PX": "358400,358399.99",
+ "PY": "556401.38,556601.38",
+ "In": "KAB-C-FGN001072-1"
+ },
+ {
+ "IdS": 10231,
+ "PX": "358399.99,358400",
+ "PY": "556601.38,556801.38",
+ "In": "KAB-C-FGN001073-1"
+ },
+ {
+ "IdS": 10232,
+ "PX": "357800,357500",
+ "PY": "552350,551600",
+ "In": "KAB-C-FGN001085-1"
+ },
+ {
+ "IdS": 10233,
+ "PX": "358399.95,358400",
+ "PY": "555301.32,555501.39",
+ "In": "KAB-C-FGN001095-1"
+ },
+ {
+ "IdS": 10237,
+ "PX": "356800,356400",
+ "PY": "555801.37,555801.37",
+ "In": "KAB-C-FGN001102-1"
+ },
+ {
+ "IdS": 10238,
+ "PX": "356400,356000",
+ "PY": "555801.37,555800.12",
+ "In": "KAB-C-FGN001103-1"
+ },
+ {
+ "IdS": 10243,
+ "PX": "362200,362200",
+ "PY": "552900,553100",
+ "In": "KAB-C-FGN001113-1"
+ },
+ {
+ "IdS": 10244,
+ "PX": "362200,362200",
+ "PY": "553100,553299.99",
+ "In": "KAB-C-FGN001114-1"
+ },
+ {
+ "IdS": 10246,
+ "PX": "362200,362200.01",
+ "PY": "553299.99,553499.99",
+ "In": "KAB-C-FGN001115-1"
+ },
+ {
+ "IdS": 10247,
+ "PX": "362200.01,362200",
+ "PY": "553499.99,553699.99",
+ "In": "KAB-C-FGN001116-1"
+ },
+ {
+ "IdS": 10248,
+ "PX": "362200,362200",
+ "PY": "553699.99,553900",
+ "In": "KAB-C-FGN001117-1"
+ },
+ {
+ "IdS": 10249,
+ "PX": "362200,362200",
+ "PY": "553900,554100",
+ "In": "KAB-C-FGN001118-1"
+ },
+ {
+ "IdS": 10250,
+ "PX": "362200,362200",
+ "PY": "554100,554300",
+ "In": "KAB-C-FGN001119-1"
+ },
+ {
+ "IdS": 10251,
+ "PX": "362200,362200",
+ "PY": "554300,554500",
+ "In": "KAB-C-FGN001120-1"
+ },
+ {
+ "IdS": 10252,
+ "PX": "362200,362200",
+ "PY": "554500,554700",
+ "In": "KAB-C-FGN001121-1"
+ },
+ {
+ "IdS": 10253,
+ "PX": "362200,362200",
+ "PY": "554700,554900",
+ "In": "KAB-C-FGN001122-1"
+ },
+ {
+ "IdS": 10255,
+ "PX": "362200,362200",
+ "PY": "555100,555300",
+ "In": "KAB-C-FGN001124-1"
+ },
+ {
+ "IdS": 10257,
+ "PX": "364050.02,364849.67",
+ "PY": "552949.72,552950.03",
+ "In": "KAB-C-FGN001126-1"
+ },
+ {
+ "IdS": 10258,
+ "PX": "364849.67,365265",
+ "PY": "552950.03,552750",
+ "In": "KAB-C-FGN001127-1"
+ },
+ {
+ "IdS": 10259,
+ "PX": "365265,365715",
+ "PY": "552750,552750",
+ "In": "KAB-C-FGN001128-1"
+ },
+ {
+ "IdS": 10261,
+ "PX": "366205,366348.52",
+ "PY": "552540,552395.83",
+ "In": "KAB-C-FGN001130-1"
+ },
+ {
+ "IdS": 10262,
+ "PX": "366348.52,366489.93",
+ "PY": "552395.83,552254.41",
+ "In": "KAB-C-FGN001131-1"
+ },
+ {
+ "IdS": 10263,
+ "PX": "366489.93,366631.35",
+ "PY": "552254.41,552112.99",
+ "In": "KAB-C-FGN001132-1"
+ },
+ {
+ "IdS": 10264,
+ "PX": "366631.35,366772.78",
+ "PY": "552112.99,551971.57",
+ "In": "KAB-C-FGN001133-1"
+ },
+ {
+ "IdS": 10265,
+ "PX": "366772.78,366914.2",
+ "PY": "551971.57,551830.14",
+ "In": "KAB-C-FGN001134-1"
+ },
+ {
+ "IdS": 10266,
+ "PX": "366914.2,367055.62",
+ "PY": "551830.14,551688.72",
+ "In": "KAB-C-FGN001135-1"
+ },
+ {
+ "IdS": 10267,
+ "PX": "367055.62,367197.04",
+ "PY": "551688.72,551547.3",
+ "In": "KAB-C-FGN001136-1"
+ },
+ {
+ "IdS": 10268,
+ "PX": "366914.2,367114.2",
+ "PY": "551830.14,551830.14",
+ "In": "KAB-C-FGN001137-1"
+ },
+ {
+ "IdS": 10269,
+ "PX": "367114.2,367314.2",
+ "PY": "551830.14,551830.14",
+ "In": "KAB-C-FGN001138-1"
+ },
+ {
+ "IdS": 10270,
+ "PX": "367314.2,367514.2",
+ "PY": "551830.14,551830.14",
+ "In": "KAB-C-FGN001139-1"
+ },
+ {
+ "IdS": 10271,
+ "PX": "366205,366348.51",
+ "PY": "552540,552678.68",
+ "In": "KAB-C-FGN001140-1"
+ },
+ {
+ "IdS": 10272,
+ "PX": "366489.93,366348.51",
+ "PY": "552254.41,552112.98",
+ "In": "KAB-C-FGN001141-1"
+ },
+ {
+ "IdS": 10274,
+ "PX": "366350.01,366350",
+ "PY": "555650,555900",
+ "In": "KAB-C-FGN001143-1"
+ },
+ {
+ "IdS": 10275,
+ "PX": "366350,366350",
+ "PY": "555900,556100",
+ "In": "KAB-C-FGN001144-1"
+ },
+ {
+ "IdS": 10276,
+ "PX": "366350,366350",
+ "PY": "556100,556300",
+ "In": "KAB-C-FGN001145-1"
+ },
+ {
+ "IdS": 10278,
+ "PX": "366350,366350.01",
+ "PY": "556300,556500",
+ "In": "KAB-C-FGN001146-1"
+ },
+ {
+ "IdS": 10279,
+ "PX": "371670,371164.17",
+ "PY": "556050,555738.51",
+ "In": "KAB-C-FGN001147--"
+ },
+ {
+ "IdS": 10280,
+ "PX": "371164.17,370485",
+ "PY": "555738.51,555325",
+ "In": "KAB-C-FGN001148--"
+ },
+ {
+ "IdS": 10281,
+ "PX": "370315,370145",
+ "PY": "555215,555110",
+ "In": "KAB-C-FGN001149-1"
+ },
+ {
+ "IdS": 10282,
+ "PX": "370145,369775",
+ "PY": "555110,554885",
+ "In": "KAB-C-FGN001150--"
+ },
+ {
+ "IdS": 10286,
+ "PX": "368873.65,369175",
+ "PY": "554072.52,553430",
+ "In": "KAB-C-FGN001154--"
+ },
+ {
+ "IdS": 10288,
+ "PX": "369200,369350",
+ "PY": "549900,549650",
+ "In": "KAB-C-FGN001156--"
+ },
+ {
+ "IdS": 10290,
+ "PX": "369650,369650",
+ "PY": "550800.01,551000.01",
+ "In": "KAB-C-FGN001158-1"
+ },
+ {
+ "IdS": 10291,
+ "PX": "369650,369650",
+ "PY": "551000.01,551800",
+ "In": "KAB-C-FGN001159-1"
+ },
+ {
+ "IdS": 10292,
+ "PX": "369650,369650",
+ "PY": "551800,552440",
+ "In": "KAB-C-FGN001160-1"
+ },
+ {
+ "IdS": 10293,
+ "PX": "369650,369760",
+ "PY": "552440,552720",
+ "In": "KAB-C-FGN001161-1"
+ },
+ {
+ "IdS": 10295,
+ "PX": "369900,370000",
+ "PY": "553095,553400",
+ "In": "KAB-C-FGN001163-1"
+ },
+ {
+ "IdS": 10298,
+ "PX": "371295,371195",
+ "PY": "553945,554110",
+ "In": "KAB-C-FGN001166-1"
+ },
+ {
+ "IdS": 10299,
+ "PX": "371195,371045",
+ "PY": "554110,554375",
+ "In": "KAB-C-FGN001167-1"
+ },
+ {
+ "IdS": 10300,
+ "PX": "371045,370941.91",
+ "PY": "554375,554546.69",
+ "In": "KAB-C-FGN001168-1"
+ },
+ {
+ "IdS": 10301,
+ "PX": "370941.91,370840",
+ "PY": "554546.69,554720",
+ "In": "KAB-C-FGN001169-1"
+ },
+ {
+ "IdS": 10302,
+ "PX": "370840,370740",
+ "PY": "554720,554890",
+ "In": "KAB-C-FGN001170-1"
+ },
+ {
+ "IdS": 10303,
+ "PX": "370740,370485",
+ "PY": "554890,555325",
+ "In": "KAB-C-FGN001171-1"
+ },
+ {
+ "IdS": 10312,
+ "PX": "372800,373400.01",
+ "PY": "553400,553400.01",
+ "In": "KAB-C-FGN001173-1"
+ },
+ {
+ "IdS": 10313,
+ "PX": "373400.01,373606.38",
+ "PY": "553400.01,553786.88",
+ "In": "KAB-C-FGN001174--"
+ },
+ {
+ "IdS": 10314,
+ "PX": "373606.38,373813",
+ "PY": "553786.88,554129.39",
+ "In": "KAB-C-FGN001175--"
+ },
+ {
+ "IdS": 10315,
+ "PX": "373813,374000",
+ "PY": "554129.39,554450",
+ "In": "KAB-C-FGN001176--"
+ },
+ {
+ "IdS": 10317,
+ "PX": "374158.24,373815.74",
+ "PY": "555088.96,555295.57",
+ "In": "KAB-C-FGN001178--"
+ },
+ {
+ "IdS": 10318,
+ "PX": "373815.74,373644.49",
+ "PY": "555295.57,555398.88",
+ "In": "KAB-C-FGN001179--"
+ },
+ {
+ "IdS": 10320,
+ "PX": "373301.98,373130.72",
+ "PY": "555605.49,555708.79",
+ "In": "KAB-C-FGN001181-1"
+ },
+ {
+ "IdS": 10324,
+ "PX": "372702.6,372600",
+ "PY": "555967.06,556050",
+ "In": "KAB-C-FGN001185--"
+ },
+ {
+ "IdS": 10326,
+ "PX": "372400,372100",
+ "PY": "556050,556050",
+ "In": "KAB-C-FGN001187--"
+ },
+ {
+ "IdS": 10327,
+ "PX": "371900,371670",
+ "PY": "556050,556050",
+ "In": "KAB-C-FGN001188--"
+ },
+ {
+ "IdS": 10328,
+ "PX": "371670,371571.73",
+ "PY": "556050,556226.82",
+ "In": "KAB-C-FGN001189--"
+ },
+ {
+ "IdS": 10329,
+ "PX": "371571.73,371466.79",
+ "PY": "556226.82,556397.08",
+ "In": "KAB-C-FGN001190-1"
+ },
+ {
+ "IdS": 10330,
+ "PX": "371466.79,371270.46",
+ "PY": "556397.08,556275.9",
+ "In": "KAB-C-FGN001191-1"
+ },
+ {
+ "IdS": 10333,
+ "PX": "371361.85,371256.91",
+ "PY": "556567.34,556737.6",
+ "In": "KAB-C-FGN001194-1"
+ },
+ {
+ "IdS": 10336,
+ "PX": "362200,362200",
+ "PY": "550900,550650",
+ "In": "KAB-C-FGN001197-1"
+ },
+ {
+ "IdS": 10340,
+ "PX": "351400,351750",
+ "PY": "550350,550350",
+ "In": "KAB-C-FGN001200-1"
+ },
+ {
+ "IdS": 10342,
+ "PX": "358900,359100",
+ "PY": "551050,551000",
+ "In": "KAB-C-FGN00131605-1"
+ },
+ {
+ "IdS": 10343,
+ "PX": "378950,379250",
+ "PY": "545000,544400",
+ "In": "KAB-C-FGN006093-1"
+ },
+ {
+ "IdS": 10344,
+ "PX": "379250,379150",
+ "PY": "544400,544150",
+ "In": "KAB-C-FGN006094-1"
+ },
+ {
+ "IdS": 10345,
+ "PX": "379150,379050",
+ "PY": "544150,543900.01",
+ "In": "KAB-C-FGN006095-1"
+ },
+ {
+ "IdS": 10346,
+ "PX": "379150,378950",
+ "PY": "544150,544150",
+ "In": "KAB-C-FGN006096-1"
+ },
+ {
+ "IdS": 10348,
+ "PX": "381500,382950",
+ "PY": "542400,541650",
+ "In": "KAB-C-FGN006098-1"
+ },
+ {
+ "IdS": 10349,
+ "PX": "382950,384850",
+ "PY": "541650,540650",
+ "In": "KAB-C-FGN006099-1"
+ },
+ {
+ "IdS": 10350,
+ "PX": "384850,385850",
+ "PY": "540650,540150",
+ "In": "KAB-C-FGN006100-1"
+ },
+ {
+ "IdS": 10351,
+ "PX": "385850,386550",
+ "PY": "540150,540150",
+ "In": "KAB-C-FGN006101-1"
+ },
+ {
+ "IdS": 10352,
+ "PX": "382950,383250",
+ "PY": "541650,542050",
+ "In": "KAB-C-FGN006102-1"
+ },
+ {
+ "IdS": 10353,
+ "PX": "383250,383500",
+ "PY": "542050,542400",
+ "In": "KAB-AB-FGN006103-1"
+ },
+ {
+ "IdS": 10354,
+ "PX": "381250,381050",
+ "PY": "542550,542550",
+ "In": "KAB-C-FGN006104-1"
+ },
+ {
+ "IdS": 10356,
+ "PX": "372500,372700",
+ "PY": "547600,547500",
+ "In": "KAB-C-FGN006120-1"
+ },
+ {
+ "IdS": 10357,
+ "PX": "372700,372550",
+ "PY": "547500,547200",
+ "In": "KAB-C-FGN006121-1"
+ },
+ {
+ "IdS": 10358,
+ "PX": "372550,372300",
+ "PY": "547200,546700",
+ "In": "KAB-C-FGN006122-1"
+ },
+ {
+ "IdS": 10359,
+ "PX": "371050,371250",
+ "PY": "548300,548200",
+ "In": "KAB-C-FGN003030-1"
+ },
+ {
+ "IdS": 10362,
+ "PX": "371250,371450",
+ "PY": "548200,548100",
+ "In": "KAB-C-FGN003031-1"
+ },
+ {
+ "IdS": 10363,
+ "PX": "371450,371650",
+ "PY": "548100,548000",
+ "In": "KAB-C-FGN003032-1"
+ },
+ {
+ "IdS": 10364,
+ "PX": "371650,371500",
+ "PY": "548000,547700",
+ "In": "KAB-C-FGN003040--"
+ },
+ {
+ "IdS": 10365,
+ "PX": "371500,371400",
+ "PY": "547700,547500.01",
+ "In": "KAB-C-FGN003042--"
+ },
+ {
+ "IdS": 10368,
+ "PX": "371650,371850",
+ "PY": "548000,547900",
+ "In": "KAB-C-FGN003050-1"
+ },
+ {
+ "IdS": 10369,
+ "PX": "371850,372000",
+ "PY": "547900,547825",
+ "In": "KAB-C-FGN003051-1"
+ },
+ {
+ "IdS": 10371,
+ "PX": "372000,372150",
+ "PY": "547825,547750",
+ "In": "KAB-C-FGN003052-1"
+ },
+ {
+ "IdS": 10372,
+ "PX": "372150,372200,372750",
+ "PY": "547750,547850,547600",
+ "In": "KAB-C-FGN003052-2"
+ },
+ {
+ "IdS": 10373,
+ "PX": "372750,372500",
+ "PY": "547600,547600",
+ "In": "KAB-C-FGN003052-3"
+ },
+ {
+ "IdS": 10374,
+ "PX": "371650,371550,371450,371500",
+ "PY": "548000,548000,547800,547700",
+ "In": "KAB-C-FGN003041--"
+ },
+ {
+ "IdS": 10380,
+ "PX": "371900,372800",
+ "PY": "553400,553400",
+ "In": "KAB-C-FGN001223-1"
+ },
+ {
+ "IdS": 10381,
+ "PX": "372800,372800",
+ "PY": "552800,552200",
+ "In": "KAB-C-FGN003008-1"
+ },
+ {
+ "IdS": 10382,
+ "PX": "372800,372800",
+ "PY": "552200,552000",
+ "In": "KAB-C-FGN003009-1"
+ },
+ {
+ "IdS": 10383,
+ "PX": "372800,372800",
+ "PY": "551600,551400",
+ "In": "KAB-C-FGN003003-1"
+ },
+ {
+ "IdS": 10384,
+ "PX": "372800,372800",
+ "PY": "553400,553100",
+ "In": "KAB-C-FGN003015--"
+ },
+ {
+ "IdS": 10389,
+ "PX": "371350,371350",
+ "PY": "549500,549250",
+ "In": "KAB-C-FGN003063--"
+ },
+ {
+ "IdS": 10390,
+ "PX": "371350,371350",
+ "PY": "549250,549050",
+ "In": "KAB-C-FGN003064--"
+ },
+ {
+ "IdS": 10391,
+ "PX": "371350,371350",
+ "PY": "549050,548800",
+ "In": "KAB-C-FGN003065--"
+ },
+ {
+ "IdS": 10393,
+ "PX": "371250,371050",
+ "PY": "548650,548300",
+ "In": "KAB-C-FGN003067-1"
+ },
+ {
+ "IdS": 10394,
+ "PX": "372800,372600",
+ "PY": "552800,552800",
+ "In": "KAB-C-FGN003070--"
+ },
+ {
+ "IdS": 10397,
+ "PX": "372200,371900",
+ "PY": "552800,552800",
+ "In": "KAB-C-FGN003075-1"
+ },
+ {
+ "IdS": 10398,
+ "PX": "371900,371700",
+ "PY": "552800,552800",
+ "In": "KAB-C-FGN003077--"
+ },
+ {
+ "IdS": 10399,
+ "PX": "362200,362500",
+ "PY": "552300,552300",
+ "In": "KAB-C-FGN001230-1"
+ },
+ {
+ "IdS": 10401,
+ "PX": "362800,363000",
+ "PY": "552300,552300",
+ "In": "KAB-C-FGN001232-1"
+ },
+ {
+ "IdS": 10402,
+ "PX": "366350,366100",
+ "PY": "556300,556300",
+ "In": "KAB-C-FGN001240-1"
+ },
+ {
+ "IdS": 10403,
+ "PX": "365995,366205",
+ "PY": "552750,552540",
+ "In": "KAB-C-FGN001250-1"
+ },
+ {
+ "IdS": 10404,
+ "PX": "365995,365075.73",
+ "PY": "552750,553668.63",
+ "In": "KAB-C-FGN001251--"
+ },
+ {
+ "IdS": 10405,
+ "PX": "365075.73,364368.62",
+ "PY": "553668.63,553668.63",
+ "In": "KAB-C-FGN001252--"
+ },
+ {
+ "IdS": 10408,
+ "PX": "372800,372600",
+ "PY": "552200,552200",
+ "In": "KAB-C-FGN003100-1"
+ },
+ {
+ "IdS": 10409,
+ "PX": "358399.96,358600",
+ "PY": "554901.32,554900",
+ "In": "KAB-C-FGN001300-1"
+ },
+ {
+ "IdS": 10410,
+ "PX": "358399.95,358599.95",
+ "PY": "555101.32,555101.32",
+ "In": "KAB-C-FGN001301-1"
+ },
+ {
+ "IdS": 10411,
+ "PX": "372800,372600",
+ "PY": "551600,551600",
+ "In": "KAB-C-FGN003103--"
+ },
+ {
+ "IdS": 10413,
+ "PX": "381400,381650",
+ "PY": "542800,542800",
+ "In": "KAB-C-FGN006200-1"
+ },
+ {
+ "IdS": 10414,
+ "PX": "353450,353450",
+ "PY": "552450,551600",
+ "In": "KAB-C-FGN001303-1"
+ },
+ {
+ "IdS": 10415,
+ "PX": "367246.75,367350.07",
+ "PY": "555053.93,555225.19",
+ "In": "KAB-C-FGN001304--"
+ },
+ {
+ "IdS": 10416,
+ "PX": "358400,358600.01",
+ "PY": "554200,554200",
+ "In": "KAB-C-FGN001305-1"
+ },
+ {
+ "IdS": 10417,
+ "PX": "369650,369450",
+ "PY": "550800.01,550800.01",
+ "In": "KAB-C-FGN001306--"
+ },
+ {
+ "IdS": 10418,
+ "PX": "358399.99,358599.99",
+ "PY": "553601.32,553601.32",
+ "In": "KAB-C-FGN001307-1"
+ },
+ {
+ "IdS": 10419,
+ "PX": "352900,352857.1",
+ "PY": "552300,552504.85",
+ "In": "KAB-C-FGN001308-1"
+ },
+ {
+ "IdS": 10420,
+ "PX": "366772.78,366631.36",
+ "PY": "551971.57,551830.14",
+ "In": "KAB-C-FGN001309--"
+ },
+ {
+ "IdS": 10421,
+ "PX": "366348.52,366489.93",
+ "PY": "552395.83,552537.25",
+ "In": "KAB-C-FGN001310--"
+ },
+ {
+ "IdS": 10422,
+ "PX": "365265,365263.59",
+ "PY": "552750,552949.39",
+ "In": "KAB-C-FGN001311-1"
+ },
+ {
+ "IdS": 10423,
+ "PX": "371850,371750",
+ "PY": "547900,547750",
+ "In": "KAB-C-FGN003101--"
+ },
+ {
+ "IdS": 10424,
+ "PX": "362200,362400",
+ "PY": "550900,550900",
+ "In": "KAB-C-FGN001312-1"
+ },
+ {
+ "IdS": 10425,
+ "PX": "362500,362500",
+ "PY": "552300,552500",
+ "In": "KAB-C-FGN001313-1"
+ },
+ {
+ "IdS": 10426,
+ "PX": "369175,369020",
+ "PY": "553430,553360",
+ "In": "KAB-C-FGN001314--"
+ },
+ {
+ "IdS": 10427,
+ "PX": "371350,371000",
+ "PY": "549500,549500",
+ "In": "KAB-C-FGN003102-1"
+ },
+ {
+ "IdS": 10428,
+ "PX": "371000,370700",
+ "PY": "549500,549500",
+ "In": "KAB-C-FGN003102-2"
+ },
+ {
+ "IdS": 10429,
+ "PX": "371000,371000",
+ "PY": "549500,549750",
+ "In": "KAB-C-FGN003102-3"
+ },
+ {
+ "IdS": 10430,
+ "PX": "356400,356400",
+ "PY": "555801.37,555601.37",
+ "In": "KAB-C-FGN001315-1"
+ },
+ {
+ "IdS": 10431,
+ "PX": "357700,357700",
+ "PY": "552900,552700",
+ "In": "KAB-C-FGN001316-1"
+ },
+ {
+ "IdS": 10432,
+ "PX": "367114.2,367115",
+ "PY": "551830.14,552030",
+ "In": "KAB-C-FGN001317-1"
+ },
+ {
+ "IdS": 10433,
+ "PX": "367931.77,367828.45",
+ "PY": "554640.71,554469.46",
+ "In": "KAB-C-FGN001318--"
+ },
+ {
+ "IdS": 10434,
+ "PX": "369475,369370",
+ "PY": "553710,553545",
+ "In": "KAB-C-FGN001319--"
+ },
+ {
+ "IdS": 10436,
+ "PX": "357300,357700",
+ "PY": "552900.01,552900",
+ "In": "KAB-C-FGN001023-1"
+ },
+ {
+ "IdS": 10437,
+ "PX": "357700,358100",
+ "PY": "552900,552900",
+ "In": "KAB-C-FGN001024-1"
+ },
+ {
+ "IdS": 10438,
+ "PX": "365075.73,365217.15",
+ "PY": "553668.63,553810.05",
+ "In": "KAB-C-FGN001321--"
+ },
+ {
+ "IdS": 10439,
+ "PX": "364849.67,364850.13",
+ "PY": "552950.03,553198.85",
+ "In": "KAB-C-FGN001322-1"
+ },
+ {
+ "IdS": 10442,
+ "PX": "364368.62,364227.2",
+ "PY": "553668.63,553810.05",
+ "In": "KAB-C-FGN001324--"
+ },
+ {
+ "IdS": 10443,
+ "PX": "363350,363350",
+ "PY": "552900,552700",
+ "In": "KAB-C-FGN001325-1"
+ },
+ {
+ "IdS": 10444,
+ "PX": "362200,362000",
+ "PY": "551800,551800",
+ "In": "KAB-C-FGN001326-1"
+ },
+ {
+ "IdS": 10445,
+ "PX": "362200,362399.99",
+ "PY": "553100,553101.6",
+ "In": "KAB-C-FGN001327-1"
+ },
+ {
+ "IdS": 10446,
+ "PX": "362200,362399.08",
+ "PY": "553299.99,553301.6",
+ "In": "KAB-C-FGN001328-1"
+ },
+ {
+ "IdS": 10447,
+ "PX": "362200,362397.25",
+ "PY": "553699.99,553701.59",
+ "In": "KAB-C-FGN001329-1"
+ },
+ {
+ "IdS": 10448,
+ "PX": "362200,362400",
+ "PY": "554700,554700",
+ "In": "KAB-C-FGN001330-1"
+ },
+ {
+ "IdS": 10449,
+ "PX": "362200,362000",
+ "PY": "554900,554900",
+ "In": "KAB-C-FGN001331-1"
+ },
+ {
+ "IdS": 10450,
+ "PX": "360000,360000",
+ "PY": "552900,553100",
+ "In": "KAB-C-FGN001332-1"
+ },
+ {
+ "IdS": 10451,
+ "PX": "359600,359600",
+ "PY": "552900.01,553100",
+ "In": "KAB-C-FGN001333-1"
+ },
+ {
+ "IdS": 10452,
+ "PX": "357799.93,357799.93",
+ "PY": "555801.3,555601.3",
+ "In": "KAB-C-FGN001334-1"
+ },
+ {
+ "IdS": 10453,
+ "PX": "356800,356800",
+ "PY": "555801.37,555601.38",
+ "In": "KAB-C-FGN001335-1"
+ },
+ {
+ "IdS": 10454,
+ "PX": "356000,356000",
+ "PY": "555800.12,555601.37",
+ "In": "KAB-C-FGN001336-1"
+ },
+ {
+ "IdS": 10456,
+ "PX": "358399.99,358200",
+ "PY": "556601.38,556601.39",
+ "In": "KAB-C-FGN001338-1"
+ },
+ {
+ "IdS": 10457,
+ "PX": "358400,358400",
+ "PY": "556801.38,557001.38",
+ "In": "KAB-C-FGN001339-1"
+ },
+ {
+ "IdS": 10459,
+ "PX": "358400,358199.99",
+ "PY": "557001.38,557001.38",
+ "In": "KAB-C-FGN001339-3"
+ },
+ {
+ "IdS": 10463,
+ "PX": "369730,369635",
+ "PY": "553555,553400",
+ "In": "KAB-C-FGN001340-1"
+ },
+ {
+ "IdS": 10479,
+ "PX": "359300,359300",
+ "PY": "552900,552700",
+ "In": "KAB-C-FGN001352-1"
+ },
+ {
+ "IdS": 10480,
+ "PX": "359300,359500",
+ "PY": "552700,552700",
+ "In": "KAB-C-FGN001352-2"
+ },
+ {
+ "IdS": 10481,
+ "PX": "359300,359300",
+ "PY": "552700,552400",
+ "In": "KAB-C-FGN001352-3"
+ },
+ {
+ "IdS": 10489,
+ "PX": "370740,370890",
+ "PY": "554890,554980",
+ "In": "KAB-C-FGN001358--"
+ },
+ {
+ "IdS": 10490,
+ "PX": "370840,371010",
+ "PY": "554720,554820",
+ "In": "KAB-C-FGN001359--"
+ },
+ {
+ "IdS": 10491,
+ "PX": "371045,371155",
+ "PY": "554375,554440",
+ "In": "KAB-C-FGN001360--"
+ },
+ {
+ "IdS": 10492,
+ "PX": "371510.09,371700",
+ "PY": "553599.88,553600",
+ "In": "KAB-AB-FGN001361-1"
+ },
+ {
+ "IdS": 10496,
+ "PX": "371900,371900",
+ "PY": "553400,553200",
+ "In": "KAB-C-FGN001365-1"
+ },
+ {
+ "IdS": 10497,
+ "PX": "373606.38,373435.13",
+ "PY": "553786.88,553890.17",
+ "In": "KAB-C-FGN001366--"
+ },
+ {
+ "IdS": 10509,
+ "PX": "373813,374155.51",
+ "PY": "554129.39,553922.8",
+ "In": "KAB-C-FGN005000-1"
+ },
+ {
+ "IdS": 10515,
+ "PX": "355050,355050",
+ "PY": "552700,553000",
+ "In": "KAB-C-FGN001382-1"
+ },
+ {
+ "IdS": 10516,
+ "PX": "354000,354000",
+ "PY": "552550.01,552800",
+ "In": "KAB-C-FGN001383-1"
+ },
+ {
+ "IdS": 10517,
+ "PX": "350883.9,351081.5",
+ "PY": "554119.3,554150.21",
+ "In": "KAB-C-FGN001384-1"
+ },
+ {
+ "IdS": 10518,
+ "PX": "350945.72,350748.12",
+ "PY": "553724.11,553693.21",
+ "In": "KAB-C-FGN001385-1"
+ },
+ {
+ "IdS": 10519,
+ "PX": "351418.18,351220.59",
+ "PY": "553291.92,553261.02",
+ "In": "KAB-C-FGN001386-1"
+ },
+ {
+ "IdS": 10520,
+ "PX": "351449.09,351251.5",
+ "PY": "553094.33,553063.42",
+ "In": "KAB-C-FGN001387-1"
+ },
+ {
+ "IdS": 10522,
+ "PX": "350850,350751.44",
+ "PY": "552000,552377.89",
+ "In": "KAB-C-FGN001389-1"
+ },
+ {
+ "IdS": 10523,
+ "PX": "371500,371700",
+ "PY": "547700,547600",
+ "In": "KAB-C-FGN003110--"
+ },
+ {
+ "IdS": 10524,
+ "PX": "371450,371250",
+ "PY": "548100,547800",
+ "In": "KAB-C-FGN003109-1"
+ },
+ {
+ "IdS": 10525,
+ "PX": "371250,371150",
+ "PY": "547800,547600",
+ "In": "KAB-C-FGN003109-2"
+ },
+ {
+ "IdS": 10526,
+ "PX": "371250,371100",
+ "PY": "547800,547850",
+ "In": "KAB-C-FGN003109-3"
+ },
+ {
+ "IdS": 10529,
+ "PX": "370455,370250",
+ "PY": "548755,548550",
+ "In": "KAB-C-FGN003106-1"
+ },
+ {
+ "IdS": 10530,
+ "PX": "370665,370450",
+ "PY": "548565,548350",
+ "In": "KAB-C-FGN003107-1"
+ },
+ {
+ "IdS": 10531,
+ "PX": "370900,370750",
+ "PY": "548400,548200",
+ "In": "KAB-C-FGN003108-1"
+ },
+ {
+ "IdS": 10534,
+ "PX": "372000,372000",
+ "PY": "547825,548300",
+ "In": "KAB-C-FGN003111-1"
+ },
+ {
+ "IdS": 10535,
+ "PX": "373150,373400",
+ "PY": "545000,544850",
+ "In": "KAB-C-FGN006201-1"
+ },
+ {
+ "IdS": 10536,
+ "PX": "371164.17,371225",
+ "PY": "555738.51,555635",
+ "In": "KAB-C-FGN001390--"
+ },
+ {
+ "IdS": 10537,
+ "PX": "372400,372400",
+ "PY": "556050,556250",
+ "In": "KAB-C-FGN001391--"
+ },
+ {
+ "IdS": 10538,
+ "PX": "356670,356650",
+ "PY": "552900,553200",
+ "In": "KAB-C-FGN001392-1"
+ },
+ {
+ "IdS": 10539,
+ "PX": "357295.08,357100",
+ "PY": "552549.88,552550.01",
+ "In": "KAB-AB-FGN001393-1"
+ },
+ {
+ "IdS": 10540,
+ "PX": "357800,358050",
+ "PY": "552350,552250",
+ "In": "KAB-C-FGN001394-1"
+ },
+ {
+ "IdS": 10541,
+ "PX": "372600,372600",
+ "PY": "556050,556249.99",
+ "In": "KAB-C-FGN001395-1"
+ },
+ {
+ "IdS": 10542,
+ "PX": "373045.08,373148.39",
+ "PY": "555760.45,555931.68",
+ "In": "KAB-C-FGN001396-1"
+ },
+ {
+ "IdS": 10543,
+ "PX": "373130.72,373234.03",
+ "PY": "555708.79,555880.05",
+ "In": "KAB-C-FGN001397--"
+ },
+ {
+ "IdS": 10544,
+ "PX": "373644.49,373747.8",
+ "PY": "555398.88,555570.13",
+ "In": "KAB-C-FGN001398-1"
+ },
+ {
+ "IdS": 10545,
+ "PX": "374000,373800",
+ "PY": "554450,554550",
+ "In": "KAB-C-FGN001399-1"
+ },
+ {
+ "IdS": 10546,
+ "PX": "372800,372600",
+ "PY": "553100,553100",
+ "In": "KAB-C-FGN003200-1"
+ },
+ {
+ "IdS": 10547,
+ "PX": "372600,372600",
+ "PY": "553100,553300",
+ "In": "KAB-C-FGN003200-2"
+ },
+ {
+ "IdS": 10548,
+ "PX": "372600,372400",
+ "PY": "553100,553100",
+ "In": "KAB-C-FGN003200-3"
+ },
+ {
+ "IdS": 10550,
+ "PX": "376600,376900",
+ "PY": "545350,545350",
+ "In": "KAB-C-FGN006202-1"
+ },
+ {
+ "IdS": 10551,
+ "PX": "377400,377500",
+ "PY": "544600,544800",
+ "In": "KAB-C-FGN006203-1"
+ },
+ {
+ "IdS": 10552,
+ "PX": "378000,378000",
+ "PY": "544400,544550",
+ "In": "KAB-C-FGN006204-1"
+ },
+ {
+ "IdS": 10554,
+ "PX": "381050,380950",
+ "PY": "543400,543250",
+ "In": "KAB-C-FGN006206-1"
+ },
+ {
+ "IdS": 10555,
+ "PX": "381500,381750",
+ "PY": "543000,543000",
+ "In": "KAB-C-FGN006207-1"
+ },
+ {
+ "IdS": 10556,
+ "PX": "372445,373150",
+ "PY": "550265.02,549750",
+ "In": "KAB-C-FGN003113-1"
+ },
+ {
+ "IdS": 10557,
+ "PX": "373150,373150",
+ "PY": "549750,549500",
+ "In": "KAB-C-FGN003113-2"
+ },
+ {
+ "IdS": 10560,
+ "PX": "376750,377000",
+ "PY": "546800,546800",
+ "In": "KAB-C-FGN006074-1"
+ },
+ {
+ "IdS": 10562,
+ "PX": "375400,375400",
+ "PY": "547950,548350",
+ "In": "KAB-C-FGN006209-1"
+ },
+ {
+ "IdS": 10563,
+ "PX": "356670,356670.01",
+ "PY": "552535,551650",
+ "In": "KAB-C-FGN001400-1"
+ },
+ {
+ "IdS": 10564,
+ "PX": "372100,372100",
+ "PY": "556050,555850",
+ "In": "KAB-C-FGN001401-1"
+ },
+ {
+ "IdS": 10565,
+ "PX": "368188.65,368085.34",
+ "PY": "554485.75,554314.5",
+ "In": "KAB-C-FGN001402--"
+ },
+ {
+ "IdS": 10566,
+ "PX": "351143.31,351174.22",
+ "PY": "553755.01,553557.42",
+ "In": "KAB-C-FGN001320-1"
+ },
+ {
+ "IdS": 10567,
+ "PX": "366350,366050",
+ "PY": "555900,555900",
+ "In": "KAB-C-FGN001403-1"
+ },
+ {
+ "IdS": 10568,
+ "PX": "365500,365641.42",
+ "PY": "554800,554658.58",
+ "In": "KAB-C-FGN001404-1"
+ },
+ {
+ "IdS": 10569,
+ "PX": "364792.89,364934.31",
+ "PY": "554092.89,553951.47",
+ "In": "KAB-C-FGN001405-1"
+ },
+ {
+ "IdS": 10571,
+ "PX": "370485,370315",
+ "PY": "555325,555215",
+ "In": "KAB-C-FGN001270--"
+ },
+ {
+ "IdS": 10572,
+ "PX": "372100,371900",
+ "PY": "556050,556050",
+ "In": "KAB-C-FGN001271--"
+ },
+ {
+ "IdS": 10573,
+ "PX": "371900,371900",
+ "PY": "556050,555850",
+ "In": "KAB-C-FGN001272-1"
+ },
+ {
+ "IdS": 10574,
+ "PX": "371670,371741.98",
+ "PY": "556050,556331.76",
+ "In": "KAB-C-FGN001406--"
+ },
+ {
+ "IdS": 10575,
+ "PX": "370315,370210",
+ "PY": "555215,555385",
+ "In": "KAB-C-FGN001407-1"
+ },
+ {
+ "IdS": 10577,
+ "PX": "370105,369925",
+ "PY": "555555,555445",
+ "In": "KAB-C-FGN001409-1"
+ },
+ {
+ "IdS": 10578,
+ "PX": "370105,370000",
+ "PY": "555555,555725",
+ "In": "KAB-C-FGN001410--"
+ },
+ {
+ "IdS": 10580,
+ "PX": "372750,372500.2",
+ "PY": "553600,553600",
+ "In": "KAB-C-FGN003150-2"
+ },
+ {
+ "IdS": 10582,
+ "PX": "372800,372600",
+ "PY": "553800,553800",
+ "In": "KAB-C-FGN003150-4"
+ },
+ {
+ "IdS": 10583,
+ "PX": "372600,372400",
+ "PY": "553800,553800",
+ "In": "KAB-C-FGN0031501-1"
+ },
+ {
+ "IdS": 10584,
+ "PX": "372800,372800",
+ "PY": "553800,554000",
+ "In": "KAB-C-FGN003150-6"
+ },
+ {
+ "IdS": 10586,
+ "PX": "372796.06,372796.29",
+ "PY": "554339.12,554540.5",
+ "In": "KAB-AB-FGN003150-8"
+ },
+ {
+ "IdS": 10588,
+ "PX": "372800,372600",
+ "PY": "554000,554000",
+ "In": "KAB-C-FGN003150-9"
+ },
+ {
+ "IdS": 10592,
+ "PX": "373400.01,373600",
+ "PY": "553400.01,553400",
+ "In": "KAB-C-FGN003160-1"
+ },
+ {
+ "IdS": 10593,
+ "PX": "373600,373600",
+ "PY": "553400,553200",
+ "In": "KAB-C-FGN003162-1"
+ },
+ {
+ "IdS": 10596,
+ "PX": "373600,373600.04",
+ "PY": "552400.01,552199.68",
+ "In": "KAB-C-FGN003166-1"
+ },
+ {
+ "IdS": 10601,
+ "PX": "374155.51,374326.76",
+ "PY": "553922.8,553819.48",
+ "In": "KAB-C-FGN005001-1"
+ },
+ {
+ "IdS": 10609,
+ "PX": "370145,370205",
+ "PY": "555110,555015",
+ "In": "KAB-C-FGN001500-1"
+ },
+ {
+ "IdS": 10610,
+ "PX": "370145,370145",
+ "PY": "555110,554970",
+ "In": "KAB-AB-FGN001501-1"
+ },
+ {
+ "IdS": 10611,
+ "PX": "370599.99,370600",
+ "PY": "553400.01,553600",
+ "In": "KAB-C-FGN001510-1"
+ },
+ {
+ "IdS": 10612,
+ "PX": "370600,370400",
+ "PY": "553600,553600",
+ "In": "KAB-C-FGN001511-1"
+ },
+ {
+ "IdS": 10613,
+ "PX": "370600,370800",
+ "PY": "553600,553600",
+ "In": "KAB-C-FGN001512-1"
+ },
+ {
+ "IdS": 10614,
+ "PX": "370600,370600",
+ "PY": "553600,553800",
+ "In": "KAB-C-FGN001513-1"
+ },
+ {
+ "IdS": 10615,
+ "PX": "370600,370400",
+ "PY": "553800,553800",
+ "In": "KAB-C-FGN001514--"
+ },
+ {
+ "IdS": 10616,
+ "PX": "370600,370600",
+ "PY": "553800,554000",
+ "In": "KAB-C-FGN001515-1"
+ },
+ {
+ "IdS": 10617,
+ "PX": "370600,370400",
+ "PY": "554000,554000",
+ "In": "KAB-AB-FGN001516--"
+ },
+ {
+ "IdS": 10626,
+ "PX": "373000,373200",
+ "PY": "550600,550600",
+ "In": "KAB-C-FGN003170-2"
+ },
+ {
+ "IdS": 10627,
+ "PX": "373000,373000",
+ "PY": "550600,550800",
+ "In": "KAB-C-FGN003170-3"
+ },
+ {
+ "IdS": 10628,
+ "PX": "370000,370250",
+ "PY": "553400,553180",
+ "In": "KAB-C-FGN001530-1"
+ },
+ {
+ "IdS": 10629,
+ "PX": "370250,370450",
+ "PY": "553180,553180",
+ "In": "KAB-C-FGN001531-1"
+ },
+ {
+ "IdS": 10630,
+ "PX": "370250,370250",
+ "PY": "553180,552980",
+ "In": "KAB-C-FGN001532-1"
+ },
+ {
+ "IdS": 10631,
+ "PX": "371466.79,371637.05",
+ "PY": "556397.08,556502.02",
+ "In": "KAB-C-FGN001540--"
+ },
+ {
+ "IdS": 10632,
+ "PX": "371637.05,371479.64",
+ "PY": "556502.02,556757.41",
+ "In": "KAB-C-FGN001541-1"
+ },
+ {
+ "IdS": 10633,
+ "PX": "371479.64,371649.9",
+ "PY": "556757.41,556862.34",
+ "In": "KAB-C-FGN001542-1"
+ },
+ {
+ "IdS": 10634,
+ "PX": "371479.64,371217.29",
+ "PY": "556757.41,557183.05",
+ "In": "KAB-C-FGN001543-1"
+ },
+ {
+ "IdS": 10635,
+ "PX": "371217.29,371387.55",
+ "PY": "557183.05,557287.99",
+ "In": "KAB-C-FGN001544-1"
+ },
+ {
+ "IdS": 10636,
+ "PX": "370210,370105",
+ "PY": "555385,555555",
+ "In": "KAB-C-FGN001407-2"
+ },
+ {
+ "IdS": 10637,
+ "PX": "370210,370265",
+ "PY": "555385,555420",
+ "In": "KAB-C-FGN001407-3"
+ },
+ {
+ "IdS": 10640,
+ "PX": "369850,369700",
+ "PY": "549350,549200",
+ "In": "KAB-C-FGN003180-1"
+ },
+ {
+ "IdS": 10641,
+ "PX": "369700,369500",
+ "PY": "549200,549000",
+ "In": "KAB-C-FGN003181-1"
+ },
+ {
+ "IdS": 10643,
+ "PX": "369500,369350",
+ "PY": "549000,549150",
+ "In": "KAB-C-FGN003181-3"
+ },
+ {
+ "IdS": 10645,
+ "PX": "369200,369000",
+ "PY": "548700,548500",
+ "In": "KAB-C-FGN003184-1"
+ },
+ {
+ "IdS": 10646,
+ "PX": "369000,368800",
+ "PY": "548500,548300",
+ "In": "KAB-C-FGN003185-1"
+ },
+ {
+ "IdS": 10647,
+ "PX": "370150,369900",
+ "PY": "549050,549050",
+ "In": "KAB-C-FGN003190-1"
+ },
+ {
+ "IdS": 10648,
+ "PX": "370150,369900",
+ "PY": "549050,548800",
+ "In": "KAB-C-FGN003191-1"
+ },
+ {
+ "IdS": 10649,
+ "PX": "372300,372500",
+ "PY": "546700,546600",
+ "In": "KAB-C-FGN006250-1"
+ },
+ {
+ "IdS": 10653,
+ "PX": "372550,372750",
+ "PY": "547200,547100",
+ "In": "KAB-C-FGN006260-1"
+ },
+ {
+ "IdS": 10654,
+ "PX": "372750,372950",
+ "PY": "547100,547000",
+ "In": "KAB-C-FGN006261-1"
+ },
+ {
+ "IdS": 10658,
+ "PX": "375030.01,375160.01",
+ "PY": "545889.99,545990",
+ "In": "KAB-AB-FGN006290-1"
+ },
+ {
+ "IdS": 10659,
+ "PX": "372702.6,372547.63",
+ "PY": "555967.06,555710.18",
+ "In": "KAB-C-FGN001550-1"
+ },
+ {
+ "IdS": 10660,
+ "PX": "372547.63,372376.38",
+ "PY": "555710.18,555813.49",
+ "In": "KAB-C-FGN001551-1"
+ },
+ {
+ "IdS": 10661,
+ "PX": "372547.63,372444.33",
+ "PY": "555710.18,555538.93",
+ "In": "KAB-C-FGN001552-1"
+ },
+ {
+ "IdS": 10662,
+ "PX": "372444.33,372341.02",
+ "PY": "555538.93,555367.67",
+ "In": "KAB-C-FGN001552-2"
+ },
+ {
+ "IdS": 10663,
+ "PX": "372341.02,372237.71",
+ "PY": "555367.67,555196.42",
+ "In": "KAB-C-FGN001552-4"
+ },
+ {
+ "IdS": 10664,
+ "PX": "372237.71,372175.07",
+ "PY": "555196.42,555089.54",
+ "In": "KAB-C-FGN001555-1"
+ },
+ {
+ "IdS": 10665,
+ "PX": "373815.74,373712.44",
+ "PY": "555295.57,555124.31",
+ "In": "KAB-C-FGN001560-1"
+ },
+ {
+ "IdS": 10666,
+ "PX": "373712.44,373883.69",
+ "PY": "555124.31,555021.01",
+ "In": "KAB-C-FGN001560-3"
+ },
+ {
+ "IdS": 10667,
+ "PX": "373712.44,373609.13",
+ "PY": "555124.31,554953.06",
+ "In": "KAB-C-FGN001560-2"
+ },
+ {
+ "IdS": 10668,
+ "PX": "373609.13,373505.83",
+ "PY": "554953.06,554781.81",
+ "In": "KAB-C-FGN001560-4"
+ },
+ {
+ "IdS": 10669,
+ "PX": "372400,372200",
+ "PY": "553100,553100",
+ "In": "KAB-C-FGN003201--"
+ },
+ {
+ "IdS": 10670,
+ "PX": "372800,372600",
+ "PY": "552000,552000",
+ "In": "KAB-C-FGN003210-1"
+ },
+ {
+ "IdS": 10671,
+ "PX": "372600,372400",
+ "PY": "552000,552000",
+ "In": "KAB-C-FGN003211-1"
+ },
+ {
+ "IdS": 10672,
+ "PX": "372400,372400",
+ "PY": "552000,552200",
+ "In": "KAB-C-FGN003211-2"
+ },
+ {
+ "IdS": 10673,
+ "PX": "372400,372200",
+ "PY": "552000,552000",
+ "In": "KAB-C-FGN003211-3"
+ },
+ {
+ "IdS": 10675,
+ "PX": "378450,378550",
+ "PY": "544200,544450",
+ "In": "KAB-C-FGN006300-1"
+ },
+ {
+ "IdS": 10685,
+ "PX": "380050,379800",
+ "PY": "544600,544900",
+ "In": "KAB-C-FGN006500-5"
+ },
+ {
+ "IdS": 10694,
+ "PX": "380100,379750",
+ "PY": "545400,545400",
+ "In": "KAB-C-FGN006550-6"
+ },
+ {
+ "IdS": 10698,
+ "PX": "379350,379200",
+ "PY": "545200,545500",
+ "In": "KAB-AB-FGN006570-3"
+ },
+ {
+ "IdS": 10702,
+ "PX": "379750,379750",
+ "PY": "543950,544150",
+ "In": "KAB-C-FGN006800-1"
+ },
+ {
+ "IdS": 10705,
+ "PX": "380250,380150",
+ "PY": "543750,543600",
+ "In": "KAB-C-FGN006023-7"
+ },
+ {
+ "IdS": 10708,
+ "PX": "380400,380350",
+ "PY": "543700,543550",
+ "In": "KAB-C-FGN006940-1"
+ },
+ {
+ "IdS": 10709,
+ "PX": "380830.05,380755.39",
+ "PY": "543464.21,543378.7",
+ "In": "KAB-AB-FGN006950-1"
+ },
+ {
+ "IdS": 10710,
+ "PX": "381400,381500",
+ "PY": "543250,543450",
+ "In": "KAB-C-FGN006960-1"
+ },
+ {
+ "IdS": 10714,
+ "PX": "382000,382200",
+ "PY": "543200,543200",
+ "In": "KAB-C-FGN006420-1"
+ },
+ {
+ "IdS": 10715,
+ "PX": "381000,380800",
+ "PY": "542150,542150",
+ "In": "KAB-C-FGN006430-1"
+ },
+ {
+ "IdS": 10720,
+ "PX": "379900,380000",
+ "PY": "541600,541750",
+ "In": "KAB-AB-FGN006451-1"
+ },
+ {
+ "IdS": 10721,
+ "PX": "377050,377200.01",
+ "PY": "547500,547450",
+ "In": "KAB-C-FGN006077-1"
+ },
+ {
+ "IdS": 10725,
+ "PX": "378950,378850",
+ "PY": "545000,545200",
+ "In": "KAB-C-FGN006600-1"
+ },
+ {
+ "IdS": 10726,
+ "PX": "378850,378750",
+ "PY": "545200,545400",
+ "In": "KAB-C-FGN006610-1"
+ },
+ {
+ "IdS": 10727,
+ "PX": "378750,378650.01",
+ "PY": "545400,545600",
+ "In": "KAB-C-FGN006620-1"
+ },
+ {
+ "IdS": 10730,
+ "PX": "372442.83,372615.05",
+ "PY": "556528.79,556634.89",
+ "In": "KAB-C-FGN0011922--"
+ },
+ {
+ "IdS": 10731,
+ "PX": "372442.83,372547.77",
+ "PY": "556528.79,556358.53",
+ "In": "KAB-C-FGN0011923--"
+ },
+ {
+ "IdS": 10732,
+ "PX": "373045.08,372873.83",
+ "PY": "555760.45,555863.74",
+ "In": "KAB-C-FGN001184--"
+ },
+ {
+ "IdS": 10733,
+ "PX": "372873.83,372702.6",
+ "PY": "555863.74,555967.06",
+ "In": "KAB-C-FGN0011841-1"
+ },
+ {
+ "IdS": 10734,
+ "PX": "373644.49,373473.23",
+ "PY": "555398.88,555502.18",
+ "In": "KAB-C-FGN0011800--"
+ },
+ {
+ "IdS": 10735,
+ "PX": "373473.23,373301.98",
+ "PY": "555502.18,555605.49",
+ "In": "KAB-C-FGN0011801-1"
+ },
+ {
+ "IdS": 10736,
+ "PX": "379750,379900",
+ "PY": "543950,543900",
+ "In": "KAB-C-FGN006023-1"
+ },
+ {
+ "IdS": 10738,
+ "PX": "379900,379900",
+ "PY": "543900,544100",
+ "In": "KAB-C-FGN006023-3"
+ },
+ {
+ "IdS": 10740,
+ "PX": "381100,381000",
+ "PY": "542300,542150",
+ "In": "KAB-C-FGN0060341-1"
+ },
+ {
+ "IdS": 10744,
+ "PX": "380250,380400",
+ "PY": "543750,543700",
+ "In": "KAB-C-FGN006023-6"
+ },
+ {
+ "IdS": 10745,
+ "PX": "380400,380600",
+ "PY": "543700,543600",
+ "In": "KAB-C-FGN006025-1"
+ },
+ {
+ "IdS": 10747,
+ "PX": "380600,380700",
+ "PY": "543600,543750",
+ "In": "KAB-C-FGN006025-3"
+ },
+ {
+ "IdS": 10748,
+ "PX": "368950,368850",
+ "PY": "554380,554550",
+ "In": "KAB-C-FGN0011521-1"
+ },
+ {
+ "IdS": 10749,
+ "PX": "368950,369055",
+ "PY": "554380,554210",
+ "In": "KAB-C-FGN0011522-1"
+ },
+ {
+ "IdS": 10750,
+ "PX": "371571.73,371401.47",
+ "PY": "556226.82,556121.89",
+ "In": "KAB-C-FGN0011891--"
+ },
+ {
+ "IdS": 10751,
+ "PX": "374337.75,374430.06",
+ "PY": "553838.4,553990.73",
+ "In": "KAB-AB-FGN005003-1"
+ },
+ {
+ "IdS": 10754,
+ "PX": "373609.13,373437.86",
+ "PY": "554953.06,555056.36",
+ "In": "KAB-C-FGN001560-5"
+ },
+ {
+ "IdS": 10755,
+ "PX": "372702.6,372805.91",
+ "PY": "555967.06,556138.3",
+ "In": "KAB-AB-FGN0011842-1"
+ },
+ {
+ "IdS": 10758,
+ "PX": "372444.33,372273.07",
+ "PY": "555538.93,555642.23",
+ "In": "KAB-C-FGN001552-3"
+ },
+ {
+ "IdS": 10759,
+ "PX": "372341.02,372169.77",
+ "PY": "555367.67,555470.98",
+ "In": "KAB-C-FGN001552-5"
+ },
+ {
+ "IdS": 10760,
+ "PX": "372873.83,373035",
+ "PY": "555863.74,556125",
+ "In": "KAB-C-FGN0013961-1"
+ },
+ {
+ "IdS": 10766,
+ "PX": "373473.23,373369.93",
+ "PY": "555502.18,555330.93",
+ "In": "KAB-C-FGN0011802-1"
+ },
+ {
+ "IdS": 10770,
+ "PX": "373600,373600",
+ "PY": "553200,553000",
+ "In": "KAB-C-FGN003163-1"
+ },
+ {
+ "IdS": 10771,
+ "PX": "373600,373600",
+ "PY": "552600,552400.01",
+ "In": "KAB-C-FGN003164-4"
+ },
+ {
+ "IdS": 10772,
+ "PX": "373600,373400",
+ "PY": "552600,552600",
+ "In": "KAB-C-FGN003164-5"
+ },
+ {
+ "IdS": 10778,
+ "PX": "372800,372600",
+ "PY": "551200.01,551200",
+ "In": "KAB-C-FGN0030040-1"
+ },
+ {
+ "IdS": 10779,
+ "PX": "372800,373000.01",
+ "PY": "551400,551400",
+ "In": "KAB-C-FGN0030030-1"
+ },
+ {
+ "IdS": 10780,
+ "PX": "371900,371900",
+ "PY": "552800,552600",
+ "In": "KAB-C-FGN003076-1"
+ },
+ {
+ "IdS": 10781,
+ "PX": "372200,372200",
+ "PY": "552800,552600",
+ "In": "KAB-C-FGN003074-1"
+ },
+ {
+ "IdS": 10782,
+ "PX": "372600,372600",
+ "PY": "552800,552600",
+ "In": "KAB-C-FGN003071-1"
+ },
+ {
+ "IdS": 10783,
+ "PX": "371350,371700",
+ "PY": "549250,549250",
+ "In": "KAB-C-FGN003068-1"
+ },
+ {
+ "IdS": 10785,
+ "PX": "369650,369450",
+ "PY": "551000.01,551000",
+ "In": "KAB-C-FGN0011581-1"
+ },
+ {
+ "IdS": 10786,
+ "PX": "369760,369705",
+ "PY": "552720,552740",
+ "In": "KAB-C-FGN0011621-1"
+ },
+ {
+ "IdS": 10788,
+ "PX": "379250,379800",
+ "PY": "544400,544900",
+ "In": "KAB-C-FGN0060941-1"
+ },
+ {
+ "IdS": 10791,
+ "PX": "371250,371149.99",
+ "PY": "548200,548050",
+ "In": "KAB-C-FGN003033-1"
+ },
+ {
+ "IdS": 10793,
+ "PX": "372000,372000",
+ "PY": "548300,548550",
+ "In": "KAB-C-FGN003112-1"
+ },
+ {
+ "IdS": 10794,
+ "PX": "373130.72,373045.08",
+ "PY": "555708.79,555760.45",
+ "In": "KAB-C-FGN001182-1"
+ },
+ {
+ "IdS": 10797,
+ "PX": "375390,375800",
+ "PY": "545454.99,545300",
+ "In": "KAB-C-FGN0060100-1"
+ },
+ {
+ "IdS": 10798,
+ "PX": "375800,376050",
+ "PY": "545300,545200",
+ "In": "KAB-C-FGN0060102-1"
+ },
+ {
+ "IdS": 10799,
+ "PX": "375800,375800",
+ "PY": "545300,545500",
+ "In": "KAB-C-FGN0060103-1"
+ },
+ {
+ "IdS": 10800,
+ "PX": "372445,371950",
+ "PY": "550265.02,549850",
+ "In": "KAB-C-FGN0030601-1"
+ },
+ {
+ "IdS": 10801,
+ "PX": "371950,371650",
+ "PY": "549850,549850",
+ "In": "KAB-C-FGN0030602-1"
+ },
+ {
+ "IdS": 10803,
+ "PX": "372800,372600",
+ "PY": "550799.99,550799.99",
+ "In": "KAB-C-FGN0030063-1"
+ },
+ {
+ "IdS": 10804,
+ "PX": "372800,373000",
+ "PY": "550600,550600",
+ "In": "KAB-C-FGN003170-1"
+ },
+ {
+ "IdS": 10805,
+ "PX": "372150,372250",
+ "PY": "547750,547700",
+ "In": "KAB-C-FGN003052-5"
+ },
+ {
+ "IdS": 10806,
+ "PX": "372250,372500",
+ "PY": "547700,547600",
+ "In": "KAB-C-FGN003052-6"
+ },
+ {
+ "IdS": 10807,
+ "PX": "372250,372347,372500",
+ "PY": "547700,547747.67,547600",
+ "In": "KAB-C-FGN003052-7"
+ },
+ {
+ "IdS": 10811,
+ "PX": "376600,376900",
+ "PY": "545600,545600",
+ "In": "KAB-C-FGN0060921-1"
+ },
+ {
+ "IdS": 10814,
+ "PX": "351050,351050",
+ "PY": "551050,550750",
+ "In": "KAB-C-FGN00100503-1"
+ },
+ {
+ "IdS": 10815,
+ "PX": "351050,351050",
+ "PY": "550750,550550",
+ "In": "KAB-C-FGN00100504-1"
+ },
+ {
+ "IdS": 10816,
+ "PX": "351050,351050",
+ "PY": "550550,550350",
+ "In": "KAB-C-FGN00100505-1"
+ },
+ {
+ "IdS": 10817,
+ "PX": "351050,351400",
+ "PY": "550350,550350",
+ "In": "KAB-C-FGN00100506-1"
+ },
+ {
+ "IdS": 10818,
+ "PX": "351050,351400",
+ "PY": "550750,550750",
+ "In": "KAB-C-FGN00100507-1"
+ },
+ {
+ "IdS": 10819,
+ "PX": "351050,350750",
+ "PY": "550550,550550",
+ "In": "KAB-C-FGN00100508-1"
+ },
+ {
+ "IdS": 10821,
+ "PX": "351050,351050",
+ "PY": "550350,550100",
+ "In": "KAB-C-FGN00100509-1"
+ },
+ {
+ "IdS": 10823,
+ "PX": "347600,347600",
+ "PY": "551450.01,551700",
+ "In": "KAB-C-FGN001001-3"
+ },
+ {
+ "IdS": 10824,
+ "PX": "350751.44,350720.53",
+ "PY": "552377.89,552575.5",
+ "In": "KAB-C-FGN0010041-0"
+ },
+ {
+ "IdS": 10825,
+ "PX": "351300,351300",
+ "PY": "552050,552300",
+ "In": "KAB-C-FGN00100510-1"
+ },
+ {
+ "IdS": 10827,
+ "PX": "352150,352150",
+ "PY": "552200,552400",
+ "In": "KAB-C-FGN00100701-1"
+ },
+ {
+ "IdS": 10828,
+ "PX": "353100,353147.71",
+ "PY": "552350,552182.14",
+ "In": "KAB-C-FGN001010-3"
+ },
+ {
+ "IdS": 10829,
+ "PX": "353450,353450",
+ "PY": "551600,551350",
+ "In": "KAB-C-FGN00130301-1"
+ },
+ {
+ "IdS": 10830,
+ "PX": "353450,353750",
+ "PY": "551600,551600",
+ "In": "KAB-C-FGN00130302-1"
+ },
+ {
+ "IdS": 10831,
+ "PX": "357800,357850",
+ "PY": "550200,550000",
+ "In": "KAB-C-FGN00108901-1"
+ },
+ {
+ "IdS": 10833,
+ "PX": "358100,358400",
+ "PY": "551350,551250",
+ "In": "KAB-C-FGN00131602-1"
+ },
+ {
+ "IdS": 10834,
+ "PX": "358400,358700",
+ "PY": "551250,551150",
+ "In": "KAB-C-FGN00131603-1"
+ },
+ {
+ "IdS": 10835,
+ "PX": "358700,358900",
+ "PY": "551150,551050",
+ "In": "KAB-C-FGN00131604-1"
+ },
+ {
+ "IdS": 10837,
+ "PX": "358900,358900",
+ "PY": "551050,550650",
+ "In": "KAB-C-FGN00131606-1"
+ },
+ {
+ "IdS": 10838,
+ "PX": "358900,359500",
+ "PY": "550650,550650",
+ "In": "KAB-C-FGN00131607-1"
+ },
+ {
+ "IdS": 10839,
+ "PX": "358900,358900.01",
+ "PY": "550650,550250",
+ "In": "KAB-C-FGN00131608-1"
+ },
+ {
+ "IdS": 10841,
+ "PX": "358400,358200",
+ "PY": "553800,553800",
+ "In": "KAB-C-FGN00106001-1"
+ },
+ {
+ "IdS": 10842,
+ "PX": "360200,360200",
+ "PY": "552900,553100",
+ "In": "KAB-C-FGN00103101-1"
+ },
+ {
+ "IdS": 10844,
+ "PX": "360600,360600",
+ "PY": "553100,553300",
+ "In": "KAB-C-FGN00103201-2"
+ },
+ {
+ "IdS": 10845,
+ "PX": "360600,360800",
+ "PY": "553100,553100",
+ "In": "KAB-C-FGN00103201-3"
+ },
+ {
+ "IdS": 10846,
+ "PX": "360600,360600",
+ "PY": "552900,553100",
+ "In": "KAB-C-FGN00103201-1"
+ },
+ {
+ "IdS": 10847,
+ "PX": "361200,361200",
+ "PY": "552900,553101.38",
+ "In": "KAB-C-FGN00103204-1"
+ },
+ {
+ "IdS": 10848,
+ "PX": "362200,362400",
+ "PY": "552700,552700",
+ "In": "KAB-C-FGN00119501-1"
+ },
+ {
+ "IdS": 10849,
+ "PX": "362200,362000",
+ "PY": "551600,551600",
+ "In": "KAB-C-FGN00119601-1"
+ },
+ {
+ "IdS": 10852,
+ "PX": "364850.65,364851.24",
+ "PY": "552549.39,552350.55",
+ "In": "KAB-C-FGN001323-3"
+ },
+ {
+ "IdS": 10853,
+ "PX": "364085.77,363944.36",
+ "PY": "553385.79,553527.22",
+ "In": "KAB-C-FGN00103701-1"
+ },
+ {
+ "IdS": 10854,
+ "PX": "364934.31,365075.73",
+ "PY": "553951.47,554092.9",
+ "In": "KAB-C-FGN001405-3"
+ },
+ {
+ "IdS": 10855,
+ "PX": "364580.75,364439.33",
+ "PY": "553880.76,554022.19",
+ "In": "KAB-C-FGN00103901-1"
+ },
+ {
+ "IdS": 10856,
+ "PX": "364439.33,364297.91",
+ "PY": "554022.19,554163.61",
+ "In": "KAB-C-FGN00103902-1"
+ },
+ {
+ "IdS": 10857,
+ "PX": "364297.91,364156.49",
+ "PY": "554163.61,554305.03",
+ "In": "KAB-C-FGN00103903-1"
+ },
+ {
+ "IdS": 10858,
+ "PX": "364934.31,364792.89",
+ "PY": "554234.32,554375.74",
+ "In": "KAB-C-FGN00104101-1"
+ },
+ {
+ "IdS": 10859,
+ "PX": "365358.58,365217.15",
+ "PY": "554658.58,554800",
+ "In": "KAB-C-FGN00104301-1"
+ },
+ {
+ "IdS": 10860,
+ "PX": "365217.15,365075.73",
+ "PY": "554517.16,554658.58",
+ "In": "KAB-C-FGN00104302-1"
+ },
+ {
+ "IdS": 10861,
+ "PX": "365712.13,365853.55",
+ "PY": "555012.13,554870.71",
+ "In": "KAB-C-FGN00104501-1"
+ },
+ {
+ "IdS": 10862,
+ "PX": "366350.01,366350",
+ "PY": "556500,556700",
+ "In": "KAB-C-FGN00114601-1"
+ },
+ {
+ "IdS": 10863,
+ "PX": "366350,366150",
+ "PY": "556700,556700",
+ "In": "KAB-C-FGN00114601-3"
+ },
+ {
+ "IdS": 10864,
+ "PX": "363600,364000",
+ "PY": "556100,556100",
+ "In": "KAB-C-FGN006980-1"
+ },
+ {
+ "IdS": 10865,
+ "PX": "358400,358600.01",
+ "PY": "554000,554000",
+ "In": "KAB-C-FGN00106002-1"
+ },
+ {
+ "IdS": 10866,
+ "PX": "358600.01,358800",
+ "PY": "554000,554000",
+ "In": "KAB-C-FGN00106003-1"
+ },
+ {
+ "IdS": 10867,
+ "PX": "358600.01,358800",
+ "PY": "554200,554200",
+ "In": "KAB-C-FGN00130501-1"
+ },
+ {
+ "IdS": 10868,
+ "PX": "358400,358600",
+ "PY": "554400,554400",
+ "In": "KAB-C-FGN00106201-1"
+ },
+ {
+ "IdS": 10870,
+ "PX": "358400,358600",
+ "PY": "554600,554600",
+ "In": "KAB-C-FGN00106301-1"
+ },
+ {
+ "IdS": 10871,
+ "PX": "358600,358800",
+ "PY": "554600,554600",
+ "In": "KAB-C-FGN00106302-1"
+ },
+ {
+ "IdS": 10872,
+ "PX": "358600,358599.96",
+ "PY": "554600,554801.32",
+ "In": "KAB-C-FGN00106303-1"
+ },
+ {
+ "IdS": 10873,
+ "PX": "358400,358600",
+ "PY": "555501.39,555501.39",
+ "In": "KAB-C-FGN00109501-1"
+ },
+ {
+ "IdS": 10874,
+ "PX": "358400.05,358199.99",
+ "PY": "555800.01,556001.39",
+ "In": "KAB-C-FGN00110001-1"
+ },
+ {
+ "IdS": 10875,
+ "PX": "358400,358600",
+ "PY": "556401.38,556401.38",
+ "In": "KAB-C-FGN00107101-1"
+ },
+ {
+ "IdS": 10876,
+ "PX": "358600,358800",
+ "PY": "556401.38,556401.38",
+ "In": "KAB-C-FGN00107102-1"
+ },
+ {
+ "IdS": 10877,
+ "PX": "358800,359000",
+ "PY": "556401.38,556401.38",
+ "In": "KAB-C-FGN00107103-1"
+ },
+ {
+ "IdS": 10878,
+ "PX": "358400,358400",
+ "PY": "557201.39,557401.38",
+ "In": "KAB-C-FGN001339-5"
+ },
+ {
+ "IdS": 10879,
+ "PX": "358800,358800",
+ "PY": "552900,552700",
+ "In": "KAB-C-FGN00102601-1"
+ },
+ {
+ "IdS": 10880,
+ "PX": "366350,366350",
+ "PY": "556700,556900",
+ "In": "KAB-C-FGN00114601-2"
+ },
+ {
+ "IdS": 10881,
+ "PX": "350720.53,350658.71",
+ "PY": "552575.5,552970.69",
+ "In": "KAB-C-FGN0010041-1"
+ },
+ {
+ "IdS": 10882,
+ "PX": "350658.71,350461.12",
+ "PY": "552970.69,552939.77",
+ "In": "KAB-C-FGN0010041-2"
+ },
+ {
+ "IdS": 10883,
+ "PX": "350658.71,350636.6",
+ "PY": "552970.69,553126.14",
+ "In": "KAB-C-FGN0010041-3"
+ },
+ {
+ "IdS": 10884,
+ "PX": "350461.12,350263.52",
+ "PY": "552939.77,552908.88",
+ "In": "KAB-C-FGN0010041-4"
+ },
+ {
+ "IdS": 10885,
+ "PX": "350461.12,350440",
+ "PY": "552939.77,553090",
+ "In": "KAB-C-FGN0010041-5"
+ },
+ {
+ "IdS": 10886,
+ "PX": "350263.52,350074.83",
+ "PY": "552908.88,552875",
+ "In": "KAB-C-FGN0010041-6"
+ },
+ {
+ "IdS": 10887,
+ "PX": "350263.52,350246.06",
+ "PY": "552908.88,553071.13",
+ "In": "KAB-C-FGN0010041-7"
+ },
+ {
+ "IdS": 10888,
+ "PX": "366989.87,367093.18",
+ "PY": "555208.89,555380.14",
+ "In": "KAB-C-FGN00104901-1"
+ },
+ {
+ "IdS": 10889,
+ "PX": "367093.18,366921.93",
+ "PY": "555380.14,555483.45",
+ "In": "KAB-C-FGN00104902-1"
+ },
+ {
+ "IdS": 10890,
+ "PX": "367093.18,367196.49",
+ "PY": "555380.14,555551.4",
+ "In": "KAB-C-FGN00104903-1"
+ },
+ {
+ "IdS": 10891,
+ "PX": "367196.49,367299.8",
+ "PY": "555551.4,555722.66",
+ "In": "KAB-C-FGN00104904-1"
+ },
+ {
+ "IdS": 10892,
+ "PX": "367196.49,367025.23",
+ "PY": "555551.4,555654.71",
+ "In": "KAB-C-FGN00104905-1"
+ },
+ {
+ "IdS": 10893,
+ "PX": "367025.23,366853.99",
+ "PY": "555654.71,555758.02",
+ "In": "KAB-C-FGN00104906-1"
+ },
+ {
+ "IdS": 10894,
+ "PX": "367025.23,367128.54",
+ "PY": "555654.71,555825.96",
+ "In": "KAB-C-FGN00104907-1"
+ },
+ {
+ "IdS": 10895,
+ "PX": "367128.54,367231.84",
+ "PY": "555825.96,555997.21",
+ "In": "KAB-C-FGN00104907-2"
+ },
+ {
+ "IdS": 10896,
+ "PX": "367128.54,366957.29",
+ "PY": "555825.96,555929.27",
+ "In": "KAB-C-FGN00104907-3"
+ },
+ {
+ "IdS": 10898,
+ "PX": "368650,368400",
+ "PY": "554200,554040",
+ "In": "KAB-C-FGN00105301-1"
+ },
+ {
+ "IdS": 10899,
+ "PX": "368400,368280",
+ "PY": "554040,553965",
+ "In": "KAB-C-FGN00105302-1"
+ },
+ {
+ "IdS": 10900,
+ "PX": "368280,368145",
+ "PY": "553965,553885",
+ "In": "KAB-C-FGN00105303-1"
+ },
+ {
+ "IdS": 10902,
+ "PX": "376750,376950",
+ "PY": "546800,547300",
+ "In": "KAB-C-FGN0060732-1"
+ },
+ {
+ "IdS": 10903,
+ "PX": "374000,374219.86",
+ "PY": "554450,554824.9",
+ "In": "KAB-C-FGN001202-1"
+ },
+ {
+ "IdS": 10904,
+ "PX": "374219.86,374329.51,374158.24",
+ "PY": "554824.9,554985.66,555088.96",
+ "In": "KAB-C-FGN001202-3"
+ },
+ {
+ "IdS": 10906,
+ "PX": "374219.86,373950",
+ "PY": "554824.9,554750",
+ "In": "KAB-C-FGN001202-2"
+ },
+ {
+ "IdS": 10907,
+ "PX": "372800,372800",
+ "PY": "551000,550799.99",
+ "In": "KAB-C-FGN0030061-1"
+ },
+ {
+ "IdS": 10908,
+ "PX": "372800,372800",
+ "PY": "550799.99,550600",
+ "In": "KAB-C-FGN0030062-1"
+ },
+ {
+ "IdS": 10911,
+ "PX": "351600,352150",
+ "PY": "552100,552200",
+ "In": "KAB-C-FGN00100700-1"
+ },
+ {
+ "IdS": 10912,
+ "PX": "352150,352400,352500",
+ "PY": "552200,552250,552050",
+ "In": "KAB-C-FGN00100702-1"
+ },
+ {
+ "IdS": 10913,
+ "PX": "352900,353100",
+ "PY": "552300,552350",
+ "In": "KAB-C-FGN001010-1"
+ },
+ {
+ "IdS": 10914,
+ "PX": "353100,353300",
+ "PY": "552350,552400",
+ "In": "KAB-C-FGN001010-2"
+ },
+ {
+ "IdS": 10915,
+ "PX": "358399.99,358400",
+ "PY": "553601.32,553800",
+ "In": "KAB-C-FGN0010601-1"
+ },
+ {
+ "IdS": 10916,
+ "PX": "358400,358400",
+ "PY": "553800,554000",
+ "In": "KAB-C-FGN0010602-1"
+ },
+ {
+ "IdS": 10917,
+ "PX": "362200,362200",
+ "PY": "552900,552700",
+ "In": "KAB-C-FGN0011951-1"
+ },
+ {
+ "IdS": 10918,
+ "PX": "362200,362200",
+ "PY": "552700,552300",
+ "In": "KAB-C-FGN0011952-1"
+ },
+ {
+ "IdS": 10919,
+ "PX": "362200,362200",
+ "PY": "551800,551600",
+ "In": "KAB-C-FGN0011961-1"
+ },
+ {
+ "IdS": 10920,
+ "PX": "362200,362200",
+ "PY": "551600,550900",
+ "In": "KAB-C-FGN0011962-1"
+ },
+ {
+ "IdS": 10921,
+ "PX": "364050.02,363849.99,364085.77",
+ "PY": "552949.72,553151.17,553385.79",
+ "In": "KAB-C-FGN0010371-1"
+ },
+ {
+ "IdS": 10922,
+ "PX": "364085.77,364227.2",
+ "PY": "553385.79,553527.21",
+ "In": "KAB-C-FGN0010372-1"
+ },
+ {
+ "IdS": 10923,
+ "PX": "364934.31,364792.88",
+ "PY": "553951.47,553810.06",
+ "In": "KAB-C-FGN001405-2"
+ },
+ {
+ "IdS": 10924,
+ "PX": "358400,358400",
+ "PY": "554200,554400",
+ "In": "KAB-C-FGN00106203-1"
+ },
+ {
+ "IdS": 10925,
+ "PX": "358400,358400",
+ "PY": "554400,554600",
+ "In": "KAB-C-FGN00106202-1"
+ },
+ {
+ "IdS": 10926,
+ "PX": "364849.67,364850.65",
+ "PY": "552950.03,552549.39",
+ "In": "KAB-C-FGN001323-1"
+ },
+ {
+ "IdS": 10927,
+ "PX": "364850.65,364663.59",
+ "PY": "552549.39,552549.39",
+ "In": "KAB-C-FGN001323-2"
+ },
+ {
+ "IdS": 10928,
+ "PX": "365715,365995",
+ "PY": "552750,552750",
+ "In": "KAB-C-FGN0011291-1"
+ },
+ {
+ "IdS": 10929,
+ "PX": "365995,366080,366205,366205,366205",
+ "PY": "552750,552735,552610,552605,552540",
+ "In": "KAB-C-FGN0011292-1"
+ },
+ {
+ "IdS": 10934,
+ "PX": "368650,368873.65",
+ "PY": "554200,554072.52",
+ "In": "KAB-C-FGN001054-1"
+ },
+ {
+ "IdS": 10935,
+ "PX": "368873.65,369475",
+ "PY": "554072.52,553710",
+ "In": "KAB-C-FGN00105402-1"
+ },
+ {
+ "IdS": 10936,
+ "PX": "360000,360200",
+ "PY": "552900,552900",
+ "In": "KAB-C-FGN001031-1"
+ },
+ {
+ "IdS": 10937,
+ "PX": "360200,360600",
+ "PY": "552900,552900",
+ "In": "KAB-C-FGN00103102-1"
+ },
+ {
+ "IdS": 10938,
+ "PX": "365217.15,365358.58",
+ "PY": "554517.16,554658.58",
+ "In": "KAB-C-FGN001044-1"
+ },
+ {
+ "IdS": 10939,
+ "PX": "365358.58,365500",
+ "PY": "554658.58,554800",
+ "In": "KAB-C-FGN00104402-1"
+ },
+ {
+ "IdS": 10940,
+ "PX": "358400,358400",
+ "PY": "557001.38,557201.39",
+ "In": "KAB-C-FGN001339-2"
+ },
+ {
+ "IdS": 10941,
+ "PX": "358400,358200",
+ "PY": "557201.39,557201.39",
+ "In": "KAB-C-FGN001339-4"
+ },
+ {
+ "IdS": 11225,
+ "PX": "381750,382000",
+ "PY": "543000,543000.01",
+ "In": "KAB-C-FGN0062071-1"
+ },
+ {
+ "IdS": 11426,
+ "PX": "355550,355550",
+ "PY": "552800,551650",
+ "In": "KAB-C-FGN001201-1"
+ },
+ {
+ "IdS": 11427,
+ "PX": "355550,355550",
+ "PY": "551650,551400",
+ "In": "KAB-C-FGN0012011-1"
+ },
+ {
+ "IdS": 11428,
+ "PX": "355550,355300",
+ "PY": "551650,551650",
+ "In": "KAB-C-FGN0012012-1"
+ },
+ {
+ "IdS": 11430,
+ "PX": "362800,362800",
+ "PY": "552300,552100",
+ "In": "KAB-C-FGN0012321-1"
+ },
+ {
+ "IdS": 11431,
+ "PX": "364227.2,364085.78",
+ "PY": "553527.21,553668.64",
+ "In": "KAB-C-FGN001037-1"
+ },
+ {
+ "IdS": 11433,
+ "PX": "371900,371900.01",
+ "PY": "553200,552999.99",
+ "In": "KAB-C-FGN001364-1"
+ },
+ {
+ "IdS": 11434,
+ "PX": "380900,380800",
+ "PY": "541950,541750",
+ "In": "KAB-C-FGN006036-1"
+ },
+ {
+ "IdS": 11435,
+ "PX": "380800,380450",
+ "PY": "541750,541250",
+ "In": "KAB-C-FGN0060361-1"
+ },
+ {
+ "IdS": 11536,
+ "PX": "369175,369335",
+ "PY": "553430,553080",
+ "In": "KAB-C-FGN0011551-1"
+ },
+ {
+ "IdS": 11537,
+ "PX": "369335,369650",
+ "PY": "553080,552440",
+ "In": "KAB-C-FGN0011552-1"
+ },
+ {
+ "IdS": 11541,
+ "PX": "369335,369125",
+ "PY": "553080,552970.01",
+ "In": "KAB-C-FGN0011553-1"
+ },
+ {
+ "IdS": 11563,
+ "PX": "350720.53,350522.93",
+ "PY": "552575.5,552544.59",
+ "In": "KAB-C-FGN0010041-8"
+ },
+ {
+ "IdS": 11577,
+ "PX": "356250,356670",
+ "PY": "552900.01,552535",
+ "In": "KAB-C-FGN001018-1"
+ },
+ {
+ "IdS": 11589,
+ "PX": "358800,359100",
+ "PY": "552900,552900",
+ "In": "KAB-C-FGN0010271-1"
+ },
+ {
+ "IdS": 11590,
+ "PX": "359100,359300",
+ "PY": "552900,552900",
+ "In": "KAB-C-FGN0010272-1"
+ },
+ {
+ "IdS": 11591,
+ "PX": "359100,359100",
+ "PY": "552900,553100",
+ "In": "KAB-C-FGN0010273-1"
+ },
+ {
+ "IdS": 11703,
+ "PX": "372250,372300,372500",
+ "PY": "547700,547600,547600",
+ "In": "KAB-C-FGN003052-8"
+ },
+ {
+ "IdS": 11720,
+ "PX": "376600,376600",
+ "PY": "544950,545150",
+ "In": "KAB-C-FGN006090-1"
+ },
+ {
+ "IdS": 11721,
+ "PX": "376600,376600",
+ "PY": "545150,545350",
+ "In": "KAB-C-FGN0060902-1"
+ },
+ {
+ "IdS": 200002,
+ "PX": "335040,334900",
+ "PY": "571000,571000",
+ "In": "KAB-AB-013045(A.B.)-1"
+ },
+ {
+ "IdS": 200004,
+ "PX": "336000,336000",
+ "PY": "571150,571250",
+ "In": "KAB-AB-001009-1"
+ },
+ {
+ "IdS": 200008,
+ "PX": "336700,336650",
+ "PY": "571450,571550",
+ "In": "KAB-C-001023-1"
+ },
+ {
+ "IdS": 200009,
+ "PX": "335750,335600",
+ "PY": "564900,564900",
+ "In": "KAB-AB-002010-1"
+ },
+ {
+ "IdS": 200010,
+ "PX": "339100,339100",
+ "PY": "558950,558650",
+ "In": "KAB-AB-003007-1"
+ },
+ {
+ "IdS": 200011,
+ "PX": "339100,339100",
+ "PY": "558650,558500",
+ "In": "KAB-AB-003007-2"
+ },
+ {
+ "IdS": 200012,
+ "PX": "339100,339305",
+ "PY": "558650,558650",
+ "In": "KAB-AB-003007-3"
+ },
+ {
+ "IdS": 200013,
+ "PX": "333300,333148.93",
+ "PY": "568650,568828.84",
+ "In": "KAB-AB-004004-1"
+ },
+ {
+ "IdS": 200015,
+ "PX": "333400,333000",
+ "PY": "566550,566200",
+ "In": "KAB-C-004016-1"
+ },
+ {
+ "IdS": 200017,
+ "PX": "339250,339350",
+ "PY": "571050,571050",
+ "In": "KAB-AB-007032-7"
+ },
+ {
+ "IdS": 200018,
+ "PX": "339350,339325,339325,339350",
+ "PY": "571050,571075,571150,571175",
+ "In": "KAB-AB-007032-8"
+ },
+ {
+ "IdS": 200019,
+ "PX": "339350,339375,339375,339350",
+ "PY": "571050,571075,571150,571175",
+ "In": "KAB-AB-007032-9"
+ },
+ {
+ "IdS": 200022,
+ "PX": "344450,344200",
+ "PY": "554700,554700",
+ "In": "KAB-C-422001-1"
+ },
+ {
+ "IdS": 200023,
+ "PX": "344450,344500,344800,344850",
+ "PY": "554700,554650,554650,554700",
+ "In": "KAB-C-422001-2"
+ },
+ {
+ "IdS": 200024,
+ "PX": "344850,344800,344500,344450",
+ "PY": "554700,554750,554750,554700",
+ "In": "KAB-C-422001-3"
+ },
+ {
+ "IdS": 200025,
+ "PX": "344200,344150,343950,343900",
+ "PY": "554700,554650,554650,554700",
+ "In": "KAB-C-422001-4"
+ },
+ {
+ "IdS": 200026,
+ "PX": "344200,344150,343950,343900",
+ "PY": "554700,554750,554750,554700",
+ "In": "KAB-C-422001-5"
+ },
+ {
+ "IdS": 200027,
+ "PX": "345800,345900,346000",
+ "PY": "554450,554400,554400",
+ "In": "KAB-C-008017-1"
+ },
+ {
+ "IdS": 200028,
+ "PX": "338950,338700",
+ "PY": "565850,565850",
+ "In": "KAB-AB-009025-1"
+ },
+ {
+ "IdS": 200029,
+ "PX": "345850,345715",
+ "PY": "543700,543630",
+ "In": "KAB-C-010024-1"
+ },
+ {
+ "IdS": 200030,
+ "PX": "345790,345275",
+ "PY": "562105,562500",
+ "In": "KAB-AB-011006-1"
+ },
+ {
+ "IdS": 200031,
+ "PX": "346395,346600",
+ "PY": "560105,560355",
+ "In": "KAB-AB-011008-1"
+ },
+ {
+ "IdS": 200032,
+ "PX": "347300,347475",
+ "PY": "560605,560525",
+ "In": "KAB-AB-011012-1"
+ },
+ {
+ "IdS": 200033,
+ "PX": "347450,347700",
+ "PY": "558800,558800",
+ "In": "KAB-C-011015-1"
+ },
+ {
+ "IdS": 200034,
+ "PX": "347100,347100",
+ "PY": "555600,555450",
+ "In": "KAB-C-011023-1"
+ },
+ {
+ "IdS": 200037,
+ "PX": "345700,345700.01",
+ "PY": "554365,554404.81",
+ "In": "KAB-C-011033-1"
+ },
+ {
+ "IdS": 200038,
+ "PX": "345700,345660",
+ "PY": "554365,554365",
+ "In": "KAB-C-011035-1"
+ },
+ {
+ "IdS": 200040,
+ "PX": "341550,341400",
+ "PY": "573850,574150",
+ "In": "KAB-AB-016016-1"
+ },
+ {
+ "IdS": 200042,
+ "PX": "338845.17,338900.61",
+ "PY": "577753.36,577350.73",
+ "In": "KAB-AB-021004-1"
+ },
+ {
+ "IdS": 200043,
+ "PX": "339099.6,339281.91",
+ "PY": "576650.66,575964.07",
+ "In": "KAB-AB-021006-1"
+ },
+ {
+ "IdS": 200044,
+ "PX": "340050,339800",
+ "PY": "570350,570050",
+ "In": "KAB-C-021014-1"
+ },
+ {
+ "IdS": 200045,
+ "PX": "339800,339450",
+ "PY": "570050,569800",
+ "In": "KAB-C-021016-1"
+ },
+ {
+ "IdS": 200047,
+ "PX": "341400,341200",
+ "PY": "557500,557500",
+ "In": "KAB-C-022013-1"
+ },
+ {
+ "IdS": 200048,
+ "PX": "346500.12,346800",
+ "PY": "555000,554900",
+ "In": "KAB-C-022021-1"
+ },
+ {
+ "IdS": 200049,
+ "PX": "340650,340650",
+ "PY": "558950,558675",
+ "In": "KAB-C-022026-1"
+ },
+ {
+ "IdS": 200050,
+ "PX": "346100,346100,346200",
+ "PY": "549450,549350,549350",
+ "In": "KAB-C-023007-1"
+ },
+ {
+ "IdS": 200051,
+ "PX": "347450,347850",
+ "PY": "552600,552600",
+ "In": "KAB-C-023009-1"
+ },
+ {
+ "IdS": 200052,
+ "PX": "346825,346780",
+ "PY": "550955,551150",
+ "In": "KAB-C-026001-1"
+ },
+ {
+ "IdS": 200053,
+ "PX": "349300,349450",
+ "PY": "551550,551550",
+ "In": "KAB-C-026005-1"
+ },
+ {
+ "IdS": 200054,
+ "PX": "362250,362150",
+ "PY": "550450,550250",
+ "In": "KAB-C-026018-1"
+ },
+ {
+ "IdS": 200055,
+ "PX": "362250,362600",
+ "PY": "550450,550300",
+ "In": "KAB-C-026019-1"
+ },
+ {
+ "IdS": 200056,
+ "PX": "372445,372700",
+ "PY": "550265.02,550400",
+ "In": "KAB-C-026039-1"
+ },
+ {
+ "IdS": 200057,
+ "PX": "375770,375840",
+ "PY": "550575,550575",
+ "In": "KAB-AB-026043-1"
+ },
+ {
+ "IdS": 200058,
+ "PX": "375350,375650",
+ "PY": "550600,550600",
+ "In": "KAB-C-026087-1"
+ },
+ {
+ "IdS": 200061,
+ "PX": "375650,375150",
+ "PY": "550600,551350",
+ "In": "KAB-C-026044-4"
+ },
+ {
+ "IdS": 200063,
+ "PX": "374300,373904.4",
+ "PY": "552450,552994.91",
+ "In": "KAB-C-026047-1"
+ },
+ {
+ "IdS": 200064,
+ "PX": "373904.4,373600",
+ "PY": "552994.91,553400",
+ "In": "KAB-C-026048-1"
+ },
+ {
+ "IdS": 200065,
+ "PX": "373600,373803.78",
+ "PY": "553400,553697.49",
+ "In": "KAB-C-026049-1"
+ },
+ {
+ "IdS": 200066,
+ "PX": "373803.78,374180.5",
+ "PY": "553697.49,554341.48",
+ "In": "KAB-C-026054-1"
+ },
+ {
+ "IdS": 200067,
+ "PX": "374180.5,374300",
+ "PY": "554341.48,554550",
+ "In": "KAB-C-026054-2"
+ },
+ {
+ "IdS": 200068,
+ "PX": "374180.5,374000",
+ "PY": "554341.48,554450",
+ "In": "KAB-C-026054-3"
+ },
+ {
+ "IdS": 200070,
+ "PX": "374300,373950",
+ "PY": "554550,554750",
+ "In": "KAB-C-026054-5"
+ },
+ {
+ "IdS": 200071,
+ "PX": "374200,374300,374050",
+ "PY": "555350,555500,555650",
+ "In": "KAB-AB-026050-6"
+ },
+ {
+ "IdS": 200072,
+ "PX": "374200,374150,373900,373950",
+ "PY": "555350,555300,555450,555500",
+ "In": "KAB-AB-026050-7"
+ },
+ {
+ "IdS": 200073,
+ "PX": "374200,373950",
+ "PY": "555350,555500",
+ "In": "KAB-AB-026050-8"
+ },
+ {
+ "IdS": 200074,
+ "PX": "371200,371200",
+ "PY": "534865,534100",
+ "In": "KAB-AB-026069-1"
+ },
+ {
+ "IdS": 200075,
+ "PX": "371600.43,371295",
+ "PY": "534899.87,534900",
+ "In": "KAB-C-026028-1"
+ },
+ {
+ "IdS": 200077,
+ "PX": "373550,371600.43",
+ "PY": "534050,534899.87",
+ "In": "KAB-C-026072-3"
+ },
+ {
+ "IdS": 200078,
+ "PX": "373950,373823.65,373623.65,373550",
+ "PY": "534050,533963.79,533963.45,534050",
+ "In": "KAB-C-026072-4"
+ },
+ {
+ "IdS": 200079,
+ "PX": "373950,373550",
+ "PY": "534050,534050",
+ "In": "KAB-C-026072-5"
+ },
+ {
+ "IdS": 200080,
+ "PX": "374350,374223.65,374023.65,373950",
+ "PY": "534050,533964.47,533964.13,534050",
+ "In": "KAB-C-026073-1"
+ },
+ {
+ "IdS": 200081,
+ "PX": "374350,373950",
+ "PY": "534050,534050",
+ "In": "KAB-C-026073-2"
+ },
+ {
+ "IdS": 200082,
+ "PX": "375450,374550,374350",
+ "PY": "533850,533850,534050",
+ "In": "KAB-C-026073-3"
+ },
+ {
+ "IdS": 200083,
+ "PX": "375450,375450",
+ "PY": "534050,533850",
+ "In": "KAB-C-026073-4"
+ },
+ {
+ "IdS": 200084,
+ "PX": "375450,375500,375500,375450",
+ "PY": "534050,534000,533900,533850",
+ "In": "KAB-C-026073-5"
+ },
+ {
+ "IdS": 200085,
+ "PX": "375150,375450",
+ "PY": "534050,534050",
+ "In": "KAB-C-026074-1"
+ },
+ {
+ "IdS": 200089,
+ "PX": "341050,341300",
+ "PY": "568900,569150",
+ "In": "KAB-C-028001-1"
+ },
+ {
+ "IdS": 200090,
+ "PX": "375150,375150",
+ "PY": "534050,533700",
+ "In": "KAB-C-039001-1"
+ },
+ {
+ "IdS": 200091,
+ "PX": "375150,375150",
+ "PY": "533450,533700",
+ "In": "KAB-C-039002-1"
+ },
+ {
+ "IdS": 200092,
+ "PX": "375150,375100,375100,375150",
+ "PY": "533450,533500,533650,533700",
+ "In": "KAB-C-039002-2"
+ },
+ {
+ "IdS": 200093,
+ "PX": "375150,375150",
+ "PY": "533150,533450",
+ "In": "KAB-C-039002-3"
+ },
+ {
+ "IdS": 200094,
+ "PX": "375150,375150",
+ "PY": "532950,533150",
+ "In": "KAB-C-039002-4"
+ },
+ {
+ "IdS": 200095,
+ "PX": "375150,375200,375200,375150",
+ "PY": "532950,533000,533100,533150",
+ "In": "KAB-C-039002-5"
+ },
+ {
+ "IdS": 200096,
+ "PX": "375150,375100,375100,375150",
+ "PY": "532950,533000,533100,533150",
+ "In": "KAB-C-039002-6"
+ },
+ {
+ "IdS": 200097,
+ "PX": "375150,375200,375200,375150",
+ "PY": "533450,533500,533650,533700",
+ "In": "KAB-C-039002-7"
+ },
+ {
+ "IdS": 200098,
+ "PX": "375300,375300",
+ "PY": "531500,531700",
+ "In": "KAB-C-039004-1"
+ },
+ {
+ "IdS": 200099,
+ "PX": "375300,375350,375350,375300",
+ "PY": "531500,531550,531650,531700",
+ "In": "KAB-C-039004-2"
+ },
+ {
+ "IdS": 200100,
+ "PX": "375300,375250,375250,375300",
+ "PY": "531500,531550,531650,531700",
+ "In": "KAB-C-039004-3"
+ },
+ {
+ "IdS": 200101,
+ "PX": "375300,375300",
+ "PY": "531400,531500",
+ "In": "KAB-C-039004-4"
+ },
+ {
+ "IdS": 200102,
+ "PX": "375300,375300",
+ "PY": "531200,531400",
+ "In": "KAB-C-039004-5"
+ },
+ {
+ "IdS": 200103,
+ "PX": "375300,375250,375250,375300",
+ "PY": "531200,531250,531350,531400",
+ "In": "KAB-C-039004-6"
+ },
+ {
+ "IdS": 200104,
+ "PX": "375300,375350,375350,375300",
+ "PY": "531200,531250,531350,531400",
+ "In": "KAB-C-039004-7"
+ },
+ {
+ "IdS": 200105,
+ "PX": "348950,348990",
+ "PY": "555150,555045",
+ "In": "KAB-C-F042001-1"
+ },
+ {
+ "IdS": 200106,
+ "PX": "348950,348965,348995,348990",
+ "PY": "555150,555145,555065,555045",
+ "In": "KAB-C-F042001-2"
+ },
+ {
+ "IdS": 200107,
+ "PX": "348990,349240",
+ "PY": "555045,554445",
+ "In": "KAB-C-F042001-3"
+ },
+ {
+ "IdS": 200108,
+ "PX": "349240,349265,349305,349300",
+ "PY": "554445,554435,554335,554300",
+ "In": "KAB-C-F042001-4"
+ },
+ {
+ "IdS": 200109,
+ "PX": "349240,349300",
+ "PY": "554445,554300",
+ "In": "KAB-C-F042001-5"
+ },
+ {
+ "IdS": 200110,
+ "PX": "349750,349850,349950,349950",
+ "PY": "555550,555550,555600,555650",
+ "In": "KAB-C-042005-1"
+ },
+ {
+ "IdS": 200111,
+ "PX": "349750,349950",
+ "PY": "555550,555650",
+ "In": "KAB-C-042005-2"
+ },
+ {
+ "IdS": 200112,
+ "PX": "349950,350100",
+ "PY": "555650,555700",
+ "In": "KAB-C-042005-3"
+ },
+ {
+ "IdS": 200113,
+ "PX": "350100,350200,350300,350300",
+ "PY": "555700,555700,555750,555800",
+ "In": "KAB-C-042005-9"
+ },
+ {
+ "IdS": 200114,
+ "PX": "350100,350300",
+ "PY": "555700,555800",
+ "In": "KAB-C-042005-8"
+ },
+ {
+ "IdS": 200115,
+ "PX": "352550,352800",
+ "PY": "556850,556950",
+ "In": "KAB-C-042010-1"
+ },
+ {
+ "IdS": 200116,
+ "PX": "352800,352900",
+ "PY": "556950,556750",
+ "In": "KAB-C-042011-1"
+ },
+ {
+ "IdS": 200117,
+ "PX": "352900,352950,353000",
+ "PY": "556750,556550,556550",
+ "In": "KAB-C-042011-4"
+ },
+ {
+ "IdS": 200118,
+ "PX": "352900,352950,353000",
+ "PY": "556750,556750,556550",
+ "In": "KAB-C-042011-5"
+ },
+ {
+ "IdS": 200119,
+ "PX": "352800,352900",
+ "PY": "556950,557000",
+ "In": "KAB-C-042012-1"
+ },
+ {
+ "IdS": 200122,
+ "PX": "356750,356850",
+ "PY": "563450,563400",
+ "In": "KAB-C-042026-1"
+ },
+ {
+ "IdS": 200123,
+ "PX": "355600,355450",
+ "PY": "563200,563400",
+ "In": "KAB-C-042029-1"
+ },
+ {
+ "IdS": 200124,
+ "PX": "353900,353750",
+ "PY": "568500,568600",
+ "In": "KAB-C-042044-1"
+ },
+ {
+ "IdS": 200125,
+ "PX": "353750,353400",
+ "PY": "568600,568900",
+ "In": "KAB-C-042044-2"
+ },
+ {
+ "IdS": 200126,
+ "PX": "353750,353750,353850,353900",
+ "PY": "568600,568650,568750,568750",
+ "In": "KAB-C-042044-3"
+ },
+ {
+ "IdS": 200127,
+ "PX": "353750,353800,353900,353900",
+ "PY": "568600,568600,568700,568750",
+ "In": "KAB-C-042044-4"
+ },
+ {
+ "IdS": 200130,
+ "PX": "353900,354000",
+ "PY": "568750,568850",
+ "In": "KAB-C-042045-1"
+ },
+ {
+ "IdS": 200131,
+ "PX": "356800,356700",
+ "PY": "568100,568300",
+ "In": "KAB-C-043004-1"
+ },
+ {
+ "IdS": 200132,
+ "PX": "330300,330600",
+ "PY": "563700,563250",
+ "In": "KAB-C-050002-1"
+ },
+ {
+ "IdS": 200133,
+ "PX": "336249.93,336051.62",
+ "PY": "554899.89,554795.75",
+ "In": "KAB-C-050017-1"
+ },
+ {
+ "IdS": 200135,
+ "PX": "344800,344620",
+ "PY": "550150,550315",
+ "In": "KAB-C-051030-1"
+ },
+ {
+ "IdS": 200137,
+ "PX": "337425,337310",
+ "PY": "544180,544015",
+ "In": "KAB-AB-051044-1"
+ },
+ {
+ "IdS": 200138,
+ "PX": "345000,344800",
+ "PY": "550150,550150",
+ "In": "KAB-C-051901-1"
+ },
+ {
+ "IdS": 200139,
+ "PX": "344800,343335",
+ "PY": "550150,549530",
+ "In": "KAB-C-051902-1"
+ },
+ {
+ "IdS": 200140,
+ "PX": "341865,340595",
+ "PY": "548890,548310",
+ "In": "KAB-C-051904-1"
+ },
+ {
+ "IdS": 200141,
+ "PX": "340595,339300",
+ "PY": "548310,547700",
+ "In": "KAB-C-051905-1"
+ },
+ {
+ "IdS": 200142,
+ "PX": "339300,339425,339550,339550",
+ "PY": "547700,547700,547440,547200",
+ "In": "KAB-C-051906-1"
+ },
+ {
+ "IdS": 200143,
+ "PX": "339550,339627.49,339300",
+ "PY": "547200,547084.67,546525",
+ "In": "KAB-C-051907-1"
+ },
+ {
+ "IdS": 200148,
+ "PX": "386050,385100",
+ "PY": "538500,539050",
+ "In": "KAB-C-052001-1"
+ },
+ {
+ "IdS": 200149,
+ "PX": "379100,378950",
+ "PY": "542500,542300",
+ "In": "KAB-C-052009-1"
+ },
+ {
+ "IdS": 200150,
+ "PX": "377550,377600,377700,377650",
+ "PY": "543400,543400,543550,543550",
+ "In": "KAB-C-052012-1"
+ },
+ {
+ "IdS": 200151,
+ "PX": "377550,377650",
+ "PY": "543400,543550",
+ "In": "KAB-C-052012-2"
+ },
+ {
+ "IdS": 200152,
+ "PX": "377650,377750",
+ "PY": "543550,543700",
+ "In": "KAB-C-052012-3"
+ },
+ {
+ "IdS": 200153,
+ "PX": "377750,377900",
+ "PY": "543700,543950",
+ "In": "KAB-C-052012-4"
+ },
+ {
+ "IdS": 200154,
+ "PX": "377750,377800,377950,377900",
+ "PY": "543700,543700,543950,543950",
+ "In": "KAB-C-052012-5"
+ },
+ {
+ "IdS": 200155,
+ "PX": "372800,372700",
+ "PY": "546100,545950",
+ "In": "KAB-C-052018-1"
+ },
+ {
+ "IdS": 200156,
+ "PX": "372550,372700",
+ "PY": "545700,545950",
+ "In": "KAB-C-052019-1"
+ },
+ {
+ "IdS": 200157,
+ "PX": "372550,372545,372645,372700",
+ "PY": "545700,545750,545920,545950",
+ "In": "KAB-C-052019-2"
+ },
+ {
+ "IdS": 200158,
+ "PX": "372350,372550",
+ "PY": "545300,545700",
+ "In": "KAB-C-052019-3"
+ },
+ {
+ "IdS": 200159,
+ "PX": "372295,372350",
+ "PY": "545200,545300",
+ "In": "KAB-C-052019-4"
+ },
+ {
+ "IdS": 200160,
+ "PX": "372295,372290,372330,372350",
+ "PY": "545200,545225,545295,545300",
+ "In": "KAB-C-052019-5"
+ },
+ {
+ "IdS": 200161,
+ "PX": "372450,372300",
+ "PY": "546300,546400",
+ "In": "KAB-C-052021-1"
+ },
+ {
+ "IdS": 200163,
+ "PX": "372500,372350",
+ "PY": "547600,547300",
+ "In": "KAB-AB-052024-1"
+ },
+ {
+ "IdS": 200165,
+ "PX": "339470,339470",
+ "PY": "572660,572915",
+ "In": "KAB-AB-064004-1"
+ },
+ {
+ "IdS": 200166,
+ "PX": "337750,337750",
+ "PY": "570250,570350",
+ "In": "KAB-C-064010-1"
+ },
+ {
+ "IdS": 200167,
+ "PX": "337750,337500",
+ "PY": "570350,570350",
+ "In": "KAB-C-064010-2"
+ },
+ {
+ "IdS": 200168,
+ "PX": "337750,337750",
+ "PY": "570350,570450",
+ "In": "KAB-C-064010-3"
+ },
+ {
+ "IdS": 200169,
+ "PX": "337750,337750",
+ "PY": "570150,570250",
+ "In": "KAB-C-064010-4"
+ },
+ {
+ "IdS": 200170,
+ "PX": "337550,337750",
+ "PY": "570250,570250",
+ "In": "KAB-C-064010-5"
+ },
+ {
+ "IdS": 200171,
+ "PX": "336050,336000,336000,336050",
+ "PY": "569400,569350,569200,569150",
+ "In": "KAB-C-064014-1"
+ },
+ {
+ "IdS": 200172,
+ "PX": "336050,336100,336100,336050",
+ "PY": "569400,569350,569200,569150",
+ "In": "KAB-C-064015-1"
+ },
+ {
+ "IdS": 200173,
+ "PX": "346750,346750",
+ "PY": "543500,543300",
+ "In": "KAB-C-092001-1"
+ },
+ {
+ "IdS": 200174,
+ "PX": "346750,347000",
+ "PY": "543300,543300",
+ "In": "KAB-C-092001-2"
+ },
+ {
+ "IdS": 200175,
+ "PX": "346750,346500",
+ "PY": "543300,543300",
+ "In": "KAB-C-092001-3"
+ },
+ {
+ "IdS": 200176,
+ "PX": "346500,346300",
+ "PY": "543300,543300",
+ "In": "KAB-C-092002-1"
+ },
+ {
+ "IdS": 200178,
+ "PX": "335524.88,335600",
+ "PY": "565200.4,565200",
+ "In": "KAB-AB-200001-1"
+ },
+ {
+ "IdS": 200179,
+ "PX": "332250,331915",
+ "PY": "569550,569430",
+ "In": "KAB-C-200005-1"
+ },
+ {
+ "IdS": 200180,
+ "PX": "334200,334450,334450",
+ "PY": "566200,566200,566350",
+ "In": "KAB-C-200012-1"
+ },
+ {
+ "IdS": 200181,
+ "PX": "334950,334950",
+ "PY": "566700,566850",
+ "In": "KAB-C-200013-1"
+ },
+ {
+ "IdS": 200182,
+ "PX": "334950,335000,335000,334950",
+ "PY": "566400,566350,566300,566250",
+ "In": "KAB-C-200014(RES.)-1"
+ },
+ {
+ "IdS": 200183,
+ "PX": "334950,334900,334900,334950",
+ "PY": "566400,566350,566300,566250",
+ "In": "KAB-C-200015-1"
+ },
+ {
+ "IdS": 200184,
+ "PX": "334800,334700",
+ "PY": "569600,569600",
+ "In": "KAB-C-202012-1"
+ },
+ {
+ "IdS": 200185,
+ "PX": "334300,334300",
+ "PY": "569100,569800",
+ "In": "KAB-C-202013-1"
+ },
+ {
+ "IdS": 200186,
+ "PX": "334950,335350",
+ "PY": "569550,569550",
+ "In": "KAB-C-202016-1"
+ },
+ {
+ "IdS": 200187,
+ "PX": "335350,335300,335300,335350",
+ "PY": "569550,569500,569450,569400",
+ "In": "KAB-C-202016-2"
+ },
+ {
+ "IdS": 200188,
+ "PX": "335350,335400,335400,335350",
+ "PY": "569550,569500,569450,569400",
+ "In": "KAB-C-202016-3"
+ },
+ {
+ "IdS": 200189,
+ "PX": "334800,334950,334950",
+ "PY": "569600,569600,569550",
+ "In": "KAB-C-202016-4"
+ },
+ {
+ "IdS": 200190,
+ "PX": "334800,334850,334950",
+ "PY": "569600,569550,569550",
+ "In": "KAB-C-202016-5"
+ },
+ {
+ "IdS": 200192,
+ "PX": "339300,339309.9,339310.02,339299.92",
+ "PY": "567450,567440,567404.94,567394.84",
+ "In": "KAB-AB-409002-1"
+ },
+ {
+ "IdS": 200193,
+ "PX": "339300,339290.07,339290.07,339299.92",
+ "PY": "567450,567439.98,567405.16,567394.84",
+ "In": "KAB-C-409002-2"
+ },
+ {
+ "IdS": 200194,
+ "PX": "339299.92,339300",
+ "PY": "567394.84,566300",
+ "In": "KAB-C-409002-3"
+ },
+ {
+ "IdS": 200203,
+ "PX": "339990.01,340035,340045",
+ "PY": "565695,565695,565630",
+ "In": "KAB-C-409005-7"
+ },
+ {
+ "IdS": 200204,
+ "PX": "339990.01,340045",
+ "PY": "565695,565630",
+ "In": "KAB-AB-409005-8"
+ },
+ {
+ "IdS": 200205,
+ "PX": "367055,366450",
+ "PY": "549220,549100",
+ "In": "KAB-C-851002-1"
+ },
+ {
+ "IdS": 200206,
+ "PX": "366450,366000,365750",
+ "PY": "549100,549100,548450",
+ "In": "KAB-C-851003-1"
+ },
+ {
+ "IdS": 200207,
+ "PX": "365750,365650",
+ "PY": "548450,548200",
+ "In": "KAB-C-851004-1"
+ },
+ {
+ "IdS": 200208,
+ "PX": "365650,365550",
+ "PY": "548200,547950",
+ "In": "KAB-C-851005-1"
+ },
+ {
+ "IdS": 200209,
+ "PX": "336450,337249.38",
+ "PY": "563550,563549.22",
+ "In": "KAB-C-853002-1"
+ },
+ {
+ "IdS": 200210,
+ "PX": "337249.89,337311.21",
+ "PY": "563244.76,563010.22",
+ "In": "KAB-C-853004-1"
+ },
+ {
+ "IdS": 200211,
+ "PX": "336600,336500",
+ "PY": "565350,565350",
+ "In": "KAB-C-028006-1"
+ },
+ {
+ "IdS": 200214,
+ "PX": "337750,337750",
+ "PY": "570450,570600",
+ "In": "KAB-C-064017-1"
+ },
+ {
+ "IdS": 200215,
+ "PX": "337750,337750",
+ "PY": "570600,570800",
+ "In": "KAB-C-064018-1"
+ },
+ {
+ "IdS": 200216,
+ "PX": "337500,337750",
+ "PY": "570450,570450",
+ "In": "KAB-C-064019-1"
+ },
+ {
+ "IdS": 200217,
+ "PX": "337500,337500",
+ "PY": "570450,570350",
+ "In": "KAB-C-064019-2"
+ },
+ {
+ "IdS": 200218,
+ "PX": "337500,337500",
+ "PY": "570600,570450",
+ "In": "KAB-C-064019-3"
+ },
+ {
+ "IdS": 200219,
+ "PX": "337549.68,337550,337550,337500",
+ "PY": "570799.36,570750,570650,570600",
+ "In": "KAB-C-064019-4"
+ },
+ {
+ "IdS": 200220,
+ "PX": "337500,337450,337450,337500",
+ "PY": "570800,570750,570650,570600",
+ "In": "KAB-C-064019-5"
+ },
+ {
+ "IdS": 200223,
+ "PX": "372050,372050",
+ "PY": "550650,550800",
+ "In": "KAB-C-026037-1"
+ },
+ {
+ "IdS": 200227,
+ "PX": "338000,338100,338300",
+ "PY": "581350,581350,581100",
+ "In": "KAB-C-021020-4"
+ },
+ {
+ "IdS": 200228,
+ "PX": "338000,338000,338300",
+ "PY": "581350,581250,581100",
+ "In": "KAB-C-021020-5"
+ },
+ {
+ "IdS": 200229,
+ "PX": "337700.84,338150,338300",
+ "PY": "581599.61,581600,581100",
+ "In": "KAB-C-021021-1"
+ },
+ {
+ "IdS": 200230,
+ "PX": "337700.84,337700.3,338300,338300",
+ "PY": "581599.61,581750.68,581750,581100",
+ "In": "KAB-C-021022-1"
+ },
+ {
+ "IdS": 200231,
+ "PX": "339450,339450",
+ "PY": "569800,570050",
+ "In": "KAB-C-021023-1"
+ },
+ {
+ "IdS": 200232,
+ "PX": "341700,341700",
+ "PY": "527300,527150",
+ "In": "KAB-C-050065-1"
+ },
+ {
+ "IdS": 200233,
+ "PX": "346825,346855,346840,346780",
+ "PY": "550955,551035,551125,551150",
+ "In": "KAB-C-026078-1"
+ },
+ {
+ "IdS": 200234,
+ "PX": "375350,375250,375050,375050",
+ "PY": "550600,550650,550650,550550",
+ "In": "KAB-C-026075-1"
+ },
+ {
+ "IdS": 200235,
+ "PX": "375350,375250,375050",
+ "PY": "550600,550550,550550",
+ "In": "KAB-C-026079-1"
+ },
+ {
+ "IdS": 200238,
+ "PX": "338000,338000",
+ "PY": "570920,571050",
+ "In": "KAB-AB-009023-1"
+ },
+ {
+ "IdS": 200321,
+ "PX": "337750,337415",
+ "PY": "566795,567540",
+ "In": "KAB-C-009026-1"
+ },
+ {
+ "IdS": 200322,
+ "PX": "344580,344580",
+ "PY": "555290,555180",
+ "In": "KAB-C-008014-1"
+ },
+ {
+ "IdS": 200324,
+ "PX": "367410,367055",
+ "PY": "549565,549220",
+ "In": "KAB-C-851006-1"
+ },
+ {
+ "IdS": 200328,
+ "PX": "334450,334450",
+ "PY": "571150,571051.37",
+ "In": "KAB-C-013022-1"
+ },
+ {
+ "IdS": 200350,
+ "PX": "338502.56,338350",
+ "PY": "575297.52,575200",
+ "In": "KAB-C-063044-1"
+ },
+ {
+ "IdS": 200367,
+ "PX": "346250,346270,346755,346775",
+ "PY": "551950,551935,551935,551950",
+ "In": "KAB-C-010032-1"
+ },
+ {
+ "IdS": 200368,
+ "PX": "346250,346775",
+ "PY": "551950,551950",
+ "In": "KAB-C-010031-1"
+ },
+ {
+ "IdS": 200381,
+ "PX": "338743.53,338831.96",
+ "PY": "571298.99,571252.31",
+ "In": "KAB-C-064006-3"
+ },
+ {
+ "IdS": 200383,
+ "PX": "338510.1,338598.53",
+ "PY": "570856.83,570810.14",
+ "In": "KAB-C-064006-5"
+ },
+ {
+ "IdS": 200390,
+ "PX": "369950,369950",
+ "PY": "549950,550500",
+ "In": "KAB-C-026081-1"
+ },
+ {
+ "IdS": 200391,
+ "PX": "369950,369950",
+ "PY": "550500,550750",
+ "In": "KAB-C-026082-1"
+ },
+ {
+ "IdS": 200428,
+ "PX": "347430,347425,347460,347475",
+ "PY": "554415,554400,554305,554300",
+ "In": "KAB-C-042046-1"
+ },
+ {
+ "IdS": 200429,
+ "PX": "347430,347475",
+ "PY": "554415,554300",
+ "In": "KAB-C-042047-1"
+ },
+ {
+ "IdS": 200493,
+ "PX": "338150,338100",
+ "PY": "580150,580350",
+ "In": "KAB-C-021019-1"
+ },
+ {
+ "IdS": 200499,
+ "PX": "338200,338150",
+ "PY": "579950,580150",
+ "In": "KAB-C-021018-2"
+ },
+ {
+ "IdS": 200543,
+ "PX": "338450,337150",
+ "PY": "579050,578300",
+ "In": "KAB-C-021015-1"
+ },
+ {
+ "IdS": 200687,
+ "PX": "340100,340300",
+ "PY": "570200,570200",
+ "In": "KAB-C-007029-3"
+ },
+ {
+ "IdS": 200726,
+ "PX": "339450,339250",
+ "PY": "569800,569650",
+ "In": "KAB-C-021017-1"
+ },
+ {
+ "IdS": 200727,
+ "PX": "339250,339050",
+ "PY": "569650,569650",
+ "In": "KAB-C-021017-2"
+ },
+ {
+ "IdS": 200728,
+ "PX": "339050,338850",
+ "PY": "569650,569650",
+ "In": "KAB-C-021017-3"
+ },
+ {
+ "IdS": 200729,
+ "PX": "339250,339250",
+ "PY": "569650,569450",
+ "In": "KAB-C-021017-4"
+ },
+ {
+ "IdS": 200730,
+ "PX": "339050,339050",
+ "PY": "569650,569800",
+ "In": "KAB-C-021017-5"
+ },
+ {
+ "IdS": 200740,
+ "PX": "346350,346350",
+ "PY": "549200,549000",
+ "In": "KAB-AB-010014-1"
+ },
+ {
+ "IdS": 200744,
+ "PX": "349600,350847.22,351700",
+ "PY": "581300,580548,580550",
+ "In": "KAB-C-F024005-1"
+ },
+ {
+ "IdS": 200745,
+ "PX": "351700,351700,353700",
+ "PY": "580550,579650,579950",
+ "In": "KAB-C-F024006-1"
+ },
+ {
+ "IdS": 200758,
+ "PX": "353700,354600",
+ "PY": "579950,579950",
+ "In": "KAB-C-F024007-1"
+ },
+ {
+ "IdS": 200759,
+ "PX": "354600,355500",
+ "PY": "579950,580500",
+ "In": "KAB-C-F024008-1"
+ },
+ {
+ "IdS": 200761,
+ "PX": "348150,348065,348150",
+ "PY": "581895,581895,581700",
+ "In": "KAB-C-024003-1"
+ },
+ {
+ "IdS": 200762,
+ "PX": "348150,348235,348150",
+ "PY": "581700,581895,581895",
+ "In": "KAB-C-066013-1"
+ },
+ {
+ "IdS": 200763,
+ "PX": "352550,352500,352450",
+ "PY": "556850,556850,557050",
+ "In": "KAB-C-042009-1"
+ },
+ {
+ "IdS": 200764,
+ "PX": "352450,352350",
+ "PY": "557050,557350",
+ "In": "KAB-C-042009-2"
+ },
+ {
+ "IdS": 200765,
+ "PX": "352550,352500,352450",
+ "PY": "556850,557050,557050",
+ "In": "KAB-C-042009-3"
+ },
+ {
+ "IdS": 200766,
+ "PX": "352350,352300,352250",
+ "PY": "557350,557650,557650",
+ "In": "KAB-C-042009-4"
+ },
+ {
+ "IdS": 200767,
+ "PX": "352350,352300,352250",
+ "PY": "557350,557350,557650",
+ "In": "KAB-C-042009-5"
+ },
+ {
+ "IdS": 200768,
+ "PX": "338195,338255",
+ "PY": "589865,589795",
+ "In": "KAB-C-F063039-1"
+ },
+ {
+ "IdS": 200772,
+ "PX": "337815.55,337139.75",
+ "PY": "587920.14,585205.6",
+ "In": "KAB-C-F063041-1"
+ },
+ {
+ "IdS": 200773,
+ "PX": "338255,337815.55",
+ "PY": "589795,587920.14",
+ "In": "KAB-C-F063040-1"
+ },
+ {
+ "IdS": 200774,
+ "PX": "337139.75,336555.6",
+ "PY": "585205.6,582875.27",
+ "In": "KAB-C-F063042-1"
+ },
+ {
+ "IdS": 200775,
+ "PX": "336555.6,337700.84",
+ "PY": "582875.27,581599.61",
+ "In": "KAB-C-F063043-1"
+ },
+ {
+ "IdS": 200780,
+ "PX": "335500,335500",
+ "PY": "569700,569500",
+ "In": "KAB-AB-013005-13"
+ },
+ {
+ "IdS": 200781,
+ "PX": "335600,335500",
+ "PY": "569700,569700",
+ "In": "KAB-AB-013005-2"
+ },
+ {
+ "IdS": 200784,
+ "PX": "335600,335751.96",
+ "PY": "569700,569700.12",
+ "In": "KAB-AB-013005-5"
+ },
+ {
+ "IdS": 200788,
+ "PX": "335600,335700.88",
+ "PY": "569950,569950",
+ "In": "KAB-AB-013005-9"
+ },
+ {
+ "IdS": 200791,
+ "PX": "346775,346795,347135,347150",
+ "PY": "551950,551965,551965,551950",
+ "In": "KAB-C-010034-1"
+ },
+ {
+ "IdS": 200821,
+ "PX": "350125,349985",
+ "PY": "580555,580375",
+ "In": "KAB-C-066007-1"
+ },
+ {
+ "IdS": 200822,
+ "PX": "338600,338600",
+ "PY": "558950,558850",
+ "In": "KAB-C-003023-2"
+ },
+ {
+ "IdS": 200823,
+ "PX": "338600,338600",
+ "PY": "558950,559200",
+ "In": "KAB-C-003022-1"
+ },
+ {
+ "IdS": 200852,
+ "PX": "336000,336450",
+ "PY": "563550,563550",
+ "In": "KAB-C-853001-1"
+ },
+ {
+ "IdS": 200853,
+ "PX": "338649.28,338845.17",
+ "PY": "578200.38,577753.36",
+ "In": "KAB-AB-021003-1"
+ },
+ {
+ "IdS": 200882,
+ "PX": "334450,334090",
+ "PY": "571150,571450",
+ "In": "KAB-C-013023-1"
+ },
+ {
+ "IdS": 200883,
+ "PX": "334090,334090",
+ "PY": "571450,571175",
+ "In": "KAB-C-013002-1"
+ },
+ {
+ "IdS": 200979,
+ "PX": "341250,341399.94,341280",
+ "PY": "559500,559399.98,559330",
+ "In": "KAB-C-853007-1"
+ },
+ {
+ "IdS": 200980,
+ "PX": "336923.73,336850",
+ "PY": "570450.33,570450",
+ "In": "KAB-AB-001046-1"
+ },
+ {
+ "IdS": 200988,
+ "PX": "336100,336250,336550",
+ "PY": "572900,572850,572850",
+ "In": "KAB-C-013018-1"
+ },
+ {
+ "IdS": 200996,
+ "PX": "375150,375150",
+ "PY": "532750,532950",
+ "In": "KAB-C-039007-1"
+ },
+ {
+ "IdS": 200997,
+ "PX": "375150,375200,375200,375150",
+ "PY": "532750,532800,532900,532950",
+ "In": "KAB-C-039007-2"
+ },
+ {
+ "IdS": 200998,
+ "PX": "375150,375100,375100,375150",
+ "PY": "532750,532800,532900,532950",
+ "In": "KAB-C-039007-3"
+ },
+ {
+ "IdS": 201000,
+ "PX": "375300,375150",
+ "PY": "531700,531900",
+ "In": "KAB-C-039006-5"
+ },
+ {
+ "IdS": 201001,
+ "PX": "375300,375300,375200,375150",
+ "PY": "531700,531750,531900,531900",
+ "In": "KAB-C-039006-6"
+ },
+ {
+ "IdS": 201002,
+ "PX": "375300,375250,375150,375150",
+ "PY": "531700,531700,531850,531900",
+ "In": "KAB-C-039006-7"
+ },
+ {
+ "IdS": 201044,
+ "PX": "341405.98,341465",
+ "PY": "545554.63,545620",
+ "In": "KAB-AB-050059-3"
+ },
+ {
+ "IdS": 201073,
+ "PX": "358500,358600",
+ "PY": "562650,562950",
+ "In": "KAB-C-042056-1"
+ },
+ {
+ "IdS": 201090,
+ "PX": "372050,372050",
+ "PY": "550200,550650",
+ "In": "KAB-C-026036-3"
+ },
+ {
+ "IdS": 201101,
+ "PX": "345475,345195",
+ "PY": "554350,554350",
+ "In": "KAB-C-022024-1"
+ },
+ {
+ "IdS": 201154,
+ "PX": "337060,337110",
+ "PY": "553140,553165",
+ "In": "KAB-AB-050040-1"
+ },
+ {
+ "IdS": 201208,
+ "PX": "336297.31,336100.38",
+ "PY": "554699.1,554599.19",
+ "In": "KAB-AB-050010(A.B)-1"
+ },
+ {
+ "IdS": 201209,
+ "PX": "335880,336040",
+ "PY": "555815,555885",
+ "In": "KAB-C-050015-3"
+ },
+ {
+ "IdS": 201210,
+ "PX": "336420,336400,336435,336500",
+ "PY": "554525,554465,554370,554345",
+ "In": "KAB-C-050016-30"
+ },
+ {
+ "IdS": 201211,
+ "PX": "336420,336485,336525,336500",
+ "PY": "554525,554505,554410,554345",
+ "In": "KAB-C-050016-31"
+ },
+ {
+ "IdS": 201247,
+ "PX": "336700,336700",
+ "PY": "570100,569900",
+ "In": "KAB-AB-001013-5"
+ },
+ {
+ "IdS": 201275,
+ "PX": "364750,364850",
+ "PY": "549450,549650",
+ "In": "KAB-C-026083-3"
+ },
+ {
+ "IdS": 201287,
+ "PX": "347100,347100",
+ "PY": "555150,555000",
+ "In": "KAB-C-011027-1"
+ },
+ {
+ "IdS": 201301,
+ "PX": "368450,368250",
+ "PY": "549550,549900",
+ "In": "KAB-C-026031-3"
+ },
+ {
+ "IdS": 201317,
+ "PX": "362250,361500",
+ "PY": "550450,549600",
+ "In": "KAB-C-026023-12"
+ },
+ {
+ "IdS": 201318,
+ "PX": "361500,361750",
+ "PY": "549600,549400",
+ "In": "KAB-C-026023-13"
+ },
+ {
+ "IdS": 201319,
+ "PX": "361100,360700",
+ "PY": "549150,548700",
+ "In": "KAB-C-026023-14"
+ },
+ {
+ "IdS": 201320,
+ "PX": "361500,361100",
+ "PY": "549600,549150",
+ "In": "KAB-C-026023-2"
+ },
+ {
+ "IdS": 201321,
+ "PX": "361100,360900",
+ "PY": "549150,549300",
+ "In": "KAB-C-026023-6"
+ },
+ {
+ "IdS": 201322,
+ "PX": "359950,359650",
+ "PY": "547800,547450",
+ "In": "KAB-C-026025-4"
+ },
+ {
+ "IdS": 201324,
+ "PX": "358850,358450",
+ "PY": "546600,546200",
+ "In": "KAB-C-026012-1"
+ },
+ {
+ "IdS": 201325,
+ "PX": "359100,358850",
+ "PY": "546850,546600",
+ "In": "KAB-C-026012-3"
+ },
+ {
+ "IdS": 201326,
+ "PX": "358850,359050",
+ "PY": "546600,546450",
+ "In": "KAB-C-026012-2"
+ },
+ {
+ "IdS": 201327,
+ "PX": "359100,359300",
+ "PY": "546850,546700",
+ "In": "KAB-C-026012-4"
+ },
+ {
+ "IdS": 201335,
+ "PX": "342100,342000",
+ "PY": "573150,573300",
+ "In": "KAB-C-006003-1"
+ },
+ {
+ "IdS": 201337,
+ "PX": "347215,347395",
+ "PY": "560425,560340",
+ "In": "KAB-AB-011036-1"
+ },
+ {
+ "IdS": 201343,
+ "PX": "340250,340149.97,340150",
+ "PY": "572300,572234.19,572050",
+ "In": "KAB-C-021038-1"
+ },
+ {
+ "IdS": 201359,
+ "PX": "356750,356800",
+ "PY": "563450,563550",
+ "In": "KAB-C-042027-1"
+ },
+ {
+ "IdS": 201360,
+ "PX": "356800,356900",
+ "PY": "563550,563700",
+ "In": "KAB-C-042027-2"
+ },
+ {
+ "IdS": 201361,
+ "PX": "356800,356900",
+ "PY": "563550,563550",
+ "In": "KAB-C-042027-3"
+ },
+ {
+ "IdS": 201372,
+ "PX": "372450,372450",
+ "PY": "549550,549400",
+ "In": "KAB-C-026052-1"
+ },
+ {
+ "IdS": 201376,
+ "PX": "372450,372200",
+ "PY": "549400,549400",
+ "In": "KAB-C-026052-3"
+ },
+ {
+ "IdS": 201377,
+ "PX": "372450,372450",
+ "PY": "548950,548650",
+ "In": "KAB-C-026052-4"
+ },
+ {
+ "IdS": 201378,
+ "PX": "372450,372950",
+ "PY": "548950,548950",
+ "In": "KAB-C-026052-5"
+ },
+ {
+ "IdS": 201410,
+ "PX": "363800,363534.4",
+ "PY": "546700,546700",
+ "In": "KAB-C-054008-17"
+ },
+ {
+ "IdS": 201422,
+ "PX": "342100,342200",
+ "PY": "573150,573000",
+ "In": "KAB-C-006042-1"
+ },
+ {
+ "IdS": 201438,
+ "PX": "345540,345360",
+ "PY": "543545,543450",
+ "In": "KAB-C-010026-1"
+ },
+ {
+ "IdS": 201440,
+ "PX": "345360,345190.04",
+ "PY": "543450,543359.16",
+ "In": "KAB-C-010026-4"
+ },
+ {
+ "IdS": 201441,
+ "PX": "345360,345450",
+ "PY": "543450,543280",
+ "In": "KAB-C-010026-5"
+ },
+ {
+ "IdS": 201442,
+ "PX": "345190.04,345005",
+ "PY": "543359.16,543260",
+ "In": "KAB-C-010048-1"
+ },
+ {
+ "IdS": 201495,
+ "PX": "336200,336200",
+ "PY": "571020,570950",
+ "In": "KAB-AB-001007(A.B.)-1"
+ },
+ {
+ "IdS": 201496,
+ "PX": "336200,336200",
+ "PY": "570950,570875",
+ "In": "KAB-AB-001007(A.B.)-2"
+ },
+ {
+ "IdS": 201497,
+ "PX": "336200,336250",
+ "PY": "570950,570950",
+ "In": "KAB-AB-001007(A.B.)-3"
+ },
+ {
+ "IdS": 201499,
+ "PX": "345000,345000",
+ "PY": "550450,550750",
+ "In": "KAB-C-041011-2"
+ },
+ {
+ "IdS": 201500,
+ "PX": "345000,344900",
+ "PY": "550450,550450",
+ "In": "KAB-C-041011-3"
+ },
+ {
+ "IdS": 201501,
+ "PX": "345000,345000",
+ "PY": "550750,551050",
+ "In": "KAB-C-041011-4"
+ },
+ {
+ "IdS": 201502,
+ "PX": "345000,344900",
+ "PY": "550750,550750",
+ "In": "KAB-C-041011-5"
+ },
+ {
+ "IdS": 201503,
+ "PX": "345000,345000",
+ "PY": "551050,551550",
+ "In": "KAB-C-041011-6"
+ },
+ {
+ "IdS": 201504,
+ "PX": "345000,344900",
+ "PY": "551050,551050",
+ "In": "KAB-C-041011-7"
+ },
+ {
+ "IdS": 201517,
+ "PX": "340350,340650",
+ "PY": "572250,572400",
+ "In": "KAB-C-007006-4"
+ },
+ {
+ "IdS": 201518,
+ "PX": "335750,335750",
+ "PY": "567150,566950",
+ "In": "KAB-C-012007-1"
+ },
+ {
+ "IdS": 201526,
+ "PX": "338700,338950",
+ "PY": "569950,569950",
+ "In": "KAB-C-009005-3"
+ },
+ {
+ "IdS": 201530,
+ "PX": "359950,360300,360350",
+ "PY": "562150,562150,562050",
+ "In": "KAB-C-042057-1"
+ },
+ {
+ "IdS": 201531,
+ "PX": "360650,360700,361000",
+ "PY": "561950,561850,561850",
+ "In": "KAB-C-042072-10"
+ },
+ {
+ "IdS": 201532,
+ "PX": "360650,360950,361000",
+ "PY": "561950,561950,561850",
+ "In": "KAB-C-042072-11"
+ },
+ {
+ "IdS": 201534,
+ "PX": "360350,360000,359950",
+ "PY": "562050,562050,562150",
+ "In": "KAB-C-042057-13"
+ },
+ {
+ "IdS": 201543,
+ "PX": "361000,361300",
+ "PY": "561850,561750",
+ "In": "KAB-C-042058-1"
+ },
+ {
+ "IdS": 201544,
+ "PX": "361300,361600",
+ "PY": "561750,561650",
+ "In": "KAB-C-042059-1"
+ },
+ {
+ "IdS": 201552,
+ "PX": "354300,354100",
+ "PY": "557700,557600",
+ "In": "KAB-C-055009-4"
+ },
+ {
+ "IdS": 201553,
+ "PX": "341700,341635,341635",
+ "PY": "527300,527300,527150",
+ "In": "KAB-C-050062-1"
+ },
+ {
+ "IdS": 201554,
+ "PX": "354200,353700,353685.23,353685.07,353650",
+ "PY": "552100,552050,552060.42,552479.64,552500",
+ "In": "KAB-C-051020-1"
+ },
+ {
+ "IdS": 201561,
+ "PX": "339000,338880",
+ "PY": "572185,572185",
+ "In": "KAB-AB-064003-15"
+ },
+ {
+ "IdS": 201566,
+ "PX": "345475,345475",
+ "PY": "554350,554100",
+ "In": "KAB-C-022017-1"
+ },
+ {
+ "IdS": 201567,
+ "PX": "345475,345475,345765,345765,345775",
+ "PY": "554100,554100,553970,553960,553950",
+ "In": "KAB-C-022017-4"
+ },
+ {
+ "IdS": 201568,
+ "PX": "345475,345425",
+ "PY": "554100,554100",
+ "In": "KAB-C-022017-5"
+ },
+ {
+ "IdS": 201600,
+ "PX": "337807.92,337655",
+ "PY": "551199.78,551130",
+ "In": "KAB-AB-050091-1"
+ },
+ {
+ "IdS": 201606,
+ "PX": "338130,337970",
+ "PY": "550470,550395",
+ "In": "KAB-C-050066-1"
+ },
+ {
+ "IdS": 201641,
+ "PX": "355850,355950,355950",
+ "PY": "580400,580400,580200",
+ "In": "KAB-C-006037-1"
+ },
+ {
+ "IdS": 201642,
+ "PX": "355950,355850,355850",
+ "PY": "580200,580200,580400",
+ "In": "KAB-C-006037-2"
+ },
+ {
+ "IdS": 201643,
+ "PX": "355950,356389.67",
+ "PY": "580200,580200.06",
+ "In": "KAB-C-006037-3"
+ },
+ {
+ "IdS": 201645,
+ "PX": "356389.67,356650",
+ "PY": "580200.06,580200",
+ "In": "KAB-C-F006037-5"
+ },
+ {
+ "IdS": 201646,
+ "PX": "340050,340100",
+ "PY": "570350,570200",
+ "In": "KAB-C-007016-1"
+ },
+ {
+ "IdS": 201648,
+ "PX": "342650,342400",
+ "PY": "565650,565650",
+ "In": "KAB-C-007053-1"
+ },
+ {
+ "IdS": 201649,
+ "PX": "346115,345775",
+ "PY": "552390,552330",
+ "In": "KAB-C-010036-1"
+ },
+ {
+ "IdS": 201669,
+ "PX": "357619.9,357700.13",
+ "PY": "552210.95,552388.58",
+ "In": "KAB-C-026095-3"
+ },
+ {
+ "IdS": 201728,
+ "PX": "344990,345330",
+ "PY": "553860,553950",
+ "In": "KAB-C-041004-1"
+ },
+ {
+ "IdS": 201729,
+ "PX": "354350,354500",
+ "PY": "568250,568450",
+ "In": "KAB-C-042042-1"
+ },
+ {
+ "IdS": 201745,
+ "PX": "336100,335850",
+ "PY": "565450,565200",
+ "In": "KAB-AB-200017-1"
+ },
+ {
+ "IdS": 202164,
+ "PX": "345800,345800",
+ "PY": "554450,554365",
+ "In": "KAB-C-011034-1"
+ },
+ {
+ "IdS": 202165,
+ "PX": "345800,345700",
+ "PY": "554365,554365",
+ "In": "KAB-C-011034-2"
+ },
+ {
+ "IdS": 202166,
+ "PX": "345800,345815",
+ "PY": "554365,554365",
+ "In": "KAB-C-011034-3"
+ },
+ {
+ "IdS": 202182,
+ "PX": "342475.07,342350",
+ "PY": "544474.85,544350",
+ "In": "KAB-AB-050038-1"
+ },
+ {
+ "IdS": 202201,
+ "PX": "337249.38,337250,337250,337249.89",
+ "PY": "563549.22,563500,563300,563244.76",
+ "In": "KAB-C-853003-1"
+ },
+ {
+ "IdS": 202223,
+ "PX": "341230,341000",
+ "PY": "532150,532150",
+ "In": "KAB-AB-050087-1"
+ },
+ {
+ "IdS": 202271,
+ "PX": "340950,340650",
+ "PY": "572050,571900",
+ "In": "KAB-C-056008-1"
+ },
+ {
+ "IdS": 202302,
+ "PX": "349300,349700",
+ "PY": "554300,554300",
+ "In": "KAB-C-026027-1"
+ },
+ {
+ "IdS": 202303,
+ "PX": "349700,349700",
+ "PY": "554300,554750",
+ "In": "KAB-C-026027-6"
+ },
+ {
+ "IdS": 202304,
+ "PX": "349700,350100",
+ "PY": "554300,554300",
+ "In": "KAB-C-026027-7"
+ },
+ {
+ "IdS": 202305,
+ "PX": "349700,349600,349700",
+ "PY": "554300,554550,554750",
+ "In": "KAB-C-026027-8"
+ },
+ {
+ "IdS": 202306,
+ "PX": "343335,341865",
+ "PY": "549530,548890",
+ "In": "KAB-C-051903-1"
+ },
+ {
+ "IdS": 202408,
+ "PX": "339450,339555,339845",
+ "PY": "575400,575565,575565",
+ "In": "KAB-C-021029-1"
+ },
+ {
+ "IdS": 202409,
+ "PX": "334200,334200",
+ "PY": "569500,569650",
+ "In": "KAB-C-002014-1"
+ },
+ {
+ "IdS": 202410,
+ "PX": "333900,333800",
+ "PY": "569350,569350",
+ "In": "KAB-AB-002004-1"
+ },
+ {
+ "IdS": 202411,
+ "PX": "339450,339845",
+ "PY": "575400,575400",
+ "In": "KAB-C-021027-3"
+ },
+ {
+ "IdS": 202412,
+ "PX": "339845,339845",
+ "PY": "575400,575565",
+ "In": "KAB-C-021027-4"
+ },
+ {
+ "IdS": 202413,
+ "PX": "339845,340300",
+ "PY": "575400,575400",
+ "In": "KAB-C-021027-5"
+ },
+ {
+ "IdS": 202418,
+ "PX": "356695,356600",
+ "PY": "563985,564105",
+ "In": "KAB-AB-057012-1"
+ },
+ {
+ "IdS": 202432,
+ "PX": "330541.3,330905.43",
+ "PY": "576845.38,575680.13",
+ "In": "KAB-C-F200050-1"
+ },
+ {
+ "IdS": 202433,
+ "PX": "330905.43,330997.17",
+ "PY": "575680.13,575290.79",
+ "In": "KAB-C-F200051-1"
+ },
+ {
+ "IdS": 202434,
+ "PX": "330997.17,331043.04",
+ "PY": "575290.79,575096.12",
+ "In": "KAB-C-F200051-2"
+ },
+ {
+ "IdS": 202435,
+ "PX": "330997.17,331115",
+ "PY": "575290.79,575320",
+ "In": "KAB-C-F200051-3"
+ },
+ {
+ "IdS": 202436,
+ "PX": "331043.04,331134.78",
+ "PY": "575096.12,574706.78",
+ "In": "KAB-C-F200052-1"
+ },
+ {
+ "IdS": 202437,
+ "PX": "331364.13,331470.75",
+ "PY": "573733.44,573261.59",
+ "In": "KAB-C-F200055-1"
+ },
+ {
+ "IdS": 202438,
+ "PX": "331043.04,330968.64,331014.51,331134.78",
+ "PY": "575096.12,574975.85,574781.18,574706.78",
+ "In": "KAB-C-F200053-1"
+ },
+ {
+ "IdS": 202444,
+ "PX": "331593.49,331700",
+ "PY": "572760.09,572200",
+ "In": "KAB-C-F200056-2"
+ },
+ {
+ "IdS": 202445,
+ "PX": "331593.49,331510",
+ "PY": "572760.09,572760",
+ "In": "KAB-C-F200056-3"
+ },
+ {
+ "IdS": 202450,
+ "PX": "332650,333000",
+ "PY": "571850,571700",
+ "In": "KAB-C-F201001-2"
+ },
+ {
+ "IdS": 202451,
+ "PX": "332650,332650",
+ "PY": "571850,572000",
+ "In": "KAB-C-F201001-3"
+ },
+ {
+ "IdS": 202452,
+ "PX": "332650,332650",
+ "PY": "572000,572200",
+ "In": "KAB-C-F201001-4"
+ },
+ {
+ "IdS": 202453,
+ "PX": "332650,332850",
+ "PY": "572000,572000",
+ "In": "KAB-C-F201001-5"
+ },
+ {
+ "IdS": 202455,
+ "PX": "333350,333350,333550,333550",
+ "PY": "571550,571650,571650,571550",
+ "In": "KAB-C-F201003-1"
+ },
+ {
+ "IdS": 202456,
+ "PX": "333350,333550",
+ "PY": "571550,571550",
+ "In": "KAB-C-F201004-1"
+ },
+ {
+ "IdS": 202459,
+ "PX": "335700,336050",
+ "PY": "568855,568855",
+ "In": "KAB-C-F202052-1"
+ },
+ {
+ "IdS": 202460,
+ "PX": "336050,336400",
+ "PY": "568855,568855",
+ "In": "KAB-C-F202052-2"
+ },
+ {
+ "IdS": 202461,
+ "PX": "336050,336050",
+ "PY": "568855,568555",
+ "In": "KAB-C-F202052-3"
+ },
+ {
+ "IdS": 202462,
+ "PX": "336400,336850",
+ "PY": "568855,568855",
+ "In": "KAB-C-F202053-1"
+ },
+ {
+ "IdS": 202463,
+ "PX": "335350,335100",
+ "PY": "568855,568655",
+ "In": "KAB-C-F202051-1"
+ },
+ {
+ "IdS": 202464,
+ "PX": "336850,336850",
+ "PY": "568855,568690",
+ "In": "KAB-C-202054-1"
+ },
+ {
+ "IdS": 202479,
+ "PX": "331700,331820",
+ "PY": "572200,571785",
+ "In": "KAB-C-F200057-1"
+ },
+ {
+ "IdS": 202480,
+ "PX": "331820,331914.58",
+ "PY": "571785,571397.41",
+ "In": "KAB-C-F200057-2"
+ },
+ {
+ "IdS": 202481,
+ "PX": "331820,331755",
+ "PY": "571785,571785",
+ "In": "KAB-C-F200057-3"
+ },
+ {
+ "IdS": 202482,
+ "PX": "343060,343060",
+ "PY": "573755,573300",
+ "In": "KAB-C-017002-1"
+ },
+ {
+ "IdS": 202483,
+ "PX": "336850,337200",
+ "PY": "568855,568855",
+ "In": "KAB-C-F202055-1"
+ },
+ {
+ "IdS": 202494,
+ "PX": "347450,347680",
+ "PY": "559200,559200",
+ "In": "KAB-C-011010-3"
+ },
+ {
+ "IdS": 202501,
+ "PX": "345745,345650,346600.37,346900",
+ "PY": "560560,560450,559821.54,559700",
+ "In": "KAB-C-011041-1"
+ },
+ {
+ "IdS": 202508,
+ "PX": "339800,339750,339750,339782.92",
+ "PY": "571550,571500,571350,571316.72",
+ "In": "KAB-AB-007012-1"
+ },
+ {
+ "IdS": 202541,
+ "PX": "333550,334090",
+ "PY": "571550,571550",
+ "In": "KAB-C-F201005-1"
+ },
+ {
+ "IdS": 202542,
+ "PX": "334090,334485",
+ "PY": "571550,571550",
+ "In": "KAB-C-F201005-2"
+ },
+ {
+ "IdS": 202543,
+ "PX": "334090,334090",
+ "PY": "571550,571450",
+ "In": "KAB-C-F201005-3"
+ },
+ {
+ "IdS": 202551,
+ "PX": "342200,342199.96",
+ "PY": "569650,569350.01",
+ "In": "KAB-C-017004-1"
+ },
+ {
+ "IdS": 202574,
+ "PX": "333315,333150",
+ "PY": "571365,571365",
+ "In": "KAB-AB-201001-1"
+ },
+ {
+ "IdS": 202588,
+ "PX": "340550,340950",
+ "PY": "572850,572050",
+ "In": "KAB-C-056007-1"
+ },
+ {
+ "IdS": 202590,
+ "PX": "349260,349020",
+ "PY": "551845,551845",
+ "In": "KAB-C-026999-1"
+ },
+ {
+ "IdS": 202592,
+ "PX": "349300,349700",
+ "PY": "552300,552300",
+ "In": "KAB-C-026003-6"
+ },
+ {
+ "IdS": 202601,
+ "PX": "337200,337200",
+ "PY": "579300,579000",
+ "In": "KAB-C-013028-4"
+ },
+ {
+ "IdS": 202604,
+ "PX": "337200,337050",
+ "PY": "579000,579000",
+ "In": "KAB-C-013028-9"
+ },
+ {
+ "IdS": 202607,
+ "PX": "355850,355850",
+ "PY": "580650,580850",
+ "In": "KAB-C-066001-1"
+ },
+ {
+ "IdS": 202614,
+ "PX": "360250,359950",
+ "PY": "548150,547800",
+ "In": "KAB-C-026024-5"
+ },
+ {
+ "IdS": 202615,
+ "PX": "360250,360450",
+ "PY": "548150,548000",
+ "In": "KAB-C-026024-6"
+ },
+ {
+ "IdS": 202630,
+ "PX": "350445,350725",
+ "PY": "578190,577975",
+ "In": "KAB-C-006020-1"
+ },
+ {
+ "IdS": 202644,
+ "PX": "335200,335200",
+ "PY": "570450,570300",
+ "In": "KAB-AB-013007-1"
+ },
+ {
+ "IdS": 202654,
+ "PX": "339320.24,339430.05",
+ "PY": "575829.99,575459.9",
+ "In": "KAB-AB-021007-9"
+ },
+ {
+ "IdS": 202685,
+ "PX": "342900,343060",
+ "PY": "573600,573755",
+ "In": "KAB-C-006007-1"
+ },
+ {
+ "IdS": 202686,
+ "PX": "342700,342716.65,342800,342900",
+ "PY": "573450,573535.06,573600,573600",
+ "In": "KAB-C-006007-2"
+ },
+ {
+ "IdS": 202687,
+ "PX": "342700,342900",
+ "PY": "573450,573600",
+ "In": "KAB-C-006007-3"
+ },
+ {
+ "IdS": 202690,
+ "PX": "362050,362200",
+ "PY": "550500,550650",
+ "In": "KAB-C-026017-11"
+ },
+ {
+ "IdS": 202748,
+ "PX": "346775,347150",
+ "PY": "551950,551950",
+ "In": "KAB-C-023004-1"
+ },
+ {
+ "IdS": 202761,
+ "PX": "338950,338950",
+ "PY": "569950,570250",
+ "In": "KAB-C-016030-1"
+ },
+ {
+ "IdS": 202771,
+ "PX": "341280,341435",
+ "PY": "559330,559330",
+ "In": "KAB-C-022029-1"
+ },
+ {
+ "IdS": 202779,
+ "PX": "341435,341435",
+ "PY": "559330,559180",
+ "In": "KAB-C-022029-3"
+ },
+ {
+ "IdS": 202781,
+ "PX": "341399.72,341249.23",
+ "PY": "558450.11,558449.94",
+ "In": "KAB-C-022011-5"
+ },
+ {
+ "IdS": 202792,
+ "PX": "336300,336100",
+ "PY": "571800,571800",
+ "In": "KAB-C-001045-1"
+ },
+ {
+ "IdS": 202793,
+ "PX": "336099.74,336100",
+ "PY": "571812.15,571900",
+ "In": "KAB-AB-001058-1"
+ },
+ {
+ "IdS": 202794,
+ "PX": "336100,336100",
+ "PY": "571800,571650",
+ "In": "KAB-C-001045-3"
+ },
+ {
+ "IdS": 202812,
+ "PX": "342550.77,342608.82",
+ "PY": "556750.22,556830.87",
+ "In": "KAB-C-022045-1"
+ },
+ {
+ "IdS": 202813,
+ "PX": "343100,343099.99",
+ "PY": "556350,556454.91",
+ "In": "KAB-C-022015-5"
+ },
+ {
+ "IdS": 202856,
+ "PX": "353875.03,353786.03",
+ "PY": "558480.57,558434.97",
+ "In": "KAB-C-056029-3"
+ },
+ {
+ "IdS": 202948,
+ "PX": "338700,338600,338350",
+ "PY": "567450,567500,567499.99",
+ "In": "KAB-C-009015-1"
+ },
+ {
+ "IdS": 202949,
+ "PX": "339189.96,338961.87",
+ "PY": "566284.3,565872.04",
+ "In": "KAB-AB-009011-1"
+ },
+ {
+ "IdS": 202950,
+ "PX": "342500,343080",
+ "PY": "563600,563350",
+ "In": "KAB-C-011001-1"
+ },
+ {
+ "IdS": 202958,
+ "PX": "333498.16,333500",
+ "PY": "570797.39,570500",
+ "In": "KAB-AB-004017-4"
+ },
+ {
+ "IdS": 202959,
+ "PX": "340150,340250",
+ "PY": "572050,572050",
+ "In": "KAB-C-007005-1"
+ },
+ {
+ "IdS": 202960,
+ "PX": "340250,340350,340350",
+ "PY": "572050,572050,572250",
+ "In": "KAB-C-007005-2"
+ },
+ {
+ "IdS": 202961,
+ "PX": "340250,340250",
+ "PY": "572050,572300",
+ "In": "KAB-C-007005-3"
+ },
+ {
+ "IdS": 202962,
+ "PX": "330500,330200",
+ "PY": "569550,569550",
+ "In": "KAB-C-004013-1"
+ },
+ {
+ "IdS": 202968,
+ "PX": "342345,342200",
+ "PY": "574260,574550",
+ "In": "KAB-C-016015-3"
+ },
+ {
+ "IdS": 202977,
+ "PX": "345585,345350",
+ "PY": "575945,576350",
+ "In": "KAB-C-016019-3"
+ },
+ {
+ "IdS": 202997,
+ "PX": "358000,358050,358500",
+ "PY": "562850,562750,562650",
+ "In": "KAB-C-042054-13"
+ },
+ {
+ "IdS": 202998,
+ "PX": "358000,358450,358500",
+ "PY": "562850,562750,562650",
+ "In": "KAB-C-042054-14"
+ },
+ {
+ "IdS": 203052,
+ "PX": "357300,357300",
+ "PY": "563050,563250",
+ "In": "KAB-C-042053-1"
+ },
+ {
+ "IdS": 203053,
+ "PX": "345330,345775",
+ "PY": "553950,553950",
+ "In": "KAB-C-041006-1"
+ },
+ {
+ "IdS": 203058,
+ "PX": "358500,358550,359000",
+ "PY": "562650,562550,562500",
+ "In": "KAB-C-042055-1"
+ },
+ {
+ "IdS": 203060,
+ "PX": "359000,358955.81,358500",
+ "PY": "562500,562600.49,562650",
+ "In": "KAB-C-042055-11"
+ },
+ {
+ "IdS": 203061,
+ "PX": "359550,359900,359950",
+ "PY": "562300,562250,562150",
+ "In": "KAB-C-042071-12"
+ },
+ {
+ "IdS": 203062,
+ "PX": "359550,359650,359950",
+ "PY": "562300,562200,562150",
+ "In": "KAB-C-042071-13"
+ },
+ {
+ "IdS": 203084,
+ "PX": "342600,342200",
+ "PY": "570800,569650",
+ "In": "KAB-C-017003-1"
+ },
+ {
+ "IdS": 203119,
+ "PX": "336100,336400",
+ "PY": "572900,572650",
+ "In": "KAB-C-016003-1"
+ },
+ {
+ "IdS": 203125,
+ "PX": "336400,336400,336500,336550",
+ "PY": "572650,572600,572550,572550",
+ "In": "KAB-C-016003-2"
+ },
+ {
+ "IdS": 203126,
+ "PX": "336400,336450,336550,336550",
+ "PY": "572650,572650,572600,572550",
+ "In": "KAB-C-016003-3"
+ },
+ {
+ "IdS": 203175,
+ "PX": "334800,334720,334500",
+ "PY": "569600,569500,569500",
+ "In": "KAB-AB-002002(A.B.)-1"
+ },
+ {
+ "IdS": 203176,
+ "PX": "334500,334200",
+ "PY": "569500,569500",
+ "In": "KAB-AB-002002(A.B.)-2"
+ },
+ {
+ "IdS": 203177,
+ "PX": "334500,334500",
+ "PY": "569500,569650",
+ "In": "KAB-AB-002002(A.B.)-3"
+ },
+ {
+ "IdS": 203178,
+ "PX": "339720,339850",
+ "PY": "547295,547040",
+ "In": "KAB-C-050029-1"
+ },
+ {
+ "IdS": 203180,
+ "PX": "339850,339720",
+ "PY": "547040,546900",
+ "In": "KAB-C-050029-11"
+ },
+ {
+ "IdS": 203214,
+ "PX": "348320,348445",
+ "PY": "562845,563120",
+ "In": "KAB-AB-011042-1"
+ },
+ {
+ "IdS": 203346,
+ "PX": "336345,336345",
+ "PY": "580480,580270",
+ "In": "KAB-C-063023-2"
+ },
+ {
+ "IdS": 203347,
+ "PX": "336345,335905",
+ "PY": "580480,580480",
+ "In": "KAB-C-063023-3"
+ },
+ {
+ "IdS": 203443,
+ "PX": "342329.21,342248.88",
+ "PY": "549313.55,549496.71",
+ "In": "KAB-AB-051046-1"
+ },
+ {
+ "IdS": 203445,
+ "PX": "349350,349500",
+ "PY": "563400,563550",
+ "In": "KAB-C-056009-1"
+ },
+ {
+ "IdS": 203446,
+ "PX": "349350,349350,349450,349500",
+ "PY": "563400,563450,563550,563550",
+ "In": "KAB-C-056010-1"
+ },
+ {
+ "IdS": 203447,
+ "PX": "336164.97,336565",
+ "PY": "591354.9,591495",
+ "In": "KAB-C-063001-1"
+ },
+ {
+ "IdS": 203448,
+ "PX": "336565,336685",
+ "PY": "591495,591265",
+ "In": "KAB-C-063001-7"
+ },
+ {
+ "IdS": 203449,
+ "PX": "336565,336700",
+ "PY": "591495,592050",
+ "In": "KAB-C-063001-8"
+ },
+ {
+ "IdS": 203454,
+ "PX": "336900,337000",
+ "PY": "592050,592050",
+ "In": "KAB-C-063003-3"
+ },
+ {
+ "IdS": 203457,
+ "PX": "336700,336900",
+ "PY": "592050,592050",
+ "In": "KAB-C-063003-1"
+ },
+ {
+ "IdS": 203460,
+ "PX": "340850,340850,340650",
+ "PY": "573300,573250,573100",
+ "In": "KAB-C-027010-1"
+ },
+ {
+ "IdS": 203509,
+ "PX": "348113.46,348239.15",
+ "PY": "564387.16,564542.73",
+ "In": "KAB-C-056021-4"
+ },
+ {
+ "IdS": 203510,
+ "PX": "349200,349350",
+ "PY": "563500,563400",
+ "In": "KAB-C-056021-5"
+ },
+ {
+ "IdS": 203511,
+ "PX": "349200,349150,349300,349350",
+ "PY": "563500,563450,563350,563400",
+ "In": "KAB-C-056021-6"
+ },
+ {
+ "IdS": 203525,
+ "PX": "350447.03,350572.72",
+ "PY": "562501.83,562657.41",
+ "In": "KAB-C-056022-7"
+ },
+ {
+ "IdS": 203601,
+ "PX": "336400,336460.03",
+ "PY": "563900,563899.94",
+ "In": "KAB-C-022028-1"
+ },
+ {
+ "IdS": 203618,
+ "PX": "346250,346850",
+ "PY": "580350,580350",
+ "In": "KAB-C-016022-1"
+ },
+ {
+ "IdS": 203632,
+ "PX": "355750,355300",
+ "PY": "567350,567650",
+ "In": "KAB-C-042037-2"
+ },
+ {
+ "IdS": 203633,
+ "PX": "355750,355900",
+ "PY": "567350,567550",
+ "In": "KAB-C-042037-3"
+ },
+ {
+ "IdS": 203634,
+ "PX": "355300,355450",
+ "PY": "567650,567850",
+ "In": "KAB-C-042039-1"
+ },
+ {
+ "IdS": 203684,
+ "PX": "370000,369915",
+ "PY": "542950,542545",
+ "In": "KAB-C-026064-1"
+ },
+ {
+ "IdS": 203685,
+ "PX": "355300,354850",
+ "PY": "567650,567950",
+ "In": "KAB-C-042038-1"
+ },
+ {
+ "IdS": 203686,
+ "PX": "354850,354700",
+ "PY": "567950,568050",
+ "In": "KAB-C-042038-2"
+ },
+ {
+ "IdS": 203687,
+ "PX": "354850,355000",
+ "PY": "567950,568150",
+ "In": "KAB-C-042038-3"
+ },
+ {
+ "IdS": 203688,
+ "PX": "369915,369650",
+ "PY": "542545,541850",
+ "In": "KAB-C-026085-1"
+ },
+ {
+ "IdS": 203692,
+ "PX": "354700,354350",
+ "PY": "568050,568250",
+ "In": "KAB-C-042040-1"
+ },
+ {
+ "IdS": 203693,
+ "PX": "345489.39,345649.79,346530",
+ "PY": "580994.85,581129.57,581380",
+ "In": "KAB-C-F016003-1"
+ },
+ {
+ "IdS": 203694,
+ "PX": "346530,346530",
+ "PY": "581380,581515",
+ "In": "KAB-C-F016004-1"
+ },
+ {
+ "IdS": 203698,
+ "PX": "345649.85,345350",
+ "PY": "581049.84,581050",
+ "In": "KAB-C-024004-1"
+ },
+ {
+ "IdS": 203725,
+ "PX": "358250,358400",
+ "PY": "551750,551900",
+ "In": "KAB-C-026014-1"
+ },
+ {
+ "IdS": 203733,
+ "PX": "359350,359100",
+ "PY": "551550,551000",
+ "In": "KAB-C-026014-17"
+ },
+ {
+ "IdS": 203735,
+ "PX": "358400,358500",
+ "PY": "551900,552100",
+ "In": "KAB-C-026014-3"
+ },
+ {
+ "IdS": 203737,
+ "PX": "358650,358750",
+ "PY": "551800,552000",
+ "In": "KAB-C-026014-5"
+ },
+ {
+ "IdS": 203784,
+ "PX": "328160,330300",
+ "PY": "563695,563700",
+ "In": "KAB-C-050001-1"
+ },
+ {
+ "IdS": 203795,
+ "PX": "336600,336550,336550,336600",
+ "PY": "565500,565450,565400,565350",
+ "In": "KAB-C-200018-3"
+ },
+ {
+ "IdS": 203796,
+ "PX": "336600,336650,336650,336600",
+ "PY": "565500,565450,565400,565350",
+ "In": "KAB-C-200018-4"
+ },
+ {
+ "IdS": 203801,
+ "PX": "375770,375430,375350",
+ "PY": "550575,550575,550600",
+ "In": "KAB-AB-026042-1"
+ },
+ {
+ "IdS": 204088,
+ "PX": "347450,347450",
+ "PY": "551250,550850",
+ "In": "KAB-C-026002-3"
+ },
+ {
+ "IdS": 204158,
+ "PX": "345005,345095",
+ "PY": "543260,543085",
+ "In": "KAB-C-010029-1"
+ },
+ {
+ "IdS": 204160,
+ "PX": "337999.82,338000",
+ "PY": "567967.08,568200",
+ "In": "KAB-AB-009022-1"
+ },
+ {
+ "IdS": 204161,
+ "PX": "345815,346150",
+ "PY": "554365,552600",
+ "In": "KAB-C-010005-1 AK"
+ },
+ {
+ "IdS": 204165,
+ "PX": "346500,346100",
+ "PY": "549450,549450",
+ "In": "KAB-C-010013-1"
+ },
+ {
+ "IdS": 204166,
+ "PX": "346350.37,346350,346344.62,346350,346350",
+ "PY": "549294.52,549245,549235.09,549230,549200",
+ "In": "KAB-AB-010017-1"
+ },
+ {
+ "IdS": 204176,
+ "PX": "336200,335800",
+ "PY": "570300,570300",
+ "In": "KAB-L-L001050-1"
+ },
+ {
+ "IdS": 204179,
+ "PX": "371400,371650",
+ "PY": "545100,545100",
+ "In": "KAB-AB-026059-3"
+ },
+ {
+ "IdS": 204197,
+ "PX": "370200,370450",
+ "PY": "543350,543350",
+ "In": "KAB-C-026090-2"
+ },
+ {
+ "IdS": 204214,
+ "PX": "371400,370800",
+ "PY": "544500,544500",
+ "In": "KAB-AB-026060-4"
+ },
+ {
+ "IdS": 204215,
+ "PX": "371400,371700",
+ "PY": "544500,544500",
+ "In": "KAB-AB-026060-5"
+ },
+ {
+ "IdS": 204238,
+ "PX": "335800,335800",
+ "PY": "570300,570400",
+ "In": "KAB-L-L001051-1"
+ },
+ {
+ "IdS": 204240,
+ "PX": "370050,370350",
+ "PY": "541650,541500",
+ "In": "KAB-C-053001-2"
+ },
+ {
+ "IdS": 204241,
+ "PX": "370050,370050,370250,370350",
+ "PY": "541650,541550,541450,541500",
+ "In": "KAB-C-053001-3"
+ },
+ {
+ "IdS": 204242,
+ "PX": "370350,370600",
+ "PY": "541500,541400",
+ "In": "KAB-C-053001-4"
+ },
+ {
+ "IdS": 204247,
+ "PX": "370910.1,371000",
+ "PY": "541274.79,541400.01",
+ "In": "KAB-AB-053013-1"
+ },
+ {
+ "IdS": 204273,
+ "PX": "372000,371800",
+ "PY": "539900,539800",
+ "In": "KAB-C-053006-3"
+ },
+ {
+ "IdS": 204275,
+ "PX": "372150,371950",
+ "PY": "539600,539500",
+ "In": "KAB-C-053006-5"
+ },
+ {
+ "IdS": 204287,
+ "PX": "372600,372600,372700,372750",
+ "PY": "538700,538600,538400,538400",
+ "In": "KAB-C-053012-2"
+ },
+ {
+ "IdS": 204288,
+ "PX": "372600,372750",
+ "PY": "538700,538400",
+ "In": "KAB-C-053012-3"
+ },
+ {
+ "IdS": 204289,
+ "PX": "372750,372850",
+ "PY": "538400,538200",
+ "In": "KAB-C-053012-4"
+ },
+ {
+ "IdS": 204290,
+ "PX": "372850,373000",
+ "PY": "538200,537950",
+ "In": "KAB-C-053012-5"
+ },
+ {
+ "IdS": 204291,
+ "PX": "372850,372850,372950,373000",
+ "PY": "538200,538100,537950,537950",
+ "In": "KAB-C-053012-6"
+ },
+ {
+ "IdS": 204311,
+ "PX": "374574.19,374850",
+ "PY": "534956.46,535100",
+ "In": "KAB-AB-053014-1"
+ },
+ {
+ "IdS": 204312,
+ "PX": "374750,374800,375100,375150",
+ "PY": "534550,534500,534500,534550",
+ "In": "KAB-C-053011-4"
+ },
+ {
+ "IdS": 204313,
+ "PX": "374750,374800,375100,375150",
+ "PY": "534550,534600,534600,534550",
+ "In": "KAB-C-053011-5"
+ },
+ {
+ "IdS": 204332,
+ "PX": "335800,335800",
+ "PY": "570400,570505",
+ "In": "KAB-L-L001052-1"
+ },
+ {
+ "IdS": 204333,
+ "PX": "336004.93,335799.99",
+ "PY": "570660.19,570659.83",
+ "In": "KAB-L-L001056-1"
+ },
+ {
+ "IdS": 204334,
+ "PX": "336004.93,336205.01",
+ "PY": "570660.19,570660.01",
+ "In": "KAB-L-L001057-1"
+ },
+ {
+ "IdS": 204335,
+ "PX": "335800,335800",
+ "PY": "570545,570575",
+ "In": "KAB-L-L001054-1"
+ },
+ {
+ "IdS": 204336,
+ "PX": "335800,335800",
+ "PY": "570505,570545",
+ "In": "KAB-L-L001053-1"
+ },
+ {
+ "IdS": 204337,
+ "PX": "335800,335799.99",
+ "PY": "570575,570659.83",
+ "In": "KAB-L-L001055-1"
+ },
+ {
+ "IdS": 204338,
+ "PX": "335800,336005,336050",
+ "PY": "570575,570575,570570",
+ "In": "KAB-L-L001058-1"
+ },
+ {
+ "IdS": 204344,
+ "PX": "336300,336400,336400",
+ "PY": "570300,570165,570100",
+ "In": "KAB-AB-064016-1"
+ },
+ {
+ "IdS": 204345,
+ "PX": "336400,336549.9",
+ "PY": "570100,570099.85",
+ "In": "KAB-AB-064016-10"
+ },
+ {
+ "IdS": 204515,
+ "PX": "341950,342200",
+ "PY": "570000,569650",
+ "In": "KAB-C-056002-27"
+ },
+ {
+ "IdS": 204516,
+ "PX": "341350,341585",
+ "PY": "570850,571020",
+ "In": "KAB-C-056002-3"
+ },
+ {
+ "IdS": 204517,
+ "PX": "341700,341950",
+ "PY": "570350,570000",
+ "In": "KAB-C-056002-4"
+ },
+ {
+ "IdS": 204518,
+ "PX": "341700,341945",
+ "PY": "570350,570540",
+ "In": "KAB-C-056002-5"
+ },
+ {
+ "IdS": 204519,
+ "PX": "341100,341350",
+ "PY": "571200,570850",
+ "In": "KAB-C-056002-6"
+ },
+ {
+ "IdS": 204538,
+ "PX": "346500,346650",
+ "PY": "550150,550150",
+ "In": "KAB-C-010011-5"
+ },
+ {
+ "IdS": 204545,
+ "PX": "346300,346300.17",
+ "PY": "580980,580837.11",
+ "In": "KAB-C-024001-10"
+ },
+ {
+ "IdS": 204566,
+ "PX": "347650,347660,347660,347650",
+ "PY": "581700,581690,581510,581500",
+ "In": "KAB-C-024001-3"
+ },
+ {
+ "IdS": 204569,
+ "PX": "347650,347640,347640,347650",
+ "PY": "581700,581690,581510,581500",
+ "In": "KAB-C-024001-4"
+ },
+ {
+ "IdS": 204573,
+ "PX": "346662.55,346700",
+ "PY": "581223.83,581150",
+ "In": "KAB-C-024001-8"
+ },
+ {
+ "IdS": 204574,
+ "PX": "346300,346350,346300.17",
+ "PY": "580980,580980,580837.11",
+ "In": "KAB-C-024001-9"
+ },
+ {
+ "IdS": 204581,
+ "PX": "347215,347300",
+ "PY": "560425,560605",
+ "In": "KAB-AB-011038-1"
+ },
+ {
+ "IdS": 204625,
+ "PX": "349550,349650,349750,349750",
+ "PY": "555450,555450,555500,555550",
+ "In": "KAB-C-042097-12"
+ },
+ {
+ "IdS": 204626,
+ "PX": "349550,349750",
+ "PY": "555450,555550",
+ "In": "KAB-C-042097-13"
+ },
+ {
+ "IdS": 204636,
+ "PX": "351200,351300,351400,351400",
+ "PY": "556200,556200,556250,556300",
+ "In": "KAB-C-042007-1"
+ },
+ {
+ "IdS": 204644,
+ "PX": "351200,351400",
+ "PY": "556200,556300",
+ "In": "KAB-C-042007-2"
+ },
+ {
+ "IdS": 204649,
+ "PX": "351800,351850",
+ "PY": "556500,556400",
+ "In": "KAB-C-042076-1"
+ },
+ {
+ "IdS": 204651,
+ "PX": "351609.51,351650",
+ "PY": "556384.57,556300",
+ "In": "KAB-AB-042096-1"
+ },
+ {
+ "IdS": 204665,
+ "PX": "353000,352950",
+ "PY": "557050,557150",
+ "In": "KAB-C-042083-1"
+ },
+ {
+ "IdS": 204694,
+ "PX": "347430,347520",
+ "PY": "554415,554460",
+ "In": "KAB-C-042084-1"
+ },
+ {
+ "IdS": 204696,
+ "PX": "348400,348350",
+ "PY": "554900,555000",
+ "In": "KAB-C-042003-11"
+ },
+ {
+ "IdS": 204697,
+ "PX": "348500,348700",
+ "PY": "554950,555050",
+ "In": "KAB-C-042003-12"
+ },
+ {
+ "IdS": 204698,
+ "PX": "348500,348550",
+ "PY": "554950,554850",
+ "In": "KAB-C-042003-13"
+ },
+ {
+ "IdS": 204699,
+ "PX": "348700,348800,348950",
+ "PY": "555050,555150,555150",
+ "In": "KAB-C-042003-14"
+ },
+ {
+ "IdS": 204700,
+ "PX": "348700,348950",
+ "PY": "555050,555150",
+ "In": "KAB-C-042003-15"
+ },
+ {
+ "IdS": 204702,
+ "PX": "347700,347800",
+ "PY": "554550,554400",
+ "In": "KAB-C-042084-17"
+ },
+ {
+ "IdS": 204705,
+ "PX": "347430,347435,347515,347520",
+ "PY": "554415,554425,554465,554460",
+ "In": "KAB-C-042084-2"
+ },
+ {
+ "IdS": 204716,
+ "PX": "347520,347700",
+ "PY": "554460,554550",
+ "In": "KAB-C-042084-3"
+ },
+ {
+ "IdS": 204717,
+ "PX": "347900,348100",
+ "PY": "554650,554750",
+ "In": "KAB-C-042084-4"
+ },
+ {
+ "IdS": 204718,
+ "PX": "347900,347800",
+ "PY": "554650,554850",
+ "In": "KAB-C-042084-5"
+ },
+ {
+ "IdS": 204720,
+ "PX": "348100,348150",
+ "PY": "554750,554650",
+ "In": "KAB-C-042081-1"
+ },
+ {
+ "IdS": 204732,
+ "PX": "338450,338551.78",
+ "PY": "579050,578699.87",
+ "In": "KAB-AB-021026-1"
+ },
+ {
+ "IdS": 204733,
+ "PX": "338900.61,339099.6",
+ "PY": "577350.73,576650.66",
+ "In": "KAB-AB-021005-1"
+ },
+ {
+ "IdS": 204734,
+ "PX": "345475,345475",
+ "PY": "554700,554350",
+ "In": "KAB-C-022022-1"
+ },
+ {
+ "IdS": 204739,
+ "PX": "340170,340300",
+ "PY": "571850,571850",
+ "In": "KAB-AB-021041-1"
+ },
+ {
+ "IdS": 204788,
+ "PX": "345035,345220",
+ "PY": "561110,561360",
+ "In": "KAB-C-011004-1"
+ },
+ {
+ "IdS": 204789,
+ "PX": "343060,343400",
+ "PY": "573755,573950",
+ "In": "KAB-C-006008-1"
+ },
+ {
+ "IdS": 204791,
+ "PX": "343400,343250",
+ "PY": "573950,574200",
+ "In": "KAB-C-006008-11"
+ },
+ {
+ "IdS": 204796,
+ "PX": "344000,344600",
+ "PY": "574250,574550",
+ "In": "KAB-C-006008-8"
+ },
+ {
+ "IdS": 204797,
+ "PX": "344000,343850",
+ "PY": "574250,574500",
+ "In": "KAB-C-006008-9"
+ },
+ {
+ "IdS": 204798,
+ "PX": "350930,350930",
+ "PY": "579990,580085",
+ "In": "KAB-C-066005-1"
+ },
+ {
+ "IdS": 204806,
+ "PX": "350930,350950,350950,350930",
+ "PY": "579990,580015,580065,580085",
+ "In": "KAB-C-066005-2"
+ },
+ {
+ "IdS": 204807,
+ "PX": "350750,350600",
+ "PY": "580085,580195",
+ "In": "KAB-C-066005-3"
+ },
+ {
+ "IdS": 204808,
+ "PX": "350750,350695,350605,350600",
+ "PY": "580085,580080,580145,580195",
+ "In": "KAB-C-066005-4"
+ },
+ {
+ "IdS": 204858,
+ "PX": "346250,346250",
+ "PY": "578050,578450",
+ "In": "KAB-C-016021-1"
+ },
+ {
+ "IdS": 204860,
+ "PX": "346200,346200,346250",
+ "PY": "577800,578000,578050",
+ "In": "KAB-C-016021-3"
+ },
+ {
+ "IdS": 204861,
+ "PX": "346300,346300,346250",
+ "PY": "577800,578000,578050",
+ "In": "KAB-C-016021-4"
+ },
+ {
+ "IdS": 204862,
+ "PX": "346250,346750",
+ "PY": "578450,578450",
+ "In": "KAB-C-016021-5"
+ },
+ {
+ "IdS": 204901,
+ "PX": "356950,356950",
+ "PY": "567600,567850",
+ "In": "KAB-C-043003-1"
+ },
+ {
+ "IdS": 204903,
+ "PX": "356950,357150",
+ "PY": "567850,567850",
+ "In": "KAB-C-043003-3"
+ },
+ {
+ "IdS": 204904,
+ "PX": "356400,356600",
+ "PY": "569900,569900",
+ "In": "KAB-C-043008-1"
+ },
+ {
+ "IdS": 204905,
+ "PX": "356700,356400",
+ "PY": "568300,568600",
+ "In": "KAB-C-043006-1"
+ },
+ {
+ "IdS": 204907,
+ "PX": "356400,356900",
+ "PY": "568600,568600",
+ "In": "KAB-C-043006-3"
+ },
+ {
+ "IdS": 204939,
+ "PX": "334700.16,334700,334900,334899.39",
+ "PY": "570850.13,570900,570900,570849.69",
+ "In": "KAB-C-001003-8"
+ },
+ {
+ "IdS": 204940,
+ "PX": "334700.16,334899.39",
+ "PY": "570850.13,570849.69",
+ "In": "KAB-C-001003-9"
+ },
+ {
+ "IdS": 204941,
+ "PX": "356400,356350",
+ "PY": "569900,570250",
+ "In": "KAB-C-043009-1"
+ },
+ {
+ "IdS": 204942,
+ "PX": "356350,356350",
+ "PY": "570250,570650",
+ "In": "KAB-C-043021-1"
+ },
+ {
+ "IdS": 204943,
+ "PX": "356350,356150",
+ "PY": "570250,570250",
+ "In": "KAB-C-043022-1"
+ },
+ {
+ "IdS": 204944,
+ "PX": "356700,356400",
+ "PY": "568300,568300",
+ "In": "KAB-C-043005-1"
+ },
+ {
+ "IdS": 204945,
+ "PX": "356300,356600",
+ "PY": "570850,570850",
+ "In": "KAB-C-043011-1"
+ },
+ {
+ "IdS": 204946,
+ "PX": "356300,356300",
+ "PY": "570850,571200",
+ "In": "KAB-C-043012-1"
+ },
+ {
+ "IdS": 204952,
+ "PX": "338350,338450",
+ "PY": "579400,579050",
+ "In": "KAB-C-021001-1"
+ },
+ {
+ "IdS": 204953,
+ "PX": "369650,370500",
+ "PY": "541350,539050",
+ "In": "KAB-AB-026066-1"
+ },
+ {
+ "IdS": 204958,
+ "PX": "340205,340260.03",
+ "PY": "572764.96,572765.04",
+ "In": "KAB-C-056004-3"
+ },
+ {
+ "IdS": 204970,
+ "PX": "339550,339300",
+ "PY": "575100,575100",
+ "In": "KAB-AB-021008-5"
+ },
+ {
+ "IdS": 204994,
+ "PX": "346550,346600,346600,346550",
+ "PY": "548600,548550,548450,548400",
+ "In": "KAB-C-010016-8"
+ },
+ {
+ "IdS": 204995,
+ "PX": "346550,346500,346500,346550",
+ "PY": "548600,548550,548450,548400",
+ "In": "KAB-C-010016-9"
+ },
+ {
+ "IdS": 205025,
+ "PX": "335350,335700",
+ "PY": "568855,568855",
+ "In": "KAB-C-F202056-2"
+ },
+ {
+ "IdS": 205028,
+ "PX": "335350,336050",
+ "PY": "569150,569150",
+ "In": "KAB-C-F202057-3"
+ },
+ {
+ "IdS": 205029,
+ "PX": "352075.7,352666.79",
+ "PY": "577108.6,576733.63",
+ "In": "KAB-C-006002-1"
+ },
+ {
+ "IdS": 205030,
+ "PX": "352666.79,352752.71",
+ "PY": "576733.63,576679.12",
+ "In": "KAB-C-006002-2"
+ },
+ {
+ "IdS": 205031,
+ "PX": "352666.79,352613.22",
+ "PY": "576733.63,576649.19",
+ "In": "KAB-C-006002-3"
+ },
+ {
+ "IdS": 205043,
+ "PX": "345000,345000",
+ "PY": "548750,549000",
+ "In": "KAB-C-041001-1"
+ },
+ {
+ "IdS": 205052,
+ "PX": "345000,345050,345050,345000",
+ "PY": "548750,548800,548950,549000",
+ "In": "KAB-C-041001-2"
+ },
+ {
+ "IdS": 205075,
+ "PX": "333924.98,334080",
+ "PY": "558694.86,558780",
+ "In": "KAB-AB-050097-1"
+ },
+ {
+ "IdS": 205181,
+ "PX": "332850,332900,332900,332850",
+ "PY": "567150,567100,566900,566850",
+ "In": "KAB-C-200029-17"
+ },
+ {
+ "IdS": 205182,
+ "PX": "332850,332800,332800,332850",
+ "PY": "567150,567100,566900,566850",
+ "In": "KAB-C-200029-18"
+ },
+ {
+ "IdS": 205202,
+ "PX": "332850,333000",
+ "PY": "568650,568650",
+ "In": "KAB-C-200026-1"
+ },
+ {
+ "IdS": 205205,
+ "PX": "347850,347850",
+ "PY": "557950,558200",
+ "In": "KAB-AB-011018-1"
+ },
+ {
+ "IdS": 205218,
+ "PX": "333750,333750",
+ "PY": "569970,570150",
+ "In": "KAB-AB-202019-1"
+ },
+ {
+ "IdS": 205219,
+ "PX": "333750,333750",
+ "PY": "569750,569600",
+ "In": "KAB-C-202004-6"
+ },
+ {
+ "IdS": 205220,
+ "PX": "333750,333600",
+ "PY": "569750,569750",
+ "In": "KAB-C-202004-7"
+ },
+ {
+ "IdS": 205223,
+ "PX": "337450,337500,337550,337600",
+ "PY": "571400,571550,571550,571400",
+ "In": "KAB-AB-001026-1"
+ },
+ {
+ "IdS": 205224,
+ "PX": "337400,337400",
+ "PY": "571700,571600",
+ "In": "KAB-AB-001026-10"
+ },
+ {
+ "IdS": 205225,
+ "PX": "337400,337300",
+ "PY": "571600,571600",
+ "In": "KAB-AB-001026-11"
+ },
+ {
+ "IdS": 205226,
+ "PX": "337400,337400",
+ "PY": "572000,571700",
+ "In": "KAB-AB-001026-13"
+ },
+ {
+ "IdS": 205227,
+ "PX": "337400,337475",
+ "PY": "571700,571700",
+ "In": "KAB-AB-001026-14"
+ },
+ {
+ "IdS": 205232,
+ "PX": "337450,337600",
+ "PY": "571400,571400",
+ "In": "KAB-AB-001026-2"
+ },
+ {
+ "IdS": 205233,
+ "PX": "337450,337500,337550,337600",
+ "PY": "571400,571450,571450,571400",
+ "In": "KAB-AB-001026-3"
+ },
+ {
+ "IdS": 205237,
+ "PX": "337450,337500,337550,337600",
+ "PY": "571400,571500,571500,571400",
+ "In": "KAB-AB-001026-8"
+ },
+ {
+ "IdS": 205238,
+ "PX": "337400,337600,337600",
+ "PY": "571600,571600,571400",
+ "In": "KAB-AB-001026-9"
+ },
+ {
+ "IdS": 205253,
+ "PX": "331700,331350",
+ "PY": "572200,572200",
+ "In": "KAB-C-200059-1"
+ },
+ {
+ "IdS": 205287,
+ "PX": "375299.68,375300,375150",
+ "PY": "533020.19,533800,534050",
+ "In": "KAB-L-L439001-9"
+ },
+ {
+ "IdS": 205289,
+ "PX": "336300,336380",
+ "PY": "570300,570385",
+ "In": "KAB-L-L001059-1"
+ },
+ {
+ "IdS": 205299,
+ "PX": "336750,336750",
+ "PY": "571550,571650",
+ "In": "KAB-C-001024-1"
+ },
+ {
+ "IdS": 205315,
+ "PX": "337750,337110,336600",
+ "PY": "566795,565350,565350",
+ "In": "KAB-AB-028002-1"
+ },
+ {
+ "IdS": 205347,
+ "PX": "374895,374955",
+ "PY": "544950,545040",
+ "In": "KAB-AB-052037-1"
+ },
+ {
+ "IdS": 205356,
+ "PX": "373250,373210.21",
+ "PY": "545850,545794.7",
+ "In": "KAB-C-052016-3"
+ },
+ {
+ "IdS": 205431,
+ "PX": "380550,380445",
+ "PY": "541650,541295",
+ "In": "KAB-C-052006-3"
+ },
+ {
+ "IdS": 205453,
+ "PX": "340152.61,340162,340170",
+ "PY": "572849.21,572862,572865",
+ "In": "KAB-C-027007-1"
+ },
+ {
+ "IdS": 205454,
+ "PX": "340152.61,340165,340170",
+ "PY": "572849.21,572857,572865",
+ "In": "KAB-C-027007-2"
+ },
+ {
+ "IdS": 205455,
+ "PX": "340170,340180",
+ "PY": "572865,572875",
+ "In": "KAB-C-027007-3"
+ },
+ {
+ "IdS": 205457,
+ "PX": "340700,340700,340850",
+ "PY": "573200,573250,573300",
+ "In": "KAB-C-027025-5"
+ },
+ {
+ "IdS": 205458,
+ "PX": "340700,340850",
+ "PY": "573200,573300",
+ "In": "KAB-C-027025-6"
+ },
+ {
+ "IdS": 205459,
+ "PX": "340180,340194,340205",
+ "PY": "572875,572870,572875",
+ "In": "KAB-C-027007-7"
+ },
+ {
+ "IdS": 205460,
+ "PX": "340180,340194,340205",
+ "PY": "572875,572880,572875",
+ "In": "KAB-C-027007-8"
+ },
+ {
+ "IdS": 205462,
+ "PX": "343600,343190",
+ "PY": "577900,577360",
+ "In": "KAB-C-025002-2"
+ },
+ {
+ "IdS": 205463,
+ "PX": "343190,342350",
+ "PY": "577360,576300",
+ "In": "KAB-C-025002-3"
+ },
+ {
+ "IdS": 205464,
+ "PX": "343190,343400",
+ "PY": "577360,577200",
+ "In": "KAB-C-025002-4"
+ },
+ {
+ "IdS": 205465,
+ "PX": "343600,343800",
+ "PY": "577900,577750",
+ "In": "KAB-C-025002-6"
+ },
+ {
+ "IdS": 205467,
+ "PX": "336400,336750",
+ "PY": "566950,566950",
+ "In": "KAB-C-012014-1"
+ },
+ {
+ "IdS": 205693,
+ "PX": "371200,371200",
+ "PY": "537000,534925",
+ "In": "KAB-AB-026068-1"
+ },
+ {
+ "IdS": 205739,
+ "PX": "383250,383150",
+ "PY": "540100,539950",
+ "In": "KAB-C-052003-17"
+ },
+ {
+ "IdS": 205769,
+ "PX": "337100,337099.89,336950.08",
+ "PY": "571350,571550.48,571550.07",
+ "In": "KAB-C-001055-1"
+ },
+ {
+ "IdS": 205771,
+ "PX": "336950,336850",
+ "PY": "571000,571000",
+ "In": "KAB-C-001038-11"
+ },
+ {
+ "IdS": 205775,
+ "PX": "336940,336850",
+ "PY": "570890,570890",
+ "In": "KAB-AB-F001059-1"
+ },
+ {
+ "IdS": 205776,
+ "PX": "336935,336850",
+ "PY": "570700,570700",
+ "In": "KAB-AB-F001058-1"
+ },
+ {
+ "IdS": 205778,
+ "PX": "336950,337100",
+ "PY": "570800,570800",
+ "In": "KAB-C-001038-18"
+ },
+ {
+ "IdS": 205779,
+ "PX": "336950.08,336950",
+ "PY": "571550.07,571250",
+ "In": "KAB-C-001038-2"
+ },
+ {
+ "IdS": 205780,
+ "PX": "336950.08,336840",
+ "PY": "571550.07,571550",
+ "In": "KAB-C-001054-1"
+ },
+ {
+ "IdS": 205781,
+ "PX": "336950,336950",
+ "PY": "571250,571100",
+ "In": "KAB-C-001038-4"
+ },
+ {
+ "IdS": 205782,
+ "PX": "336950,337100",
+ "PY": "571250,571250",
+ "In": "KAB-C-001038-5"
+ },
+ {
+ "IdS": 205785,
+ "PX": "336950,336950",
+ "PY": "571100,571000",
+ "In": "KAB-C-001038-8"
+ },
+ {
+ "IdS": 205786,
+ "PX": "336950,337100",
+ "PY": "571100,571100",
+ "In": "KAB-C-001038-9"
+ },
+ {
+ "IdS": 205790,
+ "PX": "367050,367300",
+ "PY": "548750,548350",
+ "In": "KAB-C-026029-13"
+ },
+ {
+ "IdS": 205798,
+ "PX": "367400,367100",
+ "PY": "548950,549225",
+ "In": "KAB-C-026029-3"
+ },
+ {
+ "IdS": 205812,
+ "PX": "343900,343700",
+ "PY": "579400,579200",
+ "In": "KAB-C-006016-1"
+ },
+ {
+ "IdS": 205905,
+ "PX": "343900,343800",
+ "PY": "579400,579600",
+ "In": "KAB-C-006017-1"
+ },
+ {
+ "IdS": 205906,
+ "PX": "343800,343900",
+ "PY": "579600,579800",
+ "In": "KAB-C-006025-1"
+ },
+ {
+ "IdS": 205907,
+ "PX": "343900,344000",
+ "PY": "579800,580000",
+ "In": "KAB-C-006025-2"
+ },
+ {
+ "IdS": 205908,
+ "PX": "343900,344200",
+ "PY": "579800,579800",
+ "In": "KAB-C-006025-3"
+ },
+ {
+ "IdS": 205922,
+ "PX": "347250,347250,347450",
+ "PY": "551000,550850,550850",
+ "In": "KAB-C-051027-3"
+ },
+ {
+ "IdS": 205923,
+ "PX": "347911.11,347713.51",
+ "PY": "551123.89,551092.98",
+ "In": "KAB-C-051027-4"
+ },
+ {
+ "IdS": 205924,
+ "PX": "347942.02,347744.42,347713.51",
+ "PY": "550926.29,550895.38,551092.98",
+ "In": "KAB-C-051027-5"
+ },
+ {
+ "IdS": 205941,
+ "PX": "354450,354650",
+ "PY": "559450,559400",
+ "In": "KAB-C-042022-5"
+ },
+ {
+ "IdS": 206048,
+ "PX": "378150,378000",
+ "PY": "543050,542850",
+ "In": "KAB-C-052011-3"
+ },
+ {
+ "IdS": 206050,
+ "PX": "377818.21,377950",
+ "PY": "543274.18,543450",
+ "In": "KAB-AB-052038-1"
+ },
+ {
+ "IdS": 206061,
+ "PX": "354600,354300",
+ "PY": "559850,560000",
+ "In": "KAB-C-042018-3"
+ },
+ {
+ "IdS": 206084,
+ "PX": "335100,335350",
+ "PY": "569400,569400",
+ "In": "KAB-C-202015-2"
+ },
+ {
+ "IdS": 206085,
+ "PX": "335100,335100",
+ "PY": "569400,569200",
+ "In": "KAB-C-202015-3"
+ },
+ {
+ "IdS": 206135,
+ "PX": "354900,354550",
+ "PY": "560550,560700",
+ "In": "KAB-C-042019-3"
+ },
+ {
+ "IdS": 206178,
+ "PX": "356050,356050",
+ "PY": "563200,563050",
+ "In": "KAB-C-042023-3"
+ },
+ {
+ "IdS": 206271,
+ "PX": "355600,355350",
+ "PY": "564700,564700",
+ "In": "KAB-C-042033-1"
+ },
+ {
+ "IdS": 206272,
+ "PX": "355350,355350",
+ "PY": "564700,564900",
+ "In": "KAB-C-042033-2"
+ },
+ {
+ "IdS": 206273,
+ "PX": "355350,355250",
+ "PY": "564700,564700",
+ "In": "KAB-C-042033-3"
+ },
+ {
+ "IdS": 206274,
+ "PX": "345000,345000",
+ "PY": "551550,551900",
+ "In": "KAB-C-041003-1"
+ },
+ {
+ "IdS": 206275,
+ "PX": "345000,344860",
+ "PY": "551900,552400",
+ "In": "KAB-C-041003-2"
+ },
+ {
+ "IdS": 206276,
+ "PX": "345000,345200",
+ "PY": "551900,551900",
+ "In": "KAB-C-041003-3"
+ },
+ {
+ "IdS": 206277,
+ "PX": "344860,344600",
+ "PY": "552400,552950",
+ "In": "KAB-C-041003-4"
+ },
+ {
+ "IdS": 206278,
+ "PX": "344860,344985",
+ "PY": "552400,552400",
+ "In": "KAB-C-041003-5"
+ },
+ {
+ "IdS": 206280,
+ "PX": "344600,344480",
+ "PY": "552950,552950",
+ "In": "KAB-C-041003-7"
+ },
+ {
+ "IdS": 206281,
+ "PX": "344990,344990",
+ "PY": "553150,553860",
+ "In": "KAB-C-041008-8"
+ },
+ {
+ "IdS": 206282,
+ "PX": "344990,345135",
+ "PY": "553150,553150",
+ "In": "KAB-C-041008-9"
+ },
+ {
+ "IdS": 206285,
+ "PX": "355100,354800",
+ "PY": "563900,563900",
+ "In": "KAB-C-042031-1"
+ },
+ {
+ "IdS": 206293,
+ "PX": "345330,345215,345030,345030",
+ "PY": "553950,554110,554220,554350",
+ "In": "KAB-C-041005-1"
+ },
+ {
+ "IdS": 206295,
+ "PX": "345030,345030",
+ "PY": "554350,554520",
+ "In": "KAB-C-041005-3"
+ },
+ {
+ "IdS": 206306,
+ "PX": "350100,350050",
+ "PY": "551450,551650",
+ "In": "KAB-C-051025-3"
+ },
+ {
+ "IdS": 206308,
+ "PX": "349800,349750",
+ "PY": "551400,551800",
+ "In": "KAB-C-051025-5"
+ },
+ {
+ "IdS": 206326,
+ "PX": "349300,349300",
+ "PY": "551350,551550",
+ "In": "KAB-C-051026-3"
+ },
+ {
+ "IdS": 206328,
+ "PX": "348408.21,348436.01",
+ "PY": "551184.04,551003.56",
+ "In": "KAB-AB-051055-1"
+ },
+ {
+ "IdS": 206330,
+ "PX": "348108.71,347911.11",
+ "PY": "551154.79,551123.89",
+ "In": "KAB-C-051026-8"
+ },
+ {
+ "IdS": 206331,
+ "PX": "348108.71,348139.62,347942.02",
+ "PY": "551154.79,550957.2,550926.29",
+ "In": "KAB-C-051026-9"
+ },
+ {
+ "IdS": 206350,
+ "PX": "344300,344300",
+ "PY": "542615,542365",
+ "In": "KAB-C-050037-2"
+ },
+ {
+ "IdS": 206351,
+ "PX": "344300,344325,344325,344300",
+ "PY": "542615,542590,542385,542365",
+ "In": "KAB-C-050037-3"
+ },
+ {
+ "IdS": 206384,
+ "PX": "355900,355750",
+ "PY": "565200,565300",
+ "In": "KAB-C-042034-3"
+ },
+ {
+ "IdS": 206431,
+ "PX": "356250,356350",
+ "PY": "565750,565900",
+ "In": "KAB-C-042035-2"
+ },
+ {
+ "IdS": 206432,
+ "PX": "356250,356400",
+ "PY": "565750,565750",
+ "In": "KAB-C-042035-3"
+ },
+ {
+ "IdS": 206434,
+ "PX": "356350,356500",
+ "PY": "565900,565900",
+ "In": "KAB-C-042091-1"
+ },
+ {
+ "IdS": 206436,
+ "PX": "356500,356350",
+ "PY": "566200,566200",
+ "In": "KAB-C-042094-1"
+ },
+ {
+ "IdS": 206466,
+ "PX": "346900,347215",
+ "PY": "559700,560425",
+ "In": "KAB-AB-011011-1"
+ },
+ {
+ "IdS": 206489,
+ "PX": "371450,371250",
+ "PY": "550160.01,550160",
+ "In": "KAB-C-026035-1"
+ },
+ {
+ "IdS": 206491,
+ "PX": "371450,371450",
+ "PY": "550160.01,550550",
+ "In": "KAB-C-026035-3"
+ },
+ {
+ "IdS": 206505,
+ "PX": "339760,339950",
+ "PY": "569420,569420",
+ "In": "KAB-AB-028014-1"
+ },
+ {
+ "IdS": 206547,
+ "PX": "345425,345650",
+ "PY": "560815,561125",
+ "In": "KAB-C-011007-15"
+ },
+ {
+ "IdS": 206584,
+ "PX": "333750,333700,333700,333750",
+ "PY": "569600,569550,569450,569400",
+ "In": "KAB-AB-202006-1"
+ },
+ {
+ "IdS": 206585,
+ "PX": "333750,333750",
+ "PY": "569600,569400",
+ "In": "KAB-C-202008-1"
+ },
+ {
+ "IdS": 206586,
+ "PX": "333750,333650,333650,333750",
+ "PY": "569600,569550,569450,569400",
+ "In": "KAB-C-202007 RES-1"
+ },
+ {
+ "IdS": 206587,
+ "PX": "333750,333800,333800,333750",
+ "PY": "569600,569550,569450,569400",
+ "In": "KAB-C-202005 RES-1"
+ },
+ {
+ "IdS": 206605,
+ "PX": "338335,338110",
+ "PY": "545490,545165",
+ "In": "KAB-C-051042-1"
+ },
+ {
+ "IdS": 206611,
+ "PX": "338110,337945",
+ "PY": "545165,545275",
+ "In": "KAB-C-051042-5"
+ },
+ {
+ "IdS": 206658,
+ "PX": "355450,355450",
+ "PY": "552300,551900",
+ "In": "KAB-C-051056-3"
+ },
+ {
+ "IdS": 206672,
+ "PX": "351450,351449.58",
+ "PY": "551700,551849.29",
+ "In": "KAB-C-051024-3"
+ },
+ {
+ "IdS": 206688,
+ "PX": "344400,344199.31",
+ "PY": "585550,585498.88",
+ "In": "KAB-L-L058004-3"
+ },
+ {
+ "IdS": 206690,
+ "PX": "344700,344900",
+ "PY": "584350,584400",
+ "In": "KAB-L-L058004-5"
+ },
+ {
+ "IdS": 206694,
+ "PX": "375298.41,375299.78",
+ "PY": "532255.17,532885.18",
+ "In": "KAB-L-L439001-2"
+ },
+ {
+ "IdS": 206695,
+ "PX": "375298.41,375710.11,375708.36",
+ "PY": "532255.17,532255.23,532148.19",
+ "In": "KAB-L-L439001-3"
+ },
+ {
+ "IdS": 206713,
+ "PX": "339550,339800",
+ "PY": "571300,571300",
+ "In": "KAB-C-007009-4"
+ },
+ {
+ "IdS": 206714,
+ "PX": "339550,339550",
+ "PY": "571300,571200",
+ "In": "KAB-C-007009-5"
+ },
+ {
+ "IdS": 206728,
+ "PX": "355400,355550",
+ "PY": "561700,562050",
+ "In": "KAB-C-042021-1"
+ },
+ {
+ "IdS": 206730,
+ "PX": "355550,355900",
+ "PY": "562050,562050",
+ "In": "KAB-C-042021-3"
+ },
+ {
+ "IdS": 206764,
+ "PX": "356350,356300",
+ "PY": "570650,570850",
+ "In": "KAB-C-043010-1"
+ },
+ {
+ "IdS": 206765,
+ "PX": "356950,357150",
+ "PY": "567600,567600",
+ "In": "KAB-C-043002-1"
+ },
+ {
+ "IdS": 206780,
+ "PX": "346100,346000,346000",
+ "PY": "549450,549450,549350",
+ "In": "KAB-C-010038-1"
+ },
+ {
+ "IdS": 206849,
+ "PX": "345725,345700,345548.59,345525",
+ "PY": "551050,551075,551075.08,551050",
+ "In": "KAB-C-051029-2"
+ },
+ {
+ "IdS": 206850,
+ "PX": "345725,345700,345554.19,345525",
+ "PY": "551050,551025,551025.04,551050",
+ "In": "KAB-C-051029-3"
+ },
+ {
+ "IdS": 206851,
+ "PX": "345525,345330",
+ "PY": "551050,551050",
+ "In": "KAB-C-051029-4"
+ },
+ {
+ "IdS": 206898,
+ "PX": "347375,347430",
+ "PY": "554385,554415",
+ "In": "KAB-C-042002-4"
+ },
+ {
+ "IdS": 206899,
+ "PX": "347375,347380,347425,347430",
+ "PY": "554385,554395,554420,554415",
+ "In": "KAB-C-042002-5"
+ },
+ {
+ "IdS": 206940,
+ "PX": "339299.8,339550",
+ "PY": "547515.45,547200",
+ "In": "KAB-C-051038-2"
+ },
+ {
+ "IdS": 206941,
+ "PX": "339299.8,339224.48",
+ "PY": "547515.45,547514.72",
+ "In": "KAB-C-051038-3"
+ },
+ {
+ "IdS": 206994,
+ "PX": "341230,341045",
+ "PY": "548830,548750",
+ "In": "KAB-C-051035-1"
+ },
+ {
+ "IdS": 207000,
+ "PX": "341045,340995",
+ "PY": "548750,548860",
+ "In": "KAB-C-051035-3"
+ },
+ {
+ "IdS": 207020,
+ "PX": "348900,349585,349500",
+ "PY": "562800,563550,563550",
+ "In": "KAB-AB-056011-1"
+ },
+ {
+ "IdS": 207033,
+ "PX": "338551.78,338649.28",
+ "PY": "578699.87,578200.38",
+ "In": "KAB-AB-021002-1"
+ },
+ {
+ "IdS": 207043,
+ "PX": "351353.89,352075.7",
+ "PY": "577555.27,577108.6",
+ "In": "KAB-C-006021-2"
+ },
+ {
+ "IdS": 207044,
+ "PX": "351353.89,351300.32",
+ "PY": "577555.27,577470.83",
+ "In": "KAB-C-006021-3"
+ },
+ {
+ "IdS": 207045,
+ "PX": "351146.83,351353.89",
+ "PY": "577697.85,577555.27",
+ "In": "KAB-C-006021-4"
+ },
+ {
+ "IdS": 207046,
+ "PX": "351146.83,351093.27",
+ "PY": "577697.85,577613.41",
+ "In": "KAB-C-006021-5"
+ },
+ {
+ "IdS": 207055,
+ "PX": "344450.61,344623.9",
+ "PY": "555829.08,555928.92",
+ "In": "KAB-AB-008013-5"
+ },
+ {
+ "IdS": 207057,
+ "PX": "369650,369650",
+ "PY": "541850,541350",
+ "In": "KAB-C-026065-1"
+ },
+ {
+ "IdS": 207058,
+ "PX": "356900,356970",
+ "PY": "563700,563985",
+ "In": "KAB-C-042028-1"
+ },
+ {
+ "IdS": 207065,
+ "PX": "343850,344050",
+ "PY": "543200,543000",
+ "In": "KAB-C-050068-17"
+ },
+ {
+ "IdS": 207078,
+ "PX": "356970,357190",
+ "PY": "563985,563985",
+ "In": "KAB-C-042051-1"
+ },
+ {
+ "IdS": 207174,
+ "PX": "347450,347700",
+ "PY": "558400,558400",
+ "In": "KAB-C-011016-13"
+ },
+ {
+ "IdS": 207195,
+ "PX": "346360,346385,346500",
+ "PY": "551335,551190,551100",
+ "In": "KAB-C-010033-3"
+ },
+ {
+ "IdS": 207196,
+ "PX": "346360,346170",
+ "PY": "551335,551305",
+ "In": "KAB-C-010033-4"
+ },
+ {
+ "IdS": 207204,
+ "PX": "346500,346780",
+ "PY": "551100,551150",
+ "In": "KAB-C-023010-1"
+ },
+ {
+ "IdS": 207205,
+ "PX": "346780,346715,346550,346500",
+ "PY": "551150,551190,551165,551100",
+ "In": "KAB-C-023011-1"
+ },
+ {
+ "IdS": 207240,
+ "PX": "336100,336100",
+ "PY": "566950,567100",
+ "In": "KAB-C-002012-1"
+ },
+ {
+ "IdS": 207249,
+ "PX": "344050,344194.57",
+ "PY": "543000,543163.67",
+ "In": "KAB-C-050070-1"
+ },
+ {
+ "IdS": 207259,
+ "PX": "339800,339950",
+ "PY": "571100,571100",
+ "In": "KAB-C-007004-29"
+ },
+ {
+ "IdS": 207280,
+ "PX": "343750,343550",
+ "PY": "556000,555850",
+ "In": "KAB-C-022016-5"
+ },
+ {
+ "IdS": 207282,
+ "PX": "344050,343900",
+ "PY": "555800,555650",
+ "In": "KAB-C-022042-1"
+ },
+ {
+ "IdS": 207333,
+ "PX": "338550,338860.11",
+ "PY": "571750,571474.56",
+ "In": "KAB-C-016009-1"
+ },
+ {
+ "IdS": 207334,
+ "PX": "338860.11,339100",
+ "PY": "571474.56,571350",
+ "In": "KAB-C-016002-1"
+ },
+ {
+ "IdS": 207336,
+ "PX": "333395.08,333429.99,333499.82,333500",
+ "PY": "569774.88,569764.97,569764.88,569400",
+ "In": "KAB-C-004021-1"
+ },
+ {
+ "IdS": 207337,
+ "PX": "333500,333500",
+ "PY": "569400,569250",
+ "In": "KAB-C-004021-2"
+ },
+ {
+ "IdS": 207338,
+ "PX": "333500,333400",
+ "PY": "569400,569400",
+ "In": "KAB-C-004021-3"
+ },
+ {
+ "IdS": 207355,
+ "PX": "335399.94,335400",
+ "PY": "563104.92,562700",
+ "In": "KAB-C-003018-1"
+ },
+ {
+ "IdS": 207356,
+ "PX": "335398.32,335400.13",
+ "PY": "563550.37,563120.76",
+ "In": "KAB-AB-003025-1"
+ },
+ {
+ "IdS": 207357,
+ "PX": "335399.94,335600",
+ "PY": "563104.92,563105",
+ "In": "KAB-C-022047-1"
+ },
+ {
+ "IdS": 207394,
+ "PX": "353300,353250,353250,353300",
+ "PY": "581100,581050,580750,580700",
+ "In": "KAB-C-066009-2"
+ },
+ {
+ "IdS": 207400,
+ "PX": "353300,353350,353350,353300",
+ "PY": "581100,581050,580750,580700",
+ "In": "KAB-C-066009-3"
+ },
+ {
+ "IdS": 207403,
+ "PX": "354200,354200",
+ "PY": "581100,581400",
+ "In": "KAB-C-066011-3"
+ },
+ {
+ "IdS": 207435,
+ "PX": "345350,345569.96",
+ "PY": "581150,581149.69",
+ "In": "KAB-L-L058003-33"
+ },
+ {
+ "IdS": 207436,
+ "PX": "345350,345569.96",
+ "PY": "580950,581149.69",
+ "In": "KAB-L-L058002-27"
+ },
+ {
+ "IdS": 207437,
+ "PX": "344600,345300",
+ "PY": "574550,574900",
+ "In": "KAB-C-006009-1"
+ },
+ {
+ "IdS": 207438,
+ "PX": "345300,345750",
+ "PY": "574900,575150",
+ "In": "KAB-C-006009-2"
+ },
+ {
+ "IdS": 207439,
+ "PX": "345750,346250",
+ "PY": "575150,575650",
+ "In": "KAB-C-006009-3"
+ },
+ {
+ "IdS": 207440,
+ "PX": "346250,346250",
+ "PY": "575650,576050",
+ "In": "KAB-C-006009-6"
+ },
+ {
+ "IdS": 207441,
+ "PX": "345300,345150",
+ "PY": "574900,575150",
+ "In": "KAB-C-006009-7"
+ },
+ {
+ "IdS": 207442,
+ "PX": "345750,345600",
+ "PY": "575150,575350",
+ "In": "KAB-C-006009-8"
+ },
+ {
+ "IdS": 207443,
+ "PX": "346250,346600",
+ "PY": "575650,575650",
+ "In": "KAB-C-006009-9"
+ },
+ {
+ "IdS": 207445,
+ "PX": "338250,338400",
+ "PY": "571450,571450",
+ "In": "KAB-AB-001035-1"
+ },
+ {
+ "IdS": 207447,
+ "PX": "338600,338600",
+ "PY": "571650,571500",
+ "In": "KAB-AB-001035-11"
+ },
+ {
+ "IdS": 207448,
+ "PX": "338150,338250,338250",
+ "PY": "571550,571550,571450",
+ "In": "KAB-AB-001035-12"
+ },
+ {
+ "IdS": 207453,
+ "PX": "338150,338250",
+ "PY": "571450,571450",
+ "In": "KAB-AB-001035-2"
+ },
+ {
+ "IdS": 207461,
+ "PX": "346150,346450",
+ "PY": "552600,552600",
+ "In": "KAB-C-023008-1"
+ },
+ {
+ "IdS": 207462,
+ "PX": "346450,346450",
+ "PY": "552600,552850",
+ "In": "KAB-C-023008-4"
+ },
+ {
+ "IdS": 207463,
+ "PX": "346450,347050",
+ "PY": "552600,552600",
+ "In": "KAB-C-023008-5"
+ },
+ {
+ "IdS": 207464,
+ "PX": "347050,347050",
+ "PY": "552600,552900",
+ "In": "KAB-C-023008-6"
+ },
+ {
+ "IdS": 207465,
+ "PX": "347050,347450",
+ "PY": "552600,552600",
+ "In": "KAB-C-023008-7"
+ },
+ {
+ "IdS": 207494,
+ "PX": "335400,335929.96",
+ "PY": "562700,562699.92",
+ "In": "KAB-C-003029-1"
+ },
+ {
+ "IdS": 207495,
+ "PX": "335929.96,336550",
+ "PY": "562699.92,562700",
+ "In": "KAB-C-003017-4"
+ },
+ {
+ "IdS": 207499,
+ "PX": "335999.4,336000",
+ "PY": "563105.04,563550",
+ "In": "KAB-C-022025-3"
+ },
+ {
+ "IdS": 207502,
+ "PX": "335400,335400",
+ "PY": "562700,561350",
+ "In": "KAB-AB-003024-3"
+ },
+ {
+ "IdS": 207503,
+ "PX": "335400,334550",
+ "PY": "561350,561350",
+ "In": "KAB-AB-003024-4"
+ },
+ {
+ "IdS": 207504,
+ "PX": "335400,335802.89",
+ "PY": "561350,561349.63",
+ "In": "KAB-AB-003024-5"
+ },
+ {
+ "IdS": 207505,
+ "PX": "335398.32,335650.12",
+ "PY": "563550.37,563550",
+ "In": "KAB-AB-003019-1"
+ },
+ {
+ "IdS": 207506,
+ "PX": "332250,331750",
+ "PY": "569550,569550",
+ "In": "KAB-C-004012-1"
+ },
+ {
+ "IdS": 207508,
+ "PX": "331350,331350",
+ "PY": "569550,569750",
+ "In": "KAB-C-004012-3"
+ },
+ {
+ "IdS": 207511,
+ "PX": "331750,331350",
+ "PY": "569550,569550",
+ "In": "KAB-C-004012-6"
+ },
+ {
+ "IdS": 207512,
+ "PX": "331750,331750",
+ "PY": "569550,569750",
+ "In": "KAB-C-004012-7"
+ },
+ {
+ "IdS": 207513,
+ "PX": "332150,332150",
+ "PY": "568050,567750",
+ "In": "KAB-AB-004009-1"
+ },
+ {
+ "IdS": 207514,
+ "PX": "332150,331950",
+ "PY": "567750,567750",
+ "In": "KAB-AB-004009-2"
+ },
+ {
+ "IdS": 207515,
+ "PX": "332150,332150",
+ "PY": "567750,567500",
+ "In": "KAB-AB-004009-3"
+ },
+ {
+ "IdS": 207516,
+ "PX": "333750,333400",
+ "PY": "566850,566550",
+ "In": "KAB-C-004015-1"
+ },
+ {
+ "IdS": 207525,
+ "PX": "346970,346925",
+ "PY": "576425,576515",
+ "In": "KAB-C-006010-3"
+ },
+ {
+ "IdS": 207532,
+ "PX": "348563.77,348840",
+ "PY": "577243.54,577375",
+ "In": "KAB-C-006019-1"
+ },
+ {
+ "IdS": 207554,
+ "PX": "348840,348745",
+ "PY": "577375,577560",
+ "In": "KAB-C-006019-3"
+ },
+ {
+ "IdS": 207573,
+ "PX": "345037.18,344943.78",
+ "PY": "577798.58,577762.87",
+ "In": "KAB-C-006050-3"
+ },
+ {
+ "IdS": 207578,
+ "PX": "342648.28,342650.43",
+ "PY": "566399.64,565659.55",
+ "In": "KAB-AB-007023-1"
+ },
+ {
+ "IdS": 207580,
+ "PX": "339780.17,339779.79,339650",
+ "PY": "570649.94,570649.94,570650",
+ "In": "KAB-AB-007053-1"
+ },
+ {
+ "IdS": 207592,
+ "PX": "340100,340250",
+ "PY": "569850,569650",
+ "In": "KAB-C-007018-1"
+ },
+ {
+ "IdS": 207593,
+ "PX": "340250,340500",
+ "PY": "569650,569400",
+ "In": "KAB-C-007018-2"
+ },
+ {
+ "IdS": 207594,
+ "PX": "340250,340450",
+ "PY": "569650,569650",
+ "In": "KAB-C-007018-3"
+ },
+ {
+ "IdS": 207616,
+ "PX": "342650,342350.24",
+ "PY": "564850,564849.69",
+ "In": "KAB-C-007050-1"
+ },
+ {
+ "IdS": 207632,
+ "PX": "339800,339850,339850,339800",
+ "PY": "571550,571500,571350,571300",
+ "In": "KAB-C-007013-1"
+ },
+ {
+ "IdS": 207633,
+ "PX": "342500,342300",
+ "PY": "563600,563500",
+ "In": "KAB-C-007030-1"
+ },
+ {
+ "IdS": 207634,
+ "PX": "342300,341950",
+ "PY": "563500,563300",
+ "In": "KAB-C-007030-2"
+ },
+ {
+ "IdS": 207638,
+ "PX": "341950,342100",
+ "PY": "563300,563000",
+ "In": "KAB-C-007030-7"
+ },
+ {
+ "IdS": 207642,
+ "PX": "340949.54,341199.37",
+ "PY": "572555.22,572688.57",
+ "In": "KAB-C-007046-2"
+ },
+ {
+ "IdS": 207643,
+ "PX": "340949.54,340890.09",
+ "PY": "572555.22,572660.04",
+ "In": "KAB-C-007046-3"
+ },
+ {
+ "IdS": 207644,
+ "PX": "341199.37,341400",
+ "PY": "572688.57,572800",
+ "In": "KAB-C-007045-1"
+ },
+ {
+ "IdS": 207663,
+ "PX": "346615,346850",
+ "PY": "559895,560200",
+ "In": "KAB-C-011039-7"
+ },
+ {
+ "IdS": 207669,
+ "PX": "346430,346650",
+ "PY": "560035,560300",
+ "In": "KAB-C-011039-9"
+ },
+ {
+ "IdS": 207682,
+ "PX": "347450,347250",
+ "PY": "556950,556950",
+ "In": "KAB-C-011019-5"
+ },
+ {
+ "IdS": 207687,
+ "PX": "345220,345455",
+ "PY": "561360,561665",
+ "In": "KAB-C-011005-1"
+ },
+ {
+ "IdS": 207688,
+ "PX": "345455,345790",
+ "PY": "561665,562105",
+ "In": "KAB-AB-011005-2"
+ },
+ {
+ "IdS": 207689,
+ "PX": "345455,345615",
+ "PY": "561665,561550",
+ "In": "KAB-C-011005-3"
+ },
+ {
+ "IdS": 207690,
+ "PX": "347450,347850",
+ "PY": "557950,557950",
+ "In": "KAB-C-011017-1"
+ },
+ {
+ "IdS": 207709,
+ "PX": "345200,344850",
+ "PY": "555100,554700",
+ "In": "KAB-C-008019-3"
+ },
+ {
+ "IdS": 207743,
+ "PX": "335450,335600",
+ "PY": "570200,570200",
+ "In": "KAB-AB-012002-3"
+ },
+ {
+ "IdS": 207749,
+ "PX": "335900,335900",
+ "PY": "568200,568350",
+ "In": "KAB-AB-012016-2"
+ },
+ {
+ "IdS": 207750,
+ "PX": "335900,335900",
+ "PY": "568200,568100",
+ "In": "KAB-C-012016-3"
+ },
+ {
+ "IdS": 207761,
+ "PX": "336100,336400",
+ "PY": "566950,566950",
+ "In": "KAB-C-012013-1"
+ },
+ {
+ "IdS": 207767,
+ "PX": "336400,336400",
+ "PY": "566200,566000",
+ "In": "KAB-C-012015-8"
+ },
+ {
+ "IdS": 207768,
+ "PX": "336400,336550",
+ "PY": "566200,566200",
+ "In": "KAB-C-012015-9"
+ },
+ {
+ "IdS": 207782,
+ "PX": "335750,336100",
+ "PY": "567150,567150",
+ "In": "KAB-C-012028-1"
+ },
+ {
+ "IdS": 207801,
+ "PX": "343650,343750",
+ "PY": "588650,588250",
+ "In": "KAB-L-L059001-2"
+ },
+ {
+ "IdS": 207802,
+ "PX": "343750,343800",
+ "PY": "588250,588050",
+ "In": "KAB-L-L059001-3"
+ },
+ {
+ "IdS": 207803,
+ "PX": "343750,343900,343900",
+ "PY": "588250,588250,588150",
+ "In": "KAB-L-L059001-4"
+ },
+ {
+ "IdS": 207804,
+ "PX": "343800,343850",
+ "PY": "588050,587850",
+ "In": "KAB-L-L059001-5"
+ },
+ {
+ "IdS": 207805,
+ "PX": "343800,343900,343900",
+ "PY": "588050,588050,588150",
+ "In": "KAB-L-L059001-6"
+ },
+ {
+ "IdS": 207807,
+ "PX": "343060,342600",
+ "PY": "572450,570800",
+ "In": "KAB-C-017006-2"
+ },
+ {
+ "IdS": 207808,
+ "PX": "343060,343250",
+ "PY": "572450,572450",
+ "In": "KAB-C-017006-3"
+ },
+ {
+ "IdS": 207814,
+ "PX": "334350,334200,334200",
+ "PY": "569350,569350,569500",
+ "In": "KAB-C-013003-2"
+ },
+ {
+ "IdS": 207816,
+ "PX": "334350,334350,334300",
+ "PY": "569350,569100,569100",
+ "In": "KAB-C-013003-3"
+ },
+ {
+ "IdS": 207821,
+ "PX": "335600,335437.99,335300",
+ "PY": "570450,570450.75,570450",
+ "In": "KAB-C-013040-1"
+ },
+ {
+ "IdS": 207822,
+ "PX": "335300,335200",
+ "PY": "570450,570450",
+ "In": "KAB-C-013040-2"
+ },
+ {
+ "IdS": 207823,
+ "PX": "335300,335300",
+ "PY": "570450,570300",
+ "In": "KAB-C-013040-3"
+ },
+ {
+ "IdS": 207828,
+ "PX": "336550,336551.76",
+ "PY": "572850,573000.98",
+ "In": "KAB-AB-013019-1"
+ },
+ {
+ "IdS": 207829,
+ "PX": "336550,336550",
+ "PY": "572850,572700",
+ "In": "KAB-C-013020-1"
+ },
+ {
+ "IdS": 207842,
+ "PX": "346250,346200,346200",
+ "PY": "577450,577500,577800",
+ "In": "KAB-C-016020-10"
+ },
+ {
+ "IdS": 207843,
+ "PX": "346250,346300,346300",
+ "PY": "577450,577500,577800",
+ "In": "KAB-C-016020-11"
+ },
+ {
+ "IdS": 207844,
+ "PX": "346250,346300,346500,346550",
+ "PY": "576850,576900,576900,576850",
+ "In": "KAB-C-016020-12"
+ },
+ {
+ "IdS": 207845,
+ "PX": "346250,346250",
+ "PY": "576450,576850",
+ "In": "KAB-C-016020-2"
+ },
+ {
+ "IdS": 207846,
+ "PX": "346250,346450",
+ "PY": "576450,576450",
+ "In": "KAB-C-016020-3"
+ },
+ {
+ "IdS": 207847,
+ "PX": "346250,346250",
+ "PY": "576850,577050",
+ "In": "KAB-C-016020-4"
+ },
+ {
+ "IdS": 207848,
+ "PX": "346250,346300,346500,346550",
+ "PY": "576850,576800,576800,576850",
+ "In": "KAB-C-016020-5"
+ },
+ {
+ "IdS": 207849,
+ "PX": "346250,346250",
+ "PY": "577050,577250",
+ "In": "KAB-C-016020-6"
+ },
+ {
+ "IdS": 207850,
+ "PX": "346250,346000",
+ "PY": "577050,577050",
+ "In": "KAB-C-016020-7"
+ },
+ {
+ "IdS": 207851,
+ "PX": "346250,346250",
+ "PY": "577250,577450",
+ "In": "KAB-C-016020-8"
+ },
+ {
+ "IdS": 207852,
+ "PX": "346250,346500",
+ "PY": "577250,577250",
+ "In": "KAB-C-016020-9"
+ },
+ {
+ "IdS": 207860,
+ "PX": "339100,339350",
+ "PY": "571350,571550",
+ "In": "KAB-C-016010-1"
+ },
+ {
+ "IdS": 207861,
+ "PX": "339350,339450",
+ "PY": "571550,571550",
+ "In": "KAB-C-016010-2"
+ },
+ {
+ "IdS": 207862,
+ "PX": "339350,339350",
+ "PY": "571550,571450",
+ "In": "KAB-C-016010-3"
+ },
+ {
+ "IdS": 207863,
+ "PX": "339450,339550",
+ "PY": "571550,571550",
+ "In": "KAB-C-016010-4"
+ },
+ {
+ "IdS": 207864,
+ "PX": "339450,339450",
+ "PY": "571550,571450",
+ "In": "KAB-C-016010-5"
+ },
+ {
+ "IdS": 207868,
+ "PX": "346500,346100,346100",
+ "PY": "551100,551000,549450",
+ "In": "KAB-C-023006-1"
+ },
+ {
+ "IdS": 207869,
+ "PX": "338150,337500",
+ "PY": "570200,569950",
+ "In": "KAB-C-016031-1"
+ },
+ {
+ "IdS": 207871,
+ "PX": "335850,335810,335845",
+ "PY": "571950,571760,571750",
+ "In": "KAB-C-013009-1"
+ },
+ {
+ "IdS": 207875,
+ "PX": "335850,335750",
+ "PY": "571950,571950",
+ "In": "KAB-C-013009-3"
+ },
+ {
+ "IdS": 207882,
+ "PX": "345350,345245,345245,345350",
+ "PY": "581150,581150,580950,580950",
+ "In": "KAB-L-L058003-35"
+ },
+ {
+ "IdS": 207894,
+ "PX": "340150,340350",
+ "PY": "573500,573500",
+ "In": "KAB-L-L058001-5"
+ },
+ {
+ "IdS": 207895,
+ "PX": "340900,339900",
+ "PY": "574950,574300",
+ "In": "KAB-L-L058001-6"
+ },
+ {
+ "IdS": 207896,
+ "PX": "340900,340750",
+ "PY": "574950,575100",
+ "In": "KAB-L-L058001-7"
+ },
+ {
+ "IdS": 207920,
+ "PX": "346000.37,346000",
+ "PY": "576489.76,576700",
+ "In": "KAB-C-006004-1"
+ },
+ {
+ "IdS": 207934,
+ "PX": "329500,330600",
+ "PY": "562750,563250",
+ "In": "KAB-L-L077001-1"
+ },
+ {
+ "IdS": 207955,
+ "PX": "340150,340150",
+ "PY": "571750,571650",
+ "In": "KAB-C-021012-1"
+ },
+ {
+ "IdS": 207956,
+ "PX": "340150,340150",
+ "PY": "571650,571150",
+ "In": "KAB-C-021012-2"
+ },
+ {
+ "IdS": 207957,
+ "PX": "340150,340350",
+ "PY": "571650,571650.01",
+ "In": "KAB-C-021012-3"
+ },
+ {
+ "IdS": 207958,
+ "PX": "340150,340150,340050",
+ "PY": "571150,570350,570350",
+ "In": "KAB-C-021012-4"
+ },
+ {
+ "IdS": 207959,
+ "PX": "340150,340350",
+ "PY": "571150,571150",
+ "In": "KAB-C-021012-5"
+ },
+ {
+ "IdS": 208002,
+ "PX": "342100,342300",
+ "PY": "573150,573250",
+ "In": "KAB-C-006006-10"
+ },
+ {
+ "IdS": 208003,
+ "PX": "342300,342500",
+ "PY": "573250,573350",
+ "In": "KAB-C-006006-6"
+ },
+ {
+ "IdS": 208004,
+ "PX": "342300,342350",
+ "PY": "573250,573150",
+ "In": "KAB-C-006006-7"
+ },
+ {
+ "IdS": 208005,
+ "PX": "342500,342500,342650,342700",
+ "PY": "573350,573450,573500,573450",
+ "In": "KAB-C-006006-8"
+ },
+ {
+ "IdS": 208006,
+ "PX": "342500,342700",
+ "PY": "573350,573450",
+ "In": "KAB-C-006006-9"
+ },
+ {
+ "IdS": 208007,
+ "PX": "366000,365900",
+ "PY": "547700,547450",
+ "In": "KAB-C-026071-2"
+ },
+ {
+ "IdS": 208008,
+ "PX": "365900,365700",
+ "PY": "547450,547450",
+ "In": "KAB-C-026071-4"
+ },
+ {
+ "IdS": 208009,
+ "PX": "365900,365800",
+ "PY": "547450,547200",
+ "In": "KAB-C-026071-5"
+ },
+ {
+ "IdS": 208030,
+ "PX": "346350,346350,346100,346100",
+ "PY": "545000,544800,544800,545000",
+ "In": "KAB-C-010021-12"
+ },
+ {
+ "IdS": 208031,
+ "PX": "346350,346100",
+ "PY": "545000,545000",
+ "In": "KAB-C-010021-13"
+ },
+ {
+ "IdS": 208043,
+ "PX": "346550,346350",
+ "PY": "545000,545000",
+ "In": "KAB-C-010021-25"
+ },
+ {
+ "IdS": 208047,
+ "PX": "346550,346350",
+ "PY": "544600,544600",
+ "In": "KAB-C-010021-29"
+ },
+ {
+ "IdS": 208048,
+ "PX": "346550,346350",
+ "PY": "545800,545800",
+ "In": "KAB-C-010002-5"
+ },
+ {
+ "IdS": 208053,
+ "PX": "346549.96,346705",
+ "PY": "544384.65,544385",
+ "In": "KAB-C-010010-1"
+ },
+ {
+ "IdS": 208054,
+ "PX": "346550,346750",
+ "PY": "544100,543700",
+ "In": "KAB-C-010012-2"
+ },
+ {
+ "IdS": 208055,
+ "PX": "346550,346350",
+ "PY": "544100,544100",
+ "In": "KAB-C-010012-3"
+ },
+ {
+ "IdS": 208062,
+ "PX": "346550,346724.99",
+ "PY": "545600,545600",
+ "In": "KAB-C-010002-3"
+ },
+ {
+ "IdS": 208108,
+ "PX": "338350,338000",
+ "PY": "567499.99,567500",
+ "In": "KAB-C-009016-1"
+ },
+ {
+ "IdS": 208109,
+ "PX": "338000,338000",
+ "PY": "567500,567300",
+ "In": "KAB-C-009001-1"
+ },
+ {
+ "IdS": 208112,
+ "PX": "337750,337400",
+ "PY": "566795,566400",
+ "In": "KAB-C-009002-1"
+ },
+ {
+ "IdS": 208116,
+ "PX": "338000,337955",
+ "PY": "567300,567090",
+ "In": "KAB-C-009001-2"
+ },
+ {
+ "IdS": 208117,
+ "PX": "338000,338200",
+ "PY": "567300,567300",
+ "In": "KAB-C-009001-3"
+ },
+ {
+ "IdS": 208120,
+ "PX": "346070,346235",
+ "PY": "553135,553165",
+ "In": "KAB-C-010001-11 NK"
+ },
+ {
+ "IdS": 208133,
+ "PX": "345905,345990",
+ "PY": "553985,554000",
+ "In": "KAB-C-010001-5 NK"
+ },
+ {
+ "IdS": 208134,
+ "PX": "345905,345905,346030",
+ "PY": "553985,553985,553340",
+ "In": "KAB-C-010001-6 NK"
+ },
+ {
+ "IdS": 208136,
+ "PX": "346030,346285",
+ "PY": "553340,553390",
+ "In": "KAB-C-010001-9 NK"
+ },
+ {
+ "IdS": 208144,
+ "PX": "346550,346600,346600,346550",
+ "PY": "548400,548350,548250,548200",
+ "In": "KAB-C-010018-1"
+ },
+ {
+ "IdS": 208154,
+ "PX": "346550,346550",
+ "PY": "548200,548000",
+ "In": "KAB-C-010018-2"
+ },
+ {
+ "IdS": 208158,
+ "PX": "346550,346325",
+ "PY": "546700,546700",
+ "In": "KAB-C-010018-24"
+ },
+ {
+ "IdS": 208159,
+ "PX": "346550,346550",
+ "PY": "546700,546500",
+ "In": "KAB-C-010018-25"
+ },
+ {
+ "IdS": 208161,
+ "PX": "346550,346750",
+ "PY": "548000,548000",
+ "In": "KAB-C-010018-4"
+ },
+ {
+ "IdS": 208162,
+ "PX": "346550,346500,346500,346550",
+ "PY": "548400,548350,548260,548200",
+ "In": "KAB-C-010018-5"
+ },
+ {
+ "IdS": 208163,
+ "PX": "346550,346400",
+ "PY": "548000,548000",
+ "In": "KAB-C-010018-6"
+ },
+ {
+ "IdS": 208166,
+ "PX": "339000,339800,339800",
+ "PY": "571650,571650,571550",
+ "In": "KAB-C-007001-1"
+ },
+ {
+ "IdS": 208168,
+ "PX": "370500,371200",
+ "PY": "539050,537000",
+ "In": "KAB-AB-026067-1"
+ },
+ {
+ "IdS": 208188,
+ "PX": "336569.61,337554.34",
+ "PY": "562675.67,561288.15",
+ "In": "KAB-AB-003037-1"
+ },
+ {
+ "IdS": 208232,
+ "PX": "334650,334850",
+ "PY": "565550,565550",
+ "In": "KAB-C-200031-17"
+ },
+ {
+ "IdS": 208233,
+ "PX": "334650,334650",
+ "PY": "565550,565350",
+ "In": "KAB-C-200031-14"
+ },
+ {
+ "IdS": 208235,
+ "PX": "334950,334950",
+ "PY": "566550,566700",
+ "In": "KAB-C-200011-3"
+ },
+ {
+ "IdS": 208236,
+ "PX": "334950,334950",
+ "PY": "566450,566400",
+ "In": "KAB-C-200011-8"
+ },
+ {
+ "IdS": 208237,
+ "PX": "334950,335100",
+ "PY": "566450,566450",
+ "In": "KAB-C-200011-5"
+ },
+ {
+ "IdS": 208247,
+ "PX": "334200,334200",
+ "PY": "566350,566200",
+ "In": "KAB-C-200010-3"
+ },
+ {
+ "IdS": 208252,
+ "PX": "334650,334650",
+ "PY": "566300,565550",
+ "In": "KAB-C-200031-12"
+ },
+ {
+ "IdS": 208253,
+ "PX": "334650,334800",
+ "PY": "566300,566300",
+ "In": "KAB-C-200031-15"
+ },
+ {
+ "IdS": 208266,
+ "PX": "340350,340250",
+ "PY": "559900,559800",
+ "In": "KAB-C-022018-11"
+ },
+ {
+ "IdS": 208293,
+ "PX": "341045,341045",
+ "PY": "559330,559435",
+ "In": "KAB-C-022040-1"
+ },
+ {
+ "IdS": 208294,
+ "PX": "338940.8,338850.92",
+ "PY": "560884.52,560779.69",
+ "In": "KAB-C-022036-1"
+ },
+ {
+ "IdS": 208320,
+ "PX": "352045,352045",
+ "PY": "580300,580445",
+ "In": "KAB-C-066003-3"
+ },
+ {
+ "IdS": 208351,
+ "PX": "332250,332400",
+ "PY": "569050,569050",
+ "In": "KAB-C-200004-29"
+ },
+ {
+ "IdS": 208353,
+ "PX": "333750,333850,333850,333900",
+ "PY": "569400,569400,569600,569600",
+ "In": "KAB-C-202011-1"
+ },
+ {
+ "IdS": 208354,
+ "PX": "334050,334050",
+ "PY": "569200,569170",
+ "In": "KAB-C-202011-11"
+ },
+ {
+ "IdS": 208359,
+ "PX": "333900,333900",
+ "PY": "569600,569350",
+ "In": "KAB-C-202011-16"
+ },
+ {
+ "IdS": 208360,
+ "PX": "333900,333900",
+ "PY": "569600,569700",
+ "In": "KAB-C-202011-17"
+ },
+ {
+ "IdS": 208361,
+ "PX": "333900,334050",
+ "PY": "569350,569200",
+ "In": "KAB-C-202011-2"
+ },
+ {
+ "IdS": 208363,
+ "PX": "334050,334200",
+ "PY": "569200,569200",
+ "In": "KAB-C-202011-4"
+ },
+ {
+ "IdS": 208364,
+ "PX": "334050,334150",
+ "PY": "569200,569350",
+ "In": "KAB-C-202011-5"
+ },
+ {
+ "IdS": 208365,
+ "PX": "334150,334150",
+ "PY": "569350,569450",
+ "In": "KAB-C-202011-7"
+ },
+ {
+ "IdS": 208367,
+ "PX": "334200,334300",
+ "PY": "569200,569100",
+ "In": "KAB-C-202011-9"
+ },
+ {
+ "IdS": 208368,
+ "PX": "333750,333750,333850,333900",
+ "PY": "569400,569150,569150,569350",
+ "In": "KAB-C-202010-1"
+ },
+ {
+ "IdS": 208372,
+ "PX": "334800,334700,334700,334800",
+ "PY": "569300,569300,569550,569600",
+ "In": "KAB-C-202010-6"
+ },
+ {
+ "IdS": 208373,
+ "PX": "334800,334800",
+ "PY": "569300,569600",
+ "In": "KAB-C-202010-7"
+ },
+ {
+ "IdS": 208377,
+ "PX": "334185.07,334185",
+ "PY": "570300.05,570095",
+ "In": "KAB-AB-001060-1"
+ },
+ {
+ "IdS": 208378,
+ "PX": "334185.07,334000.31",
+ "PY": "570300.05,570299.86",
+ "In": "KAB-C-202019-1"
+ },
+ {
+ "IdS": 208380,
+ "PX": "338489.45,341250",
+ "PY": "561524.04,559500",
+ "In": "KAB-C-853006-1"
+ },
+ {
+ "IdS": 208437,
+ "PX": "338450,338250",
+ "PY": "558550,558700",
+ "In": "KAB-AB-003009-3"
+ },
+ {
+ "IdS": 208456,
+ "PX": "336350.13,336350.02",
+ "PY": "571234.76,571194.66",
+ "In": "KAB-AB-001055(A.B.)-1"
+ },
+ {
+ "IdS": 208457,
+ "PX": "336329.96,336329.88,336550",
+ "PY": "571250,571090.05,570900",
+ "In": "KAB-C-001014-29"
+ },
+ {
+ "IdS": 208467,
+ "PX": "345250,345450,345800",
+ "PY": "582000,582000,582150",
+ "In": "KAB-L-L058003-21"
+ },
+ {
+ "IdS": 208469,
+ "PX": "345775,345830",
+ "PY": "553950,553810",
+ "In": "KAB-C-023001-1"
+ },
+ {
+ "IdS": 208470,
+ "PX": "346760,346775",
+ "PY": "551925,551950",
+ "In": "KAB-C-023001-10"
+ },
+ {
+ "IdS": 208471,
+ "PX": "345830,345900",
+ "PY": "553810,553420",
+ "In": "KAB-C-023001-2"
+ },
+ {
+ "IdS": 208472,
+ "PX": "345900,345660",
+ "PY": "553420,553390",
+ "In": "KAB-C-023001-4"
+ },
+ {
+ "IdS": 208473,
+ "PX": "345830,345780",
+ "PY": "553810,553810",
+ "In": "KAB-C-023001-5"
+ },
+ {
+ "IdS": 208474,
+ "PX": "345900,346085,346625,346760",
+ "PY": "553420,552365,552300,551925",
+ "In": "KAB-C-023001-7"
+ },
+ {
+ "IdS": 208475,
+ "PX": "346760,346500,346500",
+ "PY": "551925,551570,551100",
+ "In": "KAB-C-023001-9"
+ },
+ {
+ "IdS": 208476,
+ "PX": "338700,339300",
+ "PY": "567450,567450",
+ "In": "KAB-AB-409001-1"
+ },
+ {
+ "IdS": 208486,
+ "PX": "337380,337475",
+ "PY": "561910,561975",
+ "In": "KAB-C-008021-3"
+ },
+ {
+ "IdS": 208496,
+ "PX": "336100,336200",
+ "PY": "571050,571250",
+ "In": "KAB-C-001006-26"
+ },
+ {
+ "IdS": 208497,
+ "PX": "336100,336100,336200",
+ "PY": "571050,571250,571250",
+ "In": "KAB-C-001006-27"
+ },
+ {
+ "IdS": 208501,
+ "PX": "335925,336000",
+ "PY": "570950,570950",
+ "In": "KAB-C-001010-6"
+ },
+ {
+ "IdS": 208505,
+ "PX": "336000,336000",
+ "PY": "571050,571150",
+ "In": "KAB-C-001012-1"
+ },
+ {
+ "IdS": 208514,
+ "PX": "343900,343600",
+ "PY": "579400,579500",
+ "In": "KAB-C-006018-1"
+ },
+ {
+ "IdS": 208515,
+ "PX": "343600,343400",
+ "PY": "579500,579600",
+ "In": "KAB-C-006018-2"
+ },
+ {
+ "IdS": 208516,
+ "PX": "343600,343800",
+ "PY": "579500,579600",
+ "In": "KAB-C-006018-3"
+ },
+ {
+ "IdS": 208517,
+ "PX": "343400,343200",
+ "PY": "579600,579700",
+ "In": "KAB-C-006018-4"
+ },
+ {
+ "IdS": 208526,
+ "PX": "338580,338770",
+ "PY": "591420,591385",
+ "In": "KAB-C-063004-3"
+ },
+ {
+ "IdS": 208527,
+ "PX": "338530,338470,338445,338480",
+ "PY": "591225,591190,591090,591030",
+ "In": "KAB-C-063004-4"
+ },
+ {
+ "IdS": 208528,
+ "PX": "338530,338570,338550,338480",
+ "PY": "591225,591175,591070,591030",
+ "In": "KAB-C-063004-5"
+ },
+ {
+ "IdS": 208533,
+ "PX": "332150,332150,331750",
+ "PY": "568050,568050,568050",
+ "In": "KAB-C-004006-1"
+ },
+ {
+ "IdS": 208534,
+ "PX": "344000,344100",
+ "PY": "580000,580200",
+ "In": "KAB-C-014002-1"
+ },
+ {
+ "IdS": 208536,
+ "PX": "344100,344400",
+ "PY": "580200,580200",
+ "In": "KAB-C-014002-3"
+ },
+ {
+ "IdS": 208541,
+ "PX": "345267.72,345605.45",
+ "PY": "583829.68,584122.83",
+ "In": "KAB-C-014010-8"
+ },
+ {
+ "IdS": 208567,
+ "PX": "350045,349930,349930",
+ "PY": "580615,580700,580700",
+ "In": "KAB-C-066006-2"
+ },
+ {
+ "IdS": 208578,
+ "PX": "350045,350005,349930,349930",
+ "PY": "580615,580605,580660,580700",
+ "In": "KAB-C-066006-3"
+ },
+ {
+ "IdS": 208582,
+ "PX": "349850,349725",
+ "PY": "580760,580850",
+ "In": "KAB-C-066006-5"
+ },
+ {
+ "IdS": 208583,
+ "PX": "349850,349795,349725,349725",
+ "PY": "580760,580755,580800,580850",
+ "In": "KAB-C-066006-6"
+ },
+ {
+ "IdS": 208608,
+ "PX": "341400,341500",
+ "PY": "572800,572850",
+ "In": "KAB-C-007038-1"
+ },
+ {
+ "IdS": 208609,
+ "PX": "341500,341700",
+ "PY": "572850,572950",
+ "In": "KAB-C-007038-2"
+ },
+ {
+ "IdS": 208610,
+ "PX": "341700,341800",
+ "PY": "572950,572800",
+ "In": "KAB-C-007038-3"
+ },
+ {
+ "IdS": 208611,
+ "PX": "341700,341900",
+ "PY": "572950,573050",
+ "In": "KAB-C-007038-4"
+ },
+ {
+ "IdS": 208612,
+ "PX": "341500,341600",
+ "PY": "572850,572700",
+ "In": "KAB-C-007038-5"
+ },
+ {
+ "IdS": 208613,
+ "PX": "341900,342100",
+ "PY": "573050,573150",
+ "In": "KAB-C-007038-6"
+ },
+ {
+ "IdS": 208614,
+ "PX": "341900,341800",
+ "PY": "573050,573200",
+ "In": "KAB-C-007038-7"
+ },
+ {
+ "IdS": 208625,
+ "PX": "344600,344600",
+ "PY": "558800,559100",
+ "In": "KAB-C-022049-3"
+ },
+ {
+ "IdS": 208663,
+ "PX": "336515,336700",
+ "PY": "571250,571250",
+ "In": "KAB-C-001002-1"
+ },
+ {
+ "IdS": 208667,
+ "PX": "337300,337345,337400,337450",
+ "PY": "571400,571450,571450,571400",
+ "In": "KAB-AB-001019-4"
+ },
+ {
+ "IdS": 208668,
+ "PX": "337300,337345,337400,337450",
+ "PY": "571400,571550,571550,571400",
+ "In": "KAB-AB-001019-3"
+ },
+ {
+ "IdS": 208669,
+ "PX": "337300,337400",
+ "PY": "571400,571400",
+ "In": "KAB-AB-001019-30"
+ },
+ {
+ "IdS": 208670,
+ "PX": "337280,337450",
+ "PY": "571385,571300",
+ "In": "KAB-C-001057-31"
+ },
+ {
+ "IdS": 208671,
+ "PX": "337400,337450",
+ "PY": "571400,571400",
+ "In": "KAB-AB-001019-32"
+ },
+ {
+ "IdS": 208672,
+ "PX": "337300,337345,337400,337450",
+ "PY": "571400,571495,571495,571400",
+ "In": "KAB-AB-001019-2"
+ },
+ {
+ "IdS": 208673,
+ "PX": "337450,337600",
+ "PY": "571300,571300",
+ "In": "KAB-C-001057-34"
+ },
+ {
+ "IdS": 208678,
+ "PX": "337450,337600",
+ "PY": "571150,571150",
+ "In": "KAB-C-001057-39"
+ },
+ {
+ "IdS": 208679,
+ "PX": "337750,337500",
+ "PY": "570900,570900",
+ "In": "KAB-AB-001048(A.B.)-1"
+ },
+ {
+ "IdS": 208680,
+ "PX": "337500,337350",
+ "PY": "571000,571000",
+ "In": "KAB-AB-001048(A.B.)-3"
+ },
+ {
+ "IdS": 208681,
+ "PX": "337500,337500",
+ "PY": "570900,571000",
+ "In": "KAB-AB-001048(A.B.)-2"
+ },
+ {
+ "IdS": 208691,
+ "PX": "336699.88,336700",
+ "PY": "571350,571450",
+ "In": "KAB-C-001002-6"
+ },
+ {
+ "IdS": 208698,
+ "PX": "343500,343000",
+ "PY": "578300,577650",
+ "In": "KAB-L-L058002-6"
+ },
+ {
+ "IdS": 208699,
+ "PX": "343500,343300",
+ "PY": "578300,578450",
+ "In": "KAB-L-L058002-7"
+ },
+ {
+ "IdS": 208701,
+ "PX": "343000,342850",
+ "PY": "577650,577750",
+ "In": "KAB-L-L058002-9"
+ },
+ {
+ "IdS": 208703,
+ "PX": "343900,343983.57",
+ "PY": "578800,578739.31",
+ "In": "KAB-L-L058002-5"
+ },
+ {
+ "IdS": 208706,
+ "PX": "342450,342400,342150",
+ "PY": "576949.99,577000,577000",
+ "In": "KAB-L-L058002-11"
+ },
+ {
+ "IdS": 208707,
+ "PX": "342250,342200,342150",
+ "PY": "576700,576750,577000",
+ "In": "KAB-L-L058001-13"
+ },
+ {
+ "IdS": 208708,
+ "PX": "356800,356800",
+ "PY": "566700,566850",
+ "In": "KAB-C-043001-1"
+ },
+ {
+ "IdS": 208710,
+ "PX": "356800,356950",
+ "PY": "566850,566850",
+ "In": "KAB-C-043001-3"
+ },
+ {
+ "IdS": 208711,
+ "PX": "356900,356950",
+ "PY": "567400,567600",
+ "In": "KAB-C-043014-4"
+ },
+ {
+ "IdS": 208712,
+ "PX": "356900,357100",
+ "PY": "567400,567400",
+ "In": "KAB-C-043014-5"
+ },
+ {
+ "IdS": 208713,
+ "PX": "341001.07,341000",
+ "PY": "558912.73,558750",
+ "In": "KAB-AB-008009-1"
+ },
+ {
+ "IdS": 208714,
+ "PX": "354350,354100",
+ "PY": "568250,568400",
+ "In": "KAB-C-042041-1"
+ },
+ {
+ "IdS": 208715,
+ "PX": "354100,353900",
+ "PY": "568400,568500",
+ "In": "KAB-C-042041-2"
+ },
+ {
+ "IdS": 208716,
+ "PX": "354100,354250",
+ "PY": "568400,568600",
+ "In": "KAB-C-042041-3"
+ },
+ {
+ "IdS": 208717,
+ "PX": "333500,333250",
+ "PY": "570500,570500",
+ "In": "KAB-AB-004018(A.B.)-1"
+ },
+ {
+ "IdS": 208718,
+ "PX": "333500,333800",
+ "PY": "568650,568650",
+ "In": "KAB-C-004020-10"
+ },
+ {
+ "IdS": 208719,
+ "PX": "333500,333500",
+ "PY": "568650,568150",
+ "In": "KAB-AB-004020-11"
+ },
+ {
+ "IdS": 208720,
+ "PX": "333500,333500",
+ "PY": "568150,567900",
+ "In": "KAB-AB-004020-12"
+ },
+ {
+ "IdS": 208721,
+ "PX": "333500,333750",
+ "PY": "568150,568150",
+ "In": "KAB-AB-004020-13"
+ },
+ {
+ "IdS": 208722,
+ "PX": "333900,334000,334000,334200",
+ "PY": "569350,569350,569500,569500",
+ "In": "KAB-C-002016-1"
+ },
+ {
+ "IdS": 208725,
+ "PX": "333250,333250",
+ "PY": "570500,569850",
+ "In": "KAB-AB-004018(A.B.)-2"
+ },
+ {
+ "IdS": 208727,
+ "PX": "333250,333320",
+ "PY": "569850,569850",
+ "In": "KAB-AB-004018(A.B.)-5"
+ },
+ {
+ "IdS": 208731,
+ "PX": "333500,333300",
+ "PY": "568650,568650",
+ "In": "KAB-C-004020-9"
+ },
+ {
+ "IdS": 208760,
+ "PX": "335550.31,335550",
+ "PY": "565949.92,565800",
+ "In": "KAB-AB-002006-1"
+ },
+ {
+ "IdS": 208761,
+ "PX": "335400,335524.88",
+ "PY": "565200,565200.4",
+ "In": "KAB-AB-002019-3"
+ },
+ {
+ "IdS": 208762,
+ "PX": "335400,335400",
+ "PY": "565650,565500",
+ "In": "KAB-AB-002006-12"
+ },
+ {
+ "IdS": 208764,
+ "PX": "335400,335400.33",
+ "PY": "565500,565350.48",
+ "In": "KAB-AB-002006-2"
+ },
+ {
+ "IdS": 208765,
+ "PX": "335400,335600",
+ "PY": "565650,565650",
+ "In": "KAB-AB-002006-3"
+ },
+ {
+ "IdS": 208767,
+ "PX": "335400.33,335400",
+ "PY": "565350.48,565200",
+ "In": "KAB-AB-002019-1"
+ },
+ {
+ "IdS": 208768,
+ "PX": "335400,335400,335150,335102.86",
+ "PY": "565200,564800,564800,564748.76",
+ "In": "KAB-AB-002019-2"
+ },
+ {
+ "IdS": 208769,
+ "PX": "335550,335400",
+ "PY": "565800,565800",
+ "In": "KAB-AB-002006-7"
+ },
+ {
+ "IdS": 208770,
+ "PX": "335400,335400",
+ "PY": "565800,565650",
+ "In": "KAB-AB-002006-9"
+ },
+ {
+ "IdS": 208771,
+ "PX": "335102.86,335150,335400,335398.32",
+ "PY": "564748.76,564700,564700,563550.37",
+ "In": "KAB-AB-003020-1"
+ },
+ {
+ "IdS": 208781,
+ "PX": "343975,344100",
+ "PY": "556705,556775",
+ "In": "KAB-AB-008012-3"
+ },
+ {
+ "IdS": 208833,
+ "PX": "333395.08,333425.04,333424.93,333750",
+ "PY": "569774.88,569749.91,569600.46,569600",
+ "In": "KAB-C-202018-1"
+ },
+ {
+ "IdS": 208917,
+ "PX": "338000,338000",
+ "PY": "567500,567750",
+ "In": "KAB-C-009021-1"
+ },
+ {
+ "IdS": 208918,
+ "PX": "338000,337750",
+ "PY": "567750,567750",
+ "In": "KAB-C-009021-2"
+ },
+ {
+ "IdS": 208919,
+ "PX": "338000,338000",
+ "PY": "567750,567950",
+ "In": "KAB-C-009021-3"
+ },
+ {
+ "IdS": 208939,
+ "PX": "356500,356450",
+ "PY": "563300,563200",
+ "In": "KAB-C-042067-5"
+ },
+ {
+ "IdS": 208941,
+ "PX": "340100,340100",
+ "PY": "570200,569850",
+ "In": "KAB-C-007017-1"
+ },
+ {
+ "IdS": 208957,
+ "PX": "354929.87,354868.14",
+ "PY": "562424.98,562490.53",
+ "In": "KAB-AB-057002-24"
+ },
+ {
+ "IdS": 208963,
+ "PX": "342200,342650",
+ "PY": "568150,567750",
+ "In": "KAB-AB-007022-1"
+ },
+ {
+ "IdS": 208965,
+ "PX": "342650,342900",
+ "PY": "567750,567750",
+ "In": "KAB-AB-007022-3"
+ },
+ {
+ "IdS": 208968,
+ "PX": "350300,350400,350500,350500",
+ "PY": "555800,555800,555850,555900",
+ "In": "KAB-C-042006-1"
+ },
+ {
+ "IdS": 208973,
+ "PX": "350870,351000",
+ "PY": "556055,556100",
+ "In": "KAB-C-042078-1"
+ },
+ {
+ "IdS": 208975,
+ "PX": "350300,350500",
+ "PY": "555800,555900",
+ "In": "KAB-C-042006-2"
+ },
+ {
+ "IdS": 208976,
+ "PX": "350500,350600",
+ "PY": "555900,555950",
+ "In": "KAB-C-042006-3"
+ },
+ {
+ "IdS": 208977,
+ "PX": "351000,351100,351200,351200",
+ "PY": "556100,556100,556150,556200",
+ "In": "KAB-C-042078-4"
+ },
+ {
+ "IdS": 208978,
+ "PX": "351000,351200",
+ "PY": "556100,556200",
+ "In": "KAB-C-042078-5"
+ },
+ {
+ "IdS": 208980,
+ "PX": "350600,350650",
+ "PY": "555950,555850",
+ "In": "KAB-C-042006-7"
+ },
+ {
+ "IdS": 208985,
+ "PX": "341400,341300",
+ "PY": "572800,572950",
+ "In": "KAB-AB-007041-1"
+ },
+ {
+ "IdS": 208998,
+ "PX": "338774.73,338600,338550",
+ "PY": "581575.28,581750,581750",
+ "In": "KAB-C-013001-5"
+ },
+ {
+ "IdS": 209000,
+ "PX": "338550,338550,338700,338725.31",
+ "PY": "581750,581700,581550,581524.71",
+ "In": "KAB-C-013001-7"
+ },
+ {
+ "IdS": 209007,
+ "PX": "335750,335600",
+ "PY": "570200,570200",
+ "In": "KAB-AB-012003-5"
+ },
+ {
+ "IdS": 209012,
+ "PX": "345605.45,345915",
+ "PY": "584122.83,584870",
+ "In": "KAB-C-014005-1"
+ },
+ {
+ "IdS": 209015,
+ "PX": "346755,347300",
+ "PY": "586895,588200",
+ "In": "KAB-C-014009-1"
+ },
+ {
+ "IdS": 209048,
+ "PX": "336515,336515,336650",
+ "PY": "571250,571195,571100",
+ "In": "KAB-C-001043-1"
+ },
+ {
+ "IdS": 209049,
+ "PX": "336650,336650",
+ "PY": "571100,571025",
+ "In": "KAB-C-001043-2"
+ },
+ {
+ "IdS": 209050,
+ "PX": "336650,336575",
+ "PY": "571100,571100",
+ "In": "KAB-C-001043-3"
+ },
+ {
+ "IdS": 209051,
+ "PX": "336650.03,336650",
+ "PY": "571014.95,570950",
+ "In": "KAB-AB-001047(A.B)-4"
+ },
+ {
+ "IdS": 209052,
+ "PX": "336650,336575",
+ "PY": "571025,571025",
+ "In": "KAB-C-001043-5"
+ },
+ {
+ "IdS": 209075,
+ "PX": "335650,335640,335580,335570",
+ "PY": "571200,571195,571195,571200",
+ "In": "KAB-C-013008-3"
+ },
+ {
+ "IdS": 209086,
+ "PX": "337356.18,337514.94",
+ "PY": "562710.11,562479.97",
+ "In": "KAB-C-022012-1"
+ },
+ {
+ "IdS": 209087,
+ "PX": "337356.18,337525",
+ "PY": "562710.11,562820",
+ "In": "KAB-C-022006-1"
+ },
+ {
+ "IdS": 209122,
+ "PX": "336400,336775.15,336849.97",
+ "PY": "563900,563349.64,563339.95",
+ "In": "KAB-C-003001-1"
+ },
+ {
+ "IdS": 209124,
+ "PX": "336849.97,336940.39",
+ "PY": "563339.95,563400.39",
+ "In": "KAB-C-003028-1"
+ },
+ {
+ "IdS": 209125,
+ "PX": "343450,346334.69",
+ "PY": "556500,554432.16",
+ "In": "KAB-C-853009-1"
+ },
+ {
+ "IdS": 209133,
+ "PX": "353600,353700",
+ "PY": "557350,557400",
+ "In": "KAB-C-042015-2"
+ },
+ {
+ "IdS": 209134,
+ "PX": "353600,353500",
+ "PY": "557350,557500",
+ "In": "KAB-C-042015-3"
+ },
+ {
+ "IdS": 209136,
+ "PX": "353700,353800",
+ "PY": "557400,557250",
+ "In": "KAB-C-042015-5"
+ },
+ {
+ "IdS": 209137,
+ "PX": "353900,354100",
+ "PY": "557500,557600",
+ "In": "KAB-C-042086-6"
+ },
+ {
+ "IdS": 209138,
+ "PX": "353900,353800",
+ "PY": "557500,557700",
+ "In": "KAB-C-042086-7"
+ },
+ {
+ "IdS": 209169,
+ "PX": "354100,353850",
+ "PY": "557600,558100",
+ "In": "KAB-C-042016-1"
+ },
+ {
+ "IdS": 209171,
+ "PX": "353850,353550",
+ "PY": "558100,558100",
+ "In": "KAB-C-042016-3"
+ },
+ {
+ "IdS": 209188,
+ "PX": "335150,335150",
+ "PY": "567200,567100",
+ "In": "KAB-C-002027-1"
+ },
+ {
+ "IdS": 209192,
+ "PX": "335300,335450",
+ "PY": "566615,566615",
+ "In": "KAB-C-002025-17"
+ },
+ {
+ "IdS": 209194,
+ "PX": "335550,335750",
+ "PY": "566250,566250",
+ "In": "KAB-C-002023-1"
+ },
+ {
+ "IdS": 209197,
+ "PX": "334450,334300",
+ "PY": "567850,567850",
+ "In": "KAB-AB-002003-2"
+ },
+ {
+ "IdS": 209202,
+ "PX": "335550,335750",
+ "PY": "566450,566450",
+ "In": "KAB-C-002022-1"
+ },
+ {
+ "IdS": 209227,
+ "PX": "334750,334549",
+ "PY": "567550,567550.5",
+ "In": "KAB-AB-002017-3"
+ },
+ {
+ "IdS": 209235,
+ "PX": "334600,334500",
+ "PY": "567300,567300",
+ "In": "KAB-AB-002070-7"
+ },
+ {
+ "IdS": 209236,
+ "PX": "334600,335137.21,335136.83",
+ "PY": "567100,567100.02,567099.94",
+ "In": "KAB-AB-002070-8"
+ },
+ {
+ "IdS": 209237,
+ "PX": "334600,334500",
+ "PY": "567100,567100",
+ "In": "KAB-AB-002070-9"
+ },
+ {
+ "IdS": 209238,
+ "PX": "340150,339550,339550",
+ "PY": "571750,571750,571550",
+ "In": "KAB-C-021013-1"
+ },
+ {
+ "IdS": 209270,
+ "PX": "336100,336100",
+ "PY": "565900,566050",
+ "In": "KAB-C-200022-12"
+ },
+ {
+ "IdS": 209271,
+ "PX": "336100,336200",
+ "PY": "565600,565600",
+ "In": "KAB-C-200024-1"
+ },
+ {
+ "IdS": 209276,
+ "PX": "334950,335250",
+ "PY": "566150,566150",
+ "In": "KAB-C-200016-2"
+ },
+ {
+ "IdS": 209287,
+ "PX": "334950,334950",
+ "PY": "566150,565950",
+ "In": "KAB-C-200016-3"
+ },
+ {
+ "IdS": 209294,
+ "PX": "335400,335250",
+ "PY": "566000,566000",
+ "In": "KAB-C-200025-2"
+ },
+ {
+ "IdS": 209298,
+ "PX": "334950,334950",
+ "PY": "565950,565800",
+ "In": "KAB-C-200016-4"
+ },
+ {
+ "IdS": 209300,
+ "PX": "334950,334800",
+ "PY": "565950,565950",
+ "In": "KAB-C-200016-5"
+ },
+ {
+ "IdS": 209302,
+ "PX": "335250,335250",
+ "PY": "566150,566250",
+ "In": "KAB-C-200016-7"
+ },
+ {
+ "IdS": 209320,
+ "PX": "337850,338000",
+ "PY": "571400,571400",
+ "In": "KAB-AB-001031-10"
+ },
+ {
+ "IdS": 209321,
+ "PX": "337850,337900,337950,338000",
+ "PY": "571400,571450,571450,571400",
+ "In": "KAB-AB-001031-11"
+ },
+ {
+ "IdS": 209322,
+ "PX": "337700,337750,337800,337850",
+ "PY": "571400,571450,571450,571400",
+ "In": "KAB-AB-001031-14"
+ },
+ {
+ "IdS": 209323,
+ "PX": "338000,338050,338150",
+ "PY": "571400,571400,571450",
+ "In": "KAB-AB-001031-17"
+ },
+ {
+ "IdS": 209333,
+ "PX": "338050,338050,338150",
+ "PY": "571550,571450,571450",
+ "In": "KAB-AB-001031-6"
+ },
+ {
+ "IdS": 209335,
+ "PX": "338050,338150",
+ "PY": "571550,571550",
+ "In": "KAB-AB-001031-8"
+ },
+ {
+ "IdS": 209356,
+ "PX": "343755,343600",
+ "PY": "574995,575300",
+ "In": "KAB-C-016018-3"
+ },
+ {
+ "IdS": 209366,
+ "PX": "336515,336515",
+ "PY": "579410,579105",
+ "In": "KAB-C-063009-12"
+ },
+ {
+ "IdS": 209367,
+ "PX": "336515,336205",
+ "PY": "579410,579410",
+ "In": "KAB-C-063009-13"
+ },
+ {
+ "IdS": 209369,
+ "PX": "336515,336760",
+ "PY": "579555,579555",
+ "In": "KAB-C-063047-1"
+ },
+ {
+ "IdS": 209429,
+ "PX": "347100,346500.12",
+ "PY": "555150,555000",
+ "In": "KAB-AB-011044 A.B.-2"
+ },
+ {
+ "IdS": 209514,
+ "PX": "337311.21,338489.45",
+ "PY": "563010.22,561524.04",
+ "In": "KAB-C-853005-1"
+ },
+ {
+ "IdS": 209522,
+ "PX": "333750,333750",
+ "PY": "567550,567800",
+ "In": "KAB-C-200020-1"
+ },
+ {
+ "IdS": 209529,
+ "PX": "354400,354900,354900",
+ "PY": "580650,580650,580950",
+ "In": "KAB-C-006030-1"
+ },
+ {
+ "IdS": 209531,
+ "PX": "347550,347300",
+ "PY": "588800,588800",
+ "In": "KAB-AB-014005-2"
+ },
+ {
+ "IdS": 209533,
+ "PX": "347300,347299.88",
+ "PY": "588800,588579.39",
+ "In": "KAB-AB-014005-4"
+ },
+ {
+ "IdS": 209534,
+ "PX": "347300,347300",
+ "PY": "588800,589000",
+ "In": "KAB-AB-014005-5"
+ },
+ {
+ "IdS": 209536,
+ "PX": "336515,336515",
+ "PY": "572200,572400",
+ "In": "KAB-AB-001005-10"
+ },
+ {
+ "IdS": 209537,
+ "PX": "336515,336650",
+ "PY": "572200,572200",
+ "In": "KAB-AB-001005-11"
+ },
+ {
+ "IdS": 209538,
+ "PX": "336515,336515",
+ "PY": "571250,571500",
+ "In": "KAB-C-001020-13"
+ },
+ {
+ "IdS": 209539,
+ "PX": "336465,336350",
+ "PY": "571650,571650",
+ "In": "KAB-AB-001027-1"
+ },
+ {
+ "IdS": 209541,
+ "PX": "336515,336350",
+ "PY": "571500,571500",
+ "In": "KAB-C-001020-16"
+ },
+ {
+ "IdS": 209543,
+ "PX": "336515,336300",
+ "PY": "571800,571800",
+ "In": "KAB-C-001050-1"
+ },
+ {
+ "IdS": 209544,
+ "PX": "336515,336300",
+ "PY": "572050,572050",
+ "In": "KAB-C-001022-8"
+ },
+ {
+ "IdS": 209545,
+ "PX": "336515,336515",
+ "PY": "572050,572200",
+ "In": "KAB-AB-001005-9"
+ },
+ {
+ "IdS": 209563,
+ "PX": "337400,337550",
+ "PY": "572000,571900",
+ "In": "KAB-C-016001-1"
+ },
+ {
+ "IdS": 209571,
+ "PX": "337950,337950",
+ "PY": "571650,571775",
+ "In": "KAB-C-016004-7"
+ },
+ {
+ "IdS": 209574,
+ "PX": "336620,336525",
+ "PY": "583455,583070",
+ "In": "KAB-C-063018-1"
+ },
+ {
+ "IdS": 209678,
+ "PX": "336900,336900.15",
+ "PY": "564900,565275.02",
+ "In": "KAB-AB-002026-3"
+ },
+ {
+ "IdS": 209679,
+ "PX": "336900,337050",
+ "PY": "564900,564900",
+ "In": "KAB-AB-002026-2"
+ },
+ {
+ "IdS": 209700,
+ "PX": "354700,354450",
+ "PY": "580200,580200",
+ "In": "KAB-AB-019003-1"
+ },
+ {
+ "IdS": 209701,
+ "PX": "354699.99,354700",
+ "PY": "580839.8,580200",
+ "In": "KAB-AB-019003-2"
+ },
+ {
+ "IdS": 209702,
+ "PX": "354700,354900",
+ "PY": "580850,580950",
+ "In": "KAB-C-019003-3"
+ },
+ {
+ "IdS": 209703,
+ "PX": "354700,354700",
+ "PY": "580200,579750",
+ "In": "KAB-AB-019003-4"
+ },
+ {
+ "IdS": 209746,
+ "PX": "347300,347655",
+ "PY": "588200,588035",
+ "In": "KAB-C-014004-1"
+ },
+ {
+ "IdS": 209747,
+ "PX": "347655,347655",
+ "PY": "588035,588275",
+ "In": "KAB-C-014004-2"
+ },
+ {
+ "IdS": 209748,
+ "PX": "347655,347765.57",
+ "PY": "588035,587774.39",
+ "In": "KAB-C-014004-3"
+ },
+ {
+ "IdS": 209756,
+ "PX": "341719.87,341800",
+ "PY": "527850.05,527850",
+ "In": "KAB-AB-050099-1"
+ },
+ {
+ "IdS": 209786,
+ "PX": "369520,369345",
+ "PY": "542480,542480",
+ "In": "KAB-C-026084-1"
+ },
+ {
+ "IdS": 209817,
+ "PX": "338150,338150",
+ "PY": "570730,570200",
+ "In": "KAB-AB-009006-1"
+ },
+ {
+ "IdS": 209818,
+ "PX": "338150,338300",
+ "PY": "570745,570745",
+ "In": "KAB-C-009040-1"
+ },
+ {
+ "IdS": 209819,
+ "PX": "355850,355850",
+ "PY": "580650,580400",
+ "In": "KAB-C-006036-1"
+ },
+ {
+ "IdS": 209826,
+ "PX": "335750,335750",
+ "PY": "566950,566750",
+ "In": "KAB-C-012009-1"
+ },
+ {
+ "IdS": 209833,
+ "PX": "335750,335700,335480,335450.04",
+ "PY": "566750,566700,566700,566750.02",
+ "In": "KAB-C-012009-8"
+ },
+ {
+ "IdS": 209834,
+ "PX": "335750,335750",
+ "PY": "566750,566600",
+ "In": "KAB-C-012009-9"
+ },
+ {
+ "IdS": 209855,
+ "PX": "345642.27,345791.09",
+ "PY": "566557.74,566424.12",
+ "In": "KAB-C-056027-1"
+ },
+ {
+ "IdS": 209863,
+ "PX": "346832.79,346981.61",
+ "PY": "565488.78,565355.16",
+ "In": "KAB-C-056020-6"
+ },
+ {
+ "IdS": 209865,
+ "PX": "345791.09,345929.73",
+ "PY": "566424.12,566562.9",
+ "In": "KAB-C-056027-3"
+ },
+ {
+ "IdS": 209867,
+ "PX": "346981.61,346814.94",
+ "PY": "565355.16,565187.37",
+ "In": "KAB-C-056020-7"
+ },
+ {
+ "IdS": 209891,
+ "PX": "331340,331195",
+ "PY": "562220,562110",
+ "In": "KAB-C-050012-1"
+ },
+ {
+ "IdS": 209904,
+ "PX": "373700,374000",
+ "PY": "536600,536750",
+ "In": "KAB-C-053009-17"
+ },
+ {
+ "IdS": 209927,
+ "PX": "338090,338100",
+ "PY": "591950,591990",
+ "In": "KAB-C-063002-2"
+ },
+ {
+ "IdS": 209928,
+ "PX": "338090,338285",
+ "PY": "591950,591900",
+ "In": "KAB-C-063002-3"
+ },
+ {
+ "IdS": 209930,
+ "PX": "338285,338330",
+ "PY": "591900,592095",
+ "In": "KAB-C-063002-5"
+ },
+ {
+ "IdS": 209933,
+ "PX": "345745,345990",
+ "PY": "560560,560370",
+ "In": "KAB-C-011030-2"
+ },
+ {
+ "IdS": 209935,
+ "PX": "345990,346360",
+ "PY": "560370,560845",
+ "In": "KAB-C-011026-1"
+ },
+ {
+ "IdS": 209936,
+ "PX": "346360,346525",
+ "PY": "560845,560725",
+ "In": "KAB-C-011026-4"
+ },
+ {
+ "IdS": 209937,
+ "PX": "346360,346495",
+ "PY": "560845,561025",
+ "In": "KAB-C-011026-5"
+ },
+ {
+ "IdS": 209940,
+ "PX": "366350,366300",
+ "PY": "548600,548450",
+ "In": "KAB-C-026070-1"
+ },
+ {
+ "IdS": 209941,
+ "PX": "366300,366100",
+ "PY": "548450,547950",
+ "In": "KAB-C-026070-2"
+ },
+ {
+ "IdS": 209942,
+ "PX": "366300,366280,366280",
+ "PY": "548450,548450,548650",
+ "In": "KAB-C-026070-3"
+ },
+ {
+ "IdS": 209943,
+ "PX": "366100,366000",
+ "PY": "547950,547700",
+ "In": "KAB-C-026070-4"
+ },
+ {
+ "IdS": 209944,
+ "PX": "366100,366300",
+ "PY": "547950,547900",
+ "In": "KAB-C-026070-5"
+ },
+ {
+ "IdS": 209954,
+ "PX": "355250,355050",
+ "PY": "563700,563550",
+ "In": "KAB-C-042089-1"
+ },
+ {
+ "IdS": 209969,
+ "PX": "332978.8,333129.27",
+ "PY": "559996.46,560079.67",
+ "In": "KAB-AB-050098-1"
+ },
+ {
+ "IdS": 210019,
+ "PX": "365350,365700",
+ "PY": "537650,537650",
+ "In": "KAB-C-054013-35"
+ },
+ {
+ "IdS": 210021,
+ "PX": "340420,340260",
+ "PY": "565320,565160",
+ "In": "KAB-C-409004-10"
+ },
+ {
+ "IdS": 210027,
+ "PX": "340420,340545.34",
+ "PY": "565320,565209.99",
+ "In": "KAB-AB-409004-4"
+ },
+ {
+ "IdS": 210051,
+ "PX": "339583.53,339450",
+ "PY": "566038.34,565850",
+ "In": "KAB-C-009010-3"
+ },
+ {
+ "IdS": 210067,
+ "PX": "336255.03,336400",
+ "PY": "570710,570750",
+ "In": "KAB-L-L001060-1"
+ },
+ {
+ "IdS": 210108,
+ "PX": "356400,356205",
+ "PY": "553500,553410",
+ "In": "KAB-C-055010-2"
+ },
+ {
+ "IdS": 210113,
+ "PX": "356250,356350",
+ "PY": "553850,553900",
+ "In": "KAB-C-055007-6"
+ },
+ {
+ "IdS": 210116,
+ "PX": "347300,347795",
+ "PY": "560605,561700",
+ "In": "KAB-AB-011013-1"
+ },
+ {
+ "IdS": 210117,
+ "PX": "347795,347775,347815,347880",
+ "PY": "561700,561765,561855,561880",
+ "In": "KAB-AB-011014-1"
+ },
+ {
+ "IdS": 210120,
+ "PX": "348215,348320",
+ "PY": "562605,562845",
+ "In": "KAB-AB-011014-14"
+ },
+ {
+ "IdS": 210121,
+ "PX": "348215,348030",
+ "PY": "562605,562690",
+ "In": "KAB-AB-011014-15"
+ },
+ {
+ "IdS": 210122,
+ "PX": "348030,347965,347875,347850",
+ "PY": "562690,562665,562705,562775",
+ "In": "KAB-AB-011014-16"
+ },
+ {
+ "IdS": 210123,
+ "PX": "348030,348000,347915,347850",
+ "PY": "562690,562760,562795,562775",
+ "In": "KAB-AB-011014-17"
+ },
+ {
+ "IdS": 210124,
+ "PX": "347795,347860,347905,347880",
+ "PY": "561700,561720,561815,561880",
+ "In": "KAB-AB-011014-2"
+ },
+ {
+ "IdS": 210125,
+ "PX": "347880,347965",
+ "PY": "561880,562060",
+ "In": "KAB-AB-011014-3"
+ },
+ {
+ "IdS": 210126,
+ "PX": "347965,348045",
+ "PY": "562060,562240",
+ "In": "KAB-AB-011014-4"
+ },
+ {
+ "IdS": 210127,
+ "PX": "347965,347780",
+ "PY": "562060,562145",
+ "In": "KAB-AB-011014-5"
+ },
+ {
+ "IdS": 210128,
+ "PX": "347780,347715,347625,347605",
+ "PY": "562145,562120,562160,562230",
+ "In": "KAB-AB-011014-6"
+ },
+ {
+ "IdS": 210129,
+ "PX": "347780,347755,347670,347605",
+ "PY": "562145,562210,562245,562230",
+ "In": "KAB-AB-011014-7"
+ },
+ {
+ "IdS": 210131,
+ "PX": "348045,347865",
+ "PY": "562240,562320",
+ "In": "KAB-AB-011014-9"
+ },
+ {
+ "IdS": 210135,
+ "PX": "352935,353100",
+ "PY": "580470,580460",
+ "In": "KAB-C-006028-2"
+ },
+ {
+ "IdS": 210136,
+ "PX": "352935,352935",
+ "PY": "580470,580815",
+ "In": "KAB-C-006028-3"
+ },
+ {
+ "IdS": 210137,
+ "PX": "352935,352840",
+ "PY": "580815,580815",
+ "In": "KAB-C-006028-4"
+ },
+ {
+ "IdS": 210138,
+ "PX": "352935,352935",
+ "PY": "580815,580965",
+ "In": "KAB-C-006028-5"
+ },
+ {
+ "IdS": 210139,
+ "PX": "352484.93,352935,352935",
+ "PY": "580055.02,580115,580470",
+ "In": "KAB-C-006028-6"
+ },
+ {
+ "IdS": 210140,
+ "PX": "352484.93,352485",
+ "PY": "580055.02,579955",
+ "In": "KAB-C-006098-1"
+ },
+ {
+ "IdS": 210145,
+ "PX": "353100,353350",
+ "PY": "580460,580500",
+ "In": "KAB-C-006026-1"
+ },
+ {
+ "IdS": 210169,
+ "PX": "334050,334300",
+ "PY": "567150,567150",
+ "In": "KAB-C-012027-1"
+ },
+ {
+ "IdS": 210177,
+ "PX": "339950,340100",
+ "PY": "570050,569850",
+ "In": "KAB-AB-007032-4"
+ },
+ {
+ "IdS": 210178,
+ "PX": "339950,339850.09",
+ "PY": "570050,570049.86",
+ "In": "KAB-AB-007032-5"
+ },
+ {
+ "IdS": 210179,
+ "PX": "339350,339950",
+ "PY": "570900,570050",
+ "In": "KAB-AB-007032-6"
+ },
+ {
+ "IdS": 210181,
+ "PX": "336950,336950",
+ "PY": "569950,569800",
+ "In": "KAB-C-001039-10"
+ },
+ {
+ "IdS": 210182,
+ "PX": "336950,337150",
+ "PY": "569950,569950",
+ "In": "KAB-C-001039-11"
+ },
+ {
+ "IdS": 210184,
+ "PX": "336950,336950",
+ "PY": "570200,570100",
+ "In": "KAB-C-001039-3"
+ },
+ {
+ "IdS": 210185,
+ "PX": "336950,336950",
+ "PY": "570100,569950",
+ "In": "KAB-C-001039-6"
+ },
+ {
+ "IdS": 210186,
+ "PX": "336950,337150",
+ "PY": "570100,570100",
+ "In": "KAB-C-001039-7"
+ },
+ {
+ "IdS": 210187,
+ "PX": "336950,337150",
+ "PY": "570200,570200",
+ "In": "KAB-C-001039-8"
+ },
+ {
+ "IdS": 210193,
+ "PX": "335450,335700",
+ "PY": "567950,567950",
+ "In": "KAB-C-012025-1"
+ },
+ {
+ "IdS": 210195,
+ "PX": "335750,336050",
+ "PY": "567450,567450",
+ "In": "KAB-C-012005-1"
+ },
+ {
+ "IdS": 212846,
+ "PX": "346550,346750",
+ "PY": "548800,548800",
+ "In": "KAB-C-010016-12"
+ },
+ {
+ "IdS": 212847,
+ "PX": "345095,344925,344740",
+ "PY": "543085,542990,543350",
+ "In": "KAB-C-010037-1"
+ },
+ {
+ "IdS": 212848,
+ "PX": "344740,344560",
+ "PY": "543350,543255",
+ "In": "KAB-C-010037-2"
+ },
+ {
+ "IdS": 212849,
+ "PX": "344740,344645",
+ "PY": "543350,543525",
+ "In": "KAB-C-010037-3"
+ },
+ {
+ "IdS": 212852,
+ "PX": "376600.82,376485",
+ "PY": "543950.32,543750",
+ "In": "KAB-C-052031-1"
+ },
+ {
+ "IdS": 212856,
+ "PX": "346750,346750",
+ "PY": "543700,543500",
+ "In": "KAB-C-010045-1"
+ },
+ {
+ "IdS": 212872,
+ "PX": "344600,344600",
+ "PY": "552950,553150",
+ "In": "KAB-C-041003-6"
+ },
+ {
+ "IdS": 212873,
+ "PX": "344600,344990",
+ "PY": "553150,553150",
+ "In": "KAB-C-041008-1"
+ },
+ {
+ "IdS": 212874,
+ "PX": "344600,344600",
+ "PY": "553150,553700",
+ "In": "KAB-C-041009-1"
+ },
+ {
+ "IdS": 212875,
+ "PX": "344600,344600",
+ "PY": "553700,554300",
+ "In": "KAB-C-041010-1"
+ },
+ {
+ "IdS": 212878,
+ "PX": "339850,340200",
+ "PY": "575650,575650",
+ "In": "KAB-L-L021003-1"
+ },
+ {
+ "IdS": 212903,
+ "PX": "335600,335450,335450",
+ "PY": "570950,571000,571345",
+ "In": "KAB-L-L013002-1"
+ },
+ {
+ "IdS": 212955,
+ "PX": "339350,339435.42",
+ "PY": "570900,570952",
+ "In": "KAB-AB-007032-3"
+ },
+ {
+ "IdS": 212956,
+ "PX": "338200,338350",
+ "PY": "579950,580200",
+ "In": "KAB-C-021018-3"
+ },
+ {
+ "IdS": 212957,
+ "PX": "338100,338350",
+ "PY": "580350,580200",
+ "In": "KAB-C-021019-5"
+ },
+ {
+ "IdS": 212976,
+ "PX": "339141.99,339250",
+ "PY": "571254.06,571050",
+ "In": "KAB-AB-007032-1"
+ },
+ {
+ "IdS": 212977,
+ "PX": "339250,339350",
+ "PY": "571050,570900",
+ "In": "KAB-AB-007032-2"
+ },
+ {
+ "IdS": 213110,
+ "PX": "343060,343060",
+ "PY": "572750,572450",
+ "In": "KAB-C-017006-1"
+ },
+ {
+ "IdS": 213148,
+ "PX": "343060,343300",
+ "PY": "572750,572750",
+ "In": "KAB-C-017007-1"
+ },
+ {
+ "IdS": 213252,
+ "PX": "338585,338130",
+ "PY": "545460,545780",
+ "In": "KAB-C-051910-1"
+ },
+ {
+ "IdS": 213259,
+ "PX": "339300,338585",
+ "PY": "546525,545460",
+ "In": "KAB-C-051908-1"
+ },
+ {
+ "IdS": 213263,
+ "PX": "345000,345000",
+ "PY": "550150,550300",
+ "In": "KAB-C-041002-1"
+ },
+ {
+ "IdS": 213264,
+ "PX": "345000,345000",
+ "PY": "550300,550450",
+ "In": "KAB-C-041011-1"
+ },
+ {
+ "IdS": 213270,
+ "PX": "345000,344993.96,344800",
+ "PY": "550300,550295.89,550150",
+ "In": "KAB-C-051048-1"
+ },
+ {
+ "IdS": 213275,
+ "PX": "336700,336164.97",
+ "PY": "592050,591354.9",
+ "In": "KAB-L-L060001-1"
+ },
+ {
+ "IdS": 213299,
+ "PX": "340450,341100",
+ "PY": "594150,593650",
+ "In": "KAB-L-L062002-1"
+ },
+ {
+ "IdS": 213300,
+ "PX": "341100,341900",
+ "PY": "593650,593050",
+ "In": "KAB-L-L062003-1"
+ },
+ {
+ "IdS": 213301,
+ "PX": "341900,342700.05",
+ "PY": "593050,592400.05",
+ "In": "KAB-L-L062004-1"
+ },
+ {
+ "IdS": 213302,
+ "PX": "355759.96,356069.71",
+ "PY": "562850.15,562849.96",
+ "In": "KAB-C-042060-1"
+ },
+ {
+ "IdS": 213303,
+ "PX": "339720,339695,339605,339550",
+ "PY": "547295,547230,547190,547200",
+ "In": "KAB-C-050063-1"
+ },
+ {
+ "IdS": 213304,
+ "PX": "339720,339655,339565,339550",
+ "PY": "547295,547320,547280,547200",
+ "In": "KAB-C-050064-1"
+ },
+ {
+ "IdS": 213305,
+ "PX": "346100,346050,345865,345800",
+ "PY": "554450,554500,554500,554450",
+ "In": "KAB-C-011032-1"
+ },
+ {
+ "IdS": 213310,
+ "PX": "375300,375550",
+ "PY": "531200,531200",
+ "In": "KAB-L-L039005-1"
+ },
+ {
+ "IdS": 213318,
+ "PX": "356800,355895",
+ "PY": "566700,567255",
+ "In": "KAB-C-042001-1"
+ },
+ {
+ "IdS": 213319,
+ "PX": "355895,355750",
+ "PY": "567255,567350",
+ "In": "KAB-C-042037-4"
+ },
+ {
+ "IdS": 213324,
+ "PX": "333250,333250,333500",
+ "PY": "569850,569250,569250",
+ "In": "KAB-AB-004018(A.B.)-3"
+ },
+ {
+ "IdS": 213325,
+ "PX": "333500,333500",
+ "PY": "569250,568650",
+ "In": "KAB-C-004020-6"
+ },
+ {
+ "IdS": 213336,
+ "PX": "335850.31,335850",
+ "PY": "570957.93,571050",
+ "In": "KAB-AB-001020-1"
+ },
+ {
+ "IdS": 213364,
+ "PX": "346525,346700",
+ "PY": "576195,576285",
+ "In": "KAB-C-006010-16"
+ },
+ {
+ "IdS": 213365,
+ "PX": "346700,346970",
+ "PY": "576285,576425",
+ "In": "KAB-C-006010-17"
+ },
+ {
+ "IdS": 213429,
+ "PX": "354900,355150",
+ "PY": "580950,580850",
+ "In": "KAB-C-006034-1"
+ },
+ {
+ "IdS": 213430,
+ "PX": "355150,355850",
+ "PY": "580850,580650",
+ "In": "KAB-C-006034-2"
+ },
+ {
+ "IdS": 213431,
+ "PX": "355150,355150",
+ "PY": "580850,580650",
+ "In": "KAB-C-006034-3"
+ },
+ {
+ "IdS": 213432,
+ "PX": "355150,355150",
+ "PY": "580650,580450",
+ "In": "KAB-C-006034-4"
+ },
+ {
+ "IdS": 213434,
+ "PX": "355150,355000,355000,355150",
+ "PY": "580650,580650,580450,580450",
+ "In": "KAB-C-006034-5"
+ },
+ {
+ "IdS": 213517,
+ "PX": "331700,331650,331400,331350",
+ "PY": "572200,572150,572150,572200",
+ "In": "KAB-C-200060-1"
+ },
+ {
+ "IdS": 213531,
+ "PX": "370350,370350,370580",
+ "PY": "550300,550240,550240",
+ "In": "KAB-C-051049-1"
+ },
+ {
+ "IdS": 213536,
+ "PX": "361500,361500",
+ "PY": "550700,550600",
+ "In": "KAB-C-026017-14"
+ },
+ {
+ "IdS": 213561,
+ "PX": "374150,374300",
+ "PY": "545350,545550",
+ "In": "KAB-C-052015-16"
+ },
+ {
+ "IdS": 213566,
+ "PX": "345000,345000",
+ "PY": "549000,549200",
+ "In": "KAB-C-041001-4"
+ },
+ {
+ "IdS": 213568,
+ "PX": "345000,345250",
+ "PY": "549200,549200",
+ "In": "KAB-C-041001-3"
+ },
+ {
+ "IdS": 213575,
+ "PX": "355800,356200",
+ "PY": "552550,552550",
+ "In": "KAB-C-026011-21"
+ },
+ {
+ "IdS": 213577,
+ "PX": "355800,355800",
+ "PY": "552550,552000",
+ "In": "KAB-C-026011-23"
+ },
+ {
+ "IdS": 213578,
+ "PX": "356200,356200",
+ "PY": "552550,552100",
+ "In": "KAB-C-026011-24"
+ },
+ {
+ "IdS": 213585,
+ "PX": "339550,339464.83,338700.02,338650",
+ "PY": "547200,547145.07,547145.2,547200",
+ "In": "KAB-L-L078001-1"
+ },
+ {
+ "IdS": 213587,
+ "PX": "338650,338815.2",
+ "PY": "547200,547300.08",
+ "In": "KAB-L-L078001-3"
+ },
+ {
+ "IdS": 213588,
+ "PX": "338650,338350",
+ "PY": "547700,547700",
+ "In": "KAB-L-L078001-4"
+ },
+ {
+ "IdS": 213589,
+ "PX": "338650,339300",
+ "PY": "547700,547700",
+ "In": "KAB-L-L078001-5"
+ },
+ {
+ "IdS": 213591,
+ "PX": "338350,338350",
+ "PY": "547700,547800",
+ "In": "KAB-L-L078001-7"
+ },
+ {
+ "IdS": 213592,
+ "PX": "337050,337050",
+ "PY": "547700,547600",
+ "In": "KAB-L-L078001-9"
+ },
+ {
+ "IdS": 213593,
+ "PX": "337050,335550",
+ "PY": "547700,547700",
+ "In": "KAB-L-L078001-8"
+ },
+ {
+ "IdS": 213595,
+ "PX": "335550,335550",
+ "PY": "547700,547600",
+ "In": "KAB-L-L078001-11"
+ },
+ {
+ "IdS": 213596,
+ "PX": "334150,334250",
+ "PY": "547700,547600",
+ "In": "KAB-L-L078001-13"
+ },
+ {
+ "IdS": 213597,
+ "PX": "334150,334050",
+ "PY": "547700,547600",
+ "In": "KAB-L-L078001-14"
+ },
+ {
+ "IdS": 213600,
+ "PX": "333150,333250",
+ "PY": "547700,547600",
+ "In": "KAB-L-L078001-16"
+ },
+ {
+ "IdS": 213602,
+ "PX": "332050,331050",
+ "PY": "547700,547700",
+ "In": "KAB-L-L078001-18"
+ },
+ {
+ "IdS": 213603,
+ "PX": "332050,332050",
+ "PY": "547700,547600",
+ "In": "KAB-L-L078001-19"
+ },
+ {
+ "IdS": 213604,
+ "PX": "331050,330850",
+ "PY": "547700,547700",
+ "In": "KAB-L-L078001-20"
+ },
+ {
+ "IdS": 213605,
+ "PX": "331050,330849.38",
+ "PY": "547700,547650.81",
+ "In": "KAB-L-L078001-21"
+ },
+ {
+ "IdS": 213675,
+ "PX": "333150,333150",
+ "PY": "547700,547585",
+ "In": "KAB-L-L078001-17"
+ },
+ {
+ "IdS": 213888,
+ "PX": "355250,355799.91,355799.64",
+ "PY": "562700,562700.19,562885.35",
+ "In": "KAB-C-057006-1"
+ },
+ {
+ "IdS": 213892,
+ "PX": "366450,366450",
+ "PY": "548850,549100",
+ "In": "KAB-C-851007-1"
+ },
+ {
+ "IdS": 213984,
+ "PX": "339550,339650",
+ "PY": "571200,571200",
+ "In": "KAB-C-007010-1"
+ },
+ {
+ "IdS": 213985,
+ "PX": "339650,339650",
+ "PY": "571200,571100",
+ "In": "KAB-C-007011-1"
+ },
+ {
+ "IdS": 213986,
+ "PX": "339650,339550",
+ "PY": "571100,571100",
+ "In": "KAB-C-007042-1"
+ },
+ {
+ "IdS": 214000,
+ "PX": "331700,331650,331400,331350",
+ "PY": "572200,572250,572250,572200",
+ "In": "KAB-L-L200021-1"
+ },
+ {
+ "IdS": 214067,
+ "PX": "337500,337500",
+ "PY": "571000,571100",
+ "In": "KAB-AB-001048(A.B.)-4"
+ },
+ {
+ "IdS": 214068,
+ "PX": "337450,337500",
+ "PY": "571150,571100",
+ "In": "KAB-C-001057-37"
+ },
+ {
+ "IdS": 214069,
+ "PX": "355160.59,354719.13",
+ "PY": "597927.52,596811.67",
+ "In": "KAB-L-FL065001-1"
+ },
+ {
+ "IdS": 214070,
+ "PX": "354719.13,354599.17",
+ "PY": "596811.67,596508.44",
+ "In": "KAB-L-FL065002-1"
+ },
+ {
+ "IdS": 214071,
+ "PX": "378957.24,378775.6",
+ "PY": "534640.82,534557.11",
+ "In": "KAB-L-FL081001-1"
+ },
+ {
+ "IdS": 214072,
+ "PX": "378775.6,378860.42",
+ "PY": "534557.11,534375.99",
+ "In": "KAB-L-FL081001-3"
+ },
+ {
+ "IdS": 214073,
+ "PX": "378775.6,378503.15",
+ "PY": "534557.11,534431.53",
+ "In": "KAB-L-FL081001-2"
+ },
+ {
+ "IdS": 214074,
+ "PX": "378503.15,378139.88",
+ "PY": "534431.53,534264.09",
+ "In": "KAB-L-FL081001-4"
+ },
+ {
+ "IdS": 214075,
+ "PX": "378503.15,378432.4,378432.17",
+ "PY": "534431.53,534465.12,534556.17",
+ "In": "KAB-L-FL081001-5"
+ },
+ {
+ "IdS": 214076,
+ "PX": "378503.15,378519.7,378520.19,378503.33",
+ "PY": "534431.53,534465.85,534540.71,534556.06",
+ "In": "KAB-L-FL081001-6"
+ },
+ {
+ "IdS": 214077,
+ "PX": "378503.15,378485.32,378484.83,378503.33",
+ "PY": "534431.53,534466.09,534540.23,534556.06",
+ "In": "KAB-L-FL081001-7"
+ },
+ {
+ "IdS": 214078,
+ "PX": "378139.88,377776.6",
+ "PY": "534264.09,534096.67",
+ "In": "KAB-L-FL081001-8"
+ },
+ {
+ "IdS": 214079,
+ "PX": "378139.88,378223.59",
+ "PY": "534264.09,534082.47",
+ "In": "KAB-L-FL081001-9"
+ },
+ {
+ "IdS": 214080,
+ "PX": "377776.6,377504.15",
+ "PY": "534096.67,533971.09",
+ "In": "KAB-L-FL081001-10"
+ },
+ {
+ "IdS": 214081,
+ "PX": "377776.6,377860.32",
+ "PY": "534096.67,533915.03",
+ "In": "KAB-L-FL081001-11"
+ },
+ {
+ "IdS": 214083,
+ "PX": "377504.15,377420.44",
+ "PY": "533971.09,534152.73",
+ "In": "KAB-L-FL081001-13"
+ },
+ {
+ "IdS": 214242,
+ "PX": "345330,345445",
+ "PY": "551050,550855",
+ "In": "KAB-C-051050-1"
+ },
+ {
+ "IdS": 214247,
+ "PX": "349300,349300",
+ "PY": "553050,553800",
+ "In": "KAB-C-026004-1"
+ },
+ {
+ "IdS": 214248,
+ "PX": "349300,349300",
+ "PY": "553800,554300",
+ "In": "KAB-C-026004-2"
+ },
+ {
+ "IdS": 214265,
+ "PX": "356250,356115",
+ "PY": "553850,553785",
+ "In": "KAB-C-055007-5"
+ },
+ {
+ "IdS": 214316,
+ "PX": "334800,334800",
+ "PY": "570200,570550",
+ "In": "KAB-AB-001001-1"
+ },
+ {
+ "IdS": 214320,
+ "PX": "334800,334800",
+ "PY": "570200,569600",
+ "In": "KAB-C-002001-1"
+ },
+ {
+ "IdS": 214332,
+ "PX": "334200,334700,334800",
+ "PY": "569200,569200,569600",
+ "In": "KAB-C-202011-8"
+ },
+ {
+ "IdS": 214340,
+ "PX": "335600,335700",
+ "PY": "570950,570950",
+ "In": "KAB-C-001010-1"
+ },
+ {
+ "IdS": 214342,
+ "PX": "336000,336000",
+ "PY": "570950,571050",
+ "In": "KAB-C-001010-9"
+ },
+ {
+ "IdS": 214343,
+ "PX": "336000,336100",
+ "PY": "571050,571050",
+ "In": "KAB-C-001006-7"
+ },
+ {
+ "IdS": 214347,
+ "PX": "336539.58,336309.82,336310.15",
+ "PY": "570879.56,571081.16,571195.13",
+ "In": "KAB-AB-001099(A.B.)-12"
+ },
+ {
+ "IdS": 214350,
+ "PX": "336350,336399.99",
+ "PY": "571250,571249.99",
+ "In": "KAB-C-001044-2"
+ },
+ {
+ "IdS": 214352,
+ "PX": "336700,336699.88",
+ "PY": "571250,571350",
+ "In": "KAB-C-001002-2"
+ },
+ {
+ "IdS": 214356,
+ "PX": "337100,337150,337280",
+ "PY": "571350,571350,571385",
+ "In": "KAB-C-001056-1"
+ },
+ {
+ "IdS": 214363,
+ "PX": "338400,338600",
+ "PY": "571450,571650",
+ "In": "KAB-AB-001035-16"
+ },
+ {
+ "IdS": 214365,
+ "PX": "338600,339000",
+ "PY": "571650,571650",
+ "In": "KAB-AB-001035-10"
+ },
+ {
+ "IdS": 214368,
+ "PX": "339100,339000",
+ "PY": "571350,571650",
+ "In": "KAB-AB-007007-8"
+ },
+ {
+ "IdS": 214369,
+ "PX": "339141.99,339103.68",
+ "PY": "571254.06,571340.95",
+ "In": "KAB-AB-007031-8"
+ },
+ {
+ "IdS": 214376,
+ "PX": "338670,338580",
+ "PY": "591810,591420",
+ "In": "KAB-C-063004-1"
+ },
+ {
+ "IdS": 214379,
+ "PX": "337505.07,338090",
+ "PY": "592094.94,591950",
+ "In": "KAB-C-063002-10"
+ },
+ {
+ "IdS": 214381,
+ "PX": "336900,337505.07",
+ "PY": "592250,592094.94",
+ "In": "KAB-C-063050-1"
+ },
+ {
+ "IdS": 214393,
+ "PX": "338195,338055",
+ "PY": "589865,589285",
+ "In": "KAB-C-063007-1"
+ },
+ {
+ "IdS": 214405,
+ "PX": "336525,336475",
+ "PY": "583070,582875",
+ "In": "KAB-C-063018-2"
+ },
+ {
+ "IdS": 214420,
+ "PX": "336515,336515",
+ "PY": "579820,579555",
+ "In": "KAB-C-063046-1"
+ },
+ {
+ "IdS": 214424,
+ "PX": "336730.02,336330.07,336100",
+ "PY": "578500.31,578419.62,578300",
+ "In": "KAB-C-063037-1"
+ },
+ {
+ "IdS": 214425,
+ "PX": "337950,338100,338150",
+ "PY": "571650,571650,571450",
+ "In": "KAB-C-016004-6"
+ },
+ {
+ "IdS": 214427,
+ "PX": "337550,337950",
+ "PY": "571900,571650",
+ "In": "KAB-C-016004-2"
+ },
+ {
+ "IdS": 214429,
+ "PX": "336850,337400",
+ "PY": "572350,572000",
+ "In": "KAB-C-016003-5"
+ },
+ {
+ "IdS": 214431,
+ "PX": "336550,336850",
+ "PY": "572550,572350",
+ "In": "KAB-C-016003-4"
+ },
+ {
+ "IdS": 214444,
+ "PX": "337200,337200",
+ "PY": "577650,577000",
+ "In": "KAB-C-013025-1"
+ },
+ {
+ "IdS": 214447,
+ "PX": "337200,337200",
+ "PY": "579000,578750",
+ "In": "KAB-C-013028-1"
+ },
+ {
+ "IdS": 214449,
+ "PX": "337200,337200",
+ "PY": "580050,579300",
+ "In": "KAB-C-013029-2"
+ },
+ {
+ "IdS": 214472,
+ "PX": "336834.2,337056.98,337200",
+ "PY": "577783.2,577107.04,577000",
+ "In": "KAB-C-063029-1"
+ },
+ {
+ "IdS": 214475,
+ "PX": "336100,336584.84,336704.26,336669.89,336834.2",
+ "PY": "578300,578425.06,578482.31,578404.58,577783.2",
+ "In": "KAB-C-063028-1"
+ },
+ {
+ "IdS": 214493,
+ "PX": "346250,346525",
+ "PY": "576050,576195",
+ "In": "KAB-C-006010-1"
+ },
+ {
+ "IdS": 214494,
+ "PX": "346970,347150",
+ "PY": "576425,576515",
+ "In": "KAB-C-006010-2"
+ },
+ {
+ "IdS": 214497,
+ "PX": "347150,347505",
+ "PY": "576515,576695",
+ "In": "KAB-C-006011-1"
+ },
+ {
+ "IdS": 214504,
+ "PX": "347505,348563.77",
+ "PY": "576695,577243.54",
+ "In": "KAB-C-006011-2"
+ },
+ {
+ "IdS": 214505,
+ "PX": "345585,345955,346250",
+ "PY": "575945,576140,576050",
+ "In": "KAB-C-016019-2"
+ },
+ {
+ "IdS": 214506,
+ "PX": "344990,345585",
+ "PY": "575640,575945",
+ "In": "KAB-C-016019-1"
+ },
+ {
+ "IdS": 214515,
+ "PX": "343195,343755",
+ "PY": "574705,574995",
+ "In": "KAB-C-016018-1"
+ },
+ {
+ "IdS": 214516,
+ "PX": "342740,343195",
+ "PY": "574470,574705",
+ "In": "KAB-C-016017-1"
+ },
+ {
+ "IdS": 214517,
+ "PX": "342345,342740",
+ "PY": "574260,574470",
+ "In": "KAB-C-016015-2"
+ },
+ {
+ "IdS": 214520,
+ "PX": "341550,342345",
+ "PY": "573850,574260",
+ "In": "KAB-C-016015-1"
+ },
+ {
+ "IdS": 214538,
+ "PX": "348840,350445",
+ "PY": "577375,578190",
+ "In": "KAB-C-006019-2"
+ },
+ {
+ "IdS": 214544,
+ "PX": "350445,350930",
+ "PY": "578190,579840",
+ "In": "KAB-C-006022-1"
+ },
+ {
+ "IdS": 214545,
+ "PX": "350930,350930",
+ "PY": "579990,579840",
+ "In": "KAB-C-066004-1"
+ },
+ {
+ "IdS": 214550,
+ "PX": "352045,351000,351000,350930",
+ "PY": "580300,580145,579990,579990",
+ "In": "KAB-C-066003-2"
+ },
+ {
+ "IdS": 214554,
+ "PX": "353100,352045",
+ "PY": "580460,580300",
+ "In": "KAB-C-066003-1"
+ },
+ {
+ "IdS": 214556,
+ "PX": "353300,353100.04,353100",
+ "PY": "580700,580700.12,580460",
+ "In": "KAB-C-066009-4"
+ },
+ {
+ "IdS": 214588,
+ "PX": "344450,343900",
+ "PY": "578950,579400",
+ "In": "KAB-C-006015-2"
+ },
+ {
+ "IdS": 214589,
+ "PX": "346662.55,346300",
+ "PY": "581223.83,580980",
+ "In": "KAB-C-024001-7"
+ },
+ {
+ "IdS": 214598,
+ "PX": "339000,339000",
+ "PY": "572185,571650",
+ "In": "KAB-AB-064003-8"
+ },
+ {
+ "IdS": 214600,
+ "PX": "339470,339000",
+ "PY": "572660,572185",
+ "In": "KAB-AB-064003-1"
+ },
+ {
+ "IdS": 214609,
+ "PX": "336400,336400,337000",
+ "PY": "570100,569750,569745",
+ "In": "KAB-AB-064016-5"
+ },
+ {
+ "IdS": 214611,
+ "PX": "336170,336170,335750",
+ "PY": "570245,570200,570200",
+ "In": "KAB-AB-012003-4B"
+ },
+ {
+ "IdS": 214615,
+ "PX": "335450,335450",
+ "PY": "570200,568700",
+ "In": "KAB-AB-012002-2"
+ },
+ {
+ "IdS": 214616,
+ "PX": "335450,335450",
+ "PY": "568700,568200",
+ "In": "KAB-AB-012006-1"
+ },
+ {
+ "IdS": 214617,
+ "PX": "335450,335450",
+ "PY": "568200,567950",
+ "In": "KAB-C-012024-1"
+ },
+ {
+ "IdS": 214618,
+ "PX": "335450,335750",
+ "PY": "567950,567450",
+ "In": "KAB-C-012021-1"
+ },
+ {
+ "IdS": 214619,
+ "PX": "335750,335750",
+ "PY": "567450,567150",
+ "In": "KAB-C-012011-1"
+ },
+ {
+ "IdS": 214620,
+ "PX": "335750,336100",
+ "PY": "566950,566950",
+ "In": "KAB-C-012008-1"
+ },
+ {
+ "IdS": 214622,
+ "PX": "336400,336400",
+ "PY": "566950,566200",
+ "In": "KAB-C-012015-1"
+ },
+ {
+ "IdS": 214625,
+ "PX": "336400,336400",
+ "PY": "566000,565300",
+ "In": "KAB-C-012017-1"
+ },
+ {
+ "IdS": 214628,
+ "PX": "336400,336245.22,336250,336400",
+ "PY": "565300,565299.89,563950,563900",
+ "In": "KAB-C-012018-1"
+ },
+ {
+ "IdS": 214630,
+ "PX": "336255.03,336200,335650,335600",
+ "PY": "570710,570850,570850,570950",
+ "In": "KAB-AB-001017-1"
+ },
+ {
+ "IdS": 214638,
+ "PX": "334800,334950,335100",
+ "PY": "569600,569400,569400",
+ "In": "KAB-C-202015-1"
+ },
+ {
+ "IdS": 214641,
+ "PX": "336050,335350",
+ "PY": "569400,569400",
+ "In": "KAB-C-064013-1"
+ },
+ {
+ "IdS": 214647,
+ "PX": "335250.12,334900,334800",
+ "PY": "569700.09,569700,569600",
+ "In": "KAB-AB-013004-2"
+ },
+ {
+ "IdS": 214648,
+ "PX": "335500,335250.12",
+ "PY": "569700,569700.09",
+ "In": "KAB-AB-013005-1"
+ },
+ {
+ "IdS": 214649,
+ "PX": "335600,335600",
+ "PY": "569950,569700",
+ "In": "KAB-AB-013005-4"
+ },
+ {
+ "IdS": 214650,
+ "PX": "335600,335600",
+ "PY": "570200,569950",
+ "In": "KAB-AB-013005-8"
+ },
+ {
+ "IdS": 214652,
+ "PX": "335600,335536.36,335450,335448.71,335450",
+ "PY": "570950,570750.01,570750,570436.81,570200",
+ "In": "KAB-AB-012002-1"
+ },
+ {
+ "IdS": 214656,
+ "PX": "332850,333365,333365,333395.08",
+ "PY": "569950,569950,569800,569774.88",
+ "In": "KAB-C-202020-1"
+ },
+ {
+ "IdS": 214657,
+ "PX": "332250,332850",
+ "PY": "569950,569950",
+ "In": "KAB-C-202003-1"
+ },
+ {
+ "IdS": 214661,
+ "PX": "332250,332250",
+ "PY": "569050,568650",
+ "In": "KAB-C-200004-22"
+ },
+ {
+ "IdS": 214664,
+ "PX": "332250,332850",
+ "PY": "568650,568650",
+ "In": "KAB-C-200027-1"
+ },
+ {
+ "IdS": 214668,
+ "PX": "332850,332850",
+ "PY": "568650,567600",
+ "In": "KAB-C-200019-1"
+ },
+ {
+ "IdS": 214670,
+ "PX": "332850,332850",
+ "PY": "567300,567150",
+ "In": "KAB-C-200029-1"
+ },
+ {
+ "IdS": 214675,
+ "PX": "332850,333750",
+ "PY": "566850,566850",
+ "In": "KAB-C-200007-1"
+ },
+ {
+ "IdS": 214677,
+ "PX": "333750,333750",
+ "PY": "566850,566350",
+ "In": "KAB-C-200008-1"
+ },
+ {
+ "IdS": 214683,
+ "PX": "334600,334600",
+ "PY": "567300,567100",
+ "In": "KAB-AB-002070-6"
+ },
+ {
+ "IdS": 214685,
+ "PX": "335450.04,335300",
+ "PY": "566750.02,566615",
+ "In": "KAB-C-002025-14"
+ },
+ {
+ "IdS": 214687,
+ "PX": "335300,335300,335550",
+ "PY": "566615,566450,566450",
+ "In": "KAB-C-002025-16"
+ },
+ {
+ "IdS": 214689,
+ "PX": "335550,335550",
+ "PY": "566450,566250",
+ "In": "KAB-C-002021-1"
+ },
+ {
+ "IdS": 214690,
+ "PX": "335550,335550.31",
+ "PY": "566250,565949.92",
+ "In": "KAB-AB-002024-1"
+ },
+ {
+ "IdS": 214698,
+ "PX": "335755.31,335750",
+ "PY": "565496.72,564900",
+ "In": "KAB-AB-002008-4"
+ },
+ {
+ "IdS": 214716,
+ "PX": "338000,338327.49",
+ "PY": "560650,560138.78",
+ "In": "KAB-AB-003004-1"
+ },
+ {
+ "IdS": 214717,
+ "PX": "338327.49,338549.25",
+ "PY": "560138.78,559804.57",
+ "In": "KAB-AB-003005-1"
+ },
+ {
+ "IdS": 214721,
+ "PX": "338549.25,339100",
+ "PY": "559804.57,558950",
+ "In": "KAB-AB-003006-1"
+ },
+ {
+ "IdS": 214722,
+ "PX": "339100,339015,339015,338600",
+ "PY": "558950,558950,558550,558950",
+ "In": "KAB-C-003008-1"
+ },
+ {
+ "IdS": 214731,
+ "PX": "337550,338450",
+ "PY": "557755,558550",
+ "In": "KAB-AB-003009-1"
+ },
+ {
+ "IdS": 214738,
+ "PX": "336175,337550",
+ "PY": "556590,557755",
+ "In": "KAB-AB-003010-2"
+ },
+ {
+ "IdS": 214740,
+ "PX": "335730,336175",
+ "PY": "556190,556590",
+ "In": "KAB-AB-003013-2"
+ },
+ {
+ "IdS": 214741,
+ "PX": "339100,339800",
+ "PY": "558950,558950",
+ "In": "KAB-C-003014-1"
+ },
+ {
+ "IdS": 214754,
+ "PX": "343499.85,343695",
+ "PY": "557590.11,557230",
+ "In": "KAB-AB-008020-1"
+ },
+ {
+ "IdS": 214755,
+ "PX": "343695,343975",
+ "PY": "557230,556705",
+ "In": "KAB-AB-008012-1"
+ },
+ {
+ "IdS": 214757,
+ "PX": "343975,344160",
+ "PY": "556705,556355",
+ "In": "KAB-AB-008012-2"
+ },
+ {
+ "IdS": 214758,
+ "PX": "344160,344450.61",
+ "PY": "556355,555829.08",
+ "In": "KAB-AB-008013-1"
+ },
+ {
+ "IdS": 214763,
+ "PX": "345200,345800,345800",
+ "PY": "555100,554650,554450",
+ "In": "KAB-C-008019-2"
+ },
+ {
+ "IdS": 214774,
+ "PX": "338940.8,339305.52",
+ "PY": "560884.52,560649.84",
+ "In": "KAB-C-022037-1"
+ },
+ {
+ "IdS": 214782,
+ "PX": "341045,341280",
+ "PY": "559330,559330",
+ "In": "KAB-C-022038-1"
+ },
+ {
+ "IdS": 214786,
+ "PX": "341399.72,341400",
+ "PY": "558450.11,557500",
+ "In": "KAB-C-022011-4"
+ },
+ {
+ "IdS": 214787,
+ "PX": "345475,345800",
+ "PY": "554700,554450",
+ "In": "KAB-C-022019-1"
+ },
+ {
+ "IdS": 214790,
+ "PX": "344950,345475",
+ "PY": "555099.38,554700",
+ "In": "KAB-C-022041-1"
+ },
+ {
+ "IdS": 214795,
+ "PX": "343750,344050",
+ "PY": "556000,555800",
+ "In": "KAB-C-022016-3"
+ },
+ {
+ "IdS": 214797,
+ "PX": "343450,343450,343750",
+ "PY": "556500,556235,556000",
+ "In": "KAB-C-022016-2"
+ },
+ {
+ "IdS": 214798,
+ "PX": "343100,343450",
+ "PY": "556350,556500",
+ "In": "KAB-C-022015-3"
+ },
+ {
+ "IdS": 214799,
+ "PX": "342550.77,343100",
+ "PY": "556750.22,556350",
+ "In": "KAB-C-022015-2"
+ },
+ {
+ "IdS": 214803,
+ "PX": "341400,342550.77",
+ "PY": "557500,556750.22",
+ "In": "KAB-C-022044-1"
+ },
+ {
+ "IdS": 214805,
+ "PX": "337500,337500,337000",
+ "PY": "569950,569745,569745",
+ "In": "KAB-C-064011-1"
+ },
+ {
+ "IdS": 214806,
+ "PX": "337750,337500,337500",
+ "PY": "570150,570050,569950",
+ "In": "KAB-C-064009-1"
+ },
+ {
+ "IdS": 214808,
+ "PX": "338150,338050,337750",
+ "PY": "570200,570250,570150",
+ "In": "KAB-C-064008-1"
+ },
+ {
+ "IdS": 214814,
+ "PX": "338743.53,338510.1",
+ "PY": "571298.99,570856.83",
+ "In": "KAB-C-064006-2"
+ },
+ {
+ "IdS": 214815,
+ "PX": "338790,338743.53",
+ "PY": "571395,571298.99",
+ "In": "KAB-C-064006-1"
+ },
+ {
+ "IdS": 214823,
+ "PX": "338000,338000,338150",
+ "PY": "570900,570330,570200",
+ "In": "KAB-C-016026-1"
+ },
+ {
+ "IdS": 214834,
+ "PX": "338700,338700.4",
+ "PY": "567450,566950.73",
+ "In": "KAB-AB-009009-1"
+ },
+ {
+ "IdS": 214844,
+ "PX": "340694.72,341607.32",
+ "PY": "565109.81,564298.33",
+ "In": "KAB-AB-009027-4"
+ },
+ {
+ "IdS": 214849,
+ "PX": "341607.32,342500",
+ "PY": "564298.33,563600",
+ "In": "KAB-AB-009014-1"
+ },
+ {
+ "IdS": 214851,
+ "PX": "345425,345745",
+ "PY": "560815,560560",
+ "In": "KAB-C-011007-10"
+ },
+ {
+ "IdS": 214854,
+ "PX": "345035,345425",
+ "PY": "561110,560815",
+ "In": "KAB-C-011007-1"
+ },
+ {
+ "IdS": 214857,
+ "PX": "344395,345035",
+ "PY": "561600,561110",
+ "In": "KAB-AB-011003-1"
+ },
+ {
+ "IdS": 214862,
+ "PX": "343425,344395",
+ "PY": "562265,561600",
+ "In": "KAB-AB-011043-8"
+ },
+ {
+ "IdS": 214866,
+ "PX": "343080,342702.7",
+ "PY": "563350,562801.06",
+ "In": "KAB-C-011020-1"
+ },
+ {
+ "IdS": 214872,
+ "PX": "347450,347450",
+ "PY": "557950,556950",
+ "In": "KAB-C-011019-1"
+ },
+ {
+ "IdS": 214874,
+ "PX": "347450,347450",
+ "PY": "558400,557950",
+ "In": "KAB-C-011016-2"
+ },
+ {
+ "IdS": 214876,
+ "PX": "347450,347450",
+ "PY": "558800,558400",
+ "In": "KAB-C-011016-1"
+ },
+ {
+ "IdS": 214877,
+ "PX": "347450,347450",
+ "PY": "559200,558800",
+ "In": "KAB-C-011010-2"
+ },
+ {
+ "IdS": 214879,
+ "PX": "346900,347437.41,347450",
+ "PY": "559700,559697.33,559200",
+ "In": "KAB-C-011010-1"
+ },
+ {
+ "IdS": 214880,
+ "PX": "346615,346900",
+ "PY": "559895,559700",
+ "In": "KAB-C-011039-6"
+ },
+ {
+ "IdS": 214881,
+ "PX": "346430,346615",
+ "PY": "560035,559895",
+ "In": "KAB-C-011039-8"
+ },
+ {
+ "IdS": 214886,
+ "PX": "339800,339800",
+ "PY": "571100,570950",
+ "In": "KAB-C-007004-20"
+ },
+ {
+ "IdS": 214896,
+ "PX": "342650,342650",
+ "PY": "564500,563950",
+ "In": "KAB-C-007026-1"
+ },
+ {
+ "IdS": 214898,
+ "PX": "342650,342650",
+ "PY": "564850,564500",
+ "In": "KAB-C-007049-1"
+ },
+ {
+ "IdS": 214906,
+ "PX": "345800,345495,345495,345775,345775",
+ "PY": "554450,554365,554105,553980,553950",
+ "In": "KAB-C-010007-1"
+ },
+ {
+ "IdS": 214912,
+ "PX": "347450,347100",
+ "PY": "555600,555600",
+ "In": "KAB-C-011021-1"
+ },
+ {
+ "IdS": 214919,
+ "PX": "345800,346100",
+ "PY": "554450,554450",
+ "In": "KAB-C-022020-1"
+ },
+ {
+ "IdS": 214926,
+ "PX": "356250,356060,356000",
+ "PY": "553850,554225,554345",
+ "In": "KAB-C-055007-4"
+ },
+ {
+ "IdS": 214955,
+ "PX": "353875.03,354300",
+ "PY": "558480.57,557700",
+ "In": "KAB-C-056029-2"
+ },
+ {
+ "IdS": 214968,
+ "PX": "345775,345800,345855,346115",
+ "PY": "553950,553935,553805,552390",
+ "In": "KAB-C-010008-1"
+ },
+ {
+ "IdS": 214969,
+ "PX": "345800,345825,345905",
+ "PY": "554450,554375,553985",
+ "In": "KAB-C-010001-1 NK"
+ },
+ {
+ "IdS": 214970,
+ "PX": "346030,346070",
+ "PY": "553340,553135",
+ "In": "KAB-C-010001-8 NK"
+ },
+ {
+ "IdS": 214972,
+ "PX": "346070,346170,346150",
+ "PY": "553135,552615,552600",
+ "In": "KAB-C-010001-10 NK"
+ },
+ {
+ "IdS": 214974,
+ "PX": "346150,346250",
+ "PY": "552600,551950",
+ "In": "KAB-C-010003-1"
+ },
+ {
+ "IdS": 214975,
+ "PX": "346250,346360",
+ "PY": "551950,551335",
+ "In": "KAB-C-010033-2"
+ },
+ {
+ "IdS": 214978,
+ "PX": "346780,346750.17,346500,346500",
+ "PY": "551150,551119.94,550950,550150",
+ "In": "KAB-C-010011-1"
+ },
+ {
+ "IdS": 214980,
+ "PX": "346500,346500",
+ "PY": "550150,549450",
+ "In": "KAB-C-010011-12"
+ },
+ {
+ "IdS": 214981,
+ "PX": "346550,346550",
+ "PY": "548800,548600",
+ "In": "KAB-C-010016-7"
+ },
+ {
+ "IdS": 214991,
+ "PX": "346550,346550",
+ "PY": "545800,545600",
+ "In": "KAB-C-010002-2"
+ },
+ {
+ "IdS": 214992,
+ "PX": "346550,346550",
+ "PY": "545600,545400",
+ "In": "KAB-C-010002-1"
+ },
+ {
+ "IdS": 214994,
+ "PX": "346550,346550",
+ "PY": "545400,545000",
+ "In": "KAB-C-010021-16"
+ },
+ {
+ "IdS": 214995,
+ "PX": "346550,346549.96",
+ "PY": "544600,544384.65",
+ "In": "KAB-C-010021-28"
+ },
+ {
+ "IdS": 214996,
+ "PX": "346549.96,346550",
+ "PY": "544384.65,544100",
+ "In": "KAB-C-010012-1"
+ },
+ {
+ "IdS": 214997,
+ "PX": "346750,345850",
+ "PY": "543700,543700",
+ "In": "KAB-C-010006-1"
+ },
+ {
+ "IdS": 214998,
+ "PX": "345715,345540",
+ "PY": "543630,543545",
+ "In": "KAB-C-010025-1"
+ },
+ {
+ "IdS": 215002,
+ "PX": "345005,344300",
+ "PY": "543260,542900",
+ "In": "KAB-AB-010028-1"
+ },
+ {
+ "IdS": 215004,
+ "PX": "346780,347450",
+ "PY": "551150,551250",
+ "In": "KAB-C-026002-1"
+ },
+ {
+ "IdS": 215013,
+ "PX": "349450,350050",
+ "PY": "551550,551650",
+ "In": "KAB-C-026006-1"
+ },
+ {
+ "IdS": 215025,
+ "PX": "353150,354450",
+ "PY": "552150,552350",
+ "In": "KAB-C-026010-4"
+ },
+ {
+ "IdS": 215031,
+ "PX": "354450,355800",
+ "PY": "552350,552550",
+ "In": "KAB-C-026011-1"
+ },
+ {
+ "IdS": 215043,
+ "PX": "357619.9,358250,358250",
+ "PY": "552210.95,551950,551750",
+ "In": "KAB-C-026095-2"
+ },
+ {
+ "IdS": 215044,
+ "PX": "358400,358650",
+ "PY": "551900,551800",
+ "In": "KAB-C-026014-2"
+ },
+ {
+ "IdS": 215047,
+ "PX": "358650,359350",
+ "PY": "551800,551550",
+ "In": "KAB-C-026014-4"
+ },
+ {
+ "IdS": 215048,
+ "PX": "359350,359700",
+ "PY": "551550,551400",
+ "In": "KAB-C-026014-6"
+ },
+ {
+ "IdS": 215052,
+ "PX": "359700,360850",
+ "PY": "551400,550950",
+ "In": "KAB-C-026015-1"
+ },
+ {
+ "IdS": 215053,
+ "PX": "360850,361100",
+ "PY": "550950,550850",
+ "In": "KAB-C-026016-1"
+ },
+ {
+ "IdS": 215055,
+ "PX": "361100,361500",
+ "PY": "550850,550700",
+ "In": "KAB-C-026017-1"
+ },
+ {
+ "IdS": 215056,
+ "PX": "361500,362050",
+ "PY": "550700,550500",
+ "In": "KAB-C-026017-4"
+ },
+ {
+ "IdS": 215057,
+ "PX": "362050,362250",
+ "PY": "550500,550450",
+ "In": "KAB-C-026017-2"
+ },
+ {
+ "IdS": 215063,
+ "PX": "364150,364150,363800,363800",
+ "PY": "542500,542450,542450,541150",
+ "In": "KAB-C-054011-1"
+ },
+ {
+ "IdS": 215064,
+ "PX": "363800,363801.08",
+ "PY": "541150,540658.76",
+ "In": "KAB-C-054007-1"
+ },
+ {
+ "IdS": 215069,
+ "PX": "363800,363800",
+ "PY": "548100,547500",
+ "In": "KAB-C-054009-6"
+ },
+ {
+ "IdS": 215072,
+ "PX": "363800,363800",
+ "PY": "547500,546700",
+ "In": "KAB-C-054008-10"
+ },
+ {
+ "IdS": 215074,
+ "PX": "363800,363800",
+ "PY": "546700,545950",
+ "In": "KAB-C-054008-16"
+ },
+ {
+ "IdS": 215075,
+ "PX": "363800,363800",
+ "PY": "545950,545400",
+ "In": "KAB-C-054002-1"
+ },
+ {
+ "IdS": 215078,
+ "PX": "363800,363800",
+ "PY": "545400,544400",
+ "In": "KAB-C-054003-1"
+ },
+ {
+ "IdS": 215079,
+ "PX": "363800,363800",
+ "PY": "544400,543700",
+ "In": "KAB-C-054004-1"
+ },
+ {
+ "IdS": 215086,
+ "PX": "365200,366350,366350",
+ "PY": "549300,548900,548600",
+ "In": "KAB-C-026022-1"
+ },
+ {
+ "IdS": 215087,
+ "PX": "364750,365200",
+ "PY": "549450,549300",
+ "In": "KAB-C-026083-4"
+ },
+ {
+ "IdS": 215094,
+ "PX": "369200,368450",
+ "PY": "549900,549550",
+ "In": "KAB-C-026031-2"
+ },
+ {
+ "IdS": 215098,
+ "PX": "367750,367400",
+ "PY": "549150,548950",
+ "In": "KAB-C-026029-2"
+ },
+ {
+ "IdS": 215101,
+ "PX": "367400,367050",
+ "PY": "548950,548750",
+ "In": "KAB-C-026029-1"
+ },
+ {
+ "IdS": 215102,
+ "PX": "367050,366630.64,366350",
+ "PY": "548750,548501.4,548600",
+ "In": "KAB-C-026029-11"
+ },
+ {
+ "IdS": 215105,
+ "PX": "369950,369250,369200",
+ "PY": "549950,549950,549900",
+ "In": "KAB-C-026080-1"
+ },
+ {
+ "IdS": 215107,
+ "PX": "370800,370580",
+ "PY": "550160,550115",
+ "In": "KAB-C-026033-1"
+ },
+ {
+ "IdS": 215110,
+ "PX": "371250,370800",
+ "PY": "550160,550160",
+ "In": "KAB-C-026034-1"
+ },
+ {
+ "IdS": 215113,
+ "PX": "371850,371450",
+ "PY": "550200,550160.01",
+ "In": "KAB-C-026035-2"
+ },
+ {
+ "IdS": 215114,
+ "PX": "372050,371850",
+ "PY": "550200,550200",
+ "In": "KAB-C-026036-1"
+ },
+ {
+ "IdS": 215115,
+ "PX": "372445,372050",
+ "PY": "550265.02,550200",
+ "In": "KAB-C-026036-2"
+ },
+ {
+ "IdS": 215118,
+ "PX": "373549.58,372445",
+ "PY": "550270.29,550265.02",
+ "In": "KAB-C-026038-1"
+ },
+ {
+ "IdS": 215124,
+ "PX": "375650,374950",
+ "PY": "550600,550350",
+ "In": "KAB-C-026041-1"
+ },
+ {
+ "IdS": 215130,
+ "PX": "372450,372450",
+ "PY": "549400,548950",
+ "In": "KAB-C-026052-2"
+ },
+ {
+ "IdS": 215137,
+ "PX": "372300,372265,372145,371989.4",
+ "PY": "546400,546400,546455,546199.7",
+ "In": "KAB-C-026056-1"
+ },
+ {
+ "IdS": 215138,
+ "PX": "371989.4,371700",
+ "PY": "546199.7,545950",
+ "In": "KAB-C-026057-1"
+ },
+ {
+ "IdS": 215142,
+ "PX": "371700,371400",
+ "PY": "545950,545400",
+ "In": "KAB-AB-026058-1"
+ },
+ {
+ "IdS": 215143,
+ "PX": "371400,371400",
+ "PY": "545400,545100",
+ "In": "KAB-AB-026059-1"
+ },
+ {
+ "IdS": 215145,
+ "PX": "371400,371400",
+ "PY": "545100,544800",
+ "In": "KAB-AB-026059-2"
+ },
+ {
+ "IdS": 215147,
+ "PX": "371400,371400",
+ "PY": "544800,544500",
+ "In": "KAB-AB-026060-1"
+ },
+ {
+ "IdS": 215155,
+ "PX": "370200,370000",
+ "PY": "543350,542950",
+ "In": "KAB-C-026090-1"
+ },
+ {
+ "IdS": 215156,
+ "PX": "369650,370050",
+ "PY": "541850,541650",
+ "In": "KAB-C-053001-1"
+ },
+ {
+ "IdS": 215159,
+ "PX": "371095.09,371450",
+ "PY": "541147.06,540950",
+ "In": "KAB-C-053003-1"
+ },
+ {
+ "IdS": 215161,
+ "PX": "371450,371700",
+ "PY": "540950,540500",
+ "In": "KAB-C-053004-1"
+ },
+ {
+ "IdS": 215163,
+ "PX": "371700,371900",
+ "PY": "540500,540100",
+ "In": "KAB-C-053005-1"
+ },
+ {
+ "IdS": 215164,
+ "PX": "371900,372000",
+ "PY": "540100,539900",
+ "In": "KAB-C-053006-1"
+ },
+ {
+ "IdS": 215165,
+ "PX": "372000,372150",
+ "PY": "539900,539600",
+ "In": "KAB-C-053006-2"
+ },
+ {
+ "IdS": 215168,
+ "PX": "372150,372450",
+ "PY": "539600,539000",
+ "In": "KAB-C-053006-4"
+ },
+ {
+ "IdS": 215173,
+ "PX": "373150,373400",
+ "PY": "537650,537200",
+ "In": "KAB-C-053008-1"
+ },
+ {
+ "IdS": 215174,
+ "PX": "373400,373700",
+ "PY": "537200,536600",
+ "In": "KAB-C-053009-1"
+ },
+ {
+ "IdS": 215185,
+ "PX": "373905,374250",
+ "PY": "536215,535550",
+ "In": "KAB-C-053010-1"
+ },
+ {
+ "IdS": 215190,
+ "PX": "375150,375150",
+ "PY": "534550,534050",
+ "In": "KAB-C-053011-6"
+ },
+ {
+ "IdS": 215206,
+ "PX": "349930,349850",
+ "PY": "580700,580760",
+ "In": "KAB-C-066006-9"
+ },
+ {
+ "IdS": 215207,
+ "PX": "350125,350045",
+ "PY": "580555,580615",
+ "In": "KAB-C-066006-1"
+ },
+ {
+ "IdS": 215211,
+ "PX": "350600,350125",
+ "PY": "580195,580555",
+ "In": "KAB-C-066005-5"
+ },
+ {
+ "IdS": 215212,
+ "PX": "350930,350750",
+ "PY": "580085,580085",
+ "In": "KAB-C-066005-6"
+ },
+ {
+ "IdS": 215214,
+ "PX": "336300,336250,336299.82,336299.82,336255.03",
+ "PY": "570300,570350,570590.49,570609.97,570710",
+ "In": "KAB-AB-001016-1"
+ },
+ {
+ "IdS": 215215,
+ "PX": "335650,335600",
+ "PY": "571200,570950",
+ "In": "KAB-C-013008-1"
+ },
+ {
+ "IdS": 215217,
+ "PX": "335845,335800,335650",
+ "PY": "571750,571735,571200",
+ "In": "KAB-C-013008-4"
+ },
+ {
+ "IdS": 215222,
+ "PX": "335450.04,335340,334950",
+ "PY": "566750.02,566750,566850",
+ "In": "KAB-C-012030-1"
+ },
+ {
+ "IdS": 215224,
+ "PX": "334950,334050,334050",
+ "PY": "566850,566850,567150",
+ "In": "KAB-C-012010-1"
+ },
+ {
+ "IdS": 215225,
+ "PX": "334050,334050",
+ "PY": "567150,567450",
+ "In": "KAB-C-012026-1"
+ },
+ {
+ "IdS": 215227,
+ "PX": "336170,335800.37,335750",
+ "PY": "570245,570244.7,570200",
+ "In": "KAB-AB-012003-1D"
+ },
+ {
+ "IdS": 215228,
+ "PX": "335600,335600",
+ "PY": "570450,570200",
+ "In": "KAB-AB-013037-1"
+ },
+ {
+ "IdS": 215229,
+ "PX": "335600,335600",
+ "PY": "570950,570450",
+ "In": "KAB-C-013038-1"
+ },
+ {
+ "IdS": 215234,
+ "PX": "334950,334950",
+ "PY": "566550,566450",
+ "In": "KAB-C-200011-6"
+ },
+ {
+ "IdS": 215236,
+ "PX": "334950,334950",
+ "PY": "566250,566150",
+ "In": "KAB-C-200016-1"
+ },
+ {
+ "IdS": 215237,
+ "PX": "335250,335400",
+ "PY": "566150,566150",
+ "In": "KAB-C-200016-6"
+ },
+ {
+ "IdS": 215238,
+ "PX": "335400,335400",
+ "PY": "566150,566000",
+ "In": "KAB-C-200025-1"
+ },
+ {
+ "IdS": 215239,
+ "PX": "335400,335400",
+ "PY": "566000,565900",
+ "In": "KAB-C-200025-3"
+ },
+ {
+ "IdS": 215242,
+ "PX": "336100,336100",
+ "PY": "565600,565500",
+ "In": "KAB-C-200023-1"
+ },
+ {
+ "IdS": 215245,
+ "PX": "336100,336600",
+ "PY": "565500,565500",
+ "In": "KAB-C-200018-1"
+ },
+ {
+ "IdS": 215263,
+ "PX": "340650,341100",
+ "PY": "571900,571200",
+ "In": "KAB-C-056002-1"
+ },
+ {
+ "IdS": 215266,
+ "PX": "341350,341700",
+ "PY": "570850,570350",
+ "In": "KAB-C-056002-2"
+ },
+ {
+ "IdS": 215285,
+ "PX": "348113.46,349200",
+ "PY": "564387.16,563500",
+ "In": "KAB-C-056021-3"
+ },
+ {
+ "IdS": 215300,
+ "PX": "345047.02,345642.27",
+ "PY": "567092.21,566557.74",
+ "In": "KAB-C-056005-1"
+ },
+ {
+ "IdS": 215310,
+ "PX": "350447.03,350602.6",
+ "PY": "562501.83,562376.15",
+ "In": "KAB-C-056022-6"
+ },
+ {
+ "IdS": 215314,
+ "PX": "349350,350447.03",
+ "PY": "563400,562501.83",
+ "In": "KAB-C-056022-1"
+ },
+ {
+ "IdS": 215327,
+ "PX": "354929.87,355250",
+ "PY": "562424.98,562700",
+ "In": "KAB-AB-057002-15"
+ },
+ {
+ "IdS": 215338,
+ "PX": "380300,379900",
+ "PY": "541800,542050",
+ "In": "KAB-C-052008-1"
+ },
+ {
+ "IdS": 215342,
+ "PX": "381050,380550",
+ "PY": "541350,541650",
+ "In": "KAB-C-052006-1"
+ },
+ {
+ "IdS": 215345,
+ "PX": "381800,381050",
+ "PY": "540950,541350",
+ "In": "KAB-C-052005-1"
+ },
+ {
+ "IdS": 215347,
+ "PX": "382400,381800",
+ "PY": "540600,540950",
+ "In": "KAB-C-052004-1"
+ },
+ {
+ "IdS": 215353,
+ "PX": "383700,383250",
+ "PY": "539850,540100",
+ "In": "KAB-C-052003-1"
+ },
+ {
+ "IdS": 215355,
+ "PX": "384150,383700",
+ "PY": "539600,539850",
+ "In": "KAB-C-052029-2"
+ },
+ {
+ "IdS": 215360,
+ "PX": "376600.82,375900",
+ "PY": "543950.32,544350",
+ "In": "KAB-C-052030-1"
+ },
+ {
+ "IdS": 215362,
+ "PX": "377200,376600.82",
+ "PY": "543600,543950.32",
+ "In": "KAB-C-052013-1"
+ },
+ {
+ "IdS": 215363,
+ "PX": "377550,377200",
+ "PY": "543400,543600",
+ "In": "KAB-C-052027-1"
+ },
+ {
+ "IdS": 215367,
+ "PX": "378500,378150",
+ "PY": "542850,543050",
+ "In": "KAB-C-052011-1"
+ },
+ {
+ "IdS": 215369,
+ "PX": "379100,378500",
+ "PY": "542500,542850",
+ "In": "KAB-C-052010-1"
+ },
+ {
+ "IdS": 215374,
+ "PX": "372700,372700",
+ "PY": "550400,549300",
+ "In": "KAB-AB-052026-8"
+ },
+ {
+ "IdS": 215378,
+ "PX": "372700,372700,372500",
+ "PY": "549300,548050,547600",
+ "In": "KAB-AB-052025-8"
+ },
+ {
+ "IdS": 215381,
+ "PX": "372350,371975,372155",
+ "PY": "547300,546570,546485",
+ "In": "KAB-AB-052023-6"
+ },
+ {
+ "IdS": 215382,
+ "PX": "372600,372450",
+ "PY": "546200,546300",
+ "In": "KAB-C-052020-2"
+ },
+ {
+ "IdS": 215383,
+ "PX": "372800,372600",
+ "PY": "546100,546200",
+ "In": "KAB-C-052017-2"
+ },
+ {
+ "IdS": 215385,
+ "PX": "373250,372800",
+ "PY": "545850,546100",
+ "In": "KAB-C-052016-2"
+ },
+ {
+ "IdS": 215386,
+ "PX": "373600,373250",
+ "PY": "545650,545850",
+ "In": "KAB-C-052016-1"
+ },
+ {
+ "IdS": 215390,
+ "PX": "374150,373600",
+ "PY": "545350,545650",
+ "In": "KAB-C-052015-2"
+ },
+ {
+ "IdS": 215392,
+ "PX": "374650,374150",
+ "PY": "545050,545350",
+ "In": "KAB-C-052015-1"
+ },
+ {
+ "IdS": 215401,
+ "PX": "374050,372700",
+ "PY": "550550,550400",
+ "In": "KAB-C-051002-1"
+ },
+ {
+ "IdS": 215406,
+ "PX": "375050,374050",
+ "PY": "550550,550550",
+ "In": "KAB-C-051001-1"
+ },
+ {
+ "IdS": 215410,
+ "PX": "370350,369450,369200",
+ "PY": "550300,550300,549900",
+ "In": "KAB-C-051005-1"
+ },
+ {
+ "IdS": 215414,
+ "PX": "371300,370350",
+ "PY": "550400,550300",
+ "In": "KAB-C-051004-1"
+ },
+ {
+ "IdS": 215418,
+ "PX": "372700,371300",
+ "PY": "550400,550400",
+ "In": "KAB-C-051003-1"
+ },
+ {
+ "IdS": 215420,
+ "PX": "369200,368900,368250",
+ "PY": "549900,550050,549650",
+ "In": "KAB-C-051006-1"
+ },
+ {
+ "IdS": 215425,
+ "PX": "368250,367075",
+ "PY": "549650,549195",
+ "In": "KAB-C-051007-1"
+ },
+ {
+ "IdS": 215429,
+ "PX": "367075,366450",
+ "PY": "549195,548650",
+ "In": "KAB-C-051008-1"
+ },
+ {
+ "IdS": 215439,
+ "PX": "359550,358250",
+ "PY": "551250,551750",
+ "In": "KAB-C-051015-1"
+ },
+ {
+ "IdS": 215444,
+ "PX": "361050,359550",
+ "PY": "550650,551250",
+ "In": "KAB-C-051014-1"
+ },
+ {
+ "IdS": 215446,
+ "PX": "361400,361050",
+ "PY": "550500,550650",
+ "In": "KAB-C-051013-1"
+ },
+ {
+ "IdS": 215448,
+ "PX": "362150,361400",
+ "PY": "550250,550500",
+ "In": "KAB-C-051053-1"
+ },
+ {
+ "IdS": 215449,
+ "PX": "362500,362150",
+ "PY": "550100,550250",
+ "In": "KAB-C-051012-1"
+ },
+ {
+ "IdS": 215459,
+ "PX": "365100,363800",
+ "PY": "549100,549600",
+ "In": "KAB-C-051010-1"
+ },
+ {
+ "IdS": 215464,
+ "PX": "366450,365100",
+ "PY": "548650,549100",
+ "In": "KAB-C-051009-1"
+ },
+ {
+ "IdS": 215466,
+ "PX": "347250,346825",
+ "PY": "551000,550955",
+ "In": "KAB-C-051027-2"
+ },
+ {
+ "IdS": 215468,
+ "PX": "347713.51,347250",
+ "PY": "551092.98,551000",
+ "In": "KAB-C-051027-1"
+ },
+ {
+ "IdS": 215477,
+ "PX": "350100,349800",
+ "PY": "551450,551400",
+ "In": "KAB-C-051025-2"
+ },
+ {
+ "IdS": 215479,
+ "PX": "350700,350100",
+ "PY": "551550,551450",
+ "In": "KAB-C-051025-1"
+ },
+ {
+ "IdS": 215483,
+ "PX": "352150,351450",
+ "PY": "551800,551700",
+ "In": "KAB-C-051024-1"
+ },
+ {
+ "IdS": 215484,
+ "PX": "352450,352150",
+ "PY": "551850,551800",
+ "In": "KAB-C-051023-1"
+ },
+ {
+ "IdS": 215486,
+ "PX": "352950,352450",
+ "PY": "551950,551850",
+ "In": "KAB-C-051022-1"
+ },
+ {
+ "IdS": 215488,
+ "PX": "353650,353649.9,353600,352950",
+ "PY": "552500,552085.17,552100,551950",
+ "In": "KAB-C-051021-1"
+ },
+ {
+ "IdS": 215489,
+ "PX": "354600,354200",
+ "PY": "552150,552100",
+ "In": "KAB-C-051019-1"
+ },
+ {
+ "IdS": 215492,
+ "PX": "355150,354600",
+ "PY": "552250,552150",
+ "In": "KAB-C-051018-1"
+ },
+ {
+ "IdS": 215494,
+ "PX": "355450,355150",
+ "PY": "552300,552250",
+ "In": "KAB-C-051056-2"
+ },
+ {
+ "IdS": 215501,
+ "PX": "346825,346025.25,346025",
+ "PY": "550955,550955.09,551050",
+ "In": "KAB-C-051028-1"
+ },
+ {
+ "IdS": 215502,
+ "PX": "346025,345725",
+ "PY": "551050,551050",
+ "In": "KAB-C-051029-1"
+ },
+ {
+ "IdS": 215504,
+ "PX": "345330,345000",
+ "PY": "551050,550300",
+ "In": "KAB-C-051011-1"
+ },
+ {
+ "IdS": 215509,
+ "PX": "343425,343061.85",
+ "PY": "549795,549634.86",
+ "In": "KAB-C-051032-1"
+ },
+ {
+ "IdS": 215512,
+ "PX": "343061.85,342329.21",
+ "PY": "549634.86,549313.55",
+ "In": "KAB-C-051033-1"
+ },
+ {
+ "IdS": 215516,
+ "PX": "342329.21,341230",
+ "PY": "549313.55,548830",
+ "In": "KAB-C-051034-1"
+ },
+ {
+ "IdS": 215521,
+ "PX": "341045,339490",
+ "PY": "548750,548070",
+ "In": "KAB-C-051035-2"
+ },
+ {
+ "IdS": 215523,
+ "PX": "339490,339300",
+ "PY": "548070,547700",
+ "In": "KAB-C-051037-1"
+ },
+ {
+ "IdS": 215525,
+ "PX": "339300,339299.8",
+ "PY": "547700,547515.45",
+ "In": "KAB-C-051038-1"
+ },
+ {
+ "IdS": 215529,
+ "PX": "338910,338620",
+ "PY": "546315,545900",
+ "In": "KAB-C-051040-1"
+ },
+ {
+ "IdS": 215531,
+ "PX": "338620,338335",
+ "PY": "545900,545490",
+ "In": "KAB-C-051041-1"
+ },
+ {
+ "IdS": 215540,
+ "PX": "355900,356100",
+ "PY": "565200,565500",
+ "In": "KAB-C-042034-2"
+ },
+ {
+ "IdS": 215542,
+ "PX": "356100,356250",
+ "PY": "565500,565750",
+ "In": "KAB-C-042035-1"
+ },
+ {
+ "IdS": 215543,
+ "PX": "356350,356500",
+ "PY": "565900,566200",
+ "In": "KAB-C-042092-1"
+ },
+ {
+ "IdS": 215546,
+ "PX": "346750,347375",
+ "PY": "554045,554385",
+ "In": "KAB-C-042002-3"
+ },
+ {
+ "IdS": 215547,
+ "PX": "347700,347900",
+ "PY": "554550,554650",
+ "In": "KAB-C-042084-16"
+ },
+ {
+ "IdS": 215550,
+ "PX": "348100,348300",
+ "PY": "554750,554850",
+ "In": "KAB-C-042080-1"
+ },
+ {
+ "IdS": 215551,
+ "PX": "348300,348400",
+ "PY": "554850,554900",
+ "In": "KAB-C-042003-8"
+ },
+ {
+ "IdS": 215552,
+ "PX": "348400,348500",
+ "PY": "554900,554950",
+ "In": "KAB-C-042003-10"
+ },
+ {
+ "IdS": 215553,
+ "PX": "348950,349165.01",
+ "PY": "555150,555255",
+ "In": "KAB-C-042079-1"
+ },
+ {
+ "IdS": 215556,
+ "PX": "350600,350870",
+ "PY": "555950,556055",
+ "In": "KAB-C-042006-6"
+ },
+ {
+ "IdS": 215562,
+ "PX": "352900,353000",
+ "PY": "557000,557050",
+ "In": "KAB-C-042013-1"
+ },
+ {
+ "IdS": 215565,
+ "PX": "353200,353400",
+ "PY": "557150,557250",
+ "In": "KAB-C-042014-1"
+ },
+ {
+ "IdS": 215570,
+ "PX": "353850,354050",
+ "PY": "558100,558550",
+ "In": "KAB-C-042016-2"
+ },
+ {
+ "IdS": 215575,
+ "PX": "354450,354500",
+ "PY": "559450,559600",
+ "In": "KAB-C-042022-4"
+ },
+ {
+ "IdS": 215576,
+ "PX": "354500,354600",
+ "PY": "559600,559850",
+ "In": "KAB-C-042018-1"
+ },
+ {
+ "IdS": 215578,
+ "PX": "354800,354900",
+ "PY": "560300,560550",
+ "In": "KAB-C-042019-1"
+ },
+ {
+ "IdS": 215581,
+ "PX": "355150,355400",
+ "PY": "561150,561700",
+ "In": "KAB-C-042020-1"
+ },
+ {
+ "IdS": 215587,
+ "PX": "355450,355250",
+ "PY": "563400,563700",
+ "In": "KAB-C-042030-1"
+ },
+ {
+ "IdS": 215588,
+ "PX": "355250,355100",
+ "PY": "563700,563900",
+ "In": "KAB-C-042088-1"
+ },
+ {
+ "IdS": 215589,
+ "PX": "355600,356050",
+ "PY": "563200,563200",
+ "In": "KAB-C-042023-1"
+ },
+ {
+ "IdS": 215590,
+ "PX": "356050,356050",
+ "PY": "563200,563450",
+ "In": "KAB-C-042023-2"
+ },
+ {
+ "IdS": 215592,
+ "PX": "356545,357300",
+ "PY": "563290,563050",
+ "In": "KAB-C-042052-2"
+ },
+ {
+ "IdS": 215608,
+ "PX": "339360,339720",
+ "PY": "548120,547295",
+ "In": "KAB-C-050028-1"
+ },
+ {
+ "IdS": 215613,
+ "PX": "338750,339175,339360",
+ "PY": "548995,548040,548120",
+ "In": "KAB-C-050027-2"
+ },
+ {
+ "IdS": 215619,
+ "PX": "338130,338750",
+ "PY": "550470,548995",
+ "In": "KAB-C-050023-14"
+ },
+ {
+ "IdS": 215635,
+ "PX": "336580,336655.59",
+ "PY": "554160,553972.39",
+ "In": "KAB-C-050018-1"
+ },
+ {
+ "IdS": 215636,
+ "PX": "336500,336580",
+ "PY": "554345,554160",
+ "In": "KAB-C-050016-24"
+ },
+ {
+ "IdS": 215642,
+ "PX": "335725,335880",
+ "PY": "556185,555815",
+ "In": "KAB-C-050015-1"
+ },
+ {
+ "IdS": 215644,
+ "PX": "344050,344300",
+ "PY": "543000,542900",
+ "In": "KAB-C-050067-17"
+ },
+ {
+ "IdS": 215645,
+ "PX": "343700.61,343850",
+ "PY": "543348.66,543200",
+ "In": "KAB-C-050080-1"
+ },
+ {
+ "IdS": 215651,
+ "PX": "342655,343700.61",
+ "PY": "544350,543348.66",
+ "In": "KAB-C-050084-1"
+ },
+ {
+ "IdS": 215663,
+ "PX": "340536.23,341040.04",
+ "PY": "546379.65,545894.98",
+ "In": "KAB-C-050081-1"
+ },
+ {
+ "IdS": 215669,
+ "PX": "344300,344300",
+ "PY": "542900,542615",
+ "In": "KAB-C-050037-1"
+ },
+ {
+ "IdS": 215690,
+ "PX": "340850,340850",
+ "PY": "538850,538500",
+ "In": "KAB-C-050044-1"
+ },
+ {
+ "IdS": 215691,
+ "PX": "340850,340850,340950,340950",
+ "PY": "538500,538305,538305,538295",
+ "In": "KAB-C-050049-1"
+ },
+ {
+ "IdS": 215696,
+ "PX": "340950,340950,340850,340850.46",
+ "PY": "538295,538285,538285,536149.87",
+ "In": "KAB-C-050046-1"
+ },
+ {
+ "IdS": 215721,
+ "PX": "341295,341294.99,341349.85,341500.09",
+ "PY": "530250,530229.85,530229.85,529200.23",
+ "In": "KAB-C-050056-1"
+ },
+ {
+ "IdS": 215738,
+ "PX": "334300,334300",
+ "PY": "569800,569950",
+ "In": "KAB-C-202017-1"
+ },
+ {
+ "IdS": 215739,
+ "PX": "334300,334300",
+ "PY": "569950,570050",
+ "In": "KAB-C-202017-2"
+ },
+ {
+ "IdS": 215740,
+ "PX": "334300,334150",
+ "PY": "569950,569950",
+ "In": "KAB-C-202017-3"
+ },
+ {
+ "IdS": 215745,
+ "PX": "352500,353150",
+ "PY": "552050,552150",
+ "In": "KAB-C-026009-1"
+ },
+ {
+ "IdS": 215768,
+ "PX": "356070.38,356069.71",
+ "PY": "562565.4,562849.96",
+ "In": "KAB-C-042043-1"
+ },
+ {
+ "IdS": 215776,
+ "PX": "334800,334400,334350",
+ "PY": "569600,569450,569350",
+ "In": "KAB-C-013003-1"
+ },
+ {
+ "IdS": 215780,
+ "PX": "350725,351146.83",
+ "PY": "577975,577697.85",
+ "In": "KAB-C-006021-1"
+ },
+ {
+ "IdS": 215806,
+ "PX": "354050,354200",
+ "PY": "558550,558900",
+ "In": "KAB-C-042017-1"
+ },
+ {
+ "IdS": 215808,
+ "PX": "354200,354450",
+ "PY": "558900,558800",
+ "In": "KAB-C-042017-3"
+ },
+ {
+ "IdS": 215815,
+ "PX": "338000,338000,338050",
+ "PY": "571400,571550,571550",
+ "In": "KAB-AB-001031-5"
+ },
+ {
+ "IdS": 215816,
+ "PX": "338580,338530",
+ "PY": "591420,591225",
+ "In": "KAB-C-063004-2"
+ },
+ {
+ "IdS": 215819,
+ "PX": "336515,336730.02",
+ "PY": "579105,578500.31",
+ "In": "KAB-C-063027-1"
+ },
+ {
+ "IdS": 215822,
+ "PX": "335150,335450.04",
+ "PY": "567100,566750.02",
+ "In": "KAB-C-002027-2"
+ },
+ {
+ "IdS": 215823,
+ "PX": "335750,335750,336400",
+ "PY": "564900,564000,563900",
+ "In": "KAB-AB-002011-1"
+ },
+ {
+ "IdS": 215828,
+ "PX": "346500,346500.14,346740.2,346780",
+ "PY": "551100,550964.79,551129.73,551150",
+ "In": "KAB-C-010004-1"
+ },
+ {
+ "IdS": 215829,
+ "PX": "346500,346550,346550",
+ "PY": "549450,549450,549000",
+ "In": "KAB-C-010015-7"
+ },
+ {
+ "IdS": 215830,
+ "PX": "346550,346550",
+ "PY": "549000,548800",
+ "In": "KAB-C-010016-2"
+ },
+ {
+ "IdS": 215836,
+ "PX": "353627.53,354929.87",
+ "PY": "561323.95,562424.98",
+ "In": "KAB-AB-057002-2"
+ },
+ {
+ "IdS": 215838,
+ "PX": "338110,337650",
+ "PY": "545165,544515",
+ "In": "KAB-C-051042-4"
+ },
+ {
+ "IdS": 215843,
+ "PX": "355000,355150",
+ "PY": "560800,561150",
+ "In": "KAB-C-042024-4"
+ },
+ {
+ "IdS": 215844,
+ "PX": "355000,354700",
+ "PY": "560800,560950",
+ "In": "KAB-C-042024-5"
+ },
+ {
+ "IdS": 215848,
+ "PX": "339350,339459.88",
+ "PY": "571300,571299.96",
+ "In": "KAB-AB-007009-1"
+ },
+ {
+ "IdS": 215850,
+ "PX": "340045,340085,340420",
+ "PY": "565630,565635,565320",
+ "In": "KAB-C-409004-1"
+ },
+ {
+ "IdS": 215851,
+ "PX": "340545.34,340694.72",
+ "PY": "565209.99,565109.81",
+ "In": "KAB-AB-409006-1"
+ },
+ {
+ "IdS": 215860,
+ "PX": "354350,354450",
+ "PY": "559200,559450",
+ "In": "KAB-C-042022-1"
+ },
+ {
+ "IdS": 215861,
+ "PX": "345250,345350",
+ "PY": "582000,581700",
+ "In": "KAB-L-L058003-20"
+ },
+ {
+ "IdS": 215866,
+ "PX": "345200,345250",
+ "PY": "582200,582000",
+ "In": "KAB-L-L058003-18"
+ },
+ {
+ "IdS": 216186,
+ "PX": "332250,332400,332400,333365.07,333365.13,333395.08",
+ "PY": "569950,569850,569600,569599.79,569750,569774.88",
+ "In": "KAB-C-202002-1"
+ },
+ {
+ "IdS": 216214,
+ "PX": "345000,345000",
+ "PY": "549200,549605",
+ "In": "KAB-C-041001-6"
+ },
+ {
+ "IdS": 216231,
+ "PX": "335330.01,335725",
+ "PY": "556720,556185",
+ "In": "KAB-C-050078-1"
+ },
+ {
+ "IdS": 216237,
+ "PX": "331340,331584.28",
+ "PY": "562220,561884.96",
+ "In": "KAB-C-050003-1"
+ },
+ {
+ "IdS": 216252,
+ "PX": "363801.08,363800",
+ "PY": "540658.76,540100",
+ "In": "KAB-C-054010-1"
+ },
+ {
+ "IdS": 216257,
+ "PX": "363800,364750",
+ "PY": "540100,538300",
+ "In": "KAB-C-054012-8"
+ },
+ {
+ "IdS": 216262,
+ "PX": "364750,365350",
+ "PY": "538300,537650",
+ "In": "KAB-C-054013-18"
+ },
+ {
+ "IdS": 216264,
+ "PX": "365350,365350",
+ "PY": "537650,536900",
+ "In": "KAB-C-054013-30"
+ },
+ {
+ "IdS": 216265,
+ "PX": "340455,340660,340694.72",
+ "PY": "565245,565080,565109.81",
+ "In": "KAB-AB-009013-1"
+ },
+ {
+ "IdS": 216267,
+ "PX": "340045,340455",
+ "PY": "565630,565245",
+ "In": "KAB-C-009028-9"
+ },
+ {
+ "IdS": 216268,
+ "PX": "336900,336900",
+ "PY": "592050,592250",
+ "In": "KAB-C-063003-2"
+ },
+ {
+ "IdS": 216277,
+ "PX": "337955,337750",
+ "PY": "567090,566795",
+ "In": "KAB-C-009018-1"
+ },
+ {
+ "IdS": 216290,
+ "PX": "339300,339583.53",
+ "PY": "566300,566038.34",
+ "In": "KAB-C-009010-1"
+ },
+ {
+ "IdS": 216300,
+ "PX": "351600,351700,352500",
+ "PY": "552100,551900,552050",
+ "In": "KAB-C-026030-1"
+ },
+ {
+ "IdS": 216317,
+ "PX": "350050,351500,351600",
+ "PY": "551650,551900,552100",
+ "In": "KAB-C-026007-1"
+ },
+ {
+ "IdS": 216319,
+ "PX": "353350,354400",
+ "PY": "580500,580650",
+ "In": "KAB-C-006027-1"
+ },
+ {
+ "IdS": 216326,
+ "PX": "335925,335925",
+ "PY": "570950,571050",
+ "In": "KAB-C-001010-5"
+ },
+ {
+ "IdS": 216954,
+ "PX": "364624,367404",
+ "PY": "584010,584010",
+ "In": "KAB-L-FL2601-1"
+ },
+ {
+ "IdS": 216955,
+ "PX": "367404,371404",
+ "PY": "584010,584010",
+ "In": "KAB-L-FL2602-1"
+ },
+ {
+ "IdS": 216956,
+ "PX": "371404,374004",
+ "PY": "584010,584010",
+ "In": "KAB-L-FL2603-1"
+ },
+ {
+ "IdS": 216957,
+ "PX": "374004,377804",
+ "PY": "584010,584010",
+ "In": "KAB-L-FL2701-1"
+ },
+ {
+ "IdS": 216958,
+ "PX": "377804,378804",
+ "PY": "584010,584010",
+ "In": "KAB-L-FL2702-1"
+ },
+ {
+ "IdS": 216959,
+ "PX": "378804,379604",
+ "PY": "584010,584010",
+ "In": "KAB-L-FL2703-1"
+ },
+ {
+ "IdS": 216960,
+ "PX": "379604,380604",
+ "PY": "584010,584010",
+ "In": "KAB-L-FL1203-1"
+ },
+ {
+ "IdS": 216961,
+ "PX": "380604,381404",
+ "PY": "584010,584010",
+ "In": "KAB-L-FL1211-1"
+ },
+ {
+ "IdS": 216962,
+ "PX": "381404,381404",
+ "PY": "584010,583810",
+ "In": "KAB-L-FL1211A-1"
+ },
+ {
+ "IdS": 216965,
+ "PX": "381404,382404",
+ "PY": "584010,584010",
+ "In": "KAB-L-FL1250-1"
+ },
+ {
+ "IdS": 216966,
+ "PX": "382404,383604",
+ "PY": "584010,584010",
+ "In": "KAB-L-FL1250-2"
+ },
+ {
+ "IdS": 216967,
+ "PX": "382404,382404",
+ "PY": "584010,583810",
+ "In": "KAB-L-FL1250-3"
+ },
+ {
+ "IdS": 216969,
+ "PX": "383604,384604",
+ "PY": "584010,584010",
+ "In": "KAB-L-FL1250-4"
+ },
+ {
+ "IdS": 216970,
+ "PX": "383604,383604",
+ "PY": "584010,584210",
+ "In": "KAB-L-FL1250-5"
+ },
+ {
+ "IdS": 216971,
+ "PX": "345250,346000",
+ "PY": "582000,582300",
+ "In": "KAB-L-L058003-23"
+ },
+ {
+ "IdS": 216980,
+ "PX": "373700,373905",
+ "PY": "536600,536215",
+ "In": "KAB-C-053009-2"
+ },
+ {
+ "IdS": 216981,
+ "PX": "333900,333950,334175,334800,334800",
+ "PY": "569350,569150,569150,569150,569300",
+ "In": "KAB-C-202010-2"
+ },
+ {
+ "IdS": 216995,
+ "PX": "373035,373183.75",
+ "PY": "556125,556377.5",
+ "In": "KAB-L-LFGN0013961-1"
+ },
+ {
+ "IdS": 216996,
+ "PX": "378750,379050.01",
+ "PY": "545400,545550",
+ "In": "KAB-L-LFGN006620-1"
+ },
+ {
+ "IdS": 216998,
+ "PX": "355750,355965",
+ "PY": "554800,554920",
+ "In": "KAB-C-055002-3"
+ },
+ {
+ "IdS": 217001,
+ "PX": "354850,355050",
+ "PY": "556600,556700",
+ "In": "KAB-C-055005-2"
+ },
+ {
+ "IdS": 217003,
+ "PX": "335550,335550,335600",
+ "PY": "571500,571050,570950",
+ "In": "KAB-L-L013001-4"
+ },
+ {
+ "IdS": 217004,
+ "PX": "335550,335350",
+ "PY": "571500,571500",
+ "In": "KAB-L-L013001-3"
+ },
+ {
+ "IdS": 217015,
+ "PX": "335600,335400,335400",
+ "PY": "570950,570950,571250",
+ "In": "KAB-L-L001061-1"
+ },
+ {
+ "IdS": 217016,
+ "PX": "336204.95,336300",
+ "PY": "570709.98,570920",
+ "In": "KAB-L-L001062-1"
+ },
+ {
+ "IdS": 217020,
+ "PX": "339200,339800",
+ "PY": "577800,577950",
+ "In": "KAB-L-L021002-3 VERS"
+ },
+ {
+ "IdS": 217021,
+ "PX": "339470.18,339550",
+ "PY": "575344.81,575100",
+ "In": "KAB-AB-021008-1"
+ },
+ {
+ "IdS": 217025,
+ "PX": "334600,334550",
+ "PY": "571150,571150",
+ "In": "KAB-C-013041-2"
+ },
+ {
+ "IdS": 217026,
+ "PX": "334550,334450",
+ "PY": "571150,571150",
+ "In": "KAB-C-013041-4"
+ },
+ {
+ "IdS": 217122,
+ "PX": "372700,372300",
+ "PY": "550400,550650",
+ "In": "KAB-L-L026088-1"
+ },
+ {
+ "IdS": 217125,
+ "PX": "375150,375409.85",
+ "PY": "532950,532949.97",
+ "In": "KAB-C-039005-1"
+ },
+ {
+ "IdS": 217134,
+ "PX": "342910.23,343425",
+ "PY": "562618.04,562265",
+ "In": "KAB-AB-011100-4"
+ },
+ {
+ "IdS": 217137,
+ "PX": "340700,339800",
+ "PY": "574400,574200",
+ "In": "KAB-C-025007-4"
+ },
+ {
+ "IdS": 217138,
+ "PX": "340700,340700",
+ "PY": "574400,574150",
+ "In": "KAB-C-025007-5"
+ },
+ {
+ "IdS": 217167,
+ "PX": "340152.61,340325,342150,342850,343250",
+ "PY": "572849.21,572880,573700,572250,572250",
+ "In": "KAB-L-L058020-1"
+ },
+ {
+ "IdS": 217172,
+ "PX": "330600,330300",
+ "PY": "563250,563400",
+ "In": "KAB-L-L077002-1"
+ },
+ {
+ "IdS": 217173,
+ "PX": "330300,330300",
+ "PY": "563400,563700",
+ "In": "KAB-L-L077002-3"
+ },
+ {
+ "IdS": 217174,
+ "PX": "330300,329850,329700",
+ "PY": "563400,563400,564000",
+ "In": "KAB-L-L077002-2"
+ },
+ {
+ "IdS": 217176,
+ "PX": "331200,332085",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-2"
+ },
+ {
+ "IdS": 217177,
+ "PX": "331200,331200",
+ "PY": "564000,564450",
+ "In": "KAB-L-L079001-3"
+ },
+ {
+ "IdS": 217181,
+ "PX": "334950,334950",
+ "PY": "564000,564450",
+ "In": "KAB-L-L079001-11"
+ },
+ {
+ "IdS": 217183,
+ "PX": "332085,332085",
+ "PY": "564000,564435",
+ "In": "KAB-L-L079001-5"
+ },
+ {
+ "IdS": 217184,
+ "PX": "333150,333150",
+ "PY": "564000,564450",
+ "In": "KAB-L-L079001-7"
+ },
+ {
+ "IdS": 217185,
+ "PX": "334050,334050",
+ "PY": "564000,564450",
+ "In": "KAB-L-L079001-9"
+ },
+ {
+ "IdS": 217186,
+ "PX": "330300,331000",
+ "PY": "563400,563400",
+ "In": "KAB-L-GL-HAAR-7891-1"
+ },
+ {
+ "IdS": 217208,
+ "PX": "338150,338200,338550",
+ "PY": "571450,571650,571750",
+ "In": "KAB-C-016005-1"
+ },
+ {
+ "IdS": 217212,
+ "PX": "332850,332850",
+ "PY": "569950,569400",
+ "In": "KAB-C-202009-1"
+ },
+ {
+ "IdS": 217214,
+ "PX": "332850,332750",
+ "PY": "569400,569400",
+ "In": "KAB-C-202009-3"
+ },
+ {
+ "IdS": 217219,
+ "PX": "336395,336345",
+ "PY": "582545,582065",
+ "In": "KAB-C-063019-2"
+ },
+ {
+ "IdS": 217220,
+ "PX": "336395,336500",
+ "PY": "582545,582525",
+ "In": "KAB-C-063019-5"
+ },
+ {
+ "IdS": 217223,
+ "PX": "364300,364750",
+ "PY": "549600,549450",
+ "In": "KAB-C-026083-2"
+ },
+ {
+ "IdS": 217224,
+ "PX": "364300,364407.31",
+ "PY": "549600,549796.53",
+ "In": "KAB-C-026083-5"
+ },
+ {
+ "IdS": 217226,
+ "PX": "363800,363800",
+ "PY": "549600,548905",
+ "In": "KAB-C-054001-1"
+ },
+ {
+ "IdS": 217227,
+ "PX": "363800,363800",
+ "PY": "548905,548100",
+ "In": "KAB-C-054001-2"
+ },
+ {
+ "IdS": 217254,
+ "PX": "344200,344250,344200,344250",
+ "PY": "586350,586350,586600,586600",
+ "In": "KAB-L-L058004-7"
+ },
+ {
+ "IdS": 217258,
+ "PX": "345150,345200",
+ "PY": "582400,582200",
+ "In": "KAB-L-L058003-16"
+ },
+ {
+ "IdS": 217259,
+ "PX": "345150,345200,345150,345200",
+ "PY": "582400,582400,582550,582550",
+ "In": "KAB-L-L058003-17"
+ },
+ {
+ "IdS": 217266,
+ "PX": "344384.26,343900",
+ "PY": "579466.67,578800",
+ "In": "KAB-L-L058002-2"
+ },
+ {
+ "IdS": 217267,
+ "PX": "344384.26,344350,344500,344450",
+ "PY": "579466.67,579500,579700,579750",
+ "In": "KAB-L-L058002-3"
+ },
+ {
+ "IdS": 217276,
+ "PX": "335550.31,335750,335755.31",
+ "PY": "565949.92,565950,565496.72",
+ "In": "KAB-AB-002007-1"
+ },
+ {
+ "IdS": 217288,
+ "PX": "341435,342020",
+ "PY": "559330,559330",
+ "In": "KAB-C-022029-2"
+ },
+ {
+ "IdS": 217290,
+ "PX": "342020,342020",
+ "PY": "559330,559470",
+ "In": "KAB-C-022029-9"
+ },
+ {
+ "IdS": 217309,
+ "PX": "338350,338300",
+ "PY": "579400,579600",
+ "In": "KAB-C-021030-1"
+ },
+ {
+ "IdS": 217311,
+ "PX": "336100,336300",
+ "PY": "572900,573100",
+ "In": "KAB-C-012022-1"
+ },
+ {
+ "IdS": 217313,
+ "PX": "336300,336400.37,336399.77,336299.99",
+ "PY": "573100,573100,573199.77,573199.17",
+ "In": "KAB-C-012023-1"
+ },
+ {
+ "IdS": 217314,
+ "PX": "375150,375150,375707.51,375708.36",
+ "PY": "531900,532100,532099.99,532148.19",
+ "In": "KAB-C-039006-8"
+ },
+ {
+ "IdS": 217315,
+ "PX": "375708.36,375658.95,375154.79,375150",
+ "PY": "532148.19,532219.47,532219.47,532750",
+ "In": "KAB-C-039007-4"
+ },
+ {
+ "IdS": 217316,
+ "PX": "375708.36,375684.28,375348.48",
+ "PY": "532148.19,532130.56,532131.27",
+ "In": "KAB-C-039008-1"
+ },
+ {
+ "IdS": 217317,
+ "PX": "335550,335650",
+ "PY": "565800,565800",
+ "In": "KAB-AB-002006-20"
+ },
+ {
+ "IdS": 217318,
+ "PX": "335400,335250",
+ "PY": "565800,565800",
+ "In": "KAB-AB-002006-19"
+ },
+ {
+ "IdS": 217322,
+ "PX": "346250,346250",
+ "PY": "579650,580350",
+ "In": "KAB-C-F016005-1"
+ },
+ {
+ "IdS": 217327,
+ "PX": "349300,349199.33",
+ "PY": "551550,551605.21",
+ "In": "KAB-C-026008-1"
+ },
+ {
+ "IdS": 217329,
+ "PX": "374300,374600,374350",
+ "PY": "554550,555100,555250",
+ "In": "KAB-C-026054-6"
+ },
+ {
+ "IdS": 217330,
+ "PX": "374350,374200",
+ "PY": "555250,555350",
+ "In": "KAB-AB-026050-9"
+ },
+ {
+ "IdS": 217331,
+ "PX": "343400,344000",
+ "PY": "573950,574250",
+ "In": "KAB-C-006008-10"
+ },
+ {
+ "IdS": 217333,
+ "PX": "337400,337397.82",
+ "PY": "572000,572394.6",
+ "In": "KAB-AB-001037-1"
+ },
+ {
+ "IdS": 217334,
+ "PX": "337397.82,337399.45",
+ "PY": "572394.6,572646.2",
+ "In": "KAB-AB-001005-1"
+ },
+ {
+ "IdS": 217335,
+ "PX": "336004.93,336005",
+ "PY": "570660.19,570840",
+ "In": "KAB-L-L001063-1"
+ },
+ {
+ "IdS": 217336,
+ "PX": "352675.03,350549.97",
+ "PY": "560574.98,560580.02",
+ "In": "KAB-L-L083004-20"
+ },
+ {
+ "IdS": 217344,
+ "PX": "342750,342750,341860",
+ "PY": "558750,557735,557640",
+ "In": "KAB-L-L083001-10"
+ },
+ {
+ "IdS": 217345,
+ "PX": "341860,341550,341400",
+ "PY": "557730,557640,557500",
+ "In": "KAB-L-L083008-2"
+ },
+ {
+ "IdS": 217371,
+ "PX": "350549.97,350550",
+ "PY": "560580.02,560850",
+ "In": "KAB-L-L083004-19"
+ },
+ {
+ "IdS": 217384,
+ "PX": "344750,344749.88",
+ "PY": "559350,559601.3",
+ "In": "KAB-L-L083001-5"
+ },
+ {
+ "IdS": 217436,
+ "PX": "345005,344920",
+ "PY": "543260,543420",
+ "In": "KAB-C-010046-1"
+ },
+ {
+ "IdS": 217505,
+ "PX": "372500,372300,371850",
+ "PY": "547600,547500,546600",
+ "In": "KAB-C-026055-1"
+ },
+ {
+ "IdS": 217506,
+ "PX": "371850,372300",
+ "PY": "546600,546400",
+ "In": "KAB-C-026055-2"
+ },
+ {
+ "IdS": 217507,
+ "PX": "371850,371650",
+ "PY": "546600,546600",
+ "In": "KAB-C-026055-3"
+ },
+ {
+ "IdS": 217520,
+ "PX": "343060,343060",
+ "PY": "573300,573000",
+ "In": "KAB-C-017005-1"
+ },
+ {
+ "IdS": 217521,
+ "PX": "343060,343060",
+ "PY": "573000,572750",
+ "In": "KAB-C-017005-2"
+ },
+ {
+ "IdS": 217522,
+ "PX": "343060,343300",
+ "PY": "573000,573000",
+ "In": "KAB-C-017005-3"
+ },
+ {
+ "IdS": 217525,
+ "PX": "349165.01,349250",
+ "PY": "555255,555300",
+ "In": "KAB-C-042004-2"
+ },
+ {
+ "IdS": 217526,
+ "PX": "349250,349355.26",
+ "PY": "555300,555350.18",
+ "In": "KAB-C-042004-4"
+ },
+ {
+ "IdS": 217530,
+ "PX": "349250,349200",
+ "PY": "555300,555400",
+ "In": "KAB-C-042004-7"
+ },
+ {
+ "IdS": 217612,
+ "PX": "339200,339850",
+ "PY": "577800,577800",
+ "In": "KAB-L-L021002-5 GL"
+ },
+ {
+ "IdS": 217615,
+ "PX": "346100,346100,346400,346500.12",
+ "PY": "554450,554680,555000,555000",
+ "In": "KAB-C-022023-1"
+ },
+ {
+ "IdS": 217628,
+ "PX": "338285,338550",
+ "PY": "591900,591840",
+ "In": "KAB-C-063002-4"
+ },
+ {
+ "IdS": 217629,
+ "PX": "338550,338670",
+ "PY": "591840,591810",
+ "In": "KAB-C-063002-6"
+ },
+ {
+ "IdS": 217630,
+ "PX": "338550,338585",
+ "PY": "591840,591970",
+ "In": "KAB-C-063002-7"
+ },
+ {
+ "IdS": 217631,
+ "PX": "372445,372450",
+ "PY": "550265.02,549700",
+ "In": "KAB-C-026051-1"
+ },
+ {
+ "IdS": 217632,
+ "PX": "372450,372450",
+ "PY": "549700,549550",
+ "In": "KAB-C-026051-2"
+ },
+ {
+ "IdS": 217633,
+ "PX": "372450,372300",
+ "PY": "549700,549700",
+ "In": "KAB-C-026051-3"
+ },
+ {
+ "IdS": 217634,
+ "PX": "372450,372450",
+ "PY": "548650,548150",
+ "In": "KAB-C-026053-1"
+ },
+ {
+ "IdS": 217635,
+ "PX": "372450,372450,372500",
+ "PY": "548150,548000,547600",
+ "In": "KAB-C-026053-2"
+ },
+ {
+ "IdS": 217636,
+ "PX": "372450,372600",
+ "PY": "548150,548150",
+ "In": "KAB-C-026053-3"
+ },
+ {
+ "IdS": 217637,
+ "PX": "347100,346900,346500,346500.12",
+ "PY": "555600,555600,555200,555000",
+ "In": "KAB-C-011022-1"
+ },
+ {
+ "IdS": 217638,
+ "PX": "346500.12,346500,346100",
+ "PY": "555000,554900,554450",
+ "In": "KAB-AB-011030 A.B.-1"
+ },
+ {
+ "IdS": 217640,
+ "PX": "337700.84,338000",
+ "PY": "581599.61,581350",
+ "In": "KAB-C-021020-1"
+ },
+ {
+ "IdS": 217736,
+ "PX": "342950,342450",
+ "PY": "591250,591250",
+ "In": "KAB-L-L059001-7"
+ },
+ {
+ "IdS": 217750,
+ "PX": "342950,343100",
+ "PY": "591250,590700",
+ "In": "KAB-L-L059001-8"
+ },
+ {
+ "IdS": 217753,
+ "PX": "343100,342600",
+ "PY": "590700,590550",
+ "In": "KAB-L-L059001-9"
+ },
+ {
+ "IdS": 217772,
+ "PX": "337810,337720",
+ "PY": "588305,587925",
+ "In": "KAB-C-063017-1"
+ },
+ {
+ "IdS": 217775,
+ "PX": "337415,337335",
+ "PY": "586685,586370",
+ "In": "KAB-C-063033-1"
+ },
+ {
+ "IdS": 217778,
+ "PX": "336745.72,336620",
+ "PY": "583964.91,583455",
+ "In": "KAB-C-063020-1"
+ },
+ {
+ "IdS": 217779,
+ "PX": "336745.72,336815",
+ "PY": "583964.91,583950",
+ "In": "KAB-C-063021-1"
+ },
+ {
+ "IdS": 217839,
+ "PX": "344450,343900",
+ "PY": "578950,578250",
+ "In": "KAB-C-025002-1"
+ },
+ {
+ "IdS": 217840,
+ "PX": "343900,343600",
+ "PY": "578250,577900",
+ "In": "KAB-C-025002-5"
+ },
+ {
+ "IdS": 217841,
+ "PX": "343900,344100",
+ "PY": "578250,578100",
+ "In": "KAB-C-025002-7"
+ },
+ {
+ "IdS": 217850,
+ "PX": "344700,344450",
+ "PY": "579250,578950",
+ "In": "KAB-C-025008-6"
+ },
+ {
+ "IdS": 217852,
+ "PX": "344700,344500",
+ "PY": "579250,579400",
+ "In": "KAB-C-025008-7"
+ },
+ {
+ "IdS": 217854,
+ "PX": "346570,346832.79",
+ "PY": "565725,565488.78",
+ "In": "KAB-C-056014-1"
+ },
+ {
+ "IdS": 217856,
+ "PX": "345791.09,346070",
+ "PY": "566424.12,566170",
+ "In": "KAB-C-056027-2"
+ },
+ {
+ "IdS": 217966,
+ "PX": "349300,349000",
+ "PY": "553800,553800",
+ "In": "KAB-C-026004-3"
+ },
+ {
+ "IdS": 217967,
+ "PX": "349000,348750",
+ "PY": "553800,553800",
+ "In": "KAB-C-026004-5"
+ },
+ {
+ "IdS": 218008,
+ "PX": "346570,346475",
+ "PY": "565725,565630",
+ "In": "KAB-C-056015-1"
+ },
+ {
+ "IdS": 218093,
+ "PX": "364050.02,364050",
+ "PY": "552949.72,553100",
+ "In": "KAB-C-FGN00112501-1"
+ },
+ {
+ "IdS": 218094,
+ "PX": "364050,364050",
+ "PY": "553100,553200",
+ "In": "KAB-C-FGN00112501-2"
+ },
+ {
+ "IdS": 218096,
+ "PX": "343312.21,343410.05,345047.02",
+ "PY": "568650.71,568562.03,567092.21",
+ "In": "KAB-C-056013-2"
+ },
+ {
+ "IdS": 218097,
+ "PX": "343312.21,343564.62",
+ "PY": "568650.71,568902.67",
+ "In": "KAB-C-056013-3"
+ },
+ {
+ "IdS": 218099,
+ "PX": "364050,364200",
+ "PY": "553100,553100",
+ "In": "KAB-C-FGN00112501-3"
+ },
+ {
+ "IdS": 218105,
+ "PX": "338405,338195",
+ "PY": "590709.99,589865",
+ "In": "KAB-C-063093-1"
+ },
+ {
+ "IdS": 218118,
+ "PX": "367314.2,367314.13",
+ "PY": "551830.14,551903.98",
+ "In": "KAB-C-FGN001142-1"
+ },
+ {
+ "IdS": 218120,
+ "PX": "367314.13,367313.91",
+ "PY": "551903.98,551969.87",
+ "In": "KAB-C-FGN0011421-1"
+ },
+ {
+ "IdS": 218121,
+ "PX": "367313.91,367314.2",
+ "PY": "551969.87,552030.14",
+ "In": "KAB-C-FGN0011422-1"
+ },
+ {
+ "IdS": 218140,
+ "PX": "341435,342020",
+ "PY": "559180,559180",
+ "In": "KAB-C-008010-1"
+ },
+ {
+ "IdS": 218141,
+ "PX": "342020,342225,342850",
+ "PY": "559180,559150,558800",
+ "In": "KAB-AB-008018-1"
+ },
+ {
+ "IdS": 218147,
+ "PX": "335450,335829.26",
+ "PY": "568200,568200.23",
+ "In": "KAB-C-012004-1"
+ },
+ {
+ "IdS": 218148,
+ "PX": "335829.26,335900",
+ "PY": "568200.23,568200",
+ "In": "KAB-C-012016-1"
+ },
+ {
+ "IdS": 218149,
+ "PX": "338195,338155,337920,337800",
+ "PY": "589865,589955,590045,590000",
+ "In": "KAB-L-L063009-1"
+ },
+ {
+ "IdS": 218150,
+ "PX": "338195,338490",
+ "PY": "589865,589800",
+ "In": "KAB-L-L063013-1"
+ },
+ {
+ "IdS": 218151,
+ "PX": "353000,353100",
+ "PY": "557050,557100",
+ "In": "KAB-C-042082-1"
+ },
+ {
+ "IdS": 218152,
+ "PX": "353100,353200",
+ "PY": "557100,557150",
+ "In": "KAB-C-042036-1"
+ },
+ {
+ "IdS": 218163,
+ "PX": "342020,342020",
+ "PY": "559330,559180",
+ "In": "KAB-C-022029-4"
+ },
+ {
+ "IdS": 218164,
+ "PX": "342020,342020,341400,341399.72",
+ "PY": "559180,558600,558600,558450.11",
+ "In": "KAB-C-022011-1"
+ },
+ {
+ "IdS": 218203,
+ "PX": "370600,370070",
+ "PY": "554000,554265.01",
+ "In": "KAB-C-FGN001517-4"
+ },
+ {
+ "IdS": 218234,
+ "PX": "346550,346550",
+ "PY": "546500,545950",
+ "In": "KAB-C-010020-1"
+ },
+ {
+ "IdS": 218259,
+ "PX": "345000,345000",
+ "PY": "549605,549700",
+ "In": "KAB-C-041015-1"
+ },
+ {
+ "IdS": 218263,
+ "PX": "346550,346550",
+ "PY": "545950,545800",
+ "In": "KAB-C-010002-4"
+ },
+ {
+ "IdS": 218274,
+ "PX": "381600,382000",
+ "PY": "543200,543200",
+ "In": "KAB-C-FGN006400-1"
+ },
+ {
+ "IdS": 218290,
+ "PX": "380100,380250",
+ "PY": "543800,543750",
+ "In": "KAB-C-FGN006023-4"
+ },
+ {
+ "IdS": 218291,
+ "PX": "380100,380000",
+ "PY": "543800,543650",
+ "In": "KAB-C-FGN006023-5"
+ },
+ {
+ "IdS": 218294,
+ "PX": "379750,380050",
+ "PY": "544350,544350",
+ "In": "KAB-C-FGN006500-3"
+ },
+ {
+ "IdS": 218334,
+ "PX": "344580,344690,345000,345200",
+ "PY": "555290,555250,555250,555100",
+ "In": "KAB-C-008019-1"
+ },
+ {
+ "IdS": 218337,
+ "PX": "344580,344950",
+ "PY": "555290,555099.38",
+ "In": "KAB-C-022031-1"
+ },
+ {
+ "IdS": 218353,
+ "PX": "346250,346550",
+ "PY": "576050,576050",
+ "In": "KAB-C-006005-1"
+ },
+ {
+ "IdS": 218356,
+ "PX": "342220,342350",
+ "PY": "569075,569075",
+ "In": "KAB-AB-017008-1"
+ },
+ {
+ "IdS": 218398,
+ "PX": "334050,334350",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-8"
+ },
+ {
+ "IdS": 218399,
+ "PX": "334350,334950",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-12"
+ },
+ {
+ "IdS": 218400,
+ "PX": "334350,334350",
+ "PY": "564000,564350",
+ "In": "KAB-L-L079001-13"
+ },
+ {
+ "IdS": 218401,
+ "PX": "331050,330850.08",
+ "PY": "547700,547750.61",
+ "In": "KAB-L-L078001-24"
+ },
+ {
+ "IdS": 218402,
+ "PX": "331050,330849.99",
+ "PY": "547700,547800.79",
+ "In": "KAB-L-L078001-25"
+ },
+ {
+ "IdS": 218419,
+ "PX": "338650,338651.74",
+ "PY": "547200,547043.64",
+ "In": "KAB-L-L078001-27"
+ },
+ {
+ "IdS": 218420,
+ "PX": "335550,334849.84",
+ "PY": "547700,547701.07",
+ "In": "KAB-L-L078001-10"
+ },
+ {
+ "IdS": 218421,
+ "PX": "334849.84,334150",
+ "PY": "547701.07,547700",
+ "In": "KAB-L-L078001-28"
+ },
+ {
+ "IdS": 218422,
+ "PX": "334849.84,334849.35",
+ "PY": "547701.07,547901.97",
+ "In": "KAB-L-L078001-29"
+ },
+ {
+ "IdS": 218423,
+ "PX": "372800,372599.36",
+ "PY": "551000,551000.57",
+ "In": "KAB-AB-FGN0030064-1"
+ },
+ {
+ "IdS": 218424,
+ "PX": "346250,346250",
+ "PY": "576050,576150",
+ "In": "KAB-C-016020-1"
+ },
+ {
+ "IdS": 218425,
+ "PX": "346250,346250",
+ "PY": "576150,576450",
+ "In": "KAB-C-016020-14"
+ },
+ {
+ "IdS": 218426,
+ "PX": "346250,346400",
+ "PY": "576150,576300",
+ "In": "KAB-C-016020-13"
+ },
+ {
+ "IdS": 218435,
+ "PX": "335799.59,335800",
+ "PY": "563105.03,563300",
+ "In": "KAB-C-022025-6"
+ },
+ {
+ "IdS": 218444,
+ "PX": "337450,337450",
+ "PY": "571300,571250",
+ "In": "KAB-C-001057-42"
+ },
+ {
+ "IdS": 218445,
+ "PX": "337450,337450",
+ "PY": "571250,571150",
+ "In": "KAB-C-001057-40"
+ },
+ {
+ "IdS": 218446,
+ "PX": "346250,346300,346450,346400",
+ "PY": "576150,576150,576300,576300",
+ "In": "KAB-C-016020-15"
+ },
+ {
+ "IdS": 218450,
+ "PX": "371850,371650",
+ "PY": "550650,550650",
+ "In": "KAB-C-FGN003045-2"
+ },
+ {
+ "IdS": 218451,
+ "PX": "371850,371850",
+ "PY": "550650,550800",
+ "In": "KAB-C-FGN003045-3"
+ },
+ {
+ "IdS": 218453,
+ "PX": "335600,335799.59",
+ "PY": "563105,563105.03",
+ "In": "KAB-C-022025-1"
+ },
+ {
+ "IdS": 218454,
+ "PX": "335799.59,335999.4",
+ "PY": "563105.03,563105.04",
+ "In": "KAB-C-022025-7"
+ },
+ {
+ "IdS": 218457,
+ "PX": "337600,337700",
+ "PY": "571400,571400",
+ "In": "KAB-AB-001026-7"
+ },
+ {
+ "IdS": 218458,
+ "PX": "337700,337850",
+ "PY": "571400,571400",
+ "In": "KAB-AB-001031-12"
+ },
+ {
+ "IdS": 218459,
+ "PX": "372050,372000",
+ "PY": "550650,550650",
+ "In": "KAB-C-FGN003045-1"
+ },
+ {
+ "IdS": 218460,
+ "PX": "372000,371850",
+ "PY": "550650,550650",
+ "In": "KAB-C-FGN003045-5"
+ },
+ {
+ "IdS": 218461,
+ "PX": "372000,372000",
+ "PY": "550650,550300",
+ "In": "KAB-AB-FGN003045-4"
+ },
+ {
+ "IdS": 218464,
+ "PX": "337720,337526.03,337415",
+ "PY": "587925,587146.47,586685",
+ "In": "KAB-C-063012-1"
+ },
+ {
+ "IdS": 218468,
+ "PX": "343550,343650",
+ "PY": "589000,588650",
+ "In": "KAB-L-L059001-12"
+ },
+ {
+ "IdS": 218469,
+ "PX": "343550,343500,343450,343250",
+ "PY": "589000,589000,589150,589150",
+ "In": "KAB-L-L059001-13"
+ },
+ {
+ "IdS": 218470,
+ "PX": "343250,343000",
+ "PY": "589150,589150",
+ "In": "KAB-L-L059001-14"
+ },
+ {
+ "IdS": 218471,
+ "PX": "343250,343250",
+ "PY": "589150,589350",
+ "In": "KAB-L-L059001-15"
+ },
+ {
+ "IdS": 218472,
+ "PX": "338700.4,338700,339300",
+ "PY": "566950.73,566300,566300",
+ "In": "KAB-AB-009032-1"
+ },
+ {
+ "IdS": 218477,
+ "PX": "336099.74,336099.92",
+ "PY": "578500.09,578749.97",
+ "In": "KAB-L-L021005-4"
+ },
+ {
+ "IdS": 218478,
+ "PX": "336099.74,336299.51",
+ "PY": "578500.09,578701.52",
+ "In": "KAB-L-L021005-3"
+ },
+ {
+ "IdS": 218480,
+ "PX": "338450,338750,339055",
+ "PY": "579050,579050,578200",
+ "In": "KAB-L-L021002-1"
+ },
+ {
+ "IdS": 218481,
+ "PX": "339055,339200",
+ "PY": "578200,577800",
+ "In": "KAB-L-L021002-2"
+ },
+ {
+ "IdS": 218482,
+ "PX": "339055,338860",
+ "PY": "578200,578200",
+ "In": "KAB-L-L021002-7"
+ },
+ {
+ "IdS": 218487,
+ "PX": "339200,339270",
+ "PY": "577800,577350",
+ "In": "KAB-L-L021002-4"
+ },
+ {
+ "IdS": 218491,
+ "PX": "339270,339095",
+ "PY": "577350,577350",
+ "In": "KAB-L-L021002-9"
+ },
+ {
+ "IdS": 218494,
+ "PX": "335800,335650",
+ "PY": "572750,572750",
+ "In": "KAB-L-L013001-5"
+ },
+ {
+ "IdS": 218500,
+ "PX": "355250,355495",
+ "PY": "562700,562940",
+ "In": "KAB-AB-057004-1"
+ },
+ {
+ "IdS": 218501,
+ "PX": "356069.71,355864.77,355520,356050",
+ "PY": "562849.96,562955.12,562955,563450",
+ "In": "KAB-C-057010-1"
+ },
+ {
+ "IdS": 218505,
+ "PX": "355924.88,355924.4",
+ "PY": "562774.84,562599.84",
+ "In": "KAB-AB-842001-1"
+ },
+ {
+ "IdS": 218506,
+ "PX": "355924.88,356069.71",
+ "PY": "562774.84,562849.96",
+ "In": "KAB-AB-842002-1"
+ },
+ {
+ "IdS": 218514,
+ "PX": "343850,343400",
+ "PY": "587850,587850",
+ "In": "KAB-L-L058004-10"
+ },
+ {
+ "IdS": 218515,
+ "PX": "344100,343850",
+ "PY": "587850,587850",
+ "In": "KAB-L-L058012-9"
+ },
+ {
+ "IdS": 218516,
+ "PX": "343850,344200",
+ "PY": "587850,586350",
+ "In": "KAB-L-L058004-1"
+ },
+ {
+ "IdS": 218517,
+ "PX": "343850,343900,344050,344100",
+ "PY": "587850,587900,587900,587850",
+ "In": "KAB-L-L059002-1"
+ },
+ {
+ "IdS": 218519,
+ "PX": "332850,332850",
+ "PY": "567600,567300",
+ "In": "KAB-C-200028-1"
+ },
+ {
+ "IdS": 218521,
+ "PX": "373150,373800",
+ "PY": "549750,549750",
+ "In": "KAB-C-FGN003113-4"
+ },
+ {
+ "IdS": 218524,
+ "PX": "332800,332800",
+ "PY": "547700,547590",
+ "In": "KAB-L-L078001-15"
+ },
+ {
+ "IdS": 218525,
+ "PX": "366350,366450",
+ "PY": "548600,548850",
+ "In": "KAB-C-851008-1"
+ },
+ {
+ "IdS": 218526,
+ "PX": "366450,366450",
+ "PY": "548650,548775",
+ "In": "KAB-C-051036-1"
+ },
+ {
+ "IdS": 218528,
+ "PX": "334750.25,334450",
+ "PY": "567850.5,567850",
+ "In": "KAB-AB-002003-1"
+ },
+ {
+ "IdS": 218530,
+ "PX": "334849.34,334750.25",
+ "PY": "568199.92,567850.5",
+ "In": "KAB-AB-002015-1"
+ },
+ {
+ "IdS": 218531,
+ "PX": "334750.25,334750",
+ "PY": "567850.5,567550",
+ "In": "KAB-AB-002017-1"
+ },
+ {
+ "IdS": 218533,
+ "PX": "335650,335640,335580,335570",
+ "PY": "571200,571205,571205,571200",
+ "In": "KAB-C-013008-5"
+ },
+ {
+ "IdS": 218535,
+ "PX": "346550,346550",
+ "PY": "545000,544600",
+ "In": "KAB-C-010021-24"
+ },
+ {
+ "IdS": 218549,
+ "PX": "342700,342950",
+ "PY": "591600,591250",
+ "In": "KAB-L-L059001-16"
+ },
+ {
+ "IdS": 218550,
+ "PX": "342700,343045",
+ "PY": "591600,591600",
+ "In": "KAB-L-L059001-17"
+ },
+ {
+ "IdS": 218551,
+ "PX": "342700.05,342700",
+ "PY": "592400.05,592300",
+ "In": "KAB-L-L059001-1"
+ },
+ {
+ "IdS": 218553,
+ "PX": "342700,342950",
+ "PY": "592300,592300",
+ "In": "KAB-L-L059001-19"
+ },
+ {
+ "IdS": 218565,
+ "PX": "380450,380450",
+ "PY": "545400,545650",
+ "In": "KAB-C-FGN006550-5"
+ },
+ {
+ "IdS": 218578,
+ "PX": "378550,378650",
+ "PY": "544450,544650",
+ "In": "KAB-C-FGN006310-1"
+ },
+ {
+ "IdS": 218579,
+ "PX": "378650,378750.01",
+ "PY": "544650,544850",
+ "In": "KAB-C-FGN006310-2"
+ },
+ {
+ "IdS": 218580,
+ "PX": "378650,378850",
+ "PY": "544650,544650",
+ "In": "KAB-C-FGN006310-3"
+ },
+ {
+ "IdS": 218593,
+ "PX": "342750,342770,342850",
+ "PY": "558750,558750,558800",
+ "In": "KAB-L-L083001-9"
+ },
+ {
+ "IdS": 218594,
+ "PX": "374300,374550",
+ "PY": "545900,545800",
+ "In": "KAB-C-FGN006041-1"
+ },
+ {
+ "IdS": 218596,
+ "PX": "374550,374700",
+ "PY": "545800,546050",
+ "In": "KAB-C-FGN006042-1"
+ },
+ {
+ "IdS": 218599,
+ "PX": "338510.1,338463.41,338150",
+ "PY": "570856.83,570768.4,570200",
+ "In": "KAB-C-064006-4"
+ },
+ {
+ "IdS": 218601,
+ "PX": "341400,342850,342850",
+ "PY": "557500,557500,558800",
+ "In": "KAB-C-022014-1"
+ },
+ {
+ "IdS": 218610,
+ "PX": "337400,337000",
+ "PY": "566400,565950",
+ "In": "KAB-C-009019-1"
+ },
+ {
+ "IdS": 218635,
+ "PX": "346550,346550",
+ "PY": "548000,546700",
+ "In": "KAB-C-010018-10"
+ },
+ {
+ "IdS": 218636,
+ "PX": "337000,336750",
+ "PY": "565950,566200",
+ "In": "KAB-C-F009003-1"
+ },
+ {
+ "IdS": 218657,
+ "PX": "368850,368770",
+ "PY": "554550,554695",
+ "In": "KAB-C-FGN0011523-1"
+ },
+ {
+ "IdS": 218658,
+ "PX": "344400,344451.21,344398.32,344448.93",
+ "PY": "585550,585550.68,585751.06,585750.71",
+ "In": "KAB-L-L058004-9"
+ },
+ {
+ "IdS": 218659,
+ "PX": "344200,344299.72",
+ "PY": "586350,585947.36",
+ "In": "KAB-L-L058004-2"
+ },
+ {
+ "IdS": 218660,
+ "PX": "344299.72,344400",
+ "PY": "585947.36,585550",
+ "In": "KAB-L-L058004-8"
+ },
+ {
+ "IdS": 218661,
+ "PX": "344299.72,344350,344300,344345",
+ "PY": "585947.36,585950,586150,586150",
+ "In": "KAB-L-L058004-11"
+ },
+ {
+ "IdS": 218662,
+ "PX": "345200,345398.96",
+ "PY": "582200,582250.5",
+ "In": "KAB-L-L058003-19"
+ },
+ {
+ "IdS": 218663,
+ "PX": "345350,345295.26,345000",
+ "PY": "581700,581548.31,581550",
+ "In": "KAB-L-L058003-25"
+ },
+ {
+ "IdS": 218664,
+ "PX": "345350,345000",
+ "PY": "581700,581700",
+ "In": "KAB-L-L058003-27"
+ },
+ {
+ "IdS": 218673,
+ "PX": "369500,369200,369200",
+ "PY": "549000,548700,548700",
+ "In": "KAB-C-FGN003181-4"
+ },
+ {
+ "IdS": 218682,
+ "PX": "344600,346049.13",
+ "PY": "558800,558801.58",
+ "In": "KAB-C-022049-2"
+ },
+ {
+ "IdS": 218683,
+ "PX": "346049.13,346900,346900",
+ "PY": "558801.58,558800,559700",
+ "In": "KAB-C-022033-1"
+ },
+ {
+ "IdS": 218698,
+ "PX": "373600,373600",
+ "PY": "553000,552600",
+ "In": "KAB-C-FGN003164-1"
+ },
+ {
+ "IdS": 218834,
+ "PX": "337800,337850",
+ "PY": "590000,589900",
+ "In": "KAB-C-063008-1"
+ },
+ {
+ "IdS": 218835,
+ "PX": "337850,338115,338195",
+ "PY": "589900,589820,589865",
+ "In": "KAB-C-063008-2"
+ },
+ {
+ "IdS": 218836,
+ "PX": "337850,337850",
+ "PY": "589900,589850",
+ "In": "KAB-C-063008-3"
+ },
+ {
+ "IdS": 218842,
+ "PX": "337150,336250",
+ "PY": "578300,578300",
+ "In": "KAB-C-021025-1"
+ },
+ {
+ "IdS": 218843,
+ "PX": "336250,336100",
+ "PY": "578300,578300",
+ "In": "KAB-C-021025-2"
+ },
+ {
+ "IdS": 218844,
+ "PX": "336250,336250",
+ "PY": "578300,578150",
+ "In": "KAB-C-021025-3"
+ },
+ {
+ "IdS": 218845,
+ "PX": "336250,336100",
+ "PY": "578150,578150",
+ "In": "KAB-C-021031-1"
+ },
+ {
+ "IdS": 218846,
+ "PX": "336250,336200,336100",
+ "PY": "578150,578100,578100",
+ "In": "KAB-C-021032-1"
+ },
+ {
+ "IdS": 218847,
+ "PX": "336250,336200,336100",
+ "PY": "578150,578050,578050",
+ "In": "KAB-C-021033-1"
+ },
+ {
+ "IdS": 218848,
+ "PX": "336250,336200,336100",
+ "PY": "578150,578000,578000",
+ "In": "KAB-C-021034-1"
+ },
+ {
+ "IdS": 218855,
+ "PX": "372800,372800",
+ "PY": "553400,553800",
+ "In": "KAB-C-FGN003150-1"
+ },
+ {
+ "IdS": 218954,
+ "PX": "340150,340160",
+ "PY": "573500,573305",
+ "In": "KAB-L-L058001-2"
+ },
+ {
+ "IdS": 218955,
+ "PX": "340160,340190,340152.61",
+ "PY": "573305,572970,572849.21",
+ "In": "KAB-L-L058001-1"
+ },
+ {
+ "IdS": 218956,
+ "PX": "340160,340280",
+ "PY": "573305,573305",
+ "In": "KAB-L-L058001-3"
+ },
+ {
+ "IdS": 218958,
+ "PX": "342250,342000",
+ "PY": "576700,576400",
+ "In": "KAB-L-L058001-10"
+ },
+ {
+ "IdS": 218960,
+ "PX": "342000,342100,342300,342350",
+ "PY": "576400,576400,576350,576300",
+ "In": "KAB-L-L058001-11"
+ },
+ {
+ "IdS": 218961,
+ "PX": "342000,342050,342250,342350",
+ "PY": "576400,576350,576300,576300",
+ "In": "KAB-L-L058001-9"
+ },
+ {
+ "IdS": 218962,
+ "PX": "336100,336100",
+ "PY": "578300,578350",
+ "In": "KAB-L-L021005-1"
+ },
+ {
+ "IdS": 218963,
+ "PX": "336100,336099.74",
+ "PY": "578350,578500.09",
+ "In": "KAB-L-L021005-2"
+ },
+ {
+ "IdS": 218965,
+ "PX": "344700,344750",
+ "PY": "584350,584100",
+ "In": "KAB-L-L058004-6"
+ },
+ {
+ "IdS": 218967,
+ "PX": "344750,344800,344950,345003.14",
+ "PY": "584100,584150,584150,584095.34",
+ "In": "KAB-L-L058004-29"
+ },
+ {
+ "IdS": 218968,
+ "PX": "344750,344800,344950,345003.14",
+ "PY": "584100,584050,584050,584095.34",
+ "In": "KAB-L-L058004-31"
+ },
+ {
+ "IdS": 218969,
+ "PX": "345350,345350",
+ "PY": "581050,580950",
+ "In": "KAB-L-L058002-1"
+ },
+ {
+ "IdS": 218970,
+ "PX": "345350,345350,344384.26",
+ "PY": "580950,580750,579466.67",
+ "In": "KAB-L-L058002-24"
+ },
+ {
+ "IdS": 218971,
+ "PX": "345350,345350",
+ "PY": "581700,581150",
+ "In": "KAB-L-L058003-22"
+ },
+ {
+ "IdS": 218972,
+ "PX": "345350,345350",
+ "PY": "581150,581050",
+ "In": "KAB-L-L058003-24"
+ },
+ {
+ "IdS": 218988,
+ "PX": "342650,342648.28",
+ "PY": "567750,566399.64",
+ "In": "KAB-AB-007022-2"
+ },
+ {
+ "IdS": 218989,
+ "PX": "380450,380100",
+ "PY": "545400,545400",
+ "In": "KAB-C-FGN006550-2"
+ },
+ {
+ "IdS": 218990,
+ "PX": "379900,380100",
+ "PY": "543900,543800",
+ "In": "KAB-C-FGN006023-2"
+ },
+ {
+ "IdS": 218991,
+ "PX": "332850,332850",
+ "PY": "564000,564350",
+ "In": "KAB-L-L079001-15"
+ },
+ {
+ "IdS": 218992,
+ "PX": "329700,329700",
+ "PY": "563000,563250",
+ "In": "KAB-L-L079002-1"
+ },
+ {
+ "IdS": 218993,
+ "PX": "329700,329700",
+ "PY": "563250,564000",
+ "In": "KAB-L-L079002-2"
+ },
+ {
+ "IdS": 218994,
+ "PX": "329700,330600",
+ "PY": "563250,563250",
+ "In": "KAB-L-L079002-3"
+ },
+ {
+ "IdS": 218995,
+ "PX": "339550,339800",
+ "PY": "575100,574200",
+ "In": "KAB-AB-021008-2"
+ },
+ {
+ "IdS": 218998,
+ "PX": "336450,336515",
+ "PY": "571250,571250",
+ "In": "KAB-C-001044-14"
+ },
+ {
+ "IdS": 218999,
+ "PX": "336450,336450",
+ "PY": "571250,571400",
+ "In": "KAB-C-001044-13"
+ },
+ {
+ "IdS": 219000,
+ "PX": "336450,336250",
+ "PY": "571400,571400",
+ "In": "KAB-C-001049-1"
+ },
+ {
+ "IdS": 219003,
+ "PX": "336255.03,336240.01",
+ "PY": "570710,570674.99",
+ "In": "KAB-L-L001064-1"
+ },
+ {
+ "IdS": 219004,
+ "PX": "336240.01,336255.01",
+ "PY": "570674.99,570660.05",
+ "In": "KAB-L-L001065-1"
+ },
+ {
+ "IdS": 219005,
+ "PX": "342740,343060",
+ "PY": "574470,573755",
+ "In": "KAB-C-017001-1"
+ },
+ {
+ "IdS": 219006,
+ "PX": "380450,380450",
+ "PY": "544950,545400",
+ "In": "KAB-C-FGN006550-8"
+ },
+ {
+ "IdS": 219007,
+ "PX": "336255.03,336255.01",
+ "PY": "570710,570660.05",
+ "In": "KAB-L-L001066-1"
+ },
+ {
+ "IdS": 219008,
+ "PX": "341860,342010",
+ "PY": "557730,557730",
+ "In": "KAB-L-L083008-1"
+ },
+ {
+ "IdS": 219020,
+ "PX": "356100,355150",
+ "PY": "526050,525850",
+ "In": "KAB-C-080032-1"
+ },
+ {
+ "IdS": 219021,
+ "PX": "357150,356100",
+ "PY": "526400,526050",
+ "In": "KAB-C-080031-1"
+ },
+ {
+ "IdS": 219022,
+ "PX": "357900,357150",
+ "PY": "527100,526400",
+ "In": "KAB-C-080030-1"
+ },
+ {
+ "IdS": 219023,
+ "PX": "358400,357900",
+ "PY": "527800,527100",
+ "In": "KAB-C-080029-1"
+ },
+ {
+ "IdS": 219024,
+ "PX": "359250,358400",
+ "PY": "529000,527800",
+ "In": "KAB-C-080028-1"
+ },
+ {
+ "IdS": 219025,
+ "PX": "360000,359250",
+ "PY": "529950,529000",
+ "In": "KAB-C-080027-1"
+ },
+ {
+ "IdS": 219026,
+ "PX": "345030,345140",
+ "PY": "554350,554350",
+ "In": "KAB-C-041005-2"
+ },
+ {
+ "IdS": 219027,
+ "PX": "345140,345195",
+ "PY": "554350,554350",
+ "In": "KAB-C-041005-4"
+ },
+ {
+ "IdS": 219031,
+ "PX": "338350,337898.73",
+ "PY": "547700,547700.24",
+ "In": "KAB-L-L078001-6"
+ },
+ {
+ "IdS": 219033,
+ "PX": "337898.73,337898.45",
+ "PY": "547700.24,547901.02",
+ "In": "KAB-L-L078001-35"
+ },
+ {
+ "IdS": 219034,
+ "PX": "360700,360000",
+ "PY": "531050,529950",
+ "In": "KAB-C-080026-1"
+ },
+ {
+ "IdS": 219035,
+ "PX": "361350,360700",
+ "PY": "532100,531050",
+ "In": "KAB-C-080025-1"
+ },
+ {
+ "IdS": 219036,
+ "PX": "362000,361350",
+ "PY": "532900,532100",
+ "In": "KAB-C-080024-1"
+ },
+ {
+ "IdS": 219037,
+ "PX": "363200,362000",
+ "PY": "533750,532900",
+ "In": "KAB-C-080023-1"
+ },
+ {
+ "IdS": 219040,
+ "PX": "368150,366450",
+ "PY": "538650,538650",
+ "In": "KAB-C-080007-1"
+ },
+ {
+ "IdS": 219043,
+ "PX": "366450,365700",
+ "PY": "537900,537900",
+ "In": "KAB-C-080010-1"
+ },
+ {
+ "IdS": 219049,
+ "PX": "364250,364250",
+ "PY": "536650,536050",
+ "In": "KAB-C-080016-1"
+ },
+ {
+ "IdS": 219050,
+ "PX": "364250,364750",
+ "PY": "536050,536050",
+ "In": "KAB-C-080017-1"
+ },
+ {
+ "IdS": 219051,
+ "PX": "364750,364750",
+ "PY": "536050,535400",
+ "In": "KAB-C-080018-1"
+ },
+ {
+ "IdS": 219056,
+ "PX": "368280,367800",
+ "PY": "541340,540950",
+ "In": "KAB-C-080001-1"
+ },
+ {
+ "IdS": 219057,
+ "PX": "368150,368150",
+ "PY": "540500,539865",
+ "In": "KAB-C-080005-1"
+ },
+ {
+ "IdS": 219059,
+ "PX": "368280,368280,367850",
+ "PY": "541340,541300,540950",
+ "In": "KAB-C-080002-1"
+ },
+ {
+ "IdS": 219062,
+ "PX": "373900,374100",
+ "PY": "546450,546450",
+ "In": "KAB-C-FGN006064-1"
+ },
+ {
+ "IdS": 219065,
+ "PX": "335200,335200",
+ "PY": "564000,564260",
+ "In": "KAB-L-L079001-17"
+ },
+ {
+ "IdS": 219093,
+ "PX": "336280.16,335645",
+ "PY": "570919.95,570920",
+ "In": "KAB-L-LOGE/GLBOTT-2"
+ },
+ {
+ "IdS": 219105,
+ "PX": "368835,368650,368650",
+ "PY": "554070,554170,554200",
+ "In": "KAB-L-LFGN0010510-1"
+ },
+ {
+ "IdS": 219111,
+ "PX": "348580,348570",
+ "PY": "577220,577230",
+ "In": "KAB-L-L006043-1"
+ },
+ {
+ "IdS": 219115,
+ "PX": "345815,346250",
+ "PY": "576050,576050",
+ "In": "KAB-L-L016032-1"
+ },
+ {
+ "IdS": 219122,
+ "PX": "356700,356680,356595.05",
+ "PY": "552500,552440,552439.81",
+ "In": "KAB-L-L051051-1"
+ },
+ {
+ "IdS": 219126,
+ "PX": "337440,337700",
+ "PY": "561295,561455",
+ "In": "KAB-L-L008001-1"
+ },
+ {
+ "IdS": 219129,
+ "PX": "339990,340152.61",
+ "PY": "572810,572849.21",
+ "In": "KAB-L-L064021-1"
+ },
+ {
+ "IdS": 219132,
+ "PX": "350975,350930",
+ "PY": "579945,579990",
+ "In": "KAB-L-L066001-1"
+ },
+ {
+ "IdS": 219134,
+ "PX": "335450,335380,335380,334715,334715,334820,334820,334860,334860,334690",
+ "PY": "571345,571345,570835,570835,570765,570765,570390,570375,569730,569730",
+ "In": "KAB-L-LOGE/GL0007-1"
+ },
+ {
+ "IdS": 219137,
+ "PX": "375650,375430,375350",
+ "PY": "550595,550595,550600",
+ "In": "KAB-L-L026001-1"
+ },
+ {
+ "IdS": 219138,
+ "PX": "372464.81,372605,372700",
+ "PY": "550254.82,550290,550400",
+ "In": "KAB-L-L026003-1"
+ },
+ {
+ "IdS": 219139,
+ "PX": "372460.01,372445",
+ "PY": "550244.91,550265.02",
+ "In": "KAB-L-L026004-1"
+ },
+ {
+ "IdS": 219146,
+ "PX": "366350,366615,368505,369440",
+ "PY": "548460,548365,549480,549900",
+ "In": "KAB-L-LOGE/GL0022-1"
+ },
+ {
+ "IdS": 219160,
+ "PX": "345685,345775,345775",
+ "PY": "553935,553935,553950",
+ "In": "KAB-L-L041001-1"
+ },
+ {
+ "IdS": 219162,
+ "PX": "336380,336400",
+ "PY": "563880,563900",
+ "In": "KAB-L-L139001-1"
+ },
+ {
+ "IdS": 219164,
+ "PX": "335450.04,335450",
+ "PY": "566750.02,566905",
+ "In": "KAB-L-L002002-1"
+ },
+ {
+ "IdS": 219167,
+ "PX": "332250,332335",
+ "PY": "569550,569630",
+ "In": "KAB-AB-L200002-1"
+ },
+ {
+ "IdS": 219168,
+ "PX": "332445,332445,332065",
+ "PY": "569455,569855,572200",
+ "In": "KAB-L-GL-STHU-SONS-1"
+ },
+ {
+ "IdS": 219171,
+ "PX": "331785,331470.75",
+ "PY": "573340,573261.59",
+ "In": "KAB-L-L200022-1"
+ },
+ {
+ "IdS": 219173,
+ "PX": "331195,330905.43",
+ "PY": "575745,575680.13",
+ "In": "KAB-L-L200023-1"
+ },
+ {
+ "IdS": 219175,
+ "PX": "333749.54,333750",
+ "PY": "566229.09,566350",
+ "In": "KAB-L-L003001-1"
+ },
+ {
+ "IdS": 219177,
+ "PX": "331000,330300",
+ "PY": "563700,563700",
+ "In": "KAB-L-L077004-1"
+ },
+ {
+ "IdS": 219179,
+ "PX": "331000,330600",
+ "PY": "563250,563250",
+ "In": "KAB-L-L077003-1"
+ },
+ {
+ "IdS": 219182,
+ "PX": "346200,346100",
+ "PY": "549480,549450",
+ "In": "KAB-L-L010002-1"
+ },
+ {
+ "IdS": 219183,
+ "PX": "346465,346550",
+ "PY": "545950,545950",
+ "In": "KAB-L-L010001-1"
+ },
+ {
+ "IdS": 219187,
+ "PX": "344255,344300",
+ "PY": "542795,542900",
+ "In": "KAB-L-L050001-1"
+ },
+ {
+ "IdS": 219192,
+ "PX": "342042.38,342020.04",
+ "PY": "540122.45,540145.09",
+ "In": "KAB-L-L050071-1"
+ },
+ {
+ "IdS": 219194,
+ "PX": "341339.94,341295",
+ "PY": "530250.02,530250",
+ "In": "KAB-L-L050072-1"
+ },
+ {
+ "IdS": 219212,
+ "PX": "381500,381600",
+ "PY": "543450,543650",
+ "In": "KAB-AB-FGN006970-1"
+ },
+ {
+ "IdS": 219221,
+ "PX": "341845,342020",
+ "PY": "559080,559180",
+ "In": "KAB-L-L139002-1"
+ },
+ {
+ "IdS": 219223,
+ "PX": "336284.92,336395,336970,336805,337230,337835,338545,341510,341510,341845,341845",
+ "PY": "563879.08,563830,563000,562780,562190,562615,561595,559505,559400,559300,559080",
+ "In": "KAB-L-GL-PORZ-DEBA-1"
+ },
+ {
+ "IdS": 219224,
+ "PX": "341845,341850,342220,342440,342825,342840",
+ "PY": "559080,559080,559130,559005,558790,558780",
+ "In": "KAB-L-LOGE/GL0012-1"
+ },
+ {
+ "IdS": 219231,
+ "PX": "346045,345925,346180,346145,346245,346350",
+ "PY": "553980,553920,552615,552585,551930,551360",
+ "In": "KAB-L-GL-KSR 19-4"
+ },
+ {
+ "IdS": 219232,
+ "PX": "345675,345765,345806.24,346045",
+ "PY": "553945,553945,553956.64,553980",
+ "In": "KAB-L-LOGE/GL0015-3"
+ },
+ {
+ "IdS": 219233,
+ "PX": "345685,345685,345665,345675",
+ "PY": "553915,553910,553910,553945",
+ "In": "KAB-L-LOGE/GL0015-2"
+ },
+ {
+ "IdS": 219234,
+ "PX": "345685,345685",
+ "PY": "553935,553915",
+ "In": "KAB-L-LOGE/GL0015-1"
+ },
+ {
+ "IdS": 219239,
+ "PX": "346350,346380,346495,346495",
+ "PY": "551360,551190,550950,549480",
+ "In": "KAB-L-GL-KSR 19-5"
+ },
+ {
+ "IdS": 219240,
+ "PX": "346495,346200",
+ "PY": "549480,549480",
+ "In": "KAB-L-LOGE/GL0016-7"
+ },
+ {
+ "IdS": 219247,
+ "PX": "342840,342850",
+ "PY": "558780,558800",
+ "In": "KAB-L-L008005-1"
+ },
+ {
+ "IdS": 219249,
+ "PX": "330750,330500",
+ "PY": "569550,569550",
+ "In": "KAB-C-004022-8"
+ },
+ {
+ "IdS": 219260,
+ "PX": "349500,349350",
+ "PY": "563400,563400",
+ "In": "KAB-L-L056001-1"
+ },
+ {
+ "IdS": 219268,
+ "PX": "366175,366150,365995,365995",
+ "PY": "552560,552565,552725,552750",
+ "In": "KAB-L-LFGN0011291-1"
+ },
+ {
+ "IdS": 219269,
+ "PX": "351759.81,351600,351600",
+ "PY": "551689.55,552050,552100",
+ "In": "KAB-L-L051001-1"
+ },
+ {
+ "IdS": 219271,
+ "PX": "364660,365350",
+ "PY": "536900,536900",
+ "In": "KAB-L-L038001-1"
+ },
+ {
+ "IdS": 219273,
+ "PX": "344255,344290,344290,342042.38",
+ "PY": "542795,542780,542365,540122.45",
+ "In": "KAB-L-LOGE/GL0019-1"
+ },
+ {
+ "IdS": 219276,
+ "PX": "344039.81,339823.55,339722.19",
+ "PY": "542999.68,547041.8,547043.08",
+ "In": "KAB-L-LOGE/GL0018-1"
+ },
+ {
+ "IdS": 219279,
+ "PX": "339722.19,338651.74",
+ "PY": "547043.08,547043.64",
+ "In": "KAB-L-LOGE/GL0018-2"
+ },
+ {
+ "IdS": 219280,
+ "PX": "346495,346495,346545,346545,346495,346495,346545,346545,346480,346465",
+ "PY": "549480,549445,549445,548600,548550,548260,548200,545955,545955,545950",
+ "In": "KAB-L-LOGE/GL0017-1"
+ },
+ {
+ "IdS": 219284,
+ "PX": "355959.81,356299.44",
+ "PY": "580610.04,580504.54",
+ "In": "KAB-L-L466001-2"
+ },
+ {
+ "IdS": 219288,
+ "PX": "335200,335565,335760,336245",
+ "PY": "564000,564000,563900,563900",
+ "In": "KAB-L-L079001-16"
+ },
+ {
+ "IdS": 219289,
+ "PX": "336245,336400",
+ "PY": "563900,563900",
+ "In": "KAB-L-L079001-18"
+ },
+ {
+ "IdS": 219291,
+ "PX": "336245,336230,336230,336230",
+ "PY": "563900,563880,563780,563780",
+ "In": "KAB-L-L079001-19"
+ },
+ {
+ "IdS": 219292,
+ "PX": "336245,336260,336260",
+ "PY": "563900,563880,563780",
+ "In": "KAB-L-L079001-21"
+ },
+ {
+ "IdS": 219293,
+ "PX": "364050.02,364050",
+ "PY": "552949.72,552775",
+ "In": "KAB-C-FGN001999-1"
+ },
+ {
+ "IdS": 219295,
+ "PX": "336284.92,336400",
+ "PY": "563879.08,563900",
+ "In": "KAB-L-L079004-1"
+ },
+ {
+ "IdS": 219298,
+ "PX": "356650,356650",
+ "PY": "578415,577335",
+ "In": "KAB-L-LOGE/GL0099-AV01B"
+ },
+ {
+ "IdS": 219299,
+ "PX": "356650,356650",
+ "PY": "577335,576470",
+ "In": "KAB-L-LOGE/GL0099-AV01C"
+ },
+ {
+ "IdS": 219304,
+ "PX": "369440,369440,369600,369600,368865",
+ "PY": "549900,549675,549675,552440,554070",
+ "In": "KAB-L-GL-ESFE-POSE-2"
+ },
+ {
+ "IdS": 219305,
+ "PX": "350975,351005,351005,354400,354705,354705,355000,355100,355120,355165,355615,355959.81",
+ "PY": "579945,579950,580140,580645,580645,580845,580905,580865,580840,580840,580710,580610.04",
+ "In": "KAB-L-LOGE/GL0002-3"
+ },
+ {
+ "IdS": 219306,
+ "PX": "345815,345990,346285,348580",
+ "PY": "576050,576145,576055,577220",
+ "In": "KAB-L-LOGE/GL0002-1"
+ },
+ {
+ "IdS": 219307,
+ "PX": "348580,350445,350935,350935,350975",
+ "PY": "577220,578185,579835,579935,579945",
+ "In": "KAB-L-LOGE/GL0002-2"
+ },
+ {
+ "IdS": 219308,
+ "PX": "339990,339990,341545,341560,345815",
+ "PY": "572810,572975,573785,573840,576050",
+ "In": "KAB-L-LOGE/GL0003-1"
+ },
+ {
+ "IdS": 219309,
+ "PX": "338950,338985,338985,339440,339470,339990",
+ "PY": "571610,571655,572195,572650,572650,572810",
+ "In": "KAB-L-LOGE/GL0004-1"
+ },
+ {
+ "IdS": 219317,
+ "PX": "373800,373800,373900",
+ "PY": "546100,546450,546450",
+ "In": "KAB-C-FGN006060-1"
+ },
+ {
+ "IdS": 219318,
+ "PX": "373900,373900,373800,373800",
+ "PY": "546450,546500,546500,546700",
+ "In": "KAB-C-FGN006061-1"
+ },
+ {
+ "IdS": 219326,
+ "PX": "334535,334680,334895,334945,335340,335345,335490",
+ "PY": "569140,569110,569110,569380,569380,569395,569395",
+ "In": "KAB-L-LOGE/GL0008-1"
+ },
+ {
+ "IdS": 219327,
+ "PX": "332065,331785",
+ "PY": "572200,573340",
+ "In": "KAB-L-GL-SONS-APDO-1"
+ },
+ {
+ "IdS": 219328,
+ "PX": "331785,331195",
+ "PY": "573340,575745",
+ "In": "KAB-L-GL-APDO-ELTN-1"
+ },
+ {
+ "IdS": 219330,
+ "PX": "347025,347065",
+ "PY": "555590,555590",
+ "In": "KAB-L-LOGE/GL0012-3"
+ },
+ {
+ "IdS": 219333,
+ "PX": "335285,335285,335530,335530,336110,336110,335765,335765,335795,335795,335765,335765,336295,336380",
+ "PY": "566830,566440,566440,565935,565935,565565,565340,565120,565090,564925,564905,563985,563905,563880",
+ "In": "KAB-L-LOGE/GL0014-2"
+ },
+ {
+ "IdS": 219338,
+ "PX": "346465,346480,346545,346540,346730,345850,345555.01,344925,344205.31,344039.81",
+ "PY": "545950,545945,545945,544075,543705,543705,543555,543555,543185.08,542999.68",
+ "In": "KAB-L-LOGE/GL0017-2"
+ },
+ {
+ "IdS": 219344,
+ "PX": "341339.94,341550,341450,341450",
+ "PY": "530250.02,528750,528500,527000",
+ "In": "KAB-L-LOGE/GL0095-4"
+ },
+ {
+ "IdS": 219351,
+ "PX": "370900,372305",
+ "PY": "535100,535100",
+ "In": "KAB-L-FL038001-3"
+ },
+ {
+ "IdS": 219352,
+ "PX": "372305,372305,371295,371295",
+ "PY": "535100,534950,534950,534900",
+ "In": "KAB-L-FL038001-4"
+ },
+ {
+ "IdS": 219353,
+ "PX": "351759.81,352405,352430,352675,352690,352950,353600,353700,354200,354600,355150,355600,356570",
+ "PY": "551689.55,551835,551825,551875,551895,551945,552095,552045,552095,552145,552245,552315,552440",
+ "In": "KAB-L-GL-GERN-RIMP-2"
+ },
+ {
+ "IdS": 219354,
+ "PX": "356570,356755,362065",
+ "PY": "552440,552180,550095",
+ "In": "KAB-L-GL-RIMP-REZH-1"
+ },
+ {
+ "IdS": 219355,
+ "PX": "362065,363745",
+ "PY": "550095,549435",
+ "In": "KAB-L-GL-RIMP-REZH-2"
+ },
+ {
+ "IdS": 219358,
+ "PX": "365460,366350",
+ "PY": "548780,548460",
+ "In": "KAB-L-GL-RIMP-REZH-5"
+ },
+ {
+ "IdS": 219362,
+ "PX": "365460,367185,366175",
+ "PY": "548780,551550,552560",
+ "In": "KAB-L-GL-RIMP-REZH-4"
+ },
+ {
+ "IdS": 219364,
+ "PX": "372429.77,372459.96",
+ "PY": "550240.05,550239.98",
+ "In": "KAB-L-LOGE/GL0050-3"
+ },
+ {
+ "IdS": 219365,
+ "PX": "372459.96,373550,374950,375650",
+ "PY": "550239.98,550245,550345,550595",
+ "In": "KAB-L-LOGE/GL0050-4"
+ },
+ {
+ "IdS": 219375,
+ "PX": "372805,372805,372725,372700,372555,372305,372305",
+ "PY": "546085,546075,545950,545945,545700,545200,542350",
+ "In": "KAB-L-KAZD-FINS-1"
+ },
+ {
+ "IdS": 219376,
+ "PX": "371020,372245",
+ "PY": "548260,547695",
+ "In": "KAB-L-GL-ESFE-SWAD-3"
+ },
+ {
+ "IdS": 219379,
+ "PX": "372305,370940,372305",
+ "PY": "542350,541205,537150",
+ "In": "KAB-L-KAZD-FINS-2"
+ },
+ {
+ "IdS": 219384,
+ "PX": "335450.04,335390,335285",
+ "PY": "566750.02,566765,566830",
+ "In": "KAB-L-L002003-1"
+ },
+ {
+ "IdS": 219385,
+ "PX": "333749.54,331000",
+ "PY": "566229.09,563700",
+ "In": "KAB-L-LOGE/GL0025-2"
+ },
+ {
+ "IdS": 219386,
+ "PX": "331000,331000",
+ "PY": "563700,563400",
+ "In": "KAB-L-LOGE/GL0025-3"
+ },
+ {
+ "IdS": 219388,
+ "PX": "331000,331000",
+ "PY": "563400,563250",
+ "In": "KAB-L-LOGE/GL0025-4"
+ },
+ {
+ "IdS": 219389,
+ "PX": "331000,329575",
+ "PY": "563250,562555",
+ "In": "KAB-L-LOGE/GL0025-5"
+ },
+ {
+ "IdS": 219399,
+ "PX": "332065,331700",
+ "PY": "572200,572200",
+ "In": "KAB-L-L200024-1"
+ },
+ {
+ "IdS": 219400,
+ "PX": "336100,336100",
+ "PY": "575150,574700",
+ "In": "KAB-C-027011-1"
+ },
+ {
+ "IdS": 219403,
+ "PX": "372805,372710,372700",
+ "PY": "546085,545955,545950",
+ "In": "KAB-L-L052001-1"
+ },
+ {
+ "IdS": 219405,
+ "PX": "336100,336100",
+ "PY": "574700,574100",
+ "In": "KAB-C-027012-1"
+ },
+ {
+ "IdS": 219406,
+ "PX": "336100,336100",
+ "PY": "574100,573800",
+ "In": "KAB-C-027013-1"
+ },
+ {
+ "IdS": 219409,
+ "PX": "337650,337200",
+ "PY": "580500,580050",
+ "In": "KAB-C-013032-1"
+ },
+ {
+ "IdS": 219410,
+ "PX": "336100,336100",
+ "PY": "573800,573550",
+ "In": "KAB-C-027009-1"
+ },
+ {
+ "IdS": 219411,
+ "PX": "336100,336100",
+ "PY": "573550,572900",
+ "In": "KAB-C-027014-1"
+ },
+ {
+ "IdS": 219412,
+ "PX": "379750,380050",
+ "PY": "544350,544600",
+ "In": "KAB-C-FGN006500-2"
+ },
+ {
+ "IdS": 219413,
+ "PX": "380050,380450",
+ "PY": "544600,544950",
+ "In": "KAB-C-FGN006500-4"
+ },
+ {
+ "IdS": 219418,
+ "PX": "373800,373500",
+ "PY": "546100,546100",
+ "In": "KAB-C-FGN006280-1"
+ },
+ {
+ "IdS": 219422,
+ "PX": "332300,332050",
+ "PY": "547700,547700",
+ "In": "KAB-L-L078001-22"
+ },
+ {
+ "IdS": 219423,
+ "PX": "332300,332300",
+ "PY": "547700,547900",
+ "In": "KAB-L-L078001-37"
+ },
+ {
+ "IdS": 219425,
+ "PX": "379750,379350",
+ "PY": "545400,545200",
+ "In": "KAB-AB-FGN006570-1"
+ },
+ {
+ "IdS": 219426,
+ "PX": "378950,379195",
+ "PY": "545000,545120",
+ "In": "KAB-C-FGN006571-1"
+ },
+ {
+ "IdS": 219429,
+ "PX": "368150,368150",
+ "PY": "539865,539550",
+ "In": "KAB-C-080006-1"
+ },
+ {
+ "IdS": 219430,
+ "PX": "368150,368150",
+ "PY": "539550,538650",
+ "In": "KAB-C-080035-1"
+ },
+ {
+ "IdS": 219432,
+ "PX": "368280,368320",
+ "PY": "541340,541340",
+ "In": "KAB-C-080036-1"
+ },
+ {
+ "IdS": 219437,
+ "PX": "336345,336345",
+ "PY": "582065,580480",
+ "In": "KAB-C-063023-1"
+ },
+ {
+ "IdS": 219439,
+ "PX": "339800,339800",
+ "PY": "570950,570800",
+ "In": "KAB-C-007040-1"
+ },
+ {
+ "IdS": 219461,
+ "PX": "339722.19,339725",
+ "PY": "547043.08,547240",
+ "In": "KAB-L-LOGE/GL0018-3"
+ },
+ {
+ "IdS": 219466,
+ "PX": "335750,335950",
+ "PY": "564900,564900",
+ "In": "KAB-AB-002009-1"
+ },
+ {
+ "IdS": 219468,
+ "PX": "335954.47,336045.23",
+ "PY": "564900.01,564899.99",
+ "In": "KAB-AB-002018-1"
+ },
+ {
+ "IdS": 219469,
+ "PX": "336050,336900",
+ "PY": "564900,564900",
+ "In": "KAB-AB-002026-1"
+ },
+ {
+ "IdS": 219472,
+ "PX": "346500,346300",
+ "PY": "559750,559750",
+ "In": "KAB-L-L083001-18"
+ },
+ {
+ "IdS": 219473,
+ "PX": "346300,345450,344750",
+ "PY": "559750,559750,559350",
+ "In": "KAB-L-L083001-20"
+ },
+ {
+ "IdS": 219478,
+ "PX": "336515,336515",
+ "PY": "571800,572050",
+ "In": "KAB-C-001022-1"
+ },
+ {
+ "IdS": 219501,
+ "PX": "348045,348215",
+ "PY": "562240,562605",
+ "In": "KAB-AB-011014-8"
+ },
+ {
+ "IdS": 219502,
+ "PX": "349500,352300,352190,352190",
+ "PY": "563400,566320,566320,566340",
+ "In": "KAB-L-GL-KSR 127-1"
+ },
+ {
+ "IdS": 219503,
+ "PX": "352190,352190,352340,353900",
+ "PY": "566340,566365,566365,568200",
+ "In": "KAB-L-FL044001-1"
+ },
+ {
+ "IdS": 219505,
+ "PX": "353400,352700,352700",
+ "PY": "568200,568200,571200",
+ "In": "KAB-L-LGU/GL00003-2"
+ },
+ {
+ "IdS": 219508,
+ "PX": "375650,375740",
+ "PY": "550595,550595",
+ "In": "KAB-L-LOGE/GL0050-5"
+ },
+ {
+ "IdS": 219509,
+ "PX": "367840,367610",
+ "PY": "549790,549670",
+ "In": "KAB-C-851001-1"
+ },
+ {
+ "IdS": 219510,
+ "PX": "367610,367410",
+ "PY": "549670,549565",
+ "In": "KAB-C-851009-1"
+ },
+ {
+ "IdS": 219511,
+ "PX": "338300,338269.49",
+ "PY": "579600,579707.2",
+ "In": "KAB-C-021035-1"
+ },
+ {
+ "IdS": 219512,
+ "PX": "338269.49,338200",
+ "PY": "579707.2,579950",
+ "In": "KAB-C-021018-1"
+ },
+ {
+ "IdS": 219513,
+ "PX": "353400,353400,353400,353400",
+ "PY": "568200,568350,568450,568900",
+ "In": "KAB-L-LGU/SWKASSEL-1"
+ },
+ {
+ "IdS": 219515,
+ "PX": "344685,344600",
+ "PY": "553700,553700",
+ "In": "KAB-L-GL-KSR 86-4"
+ },
+ {
+ "IdS": 219516,
+ "PX": "344685,344600",
+ "PY": "554300,554300",
+ "In": "KAB-L-GL-KSR 86-6"
+ },
+ {
+ "IdS": 219518,
+ "PX": "345675,345330,344985,344985,344685",
+ "PY": "553945,553945,553855,553640,553700",
+ "In": "KAB-L-GL-KSR 86-3"
+ },
+ {
+ "IdS": 219519,
+ "PX": "344685,344685",
+ "PY": "553700,554000",
+ "In": "KAB-L-GL-KSR 86-5"
+ },
+ {
+ "IdS": 219520,
+ "PX": "344685,344685",
+ "PY": "554000,554300",
+ "In": "KAB-L-GL-KSR 86-7"
+ },
+ {
+ "IdS": 219521,
+ "PX": "345685,345675,345675",
+ "PY": "553915,553915,553945",
+ "In": "KAB-L-LGU/GL00006-2"
+ },
+ {
+ "IdS": 219524,
+ "PX": "347155,347065,347065",
+ "PY": "555540,555540,555590",
+ "In": "KAB-L-LGU/GL00005-1"
+ },
+ {
+ "IdS": 219525,
+ "PX": "347325,347325",
+ "PY": "555275,554960",
+ "In": "KAB-L-LGU/NRM0001-1"
+ },
+ {
+ "IdS": 219528,
+ "PX": "344685,344825,344825,345300",
+ "PY": "554000,554140,554555,555110",
+ "In": "KAB-L-GL-KSR 86-1"
+ },
+ {
+ "IdS": 219530,
+ "PX": "345300,345210,345000,344680.41",
+ "PY": "555110,555110,555260,555384.78",
+ "In": "KAB-L-GL-KSR 23-9"
+ },
+ {
+ "IdS": 219531,
+ "PX": "347305,347265,347265",
+ "PY": "554970,554970,554840",
+ "In": "KAB-L-LGU/COLT0001-1"
+ },
+ {
+ "IdS": 219532,
+ "PX": "347305,347305",
+ "PY": "554970,554840",
+ "In": "KAB-L-LGU/COLT0002-1"
+ },
+ {
+ "IdS": 219533,
+ "PX": "347265,347305",
+ "PY": "554840,554840",
+ "In": "KAB-L-LGU/COLT0003-1"
+ },
+ {
+ "IdS": 219534,
+ "PX": "345685,345690,345765,345910,346750,347440",
+ "PY": "553935,553940,553940,553965,554035,554415",
+ "In": "KAB-L-LGU/BISHSOHE-2"
+ },
+ {
+ "IdS": 219535,
+ "PX": "347325,347155",
+ "PY": "555275,555540",
+ "In": "KAB-L-LGU/A648A66-1"
+ },
+ {
+ "IdS": 219537,
+ "PX": "339800,340050,340050,340150",
+ "PY": "571550,571550,572000,572050",
+ "In": "KAB-C-007002-1"
+ },
+ {
+ "IdS": 219561,
+ "PX": "367800,367300.01",
+ "PY": "540950,540549.99",
+ "In": "KAB-C-080003-1"
+ },
+ {
+ "IdS": 219564,
+ "PX": "367300.01,367300",
+ "PY": "540549.99,540500",
+ "In": "KAB-C-080004-1"
+ },
+ {
+ "IdS": 219565,
+ "PX": "367300,368150",
+ "PY": "540500,540500",
+ "In": "KAB-C-080004-2"
+ },
+ {
+ "IdS": 219566,
+ "PX": "367300,367300",
+ "PY": "540500,540400",
+ "In": "KAB-C-080004-3"
+ },
+ {
+ "IdS": 219574,
+ "PX": "335999.4,336300.2",
+ "PY": "563105.04,563105.04",
+ "In": "KAB-C-022025-2"
+ },
+ {
+ "IdS": 219584,
+ "PX": "346550,346650",
+ "PY": "546500,546500",
+ "In": "KAB-C-010035-1"
+ },
+ {
+ "IdS": 219585,
+ "PX": "346650,346750",
+ "PY": "546500,546500",
+ "In": "KAB-C-010035-2"
+ },
+ {
+ "IdS": 219591,
+ "PX": "364750,364750",
+ "PY": "534500,533750",
+ "In": "KAB-C-080037-1"
+ },
+ {
+ "IdS": 219592,
+ "PX": "366450,366450",
+ "PY": "538650,537900",
+ "In": "KAB-C-080008-1"
+ },
+ {
+ "IdS": 219593,
+ "PX": "353900,353900",
+ "PY": "568200,568500",
+ "In": "KAB-L-FL044001-2"
+ },
+ {
+ "IdS": 219594,
+ "PX": "353900,353400",
+ "PY": "568200,568200",
+ "In": "KAB-L-LGU/GL00003-1"
+ },
+ {
+ "IdS": 219595,
+ "PX": "354550,356300",
+ "PY": "571200,571200",
+ "In": "KAB-L-LGU/GL00004-2"
+ },
+ {
+ "IdS": 219596,
+ "PX": "352800,356100,356300",
+ "PY": "571550,571550,571200",
+ "In": "KAB-C-043013-1"
+ },
+ {
+ "IdS": 219597,
+ "PX": "364250,364250,364250",
+ "PY": "537900,537800,537500",
+ "In": "KAB-C-080012-1"
+ },
+ {
+ "IdS": 219611,
+ "PX": "372305,372305",
+ "PY": "537150,535100",
+ "In": "KAB-L-KAZD-FINS-3"
+ },
+ {
+ "IdS": 219613,
+ "PX": "366350,366350",
+ "PY": "548490,548600",
+ "In": "KAB-L-L451001-2"
+ },
+ {
+ "IdS": 219615,
+ "PX": "344039.81,344255,344255",
+ "PY": "542999.68,542910,542795",
+ "In": "KAB-L-LOGE/GL0017-3"
+ },
+ {
+ "IdS": 219635,
+ "PX": "364250,364250,364250",
+ "PY": "537500,537200,536650",
+ "In": "KAB-C-080014-1"
+ },
+ {
+ "IdS": 219636,
+ "PX": "365700,364930",
+ "PY": "537900,537900",
+ "In": "KAB-C-080011-1"
+ },
+ {
+ "IdS": 219637,
+ "PX": "364930,364250",
+ "PY": "537900,537900",
+ "In": "KAB-C-080011-3"
+ },
+ {
+ "IdS": 219639,
+ "PX": "364930,364930.69",
+ "PY": "537900,537650.79",
+ "In": "KAB-C-080011-2"
+ },
+ {
+ "IdS": 219640,
+ "PX": "364930,364930,364655,364580",
+ "PY": "537900,537980,538285,538285",
+ "In": "KAB-C-080011-4"
+ },
+ {
+ "IdS": 219641,
+ "PX": "364580,364450,364450",
+ "PY": "538285,538285,538300",
+ "In": "KAB-C-080011-5"
+ },
+ {
+ "IdS": 219642,
+ "PX": "364580,364580,364410,364410,364450",
+ "PY": "538285,538245,538245,538300,538300",
+ "In": "KAB-C-080011-6"
+ },
+ {
+ "IdS": 219644,
+ "PX": "364750,364578.83",
+ "PY": "538300,538299.81",
+ "In": "KAB-C-054014-1"
+ },
+ {
+ "IdS": 219645,
+ "PX": "364578.83,364450",
+ "PY": "538299.81,538300",
+ "In": "KAB-C-054014-2"
+ },
+ {
+ "IdS": 219646,
+ "PX": "345675,345655,345685",
+ "PY": "553945,553905,553905",
+ "In": "KAB-L-LGU/GL00006-8"
+ },
+ {
+ "IdS": 219647,
+ "PX": "364750,364750",
+ "PY": "535400,534500",
+ "In": "KAB-C-080019-1"
+ },
+ {
+ "IdS": 219648,
+ "PX": "364750,363999.89",
+ "PY": "533750,533751.22",
+ "In": "KAB-C-080021-1"
+ },
+ {
+ "IdS": 219649,
+ "PX": "363999.89,363200",
+ "PY": "533751.22,533750",
+ "In": "KAB-C-080021-2"
+ },
+ {
+ "IdS": 219650,
+ "PX": "363999.89,363999.89",
+ "PY": "533751.22,534049.99",
+ "In": "KAB-C-080021-3"
+ },
+ {
+ "IdS": 219652,
+ "PX": "371399.47,371361.85",
+ "PY": "556506.37,556567.34",
+ "In": "KAB-C-FGN001193-2"
+ },
+ {
+ "IdS": 219653,
+ "PX": "371399.47,371300",
+ "PY": "556506.37,556450",
+ "In": "KAB-C-FGN001193-3"
+ },
+ {
+ "IdS": 219658,
+ "PX": "355150,354726.14",
+ "PY": "525850,525172.34",
+ "In": "KAB-C-080033-1"
+ },
+ {
+ "IdS": 219659,
+ "PX": "354726.14,354650",
+ "PY": "525172.34,525050",
+ "In": "KAB-C-080033-2"
+ },
+ {
+ "IdS": 219660,
+ "PX": "354726.14,355050.28",
+ "PY": "525172.34,525000.33",
+ "In": "KAB-C-080033-3"
+ },
+ {
+ "IdS": 219661,
+ "PX": "354650,354013.85",
+ "PY": "525050,524150.19",
+ "In": "KAB-C-080034-1"
+ },
+ {
+ "IdS": 219662,
+ "PX": "354000.27,353200",
+ "PY": "524131.3,523000",
+ "In": "KAB-C-080038-1"
+ },
+ {
+ "IdS": 219663,
+ "PX": "375350,375350,375600,375650",
+ "PY": "550600,550650,550650,550600",
+ "In": "KAB-C-026088-1"
+ },
+ {
+ "IdS": 219664,
+ "PX": "375350,375440,375595,375650",
+ "PY": "550600,550635,550635,550600",
+ "In": "KAB-C-026089-1"
+ },
+ {
+ "IdS": 219674,
+ "PX": "344950,344750",
+ "PY": "583200,583200",
+ "In": "KAB-L-L058004-13"
+ },
+ {
+ "IdS": 219675,
+ "PX": "344950,345300",
+ "PY": "583200,583200",
+ "In": "KAB-L-L058004-15"
+ },
+ {
+ "IdS": 219676,
+ "PX": "342450,342365",
+ "PY": "576949.99,576845",
+ "In": "KAB-L-L058002-10"
+ },
+ {
+ "IdS": 219677,
+ "PX": "342365,342250",
+ "PY": "576845,576700",
+ "In": "KAB-L-L058001-12"
+ },
+ {
+ "IdS": 219679,
+ "PX": "345000,345150",
+ "PY": "583000,582400",
+ "In": "KAB-L-L058003-15"
+ },
+ {
+ "IdS": 219682,
+ "PX": "344950,345000",
+ "PY": "583200,583000",
+ "In": "KAB-L-L058004-14"
+ },
+ {
+ "IdS": 219684,
+ "PX": "336525,336680",
+ "PY": "583070,583035",
+ "In": "KAB-C-063018-3"
+ },
+ {
+ "IdS": 219685,
+ "PX": "336680,336750",
+ "PY": "583035,583000",
+ "In": "KAB-AB-063040-1"
+ },
+ {
+ "IdS": 219695,
+ "PX": "347350,347299.78,347300",
+ "PY": "588550,588550.1,588200",
+ "In": "KAB-AB-014007-1"
+ },
+ {
+ "IdS": 219698,
+ "PX": "339550,339550,339549.96",
+ "PY": "571540,571500,571478.88",
+ "In": "KAB-AB-016011-1"
+ },
+ {
+ "IdS": 219699,
+ "PX": "339549.96,339550",
+ "PY": "571478.88,571450",
+ "In": "KAB-AB-016011-2"
+ },
+ {
+ "IdS": 219727,
+ "PX": "345395,345685",
+ "PY": "553850,553935",
+ "In": "KAB-L-LGU/BISHSOHE-1"
+ },
+ {
+ "IdS": 219728,
+ "PX": "347440,347435,347325",
+ "PY": "554415,555100,555275",
+ "In": "KAB-L-LGU/BISHSOHE-3"
+ },
+ {
+ "IdS": 219729,
+ "PX": "347440,347900,347800,347800",
+ "PY": "554415,554645,554845,554850",
+ "In": "KAB-L-LGU/BISHSOHE-4"
+ },
+ {
+ "IdS": 219730,
+ "PX": "338150,338670.01",
+ "PY": "570200,570200",
+ "In": "KAB-AB-016027-1"
+ },
+ {
+ "IdS": 219763,
+ "PX": "353400,351800,351805",
+ "PY": "568900,568900,566335",
+ "In": "KAB-C-FREMDGU-1"
+ },
+ {
+ "IdS": 219766,
+ "PX": "370800,370610",
+ "PY": "544500,544170",
+ "In": "KAB-AB-026061-1"
+ },
+ {
+ "IdS": 219768,
+ "PX": "370610,370770",
+ "PY": "544170,544170",
+ "In": "KAB-AB-026091-1"
+ },
+ {
+ "IdS": 219769,
+ "PX": "346750,346750,347325,347325",
+ "PY": "554045,554430,554700,554960",
+ "In": "KAB-C-F042061-1"
+ },
+ {
+ "IdS": 219772,
+ "PX": "372800,372400",
+ "PY": "551800,551800",
+ "In": "KAB-C-FGN003220-1"
+ },
+ {
+ "IdS": 219778,
+ "PX": "334200,334450",
+ "PY": "566350,566350",
+ "In": "KAB-C-200010-2"
+ },
+ {
+ "IdS": 219780,
+ "PX": "374950,373549.58",
+ "PY": "550350,550270.29",
+ "In": "KAB-C-026040-1"
+ },
+ {
+ "IdS": 219785,
+ "PX": "383250,382850",
+ "PY": "540100,540350",
+ "In": "KAB-C-052003-2"
+ },
+ {
+ "IdS": 219786,
+ "PX": "382850,382400",
+ "PY": "540350,540600",
+ "In": "KAB-C-052032-1"
+ },
+ {
+ "IdS": 219829,
+ "PX": "340205,340500",
+ "PY": "572764.96,572200",
+ "In": "KAB-C-056004-2"
+ },
+ {
+ "IdS": 219830,
+ "PX": "340500,340650",
+ "PY": "572200,571900",
+ "In": "KAB-C-056004-4"
+ },
+ {
+ "IdS": 219834,
+ "PX": "340500,340700",
+ "PY": "572200,572300",
+ "In": "KAB-C-056004-5"
+ },
+ {
+ "IdS": 219835,
+ "PX": "379350,379750",
+ "PY": "543800,544350",
+ "In": "KAB-C-FGN006500-1"
+ },
+ {
+ "IdS": 219836,
+ "PX": "334050,334050",
+ "PY": "564450,565005",
+ "In": "KAB-L-L079003-1"
+ },
+ {
+ "IdS": 219851,
+ "PX": "338550,338400",
+ "PY": "581350,581200",
+ "In": "KAB-C-013031-1"
+ },
+ {
+ "IdS": 219853,
+ "PX": "338400,338449.88",
+ "PY": "581200,581150.41",
+ "In": "KAB-C-013031-3"
+ },
+ {
+ "IdS": 219857,
+ "PX": "334800,334799.97,334700,334700.16",
+ "PY": "570550,570750.03,570750,570850.13",
+ "In": "KAB-C-001003-1"
+ },
+ {
+ "IdS": 219865,
+ "PX": "335300.02,335200",
+ "PY": "570849.97,570750",
+ "In": "KAB-C-001052-1"
+ },
+ {
+ "IdS": 219868,
+ "PX": "335300.02,335300",
+ "PY": "570849.97,570650",
+ "In": "KAB-C-001053-1"
+ },
+ {
+ "IdS": 219881,
+ "PX": "335500,335500,335350,335249.44",
+ "PY": "570849.97,570900,570900,571149.91",
+ "In": "KAB-C-013043-1"
+ },
+ {
+ "IdS": 219883,
+ "PX": "335249.44,335250",
+ "PY": "571149.91,571300",
+ "In": "KAB-C-013042-1"
+ },
+ {
+ "IdS": 219890,
+ "PX": "341250,341350",
+ "PY": "531650,531000",
+ "In": "KAB-C-050054-1"
+ },
+ {
+ "IdS": 219891,
+ "PX": "341350,341350.07,341294.99,341295",
+ "PY": "531000,530270.01,530269.89,530250",
+ "In": "KAB-C-050007-1"
+ },
+ {
+ "IdS": 219892,
+ "PX": "336300,336545.03,336539.58",
+ "PY": "570300,570300.04,570879.56",
+ "In": "KAB-AB-001099(A.B.)-2"
+ },
+ {
+ "IdS": 219900,
+ "PX": "334800,334649.97",
+ "PY": "569600,569450.69",
+ "In": "KAB-C-F070001-1"
+ },
+ {
+ "IdS": 219907,
+ "PX": "336200,336060",
+ "PY": "570570,570570",
+ "In": "KAB-L-L001068-3"
+ },
+ {
+ "IdS": 219908,
+ "PX": "336200,336200",
+ "PY": "570570,570505",
+ "In": "KAB-L-L001068-2"
+ },
+ {
+ "IdS": 219909,
+ "PX": "336200,336200",
+ "PY": "570505,570300",
+ "In": "KAB-L-L001068-4"
+ },
+ {
+ "IdS": 219910,
+ "PX": "336200,336050,336050",
+ "PY": "570505,570505,570570",
+ "In": "KAB-L-L001068-5"
+ },
+ {
+ "IdS": 219913,
+ "PX": "338150,338450",
+ "PY": "578950,579050",
+ "In": "KAB-L-L021006-8"
+ },
+ {
+ "IdS": 219914,
+ "PX": "338150,338245",
+ "PY": "578950,578775",
+ "In": "KAB-L-L021006-5"
+ },
+ {
+ "IdS": 219915,
+ "PX": "337350.01,337815",
+ "PY": "578465.01,578755",
+ "In": "KAB-L-L021006-2"
+ },
+ {
+ "IdS": 219917,
+ "PX": "337815,337875",
+ "PY": "578755,578790",
+ "In": "KAB-L-L021006-4"
+ },
+ {
+ "IdS": 219918,
+ "PX": "337875,338150",
+ "PY": "578790,578950",
+ "In": "KAB-L-L021006-6"
+ },
+ {
+ "IdS": 219923,
+ "PX": "337815,337765",
+ "PY": "578755,578840",
+ "In": "KAB-L-L021006-7"
+ },
+ {
+ "IdS": 219924,
+ "PX": "337765,337735,337765",
+ "PY": "578840,578890,578905",
+ "In": "KAB-L-L021006-11"
+ },
+ {
+ "IdS": 219925,
+ "PX": "337875,337825",
+ "PY": "578790,578870",
+ "In": "KAB-L-L021006-9"
+ },
+ {
+ "IdS": 219926,
+ "PX": "337825,337795,337765",
+ "PY": "578870,578920,578905",
+ "In": "KAB-L-L021006-13"
+ },
+ {
+ "IdS": 219930,
+ "PX": "346115,346650,346775",
+ "PY": "552390,552325,551950",
+ "In": "KAB-C-010009-1"
+ },
+ {
+ "IdS": 219931,
+ "PX": "346775,346775,346515,346780",
+ "PY": "551950,551925,551570,551150",
+ "In": "KAB-C-010047-1"
+ },
+ {
+ "IdS": 219968,
+ "PX": "341453.26,341300",
+ "PY": "575674.42,575800",
+ "In": "KAB-L-L058001-17"
+ },
+ {
+ "IdS": 219969,
+ "PX": "340850.46,340850",
+ "PY": "536149.87,534800",
+ "In": "KAB-C-050048-1"
+ },
+ {
+ "IdS": 219984,
+ "PX": "363800,362500",
+ "PY": "549600,550100",
+ "In": "KAB-C-051045-1"
+ },
+ {
+ "IdS": 219985,
+ "PX": "362600,363850,363800",
+ "PY": "550300,549750,549600",
+ "In": "KAB-C-026020-1"
+ },
+ {
+ "IdS": 219987,
+ "PX": "335800,335780",
+ "PY": "572750,572655",
+ "In": "KAB-L-L013001-2"
+ },
+ {
+ "IdS": 219989,
+ "PX": "335780,335800,335800",
+ "PY": "572655,572655,572700",
+ "In": "KAB-L-L013001-7"
+ },
+ {
+ "IdS": 219990,
+ "PX": "335780,335750",
+ "PY": "572655,572500",
+ "In": "KAB-L-L013001-6"
+ },
+ {
+ "IdS": 219992,
+ "PX": "335750,335850",
+ "PY": "572500,572500",
+ "In": "KAB-L-L013001-9"
+ },
+ {
+ "IdS": 220002,
+ "PX": "335300.02,335500",
+ "PY": "570849.97,570849.97",
+ "In": "KAB-C-001051-1"
+ },
+ {
+ "IdS": 220003,
+ "PX": "335500,335535,335600",
+ "PY": "570849.97,570850,570950",
+ "In": "KAB-C-001004-1"
+ },
+ {
+ "IdS": 220007,
+ "PX": "336400,336349.88,336350",
+ "PY": "563900,563871.13,563650",
+ "In": "KAB-C-022002-1"
+ },
+ {
+ "IdS": 220033,
+ "PX": "335880,336249.93",
+ "PY": "555815,554899.89",
+ "In": "KAB-C-050015-2"
+ },
+ {
+ "IdS": 220035,
+ "PX": "336249.93,336420",
+ "PY": "554899.89,554525",
+ "In": "KAB-C-050016-1"
+ },
+ {
+ "IdS": 220062,
+ "PX": "331200,331200",
+ "PY": "564000,563835",
+ "In": "KAB-L-L079001-22"
+ },
+ {
+ "IdS": 220064,
+ "PX": "346250,345860",
+ "PY": "580350,580675",
+ "In": "KAB-C-F016002-1"
+ },
+ {
+ "IdS": 220069,
+ "PX": "346200,346300",
+ "PY": "577800,577800",
+ "In": "KAB-C-016023-1"
+ },
+ {
+ "IdS": 220084,
+ "PX": "346070,346177.08",
+ "PY": "566170,566076.9",
+ "In": "KAB-C-056028-1"
+ },
+ {
+ "IdS": 220085,
+ "PX": "346177.08,346570",
+ "PY": "566076.9,565725",
+ "In": "KAB-C-056028-2"
+ },
+ {
+ "IdS": 220086,
+ "PX": "346177.08,346335",
+ "PY": "566076.9,566245",
+ "In": "KAB-C-056028-3"
+ },
+ {
+ "IdS": 220087,
+ "PX": "368950,368735",
+ "PY": "554380,554250",
+ "In": "KAB-C-FGN001153-1"
+ },
+ {
+ "IdS": 220088,
+ "PX": "368735,368650",
+ "PY": "554250,554200",
+ "In": "KAB-C-FGN0011531-1"
+ },
+ {
+ "IdS": 220091,
+ "PX": "335550,335550",
+ "PY": "572150,571500",
+ "In": "KAB-L-L013001-10"
+ },
+ {
+ "IdS": 220092,
+ "PX": "335550,335650,335650",
+ "PY": "572150,572150,571800",
+ "In": "KAB-L-L013001-11"
+ },
+ {
+ "IdS": 220101,
+ "PX": "335600,335690,335885,335845",
+ "PY": "570950,570985,571730,571750",
+ "In": "KAB-AB-012001-1"
+ },
+ {
+ "IdS": 220111,
+ "PX": "336100,335925,335965",
+ "PY": "572900,572315,572300",
+ "In": "KAB-C-013044-1"
+ },
+ {
+ "IdS": 220112,
+ "PX": "335965,335920,335850",
+ "PY": "572300,572290,571950",
+ "In": "KAB-C-013009-2"
+ },
+ {
+ "IdS": 220113,
+ "PX": "335845,335895,336005,335965",
+ "PY": "571750,571750,572290,572300",
+ "In": "KAB-AB-012019-1"
+ },
+ {
+ "IdS": 220114,
+ "PX": "335965,336010,336140,336100",
+ "PY": "572300,572315,572835,572900",
+ "In": "KAB-AB-012020-1"
+ },
+ {
+ "IdS": 220120,
+ "PX": "334899.39,335049.97",
+ "PY": "570849.69,570849.97",
+ "In": "KAB-C-001003-2"
+ },
+ {
+ "IdS": 220121,
+ "PX": "335049.97,335300.02",
+ "PY": "570849.97,570849.97",
+ "In": "KAB-C-001008-1"
+ },
+ {
+ "IdS": 220122,
+ "PX": "335049.97,335050",
+ "PY": "570849.97,571240",
+ "In": "KAB-C-013021-1"
+ },
+ {
+ "IdS": 220134,
+ "PX": "336300,336299.99",
+ "PY": "573100,573199.17",
+ "In": "KAB-L-L027002-1"
+ },
+ {
+ "IdS": 220137,
+ "PX": "372245,372245,372280,372395,372240,371735,372055",
+ "PY": "547695,547670,547580,547580,547500,546545,546380",
+ "In": "KAB-L-GL-ESFE-SWAD-4"
+ },
+ {
+ "IdS": 220140,
+ "PX": "375150,375410,375675",
+ "PY": "534050,533795,533300",
+ "In": "KAB-L-L053001-1"
+ },
+ {
+ "IdS": 220145,
+ "PX": "334800,334850,334850.63",
+ "PY": "569600,569400,568963.51",
+ "In": "KAB-AB-002005-1"
+ },
+ {
+ "IdS": 220146,
+ "PX": "334850.63,334849.34",
+ "PY": "568963.51,568199.92",
+ "In": "KAB-AB-002013-1"
+ },
+ {
+ "IdS": 220149,
+ "PX": "340500,340755.69",
+ "PY": "569400,569167.48",
+ "In": "KAB-C-007019-1"
+ },
+ {
+ "IdS": 220150,
+ "PX": "340755.69,341050",
+ "PY": "569167.48,568900",
+ "In": "KAB-C-007003-1"
+ },
+ {
+ "IdS": 220151,
+ "PX": "366989.87,367191.75",
+ "PY": "555208.89,555087.66",
+ "In": "KAB-C-FGN001050-1"
+ },
+ {
+ "IdS": 220152,
+ "PX": "367191.75,367246.75",
+ "PY": "555087.66,555053.93",
+ "In": "KAB-C-FGN001002-1"
+ },
+ {
+ "IdS": 220153,
+ "PX": "385100,384990",
+ "PY": "539050,539115",
+ "In": "KAB-C-052002-1"
+ },
+ {
+ "IdS": 220154,
+ "PX": "384990,384150",
+ "PY": "539115,539600",
+ "In": "KAB-C-052033-1"
+ },
+ {
+ "IdS": 220155,
+ "PX": "384990,385029.28,385099.98,385090",
+ "PY": "539115,539134.32,539254.93,539290",
+ "In": "KAB-C-052034-1"
+ },
+ {
+ "IdS": 220156,
+ "PX": "385090,385054.92,384979.94,384990",
+ "PY": "539290,539279.81,539155.46,539115",
+ "In": "KAB-C-052035-1"
+ },
+ {
+ "IdS": 220157,
+ "PX": "342700,342700",
+ "PY": "592300,591800",
+ "In": "KAB-L-L059001-18"
+ },
+ {
+ "IdS": 220158,
+ "PX": "342700,342700",
+ "PY": "591800,591600",
+ "In": "KAB-L-L059001-20"
+ },
+ {
+ "IdS": 220159,
+ "PX": "342700,343000",
+ "PY": "591800,591800",
+ "In": "KAB-L-L059001-21"
+ },
+ {
+ "IdS": 220160,
+ "PX": "342900,342900.46,343000",
+ "PY": "592100,591949.51,591950",
+ "In": "KAB-L-L059003-5"
+ },
+ {
+ "IdS": 220161,
+ "PX": "343000,343000",
+ "PY": "591950,591800",
+ "In": "KAB-L-L059003-7"
+ },
+ {
+ "IdS": 220162,
+ "PX": "342700.05,342750,342750,342900",
+ "PY": "592400.05,592400,592100,592100",
+ "In": "KAB-L-L059003-1"
+ },
+ {
+ "IdS": 220163,
+ "PX": "342900,343300",
+ "PY": "592100,592100",
+ "In": "KAB-L-L059003-2"
+ },
+ {
+ "IdS": 220164,
+ "PX": "342900,342900,343300",
+ "PY": "592100,592200,592200",
+ "In": "KAB-L-L059003-4"
+ },
+ {
+ "IdS": 220165,
+ "PX": "343300,343600",
+ "PY": "592200,592200",
+ "In": "KAB-L-FL059004-1"
+ },
+ {
+ "IdS": 220166,
+ "PX": "342900,342805",
+ "PY": "592100,592195",
+ "In": "KAB-L-L059003-3"
+ },
+ {
+ "IdS": 220167,
+ "PX": "343000,343200",
+ "PY": "591950,591950",
+ "In": "KAB-L-L059003-6"
+ },
+ {
+ "IdS": 220187,
+ "PX": "333218.06,333345.24",
+ "PY": "559635.52,559459.88",
+ "In": "KAB-C-050035-1"
+ },
+ {
+ "IdS": 220267,
+ "PX": "336100,336100",
+ "PY": "575750,575650",
+ "In": "KAB-C-027008-1"
+ },
+ {
+ "IdS": 220268,
+ "PX": "336100,336100",
+ "PY": "575650,575150",
+ "In": "KAB-C-027015-1"
+ },
+ {
+ "IdS": 220270,
+ "PX": "335995.76,336100",
+ "PY": "575808.69,575750",
+ "In": "KAB-C-027016-1"
+ },
+ {
+ "IdS": 220279,
+ "PX": "336100,336201.28",
+ "PY": "575750,575699.04",
+ "In": "KAB-C-027004-1"
+ },
+ {
+ "IdS": 220295,
+ "PX": "340805.01,341240,341240,341340,341339.94",
+ "PY": "534799.99,532155,531650,531000,530250.02",
+ "In": "KAB-L-LOGE/GL0097-2"
+ },
+ {
+ "IdS": 220470,
+ "PX": "369325,369440",
+ "PY": "549900,549900",
+ "In": "KAB-L-LOGE/GL0023-1"
+ },
+ {
+ "IdS": 220471,
+ "PX": "369440,369500,369950,370550,370800,371450,371850,372050,372345,372429.77",
+ "PY": "549900,549945,549945,550095,550145,550145,550195,550195,550230,550240.05",
+ "In": "KAB-L-LOGE/GL0050-1"
+ },
+ {
+ "IdS": 220515,
+ "PX": "349150,349150,347080",
+ "PY": "559885,560000,560000",
+ "In": "KAB-L-GL-KSR 127-11"
+ },
+ {
+ "IdS": 220525,
+ "PX": "347440,347440",
+ "PY": "557550,558030",
+ "In": "KAB-L-LOGE/GL0013-6"
+ },
+ {
+ "IdS": 220526,
+ "PX": "347440,349130,349150",
+ "PY": "558030,559885,559885",
+ "In": "KAB-L-LOGE/GL0013-8"
+ },
+ {
+ "IdS": 220527,
+ "PX": "342464.99,342440",
+ "PY": "563600.07,563600",
+ "In": "KAB-L-LOGE/GL0052-1"
+ },
+ {
+ "IdS": 220645,
+ "PX": "334300,334375",
+ "PY": "569800,569800",
+ "In": "KAB-C-202014-1"
+ },
+ {
+ "IdS": 220646,
+ "PX": "334375,334450",
+ "PY": "569800,569800",
+ "In": "KAB-C-202014-3"
+ },
+ {
+ "IdS": 220647,
+ "PX": "334375,334375",
+ "PY": "569800,569900",
+ "In": "KAB-C-202014-2"
+ },
+ {
+ "IdS": 220653,
+ "PX": "339550,339549.56,339815.17",
+ "PY": "573800,573735.61,573309.77",
+ "In": "KAB-C-027006-1"
+ },
+ {
+ "IdS": 220661,
+ "PX": "377650,377550",
+ "PY": "543340,543400",
+ "In": "KAB-C-052036-1"
+ },
+ {
+ "IdS": 220662,
+ "PX": "372300,372265,372110",
+ "PY": "546400,546370,546445",
+ "In": "KAB-L-L026090-1"
+ },
+ {
+ "IdS": 220663,
+ "PX": "336201.28,336595.37",
+ "PY": "575699.04,575482.83",
+ "In": "KAB-C-027017-1"
+ },
+ {
+ "IdS": 220671,
+ "PX": "376845,377800,377650",
+ "PY": "544300,543550,543340",
+ "In": "KAB-L-L452001-9"
+ },
+ {
+ "IdS": 220672,
+ "PX": "373300,373300",
+ "PY": "546100,545950",
+ "In": "KAB-L-L452001-2"
+ },
+ {
+ "IdS": 220673,
+ "PX": "374500,374405",
+ "PY": "545550,545405",
+ "In": "KAB-L-L452001-4"
+ },
+ {
+ "IdS": 220678,
+ "PX": "375650,375480",
+ "PY": "545000,544750",
+ "In": "KAB-L-L452001-6"
+ },
+ {
+ "IdS": 220679,
+ "PX": "336595.37,336955.24",
+ "PY": "575482.83,575286.71",
+ "In": "KAB-C-027020-1"
+ },
+ {
+ "IdS": 220681,
+ "PX": "376845,376700",
+ "PY": "544300,544050",
+ "In": "KAB-L-L452001-8"
+ },
+ {
+ "IdS": 220682,
+ "PX": "336955.24,337510.13",
+ "PY": "575286.71,574987.83",
+ "In": "KAB-C-027021-1"
+ },
+ {
+ "IdS": 220683,
+ "PX": "337510.13,337897.44",
+ "PY": "574987.83,574774.37",
+ "In": "KAB-C-027022-1"
+ },
+ {
+ "IdS": 220684,
+ "PX": "337897.44,338645",
+ "PY": "574774.37,574640",
+ "In": "KAB-C-027019-1"
+ },
+ {
+ "IdS": 220696,
+ "PX": "336700,336700,336700",
+ "PY": "570750,570550,570100",
+ "In": "KAB-AB-001013-1"
+ },
+ {
+ "IdS": 220697,
+ "PX": "336300,336300,336255.03",
+ "PY": "570300,570550,570710",
+ "In": "KAB-AB-001032-1"
+ },
+ {
+ "IdS": 220700,
+ "PX": "336550,336615",
+ "PY": "570900,570840",
+ "In": "KAB-C-001014-30"
+ },
+ {
+ "IdS": 220701,
+ "PX": "336615,336700",
+ "PY": "570840,570750",
+ "In": "KAB-C-001040-1"
+ },
+ {
+ "IdS": 220710,
+ "PX": "332800,332675",
+ "PY": "547700,547700",
+ "In": "KAB-L-L078001-33"
+ },
+ {
+ "IdS": 220712,
+ "PX": "332675,332625",
+ "PY": "547700,547700",
+ "In": "KAB-L-L078001-31"
+ },
+ {
+ "IdS": 220713,
+ "PX": "332625,332300",
+ "PY": "547700,547700",
+ "In": "KAB-L-L078001-32"
+ },
+ {
+ "IdS": 220714,
+ "PX": "332675,332675,332650",
+ "PY": "547700,547850,547850",
+ "In": "KAB-L-L078001-38"
+ },
+ {
+ "IdS": 220715,
+ "PX": "332625,332625,332650",
+ "PY": "547700,547850,547850",
+ "In": "KAB-L-L078001-39"
+ },
+ {
+ "IdS": 220720,
+ "PX": "339800,339800.01",
+ "PY": "571300,571149.99",
+ "In": "KAB-C-007014-1"
+ },
+ {
+ "IdS": 220721,
+ "PX": "339800.01,339800",
+ "PY": "571149.99,571100",
+ "In": "KAB-C-007004-1"
+ },
+ {
+ "IdS": 220758,
+ "PX": "333500,333500.03",
+ "PY": "570500,570017.05",
+ "In": "KAB-C-004019-1"
+ },
+ {
+ "IdS": 220759,
+ "PX": "333500.03,333500,333430.02,333395.08",
+ "PY": "570017.05,569785,569784.97,569774.88",
+ "In": "KAB-C-004024-1"
+ },
+ {
+ "IdS": 220768,
+ "PX": "340095,340095,340152.61",
+ "PY": "572785.01,572804.99,572849.21",
+ "In": "KAB-C-016034-1"
+ },
+ {
+ "IdS": 220769,
+ "PX": "340152.61,340185,340205",
+ "PY": "572849.21,572915,572915",
+ "In": "KAB-C-016014-1"
+ },
+ {
+ "IdS": 220770,
+ "PX": "340205,340205,340460,341550",
+ "PY": "572915,572935,573285,573850",
+ "In": "KAB-C-016035-1"
+ },
+ {
+ "IdS": 220771,
+ "PX": "339815.17,340075,340095",
+ "PY": "573309.77,572915,572915",
+ "In": "KAB-C-027018-1"
+ },
+ {
+ "IdS": 220772,
+ "PX": "340095,340095,340152.61",
+ "PY": "572915,572895.01,572849.21",
+ "In": "KAB-C-027024-1"
+ },
+ {
+ "IdS": 220773,
+ "PX": "340152.61,340080",
+ "PY": "572849.21,572850",
+ "In": "KAB-AB-064002-1"
+ },
+ {
+ "IdS": 220774,
+ "PX": "340080,339470",
+ "PY": "572850,572660",
+ "In": "KAB-AB-064020-1"
+ },
+ {
+ "IdS": 220776,
+ "PX": "340095,340115,340152.61",
+ "PY": "572915,572915.01,572849.21",
+ "In": "KAB-C-063041-1"
+ },
+ {
+ "IdS": 220777,
+ "PX": "340180,340205,340205",
+ "PY": "572875,572900,572915",
+ "In": "KAB-C-027007-4"
+ },
+ {
+ "IdS": 220778,
+ "PX": "340205,340225,340700",
+ "PY": "572915,572915,573200",
+ "In": "KAB-C-027025-1"
+ },
+ {
+ "IdS": 220779,
+ "PX": "340152.61,340205.01,340205",
+ "PY": "572849.21,572805,572784.99",
+ "In": "KAB-C-056006-1"
+ },
+ {
+ "IdS": 220780,
+ "PX": "340205,340225,340550",
+ "PY": "572784.99,572785,572850",
+ "In": "KAB-C-056012-1"
+ },
+ {
+ "IdS": 220781,
+ "PX": "340152.61,340185,340205",
+ "PY": "572849.21,572785,572784.99",
+ "In": "KAB-C-056001-1"
+ },
+ {
+ "IdS": 220782,
+ "PX": "340205,340205",
+ "PY": "572784.99,572764.96",
+ "In": "KAB-C-056004-1"
+ },
+ {
+ "IdS": 220785,
+ "PX": "340152.61,340115,340095",
+ "PY": "572849.21,572785,572785.01",
+ "In": "KAB-C-021010-1"
+ },
+ {
+ "IdS": 220786,
+ "PX": "340095,340095,340250",
+ "PY": "572785.01,572765.01,572300",
+ "In": "KAB-C-021036-1"
+ },
+ {
+ "IdS": 220795,
+ "PX": "339800,340135,340150",
+ "PY": "574200,572950,572934.99",
+ "In": "KAB-AB-021009-1"
+ },
+ {
+ "IdS": 220796,
+ "PX": "340150,340135,340152.61",
+ "PY": "572934.99,572920,572849.21",
+ "In": "KAB-AB-021037-1"
+ },
+ {
+ "IdS": 220798,
+ "PX": "340150,340165,340152.61",
+ "PY": "572934.99,572920,572849.21",
+ "In": "KAB-C-025005-1"
+ },
+ {
+ "IdS": 220826,
+ "PX": "344990,344900.17",
+ "PY": "575640,575799.27",
+ "In": "KAB-C-016036-1"
+ },
+ {
+ "IdS": 220832,
+ "PX": "349876.77,349750",
+ "PY": "560191.63,560350",
+ "In": "KAB-L-L083004-9"
+ },
+ {
+ "IdS": 220833,
+ "PX": "350549.97,350600",
+ "PY": "560580.02,560500",
+ "In": "KAB-L-L083004-18"
+ },
+ {
+ "IdS": 220835,
+ "PX": "349360,349150",
+ "PY": "559875,559750",
+ "In": "KAB-L-L083004-4"
+ },
+ {
+ "IdS": 220836,
+ "PX": "349360,349250.16",
+ "PY": "559875,560049.19",
+ "In": "KAB-L-L083004-5"
+ },
+ {
+ "IdS": 220875,
+ "PX": "380100,380100",
+ "PY": "545400,545550",
+ "In": "KAB-C-FGN006550-11"
+ },
+ {
+ "IdS": 220876,
+ "PX": "380100,380100",
+ "PY": "545550,545650",
+ "In": "KAB-C-FGN006550-12"
+ },
+ {
+ "IdS": 220877,
+ "PX": "339900,339950",
+ "PY": "574300,574050",
+ "In": "KAB-L-L058001-4"
+ },
+ {
+ "IdS": 220878,
+ "PX": "339950,340150",
+ "PY": "574050,573500",
+ "In": "KAB-L-L058001-18"
+ },
+ {
+ "IdS": 220879,
+ "PX": "339950,340000",
+ "PY": "574050,574050",
+ "In": "KAB-L-L058001-19"
+ },
+ {
+ "IdS": 220910,
+ "PX": "341280,341505,341830,341800,343450",
+ "PY": "559330,559390,559285,557595,556500",
+ "In": "KAB-C-853008-1"
+ },
+ {
+ "IdS": 220911,
+ "PX": "336750,336650",
+ "PY": "571550,571550",
+ "In": "KAB-C-001098-1"
+ },
+ {
+ "IdS": 220912,
+ "PX": "347650,346662.55",
+ "PY": "581700,581223.83",
+ "In": "KAB-C-024001-5"
+ },
+ {
+ "IdS": 220916,
+ "PX": "334340,334340,334185.07",
+ "PY": "570199.97,570300,570300.05",
+ "In": "KAB-C-001018-2"
+ },
+ {
+ "IdS": 220919,
+ "PX": "355050.25,355270",
+ "PY": "556450.61,556565",
+ "In": "KAB-L-L455001-3"
+ },
+ {
+ "IdS": 220921,
+ "PX": "355350,355250.01",
+ "PY": "555850,555800",
+ "In": "KAB-L-L455001-5"
+ },
+ {
+ "IdS": 220922,
+ "PX": "355350,356300",
+ "PY": "555850,554150",
+ "In": "KAB-L-L455001-4"
+ },
+ {
+ "IdS": 220923,
+ "PX": "356300,356550",
+ "PY": "554150,554295",
+ "In": "KAB-L-L455001-7"
+ },
+ {
+ "IdS": 220924,
+ "PX": "356300,356545",
+ "PY": "554150,553715",
+ "In": "KAB-L-L455001-6"
+ },
+ {
+ "IdS": 220925,
+ "PX": "356545,356800,356730",
+ "PY": "553715,553100,552680",
+ "In": "KAB-L-L455001-8"
+ },
+ {
+ "IdS": 220926,
+ "PX": "356545,356770",
+ "PY": "553715,553840",
+ "In": "KAB-L-L455001-9"
+ },
+ {
+ "IdS": 220927,
+ "PX": "356730,356700",
+ "PY": "552680,552500",
+ "In": "KAB-L-L455001-10"
+ },
+ {
+ "IdS": 220929,
+ "PX": "356850,356899.61",
+ "PY": "563400,563350.15",
+ "In": "KAB-C-042062-1"
+ },
+ {
+ "IdS": 220930,
+ "PX": "356500,356545",
+ "PY": "563300,563290",
+ "In": "KAB-C-042067-4"
+ },
+ {
+ "IdS": 220932,
+ "PX": "356730,356750",
+ "PY": "552680,552595",
+ "In": "KAB-L-L455001-11"
+ },
+ {
+ "IdS": 220933,
+ "PX": "356750,356700",
+ "PY": "552595,552500",
+ "In": "KAB-L-L455002-1"
+ },
+ {
+ "IdS": 220950,
+ "PX": "351300,351200,351050,351050",
+ "PY": "552050,552250,552250,551050",
+ "In": "KAB-C-FGN00100501-1"
+ },
+ {
+ "IdS": 220980,
+ "PX": "337350,337350,337200",
+ "PY": "579850,580050,580050",
+ "In": "KAB-L-L013003-1"
+ },
+ {
+ "IdS": 221017,
+ "PX": "340152.61,340220",
+ "PY": "572849.21,572850",
+ "In": "KAB-C-TELEKOM-1"
+ },
+ {
+ "IdS": 221027,
+ "PX": "336100,336100,336100",
+ "PY": "565900,565750,565600",
+ "In": "KAB-C-200022-1"
+ },
+ {
+ "IdS": 221029,
+ "PX": "356650,356555",
+ "PY": "563370,563370",
+ "In": "KAB-C-042065-1"
+ },
+ {
+ "IdS": 221030,
+ "PX": "356545,356650",
+ "PY": "563290,563370",
+ "In": "KAB-C-042064-1"
+ },
+ {
+ "IdS": 221045,
+ "PX": "343400,338700",
+ "PY": "587850,589750",
+ "In": "KAB-L-LOGE/GL0030-1"
+ },
+ {
+ "IdS": 221046,
+ "PX": "338700,338490",
+ "PY": "589750,589800",
+ "In": "KAB-L-L063014-1"
+ },
+ {
+ "IdS": 221057,
+ "PX": "356650,356750",
+ "PY": "563370,563450",
+ "In": "KAB-C-042066-1"
+ },
+ {
+ "IdS": 221073,
+ "PX": "330983.36,330750",
+ "PY": "569550.06,569550",
+ "In": "KAB-C-004023-1"
+ },
+ {
+ "IdS": 221074,
+ "PX": "337000,337000,336660.17",
+ "PY": "569745,569400,569400.01",
+ "In": "KAB-C-064012-1"
+ },
+ {
+ "IdS": 221075,
+ "PX": "336660.17,336050",
+ "PY": "569400.01,569400",
+ "In": "KAB-C-064021-1"
+ },
+ {
+ "IdS": 221076,
+ "PX": "335350,335350",
+ "PY": "569400,569200",
+ "In": "KAB-C-F202050-1"
+ },
+ {
+ "IdS": 221077,
+ "PX": "335350,335350",
+ "PY": "569200,569150",
+ "In": "KAB-C-F202057-1"
+ },
+ {
+ "IdS": 221079,
+ "PX": "368195,368085",
+ "PY": "541350,541350",
+ "In": "KAB-L-L026087-2"
+ },
+ {
+ "IdS": 221081,
+ "PX": "368195,368195,368205",
+ "PY": "541350,541470,541475",
+ "In": "KAB-L-L026087-3"
+ },
+ {
+ "IdS": 221084,
+ "PX": "347650,347645,347645,347650",
+ "PY": "581500,581495,581480,581475",
+ "In": "KAB-C-024005-1"
+ },
+ {
+ "IdS": 221085,
+ "PX": "347650,347650",
+ "PY": "581475,581390",
+ "In": "KAB-C-024005-2"
+ },
+ {
+ "IdS": 221088,
+ "PX": "347650,347645,347645,347650",
+ "PY": "581390,581385,581365,581360",
+ "In": "KAB-C-024005-4"
+ },
+ {
+ "IdS": 221089,
+ "PX": "347650,347655,347655,347650",
+ "PY": "581500,581495,581480,581475",
+ "In": "KAB-C-024005-3"
+ },
+ {
+ "IdS": 221090,
+ "PX": "347650,347655,347655,347650",
+ "PY": "581390,581385,581365,581360",
+ "In": "KAB-C-024005-5"
+ },
+ {
+ "IdS": 221091,
+ "PX": "337500,337599.67",
+ "PY": "571100,571099.97",
+ "In": "KAB-AB-001100-1"
+ },
+ {
+ "IdS": 221092,
+ "PX": "337599.67,337600",
+ "PY": "571099.97,571000",
+ "In": "KAB-C-001100-2"
+ },
+ {
+ "IdS": 221123,
+ "PX": "336100,336150,336300,336300",
+ "PY": "572900,572900,573050,573100",
+ "In": "KAB-L-L027001-1"
+ },
+ {
+ "IdS": 221142,
+ "PX": "332850,332600",
+ "PY": "567300,567300",
+ "In": "KAB-C-200030-1"
+ },
+ {
+ "IdS": 221156,
+ "PX": "334450,334450,334650,334950",
+ "PY": "566350,566550,566550,566550",
+ "In": "KAB-C-200011-10"
+ },
+ {
+ "IdS": 221167,
+ "PX": "333750,333750.02",
+ "PY": "566850,567117.92",
+ "In": "KAB-C-200009-1"
+ },
+ {
+ "IdS": 221168,
+ "PX": "333750.02,333750",
+ "PY": "567117.92,567550",
+ "In": "KAB-C-200032-1"
+ },
+ {
+ "IdS": 221178,
+ "PX": "332999.48,332150",
+ "PY": "568050.64,568050",
+ "In": "KAB-C-004014-1"
+ },
+ {
+ "IdS": 221192,
+ "PX": "373550,373400",
+ "PY": "546000,546000",
+ "In": "KAB-L-L452001-11"
+ },
+ {
+ "IdS": 221193,
+ "PX": "372300,372400,372880",
+ "PY": "546400,546550,546310",
+ "In": "KAB-L-L452001-1"
+ },
+ {
+ "IdS": 221194,
+ "PX": "372880,373300",
+ "PY": "546310,546100",
+ "In": "KAB-L-L452001-14"
+ },
+ {
+ "IdS": 221195,
+ "PX": "372880,372730",
+ "PY": "546310,546125.15",
+ "In": "KAB-L-L452001-13"
+ },
+ {
+ "IdS": 221231,
+ "PX": "337600,337600.05",
+ "PY": "571000,570950.06",
+ "In": "KAB-C-001101-1"
+ },
+ {
+ "IdS": 221232,
+ "PX": "336550,336700",
+ "PY": "572700,572700",
+ "In": "KAB-C-013100-1"
+ },
+ {
+ "IdS": 221233,
+ "PX": "336700,336800",
+ "PY": "572700,572700",
+ "In": "KAB-C-013101-1"
+ },
+ {
+ "IdS": 221234,
+ "PX": "336800,336900",
+ "PY": "572700,572700",
+ "In": "KAB-C-013102-1"
+ },
+ {
+ "IdS": 221239,
+ "PX": "346360,346450.01",
+ "PY": "551335,551349.99",
+ "In": "KAB-C-010033-5"
+ },
+ {
+ "IdS": 221259,
+ "PX": "334134.54,334470.84",
+ "PY": "558376.64,557912.65",
+ "In": "KAB-C-050072-1"
+ },
+ {
+ "IdS": 221260,
+ "PX": "333345.24,333722.83",
+ "PY": "559459.88,558942.93",
+ "In": "KAB-C-050077-1"
+ },
+ {
+ "IdS": 221266,
+ "PX": "331815,332143.66",
+ "PY": "561565,561117.76",
+ "In": "KAB-C-050014-1"
+ },
+ {
+ "IdS": 221267,
+ "PX": "332143.66,332635",
+ "PY": "561117.76,560440",
+ "In": "KAB-C-050074-1"
+ },
+ {
+ "IdS": 221269,
+ "PX": "331086.85,331340",
+ "PY": "562572.65,562220",
+ "In": "KAB-C-050075-1"
+ },
+ {
+ "IdS": 221270,
+ "PX": "336475,336430,336395",
+ "PY": "582875,582680,582545",
+ "In": "KAB-C-063019-1"
+ },
+ {
+ "IdS": 221271,
+ "PX": "330600,330839.98",
+ "PY": "563250,562915.89",
+ "In": "KAB-C-050011-1"
+ },
+ {
+ "IdS": 221272,
+ "PX": "330839.98,331086.85",
+ "PY": "562915.89,562572.65",
+ "In": "KAB-C-050076-1"
+ },
+ {
+ "IdS": 221298,
+ "PX": "331584.28,331695,331815",
+ "PY": "561884.96,561735,561565",
+ "In": "KAB-C-050009-1"
+ },
+ {
+ "IdS": 221299,
+ "PX": "337335,337150,337050",
+ "PY": "586370,585600,585200",
+ "In": "KAB-C-063014-1"
+ },
+ {
+ "IdS": 221314,
+ "PX": "332800,332800,332840,332840",
+ "PY": "547700,547705,547705,547850",
+ "In": "KAB-L-L078001-23"
+ },
+ {
+ "IdS": 221315,
+ "PX": "333150,332910",
+ "PY": "547700,547700",
+ "In": "KAB-L-L078001-36"
+ },
+ {
+ "IdS": 221316,
+ "PX": "332910,332800",
+ "PY": "547700,547700",
+ "In": "KAB-L-L078001-40"
+ },
+ {
+ "IdS": 221317,
+ "PX": "332910,332910,332870,332870",
+ "PY": "547700,547705,547705,547850",
+ "In": "KAB-L-L078001-41"
+ },
+ {
+ "IdS": 221320,
+ "PX": "332840,332840,332855",
+ "PY": "547850,547920,547920",
+ "In": "KAB-L-L078002-1"
+ },
+ {
+ "IdS": 221321,
+ "PX": "332855,332870,332870",
+ "PY": "547920,547920,547850",
+ "In": "KAB-L-L078003-1"
+ },
+ {
+ "IdS": 221324,
+ "PX": "338650,338650",
+ "PY": "547200,547490",
+ "In": "KAB-L-L078001-2"
+ },
+ {
+ "IdS": 221325,
+ "PX": "338650,338650",
+ "PY": "547490,547700",
+ "In": "KAB-L-L078001-30"
+ },
+ {
+ "IdS": 221326,
+ "PX": "338650,338705",
+ "PY": "547490,547490",
+ "In": "KAB-L-L078001-42"
+ },
+ {
+ "IdS": 221328,
+ "PX": "375550,375550,375450",
+ "PY": "531200,531950,531950",
+ "In": "KAB-L-L439001-1"
+ },
+ {
+ "IdS": 221329,
+ "PX": "375450,375300,375298.41",
+ "PY": "531950,531950,532255.17",
+ "In": "KAB-L-L439001-4"
+ },
+ {
+ "IdS": 221330,
+ "PX": "375450,375450,375500",
+ "PY": "531950,532000,532000",
+ "In": "KAB-L-L439001-5"
+ },
+ {
+ "IdS": 221345,
+ "PX": "356050,356438.15",
+ "PY": "563450,563320.89",
+ "In": "KAB-C-042048-1"
+ },
+ {
+ "IdS": 221346,
+ "PX": "356438.15,356500",
+ "PY": "563320.89,563300",
+ "In": "KAB-C-042067-1"
+ },
+ {
+ "IdS": 221347,
+ "PX": "355100,355199.92",
+ "PY": "563900,563900.07",
+ "In": "KAB-C-042068-1"
+ },
+ {
+ "IdS": 221350,
+ "PX": "339583.53,339950",
+ "PY": "566038.34,565705",
+ "In": "KAB-C-009010-2"
+ },
+ {
+ "IdS": 221351,
+ "PX": "339950,340045",
+ "PY": "565705,565630",
+ "In": "KAB-C-009034-1"
+ },
+ {
+ "IdS": 221352,
+ "PX": "339300,339374.66,339944.8,339950",
+ "PY": "566300,566299.38,565759.61,565705",
+ "In": "KAB-C-409003-3"
+ },
+ {
+ "IdS": 221353,
+ "PX": "339950,339990.01",
+ "PY": "565705,565695",
+ "In": "KAB-C-409005-1"
+ },
+ {
+ "IdS": 221370,
+ "PX": "368280,368205",
+ "PY": "541340,541340",
+ "In": "KAB-C-026086-1"
+ },
+ {
+ "IdS": 221371,
+ "PX": "368205,368095,368085",
+ "PY": "541340,541340,541350",
+ "In": "KAB-C-026086-2"
+ },
+ {
+ "IdS": 221372,
+ "PX": "368205,368205",
+ "PY": "541340,541475",
+ "In": "KAB-C-026086-3"
+ },
+ {
+ "IdS": 221378,
+ "PX": "338700,338700.25",
+ "PY": "569650,569300.75",
+ "In": "KAB-AB-009035-1"
+ },
+ {
+ "IdS": 221379,
+ "PX": "338699.31,338701.98",
+ "PY": "568700.75,568149.93",
+ "In": "KAB-AB-009008-1"
+ },
+ {
+ "IdS": 221380,
+ "PX": "338701.98,338700",
+ "PY": "568149.93,567450",
+ "In": "KAB-AB-009036-1"
+ },
+ {
+ "IdS": 221381,
+ "PX": "338700.25,338699.31",
+ "PY": "569300.75,568700.75",
+ "In": "KAB-AB-009007-1"
+ },
+ {
+ "IdS": 221384,
+ "PX": "337086.45,337160,337380",
+ "PY": "562342.22,562240,561910",
+ "In": "KAB-C-008021-1"
+ },
+ {
+ "IdS": 221402,
+ "PX": "336900.47,336900",
+ "PY": "592261.33,592350",
+ "In": "KAB-AB-063038-1"
+ },
+ {
+ "IdS": 221403,
+ "PX": "336900,336900",
+ "PY": "592350,592450",
+ "In": "KAB-AB-063042-1"
+ },
+ {
+ "IdS": 221405,
+ "PX": "338670.01,338670.11",
+ "PY": "570200,570003.94",
+ "In": "KAB-AB-016027-2"
+ },
+ {
+ "IdS": 221407,
+ "PX": "338150,338250,338700.2,338700",
+ "PY": "570200,570220,570220.07,569950",
+ "In": "KAB-C-009005-1"
+ },
+ {
+ "IdS": 221415,
+ "PX": "361400,361400,361500",
+ "PY": "550500,550600,550600",
+ "In": "KAB-C-051052-1"
+ },
+ {
+ "IdS": 221432,
+ "PX": "341035.07,340900",
+ "PY": "575113.83,574950",
+ "In": "KAB-L-L058001-16"
+ },
+ {
+ "IdS": 221434,
+ "PX": "341035.07,340910.78",
+ "PY": "575113.83,575239.04",
+ "In": "KAB-L-L058001-20"
+ },
+ {
+ "IdS": 221438,
+ "PX": "339800,340000,340100.07",
+ "PY": "574200,574200,573890.02",
+ "In": "KAB-C-025004-1"
+ },
+ {
+ "IdS": 221439,
+ "PX": "340100.07,340150,340206.83,340165,340150",
+ "PY": "573890.02,573750,573298.68,572950,572934.99",
+ "In": "KAB-C-025006-1"
+ },
+ {
+ "IdS": 221458,
+ "PX": "336550,336395.32",
+ "PY": "574450,573917.11",
+ "In": "KAB-C-013013-1"
+ },
+ {
+ "IdS": 221459,
+ "PX": "336395.32,336100",
+ "PY": "573917.11,572900",
+ "In": "KAB-C-013017-1"
+ },
+ {
+ "IdS": 221465,
+ "PX": "337200,337200",
+ "PY": "578750,578450",
+ "In": "KAB-C-013028-2"
+ },
+ {
+ "IdS": 221466,
+ "PX": "337200,337200,337200",
+ "PY": "578450,578300,577650",
+ "In": "KAB-C-013026-1"
+ },
+ {
+ "IdS": 221469,
+ "PX": "343000,342650.3",
+ "PY": "577650,577199.34",
+ "In": "KAB-L-L058002-12"
+ },
+ {
+ "IdS": 221470,
+ "PX": "342650.3,342450",
+ "PY": "577199.34,576949.99",
+ "In": "KAB-L-L058002-14"
+ },
+ {
+ "IdS": 221471,
+ "PX": "342650.3,342550.04",
+ "PY": "577199.34,577299.6",
+ "In": "KAB-L-L058002-13"
+ },
+ {
+ "IdS": 221473,
+ "PX": "337200,336975.45",
+ "PY": "577000,576087.24",
+ "In": "KAB-C-013024-1"
+ },
+ {
+ "IdS": 221474,
+ "PX": "336975.45,336749.99",
+ "PY": "576087.24,575250",
+ "In": "KAB-C-013046-1"
+ },
+ {
+ "IdS": 221477,
+ "PX": "336749.99,336612.53",
+ "PY": "575250,574699.95",
+ "In": "KAB-C-013014-1"
+ },
+ {
+ "IdS": 221478,
+ "PX": "336612.53,336550",
+ "PY": "574699.95,574450",
+ "In": "KAB-C-013010-1"
+ },
+ {
+ "IdS": 221493,
+ "PX": "351450,351350.07",
+ "PY": "551700,551699.92",
+ "In": "KAB-C-051024-2"
+ },
+ {
+ "IdS": 221494,
+ "PX": "351350.07,350700",
+ "PY": "551699.92,551550",
+ "In": "KAB-C-051054-1"
+ },
+ {
+ "IdS": 221500,
+ "PX": "336350,337150.38,337149.77",
+ "PY": "563650,563649.93,563499.68",
+ "In": "KAB-C-022003-1"
+ },
+ {
+ "IdS": 221505,
+ "PX": "338900.14,338950",
+ "PY": "571549.56,571610",
+ "In": "KAB-L-LOGE/GL0005-2"
+ },
+ {
+ "IdS": 221506,
+ "PX": "338900.14,338850.3,338190,338085,338030",
+ "PY": "571549.56,571600.19,570295,570295,570200",
+ "In": "KAB-L-LOGE/GL0053-1"
+ },
+ {
+ "IdS": 221513,
+ "PX": "332445,332635,334875",
+ "PY": "569455,569035,569035",
+ "In": "KAB-L-LOGE/GL0035-3"
+ },
+ {
+ "IdS": 221514,
+ "PX": "332445,332250",
+ "PY": "569455,569550",
+ "In": "KAB-L-L200025-1"
+ },
+ {
+ "IdS": 221519,
+ "PX": "338250,338345.03",
+ "PY": "571380,571379.98",
+ "In": "KAB-L-LOGE/GL0005-1"
+ },
+ {
+ "IdS": 221520,
+ "PX": "338345.03,338595,338700,338855,338900.14",
+ "PY": "571379.98,571630,571630,571495,571549.56",
+ "In": "KAB-L-LOGE/GL0005-3"
+ },
+ {
+ "IdS": 221521,
+ "PX": "338345.03,338344.99,340025.23",
+ "PY": "571379.98,571289.89,572779.72",
+ "In": "KAB-L-LOGE/GL0005-4"
+ },
+ {
+ "IdS": 221522,
+ "PX": "340025.23,340152.61",
+ "PY": "572779.72,572849.21",
+ "In": "KAB-L-L064023-1"
+ },
+ {
+ "IdS": 221531,
+ "PX": "335490,335490,335440,335440,335655,335650,335704.82",
+ "PY": "569395,569185,569180,567945,567595,567575,567479.86",
+ "In": "KAB-L-LOGE/GL0008-3"
+ },
+ {
+ "IdS": 221532,
+ "PX": "335704.82,335720,335740,335740,336390,336390,336385,336385,336390,336390,336300,336530,336530,336320,336284.92",
+ "PY": "567479.86,567480,567445,566940,566940,566145,566140,566085,566080,565340,565270,564945,564045,563940,563879.08",
+ "In": "KAB-L-LOGE/GL0008-4"
+ },
+ {
+ "IdS": 221543,
+ "PX": "338099.88,338300.12",
+ "PY": "575849.88,575574.74",
+ "In": "KAB-C-063006-1"
+ },
+ {
+ "IdS": 221544,
+ "PX": "338300.12,338502.56",
+ "PY": "575574.74,575297.52",
+ "In": "KAB-C-063013-1"
+ },
+ {
+ "IdS": 221545,
+ "PX": "337200,337744.64",
+ "PY": "577000,576304.15",
+ "In": "KAB-C-063031-1"
+ },
+ {
+ "IdS": 221546,
+ "PX": "337744.64,338099.88",
+ "PY": "576304.15,575849.88",
+ "In": "KAB-C-063032-1"
+ },
+ {
+ "IdS": 221557,
+ "PX": "340500,340470.07",
+ "PY": "572200,572184.92",
+ "In": "KAB-C-056004-6"
+ },
+ {
+ "IdS": 221570,
+ "PX": "338585,338700.19",
+ "PY": "591970,591949.62",
+ "In": "KAB-C-063080-1"
+ },
+ {
+ "IdS": 221585,
+ "PX": "338250.29,338190.18",
+ "PY": "561349.95,561279.44",
+ "In": "KAB-C-022027-1"
+ },
+ {
+ "IdS": 221604,
+ "PX": "337514.94,337769.89",
+ "PY": "562479.97,562086.6",
+ "In": "KAB-C-022004-1"
+ },
+ {
+ "IdS": 221605,
+ "PX": "337769.89,338250.29",
+ "PY": "562086.6,561349.95",
+ "In": "KAB-C-022035-1"
+ },
+ {
+ "IdS": 221608,
+ "PX": "338250.29,338940.8",
+ "PY": "561349.95,560884.52",
+ "In": "KAB-C-022008-1"
+ },
+ {
+ "IdS": 221621,
+ "PX": "336399.99,336420.01",
+ "PY": "571249.99,571249.93",
+ "In": "KAB-C-001044-3"
+ },
+ {
+ "IdS": 221622,
+ "PX": "336420.01,336450",
+ "PY": "571249.93,571250",
+ "In": "KAB-C-001044-5"
+ },
+ {
+ "IdS": 221623,
+ "PX": "336420.01,336420",
+ "PY": "571249.93,571190",
+ "In": "KAB-C-001044-10"
+ },
+ {
+ "IdS": 221624,
+ "PX": "336420.01,336425,336425,336420",
+ "PY": "571249.93,571244.99,571195,571190",
+ "In": "KAB-C-001044-11"
+ },
+ {
+ "IdS": 221630,
+ "PX": "338300,338577.1",
+ "PY": "581100,580801.94",
+ "In": "KAB-C-013047-1"
+ },
+ {
+ "IdS": 221631,
+ "PX": "338300,338294.69,338540.25,338577.1",
+ "PY": "581100,581010.33,580760.26,580801.94",
+ "In": "KAB-L-L013004-1"
+ },
+ {
+ "IdS": 221636,
+ "PX": "338100,338005",
+ "PY": "580350,581024.94",
+ "In": "KAB-C-021019-99"
+ },
+ {
+ "IdS": 221637,
+ "PX": "338005,337700.84",
+ "PY": "581024.94,581599.61",
+ "In": "KAB-C-021040-1"
+ },
+ {
+ "IdS": 221638,
+ "PX": "338400,338335.06",
+ "PY": "581200,581134.93",
+ "In": "KAB-C-013031-2"
+ },
+ {
+ "IdS": 221639,
+ "PX": "338335.06,338300",
+ "PY": "581134.93,581100",
+ "In": "KAB-C-013048-1"
+ },
+ {
+ "IdS": 221640,
+ "PX": "338300,338335.01,338335.06",
+ "PY": "581100,581099.99,581134.93",
+ "In": "KAB-C-013030-1"
+ },
+ {
+ "IdS": 221641,
+ "PX": "338335.06,338360.07,337650",
+ "PY": "581134.93,581105.01,580500",
+ "In": "KAB-C-013049-1"
+ },
+ {
+ "IdS": 221645,
+ "PX": "339550,339614.99,339854.65,339815.17",
+ "PY": "573800,573799.93,573354.15,573309.77",
+ "In": "KAB-C-063036-1"
+ },
+ {
+ "IdS": 221646,
+ "PX": "339815.17,339870.13,340095,340095",
+ "PY": "573309.77,573325.67,572935,572915",
+ "In": "KAB-C-063045-1"
+ },
+ {
+ "IdS": 221649,
+ "PX": "339305.52,339863.86",
+ "PY": "560649.84,560249.41",
+ "In": "KAB-C-022009-1"
+ },
+ {
+ "IdS": 221650,
+ "PX": "339863.86,340350",
+ "PY": "560249.41,559900",
+ "In": "KAB-C-022018-1"
+ },
+ {
+ "IdS": 221651,
+ "PX": "340350,340495.97",
+ "PY": "559900,559785.23",
+ "In": "KAB-C-022018-2"
+ },
+ {
+ "IdS": 221652,
+ "PX": "340495.97,341045",
+ "PY": "559785.23,559330",
+ "In": "KAB-C-022030-1"
+ },
+ {
+ "IdS": 221669,
+ "PX": "340650,340880.68",
+ "PY": "572400,572519.76",
+ "In": "KAB-C-007036-1"
+ },
+ {
+ "IdS": 221670,
+ "PX": "340880.68,340949.54",
+ "PY": "572519.76,572555.22",
+ "In": "KAB-C-007046-1"
+ },
+ {
+ "IdS": 221673,
+ "PX": "377504.15,376118.99",
+ "PY": "533971.09,533373.81",
+ "In": "KAB-L-FL081001-14"
+ },
+ {
+ "IdS": 221674,
+ "PX": "376118.99,375277.63,375150",
+ "PY": "533373.81,533040.98,532950",
+ "In": "KAB-L-FL081001-15"
+ },
+ {
+ "IdS": 221675,
+ "PX": "376118.99,376113.68,375889.97",
+ "PY": "533373.81,533388.05,533300.18",
+ "In": "KAB-L-FL081001-16"
+ },
+ {
+ "IdS": 221676,
+ "PX": "375889.97,375880,375675",
+ "PY": "533300.18,533329.72,533300",
+ "In": "KAB-L-FL081001-17"
+ },
+ {
+ "IdS": 221677,
+ "PX": "375889.97,375699.89,375675",
+ "PY": "533300.18,533274.86,533300",
+ "In": "KAB-L-FL081001-18"
+ },
+ {
+ "IdS": 221679,
+ "PX": "371295,371295",
+ "PY": "534900,534655",
+ "In": "KAB-L-FL038003-1"
+ },
+ {
+ "IdS": 221681,
+ "PX": "371295,371445",
+ "PY": "534655,534675",
+ "In": "KAB-L-FL038003-3"
+ },
+ {
+ "IdS": 221701,
+ "PX": "374515.38,374601.32",
+ "PY": "553749.7,553887.43",
+ "In": "KAB-AB-FGN005002-1"
+ },
+ {
+ "IdS": 221702,
+ "PX": "374326.76,374840.53",
+ "PY": "553819.48,553509.57",
+ "In": "KAB-C-FGN005001-2"
+ },
+ {
+ "IdS": 221707,
+ "PX": "365350,365350,366937.16,368750,369200",
+ "PY": "536900,536650,536136.93,535550,535400",
+ "In": "KAB-L-FL038001-1"
+ },
+ {
+ "IdS": 221708,
+ "PX": "369200,370000,370900",
+ "PY": "535400,535100,535100",
+ "In": "KAB-L-FL038001-2"
+ },
+ {
+ "IdS": 221713,
+ "PX": "371295,371335,375150",
+ "PY": "534655,534635,532950",
+ "In": "KAB-L-FL038003-2"
+ },
+ {
+ "IdS": 221714,
+ "PX": "345860,345713.96",
+ "PY": "580675,580804.67",
+ "In": "KAB-C-F016006-2"
+ },
+ {
+ "IdS": 221715,
+ "PX": "345713.96,345489.39",
+ "PY": "580804.67,580994.85",
+ "In": "KAB-C-F016010-10"
+ },
+ {
+ "IdS": 221721,
+ "PX": "346248.57,346250",
+ "PY": "579459.35,579650",
+ "In": "KAB-C-F016007-1"
+ },
+ {
+ "IdS": 221723,
+ "PX": "346249.54,346248.57",
+ "PY": "579234.16,579459.35",
+ "In": "KAB-C-F016008-1"
+ },
+ {
+ "IdS": 221724,
+ "PX": "378000,378450",
+ "PY": "544400,544200",
+ "In": "KAB-C-FGN006018-1"
+ },
+ {
+ "IdS": 221731,
+ "PX": "334750,334703.43",
+ "PY": "567550,567467.4",
+ "In": "KAB-AB-002017-2"
+ },
+ {
+ "IdS": 221732,
+ "PX": "334703.43,334600",
+ "PY": "567467.4,567300",
+ "In": "KAB-AB-002070-1"
+ },
+ {
+ "IdS": 221740,
+ "PX": "342650,342650.16",
+ "PY": "565650,565149.71",
+ "In": "KAB-C-007024-1"
+ },
+ {
+ "IdS": 221741,
+ "PX": "342650.16,342650",
+ "PY": "565149.71,564850",
+ "In": "KAB-C-007047-1"
+ },
+ {
+ "IdS": 221744,
+ "PX": "340100,340124.93,340300.08,340300",
+ "PY": "570200,570185.04,570185.04,570200",
+ "In": "KAB-C-007048-1"
+ },
+ {
+ "IdS": 221770,
+ "PX": "335300,335230",
+ "PY": "570650,570650",
+ "In": "KAB-C-F001054-1"
+ },
+ {
+ "IdS": 221773,
+ "PX": "345700,345700.02",
+ "PY": "554365,554349.9",
+ "In": "KAB-C-011045-1"
+ },
+ {
+ "IdS": 221774,
+ "PX": "345700,345725.03",
+ "PY": "554365,554380.01",
+ "In": "KAB-C-F011046-1"
+ },
+ {
+ "IdS": 221775,
+ "PX": "345700.02,345700.02",
+ "PY": "554349.9,554319.96",
+ "In": "KAB-C-F011047-1"
+ },
+ {
+ "IdS": 221776,
+ "PX": "345700.02,345699.9",
+ "PY": "554290,554194.63",
+ "In": "KAB-C-F011049-1"
+ },
+ {
+ "IdS": 221777,
+ "PX": "345700.02,345700.02",
+ "PY": "554319.96,554290",
+ "In": "KAB-C-F011048-1"
+ },
+ {
+ "IdS": 221787,
+ "PX": "336515,336205",
+ "PY": "579555,579555",
+ "In": "KAB-C-063048-1"
+ },
+ {
+ "IdS": 221794,
+ "PX": "339650.26,339273.35",
+ "PY": "582444.86,582072.7",
+ "In": "KAB-C-013051-1"
+ },
+ {
+ "IdS": 221795,
+ "PX": "339273.35,338774.73",
+ "PY": "582072.7,581575.28",
+ "In": "KAB-C-013001-1"
+ },
+ {
+ "IdS": 221797,
+ "PX": "340220.01,339650.26",
+ "PY": "583019.75,582444.86",
+ "In": "KAB-C-013050-1"
+ },
+ {
+ "IdS": 221798,
+ "PX": "339650.26,339684.98",
+ "PY": "582444.86,582415.23",
+ "In": "KAB-C-013103-1"
+ },
+ {
+ "IdS": 221799,
+ "PX": "341200,340810.28",
+ "PY": "584000,583609.71",
+ "In": "KAB-C-013034-1"
+ },
+ {
+ "IdS": 221800,
+ "PX": "340810.28,340220.01",
+ "PY": "583609.71,583019.75",
+ "In": "KAB-C-013053-1"
+ },
+ {
+ "IdS": 221801,
+ "PX": "338774.73,338725.31",
+ "PY": "581575.28,581524.71",
+ "In": "KAB-C-013001-3"
+ },
+ {
+ "IdS": 221802,
+ "PX": "338725.31,338550",
+ "PY": "581524.71,581350",
+ "In": "KAB-C-013001-6"
+ },
+ {
+ "IdS": 221809,
+ "PX": "334690,334535",
+ "PY": "569730,569140",
+ "In": "KAB-L-LOGE/GL0009-5"
+ },
+ {
+ "IdS": 221815,
+ "PX": "336200,336329.96",
+ "PY": "571250,571250",
+ "In": "KAB-C-001006-3"
+ },
+ {
+ "IdS": 221816,
+ "PX": "336329.96,336350",
+ "PY": "571250,571250",
+ "In": "KAB-C-001044-1"
+ },
+ {
+ "IdS": 221843,
+ "PX": "332850,332850,332750",
+ "PY": "569400,569250,569250",
+ "In": "KAB-C-202009-4"
+ },
+ {
+ "IdS": 221848,
+ "PX": "338645,338670,339139.66,339239.87",
+ "PY": "574640,574545,574104.63,574104.8",
+ "In": "KAB-C-027023-1"
+ },
+ {
+ "IdS": 221849,
+ "PX": "339239.87,339240.3,339485.23,339550",
+ "PY": "574104.8,574005.37,573799.93,573800",
+ "In": "KAB-C-027026-1"
+ },
+ {
+ "IdS": 221851,
+ "PX": "339239.87,339340.38,339549.92,339550",
+ "PY": "574104.8,574104.9,573864.81,573800",
+ "In": "KAB-C-063092-1"
+ },
+ {
+ "IdS": 221860,
+ "PX": "368450,368359.92",
+ "PY": "549550,549494.87",
+ "In": "KAB-C-026031-1"
+ },
+ {
+ "IdS": 221861,
+ "PX": "368359.92,367750",
+ "PY": "549494.87,549150",
+ "In": "KAB-C-026092-1"
+ },
+ {
+ "IdS": 221865,
+ "PX": "340850,340987.42",
+ "PY": "534800,533889.97",
+ "In": "KAB-C-050069-1"
+ },
+ {
+ "IdS": 221867,
+ "PX": "341500.09,341610.19",
+ "PY": "529200.23,528434.88",
+ "In": "KAB-C-050058-1"
+ },
+ {
+ "IdS": 221871,
+ "PX": "344580,344680.41",
+ "PY": "555290,555384.78",
+ "In": "KAB-L-L008003-1"
+ },
+ {
+ "IdS": 221882,
+ "PX": "342700,342755.03",
+ "PY": "591600,591629.88",
+ "In": "KAB-L-L059001-11"
+ },
+ {
+ "IdS": 221883,
+ "PX": "342350,341331.78",
+ "PY": "576300,574940.23",
+ "In": "KAB-C-025003-1"
+ },
+ {
+ "IdS": 221884,
+ "PX": "341331.78,341150,340700",
+ "PY": "574940.23,574700,574400",
+ "In": "KAB-C-025007-1"
+ },
+ {
+ "IdS": 221888,
+ "PX": "342199.96,342201.99",
+ "PY": "569350.01,568776.12",
+ "In": "KAB-C-017010-1"
+ },
+ {
+ "IdS": 221889,
+ "PX": "342201.99,342200",
+ "PY": "568776.12,568150",
+ "In": "KAB-C-017009-1"
+ },
+ {
+ "IdS": 221890,
+ "PX": "334150,333650.59",
+ "PY": "547700,547700.77",
+ "In": "KAB-L-L078001-43"
+ },
+ {
+ "IdS": 221892,
+ "PX": "333650.59,333650",
+ "PY": "547700.77,547630",
+ "In": "KAB-L-L078001-12"
+ },
+ {
+ "IdS": 221893,
+ "PX": "333650.59,333374.97",
+ "PY": "547700.77,547699.77",
+ "In": "KAB-L-L078001-44"
+ },
+ {
+ "IdS": 221894,
+ "PX": "333374.97,333150",
+ "PY": "547699.77,547700",
+ "In": "KAB-L-L078001-46"
+ },
+ {
+ "IdS": 221895,
+ "PX": "333374.97,333375",
+ "PY": "547699.77,547625",
+ "In": "KAB-L-L078001-45"
+ },
+ {
+ "IdS": 221900,
+ "PX": "350549.97,350550",
+ "PY": "560580.02,560480",
+ "In": "KAB-L-L083004-17"
+ },
+ {
+ "IdS": 221901,
+ "PX": "350549.97,350174.87",
+ "PY": "560580.02,560374.3",
+ "In": "KAB-L-L083004-16"
+ },
+ {
+ "IdS": 221903,
+ "PX": "350174.87,350210",
+ "PY": "560374.3,560325",
+ "In": "KAB-L-L083004-15"
+ },
+ {
+ "IdS": 221904,
+ "PX": "350174.87,350100.01",
+ "PY": "560374.3,560330.13",
+ "In": "KAB-L-L083004-14"
+ },
+ {
+ "IdS": 221906,
+ "PX": "350100.01,350130.01",
+ "PY": "560330.13,560284.59",
+ "In": "KAB-L-L083004-13"
+ },
+ {
+ "IdS": 221907,
+ "PX": "350100.01,350005",
+ "PY": "560330.13,560270",
+ "In": "KAB-L-L083004-12"
+ },
+ {
+ "IdS": 221908,
+ "PX": "350005,349876.77",
+ "PY": "560270,560191.63",
+ "In": "KAB-L-L083004-10"
+ },
+ {
+ "IdS": 221909,
+ "PX": "350005,350035",
+ "PY": "560270,560225",
+ "In": "KAB-L-L083004-11"
+ },
+ {
+ "IdS": 221925,
+ "PX": "339565,339300",
+ "PY": "575900,575900",
+ "In": "KAB-L-L021002-6"
+ },
+ {
+ "IdS": 221926,
+ "PX": "339850,339500,339515.35",
+ "PY": "575650,575650,575599.73",
+ "In": "KAB-L-L021004-2"
+ },
+ {
+ "IdS": 221927,
+ "PX": "339515.35,339900",
+ "PY": "575599.73,574300",
+ "In": "KAB-L-L021004-4"
+ },
+ {
+ "IdS": 221928,
+ "PX": "339515.35,339450",
+ "PY": "575599.73,575400",
+ "In": "KAB-L-L021004-1"
+ },
+ {
+ "IdS": 221942,
+ "PX": "351374.97,352484.93",
+ "PY": "579900,580055.02",
+ "In": "KAB-C-006028-1"
+ },
+ {
+ "IdS": 221943,
+ "PX": "351374.97,351375",
+ "PY": "579900,579990",
+ "In": "KAB-C-006001-1"
+ },
+ {
+ "IdS": 221944,
+ "PX": "350930,351374.97",
+ "PY": "579840,579900",
+ "In": "KAB-C-006024-1"
+ },
+ {
+ "IdS": 221945,
+ "PX": "372600,372200",
+ "PY": "552800,552800",
+ "In": "KAB-C-FGN003072-1"
+ },
+ {
+ "IdS": 221947,
+ "PX": "347450,347530",
+ "PY": "556950,556205",
+ "In": "KAB-C-011019-6"
+ },
+ {
+ "IdS": 221948,
+ "PX": "347530,347450",
+ "PY": "556205,555600",
+ "In": "KAB-C-011050-1"
+ },
+ {
+ "IdS": 221949,
+ "PX": "347065,347440,347440",
+ "PY": "555590,555590,556205",
+ "In": "KAB-L-GL-KSR 127-3"
+ },
+ {
+ "IdS": 221950,
+ "PX": "347440,347440",
+ "PY": "556205,557550",
+ "In": "KAB-L-GL-KSR 127-5"
+ },
+ {
+ "IdS": 221952,
+ "PX": "344300,344284.91",
+ "PY": "542365,542349.93",
+ "In": "KAB-C-050037-4"
+ },
+ {
+ "IdS": 221953,
+ "PX": "344284.91,343035",
+ "PY": "542349.93,541105",
+ "In": "KAB-C-050047-1"
+ },
+ {
+ "IdS": 221954,
+ "PX": "356595,356690,356700",
+ "PY": "552430,552430,552500",
+ "In": "KAB-L-L051052-1"
+ },
+ {
+ "IdS": 221959,
+ "PX": "334535,334535,334875,334875",
+ "PY": "569140,569095,569095,569035",
+ "In": "KAB-L-LOGE/GL0035-8"
+ },
+ {
+ "IdS": 221961,
+ "PX": "334690,334744.8",
+ "PY": "569730,569659.71",
+ "In": "KAB-L-L202001-1"
+ },
+ {
+ "IdS": 221962,
+ "PX": "334744.8,334800",
+ "PY": "569659.71,569600",
+ "In": "KAB-L-L202001-2"
+ },
+ {
+ "IdS": 221963,
+ "PX": "334535,334550,334675,334725.16,334744.8",
+ "PY": "569140,569155,569640,569649.75,569659.71",
+ "In": "KAB-L-L202002-1"
+ },
+ {
+ "IdS": 221966,
+ "PX": "354300,354399.85",
+ "PY": "557700,557754.94",
+ "In": "KAB-L-L455001-1"
+ },
+ {
+ "IdS": 221967,
+ "PX": "354399.85,355050.25",
+ "PY": "557754.94,556450.61",
+ "In": "KAB-L-L455001-12"
+ },
+ {
+ "IdS": 221968,
+ "PX": "354399.85,354450.08",
+ "PY": "557754.94,557784.65",
+ "In": "KAB-L-L455001-13"
+ },
+ {
+ "IdS": 221981,
+ "PX": "354850,354556.38",
+ "PY": "556600,557187.52",
+ "In": "KAB-C-055005-4"
+ },
+ {
+ "IdS": 221982,
+ "PX": "354556.38,354300",
+ "PY": "557187.52,557700",
+ "In": "KAB-C-055004-1"
+ },
+ {
+ "IdS": 221997,
+ "PX": "334535,333740,333740,333395",
+ "PY": "569140,569140,569940,569940",
+ "In": "KAB-L-LOGE/GL0037-1"
+ },
+ {
+ "IdS": 222000,
+ "PX": "342850,343498.31",
+ "PY": "558800,558799.14",
+ "In": "KAB-C-022032-1"
+ },
+ {
+ "IdS": 222004,
+ "PX": "333395.08,333424.99,333425.14,333750,333750",
+ "PY": "569774.88,569799.91,569949.92,569950,569750",
+ "In": "KAB-C-202004-1"
+ },
+ {
+ "IdS": 222023,
+ "PX": "339800,340230.91",
+ "PY": "558950,558949.98",
+ "In": "KAB-C-003016-1"
+ },
+ {
+ "IdS": 222028,
+ "PX": "336204.95,336205.01",
+ "PY": "570709.98,570660.01",
+ "In": "KAB-L-L001070-1"
+ },
+ {
+ "IdS": 222030,
+ "PX": "336240.01,336205.01",
+ "PY": "570674.99,570660.01",
+ "In": "KAB-L-L001071-1"
+ },
+ {
+ "IdS": 222031,
+ "PX": "336204.95,336239.98,336240.01",
+ "PY": "570709.98,570694.94,570674.99",
+ "In": "KAB-L-L001072-1"
+ },
+ {
+ "IdS": 222032,
+ "PX": "336204.95,336225.02,336240.01",
+ "PY": "570709.98,570680.06,570674.99",
+ "In": "KAB-L-L001073-1"
+ },
+ {
+ "IdS": 222034,
+ "PX": "333395,333395.08",
+ "PY": "569905,569774.88",
+ "In": "KAB-L-L202003-1"
+ },
+ {
+ "IdS": 222035,
+ "PX": "333395,333395",
+ "PY": "569940,569905",
+ "In": "KAB-L-GL-STHU-ELFR-5"
+ },
+ {
+ "IdS": 222048,
+ "PX": "338785,339240,339240,340495",
+ "PY": "567375,567375,566250,565165",
+ "In": "KAB-L-LOGE/GL0051-2"
+ },
+ {
+ "IdS": 222049,
+ "PX": "340495,340640,341579.3,342464.99",
+ "PY": "565165,565050,564261.37,563600.07",
+ "In": "KAB-L-LOGE/GL0051-4"
+ },
+ {
+ "IdS": 222050,
+ "PX": "340510,340540",
+ "PY": "565175,565205",
+ "In": "KAB-L-L409001-1"
+ },
+ {
+ "IdS": 222078,
+ "PX": "344400,344500",
+ "PY": "585550,585150",
+ "In": "KAB-L-L058004-18"
+ },
+ {
+ "IdS": 222079,
+ "PX": "344500,344700",
+ "PY": "585150,584350",
+ "In": "KAB-L-L058004-19"
+ },
+ {
+ "IdS": 222080,
+ "PX": "344500,344530,344545.09",
+ "PY": "585150,585150,585089.52",
+ "In": "KAB-L-L058004-20"
+ },
+ {
+ "IdS": 222089,
+ "PX": "337916.22,338000",
+ "PY": "560600.04,560650",
+ "In": "KAB-L-L008004-1"
+ },
+ {
+ "IdS": 222090,
+ "PX": "337440,337916.22",
+ "PY": "561295,560600.04",
+ "In": "KAB-L-GL-AEGI-LIZ1-1"
+ },
+ {
+ "IdS": 222099,
+ "PX": "337916.22,339085,340670,341215,341400,341885,341885,342010",
+ "PY": "560600.04,558930,558915,559155,559155,559155,558635,557730",
+ "In": "KAB-L-GL-LIZ1-SEIT-1"
+ },
+ {
+ "IdS": 222107,
+ "PX": "338502.56,338645",
+ "PY": "575297.52,574640",
+ "In": "KAB-C-063043-1"
+ },
+ {
+ "IdS": 222108,
+ "PX": "338645,338755,339240.02,339239.87",
+ "PY": "574640,574605,574204.99,574104.8",
+ "In": "KAB-C-063049-1"
+ },
+ {
+ "IdS": 222113,
+ "PX": "334938.9,335330.01",
+ "PY": "557262.51,556720",
+ "In": "KAB-C-050085-1"
+ },
+ {
+ "IdS": 222118,
+ "PX": "340805.01,340850",
+ "PY": "534799.99,534800",
+ "In": "KAB-L-L050073-1"
+ },
+ {
+ "IdS": 222121,
+ "PX": "340987.42,341139.11",
+ "PY": "533889.97,532882.73",
+ "In": "KAB-C-050004-1"
+ },
+ {
+ "IdS": 222122,
+ "PX": "341139.11,341250,341250",
+ "PY": "532882.73,532150,531650",
+ "In": "KAB-C-050089-1"
+ },
+ {
+ "IdS": 222128,
+ "PX": "343498.31,344600",
+ "PY": "558799.14,558800",
+ "In": "KAB-C-022049-5"
+ },
+ {
+ "IdS": 222139,
+ "PX": "338450,338600,338600",
+ "PY": "558550,558700,558850",
+ "In": "KAB-AB-003009-2"
+ },
+ {
+ "IdS": 222149,
+ "PX": "375150,374300",
+ "PY": "551350,552450",
+ "In": "KAB-C-026045-1"
+ },
+ {
+ "IdS": 222161,
+ "PX": "336699.88,337045.44",
+ "PY": "571350,571349.72",
+ "In": "KAB-C-001002-4"
+ },
+ {
+ "IdS": 222162,
+ "PX": "337045.44,337100",
+ "PY": "571349.72,571350",
+ "In": "KAB-C-001002-5"
+ },
+ {
+ "IdS": 222166,
+ "PX": "349150,346989.52,346900",
+ "PY": "559750,559765.07,559700",
+ "In": "KAB-L-L083004-1"
+ },
+ {
+ "IdS": 222167,
+ "PX": "346900,346500",
+ "PY": "559700,559750",
+ "In": "KAB-L-L083001-32"
+ },
+ {
+ "IdS": 222172,
+ "PX": "355263.66,355250",
+ "PY": "562665.22,562700",
+ "In": "KAB-L-L057001-4"
+ },
+ {
+ "IdS": 222173,
+ "PX": "356080,356050",
+ "PY": "563410,563450",
+ "In": "KAB-L-L057001-5"
+ },
+ {
+ "IdS": 222174,
+ "PX": "352675.03,352719.49",
+ "PY": "560574.98,560595.05",
+ "In": "KAB-L-L083004-21"
+ },
+ {
+ "IdS": 222181,
+ "PX": "337380,337700",
+ "PY": "561910,561455",
+ "In": "KAB-C-008021-2"
+ },
+ {
+ "IdS": 222186,
+ "PX": "336400,336399.66",
+ "PY": "565300,564815.19",
+ "In": "KAB-C-009020-1"
+ },
+ {
+ "IdS": 222188,
+ "PX": "342840,342840,342755,342750",
+ "PY": "558780,558745,558745,558750",
+ "In": "KAB-L-L008006-1"
+ },
+ {
+ "IdS": 222191,
+ "PX": "346300,346299.87",
+ "PY": "559750,559720.63",
+ "In": "KAB-L-L083001-17"
+ },
+ {
+ "IdS": 222192,
+ "PX": "346299.87,346300,346400",
+ "PY": "559720.63,559450,559450",
+ "In": "KAB-L-L083002-1"
+ },
+ {
+ "IdS": 222195,
+ "PX": "346500,346500",
+ "PY": "559750,559719.81",
+ "In": "KAB-L-L083001-19"
+ },
+ {
+ "IdS": 222196,
+ "PX": "346500,346500,346400",
+ "PY": "559719.81,559450,559450",
+ "In": "KAB-L-L083003-1"
+ },
+ {
+ "IdS": 222197,
+ "PX": "349150,349150",
+ "PY": "559750,559885",
+ "In": "KAB-L-L083004-3"
+ },
+ {
+ "IdS": 222215,
+ "PX": "337000,336900,336899.93,336400",
+ "PY": "565950,565850,565299.97,565300",
+ "In": "KAB-C-009031-1"
+ },
+ {
+ "IdS": 222225,
+ "PX": "336400,336550,336865.09,336849.97",
+ "PY": "563900,563850,563404.81,563339.95",
+ "In": "KAB-AB-008001-1"
+ },
+ {
+ "IdS": 222236,
+ "PX": "336515,336515",
+ "PY": "571500,571800",
+ "In": "KAB-C-001020-12"
+ },
+ {
+ "IdS": 222241,
+ "PX": "342200,342779.78",
+ "PY": "569650,569130.34",
+ "In": "KAB-C-056003-1"
+ },
+ {
+ "IdS": 222242,
+ "PX": "342779.78,343312.21",
+ "PY": "569130.34,568650.71",
+ "In": "KAB-C-056013-1"
+ },
+ {
+ "IdS": 222261,
+ "PX": "343100,343278.29",
+ "PY": "590700,590015.07",
+ "In": "KAB-L-L059001-10"
+ },
+ {
+ "IdS": 222262,
+ "PX": "343278.29,343550",
+ "PY": "590015.07,589000",
+ "In": "KAB-L-L059001-22"
+ },
+ {
+ "IdS": 222263,
+ "PX": "343278.29,342740.9",
+ "PY": "590015.07,589862.7",
+ "In": "KAB-L-L059001-23"
+ },
+ {
+ "IdS": 222264,
+ "PX": "341050,341239.71",
+ "PY": "568900,568730.19",
+ "In": "KAB-C-007020-1"
+ },
+ {
+ "IdS": 222266,
+ "PX": "341239.71,341450,342200",
+ "PY": "568730.19,568550,568150",
+ "In": "KAB-C-007051-1"
+ },
+ {
+ "IdS": 222269,
+ "PX": "336849.97,336849.79,336834.12,336949.94,337015",
+ "PY": "563339.95,563339.7,563275.07,563114.79,563115",
+ "In": "KAB-C-003027-1"
+ },
+ {
+ "IdS": 222270,
+ "PX": "337015,336550",
+ "PY": "563115,562700",
+ "In": "KAB-C-003030-1"
+ },
+ {
+ "IdS": 222271,
+ "PX": "336849.97,336920.17,337014.98,337015",
+ "PY": "563339.95,563329.99,563189.66,563115",
+ "In": "KAB-AB-008022-1"
+ },
+ {
+ "IdS": 222272,
+ "PX": "337015,337014.57,336770,337086.45",
+ "PY": "563115,563035.29,562780,562342.22",
+ "In": "KAB-AB-008023-1"
+ },
+ {
+ "IdS": 222275,
+ "PX": "340650,341215",
+ "PY": "558950,559180",
+ "In": "KAB-C-008007-1"
+ },
+ {
+ "IdS": 222276,
+ "PX": "341215,341435",
+ "PY": "559180,559180",
+ "In": "KAB-C-008024-1"
+ },
+ {
+ "IdS": 222279,
+ "PX": "333350,333350",
+ "PY": "571550,571250",
+ "In": "KAB-C-201002-1"
+ },
+ {
+ "IdS": 222283,
+ "PX": "341964.9,342655",
+ "PY": "545004.83,544350",
+ "In": "KAB-C-050034-1"
+ },
+ {
+ "IdS": 222304,
+ "PX": "355050.25,355199.95",
+ "PY": "556450.61,556149.84",
+ "In": "KAB-L-L455001-2"
+ },
+ {
+ "IdS": 222305,
+ "PX": "355199.95,355350",
+ "PY": "556149.84,555850",
+ "In": "KAB-L-L455001-14"
+ },
+ {
+ "IdS": 222306,
+ "PX": "355199.95,355125",
+ "PY": "556149.84,556115",
+ "In": "KAB-L-L455001-15"
+ },
+ {
+ "IdS": 222313,
+ "PX": "335490,335500,336300,336300.02",
+ "PY": "569395,569395,569800,570249.96",
+ "In": "KAB-L-LOGE/GL0008-2"
+ },
+ {
+ "IdS": 222316,
+ "PX": "335800,335699.98,335660,335660",
+ "PY": "570575,570574.96,570650,570650",
+ "In": "KAB-L-L001075-1"
+ },
+ {
+ "IdS": 222317,
+ "PX": "335660,335659.82",
+ "PY": "570650,570740.29",
+ "In": "KAB-L-L001076-1"
+ },
+ {
+ "IdS": 222318,
+ "PX": "335659.82,335725.59",
+ "PY": "570740.29,570635.04",
+ "In": "KAB-L-L001077-1"
+ },
+ {
+ "IdS": 222319,
+ "PX": "335659.82,335755",
+ "PY": "570740.29,570740",
+ "In": "KAB-L-L001078-1"
+ },
+ {
+ "IdS": 222320,
+ "PX": "335725.59,335755",
+ "PY": "570635.04,570740",
+ "In": "KAB-L-L001079-1"
+ },
+ {
+ "IdS": 222322,
+ "PX": "336255.01,336254.98",
+ "PY": "570660.05,570655",
+ "In": "KAB-L-L001081-1"
+ },
+ {
+ "IdS": 222323,
+ "PX": "336254.98,336204.99",
+ "PY": "570655,570655",
+ "In": "KAB-L-L001082-1"
+ },
+ {
+ "IdS": 222324,
+ "PX": "336205.01,336204.99",
+ "PY": "570660.01,570655",
+ "In": "KAB-L-L001083-1"
+ },
+ {
+ "IdS": 222325,
+ "PX": "336240.01,336239.87",
+ "PY": "570674.99,570635.13",
+ "In": "KAB-L-L001068-1"
+ },
+ {
+ "IdS": 222326,
+ "PX": "336239.87,336200",
+ "PY": "570635.13,570570",
+ "In": "KAB-L-L001068-6"
+ },
+ {
+ "IdS": 222327,
+ "PX": "336239.87,335725.59",
+ "PY": "570635.13,570635.04",
+ "In": "KAB-L-L001068-7"
+ },
+ {
+ "IdS": 222328,
+ "PX": "336255.03,336244.96,336214.94,336204.95",
+ "PY": "570710,570714.91,570714.99,570709.98",
+ "In": "KAB-L-L001084-1"
+ },
+ {
+ "IdS": 222329,
+ "PX": "340495,340510",
+ "PY": "565165,565175",
+ "In": "KAB-L-LOGE/GL0051-3"
+ },
+ {
+ "IdS": 222330,
+ "PX": "338785,338749.99",
+ "PY": "567375,567404.91",
+ "In": "KAB-L-LOGE/GL0051-5"
+ },
+ {
+ "IdS": 222331,
+ "PX": "338749.99,338700",
+ "PY": "567404.91,567450",
+ "In": "KAB-L-L409002-1"
+ },
+ {
+ "IdS": 222350,
+ "PX": "331914.58,332135",
+ "PY": "571397.41,570460",
+ "In": "KAB-C-F200058-1"
+ },
+ {
+ "IdS": 222351,
+ "PX": "332135,332250",
+ "PY": "570460,569950",
+ "In": "KAB-C-F200060-1"
+ },
+ {
+ "IdS": 222352,
+ "PX": "332135,331867.91",
+ "PY": "570460,570417.06",
+ "In": "KAB-C-F200061-1"
+ },
+ {
+ "IdS": 222394,
+ "PX": "340850,340960",
+ "PY": "534800,534800",
+ "In": "KAB-C-050021-1"
+ },
+ {
+ "IdS": 222416,
+ "PX": "342464.99,342500",
+ "PY": "563600.07,563600",
+ "In": "KAB-L-L009001-1"
+ },
+ {
+ "IdS": 222424,
+ "PX": "332675.04,332675,332250",
+ "PY": "569800.13,569550,569550",
+ "In": "KAB-L-L200003-1"
+ },
+ {
+ "IdS": 222429,
+ "PX": "347655,347694.59",
+ "PY": "588035,588035.03",
+ "In": "KAB-C-014004-4"
+ },
+ {
+ "IdS": 222440,
+ "PX": "338030,338030.15",
+ "PY": "570200,568824.05",
+ "In": "KAB-L-LOGE/GL0053-2"
+ },
+ {
+ "IdS": 222441,
+ "PX": "338030.15,335704.82",
+ "PY": "568824.05,567479.86",
+ "In": "KAB-L-LOGE/GL0055-1"
+ },
+ {
+ "IdS": 222446,
+ "PX": "340300,340300,340264.99",
+ "PY": "570200,570210,570210.03",
+ "In": "KAB-C-007033-1"
+ },
+ {
+ "IdS": 222447,
+ "PX": "340300,340365",
+ "PY": "570200,570200",
+ "In": "KAB-L-L007001-1"
+ },
+ {
+ "IdS": 222485,
+ "PX": "359650,359237.69",
+ "PY": "547450,547000.08",
+ "In": "KAB-C-026021-1"
+ },
+ {
+ "IdS": 222486,
+ "PX": "359237.69,359100",
+ "PY": "547000.08,546850",
+ "In": "KAB-C-026012-5"
+ },
+ {
+ "IdS": 222502,
+ "PX": "333000,333179.95",
+ "PY": "571700,571620.24",
+ "In": "KAB-C-F201002-1"
+ },
+ {
+ "IdS": 222503,
+ "PX": "333179.95,333350",
+ "PY": "571620.24,571550",
+ "In": "KAB-C-F201002-2"
+ },
+ {
+ "IdS": 222504,
+ "PX": "333179.95,333210",
+ "PY": "571620.24,571675",
+ "In": "KAB-C-F201002-3"
+ },
+ {
+ "IdS": 222505,
+ "PX": "331700,332154.77",
+ "PY": "572200,572035.15",
+ "In": "KAB-C-F201001-1"
+ },
+ {
+ "IdS": 222506,
+ "PX": "332154.77,332650",
+ "PY": "572035.15,571850",
+ "In": "KAB-C-F201001-6"
+ },
+ {
+ "IdS": 222507,
+ "PX": "332154.77,332165",
+ "PY": "572035.15,572060",
+ "In": "KAB-C-F201001-7"
+ },
+ {
+ "IdS": 222519,
+ "PX": "331134.78,331249.88",
+ "PY": "574706.78,574205.08",
+ "In": "KAB-C-F200054-1"
+ },
+ {
+ "IdS": 222520,
+ "PX": "331249.88,331364.13",
+ "PY": "574205.08,573733.44",
+ "In": "KAB-C-F200054-2"
+ },
+ {
+ "IdS": 222521,
+ "PX": "331249.88,331285.1",
+ "PY": "574205.08,574214.74",
+ "In": "KAB-C-F200054-3"
+ },
+ {
+ "IdS": 222522,
+ "PX": "331470.75,331585",
+ "PY": "573261.59,572785",
+ "In": "KAB-C-F200056-1"
+ },
+ {
+ "IdS": 222523,
+ "PX": "331585,331593.49",
+ "PY": "572785,572760.09",
+ "In": "KAB-C-F200056-4"
+ },
+ {
+ "IdS": 222524,
+ "PX": "331585,331620",
+ "PY": "572785,572785",
+ "In": "KAB-C-F200056-5"
+ },
+ {
+ "IdS": 222531,
+ "PX": "339480.03,339450,339460",
+ "PY": "576315.56,576305,576275",
+ "In": "KAB-L-L021002-11"
+ },
+ {
+ "IdS": 222532,
+ "PX": "339270,339480.03",
+ "PY": "577350,576315.56",
+ "In": "KAB-L-L021002-8"
+ },
+ {
+ "IdS": 222533,
+ "PX": "339480.03,339565",
+ "PY": "576315.56,575900",
+ "In": "KAB-L-L021002-12"
+ },
+ {
+ "IdS": 222534,
+ "PX": "335249.44,334884.99",
+ "PY": "571149.91,571149.97",
+ "In": "KAB-C-013006-1"
+ },
+ {
+ "IdS": 222535,
+ "PX": "334884.99,334600",
+ "PY": "571149.97,571150",
+ "In": "KAB-C-013041-1"
+ },
+ {
+ "IdS": 222545,
+ "PX": "336600,336550.01,336585.38,336617.4",
+ "PY": "565350,565235.09,564630.73,564585.85",
+ "In": "KAB-C-028005-1"
+ },
+ {
+ "IdS": 222546,
+ "PX": "336617.4,336585.02,336549.9,336400",
+ "PY": "564585.85,564544.91,564000.06,563900",
+ "In": "KAB-C-028007-1"
+ },
+ {
+ "IdS": 222547,
+ "PX": "336600,336649.59,336649.38,336617.4",
+ "PY": "565350,565235.09,564630.36,564585.85",
+ "In": "KAB-C-022001-1"
+ },
+ {
+ "IdS": 222548,
+ "PX": "336617.4,336650,336650,336400",
+ "PY": "564585.85,564545,564000,563900",
+ "In": "KAB-C-022046-1"
+ },
+ {
+ "IdS": 222553,
+ "PX": "354200,354199.97",
+ "PY": "581100,581009.52",
+ "In": "KAB-C-066011-4"
+ },
+ {
+ "IdS": 222561,
+ "PX": "336750,336900.14",
+ "PY": "566950,566950",
+ "In": "KAB-C-F012029-1"
+ },
+ {
+ "IdS": 222564,
+ "PX": "338700,338309.9",
+ "PY": "567450,567035.36",
+ "In": "KAB-C-028008-1"
+ },
+ {
+ "IdS": 222565,
+ "PX": "338309.9,337750",
+ "PY": "567035.36,566795",
+ "In": "KAB-C-028004-1"
+ },
+ {
+ "IdS": 222570,
+ "PX": "337415,337415",
+ "PY": "567540,567755",
+ "In": "KAB-C-F009001-1"
+ },
+ {
+ "IdS": 222620,
+ "PX": "339800,339799.92",
+ "PY": "570050,569654.97",
+ "In": "KAB-C-028009-1"
+ },
+ {
+ "IdS": 222635,
+ "PX": "339290.04,339019.95",
+ "PY": "568525.27,568034.66",
+ "In": "KAB-C-028011-1"
+ },
+ {
+ "IdS": 222637,
+ "PX": "339569.82,339290.04",
+ "PY": "569034.98,568525.27",
+ "In": "KAB-C-028012-1"
+ },
+ {
+ "IdS": 222638,
+ "PX": "339019.95,338869.97",
+ "PY": "568034.66,567759.71",
+ "In": "KAB-C-028010-1"
+ },
+ {
+ "IdS": 222639,
+ "PX": "338869.97,338700",
+ "PY": "567759.71,567450",
+ "In": "KAB-C-028013-1"
+ },
+ {
+ "IdS": 222647,
+ "PX": "354200,354000.02",
+ "PY": "581100,581099.98",
+ "In": "KAB-C-066011-2"
+ },
+ {
+ "IdS": 222648,
+ "PX": "354000.02,353300",
+ "PY": "581099.98,581100",
+ "In": "KAB-C-066009-1"
+ },
+ {
+ "IdS": 222675,
+ "PX": "371500,371654.94",
+ "PY": "553400,553399.96",
+ "In": "KAB-C-FGN001222-2"
+ },
+ {
+ "IdS": 222676,
+ "PX": "371654.94,371900",
+ "PY": "553399.96,553400",
+ "In": "KAB-C-FGN001224-1"
+ },
+ {
+ "IdS": 222677,
+ "PX": "372800,372800.43",
+ "PY": "553100,552924.78",
+ "In": "KAB-C-FGN003016-2"
+ },
+ {
+ "IdS": 222678,
+ "PX": "372800.43,372800",
+ "PY": "552924.78,552800",
+ "In": "KAB-C-FGN003017-1"
+ },
+ {
+ "IdS": 222694,
+ "PX": "347080,347460,347405,347455,347450,347475,347490,347765,347825",
+ "PY": "560000,560850,560850,560965,560975,561030,561035,561650,561650",
+ "In": "KAB-L-GL-KSR 127-2"
+ },
+ {
+ "IdS": 222695,
+ "PX": "347825,347905,349500",
+ "PY": "561650,561650,563400",
+ "In": "KAB-L-GL-KSR 127-4"
+ },
+ {
+ "IdS": 222696,
+ "PX": "347825,347825",
+ "PY": "561650,561665",
+ "In": "KAB-L-LOGE/GL0013-9"
+ },
+ {
+ "IdS": 222697,
+ "PX": "347825,347795",
+ "PY": "561665,561700",
+ "In": "KAB-L-L011002-1"
+ },
+ {
+ "IdS": 222709,
+ "PX": "335575.16,335550",
+ "PY": "572195.08,572150",
+ "In": "KAB-L-L013001-12"
+ },
+ {
+ "IdS": 222710,
+ "PX": "335575.16,335649.34",
+ "PY": "572195.08,572195",
+ "In": "KAB-L-L013001-13"
+ },
+ {
+ "IdS": 222726,
+ "PX": "337884.12,338130",
+ "PY": "551057.12,550470",
+ "In": "KAB-C-050090-1"
+ },
+ {
+ "IdS": 222729,
+ "PX": "335645,335600",
+ "PY": "570940,570950",
+ "In": "KAB-L-L001085-1"
+ },
+ {
+ "IdS": 222730,
+ "PX": "335645,335645",
+ "PY": "570920,570940",
+ "In": "KAB-L-LOGE/GLBOTT-1"
+ },
+ {
+ "IdS": 222740,
+ "PX": "373300,373350.03",
+ "PY": "546100,546079.99",
+ "In": "KAB-L-L452001-15"
+ },
+ {
+ "IdS": 222741,
+ "PX": "373350.03,373550",
+ "PY": "546079.99,546000",
+ "In": "KAB-L-L452001-16"
+ },
+ {
+ "IdS": 222742,
+ "PX": "373350.03,373340.1",
+ "PY": "546079.99,546039.93",
+ "In": "KAB-L-L452001-3"
+ },
+ {
+ "IdS": 222744,
+ "PX": "375650,375854.35",
+ "PY": "545000,544879.05",
+ "In": "KAB-L-L452001-21"
+ },
+ {
+ "IdS": 222745,
+ "PX": "375854.35,376845",
+ "PY": "544879.05,544300",
+ "In": "KAB-L-L452001-22"
+ },
+ {
+ "IdS": 222746,
+ "PX": "375854.35,375699.29",
+ "PY": "544879.05,544666.6",
+ "In": "KAB-L-L452001-7"
+ },
+ {
+ "IdS": 222747,
+ "PX": "332250,332250",
+ "PY": "569950,569550",
+ "In": "KAB-C-200003-9"
+ },
+ {
+ "IdS": 222748,
+ "PX": "332250,332250",
+ "PY": "569550,569050",
+ "In": "KAB-C-200004-15"
+ },
+ {
+ "IdS": 222753,
+ "PX": "357300,357495.09",
+ "PY": "563050,562995.53",
+ "In": "KAB-C-042061-1"
+ },
+ {
+ "IdS": 222775,
+ "PX": "357495.09,357704.95",
+ "PY": "562995.53,562935.02",
+ "In": "KAB-C-042069-1"
+ },
+ {
+ "IdS": 222776,
+ "PX": "357704.95,358000",
+ "PY": "562935.02,562850",
+ "In": "KAB-C-042054-1"
+ },
+ {
+ "IdS": 222777,
+ "PX": "359000,359149.96",
+ "PY": "562500,562445.09",
+ "In": "KAB-C-042055-2"
+ },
+ {
+ "IdS": 222781,
+ "PX": "359149.96,359329.86",
+ "PY": "562445.09,562380.27",
+ "In": "KAB-C-042070-2"
+ },
+ {
+ "IdS": 222782,
+ "PX": "359329.86,359550",
+ "PY": "562380.27,562300",
+ "In": "KAB-C-042071-1"
+ },
+ {
+ "IdS": 222787,
+ "PX": "360350,360514.88",
+ "PY": "562050,561994.98",
+ "In": "KAB-C-042057-44"
+ },
+ {
+ "IdS": 222788,
+ "PX": "360514.88,360650",
+ "PY": "561994.98,561950",
+ "In": "KAB-C-042072-1"
+ },
+ {
+ "IdS": 222795,
+ "PX": "347450,348448.06",
+ "PY": "551250,551411.98",
+ "In": "KAB-C-026002-2"
+ },
+ {
+ "IdS": 222796,
+ "PX": "348448.06,349300",
+ "PY": "551411.98,551550",
+ "In": "KAB-C-026093-1"
+ },
+ {
+ "IdS": 222801,
+ "PX": "379900,379100",
+ "PY": "542050,542500",
+ "In": "KAB-C-052007-1"
+ },
+ {
+ "IdS": 222803,
+ "PX": "333780,334050",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-24"
+ },
+ {
+ "IdS": 222804,
+ "PX": "333780,333780",
+ "PY": "564000,564310",
+ "In": "KAB-L-L079001-23"
+ },
+ {
+ "IdS": 222805,
+ "PX": "332850,332995",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-25"
+ },
+ {
+ "IdS": 222806,
+ "PX": "332995,333150",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-26"
+ },
+ {
+ "IdS": 222807,
+ "PX": "332995,332995",
+ "PY": "564000,564290",
+ "In": "KAB-L-L079001-6"
+ },
+ {
+ "IdS": 222813,
+ "PX": "332710,332850",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-28"
+ },
+ {
+ "IdS": 222814,
+ "PX": "332710,332710",
+ "PY": "564000,564215",
+ "In": "KAB-L-L079001-4"
+ },
+ {
+ "IdS": 222816,
+ "PX": "332600,332710",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-30"
+ },
+ {
+ "IdS": 222817,
+ "PX": "332600,332600",
+ "PY": "564000,564215",
+ "In": "KAB-L-L079001-14"
+ },
+ {
+ "IdS": 222818,
+ "PX": "346250,346020,345445,345444.84",
+ "PY": "576050,576450,576450,576996.2",
+ "In": "KAB-C-006012-1"
+ },
+ {
+ "IdS": 222819,
+ "PX": "375900,374650",
+ "PY": "544350,545050",
+ "In": "KAB-C-052014-1"
+ },
+ {
+ "IdS": 222821,
+ "PX": "332480,332600",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-27"
+ },
+ {
+ "IdS": 222822,
+ "PX": "332480,332480",
+ "PY": "564000,564250",
+ "In": "KAB-L-L079001-29"
+ },
+ {
+ "IdS": 222824,
+ "PX": "332400,332480",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-33"
+ },
+ {
+ "IdS": 222825,
+ "PX": "332400,332400",
+ "PY": "564000,564160",
+ "In": "KAB-L-L079001-31"
+ },
+ {
+ "IdS": 222826,
+ "PX": "332085,332290",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-34"
+ },
+ {
+ "IdS": 222827,
+ "PX": "332290,332400",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-35"
+ },
+ {
+ "IdS": 222828,
+ "PX": "332290,332290",
+ "PY": "564000,564205",
+ "In": "KAB-L-L079001-32"
+ },
+ {
+ "IdS": 222835,
+ "PX": "333150,333400",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-36"
+ },
+ {
+ "IdS": 222836,
+ "PX": "333400,333780",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-37"
+ },
+ {
+ "IdS": 222837,
+ "PX": "333400,333400",
+ "PY": "564000,564315",
+ "In": "KAB-L-L079001-20"
+ },
+ {
+ "IdS": 222859,
+ "PX": "334950,335135",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-38"
+ },
+ {
+ "IdS": 222860,
+ "PX": "335135,335200",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-39"
+ },
+ {
+ "IdS": 222861,
+ "PX": "335135,335135",
+ "PY": "564000,563470",
+ "In": "KAB-L-L079001-10"
+ },
+ {
+ "IdS": 222909,
+ "PX": "345990,346430",
+ "PY": "560370,560035",
+ "In": "KAB-C-011039-2"
+ },
+ {
+ "IdS": 222912,
+ "PX": "372450,372553.78",
+ "PY": "539000,538792.56",
+ "In": "KAB-C-053007-1"
+ },
+ {
+ "IdS": 222913,
+ "PX": "372553.78,372600",
+ "PY": "538792.56,538700",
+ "In": "KAB-C-053012-1"
+ },
+ {
+ "IdS": 222948,
+ "PX": "337350.01,337349.97",
+ "PY": "578465.01,579040.13",
+ "In": "KAB-L-L021006-10"
+ },
+ {
+ "IdS": 222949,
+ "PX": "337349.97,337350",
+ "PY": "579040.13,579850",
+ "In": "KAB-L-L021006-12"
+ },
+ {
+ "IdS": 222950,
+ "PX": "337349.97,337475",
+ "PY": "579040.13,579040",
+ "In": "KAB-L-L021006-3"
+ },
+ {
+ "IdS": 222967,
+ "PX": "352750,352760.06,352750",
+ "PY": "560600,560634.95,560659.97",
+ "In": "KAB-AB-057008-1"
+ },
+ {
+ "IdS": 222968,
+ "PX": "352750,352739.96,352750",
+ "PY": "560600,560634.71,560659.97",
+ "In": "KAB-AB-057009-1"
+ },
+ {
+ "IdS": 222978,
+ "PX": "353350,353350",
+ "PY": "580500,579700",
+ "In": "KAB-C-006039-1"
+ },
+ {
+ "IdS": 222983,
+ "PX": "342350.24,342170",
+ "PY": "564849.69,564850",
+ "In": "KAB-C-F007001-1"
+ },
+ {
+ "IdS": 222984,
+ "PX": "336100,335950.06",
+ "PY": "572900,572825.19",
+ "In": "KAB-L-L013001-14"
+ },
+ {
+ "IdS": 222985,
+ "PX": "335950.06,335800",
+ "PY": "572825.19,572750",
+ "In": "KAB-L-L013001-15"
+ },
+ {
+ "IdS": 222992,
+ "PX": "349300,348108.71",
+ "PY": "551350,551154.79",
+ "In": "KAB-C-051026-2"
+ },
+ {
+ "IdS": 222999,
+ "PX": "370600,370900,371095.09",
+ "PY": "541400,541250,541147.06",
+ "In": "KAB-C-053002-3"
+ },
+ {
+ "IdS": 223020,
+ "PX": "333329.89,333330",
+ "PY": "569399.88,569350",
+ "In": "KAB-C-F004001-1"
+ },
+ {
+ "IdS": 223021,
+ "PX": "333400,333329.89",
+ "PY": "569400,569399.88",
+ "In": "KAB-C-F004002-1"
+ },
+ {
+ "IdS": 223028,
+ "PX": "334925,335190",
+ "PY": "571110,571110",
+ "In": "KAB-L-L013005-1"
+ },
+ {
+ "IdS": 223035,
+ "PX": "372700,372595,372425,372424.95",
+ "PY": "550400,550190,550150,549714.84",
+ "In": "KAB-L-L026089-1"
+ },
+ {
+ "IdS": 223037,
+ "PX": "372424.95,372300",
+ "PY": "549714.84,549700",
+ "In": "KAB-L-L026089-6"
+ },
+ {
+ "IdS": 223038,
+ "PX": "372424.95,372424.87",
+ "PY": "549714.84,548170.5",
+ "In": "KAB-L-L026089-5"
+ },
+ {
+ "IdS": 223039,
+ "PX": "372424.87,372425,372485,372250,371760,372075.16",
+ "PY": "548170.5,548000,547620,547500,546570,546434.91",
+ "In": "KAB-L-L026089-7"
+ },
+ {
+ "IdS": 223040,
+ "PX": "372424.87,372600",
+ "PY": "548170.5,548150",
+ "In": "KAB-L-L026089-8"
+ },
+ {
+ "IdS": 223047,
+ "PX": "369325,369200",
+ "PY": "549900,549900",
+ "In": "KAB-L-L451002-1"
+ },
+ {
+ "IdS": 223048,
+ "PX": "369440,369440",
+ "PY": "549900,549930",
+ "In": "KAB-L-LOGE/GL0010-1"
+ },
+ {
+ "IdS": 223049,
+ "PX": "369440,369200",
+ "PY": "549930,549900",
+ "In": "KAB-L-L451006-1"
+ },
+ {
+ "IdS": 223050,
+ "PX": "371020,371035",
+ "PY": "548260,548280",
+ "In": "KAB-L-GL-ESFE-SWAD-5"
+ },
+ {
+ "IdS": 223051,
+ "PX": "371035,371050",
+ "PY": "548280,548300",
+ "In": "KAB-L-LFGN003001-1"
+ },
+ {
+ "IdS": 223052,
+ "PX": "369440,369255,369345,369845,370144.8,370635,371020",
+ "PY": "549900,549785,549645,549345,549035.3,548575,548260",
+ "In": "KAB-L-GL-ESFE-SWAD-1"
+ },
+ {
+ "IdS": 223057,
+ "PX": "363745,363758.27",
+ "PY": "549435,549478.31",
+ "In": "KAB-L-GL-RIMP-REZH-3"
+ },
+ {
+ "IdS": 223058,
+ "PX": "363758.27,363800",
+ "PY": "549478.31,549600",
+ "In": "KAB-L-L451005-2"
+ },
+ {
+ "IdS": 223059,
+ "PX": "363745,364635,365460",
+ "PY": "549435,549085,548780",
+ "In": "KAB-L-GL-RIMP-REZH-10"
+ },
+ {
+ "IdS": 223061,
+ "PX": "368865,368835",
+ "PY": "554070,554070",
+ "In": "KAB-L-GL-ESFE-POSE-3"
+ },
+ {
+ "IdS": 223066,
+ "PX": "372245,372260",
+ "PY": "547695,547660",
+ "In": "KAB-L-GL-ESFE-SWAD-6"
+ },
+ {
+ "IdS": 223067,
+ "PX": "372260,372290,372455,372500",
+ "PY": "547660,547590,547590,547600",
+ "In": "KAB-L-L026403-1"
+ },
+ {
+ "IdS": 223074,
+ "PX": "362065,362085.79",
+ "PY": "550095,550129.88",
+ "In": "KAB-L-GL-RIMP-REZH-8"
+ },
+ {
+ "IdS": 223075,
+ "PX": "362085.79,362150",
+ "PY": "550129.88,550250",
+ "In": "KAB-L-L451004-1"
+ },
+ {
+ "IdS": 223076,
+ "PX": "372075.16,372065.13",
+ "PY": "546434.91,546395.27",
+ "In": "KAB-L-L026006-1"
+ },
+ {
+ "IdS": 223077,
+ "PX": "372065.13,372055",
+ "PY": "546395.27,546380",
+ "In": "KAB-L-GL-ESFE-SWAD-12"
+ },
+ {
+ "IdS": 223082,
+ "PX": "368865,368775,371675,372580,372724.97",
+ "PY": "554070,554265,556045,556605,556605.09",
+ "In": "KAB-L-GL-ESFE-POSE-5"
+ },
+ {
+ "IdS": 223107,
+ "PX": "336345,336609.47",
+ "PY": "582065,582065.06",
+ "In": "KAB-C-F063099-1"
+ },
+ {
+ "IdS": 223110,
+ "PX": "344100,344456.97",
+ "PY": "580200,581160.16",
+ "In": "KAB-C-014002-4"
+ },
+ {
+ "IdS": 223127,
+ "PX": "344456.97,344739.91",
+ "PY": "581160.16,582054.88",
+ "In": "KAB-C-014008-1"
+ },
+ {
+ "IdS": 223128,
+ "PX": "344739.91,344885",
+ "PY": "582054.88,582500",
+ "In": "KAB-C-014012-1"
+ },
+ {
+ "IdS": 223150,
+ "PX": "363800,363950,364070.13",
+ "PY": "549600,549700,549664.92",
+ "In": "KAB-C-026026-1"
+ },
+ {
+ "IdS": 223151,
+ "PX": "364070.13,364300",
+ "PY": "549664.92,549600",
+ "In": "KAB-C-026083-1"
+ },
+ {
+ "IdS": 223160,
+ "PX": "370580,370580",
+ "PY": "550115,550240",
+ "In": "KAB-C-026033-7"
+ },
+ {
+ "IdS": 223161,
+ "PX": "370580,370365.11,370364.94,370350.02",
+ "PY": "550115,550059.96,550220.03,550219.87",
+ "In": "KAB-C-026033-3"
+ },
+ {
+ "IdS": 223162,
+ "PX": "370350.02,370350.04,369950",
+ "PY": "550219.87,550060.06,549950",
+ "In": "KAB-C-026042-1"
+ },
+ {
+ "IdS": 223190,
+ "PX": "339159.91,339225",
+ "PY": "571829.93,571830",
+ "In": "KAB-C-016012-1"
+ },
+ {
+ "IdS": 223191,
+ "PX": "339225,339649.9",
+ "PY": "571830,572309.94",
+ "In": "KAB-C-016012-2"
+ },
+ {
+ "IdS": 223192,
+ "PX": "339649.9,340075,340095",
+ "PY": "572309.94,572785,572785.01",
+ "In": "KAB-C-016032-1"
+ },
+ {
+ "IdS": 223224,
+ "PX": "341700,341700",
+ "PY": "527150,527000",
+ "In": "KAB-C-F050001-1"
+ },
+ {
+ "IdS": 223244,
+ "PX": "380550,380339.93",
+ "PY": "541650,541774.58",
+ "In": "KAB-C-052006-2"
+ },
+ {
+ "IdS": 223245,
+ "PX": "380339.93,380300",
+ "PY": "541774.58,541800",
+ "In": "KAB-C-052006-4"
+ },
+ {
+ "IdS": 223246,
+ "PX": "380339.93,380365,380325",
+ "PY": "541774.58,541805,541830",
+ "In": "KAB-C-052006-17"
+ },
+ {
+ "IdS": 223266,
+ "PX": "354700,354754.99,354800.02",
+ "PY": "581100,581114.97,581099.97",
+ "In": "KAB-C-006033-1"
+ },
+ {
+ "IdS": 223267,
+ "PX": "354800.02,354800,354705",
+ "PY": "581099.97,581500,581600",
+ "In": "KAB-C-006045-1"
+ },
+ {
+ "IdS": 223268,
+ "PX": "354900,354800.02",
+ "PY": "580950,581099.97",
+ "In": "KAB-C-006031-1"
+ },
+ {
+ "IdS": 223269,
+ "PX": "354800.02,354754.98,354700",
+ "PY": "581099.97,581084.89,581100",
+ "In": "KAB-C-006046-1"
+ },
+ {
+ "IdS": 223270,
+ "PX": "355850,354749.99",
+ "PY": "580850,581014.99",
+ "In": "KAB-C-066008-1"
+ },
+ {
+ "IdS": 223271,
+ "PX": "354749.99,354750.05,354700",
+ "PY": "581014.99,581054.93,581100",
+ "In": "KAB-C-066010-1"
+ },
+ {
+ "IdS": 223272,
+ "PX": "354700,354715.12,354749.99",
+ "PY": "581100,581040.01,581014.99",
+ "In": "KAB-C-066002-1"
+ },
+ {
+ "IdS": 223273,
+ "PX": "354749.99,354200",
+ "PY": "581014.99,581100",
+ "In": "KAB-C-066011-1"
+ },
+ {
+ "IdS": 223280,
+ "PX": "354705,354600,354600",
+ "PY": "581600,581500,581099.97",
+ "In": "KAB-C-019001-1"
+ },
+ {
+ "IdS": 223281,
+ "PX": "354600,354645.01,354700",
+ "PY": "581099.97,581114.98,581100",
+ "In": "KAB-C-019005-1"
+ },
+ {
+ "IdS": 223302,
+ "PX": "354700,354645,354600",
+ "PY": "581100,581085,581099.97",
+ "In": "KAB-C-019004-1"
+ },
+ {
+ "IdS": 223303,
+ "PX": "354600,354599.99,354700",
+ "PY": "581099.97,580910.35,580850",
+ "In": "KAB-C-019003-5"
+ },
+ {
+ "IdS": 223310,
+ "PX": "345915,346339.57",
+ "PY": "584870,585894.25",
+ "In": "KAB-C-014001-1"
+ },
+ {
+ "IdS": 223311,
+ "PX": "346339.57,346755",
+ "PY": "585894.25,586895",
+ "In": "KAB-C-014003-2"
+ },
+ {
+ "IdS": 223322,
+ "PX": "366350,366350",
+ "PY": "548460,548490",
+ "In": "KAB-L-GL-RIMP-REZH-11"
+ },
+ {
+ "IdS": 223323,
+ "PX": "356570,356595",
+ "PY": "552440,552430",
+ "In": "KAB-L-GL-GERN-RIMP-3"
+ },
+ {
+ "IdS": 223334,
+ "PX": "344129.9,344129.43",
+ "PY": "559350.19,559227.03",
+ "In": "KAB-L-L083001-37"
+ },
+ {
+ "IdS": 223335,
+ "PX": "344750,344544.23",
+ "PY": "559350,559349.45",
+ "In": "KAB-L-L083001-36"
+ },
+ {
+ "IdS": 223336,
+ "PX": "344544.23,344129.9",
+ "PY": "559349.45,559350.19",
+ "In": "KAB-L-L083001-38"
+ },
+ {
+ "IdS": 223337,
+ "PX": "344544.23,344545.11",
+ "PY": "559349.45,559275",
+ "In": "KAB-L-L083001-39"
+ },
+ {
+ "IdS": 223338,
+ "PX": "344750,344750.12",
+ "PY": "559350,559279.92",
+ "In": "KAB-L-L083001-40"
+ },
+ {
+ "IdS": 223353,
+ "PX": "354700,354685.01,354649.97",
+ "PY": "581100,581040.06,581014.9",
+ "In": "KAB-C-006044-1"
+ },
+ {
+ "IdS": 223354,
+ "PX": "354649.97,354650.04,354620.03",
+ "PY": "581014.9,580974.96,580944.95",
+ "In": "KAB-C-006047-1"
+ },
+ {
+ "IdS": 223355,
+ "PX": "354700,354650,354649.97",
+ "PY": "581100,581055.01,581014.9",
+ "In": "KAB-C-006038-1"
+ },
+ {
+ "IdS": 223356,
+ "PX": "354649.97,354620.03,354620.03",
+ "PY": "581014.9,580984.99,580944.95",
+ "In": "KAB-C-006048-1"
+ },
+ {
+ "IdS": 223385,
+ "PX": "360700,360455",
+ "PY": "548700,548399.87",
+ "In": "KAB-C-026032-1"
+ },
+ {
+ "IdS": 223386,
+ "PX": "360455,360250",
+ "PY": "548399.87,548150",
+ "In": "KAB-C-026024-98"
+ },
+ {
+ "IdS": 223410,
+ "PX": "373550,374239.44",
+ "PY": "546000,545669.51",
+ "In": "KAB-L-L452001-12"
+ },
+ {
+ "IdS": 223411,
+ "PX": "374239.44,374500",
+ "PY": "545669.51,545550",
+ "In": "KAB-L-L452001-10"
+ },
+ {
+ "IdS": 223412,
+ "PX": "374239.44,374189.92",
+ "PY": "545669.51,545600.04",
+ "In": "KAB-L-L452001-17"
+ },
+ {
+ "IdS": 223445,
+ "PX": "355263.66,355499.96",
+ "PY": "562665.22,562880.64",
+ "In": "KAB-L-L057001-2"
+ },
+ {
+ "IdS": 223446,
+ "PX": "355499.96,356080",
+ "PY": "562880.64,563410",
+ "In": "KAB-L-L057001-8"
+ },
+ {
+ "IdS": 223447,
+ "PX": "355499.96,355520.24",
+ "PY": "562880.64,562859.74",
+ "In": "KAB-L-L057001-7"
+ },
+ {
+ "IdS": 223448,
+ "PX": "355520.24,355520,355760",
+ "PY": "562859.74,562795,562795",
+ "In": "KAB-L-L057002-9"
+ },
+ {
+ "IdS": 223449,
+ "PX": "355760,355759.96",
+ "PY": "562795,562850.15",
+ "In": "KAB-L-L057002-10"
+ },
+ {
+ "IdS": 223450,
+ "PX": "355760,355829.74,356069.71",
+ "PY": "562795,562795.22,562849.96",
+ "In": "KAB-L-L057002-11"
+ },
+ {
+ "IdS": 223456,
+ "PX": "331350,331160",
+ "PY": "569550,569550",
+ "In": "KAB-C-004012-2"
+ },
+ {
+ "IdS": 223457,
+ "PX": "331160,330983.36",
+ "PY": "569550,569550.06",
+ "In": "KAB-C-004002-1"
+ },
+ {
+ "IdS": 223462,
+ "PX": "339799.92,339569.82",
+ "PY": "569654.97,569034.98",
+ "In": "KAB-C-028003-4"
+ },
+ {
+ "IdS": 223468,
+ "PX": "338000,338150,338150",
+ "PY": "570900,570830,570745",
+ "In": "KAB-C-009041-1"
+ },
+ {
+ "IdS": 223469,
+ "PX": "338150,338099.98,338100,338000",
+ "PY": "571450,571347.62,570900,570900",
+ "In": "KAB-C-016024-1"
+ },
+ {
+ "IdS": 223470,
+ "PX": "338150,338150",
+ "PY": "571450,570845",
+ "In": "KAB-AB-009003-99"
+ },
+ {
+ "IdS": 223474,
+ "PX": "374500,374625.12",
+ "PY": "545550,545490.37",
+ "In": "KAB-L-L452001-5"
+ },
+ {
+ "IdS": 223475,
+ "PX": "374625.12,375650",
+ "PY": "545490.37,545000",
+ "In": "KAB-L-L452001-18"
+ },
+ {
+ "IdS": 223476,
+ "PX": "374625.12,374520",
+ "PY": "545490.37,545320",
+ "In": "KAB-L-L452001-19"
+ },
+ {
+ "IdS": 223485,
+ "PX": "372055,372250,372300,372595,372730",
+ "PY": "546380,546290,546390,546195,546125.15",
+ "In": "KAB-L-GL-SWAD-KAZD-1"
+ },
+ {
+ "IdS": 223486,
+ "PX": "372730,372805",
+ "PY": "546125.15,546085",
+ "In": "KAB-L-GL-SWAD-KAZD-2"
+ },
+ {
+ "IdS": 223487,
+ "PX": "349876.77,349619.57",
+ "PY": "560191.63,560034.95",
+ "In": "KAB-L-L083004-8"
+ },
+ {
+ "IdS": 223488,
+ "PX": "349619.57,349360",
+ "PY": "560034.95,559875",
+ "In": "KAB-L-L083004-6"
+ },
+ {
+ "IdS": 223489,
+ "PX": "349619.57,349569.98",
+ "PY": "560034.95,560094.97",
+ "In": "KAB-L-L083004-7"
+ },
+ {
+ "IdS": 223493,
+ "PX": "373600.04,373600",
+ "PY": "552199.68,552105",
+ "In": "KAB-C-FGN003168-1"
+ },
+ {
+ "IdS": 223494,
+ "PX": "373600,373599.8",
+ "PY": "552105,551999.91",
+ "In": "KAB-C-FGN003168-2"
+ },
+ {
+ "IdS": 223495,
+ "PX": "373600,373775",
+ "PY": "552105,552105",
+ "In": "KAB-C-FGN003168-3"
+ },
+ {
+ "IdS": 223496,
+ "PX": "337650,337425",
+ "PY": "544515,544180",
+ "In": "KAB-C-051055-1"
+ },
+ {
+ "IdS": 223497,
+ "PX": "355500,356155.03",
+ "PY": "580500,580504.88",
+ "In": "KAB-C-F024009-1"
+ },
+ {
+ "IdS": 223498,
+ "PX": "356155.03,356299.44",
+ "PY": "580504.88,580504.54",
+ "In": "KAB-C-F024010-1"
+ },
+ {
+ "IdS": 223499,
+ "PX": "356299.44,356260.03,356299.97",
+ "PY": "580504.54,580580.31,580665.09",
+ "In": "KAB-C-466001-1"
+ },
+ {
+ "IdS": 223500,
+ "PX": "356299.97,355850",
+ "PY": "580665.09,580850",
+ "In": "KAB-C-466003-1"
+ },
+ {
+ "IdS": 223501,
+ "PX": "356299.44,356469.97",
+ "PY": "580504.54,580505.26",
+ "In": "KAB-C-096001-1"
+ },
+ {
+ "IdS": 223502,
+ "PX": "356469.97,356650",
+ "PY": "580505.26,580200",
+ "In": "KAB-C-096002-1"
+ },
+ {
+ "IdS": 223503,
+ "PX": "356389.67,356390.07,356389.64,356299.97",
+ "PY": "580200.06,580425.39,580629.77,580665.09",
+ "In": "KAB-C-006037-4"
+ },
+ {
+ "IdS": 223504,
+ "PX": "356299.97,356339.46,356299.44",
+ "PY": "580665.09,580580.55,580504.54",
+ "In": "KAB-C-006049-1"
+ },
+ {
+ "IdS": 223509,
+ "PX": "341699.82,341700",
+ "PY": "527749.94,527300",
+ "In": "KAB-C-050008-1"
+ },
+ {
+ "IdS": 223510,
+ "PX": "345444.84,345099.6",
+ "PY": "576996.2,577675.34",
+ "In": "KAB-C-006013-1"
+ },
+ {
+ "IdS": 223511,
+ "PX": "345099.6,345037.18",
+ "PY": "577675.34,577798.58",
+ "In": "KAB-C-006050-1"
+ },
+ {
+ "IdS": 223518,
+ "PX": "355100,355411.86",
+ "PY": "563900,564399.04",
+ "In": "KAB-C-042032-1"
+ },
+ {
+ "IdS": 223519,
+ "PX": "355411.86,355600",
+ "PY": "564399.04,564700",
+ "In": "KAB-C-042073-1"
+ },
+ {
+ "IdS": 223520,
+ "PX": "340150,340150",
+ "PY": "572050,571750",
+ "In": "KAB-C-021011-1"
+ },
+ {
+ "IdS": 223531,
+ "PX": "342020.04,342010,342039.88,342019.85",
+ "PY": "540145.09,540135.09,540105.15,540084.87",
+ "In": "KAB-C-050041-1"
+ },
+ {
+ "IdS": 223532,
+ "PX": "342019.85,341693.2",
+ "PY": "540084.87,539743.01",
+ "In": "KAB-C-050092-1"
+ },
+ {
+ "IdS": 223533,
+ "PX": "343035,342078.68",
+ "PY": "541105,540144",
+ "In": "KAB-C-050039-1"
+ },
+ {
+ "IdS": 223534,
+ "PX": "342078.68,342059.83,342029.95,342020.04",
+ "PY": "540144,540124.95,540154.85,540145.09",
+ "In": "KAB-C-050093-1"
+ },
+ {
+ "IdS": 223537,
+ "PX": "344129.9,343650,342964.47",
+ "PY": "559350.19,559350,559180.87",
+ "In": "KAB-L-L083001-6"
+ },
+ {
+ "IdS": 223538,
+ "PX": "342964.47,342750,342750",
+ "PY": "559180.87,559130,558750",
+ "In": "KAB-L-L083001-43"
+ },
+ {
+ "IdS": 223539,
+ "PX": "342964.47,342990.6",
+ "PY": "559180.87,559084.54",
+ "In": "KAB-L-L083001-7"
+ },
+ {
+ "IdS": 223540,
+ "PX": "336515,336515.12",
+ "PY": "579555,579479.6",
+ "In": "KAB-C-063026-1"
+ },
+ {
+ "IdS": 223541,
+ "PX": "336515.12,336515",
+ "PY": "579479.6,579410",
+ "In": "KAB-C-063009-1"
+ },
+ {
+ "IdS": 223556,
+ "PX": "343755,344169.73",
+ "PY": "574995,575211.76",
+ "In": "KAB-C-016018-2"
+ },
+ {
+ "IdS": 223557,
+ "PX": "344169.73,344990",
+ "PY": "575211.76,575640",
+ "In": "KAB-C-016037-1"
+ },
+ {
+ "IdS": 223570,
+ "PX": "363800,363800,364150",
+ "PY": "543700,542500,542500",
+ "In": "KAB-C-054005-1"
+ },
+ {
+ "IdS": 223571,
+ "PX": "339500,339690.42",
+ "PY": "594850,594710.68",
+ "In": "KAB-L-L062001-1"
+ },
+ {
+ "IdS": 223572,
+ "PX": "339690.42,340450",
+ "PY": "594710.68,594150",
+ "In": "KAB-L-L062001-3"
+ },
+ {
+ "IdS": 223574,
+ "PX": "339690.42,339625",
+ "PY": "594710.68,594630",
+ "In": "KAB-L-L062001-2"
+ },
+ {
+ "IdS": 223599,
+ "PX": "379350,379295.12",
+ "PY": "545200,545159.81",
+ "In": "KAB-AB-FGN006570-2"
+ },
+ {
+ "IdS": 223607,
+ "PX": "385090,385200,385100",
+ "PY": "539290,539235,539050",
+ "In": "KAB-L-L052002-1"
+ },
+ {
+ "IdS": 223616,
+ "PX": "373000,373101.43",
+ "PY": "537950,537750.09",
+ "In": "KAB-C-053012-8"
+ },
+ {
+ "IdS": 223617,
+ "PX": "373101.43,373150",
+ "PY": "537750.09,537650",
+ "In": "KAB-C-053012-10"
+ },
+ {
+ "IdS": 223618,
+ "PX": "373101.43,373215",
+ "PY": "537750.09,537805",
+ "In": "KAB-C-053012-7"
+ },
+ {
+ "IdS": 223619,
+ "PX": "352755.01,352785.03",
+ "PY": "560599.77,560629.93",
+ "In": "KAB-C-057001-1"
+ },
+ {
+ "IdS": 223620,
+ "PX": "352795.09,353627.53",
+ "PY": "560638.3,561323.95",
+ "In": "KAB-AB-057011-1"
+ },
+ {
+ "IdS": 223649,
+ "PX": "356050,356845,356970",
+ "PY": "563450,564075,563985",
+ "In": "KAB-C-057005-2"
+ },
+ {
+ "IdS": 223650,
+ "PX": "356970,356975,356860,357200",
+ "PY": "563985,564005,564085,564350",
+ "In": "KAB-C-057013-1"
+ },
+ {
+ "IdS": 223651,
+ "PX": "356970,357060",
+ "PY": "563985,563875",
+ "In": "KAB-C-042074-1"
+ },
+ {
+ "IdS": 223652,
+ "PX": "345775,345790,346189.9",
+ "PY": "553950,553965,553998.21",
+ "In": "KAB-C-041007-2"
+ },
+ {
+ "IdS": 223654,
+ "PX": "346189.9,346439.75",
+ "PY": "553998.21,554020.14",
+ "In": "KAB-C-041013-2"
+ },
+ {
+ "IdS": 223655,
+ "PX": "346439.75,346750",
+ "PY": "554020.14,554045",
+ "In": "KAB-C-041014-1"
+ },
+ {
+ "IdS": 223665,
+ "PX": "351649.96,351800",
+ "PY": "556430.09,556500",
+ "In": "KAB-C-042075-1"
+ },
+ {
+ "IdS": 223678,
+ "PX": "339850,339900",
+ "PY": "574280,574300",
+ "In": "KAB-L-L058001-15"
+ },
+ {
+ "IdS": 223679,
+ "PX": "340025.23,340180,340135,339805.44",
+ "PY": "572779.72,572960,573020,574269.15",
+ "In": "KAB-L-LOGE/GL5021-14"
+ },
+ {
+ "IdS": 223680,
+ "PX": "339805.44,339850",
+ "PY": "574269.15,574280",
+ "In": "KAB-L-LOGE/GL5021-21"
+ },
+ {
+ "IdS": 223681,
+ "PX": "339000,338860.11",
+ "PY": "571650,571474.56",
+ "In": "KAB-C-064005-12"
+ },
+ {
+ "IdS": 223682,
+ "PX": "338860.11,338790",
+ "PY": "571474.56,571395",
+ "In": "KAB-C-064001-1"
+ },
+ {
+ "IdS": 223683,
+ "PX": "337274.94,337300",
+ "PY": "571400.04,571400",
+ "In": "KAB-AB-001019-1"
+ },
+ {
+ "IdS": 223684,
+ "PX": "337300,337299.93",
+ "PY": "571400,571390.1",
+ "In": "KAB-AB-001019-5"
+ },
+ {
+ "IdS": 223685,
+ "PX": "336300,336194.81",
+ "PY": "572050,572049.94",
+ "In": "KAB-C-001021-1"
+ },
+ {
+ "IdS": 223686,
+ "PX": "336194.81,336150",
+ "PY": "572049.94,572050",
+ "In": "KAB-C-001021-2"
+ },
+ {
+ "IdS": 223697,
+ "PX": "341635,341700",
+ "PY": "527150,527000",
+ "In": "KAB-C-F050002-1"
+ },
+ {
+ "IdS": 223729,
+ "PX": "344580,344580",
+ "PY": "555395,555290",
+ "In": "KAB-C-008003-1"
+ },
+ {
+ "IdS": 223730,
+ "PX": "344050,344550,344580",
+ "PY": "555800,555380,555290",
+ "In": "KAB-C-022043-2"
+ },
+ {
+ "IdS": 223731,
+ "PX": "344450.61,344750,344600,344600,344580",
+ "PY": "555829.08,555615,555395,555335,555290",
+ "In": "KAB-AB-008013-7"
+ },
+ {
+ "IdS": 223732,
+ "PX": "333800,333800,333620.2",
+ "PY": "570800,570500,570499.56",
+ "In": "KAB-C-004001-1"
+ },
+ {
+ "IdS": 223733,
+ "PX": "333620.2,333500",
+ "PY": "570499.56,570500",
+ "In": "KAB-C-004001-2"
+ },
+ {
+ "IdS": 223740,
+ "PX": "338030,338040",
+ "PY": "570200,570200",
+ "In": "KAB-L-LOGE/GL0053-3"
+ },
+ {
+ "IdS": 223741,
+ "PX": "338040,338150",
+ "PY": "570200,570200",
+ "In": "KAB-L-L064022-1"
+ },
+ {
+ "IdS": 223744,
+ "PX": "341435,341435",
+ "PY": "559180,559025",
+ "In": "KAB-C-022048-1"
+ },
+ {
+ "IdS": 223747,
+ "PX": "340455,340315",
+ "PY": "538725,538725",
+ "In": "KAB-L-LOGE/GL0020-1"
+ },
+ {
+ "IdS": 223748,
+ "PX": "340455,346255",
+ "PY": "538725,538725",
+ "In": "KAB-L-LOGE/GL0024-1"
+ },
+ {
+ "IdS": 223749,
+ "PX": "346255,354300",
+ "PY": "538725,538725",
+ "In": "KAB-L-LOGE/GL0031-1"
+ },
+ {
+ "IdS": 223750,
+ "PX": "354300,354300",
+ "PY": "538725,539100",
+ "In": "KAB-L-LOGE/GL0031-2"
+ },
+ {
+ "IdS": 223751,
+ "PX": "354300,360550",
+ "PY": "538725,538725",
+ "In": "KAB-L-LOGE/GL0031-3"
+ },
+ {
+ "IdS": 223753,
+ "PX": "342042.38,340455",
+ "PY": "540122.45,538725",
+ "In": "KAB-L-LOGE/GL0019-2"
+ },
+ {
+ "IdS": 223754,
+ "PX": "340455,340805.01",
+ "PY": "538725,534799.99",
+ "In": "KAB-L-LOGE/GL0097-1"
+ },
+ {
+ "IdS": 223773,
+ "PX": "346100,346019.62",
+ "PY": "549450,549349.07",
+ "In": "KAB-L-L010003-1"
+ },
+ {
+ "IdS": 223777,
+ "PX": "333750,334200",
+ "PY": "566350,566350",
+ "In": "KAB-C-200010-1"
+ },
+ {
+ "IdS": 223778,
+ "PX": "333150,333104.72",
+ "PY": "547700,547579.54",
+ "In": "KAB-L-L078001-47"
+ },
+ {
+ "IdS": 223783,
+ "PX": "346100,346200",
+ "PY": "549450,549350",
+ "In": "KAB-AB-010019-1"
+ },
+ {
+ "IdS": 223788,
+ "PX": "347580,347679.67",
+ "PY": "564820,564735.9",
+ "In": "KAB-C-056021-7"
+ },
+ {
+ "IdS": 223789,
+ "PX": "347679.67,348113.46",
+ "PY": "564735.9,564387.16",
+ "In": "KAB-C-056021-8"
+ },
+ {
+ "IdS": 223790,
+ "PX": "346981.61,347490.44",
+ "PY": "565355.16,564900.55",
+ "In": "KAB-C-056020-8"
+ },
+ {
+ "IdS": 223792,
+ "PX": "347490.44,347525,347580",
+ "PY": "564900.55,564940,564820",
+ "In": "KAB-C-056020-10"
+ },
+ {
+ "IdS": 223793,
+ "PX": "347580,347720,347679.67",
+ "PY": "564820,564775,564735.9",
+ "In": "KAB-C-056021-9"
+ },
+ {
+ "IdS": 223794,
+ "PX": "347490.44,347580",
+ "PY": "564900.55,564820",
+ "In": "KAB-C-056020-9"
+ },
+ {
+ "IdS": 223795,
+ "PX": "338480,338405",
+ "PY": "591030,590709.99",
+ "In": "KAB-C-063004-6"
+ },
+ {
+ "IdS": 223807,
+ "PX": "349800,349600,349500.32,349450",
+ "PY": "551400,551350,551350.03,551550",
+ "In": "KAB-C-051025-4"
+ },
+ {
+ "IdS": 223808,
+ "PX": "349450,349400,349300",
+ "PY": "551550,551350,551350",
+ "In": "KAB-C-051026-4"
+ },
+ {
+ "IdS": 223809,
+ "PX": "351600,351480,351449.09",
+ "PY": "552100,552896.73,553094.33",
+ "In": "KAB-C-FGN001074-1"
+ },
+ {
+ "IdS": 223814,
+ "PX": "336300,336280.16",
+ "PY": "570920,570919.95",
+ "In": "KAB-L-LOGE/GLBOTT-3"
+ },
+ {
+ "IdS": 223819,
+ "PX": "336200,336300.02",
+ "PY": "570300,570249.96",
+ "In": "KAB-L-L001095-1"
+ },
+ {
+ "IdS": 223834,
+ "PX": "335645,335655,336005,336005,336110,336220,336725,336725,338230",
+ "PY": "570920,570930,570930,571035,571035,571240,571240,571340,571340",
+ "In": "KAB-L-LOGE/GLCAST-2"
+ },
+ {
+ "IdS": 223835,
+ "PX": "338230,338250",
+ "PY": "571340,571380",
+ "In": "KAB-L-LOGE/GLCAST-4"
+ },
+ {
+ "IdS": 223871,
+ "PX": "336950,336950",
+ "PY": "571000,570800",
+ "In": "KAB-C-001038-10"
+ },
+ {
+ "IdS": 223872,
+ "PX": "336950,336949.96",
+ "PY": "570800,570700.07",
+ "In": "KAB-C-001038-1"
+ },
+ {
+ "IdS": 223874,
+ "PX": "336949.96,336950",
+ "PY": "570700.07,570450",
+ "In": "KAB-C-001038-3"
+ },
+ {
+ "IdS": 223875,
+ "PX": "336950,336950",
+ "PY": "570450,570200",
+ "In": "KAB-C-001039-1"
+ },
+ {
+ "IdS": 223884,
+ "PX": "337149.77,337150.21,337015",
+ "PY": "563499.68,563114.88,563115",
+ "In": "KAB-C-022034-1"
+ },
+ {
+ "IdS": 223893,
+ "PX": "336700,336549.9",
+ "PY": "570100,570099.85",
+ "In": "KAB-AB-001013-4"
+ },
+ {
+ "IdS": 223896,
+ "PX": "335400,336100",
+ "PY": "565900,565900",
+ "In": "KAB-C-200022-74"
+ },
+ {
+ "IdS": 223901,
+ "PX": "337898.73,337470.12",
+ "PY": "547700.24,547700.27",
+ "In": "KAB-L-L078001-49"
+ },
+ {
+ "IdS": 223902,
+ "PX": "337470.12,337050",
+ "PY": "547700.27,547700",
+ "In": "KAB-L-L078001-48"
+ },
+ {
+ "IdS": 223903,
+ "PX": "337470.12,337470.05",
+ "PY": "547700.27,547580.07",
+ "In": "KAB-L-L078001-34"
+ },
+ {
+ "IdS": 223904,
+ "PX": "337050,337119.79",
+ "PY": "547700,547594.58",
+ "In": "KAB-L-L078001-50"
+ },
+ {
+ "IdS": 223909,
+ "PX": "344709.82,344580",
+ "PY": "555314.49,555290",
+ "In": "KAB-L-L008002-1"
+ },
+ {
+ "IdS": 223913,
+ "PX": "337015,337356.18",
+ "PY": "563115,562710.11",
+ "In": "KAB-C-022050-1"
+ },
+ {
+ "IdS": 223919,
+ "PX": "340230.91,340474.97",
+ "PY": "558949.98,558949.99",
+ "In": "KAB-C-003026-1"
+ },
+ {
+ "IdS": 223920,
+ "PX": "340474.97,340650",
+ "PY": "558949.99,558950",
+ "In": "KAB-C-003026-2"
+ },
+ {
+ "IdS": 223921,
+ "PX": "334800,334399.86",
+ "PY": "570200,570199.94",
+ "In": "KAB-C-001018-1"
+ },
+ {
+ "IdS": 223922,
+ "PX": "334399.86,334340",
+ "PY": "570199.94,570199.97",
+ "In": "KAB-C-001018-3"
+ },
+ {
+ "IdS": 223923,
+ "PX": "339100,339303.56",
+ "PY": "571350,571309.19",
+ "In": "KAB-AB-007008-1"
+ },
+ {
+ "IdS": 223924,
+ "PX": "339303.56,339350",
+ "PY": "571309.19,571300",
+ "In": "KAB-AB-007008-2"
+ },
+ {
+ "IdS": 223925,
+ "PX": "334450,334649.51",
+ "PY": "566350,566350.11",
+ "In": "KAB-C-200031-1"
+ },
+ {
+ "IdS": 223926,
+ "PX": "334649.51,334650",
+ "PY": "566350.11,566300",
+ "In": "KAB-C-200031-2"
+ },
+ {
+ "IdS": 223927,
+ "PX": "334185.07,334099.89,334060.04",
+ "PY": "570300.05,570099.82,570099.95",
+ "In": "KAB-C-202055-1"
+ },
+ {
+ "IdS": 223928,
+ "PX": "334060.04,334059.95,334019.95",
+ "PY": "570099.95,570179.96,570180.18",
+ "In": "KAB-C-202055-2"
+ },
+ {
+ "IdS": 223929,
+ "PX": "334019.95,333980.03,333979.89",
+ "PY": "570180.18,570180.08,570100.13",
+ "In": "KAB-C-202056-1"
+ },
+ {
+ "IdS": 223930,
+ "PX": "333979.89,333900",
+ "PY": "570100.13,570100",
+ "In": "KAB-C-202056-2"
+ },
+ {
+ "IdS": 223931,
+ "PX": "338550,338900.56",
+ "PY": "571750,571749.73",
+ "In": "KAB-C-016008-1"
+ },
+ {
+ "IdS": 223932,
+ "PX": "338900.56,339000",
+ "PY": "571749.73,571650",
+ "In": "KAB-C-016008-2"
+ },
+ {
+ "IdS": 223933,
+ "PX": "339000,339209.97",
+ "PY": "571650,571814.99",
+ "In": "KAB-C-016013-1"
+ },
+ {
+ "IdS": 223934,
+ "PX": "339209.97,339160,339159.91",
+ "PY": "571814.99,571815,571829.93",
+ "In": "KAB-C-016013-2"
+ },
+ {
+ "IdS": 223935,
+ "PX": "336345,336509.52",
+ "PY": "580270,580049.87",
+ "In": "KAB-C-063024-1"
+ },
+ {
+ "IdS": 223936,
+ "PX": "336509.52,337200",
+ "PY": "580049.87,580050",
+ "In": "KAB-C-063024-2"
+ },
+ {
+ "IdS": 223937,
+ "PX": "337200,337170,336514.86",
+ "PY": "580050,579990,579989.82",
+ "In": "KAB-C-063025-1"
+ },
+ {
+ "IdS": 223939,
+ "PX": "372110,372075.16",
+ "PY": "546445,546434.91",
+ "In": "KAB-L-L026002-1"
+ },
+ {
+ "IdS": 223940,
+ "PX": "372075.16,372199.91",
+ "PY": "546434.91,546369.54",
+ "In": "KAB-L-L026007-1"
+ },
+ {
+ "IdS": 223941,
+ "PX": "372199.91,372265,372300",
+ "PY": "546369.54,546335,546400",
+ "In": "KAB-L-L026007-2"
+ },
+ {
+ "IdS": 223942,
+ "PX": "372075.16,370624.19",
+ "PY": "546434.91,545124.47",
+ "In": "KAB-L-L026401-2"
+ },
+ {
+ "IdS": 223943,
+ "PX": "370624.19,371008.96",
+ "PY": "545124.47,545125.1",
+ "In": "KAB-L-L026401-3"
+ },
+ {
+ "IdS": 223945,
+ "PX": "370070.72,370394.61",
+ "PY": "544630.14,544630.54",
+ "In": "KAB-L-L026401-5"
+ },
+ {
+ "IdS": 223946,
+ "PX": "370070.72,369824.25",
+ "PY": "544630.14,544187.22",
+ "In": "KAB-L-L026401-6"
+ },
+ {
+ "IdS": 223947,
+ "PX": "369824.25,370795.04",
+ "PY": "544187.22,544099.98",
+ "In": "KAB-L-L026401-7"
+ },
+ {
+ "IdS": 223948,
+ "PX": "369824.25,369734.04",
+ "PY": "544187.22,543919.77",
+ "In": "KAB-L-L026401-8"
+ },
+ {
+ "IdS": 223949,
+ "PX": "369734.04,370054.83",
+ "PY": "543919.77,543919.83",
+ "In": "KAB-L-L026401-9"
+ },
+ {
+ "IdS": 223950,
+ "PX": "369734.04,369734.93",
+ "PY": "543919.77,543514.28",
+ "In": "KAB-L-L026401-10"
+ },
+ {
+ "IdS": 223951,
+ "PX": "369734.93,370450",
+ "PY": "543514.28,543350",
+ "In": "KAB-L-L026401-11"
+ },
+ {
+ "IdS": 223953,
+ "PX": "369569.82,369570.43",
+ "PY": "541854.93,541350.04",
+ "In": "KAB-L-L026404-1"
+ },
+ {
+ "IdS": 223954,
+ "PX": "369570.43,369370.19",
+ "PY": "541350.04,541349.09",
+ "In": "KAB-L-L026087-4"
+ },
+ {
+ "IdS": 223955,
+ "PX": "369370.19,368195",
+ "PY": "541349.09,541350",
+ "In": "KAB-L-L026087-1"
+ },
+ {
+ "IdS": 223956,
+ "PX": "369570.43,369650",
+ "PY": "541350.04,541350",
+ "In": "KAB-L-L026402-1"
+ },
+ {
+ "IdS": 223960,
+ "PX": "349300,349300.8",
+ "PY": "552300,552581.25",
+ "In": "KAB-C-026003-2"
+ },
+ {
+ "IdS": 223961,
+ "PX": "349300.8,349300",
+ "PY": "552581.25,553050",
+ "In": "KAB-C-026094-1"
+ },
+ {
+ "IdS": 223965,
+ "PX": "346755,346780",
+ "PY": "551430,551150",
+ "In": "KAB-L-L451003-2"
+ },
+ {
+ "IdS": 223969,
+ "PX": "346840,346780",
+ "PY": "551445,551150",
+ "In": "KAB-L-L451007-1"
+ },
+ {
+ "IdS": 224016,
+ "PX": "347440,347469.94",
+ "PY": "556205,556204.91",
+ "In": "KAB-L-LOGE/GL0013-10"
+ },
+ {
+ "IdS": 224017,
+ "PX": "347469.94,347530",
+ "PY": "556204.91,556205",
+ "In": "KAB-L-L011001-2"
+ },
+ {
+ "IdS": 224018,
+ "PX": "346045,347260,347260,347540,347540,347145,347110,347024.91",
+ "PY": "553980,553980,554500,554640,555570,555570,555580,555579.96",
+ "In": "KAB-L-GL-KSR 128-10"
+ },
+ {
+ "IdS": 224019,
+ "PX": "347024.91,346905,346510,346510,346120,345300",
+ "PY": "555579.96,555580,555195,554900,554460,555110",
+ "In": "KAB-L-GL-KSR 23-11"
+ },
+ {
+ "IdS": 224020,
+ "PX": "347024.91,347065",
+ "PY": "555579.96,555590",
+ "In": "KAB-L-LOGE/GL5700-3"
+ },
+ {
+ "IdS": 224023,
+ "PX": "348849.95,348829.81",
+ "PY": "581494.96,581474.63",
+ "In": "KAB-C-066012-11"
+ },
+ {
+ "IdS": 224024,
+ "PX": "349725,349273.48",
+ "PY": "580850,581182.84",
+ "In": "KAB-C-066006-4"
+ },
+ {
+ "IdS": 224025,
+ "PX": "349273.48,348849.95",
+ "PY": "581182.84,581494.96",
+ "In": "KAB-C-066012-1"
+ },
+ {
+ "IdS": 224031,
+ "PX": "330749.51,331200",
+ "PY": "563999.48,564000",
+ "In": "KAB-L-L079001-40"
+ },
+ {
+ "IdS": 224032,
+ "PX": "330749.51,330749.49",
+ "PY": "563999.48,563850.2",
+ "In": "KAB-L-L079001-41"
+ },
+ {
+ "IdS": 224044,
+ "PX": "344402.34,344680.41",
+ "PY": "555879.95,555384.78",
+ "In": "KAB-L-GL-KSR 23-2"
+ },
+ {
+ "IdS": 224045,
+ "PX": "344402.34,344430.19",
+ "PY": "555879.95,555894.92",
+ "In": "KAB-L-GL-KSR 23-3"
+ },
+ {
+ "IdS": 224046,
+ "PX": "344430.19,344623.9",
+ "PY": "555894.92,555928.92",
+ "In": "KAB-L-L008007-1"
+ },
+ {
+ "IdS": 224047,
+ "PX": "338030.15,338180.63",
+ "PY": "568824.05,568430.33",
+ "In": "KAB-L-LOGE/GL0051-7"
+ },
+ {
+ "IdS": 224048,
+ "PX": "338180.63,338590,338785",
+ "PY": "568430.33,567375,567375",
+ "In": "KAB-L-LOGE/GL0051-8"
+ },
+ {
+ "IdS": 224049,
+ "PX": "338180.63,338352.9",
+ "PY": "568430.33,568489.99",
+ "In": "KAB-L-LOGE/GL0051-1"
+ },
+ {
+ "IdS": 224050,
+ "PX": "338352.9,338855",
+ "PY": "568489.99,568700",
+ "In": "KAB-L-L009008-1"
+ },
+ {
+ "IdS": 224051,
+ "PX": "356700,356770.02",
+ "PY": "552500,552499.98",
+ "In": "KAB-C-026013-1"
+ },
+ {
+ "IdS": 224052,
+ "PX": "356770.02,357619.9",
+ "PY": "552499.98,552210.95",
+ "In": "KAB-C-026095-1"
+ },
+ {
+ "IdS": 224053,
+ "PX": "356200,356595,356625",
+ "PY": "552550,552550,552500",
+ "In": "KAB-C-026011-13"
+ },
+ {
+ "IdS": 224054,
+ "PX": "356625,356635,356690,356700",
+ "PY": "552500,552510,552510,552500",
+ "In": "KAB-C-026096-1"
+ },
+ {
+ "IdS": 224055,
+ "PX": "356700,356690,356635,356625",
+ "PY": "552500,552490,552490,552500",
+ "In": "KAB-C-051017-1"
+ },
+ {
+ "IdS": 224056,
+ "PX": "356625,356595,355450",
+ "PY": "552500,552450,552300",
+ "In": "KAB-C-051056-1"
+ },
+ {
+ "IdS": 224057,
+ "PX": "358250,356770,356740",
+ "PY": "551750,552430,552430",
+ "In": "KAB-C-051016-1"
+ },
+ {
+ "IdS": 224058,
+ "PX": "356740,356745,356720,356700",
+ "PY": "552430,552445,552490,552500",
+ "In": "KAB-C-051057-1"
+ },
+ {
+ "IdS": 224059,
+ "PX": "356700,356740",
+ "PY": "552500,552430",
+ "In": "KAB-C-026076-1"
+ },
+ {
+ "IdS": 224060,
+ "PX": "356740,356750,356750,356740",
+ "PY": "552430,552420,552390,552380",
+ "In": "KAB-C-026097-1"
+ },
+ {
+ "IdS": 224061,
+ "PX": "356700,356700,356725,356740",
+ "PY": "552500,552475,552430,552430",
+ "In": "KAB-C-026077-1"
+ },
+ {
+ "IdS": 224062,
+ "PX": "356740,356730,356730,356740",
+ "PY": "552430,552420,552390,552380",
+ "In": "KAB-C-026098-1"
+ },
+ {
+ "IdS": 224063,
+ "PX": "356700,356679.82",
+ "PY": "552500,552568.16",
+ "In": "KAB-C-055001-1"
+ },
+ {
+ "IdS": 224064,
+ "PX": "356679.82,356400",
+ "PY": "552568.16,553500",
+ "In": "KAB-C-055010-1"
+ },
+ {
+ "IdS": 224065,
+ "PX": "372700,372699.92",
+ "PY": "550400,550499.92",
+ "In": "KAB-L-L026008-1"
+ },
+ {
+ "IdS": 224066,
+ "PX": "372699.92,372835.06",
+ "PY": "550499.92,550499.83",
+ "In": "KAB-L-L026009-1"
+ },
+ {
+ "IdS": 224084,
+ "PX": "333300,333000",
+ "PY": "568650,568650",
+ "In": "KAB-C-004005-1"
+ },
+ {
+ "IdS": 224085,
+ "PX": "333000,332999.48",
+ "PY": "568650,568050.64",
+ "In": "KAB-C-004025-1"
+ },
+ {
+ "IdS": 224087,
+ "PX": "333055.29,333148.93",
+ "PY": "568714.82,568828.84",
+ "In": "KAB-AB-200006-2"
+ },
+ {
+ "IdS": 224089,
+ "PX": "353400,353559.49",
+ "PY": "557250,557329.56",
+ "In": "KAB-C-042085-1"
+ },
+ {
+ "IdS": 224090,
+ "PX": "353559.49,353600",
+ "PY": "557329.56,557350",
+ "In": "KAB-C-042015-1"
+ },
+ {
+ "IdS": 224091,
+ "PX": "353700,353785.36",
+ "PY": "557400,557442.45",
+ "In": "KAB-C-042015-4"
+ },
+ {
+ "IdS": 224092,
+ "PX": "353785.36,353900",
+ "PY": "557442.45,557500",
+ "In": "KAB-C-042086-1"
+ },
+ {
+ "IdS": 224101,
+ "PX": "335285,333960.36,333959.93,333749.54",
+ "PY": "566830,566828.12,566230.35,566229.09",
+ "In": "KAB-L-LOGE/GL0025-1"
+ },
+ {
+ "IdS": 224112,
+ "PX": "354600,354633.15",
+ "PY": "559850,559932.09",
+ "In": "KAB-C-042018-9"
+ },
+ {
+ "IdS": 224114,
+ "PX": "354900,354950.66",
+ "PY": "560550,560674.57",
+ "In": "KAB-C-042019-2"
+ },
+ {
+ "IdS": 224115,
+ "PX": "354950.66,355000",
+ "PY": "560674.57,560800",
+ "In": "KAB-C-042024-1"
+ },
+ {
+ "IdS": 224123,
+ "PX": "354200,354242.26",
+ "PY": "558900,558985.04",
+ "In": "KAB-C-042017-2"
+ },
+ {
+ "IdS": 224124,
+ "PX": "354242.26,354350",
+ "PY": "558985.04,559200",
+ "In": "KAB-C-042025-1"
+ },
+ {
+ "IdS": 224129,
+ "PX": "355550,355646.13",
+ "PY": "562050,562242.21",
+ "In": "KAB-C-042021-2"
+ },
+ {
+ "IdS": 224130,
+ "PX": "355646.13,356070.38",
+ "PY": "562242.21,562565.4",
+ "In": "KAB-C-042049-1"
+ },
+ {
+ "IdS": 224137,
+ "PX": "345000,345000,345000",
+ "PY": "549700,550000,550150",
+ "In": "KAB-C-041012-1"
+ },
+ {
+ "IdS": 224138,
+ "PX": "372600,372486.23",
+ "PY": "556050,556049.71",
+ "In": "KAB-C-FGN001186-2"
+ },
+ {
+ "IdS": 224139,
+ "PX": "372486.23,372400",
+ "PY": "556049.71,556050",
+ "In": "KAB-C-FGN001183-1"
+ },
+ {
+ "IdS": 224150,
+ "PX": "369760,369800.4",
+ "PY": "552720,552828.64",
+ "In": "KAB-C-FGN001162-2"
+ },
+ {
+ "IdS": 224151,
+ "PX": "369800.4,369900",
+ "PY": "552828.64,553095",
+ "In": "KAB-C-FGN001105-1"
+ },
+ {
+ "IdS": 224181,
+ "PX": "341950,341579.72",
+ "PY": "563300,563084.29",
+ "In": "KAB-C-007030-3"
+ },
+ {
+ "IdS": 224182,
+ "PX": "341579.72,341350",
+ "PY": "563084.29,562950",
+ "In": "KAB-C-007052-1"
+ },
+ {
+ "IdS": 224270,
+ "PX": "371670,372107.88",
+ "PY": "556050,556320.47",
+ "In": "KAB-C-FGN0011920-2"
+ },
+ {
+ "IdS": 224271,
+ "PX": "372107.88,372442.83",
+ "PY": "556320.47,556528.79",
+ "In": "KAB-C-FGN0011921-1"
+ },
+ {
+ "IdS": 224276,
+ "PX": "366350.01,366485.2",
+ "PY": "555650,555543.38",
+ "In": "KAB-C-FGN001047-2"
+ },
+ {
+ "IdS": 224277,
+ "PX": "366485.2,366647.37",
+ "PY": "555543.38,555415.51",
+ "In": "KAB-C-FGN001062-1"
+ },
+ {
+ "IdS": 224284,
+ "PX": "371466.79,371436.53",
+ "PY": "556397.08,556446.15",
+ "In": "KAB-C-FGN001195-1"
+ },
+ {
+ "IdS": 224285,
+ "PX": "371436.53,371399.47",
+ "PY": "556446.15,556506.37",
+ "In": "KAB-C-FGN001193-4"
+ },
+ {
+ "IdS": 224295,
+ "PX": "366888.56,366989.87",
+ "PY": "555269.82,555208.89",
+ "In": "KAB-C-FGN001060-1"
+ },
+ {
+ "IdS": 224300,
+ "PX": "356670,357300",
+ "PY": "552900,552900.01",
+ "In": "KAB-C-FGN001021-2"
+ },
+ {
+ "IdS": 224312,
+ "PX": "371000,371225.11",
+ "PY": "553400,553400.07",
+ "In": "KAB-C-FGN001221-2"
+ },
+ {
+ "IdS": 224313,
+ "PX": "371225.11,371500",
+ "PY": "553400.07,553400",
+ "In": "KAB-C-FGN001225-1"
+ },
+ {
+ "IdS": 224318,
+ "PX": "369350,369650,369649.58",
+ "PY": "549650,549650,550113.81",
+ "In": "KAB-C-FGN001157-2"
+ },
+ {
+ "IdS": 224319,
+ "PX": "369649.58,369650",
+ "PY": "550113.81,550800.01",
+ "In": "KAB-C-FGN001199-1"
+ },
+ {
+ "IdS": 224320,
+ "PX": "352700,353560.36",
+ "PY": "571200,571196.85",
+ "In": "KAB-L-LGU/GL00004-3"
+ },
+ {
+ "IdS": 224321,
+ "PX": "353560.36,354550",
+ "PY": "571196.85,571200",
+ "In": "KAB-L-LGU/GL00004-4"
+ },
+ {
+ "IdS": 224322,
+ "PX": "353560.36,353560.47",
+ "PY": "571196.85,570992.85",
+ "In": "KAB-L-LGU/GL00004-1"
+ },
+ {
+ "IdS": 224338,
+ "PX": "369570.43,369620.05",
+ "PY": "541350.04,540264.95",
+ "In": "KAB-L-L026405-1"
+ },
+ {
+ "IdS": 224339,
+ "PX": "369620.05,370079.9",
+ "PY": "540264.95,538990.08",
+ "In": "KAB-L-L026405-3"
+ },
+ {
+ "IdS": 224340,
+ "PX": "370079.9,370347.22",
+ "PY": "538990.08,538264.76",
+ "In": "KAB-L-L026405-5"
+ },
+ {
+ "IdS": 224341,
+ "PX": "370347.22,370663.94",
+ "PY": "538264.76,537235.83",
+ "In": "KAB-L-L026405-7"
+ },
+ {
+ "IdS": 224342,
+ "PX": "370663.94,370849.89",
+ "PY": "537235.83,536174.69",
+ "In": "KAB-L-L026405-9"
+ },
+ {
+ "IdS": 224343,
+ "PX": "370849.89,370934.47",
+ "PY": "536174.69,535464.18",
+ "In": "KAB-L-L026405-11"
+ },
+ {
+ "IdS": 224344,
+ "PX": "370934.47,371085.17",
+ "PY": "535464.18,534899.95",
+ "In": "KAB-L-L026405-13"
+ },
+ {
+ "IdS": 224345,
+ "PX": "371085.17,371295",
+ "PY": "534899.95,534900",
+ "In": "KAB-L-L026412-1"
+ },
+ {
+ "IdS": 224346,
+ "PX": "369620.05,369920.1",
+ "PY": "540264.95,540264.97",
+ "In": "KAB-L-L026405-2"
+ },
+ {
+ "IdS": 224347,
+ "PX": "370079.9,370430.13",
+ "PY": "538990.08,538989.86",
+ "In": "KAB-L-L026405-4"
+ },
+ {
+ "IdS": 224348,
+ "PX": "370347.22,370684.48",
+ "PY": "538264.76,538264.54",
+ "In": "KAB-L-L026405-6"
+ },
+ {
+ "IdS": 224349,
+ "PX": "370663.94,370965.19",
+ "PY": "537235.83,537234.5",
+ "In": "KAB-L-L026405-8"
+ },
+ {
+ "IdS": 224351,
+ "PX": "370849.89,371084.94",
+ "PY": "536174.69,536174.95",
+ "In": "KAB-L-L026405-10"
+ },
+ {
+ "IdS": 224352,
+ "PX": "370934.47,371129.54",
+ "PY": "535464.18,535464.85",
+ "In": "KAB-L-L026405-12"
+ },
+ {
+ "IdS": 224353,
+ "PX": "339850,340536.23",
+ "PY": "547040,546379.65",
+ "In": "KAB-C-050029-2"
+ },
+ {
+ "IdS": 224358,
+ "PX": "337050,336955,336745.72",
+ "PY": "585200,584815,583964.91",
+ "In": "KAB-C-063039-3"
+ },
+ {
+ "IdS": 224361,
+ "PX": "372429.77,372464.81",
+ "PY": "550240.05,550254.82",
+ "In": "KAB-L-LOGE/GL0050-6"
+ },
+ {
+ "IdS": 224362,
+ "PX": "372459.96,372460.01",
+ "PY": "550239.98,550244.91",
+ "In": "KAB-L-LOGE/GL0050-7"
+ },
+ {
+ "IdS": 224363,
+ "PX": "333900,333850.34,333680.12,333608.68,333500",
+ "PY": "569350,569250.68,569250.02,569250.19,569250",
+ "In": "KAB-C-002020-1"
+ },
+ {
+ "IdS": 224371,
+ "PX": "334875,334875,334770,334770,334625,334625,335090.08",
+ "PY": "569035,568195,567840,567535,567290,567085,567084.62",
+ "In": "KAB-L-LOGE/GL0035-1"
+ },
+ {
+ "IdS": 224372,
+ "PX": "335090.08,335140,335285,335285",
+ "PY": "567084.62,567085,566885,566830",
+ "In": "KAB-L-LOGE/GL0035-2"
+ },
+ {
+ "IdS": 224373,
+ "PX": "335090.08,335089.76",
+ "PY": "567084.62,567199.82",
+ "In": "KAB-L-LOGE/GL0035-4"
+ },
+ {
+ "IdS": 224374,
+ "PX": "335089.76,335150",
+ "PY": "567199.82,567200",
+ "In": "KAB-L-L002010-1"
+ },
+ {
+ "IdS": 224381,
+ "PX": "345184.48,344700",
+ "PY": "579994.42,579250",
+ "In": "KAB-C-025008-1"
+ },
+ {
+ "IdS": 224388,
+ "PX": "352775.06,355263.66",
+ "PY": "560574.89,562665.22",
+ "In": "KAB-L-L057001-1"
+ },
+ {
+ "IdS": 224389,
+ "PX": "352719.49,352775.06",
+ "PY": "560595.05,560574.89",
+ "In": "KAB-L-L057001-6"
+ },
+ {
+ "IdS": 224390,
+ "PX": "352675.03,352775.06",
+ "PY": "560574.98,560574.89",
+ "In": "KAB-L-L083007-LOOP"
+ },
+ {
+ "IdS": 224391,
+ "PX": "338350,338349.98",
+ "PY": "567499.99,567644.68",
+ "In": "KAB-C-009017-1"
+ },
+ {
+ "IdS": 224392,
+ "PX": "338349.98,338350",
+ "PY": "567644.68,567700",
+ "In": "KAB-C-009042-1"
+ },
+ {
+ "IdS": 224393,
+ "PX": "341699.82,341719.85,341764.93",
+ "PY": "527749.94,527759.88,527760.05",
+ "In": "KAB-C-050094-1"
+ },
+ {
+ "IdS": 224395,
+ "PX": "341699.82,341720.18,341764.93",
+ "PY": "527749.94,527745.03,527760.05",
+ "In": "KAB-C-050095-1"
+ },
+ {
+ "IdS": 224406,
+ "PX": "339800,339800,340050,340050",
+ "PY": "570800,570650,570650,570350",
+ "In": "KAB-C-007044-1"
+ },
+ {
+ "IdS": 224408,
+ "PX": "336399.99,336400",
+ "PY": "564014.94,563900",
+ "In": "KAB-C-009043-1"
+ },
+ {
+ "IdS": 224413,
+ "PX": "335725,335725.11",
+ "PY": "556185,556229.55",
+ "In": "KAB-C-050096-1"
+ },
+ {
+ "IdS": 224414,
+ "PX": "338950,338999.96",
+ "PY": "571610,571609.96",
+ "In": "KAB-L-LOGE/GL0005-5"
+ },
+ {
+ "IdS": 224415,
+ "PX": "338999.96,339000",
+ "PY": "571609.96,571650",
+ "In": "KAB-L-L064020-1"
+ },
+ {
+ "IdS": 224416,
+ "PX": "338239.98,338150",
+ "PY": "571389.95,571450",
+ "In": "KAB-L-L001067-1"
+ },
+ {
+ "IdS": 224417,
+ "PX": "338250,338239.98",
+ "PY": "571380,571389.95",
+ "In": "KAB-L-LOGE/GLCAST-1"
+ },
+ {
+ "IdS": 224420,
+ "PX": "380450,379900",
+ "PY": "541250,541600",
+ "In": "KAB-C-FGN006037-1"
+ },
+ {
+ "IdS": 224432,
+ "PX": "344885,345230",
+ "PY": "582500,583694.97",
+ "In": "KAB-C-014011-1"
+ },
+ {
+ "IdS": 224433,
+ "PX": "345230,345267.72",
+ "PY": "583694.97,583829.68",
+ "In": "KAB-C-014006-1"
+ },
+ {
+ "IdS": 224434,
+ "PX": "344750,344870.11",
+ "PY": "584100,583560.06",
+ "In": "KAB-L-L058004-4"
+ },
+ {
+ "IdS": 224435,
+ "PX": "344870.11,344950",
+ "PY": "583560.06,583200",
+ "In": "KAB-L-L058004-12"
+ },
+ {
+ "IdS": 224436,
+ "PX": "344870.11,344895.07,345180.01,345230",
+ "PY": "583560.06,583604.27,583694.91,583694.97",
+ "In": "KAB-L-L058004-21"
+ },
+ {
+ "IdS": 224437,
+ "PX": "345230,344870.11",
+ "PY": "583694.97,583560.06",
+ "In": "KAB-L-L058004-22"
+ },
+ {
+ "IdS": 224447,
+ "PX": "362200.06,362200",
+ "PY": "555019.91,555100",
+ "In": "KAB-C-FGN001125-1"
+ },
+ {
+ "IdS": 224448,
+ "PX": "358100,358100.53",
+ "PY": "552900,551698.53",
+ "In": "KAB-C-FGN00131601-1"
+ },
+ {
+ "IdS": 224449,
+ "PX": "358100.53,358100",
+ "PY": "551698.53,551350",
+ "In": "KAB-C-FGN00131609-1"
+ },
+ {
+ "IdS": 224450,
+ "PX": "361450,361810.05",
+ "PY": "552900,552899.96",
+ "In": "KAB-C-FGN001034-1"
+ },
+ {
+ "IdS": 224451,
+ "PX": "361810.05,362200",
+ "PY": "552899.96,552900",
+ "In": "KAB-C-FGN001065-1"
+ },
+ {
+ "IdS": 224452,
+ "PX": "357799.93,357144.81",
+ "PY": "555801.3,555800.04",
+ "In": "KAB-C-FGN00110101-1"
+ },
+ {
+ "IdS": 224453,
+ "PX": "357144.81,356800",
+ "PY": "555800.04,555801.37",
+ "In": "KAB-C-FGN00110102-1"
+ },
+ {
+ "IdS": 224457,
+ "PX": "355050,355332.55",
+ "PY": "552700,552756.37",
+ "In": "KAB-C-FGN001016-1"
+ },
+ {
+ "IdS": 224458,
+ "PX": "355332.55,355550",
+ "PY": "552756.37,552800",
+ "In": "KAB-C-FGN001019-1"
+ },
+ {
+ "IdS": 224470,
+ "PX": "343900,343579.74",
+ "PY": "578800,578399.53",
+ "In": "KAB-L-L058002-4"
+ },
+ {
+ "IdS": 224471,
+ "PX": "343579.74,343500",
+ "PY": "578399.53,578300",
+ "In": "KAB-L-L058002-15"
+ },
+ {
+ "IdS": 224472,
+ "PX": "343579.74,344143.48,344449.54",
+ "PY": "578399.53,577909.92,577909.79",
+ "In": "KAB-L-L058002-16"
+ },
+ {
+ "IdS": 224478,
+ "PX": "345037.18,344879.99,344499.79,344449.54",
+ "PY": "577798.58,578109.81,577909.76,577909.79",
+ "In": "KAB-C-006050-2"
+ },
+ {
+ "IdS": 224479,
+ "PX": "344449.54,344860.87,344450",
+ "PY": "577909.79,578146.23,578950",
+ "In": "KAB-C-006023-1"
+ },
+ {
+ "IdS": 224480,
+ "PX": "355250.01,355018.61",
+ "PY": "555800,556262.85",
+ "In": "KAB-C-055003-1"
+ },
+ {
+ "IdS": 224481,
+ "PX": "355018.61,354850",
+ "PY": "556262.85,556600",
+ "In": "KAB-C-055005-1"
+ },
+ {
+ "IdS": 224482,
+ "PX": "362200,362145.02",
+ "PY": "555100,555099.87",
+ "In": "KAB-C-FGN001260-1"
+ },
+ {
+ "IdS": 224483,
+ "PX": "362145.02,362000",
+ "PY": "555099.87,555100",
+ "In": "KAB-C-FGN001241-1"
+ },
+ {
+ "IdS": 224485,
+ "PX": "330105,330749.51",
+ "PY": "564000,563999.48",
+ "In": "KAB-L-L079001-42"
+ },
+ {
+ "IdS": 224486,
+ "PX": "330105,329965",
+ "PY": "564000,564000",
+ "In": "KAB-L-L079001-43"
+ },
+ {
+ "IdS": 224580,
+ "PX": "361200,361325.04",
+ "PY": "552900,552900",
+ "In": "KAB-C-FGN001033-1"
+ },
+ {
+ "IdS": 224581,
+ "PX": "361325.04,361450",
+ "PY": "552900,552900",
+ "In": "KAB-C-FGN001094-1"
+ },
+ {
+ "IdS": 224591,
+ "PX": "355750,355725.18",
+ "PY": "554800,554850.68",
+ "In": "KAB-C-055002-4"
+ },
+ {
+ "IdS": 224592,
+ "PX": "355725.18,355250.01",
+ "PY": "554850.68,555800",
+ "In": "KAB-C-055006-1"
+ },
+ {
+ "IdS": 224597,
+ "PX": "356400,356333.6",
+ "PY": "553500,553654.71",
+ "In": "KAB-C-055010-3"
+ },
+ {
+ "IdS": 224598,
+ "PX": "356333.6,356250",
+ "PY": "553654.71,553850",
+ "In": "KAB-C-055007-1"
+ },
+ {
+ "IdS": 224599,
+ "PX": "362200,362200.07",
+ "PY": "554900,554940.01",
+ "In": "KAB-C-FGN001123-1"
+ },
+ {
+ "IdS": 224621,
+ "PX": "362500,362615.07",
+ "PY": "552300,552300.05",
+ "In": "KAB-C-FGN001231-1"
+ },
+ {
+ "IdS": 224622,
+ "PX": "362615.07,362800",
+ "PY": "552300.05,552300",
+ "In": "KAB-C-FGN001233-1"
+ },
+ {
+ "IdS": 224625,
+ "PX": "362200,362200.36",
+ "PY": "552300,551995.4",
+ "In": "KAB-C-FGN001198-1"
+ },
+ {
+ "IdS": 224626,
+ "PX": "362200.36,362200",
+ "PY": "551995.4,551800",
+ "In": "KAB-C-FGN001192-1"
+ },
+ {
+ "IdS": 224659,
+ "PX": "356000,355719.94",
+ "PY": "555800.12,555799.91",
+ "In": "KAB-C-FGN001104-1"
+ },
+ {
+ "IdS": 224660,
+ "PX": "355719.94,355250.01",
+ "PY": "555799.91,555800",
+ "In": "KAB-C-FGN0011006-1"
+ },
+ {
+ "IdS": 224663,
+ "PX": "333722.83,334134.54",
+ "PY": "558942.93,558376.64",
+ "In": "KAB-C-050073-1"
+ },
+ {
+ "IdS": 224668,
+ "PX": "362200.07,362200.1",
+ "PY": "554940.01,554986.36",
+ "In": "KAB-C-FGN001129-2"
+ },
+ {
+ "IdS": 224669,
+ "PX": "362200.1,362200.06",
+ "PY": "554986.36,555019.91",
+ "In": "KAB-C-FGN0011293-1"
+ },
+ {
+ "IdS": 224672,
+ "PX": "332635,333218.06",
+ "PY": "560440,559635.52",
+ "In": "KAB-C-050005-1"
+ },
+ {
+ "IdS": 224697,
+ "PX": "336100,336730.02",
+ "PY": "578300,578500.31",
+ "In": "KAB-L-L021001-1"
+ },
+ {
+ "IdS": 224698,
+ "PX": "336730.02,337150,337350.01",
+ "PY": "578500.31,578350,578465.01",
+ "In": "KAB-L-L021006-1"
+ },
+ {
+ "IdS": 224705,
+ "PX": "336730.02,336696.19,337089.35,337200",
+ "PY": "578500.31,578406.85,577227.2,577000",
+ "In": "KAB-L-L463001-1"
+ },
+ {
+ "IdS": 224706,
+ "PX": "336729.84,337160.25",
+ "PY": "578414.66,577224.35",
+ "In": "KAB-L-GL-502004-11"
+ },
+ {
+ "IdS": 224707,
+ "PX": "336729.84,336730.02",
+ "PY": "578414.66,578500.31",
+ "In": "KAB-L-L463002-1"
+ },
+ {
+ "IdS": 224708,
+ "PX": "337160.25,337200",
+ "PY": "577224.35,577000",
+ "In": "KAB-L-L463003-1"
+ },
+ {
+ "IdS": 224709,
+ "PX": "370610,370213.24",
+ "PY": "544170,543376.81",
+ "In": "KAB-AB-026090-1"
+ },
+ {
+ "IdS": 224710,
+ "PX": "370208.95,370200",
+ "PY": "543367.9,543350",
+ "In": "KAB-AB-026092-1"
+ },
+ {
+ "IdS": 224713,
+ "PX": "347100,347100,347100",
+ "PY": "555450,555250,555150",
+ "In": "KAB-C-011024-1"
+ },
+ {
+ "IdS": 224780,
+ "PX": "335350,335349.8",
+ "PY": "569150,569003.28",
+ "In": "KAB-C-F202057-2"
+ },
+ {
+ "IdS": 224781,
+ "PX": "335349.8,335350",
+ "PY": "569003.28,568855",
+ "In": "KAB-C-F202058-1"
+ },
+ {
+ "IdS": 224791,
+ "PX": "356080,356110.08",
+ "PY": "563410,563369.88",
+ "In": "KAB-L-LOGE/GL0057-1"
+ },
+ {
+ "IdS": 224792,
+ "PX": "357220,357269.87",
+ "PY": "564329.66,564285.03",
+ "In": "KAB-L-LOGE/GL0057-2"
+ },
+ {
+ "IdS": 224793,
+ "PX": "356080,357220",
+ "PY": "563410,564329.66",
+ "In": "KAB-L-L057001-3"
+ },
+ {
+ "IdS": 224794,
+ "PX": "357220,357200",
+ "PY": "564329.66,564350",
+ "In": "KAB-L-L057001-9"
+ },
+ {
+ "IdS": 224843,
+ "PX": "349350,349304.98",
+ "PY": "563400,563579.95",
+ "In": "KAB-L-L056002-1"
+ },
+ {
+ "IdS": 224862,
+ "PX": "356069.71,356069.95,355600,355600",
+ "PY": "562849.96,562954.02,563100,563200",
+ "In": "KAB-C-042050-2"
+ },
+ {
+ "IdS": 224873,
+ "PX": "355600,355843.58",
+ "PY": "564700,565105.95",
+ "In": "KAB-C-042090-1"
+ },
+ {
+ "IdS": 224874,
+ "PX": "355843.58,355900",
+ "PY": "565105.95,565200",
+ "In": "KAB-C-042034-1"
+ },
+ {
+ "IdS": 224880,
+ "PX": "356500,356679.79",
+ "PY": "566200,566500.24",
+ "In": "KAB-C-042095-1"
+ },
+ {
+ "IdS": 224881,
+ "PX": "356679.79,356800",
+ "PY": "566500.24,566700",
+ "In": "KAB-C-042093-1"
+ },
+ {
+ "IdS": 224892,
+ "PX": "335450.04,335535",
+ "PY": "566750.02,566750",
+ "In": "KAB-C-002026-1"
+ },
+ {
+ "IdS": 224894,
+ "PX": "346250,346250.05",
+ "PY": "578900,578964.95",
+ "In": "KAB-C-F016011-1"
+ },
+ {
+ "IdS": 224895,
+ "PX": "346250.05,346249.54",
+ "PY": "578964.95,579234.16",
+ "In": "KAB-C-F016001-1"
+ },
+ {
+ "IdS": 224896,
+ "PX": "346250,346249.65",
+ "PY": "578450,578759.63",
+ "In": "KAB-C-016021-2"
+ },
+ {
+ "IdS": 224897,
+ "PX": "346249.65,346250",
+ "PY": "578759.63,578900",
+ "In": "KAB-C-016038-1"
+ },
+ {
+ "IdS": 224927,
+ "PX": "337149.68,337605.91",
+ "PY": "552799.51,551714.51",
+ "In": "KAB-C-050055-1"
+ },
+ {
+ "IdS": 224928,
+ "PX": "337605.91,337884.12",
+ "PY": "551714.51,551057.12",
+ "In": "KAB-C-050079-1"
+ },
+ {
+ "IdS": 224935,
+ "PX": "336655.59,336906.32",
+ "PY": "553972.39,553375.26",
+ "In": "KAB-C-050086-1"
+ },
+ {
+ "IdS": 224936,
+ "PX": "336906.32,337149.68",
+ "PY": "553375.26,552799.51",
+ "In": "KAB-C-050006-1"
+ },
+ {
+ "IdS": 224937,
+ "PX": "341693.2,341266.14",
+ "PY": "539743.01,539287.42",
+ "In": "KAB-C-050088-1"
+ },
+ {
+ "IdS": 224938,
+ "PX": "341266.14,340850",
+ "PY": "539287.42,538850",
+ "In": "KAB-C-050061-1"
+ },
+ {
+ "IdS": 224939,
+ "PX": "374250,374550,374750",
+ "PY": "535550,534950,534550",
+ "In": "KAB-C-053011-1"
+ },
+ {
+ "IdS": 224940,
+ "PX": "337700,338150,338000.1",
+ "PY": "561455,560750,560679.88",
+ "In": "KAB-C-008005-1"
+ },
+ {
+ "IdS": 224941,
+ "PX": "338000.1,338019.99,338000",
+ "PY": "560679.88,560670.03,560650",
+ "In": "KAB-C-008006-1"
+ },
+ {
+ "IdS": 224942,
+ "PX": "337225,337575.81,338000.1",
+ "PY": "561055,561256.23,560679.88",
+ "In": "KAB-C-003003-2"
+ },
+ {
+ "IdS": 224943,
+ "PX": "338000.1,338000",
+ "PY": "560679.88,560650",
+ "In": "KAB-C-003031-1"
+ },
+ {
+ "IdS": 224949,
+ "PX": "338055,337959.89",
+ "PY": "589285,588898.68",
+ "In": "KAB-C-063010-1"
+ },
+ {
+ "IdS": 224950,
+ "PX": "337959.89,337810",
+ "PY": "588898.68,588305",
+ "In": "KAB-C-063005-1"
+ },
+ {
+ "IdS": 224958,
+ "PX": "372800,372800,372800.02,372874.35",
+ "PY": "554000,554200,554285.01,554284.99",
+ "In": "KAB-C-FGN003150-3"
+ },
+ {
+ "IdS": 224987,
+ "PX": "336399.66,336399.94",
+ "PY": "564815.19,564400.01",
+ "In": "KAB-C-009039-1"
+ },
+ {
+ "IdS": 224988,
+ "PX": "336399.94,336399.99",
+ "PY": "564400.01,564014.94",
+ "In": "KAB-C-009044-1"
+ },
+ {
+ "IdS": 225003,
+ "PX": "351800,352550",
+ "PY": "556500,556850",
+ "In": "KAB-C-042077-1"
+ },
+ {
+ "IdS": 225004,
+ "PX": "351400,351649.96",
+ "PY": "556300,556430.09",
+ "In": "KAB-C-042007-3"
+ },
+ {
+ "IdS": 225005,
+ "PX": "336100,336169.89,336559.91",
+ "PY": "575750,575770.07,575554.73",
+ "In": "KAB-L-L027003-1"
+ },
+ {
+ "IdS": 225006,
+ "PX": "339550,339245.65",
+ "PY": "547200,546780.76",
+ "In": "KAB-C-051039-2"
+ },
+ {
+ "IdS": 225007,
+ "PX": "339245.65,338910",
+ "PY": "546780.76,546315",
+ "In": "KAB-C-051058-1"
+ },
+ {
+ "IdS": 225008,
+ "PX": "349135.1,346980.08",
+ "PY": "559720.05,559714.73",
+ "In": "KAB-L-L083005-1"
+ },
+ {
+ "IdS": 225009,
+ "PX": "346900.06,346900",
+ "PY": "559930.12,559700",
+ "In": "KAB-L-L011041-1"
+ },
+ {
+ "IdS": 225011,
+ "PX": "346900,346794.65",
+ "PY": "559700,559598.03",
+ "In": "KAB-L-L083006-1"
+ },
+ {
+ "IdS": 225015,
+ "PX": "342440,342985,342670,344435,346650,346900.03",
+ "PY": "563600,563300,562895,561715,560000,560000.03",
+ "In": "KAB-L-GL-KSR 97-1"
+ },
+ {
+ "IdS": 225016,
+ "PX": "346900.03,347080",
+ "PY": "560000.03,560000",
+ "In": "KAB-L-GL-KSR 97-2"
+ },
+ {
+ "IdS": 225017,
+ "PX": "346900.03,346899.97",
+ "PY": "560000.03,559974.89",
+ "In": "KAB-L-GL-KSR 97-3"
+ },
+ {
+ "IdS": 225018,
+ "PX": "346899.97,346900.06",
+ "PY": "559974.89,559930.12",
+ "In": "KAB-L-L011041-2"
+ },
+ {
+ "IdS": 225023,
+ "PX": "341610.19,341676.93",
+ "PY": "528434.88,527999.58",
+ "In": "KAB-C-050036-1"
+ },
+ {
+ "IdS": 225024,
+ "PX": "341676.93,341700,341699.82",
+ "PY": "527999.58,527850,527749.94",
+ "In": "KAB-C-050100-1"
+ },
+ {
+ "IdS": 225025,
+ "PX": "334470.84,334760.63",
+ "PY": "557912.65,557508.13",
+ "In": "KAB-C-050071-2"
+ },
+ {
+ "IdS": 225026,
+ "PX": "334760.63,334938.9",
+ "PY": "557508.13,557262.51",
+ "In": "KAB-C-050101-1"
+ },
+ {
+ "IdS": 225031,
+ "PX": "352550,352560.06",
+ "PY": "556850,556830.03",
+ "In": "KAB-C-042150-1"
+ },
+ {
+ "IdS": 225034,
+ "PX": "351649.96,351659.99",
+ "PY": "556430.09,556414.63",
+ "In": "KAB-C-042151-1"
+ },
+ {
+ "IdS": 225046,
+ "PX": "337349.93,336840,336700",
+ "PY": "592089.86,591850,592050",
+ "In": "KAB-L-L060005-8"
+ },
+ {
+ "IdS": 225048,
+ "PX": "337349.93,337494.98",
+ "PY": "592089.86,592090",
+ "In": "KAB-L-L060005-9"
+ },
+ {
+ "IdS": 225049,
+ "PX": "337349.93,336930.07,336900",
+ "PY": "592089.86,592220.38,592250",
+ "In": "KAB-L-L060005-10"
+ },
+ {
+ "IdS": 225054,
+ "PX": "360550,364555.29",
+ "PY": "538725,536944.53",
+ "In": "KAB-L-LOGE/GL0033-2"
+ },
+ {
+ "IdS": 225055,
+ "PX": "364555.29,364660",
+ "PY": "536944.53,536900",
+ "In": "KAB-L-LOGE/GL0058-1"
+ },
+ {
+ "IdS": 225056,
+ "PX": "370624.19,370344.74",
+ "PY": "545124.47,544874.44",
+ "In": "KAB-L-L026401-4"
+ },
+ {
+ "IdS": 225057,
+ "PX": "370344.74,370070.72",
+ "PY": "544874.44,544630.14",
+ "In": "KAB-L-L026401-14"
+ },
+ {
+ "IdS": 225058,
+ "PX": "370344.74,370484.48",
+ "PY": "544874.44,544839.99",
+ "In": "KAB-L-L026401-13"
+ },
+ {
+ "IdS": 225081,
+ "PX": "338585,338200,337830,337650",
+ "PY": "545460,544900,544405,544515",
+ "In": "KAB-C-051911-1"
+ },
+ {
+ "IdS": 225084,
+ "PX": "375409.85,375299.68",
+ "PY": "532949.97,533020.19",
+ "In": "KAB-L-L439002-1"
+ },
+ {
+ "IdS": 225085,
+ "PX": "375299.68,375150",
+ "PY": "533020.19,532950",
+ "In": "KAB-L-L439002-2"
+ },
+ {
+ "IdS": 225086,
+ "PX": "375299.78,375150",
+ "PY": "532885.18,532950",
+ "In": "KAB-L-L439003-2"
+ },
+ {
+ "IdS": 225087,
+ "PX": "375409.85,375299.78",
+ "PY": "532949.97,532885.18",
+ "In": "KAB-L-L439003-1"
+ },
+ {
+ "IdS": 225088,
+ "PX": "375299.78,375299.68",
+ "PY": "532885.18,533020.19",
+ "In": "KAB-L-L439001-8"
+ },
+ {
+ "IdS": 225141,
+ "PX": "349355.26,349550",
+ "PY": "555350.18,555450",
+ "In": "KAB-C-042097-1"
+ },
+ {
+ "IdS": 225142,
+ "PX": "342702.7,342901.54,342865",
+ "PY": "562801.06,562624.99,562580",
+ "In": "KAB-C-011029-2"
+ },
+ {
+ "IdS": 225145,
+ "PX": "336400.15,336400",
+ "PY": "567165.42,567285",
+ "In": "KAB-AB-012029-1"
+ },
+ {
+ "IdS": 225146,
+ "PX": "336100,336750",
+ "PY": "567150,567150",
+ "In": "KAB-C-012012-6"
+ },
+ {
+ "IdS": 225150,
+ "PX": "375350,375349.87",
+ "PY": "550600,550528.54",
+ "In": "KAB-C-026099-1"
+ },
+ {
+ "IdS": 225209,
+ "PX": "372300,372043.11",
+ "PY": "546700,546150.36",
+ "In": "KAB-C-FGN006123-2"
+ },
+ {
+ "IdS": 225210,
+ "PX": "372043.11,371950,371700",
+ "PY": "546150.36,545950,545950",
+ "In": "KAB-C-FGN006124-1"
+ },
+ {
+ "IdS": 225253,
+ "PX": "369775,369631.77",
+ "PY": "554885,554797.55",
+ "In": "KAB-C-FGN001151-1"
+ },
+ {
+ "IdS": 225254,
+ "PX": "369631.77,369520",
+ "PY": "554797.55,554730",
+ "In": "KAB-C-FGN0011511-1"
+ },
+ {
+ "IdS": 225255,
+ "PX": "369520,369128.17",
+ "PY": "554730,554489.29",
+ "In": "KAB-C-FGN001152-2"
+ },
+ {
+ "IdS": 225256,
+ "PX": "369128.17,368950",
+ "PY": "554489.29,554380",
+ "In": "KAB-C-FGN0011524-1"
+ },
+ {
+ "IdS": 225257,
+ "PX": "358400.05,358235.09",
+ "PY": "555800.01,555799.89",
+ "In": "KAB-C-FGN001100-2"
+ },
+ {
+ "IdS": 225258,
+ "PX": "358235.09,357799.93",
+ "PY": "555799.89,555801.3",
+ "In": "KAB-C-FGN001106-1"
+ },
+ {
+ "IdS": 225271,
+ "PX": "380600,380671.24",
+ "PY": "543600,543564.35",
+ "In": "KAB-C-FGN006025-2"
+ },
+ {
+ "IdS": 225272,
+ "PX": "380671.24,380700",
+ "PY": "543564.35,543550",
+ "In": "KAB-C-FGN006024-1"
+ },
+ {
+ "IdS": 225280,
+ "PX": "377932.22,378000",
+ "PY": "544416.87,544400",
+ "In": "KAB-C-FGN006092-1"
+ },
+ {
+ "IdS": 225281,
+ "PX": "339565,339584.59",
+ "PY": "575900,575829.81",
+ "In": "KAB-L-L021002-14"
+ },
+ {
+ "IdS": 225282,
+ "PX": "339584.59,339600,339850,339850",
+ "PY": "575829.81,575750,575750,575650",
+ "In": "KAB-L-L021002-15"
+ },
+ {
+ "IdS": 225286,
+ "PX": "339584.59,339679.81",
+ "PY": "575829.81,575830.06",
+ "In": "KAB-L-L021002-20"
+ },
+ {
+ "IdS": 225289,
+ "PX": "373400.01,373257.24",
+ "PY": "553400.01,553657.82",
+ "In": "KAB-C-FGN0011821-1"
+ },
+ {
+ "IdS": 225292,
+ "PX": "381250,381338.16",
+ "PY": "542550,542496.94",
+ "In": "KAB-C-FGN006097-2"
+ },
+ {
+ "IdS": 225293,
+ "PX": "381338.16,381500",
+ "PY": "542496.94,542400",
+ "In": "KAB-C-FGN0060104-1"
+ },
+ {
+ "IdS": 225294,
+ "PX": "369350,369588.81",
+ "PY": "549650,549506.97",
+ "In": "KAB-C-FGN003020-2"
+ },
+ {
+ "IdS": 225295,
+ "PX": "369588.81,369850",
+ "PY": "549506.97,549350",
+ "In": "KAB-C-FGN003021-1"
+ },
+ {
+ "IdS": 225296,
+ "PX": "381250,381165.58",
+ "PY": "542550,542409.59",
+ "In": "KAB-C-FGN0060340-2"
+ },
+ {
+ "IdS": 225297,
+ "PX": "381165.58,381100",
+ "PY": "542409.59,542300",
+ "In": "KAB-C-FGN0060342-1"
+ },
+ {
+ "IdS": 225298,
+ "PX": "372750,372920.55",
+ "PY": "547600,547977.7",
+ "In": "KAB-C-FGN003052-10"
+ },
+ {
+ "IdS": 225299,
+ "PX": "372920.55,372950,372950",
+ "PY": "547977.7,548050,548950",
+ "In": "KAB-C-FGN003053-1"
+ },
+ {
+ "IdS": 225300,
+ "PX": "363350,363559.15",
+ "PY": "552900,552995.85",
+ "In": "KAB-C-FGN001036-2"
+ },
+ {
+ "IdS": 225301,
+ "PX": "363559.15,363805.69,363980.12,364050.02",
+ "PY": "552995.85,553109.35,552949.93,552949.72",
+ "In": "KAB-C-FGN0010361-1"
+ },
+ {
+ "IdS": 225308,
+ "PX": "376450,376601.36",
+ "PY": "546100,546453.33",
+ "In": "KAB-C-FGN006073-2"
+ },
+ {
+ "IdS": 225309,
+ "PX": "376601.36,376750",
+ "PY": "546453.33,546800",
+ "In": "KAB-C-FGN006075-1"
+ },
+ {
+ "IdS": 225312,
+ "PX": "355050,355250,355450",
+ "PY": "556700,556800,556900",
+ "In": "KAB-C-FGN001111-1"
+ },
+ {
+ "IdS": 225315,
+ "PX": "371700,371834.51",
+ "PY": "545950,545845.24",
+ "In": "KAB-C-FGN006001-2"
+ },
+ {
+ "IdS": 225316,
+ "PX": "371834.51,372150",
+ "PY": "545845.24,545600",
+ "In": "KAB-C-FGN006010-1"
+ },
+ {
+ "IdS": 225317,
+ "PX": "372150,372507.66",
+ "PY": "545600,545384.73",
+ "In": "KAB-C-FGN006002-2"
+ },
+ {
+ "IdS": 225318,
+ "PX": "372507.66,373150",
+ "PY": "545384.73,545000",
+ "In": "KAB-C-FGN006040-1"
+ },
+ {
+ "IdS": 225319,
+ "PX": "374550,374833.47",
+ "PY": "545800,545681.72",
+ "In": "KAB-C-FGN006006-2"
+ },
+ {
+ "IdS": 225320,
+ "PX": "374833.47,375030,375030.01",
+ "PY": "545681.72,545600,545889.99",
+ "In": "KAB-C-FGN006043-1"
+ },
+ {
+ "IdS": 225321,
+ "PX": "377600,377684.94",
+ "PY": "544500,544478.75",
+ "In": "KAB-C-FGN006016-2"
+ },
+ {
+ "IdS": 225327,
+ "PX": "377684.94,377730.25",
+ "PY": "544478.75,544467.21",
+ "In": "KAB-C-FGN006044-2"
+ },
+ {
+ "IdS": 225328,
+ "PX": "377730.25,377769.99",
+ "PY": "544467.21,544457.54",
+ "In": "KAB-C-FGN006045-1"
+ },
+ {
+ "IdS": 225329,
+ "PX": "377769.99,377845.04",
+ "PY": "544457.54,544438.49",
+ "In": "KAB-C-FGN006017-3"
+ },
+ {
+ "IdS": 225330,
+ "PX": "377845.04,377932.22",
+ "PY": "544438.49,544416.87",
+ "In": "KAB-C-FGN006046-1"
+ },
+ {
+ "IdS": 225407,
+ "PX": "349300,349300",
+ "PY": "551550,552300",
+ "In": "KAB-C-026003-1"
+ },
+ {
+ "IdS": 225439,
+ "PX": "372644.61,372725.07",
+ "PY": "575120.23,556634.88",
+ "In": "KAB-L-OGE/GL503008-2"
+ },
+ {
+ "IdS": 225440,
+ "PX": "372725.07,372724.97",
+ "PY": "556634.88,556605.09",
+ "In": "KAB-L-OGE/GL503008-3"
+ },
+ {
+ "IdS": 225441,
+ "PX": "372725.07,372685.18",
+ "PY": "556634.88,556634.86",
+ "In": "KAB-L-OGE/GL503008-1"
+ },
+ {
+ "IdS": 225442,
+ "PX": "372685.18,372615.05",
+ "PY": "556634.86,556634.89",
+ "In": "KAB-L-LFGN0011929-1"
+ },
+ {
+ "IdS": 225517,
+ "PX": "336204.95,336220.02",
+ "PY": "570709.98,570709.95",
+ "In": "KAB-L-L001086-1"
+ },
+ {
+ "IdS": 225518,
+ "PX": "336220.02,336239.95",
+ "PY": "570709.95,570709.98",
+ "In": "KAB-L-L001087-1"
+ },
+ {
+ "IdS": 225519,
+ "PX": "336239.95,336255.03",
+ "PY": "570709.98,570710",
+ "In": "KAB-L-L001088-1"
+ },
+ {
+ "IdS": 225520,
+ "PX": "336255.03,336295.04",
+ "PY": "570710,570709.92",
+ "In": "KAB-L-L001089-1"
+ },
+ {
+ "IdS": 225521,
+ "PX": "336295.04,336335.01",
+ "PY": "570709.92,570709.9",
+ "In": "KAB-L-L001090-1"
+ },
+ {
+ "IdS": 225522,
+ "PX": "336335.01,336334.81",
+ "PY": "570709.9,570660.03",
+ "In": "KAB-L-L001091-1"
+ },
+ {
+ "IdS": 225523,
+ "PX": "336334.81,336294.87",
+ "PY": "570660.03,570659.89",
+ "In": "KAB-L-L001092-1"
+ },
+ {
+ "IdS": 225524,
+ "PX": "336294.87,336255.01",
+ "PY": "570659.89,570660.05",
+ "In": "KAB-L-L001093-1"
+ },
+ {
+ "IdS": 225525,
+ "PX": "336255.01,336205.01",
+ "PY": "570660.05,570660.01",
+ "In": "KAB-L-L001094-1"
+ },
+ {
+ "IdS": 225530,
+ "PX": "344620,343867.1",
+ "PY": "550315,549987.09",
+ "In": "KAB-C-051031-2"
+ },
+ {
+ "IdS": 225531,
+ "PX": "343867.1,343425",
+ "PY": "549987.09,549795",
+ "In": "KAB-C-051043-1"
+ },
+ {
+ "IdS": 225694,
+ "PX": "380700,381050",
+ "PY": "543550,543400",
+ "In": "KAB-C-FGN006026-2"
+ },
+ {
+ "IdS": 225699,
+ "PX": "346300,345650.02",
+ "PY": "580980,580980.05",
+ "In": "KAB-C-024001-11"
+ },
+ {
+ "IdS": 225700,
+ "PX": "345650.02,345649.85",
+ "PY": "580980.05,581049.84",
+ "In": "KAB-C-024007-1"
+ },
+ {
+ "IdS": 225701,
+ "PX": "345649.85,345595.04,345650.02",
+ "PY": "581049.84,580990.03,580980.05",
+ "In": "KAB-C-025001-1"
+ },
+ {
+ "IdS": 225702,
+ "PX": "345650.02,345550.11,345184.48",
+ "PY": "580980.05,580555.18,579994.42",
+ "In": "KAB-C-025009-1"
+ },
+ {
+ "IdS": 225703,
+ "PX": "338699.62,338699.99",
+ "PY": "569939.15,569891.57",
+ "In": "KAB-AB-009005-50"
+ },
+ {
+ "IdS": 225705,
+ "PX": "338699.99,338699.9",
+ "PY": "569891.57,569827.41",
+ "In": "KAB-AB-009098-2"
+ },
+ {
+ "IdS": 225706,
+ "PX": "338699.9,338700",
+ "PY": "569827.41,569650",
+ "In": "KAB-AB-009099-1"
+ },
+ {
+ "IdS": 225707,
+ "PX": "345489.39,345560.01",
+ "PY": "580994.85,580980",
+ "In": "KAB-C-F016009-1"
+ },
+ {
+ "IdS": 225708,
+ "PX": "345560.01,345650.02",
+ "PY": "580980,580980.05",
+ "In": "KAB-C-016039-1"
+ },
+ {
+ "IdS": 225709,
+ "PX": "345650.02,345705.2,345649.85",
+ "PY": "580980.05,581049.84,581049.84",
+ "In": "KAB-C-016040-1"
+ },
+ {
+ "IdS": 225731,
+ "PX": "369734.93,369635",
+ "PY": "543514.28,542480",
+ "In": "KAB-L-L026401-15"
+ },
+ {
+ "IdS": 225732,
+ "PX": "369635,369569.82",
+ "PY": "542480,541854.93",
+ "In": "KAB-L-L026401-16"
+ },
+ {
+ "IdS": 225733,
+ "PX": "369635,369520",
+ "PY": "542480,542480",
+ "In": "KAB-L-L026401-12"
+ },
+ {
+ "IdS": 225753,
+ "PX": "356800,356819.92",
+ "PY": "566850,566954.81",
+ "In": "KAB-C-043001-2"
+ },
+ {
+ "IdS": 225754,
+ "PX": "356819.92,356900",
+ "PY": "566954.81,567400",
+ "In": "KAB-C-043014-1"
+ },
+ {
+ "IdS": 225755,
+ "PX": "356950,356899.96",
+ "PY": "567850,567935.03",
+ "In": "KAB-C-043003-2"
+ },
+ {
+ "IdS": 225756,
+ "PX": "356899.96,356800",
+ "PY": "567935.03,568100",
+ "In": "KAB-C-043015-1"
+ },
+ {
+ "IdS": 225761,
+ "PX": "356400,356399.98",
+ "PY": "568600,568779.94",
+ "In": "KAB-C-043006-2"
+ },
+ {
+ "IdS": 225762,
+ "PX": "356399.98,356400",
+ "PY": "568779.94,569000",
+ "In": "KAB-C-043016-1"
+ },
+ {
+ "IdS": 225763,
+ "PX": "356400,356399.94",
+ "PY": "569000,569164.91",
+ "In": "KAB-C-043007-1"
+ },
+ {
+ "IdS": 225767,
+ "PX": "356399.94,356400",
+ "PY": "569164.91,569470",
+ "In": "KAB-C-043018-1"
+ },
+ {
+ "IdS": 225768,
+ "PX": "356400,356400",
+ "PY": "569470,569900",
+ "In": "KAB-C-043019-1"
+ },
+ {
+ "IdS": 225769,
+ "PX": "356400,356615",
+ "PY": "569470,569470",
+ "In": "KAB-C-043020-1"
+ },
+ {
+ "IdS": 225787,
+ "PX": "355959.81,356650,356650,356650",
+ "PY": "580610.04,579450,579450,578415",
+ "In": "KAB-L-LOGE/GL0099-1"
+ },
+ {
+ "IdS": 225790,
+ "PX": "356650,356645,372644.61",
+ "PY": "576470,575125,575120.23",
+ "In": "KAB-L-LOGE/GL0100-1"
+ },
+ {
+ "IdS": 225791,
+ "PX": "371500,371500,371295",
+ "PY": "553400,553600,553945",
+ "In": "KAB-C-FGN001164-1"
+ },
+ {
+ "IdS": 225793,
+ "PX": "346350,346755",
+ "PY": "551360,551430",
+ "In": "KAB-L-GL-KSR 46-1"
+ },
+ {
+ "IdS": 225794,
+ "PX": "351759.81,351355,350700,349800,349600,349300,348570,348480,346840",
+ "PY": "551689.55,551645,551545,551395,551345,551345,551220,551710,551445",
+ "In": "KAB-L-GL-GERN-RIMP-6"
+ },
+ {
+ "IdS": 225797,
+ "PX": "335550,335355.05",
+ "PY": "571500,571445.01",
+ "In": "KAB-L-L013001-16"
+ },
+ {
+ "IdS": 225826,
+ "PX": "334850,335650.08",
+ "PY": "576450,575999.77",
+ "In": "KAB-C-027002-1"
+ },
+ {
+ "IdS": 225827,
+ "PX": "335650.08,335995.76",
+ "PY": "575999.77,575808.69",
+ "In": "KAB-C-027005-1"
+ },
+ {
+ "IdS": 225840,
+ "PX": "345815,345830,344195,344600,345185",
+ "PY": "576050,576015,575175,574420,567235",
+ "In": "KAB-L-SAUERLAND 1-1"
+ },
+ {
+ "IdS": 225841,
+ "PX": "345185,345047.02",
+ "PY": "567235,567092.21",
+ "In": "KAB-L-L056003-1"
+ },
+ {
+ "IdS": 225842,
+ "PX": "345185,345380,345175,344610,342464.99",
+ "PY": "567235,567080,566830,564995,563600.07",
+ "In": "KAB-L-SAUERLAND 2-1"
+ },
+ {
+ "IdS": 225843,
+ "PX": "342464.99,342665,344650,347905,349470,349500",
+ "PY": "563600.07,563645,564925,561660,563385,563400",
+ "In": "KAB-L-SAUERLAND 3-1"
+ },
+ {
+ "IdS": 225856,
+ "PX": "356000,355750",
+ "PY": "554345,554800",
+ "In": "KAB-C-055002-1"
+ },
+ {
+ "IdS": 225859,
+ "PX": "330105,330105",
+ "PY": "564215,564000",
+ "In": "KAB-L-L079001-44"
+ },
+ {
+ "IdS": 225864,
+ "PX": "341453.26,341314.52",
+ "PY": "575674.42,575485.03",
+ "In": "KAB-L-L058001-21"
+ },
+ {
+ "IdS": 225865,
+ "PX": "341314.52,341035.07",
+ "PY": "575485.03,575113.83",
+ "In": "KAB-L-L058001-22"
+ },
+ {
+ "IdS": 225866,
+ "PX": "341314.52,341135",
+ "PY": "575485.03,575645",
+ "In": "KAB-L-L058001-23"
+ },
+ {
+ "IdS": 225867,
+ "PX": "342000,341940",
+ "PY": "576400,576320",
+ "In": "KAB-L-L058001-8"
+ },
+ {
+ "IdS": 225869,
+ "PX": "341940,341620.93",
+ "PY": "576320,575888.37",
+ "In": "KAB-L-L058001-14"
+ },
+ {
+ "IdS": 225870,
+ "PX": "341620.93,341453.26",
+ "PY": "575888.37,575674.42",
+ "In": "KAB-L-L058001-24"
+ },
+ {
+ "IdS": 225871,
+ "PX": "341940,341800",
+ "PY": "576320,576425",
+ "In": "KAB-L-L058001-25"
+ },
+ {
+ "IdS": 225872,
+ "PX": "341620.93,341455",
+ "PY": "575888.37,576005",
+ "In": "KAB-L-L058001-26"
+ },
+ {
+ "IdS": 225892,
+ "PX": "342650,342599.55",
+ "PY": "563950,563835.33",
+ "In": "KAB-C-007027-2"
+ },
+ {
+ "IdS": 225893,
+ "PX": "342599.55,342500",
+ "PY": "563835.33,563600",
+ "In": "KAB-C-007054-1"
+ },
+ {
+ "IdS": 225896,
+ "PX": "376700,376600.82",
+ "PY": "544050,543950.32",
+ "In": "KAB-C-052039-1"
+ },
+ {
+ "IdS": 225907,
+ "PX": "336514.86,336514.93",
+ "PY": "579989.82,579869.94",
+ "In": "KAB-C-063025-5"
+ },
+ {
+ "IdS": 225908,
+ "PX": "336514.93,336515",
+ "PY": "579869.94,579820",
+ "In": "KAB-C-063051-1"
+ },
+ {
+ "IdS": 225915,
+ "PX": "335750,335640.08",
+ "PY": "572500,572310.37",
+ "In": "KAB-L-L013001-17"
+ },
+ {
+ "IdS": 225916,
+ "PX": "335640.08,335575.16",
+ "PY": "572310.37,572195.08",
+ "In": "KAB-L-L013001-18"
+ },
+ {
+ "IdS": 225917,
+ "PX": "335640.08,335540",
+ "PY": "572310.37,572355",
+ "In": "KAB-L-L013001-8"
+ },
+ {
+ "IdS": 225922,
+ "PX": "333395,332840,332675.04",
+ "PY": "569940,569940,569800.13",
+ "In": "KAB-L-GL-STHU-ELFR-1"
+ },
+ {
+ "IdS": 225923,
+ "PX": "366790,366830",
+ "PY": "555330,555305",
+ "In": "KAB-C-FGN001049-1"
+ },
+ {
+ "IdS": 225924,
+ "PX": "366830,366888.56",
+ "PY": "555305,555269.82",
+ "In": "KAB-C-FGN001096-1"
+ },
+ {
+ "IdS": 225929,
+ "PX": "342700.05,342200",
+ "PY": "592400.05,592240",
+ "In": "KAB-L-L060002-1"
+ },
+ {
+ "IdS": 225932,
+ "PX": "342700.05,341160",
+ "PY": "592400.05,592400",
+ "In": "KAB-L-L060005-1"
+ },
+ {
+ "IdS": 225933,
+ "PX": "341160,339595",
+ "PY": "592400,592400",
+ "In": "KAB-L-L060005-2"
+ },
+ {
+ "IdS": 225934,
+ "PX": "341160,341160",
+ "PY": "592400,592535",
+ "In": "KAB-L-L060005-3"
+ },
+ {
+ "IdS": 225935,
+ "PX": "339595,339595",
+ "PY": "592400,592580",
+ "In": "KAB-L-L060005-5"
+ },
+ {
+ "IdS": 225936,
+ "PX": "339595,338000",
+ "PY": "592400,592400",
+ "In": "KAB-L-L060005-4"
+ },
+ {
+ "IdS": 225937,
+ "PX": "338000,337925,337349.93",
+ "PY": "592400,592400,592089.86",
+ "In": "KAB-L-L060005-6"
+ },
+ {
+ "IdS": 225938,
+ "PX": "338000,338000",
+ "PY": "592400,592600",
+ "In": "KAB-L-L060005-7"
+ },
+ {
+ "IdS": 225939,
+ "PX": "332290,332185,332185",
+ "PY": "564205,564205,563875",
+ "In": "KAB-L-GL-PORZ-VERH-1"
+ },
+ {
+ "IdS": 225940,
+ "PX": "348150,348375,349600",
+ "PY": "582530,582530,581300",
+ "In": "KAB-C-F024004-1"
+ },
+ {
+ "IdS": 225941,
+ "PX": "348849.95,348150",
+ "PY": "581494.96,581700",
+ "In": "KAB-C-066012-2"
+ },
+ {
+ "IdS": 225942,
+ "PX": "348150,347650",
+ "PY": "581700,581700",
+ "In": "KAB-C-024001-1"
+ },
+ {
+ "IdS": 225945,
+ "PX": "348150,348255,348150",
+ "PY": "582530,582360,582180",
+ "In": "KAB-C-F024001-1"
+ },
+ {
+ "IdS": 225946,
+ "PX": "348150,348050,348150",
+ "PY": "582530,582360,582180",
+ "In": "KAB-C-F024002-1"
+ },
+ {
+ "IdS": 225947,
+ "PX": "348150,348240,348150",
+ "PY": "582180,582180,581895",
+ "In": "KAB-C-F024003-1"
+ },
+ {
+ "IdS": 225948,
+ "PX": "348150,348060,348150",
+ "PY": "582180,582180,581895",
+ "In": "KAB-C-F024011-1"
+ },
+ {
+ "IdS": 225951,
+ "PX": "348563.77,348570",
+ "PY": "577243.54,577230",
+ "In": "KAB-C-006055-1"
+ },
+ {
+ "IdS": 225952,
+ "PX": "332250,331945.68",
+ "PY": "569550,569752.36",
+ "In": "KAB-L-L098007-1"
+ },
+ {
+ "IdS": 225953,
+ "PX": "331945.68,332470",
+ "PY": "569752.36,570465",
+ "In": "KAB-L-L098008-1"
+ },
+ {
+ "IdS": 225954,
+ "PX": "332470,332750",
+ "PY": "570465,570465",
+ "In": "KAB-L-L098008-3"
+ },
+ {
+ "IdS": 225956,
+ "PX": "332470,332755",
+ "PY": "570465,571590",
+ "In": "KAB-L-L098008-2"
+ },
+ {
+ "IdS": 225957,
+ "PX": "332755,332960",
+ "PY": "571590,571590",
+ "In": "KAB-L-L098008-5"
+ },
+ {
+ "IdS": 225958,
+ "PX": "332755,333415",
+ "PY": "571590,573720",
+ "In": "KAB-L-L098008-4"
+ },
+ {
+ "IdS": 225959,
+ "PX": "333415,334395",
+ "PY": "573720,573720",
+ "In": "KAB-L-L098008-7"
+ },
+ {
+ "IdS": 225961,
+ "PX": "333415,334380",
+ "PY": "573720,575530",
+ "In": "KAB-L-L098008-6"
+ },
+ {
+ "IdS": 225962,
+ "PX": "334380,333290",
+ "PY": "575530,575530",
+ "In": "KAB-L-L098008-9"
+ },
+ {
+ "IdS": 225963,
+ "PX": "334380,334385",
+ "PY": "575530,577105",
+ "In": "KAB-L-L098008-8"
+ },
+ {
+ "IdS": 225964,
+ "PX": "334385,336328.42",
+ "PY": "577105,576125.67",
+ "In": "KAB-L-L098009-1"
+ },
+ {
+ "IdS": 225965,
+ "PX": "336328.42,336330",
+ "PY": "576125.67,576435",
+ "In": "KAB-L-L098009-3"
+ },
+ {
+ "IdS": 225966,
+ "PX": "336328.42,336575,336570",
+ "PY": "576125.67,576005,577000",
+ "In": "KAB-L-L098009-2"
+ },
+ {
+ "IdS": 225968,
+ "PX": "336570,337200",
+ "PY": "577000,577000",
+ "In": "KAB-L-L098011-1"
+ },
+ {
+ "IdS": 225969,
+ "PX": "336559.91,336328.42",
+ "PY": "575554.73,576125.67",
+ "In": "KAB-L-L027003-2"
+ },
+ {
+ "IdS": 225988,
+ "PX": "341040.04,341494.67",
+ "PY": "545894.98,545458.32",
+ "In": "KAB-C-050083-1"
+ },
+ {
+ "IdS": 225989,
+ "PX": "341494.67,341905,341964.9",
+ "PY": "545458.32,545060,545004.83",
+ "In": "KAB-C-050102-1"
+ },
+ {
+ "IdS": 225990,
+ "PX": "371650,371350",
+ "PY": "549850,549500",
+ "In": "KAB-C-FGN003061-2"
+ },
+ {
+ "IdS": 225992,
+ "PX": "354633.15,354701.99",
+ "PY": "559932.09,560100.95",
+ "In": "KAB-C-042087-1"
+ },
+ {
+ "IdS": 225993,
+ "PX": "354701.99,354800",
+ "PY": "560100.95,560300",
+ "In": "KAB-C-042098-1"
+ },
+ {
+ "IdS": 225994,
+ "PX": "331455,332250",
+ "PY": "568445,569550",
+ "In": "KAB-L-L098006-2"
+ },
+ {
+ "IdS": 225995,
+ "PX": "331455,331925",
+ "PY": "568445,568445",
+ "In": "KAB-L-L098006-3"
+ },
+ {
+ "IdS": 225996,
+ "PX": "331455,331455",
+ "PY": "566870,568445",
+ "In": "KAB-L-L098006-1"
+ },
+ {
+ "IdS": 226015,
+ "PX": "342850,343167.33",
+ "PY": "558800,558209.3",
+ "In": "KAB-C-008011-1"
+ },
+ {
+ "IdS": 226016,
+ "PX": "343167.33,343499.85",
+ "PY": "558209.3,557590.11",
+ "In": "KAB-C-008025-1"
+ },
+ {
+ "IdS": 226017,
+ "PX": "335700,335850,335925",
+ "PY": "570950,570950,570950",
+ "In": "KAB-C-001010-2"
+ },
+ {
+ "IdS": 226028,
+ "PX": "336380,336410,336910",
+ "PY": "563880,563865,563130",
+ "In": "KAB-L-GL-PORZ-NSIE-1"
+ },
+ {
+ "IdS": 226029,
+ "PX": "336910,336965,336540,337440",
+ "PY": "563130,563065,562685,561295",
+ "In": "KAB-L-GL-NSIE-AEGI-1"
+ },
+ {
+ "IdS": 226030,
+ "PX": "336910,336790",
+ "PY": "563130,563045",
+ "In": "KAB-L-L139003-1"
+ },
+ {
+ "IdS": 226035,
+ "PX": "352719.49,353227.1",
+ "PY": "560595.05,559666.45",
+ "In": "KAB-C-056026-1"
+ },
+ {
+ "IdS": 226036,
+ "PX": "353227.1,353875.03",
+ "PY": "559666.45,558480.57",
+ "In": "KAB-C-056029-1"
+ },
+ {
+ "IdS": 226040,
+ "PX": "331235,331455",
+ "PY": "566075,566870",
+ "In": "KAB-L-L098005-6"
+ },
+ {
+ "IdS": 226041,
+ "PX": "331235,331570",
+ "PY": "566075,566075",
+ "In": "KAB-L-L098005-7"
+ },
+ {
+ "IdS": 226042,
+ "PX": "330993,331235",
+ "PY": "565530.69,566075",
+ "In": "KAB-L-L098005-4"
+ },
+ {
+ "IdS": 226043,
+ "PX": "330993,331435",
+ "PY": "565530.69,565530",
+ "In": "KAB-L-L098005-5"
+ },
+ {
+ "IdS": 226044,
+ "PX": "330710,330993",
+ "PY": "565095,565530.69",
+ "In": "KAB-L-L098005-2"
+ },
+ {
+ "IdS": 226045,
+ "PX": "330710,330360",
+ "PY": "565095,565095",
+ "In": "KAB-L-L098005-3"
+ },
+ {
+ "IdS": 226046,
+ "PX": "330105,330710",
+ "PY": "564215,565095",
+ "In": "KAB-L-L098005-1"
+ },
+ {
+ "IdS": 226047,
+ "PX": "329700,329700,330105",
+ "PY": "564000,564215,564215",
+ "In": "KAB-L-L098004-1"
+ },
+ {
+ "IdS": 226058,
+ "PX": "329700,330105",
+ "PY": "564000,564215",
+ "In": "KAB-L-L079005-1"
+ },
+ {
+ "IdS": 226059,
+ "PX": "350602.6,351583.37",
+ "PY": "562376.15,561550.65",
+ "In": "KAB-C-056023-1"
+ },
+ {
+ "IdS": 226060,
+ "PX": "351583.37,352719.49",
+ "PY": "561550.65,560595.05",
+ "In": "KAB-C-056030-1"
+ },
+ {
+ "IdS": 226061,
+ "PX": "371350,371299.9",
+ "PY": "548800,548724.86",
+ "In": "KAB-C-FGN003066-1"
+ },
+ {
+ "IdS": 226062,
+ "PX": "371299.9,371250",
+ "PY": "548724.86,548650",
+ "In": "KAB-C-FGN003078-1"
+ },
+ {
+ "IdS": 226065,
+ "PX": "342840,342855,343630,344020,344344.94",
+ "PY": "558780,558770,557325,557325,556709.12",
+ "In": "KAB-L-GL-STAF-WRBS-1"
+ },
+ {
+ "IdS": 226066,
+ "PX": "344344.94,345085,345155,345160,345335,345340,346115,346490,346490,346500,346515,346905,347025",
+ "PY": "556709.12,555320,555270,555260,555135,555100,554475,554900,555200,555205,555205,555590,555590",
+ "In": "KAB-L-GL-KSR 66-3"
+ },
+ {
+ "IdS": 226067,
+ "PX": "344344.94,344600",
+ "PY": "556709.12,556835",
+ "In": "KAB-L-L139004-1"
+ },
+ {
+ "IdS": 226068,
+ "PX": "378150,377959.43",
+ "PY": "543050,543160.04",
+ "In": "KAB-C-052011-2"
+ },
+ {
+ "IdS": 226069,
+ "PX": "377959.43,377650",
+ "PY": "543160.04,543340",
+ "In": "KAB-C-052040-1"
+ },
+ {
+ "IdS": 226074,
+ "PX": "341400,341860",
+ "PY": "557500,557640",
+ "In": "KAB-L-L999022-1"
+ },
+ {
+ "IdS": 226075,
+ "PX": "341860,341860",
+ "PY": "557730,557640",
+ "In": "KAB-L-L083008-3"
+ },
+ {
+ "IdS": 226077,
+ "PX": "342234.83,342774.23,343619.93,344402.34",
+ "PY": "557594.56,557279.98,557285.29,555879.95",
+ "In": "KAB-L-GL-KSR 23-5"
+ },
+ {
+ "IdS": 226078,
+ "PX": "341860,342234.83",
+ "PY": "557640,557594.56",
+ "In": "KAB-L-L139005-1"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/MessagesMap/Empty.html b/MessagesMap/Empty.html
new file mode 100644
index 000000000..57b2b85fb
--- /dev/null
+++ b/MessagesMap/Empty.html
@@ -0,0 +1,6 @@
+
+
+
+ Daten werden geladen...
+
+
diff --git a/MessagesMap/Index.aspx b/MessagesMap/Index.aspx
new file mode 100644
index 000000000..c0946dbad
--- /dev/null
+++ b/MessagesMap/Index.aspx
@@ -0,0 +1,114 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="TALAS_V5.Map.Index" %>
+
+<%@ Register Assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web" TagPrefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/KueStatic.json b/MessagesMap/KueStatic.json
new file mode 100644
index 000000000..5f492989e
--- /dev/null
+++ b/MessagesMap/KueStatic.json
@@ -0,0 +1,11633 @@
+{
+ "Name": "Liste aller Dienste",
+ "Zeitstempel": "2021-04-20T22:16:42.4334911+02:00",
+ "Services": [
+ {
+ "IdLD": 18600,
+ "IdS": 208608,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 208609,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 208611,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 208614,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 208613,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 208002,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 208004,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 208003,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 208006,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 202687,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 202685,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 204789,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 217331,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 204796,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207437,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207438,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207439,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207440,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207644,
+ "Li": "kue.aspx?idLD=18600&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 222818,
+ "Li": "kue.aspx?idLD=18600&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 223510,
+ "Li": "kue.aspx?idLD=18600&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 223511,
+ "Li": "kue.aspx?idLD=18600&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 224478,
+ "Li": "kue.aspx?idLD=18600&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 214493,
+ "Li": "kue.aspx?idLD=18600&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 213364,
+ "Li": "kue.aspx?idLD=18600&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 213365,
+ "Li": "kue.aspx?idLD=18600&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 214494,
+ "Li": "kue.aspx?idLD=18600&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 214497,
+ "Li": "kue.aspx?idLD=18600&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 214504,
+ "Li": "kue.aspx?idLD=18600&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 225951,
+ "Li": "kue.aspx?idLD=18600&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 214493,
+ "Li": "kue.aspx?idLD=22284&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 213364,
+ "Li": "kue.aspx?idLD=22284&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 213365,
+ "Li": "kue.aspx?idLD=22284&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 214494,
+ "Li": "kue.aspx?idLD=22284&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 214497,
+ "Li": "kue.aspx?idLD=22284&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 214504,
+ "Li": "kue.aspx?idLD=22284&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 225951,
+ "Li": "kue.aspx?idLD=22284&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 222818,
+ "Li": "kue.aspx?idLD=22284&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 223510,
+ "Li": "kue.aspx?idLD=22284&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 223511,
+ "Li": "kue.aspx?idLD=22284&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 224478,
+ "Li": "kue.aspx?idLD=22284&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 208608,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 208609,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 208611,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 208614,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 208613,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 208002,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 208004,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 208003,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 208006,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 202687,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 202685,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 204789,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 217331,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 204796,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207437,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207438,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207439,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207440,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207644,
+ "Li": "kue.aspx?idLD=22284&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25420,
+ "IdS": 222181,
+ "Li": "kue.aspx?idLD=25420&slot=1",
+ "Na": "008 Rauschendorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25420,
+ "IdS": 208486,
+ "Li": "kue.aspx?idLD=25420&slot=1",
+ "Na": "008 Rauschendorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25420,
+ "IdS": 221384,
+ "Li": "kue.aspx?idLD=25420&slot=1",
+ "Na": "008 Rauschendorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 204197,
+ "Li": "kue.aspx?idLD=25426&slot=1",
+ "Na": "26/1 Forchheim + 26/1/15 Denkendorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 215155,
+ "Li": "kue.aspx?idLD=25426&slot=1",
+ "Na": "26/1 Forchheim + 26/1/15 Denkendorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 203684,
+ "Li": "kue.aspx?idLD=25426&slot=1",
+ "Na": "26/1 Forchheim + 26/1/15 Denkendorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 203688,
+ "Li": "kue.aspx?idLD=25426&slot=1",
+ "Na": "26/1 Forchheim + 26/1/15 Denkendorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 215159,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 215161,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 215163,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 215164,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 215165,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 204275,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 215168,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 222912,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214545,
+ "Li": "kue.aspx?idLD=25446&slot=1",
+ "Na": "1 + 013/4/5 Hamborn",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214544,
+ "Li": "kue.aspx?idLD=25446&slot=1",
+ "Na": "1 + 013/4/5 Hamborn",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 202630,
+ "Li": "kue.aspx?idLD=25446&slot=1",
+ "Na": "1 + 013/4/5 Hamborn",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 215780,
+ "Li": "kue.aspx?idLD=25446&slot=1",
+ "Na": "1 + 013/4/5 Hamborn",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 207046,
+ "Li": "kue.aspx?idLD=25446&slot=1",
+ "Na": "1 + 013/4/5 Hamborn",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 207045,
+ "Li": "kue.aspx?idLD=25446&slot=1",
+ "Na": "1 + 013/4/5 Hamborn",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 207044,
+ "Li": "kue.aspx?idLD=25446&slot=1",
+ "Na": "1 + 013/4/5 Hamborn",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 207043,
+ "Li": "kue.aspx?idLD=25446&slot=1",
+ "Na": "1 + 013/4/5 Hamborn",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 205029,
+ "Li": "kue.aspx?idLD=25446&slot=1",
+ "Na": "1 + 013/4/5 Hamborn",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 205031,
+ "Li": "kue.aspx?idLD=25446&slot=1",
+ "Na": "1 + 013/4/5 Hamborn",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 205030,
+ "Li": "kue.aspx?idLD=25446&slot=1",
+ "Na": "1 + 013/4/5 Hamborn",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214340,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 226017,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208501,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214342,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214343,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208497,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221815,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221816,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214350,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221621,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221622,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 218998,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 209048,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 209050,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 209049,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 209052,
+ "Li": "kue.aspx?idLD=25446&slot=10",
+ "Na": "1+1/29 Grillo Funke",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 218998,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208663,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214352,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 222161,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 222162,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214356,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208670,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208673,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 218444,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214340,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 226017,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208501,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214342,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214343,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208496,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221815,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221816,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214350,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221621,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221622,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 218445,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208678,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214068,
+ "Li": "kue.aspx?idLD=25446&slot=11",
+ "Na": "1+1/70+1/16 Holsterhausen",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 215229,
+ "Li": "kue.aspx?idLD=25446&slot=4",
+ "Na": "13/4 MH-Rheinrohr",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 207821,
+ "Li": "kue.aspx?idLD=25446&slot=4",
+ "Na": "13/4 MH-Rheinrohr",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 207823,
+ "Li": "kue.aspx?idLD=25446&slot=4",
+ "Na": "13/4 MH-Rheinrohr",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 207822,
+ "Li": "kue.aspx?idLD=25446&slot=4",
+ "Na": "13/4 MH-Rheinrohr",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214340,
+ "Li": "kue.aspx?idLD=25446&slot=8",
+ "Na": "1+1/61+1/49+1/8 Prosper",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 226017,
+ "Li": "kue.aspx?idLD=25446&slot=8",
+ "Na": "1+1/61+1/49+1/8 Prosper",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208501,
+ "Li": "kue.aspx?idLD=25446&slot=8",
+ "Na": "1+1/61+1/49+1/8 Prosper",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214342,
+ "Li": "kue.aspx?idLD=25446&slot=8",
+ "Na": "1+1/61+1/49+1/8 Prosper",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208505,
+ "Li": "kue.aspx?idLD=25446&slot=8",
+ "Na": "1+1/61+1/49+1/8 Prosper",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 217208,
+ "Li": "kue.aspx?idLD=25452&slot=3",
+ "Na": "016 + 16/2 + 21/8 Grevel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 207333,
+ "Li": "kue.aspx?idLD=25452&slot=3",
+ "Na": "016 + 16/2 + 21/8 Grevel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 207334,
+ "Li": "kue.aspx?idLD=25452&slot=3",
+ "Na": "016 + 16/2 + 21/8 Grevel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 207860,
+ "Li": "kue.aspx?idLD=25452&slot=3",
+ "Na": "016 + 16/2 + 21/8 Grevel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 207862,
+ "Li": "kue.aspx?idLD=25452&slot=3",
+ "Na": "016 + 16/2 + 21/8 Grevel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 207861,
+ "Li": "kue.aspx?idLD=25452&slot=3",
+ "Na": "016 + 16/2 + 21/8 Grevel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 207864,
+ "Li": "kue.aspx?idLD=25452&slot=3",
+ "Na": "016 + 16/2 + 21/8 Grevel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 207863,
+ "Li": "kue.aspx?idLD=25452&slot=3",
+ "Na": "016 + 16/2 + 21/8 Grevel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 209238,
+ "Li": "kue.aspx?idLD=25452&slot=3",
+ "Na": "016 + 16/2 + 21/8 Grevel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 219411,
+ "Li": "kue.aspx?idLD=25456&slot=1",
+ "Na": "027/1 Heiden-Borken",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 219410,
+ "Li": "kue.aspx?idLD=25456&slot=1",
+ "Na": "027/1 Heiden-Borken",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 219406,
+ "Li": "kue.aspx?idLD=25456&slot=1",
+ "Na": "027/1 Heiden-Borken",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 219405,
+ "Li": "kue.aspx?idLD=25456&slot=1",
+ "Na": "027/1 Heiden-Borken",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 221459,
+ "Li": "kue.aspx?idLD=25456&slot=2",
+ "Na": "13 Coesfeld LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 221458,
+ "Li": "kue.aspx?idLD=25456&slot=2",
+ "Na": "13 Coesfeld LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 221478,
+ "Li": "kue.aspx?idLD=25456&slot=2",
+ "Na": "13 Coesfeld LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 221477,
+ "Li": "kue.aspx?idLD=25456&slot=2",
+ "Na": "13 Coesfeld LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 200988,
+ "Li": "kue.aspx?idLD=25456&slot=3",
+ "Na": "13/7 + 13/7/1 Lippramsdorf CWH",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 207829,
+ "Li": "kue.aspx?idLD=25456&slot=3",
+ "Na": "13/7 + 13/7/1 Lippramsdorf CWH",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 221639,
+ "Li": "kue.aspx?idLD=25466&slot=1",
+ "Na": "13/5 Löningen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 221638,
+ "Li": "kue.aspx?idLD=25466&slot=1",
+ "Na": "13/5 Löningen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 219851,
+ "Li": "kue.aspx?idLD=25466&slot=1",
+ "Na": "13/5 Löningen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 221802,
+ "Li": "kue.aspx?idLD=25466&slot=1",
+ "Na": "13/5 Löningen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 221801,
+ "Li": "kue.aspx?idLD=25466&slot=1",
+ "Na": "13/5 Löningen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 221795,
+ "Li": "kue.aspx?idLD=25466&slot=1",
+ "Na": "13/5 Löningen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 221794,
+ "Li": "kue.aspx?idLD=25466&slot=1",
+ "Na": "13/5 Löningen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 221797,
+ "Li": "kue.aspx?idLD=25466&slot=1",
+ "Na": "13/5 Löningen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 221800,
+ "Li": "kue.aspx?idLD=25466&slot=1",
+ "Na": "13/5 Löningen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 221799,
+ "Li": "kue.aspx?idLD=25466&slot=1",
+ "Na": "13/5 Löningen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 209000,
+ "Li": "kue.aspx?idLD=25466&slot=1",
+ "Na": "13/5 Löningen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 208998,
+ "Li": "kue.aspx?idLD=25466&slot=1",
+ "Na": "13/5 Löningen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 202164,
+ "Li": "kue.aspx?idLD=25476&slot=2",
+ "Na": "11 Rüsselsheim Opelwerk",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 202166,
+ "Li": "kue.aspx?idLD=25476&slot=2",
+ "Na": "11 Rüsselsheim Opelwerk",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 202165,
+ "Li": "kue.aspx?idLD=25476&slot=2",
+ "Na": "11 Rüsselsheim Opelwerk",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 214919,
+ "Li": "kue.aspx?idLD=25476&slot=3",
+ "Na": "22 Sindlingen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 217615,
+ "Li": "kue.aspx?idLD=25476&slot=3",
+ "Na": "22 Sindlingen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215466,
+ "Li": "kue.aspx?idLD=25478&slot=1",
+ "Na": "51 Wallbach FGN",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215468,
+ "Li": "kue.aspx?idLD=25478&slot=1",
+ "Na": "51 Wallbach FGN",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 205923,
+ "Li": "kue.aspx?idLD=25478&slot=1",
+ "Na": "51 Wallbach FGN",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 206330,
+ "Li": "kue.aspx?idLD=25478&slot=1",
+ "Na": "51 Wallbach FGN",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 222992,
+ "Li": "kue.aspx?idLD=25478&slot=1",
+ "Na": "51 Wallbach FGN",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 223808,
+ "Li": "kue.aspx?idLD=25478&slot=1",
+ "Na": "51 Wallbach FGN",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25488,
+ "IdS": 226059,
+ "Li": "kue.aspx?idLD=25488&slot=2",
+ "Na": "56 Homberg-Maulbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25488,
+ "IdS": 226060,
+ "Li": "kue.aspx?idLD=25488&slot=2",
+ "Na": "56 Homberg-Maulbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 221074,
+ "Li": "kue.aspx?idLD=25508&slot=2",
+ "Na": "202 (28p.)+64 Niederbonsfeld",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 221075,
+ "Li": "kue.aspx?idLD=25508&slot=2",
+ "Na": "202 (28p.)+64 Niederbonsfeld",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 214641,
+ "Li": "kue.aspx?idLD=25508&slot=2",
+ "Na": "202 (28p.)+64 Niederbonsfeld",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 206084,
+ "Li": "kue.aspx?idLD=25508&slot=2",
+ "Na": "202 (28p.)+64 Niederbonsfeld",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 206085,
+ "Li": "kue.aspx?idLD=25508&slot=2",
+ "Na": "202 (28p.)+64 Niederbonsfeld",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 214638,
+ "Li": "kue.aspx?idLD=25508&slot=2",
+ "Na": "202 (28p.)+64 Niederbonsfeld",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 200188,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 200186,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 200190,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 202464,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 202462,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 202460,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 202461,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 202459,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 205025,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 224781,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 224780,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 221077,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 221076,
+ "Li": "kue.aspx?idLD=25508&slot=3",
+ "Na": "202 (16p.) Vohwinkel",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 225893,
+ "Li": "kue.aspx?idLD=25524&slot=1",
+ "Na": "7+7/74 Eichen MR",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 225892,
+ "Li": "kue.aspx?idLD=25524&slot=1",
+ "Na": "7+7/74 Eichen MR",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 214896,
+ "Li": "kue.aspx?idLD=25524&slot=1",
+ "Na": "7+7/74 Eichen MR",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 214898,
+ "Li": "kue.aspx?idLD=25524&slot=1",
+ "Na": "7+7/74 Eichen MR",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 207616,
+ "Li": "kue.aspx?idLD=25524&slot=1",
+ "Na": "7+7/74 Eichen MR",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 222983,
+ "Li": "kue.aspx?idLD=25524&slot=1",
+ "Na": "7+7/74 Eichen MR",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 209747,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 209746,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 209015,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 223311,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 223310,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 209012,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 208541,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 224433,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 224432,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 223128,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 223127,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 223110,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 208534,
+ "Li": "kue.aspx?idLD=25530&slot=1",
+ "Na": "14/048 + 14/048 + 14/1-048 Bremen, Mobil Oil",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 208534,
+ "Li": "kue.aspx?idLD=25530&slot=3",
+ "Na": "14/048 Osnab.-Vechta",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 223110,
+ "Li": "kue.aspx?idLD=25530&slot=3",
+ "Na": "14/048 Osnab.-Vechta",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 223127,
+ "Li": "kue.aspx?idLD=25530&slot=3",
+ "Na": "14/048 Osnab.-Vechta",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 223128,
+ "Li": "kue.aspx?idLD=25530&slot=3",
+ "Na": "14/048 Osnab.-Vechta",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 224432,
+ "Li": "kue.aspx?idLD=25530&slot=3",
+ "Na": "14/048 Osnab.-Vechta",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 224433,
+ "Li": "kue.aspx?idLD=25530&slot=3",
+ "Na": "14/048 Osnab.-Vechta",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 208541,
+ "Li": "kue.aspx?idLD=25530&slot=3",
+ "Na": "14/048 Osnab.-Vechta",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209298,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209300,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209287,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 215236,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222548,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222547,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 200211,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 203795,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 215245,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 215242,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209271,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 221027,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209270,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 223896,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 215239,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209294,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 215238,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 215237,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209302,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209276,
+ "Li": "kue.aspx?idLD=25534&slot=4",
+ "Na": "22+200 Monheim Düker",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 221605,
+ "Li": "kue.aspx?idLD=25534&slot=5",
+ "Na": "22 Windhagen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 221604,
+ "Li": "kue.aspx?idLD=25534&slot=5",
+ "Na": "22 Windhagen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209086,
+ "Li": "kue.aspx?idLD=25534&slot=5",
+ "Na": "22 Windhagen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209087,
+ "Li": "kue.aspx?idLD=25534&slot=5",
+ "Na": "22 Windhagen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 223913,
+ "Li": "kue.aspx?idLD=25534&slot=5",
+ "Na": "22 Windhagen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 223884,
+ "Li": "kue.aspx?idLD=25534&slot=5",
+ "Na": "22 Windhagen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 221500,
+ "Li": "kue.aspx?idLD=25534&slot=5",
+ "Na": "22 Windhagen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 220007,
+ "Li": "kue.aspx?idLD=25534&slot=5",
+ "Na": "22 Windhagen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209122,
+ "Li": "kue.aspx?idLD=25534&slot=6",
+ "Na": "3+8/38 Bonn-Beuel",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209124,
+ "Li": "kue.aspx?idLD=25534&slot=6",
+ "Na": "3+8/38 Bonn-Beuel",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222269,
+ "Li": "kue.aspx?idLD=25534&slot=6",
+ "Na": "3+8/38 Bonn-Beuel",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222270,
+ "Li": "kue.aspx?idLD=25534&slot=6",
+ "Na": "3+8/38 Bonn-Beuel",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222270,
+ "Li": "kue.aspx?idLD=25534&slot=8",
+ "Na": "3+3/23+22/3+22/3/6+22/3/1 Niederkassel Waldstr.",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222269,
+ "Li": "kue.aspx?idLD=25534&slot=8",
+ "Na": "3+3/23+22/3+22/3/6+22/3/1 Niederkassel Waldstr.",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 209122,
+ "Li": "kue.aspx?idLD=25534&slot=8",
+ "Na": "3+3/23+22/3+22/3/6+22/3/1 Niederkassel Waldstr.",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 219574,
+ "Li": "kue.aspx?idLD=25534&slot=8",
+ "Na": "3+3/23+22/3+22/3/6+22/3/1 Niederkassel Waldstr.",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 207499,
+ "Li": "kue.aspx?idLD=25534&slot=8",
+ "Na": "3+3/23+22/3+22/3/6+22/3/1 Niederkassel Waldstr.",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 218454,
+ "Li": "kue.aspx?idLD=25534&slot=8",
+ "Na": "3+3/23+22/3+22/3/6+22/3/1 Niederkassel Waldstr.",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 218435,
+ "Li": "kue.aspx?idLD=25534&slot=8",
+ "Na": "3+3/23+22/3+22/3/6+22/3/1 Niederkassel Waldstr.",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 218453,
+ "Li": "kue.aspx?idLD=25534&slot=8",
+ "Na": "3+3/23+22/3+22/3/6+22/3/1 Niederkassel Waldstr.",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 207357,
+ "Li": "kue.aspx?idLD=25534&slot=8",
+ "Na": "3+3/23+22/3+22/3/6+22/3/1 Niederkassel Waldstr.",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 207355,
+ "Li": "kue.aspx?idLD=25534&slot=8",
+ "Na": "3+3/23+22/3+22/3/6+22/3/1 Niederkassel Waldstr.",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 207494,
+ "Li": "kue.aspx?idLD=25534&slot=8",
+ "Na": "3+3/23+22/3+22/3/6+22/3/1 Niederkassel Waldstr.",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 207495,
+ "Li": "kue.aspx?idLD=25534&slot=8",
+ "Na": "3+3/23+22/3+22/3/6+22/3/1 Niederkassel Waldstr.",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25560,
+ "IdS": 218601,
+ "Li": "kue.aspx?idLD=25560&slot=2",
+ "Na": "22/19 Staffel",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 200687,
+ "Li": "kue.aspx?idLD=25586&slot=3",
+ "Na": "999/7/1(14p)+7 Letmathe",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 208941,
+ "Li": "kue.aspx?idLD=25586&slot=3",
+ "Na": "999/7/1(14p)+7 Letmathe",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 207592,
+ "Li": "kue.aspx?idLD=25586&slot=3",
+ "Na": "999/7/1(14p)+7 Letmathe",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 207594,
+ "Li": "kue.aspx?idLD=25586&slot=3",
+ "Na": "999/7/1(14p)+7 Letmathe",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 207593,
+ "Li": "kue.aspx?idLD=25586&slot=3",
+ "Na": "999/7/1(14p)+7 Letmathe",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 200762,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 225941,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 224025,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 224024,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 208583,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 215206,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 208578,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 215207,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 215211,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 204808,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 215212,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 204798,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25580,
+ "IdS": 200132,
+ "Li": "kue.aspx?idLD=25580&slot=1",
+ "Na": "50 Bocholz",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25580,
+ "IdS": 203784,
+ "Li": "kue.aspx?idLD=25580&slot=1",
+ "Na": "50 Bocholz",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 214493,
+ "Li": "kue.aspx?idLD=25592&slot=1",
+ "Na": "6/017 Herford Schwarzenmoor",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 213364,
+ "Li": "kue.aspx?idLD=25592&slot=1",
+ "Na": "6/017 Herford Schwarzenmoor",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 213365,
+ "Li": "kue.aspx?idLD=25592&slot=1",
+ "Na": "6/017 Herford Schwarzenmoor",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 214494,
+ "Li": "kue.aspx?idLD=25592&slot=1",
+ "Na": "6/017 Herford Schwarzenmoor",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 214497,
+ "Li": "kue.aspx?idLD=25592&slot=1",
+ "Na": "6/017 Herford Schwarzenmoor",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 214504,
+ "Li": "kue.aspx?idLD=25592&slot=1",
+ "Na": "6/017 Herford Schwarzenmoor",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 225951,
+ "Li": "kue.aspx?idLD=25592&slot=1",
+ "Na": "6/017 Herford Schwarzenmoor",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 214545,
+ "Li": "kue.aspx?idLD=25592&slot=2",
+ "Na": "16/060 Herringhausen 1",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 221944,
+ "Li": "kue.aspx?idLD=25592&slot=2",
+ "Na": "16/060 Herringhausen 1",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 221942,
+ "Li": "kue.aspx?idLD=25592&slot=2",
+ "Na": "16/060 Herringhausen 1",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 210140,
+ "Li": "kue.aspx?idLD=25592&slot=2",
+ "Na": "16/060 Herringhausen 1",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 210139,
+ "Li": "kue.aspx?idLD=25592&slot=2",
+ "Na": "16/060 Herringhausen 1",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 210135,
+ "Li": "kue.aspx?idLD=25592&slot=2",
+ "Na": "16/060 Herringhausen 1",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 210136,
+ "Li": "kue.aspx?idLD=25592&slot=2",
+ "Na": "16/060 Herringhausen 1",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 210138,
+ "Li": "kue.aspx?idLD=25592&slot=2",
+ "Na": "16/060 Herringhausen 1",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 210145,
+ "Li": "kue.aspx?idLD=25592&slot=2",
+ "Na": "16/060 Herringhausen 1",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 221943,
+ "Li": "kue.aspx?idLD=25592&slot=2",
+ "Na": "16/060 Herringhausen 1",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 222818,
+ "Li": "kue.aspx?idLD=25592&slot=3",
+ "Na": "6/19/051 Hilter",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 223510,
+ "Li": "kue.aspx?idLD=25592&slot=3",
+ "Na": "6/19/051 Hilter",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 223511,
+ "Li": "kue.aspx?idLD=25592&slot=3",
+ "Na": "6/19/051 Hilter",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 224478,
+ "Li": "kue.aspx?idLD=25592&slot=3",
+ "Na": "6/19/051 Hilter",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 214506,
+ "Li": "kue.aspx?idLD=25592&slot=5",
+ "Na": "16/060 Ennigerloh-Enniger",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 223557,
+ "Li": "kue.aspx?idLD=25592&slot=5",
+ "Na": "16/060 Ennigerloh-Enniger",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 223556,
+ "Li": "kue.aspx?idLD=25592&slot=5",
+ "Na": "16/060 Ennigerloh-Enniger",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 214515,
+ "Li": "kue.aspx?idLD=25592&slot=5",
+ "Na": "16/060 Ennigerloh-Enniger",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25592,
+ "IdS": 214505,
+ "Li": "kue.aspx?idLD=25592&slot=5",
+ "Na": "16/060 Ennigerloh-Enniger",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223302,
+ "Li": "kue.aspx?idLD=25598&slot=1",
+ "Na": "19 Schulenburger Landstraße",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223303,
+ "Li": "kue.aspx?idLD=25598&slot=1",
+ "Na": "19 Schulenburger Landstraße",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 209702,
+ "Li": "kue.aspx?idLD=25598&slot=1",
+ "Na": "19 Schulenburger Landstraße",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223504,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223501,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223502,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223503,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 201643,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 201641,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 209819,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 213430,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 213431,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 213434,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 213432,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 213429,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223268,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223269,
+ "Li": "kue.aspx?idLD=25598&slot=2",
+ "Na": "6/51-018 + 6/051 + 6/089 + 6/95-089 Engelb./Ahlten",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223269,
+ "Li": "kue.aspx?idLD=25598&slot=5",
+ "Na": "6+6/46 Barsinghausen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223268,
+ "Li": "kue.aspx?idLD=25598&slot=5",
+ "Na": "6+6/46 Barsinghausen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 209529,
+ "Li": "kue.aspx?idLD=25598&slot=5",
+ "Na": "6+6/46 Barsinghausen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 216319,
+ "Li": "kue.aspx?idLD=25598&slot=5",
+ "Na": "6+6/46 Barsinghausen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 222978,
+ "Li": "kue.aspx?idLD=25598&slot=5",
+ "Na": "6+6/46 Barsinghausen",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 204515,
+ "Li": "kue.aspx?idLD=25616&slot=2",
+ "Na": "Auslösung SPD Ltg. 56 (Menden-Asbeck)",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 204517,
+ "Li": "kue.aspx?idLD=25616&slot=2",
+ "Na": "Auslösung SPD Ltg. 56 (Menden-Asbeck)",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 215266,
+ "Li": "kue.aspx?idLD=25616&slot=2",
+ "Na": "Auslösung SPD Ltg. 56 (Menden-Asbeck)",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 204519,
+ "Li": "kue.aspx?idLD=25616&slot=2",
+ "Na": "Auslösung SPD Ltg. 56 (Menden-Asbeck)",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 215263,
+ "Li": "kue.aspx?idLD=25616&slot=2",
+ "Na": "Auslösung SPD Ltg. 56 (Menden-Asbeck)",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 219830,
+ "Li": "kue.aspx?idLD=25616&slot=2",
+ "Na": "Auslösung SPD Ltg. 56 (Menden-Asbeck)",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 219829,
+ "Li": "kue.aspx?idLD=25616&slot=2",
+ "Na": "Auslösung SPD Ltg. 56 (Menden-Asbeck)",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220782,
+ "Li": "kue.aspx?idLD=25616&slot=2",
+ "Na": "Auslösung SPD Ltg. 56 (Menden-Asbeck)",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220781,
+ "Li": "kue.aspx?idLD=25616&slot=2",
+ "Na": "Auslösung SPD Ltg. 56 (Menden-Asbeck)",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221345,
+ "Li": "kue.aspx?idLD=25616&slot=4",
+ "Na": "21 Schwerter Heide",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221346,
+ "Li": "kue.aspx?idLD=25616&slot=4",
+ "Na": "21 Schwerter Heide",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220930,
+ "Li": "kue.aspx?idLD=25616&slot=4",
+ "Na": "21 Schwerter Heide",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221030,
+ "Li": "kue.aspx?idLD=25616&slot=4",
+ "Na": "21 Schwerter Heide",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221057,
+ "Li": "kue.aspx?idLD=25616&slot=4",
+ "Na": "21 Schwerter Heide",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 200122,
+ "Li": "kue.aspx?idLD=25616&slot=4",
+ "Na": "21 Schwerter Heide",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220929,
+ "Li": "kue.aspx?idLD=25616&slot=4",
+ "Na": "21 Schwerter Heide",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221848,
+ "Li": "kue.aspx?idLD=25616&slot=7",
+ "Na": "27 Dülmen Kirchspiel LSE",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221849,
+ "Li": "kue.aspx?idLD=25616&slot=7",
+ "Na": "27 Dülmen Kirchspiel LSE",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220653,
+ "Li": "kue.aspx?idLD=25616&slot=7",
+ "Na": "27 Dülmen Kirchspiel LSE",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220771,
+ "Li": "kue.aspx?idLD=25616&slot=7",
+ "Na": "27 Dülmen Kirchspiel LSE",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220772,
+ "Li": "kue.aspx?idLD=25616&slot=7",
+ "Na": "27 Dülmen Kirchspiel LSE",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 213305,
+ "Li": "kue.aspx?idLD=25476&slot=4",
+ "Na": "22 Eddersheim",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 215222,
+ "Li": "kue.aspx?idLD=25490&slot=6",
+ "Na": "12/16 Nixhütterweg",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 215224,
+ "Li": "kue.aspx?idLD=25490&slot=6",
+ "Na": "12/16 Nixhütterweg",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 210169,
+ "Li": "kue.aspx?idLD=25490&slot=6",
+ "Na": "12/16 Nixhütterweg",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 215225,
+ "Li": "kue.aspx?idLD=25490&slot=6",
+ "Na": "12/16 Nixhütterweg",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 219891,
+ "Li": "kue.aspx?idLD=25498&slot=2",
+ "Na": "50 Tiengen KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 219890,
+ "Li": "kue.aspx?idLD=25498&slot=2",
+ "Na": "50 Tiengen KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 208469,
+ "Li": "kue.aspx?idLD=18602&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 208473,
+ "Li": "kue.aspx?idLD=18602&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 208471,
+ "Li": "kue.aspx?idLD=18602&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 208474,
+ "Li": "kue.aspx?idLD=18602&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 208475,
+ "Li": "kue.aspx?idLD=18602&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 207204,
+ "Li": "kue.aspx?idLD=18602&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 208469,
+ "Li": "kue.aspx?idLD=22286&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 208473,
+ "Li": "kue.aspx?idLD=22286&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 208471,
+ "Li": "kue.aspx?idLD=22286&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 208474,
+ "Li": "kue.aspx?idLD=22286&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 208475,
+ "Li": "kue.aspx?idLD=22286&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 207204,
+ "Li": "kue.aspx?idLD=22286&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 208469,
+ "Li": "kue.aspx?idLD=25480&slot=1",
+ "Na": "23 Bischofsheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 208473,
+ "Li": "kue.aspx?idLD=25480&slot=1",
+ "Na": "23 Bischofsheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 208471,
+ "Li": "kue.aspx?idLD=25480&slot=1",
+ "Na": "23 Bischofsheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 208474,
+ "Li": "kue.aspx?idLD=25480&slot=1",
+ "Na": "23 Bischofsheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 208475,
+ "Li": "kue.aspx?idLD=25480&slot=1",
+ "Na": "23 Bischofsheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207204,
+ "Li": "kue.aspx?idLD=25480&slot=1",
+ "Na": "23 Bischofsheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220798,
+ "Li": "kue.aspx?idLD=25616&slot=8",
+ "Na": "Auslösung SPD Ltg. 25 Ascheberg",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221439,
+ "Li": "kue.aspx?idLD=25616&slot=8",
+ "Na": "Auslösung SPD Ltg. 25 Ascheberg",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221438,
+ "Li": "kue.aspx?idLD=25616&slot=8",
+ "Na": "Auslösung SPD Ltg. 25 Ascheberg",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 222564,
+ "Li": "kue.aspx?idLD=25538&slot=1",
+ "Na": "28+9/7/30 Lobach",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 222565,
+ "Li": "kue.aspx?idLD=25538&slot=1",
+ "Na": "28+9/7/30 Lobach",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 200321,
+ "Li": "kue.aspx?idLD=25538&slot=1",
+ "Na": "28+9/7/30 Lobach",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 207682,
+ "Li": "kue.aspx?idLD=25614&slot=2",
+ "Na": "11 Friedrichsdorf Mainova",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 221947,
+ "Li": "kue.aspx?idLD=25614&slot=2",
+ "Na": "11 Friedrichsdorf Mainova",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 215644,
+ "Li": "kue.aspx?idLD=25438&slot=3",
+ "Na": "50 Minfeld Thüga",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 207249,
+ "Li": "kue.aspx?idLD=25438&slot=3",
+ "Na": "50 Minfeld Thüga",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 207065,
+ "Li": "kue.aspx?idLD=25438&slot=3",
+ "Na": "50 Minfeld Thüga",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 215645,
+ "Li": "kue.aspx?idLD=25438&slot=3",
+ "Na": "50 Minfeld Thüga",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 213270,
+ "Li": "kue.aspx?idLD=25478&slot=4",
+ "Na": "51 Pfeddersheim Creos",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215504,
+ "Li": "kue.aspx?idLD=25478&slot=4",
+ "Na": "51 Pfeddersheim Creos",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 206851,
+ "Li": "kue.aspx?idLD=25478&slot=4",
+ "Na": "51 Pfeddersheim Creos",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 206849,
+ "Li": "kue.aspx?idLD=25478&slot=4",
+ "Na": "51 Pfeddersheim Creos",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215502,
+ "Li": "kue.aspx?idLD=25478&slot=4",
+ "Na": "51 Pfeddersheim Creos",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215501,
+ "Li": "kue.aspx?idLD=25478&slot=4",
+ "Na": "51 Pfeddersheim Creos",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 221259,
+ "Li": "kue.aspx?idLD=25428&slot=2",
+ "Na": "Dorsel",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 225025,
+ "Li": "kue.aspx?idLD=25428&slot=2",
+ "Na": "Dorsel",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 225026,
+ "Li": "kue.aspx?idLD=25428&slot=2",
+ "Na": "Dorsel",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 222113,
+ "Li": "kue.aspx?idLD=25428&slot=2",
+ "Na": "Dorsel",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 216231,
+ "Li": "kue.aspx?idLD=25428&slot=2",
+ "Na": "Dorsel",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 207204,
+ "Li": "kue.aspx?idLD=18602&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 208475,
+ "Li": "kue.aspx?idLD=18602&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 208470,
+ "Li": "kue.aspx?idLD=18602&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 202748,
+ "Li": "kue.aspx?idLD=18602&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 207204,
+ "Li": "kue.aspx?idLD=22286&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 208475,
+ "Li": "kue.aspx?idLD=22286&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 208470,
+ "Li": "kue.aspx?idLD=22286&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 202748,
+ "Li": "kue.aspx?idLD=22286&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207204,
+ "Li": "kue.aspx?idLD=25480&slot=3",
+ "Na": "23 Stockstadt",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 208475,
+ "Li": "kue.aspx?idLD=25480&slot=3",
+ "Na": "23 Stockstadt",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 208470,
+ "Li": "kue.aspx?idLD=25480&slot=3",
+ "Na": "23 Stockstadt",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 202748,
+ "Li": "kue.aspx?idLD=25480&slot=3",
+ "Na": "23 Stockstadt",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 209937,
+ "Li": "kue.aspx?idLD=25612&slot=2",
+ "Na": "11 Sinn-Fleissbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 209935,
+ "Li": "kue.aspx?idLD=25612&slot=2",
+ "Na": "11 Sinn-Fleissbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 209933,
+ "Li": "kue.aspx?idLD=25612&slot=2",
+ "Na": "11 Sinn-Fleissbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 214851,
+ "Li": "kue.aspx?idLD=25612&slot=2",
+ "Na": "11 Sinn-Fleissbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 214854,
+ "Li": "kue.aspx?idLD=25612&slot=2",
+ "Na": "11 Sinn-Fleissbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 214880,
+ "Li": "kue.aspx?idLD=25612&slot=2",
+ "Na": "11 Sinn-Fleissbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 214881,
+ "Li": "kue.aspx?idLD=25612&slot=2",
+ "Na": "11 Sinn-Fleissbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 207669,
+ "Li": "kue.aspx?idLD=25612&slot=2",
+ "Na": "11 Sinn-Fleissbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 222909,
+ "Li": "kue.aspx?idLD=25612&slot=2",
+ "Na": "11 Sinn-Fleissbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 209936,
+ "Li": "kue.aspx?idLD=25612&slot=2",
+ "Na": "11 Sinn-Fleissbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 222000,
+ "Li": "kue.aspx?idLD=25576&slot=2",
+ "Na": "22/19 Ernsthausen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 222128,
+ "Li": "kue.aspx?idLD=25576&slot=2",
+ "Na": "22/19 Ernsthausen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 218682,
+ "Li": "kue.aspx?idLD=25576&slot=2",
+ "Na": "22/19 Ernsthausen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 218140,
+ "Li": "kue.aspx?idLD=25454&slot=1",
+ "Na": "8 + 22/7/1 Bendorf/Rheinl. (EVM)",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 222276,
+ "Li": "kue.aspx?idLD=25454&slot=1",
+ "Na": "8 + 22/7/1 Bendorf/Rheinl. (EVM)",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 222275,
+ "Li": "kue.aspx?idLD=25454&slot=1",
+ "Na": "8 + 22/7/1 Bendorf/Rheinl. (EVM)",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 200049,
+ "Li": "kue.aspx?idLD=25454&slot=1",
+ "Na": "8 + 22/7/1 Bendorf/Rheinl. (EVM)",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 207868,
+ "Li": "kue.aspx?idLD=18602&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 207205,
+ "Li": "kue.aspx?idLD=18602&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 207868,
+ "Li": "kue.aspx?idLD=22286&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 207205,
+ "Li": "kue.aspx?idLD=22286&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207868,
+ "Li": "kue.aspx?idLD=25480&slot=4",
+ "Na": "23 Lampertheim",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207205,
+ "Li": "kue.aspx?idLD=25480&slot=4",
+ "Na": "23 Lampertheim",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25590,
+ "IdS": 225951,
+ "Li": "kue.aspx?idLD=25590&slot=1",
+ "Na": "6 Bückeburg",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25590,
+ "IdS": 207532,
+ "Li": "kue.aspx?idLD=25590&slot=1",
+ "Na": "6 Bückeburg",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25590,
+ "IdS": 214538,
+ "Li": "kue.aspx?idLD=25590&slot=1",
+ "Na": "6 Bückeburg",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 203053,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 201728,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 206281,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 212873,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 212872,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 206277,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 206275,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 206274,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 201503,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 201504,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 201501,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 201499,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 213264,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 213263,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 224137,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 218259,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 216214,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 213568,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 213566,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 205043,
+ "Li": "kue.aspx?idLD=25438&slot=1",
+ "Na": "50 Schwannheim LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 218163,
+ "Li": "kue.aspx?idLD=25454&slot=3",
+ "Na": "22 Windhagen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 217288,
+ "Li": "kue.aspx?idLD=25454&slot=3",
+ "Na": "22 Windhagen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 202771,
+ "Li": "kue.aspx?idLD=25454&slot=3",
+ "Na": "22 Windhagen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 214782,
+ "Li": "kue.aspx?idLD=25454&slot=3",
+ "Na": "22 Windhagen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 221652,
+ "Li": "kue.aspx?idLD=25454&slot=3",
+ "Na": "22 Windhagen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 221651,
+ "Li": "kue.aspx?idLD=25454&slot=3",
+ "Na": "22 Windhagen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 221650,
+ "Li": "kue.aspx?idLD=25454&slot=3",
+ "Na": "22 Windhagen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 221649,
+ "Li": "kue.aspx?idLD=25454&slot=3",
+ "Na": "22 Windhagen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 214774,
+ "Li": "kue.aspx?idLD=25454&slot=3",
+ "Na": "22 Windhagen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 221608,
+ "Li": "kue.aspx?idLD=25454&slot=3",
+ "Na": "22 Windhagen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 221585,
+ "Li": "kue.aspx?idLD=25454&slot=3",
+ "Na": "22 Windhagen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 218525,
+ "Li": "kue.aspx?idLD=18604&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 213892,
+ "Li": "kue.aspx?idLD=18604&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 200205,
+ "Li": "kue.aspx?idLD=18604&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 200324,
+ "Li": "kue.aspx?idLD=18604&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 219510,
+ "Li": "kue.aspx?idLD=18604&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 219509,
+ "Li": "kue.aspx?idLD=18604&slot=4",
+ "Na": "KÜG 4",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 218525,
+ "Li": "kue.aspx?idLD=22288&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22880,
+ "IdS": 213892,
+ "Li": "kue.aspx?idLD=22288&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22880,
+ "IdS": 200205,
+ "Li": "kue.aspx?idLD=22288&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22880,
+ "IdS": 200324,
+ "Li": "kue.aspx?idLD=22288&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 219510,
+ "Li": "kue.aspx?idLD=22288&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 219509,
+ "Li": "kue.aspx?idLD=22288&slot=4",
+ "Na": "KÜG 04",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 207057,
+ "Li": "kue.aspx?idLD=25426&slot=1",
+ "Na": "26/1 Forchheim + 26/1/15 Denkendorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 218525,
+ "Li": "kue.aspx?idLD=25544&slot=4",
+ "Na": "999/851 Vorra ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 213892,
+ "Li": "kue.aspx?idLD=25544&slot=4",
+ "Na": "999/851 Vorra ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 200205,
+ "Li": "kue.aspx?idLD=25544&slot=4",
+ "Na": "999/851 Vorra ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 200324,
+ "Li": "kue.aspx?idLD=25544&slot=4",
+ "Na": "999/851 Vorra ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 219510,
+ "Li": "kue.aspx?idLD=25544&slot=4",
+ "Na": "999/851 Vorra ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 219509,
+ "Li": "kue.aspx?idLD=25544&slot=4",
+ "Na": "999/851 Vorra ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220781,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220782,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 219829,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 219830,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 215263,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 204519,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 215266,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 204517,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 204515,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 202551,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221888,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221889,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 222266,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 222264,
+ "Li": "kue.aspx?idLD=25616&slot=3",
+ "Na": "56+17+7 Altena MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 220661,
+ "Li": "kue.aspx?idLD=25624&slot=1",
+ "Na": "52 Unterzell ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 200151,
+ "Li": "kue.aspx?idLD=25624&slot=1",
+ "Na": "52 Unterzell ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 200152,
+ "Li": "kue.aspx?idLD=25624&slot=1",
+ "Na": "52 Unterzell ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 200154,
+ "Li": "kue.aspx?idLD=25624&slot=1",
+ "Na": "52 Unterzell ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 215363,
+ "Li": "kue.aspx?idLD=25624&slot=1",
+ "Na": "52 Unterzell ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 222819,
+ "Li": "kue.aspx?idLD=25624&slot=1",
+ "Na": "52 Unterzell ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 215362,
+ "Li": "kue.aspx?idLD=25624&slot=1",
+ "Na": "52 Unterzell ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 215360,
+ "Li": "kue.aspx?idLD=25624&slot=1",
+ "Na": "52 Unterzell ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221624,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221622,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 218998,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208663,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 210184,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 210185,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 210182,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 210181,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 205779,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 205769,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 222162,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 222161,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214352,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221623,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221621,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214350,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 223875,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 223874,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 223872,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 223871,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 205785,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 205781,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 205782,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221816,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221815,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208497,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214343,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214342,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208501,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 226017,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214340,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 205780,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208691,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 200008,
+ "Li": "kue.aspx?idLD=25446&slot=2",
+ "Na": "1 + 1/14 + 999/1/6 Leithestrasse",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 214620,
+ "Li": "kue.aspx?idLD=25534&slot=1",
+ "Na": "12 + 2/30 Richarth ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 207761,
+ "Li": "kue.aspx?idLD=25534&slot=1",
+ "Na": "12 + 2/30 Richarth ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 214622,
+ "Li": "kue.aspx?idLD=25534&slot=1",
+ "Na": "12 + 2/30 Richarth ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 207768,
+ "Li": "kue.aspx?idLD=25534&slot=1",
+ "Na": "12 + 2/30 Richarth ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 207767,
+ "Li": "kue.aspx?idLD=25534&slot=1",
+ "Na": "12 + 2/30 Richarth ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 214625,
+ "Li": "kue.aspx?idLD=25534&slot=1",
+ "Na": "12 + 2/30 Richarth ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 214628,
+ "Li": "kue.aspx?idLD=25534&slot=1",
+ "Na": "12 + 2/30 Richarth ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 207240,
+ "Li": "kue.aspx?idLD=25534&slot=1",
+ "Na": "12 + 2/30 Richarth ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 224391,
+ "Li": "kue.aspx?idLD=25538&slot=3",
+ "Na": "9/7 Wermelskirchen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 208108,
+ "Li": "kue.aspx?idLD=25538&slot=3",
+ "Na": "9/7 Wermelskirchen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 208917,
+ "Li": "kue.aspx?idLD=25538&slot=3",
+ "Na": "9/7 Wermelskirchen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 208919,
+ "Li": "kue.aspx?idLD=25538&slot=3",
+ "Na": "9/7 Wermelskirchen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 208109,
+ "Li": "kue.aspx?idLD=25538&slot=3",
+ "Na": "9/7 Wermelskirchen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 208117,
+ "Li": "kue.aspx?idLD=25538&slot=3",
+ "Na": "9/7 Wermelskirchen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 208116,
+ "Li": "kue.aspx?idLD=25538&slot=3",
+ "Na": "9/7 Wermelskirchen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 216277,
+ "Li": "kue.aspx?idLD=25538&slot=3",
+ "Na": "9/7 Wermelskirchen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 202948,
+ "Li": "kue.aspx?idLD=25538&slot=3",
+ "Na": "9/7 Wermelskirchen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 224392,
+ "Li": "kue.aspx?idLD=25538&slot=3",
+ "Na": "9/7 Wermelskirchen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200058,
+ "Li": "kue.aspx?idLD=25604&slot=2",
+ "Na": "Wasserstandsmelder nach Arzberg ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200061,
+ "Li": "kue.aspx?idLD=25604&slot=2",
+ "Na": "Wasserstandsmelder nach Arzberg ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 222149,
+ "Li": "kue.aspx?idLD=25604&slot=2",
+ "Na": "Wasserstandsmelder nach Arzberg ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200063,
+ "Li": "kue.aspx?idLD=25604&slot=2",
+ "Na": "Wasserstandsmelder nach Arzberg ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200064,
+ "Li": "kue.aspx?idLD=25604&slot=2",
+ "Na": "Wasserstandsmelder nach Arzberg ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200065,
+ "Li": "kue.aspx?idLD=25604&slot=2",
+ "Na": "Wasserstandsmelder nach Arzberg ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200066,
+ "Li": "kue.aspx?idLD=25604&slot=2",
+ "Na": "Wasserstandsmelder nach Arzberg ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200067,
+ "Li": "kue.aspx?idLD=25604&slot=2",
+ "Na": "Wasserstandsmelder nach Arzberg ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 217329,
+ "Li": "kue.aspx?idLD=25604&slot=2",
+ "Na": "Wasserstandsmelder nach Arzberg ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200070,
+ "Li": "kue.aspx?idLD=25604&slot=2",
+ "Na": "Wasserstandsmelder nach Arzberg ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 11435,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 11434,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10131,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10740,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 225297,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 225296,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10129,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10128,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10127,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10555,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 11225,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10413,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10715,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10354,
+ "Li": "kue.aspx?idLD=25444&slot=1",
+ "Na": "22 Wicker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 214808,
+ "Li": "kue.aspx?idLD=25490&slot=3",
+ "Na": "2+2/27 Opladen MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 200169,
+ "Li": "kue.aspx?idLD=25490&slot=3",
+ "Na": "2+2/27 Opladen MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 200166,
+ "Li": "kue.aspx?idLD=25490&slot=3",
+ "Na": "2+2/27 Opladen MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 200168,
+ "Li": "kue.aspx?idLD=25490&slot=3",
+ "Na": "2+2/27 Opladen MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 200214,
+ "Li": "kue.aspx?idLD=25490&slot=3",
+ "Na": "2+2/27 Opladen MR",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25486,
+ "IdS": 203510,
+ "Li": "kue.aspx?idLD=25486&slot=1",
+ "Na": "56 Schwarzenau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25486,
+ "IdS": 215285,
+ "Li": "kue.aspx?idLD=25486&slot=1",
+ "Na": "56 Schwarzenau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25486,
+ "IdS": 223789,
+ "Li": "kue.aspx?idLD=25486&slot=1",
+ "Na": "56 Schwarzenau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25486,
+ "IdS": 223788,
+ "Li": "kue.aspx?idLD=25486&slot=1",
+ "Na": "56 Schwarzenau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25486,
+ "IdS": 223794,
+ "Li": "kue.aspx?idLD=25486&slot=1",
+ "Na": "56 Schwarzenau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25486,
+ "IdS": 223790,
+ "Li": "kue.aspx?idLD=25486&slot=1",
+ "Na": "56 Schwarzenau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25486,
+ "IdS": 209863,
+ "Li": "kue.aspx?idLD=25486&slot=1",
+ "Na": "56 Schwarzenau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25486,
+ "IdS": 217854,
+ "Li": "kue.aspx?idLD=25486&slot=1",
+ "Na": "56 Schwarzenau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25440,
+ "IdS": 215588,
+ "Li": "kue.aspx?idLD=25440&slot=1",
+ "Na": "42 Wippershain Sender",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25440,
+ "IdS": 209954,
+ "Li": "kue.aspx?idLD=25440&slot=1",
+ "Na": "42 Wippershain Sender",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25440,
+ "IdS": 215587,
+ "Li": "kue.aspx?idLD=25440&slot=1",
+ "Na": "42 Wippershain Sender",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214393,
+ "Li": "kue.aspx?idLD=25450&slot=6",
+ "Na": "Auslösung SPD Ltg. 63 Groß Heesepe",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 224949,
+ "Li": "kue.aspx?idLD=25450&slot=6",
+ "Na": "Auslösung SPD Ltg. 63 Groß Heesepe",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 224950,
+ "Li": "kue.aspx?idLD=25450&slot=6",
+ "Na": "Auslösung SPD Ltg. 63 Groß Heesepe",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217772,
+ "Li": "kue.aspx?idLD=25450&slot=6",
+ "Na": "Auslösung SPD Ltg. 63 Groß Heesepe",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 218464,
+ "Li": "kue.aspx?idLD=25450&slot=6",
+ "Na": "Auslösung SPD Ltg. 63 Groß Heesepe",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217775,
+ "Li": "kue.aspx?idLD=25450&slot=6",
+ "Na": "Auslösung SPD Ltg. 63 Groß Heesepe",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 221299,
+ "Li": "kue.aspx?idLD=25450&slot=6",
+ "Na": "Auslösung SPD Ltg. 63 Groß Heesepe",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 224358,
+ "Li": "kue.aspx?idLD=25450&slot=6",
+ "Na": "Auslösung SPD Ltg. 63 Groß Heesepe",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217778,
+ "Li": "kue.aspx?idLD=25450&slot=6",
+ "Na": "Auslösung SPD Ltg. 63 Groß Heesepe",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25520,
+ "IdS": 218334,
+ "Li": "kue.aspx?idLD=25520&slot=3",
+ "Na": "8 Massenheim Mainova über Naurod KMW",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25520,
+ "IdS": 207709,
+ "Li": "kue.aspx?idLD=25520&slot=3",
+ "Na": "8 Massenheim Mainova über Naurod KMW",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 218683,
+ "Li": "kue.aspx?idLD=25612&slot=4",
+ "Na": "22/19 Ernsthausen",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 215102,
+ "Li": "kue.aspx?idLD=25470&slot=1",
+ "Na": "026 Renzenhof ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 215094,
+ "Li": "kue.aspx?idLD=25470&slot=1",
+ "Na": "026 Renzenhof ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 201301,
+ "Li": "kue.aspx?idLD=25470&slot=1",
+ "Na": "026 Renzenhof ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 221860,
+ "Li": "kue.aspx?idLD=25470&slot=1",
+ "Na": "026 Renzenhof ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 221861,
+ "Li": "kue.aspx?idLD=25470&slot=1",
+ "Na": "026 Renzenhof ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 215098,
+ "Li": "kue.aspx?idLD=25470&slot=1",
+ "Na": "026 Renzenhof ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 205798,
+ "Li": "kue.aspx?idLD=25470&slot=1",
+ "Na": "026 Renzenhof ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 215101,
+ "Li": "kue.aspx?idLD=25470&slot=1",
+ "Na": "026 Renzenhof ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 205790,
+ "Li": "kue.aspx?idLD=25470&slot=1",
+ "Na": "026 Renzenhof ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 217226,
+ "Li": "kue.aspx?idLD=25526&slot=1",
+ "Na": "54 Wassertrüdingen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 217227,
+ "Li": "kue.aspx?idLD=25526&slot=1",
+ "Na": "54 Wassertrüdingen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215069,
+ "Li": "kue.aspx?idLD=25526&slot=1",
+ "Na": "54 Wassertrüdingen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215072,
+ "Li": "kue.aspx?idLD=25526&slot=1",
+ "Na": "54 Wassertrüdingen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215074,
+ "Li": "kue.aspx?idLD=25526&slot=1",
+ "Na": "54 Wassertrüdingen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215075,
+ "Li": "kue.aspx?idLD=25526&slot=1",
+ "Na": "54 Wassertrüdingen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215078,
+ "Li": "kue.aspx?idLD=25526&slot=1",
+ "Na": "54 Wassertrüdingen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215079,
+ "Li": "kue.aspx?idLD=25526&slot=1",
+ "Na": "54 Wassertrüdingen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 215721,
+ "Li": "kue.aspx?idLD=25498&slot=6",
+ "Na": "50 Hertingen KVZ",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25620,
+ "IdS": 220156,
+ "Li": "kue.aspx?idLD=25620&slot=1",
+ "Na": "52 Rathmannsdorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25620,
+ "IdS": 220154,
+ "Li": "kue.aspx?idLD=25620&slot=1",
+ "Na": "52 Rathmannsdorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25620,
+ "IdS": 215355,
+ "Li": "kue.aspx?idLD=25620&slot=1",
+ "Na": "52 Rathmannsdorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25620,
+ "IdS": 215353,
+ "Li": "kue.aspx?idLD=25620&slot=1",
+ "Na": "52 Rathmannsdorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25620,
+ "IdS": 219785,
+ "Li": "kue.aspx?idLD=25620&slot=1",
+ "Na": "52 Rathmannsdorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25620,
+ "IdS": 219786,
+ "Li": "kue.aspx?idLD=25620&slot=1",
+ "Na": "52 Rathmannsdorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25620,
+ "IdS": 215347,
+ "Li": "kue.aspx?idLD=25620&slot=1",
+ "Na": "52 Rathmannsdorf",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 217208,
+ "Li": "kue.aspx?idLD=25452&slot=2",
+ "Na": "016 Dortmund",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 223931,
+ "Li": "kue.aspx?idLD=25452&slot=2",
+ "Na": "016 Dortmund",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 223932,
+ "Li": "kue.aspx?idLD=25452&slot=2",
+ "Na": "016 Dortmund",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25506,
+ "IdS": 204165,
+ "Li": "kue.aspx?idLD=25506&slot=2",
+ "Na": "44114 Neckarhausen LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25506,
+ "IdS": 215829,
+ "Li": "kue.aspx?idLD=25506&slot=2",
+ "Na": "44114 Neckarhausen LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25506,
+ "IdS": 215830,
+ "Li": "kue.aspx?idLD=25506&slot=2",
+ "Na": "44114 Neckarhausen LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25506,
+ "IdS": 214981,
+ "Li": "kue.aspx?idLD=25506&slot=2",
+ "Na": "44114 Neckarhausen LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25506,
+ "IdS": 204994,
+ "Li": "kue.aspx?idLD=25506&slot=2",
+ "Na": "44114 Neckarhausen LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 215738,
+ "Li": "kue.aspx?idLD=25508&slot=6",
+ "Na": "13/4/2 + 202/13 Huckingen HKM",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 215740,
+ "Li": "kue.aspx?idLD=25508&slot=6",
+ "Na": "13/4/2 + 202/13 Huckingen HKM",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 215739,
+ "Li": "kue.aspx?idLD=25508&slot=6",
+ "Na": "13/4/2 + 202/13 Huckingen HKM",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 215776,
+ "Li": "kue.aspx?idLD=25508&slot=6",
+ "Na": "13/4/2 + 202/13 Huckingen HKM",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 207816,
+ "Li": "kue.aspx?idLD=25508&slot=6",
+ "Na": "13/4/2 + 202/13 Huckingen HKM",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 200185,
+ "Li": "kue.aspx?idLD=25508&slot=6",
+ "Na": "13/4/2 + 202/13 Huckingen HKM",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 220645,
+ "Li": "kue.aspx?idLD=25508&slot=6",
+ "Na": "13/4/2 + 202/13 Huckingen HKM",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 220647,
+ "Li": "kue.aspx?idLD=25508&slot=6",
+ "Na": "13/4/2 + 202/13 Huckingen HKM",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 220646,
+ "Li": "kue.aspx?idLD=25508&slot=6",
+ "Na": "13/4/2 + 202/13 Huckingen HKM",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222545,
+ "Li": "kue.aspx?idLD=25534&slot=3",
+ "Na": "999/28/1 Paffrath",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222546,
+ "Li": "kue.aspx?idLD=25534&slot=3",
+ "Na": "999/28/1 Paffrath",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 202950,
+ "Li": "kue.aspx?idLD=25524&slot=4",
+ "Na": "11 Neunkirchen-Wiederstein LSE",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 214866,
+ "Li": "kue.aspx?idLD=25524&slot=4",
+ "Na": "11 Neunkirchen-Wiederstein LSE",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 225142,
+ "Li": "kue.aspx?idLD=25524&slot=4",
+ "Na": "11 Neunkirchen-Wiederstein LSE",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222548,
+ "Li": "kue.aspx?idLD=25534&slot=7",
+ "Na": "22+200 Leverkusen Wiesdorf",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222547,
+ "Li": "kue.aspx?idLD=25534&slot=7",
+ "Na": "22+200 Leverkusen Wiesdorf",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 203795,
+ "Li": "kue.aspx?idLD=25534&slot=7",
+ "Na": "22+200 Leverkusen Wiesdorf",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 215245,
+ "Li": "kue.aspx?idLD=25534&slot=7",
+ "Na": "22+200 Leverkusen Wiesdorf",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 215242,
+ "Li": "kue.aspx?idLD=25534&slot=7",
+ "Na": "22+200 Leverkusen Wiesdorf",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 215215,
+ "Li": "kue.aspx?idLD=25456&slot=5",
+ "Na": "13/4 Bottrop",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 209075,
+ "Li": "kue.aspx?idLD=25456&slot=5",
+ "Na": "13/4 Bottrop",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 218533,
+ "Li": "kue.aspx?idLD=25456&slot=5",
+ "Na": "13/4 Bottrop",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 215217,
+ "Li": "kue.aspx?idLD=25456&slot=5",
+ "Na": "13/4 Bottrop",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 207871,
+ "Li": "kue.aspx?idLD=25456&slot=5",
+ "Na": "13/4 Bottrop",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 220112,
+ "Li": "kue.aspx?idLD=25456&slot=5",
+ "Na": "13/4 Bottrop",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 220111,
+ "Li": "kue.aspx?idLD=25456&slot=5",
+ "Na": "13/4 Bottrop",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 207875,
+ "Li": "kue.aspx?idLD=25456&slot=5",
+ "Na": "13/4 Bottrop",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 220701,
+ "Li": "kue.aspx?idLD=25446&slot=6",
+ "Na": "1+1/6+1/6/3 Tuttmannstraße",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 220700,
+ "Li": "kue.aspx?idLD=25446&slot=6",
+ "Na": "1+1/6+1/6/3 Tuttmannstraße",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208457,
+ "Li": "kue.aspx?idLD=25446&slot=6",
+ "Na": "1+1/6+1/6/3 Tuttmannstraße",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221815,
+ "Li": "kue.aspx?idLD=25446&slot=6",
+ "Na": "1+1/6+1/6/3 Tuttmannstraße",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208497,
+ "Li": "kue.aspx?idLD=25446&slot=6",
+ "Na": "1+1/6+1/6/3 Tuttmannstraße",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214343,
+ "Li": "kue.aspx?idLD=25446&slot=6",
+ "Na": "1+1/6+1/6/3 Tuttmannstraße",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214342,
+ "Li": "kue.aspx?idLD=25446&slot=6",
+ "Na": "1+1/6+1/6/3 Tuttmannstraße",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208501,
+ "Li": "kue.aspx?idLD=25446&slot=6",
+ "Na": "1+1/6+1/6/3 Tuttmannstraße",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 226017,
+ "Li": "kue.aspx?idLD=25446&slot=6",
+ "Na": "1+1/6+1/6/3 Tuttmannstraße",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214340,
+ "Li": "kue.aspx?idLD=25446&slot=6",
+ "Na": "1+1/6+1/6/3 Tuttmannstraße",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25488,
+ "IdS": 215314,
+ "Li": "kue.aspx?idLD=25488&slot=1",
+ "Na": "56 Kirchhain-Großseelheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25488,
+ "IdS": 215310,
+ "Li": "kue.aspx?idLD=25488&slot=1",
+ "Na": "56 Kirchhain-Großseelheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25488,
+ "IdS": 226059,
+ "Li": "kue.aspx?idLD=25488&slot=1",
+ "Na": "56 Kirchhain-Großseelheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25488,
+ "IdS": 226060,
+ "Li": "kue.aspx?idLD=25488&slot=1",
+ "Na": "56 Kirchhain-Großseelheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 214806,
+ "Li": "kue.aspx?idLD=25458&slot=1",
+ "Na": "064 Welper",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 214808,
+ "Li": "kue.aspx?idLD=25458&slot=1",
+ "Na": "064 Welper",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 218599,
+ "Li": "kue.aspx?idLD=25458&slot=1",
+ "Na": "064 Welper",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 200383,
+ "Li": "kue.aspx?idLD=25458&slot=1",
+ "Na": "064 Welper",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 214814,
+ "Li": "kue.aspx?idLD=25458&slot=1",
+ "Na": "064 Welper",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 200381,
+ "Li": "kue.aspx?idLD=25458&slot=1",
+ "Na": "064 Welper",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 214815,
+ "Li": "kue.aspx?idLD=25458&slot=1",
+ "Na": "064 Welper",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 223682,
+ "Li": "kue.aspx?idLD=25458&slot=1",
+ "Na": "064 Welper",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 223681,
+ "Li": "kue.aspx?idLD=25458&slot=1",
+ "Na": "064 Welper",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 215004,
+ "Li": "kue.aspx?idLD=25480&slot=13",
+ "Na": "43947 Großkrotzenburg e.on",
+ "Sl": 13
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 222795,
+ "Li": "kue.aspx?idLD=25480&slot=13",
+ "Na": "43947 Großkrotzenburg e.on",
+ "Sl": 13
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 222796,
+ "Li": "kue.aspx?idLD=25480&slot=13",
+ "Na": "43947 Großkrotzenburg e.on",
+ "Sl": 13
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 225407,
+ "Li": "kue.aspx?idLD=25480&slot=13",
+ "Na": "43947 Großkrotzenburg e.on",
+ "Sl": 13
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 202592,
+ "Li": "kue.aspx?idLD=25480&slot=13",
+ "Na": "43947 Großkrotzenburg e.on",
+ "Sl": 13
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 223960,
+ "Li": "kue.aspx?idLD=25480&slot=13",
+ "Na": "43947 Großkrotzenburg e.on",
+ "Sl": 13
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 223961,
+ "Li": "kue.aspx?idLD=25480&slot=13",
+ "Na": "43947 Großkrotzenburg e.on",
+ "Sl": 13
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 214247,
+ "Li": "kue.aspx?idLD=25480&slot=13",
+ "Na": "43947 Großkrotzenburg e.on",
+ "Sl": 13
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 214248,
+ "Li": "kue.aspx?idLD=25480&slot=13",
+ "Na": "43947 Großkrotzenburg e.on",
+ "Sl": 13
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 202302,
+ "Li": "kue.aspx?idLD=25480&slot=13",
+ "Na": "43947 Großkrotzenburg e.on",
+ "Sl": 13
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 202303,
+ "Li": "kue.aspx?idLD=25480&slot=13",
+ "Na": "43947 Großkrotzenburg e.on",
+ "Sl": 13
+ },
+ {
+ "IdLD": 25506,
+ "IdS": 200050,
+ "Li": "kue.aspx?idLD=25506&slot=3",
+ "Na": "23 Lampertheim terranet bw",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 225700,
+ "Li": "kue.aspx?idLD=25578&slot=2",
+ "Na": "66 Hobbensen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 200761,
+ "Li": "kue.aspx?idLD=25578&slot=2",
+ "Na": "66 Hobbensen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 225942,
+ "Li": "kue.aspx?idLD=25578&slot=2",
+ "Na": "66 Hobbensen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 204566,
+ "Li": "kue.aspx?idLD=25578&slot=2",
+ "Na": "66 Hobbensen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 220912,
+ "Li": "kue.aspx?idLD=25578&slot=2",
+ "Na": "66 Hobbensen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 204573,
+ "Li": "kue.aspx?idLD=25578&slot=2",
+ "Na": "66 Hobbensen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 214589,
+ "Li": "kue.aspx?idLD=25578&slot=2",
+ "Na": "66 Hobbensen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 204574,
+ "Li": "kue.aspx?idLD=25578&slot=2",
+ "Na": "66 Hobbensen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 225699,
+ "Li": "kue.aspx?idLD=25578&slot=2",
+ "Na": "66 Hobbensen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 217329,
+ "Li": "kue.aspx?idLD=25604&slot=1",
+ "Na": "026/002 Arzberg ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200070,
+ "Li": "kue.aspx?idLD=25604&slot=1",
+ "Na": "026/002 Arzberg ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200067,
+ "Li": "kue.aspx?idLD=25604&slot=1",
+ "Na": "026/002 Arzberg ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200066,
+ "Li": "kue.aspx?idLD=25604&slot=1",
+ "Na": "026/002 Arzberg ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200065,
+ "Li": "kue.aspx?idLD=25604&slot=1",
+ "Na": "026/002 Arzberg ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200064,
+ "Li": "kue.aspx?idLD=25604&slot=1",
+ "Na": "026/002 Arzberg ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200063,
+ "Li": "kue.aspx?idLD=25604&slot=1",
+ "Na": "026/002 Arzberg ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 222149,
+ "Li": "kue.aspx?idLD=25604&slot=1",
+ "Na": "026/002 Arzberg ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200061,
+ "Li": "kue.aspx?idLD=25604&slot=1",
+ "Na": "026/002 Arzberg ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25604,
+ "IdS": 200058,
+ "Li": "kue.aspx?idLD=25604&slot=1",
+ "Na": "026/002 Arzberg ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 215222,
+ "Li": "kue.aspx?idLD=25490&slot=5",
+ "Na": "12/16+200/6+200+200/9 Sasser Scheep",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 200181,
+ "Li": "kue.aspx?idLD=25490&slot=5",
+ "Na": "12/16+200/6+200+200/9 Sasser Scheep",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 208235,
+ "Li": "kue.aspx?idLD=25490&slot=5",
+ "Na": "12/16+200/6+200+200/9 Sasser Scheep",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 221156,
+ "Li": "kue.aspx?idLD=25490&slot=5",
+ "Na": "12/16+200/6+200+200/9 Sasser Scheep",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 200180,
+ "Li": "kue.aspx?idLD=25490&slot=5",
+ "Na": "12/16+200/6+200+200/9 Sasser Scheep",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 223925,
+ "Li": "kue.aspx?idLD=25490&slot=5",
+ "Na": "12/16+200/6+200+200/9 Sasser Scheep",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 223926,
+ "Li": "kue.aspx?idLD=25490&slot=5",
+ "Na": "12/16+200/6+200+200/9 Sasser Scheep",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 208253,
+ "Li": "kue.aspx?idLD=25490&slot=5",
+ "Na": "12/16+200/6+200+200/9 Sasser Scheep",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 208252,
+ "Li": "kue.aspx?idLD=25490&slot=5",
+ "Na": "12/16+200/6+200+200/9 Sasser Scheep",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 208232,
+ "Li": "kue.aspx?idLD=25490&slot=5",
+ "Na": "12/16+200/6+200+200/9 Sasser Scheep",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 208233,
+ "Li": "kue.aspx?idLD=25490&slot=5",
+ "Na": "12/16+200/6+200+200/9 Sasser Scheep",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 215608,
+ "Li": "kue.aspx?idLD=25516&slot=3",
+ "Na": "51 Medelsheim",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 215613,
+ "Li": "kue.aspx?idLD=25516&slot=3",
+ "Na": "51 Medelsheim",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 215619,
+ "Li": "kue.aspx?idLD=25516&slot=3",
+ "Na": "51 Medelsheim",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 201606,
+ "Li": "kue.aspx?idLD=25516&slot=3",
+ "Na": "51 Medelsheim",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 222726,
+ "Li": "kue.aspx?idLD=25516&slot=3",
+ "Na": "51 Medelsheim",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 205907,
+ "Li": "kue.aspx?idLD=25530&slot=2",
+ "Na": "6/19-051 + 6/19-051 Hilter",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 205908,
+ "Li": "kue.aspx?idLD=25530&slot=2",
+ "Na": "6/19-051 + 6/19-051 Hilter",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 205906,
+ "Li": "kue.aspx?idLD=25530&slot=2",
+ "Na": "6/19-051 + 6/19-051 Hilter",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 205905,
+ "Li": "kue.aspx?idLD=25530&slot=2",
+ "Na": "6/19-051 + 6/19-051 Hilter",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 214588,
+ "Li": "kue.aspx?idLD=25530&slot=2",
+ "Na": "6/19-051 + 6/19-051 Hilter",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 224479,
+ "Li": "kue.aspx?idLD=25530&slot=2",
+ "Na": "6/19-051 + 6/19-051 Hilter",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 224408,
+ "Li": "kue.aspx?idLD=25534&slot=12",
+ "Na": "999/9/6 Duckterather Weg",
+ "Sl": 12
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 224988,
+ "Li": "kue.aspx?idLD=25534&slot=12",
+ "Na": "999/9/6 Duckterather Weg",
+ "Sl": 12
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 224987,
+ "Li": "kue.aspx?idLD=25534&slot=12",
+ "Na": "999/9/6 Duckterather Weg",
+ "Sl": 12
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222186,
+ "Li": "kue.aspx?idLD=25534&slot=12",
+ "Na": "999/9/6 Duckterather Weg",
+ "Sl": 12
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220798,
+ "Li": "kue.aspx?idLD=25616&slot=6",
+ "Na": "25/087 Einen",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221439,
+ "Li": "kue.aspx?idLD=25616&slot=6",
+ "Na": "25/087 Einen",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221438,
+ "Li": "kue.aspx?idLD=25616&slot=6",
+ "Na": "25/087 Einen",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 217137,
+ "Li": "kue.aspx?idLD=25616&slot=6",
+ "Na": "25/087 Einen",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 217138,
+ "Li": "kue.aspx?idLD=25616&slot=6",
+ "Na": "25/087 Einen",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221884,
+ "Li": "kue.aspx?idLD=25616&slot=6",
+ "Na": "25/087 Einen",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 221883,
+ "Li": "kue.aspx?idLD=25616&slot=6",
+ "Na": "25/087 Einen",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 206940,
+ "Li": "kue.aspx?idLD=25516&slot=1",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 215525,
+ "Li": "kue.aspx?idLD=25516&slot=1",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 215523,
+ "Li": "kue.aspx?idLD=25516&slot=1",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 215521,
+ "Li": "kue.aspx?idLD=25516&slot=1",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 206994,
+ "Li": "kue.aspx?idLD=25516&slot=1",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 215516,
+ "Li": "kue.aspx?idLD=25516&slot=1",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 203053,
+ "Li": "kue.aspx?idLD=25490&slot=2",
+ "Na": "12/16 + 12 + 12/4 Mettmann Beethovenstr. ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25520,
+ "IdS": 218337,
+ "Li": "kue.aspx?idLD=25520&slot=4",
+ "Na": "10 Flörsheim",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25520,
+ "IdS": 214790,
+ "Li": "kue.aspx?idLD=25520&slot=4",
+ "Na": "10 Flörsheim",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25520,
+ "IdS": 214787,
+ "Li": "kue.aspx?idLD=25520&slot=4",
+ "Na": "10 Flörsheim",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 215156,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 204240,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 204242,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 222999,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25426,
+ "IdS": 204273,
+ "Li": "kue.aspx?idLD=25426&slot=2",
+ "Na": "053 Landshut0Münchnerau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25620,
+ "IdS": 220155,
+ "Li": "kue.aspx?idLD=25620&slot=2",
+ "Na": "52 KVz Gottsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25620,
+ "IdS": 220153,
+ "Li": "kue.aspx?idLD=25620&slot=2",
+ "Na": "52 KVz Gottsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25620,
+ "IdS": 200148,
+ "Li": "kue.aspx?idLD=25620&slot=2",
+ "Na": "52 KVz Gottsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 200227,
+ "Li": "kue.aspx?idLD=25466&slot=2",
+ "Na": "999/21/1 +21 Wettringen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 217640,
+ "Li": "kue.aspx?idLD=25466&slot=2",
+ "Na": "999/21/1 +21 Wettringen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 221637,
+ "Li": "kue.aspx?idLD=25466&slot=2",
+ "Na": "999/21/1 +21 Wettringen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 221636,
+ "Li": "kue.aspx?idLD=25466&slot=2",
+ "Na": "999/21/1 +21 Wettringen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 200493,
+ "Li": "kue.aspx?idLD=25466&slot=2",
+ "Na": "999/21/1 +21 Wettringen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 200499,
+ "Li": "kue.aspx?idLD=25466&slot=2",
+ "Na": "999/21/1 +21 Wettringen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 219512,
+ "Li": "kue.aspx?idLD=25466&slot=2",
+ "Na": "999/21/1 +21 Wettringen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 219511,
+ "Li": "kue.aspx?idLD=25466&slot=2",
+ "Na": "999/21/1 +21 Wettringen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 217309,
+ "Li": "kue.aspx?idLD=25466&slot=2",
+ "Na": "999/21/1 +21 Wettringen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25466,
+ "IdS": 204952,
+ "Li": "kue.aspx?idLD=25466&slot=2",
+ "Na": "999/21/1 +21 Wettringen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 215822,
+ "Li": "kue.aspx?idLD=25490&slot=4",
+ "Na": "2 Benrath",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 209188,
+ "Li": "kue.aspx?idLD=25490&slot=4",
+ "Na": "2 Benrath",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25584,
+ "IdS": 223533,
+ "Li": "kue.aspx?idLD=25584&slot=1",
+ "Na": "50 Wintersdorf KVZ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25584,
+ "IdS": 223534,
+ "Li": "kue.aspx?idLD=25584&slot=1",
+ "Na": "50 Wintersdorf KVZ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215501,
+ "Li": "kue.aspx?idLD=25478&slot=3",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215502,
+ "Li": "kue.aspx?idLD=25478&slot=3",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 206849,
+ "Li": "kue.aspx?idLD=25478&slot=3",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 206851,
+ "Li": "kue.aspx?idLD=25478&slot=3",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215504,
+ "Li": "kue.aspx?idLD=25478&slot=3",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 213270,
+ "Li": "kue.aspx?idLD=25478&slot=3",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 200135,
+ "Li": "kue.aspx?idLD=25478&slot=3",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 225530,
+ "Li": "kue.aspx?idLD=25478&slot=3",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 225531,
+ "Li": "kue.aspx?idLD=25478&slot=3",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215509,
+ "Li": "kue.aspx?idLD=25478&slot=3",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215512,
+ "Li": "kue.aspx?idLD=25478&slot=3",
+ "Na": "51 Börrstadt LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 223732,
+ "Li": "kue.aspx?idLD=25508&slot=9",
+ "Na": "202 (28p.)+ 004/16 Meerbeck M&R",
+ "Sl": 9
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 214332,
+ "Li": "kue.aspx?idLD=25508&slot=9",
+ "Na": "202 (28p.)+ 004/16 Meerbeck M&R",
+ "Sl": 9
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208363,
+ "Li": "kue.aspx?idLD=25508&slot=9",
+ "Na": "202 (28p.)+ 004/16 Meerbeck M&R",
+ "Sl": 9
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208361,
+ "Li": "kue.aspx?idLD=25508&slot=9",
+ "Na": "202 (28p.)+ 004/16 Meerbeck M&R",
+ "Sl": 9
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208359,
+ "Li": "kue.aspx?idLD=25508&slot=9",
+ "Na": "202 (28p.)+ 004/16 Meerbeck M&R",
+ "Sl": 9
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208353,
+ "Li": "kue.aspx?idLD=25508&slot=9",
+ "Na": "202 (28p.)+ 004/16 Meerbeck M&R",
+ "Sl": 9
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 206585,
+ "Li": "kue.aspx?idLD=25508&slot=9",
+ "Na": "202 (28p.)+ 004/16 Meerbeck M&R",
+ "Sl": 9
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 205219,
+ "Li": "kue.aspx?idLD=25508&slot=9",
+ "Na": "202 (28p.)+ 004/16 Meerbeck M&R",
+ "Sl": 9
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 222004,
+ "Li": "kue.aspx?idLD=25508&slot=9",
+ "Na": "202 (28p.)+ 004/16 Meerbeck M&R",
+ "Sl": 9
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 220759,
+ "Li": "kue.aspx?idLD=25508&slot=9",
+ "Na": "202 (28p.)+ 004/16 Meerbeck M&R",
+ "Sl": 9
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 220758,
+ "Li": "kue.aspx?idLD=25508&slot=9",
+ "Na": "202 (28p.)+ 004/16 Meerbeck M&R",
+ "Sl": 9
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 223733,
+ "Li": "kue.aspx?idLD=25508&slot=9",
+ "Na": "202 (28p.)+ 004/16 Meerbeck M&R",
+ "Sl": 9
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 200687,
+ "Li": "kue.aspx?idLD=25586&slot=2",
+ "Na": "999/7/1(14p)+7+28/17 Elverlingsen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 208941,
+ "Li": "kue.aspx?idLD=25586&slot=2",
+ "Na": "999/7/1(14p)+7+28/17 Elverlingsen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 207592,
+ "Li": "kue.aspx?idLD=25586&slot=2",
+ "Na": "999/7/1(14p)+7+28/17 Elverlingsen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 207593,
+ "Li": "kue.aspx?idLD=25586&slot=2",
+ "Na": "999/7/1(14p)+7+28/17 Elverlingsen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 220149,
+ "Li": "kue.aspx?idLD=25586&slot=2",
+ "Na": "999/7/1(14p)+7+28/17 Elverlingsen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 220150,
+ "Li": "kue.aspx?idLD=25586&slot=2",
+ "Na": "999/7/1(14p)+7+28/17 Elverlingsen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 200089,
+ "Li": "kue.aspx?idLD=25586&slot=2",
+ "Na": "999/7/1(14p)+7+28/17 Elverlingsen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 215721,
+ "Li": "kue.aspx?idLD=25498&slot=5",
+ "Na": "50 Lörrach-Hauingen KVZ",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 221867,
+ "Li": "kue.aspx?idLD=25498&slot=5",
+ "Na": "50 Lörrach-Hauingen KVZ",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25584,
+ "IdS": 223531,
+ "Li": "kue.aspx?idLD=25584&slot=2",
+ "Na": "50 Eckartsweier LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25584,
+ "IdS": 223532,
+ "Li": "kue.aspx?idLD=25584&slot=2",
+ "Na": "50 Eckartsweier LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25584,
+ "IdS": 224937,
+ "Li": "kue.aspx?idLD=25584&slot=2",
+ "Na": "50 Eckartsweier LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25584,
+ "IdS": 224938,
+ "Li": "kue.aspx?idLD=25584&slot=2",
+ "Na": "50 Eckartsweier LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25584,
+ "IdS": 215690,
+ "Li": "kue.aspx?idLD=25584&slot=2",
+ "Na": "50 Eckartsweier LSE",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 215669,
+ "Li": "kue.aspx?idLD=25438&slot=4",
+ "Na": "50 Wintersdorf KVZ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 206350,
+ "Li": "kue.aspx?idLD=25438&slot=4",
+ "Na": "50 Wintersdorf KVZ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 221952,
+ "Li": "kue.aspx?idLD=25438&slot=4",
+ "Na": "50 Wintersdorf KVZ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 221953,
+ "Li": "kue.aspx?idLD=25438&slot=4",
+ "Na": "50 Wintersdorf KVZ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214381,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 216268,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 203457,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 203449,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 203447,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 218105,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 223795,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 208527,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 215816,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 208526,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214376,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217629,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217630,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217628,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 209930,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 209928,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214379,
+ "Li": "kue.aspx?idLD=25450&slot=2",
+ "Na": "63/194 Rysum",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25556,
+ "IdS": 221865,
+ "Li": "kue.aspx?idLD=25556&slot=1",
+ "Na": "50 Neuershausen KVZ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25556,
+ "IdS": 222121,
+ "Li": "kue.aspx?idLD=25556&slot=1",
+ "Na": "50 Neuershausen KVZ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223272,
+ "Li": "kue.aspx?idLD=25598&slot=4",
+ "Na": "Auslösung SPD Ltg. 66 Vinnhorst-Garbsen",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223273,
+ "Li": "kue.aspx?idLD=25598&slot=4",
+ "Na": "Auslösung SPD Ltg. 66 Vinnhorst-Garbsen",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 207403,
+ "Li": "kue.aspx?idLD=25598&slot=4",
+ "Na": "Auslösung SPD Ltg. 66 Vinnhorst-Garbsen",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 221947,
+ "Li": "kue.aspx?idLD=25614&slot=1",
+ "Na": "11 Bad Nauheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 207682,
+ "Li": "kue.aspx?idLD=25614&slot=1",
+ "Na": "11 Bad Nauheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 214872,
+ "Li": "kue.aspx?idLD=25614&slot=1",
+ "Na": "11 Bad Nauheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 207690,
+ "Li": "kue.aspx?idLD=25614&slot=1",
+ "Na": "11 Bad Nauheim",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 223681,
+ "Li": "kue.aspx?idLD=25458&slot=2",
+ "Na": "64+16/2 Ellinghausen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 207334,
+ "Li": "kue.aspx?idLD=25458&slot=2",
+ "Na": "64+16/2 Ellinghausen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 223933,
+ "Li": "kue.aspx?idLD=25458&slot=5",
+ "Na": "016 Werne",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 223934,
+ "Li": "kue.aspx?idLD=25458&slot=5",
+ "Na": "016 Werne",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 223190,
+ "Li": "kue.aspx?idLD=25458&slot=5",
+ "Na": "016 Werne",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 223191,
+ "Li": "kue.aspx?idLD=25458&slot=5",
+ "Na": "016 Werne",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 223192,
+ "Li": "kue.aspx?idLD=25458&slot=5",
+ "Na": "016 Werne",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 220768,
+ "Li": "kue.aspx?idLD=25458&slot=5",
+ "Na": "016 Werne",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 215004,
+ "Li": "kue.aspx?idLD=25480&slot=12",
+ "Na": "43947 Wallbach FGN",
+ "Sl": 12
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 222795,
+ "Li": "kue.aspx?idLD=25480&slot=12",
+ "Na": "43947 Wallbach FGN",
+ "Sl": 12
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 222796,
+ "Li": "kue.aspx?idLD=25480&slot=12",
+ "Na": "43947 Wallbach FGN",
+ "Sl": 12
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 200053,
+ "Li": "kue.aspx?idLD=25480&slot=12",
+ "Na": "43947 Wallbach FGN",
+ "Sl": 12
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 204088,
+ "Li": "kue.aspx?idLD=25480&slot=12",
+ "Na": "43947 Wallbach FGN",
+ "Sl": 12
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 224949,
+ "Li": "kue.aspx?idLD=25450&slot=3",
+ "Na": "63/194 Altharen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 224950,
+ "Li": "kue.aspx?idLD=25450&slot=3",
+ "Na": "63/194 Altharen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217772,
+ "Li": "kue.aspx?idLD=25450&slot=3",
+ "Na": "63/194 Altharen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 218464,
+ "Li": "kue.aspx?idLD=25450&slot=3",
+ "Na": "63/194 Altharen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217775,
+ "Li": "kue.aspx?idLD=25450&slot=3",
+ "Na": "63/194 Altharen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 221299,
+ "Li": "kue.aspx?idLD=25450&slot=3",
+ "Na": "63/194 Altharen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214393,
+ "Li": "kue.aspx?idLD=25450&slot=3",
+ "Na": "63/194 Altharen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 201376,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 201372,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 217632,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 217633,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 217631,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 217506,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 217505,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 217635,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 217636,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 217634,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 201377,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 201378,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 215130,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 217507,
+ "Li": "kue.aspx?idLD=25470&slot=2",
+ "Na": "026 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 214628,
+ "Li": "kue.aspx?idLD=25534&slot=11",
+ "Na": "12 + 12/30 Solingen Kirchbaumerstr.",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 214625,
+ "Li": "kue.aspx?idLD=25534&slot=11",
+ "Na": "12 + 12/30 Solingen Kirchbaumerstr.",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 207767,
+ "Li": "kue.aspx?idLD=25534&slot=11",
+ "Na": "12 + 12/30 Solingen Kirchbaumerstr.",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 214622,
+ "Li": "kue.aspx?idLD=25534&slot=11",
+ "Na": "12 + 12/30 Solingen Kirchbaumerstr.",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 205467,
+ "Li": "kue.aspx?idLD=25534&slot=11",
+ "Na": "12 + 12/30 Solingen Kirchbaumerstr.",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 215448,
+ "Li": "kue.aspx?idLD=25540&slot=3",
+ "Na": "051 Rimpar ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 221415,
+ "Li": "kue.aspx?idLD=25540&slot=3",
+ "Na": "051 Rimpar ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 215446,
+ "Li": "kue.aspx?idLD=25540&slot=3",
+ "Na": "051 Rimpar ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 215444,
+ "Li": "kue.aspx?idLD=25540&slot=3",
+ "Na": "051 Rimpar ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 215439,
+ "Li": "kue.aspx?idLD=25540&slot=3",
+ "Na": "051 Rimpar ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 224057,
+ "Li": "kue.aspx?idLD=25540&slot=3",
+ "Na": "051 Rimpar ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 224058,
+ "Li": "kue.aspx?idLD=25540&slot=3",
+ "Na": "051 Rimpar ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 208144,
+ "Li": "kue.aspx?idLD=25602&slot=1",
+ "Na": "44114 Neckarhausen LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 208154,
+ "Li": "kue.aspx?idLD=25602&slot=1",
+ "Na": "44114 Neckarhausen LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 218635,
+ "Li": "kue.aspx?idLD=25602&slot=1",
+ "Na": "44114 Neckarhausen LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 208159,
+ "Li": "kue.aspx?idLD=25602&slot=1",
+ "Na": "44114 Neckarhausen LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 218234,
+ "Li": "kue.aspx?idLD=25602&slot=1",
+ "Na": "44114 Neckarhausen LSE",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 212856,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 200173,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 200175,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 200176,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 200174,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 218263,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 214991,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 214992,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 214994,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 208043,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 208030,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 218535,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 214995,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 208053,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 214996,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 208055,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 208054,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 214997,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 208048,
+ "Li": "kue.aspx?idLD=25602&slot=3",
+ "Na": "44114 Eggenstein LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 215828,
+ "Li": "kue.aspx?idLD=25480&slot=11",
+ "Na": "10 Stockstadt über Crumstadt KVZ Ltg. 10",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207195,
+ "Li": "kue.aspx?idLD=25480&slot=11",
+ "Na": "10 Stockstadt über Crumstadt KVZ Ltg. 10",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 214975,
+ "Li": "kue.aspx?idLD=25480&slot=11",
+ "Na": "10 Stockstadt über Crumstadt KVZ Ltg. 10",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 200367,
+ "Li": "kue.aspx?idLD=25480&slot=11",
+ "Na": "10 Stockstadt über Crumstadt KVZ Ltg. 10",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 200791,
+ "Li": "kue.aspx?idLD=25480&slot=11",
+ "Na": "10 Stockstadt über Crumstadt KVZ Ltg. 10",
+ "Sl": 11
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 225893,
+ "Li": "kue.aspx?idLD=25524&slot=3",
+ "Na": "7 Olpe",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 225892,
+ "Li": "kue.aspx?idLD=25524&slot=3",
+ "Na": "7 Olpe",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 214896,
+ "Li": "kue.aspx?idLD=25524&slot=3",
+ "Na": "7 Olpe",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 214898,
+ "Li": "kue.aspx?idLD=25524&slot=3",
+ "Na": "7 Olpe",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 221741,
+ "Li": "kue.aspx?idLD=25524&slot=3",
+ "Na": "7 Olpe",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 221740,
+ "Li": "kue.aspx?idLD=25524&slot=3",
+ "Na": "7 Olpe",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 201648,
+ "Li": "kue.aspx?idLD=25524&slot=3",
+ "Na": "7 Olpe",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25434,
+ "IdS": 221473,
+ "Li": "kue.aspx?idLD=25434&slot=1",
+ "Na": "13/5 Emsbüren",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25434,
+ "IdS": 221474,
+ "Li": "kue.aspx?idLD=25434&slot=1",
+ "Na": "13/5 Emsbüren",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25462,
+ "IdS": 205463,
+ "Li": "kue.aspx?idLD=25462&slot=1",
+ "Na": "25 Voxtrup / Osnabrück",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25462,
+ "IdS": 205464,
+ "Li": "kue.aspx?idLD=25462&slot=1",
+ "Na": "25 Voxtrup / Osnabrück",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25462,
+ "IdS": 205462,
+ "Li": "kue.aspx?idLD=25462&slot=1",
+ "Na": "25 Voxtrup / Osnabrück",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25462,
+ "IdS": 217840,
+ "Li": "kue.aspx?idLD=25462&slot=1",
+ "Na": "25 Voxtrup / Osnabrück",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25462,
+ "IdS": 217841,
+ "Li": "kue.aspx?idLD=25462&slot=1",
+ "Na": "25 Voxtrup / Osnabrück",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25462,
+ "IdS": 217839,
+ "Li": "kue.aspx?idLD=25462&slot=1",
+ "Na": "25 Voxtrup / Osnabrück",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 207633,
+ "Li": "kue.aspx?idLD=25524&slot=2",
+ "Na": "007 Wissen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 207634,
+ "Li": "kue.aspx?idLD=25524&slot=2",
+ "Na": "007 Wissen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 207638,
+ "Li": "kue.aspx?idLD=25524&slot=2",
+ "Na": "007 Wissen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 224181,
+ "Li": "kue.aspx?idLD=25524&slot=2",
+ "Na": "007 Wissen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25524,
+ "IdS": 224182,
+ "Li": "kue.aspx?idLD=25524&slot=2",
+ "Na": "007 Wissen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25560,
+ "IdS": 218164,
+ "Li": "kue.aspx?idLD=25560&slot=1",
+ "Na": "22 Dernbach",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25560,
+ "IdS": 214786,
+ "Li": "kue.aspx?idLD=25560&slot=1",
+ "Na": "22 Dernbach",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25560,
+ "IdS": 202781,
+ "Li": "kue.aspx?idLD=25560&slot=1",
+ "Na": "22 Dernbach",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 200026,
+ "Li": "kue.aspx?idLD=25476&slot=1",
+ "Na": "15554 Kastel 2 Igelstein",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 200022,
+ "Li": "kue.aspx?idLD=25476&slot=1",
+ "Na": "15554 Kastel 2 Igelstein",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 200024,
+ "Li": "kue.aspx?idLD=25476&slot=1",
+ "Na": "15554 Kastel 2 Igelstein",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 207709,
+ "Li": "kue.aspx?idLD=25476&slot=1",
+ "Na": "15554 Kastel 2 Igelstein",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 214763,
+ "Li": "kue.aspx?idLD=25476&slot=1",
+ "Na": "15554 Kastel 2 Igelstein",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 223509,
+ "Li": "kue.aspx?idLD=25498&slot=3",
+ "Na": "50 Wehr-Öfflingen über Wallbach CH",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 215721,
+ "Li": "kue.aspx?idLD=25498&slot=3",
+ "Na": "50 Wehr-Öfflingen über Wallbach CH",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 221867,
+ "Li": "kue.aspx?idLD=25498&slot=3",
+ "Na": "50 Wehr-Öfflingen über Wallbach CH",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 201553,
+ "Li": "kue.aspx?idLD=25498&slot=3",
+ "Na": "50 Wehr-Öfflingen über Wallbach CH",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 225024,
+ "Li": "kue.aspx?idLD=25498&slot=3",
+ "Na": "50 Wehr-Öfflingen über Wallbach CH",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 200232,
+ "Li": "kue.aspx?idLD=25498&slot=3",
+ "Na": "50 Wehr-Öfflingen über Wallbach CH",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 223224,
+ "Li": "kue.aspx?idLD=25498&slot=3",
+ "Na": "50 Wehr-Öfflingen über Wallbach CH",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 225023,
+ "Li": "kue.aspx?idLD=25498&slot=3",
+ "Na": "50 Wehr-Öfflingen über Wallbach CH",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 223697,
+ "Li": "kue.aspx?idLD=25498&slot=3",
+ "Na": "50 Wehr-Öfflingen über Wallbach CH",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 224054,
+ "Li": "kue.aspx?idLD=25546&slot=1",
+ "Na": "026/004 Röllbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 224053,
+ "Li": "kue.aspx?idLD=25546&slot=1",
+ "Na": "026/004 Röllbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 213575,
+ "Li": "kue.aspx?idLD=25546&slot=1",
+ "Na": "026/004 Röllbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 215031,
+ "Li": "kue.aspx?idLD=25546&slot=1",
+ "Na": "026/004 Röllbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 215025,
+ "Li": "kue.aspx?idLD=25546&slot=1",
+ "Na": "026/004 Röllbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 215745,
+ "Li": "kue.aspx?idLD=25546&slot=1",
+ "Na": "026/004 Röllbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 216300,
+ "Li": "kue.aspx?idLD=25546&slot=1",
+ "Na": "026/004 Röllbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25580,
+ "IdS": 221271,
+ "Li": "kue.aspx?idLD=25580&slot=2",
+ "Na": "50 Wallenthal",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25580,
+ "IdS": 221272,
+ "Li": "kue.aspx?idLD=25580&slot=2",
+ "Na": "50 Wallenthal",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25580,
+ "IdS": 221269,
+ "Li": "kue.aspx?idLD=25580&slot=2",
+ "Na": "50 Wallenthal",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25580,
+ "IdS": 209891,
+ "Li": "kue.aspx?idLD=25580&slot=2",
+ "Na": "50 Wallenthal",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25580,
+ "IdS": 216237,
+ "Li": "kue.aspx?idLD=25580&slot=2",
+ "Na": "50 Wallenthal",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25580,
+ "IdS": 221298,
+ "Li": "kue.aspx?idLD=25580&slot=2",
+ "Na": "50 Wallenthal",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25580,
+ "IdS": 221266,
+ "Li": "kue.aspx?idLD=25580&slot=2",
+ "Na": "50 Wallenthal",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25580,
+ "IdS": 221267,
+ "Li": "kue.aspx?idLD=25580&slot=2",
+ "Na": "50 Wallenthal",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25434,
+ "IdS": 214472,
+ "Li": "kue.aspx?idLD=25434&slot=4",
+ "Na": "13 M+R Legden",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25434,
+ "IdS": 214475,
+ "Li": "kue.aspx?idLD=25434&slot=4",
+ "Na": "13 M+R Legden",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 214972,
+ "Li": "kue.aspx?idLD=25476&slot=5",
+ "Na": "10 Dornheim-Leeheim KVZ",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 214970,
+ "Li": "kue.aspx?idLD=25476&slot=5",
+ "Na": "10 Dornheim-Leeheim KVZ",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 208134,
+ "Li": "kue.aspx?idLD=25476&slot=5",
+ "Na": "10 Dornheim-Leeheim KVZ",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25476,
+ "IdS": 214969,
+ "Li": "kue.aspx?idLD=25476&slot=5",
+ "Na": "10 Dornheim-Leeheim KVZ",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 214332,
+ "Li": "kue.aspx?idLD=25508&slot=8",
+ "Na": "202 (28p.)+ 4/16 Krefeld Linn",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208363,
+ "Li": "kue.aspx?idLD=25508&slot=8",
+ "Na": "202 (28p.)+ 4/16 Krefeld Linn",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208361,
+ "Li": "kue.aspx?idLD=25508&slot=8",
+ "Na": "202 (28p.)+ 4/16 Krefeld Linn",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208359,
+ "Li": "kue.aspx?idLD=25508&slot=8",
+ "Na": "202 (28p.)+ 4/16 Krefeld Linn",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208353,
+ "Li": "kue.aspx?idLD=25508&slot=8",
+ "Na": "202 (28p.)+ 4/16 Krefeld Linn",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 206586,
+ "Li": "kue.aspx?idLD=25508&slot=8",
+ "Na": "202 (28p.)+ 4/16 Krefeld Linn",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 205219,
+ "Li": "kue.aspx?idLD=25508&slot=8",
+ "Na": "202 (28p.)+ 4/16 Krefeld Linn",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 222004,
+ "Li": "kue.aspx?idLD=25508&slot=8",
+ "Na": "202 (28p.)+ 4/16 Krefeld Linn",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 207336,
+ "Li": "kue.aspx?idLD=25508&slot=8",
+ "Na": "202 (28p.)+ 4/16 Krefeld Linn",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 207338,
+ "Li": "kue.aspx?idLD=25508&slot=8",
+ "Na": "202 (28p.)+ 4/16 Krefeld Linn",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 207337,
+ "Li": "kue.aspx?idLD=25508&slot=8",
+ "Na": "202 (28p.)+ 4/16 Krefeld Linn",
+ "Sl": 8
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223272,
+ "Li": "kue.aspx?idLD=25598&slot=6",
+ "Na": "6 Kolenfeld",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223273,
+ "Li": "kue.aspx?idLD=25598&slot=6",
+ "Na": "6 Kolenfeld",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 222647,
+ "Li": "kue.aspx?idLD=25598&slot=6",
+ "Na": "6 Kolenfeld",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 222648,
+ "Li": "kue.aspx?idLD=25598&slot=6",
+ "Na": "6 Kolenfeld",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 207394,
+ "Li": "kue.aspx?idLD=25598&slot=6",
+ "Na": "6 Kolenfeld",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 214556,
+ "Li": "kue.aspx?idLD=25598&slot=6",
+ "Na": "6 Kolenfeld",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 207400,
+ "Li": "kue.aspx?idLD=25598&slot=6",
+ "Na": "6 Kolenfeld",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 218517,
+ "Li": "kue.aspx?idLD=25616&slot=1",
+ "Na": "63 Epe",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 207804,
+ "Li": "kue.aspx?idLD=25616&slot=1",
+ "Na": "63 Epe",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 207802,
+ "Li": "kue.aspx?idLD=25616&slot=1",
+ "Na": "63 Epe",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 207801,
+ "Li": "kue.aspx?idLD=25616&slot=1",
+ "Na": "63 Epe",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 218468,
+ "Li": "kue.aspx?idLD=25616&slot=1",
+ "Na": "63 Epe",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 222262,
+ "Li": "kue.aspx?idLD=25616&slot=1",
+ "Na": "63 Epe",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 222261,
+ "Li": "kue.aspx?idLD=25616&slot=1",
+ "Na": "63 Epe",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 217750,
+ "Li": "kue.aspx?idLD=25616&slot=1",
+ "Na": "63 Epe",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 218549,
+ "Li": "kue.aspx?idLD=25616&slot=1",
+ "Na": "63 Epe",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220158,
+ "Li": "kue.aspx?idLD=25616&slot=1",
+ "Na": "63 Epe",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220157,
+ "Li": "kue.aspx?idLD=25616&slot=1",
+ "Na": "63 Epe",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 218551,
+ "Li": "kue.aspx?idLD=25616&slot=1",
+ "Na": "63 Epe",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 214545,
+ "Li": "kue.aspx?idLD=25498&slot=4",
+ "Na": "50 Wehr-Öfflingen über Nordschwaben ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 214544,
+ "Li": "kue.aspx?idLD=25498&slot=4",
+ "Na": "50 Wehr-Öfflingen über Nordschwaben ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 202630,
+ "Li": "kue.aspx?idLD=25498&slot=4",
+ "Na": "50 Wehr-Öfflingen über Nordschwaben ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215466,
+ "Li": "kue.aspx?idLD=25478&slot=2",
+ "Na": "51 Neutsch KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215468,
+ "Li": "kue.aspx?idLD=25478&slot=2",
+ "Na": "51 Neutsch KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 205923,
+ "Li": "kue.aspx?idLD=25478&slot=2",
+ "Na": "51 Neutsch KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25482,
+ "IdS": 220267,
+ "Li": "kue.aspx?idLD=25482&slot=2",
+ "Na": "27/1 Heiden-Borken",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25482,
+ "IdS": 220268,
+ "Li": "kue.aspx?idLD=25482&slot=2",
+ "Na": "27/1 Heiden-Borken",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25482,
+ "IdS": 219400,
+ "Li": "kue.aspx?idLD=25482&slot=2",
+ "Na": "27/1 Heiden-Borken",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 217288,
+ "Li": "kue.aspx?idLD=25454&slot=4",
+ "Na": "22 Dernbach-Urbach",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 202779,
+ "Li": "kue.aspx?idLD=25454&slot=4",
+ "Na": "22 Dernbach-Urbach",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 202771,
+ "Li": "kue.aspx?idLD=25454&slot=4",
+ "Na": "22 Dernbach-Urbach",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 214782,
+ "Li": "kue.aspx?idLD=25454&slot=4",
+ "Na": "22 Dernbach-Urbach",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 221652,
+ "Li": "kue.aspx?idLD=25454&slot=4",
+ "Na": "22 Dernbach-Urbach",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 221651,
+ "Li": "kue.aspx?idLD=25454&slot=4",
+ "Na": "22 Dernbach-Urbach",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 208266,
+ "Li": "kue.aspx?idLD=25454&slot=4",
+ "Na": "22 Dernbach-Urbach",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 221650,
+ "Li": "kue.aspx?idLD=25454&slot=4",
+ "Na": "22 Dernbach-Urbach",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 217290,
+ "Li": "kue.aspx?idLD=25454&slot=4",
+ "Na": "22 Dernbach-Urbach",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 218163,
+ "Li": "kue.aspx?idLD=25454&slot=4",
+ "Na": "22 Dernbach-Urbach",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 215137,
+ "Li": "kue.aspx?idLD=25470&slot=3",
+ "Na": "051 Renzenhof ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 215138,
+ "Li": "kue.aspx?idLD=25470&slot=3",
+ "Na": "051 Renzenhof ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 207869,
+ "Li": "kue.aspx?idLD=25490&slot=1",
+ "Na": "12/16+200/6+200 Monheim Düker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 214805,
+ "Li": "kue.aspx?idLD=25490&slot=1",
+ "Na": "12/16+200/6+200 Monheim Düker",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25554,
+ "IdS": 215401,
+ "Li": "kue.aspx?idLD=25554&slot=2",
+ "Na": "051 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25554,
+ "IdS": 215406,
+ "Li": "kue.aspx?idLD=25554&slot=2",
+ "Na": "051 Waidhaus ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220769,
+ "Li": "kue.aspx?idLD=25616&slot=10",
+ "Na": "16 Ennigerloh-Enniger",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220770,
+ "Li": "kue.aspx?idLD=25616&slot=10",
+ "Na": "16 Ennigerloh-Enniger",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 214520,
+ "Li": "kue.aspx?idLD=25616&slot=10",
+ "Na": "16 Ennigerloh-Enniger",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 214517,
+ "Li": "kue.aspx?idLD=25616&slot=10",
+ "Na": "16 Ennigerloh-Enniger",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 214516,
+ "Li": "kue.aspx?idLD=25616&slot=10",
+ "Na": "16 Ennigerloh-Enniger",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25520,
+ "IdS": 223730,
+ "Li": "kue.aspx?idLD=25520&slot=2",
+ "Na": "22 Taunusstein-Wehen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25520,
+ "IdS": 207282,
+ "Li": "kue.aspx?idLD=25520&slot=2",
+ "Na": "22 Taunusstein-Wehen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 220007,
+ "Li": "kue.aspx?idLD=25534&slot=10",
+ "Na": "22 Niederpleis KVz",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 221500,
+ "Li": "kue.aspx?idLD=25534&slot=10",
+ "Na": "22 Niederpleis KVz",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 223884,
+ "Li": "kue.aspx?idLD=25534&slot=10",
+ "Na": "22 Niederpleis KVz",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 223913,
+ "Li": "kue.aspx?idLD=25534&slot=10",
+ "Na": "22 Niederpleis KVz",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25560,
+ "IdS": 214803,
+ "Li": "kue.aspx?idLD=25560&slot=4",
+ "Na": "22 Michelbach",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25560,
+ "IdS": 202812,
+ "Li": "kue.aspx?idLD=25560&slot=4",
+ "Na": "22 Michelbach",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25420,
+ "IdS": 224940,
+ "Li": "kue.aspx?idLD=25420&slot=2",
+ "Na": "008 + 003 Bad Honnef GW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25420,
+ "IdS": 224941,
+ "Li": "kue.aspx?idLD=25420&slot=2",
+ "Na": "008 + 003 Bad Honnef GW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25420,
+ "IdS": 224943,
+ "Li": "kue.aspx?idLD=25420&slot=2",
+ "Na": "008 + 003 Bad Honnef GW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25420,
+ "IdS": 224942,
+ "Li": "kue.aspx?idLD=25420&slot=2",
+ "Na": "008 + 003 Bad Honnef GW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 205907,
+ "Li": "kue.aspx?idLD=25530&slot=5",
+ "Na": "6/19 Stadtwerke Osnabrück",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 205906,
+ "Li": "kue.aspx?idLD=25530&slot=5",
+ "Na": "6/19 Stadtwerke Osnabrück",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 208516,
+ "Li": "kue.aspx?idLD=25530&slot=5",
+ "Na": "6/19 Stadtwerke Osnabrück",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 208515,
+ "Li": "kue.aspx?idLD=25530&slot=5",
+ "Na": "6/19 Stadtwerke Osnabrück",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 208517,
+ "Li": "kue.aspx?idLD=25530&slot=5",
+ "Na": "6/19 Stadtwerke Osnabrück",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 215644,
+ "Li": "kue.aspx?idLD=25438&slot=2",
+ "Na": "50 Klingenmünster Creos",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 207065,
+ "Li": "kue.aspx?idLD=25438&slot=2",
+ "Na": "50 Klingenmünster Creos",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 215645,
+ "Li": "kue.aspx?idLD=25438&slot=2",
+ "Na": "50 Klingenmünster Creos",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 215651,
+ "Li": "kue.aspx?idLD=25438&slot=2",
+ "Na": "50 Klingenmünster Creos",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 222748,
+ "Li": "kue.aspx?idLD=25508&slot=7",
+ "Na": "13/4/2+2/3/19+2/3/5+4+4/14 Krefeld MR",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 214661,
+ "Li": "kue.aspx?idLD=25508&slot=7",
+ "Na": "13/4/2+2/3/19+2/3/5+4+4/14 Krefeld MR",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 214664,
+ "Li": "kue.aspx?idLD=25508&slot=7",
+ "Na": "13/4/2+2/3/19+2/3/5+4+4/14 Krefeld MR",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 205202,
+ "Li": "kue.aspx?idLD=25508&slot=7",
+ "Na": "13/4/2+2/3/19+2/3/5+4+4/14 Krefeld MR",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 224085,
+ "Li": "kue.aspx?idLD=25508&slot=7",
+ "Na": "13/4/2+2/3/19+2/3/5+4+4/14 Krefeld MR",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 221178,
+ "Li": "kue.aspx?idLD=25508&slot=7",
+ "Na": "13/4/2+2/3/19+2/3/5+4+4/14 Krefeld MR",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208533,
+ "Li": "kue.aspx?idLD=25508&slot=7",
+ "Na": "13/4/2+2/3/19+2/3/5+4+4/14 Krefeld MR",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208351,
+ "Li": "kue.aspx?idLD=25508&slot=7",
+ "Na": "13/4/2+2/3/19+2/3/5+4+4/14 Krefeld MR",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 221744,
+ "Li": "kue.aspx?idLD=25586&slot=4",
+ "Na": "999/7/1(28p) + 7 Springorumstr.",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 201646,
+ "Li": "kue.aspx?idLD=25586&slot=4",
+ "Na": "999/7/1(28p) + 7 Springorumstr.",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 224406,
+ "Li": "kue.aspx?idLD=25586&slot=4",
+ "Na": "999/7/1(28p) + 7 Springorumstr.",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 219439,
+ "Li": "kue.aspx?idLD=25586&slot=4",
+ "Na": "999/7/1(28p) + 7 Springorumstr.",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 214886,
+ "Li": "kue.aspx?idLD=25586&slot=4",
+ "Na": "999/7/1(28p) + 7 Springorumstr.",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 220721,
+ "Li": "kue.aspx?idLD=25586&slot=4",
+ "Na": "999/7/1(28p) + 7 Springorumstr.",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 220720,
+ "Li": "kue.aspx?idLD=25586&slot=4",
+ "Na": "999/7/1(28p) + 7 Springorumstr.",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25478,
+ "IdS": 215501,
+ "Li": "kue.aspx?idLD=25478&slot=5",
+ "Na": "51 Nordheim LSE",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 219585,
+ "Li": "kue.aspx?idLD=25602&slot=2",
+ "Na": "44114 Sandhausen terranet bw",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 219584,
+ "Li": "kue.aspx?idLD=25602&slot=2",
+ "Na": "44114 Sandhausen terranet bw",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 218234,
+ "Li": "kue.aspx?idLD=25602&slot=2",
+ "Na": "44114 Sandhausen terranet bw",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 215828,
+ "Li": "kue.aspx?idLD=25480&slot=10",
+ "Na": "10 Dornheim-Leeheim KVZ",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207195,
+ "Li": "kue.aspx?idLD=25480&slot=10",
+ "Na": "10 Dornheim-Leeheim KVZ",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207196,
+ "Li": "kue.aspx?idLD=25480&slot=10",
+ "Na": "10 Dornheim-Leeheim KVZ",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 214975,
+ "Li": "kue.aspx?idLD=25480&slot=10",
+ "Na": "10 Dornheim-Leeheim KVZ",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 214974,
+ "Li": "kue.aspx?idLD=25480&slot=10",
+ "Na": "10 Dornheim-Leeheim KVZ",
+ "Sl": 10
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 215185,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 216980,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 215174,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 215173,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 223617,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 223616,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 204290,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 204289,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 204287,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 222913,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 223618,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 209904,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 224939,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 204312,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25442,
+ "IdS": 215190,
+ "Li": "kue.aspx?idLD=25442&slot=1",
+ "Na": "53 Landshut0Münchnerau",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25566,
+ "IdS": 221982,
+ "Li": "kue.aspx?idLD=25566&slot=3",
+ "Na": "56 Waizenbach ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25566,
+ "IdS": 221981,
+ "Li": "kue.aspx?idLD=25566&slot=3",
+ "Na": "56 Waizenbach ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25566,
+ "IdS": 217001,
+ "Li": "kue.aspx?idLD=25566&slot=3",
+ "Na": "56 Waizenbach ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25566,
+ "IdS": 225312,
+ "Li": "kue.aspx?idLD=25566&slot=3",
+ "Na": "56 Waizenbach ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25566,
+ "IdS": 224481,
+ "Li": "kue.aspx?idLD=25566&slot=3",
+ "Na": "56 Waizenbach ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25566,
+ "IdS": 224480,
+ "Li": "kue.aspx?idLD=25566&slot=3",
+ "Na": "56 Waizenbach ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 204807,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 200821,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 208567,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25578,
+ "IdS": 208582,
+ "Li": "kue.aspx?idLD=25578&slot=1",
+ "Na": "66/118 + 66/0118 Hobbensen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25482,
+ "IdS": 220270,
+ "Li": "kue.aspx?idLD=25482&slot=1",
+ "Na": "27 Winterswyk",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25482,
+ "IdS": 225827,
+ "Li": "kue.aspx?idLD=25482&slot=1",
+ "Na": "27 Winterswyk",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25482,
+ "IdS": 225826,
+ "Li": "kue.aspx?idLD=25482&slot=1",
+ "Na": "27 Winterswyk",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 222639,
+ "Li": "kue.aspx?idLD=25538&slot=4",
+ "Na": "28 Dahl",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 222638,
+ "Li": "kue.aspx?idLD=25538&slot=4",
+ "Na": "28 Dahl",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 222635,
+ "Li": "kue.aspx?idLD=25538&slot=4",
+ "Na": "28 Dahl",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 220003,
+ "Li": "kue.aspx?idLD=25446&slot=5",
+ "Na": "1 Lotharstr.",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 220002,
+ "Li": "kue.aspx?idLD=25446&slot=5",
+ "Na": "1 Lotharstr.",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 219868,
+ "Li": "kue.aspx?idLD=25446&slot=5",
+ "Na": "1 Lotharstr.",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 219865,
+ "Li": "kue.aspx?idLD=25446&slot=5",
+ "Na": "1 Lotharstr.",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 220121,
+ "Li": "kue.aspx?idLD=25446&slot=5",
+ "Na": "1 Lotharstr.",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 220122,
+ "Li": "kue.aspx?idLD=25446&slot=5",
+ "Na": "1 Lotharstr.",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 220120,
+ "Li": "kue.aspx?idLD=25446&slot=5",
+ "Na": "1 Lotharstr.",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 204940,
+ "Li": "kue.aspx?idLD=25446&slot=5",
+ "Na": "1 Lotharstr.",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 219857,
+ "Li": "kue.aspx?idLD=25446&slot=5",
+ "Na": "1 Lotharstr.",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207204,
+ "Li": "kue.aspx?idLD=25480&slot=6",
+ "Na": "999/10/13 Crumstadt KVZ",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 208475,
+ "Li": "kue.aspx?idLD=25480&slot=6",
+ "Na": "999/10/13 Crumstadt KVZ",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 208470,
+ "Li": "kue.aspx?idLD=25480&slot=6",
+ "Na": "999/10/13 Crumstadt KVZ",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 200367,
+ "Li": "kue.aspx?idLD=25480&slot=6",
+ "Na": "999/10/13 Crumstadt KVZ",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 201324,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 200054,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 201317,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 201320,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 201319,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 223385,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 223386,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 202614,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 201322,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 222485,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 222486,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 201325,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 201326,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 201321,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25540,
+ "IdS": 201318,
+ "Li": "kue.aspx?idLD=25540&slot=1",
+ "Na": "026/003/007 Michelbach ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 222000,
+ "Li": "kue.aspx?idLD=25576&slot=3",
+ "Na": "22/19 Wirbelau Syna",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 222128,
+ "Li": "kue.aspx?idLD=25576&slot=3",
+ "Na": "22/19 Wirbelau Syna",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 208625,
+ "Li": "kue.aspx?idLD=25576&slot=3",
+ "Na": "22/19 Wirbelau Syna",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 208008,
+ "Li": "kue.aspx?idLD=18604&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 208007,
+ "Li": "kue.aspx?idLD=18604&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 209943,
+ "Li": "kue.aspx?idLD=18604&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 209941,
+ "Li": "kue.aspx?idLD=18604&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 209940,
+ "Li": "kue.aspx?idLD=18604&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 209944,
+ "Li": "kue.aspx?idLD=18604&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 208009,
+ "Li": "kue.aspx?idLD=18604&slot=1",
+ "Na": "KÜG 1",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 208008,
+ "Li": "kue.aspx?idLD=22288&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 208007,
+ "Li": "kue.aspx?idLD=22288&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 209943,
+ "Li": "kue.aspx?idLD=22288&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 209941,
+ "Li": "kue.aspx?idLD=22288&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 209940,
+ "Li": "kue.aspx?idLD=22288&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 209944,
+ "Li": "kue.aspx?idLD=22288&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 208009,
+ "Li": "kue.aspx?idLD=22288&slot=1",
+ "Na": "KÜG 01",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 208008,
+ "Li": "kue.aspx?idLD=25544&slot=1",
+ "Na": "026/005 Gebersdorf ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 208007,
+ "Li": "kue.aspx?idLD=25544&slot=1",
+ "Na": "026/005 Gebersdorf ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 209943,
+ "Li": "kue.aspx?idLD=25544&slot=1",
+ "Na": "026/005 Gebersdorf ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 209941,
+ "Li": "kue.aspx?idLD=25544&slot=1",
+ "Na": "026/005 Gebersdorf ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 209940,
+ "Li": "kue.aspx?idLD=25544&slot=1",
+ "Na": "026/005 Gebersdorf ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 209944,
+ "Li": "kue.aspx?idLD=25544&slot=1",
+ "Na": "026/005 Gebersdorf ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 208009,
+ "Li": "kue.aspx?idLD=25544&slot=1",
+ "Na": "026/005 Gebersdorf ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 221744,
+ "Li": "kue.aspx?idLD=25586&slot=1",
+ "Na": "999/7/1(28p.)+7+21+21/10 Herdecke KW Cuno",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 201646,
+ "Li": "kue.aspx?idLD=25586&slot=1",
+ "Na": "999/7/1(28p.)+7+21+21/10 Herdecke KW Cuno",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 200044,
+ "Li": "kue.aspx?idLD=25586&slot=1",
+ "Na": "999/7/1(28p.)+7+21+21/10 Herdecke KW Cuno",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 200045,
+ "Li": "kue.aspx?idLD=25586&slot=1",
+ "Na": "999/7/1(28p.)+7+21+21/10 Herdecke KW Cuno",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 200726,
+ "Li": "kue.aspx?idLD=25586&slot=1",
+ "Na": "999/7/1(28p.)+7+21+21/10 Herdecke KW Cuno",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 200729,
+ "Li": "kue.aspx?idLD=25586&slot=1",
+ "Na": "999/7/1(28p.)+7+21+21/10 Herdecke KW Cuno",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 200727,
+ "Li": "kue.aspx?idLD=25586&slot=1",
+ "Na": "999/7/1(28p.)+7+21+21/10 Herdecke KW Cuno",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 200730,
+ "Li": "kue.aspx?idLD=25586&slot=1",
+ "Na": "999/7/1(28p.)+7+21+21/10 Herdecke KW Cuno",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 200728,
+ "Li": "kue.aspx?idLD=25586&slot=1",
+ "Na": "999/7/1(28p.)+7+21+21/10 Herdecke KW Cuno",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25586,
+ "IdS": 200231,
+ "Li": "kue.aspx?idLD=25586&slot=1",
+ "Na": "999/7/1(28p.)+7+21+21/10 Herdecke KW Cuno",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25488,
+ "IdS": 226035,
+ "Li": "kue.aspx?idLD=25488&slot=3",
+ "Na": "56 Schlüchtern-Wallroth",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25488,
+ "IdS": 226036,
+ "Li": "kue.aspx?idLD=25488&slot=3",
+ "Na": "56 Schlüchtern-Wallroth",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25488,
+ "IdS": 202856,
+ "Li": "kue.aspx?idLD=25488&slot=3",
+ "Na": "56 Schlüchtern-Wallroth",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 208166,
+ "Li": "kue.aspx?idLD=25458&slot=3",
+ "Na": "999/7/2 + 7/3 + 7 DO-Wambel (Rathsbusch)",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 207632,
+ "Li": "kue.aspx?idLD=25458&slot=3",
+ "Na": "999/7/2 + 7/3 + 7 DO-Wambel (Rathsbusch)",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 206713,
+ "Li": "kue.aspx?idLD=25458&slot=3",
+ "Na": "999/7/2 + 7/3 + 7 DO-Wambel (Rathsbusch)",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 206714,
+ "Li": "kue.aspx?idLD=25458&slot=3",
+ "Na": "999/7/2 + 7/3 + 7 DO-Wambel (Rathsbusch)",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 218140,
+ "Li": "kue.aspx?idLD=25454&slot=2",
+ "Na": "3+8 Andernach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 222276,
+ "Li": "kue.aspx?idLD=25454&slot=2",
+ "Na": "3+8 Andernach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 222275,
+ "Li": "kue.aspx?idLD=25454&slot=2",
+ "Na": "3+8 Andernach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 223920,
+ "Li": "kue.aspx?idLD=25454&slot=2",
+ "Na": "3+8 Andernach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 223919,
+ "Li": "kue.aspx?idLD=25454&slot=2",
+ "Na": "3+8 Andernach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 222023,
+ "Li": "kue.aspx?idLD=25454&slot=2",
+ "Na": "3+8 Andernach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 214741,
+ "Li": "kue.aspx?idLD=25454&slot=2",
+ "Na": "3+8 Andernach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25454,
+ "IdS": 214722,
+ "Li": "kue.aspx?idLD=25454&slot=2",
+ "Na": "3+8 Andernach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 204788,
+ "Li": "kue.aspx?idLD=25612&slot=1",
+ "Na": "411 / 11 Burger Eisenwerke",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 207687,
+ "Li": "kue.aspx?idLD=25612&slot=1",
+ "Na": "411 / 11 Burger Eisenwerke",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 207689,
+ "Li": "kue.aspx?idLD=25612&slot=1",
+ "Na": "411 / 11 Burger Eisenwerke",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 214854,
+ "Li": "kue.aspx?idLD=25612&slot=1",
+ "Na": "411 / 11 Burger Eisenwerke",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 214851,
+ "Li": "kue.aspx?idLD=25612&slot=1",
+ "Na": "411 / 11 Burger Eisenwerke",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 202501,
+ "Li": "kue.aspx?idLD=25612&slot=1",
+ "Na": "411 / 11 Burger Eisenwerke",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 214332,
+ "Li": "kue.aspx?idLD=25508&slot=5",
+ "Na": "202 (Kabel 4 + 24) Hüls",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208367,
+ "Li": "kue.aspx?idLD=25508&slot=5",
+ "Na": "202 (Kabel 4 + 24) Hüls",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208363,
+ "Li": "kue.aspx?idLD=25508&slot=5",
+ "Na": "202 (Kabel 4 + 24) Hüls",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208361,
+ "Li": "kue.aspx?idLD=25508&slot=5",
+ "Na": "202 (Kabel 4 + 24) Hüls",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208359,
+ "Li": "kue.aspx?idLD=25508&slot=5",
+ "Na": "202 (Kabel 4 + 24) Hüls",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208353,
+ "Li": "kue.aspx?idLD=25508&slot=5",
+ "Na": "202 (Kabel 4 + 24) Hüls",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 206585,
+ "Li": "kue.aspx?idLD=25508&slot=5",
+ "Na": "202 (Kabel 4 + 24) Hüls",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 205219,
+ "Li": "kue.aspx?idLD=25508&slot=5",
+ "Na": "202 (Kabel 4 + 24) Hüls",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 205220,
+ "Li": "kue.aspx?idLD=25508&slot=5",
+ "Na": "202 (Kabel 4 + 24) Hüls",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 222004,
+ "Li": "kue.aspx?idLD=25508&slot=5",
+ "Na": "202 (Kabel 4 + 24) Hüls",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 214656,
+ "Li": "kue.aspx?idLD=25508&slot=5",
+ "Na": "202 (Kabel 4 + 24) Hüls",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 214657,
+ "Li": "kue.aspx?idLD=25508&slot=5",
+ "Na": "202 (Kabel 4 + 24) Hüls",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 205907,
+ "Li": "kue.aspx?idLD=25530&slot=4",
+ "Na": "6/19 Hilter",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 205908,
+ "Li": "kue.aspx?idLD=25530&slot=4",
+ "Na": "6/19 Hilter",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 205906,
+ "Li": "kue.aspx?idLD=25530&slot=4",
+ "Na": "6/19 Hilter",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 205905,
+ "Li": "kue.aspx?idLD=25530&slot=4",
+ "Na": "6/19 Hilter",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 214588,
+ "Li": "kue.aspx?idLD=25530&slot=4",
+ "Na": "6/19 Hilter",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25530,
+ "IdS": 224479,
+ "Li": "kue.aspx?idLD=25530&slot=4",
+ "Na": "6/19 Hilter",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 215608,
+ "Li": "kue.aspx?idLD=25516&slot=4",
+ "Na": "51 Contwig Achteckhäuschen",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 215613,
+ "Li": "kue.aspx?idLD=25516&slot=4",
+ "Na": "51 Contwig Achteckhäuschen",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25434,
+ "IdS": 214444,
+ "Li": "kue.aspx?idLD=25434&slot=2",
+ "Na": "63 Epe",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25434,
+ "IdS": 221466,
+ "Li": "kue.aspx?idLD=25434&slot=2",
+ "Na": "63 Epe",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 214320,
+ "Li": "kue.aspx?idLD=25508&slot=1",
+ "Na": "2+1/1+201/1/7 Mega Test-Center",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 223921,
+ "Li": "kue.aspx?idLD=25508&slot=1",
+ "Na": "2+1/1+201/1/7 Mega Test-Center",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 223922,
+ "Li": "kue.aspx?idLD=25508&slot=1",
+ "Na": "2+1/1+201/1/7 Mega Test-Center",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 220916,
+ "Li": "kue.aspx?idLD=25508&slot=1",
+ "Na": "2+1/1+201/1/7 Mega Test-Center",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208378,
+ "Li": "kue.aspx?idLD=25508&slot=1",
+ "Na": "2+1/1+201/1/7 Mega Test-Center",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 223927,
+ "Li": "kue.aspx?idLD=25508&slot=1",
+ "Na": "2+1/1+201/1/7 Mega Test-Center",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 223928,
+ "Li": "kue.aspx?idLD=25508&slot=1",
+ "Na": "2+1/1+201/1/7 Mega Test-Center",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 223929,
+ "Li": "kue.aspx?idLD=25508&slot=1",
+ "Na": "2+1/1+201/1/7 Mega Test-Center",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 223930,
+ "Li": "kue.aspx?idLD=25508&slot=1",
+ "Na": "2+1/1+201/1/7 Mega Test-Center",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223271,
+ "Li": "kue.aspx?idLD=25598&slot=3",
+ "Na": "66 + 466 + 66 Misburg SS",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223270,
+ "Li": "kue.aspx?idLD=25598&slot=3",
+ "Na": "66 + 466 + 66 Misburg SS",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 202607,
+ "Li": "kue.aspx?idLD=25598&slot=3",
+ "Na": "66 + 466 + 66 Misburg SS",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223500,
+ "Li": "kue.aspx?idLD=25598&slot=3",
+ "Na": "66 + 466 + 66 Misburg SS",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223499,
+ "Li": "kue.aspx?idLD=25598&slot=3",
+ "Na": "66 + 466 + 66 Misburg SS",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 219931,
+ "Li": "kue.aspx?idLD=25480&slot=5",
+ "Na": "999/10/13 Erfelden LSE",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 219930,
+ "Li": "kue.aspx?idLD=25480&slot=5",
+ "Na": "999/10/13 Erfelden LSE",
+ "Sl": 5
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 200055,
+ "Li": "kue.aspx?idLD=18604&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 219985,
+ "Li": "kue.aspx?idLD=18604&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 223150,
+ "Li": "kue.aspx?idLD=18604&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 223151,
+ "Li": "kue.aspx?idLD=18604&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 217224,
+ "Li": "kue.aspx?idLD=18604&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 217223,
+ "Li": "kue.aspx?idLD=18604&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 201275,
+ "Li": "kue.aspx?idLD=18604&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 215087,
+ "Li": "kue.aspx?idLD=18604&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 215086,
+ "Li": "kue.aspx?idLD=18604&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 200055,
+ "Li": "kue.aspx?idLD=22288&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 219985,
+ "Li": "kue.aspx?idLD=22288&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 223150,
+ "Li": "kue.aspx?idLD=22288&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 223151,
+ "Li": "kue.aspx?idLD=22288&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 217224,
+ "Li": "kue.aspx?idLD=22288&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 217223,
+ "Li": "kue.aspx?idLD=22288&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 201275,
+ "Li": "kue.aspx?idLD=22288&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 215087,
+ "Li": "kue.aspx?idLD=22288&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 215086,
+ "Li": "kue.aspx?idLD=22288&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 200055,
+ "Li": "kue.aspx?idLD=25544&slot=2",
+ "Na": "026/003 Reinhardshofen ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 219985,
+ "Li": "kue.aspx?idLD=25544&slot=2",
+ "Na": "026/003 Reinhardshofen ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 223150,
+ "Li": "kue.aspx?idLD=25544&slot=2",
+ "Na": "026/003 Reinhardshofen ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 223151,
+ "Li": "kue.aspx?idLD=25544&slot=2",
+ "Na": "026/003 Reinhardshofen ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 217224,
+ "Li": "kue.aspx?idLD=25544&slot=2",
+ "Na": "026/003 Reinhardshofen ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 217223,
+ "Li": "kue.aspx?idLD=25544&slot=2",
+ "Na": "026/003 Reinhardshofen ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 201275,
+ "Li": "kue.aspx?idLD=25544&slot=2",
+ "Na": "026/003 Reinhardshofen ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 215087,
+ "Li": "kue.aspx?idLD=25544&slot=2",
+ "Na": "026/003 Reinhardshofen ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 215086,
+ "Li": "kue.aspx?idLD=25544&slot=2",
+ "Na": "026/003 Reinhardshofen ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 218263,
+ "Li": "kue.aspx?idLD=25602&slot=4",
+ "Na": "44114 Friedrichsthal Hardt-Nord LSE",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 214991,
+ "Li": "kue.aspx?idLD=25602&slot=4",
+ "Na": "44114 Friedrichsthal Hardt-Nord LSE",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 214995,
+ "Li": "kue.aspx?idLD=25602&slot=4",
+ "Na": "44114 Friedrichsthal Hardt-Nord LSE",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 214994,
+ "Li": "kue.aspx?idLD=25602&slot=4",
+ "Na": "44114 Friedrichsthal Hardt-Nord LSE",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 218535,
+ "Li": "kue.aspx?idLD=25602&slot=4",
+ "Na": "44114 Friedrichsthal Hardt-Nord LSE",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25602,
+ "IdS": 214992,
+ "Li": "kue.aspx?idLD=25602&slot=4",
+ "Na": "44114 Friedrichsthal Hardt-Nord LSE",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25556,
+ "IdS": 221865,
+ "Li": "kue.aspx?idLD=25556&slot=2",
+ "Na": "50 Riegel KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 215410,
+ "Li": "kue.aspx?idLD=25470&slot=4",
+ "Na": "051 Rothenstadt ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 215414,
+ "Li": "kue.aspx?idLD=25470&slot=4",
+ "Na": "051 Rothenstadt ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25470,
+ "IdS": 215418,
+ "Li": "kue.aspx?idLD=25470&slot=4",
+ "Na": "051 Rothenstadt ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 218105,
+ "Li": "kue.aspx?idLD=25450&slot=4",
+ "Na": "63/194 Wolthusen (KVZ)(Oude)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 223795,
+ "Li": "kue.aspx?idLD=25450&slot=4",
+ "Na": "63/194 Wolthusen (KVZ)(Oude)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 208528,
+ "Li": "kue.aspx?idLD=25450&slot=4",
+ "Na": "63/194 Wolthusen (KVZ)(Oude)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 215816,
+ "Li": "kue.aspx?idLD=25450&slot=4",
+ "Na": "63/194 Wolthusen (KVZ)(Oude)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214376,
+ "Li": "kue.aspx?idLD=25450&slot=4",
+ "Na": "63/194 Wolthusen (KVZ)(Oude)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25554,
+ "IdS": 215374,
+ "Li": "kue.aspx?idLD=25554&slot=1",
+ "Na": "999/052/001 Schwandorf ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25554,
+ "IdS": 215378,
+ "Li": "kue.aspx?idLD=25554&slot=1",
+ "Na": "999/052/001 Schwandorf ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25554,
+ "IdS": 200163,
+ "Li": "kue.aspx?idLD=25554&slot=1",
+ "Na": "999/052/001 Schwandorf ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25612,
+ "IdS": 0,
+ "Li": "kue.aspx?idLD=25612&slot=0",
+ "Na": "411 Aßlar KVZ",
+ "Sl": 0
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 215608,
+ "Li": "kue.aspx?idLD=25516&slot=2",
+ "Na": "51 Schneckenhausen KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 215613,
+ "Li": "kue.aspx?idLD=25516&slot=2",
+ "Na": "51 Schneckenhausen KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 215619,
+ "Li": "kue.aspx?idLD=25516&slot=2",
+ "Na": "51 Schneckenhausen KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 222726,
+ "Li": "kue.aspx?idLD=25516&slot=2",
+ "Na": "51 Schneckenhausen KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 224928,
+ "Li": "kue.aspx?idLD=25516&slot=2",
+ "Na": "51 Schneckenhausen KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 224927,
+ "Li": "kue.aspx?idLD=25516&slot=2",
+ "Na": "51 Schneckenhausen KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 224936,
+ "Li": "kue.aspx?idLD=25516&slot=2",
+ "Na": "51 Schneckenhausen KVZ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 203457,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 216268,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214381,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214379,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 209928,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 209930,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217628,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217630,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217629,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214376,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 208526,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 215816,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 208527,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 223795,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 218105,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 209927,
+ "Li": "kue.aspx?idLD=25450&slot=5",
+ "Na": "63/194 UFB-Überwachung (Seedeich)",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 224408,
+ "Li": "kue.aspx?idLD=25534&slot=2",
+ "Na": "999/9/6+9/7 Wermelskirchen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 224988,
+ "Li": "kue.aspx?idLD=25534&slot=2",
+ "Na": "999/9/6+9/7 Wermelskirchen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 224987,
+ "Li": "kue.aspx?idLD=25534&slot=2",
+ "Na": "999/9/6+9/7 Wermelskirchen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222186,
+ "Li": "kue.aspx?idLD=25534&slot=2",
+ "Na": "999/9/6+9/7 Wermelskirchen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 222215,
+ "Li": "kue.aspx?idLD=25534&slot=2",
+ "Na": "999/9/6+9/7 Wermelskirchen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 218610,
+ "Li": "kue.aspx?idLD=25534&slot=2",
+ "Na": "999/9/6+9/7 Wermelskirchen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25534,
+ "IdS": 208112,
+ "Li": "kue.aspx?idLD=25534&slot=2",
+ "Na": "999/9/6+9/7 Wermelskirchen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 203178,
+ "Li": "kue.aspx?idLD=25516&slot=6",
+ "Na": "999/51 Seyweiler Creos",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 203180,
+ "Li": "kue.aspx?idLD=25516&slot=6",
+ "Na": "999/51 Seyweiler Creos",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 224353,
+ "Li": "kue.aspx?idLD=25516&slot=6",
+ "Na": "999/51 Seyweiler Creos",
+ "Sl": 6
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 216231,
+ "Li": "kue.aspx?idLD=25428&slot=1",
+ "Na": "050 Wallenthal (mit Abzweigen) ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 222113,
+ "Li": "kue.aspx?idLD=25428&slot=1",
+ "Na": "050 Wallenthal (mit Abzweigen) ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 225026,
+ "Li": "kue.aspx?idLD=25428&slot=1",
+ "Na": "050 Wallenthal (mit Abzweigen) ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 225025,
+ "Li": "kue.aspx?idLD=25428&slot=1",
+ "Na": "050 Wallenthal (mit Abzweigen) ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 221259,
+ "Li": "kue.aspx?idLD=25428&slot=1",
+ "Na": "050 Wallenthal (mit Abzweigen) ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 224663,
+ "Li": "kue.aspx?idLD=25428&slot=1",
+ "Na": "050 Wallenthal (mit Abzweigen) ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 221260,
+ "Li": "kue.aspx?idLD=25428&slot=1",
+ "Na": "050 Wallenthal (mit Abzweigen) ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 220187,
+ "Li": "kue.aspx?idLD=25428&slot=1",
+ "Na": "050 Wallenthal (mit Abzweigen) ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25428,
+ "IdS": 224672,
+ "Li": "kue.aspx?idLD=25428&slot=1",
+ "Na": "050 Wallenthal (mit Abzweigen) ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25570,
+ "IdS": 215300,
+ "Li": "kue.aspx?idLD=25570&slot=2",
+ "Na": "56 Schwarzenau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25570,
+ "IdS": 209855,
+ "Li": "kue.aspx?idLD=25570&slot=2",
+ "Na": "56 Schwarzenau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25570,
+ "IdS": 217856,
+ "Li": "kue.aspx?idLD=25570&slot=2",
+ "Na": "56 Schwarzenau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25570,
+ "IdS": 220084,
+ "Li": "kue.aspx?idLD=25570&slot=2",
+ "Na": "56 Schwarzenau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25570,
+ "IdS": 220085,
+ "Li": "kue.aspx?idLD=25570&slot=2",
+ "Na": "56 Schwarzenau",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 209930,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 209928,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214379,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214381,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 216268,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 203457,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 203449,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 203447,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 218105,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 223795,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 208528,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 215816,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 208526,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214376,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217629,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217630,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217628,
+ "Li": "kue.aspx?idLD=25450&slot=7",
+ "Na": "Auslösung SPD Ltg. 63 Bunde Krummhörn",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 215004,
+ "Li": "kue.aspx?idLD=25480&slot=14",
+ "Na": "43947 Richen KVZ",
+ "Sl": 14
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 222795,
+ "Li": "kue.aspx?idLD=25480&slot=14",
+ "Na": "43947 Richen KVZ",
+ "Sl": 14
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 222796,
+ "Li": "kue.aspx?idLD=25480&slot=14",
+ "Na": "43947 Richen KVZ",
+ "Sl": 14
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 225407,
+ "Li": "kue.aspx?idLD=25480&slot=14",
+ "Na": "43947 Richen KVZ",
+ "Sl": 14
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 223960,
+ "Li": "kue.aspx?idLD=25480&slot=14",
+ "Na": "43947 Richen KVZ",
+ "Sl": 14
+ },
+ {
+ "IdLD": 25520,
+ "IdS": 214797,
+ "Li": "kue.aspx?idLD=25520&slot=1",
+ "Na": "22 Holzhausen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25520,
+ "IdS": 214795,
+ "Li": "kue.aspx?idLD=25520&slot=1",
+ "Na": "22 Holzhausen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25520,
+ "IdS": 223730,
+ "Li": "kue.aspx?idLD=25520&slot=1",
+ "Na": "22 Holzhausen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25520,
+ "IdS": 207280,
+ "Li": "kue.aspx?idLD=25520&slot=1",
+ "Na": "22 Holzhausen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 224054,
+ "Li": "kue.aspx?idLD=25546&slot=2",
+ "Na": "26/4 Wallbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 224053,
+ "Li": "kue.aspx?idLD=25546&slot=2",
+ "Na": "26/4 Wallbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 213575,
+ "Li": "kue.aspx?idLD=25546&slot=2",
+ "Na": "26/4 Wallbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 215031,
+ "Li": "kue.aspx?idLD=25546&slot=2",
+ "Na": "26/4 Wallbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 215025,
+ "Li": "kue.aspx?idLD=25546&slot=2",
+ "Na": "26/4 Wallbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 215745,
+ "Li": "kue.aspx?idLD=25546&slot=2",
+ "Na": "26/4 Wallbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 216300,
+ "Li": "kue.aspx?idLD=25546&slot=2",
+ "Na": "26/4 Wallbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 216317,
+ "Li": "kue.aspx?idLD=25546&slot=2",
+ "Na": "26/4 Wallbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25546,
+ "IdS": 215013,
+ "Li": "kue.aspx?idLD=25546&slot=2",
+ "Na": "26/4 Wallbach",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 221299,
+ "Li": "kue.aspx?idLD=25450&slot=1",
+ "Na": "63/194 Altharen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217775,
+ "Li": "kue.aspx?idLD=25450&slot=1",
+ "Na": "63/194 Altharen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 218464,
+ "Li": "kue.aspx?idLD=25450&slot=1",
+ "Na": "63/194 Altharen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 217772,
+ "Li": "kue.aspx?idLD=25450&slot=1",
+ "Na": "63/194 Altharen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 224950,
+ "Li": "kue.aspx?idLD=25450&slot=1",
+ "Na": "63/194 Altharen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 224949,
+ "Li": "kue.aspx?idLD=25450&slot=1",
+ "Na": "63/194 Altharen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25450,
+ "IdS": 214393,
+ "Li": "kue.aspx?idLD=25450&slot=1",
+ "Na": "63/194 Altharen",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 215828,
+ "Li": "kue.aspx?idLD=18602&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 207195,
+ "Li": "kue.aspx?idLD=18602&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 207196,
+ "Li": "kue.aspx?idLD=18602&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 214975,
+ "Li": "kue.aspx?idLD=18602&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 214974,
+ "Li": "kue.aspx?idLD=18602&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 207461,
+ "Li": "kue.aspx?idLD=18602&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 207462,
+ "Li": "kue.aspx?idLD=18602&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 207463,
+ "Li": "kue.aspx?idLD=18602&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 207464,
+ "Li": "kue.aspx?idLD=18602&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 207465,
+ "Li": "kue.aspx?idLD=18602&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18602,
+ "IdS": 200051,
+ "Li": "kue.aspx?idLD=18602&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 215828,
+ "Li": "kue.aspx?idLD=22286&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 207195,
+ "Li": "kue.aspx?idLD=22286&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 207196,
+ "Li": "kue.aspx?idLD=22286&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 214975,
+ "Li": "kue.aspx?idLD=22286&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 214974,
+ "Li": "kue.aspx?idLD=22286&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 207461,
+ "Li": "kue.aspx?idLD=22286&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 207462,
+ "Li": "kue.aspx?idLD=22286&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 207463,
+ "Li": "kue.aspx?idLD=22286&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 207464,
+ "Li": "kue.aspx?idLD=22286&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 207465,
+ "Li": "kue.aspx?idLD=22286&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22286,
+ "IdS": 200051,
+ "Li": "kue.aspx?idLD=22286&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25434,
+ "IdS": 221545,
+ "Li": "kue.aspx?idLD=25434&slot=3",
+ "Na": "63 Epe KVz",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25434,
+ "IdS": 221546,
+ "Li": "kue.aspx?idLD=25434&slot=3",
+ "Na": "63 Epe KVz",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25434,
+ "IdS": 221543,
+ "Li": "kue.aspx?idLD=25434&slot=3",
+ "Na": "63 Epe KVz",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25434,
+ "IdS": 221544,
+ "Li": "kue.aspx?idLD=25434&slot=3",
+ "Na": "63 Epe KVz",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 215828,
+ "Li": "kue.aspx?idLD=25480&slot=2",
+ "Na": "45200 Darmstadt SGHW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207195,
+ "Li": "kue.aspx?idLD=25480&slot=2",
+ "Na": "45200 Darmstadt SGHW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207196,
+ "Li": "kue.aspx?idLD=25480&slot=2",
+ "Na": "45200 Darmstadt SGHW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 214975,
+ "Li": "kue.aspx?idLD=25480&slot=2",
+ "Na": "45200 Darmstadt SGHW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 214974,
+ "Li": "kue.aspx?idLD=25480&slot=2",
+ "Na": "45200 Darmstadt SGHW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207461,
+ "Li": "kue.aspx?idLD=25480&slot=2",
+ "Na": "45200 Darmstadt SGHW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207462,
+ "Li": "kue.aspx?idLD=25480&slot=2",
+ "Na": "45200 Darmstadt SGHW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207463,
+ "Li": "kue.aspx?idLD=25480&slot=2",
+ "Na": "45200 Darmstadt SGHW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207464,
+ "Li": "kue.aspx?idLD=25480&slot=2",
+ "Na": "45200 Darmstadt SGHW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 207465,
+ "Li": "kue.aspx?idLD=25480&slot=2",
+ "Na": "45200 Darmstadt SGHW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25480,
+ "IdS": 200051,
+ "Li": "kue.aspx?idLD=25480&slot=2",
+ "Na": "45200 Darmstadt SGHW",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 221948,
+ "Li": "kue.aspx?idLD=25614&slot=3",
+ "Na": "11 Griesheim Höchst",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 214912,
+ "Li": "kue.aspx?idLD=25614&slot=3",
+ "Na": "11 Griesheim Höchst",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 200034,
+ "Li": "kue.aspx?idLD=25614&slot=3",
+ "Na": "11 Griesheim Höchst",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 224713,
+ "Li": "kue.aspx?idLD=25614&slot=3",
+ "Na": "11 Griesheim Höchst",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 201287,
+ "Li": "kue.aspx?idLD=25614&slot=3",
+ "Na": "11 Griesheim Höchst",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 11435,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 11434,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10131,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10740,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 225297,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 225296,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 225292,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 225293,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10348,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10352,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10349,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10350,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 10351,
+ "Li": "kue.aspx?idLD=25444&slot=2",
+ "Na": "999/10/13 Flörsheim",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 200142,
+ "Li": "kue.aspx?idLD=25516&slot=5",
+ "Na": "999/51 Herrnsheim KVZ Creos",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 200141,
+ "Li": "kue.aspx?idLD=25516&slot=5",
+ "Na": "999/51 Herrnsheim KVZ Creos",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 200140,
+ "Li": "kue.aspx?idLD=25516&slot=5",
+ "Na": "999/51 Herrnsheim KVZ Creos",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 202306,
+ "Li": "kue.aspx?idLD=25516&slot=5",
+ "Na": "999/51 Herrnsheim KVZ Creos",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 200139,
+ "Li": "kue.aspx?idLD=25516&slot=5",
+ "Na": "999/51 Herrnsheim KVZ Creos",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25516,
+ "IdS": 200138,
+ "Li": "kue.aspx?idLD=25516&slot=5",
+ "Na": "999/51 Herrnsheim KVZ Creos",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25556,
+ "IdS": 219969,
+ "Li": "kue.aspx?idLD=25556&slot=4",
+ "Na": "50 Schwanau-Ottenheim KVZ",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25584,
+ "IdS": 223531,
+ "Li": "kue.aspx?idLD=25584&slot=3",
+ "Na": "50 Holzhausen Linx",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25584,
+ "IdS": 223532,
+ "Li": "kue.aspx?idLD=25584&slot=3",
+ "Na": "50 Holzhausen Linx",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25584,
+ "IdS": 224937,
+ "Li": "kue.aspx?idLD=25584&slot=3",
+ "Na": "50 Holzhausen Linx",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 223469,
+ "Li": "kue.aspx?idLD=25452&slot=1",
+ "Na": "16/5+9+9/2 Witten-Heven",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 223468,
+ "Li": "kue.aspx?idLD=25452&slot=1",
+ "Na": "16/5+9+9/2 Witten-Heven",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 209818,
+ "Li": "kue.aspx?idLD=25452&slot=1",
+ "Na": "16/5+9+9/2 Witten-Heven",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25452,
+ "IdS": 214823,
+ "Li": "kue.aspx?idLD=25452&slot=1",
+ "Na": "16/5+9+9/2 Witten-Heven",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 214425,
+ "Li": "kue.aspx?idLD=25456&slot=4",
+ "Na": "16 Castrop",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 209571,
+ "Li": "kue.aspx?idLD=25456&slot=4",
+ "Na": "16 Castrop",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 214427,
+ "Li": "kue.aspx?idLD=25456&slot=4",
+ "Na": "16 Castrop",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 209563,
+ "Li": "kue.aspx?idLD=25456&slot=4",
+ "Na": "16 Castrop",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 214429,
+ "Li": "kue.aspx?idLD=25456&slot=4",
+ "Na": "16 Castrop",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 214431,
+ "Li": "kue.aspx?idLD=25456&slot=4",
+ "Na": "16 Castrop",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 203125,
+ "Li": "kue.aspx?idLD=25456&slot=4",
+ "Na": "16 Castrop",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25456,
+ "IdS": 203119,
+ "Li": "kue.aspx?idLD=25456&slot=4",
+ "Na": "16 Castrop",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25560,
+ "IdS": 200047,
+ "Li": "kue.aspx?idLD=25560&slot=5",
+ "Na": "22 Katzenelnbogen Syna",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 206048,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 215367,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 215369,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 200149,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 222801,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 215338,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 223245,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 223246,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 223244,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 215342,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 215345,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 226068,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 226069,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25624,
+ "IdS": 205431,
+ "Li": "kue.aspx?idLD=25624&slot=2",
+ "Na": "52 Rathmannsdorf ",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 222639,
+ "Li": "kue.aspx?idLD=25538&slot=2",
+ "Na": "28 Westhofen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 222638,
+ "Li": "kue.aspx?idLD=25538&slot=2",
+ "Na": "28 Westhofen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 222635,
+ "Li": "kue.aspx?idLD=25538&slot=2",
+ "Na": "28 Westhofen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 222637,
+ "Li": "kue.aspx?idLD=25538&slot=2",
+ "Na": "28 Westhofen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 223462,
+ "Li": "kue.aspx?idLD=25538&slot=2",
+ "Na": "28 Westhofen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25538,
+ "IdS": 222620,
+ "Li": "kue.aspx?idLD=25538&slot=2",
+ "Na": "28 Westhofen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 218525,
+ "Li": "kue.aspx?idLD=18604&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 213892,
+ "Li": "kue.aspx?idLD=18604&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 200206,
+ "Li": "kue.aspx?idLD=18604&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 200207,
+ "Li": "kue.aspx?idLD=18604&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 18604,
+ "IdS": 200208,
+ "Li": "kue.aspx?idLD=18604&slot=3",
+ "Na": "KÜG 3",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 218525,
+ "Li": "kue.aspx?idLD=22288&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 213892,
+ "Li": "kue.aspx?idLD=22288&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 200206,
+ "Li": "kue.aspx?idLD=22288&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 200207,
+ "Li": "kue.aspx?idLD=22288&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 22288,
+ "IdS": 200208,
+ "Li": "kue.aspx?idLD=22288&slot=3",
+ "Na": "KÜG 03",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25444,
+ "IdS": 214968,
+ "Li": "kue.aspx?idLD=25444&slot=3",
+ "Na": "999/10/13 Erfelden LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 218525,
+ "Li": "kue.aspx?idLD=25544&slot=3",
+ "Na": "999/851 Laufamholz ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 213892,
+ "Li": "kue.aspx?idLD=25544&slot=3",
+ "Na": "999/851 Laufamholz ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 200206,
+ "Li": "kue.aspx?idLD=25544&slot=3",
+ "Na": "999/851 Laufamholz ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 200207,
+ "Li": "kue.aspx?idLD=25544&slot=3",
+ "Na": "999/851 Laufamholz ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 200208,
+ "Li": "kue.aspx?idLD=25544&slot=3",
+ "Na": "999/851 Laufamholz ",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 215449,
+ "Li": "kue.aspx?idLD=25544&slot=5",
+ "Na": "051 Reinhardshofen ",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 219984,
+ "Li": "kue.aspx?idLD=25544&slot=5",
+ "Na": "051 Reinhardshofen ",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 215459,
+ "Li": "kue.aspx?idLD=25544&slot=5",
+ "Na": "051 Reinhardshofen ",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25544,
+ "IdS": 215464,
+ "Li": "kue.aspx?idLD=25544&slot=5",
+ "Na": "051 Reinhardshofen ",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 215669,
+ "Li": "kue.aspx?idLD=25438&slot=5",
+ "Na": "50 Au am Rhein",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 206351,
+ "Li": "kue.aspx?idLD=25438&slot=5",
+ "Na": "50 Au am Rhein",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25438,
+ "IdS": 221952,
+ "Li": "kue.aspx?idLD=25438&slot=5",
+ "Na": "50 Au am Rhein",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25566,
+ "IdS": 214955,
+ "Li": "kue.aspx?idLD=25566&slot=1",
+ "Na": "56 Schlüchtern-Wallroth",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25566,
+ "IdS": 202856,
+ "Li": "kue.aspx?idLD=25566&slot=1",
+ "Na": "56 Schlüchtern-Wallroth",
+ "Sl": 1
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 218424,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 218425,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207846,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207845,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207848,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207844,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207847,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207850,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207849,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207852,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207851,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 207842,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 204860,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 204858,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 204862,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 224896,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 224897,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 18600,
+ "IdS": 224894,
+ "Li": "kue.aspx?idLD=18600&slot=2",
+ "Na": "KÜG 2",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 218424,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 218425,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207846,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207845,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207848,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207844,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207847,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207850,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207849,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207852,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207851,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 207842,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 204860,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 204858,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 204862,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 224896,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 224897,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 22284,
+ "IdS": 224894,
+ "Li": "kue.aspx?idLD=22284&slot=2",
+ "Na": "KÜG 02",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 200161,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 215382,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 215383,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 200155,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 200157,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 200158,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 200160,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 215385,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 205356,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 215386,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 215390,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 213561,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25576,
+ "IdS": 215392,
+ "Li": "kue.aspx?idLD=25576&slot=1",
+ "Na": "8 Heringen / Wachtküppel",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 200172,
+ "Li": "kue.aspx?idLD=25508&slot=2",
+ "Na": "202 (28p.)+64 Niederbonsfeld",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 200171,
+ "Li": "kue.aspx?idLD=25508&slot=2",
+ "Na": "202 (28p.)+64 Niederbonsfeld",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25440,
+ "IdS": 223518,
+ "Li": "kue.aspx?idLD=25440&slot=2",
+ "Na": "42 Bebra",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25440,
+ "IdS": 223519,
+ "Li": "kue.aspx?idLD=25440&slot=2",
+ "Na": "42 Bebra",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25440,
+ "IdS": 206271,
+ "Li": "kue.aspx?idLD=25440&slot=2",
+ "Na": "42 Bebra",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25440,
+ "IdS": 206273,
+ "Li": "kue.aspx?idLD=25440&slot=2",
+ "Na": "42 Bebra",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25440,
+ "IdS": 206272,
+ "Li": "kue.aspx?idLD=25440&slot=2",
+ "Na": "42 Bebra",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 207642,
+ "Li": "kue.aspx?idLD=25458&slot=4",
+ "Na": "999/7/2 + 7/3/1 Hamm-Herringen (SG-Grenze)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 221670,
+ "Li": "kue.aspx?idLD=25458&slot=4",
+ "Na": "999/7/2 + 7/3/1 Hamm-Herringen (SG-Grenze)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 221669,
+ "Li": "kue.aspx?idLD=25458&slot=4",
+ "Na": "999/7/2 + 7/3/1 Hamm-Herringen (SG-Grenze)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 201517,
+ "Li": "kue.aspx?idLD=25458&slot=4",
+ "Na": "999/7/2 + 7/3/1 Hamm-Herringen (SG-Grenze)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 202960,
+ "Li": "kue.aspx?idLD=25458&slot=4",
+ "Na": "999/7/2 + 7/3/1 Hamm-Herringen (SG-Grenze)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 202961,
+ "Li": "kue.aspx?idLD=25458&slot=4",
+ "Na": "999/7/2 + 7/3/1 Hamm-Herringen (SG-Grenze)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 202959,
+ "Li": "kue.aspx?idLD=25458&slot=4",
+ "Na": "999/7/2 + 7/3/1 Hamm-Herringen (SG-Grenze)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 219537,
+ "Li": "kue.aspx?idLD=25458&slot=4",
+ "Na": "999/7/2 + 7/3/1 Hamm-Herringen (SG-Grenze)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25458,
+ "IdS": 208166,
+ "Li": "kue.aspx?idLD=25458&slot=4",
+ "Na": "999/7/2 + 7/3/1 Hamm-Herringen (SG-Grenze)",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 216186,
+ "Li": "kue.aspx?idLD=25508&slot=4",
+ "Na": "202 (Kabel 2 + 14) Hüls",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208833,
+ "Li": "kue.aspx?idLD=25508&slot=4",
+ "Na": "202 (Kabel 2 + 14) Hüls",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 206587,
+ "Li": "kue.aspx?idLD=25508&slot=4",
+ "Na": "202 (Kabel 2 + 14) Hüls",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208368,
+ "Li": "kue.aspx?idLD=25508&slot=4",
+ "Na": "202 (Kabel 2 + 14) Hüls",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 216981,
+ "Li": "kue.aspx?idLD=25508&slot=4",
+ "Na": "202 (Kabel 2 + 14) Hüls",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25508,
+ "IdS": 208372,
+ "Li": "kue.aspx?idLD=25508&slot=4",
+ "Na": "202 (Kabel 2 + 14) Hüls",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223266,
+ "Li": "kue.aspx?idLD=25598&slot=7",
+ "Na": "19 Engelbostel Station",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223267,
+ "Li": "kue.aspx?idLD=25598&slot=7",
+ "Na": "19 Engelbostel Station",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223280,
+ "Li": "kue.aspx?idLD=25598&slot=7",
+ "Na": "19 Engelbostel Station",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25598,
+ "IdS": 223281,
+ "Li": "kue.aspx?idLD=25598&slot=7",
+ "Na": "19 Engelbostel Station",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25482,
+ "IdS": 220279,
+ "Li": "kue.aspx?idLD=25482&slot=3",
+ "Na": "27 Dülmen Kirchspiel LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25482,
+ "IdS": 220663,
+ "Li": "kue.aspx?idLD=25482&slot=3",
+ "Na": "27 Dülmen Kirchspiel LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25482,
+ "IdS": 220679,
+ "Li": "kue.aspx?idLD=25482&slot=3",
+ "Na": "27 Dülmen Kirchspiel LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25482,
+ "IdS": 220682,
+ "Li": "kue.aspx?idLD=25482&slot=3",
+ "Na": "27 Dülmen Kirchspiel LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25482,
+ "IdS": 220683,
+ "Li": "kue.aspx?idLD=25482&slot=3",
+ "Na": "27 Dülmen Kirchspiel LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25482,
+ "IdS": 220684,
+ "Li": "kue.aspx?idLD=25482&slot=3",
+ "Na": "27 Dülmen Kirchspiel LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 209833,
+ "Li": "kue.aspx?idLD=25490&slot=7",
+ "Na": "12 + 12/15 Ohligs Gasbehälter",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 209834,
+ "Li": "kue.aspx?idLD=25490&slot=7",
+ "Na": "12 + 12/15 Ohligs Gasbehälter",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 209826,
+ "Li": "kue.aspx?idLD=25490&slot=7",
+ "Na": "12 + 12/15 Ohligs Gasbehälter",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 201518,
+ "Li": "kue.aspx?idLD=25490&slot=7",
+ "Na": "12 + 12/15 Ohligs Gasbehälter",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 207782,
+ "Li": "kue.aspx?idLD=25490&slot=7",
+ "Na": "12 + 12/15 Ohligs Gasbehälter",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25490,
+ "IdS": 225146,
+ "Li": "kue.aspx?idLD=25490&slot=7",
+ "Na": "12 + 12/15 Ohligs Gasbehälter",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25570,
+ "IdS": 225701,
+ "Li": "kue.aspx?idLD=25570&slot=1",
+ "Na": "56 Menden-Asbeck",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25570,
+ "IdS": 225702,
+ "Li": "kue.aspx?idLD=25570&slot=1",
+ "Na": "56 Menden-Asbeck",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25570,
+ "IdS": 224381,
+ "Li": "kue.aspx?idLD=25570&slot=1",
+ "Na": "56 Menden-Asbeck",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25570,
+ "IdS": 217852,
+ "Li": "kue.aspx?idLD=25570&slot=1",
+ "Na": "56 Menden-Asbeck",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25570,
+ "IdS": 217850,
+ "Li": "kue.aspx?idLD=25570&slot=1",
+ "Na": "56 Menden-Asbeck",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 200048,
+ "Li": "kue.aspx?idLD=25614&slot=4",
+ "Na": "44866 Frankfurt Höchst",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 217637,
+ "Li": "kue.aspx?idLD=25614&slot=4",
+ "Na": "44866 Frankfurt Höchst",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 214912,
+ "Li": "kue.aspx?idLD=25614&slot=4",
+ "Na": "44866 Frankfurt Höchst",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25614,
+ "IdS": 221948,
+ "Li": "kue.aspx?idLD=25614&slot=4",
+ "Na": "44866 Frankfurt Höchst",
+ "Sl": 4
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 218999,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 219000,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 218998,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 209538,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 222236,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 219478,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 209544,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 223685,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 223686,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214340,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 226017,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208501,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214342,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214343,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 208496,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221815,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221816,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 214350,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221621,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 221622,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 209543,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 202792,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 202794,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25446,
+ "IdS": 209541,
+ "Li": "kue.aspx?idLD=25446&slot=7",
+ "Na": "1 + 1/12 Ge.-Scholven",
+ "Sl": 7
+ },
+ {
+ "IdLD": 25560,
+ "IdS": 214798,
+ "Li": "kue.aspx?idLD=25560&slot=3",
+ "Na": "22 Holzhausen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25560,
+ "IdS": 214799,
+ "Li": "kue.aspx?idLD=25560&slot=3",
+ "Na": "22 Holzhausen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25560,
+ "IdS": 214803,
+ "Li": "kue.aspx?idLD=25560&slot=3",
+ "Na": "22 Holzhausen",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 219891,
+ "Li": "kue.aspx?idLD=25498&slot=1",
+ "Na": "50 Neuershausen KVZ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 219890,
+ "Li": "kue.aspx?idLD=25498&slot=1",
+ "Na": "50 Neuershausen KVZ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25498,
+ "IdS": 222122,
+ "Li": "kue.aspx?idLD=25498&slot=1",
+ "Na": "50 Neuershausen KVZ",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25556,
+ "IdS": 219969,
+ "Li": "kue.aspx?idLD=25556&slot=3",
+ "Na": "50 Eckartsweier LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25556,
+ "IdS": 215696,
+ "Li": "kue.aspx?idLD=25556&slot=3",
+ "Na": "50 Eckartsweier LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25556,
+ "IdS": 215691,
+ "Li": "kue.aspx?idLD=25556&slot=3",
+ "Na": "50 Eckartsweier LSE",
+ "Sl": 3
+ },
+ {
+ "IdLD": 25506,
+ "IdS": 204165,
+ "Li": "kue.aspx?idLD=25506&slot=1",
+ "Na": "10 Lorsch SHGW",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25506,
+ "IdS": 214980,
+ "Li": "kue.aspx?idLD=25506&slot=1",
+ "Na": "10 Lorsch SHGW",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25506,
+ "IdS": 214978,
+ "Li": "kue.aspx?idLD=25506&slot=1",
+ "Na": "10 Lorsch SHGW",
+ "Sl": 1
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215064,
+ "Li": "kue.aspx?idLD=25526&slot=2",
+ "Na": "Ammerdingen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215063,
+ "Li": "kue.aspx?idLD=25526&slot=2",
+ "Na": "Ammerdingen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 223570,
+ "Li": "kue.aspx?idLD=25526&slot=2",
+ "Na": "Ammerdingen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215079,
+ "Li": "kue.aspx?idLD=25526&slot=2",
+ "Na": "Ammerdingen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215078,
+ "Li": "kue.aspx?idLD=25526&slot=2",
+ "Na": "Ammerdingen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215075,
+ "Li": "kue.aspx?idLD=25526&slot=2",
+ "Na": "Ammerdingen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215074,
+ "Li": "kue.aspx?idLD=25526&slot=2",
+ "Na": "Ammerdingen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215072,
+ "Li": "kue.aspx?idLD=25526&slot=2",
+ "Na": "Ammerdingen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 215069,
+ "Li": "kue.aspx?idLD=25526&slot=2",
+ "Na": "Ammerdingen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 217227,
+ "Li": "kue.aspx?idLD=25526&slot=2",
+ "Na": "Ammerdingen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25526,
+ "IdS": 217226,
+ "Li": "kue.aspx?idLD=25526&slot=2",
+ "Na": "Ammerdingen",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25566,
+ "IdS": 201552,
+ "Li": "kue.aspx?idLD=25566&slot=2",
+ "Na": "55 Schlüchtern 3 GasUnion",
+ "Sl": 2
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 205457,
+ "Li": "kue.aspx?idLD=25616&slot=5",
+ "Na": "27/2 Hamm Stockum Gersteinwerk",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220778,
+ "Li": "kue.aspx?idLD=25616&slot=5",
+ "Na": "27/2 Hamm Stockum Gersteinwerk",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 220777,
+ "Li": "kue.aspx?idLD=25616&slot=5",
+ "Na": "27/2 Hamm Stockum Gersteinwerk",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 205455,
+ "Li": "kue.aspx?idLD=25616&slot=5",
+ "Na": "27/2 Hamm Stockum Gersteinwerk",
+ "Sl": 5
+ },
+ {
+ "IdLD": 25616,
+ "IdS": 205453,
+ "Li": "kue.aspx?idLD=25616&slot=5",
+ "Na": "27/2 Hamm Stockum Gersteinwerk",
+ "Sl": 5
+ }
+ ]
+}
\ No newline at end of file
diff --git a/MessagesMap/KueStatus.json b/MessagesMap/KueStatus.json
new file mode 100644
index 000000000..7074a156d
--- /dev/null
+++ b/MessagesMap/KueStatus.json
@@ -0,0 +1,132 @@
+{
+ "Name": "Liste aller Statis der Dienste",
+ "Zeitstempel": "2021-08-24T09:43:29.1963278+02:00",
+ "Statis": [
+ {
+ "IdLD": 25420,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KUEG 02: 008 + 003 Bad Honnef GW Aderbruch kommend",
+ "Sl": 2,
+ "IdS": 42670
+ },
+ {
+ "IdLD": 25434,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KUEG 04: Ochtrup Gronauer Damm Aderbruch kommend",
+ "Sl": 4,
+ "IdS": 43115
+ },
+ {
+ "IdLD": 25434,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KÜSS V2 04: Ochtrup Gronauer Damm Event kommend",
+ "Sl": 4,
+ "IdS": 43115
+ },
+ {
+ "IdLD": 25456,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KUEG 04: 16 Castrop Aderbruch kommend",
+ "Sl": 4,
+ "IdS": 42580
+ },
+ {
+ "IdLD": 25534,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KUEG 01: 12 + 2/30 Richarth 2 Aderbruch kommend",
+ "Sl": 1,
+ "IdS": 42821
+ },
+ {
+ "IdLD": 25534,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KUEG 02: 999/9/6+9/7 Wermelskirchen Aderbruch kommend",
+ "Sl": 2,
+ "IdS": 42822
+ },
+ {
+ "IdLD": 25534,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KUEG 02: 999/9/6+9/7 Wermelskirchen Erdschluss kommend",
+ "Sl": 2,
+ "IdS": 42822
+ },
+ {
+ "IdLD": 25534,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KUEG 04: 22+200 Monheim Düker Aderbruch kommend",
+ "Sl": 4,
+ "IdS": 42824
+ },
+ {
+ "IdLD": 25538,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KUEG 03: 9/7 Wermelskirchen Isolationsminderung kommend",
+ "Sl": 3,
+ "IdS": 42627
+ },
+ {
+ "IdLD": 25592,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KUEG 02: 6/017 Herford Schwarzenmoor Isolationsminderung kommend",
+ "Sl": 2,
+ "IdS": 42811
+ },
+ {
+ "IdLD": 25640,
+ "Na": "critical",
+ "Le": 1,
+ "Co": "#FF0000",
+ "Me": "KÜG 03: 052 Unterzell Isolationsminderung kommend",
+ "Sl": 3,
+ "IdS": 43147
+ },
+ {
+ "IdLD": 25534,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "KUEG 02: 999/9/6+9/7 Wermelskirchen Messwerkausfall kommend",
+ "Sl": 2,
+ "IdS": 42822
+ },
+ {
+ "IdLD": 25534,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "KUEG 03: 999/28/1 Paffrath Messwerkausfall kommend",
+ "Sl": 3,
+ "IdS": 42823
+ },
+ {
+ "IdLD": 25534,
+ "Na": "system",
+ "Le": 4,
+ "Co": "#FF00FF",
+ "Me": "KUEG 04: 22+200 Monheim Düker Messwerkausfall kommend",
+ "Sl": 4,
+ "IdS": 42824
+ }
+ ]
+}
\ No newline at end of file
diff --git a/MessagesMap/Map.css b/MessagesMap/Map.css
new file mode 100644
index 000000000..d4beb5ca8
--- /dev/null
+++ b/MessagesMap/Map.css
@@ -0,0 +1,164 @@
+
+table.boxTab {
+ background-color: #ffffff;
+ font-family: Arial;
+ font-size: 11px;
+ color: #fff;
+ border-width: 1px;
+ border-style: solid;
+ border-color: #00AEEF;
+ margin: auto;
+ font-weight: bold;
+ width: 380px;
+}
+
+
+ table.boxTab tr {
+ border-width: 1px;
+ border-color: #00AEEF;
+ background-color: #ffffff;
+ }
+
+ table.boxTab th {
+ border-width: 1px;
+ border-style: solid;
+ border-color: #00AEEF;
+ background-color: #ffffff;
+ font-family: Arial;
+ font-size: 11px;
+ color:#00AEEF;
+ font-weight: bold;
+ padding-right: 4px;
+ padding-bottom: 4px;
+ padding-top: 4px;
+ padding-left: 4px;
+ text-align: left;
+ }
+
+ table.boxTab td {
+ border-width: 1px;
+ border-style: solid;
+ border-color: #00AEEF;
+ background-color: #ffffff;
+ font-family: Arial;
+ font-size: 11px;
+ font-weight: normal;
+ padding-right: 4px;
+ padding-bottom: 4px;
+ padding-top: 4px;
+ padding-left: 4px;
+ text-align: left;
+ }
+
+
+
+
+
+
+
+table.boxData {
+ border: 1px solid black;
+ font-family: Arial;
+ font-size: 11px;
+ color: #666666;
+ border-width: 1px;
+ border-color: #00AEEF;
+ margin: auto;
+ font-weight: bold;
+ width: 400px;
+}
+
+
+ table.boxData tr {
+ border: 0px solid black;
+ font-family: Arial;
+ font-size: 11px;
+ color: #ffffff;
+ font-weight: bold;
+ }
+
+ table.boxData th {
+ border: 0px solid black;
+ font-family: Arial;
+ font-size: 11px;
+ color: #ffffff;
+ font-weight: normal;
+ padding-right: 4px;
+ padding-bottom: 4px;
+ padding-top: 4px;
+ padding-left: 4px;
+ text-align: left;
+ }
+
+ table.boxData td {
+ border: 0px solid black;
+ font-family: Arial;
+ font-size: 11px;
+ color: #ffffff;
+ font-weight: normal;
+ padding-right: 4px;
+ padding-bottom: 4px;
+ padding-top: 4px;
+ padding-left: 4px;
+ text-align: left;
+ }
+
+
+
+
+
+
+
+
+
+.textHeader {
+ font-family: Arial;
+ font-size: 12px;
+ color: #ffffff;
+ font-weight: bold;
+ padding:1px;
+}
+
+.textHeader:link {
+ font-family: Arial;
+ font-size: 10px;
+ color: #666666;
+ font-weight: normal;
+}
+
+
+@keyframes aniOn {
+ from {
+ stroke-width:12;
+ }
+
+ to {
+ stroke-width:36;
+ }
+}
+
+@keyframes aniOff {
+ to {
+ stroke-width: 8;
+ }
+}
+
+@keyframes aniOnDeviceSmall {
+ from {
+ stroke-width: 2;
+ }
+
+ to {
+ stroke-width: 4;
+ }
+}
+
+@keyframes aniOnDeviceBig {
+ from {
+ stroke-width: 6;
+ }
+
+ to {
+ stroke-width: 28;
+ }
+}
diff --git a/MessagesMap/MapTypA.aspx b/MessagesMap/MapTypA.aspx
new file mode 100644
index 000000000..09bd49ec9
--- /dev/null
+++ b/MessagesMap/MapTypA.aspx
@@ -0,0 +1,416 @@
+<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Standard.Master" CodeBehind="MapTypA.aspx.cs" Inherits="TALAS_V5.MessagesMap.MapTypA1" %>
+
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Standort:
+
+
+
+ Bereich:
+
+
+
+ Gerät:
+
+
+
+ Status:
+
+
+
+ Zutrittskontrolle:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <%# Eval("DatapointTable") %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Karte:
+
+ Interne Kabel-ID:
+
+
+
+
+
+
+
+
+
+
+
+
+ <%# Eval("DatapointTableCable") %>
+
+
+
+
+
+
+
+ <%# Eval("DatapointTableMessages") %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<% @Import Namespace="System.IO" %>
+
+<%
+ //ab hier wird die SVG Grafik eingeührt
+
+ StreamReader stmReader;
+ string linkmap = "~/Map/"+(string)Session["MapPath"].ToString() ;
+
+ try
+ {
+ stmReader = File.OpenText(Server.MapPath(linkmap));
+ //Daten auslesen
+ string strLine;
+ while (null != (strLine = stmReader.ReadLine()))
+ {
+ Response.Write(strLine + "\r\n");
+ }
+ stmReader.Close();
+ }
+ catch(Exception e)
+ {
+ Response.Write("
Die SVG-Karte mit dem Pfad '"+linkmap+"' kann vom Server nicht geladen werden!\r\n
");
+ }
+
+ //bis hier SVG Karte
+%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/MapTypAll.aspx b/MessagesMap/MapTypAll.aspx
new file mode 100644
index 000000000..e578a0477
--- /dev/null
+++ b/MessagesMap/MapTypAll.aspx
@@ -0,0 +1,244 @@
+<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Standard.Master" CodeBehind="MapTypAll.aspx.cs" Inherits="TALAS_V5.MessagesMap.MapTypAll" %>
+
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<% @Import Namespace="System.IO" %>
+
+<%
+ //ab hier wird die SVG Grafik eingeührt
+
+ StreamReader stmReader;
+ string linkmap = "~/Map/"+(string)Session["MapPath"].ToString() ;
+
+ try
+ {
+ stmReader = File.OpenText(Server.MapPath(linkmap));
+ //Daten auslesen
+ string strLine;
+ while (null != (strLine = stmReader.ReadLine()))
+ {
+ Response.Write(strLine + "\r\n");
+ }
+ stmReader.Close();
+ }
+ catch(Exception e)
+ {
+ Response.Write("
Die SVG-Karte mit dem Pfad '"+linkmap+"' kann vom Server nicht geladen werden!\r\n
");
+ }
+
+ //bis hier SVG Karte
+%>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/MapTypB.aspx b/MessagesMap/MapTypB.aspx
new file mode 100644
index 000000000..2d67446c4
--- /dev/null
+++ b/MessagesMap/MapTypB.aspx
@@ -0,0 +1,499 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="MapTypB.aspx.cs" Inherits="TALAS_V5.MessagesMap.MapTypB" %>
+
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TALAS MAP
+ ×
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
oder w Karte verschieben
+
+
+
+
+
oder a Karte verschieben
+
+
+
+
+
oder s Karte verschieben
+
+
+
+
+
oder d Karte verschieben
+
+
+
+
+
+
+
+
+
+
+
Falls die Karte einmal nicht reagieren sollte, einfach mit oder der Taste z die Karte zurücksetzen.
+
+
+
+
+
Bitte melden sie Fehler und Kritik per E-Mail an den Support.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Detail Ausgabe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allgemeiner Hinweis
+
+
+
+
+
+
+
+
Falls die Karte einmal nicht reagieren sollte, einfach mit oder der Taste z die Karte zurücksetzen. Falls sie weitere Hilfe benötigen klicken sie auf das Symbol .
+
+
+
+
+
+
+
+
+ Daten werden geladen...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Littwin Systemtechnik GmbH & Co. KG
+
Bürgermeister-Brötje Str. 28 D-26180 Rastede
+
T: +49 4402 9725 77-0 E: kontakt@littwin-systemtechnik.de
+
+
TALAS.MAP Masterkarte Version 0.9.7
+
+
+
+
+
+
+ ×
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ passive Stationen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/MapTypB.bak b/MessagesMap/MapTypB.bak
new file mode 100644
index 000000000..fadf30682
--- /dev/null
+++ b/MessagesMap/MapTypB.bak
@@ -0,0 +1,190 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="MapTypB.aspx.cs" Inherits="TALAS_V5.MessagesMap.MapTypB" %>
+
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Aktuelle Bereichsdaten
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Aktuelle Strangdaten
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tolltip Ausgabe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/MapTypC.Kopie b/MessagesMap/MapTypC.Kopie
new file mode 100644
index 000000000..a7f3c4902
--- /dev/null
+++ b/MessagesMap/MapTypC.Kopie
@@ -0,0 +1,347 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="MapTypC.aspx.cs" Inherits="TALAS_V5.MessagesMap.MapTypC" %>
+
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TALAS.Map Version 0.5.3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/MapTypC.aktuell b/MessagesMap/MapTypC.aktuell
new file mode 100644
index 000000000..4d4fe6109
--- /dev/null
+++ b/MessagesMap/MapTypC.aktuell
@@ -0,0 +1,32 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="MapTypC.aspx.cs" Inherits="TALAS_V5.MessagesMap.MapTypC" %>
+
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/MapTypC.andy b/MessagesMap/MapTypC.andy
new file mode 100644
index 000000000..a11c719a9
--- /dev/null
+++ b/MessagesMap/MapTypC.andy
@@ -0,0 +1,1305 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="MapTypC.aspx.cs" Inherits="TALAS_V5.MessagesMap.MapTypC" %>
+
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TALAS.Map Version 0.5.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Littwin Systemtechnik GmbH & Co. KG
+
Bürgermeister-Brötje Str. 28 D-26180 Rastede
+
T: +49 4402 9725 77-0 E: kontakt@littwin-systemtechnik.de
+
+
TALAS.MAP Version 0.5.5
+
+
+
+
+
+
+
+ ×
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/MapTypC.aspx b/MessagesMap/MapTypC.aspx
new file mode 100644
index 000000000..6190f38b9
--- /dev/null
+++ b/MessagesMap/MapTypC.aspx
@@ -0,0 +1,45 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="MapTypC.aspx.cs" Inherits="TALAS_V5.MessagesMap.MapTypC" %>
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/MapTypC.bak b/MessagesMap/MapTypC.bak
new file mode 100644
index 000000000..b986fe5f0
--- /dev/null
+++ b/MessagesMap/MapTypC.bak
@@ -0,0 +1,22 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="MapTypC.aspx.cs" Inherits="TALAS_V5.MessagesMap.MapTypC" %>
+
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/MapTypC.bak2 b/MessagesMap/MapTypC.bak2
new file mode 100644
index 000000000..e7f04b323
--- /dev/null
+++ b/MessagesMap/MapTypC.bak2
@@ -0,0 +1,1045 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="MapTypC.aspx.cs" Inherits="TALAS_V5.MessagesMap.MapTypC" %>
+
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TALAS.Map Version 0.6.4
+
+
+
+
+
+
+
+
+
+
+
Littwin Systemtechnik GmbH & Co. KG
+
Bürgermeister-Brötje Str. 28 D-26180 Rastede
+
T: +49 4402 9725 77-0 E: kontakt@littwin-systemtechnik.de
+
+
TALAS.MAP Masterkarte Version 0.9.7
+
+
+
+
+
+
+
+ ×
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ passive
+ Stationen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/MapTypD.aspx b/MessagesMap/MapTypD.aspx
new file mode 100644
index 000000000..f27a3e8c0
--- /dev/null
+++ b/MessagesMap/MapTypD.aspx
@@ -0,0 +1,1000 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="MapTypC.aspx.cs" Inherits="TALAS_V5.MessagesMap.MapTypC" %>
+
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
GMA
+
Modems
+
Cisco
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TALAS.Map Version 0.5.3
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/Messages.aspx b/MessagesMap/Messages.aspx
new file mode 100644
index 000000000..648c4262e
--- /dev/null
+++ b/MessagesMap/Messages.aspx
@@ -0,0 +1,1247 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="Messages.aspx.cs" Inherits="TALAS_V5.MessagesMap.Messages" %>
+<%@ Register Assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web" TagPrefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unquittierte Meldungen
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Anstehende quittierte oder OoS Meldungen:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Möchten Sie wirklich die angezeigten Spalten auf Standardspalten zurücksetzen?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/ReportAccess1.aspx b/MessagesMap/ReportAccess1.aspx
new file mode 100644
index 000000000..a7d0b1fdb
--- /dev/null
+++ b/MessagesMap/ReportAccess1.aspx
@@ -0,0 +1,277 @@
+
+<%@ Page Title="TALAS" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="ReportAccess1.aspx.cs" Inherits="TALAS_V5.MessagesMap.ReportAccess1" %>
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Meldungen  > 
+
+
+  > 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Von:
+
+
+
+
+
+
+
+ Bis:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/ReportEMS1.aspx b/MessagesMap/ReportEMS1.aspx
new file mode 100644
index 000000000..d19291be5
--- /dev/null
+++ b/MessagesMap/ReportEMS1.aspx
@@ -0,0 +1,246 @@
+
+<%@ Page Title="TALAS" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="ReportEMS1.aspx.cs" Inherits="TALAS_V5.MessagesMap.ReportEMS1" %>
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Meldungen  > 
+
+
+  > 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/ReportKlima.aspx b/MessagesMap/ReportKlima.aspx
new file mode 100644
index 000000000..d8fac2528
--- /dev/null
+++ b/MessagesMap/ReportKlima.aspx
@@ -0,0 +1,420 @@
+
+<%@ Page Title="TALAS" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="ReportKlima.aspx.cs" Inherits="TALAS_V5.MessagesMap.ReportKlima" %>
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Meldungen  > 
+
+
+  > 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sachgebiet:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Temperaturen:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+ Feuchtigkeit:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MessagesMap/ReportKlimaautomatik.aspx b/MessagesMap/ReportKlimaautomatik.aspx
new file mode 100644
index 000000000..d2aa102a1
--- /dev/null
+++ b/MessagesMap/ReportKlimaautomatik.aspx
@@ -0,0 +1,460 @@
+
+<%@ Page Title="TALAS" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="ReportKlimaautomatik.aspx.cs" Inherits="TALAS_V5.MessagesMap.ReportKlimaautomatik" %>
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Meldungen  > 
+
+
+  > 
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Meldestationen mit Klimasteuerungen:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MessagesMap/ReportKue1.aspx b/MessagesMap/ReportKue1.aspx
new file mode 100644
index 000000000..48cf7202a
--- /dev/null
+++ b/MessagesMap/ReportKue1.aspx
@@ -0,0 +1,301 @@
+
+<%@ Page Title="TALAS" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="ReportKue1.aspx.cs" Inherits="TALAS_V5.MessagesMap.ReportKue1" %>
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Meldungen  > 
+
+
+  > 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sachgebiet:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/ReportMeasure.aspx b/MessagesMap/ReportMeasure.aspx
new file mode 100644
index 000000000..31728cf7a
--- /dev/null
+++ b/MessagesMap/ReportMeasure.aspx
@@ -0,0 +1,439 @@
+
+<%@ Page Title="TALAS" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="ReportMeasure.aspx.cs" Inherits="TALAS_V5.MessagesMap.ReportMeasure" %>
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Meldungen  > 
+
+
+  > 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sachgebiet:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Spannungen:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+ Ströme:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MessagesMap/ReportMessage1.aspx b/MessagesMap/ReportMessage1.aspx
new file mode 100644
index 000000000..40e6406fb
--- /dev/null
+++ b/MessagesMap/ReportMessage1.aspx
@@ -0,0 +1,305 @@
+
+<%@ Page Title="TALAS" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="ReportMessage1.aspx.cs" Inherits="TALAS_V5.MessagesMap.Report1" %>
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Meldungen  > 
+
+
+  > 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Von:
+
+
+
+
+
+
+
+ Bis:
+
+
+
+
+
+
+
+ System:
+
+
+
+
+
+
+
+ Meldungsgruppe:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/ReportMessage2.aspx b/MessagesMap/ReportMessage2.aspx
new file mode 100644
index 000000000..7b2d229c2
--- /dev/null
+++ b/MessagesMap/ReportMessage2.aspx
@@ -0,0 +1,242 @@
+
+<%@ Page Title="TALAS" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="ReportMessage2.aspx.cs" Inherits="TALAS_V5.MessagesMap.Report2" %>
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Meldungen  > 
+
+
+  > 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/ReportMessage3.aspx b/MessagesMap/ReportMessage3.aspx
new file mode 100644
index 000000000..cf02c0d3f
--- /dev/null
+++ b/MessagesMap/ReportMessage3.aspx
@@ -0,0 +1,228 @@
+
+<%@ Page Title="TALAS" Language="C#" MasterPageFile="~/Standard.Master" AutoEventWireup="true" CodeBehind="ReportMessage3.aspx.cs" Inherits="TALAS_V5.MessagesMap.Report3" %>
+<%@ Register assembly="DevExpress.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.Web" tagprefix="dx" %>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Meldungen  > 
+
+
+  > 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
diff --git a/MessagesMap/Scripts/browserify.js b/MessagesMap/Scripts/browserify.js
new file mode 100644
index 000000000..7fdd05f4c
--- /dev/null
+++ b/MessagesMap/Scripts/browserify.js
@@ -0,0 +1,3 @@
+var SvgPanZoom = require('./svg-pan-zoom.js');
+
+module.exports = SvgPanZoom;
diff --git a/MessagesMap/Scripts/control-icons.js b/MessagesMap/Scripts/control-icons.js
new file mode 100644
index 000000000..b8020bcdb
--- /dev/null
+++ b/MessagesMap/Scripts/control-icons.js
@@ -0,0 +1,125 @@
+var SvgUtils = require('./svg-utilities');
+
+module.exports = {
+ enable: function(instance) {
+ // Select (and create if necessary) defs
+ var defs = instance.svg.querySelector('defs')
+ if (!defs) {
+ defs = document.createElementNS(SvgUtils.svgNS, 'defs')
+ instance.svg.appendChild(defs)
+ }
+
+ // Check for style element, and create it if it doesn't exist
+ var styleEl = defs.querySelector('style#svg-pan-zoom-controls-styles');
+ if (!styleEl) {
+ var style = document.createElementNS(SvgUtils.svgNS, 'style')
+ style.setAttribute('id', 'svg-pan-zoom-controls-styles')
+ style.setAttribute('type', 'text/css')
+ style.textContent = '.svg-pan-zoom-control { cursor: pointer; fill: black; fill-opacity: 0.333; } .svg-pan-zoom-control:hover { fill-opacity: 0.8; } .svg-pan-zoom-control-background { fill: white; fill-opacity: 0.5; } .svg-pan-zoom-control-background { fill-opacity: 0.8; }'
+ defs.appendChild(style)
+ }
+
+ // Zoom Group
+ var zoomGroup = document.createElementNS(SvgUtils.svgNS, 'g');
+ zoomGroup.setAttribute('id', 'svg-pan-zoom-controls');
+ zoomGroup.setAttribute('transform', 'translate(' + ( instance.width - 70 ) + ' ' + ( instance.height - 76 ) + ') scale(0.75)');
+ zoomGroup.setAttribute('class', 'svg-pan-zoom-control');
+
+ // Control elements
+ zoomGroup.appendChild(this._createZoomIn(instance))
+ zoomGroup.appendChild(this._createZoomReset(instance))
+ zoomGroup.appendChild(this._createZoomOut(instance))
+
+ // Finally append created element
+ instance.svg.appendChild(zoomGroup)
+
+ // Cache control instance
+ instance.controlIcons = zoomGroup
+ }
+
+, _createZoomIn: function(instance) {
+ var zoomIn = document.createElementNS(SvgUtils.svgNS, 'g');
+ zoomIn.setAttribute('id', 'svg-pan-zoom-zoom-in');
+ zoomIn.setAttribute('transform', 'translate(30.5 5) scale(0.015)');
+ zoomIn.setAttribute('class', 'svg-pan-zoom-control');
+ zoomIn.addEventListener('click', function() {instance.getPublicInstance().zoomIn()}, false)
+ zoomIn.addEventListener('touchstart', function() {instance.getPublicInstance().zoomIn()}, false)
+
+ var zoomInBackground = document.createElementNS(SvgUtils.svgNS, 'rect'); // TODO change these background space fillers to rounded rectangles so they look prettier
+ zoomInBackground.setAttribute('x', '0');
+ zoomInBackground.setAttribute('y', '0');
+ zoomInBackground.setAttribute('width', '1500'); // larger than expected because the whole group is transformed to scale down
+ zoomInBackground.setAttribute('height', '1400');
+ zoomInBackground.setAttribute('class', 'svg-pan-zoom-control-background');
+ zoomIn.appendChild(zoomInBackground);
+
+ var zoomInShape = document.createElementNS(SvgUtils.svgNS, 'path');
+ zoomInShape.setAttribute('d', 'M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z');
+ zoomInShape.setAttribute('class', 'svg-pan-zoom-control-element');
+ zoomIn.appendChild(zoomInShape);
+
+ return zoomIn
+ }
+
+, _createZoomReset: function(instance){
+ // reset
+ var resetPanZoomControl = document.createElementNS(SvgUtils.svgNS, 'g');
+ resetPanZoomControl.setAttribute('id', 'svg-pan-zoom-reset-pan-zoom');
+ resetPanZoomControl.setAttribute('transform', 'translate(5 35) scale(0.4)');
+ resetPanZoomControl.setAttribute('class', 'svg-pan-zoom-control');
+ resetPanZoomControl.addEventListener('click', function() {instance.getPublicInstance().reset()}, false);
+ resetPanZoomControl.addEventListener('touchstart', function() {instance.getPublicInstance().reset()}, false);
+
+ var resetPanZoomControlBackground = document.createElementNS(SvgUtils.svgNS, 'rect'); // TODO change these background space fillers to rounded rectangles so they look prettier
+ resetPanZoomControlBackground.setAttribute('x', '2');
+ resetPanZoomControlBackground.setAttribute('y', '2');
+ resetPanZoomControlBackground.setAttribute('width', '182'); // larger than expected because the whole group is transformed to scale down
+ resetPanZoomControlBackground.setAttribute('height', '58');
+ resetPanZoomControlBackground.setAttribute('class', 'svg-pan-zoom-control-background');
+ resetPanZoomControl.appendChild(resetPanZoomControlBackground);
+
+ var resetPanZoomControlShape1 = document.createElementNS(SvgUtils.svgNS, 'path');
+ resetPanZoomControlShape1.setAttribute('d', 'M33.051,20.632c-0.742-0.406-1.854-0.609-3.338-0.609h-7.969v9.281h7.769c1.543,0,2.701-0.188,3.473-0.562c1.365-0.656,2.048-1.953,2.048-3.891C35.032,22.757,34.372,21.351,33.051,20.632z');
+ resetPanZoomControlShape1.setAttribute('class', 'svg-pan-zoom-control-element');
+ resetPanZoomControl.appendChild(resetPanZoomControlShape1);
+
+ var resetPanZoomControlShape2 = document.createElementNS(SvgUtils.svgNS, 'path');
+ resetPanZoomControlShape2.setAttribute('d', 'M170.231,0.5H15.847C7.102,0.5,0.5,5.708,0.5,11.84v38.861C0.5,56.833,7.102,61.5,15.847,61.5h154.384c8.745,0,15.269-4.667,15.269-10.798V11.84C185.5,5.708,178.976,0.5,170.231,0.5z M42.837,48.569h-7.969c-0.219-0.766-0.375-1.383-0.469-1.852c-0.188-0.969-0.289-1.961-0.305-2.977l-0.047-3.211c-0.03-2.203-0.41-3.672-1.142-4.406c-0.732-0.734-2.103-1.102-4.113-1.102h-7.05v13.547h-7.055V14.022h16.524c2.361,0.047,4.178,0.344,5.45,0.891c1.272,0.547,2.351,1.352,3.234,2.414c0.731,0.875,1.31,1.844,1.737,2.906s0.64,2.273,0.64,3.633c0,1.641-0.414,3.254-1.242,4.84s-2.195,2.707-4.102,3.363c1.594,0.641,2.723,1.551,3.387,2.73s0.996,2.98,0.996,5.402v2.32c0,1.578,0.063,2.648,0.19,3.211c0.19,0.891,0.635,1.547,1.333,1.969V48.569z M75.579,48.569h-26.18V14.022h25.336v6.117H56.454v7.336h16.781v6H56.454v8.883h19.125V48.569z M104.497,46.331c-2.44,2.086-5.887,3.129-10.34,3.129c-4.548,0-8.125-1.027-10.731-3.082s-3.909-4.879-3.909-8.473h6.891c0.224,1.578,0.662,2.758,1.316,3.539c1.196,1.422,3.246,2.133,6.15,2.133c1.739,0,3.151-0.188,4.236-0.562c2.058-0.719,3.087-2.055,3.087-4.008c0-1.141-0.504-2.023-1.512-2.648c-1.008-0.609-2.607-1.148-4.796-1.617l-3.74-0.82c-3.676-0.812-6.201-1.695-7.576-2.648c-2.328-1.594-3.492-4.086-3.492-7.477c0-3.094,1.139-5.664,3.417-7.711s5.623-3.07,10.036-3.07c3.685,0,6.829,0.965,9.431,2.895c2.602,1.93,3.966,4.73,4.093,8.402h-6.938c-0.128-2.078-1.057-3.555-2.787-4.43c-1.154-0.578-2.587-0.867-4.301-0.867c-1.907,0-3.428,0.375-4.565,1.125c-1.138,0.75-1.706,1.797-1.706,3.141c0,1.234,0.561,2.156,1.682,2.766c0.721,0.406,2.25,0.883,4.589,1.43l6.063,1.43c2.657,0.625,4.648,1.461,5.975,2.508c2.059,1.625,3.089,3.977,3.089,7.055C108.157,41.624,106.937,44.245,104.497,46.331z M139.61,48.569h-26.18V14.022h25.336v6.117h-18.281v7.336h16.781v6h-16.781v8.883h19.125V48.569z M170.337,20.14h-10.336v28.43h-7.266V20.14h-10.383v-6.117h27.984V20.14z');
+ resetPanZoomControlShape2.setAttribute('class', 'svg-pan-zoom-control-element');
+ resetPanZoomControl.appendChild(resetPanZoomControlShape2);
+
+ return resetPanZoomControl
+ }
+
+, _createZoomOut: function(instance){
+ // zoom out
+ var zoomOut = document.createElementNS(SvgUtils.svgNS, 'g');
+ zoomOut.setAttribute('id', 'svg-pan-zoom-zoom-out');
+ zoomOut.setAttribute('transform', 'translate(30.5 70) scale(0.015)');
+ zoomOut.setAttribute('class', 'svg-pan-zoom-control');
+ zoomOut.addEventListener('click', function() {instance.getPublicInstance().zoomOut()}, false);
+ zoomOut.addEventListener('touchstart', function() {instance.getPublicInstance().zoomOut()}, false);
+
+ var zoomOutBackground = document.createElementNS(SvgUtils.svgNS, 'rect'); // TODO change these background space fillers to rounded rectangles so they look prettier
+ zoomOutBackground.setAttribute('x', '0');
+ zoomOutBackground.setAttribute('y', '0');
+ zoomOutBackground.setAttribute('width', '1500'); // larger than expected because the whole group is transformed to scale down
+ zoomOutBackground.setAttribute('height', '1400');
+ zoomOutBackground.setAttribute('class', 'svg-pan-zoom-control-background');
+ zoomOut.appendChild(zoomOutBackground);
+
+ var zoomOutShape = document.createElementNS(SvgUtils.svgNS, 'path');
+ zoomOutShape.setAttribute('d', 'M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z');
+ zoomOutShape.setAttribute('class', 'svg-pan-zoom-control-element');
+ zoomOut.appendChild(zoomOutShape);
+
+ return zoomOut
+ }
+
+, disable: function(instance) {
+ if (instance.controlIcons) {
+ instance.controlIcons.parentNode.removeChild(instance.controlIcons)
+ instance.controlIcons = null
+ }
+ }
+}
diff --git a/MessagesMap/Scripts/jquery-1.11.1.min.js b/MessagesMap/Scripts/jquery-1.11.1.min.js
new file mode 100644
index 000000000..ab28a2472
--- /dev/null
+++ b/MessagesMap/Scripts/jquery-1.11.1.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="
",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++d
b;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;
+if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" a ",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML=" ",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h ]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""," "],legend:[1,""," "],area:[1,""," "],param:[1,""," "],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:k.htmlSerialize?[0,"",""]:[1,"X","
"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" a ",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight)),b.innerHTML="",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")
+},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();ca ",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.ActiveXObject&&m(a).on("unload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
diff --git a/MessagesMap/Scripts/jquery-1.4.1-vsdoc.js b/MessagesMap/Scripts/jquery-1.4.1-vsdoc.js
new file mode 100644
index 000000000..0880e3cc9
--- /dev/null
+++ b/MessagesMap/Scripts/jquery-1.4.1-vsdoc.js
@@ -0,0 +1,8061 @@
+/*
+ * This file has been commented to support Visual Studio Intellisense.
+ * You should not use this file at runtime inside the browser--it is only
+ * intended to be used only for design-time IntelliSense. Please use the
+ * standard jQuery library for all production use.
+ *
+ * Comment version: 1.4.1a
+ */
+
+/*!
+ * jQuery JavaScript Library v1.4.1
+ * http://jquery.com/
+ *
+ * Distributed in whole under the terms of the MIT
+ *
+ * Copyright 2010, John Resig
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2010, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Jan 25 19:43:33 2010 -0500
+ */
+
+(function( window, undefined ) {
+
+// Define a local copy of jQuery
+var jQuery = function( selector, context ) {
+ ///
+ /// 1: $(expression, context) - Diese Funktion akzeptiert eine Zeichenfolge mit einer CSS-Auswahl, die anschließend zum Abgleich einer Gruppe von Elementen verwendet wird.
+ /// 2: $(html) - DOM-Elemente dynamisch anhand der bereitgestellten unformatierten HTML-Zeichenfolge erstellen.
+ /// 3: $(elements) - jQuery-Funktionalität um ein DOM-Element oder mehrere DOM-Elemente umschließen
+ /// 4: $(callback) - Kurzbefehl für $(document).ready().
+ /// 5: $() - Ab jQuery 1.4 wird, wenn Sie keine Argumente an die jQuery()-Methode übergeben, ein leerer jQuery-Satz zurückgegeben.
+ ///
+ ///
+ /// 1: expression - Ausdruck für die Suche.
+ /// 2: html - HTML-Zeichenfolge, die dynamisch erstellt werden soll.
+ /// 3: elements - DOM-Element(e), das bzw. die von einem jQuery-Objekt gekapselt werden soll(en).
+ /// 4: callback - Die Funktion, die ausgeführt werden soll, wenn das DOM bereit ist.
+ ///
+ ///
+ /// 1: context - Ein DOM-Element, Dokument oder jQuery-Element, das als Kontext verwendet werden soll.
+ ///
+ ///
+
+ // The jQuery object is actually just the init constructor 'enhanced'
+ return new jQuery.fn.init( selector, context );
+ },
+
+ // Map over jQuery in case of overwrite
+ _jQuery = window.jQuery,
+
+ // Map over the $ in case of overwrite
+ _$ = window.$,
+
+ // Use the correct document accordingly with window argument (sandbox)
+ document = window.document,
+
+ // A central reference to the root jQuery(document)
+ rootjQuery,
+
+ // A simple way to check for HTML strings or ID strings
+ // (both of which we optimize for)
+ quickExpr = /^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,
+
+ // Is it a simple selector
+ isSimple = /^.[^:#\[\.,]*$/,
+
+ // Check if a string has a non-whitespace character in it
+ rnotwhite = /\S/,
+
+ // Used for trimming whitespace
+ rtrim = /^(\s|\u00A0)+|(\s|\u00A0)+$/g,
+
+ // Match a standalone tag
+ rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
+
+ // Keep a UserAgent string for use with jQuery.browser
+ userAgent = navigator.userAgent,
+
+ // For matching the engine and version of the browser
+ browserMatch,
+
+ // Has the ready events already been bound?
+ readyBound = false,
+
+ // The functions to execute on DOM ready
+ readyList = [],
+
+ // The ready event handler
+ DOMContentLoaded,
+
+ // Save a reference to some core methods
+ toString = Object.prototype.toString,
+ hasOwnProperty = Object.prototype.hasOwnProperty,
+ push = Array.prototype.push,
+ slice = Array.prototype.slice,
+ indexOf = Array.prototype.indexOf;
+
+jQuery.fn = jQuery.prototype = {
+ init: function( selector, context ) {
+
+ var match, elem, ret, doc;
+
+ // Handle $(""), $(null), or $(undefined)
+ if ( !selector ) {
+ return this;
+ }
+
+ // Handle $(DOMElement)
+ if ( selector.nodeType ) {
+ this.context = this[0] = selector;
+ this.length = 1;
+ return this;
+ }
+
+ // Handle HTML strings
+ if ( typeof selector === "string" ) {
+ // Are we dealing with HTML string or an ID?
+ match = quickExpr.exec( selector );
+
+ // Verify a match, and that no context was specified for #id
+ if ( match && (match[1] || !context) ) {
+
+ // HANDLE: $(html) -> $(array)
+ if ( match[1] ) {
+ doc = (context ? context.ownerDocument || context : document);
+
+ // If a single string is passed in and it's a single tag
+ // just do a createElement and skip the rest
+ ret = rsingleTag.exec( selector );
+
+ if ( ret ) {
+ if ( jQuery.isPlainObject( context ) ) {
+ selector = [ document.createElement( ret[1] ) ];
+ jQuery.fn.attr.call( selector, context, true );
+
+ } else {
+ selector = [ doc.createElement( ret[1] ) ];
+ }
+
+ } else {
+ ret = buildFragment( [ match[1] ], [ doc ] );
+ selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes;
+ }
+
+ // HANDLE: $("#id")
+ } else {
+ elem = document.getElementById( match[2] );
+
+ if ( elem ) {
+ // Handle the case where IE and Opera return items
+ // by name instead of ID
+ if ( elem.id !== match[2] ) {
+ return rootjQuery.find( selector );
+ }
+
+ // Otherwise, we inject the element directly into the jQuery object
+ this.length = 1;
+ this[0] = elem;
+ }
+
+ this.context = document;
+ this.selector = selector;
+ return this;
+ }
+
+ // HANDLE: $("TAG")
+ } else if ( !context && /^\w+$/.test( selector ) ) {
+ this.selector = selector;
+ this.context = document;
+ selector = document.getElementsByTagName( selector );
+
+ // HANDLE: $(expr, $(...))
+ } else if ( !context || context.jquery ) {
+ return (context || rootjQuery).find( selector );
+
+ // HANDLE: $(expr, context)
+ // (which is just equivalent to: $(context).find(expr)
+ } else {
+ return jQuery( context ).find( selector );
+ }
+
+ // HANDLE: $(function)
+ // Shortcut for document ready
+ } else if ( jQuery.isFunction( selector ) ) {
+ return rootjQuery.ready( selector );
+ }
+
+ if (selector.selector !== undefined) {
+ this.selector = selector.selector;
+ this.context = selector.context;
+ }
+
+ return jQuery.isArray( selector ) ?
+ this.setArray( selector ) :
+ jQuery.makeArray( selector, this );
+ },
+
+ // Start with an empty selector
+ selector: "",
+
+ // The current version of jQuery being used
+ jquery: "1.4.1",
+
+ // The default length of a jQuery object is 0
+ length: 0,
+
+ // The number of elements contained in the matched element set
+ size: function() {
+ ///
+ /// Anzahl der derzeit übereinstimmenden Elemente.
+ /// Teil des Kerns
+ ///
+ ///
+
+ return this.length;
+ },
+
+ toArray: function() {
+ ///
+ /// Rufen Sie alle DOM-Elemente, die in dem jQuery-Satz enthalten sind, als Array ab.
+ ///
+ ///
+ return slice.call( this, 0 );
+ },
+
+ // Get the Nth element in the matched element set OR
+ // Get the whole matched element set as a clean array
+ get: function( num ) {
+ ///
+ /// Auf einzelnes übereinstimmendes Element zugreifen. num dient zum Zugriff auf das
+ /// n-te übereinstimmende Element.
+ /// Teil des Kerns
+ ///
+ ///
+ ///
+ /// Auf das Element an n-ter Position zugreifen.
+ ///
+
+ return num == null ?
+
+ // Return a 'clean' array
+ this.toArray() :
+
+ // Return just the object
+ ( num < 0 ? this.slice(num)[ 0 ] : this[ num ] );
+ },
+
+ // Take an array of elements and push it onto the stack
+ // (returning the new matched element set)
+ pushStack: function( elems, name, selector ) {
+ ///
+ /// jQuery-Objekt auf ein Elementarray festlegen, dabei den Stapel
+ /// beibehalten.
+ /// Teil des Kerns
+ ///
+ ///
+ ///
+ /// Ein Elementarray
+ ///
+
+ // Build a new jQuery matched element set
+ var ret = jQuery( elems || null );
+
+ // Add the old object onto the stack (as a reference)
+ ret.prevObject = this;
+
+ ret.context = this.context;
+
+ if ( name === "find" ) {
+ ret.selector = this.selector + (this.selector ? " " : "") + selector;
+ } else if ( name ) {
+ ret.selector = this.selector + "." + name + "(" + selector + ")";
+ }
+
+ // Return the newly-formed element set
+ return ret;
+ },
+
+ // Force the current matched set of elements to become
+ // the specified array of elements (destroying the stack in the process)
+ // You should use pushStack() in order to do this, but maintain the stack
+ setArray: function( elems ) {
+ ///
+ /// jQuery-Objekt auf ein Elementarray festlegen. Dieser Vorgang ist
+ /// vollkommen destruktiv - verwenden Sie .pushStack(), wenn Sie den
+ /// jQuery-Stapel beibehalten möchten.
+ /// Teil des Kerns
+ ///
+ ///
+ ///
+ /// Ein Elementarray
+ ///
+
+ // Resetting the length to 0, then using the native Array push
+ // is a super-fast way to populate an object with array-like properties
+ this.length = 0;
+ push.apply( this, elems );
+
+ return this;
+ },
+
+ // Execute a callback for every element in the matched set.
+ // (You can seed the arguments with an array of args, but this is
+ // only used internally.)
+ each: function( callback, args ) {
+ ///
+ /// Funktion im Kontext jedes übereinstimmenden Elements ausführen.
+ /// Das bedeutet, dass bei jeder Ausführung der übergebenen Funktion
+ /// (einmal für jedes übereinstimmende Element) das this-Schlüsselwort
+ /// auf das jeweilige Element zeigt.
+ /// Zusätzlich wird der Funktion bei der Ausführung ein einzelnes
+ /// Argument für die Position des Elements im übereinstimmenden
+ /// Elementsatz übergeben.
+ /// Teil des Kerns
+ ///
+ ///
+ ///
+ /// Eine Funktion, die ausgeführt werden soll
+ ///
+
+ return jQuery.each( this, callback, args );
+ },
+
+ ready: function( fn ) {
+ ///
+ /// Bindet eine Funktion, die immer dann ausgeführt werden soll, wenn das DOM bereit ist, um traversiert und manipuliert zu werden.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll, wenn das DOM bereit ist.
+
+ // Attach the listeners
+ jQuery.bindReady();
+
+ // If the DOM is already ready
+ if ( jQuery.isReady ) {
+ // Execute the function immediately
+ fn.call( document, jQuery );
+
+ // Otherwise, remember the function for later
+ } else if ( readyList ) {
+ // Add the function to the wait list
+ readyList.push( fn );
+ }
+
+ return this;
+ },
+
+ eq: function( i ) {
+ ///
+ /// Übereinstimmenden Elementsatz auf ein einziges Element reduzieren.
+ /// Die Position des Elements im übereinstimmenden Elementsatz
+ /// beginnt bei 0 und geht bis Länge -1.
+ /// Teil des Kerns
+ ///
+ ///
+ ///
+ /// pos Der Index des Elements, das als Begrenzung dienen soll.
+ ///
+
+ return i === -1 ?
+ this.slice( i ) :
+ this.slice( i, +i + 1 );
+ },
+
+ first: function() {
+ ///
+ /// Reduzieren Sie den Satz übereinstimmender Elemente auf das erste Element in dem Satz.
+ ///
+ ///
+
+ return this.eq( 0 );
+ },
+
+ last: function() {
+ ///
+ /// Reduzieren Sie den Satz übereinstimmender Elemente auf das letzte Element in dem Satz.
+ ///
+ ///
+
+ return this.eq( -1 );
+ },
+
+ slice: function() {
+ ///
+ /// Wählt eine Teilmenge der übereinstimmenden Elemente aus. Verhält sich genauso wie die integrierte Arraysegmentierungsmethode.
+ ///
+ ///
Anfangspunkt der Teilmenge (0-basiert).
+ ///
Endpunkt der Teilmenge (ohne das Endelement selbst).
+ /// Ohne Angabe endet die Teilmenge am Ende der Auswahl
+ ///
Die segmentierten Elemente
+
+ return this.pushStack( slice.apply( this, arguments ),
+ "slice", slice.call(arguments).join(",") );
+ },
+
+ map: function( callback ) {
+ ///
+ /// Dies ist ein interner Member.
+ ///
+ ///
+ ///
+
+ return this.pushStack( jQuery.map(this, function( elem, i ) {
+ return callback.call( elem, i, elem );
+ }));
+ },
+
+ end: function() {
+ ///
+ /// Letzten destruktiven Vorgang beenden und Liste der übereinstimmenden Elemente
+ /// auf vorherigen Zustand zurücksetzen. Nach einem Beendigungsvorgang wird die Liste der übereinstimmenden Elemente
+ /// auf den letzten Zustand der übereinstimmenden Elemente zurückgesetzt.
+ /// Wenn zuvor kein destruktiver Vorgang durchgeführt wurde, wird ein leerer Datensatz zurückgegeben.
+ /// Teil von DOM/Traversierung
+ ///
+ ///
+
+ return this.prevObject || jQuery(null);
+ },
+
+ // Nur zur internen Verwendung.
+ // Verhält sich wie eine Arraymethode, nicht wie eine jQuery-Methode.
+ push: push,
+ sort: [].sort,
+ splice: [].splice
+};
+
+// Der init-Funktion zur späteren Instanziierung den jQuery-Prototyp zuweisen
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.extend = jQuery.fn.extend = function() {
+ ///
+ /// Ein Objekt durch mindestens ein weiteres Objekt erweitern, wobei das ursprüngliche
+ /// geänderte Objekt zurückgegeben wird. Ein hervorragendes Dienstprogramm für einfache Vererbung.
+ /// jQuery.extend(settings, options);
+ /// var settings = jQuery.extend({}, defaults, options);
+ /// Teil von JavaScript
+ ///
+ ///
+ /// Das zu erweiternde Objekt
+ ///
+ ///
+ /// Das Objekt, das mit dem ersten zusammengeführt wird.
+ ///
+ ///
+ /// (optional) Weitere Objekte, die mit dem ersten zusammengeführt werden
+ ///
+ ///
+
+ // copy reference to target object
+ var target = arguments[0] || {}, i = 1, length = arguments.length, deep = false, options, name, src, copy;
+
+ // Handle a deep copy situation
+ if ( typeof target === "boolean" ) {
+ deep = target;
+ target = arguments[1] || {};
+ // skip the boolean and the target
+ i = 2;
+ }
+
+ // Handle case when target is a string or something (possible in deep copy)
+ if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
+ target = {};
+ }
+
+ // extend jQuery itself if only one argument is passed
+ if ( length === i ) {
+ target = this;
+ --i;
+ }
+
+ for ( ; i < length; i++ ) {
+ // Only deal with non-null/undefined values
+ if ( (options = arguments[ i ]) != null ) {
+ // Extend the base object
+ for ( name in options ) {
+ src = target[ name ];
+ copy = options[ name ];
+
+ // Prevent never-ending loop
+ if ( target === copy ) {
+ continue;
+ }
+
+ // Recurse if we're merging object literal values or arrays
+ if ( deep && copy && ( jQuery.isPlainObject(copy) || jQuery.isArray(copy) ) ) {
+ var clone = src && ( jQuery.isPlainObject(src) || jQuery.isArray(src) ) ? src
+ : jQuery.isArray(copy) ? [] : {};
+
+ // Never move original objects, clone them
+ target[ name ] = jQuery.extend( deep, clone, copy );
+
+ // Don't bring in undefined values
+ } else if ( copy !== undefined ) {
+ target[ name ] = copy;
+ }
+ }
+ }
+ }
+
+ // Return the modified object
+ return target;
+};
+
+jQuery.extend({
+ noConflict: function( deep ) {
+ ///
+ /// Diese Funktion ausführen, um die Steuerung der $-Variablen an die
+ /// Bibliothek zurückzugeben, von der sie zuerst implementiert wurde. Dadurch werden
+ /// Konflikte zwischen jQuery und dem $-Objekt anderer
+ /// Bibliotheken vermieden.
+ /// Mit dieser Funktion können Sie nur mithilfe der jQuery-Variablen
+ /// auf jQuery zugreifen. Beispiel: Anstelle der alten Syntax
+ /// $("div p") müssen Sie jetzt jQuery("div p") ausführen.
+ /// Teil des Kerns
+ ///
+ ///
+
+ window.$ = _$;
+
+ if ( deep ) {
+ window.jQuery = _jQuery;
+ }
+
+ return jQuery;
+ },
+
+ // Kann das DOM verwendet werden? Legen Sie dies auf "True" fest, sobald dieser Fall eintritt.
+ isReady: false,
+
+ // Handling, wenn DOM bereit ist
+ ready: function() {
+ ///
+ /// Dies ist eine interne Methode.
+ ///
+ ///
+
+ // Make sure that the DOM is not already loaded
+ if ( !jQuery.isReady ) {
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if ( !document.body ) {
+ return setTimeout( jQuery.ready, 13 );
+ }
+
+ // Remember that the DOM is ready
+ jQuery.isReady = true;
+
+ // If there are functions bound, to execute
+ if ( readyList ) {
+ // Execute all of them
+ var fn, i = 0;
+ while ( (fn = readyList[ i++ ]) ) {
+ fn.call( document, jQuery );
+ }
+
+ // Reset the list of functions
+ readyList = null;
+ }
+
+ // Trigger any bound ready events
+ if ( jQuery.fn.triggerHandler ) {
+ jQuery( document ).triggerHandler( "ready" );
+ }
+ }
+ },
+
+ bindReady: function() {
+ if ( readyBound ) {
+ return;
+ }
+
+ readyBound = true;
+
+ // Catch cases where $(document).ready() is called after the
+ // browser event has already occurred.
+ if ( document.readyState === "complete" ) {
+ return jQuery.ready();
+ }
+
+ // Mozilla, Opera and webkit nightlies currently support this event
+ if ( document.addEventListener ) {
+ // Use the handy event callback
+ document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+
+ // A fallback to window.onload, that will always work
+ window.addEventListener( "load", jQuery.ready, false );
+
+ // If IE event model is used
+ } else if ( document.attachEvent ) {
+ // ensure firing before onload,
+ // maybe late but safe also for iframes
+ document.attachEvent("onreadystatechange", DOMContentLoaded);
+
+ // A fallback to window.onload, that will always work
+ window.attachEvent( "onload", jQuery.ready );
+
+ // If IE and not a frame
+ // continually check to see if the document is ready
+ var toplevel = false;
+
+ try {
+ toplevel = window.frameElement == null;
+ } catch(e) {}
+
+ if ( document.documentElement.doScroll && toplevel ) {
+ doScrollCheck();
+ }
+ }
+ },
+
+ // See test/unit/core.js for details concerning isFunction.
+ // Since version 1.3, DOM methods and functions like alert
+ // aren't supported. They return false on IE (#2968).
+ isFunction: function( obj ) {
+ ///
+ /// Bestimmt, ob es sich beim übergebenen Parameter um eine Funktion handelt.
+ ///
+ ///
Das zu überprüfende Objekt
+ ///
"True", wenn der Parameter eine Funktion ist, andernfalls "false".
+
+ return toString.call(obj) === "[object Function]";
+ },
+
+ isArray: function( obj ) {
+ ///
+ /// Bestimmt, ob es sich beim übergebenen Parameter um ein Array handelt.
+ ///
+ ///
Objekt, das dahingehend überprüft werden soll, ob es ein Array ist oder nicht.
+ ///
"True", wenn der Parameter eine Funktion ist, andernfalls "false".
+
+ return toString.call(obj) === "[object Array]";
+ },
+
+ isPlainObject: function( obj ) {
+ ///
+ /// Überprüfen Sie, ob ein Objekt ein einfaches Objekt ist (mit "{}" oder "new Object" erstellt).
+ ///
+ ///
+ /// Das Objekt, das überprüft wird, um zu ermitteln, ob es sich um ein einfaches Objekt handelt.
+ ///
+ ///
+
+ // Must be an Object.
+ // Because of IE, we also have to check the presence of the constructor property.
+ // Make sure that DOM nodes and window objects don't pass through, as well
+ if ( !obj || toString.call(obj) !== "[object Object]" || obj.nodeType || obj.setInterval ) {
+ return false;
+ }
+
+ // Not own constructor property must be Object
+ if ( obj.constructor
+ && !hasOwnProperty.call(obj, "constructor")
+ && !hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf") ) {
+ return false;
+ }
+
+ // Own properties are enumerated firstly, so to speed up,
+ // if last one is own, then all properties are own.
+
+ var key;
+ for ( key in obj ) {}
+
+ return key === undefined || hasOwnProperty.call( obj, key );
+ },
+
+ isEmptyObject: function( obj ) {
+ ///
+ /// Überprüfen Sie, ob ein Objekt leer ist (keine Eigenschaften enthält).
+ ///
+ ///
+ /// Das Objekt, das überprüft wird, um zu ermitteln, ob es sich um ein leeres Objekt handelt.
+ ///
+ ///
+
+ for ( var name in obj ) {
+ return false;
+ }
+ return true;
+ },
+
+ error: function( msg ) {
+ throw msg;
+ },
+
+ parseJSON: function( data ) {
+ if ( typeof data !== "string" || !data ) {
+ return null;
+ }
+
+ // Make sure the incoming data is actual JSON
+ // Logic borrowed from http://json.org/json2.js
+ if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@")
+ .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]")
+ .replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) {
+
+ // Try to use the native JSON parser first
+ return window.JSON && window.JSON.parse ?
+ window.JSON.parse( data ) :
+ (new Function("return " + data))();
+
+ } else {
+ jQuery.error( "Invalid JSON: " + data );
+ }
+ },
+
+ noop: function() {
+ ///
+ /// Eine leere Funktion.
+ ///
+ ///
+ },
+
+ // Wertet ein Skript in einem globalen Kontext aus
+ globalEval: function( data ) {
+ ///
+ /// Wertet ein Skript intern in einem globalen Kontext aus.
+ ///
+ ///
+
+ if ( data && rnotwhite.test(data) ) {
+ // Inspired by code by Andrea Giammarchi
+ // http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
+ var head = document.getElementsByTagName("head")[0] || document.documentElement,
+ script = document.createElement("script");
+
+ script.type = "text/javascript";
+
+ if ( jQuery.support.scriptEval ) {
+ script.appendChild( document.createTextNode( data ) );
+ } else {
+ script.text = data;
+ }
+
+ // Use insertBefore instead of appendChild to circumvent an IE6 bug.
+ // This arises when a base node is used (#2709).
+ head.insertBefore( script, head.firstChild );
+ head.removeChild( script );
+ }
+ },
+
+ nodeName: function( elem, name ) {
+ ///
+ /// Überprüft, ob das angegebene Element den angegebenen DOM-Knotennamen aufweist.
+ ///
+ ///
Das zu untersuchende Element
+ ///
Der zu überprüfende Knotenname
+ ///
"True", wenn der angegebene Knotenname mit dem DOM-Knotennamen des Knotens übereinstimmt; andernfalls "false"
+
+ return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
+ },
+
+ // args is for internal usage only
+ each: function( object, callback, args ) {
+ ///
+ /// Eine generische Iteratorfunktion, mit der Objekte
+ /// und Arrays nahtlos durchlaufen werden können. Nicht
+ /// identisch mit $().each() - diese Funktion wird ausschließlich zum Durchlaufen
+ /// von jQuery-Objekten verwendet. Diese Funktion kann beliebige Elemente durchlaufen.
+ /// Der Rückruf hat zwei Argumente: zuerst den Schlüssel (Objekte) oder Index (Arrays)
+ /// und dann den Wert.
+ /// Teil von JavaScript
+ ///
+ ///
+ /// Das Objekt oder Array, das durchlaufen werden soll.
+ ///
+ ///
+ /// Die Funktion, die für jedes Objekt ausgeführt werden soll.
+ ///
+ ///
+
+ var name, i = 0,
+ length = object.length,
+ isObj = length === undefined || jQuery.isFunction(object);
+
+ if ( args ) {
+ if ( isObj ) {
+ for ( name in object ) {
+ if ( callback.apply( object[ name ], args ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( ; i < length; ) {
+ if ( callback.apply( object[ i++ ], args ) === false ) {
+ break;
+ }
+ }
+ }
+
+ // A special, fast, case for the most common use of each
+ } else {
+ if ( isObj ) {
+ for ( name in object ) {
+ if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
+ break;
+ }
+ }
+ } else {
+ for ( var value = object[0];
+ i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {}
+ }
+ }
+
+ return object;
+ },
+
+ trim: function( text ) {
+ ///
+ /// Leerzeichen am Anfang und Ende einer Zeichenfolge entfernen.
+ /// Teil von JavaScript
+ ///
+ ///
+ ///
+ /// Die zu kürzende Zeichenfolge.
+ ///
+
+ return (text || "").replace( rtrim, "" );
+ },
+
+ // results is for internal usage only
+ makeArray: function( array, results ) {
+ ///
+ /// Wandelt alles in ein echtes Array um. Dies ist eine interne Methode.
+ ///
+ ///
Alles, was in ein echtes Array umgewandelt werden soll
+ ///
+ ///
+
+ var ret = results || [];
+
+ if ( array != null ) {
+ // The window, strings (and functions) also have 'length'
+ // The extra typeof function check is to prevent crashes
+ // in Safari 2 (See: #3039)
+ if ( array.length == null || typeof array === "string" || jQuery.isFunction(array) || (typeof array !== "function" && array.setInterval) ) {
+ push.call( ret, array );
+ } else {
+ jQuery.merge( ret, array );
+ }
+ }
+
+ return ret;
+ },
+
+ inArray: function( elem, array ) {
+ if ( array.indexOf ) {
+ return array.indexOf( elem );
+ }
+
+ for ( var i = 0, length = array.length; i < length; i++ ) {
+ if ( array[ i ] === elem ) {
+ return i;
+ }
+ }
+
+ return -1;
+ },
+
+ merge: function( first, second ) {
+ ///
+ /// Zwei Arrays zusammenführen, dabei alle Duplikate entfernen.
+ /// Das neue Array enthält alle Ergebnisse aus dem ersten Array, gefolgt
+ /// von den eindeutigen Ergebnissen aus dem zweiten Array.
+ /// Teil von JavaScript
+ ///
+ ///
+ ///
+ /// Das erste Array, das zusammengeführt werden soll.
+ ///
+ ///
+ /// Das zweite Array, das zusammengeführt werden soll.
+ ///
+
+ var i = first.length, j = 0;
+
+ if ( typeof second.length === "number" ) {
+ for ( var l = second.length; j < l; j++ ) {
+ first[ i++ ] = second[ j ];
+ }
+ } else {
+ while ( second[j] !== undefined ) {
+ first[ i++ ] = second[ j++ ];
+ }
+ }
+
+ first.length = i;
+
+ return first;
+ },
+
+ grep: function( elems, callback, inv ) {
+ ///
+ /// Elemente mithilfe einer Filterfunktion aus einem Array herausfiltern.
+ /// Der angegebenen Funktion werden zwei Argumente übergeben: das
+ /// aktuelle Arrayelement und der Index des Elements im Array. Die
+ /// Funktion muss "true" zurückgeben, damit das Element im Array bleibt,
+ /// "false", um es daraus zu entfernen.
+ /// });
+ /// Teil von JavaScript
+ ///
+ ///
+ ///
+ /// array Das Array, in dem Elemente gesucht werden sollen.
+ ///
+ ///
+ /// Die Funktion, mit der jedes Element verarbeitet werden soll.
+ ///
+ ///
+ /// Auswahl umkehren - Gegenteil der Funktion auswählen.
+ ///
+
+ var ret = [];
+
+ // Go through the array, only saving the items
+ // that pass the validator function
+ for ( var i = 0, length = elems.length; i < length; i++ ) {
+ if ( !inv !== !callback( elems[ i ], i ) ) {
+ ret.push( elems[ i ] );
+ }
+ }
+
+ return ret;
+ },
+
+ // arg is for internal usage only
+ map: function( elems, callback, arg ) {
+ ///
+ /// Alle Elemente in einem Array in ein anderes Elementarray übersetzen.
+ /// Die Übersetzungsfunktion, die dieser Methode übergeben wird,
+ /// wird für jedes Element im Array aufgerufen und erhält ein Argument:
+ /// das zu übersetzende Element.
+ /// Anschließend kann die Funktion den übersetzten Wert, null,
+ /// (um das Element zu entfernen) oder ein Wertearray zurückgeben - das in das
+ /// vollständige Array vereinfacht eingebunden wird.
+ /// Teil von JavaScript
+ ///
+ ///
+ ///
+ /// array Das zu übersetzende Array.
+ ///
+ ///
+ /// Die Funktion, mit der jedes Element verarbeitet werden soll.
+ ///
+
+ var ret = [], value;
+
+ // Array durchlaufen, dabei jedes der Elemente in den entsprechenden
+ // neuen Wert (oder die neuen Werte) übersetzen.
+ for ( var i = 0, length = elems.length; i < length; i++ ) {
+ value = callback( elems[ i ], i, arg );
+
+ if ( value != null ) {
+ ret[ ret.length ] = value;
+ }
+ }
+
+ return ret.concat.apply( [], ret );
+ },
+
+ // Ein globaler GUID-Indikator für Objekte.
+ guid: 1,
+
+ proxy: function( fn, proxy, thisObject ) {
+ ///
+ /// Verwendet eine Funktion und gibt eine neue zurück, die immer einen bestimmten Bereich aufweisen wird.
+ ///
+ ///
+ /// Die Funktion, deren Bereich geändert wird.
+ ///
+ ///
+ /// Das Objekt, auf das der Bereich der Funktion festgelegt werden sollte.
+ ///
+ ///
+
+ if ( arguments.length === 2 ) {
+ if ( typeof proxy === "string" ) {
+ thisObject = fn;
+ fn = thisObject[ proxy ];
+ proxy = undefined;
+
+ } else if ( proxy && !jQuery.isFunction( proxy ) ) {
+ thisObject = proxy;
+ proxy = undefined;
+ }
+ }
+
+ if ( !proxy && fn ) {
+ proxy = function() {
+ return fn.apply( thisObject || this, arguments );
+ };
+ }
+
+ // Set the guid of unique handler to the same of original handler, so it can be removed
+ if ( fn ) {
+ proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
+ }
+
+ // So proxy can be declared as an argument
+ return proxy;
+ },
+
+ // Use of jQuery.browser is frowned upon.
+ // More details: http://docs.jquery.com/Utilities/jQuery.browser
+ uaMatch: function( ua ) {
+ ua = ua.toLowerCase();
+
+ var match = /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
+ /(opera)(?:.*version)?[ \/]([\w.]+)/.exec( ua ) ||
+ /(msie) ([\w.]+)/.exec( ua ) ||
+ !/compatible/.test( ua ) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec( ua ) ||
+ [];
+
+ return { browser: match[1] || "", version: match[2] || "0" };
+ },
+
+ browser: {}
+});
+
+browserMatch = jQuery.uaMatch( userAgent );
+if ( browserMatch.browser ) {
+ jQuery.browser[ browserMatch.browser ] = true;
+ jQuery.browser.version = browserMatch.version;
+}
+
+// Deprecated, use jQuery.browser.webkit instead
+if ( jQuery.browser.webkit ) {
+ jQuery.browser.safari = true;
+}
+
+if ( indexOf ) {
+ jQuery.inArray = function( elem, array ) {
+ ///
+ /// Bestimmt den Index des ersten Parameters im Array.
+ ///
+ ///
Der Wert, der angezeigt werden soll, sofern er im Array vorhanden ist.
+ ///
Das Array, das nach dem Wert durchsucht werden soll
+ ///
Der 0-basierte Index des Elements, falls dieser gefunden wurde, andernfalls "-1".
+
+ return indexOf.call( array, elem );
+ };
+}
+
+// All jQuery objects should point back to these
+rootjQuery = jQuery(document);
+
+// Cleanup functions for the document ready method
+if ( document.addEventListener ) {
+ DOMContentLoaded = function() {
+ document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
+ jQuery.ready();
+ };
+
+} else if ( document.attachEvent ) {
+ DOMContentLoaded = function() {
+ // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+ if ( document.readyState === "complete" ) {
+ document.detachEvent( "onreadystatechange", DOMContentLoaded );
+ jQuery.ready();
+ }
+ };
+}
+
+// The DOM ready check for Internet Explorer
+function doScrollCheck() {
+ if ( jQuery.isReady ) {
+ return;
+ }
+
+ try {
+ // If IE is used, use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ document.documentElement.doScroll("left");
+ } catch( error ) {
+ setTimeout( doScrollCheck, 1 );
+ return;
+ }
+
+ // and execute any waiting functions
+ jQuery.ready();
+}
+
+function evalScript( i, elem ) {
+ ///
+ /// Dies ist eine interne Methode.
+ ///
+ ///
+
+ if ( elem.src ) {
+ jQuery.ajax({
+ url: elem.src,
+ async: false,
+ dataType: "script"
+ });
+ } else {
+ jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
+ }
+
+ if ( elem.parentNode ) {
+ elem.parentNode.removeChild( elem );
+ }
+}
+
+// Mutifunctional method to get and set values to a collection
+// The value/s can be optionally by executed if its a function
+function access( elems, key, value, exec, fn, pass ) {
+ var length = elems.length;
+
+ // Setting many attributes
+ if ( typeof key === "object" ) {
+ for ( var k in key ) {
+ access( elems, k, key[k], exec, fn, value );
+ }
+ return elems;
+ }
+
+ // Setting one attribute
+ if ( value !== undefined ) {
+ // Optionally, function values get executed if exec is true
+ exec = !pass && exec && jQuery.isFunction(value);
+
+ for ( var i = 0; i < length; i++ ) {
+ fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
+ }
+
+ return elems;
+ }
+
+ // Getting an attribute
+ return length ? fn( elems[0], key ) : null;
+}
+
+function now() {
+ ///
+ /// Ruft das aktuelle Datum ab.
+ ///
+ ///
Das aktuelle Datum.
+
+ return (new Date).getTime();
+}
+
+// [vsdoc] The following function has been modified for IntelliSense.
+// [vsdoc] Stubbing support properties to "false" for IntelliSense compat.
+(function() {
+
+ jQuery.support = {};
+
+ // var root = document.documentElement,
+ // script = document.createElement("script"),
+ // div = document.createElement("div"),
+ // id = "script" + now();
+
+ // div.style.display = "none";
+ // div.innerHTML = "
a ";
+
+ // var all = div.getElementsByTagName("*"),
+ // a = div.getElementsByTagName("a")[0];
+
+ // // Can't get basic test support
+ // if ( !all || !all.length || !a ) {
+ // return;
+ // }
+
+ jQuery.support = {
+ // IE strips leading whitespace when .innerHTML is used
+ leadingWhitespace: false,
+
+ // Make sure that tbody elements aren't automatically inserted
+ // IE will insert them into empty tables
+ tbody: false,
+
+ // Make sure that link elements get serialized correctly by innerHTML
+ // This requires a wrapper element in IE
+ htmlSerialize: false,
+
+ // Get the style information from getAttribute
+ // (IE uses .cssText insted)
+ style: false,
+
+ // Make sure that URLs aren't manipulated
+ // (IE normalizes it by default)
+ hrefNormalized: false,
+
+ // Make sure that element opacity exists
+ // (IE uses filter instead)
+ // Use a regex to work around a WebKit issue. See #5145
+ opacity: false,
+
+ // Verify style float existence
+ // (IE uses styleFloat instead of cssFloat)
+ cssFloat: false,
+
+ // Make sure that if no value is specified for a checkbox
+ // that it defaults to "on".
+ // (WebKit defaults to "" instead)
+ checkOn: false,
+
+ // Make sure that a selected-by-default option has a working selected property.
+ // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+ optSelected: false,
+
+ // Will be defined later
+ checkClone: false,
+ scriptEval: false,
+ noCloneEvent: false,
+ boxModel: false
+ };
+
+ // script.type = "text/javascript";
+ // try {
+ // script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
+ // } catch(e) {}
+
+ // root.insertBefore( script, root.firstChild );
+
+ // // Make sure that the execution of code works by injecting a script
+ // // tag with appendChild/createTextNode
+ // // (IE doesn't support this, fails, and uses .text instead)
+ // if ( window[ id ] ) {
+ // jQuery.support.scriptEval = true;
+ // delete window[ id ];
+ // }
+
+ // root.removeChild( script );
+
+ // if ( div.attachEvent && div.fireEvent ) {
+ // div.attachEvent("onclick", function click() {
+ // // Cloning a node shouldn't copy over any
+ // // bound event handlers (IE does this)
+ // jQuery.support.noCloneEvent = false;
+ // div.detachEvent("onclick", click);
+ // });
+ // div.cloneNode(true).fireEvent("onclick");
+ // }
+
+ // div = document.createElement("div");
+ // div.innerHTML = "
";
+
+ // var fragment = document.createDocumentFragment();
+ // fragment.appendChild( div.firstChild );
+
+ // // WebKit doesn't clone checked state correctly in fragments
+ // jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked;
+
+ // // Figure out if the W3C box model works as expected
+ // // document.body must exist before we can do this
+ // jQuery(function() {
+ // var div = document.createElement("div");
+ // div.style.width = div.style.paddingLeft = "1px";
+
+ // document.body.appendChild( div );
+ // jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;
+ // document.body.removeChild( div ).style.display = 'none';
+ // div = null;
+ // });
+
+ // // Technique from Juriy Zaytsev
+ // // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
+ // var eventSupported = function( eventName ) {
+ // var el = document.createElement("div");
+ // eventName = "on" + eventName;
+
+ // var isSupported = (eventName in el);
+ // if ( !isSupported ) {
+ // el.setAttribute(eventName, "return;");
+ // isSupported = typeof el[eventName] === "function";
+ // }
+ // el = null;
+
+ // return isSupported;
+ // };
+
+ jQuery.support.submitBubbles = false;
+ jQuery.support.changeBubbles = false;
+
+ // // release memory in IE
+ // root = script = div = all = a = null;
+})();
+
+jQuery.props = {
+ "for": "htmlFor",
+ "class": "className",
+ readonly: "readOnly",
+ maxlength: "maxLength",
+ cellspacing: "cellSpacing",
+ rowspan: "rowSpan",
+ colspan: "colSpan",
+ tabindex: "tabIndex",
+ usemap: "useMap",
+ frameborder: "frameBorder"
+};
+var expando = "jQuery" + now(), uuid = 0, windowData = {};
+var emptyObject = {};
+
+jQuery.extend({
+ cache: {},
+
+ expando:expando,
+
+ // The following elements throw uncatchable exceptions if you
+ // attempt to add expando properties to them.
+ noData: {
+ "embed": true,
+ "object": true,
+ "applet": true
+ },
+
+ data: function( elem, name, data ) {
+ ///
+ /// Speichern Sie beliebige Daten, die mit dem angegebenen Element verknüpft sind.
+ ///
+ ///
+ /// Das den Daten zuzuordnende DOM-Element.
+ ///
+ ///
+ /// Eine Zeichenfolge, die die festzulegenden Daten benennt.
+ ///
+ ///
+ /// Der neue Datenwert.
+ ///
+ ///
+
+ if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
+ return;
+ }
+
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var id = elem[ expando ], cache = jQuery.cache, thisCache;
+
+ // Handle the case where there's no name immediately
+ if ( !name && !id ) {
+ return null;
+ }
+
+ // Compute a unique ID for the element
+ if ( !id ) {
+ id = ++uuid;
+ }
+
+ // Avoid generating a new cache unless none exists and we
+ // want to manipulate it.
+ if ( typeof name === "object" ) {
+ elem[ expando ] = id;
+ thisCache = cache[ id ] = jQuery.extend(true, {}, name);
+ } else if ( cache[ id ] ) {
+ thisCache = cache[ id ];
+ } else if ( typeof data === "undefined" ) {
+ thisCache = emptyObject;
+ } else {
+ thisCache = cache[ id ] = {};
+ }
+
+ // Prevent overriding the named cache with undefined values
+ if ( data !== undefined ) {
+ elem[ expando ] = id;
+ thisCache[ name ] = data;
+ }
+
+ return typeof name === "string" ? thisCache[ name ] : thisCache;
+ },
+
+ removeData: function( elem, name ) {
+ if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
+ return;
+ }
+
+ elem = elem == window ?
+ windowData :
+ elem;
+
+ var id = elem[ expando ], cache = jQuery.cache, thisCache = cache[ id ];
+
+ // If we want to remove a specific section of the element's data
+ if ( name ) {
+ if ( thisCache ) {
+ // Remove the section of cache data
+ delete thisCache[ name ];
+
+ // If we've removed all the data, remove the element's cache
+ if ( jQuery.isEmptyObject(thisCache) ) {
+ jQuery.removeData( elem );
+ }
+ }
+
+ // Otherwise, we want to remove all of the element's data
+ } else {
+ // Clean up the element expando
+ try {
+ delete elem[ expando ];
+ } catch( e ) {
+ // IE has trouble directly removing the expando
+ // but it's ok with using removeAttribute
+ if ( elem.removeAttribute ) {
+ elem.removeAttribute( expando );
+ }
+ }
+
+ // Completely remove the data cache
+ delete cache[ id ];
+ }
+ }
+});
+
+jQuery.fn.extend({
+ data: function( key, value ) {
+ ///
+ /// Speichern Sie beliebige Daten, die übereinstimmenden Elementen zugeordnet sind.
+ ///
+ ///
+ /// Eine Zeichenfolge, die die festzulegenden Daten benennt.
+ ///
+ ///
+ /// Der neue Datenwert.
+ ///
+ ///
+
+ if ( typeof key === "undefined" && this.length ) {
+ return jQuery.data( this[0] );
+
+ } else if ( typeof key === "object" ) {
+ return this.each(function() {
+ jQuery.data( this, key );
+ });
+ }
+
+ var parts = key.split(".");
+ parts[1] = parts[1] ? "." + parts[1] : "";
+
+ if ( value === undefined ) {
+ var data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
+
+ if ( data === undefined && this.length ) {
+ data = jQuery.data( this[0], key );
+ }
+ return data === undefined && parts[1] ?
+ this.data( parts[0] ) :
+ data;
+ } else {
+ return this.trigger("setData" + parts[1] + "!", [parts[0], value]).each(function() {
+ jQuery.data( this, key, value );
+ });
+ }
+ },
+
+ removeData: function( key ) {
+ return this.each(function() {
+ jQuery.removeData( this, key );
+ });
+ }
+});
+jQuery.extend({
+ queue: function( elem, type, data ) {
+ if ( !elem ) {
+ return;
+ }
+
+ type = (type || "fx") + "queue";
+ var q = jQuery.data( elem, type );
+
+ // Speed up dequeue by getting out quickly if this is just a lookup
+ if ( !data ) {
+ return q || [];
+ }
+
+ if ( !q || jQuery.isArray(data) ) {
+ q = jQuery.data( elem, type, jQuery.makeArray(data) );
+
+ } else {
+ q.push( data );
+ }
+
+ return q;
+ },
+
+ dequeue: function( elem, type ) {
+ type = type || "fx";
+
+ var queue = jQuery.queue( elem, type ), fn = queue.shift();
+
+ // If the fx queue is dequeued, always remove the progress sentinel
+ if ( fn === "inprogress" ) {
+ fn = queue.shift();
+ }
+
+ if ( fn ) {
+ // Add a progress sentinel to prevent the fx queue from being
+ // automatically dequeued
+ if ( type === "fx" ) {
+ queue.unshift("inprogress");
+ }
+
+ fn.call(elem, function() {
+ jQuery.dequeue(elem, type);
+ });
+ }
+ }
+});
+
+jQuery.fn.extend({
+ queue: function( type, data ) {
+ ///
+ /// 1: queue() - Gibt einen Verweis auf die Warteschlange des ersten Elements (ein Funktionsarray) zurück.
+ /// 2: queue(callback) - Fügt eine neue Funktion hinzu, die am Ende der Warteschlange aller übereinstimmenden Elemente ausgeführt werden soll.
+ /// 3: queue(queue) - Ersetzt die Warteschlange aller übereinstimmenden Elemente durch diese neue Warteschlange (das Funktionsarray).
+ ///
+ ///
Die Funktion, die der Warteschlange hinzugefügt werden soll.
+ ///
+
+ if ( typeof type !== "string" ) {
+ data = type;
+ type = "fx";
+ }
+
+ if ( data === undefined ) {
+ return jQuery.queue( this[0], type );
+ }
+ return this.each(function( i, elem ) {
+ var queue = jQuery.queue( this, type, data );
+
+ if ( type === "fx" && queue[0] !== "inprogress" ) {
+ jQuery.dequeue( this, type );
+ }
+ });
+ },
+ dequeue: function( type ) {
+ ///
+ /// Entfernt eine Funktion vom Anfang der Warteschlange und führt sie aus.
+ ///
+ ///
Der Typ der Warteschlange, auf die zugegriffen werden soll.
+ ///
+
+ return this.each(function() {
+ jQuery.dequeue( this, type );
+ });
+ },
+
+ // Based off of the plugin by Clint Helfers, with permission.
+ // http://blindsignals.com/index.php/2009/07/jquery-delay/
+ delay: function( time, type ) {
+ ///
+ /// Legen Sie einen Zeitgeber fest, um die Ausführung nachfolgender Elemente in der Warteschlange zu verzögern.
+ ///
+ ///
+ /// Eine Ganzzahl, die die Anzahl von Millisekunden angibt, um die die Ausführung des nächsten Elements in der Warteschlange verzögert wird.
+ ///
+ ///
+ /// Eine Zeichenfolge mit dem Namen der Warteschlange. Dieser lautet standardmäßig "fx", die standardmäßige Effektwarteschlange.
+ ///
+ ///
+
+ time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
+ type = type || "fx";
+
+ return this.queue( type, function() {
+ var elem = this;
+ setTimeout(function() {
+ jQuery.dequeue( elem, type );
+ }, time );
+ });
+ },
+
+ clearQueue: function( type ) {
+ ///
+ /// Entfernen Sie alle Elemente aus der Warteschlange, die noch nicht ausgeführt wurden.
+ ///
+ ///
+ /// Eine Zeichenfolge mit dem Namen der Warteschlange. Dieser lautet standardmäßig "fx", die standardmäßige Effektwarteschlange.
+ ///
+ ///
+
+ return this.queue( type || "fx", [] );
+ }
+});
+var rclass = /[\n\t]/g,
+ rspace = /\s+/,
+ rreturn = /\r/g,
+ rspecialurl = /href|src|style/,
+ rtype = /(button|input)/i,
+ rfocusable = /(button|input|object|select|textarea)/i,
+ rclickable = /^(a|area)$/i,
+ rradiocheck = /radio|checkbox/;
+
+jQuery.fn.extend({
+ attr: function( name, value ) {
+ ///
+ /// Eine einzelne Eigenschaft für alle übereinstimmenden Elemente auf einen berechneten Wert festlegen.
+ /// Anstelle eines Werts wird eine Funktion bereitgestellt, die den Wert berechnet.
+ /// Teil von DOM/Attributen
+ ///
+ ///
+ ///
+ /// Der Name der festzulegenden Eigenschaft.
+ ///
+ ///
+ /// Eine Funktion, die den festzulegenden Wert zurückgibt.
+ ///
+
+ return access( this, name, value, true, jQuery.attr );
+ },
+
+ removeAttr: function( name, fn ) {
+ ///
+ /// Attribut von jedem der übereinstimmenden Elemente entfernen.
+ /// Teil von DOM/Attributen
+ ///
+ ///
+ /// Ein Attribut, das entfernt werden soll.
+ ///
+ ///
+
+ return this.each(function(){
+ jQuery.attr( this, name, "" );
+ if ( this.nodeType === 1 ) {
+ this.removeAttribute( name );
+ }
+ });
+ },
+
+ addClass: function( value ) {
+ ///
+ /// Fügt jedem Element im übereinstimmenden Elementsatz die angegebene(n) Klasse(n) hinzu.
+ /// Teil von DOM/Attributen
+ ///
+ ///
+ /// Mindestens ein Klassenname, der dem Klassenattribut jedes übereinstimmenden Elements hinzugefügt werden soll.
+ ///
+ ///
+
+ if ( jQuery.isFunction(value) ) {
+ return this.each(function(i) {
+ var self = jQuery(this);
+ self.addClass( value.call(this, i, self.attr("class")) );
+ });
+ }
+
+ if ( value && typeof value === "string" ) {
+ var classNames = (value || "").split( rspace );
+
+ for ( var i = 0, l = this.length; i < l; i++ ) {
+ var elem = this[i];
+
+ if ( elem.nodeType === 1 ) {
+ if ( !elem.className ) {
+ elem.className = value;
+
+ } else {
+ var className = " " + elem.className + " ";
+ for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
+ if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) {
+ elem.className += " " + classNames[c];
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ removeClass: function( value ) {
+ ///
+ /// Entfernt alle oder nur die angegebene(n) Klasse(n) aus dem übereinstimmenden Elementsatz.
+ /// Teil von DOM/Attributen
+ ///
+ ///
+ /// (Optional) Ein Klassenname, der aus dem Klassenattribut jedes übereinstimmenden Elements entfernt werden soll.
+ ///
+ ///
+
+ if ( jQuery.isFunction(value) ) {
+ return this.each(function(i) {
+ var self = jQuery(this);
+ self.removeClass( value.call(this, i, self.attr("class")) );
+ });
+ }
+
+ if ( (value && typeof value === "string") || value === undefined ) {
+ var classNames = (value || "").split(rspace);
+
+ for ( var i = 0, l = this.length; i < l; i++ ) {
+ var elem = this[i];
+
+ if ( elem.nodeType === 1 && elem.className ) {
+ if ( value ) {
+ var className = (" " + elem.className + " ").replace(rclass, " ");
+ for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
+ className = className.replace(" " + classNames[c] + " ", " ");
+ }
+ elem.className = className.substring(1, className.length - 1);
+
+ } else {
+ elem.className = "";
+ }
+ }
+ }
+ }
+
+ return this;
+ },
+
+ toggleClass: function( value, stateVal ) {
+ ///
+ /// Fügen Sie eine Klasse aus jedem Element in dem Satz übereinstimmender Elemente hinzu, oder entfernen Sie sie (abhängig von
+ /// dem Vorhandensein der Klasse oder dem Wert des Schalterarguments).
+ ///
+ ///
+ /// Ein Klassenname, der für jedes Element im Satz übereinstimmender Elemente umgeschaltet wird.
+ ///
+ ///
+ /// Ein boolescher Wert zur Ermittlung, ob die Klasse hinzugefügt oder entfernt werden soll.
+ ///
+ ///
+
+ var type = typeof value, isBool = typeof stateVal === "boolean";
+
+ if ( jQuery.isFunction( value ) ) {
+ return this.each(function(i) {
+ var self = jQuery(this);
+ self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal );
+ });
+ }
+
+ return this.each(function() {
+ if ( type === "string" ) {
+ // toggle individual class names
+ var className, i = 0, self = jQuery(this),
+ state = stateVal,
+ classNames = value.split( rspace );
+
+ while ( (className = classNames[ i++ ]) ) {
+ // check each className given, space seperated list
+ state = isBool ? state : !self.hasClass( className );
+ self[ state ? "addClass" : "removeClass" ]( className );
+ }
+
+ } else if ( type === "undefined" || type === "boolean" ) {
+ if ( this.className ) {
+ // store className if set
+ jQuery.data( this, "__className__", this.className );
+ }
+
+ // toggle whole className
+ this.className = this.className || value === false ? "" : jQuery.data( this, "__className__" ) || "";
+ }
+ });
+ },
+
+ hasClass: function( selector ) {
+ ///
+ /// Prüft die aktuelle Auswahl anhand einer Klasse und gibt zurück, ob mindestens eine Auswahl eine gegebene Klasse enthält.
+ ///
+ ///
Die Klasse, anhand derer die Prüfung erfolgen soll
+ ///
"True", wenn mindestens ein Element in der Auswahl die Klasse enthält, andernfalls "false".
+
+ var className = " " + selector + " ";
+ for ( var i = 0, l = this.length; i < l; i++ ) {
+ if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
+ return true;
+ }
+ }
+
+ return false;
+ },
+
+ val: function( value ) {
+ ///
+ /// Den Wert jedes übereinstimmenden Elements festlegen.
+ /// Teil von DOM/Attributen
+ ///
+ ///
+ ///
+ /// Eine Zeichenfolge aus Text oder ein Array von Zeichenfolgen, die bzw. das als Werteigenschaft jedes
+ /// übereinstimmenden Elements festgelegt werden soll.
+ ///
+
+ if ( value === undefined ) {
+ var elem = this[0];
+
+ if ( elem ) {
+ if ( jQuery.nodeName( elem, "option" ) ) {
+ return (elem.attributes.value || {}).specified ? elem.value : elem.text;
+ }
+
+ // We need to handle select boxes special
+ if ( jQuery.nodeName( elem, "select" ) ) {
+ var index = elem.selectedIndex,
+ values = [],
+ options = elem.options,
+ one = elem.type === "select-one";
+
+ // Nothing was selected
+ if ( index < 0 ) {
+ return null;
+ }
+
+ // Loop through all the selected options
+ for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
+ var option = options[ i ];
+
+ if ( option.selected ) {
+ // Get the specifc value for the option
+ value = jQuery(option).val();
+
+ // We don't need an array for one selects
+ if ( one ) {
+ return value;
+ }
+
+ // Multi-Selects return an array
+ values.push( value );
+ }
+ }
+
+ return values;
+ }
+
+ // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
+ if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) {
+ return elem.getAttribute("value") === null ? "on" : elem.value;
+ }
+
+
+ // Everything else, we just grab the value
+ return (elem.value || "").replace(rreturn, "");
+
+ }
+
+ return undefined;
+ }
+
+ var isFunction = jQuery.isFunction(value);
+
+ return this.each(function(i) {
+ var self = jQuery(this), val = value;
+
+ if ( this.nodeType !== 1 ) {
+ return;
+ }
+
+ if ( isFunction ) {
+ val = value.call(this, i, self.val());
+ }
+
+ // Typecast each time if the value is a Function and the appended
+ // value is therefore different each time.
+ if ( typeof val === "number" ) {
+ val += "";
+ }
+
+ if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) {
+ this.checked = jQuery.inArray( self.val(), val ) >= 0;
+
+ } else if ( jQuery.nodeName( this, "select" ) ) {
+ var values = jQuery.makeArray(val);
+
+ jQuery( "option", this ).each(function() {
+ this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
+ });
+
+ if ( !values.length ) {
+ this.selectedIndex = -1;
+ }
+
+ } else {
+ this.value = val;
+ }
+ });
+ }
+});
+
+jQuery.extend({
+ attrFn: {
+ val: true,
+ css: true,
+ html: true,
+ text: true,
+ data: true,
+ width: true,
+ height: true,
+ offset: true
+ },
+
+ attr: function( elem, name, value, pass ) {
+ ///
+ /// Dies ist eine interne Methode.
+ ///
+ ///
+
+ // don't set attributes on text and comment nodes
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return undefined;
+ }
+
+ if ( pass && name in jQuery.attrFn ) {
+ return jQuery(elem)[name](value);
+ }
+
+ var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ),
+ // Whether we are setting (or getting)
+ set = value !== undefined;
+
+ // Try to normalize/fix the name
+ name = notxml && jQuery.props[ name ] || name;
+
+ // Only do all the following if this is a node (faster for style)
+ if ( elem.nodeType === 1 ) {
+ // These attributes require special treatment
+ var special = rspecialurl.test( name );
+
+ // Safari mis-reports the default selected property of an option
+ // Accessing the parent's selectedIndex property fixes it
+ if ( name === "selected" && !jQuery.support.optSelected ) {
+ var parent = elem.parentNode;
+ if ( parent ) {
+ parent.selectedIndex;
+
+ // Make sure that it also works with optgroups, see #5701
+ if ( parent.parentNode ) {
+ parent.parentNode.selectedIndex;
+ }
+ }
+ }
+
+ // If applicable, access the attribute via the DOM 0 way
+ if ( name in elem && notxml && !special ) {
+ if ( set ) {
+ // We can't allow the type property to be changed (since it causes problems in IE)
+ if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) {
+ jQuery.error( "type property can't be changed" );
+ }
+
+ elem[ name ] = value;
+ }
+
+ // browsers index elements by id/name on forms, give priority to attributes.
+ if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) {
+ return elem.getAttributeNode( name ).nodeValue;
+ }
+
+ // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+ // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+ if ( name === "tabIndex" ) {
+ var attributeNode = elem.getAttributeNode( "tabIndex" );
+
+ return attributeNode && attributeNode.specified ?
+ attributeNode.value :
+ rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
+ 0 :
+ undefined;
+ }
+
+ return elem[ name ];
+ }
+
+ if ( !jQuery.support.style && notxml && name === "style" ) {
+ if ( set ) {
+ elem.style.cssText = "" + value;
+ }
+
+ return elem.style.cssText;
+ }
+
+ if ( set ) {
+ // convert the value to a string (all browsers do this but IE) see #1070
+ elem.setAttribute( name, "" + value );
+ }
+
+ var attr = !jQuery.support.hrefNormalized && notxml && special ?
+ // Some attributes require a special call on IE
+ elem.getAttribute( name, 2 ) :
+ elem.getAttribute( name );
+
+ // Non-existent attributes return null, we normalize to undefined
+ return attr === null ? undefined : attr;
+ }
+
+ // elem is actually elem.style ... set the style
+ // Using attr for specific style information is now deprecated. Use style insead.
+ return jQuery.style( elem, name, value );
+ }
+});
+var fcleanup = function( nm ) {
+ return nm.replace(/[^\w\s\.\|`]/g, function( ch ) {
+ return "\\" + ch;
+ });
+};
+
+/*
+ * A number of helper functions used for managing events.
+ * Many of the ideas behind this code originated from
+ * Dean Edwards' addEvent library.
+ */
+jQuery.event = {
+
+ // Bind an event to an element
+ // Original by Dean Edwards
+ add: function( elem, types, handler, data ) {
+ ///
+ /// Dies ist eine interne Methode.
+ ///
+ ///
+
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return;
+ }
+
+ // For whatever reason, IE has trouble passing the window object
+ // around, causing it to be cloned in the process
+ if ( elem.setInterval && ( elem !== window && !elem.frameElement ) ) {
+ elem = window;
+ }
+
+ // Make sure that the function being executed has a unique ID
+ if ( !handler.guid ) {
+ handler.guid = jQuery.guid++;
+ }
+
+ // if data is passed, bind to handler
+ if ( data !== undefined ) {
+ // Create temporary function pointer to original handler
+ var fn = handler;
+
+ // Create unique handler function, wrapped around original handler
+ handler = jQuery.proxy( fn );
+
+ // Store data in unique handler
+ handler.data = data;
+ }
+
+ // Init the element's event structure
+ var events = jQuery.data( elem, "events" ) || jQuery.data( elem, "events", {} ),
+ handle = jQuery.data( elem, "handle" ), eventHandle;
+
+ if ( !handle ) {
+ eventHandle = function() {
+ // Handle the second event of a trigger and when
+ // an event is called after a page has unloaded
+ return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
+ jQuery.event.handle.apply( eventHandle.elem, arguments ) :
+ undefined;
+ };
+
+ handle = jQuery.data( elem, "handle", eventHandle );
+ }
+
+ // If no handle is found then we must be trying to bind to one of the
+ // banned noData elements
+ if ( !handle ) {
+ return;
+ }
+
+ // Add elem as a property of the handle function
+ // This is to prevent a memory leak with non-native
+ // event in IE.
+ handle.elem = elem;
+
+ // Handle multiple events separated by a space
+ // jQuery(...).bind("mouseover mouseout", fn);
+ types = types.split( /\s+/ );
+
+ var type, i = 0;
+
+ while ( (type = types[ i++ ]) ) {
+ // Namespaced event handlers
+ var namespaces = type.split(".");
+ type = namespaces.shift();
+
+ if ( i > 1 ) {
+ handler = jQuery.proxy( handler );
+
+ if ( data !== undefined ) {
+ handler.data = data;
+ }
+ }
+
+ handler.type = namespaces.slice(0).sort().join(".");
+
+ // Get the current list of functions bound to this event
+ var handlers = events[ type ],
+ special = this.special[ type ] || {};
+
+ // Init the event handler queue
+ if ( !handlers ) {
+ handlers = events[ type ] = {};
+
+ // Check for a special event handler
+ // Only use addEventListener/attachEvent if the special
+ // events handler returns false
+ if ( !special.setup || special.setup.call( elem, data, namespaces, handler) === false ) {
+ // Bind the global event handler to the element
+ if ( elem.addEventListener ) {
+ elem.addEventListener( type, handle, false );
+ } else if ( elem.attachEvent ) {
+ elem.attachEvent( "on" + type, handle );
+ }
+ }
+ }
+
+ if ( special.add ) {
+ var modifiedHandler = special.add.call( elem, handler, data, namespaces, handlers );
+ if ( modifiedHandler && jQuery.isFunction( modifiedHandler ) ) {
+ modifiedHandler.guid = modifiedHandler.guid || handler.guid;
+ modifiedHandler.data = modifiedHandler.data || handler.data;
+ modifiedHandler.type = modifiedHandler.type || handler.type;
+ handler = modifiedHandler;
+ }
+ }
+
+ // Add the function to the element's handler list
+ handlers[ handler.guid ] = handler;
+
+ // Keep track of which events have been used, for global triggering
+ this.global[ type ] = true;
+ }
+
+ // Nullify elem to prevent memory leaks in IE
+ elem = null;
+ },
+
+ global: {},
+
+ // Detach an event or set of events from an element
+ remove: function( elem, types, handler ) {
+ ///
+ /// Dies ist eine interne Methode.
+ ///
+ ///
+
+ // don't do events on text and comment nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return;
+ }
+
+ var events = jQuery.data( elem, "events" ), ret, type, fn;
+
+ if ( events ) {
+ // Unbind all events for the element
+ if ( types === undefined || (typeof types === "string" && types.charAt(0) === ".") ) {
+ for ( type in events ) {
+ this.remove( elem, type + (types || "") );
+ }
+ } else {
+ // types is actually an event object here
+ if ( types.type ) {
+ handler = types.handler;
+ types = types.type;
+ }
+
+ // Handle multiple events separated by a space
+ // jQuery(...).unbind("mouseover mouseout", fn);
+ types = types.split(/\s+/);
+ var i = 0;
+ while ( (type = types[ i++ ]) ) {
+ // Namespaced event handlers
+ var namespaces = type.split(".");
+ type = namespaces.shift();
+ var all = !namespaces.length,
+ cleaned = jQuery.map( namespaces.slice(0).sort(), fcleanup ),
+ namespace = new RegExp("(^|\\.)" + cleaned.join("\\.(?:.*\\.)?") + "(\\.|$)"),
+ special = this.special[ type ] || {};
+
+ if ( events[ type ] ) {
+ // remove the given handler for the given type
+ if ( handler ) {
+ fn = events[ type ][ handler.guid ];
+ delete events[ type ][ handler.guid ];
+
+ // remove all handlers for the given type
+ } else {
+ for ( var handle in events[ type ] ) {
+ // Handle the removal of namespaced events
+ if ( all || namespace.test( events[ type ][ handle ].type ) ) {
+ delete events[ type ][ handle ];
+ }
+ }
+ }
+
+ if ( special.remove ) {
+ special.remove.call( elem, namespaces, fn);
+ }
+
+ // remove generic event handler if no more handlers exist
+ for ( ret in events[ type ] ) {
+ break;
+ }
+ if ( !ret ) {
+ if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
+ if ( elem.removeEventListener ) {
+ elem.removeEventListener( type, jQuery.data( elem, "handle" ), false );
+ } else if ( elem.detachEvent ) {
+ elem.detachEvent( "on" + type, jQuery.data( elem, "handle" ) );
+ }
+ }
+ ret = null;
+ delete events[ type ];
+ }
+ }
+ }
+ }
+
+ // Remove the expando if it's no longer used
+ for ( ret in events ) {
+ break;
+ }
+ if ( !ret ) {
+ var handle = jQuery.data( elem, "handle" );
+ if ( handle ) {
+ handle.elem = null;
+ }
+ jQuery.removeData( elem, "events" );
+ jQuery.removeData( elem, "handle" );
+ }
+ }
+ },
+
+ // bubbling is internal
+ trigger: function( event, data, elem /*, bubbling */ ) {
+ ///
+ /// This method is internal.
+ ///
+ ///
+
+ // Event object or event type
+ var type = event.type || event,
+ bubbling = arguments[3];
+
+ if ( !bubbling ) {
+ event = typeof event === "object" ?
+ // jQuery.Event object
+ event[expando] ? event :
+ // Object literal
+ jQuery.extend( jQuery.Event(type), event ) :
+ // Just the event type (string)
+ jQuery.Event(type);
+
+ if ( type.indexOf("!") >= 0 ) {
+ event.type = type = type.slice(0, -1);
+ event.exclusive = true;
+ }
+
+ // Handle a global trigger
+ if ( !elem ) {
+ // Don't bubble custom events when global (to avoid too much overhead)
+ event.stopPropagation();
+
+ // Only trigger if we've ever bound an event for it
+ if ( this.global[ type ] ) {
+ jQuery.each( jQuery.cache, function() {
+ if ( this.events && this.events[type] ) {
+ jQuery.event.trigger( event, data, this.handle.elem );
+ }
+ });
+ }
+ }
+
+ // Handle triggering a single element
+
+ // don't do events on text and comment nodes
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {
+ return undefined;
+ }
+
+ // Clean up in case it is reused
+ event.result = undefined;
+ event.target = elem;
+
+ // Clone the incoming data, if any
+ data = jQuery.makeArray( data );
+ data.unshift( event );
+ }
+
+ event.currentTarget = elem;
+
+ // Trigger the event, it is assumed that "handle" is a function
+ var handle = jQuery.data( elem, "handle" );
+ if ( handle ) {
+ handle.apply( elem, data );
+ }
+
+ var parent = elem.parentNode || elem.ownerDocument;
+
+ // Trigger an inline bound script
+ try {
+ if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) {
+ if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) {
+ event.result = false;
+ }
+ }
+
+ // prevent IE from throwing an error for some elements with some event types, see #3533
+ } catch (e) {}
+
+ if ( !event.isPropagationStopped() && parent ) {
+ jQuery.event.trigger( event, data, parent, true );
+
+ } else if ( !event.isDefaultPrevented() ) {
+ var target = event.target, old,
+ isClick = jQuery.nodeName(target, "a") && type === "click";
+
+ if ( !isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) {
+ try {
+ if ( target[ type ] ) {
+ // Make sure that we don't accidentally re-trigger the onFOO events
+ old = target[ "on" + type ];
+
+ if ( old ) {
+ target[ "on" + type ] = null;
+ }
+
+ this.triggered = true;
+ target[ type ]();
+ }
+
+ // prevent IE from throwing an error for some elements with some event types, see #3533
+ } catch (e) {}
+
+ if ( old ) {
+ target[ "on" + type ] = old;
+ }
+
+ this.triggered = false;
+ }
+ }
+ },
+
+ handle: function( event ) {
+ ///
+ /// Dies ist eine interne Methode.
+ ///
+ ///
+
+ // returned undefined or false
+ var all, handlers;
+
+ event = arguments[0] = jQuery.event.fix( event || window.event );
+ event.currentTarget = this;
+
+ // Namespaced event handlers
+ var namespaces = event.type.split(".");
+ event.type = namespaces.shift();
+
+ // Cache this now, all = true means, any handler
+ all = !namespaces.length && !event.exclusive;
+
+ var namespace = new RegExp("(^|\\.)" + namespaces.slice(0).sort().join("\\.(?:.*\\.)?") + "(\\.|$)");
+
+ handlers = ( jQuery.data(this, "events") || {} )[ event.type ];
+
+ for ( var j in handlers ) {
+ var handler = handlers[ j ];
+
+ // Filter the functions by class
+ if ( all || namespace.test(handler.type) ) {
+ // Pass in a reference to the handler function itself
+ // So that we can later remove it
+ event.handler = handler;
+ event.data = handler.data;
+
+ var ret = handler.apply( this, arguments );
+
+ if ( ret !== undefined ) {
+ event.result = ret;
+ if ( ret === false ) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ }
+
+ if ( event.isImmediatePropagationStopped() ) {
+ break;
+ }
+
+ }
+ }
+
+ return event.result;
+ },
+
+ props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
+
+ fix: function( event ) {
+ ///
+ /// Dies ist eine interne Methode.
+ ///
+ ///
+
+ if ( event[ expando ] ) {
+ return event;
+ }
+
+ // store a copy of the original event object
+ // and "clone" to set read-only properties
+ var originalEvent = event;
+ event = jQuery.Event( originalEvent );
+
+ for ( var i = this.props.length, prop; i; ) {
+ prop = this.props[ --i ];
+ event[ prop ] = originalEvent[ prop ];
+ }
+
+ // Fix target property, if necessary
+ if ( !event.target ) {
+ event.target = event.srcElement || document; // Fixes #1925 where srcElement might not be defined either
+ }
+
+ // check if target is a textnode (safari)
+ if ( event.target.nodeType === 3 ) {
+ event.target = event.target.parentNode;
+ }
+
+ // Add relatedTarget, if necessary
+ if ( !event.relatedTarget && event.fromElement ) {
+ event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;
+ }
+
+ // Calculate pageX/Y if missing and clientX/Y available
+ if ( event.pageX == null && event.clientX != null ) {
+ var doc = document.documentElement, body = document.body;
+ event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
+ event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
+ }
+
+ // Add which for key events
+ if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) ) {
+ event.which = event.charCode || event.keyCode;
+ }
+
+ // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
+ if ( !event.metaKey && event.ctrlKey ) {
+ event.metaKey = event.ctrlKey;
+ }
+
+ // Add which for click: 1 === left; 2 === middle; 3 === right
+ // Note: button is not normalized, so don't use it
+ if ( !event.which && event.button !== undefined ) {
+ event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
+ }
+
+ return event;
+ },
+
+ // Deprecated, use jQuery.guid instead
+ guid: 1E8,
+
+ // Deprecated, use jQuery.proxy instead
+ proxy: jQuery.proxy,
+
+ special: {
+ ready: {
+ // Make sure the ready event is setup
+ setup: jQuery.bindReady,
+ teardown: jQuery.noop
+ },
+
+ live: {
+ add: function( proxy, data, namespaces, live ) {
+ jQuery.extend( proxy, data || {} );
+
+ proxy.guid += data.selector + data.live;
+ data.liveProxy = proxy;
+
+ jQuery.event.add( this, data.live, liveHandler, data );
+
+ },
+
+ remove: function( namespaces ) {
+ if ( namespaces.length ) {
+ var remove = 0, name = new RegExp("(^|\\.)" + namespaces[0] + "(\\.|$)");
+
+ jQuery.each( (jQuery.data(this, "events").live || {}), function() {
+ if ( name.test(this.type) ) {
+ remove++;
+ }
+ });
+
+ if ( remove < 1 ) {
+ jQuery.event.remove( this, namespaces[0], liveHandler );
+ }
+ }
+ },
+ special: {}
+ },
+ beforeunload: {
+ setup: function( data, namespaces, fn ) {
+ // We only want to do this special case on windows
+ if ( this.setInterval ) {
+ this.onbeforeunload = fn;
+ }
+
+ return false;
+ },
+ teardown: function( namespaces, fn ) {
+ if ( this.onbeforeunload === fn ) {
+ this.onbeforeunload = null;
+ }
+ }
+ }
+ }
+};
+
+jQuery.Event = function( src ) {
+ // Allow instantiation without the 'new' keyword
+ if ( !this.preventDefault ) {
+ return new jQuery.Event( src );
+ }
+
+ // Event object
+ if ( src && src.type ) {
+ this.originalEvent = src;
+ this.type = src.type;
+ // Event type
+ } else {
+ this.type = src;
+ }
+
+ // timeStamp is buggy for some events on Firefox(#3843)
+ // So we won't rely on the native value
+ this.timeStamp = now();
+
+ // Mark it as fixed
+ this[ expando ] = true;
+};
+
+function returnFalse() {
+ return false;
+}
+function returnTrue() {
+ return true;
+}
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+ preventDefault: function() {
+ this.isDefaultPrevented = returnTrue;
+
+ var e = this.originalEvent;
+ if ( !e ) {
+ return;
+ }
+
+ // if preventDefault exists run it on the original event
+ if ( e.preventDefault ) {
+ e.preventDefault();
+ }
+ // otherwise set the returnValue property of the original event to false (IE)
+ e.returnValue = false;
+ },
+ stopPropagation: function() {
+ this.isPropagationStopped = returnTrue;
+
+ var e = this.originalEvent;
+ if ( !e ) {
+ return;
+ }
+ // if stopPropagation exists run it on the original event
+ if ( e.stopPropagation ) {
+ e.stopPropagation();
+ }
+ // otherwise set the cancelBubble property of the original event to true (IE)
+ e.cancelBubble = true;
+ },
+ stopImmediatePropagation: function() {
+ this.isImmediatePropagationStopped = returnTrue;
+ this.stopPropagation();
+ },
+ isDefaultPrevented: returnFalse,
+ isPropagationStopped: returnFalse,
+ isImmediatePropagationStopped: returnFalse
+};
+
+// Checks if an event happened on an element within another element
+// Used in jQuery.event.special.mouseenter and mouseleave handlers
+var withinElement = function( event ) {
+ // Check if mouse(over|out) are still within the same parent element
+ var parent = event.relatedTarget;
+
+ // Traverse up the tree
+ while ( parent && parent !== this ) {
+ // Firefox sometimes assigns relatedTarget a XUL element
+ // which we cannot access the parentNode property of
+ try {
+ parent = parent.parentNode;
+
+ // assuming we've left the element since we most likely mousedover a xul element
+ } catch(e) {
+ break;
+ }
+ }
+
+ if ( parent !== this ) {
+ // set the correct event type
+ event.type = event.data;
+
+ // handle event if we actually just moused on to a non sub-element
+ jQuery.event.handle.apply( this, arguments );
+ }
+
+},
+
+// In case of event delegation, we only need to rename the event.type,
+// liveHandler will take care of the rest.
+delegate = function( event ) {
+ event.type = event.data;
+ jQuery.event.handle.apply( this, arguments );
+};
+
+// Create mouseenter and mouseleave events
+jQuery.each({
+ mouseenter: "mouseover",
+ mouseleave: "mouseout"
+}, function( orig, fix ) {
+ jQuery.event.special[ orig ] = {
+ setup: function( data ) {
+ jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig );
+ },
+ teardown: function( data ) {
+ jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement );
+ }
+ };
+});
+
+// submit delegation
+if ( !jQuery.support.submitBubbles ) {
+
+jQuery.event.special.submit = {
+ setup: function( data, namespaces, fn ) {
+ if ( this.nodeName.toLowerCase() !== "form" ) {
+ jQuery.event.add(this, "click.specialSubmit." + fn.guid, function( e ) {
+ var elem = e.target, type = elem.type;
+
+ if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
+ return trigger( "submit", this, arguments );
+ }
+ });
+
+ jQuery.event.add(this, "keypress.specialSubmit." + fn.guid, function( e ) {
+ var elem = e.target, type = elem.type;
+
+ if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
+ return trigger( "submit", this, arguments );
+ }
+ });
+
+ } else {
+ return false;
+ }
+ },
+
+ remove: function( namespaces, fn ) {
+ jQuery.event.remove( this, "click.specialSubmit" + (fn ? "."+fn.guid : "") );
+ jQuery.event.remove( this, "keypress.specialSubmit" + (fn ? "."+fn.guid : "") );
+ }
+};
+
+}
+
+// change delegation, happens here so we have bind.
+if ( !jQuery.support.changeBubbles ) {
+
+var formElems = /textarea|input|select/i;
+
+function getVal( elem ) {
+ var type = elem.type, val = elem.value;
+
+ if ( type === "radio" || type === "checkbox" ) {
+ val = elem.checked;
+
+ } else if ( type === "select-multiple" ) {
+ val = elem.selectedIndex > -1 ?
+ jQuery.map( elem.options, function( elem ) {
+ return elem.selected;
+ }).join("-") :
+ "";
+
+ } else if ( elem.nodeName.toLowerCase() === "select" ) {
+ val = elem.selectedIndex;
+ }
+
+ return val;
+}
+
+function testChange( e ) {
+ var elem = e.target, data, val;
+
+ if ( !formElems.test( elem.nodeName ) || elem.readOnly ) {
+ return;
+ }
+
+ data = jQuery.data( elem, "_change_data" );
+ val = getVal(elem);
+
+ // the current data will be also retrieved by beforeactivate
+ if ( e.type !== "focusout" || elem.type !== "radio" ) {
+ jQuery.data( elem, "_change_data", val );
+ }
+
+ if ( data === undefined || val === data ) {
+ return;
+ }
+
+ if ( data != null || val ) {
+ e.type = "change";
+ return jQuery.event.trigger( e, arguments[1], elem );
+ }
+}
+
+jQuery.event.special.change = {
+ filters: {
+ focusout: testChange,
+
+ click: function( e ) {
+ var elem = e.target, type = elem.type;
+
+ if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) {
+ return testChange.call( this, e );
+ }
+ },
+
+ // Change has to be called before submit
+ // Keydown will be called before keypress, which is used in submit-event delegation
+ keydown: function( e ) {
+ var elem = e.target, type = elem.type;
+
+ if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") ||
+ (e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||
+ type === "select-multiple" ) {
+ return testChange.call( this, e );
+ }
+ },
+
+ // Beforeactivate happens also before the previous element is blurred
+ // with this event you can't trigger a change event, but you can store
+ // information/focus[in] is not needed anymore
+ beforeactivate: function( e ) {
+ var elem = e.target;
+
+ if ( elem.nodeName.toLowerCase() === "input" && elem.type === "radio" ) {
+ jQuery.data( elem, "_change_data", getVal(elem) );
+ }
+ }
+ },
+ setup: function( data, namespaces, fn ) {
+ for ( var type in changeFilters ) {
+ jQuery.event.add( this, type + ".specialChange." + fn.guid, changeFilters[type] );
+ }
+
+ return formElems.test( this.nodeName );
+ },
+ remove: function( namespaces, fn ) {
+ for ( var type in changeFilters ) {
+ jQuery.event.remove( this, type + ".specialChange" + (fn ? "."+fn.guid : ""), changeFilters[type] );
+ }
+
+ return formElems.test( this.nodeName );
+ }
+};
+
+var changeFilters = jQuery.event.special.change.filters;
+
+}
+
+function trigger( type, elem, args ) {
+ args[0].type = type;
+ return jQuery.event.handle.apply( elem, args );
+}
+
+// Create "bubbling" focus and blur events
+if ( document.addEventListener ) {
+ jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+ jQuery.event.special[ fix ] = {
+ setup: function() {
+ ///
+ /// Dies ist eine interne Methode.
+ ///
+ ///
+
+ this.addEventListener( orig, handler, true );
+ },
+ teardown: function() {
+ ///
+ /// Dies ist eine interne Methode.
+ ///
+ ///
+
+ this.removeEventListener( orig, handler, true );
+ }
+ };
+
+ function handler( e ) {
+ e = jQuery.event.fix( e );
+ e.type = fix;
+ return jQuery.event.handle.call( this, e );
+ }
+ });
+}
+
+// jQuery.each(["bind", "one"], function( i, name ) {
+// jQuery.fn[ name ] = function( type, data, fn ) {
+// // Handle object literals
+// if ( typeof type === "object" ) {
+// for ( var key in type ) {
+// this[ name ](key, data, type[key], fn);
+// }
+// return this;
+// }
+//
+// if ( jQuery.isFunction( data ) ) {
+// fn = data;
+// data = undefined;
+// }
+//
+// var handler = name === "one" ? jQuery.proxy( fn, function( event ) {
+// jQuery( this ).unbind( event, handler );
+// return fn.apply( this, arguments );
+// }) : fn;
+//
+// return type === "unload" && name !== "one" ?
+// this.one( type, data, fn ) :
+// this.each(function() {
+// jQuery.event.add( this, type, handler, data );
+// });
+// };
+// });
+
+jQuery.fn[ "bind" ] = function( type, data, fn ) {
+ ///
+ /// Bindet einen Handler für jedes übereinstimmende Element an mindestens ein Ereignis. Kann auch benutzerdefinierte Ereignisse binden.
+ ///
+ ///
Mindestens ein durch Leerzeichen voneinander getrennter Ereignistyp. Integrierte Ereignistypwerte sind: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error.
+ ///
Zusätzliche Daten, die dem Ereignishandler als event.data übergeben werden.
+ ///
Eine Funktion, die für jedes Element im übereinstimmenden Elementsatz an das Ereignis gebunden wird; die callback(eventObject)-Funktion muss so festgelegt werden, dass dies dem DOM-Element entspricht.
+
+ // Objektliterale behandeln
+ if ( typeof type === "object" ) {
+ for ( var key in type ) {
+ this[ "bind" ](key, data, type[key], fn);
+ }
+ return this;
+ }
+
+ if ( jQuery.isFunction( data ) ) {
+ fn = data;
+ data = undefined;
+ }
+
+ var handler = "bind" === "one" ? jQuery.proxy( fn, function( event ) {
+ jQuery( this ).unbind( event, handler );
+ return fn.apply( this, arguments );
+ }) : fn;
+
+ return type === "unload" && "bind" !== "one" ?
+ this.one( type, data, fn ) :
+ this.each(function() {
+ jQuery.event.add( this, type, handler, data );
+ });
+};
+
+jQuery.fn[ "one" ] = function( type, data, fn ) {
+ ///
+ /// Bindet einen Handler an mindestens ein Ereignis, das genau einmal für jedes übereinstimmende Element ausgeführt werden soll.
+ ///
+ ///
Mindestens ein durch Leerzeichen voneinander getrennter Ereignistyp. Integrierte Ereignistypwerte sind: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error.
+ ///
Zusätzliche Daten, die dem Ereignishandler als event.data übergeben werden.
+ ///
Eine Funktion, die für jedes Element im übereinstimmenden Elementsatz an das Ereignis gebunden wird; die callback(eventObject)-Funktion muss so festgelegt werden, dass dies dem DOM-Element entspricht.
+
+ // Handle object literals
+ if ( typeof type === "object" ) {
+ for ( var key in type ) {
+ this[ "one" ](key, data, type[key], fn);
+ }
+ return this;
+ }
+
+ if ( jQuery.isFunction( data ) ) {
+ fn = data;
+ data = undefined;
+ }
+
+ var handler = "one" === "one" ? jQuery.proxy( fn, function( event ) {
+ jQuery( this ).unbind( event, handler );
+ return fn.apply( this, arguments );
+ }) : fn;
+
+ return type === "unload" && "one" !== "one" ?
+ this.one( type, data, fn ) :
+ this.each(function() {
+ jQuery.event.add( this, type, handler, data );
+ });
+};
+
+jQuery.fn.extend({
+ unbind: function( type, fn ) {
+ ///
+ /// Löst einen Handler von mindestens einem Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Mindestens ein durch Leerzeichen voneinander getrennter Ereignistyp. Integrierte Ereignistypwerte sind: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error.
+ ///
Eine Funktion, die für jedes Element im übereinstimmenden Elementsatz an das Ereignis gebunden wird; die callback(eventObject)-Funktion muss so festgelegt werden, dass dies dem DOM-Element entspricht.
+
+ // Handle object literals
+ if ( typeof type === "object" && !type.preventDefault ) {
+ for ( var key in type ) {
+ this.unbind(key, type[key]);
+ }
+ return this;
+ }
+
+ return this.each(function() {
+ jQuery.event.remove( this, type, fn );
+ });
+ },
+ trigger: function( type, data ) {
+ ///
+ /// Löst für jedes übereinstimmende Element einen Ereignistyp aus.
+ ///
+ ///
Mindestens ein durch Leerzeichen voneinander getrennter Ereignistyp. Integrierte Ereignistypwerte sind: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error.
+ ///
Zusätzliche Daten, die dem Ereignishandler als zusätzliche Argumente übergeben werden.
+ ///
Dieser Parameter ist nicht dokumentiert.
+
+ return this.each(function() {
+ jQuery.event.trigger( type, data, this );
+ });
+ },
+
+ triggerHandler: function( type, data ) {
+ ///
+ /// Löst alle an ein Element gebundenen Ereignishandler für einen bestimmten Ereignistyp, ohne die Standardaktionen des Browsers auszuführen.
+ ///
+ ///
Mindestens ein durch Leerzeichen voneinander getrennter Ereignistyp. Integrierte Ereignistypwerte sind: blur, focus, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress, keyup, error.
+ ///
Zusätzliche Daten, die dem Ereignishandler als zusätzliche Argumente übergeben werden.
+ ///
Dieser Parameter ist nicht dokumentiert.
+
+ if ( this[0] ) {
+ var event = jQuery.Event( type );
+ event.preventDefault();
+ event.stopPropagation();
+ jQuery.event.trigger( event, data, this[0] );
+ return event.result;
+ }
+ },
+
+ toggle: function( fn ) {
+ ///
+ /// Schaltet bei jedem zweiten Klick zwischen zwei oder mehr Funktionsaufrufen um.
+ ///
+ ///
Die Funktionen, zwischen deren Ausführung umgeschaltet werden soll
+
+ // Save reference to arguments for access in closure
+ var args = arguments, i = 1;
+
+ // link all the functions, so any of them can unbind this click handler
+ while ( i < args.length ) {
+ jQuery.proxy( fn, args[ i++ ] );
+ }
+
+ return this.click( jQuery.proxy( fn, function( event ) {
+ // Figure out which function to execute
+ var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i;
+ jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 );
+
+ // Make sure that clicks stop
+ event.preventDefault();
+
+ // and execute the function
+ return args[ lastToggle ].apply( this, arguments ) || false;
+ }));
+ },
+
+ hover: function( fnOver, fnOut ) {
+ ///
+ /// Simuliert das Hovern (Mausbewegung auf oder über ein Objekt).
+ ///
+ ///
Die Funktion, die ausgelöst werden soll, wenn die Maus über ein übereinstimmendes Element bewegt wird.
+ ///
Die Funktion, die ausgelöst werden soll, wenn die Maus von einem übereinstimmenden Element bewegt wird.
+
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+ }
+});
+
+// jQuery.each(["live", "die"], function( i, name ) {
+// jQuery.fn[ name ] = function( types, data, fn ) {
+// var type, i = 0;
+//
+// if ( jQuery.isFunction( data ) ) {
+// fn = data;
+// data = undefined;
+// }
+//
+// types = (types || "").split( /\s+/ );
+//
+// while ( (type = types[ i++ ]) != null ) {
+// type = type === "focus" ? "focusin" : // focus --> focusin
+// type === "blur" ? "focusout" : // blur --> focusout
+// type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support
+// type;
+//
+// if ( name === "live" ) {
+// // bind live handler
+// jQuery( this.context ).bind( liveConvert( type, this.selector ), {
+// data: data, selector: this.selector, live: type
+// }, fn );
+//
+// } else {
+// // unbind live handler
+// jQuery( this.context ).unbind( liveConvert( type, this.selector ), fn ? { guid: fn.guid + this.selector + type } : null );
+// }
+// }
+//
+// return this;
+// }
+// });
+
+jQuery.fn[ "live" ] = function( types, data, fn ) {
+ ///
+ /// Fügen Sie für alle Elemente, die mit dem aktuellen Selektor übereinstimmen, einen Handler an das Ereignis an, jetzt oder
+ /// später.
+ ///
+ ///
+ /// Eine Zeichenfolge, die einen JavaScript-Ereignistyp enthält, z.B. "click" oder "keydown".
+ ///
+ ///
+ /// Eine Datenkarte, die an den Ereignishandler übergeben wird.
+ ///
+ ///
+ /// Eine Funktion, die bei der Auslösung des Ereignisses ausgeführt wird.
+ ///
+ ///
+
+ var type, i = 0;
+
+ if ( jQuery.isFunction( data ) ) {
+ fn = data;
+ data = undefined;
+ }
+
+ types = (types || "").split( /\s+/ );
+
+ while ( (type = types[ i++ ]) != null ) {
+ type = type === "focus" ? "focusin" : // focus --> focusin
+ type === "blur" ? "focusout" : // blur --> focusout
+ type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support
+ type;
+
+ if ( "live" === "live" ) {
+ // bind live handler
+ jQuery( this.context ).bind( liveConvert( type, this.selector ), {
+ data: data, selector: this.selector, live: type
+ }, fn );
+
+ } else {
+ // unbind live handler
+ jQuery( this.context ).unbind( liveConvert( type, this.selector ), fn ? { guid: fn.guid + this.selector + type } : null );
+ }
+ }
+
+ return this;
+}
+
+jQuery.fn[ "die" ] = function( types, data, fn ) {
+ ///
+ /// Entfernen Sie alle zuvor angefügten Ereignishandler mithilfe von ".live()" aus den Elementen.
+ ///
+ ///
+ /// Eine Zeichenfolge, die einen JavaScript-Ereignistyp enthält, z.B. "click" oder "keydown".
+ ///
+ ///
+ /// Die Funktion, die nicht mehr ausgeführt werden soll.
+ ///
+ ///
+
+ var type, i = 0;
+
+ if ( jQuery.isFunction( data ) ) {
+ fn = data;
+ data = undefined;
+ }
+
+ types = (types || "").split( /\s+/ );
+
+ while ( (type = types[ i++ ]) != null ) {
+ type = type === "focus" ? "focusin" : // focus --> focusin
+ type === "blur" ? "focusout" : // blur --> focusout
+ type === "hover" ? types.push("mouseleave") && "mouseenter" : // hover support
+ type;
+
+ if ( "die" === "live" ) {
+ // bind live handler
+ jQuery( this.context ).bind( liveConvert( type, this.selector ), {
+ data: data, selector: this.selector, live: type
+ }, fn );
+
+ } else {
+ // unbind live handler
+ jQuery( this.context ).unbind( liveConvert( type, this.selector ), fn ? { guid: fn.guid + this.selector + type } : null );
+ }
+ }
+
+ return this;
+}
+
+function liveHandler( event ) {
+ var stop, elems = [], selectors = [], args = arguments,
+ related, match, fn, elem, j, i, l, data,
+ live = jQuery.extend({}, jQuery.data( this, "events" ).live);
+
+ // Make sure we avoid non-left-click bubbling in Firefox (#3861)
+ if ( event.button && event.type === "click" ) {
+ return;
+ }
+
+ for ( j in live ) {
+ fn = live[j];
+ if ( fn.live === event.type ||
+ fn.altLive && jQuery.inArray(event.type, fn.altLive) > -1 ) {
+
+ data = fn.data;
+ if ( !(data.beforeFilter && data.beforeFilter[event.type] &&
+ !data.beforeFilter[event.type](event)) ) {
+ selectors.push( fn.selector );
+ }
+ } else {
+ delete live[j];
+ }
+ }
+
+ match = jQuery( event.target ).closest( selectors, event.currentTarget );
+
+ for ( i = 0, l = match.length; i < l; i++ ) {
+ for ( j in live ) {
+ fn = live[j];
+ elem = match[i].elem;
+ related = null;
+
+ if ( match[i].selector === fn.selector ) {
+ // Those two events require additional checking
+ if ( fn.live === "mouseenter" || fn.live === "mouseleave" ) {
+ related = jQuery( event.relatedTarget ).closest( fn.selector )[0];
+ }
+
+ if ( !related || related !== elem ) {
+ elems.push({ elem: elem, fn: fn });
+ }
+ }
+ }
+ }
+
+ for ( i = 0, l = elems.length; i < l; i++ ) {
+ match = elems[i];
+ event.currentTarget = match.elem;
+ event.data = match.fn.data;
+ if ( match.fn.apply( match.elem, args ) === false ) {
+ stop = false;
+ break;
+ }
+ }
+
+ return stop;
+}
+
+function liveConvert( type, selector ) {
+ return "live." + (type ? type + "." : "") + selector.replace(/\./g, "`").replace(/ /g, "&");
+}
+
+// jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
+// "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
+// "change select submit keydown keypress keyup error").split(" "), function( i, name ) {
+//
+// // Handle event binding
+// jQuery.fn[ name ] = function( fn ) {
+// return fn ? this.bind( name, fn ) : this.trigger( name );
+// };
+//
+// if ( jQuery.attrFn ) {
+// jQuery.attrFn[ name ] = true;
+// }
+// });
+
+jQuery.fn[ "blur" ] = function( fn ) {
+ ///
+ /// 1: blur() - Löst das blur-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: blur(fn) - Bindet eine Funktion an das blur-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "blur", fn ) : this.trigger( "blur" );
+};
+
+jQuery.fn[ "focus" ] = function( fn ) {
+ ///
+ /// 1: focus() - Löst das focus-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: focus(fn) - Bindet eine Funktion an das focus-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "focus", fn ) : this.trigger( "focus" );
+};
+
+jQuery.fn[ "focusin" ] = function( fn ) {
+ ///
+ /// Binden Sie einen Ereignishandler an das JavaScript-Ereignis "focusin".
+ ///
+ ///
+ /// Eine Funktion, die bei jeder Auslösung des Ereignisses ausgeführt wird.
+ ///
+ ///
+
+ return fn ? this.bind( "focusin", fn ) : this.trigger( "focusin" );
+};
+
+jQuery.fn[ "focusout" ] = function( fn ) {
+ ///
+ /// Binden Sie einen Ereignishandler an das JavaScript-Ereignis "focusout".
+ ///
+ ///
+ /// Eine Funktion, die bei jeder Auslösung des Ereignisses ausgeführt wird.
+ ///
+ ///
+
+ return fn ? this.bind( "focusout", fn ) : this.trigger( "focusout" );
+};
+
+jQuery.fn[ "load" ] = function( fn ) {
+ ///
+ /// 1: load() - Löst das load-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: load(fn) - Bindet eine Funktion an das load-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "load", fn ) : this.trigger( "load" );
+};
+
+jQuery.fn[ "resize" ] = function( fn ) {
+ ///
+ /// 1: resize() - Löst das resize-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: resize(fn) - Bindet eine Funktion an das resize-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "resize", fn ) : this.trigger( "resize" );
+};
+
+jQuery.fn[ "scroll" ] = function( fn ) {
+ ///
+ /// 1: scroll() - Löst das scroll-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: scroll(fn) - Bindet eine Funktion an das scroll-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "scroll", fn ) : this.trigger( "scroll" );
+};
+
+jQuery.fn[ "unload" ] = function( fn ) {
+ ///
+ /// 1: unload() - Löst das unload-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: unload(fn) - Bindet eine Funktion an das unload-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "unload", fn ) : this.trigger( "unload" );
+};
+
+jQuery.fn[ "click" ] = function( fn ) {
+ ///
+ /// 1: click() - Löst das click-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: click(fn) - Bindet eine Funktion an das click-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "click", fn ) : this.trigger( "click" );
+};
+
+jQuery.fn[ "dblclick" ] = function( fn ) {
+ ///
+ /// 1: dblclick() - Löst das dblclick-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: dblclick(fn) - Bindet eine Funktion an das dblclick-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "dblclick", fn ) : this.trigger( "dblclick" );
+};
+
+jQuery.fn[ "mousedown" ] = function( fn ) {
+ ///
+ /// Bindet eine Funktion an das mousedown-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "mousedown", fn ) : this.trigger( "mousedown" );
+};
+
+jQuery.fn[ "mouseup" ] = function( fn ) {
+ ///
+ /// Bindet eine Funktion an das mouseup-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "mouseup", fn ) : this.trigger( "mouseup" );
+};
+
+jQuery.fn[ "mousemove" ] = function( fn ) {
+ ///
+ /// Bindet eine Funktion an das mousemove-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "mousemove", fn ) : this.trigger( "mousemove" );
+};
+
+jQuery.fn[ "mouseover" ] = function( fn ) {
+ ///
+ /// Bindet eine Funktion an das mouseover-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "mouseover", fn ) : this.trigger( "mouseover" );
+};
+
+jQuery.fn[ "mouseout" ] = function( fn ) {
+ ///
+ /// Bindet eine Funktion an das mouseout-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "mouseout", fn ) : this.trigger( "mouseout" );
+};
+
+jQuery.fn[ "mouseenter" ] = function( fn ) {
+ ///
+ /// Bindet eine Funktion an das mouseenter-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "mouseenter", fn ) : this.trigger( "mouseenter" );
+};
+
+jQuery.fn[ "mouseleave" ] = function( fn ) {
+ ///
+ /// Bindet eine Funktion an das mouseleave-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "mouseleave", fn ) : this.trigger( "mouseleave" );
+};
+
+jQuery.fn[ "change" ] = function( fn ) {
+ ///
+ /// 1: change() - Löst das change-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: change(fn) - Bindet eine Funktion an das change-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "change", fn ) : this.trigger( "change" );
+};
+
+jQuery.fn[ "select" ] = function( fn ) {
+ ///
+ /// 1: select() - Löst das select-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: select(fn) - Bindet eine Funktion an das select-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "select", fn ) : this.trigger( "select" );
+};
+
+jQuery.fn[ "submit" ] = function( fn ) {
+ ///
+ /// 1: submit() - Löst das submit-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: submit(fn) - Bindet eine Funktion an das submit-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "submit", fn ) : this.trigger( "submit" );
+};
+
+jQuery.fn[ "keydown" ] = function( fn ) {
+ ///
+ /// 1: keydown() - Löst das keydown-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: keydown(fn) - Bindet eine Funktion an das keydown-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "keydown", fn ) : this.trigger( "keydown" );
+};
+
+jQuery.fn[ "keypress" ] = function( fn ) {
+ ///
+ /// 1: keypress() - Löst das keypress-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: keypress(fn) - Bindet eine Funktion an das keypress-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "keypress", fn ) : this.trigger( "keypress" );
+};
+
+jQuery.fn[ "keyup" ] = function( fn ) {
+ ///
+ /// 1: keyup() - Löst das keyup-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: keyup(fn) - Bindet eine Funktion an das keyup-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "keyup", fn ) : this.trigger( "keyup" );
+};
+
+jQuery.fn[ "error" ] = function( fn ) {
+ ///
+ /// 1: error() - Löst das error-Ereignis für jedes übereinstimmende Element aus.
+ /// 2: error(fn) - Bindet eine Funktion an das error-Ereignis für jedes übereinstimmende Element.
+ ///
+ ///
Die Funktion, die ausgeführt werden soll.
+ ///
+
+ return fn ? this.bind( "error", fn ) : this.trigger( "error" );
+};
+
+// Prevent memory leaks in IE
+// Window isn't included so as not to unbind existing unload events
+// More info:
+// - http://isaacschlueter.com/2006/10/msie-memory-leaks/
+if ( window.attachEvent && !window.addEventListener ) {
+ window.attachEvent("onunload", function() {
+ for ( var id in jQuery.cache ) {
+ if ( jQuery.cache[ id ].handle ) {
+ // Try/Catch is to handle iframes being unloaded, see #4280
+ try {
+ jQuery.event.remove( jQuery.cache[ id ].handle.elem );
+ } catch(e) {}
+ }
+ }
+ });
+}
+/*!
+ * Sizzle CSS Selector Engine - v1.0
+ * Copyright 2009, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){
+
+var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
+ done = 0,
+ toString = Object.prototype.toString,
+ hasDuplicate = false,
+ baseHasDuplicate = true;
+
+// Here we check if the JavaScript engine is using some sort of
+// optimization where it does not always call our comparision
+// function. If that is the case, discard the hasDuplicate value.
+// Thus far that includes Google Chrome.
+[0, 0].sort(function(){
+ baseHasDuplicate = false;
+ return 0;
+});
+
+var Sizzle = function(selector, context, results, seed) {
+ results = results || [];
+ var origContext = context = context || document;
+
+ if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
+ return [];
+ }
+
+ if ( !selector || typeof selector !== "string" ) {
+ return results;
+ }
+
+ var parts = [], m, set, checkSet, extra, prune = true, contextXML = isXML(context),
+ soFar = selector;
+
+ // Reset the position of the chunker regexp (start from head)
+ while ( (chunker.exec(""), m = chunker.exec(soFar)) !== null ) {
+ soFar = m[3];
+
+ parts.push( m[1] );
+
+ if ( m[2] ) {
+ extra = m[3];
+ break;
+ }
+ }
+
+ if ( parts.length > 1 && origPOS.exec( selector ) ) {
+ if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
+ set = posProcess( parts[0] + parts[1], context );
+ } else {
+ set = Expr.relative[ parts[0] ] ?
+ [ context ] :
+ Sizzle( parts.shift(), context );
+
+ while ( parts.length ) {
+ selector = parts.shift();
+
+ if ( Expr.relative[ selector ] ) {
+ selector += parts.shift();
+ }
+
+ set = posProcess( selector, set );
+ }
+ }
+ } else {
+ // Take a shortcut and set the context if the root selector is an ID
+ // (but not if it'll be faster if the inner selector is an ID)
+ if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
+ Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
+ var ret = Sizzle.find( parts.shift(), context, contextXML );
+ context = ret.expr ? Sizzle.filter( ret.expr, ret.set )[0] : ret.set[0];
+ }
+
+ if ( context ) {
+ var ret = seed ?
+ { expr: parts.pop(), set: makeArray(seed) } :
+ Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
+ set = ret.expr ? Sizzle.filter( ret.expr, ret.set ) : ret.set;
+
+ if ( parts.length > 0 ) {
+ checkSet = makeArray(set);
+ } else {
+ prune = false;
+ }
+
+ while ( parts.length ) {
+ var cur = parts.pop(), pop = cur;
+
+ if ( !Expr.relative[ cur ] ) {
+ cur = "";
+ } else {
+ pop = parts.pop();
+ }
+
+ if ( pop == null ) {
+ pop = context;
+ }
+
+ Expr.relative[ cur ]( checkSet, pop, contextXML );
+ }
+ } else {
+ checkSet = parts = [];
+ }
+ }
+
+ if ( !checkSet ) {
+ checkSet = set;
+ }
+
+ if ( !checkSet ) {
+ Sizzle.error( cur || selector );
+ }
+
+ if ( toString.call(checkSet) === "[object Array]" ) {
+ if ( !prune ) {
+ results.push.apply( results, checkSet );
+ } else if ( context && context.nodeType === 1 ) {
+ for ( var i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && contains(context, checkSet[i])) ) {
+ results.push( set[i] );
+ }
+ }
+ } else {
+ for ( var i = 0; checkSet[i] != null; i++ ) {
+ if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
+ results.push( set[i] );
+ }
+ }
+ }
+ } else {
+ makeArray( checkSet, results );
+ }
+
+ if ( extra ) {
+ Sizzle( extra, origContext, results, seed );
+ Sizzle.uniqueSort( results );
+ }
+
+ return results;
+};
+
+Sizzle.uniqueSort = function(results){
+ ///
+ /// Entfernt alle doppelten Elemente aus einem Elementarray.
+ ///
+ ///
Das zu übersetzende Array
+ ///
Das Array nach der Übersetzung.
+
+ if ( sortOrder ) {
+ hasDuplicate = baseHasDuplicate;
+ results.sort(sortOrder);
+
+ if ( hasDuplicate ) {
+ for ( var i = 1; i < results.length; i++ ) {
+ if ( results[i] === results[i-1] ) {
+ results.splice(i--, 1);
+ }
+ }
+ }
+ }
+
+ return results;
+};
+
+Sizzle.matches = function(expr, set){
+ return Sizzle(expr, null, null, set);
+};
+
+Sizzle.find = function(expr, context, isXML){
+ var set, match;
+
+ if ( !expr ) {
+ return [];
+ }
+
+ for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
+ var type = Expr.order[i], match;
+
+ if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
+ var left = match[1];
+ match.splice(1,1);
+
+ if ( left.substr( left.length - 1 ) !== "\\" ) {
+ match[1] = (match[1] || "").replace(/\\/g, "");
+ set = Expr.find[ type ]( match, context, isXML );
+ if ( set != null ) {
+ expr = expr.replace( Expr.match[ type ], "" );
+ break;
+ }
+ }
+ }
+ }
+
+ if ( !set ) {
+ set = context.getElementsByTagName("*");
+ }
+
+ return {set: set, expr: expr};
+};
+
+Sizzle.filter = function(expr, set, inplace, not){
+ var old = expr, result = [], curLoop = set, match, anyFound,
+ isXMLFilter = set && set[0] && isXML(set[0]);
+
+ while ( expr && set.length ) {
+ for ( var type in Expr.filter ) {
+ if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
+ var filter = Expr.filter[ type ], found, item, left = match[1];
+ anyFound = false;
+
+ match.splice(1,1);
+
+ if ( left.substr( left.length - 1 ) === "\\" ) {
+ continue;
+ }
+
+ if ( curLoop === result ) {
+ result = [];
+ }
+
+ if ( Expr.preFilter[ type ] ) {
+ match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
+
+ if ( !match ) {
+ anyFound = found = true;
+ } else if ( match === true ) {
+ continue;
+ }
+ }
+
+ if ( match ) {
+ for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
+ if ( item ) {
+ found = filter( item, match, i, curLoop );
+ var pass = not ^ !!found;
+
+ if ( inplace && found != null ) {
+ if ( pass ) {
+ anyFound = true;
+ } else {
+ curLoop[i] = false;
+ }
+ } else if ( pass ) {
+ result.push( item );
+ anyFound = true;
+ }
+ }
+ }
+ }
+
+ if ( found !== undefined ) {
+ if ( !inplace ) {
+ curLoop = result;
+ }
+
+ expr = expr.replace( Expr.match[ type ], "" );
+
+ if ( !anyFound ) {
+ return [];
+ }
+
+ break;
+ }
+ }
+ }
+
+ // Improper expression
+ if ( expr === old ) {
+ if ( anyFound == null ) {
+ Sizzle.error( expr );
+ } else {
+ break;
+ }
+ }
+
+ old = expr;
+ }
+
+ return curLoop;
+};
+
+Sizzle.error = function( msg ) {
+ throw "Syntax error, unrecognized expression: " + msg;
+};
+
+var Expr = Sizzle.selectors = {
+ order: [ "ID", "NAME", "TAG" ],
+ match: {
+ ID: /#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
+ CLASS: /\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
+ NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,
+ ATTR: /\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,
+ TAG: /^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,
+ CHILD: /:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,
+ POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,
+ PSEUDO: /:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
+ },
+ leftMatch: {},
+ attrMap: {
+ "class": "className",
+ "for": "htmlFor"
+ },
+ attrHandle: {
+ href: function(elem){
+ return elem.getAttribute("href");
+ }
+ },
+ relative: {
+ "+": function(checkSet, part){
+ var isPartStr = typeof part === "string",
+ isTag = isPartStr && !/\W/.test(part),
+ isPartStrNotTag = isPartStr && !isTag;
+
+ if ( isTag ) {
+ part = part.toLowerCase();
+ }
+
+ for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
+ if ( (elem = checkSet[i]) ) {
+ while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
+
+ checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
+ elem || false :
+ elem === part;
+ }
+ }
+
+ if ( isPartStrNotTag ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ },
+ ">": function(checkSet, part){
+ var isPartStr = typeof part === "string";
+
+ if ( isPartStr && !/\W/.test(part) ) {
+ part = part.toLowerCase();
+
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ var parent = elem.parentNode;
+ checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
+ }
+ }
+ } else {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ checkSet[i] = isPartStr ?
+ elem.parentNode :
+ elem.parentNode === part;
+ }
+ }
+
+ if ( isPartStr ) {
+ Sizzle.filter( part, checkSet, true );
+ }
+ }
+ },
+ "": function(checkSet, part, isXML){
+ var doneName = done++, checkFn = dirCheck;
+
+ if ( typeof part === "string" && !/\W/.test(part) ) {
+ var nodeCheck = part = part.toLowerCase();
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("parentNode", part, doneName, checkSet, nodeCheck, isXML);
+ },
+ "~": function(checkSet, part, isXML){
+ var doneName = done++, checkFn = dirCheck;
+
+ if ( typeof part === "string" && !/\W/.test(part) ) {
+ var nodeCheck = part = part.toLowerCase();
+ checkFn = dirNodeCheck;
+ }
+
+ checkFn("previousSibling", part, doneName, checkSet, nodeCheck, isXML);
+ }
+ },
+ find: {
+ ID: function(match, context, isXML){
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ return m ? [m] : [];
+ }
+ },
+ NAME: function(match, context){
+ if ( typeof context.getElementsByName !== "undefined" ) {
+ var ret = [], results = context.getElementsByName(match[1]);
+
+ for ( var i = 0, l = results.length; i < l; i++ ) {
+ if ( results[i].getAttribute("name") === match[1] ) {
+ ret.push( results[i] );
+ }
+ }
+
+ return ret.length === 0 ? null : ret;
+ }
+ },
+ TAG: function(match, context){
+ return context.getElementsByTagName(match[1]);
+ }
+ },
+ preFilter: {
+ CLASS: function(match, curLoop, inplace, result, not, isXML){
+ match = " " + match[1].replace(/\\/g, "") + " ";
+
+ if ( isXML ) {
+ return match;
+ }
+
+ for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
+ if ( elem ) {
+ if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n]/g, " ").indexOf(match) >= 0) ) {
+ if ( !inplace ) {
+ result.push( elem );
+ }
+ } else if ( inplace ) {
+ curLoop[i] = false;
+ }
+ }
+ }
+
+ return false;
+ },
+ ID: function(match){
+ return match[1].replace(/\\/g, "");
+ },
+ TAG: function(match, curLoop){
+ return match[1].toLowerCase();
+ },
+ CHILD: function(match){
+ if ( match[1] === "nth" ) {
+ // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
+ var test = /(-?)(\d*)n((?:\+|-)?\d*)/.exec(
+ match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
+ !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
+
+ // calculate the numbers (first)n+(last) including if they are negative
+ match[2] = (test[1] + (test[2] || 1)) - 0;
+ match[3] = test[3] - 0;
+ }
+
+ // TODO: Move to normal caching system
+ match[0] = done++;
+
+ return match;
+ },
+ ATTR: function(match, curLoop, inplace, result, not, isXML){
+ var name = match[1].replace(/\\/g, "");
+
+ if ( !isXML && Expr.attrMap[name] ) {
+ match[1] = Expr.attrMap[name];
+ }
+
+ if ( match[2] === "~=" ) {
+ match[4] = " " + match[4] + " ";
+ }
+
+ return match;
+ },
+ PSEUDO: function(match, curLoop, inplace, result, not){
+ if ( match[1] === "not" ) {
+ // If we're dealing with a complex expression, or a simple one
+ if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
+ match[3] = Sizzle(match[3], null, null, curLoop);
+ } else {
+ var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
+ if ( !inplace ) {
+ result.push.apply( result, ret );
+ }
+ return false;
+ }
+ } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
+ return true;
+ }
+
+ return match;
+ },
+ POS: function(match){
+ match.unshift( true );
+ return match;
+ }
+ },
+ filters: {
+ enabled: function(elem){
+ return elem.disabled === false && elem.type !== "hidden";
+ },
+ disabled: function(elem){
+ return elem.disabled === true;
+ },
+ checked: function(elem){
+ return elem.checked === true;
+ },
+ selected: function(elem){
+ // Accessing this property makes selected-by-default
+ // options in Safari work properly
+ elem.parentNode.selectedIndex;
+ return elem.selected === true;
+ },
+ parent: function(elem){
+ return !!elem.firstChild;
+ },
+ empty: function(elem){
+ return !elem.firstChild;
+ },
+ has: function(elem, i, match){
+ ///
+ /// Nur intern verwendet; hasClass('class') verwenden
+ ///
+ ///
+
+ return !!Sizzle( match[3], elem ).length;
+ },
+ header: function(elem){
+ return /h\d/i.test( elem.nodeName );
+ },
+ text: function(elem){
+ return "text" === elem.type;
+ },
+ radio: function(elem){
+ return "radio" === elem.type;
+ },
+ checkbox: function(elem){
+ return "checkbox" === elem.type;
+ },
+ file: function(elem){
+ return "file" === elem.type;
+ },
+ password: function(elem){
+ return "password" === elem.type;
+ },
+ submit: function(elem){
+ return "submit" === elem.type;
+ },
+ image: function(elem){
+ return "image" === elem.type;
+ },
+ reset: function(elem){
+ return "reset" === elem.type;
+ },
+ button: function(elem){
+ return "button" === elem.type || elem.nodeName.toLowerCase() === "button";
+ },
+ input: function(elem){
+ return /input|select|textarea|button/i.test(elem.nodeName);
+ }
+ },
+ setFilters: {
+ first: function(elem, i){
+ return i === 0;
+ },
+ last: function(elem, i, match, array){
+ return i === array.length - 1;
+ },
+ even: function(elem, i){
+ return i % 2 === 0;
+ },
+ odd: function(elem, i){
+ return i % 2 === 1;
+ },
+ lt: function(elem, i, match){
+ return i < match[3] - 0;
+ },
+ gt: function(elem, i, match){
+ return i > match[3] - 0;
+ },
+ nth: function(elem, i, match){
+ return match[3] - 0 === i;
+ },
+ eq: function(elem, i, match){
+ return match[3] - 0 === i;
+ }
+ },
+ filter: {
+ PSEUDO: function(elem, match, i, array){
+ var name = match[1], filter = Expr.filters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ } else if ( name === "contains" ) {
+ return (elem.textContent || elem.innerText || getText([ elem ]) || "").indexOf(match[3]) >= 0;
+ } else if ( name === "not" ) {
+ var not = match[3];
+
+ for ( var i = 0, l = not.length; i < l; i++ ) {
+ if ( not[i] === elem ) {
+ return false;
+ }
+ }
+
+ return true;
+ } else {
+ Sizzle.error( "Syntax error, unrecognized expression: " + name );
+ }
+ },
+ CHILD: function(elem, match){
+ var type = match[1], node = elem;
+ switch (type) {
+ case 'only':
+ case 'first':
+ while ( (node = node.previousSibling) ) {
+ if ( node.nodeType === 1 ) {
+ return false;
+ }
+ }
+ if ( type === "first" ) {
+ return true;
+ }
+ node = elem;
+ case 'last':
+ while ( (node = node.nextSibling) ) {
+ if ( node.nodeType === 1 ) {
+ return false;
+ }
+ }
+ return true;
+ case 'nth':
+ var first = match[2], last = match[3];
+
+ if ( first === 1 && last === 0 ) {
+ return true;
+ }
+
+ var doneName = match[0],
+ parent = elem.parentNode;
+
+ if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
+ var count = 0;
+ for ( node = parent.firstChild; node; node = node.nextSibling ) {
+ if ( node.nodeType === 1 ) {
+ node.nodeIndex = ++count;
+ }
+ }
+ parent.sizcache = doneName;
+ }
+
+ var diff = elem.nodeIndex - last;
+ if ( first === 0 ) {
+ return diff === 0;
+ } else {
+ return ( diff % first === 0 && diff / first >= 0 );
+ }
+ }
+ },
+ ID: function(elem, match){
+ return elem.nodeType === 1 && elem.getAttribute("id") === match;
+ },
+ TAG: function(elem, match){
+ return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
+ },
+ CLASS: function(elem, match){
+ return (" " + (elem.className || elem.getAttribute("class")) + " ")
+ .indexOf( match ) > -1;
+ },
+ ATTR: function(elem, match){
+ var name = match[1],
+ result = Expr.attrHandle[ name ] ?
+ Expr.attrHandle[ name ]( elem ) :
+ elem[ name ] != null ?
+ elem[ name ] :
+ elem.getAttribute( name ),
+ value = result + "",
+ type = match[2],
+ check = match[4];
+
+ return result == null ?
+ type === "!=" :
+ type === "=" ?
+ value === check :
+ type === "*=" ?
+ value.indexOf(check) >= 0 :
+ type === "~=" ?
+ (" " + value + " ").indexOf(check) >= 0 :
+ !check ?
+ value && result !== false :
+ type === "!=" ?
+ value !== check :
+ type === "^=" ?
+ value.indexOf(check) === 0 :
+ type === "$=" ?
+ value.substr(value.length - check.length) === check :
+ type === "|=" ?
+ value === check || value.substr(0, check.length + 1) === check + "-" :
+ false;
+ },
+ POS: function(elem, match, i, array){
+ var name = match[2], filter = Expr.setFilters[ name ];
+
+ if ( filter ) {
+ return filter( elem, i, match, array );
+ }
+ }
+ }
+};
+
+var origPOS = Expr.match.POS;
+
+for ( var type in Expr.match ) {
+ Expr.match[ type ] = new RegExp( Expr.match[ type ].source + /(?![^\[]*\])(?![^\(]*\))/.source );
+ Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, function(all, num){
+ return "\\" + (num - 0 + 1);
+ }));
+}
+
+var makeArray = function(array, results) {
+ array = Array.prototype.slice.call( array, 0 );
+
+ if ( results ) {
+ results.push.apply( results, array );
+ return results;
+ }
+
+ return array;
+};
+
+// Perform a simple check to determine if the browser is capable of
+// converting a NodeList to an array using builtin methods.
+try {
+ Array.prototype.slice.call( document.documentElement.childNodes, 0 );
+
+// Provide a fallback method if it does not work
+} catch(e){
+ makeArray = function(array, results) {
+ var ret = results || [];
+
+ if ( toString.call(array) === "[object Array]" ) {
+ Array.prototype.push.apply( ret, array );
+ } else {
+ if ( typeof array.length === "number" ) {
+ for ( var i = 0, l = array.length; i < l; i++ ) {
+ ret.push( array[i] );
+ }
+ } else {
+ for ( var i = 0; array[i]; i++ ) {
+ ret.push( array[i] );
+ }
+ }
+ }
+
+ return ret;
+ };
+}
+
+var sortOrder;
+
+if ( document.documentElement.compareDocumentPosition ) {
+ sortOrder = function( a, b ) {
+ if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
+ if ( a == b ) {
+ hasDuplicate = true;
+ }
+ return a.compareDocumentPosition ? -1 : 1;
+ }
+
+ var ret = a.compareDocumentPosition(b) & 4 ? -1 : a === b ? 0 : 1;
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+} else if ( "sourceIndex" in document.documentElement ) {
+ sortOrder = function( a, b ) {
+ if ( !a.sourceIndex || !b.sourceIndex ) {
+ if ( a == b ) {
+ hasDuplicate = true;
+ }
+ return a.sourceIndex ? -1 : 1;
+ }
+
+ var ret = a.sourceIndex - b.sourceIndex;
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+} else if ( document.createRange ) {
+ sortOrder = function( a, b ) {
+ if ( !a.ownerDocument || !b.ownerDocument ) {
+ if ( a == b ) {
+ hasDuplicate = true;
+ }
+ return a.ownerDocument ? -1 : 1;
+ }
+
+ var aRange = a.ownerDocument.createRange(), bRange = b.ownerDocument.createRange();
+ aRange.setStart(a, 0);
+ aRange.setEnd(a, 0);
+ bRange.setStart(b, 0);
+ bRange.setEnd(b, 0);
+ var ret = aRange.compareBoundaryPoints(Range.START_TO_END, bRange);
+ if ( ret === 0 ) {
+ hasDuplicate = true;
+ }
+ return ret;
+ };
+}
+
+// Utility function for retreiving the text value of an array of DOM nodes
+function getText( elems ) {
+ var ret = "", elem;
+
+ for ( var i = 0; elems[i]; i++ ) {
+ elem = elems[i];
+
+ // Get the text from text nodes and CDATA nodes
+ if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
+ ret += elem.nodeValue;
+
+ // Traverse everything else, except comment nodes
+ } else if ( elem.nodeType !== 8 ) {
+ ret += getText( elem.childNodes );
+ }
+ }
+
+ return ret;
+}
+
+// [vsdoc] The following function has been modified for IntelliSense.
+// Check to see if the browser returns elements by name when
+// querying by getElementById (and provide a workaround)
+(function(){
+ // We're going to inject a fake input element with a specified name
+ // var form = document.createElement("div"),
+ // id = "script" + (new Date).getTime();
+ // form.innerHTML = "
";
+
+ // // Inject it into the root element, check its status, and remove it quickly
+ // var root = document.documentElement;
+ // root.insertBefore( form, root.firstChild );
+
+ // The workaround has to do additional checks after a getElementById
+ // Which slows things down for other browsers (hence the branching)
+ // if ( document.getElementById( id ) ) {
+ Expr.find.ID = function(match, context, isXML){
+ if ( typeof context.getElementById !== "undefined" && !isXML ) {
+ var m = context.getElementById(match[1]);
+ return m ? m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ? [m] : undefined : [];
+ }
+ };
+
+ Expr.filter.ID = function(elem, match){
+ var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
+ return elem.nodeType === 1 && node && node.nodeValue === match;
+ };
+ // }
+
+ // root.removeChild( form );
+ root = form = null; // release memory in IE
+})();
+
+// [vsdoc] The following function has been modified for IntelliSense.
+(function(){
+ // Check to see if the browser returns only elements
+ // when doing getElementsByTagName("*")
+
+ // Create a fake element
+ // var div = document.createElement("div");
+ // div.appendChild( document.createComment("") );
+
+ // Make sure no comments are found
+ // if ( div.getElementsByTagName("*").length > 0 ) {
+ Expr.find.TAG = function(match, context){
+ var results = context.getElementsByTagName(match[1]);
+
+ // Filter out possible comments
+ if ( match[1] === "*" ) {
+ var tmp = [];
+
+ for ( var i = 0; results[i]; i++ ) {
+ if ( results[i].nodeType === 1 ) {
+ tmp.push( results[i] );
+ }
+ }
+
+ results = tmp;
+ }
+
+ return results;
+ };
+ // }
+
+ // Check to see if an attribute returns normalized href attributes
+ // div.innerHTML = "
";
+ // if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
+ // div.firstChild.getAttribute("href") !== "#" ) {
+ Expr.attrHandle.href = function(elem){
+ return elem.getAttribute("href", 2);
+ };
+ // }
+
+ div = null; // release memory in IE
+})();
+
+if ( document.querySelectorAll ) {
+ (function(){
+ var oldSizzle = Sizzle, div = document.createElement("div");
+ div.innerHTML = "
";
+
+ // Safari can't handle uppercase or unicode characters when
+ // in quirks mode.
+ if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
+ return;
+ }
+
+ Sizzle = function(query, context, extra, seed){
+ context = context || document;
+
+ // Only use querySelectorAll on non-XML documents
+ // (ID selectors don't work in non-HTML documents)
+ if ( !seed && context.nodeType === 9 && !isXML(context) ) {
+ try {
+ return makeArray( context.querySelectorAll(query), extra );
+ } catch(e){}
+ }
+
+ return oldSizzle(query, context, extra, seed);
+ };
+
+ for ( var prop in oldSizzle ) {
+ Sizzle[ prop ] = oldSizzle[ prop ];
+ }
+
+ div = null; // release memory in IE
+ })();
+}
+
+(function(){
+ var div = document.createElement("div");
+
+ div.innerHTML = "
";
+
+ // Opera can't find a second classname (in 9.6)
+ // Also, make sure that getElementsByClassName actually exists
+ if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
+ return;
+ }
+
+ // Safari caches class attributes, doesn't catch changes (in 3.2)
+ div.lastChild.className = "e";
+
+ if ( div.getElementsByClassName("e").length === 1 ) {
+ return;
+ }
+
+ Expr.order.splice(1, 0, "CLASS");
+ Expr.find.CLASS = function(match, context, isXML) {
+ if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
+ return context.getElementsByClassName(match[1]);
+ }
+ };
+
+ div = null; // release memory in IE
+})();
+
+function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ elem = elem[dir];
+ var match = false;
+
+ while ( elem ) {
+ if ( elem.sizcache === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 && !isXML ){
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+
+ if ( elem.nodeName.toLowerCase() === cur ) {
+ match = elem;
+ break;
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
+ for ( var i = 0, l = checkSet.length; i < l; i++ ) {
+ var elem = checkSet[i];
+ if ( elem ) {
+ elem = elem[dir];
+ var match = false;
+
+ while ( elem ) {
+ if ( elem.sizcache === doneName ) {
+ match = checkSet[elem.sizset];
+ break;
+ }
+
+ if ( elem.nodeType === 1 ) {
+ if ( !isXML ) {
+ elem.sizcache = doneName;
+ elem.sizset = i;
+ }
+ if ( typeof cur !== "string" ) {
+ if ( elem === cur ) {
+ match = true;
+ break;
+ }
+
+ } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
+ match = elem;
+ break;
+ }
+ }
+
+ elem = elem[dir];
+ }
+
+ checkSet[i] = match;
+ }
+ }
+}
+
+var contains = document.compareDocumentPosition ? function(a, b){
+ ///
+ /// Überprüfen Sie, ob sich ein DOM-Knoten innerhalb eines anderen DOM-Knotens befindet.
+ ///
+ ///
+ /// Das DOM-Element, das das andere Element enthalten kann.
+ ///
+ ///
+ /// Der DOM-Knoten, der möglicherweise in dem anderen Element enthalten ist.
+ ///
+ ///
+
+ return a.compareDocumentPosition(b) & 16;
+} : function(a, b){
+ ///
+ /// Überprüfen Sie, ob sich ein DOM-Knoten innerhalb eines anderen DOM-Knotens befindet.
+ ///
+ ///
+ /// Das DOM-Element, das das andere Element enthalten kann.
+ ///
+ ///
+ /// Der DOM-Knoten, der möglicherweise in dem anderen Element enthalten ist.
+ ///
+ ///
+
+ return a !== b && (a.contains ? a.contains(b) : true);
+};
+
+var isXML = function(elem){
+ ///
+ /// Bestimmt, ob es sich beim übergebenen Parameter um ein XML-Dokument handelt.
+ ///
+ ///
Das zu testende Objekt
+ ///
"True", wenn sich der Parameter in einem XML-Dokument befindet, andernfalls "false".
+
+ // documentElement is verified for cases where it doesn't yet exist
+ // (such as loading iframes in IE - #4833)
+ var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+var posProcess = function(selector, context){
+ var tmpSet = [], later = "", match,
+ root = context.nodeType ? [context] : context;
+
+ // Position selectors must be done after the filter
+ // And so must :not(positional) so we move all PSEUDOs to the end
+ while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
+ later += match[0];
+ selector = selector.replace( Expr.match.PSEUDO, "" );
+ }
+
+ selector = Expr.relative[selector] ? selector + "*" : selector;
+
+ for ( var i = 0, l = root.length; i < l; i++ ) {
+ Sizzle( selector, root[i], tmpSet );
+ }
+
+ return Sizzle.filter( later, tmpSet );
+};
+
+// EXPOSE
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.filters;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.getText = getText;
+jQuery.isXMLDoc = isXML;
+jQuery.contains = contains;
+
+return;
+
+window.Sizzle = Sizzle;
+
+})();
+var runtil = /Until$/,
+ rparentsprev = /^(?:parents|prevUntil|prevAll)/,
+ // Note: This RegExp should be improved, or likely pulled from Sizzle
+ rmultiselector = /,/,
+ slice = Array.prototype.slice;
+
+// Implement the identical functionality for filter and not
+var winnow = function( elements, qualifier, keep ) {
+ if ( jQuery.isFunction( qualifier ) ) {
+ return jQuery.grep(elements, function( elem, i ) {
+ return !!qualifier.call( elem, i, elem ) === keep;
+ });
+
+ } else if ( qualifier.nodeType ) {
+ return jQuery.grep(elements, function( elem, i ) {
+ return (elem === qualifier) === keep;
+ });
+
+ } else if ( typeof qualifier === "string" ) {
+ var filtered = jQuery.grep(elements, function( elem ) {
+ return elem.nodeType === 1;
+ });
+
+ if ( isSimple.test( qualifier ) ) {
+ return jQuery.filter(qualifier, filtered, !keep);
+ } else {
+ qualifier = jQuery.filter( qualifier, filtered );
+ }
+ }
+
+ return jQuery.grep(elements, function( elem, i ) {
+ return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
+ });
+};
+
+jQuery.fn.extend({
+ find: function( selector ) {
+ ///
+ /// Sucht alle Elemente, die mit dem angegebenen Ausdruck übereinstimmen.
+ /// Diese Methode eignet sich gut für die Suche nach zusätzlichen
+ /// Nachfolgerelementen für die Verarbeitung.
+ /// Sämtliche Suchvorgänge werden mit einem jQuery-Ausdruck durchgeführt. Der Ausdruck
+ /// kann mit der CSS 1-3-Auswahlsyntax oder einfacher XPath-Syntax geschrieben werden.
+ /// Teil von DOM/Traversierung
+ ///
+ ///
+ ///
+ /// Ein Ausdruck für die Suche.
+ ///
+ ///
+
+ var ret = this.pushStack( "", "find", selector ), length = 0;
+
+ for ( var i = 0, l = this.length; i < l; i++ ) {
+ length = ret.length;
+ jQuery.find( selector, this[i], ret );
+
+ if ( i > 0 ) {
+ // Stellen Sie sicher, dass die Ergebnisse eindeutig sind.
+ for ( var n = length; n < ret.length; n++ ) {
+ for ( var r = 0; r < length; r++ ) {
+ if ( ret[r] === ret[n] ) {
+ ret.splice(n--, 1);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return ret;
+ },
+
+ has: function( target ) {
+ ///
+ /// Reduzieren Sie den Satz übereinstimmender Elemente auf die Elemente, die einen Nachfolger haben, der mit dem
+ /// Selektor oder DOM-Element übereinstimmt.
+ ///
+ ///
+ /// Eine Zeichenfolge mit einem Selektorausdruck zum Abgleichen von Elementen.
+ ///
+ ///
+
+ var targets = jQuery( target );
+ return this.filter(function() {
+ for ( var i = 0, l = targets.length; i < l; i++ ) {
+ if ( jQuery.contains( this, targets[i] ) ) {
+ return true;
+ }
+ }
+ });
+ },
+
+ not: function( selector ) {
+ ///
+ /// Entfernt Elemente innerhalb des Elementarrays aus dem übereinstimmenden
+ /// Elementsatz. Diese Methode wird zum Entfernen einzelner oder
+ /// mehrerer Elemente aus einem jQuery-Objekt verwendet.
+ /// Teil von DOM/Traversierung
+ ///
+ ///
+ /// Ein Elementsatz, der aus dem übereinstimmenden jQuery-Elementsatz entfernt werden soll.
+ ///
+ ///
+
+ return this.pushStack( winnow(this, selector, false), "not", selector);
+ },
+
+ filter: function( selector ) {
+ ///
+ /// Entfernt alle Elemente, die nicht dem angegebenen Filter entsprechen,
+ /// aus dem übereinstimmenden Elementsatz. Diese Methode dient zum Verfeinern
+ /// der Suchergebnisse.
+ /// })
+ /// Teil von DOM/Traversierung
+ ///
+ ///
+ ///
+ /// Eine Funktion, die für das Filtern verwendet wird
+ ///
+ ///
+
+ return this.pushStack( winnow(this, selector, true), "filter", selector );
+ },
+
+ is: function( selector ) {
+ ///
+ /// Prüft die aktuelle Auswahl anhand eines Ausdrucks und gibt "true" zurück,
+ /// wenn mindestens ein Element in der Auswahl dem Ausdruck entspricht.
+ /// Gibt "false" zurück, wenn kein Element passt oder der Ausdruck ungültig ist.
+ /// filter(String) wird intern verwendet, deshalb gelten alle Regeln, die dort
+ /// zutreffen, auch hier.
+ /// Teil von DOM/Traversierung
+ ///
+ ///
+ ///
+ /// Der Ausdruck, mit dem gefiltert werden soll
+ ///
+
+ return !!selector && jQuery.filter( selector, this ).length > 0;
+ },
+
+ closest: function( selectors, context ) {
+ ///
+ /// Elementsatz mit dem nächstgelegenen übergeordneten Element abrufen, das mit der angegebenen Auswahl übereinstimmt, einschließlich des Startelements.
+ ///
+ ///
+ /// Eine Zeichenfolge mit einem Selektorausdruck zum Abgleichen von Elementen.
+ ///
+ ///
+ /// Ein DOM-Element, in dem möglicherweise ein übereinstimmendes Element gefunden wird. Wenn kein Kontext übergeben wird,
+ /// wird stattdessen der Kontext des jQuery-Satzes verwendet.
+ ///
+ ///
+
+ if ( jQuery.isArray( selectors ) ) {
+ var ret = [], cur = this[0], match, matches = {}, selector;
+
+ if ( cur && selectors.length ) {
+ for ( var i = 0, l = selectors.length; i < l; i++ ) {
+ selector = selectors[i];
+
+ if ( !matches[selector] ) {
+ matches[selector] = jQuery.expr.match.POS.test( selector ) ?
+ jQuery( selector, context || this.context ) :
+ selector;
+ }
+ }
+
+ while ( cur && cur.ownerDocument && cur !== context ) {
+ for ( selector in matches ) {
+ match = matches[selector];
+
+ if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) {
+ ret.push({ selector: selector, elem: cur });
+ delete matches[selector];
+ }
+ }
+ cur = cur.parentNode;
+ }
+ }
+
+ return ret;
+ }
+
+ var pos = jQuery.expr.match.POS.test( selectors ) ?
+ jQuery( selectors, context || this.context ) : null;
+
+ return this.map(function( i, cur ) {
+ while ( cur && cur.ownerDocument && cur !== context ) {
+ if ( pos ? pos.index(cur) > -1 : jQuery(cur).is(selectors) ) {
+ return cur;
+ }
+ cur = cur.parentNode;
+ }
+ return null;
+ });
+ },
+
+ // Determine the position of an element within
+ // the matched set of elements
+ index: function( elem ) {
+ ///
+ /// Sucht das Objekt in jedem übereinstimmenden Element und gibt
+ /// den Index des Elements (falls gefunden) beginnend bei null zurück.
+ /// Gibt "-1" zurück, wenn das Objekt nicht gefunden wurde.
+ /// Teil des Kerns
+ ///
+ ///
+ ///
+ /// Zu suchendes Objekt
+ ///
+
+ if ( !elem || typeof elem === "string" ) {
+ return jQuery.inArray( this[0],
+ // If it receives a string, the selector is used
+ // If it receives nothing, the siblings are used
+ elem ? jQuery( elem ) : this.parent().children() );
+ }
+ // Locate the position of the desired element
+ return jQuery.inArray(
+ // If it receives a jQuery object, the first element is used
+ elem.jquery ? elem[0] : elem, this );
+ },
+
+ add: function( selector, context ) {
+ ///
+ /// Fügt dem übereinstimmenden Elementsatz mindestens ein Element hinzu.
+ /// Teil von DOM/Traversierung
+ ///
+ ///
+ /// Eine Zeichenfolge mit einem Selektorausdruck zum Abgleichen von zusätzlichen Elementen.
+ ///
+ ///
+ /// Fügen Sie einige Elemente hinzu, die einen Stamm für den angegebenen Kontext haben.
+ ///
+ ///
+
+ var set = typeof selector === "string" ?
+ jQuery( selector, context || this.context ) :
+ jQuery.makeArray( selector ),
+ all = jQuery.merge( this.get(), set );
+
+ return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
+ all :
+ jQuery.unique( all ) );
+ },
+
+ andSelf: function() {
+ ///
+ /// Fügt die vorherige Auswahl der aktuellen Auswahl hinzu.
+ ///
+ ///
+
+ return this.add( this.prevObject );
+ }
+});
+
+// A painfully simple check to see if an element is disconnected
+// from a document (should be improved, where feasible).
+function isDisconnected( node ) {
+ return !node || !node.parentNode || node.parentNode.nodeType === 11;
+}
+
+jQuery.each({
+ parent: function( elem ) {
+ var parent = elem.parentNode;
+ return parent && parent.nodeType !== 11 ? parent : null;
+ },
+ parents: function( elem ) {
+ return jQuery.dir( elem, "parentNode" );
+ },
+ next: function( elem ) {
+ return jQuery.nth( elem, 2, "nextSibling" );
+ },
+ prev: function( elem ) {
+ return jQuery.nth( elem, 2, "previousSibling" );
+ },
+ nextAll: function( elem ) {
+ return jQuery.dir( elem, "nextSibling" );
+ },
+ prevAll: function( elem ) {
+ return jQuery.dir( elem, "previousSibling" );
+ },
+ siblings: function( elem ) {
+ return jQuery.sibling( elem.parentNode.firstChild, elem );
+ },
+ children: function( elem ) {
+ return jQuery.sibling( elem.firstChild );
+ },
+ contents: function( elem ) {
+ return jQuery.nodeName( elem, "iframe" ) ?
+ elem.contentDocument || elem.contentWindow.document :
+ jQuery.makeArray( elem.childNodes );
+ }
+}, function( name, fn ) {
+ jQuery.fn[ name ] = function( until, selector ) {
+ var ret = jQuery.map( this, fn, until );
+
+ if ( !runtil.test( name ) ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ ret = jQuery.filter( selector, ret );
+ }
+
+ ret = this.length > 1 ? jQuery.unique( ret ) : ret;
+
+ if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
+ ret = ret.reverse();
+ }
+
+ return this.pushStack( ret, name, slice.call(arguments).join(",") );
+ };
+});
+
+jQuery.fn[ "parentsUntil" ] = function( until, selector ) {
+ ///
+ /// Rufen Sie die übergeordneten Elemente jedes Elements im aktuellen Satz übereinstimmender Elemente ab, bis zu, jedoch nicht
+ /// einschließlich des Elements, das mit dem Selektor übereinstimmt.
+ ///
+ ///
+ /// Eine Zeichenfolge mit einem Selektorausdruck, um anzugeben, wo das Abgleichen übergeordneter Elemente
+ /// beendet werden soll.
+ ///
+ ///
+
+ var fn = function( elem, i, until ) {
+ return jQuery.dir( elem, "parentNode", until );
+ }
+
+ var ret = jQuery.map( this, fn, until );
+
+ if ( !runtil.test( "parentsUntil" ) ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ ret = jQuery.filter( selector, ret );
+ }
+
+ ret = this.length > 1 ? jQuery.unique( ret ) : ret;
+
+ if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( "parentsUntil" ) ) {
+ ret = ret.reverse();
+ }
+
+ return this.pushStack( ret, "parentsUntil", slice.call(arguments).join(",") );
+};
+
+jQuery.fn[ "nextUntil" ] = function( until, selector ) {
+ ///
+ /// Rufen Sie alle folgenden gleichgeordneten Elemente jedes Elements ab, bis zu, jedoch nicht einschließlich des mit dem Selektor übereinstimmenden
+ /// Elements.
+ ///
+ ///
+ /// Eine Zeichenfolge mit einem Selektorausdruck, um anzugeben, wo das Abgleichen folgender
+ /// gleichgeordneter Elemente beendet werden soll.
+ ///
+ ///
+
+ var fn = function( elem, i, until ) {
+ return jQuery.dir( elem, "nextSibling", until );
+ }
+
+ var ret = jQuery.map( this, fn, until );
+
+ if ( !runtil.test( "nextUntil" ) ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ ret = jQuery.filter( selector, ret );
+ }
+
+ ret = this.length > 1 ? jQuery.unique( ret ) : ret;
+
+ if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( "nextUntil" ) ) {
+ ret = ret.reverse();
+ }
+
+ return this.pushStack( ret, "nextUntil", slice.call(arguments).join(",") );
+};
+
+jQuery.fn[ "prevUntil" ] = function( until, selector ) {
+ ///
+ /// Rufen Sie alle vorhergehenden gleichgeordneten Elemente jedes Elements ab, bis zu, jedoch nicht einschließlich des mit dem Selektor übereinstimmenden
+ /// Elements.
+ ///
+ ///
+ /// Eine Zeichenfolge mit einem Selektorausdruck, um anzugeben, wo das Abgleichen vorhergehender
+ /// gleichgeordneter Elemente beendet werden soll.
+ ///
+ ///
+
+ var fn = function( elem, i, until ) {
+ return jQuery.dir( elem, "previousSibling", until );
+ }
+
+ var ret = jQuery.map( this, fn, until );
+
+ if ( !runtil.test( "prevUntil" ) ) {
+ selector = until;
+ }
+
+ if ( selector && typeof selector === "string" ) {
+ ret = jQuery.filter( selector, ret );
+ }
+
+ ret = this.length > 1 ? jQuery.unique( ret ) : ret;
+
+ if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( "prevUntil" ) ) {
+ ret = ret.reverse();
+ }
+
+ return this.pushStack( ret, "prevUntil", slice.call(arguments).join(",") );
+};
+
+jQuery.extend({
+ filter: function( expr, elems, not ) {
+ if ( not ) {
+ expr = ":not(" + expr + ")";
+ }
+
+ return jQuery.find.matches(expr, elems);
+ },
+
+ dir: function( elem, dir, until ) {
+ ///
+ /// Dies ist ein rein interner Member.
+ ///
+ ///
+
+ var matched = [], cur = elem[dir];
+ while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
+ if ( cur.nodeType === 1 ) {
+ matched.push( cur );
+ }
+ cur = cur[dir];
+ }
+ return matched;
+ },
+
+ nth: function( cur, result, dir, elem ) {
+ ///
+ /// Dies ist ein rein interner Member.
+ ///
+ ///
+
+ result = result || 1;
+ var num = 0;
+
+ for ( ; cur; cur = cur[dir] ) {
+ if ( cur.nodeType === 1 && ++num === result ) {
+ break;
+ }
+ }
+
+ return cur;
+ },
+
+ sibling: function( n, elem ) {
+ ///
+ /// Dies ist ein rein interner Member.
+ ///
+ ///
+
+ var r = [];
+
+ for ( ; n; n = n.nextSibling ) {
+ if ( n.nodeType === 1 && n !== elem ) {
+ r.push( n );
+ }
+ }
+
+ return r;
+ }
+});
+var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
+ rleadingWhitespace = /^\s+/,
+ rxhtmlTag = /(<([\w:]+)[^>]*?)\/>/g,
+ rselfClosing = /^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,
+ rtagName = /<([\w:]+)/,
+ rtbody = /
" + tag + ">";
+ },
+ wrapMap = {
+ option: [ 1, "", " " ],
+ legend: [ 1, "", " " ],
+ thead: [ 1, "" ],
+ tr: [ 2, "" ],
+ td: [ 3, "" ],
+ col: [ 2, "" ],
+ area: [ 1, "", " " ],
+ _default: [ 0, "", "" ]
+ };
+
+wrapMap.optgroup = wrapMap.option;
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+// IE can't serialize and
+
+
+
+
+
+
+
+
+
+
+ Meldungen  > 
+
+
+  > 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/config.bak b/MessagesMap/config.bak
new file mode 100644
index 000000000..42be9d426
--- /dev/null
+++ b/MessagesMap/config.bak
@@ -0,0 +1,130 @@
+// Config TALAS Map
+// Ersteller: ANT
+
+/* IP der Quelle */
+var quellURL = ""
+
+/* Kartengröße definieren */
+var minXMAP = 328000; // Sollte noch automatisiert werden
+var minYMAP = 523000;
+var maxXMAP = 387000;
+var maxYMAP = 600000;
+var mapStartZoom = 0.5; // Standard 0.5
+
+/* Zoom Empfindlichkeit - Standard 0.65 */
+var scaleBy = 0.65;
+
+/* Start Skalierung */
+var skalierung = 1; // Beinflusst die Performance - Standard 1
+
+if(localStorage.getItem('zoomStage')){
+ var zoomStage = parseFloat(localStorage.getItem('zoomStage'));
+ console.log("Erkannte Zoomstufe: "+zoomStage);
+ mapStartZoom = zoomStage; // Je kleiner je näher die Karte am start - Standard 0.5
+ if (mapStartZoom < 1) {
+ var mapStartOffsetTemp = 64;
+ }
+ else {
+ var mapStartOffsetTemp = 0;
+ }
+}
+else {
+ //mapStartZoom = 0.5; // Je kleiner je näher die Karte am start - Standard 0.5
+ if (mapStartZoom < 1) {
+ var mapStartOffsetTemp = 64;
+ }
+ else {
+ var mapStartOffsetTemp = 4/mapStartZoom;
+ }
+}
+
+var minX = minXMAP / skalierung;
+var minY = minYMAP / skalierung;
+var maxX = maxXMAP / skalierung;
+var maxY = maxYMAP / skalierung;
+
+var displayWidth = window.screen.width;
+var displayHeight = window.innerHeight;
+
+console.log("%cSYS | Displaybreite : "+displayWidth+"px - Displayhöhe : "+displayHeight+"px", "color:green;");
+
+var mapWidth = Math.round(maxX - minX);
+var mapWidthRaw = maxX - minX;
+var mapHeight = Math.round(maxY - minY);
+var mapHeightRaw = maxY - minY;
+
+console.log("%cSYS | Kartenbreite : "+mapWidth+"px - Kartenhöhe : "+mapHeight+"px", "color:green;");
+
+var displayFactor = (mapWidth / displayWidth);
+console.log("%cSYS | Faktor : "+displayFactor+"", "color:green;");
+
+var stageWidthTemp = mapWidth / displayFactor;
+var stageWidthRawTemp = mapWidthRaw / displayFactor;
+var stageWidth = displayWidth / mapStartZoom;
+
+var stageHeightTemp = mapHeight / displayFactor;
+var stageHeightRawTemp = mapHeightRaw / displayFactor;
+var stageHeight = stageHeightTemp / mapStartZoom;
+
+console.log("%cSYS | Bühnenbreite : "+stageWidth+"px - Bühnenhöhe : "+stageHeight+"px", "color:green;");
+
+/* Karten Offset beim Start */
+if(localStorage.getItem('zoomStage')) {
+ var zoomStage = parseFloat(localStorage.getItem('zoomStage'));
+ var xStage = parseFloat(localStorage.getItem('xStage'));
+ var yStage = parseFloat(localStorage.getItem('yStage'));
+}
+else {
+ var mapStartOffsety = stageHeight/mapStartOffsetTemp;
+ var mapStartOffsetx = -1000;
+}
+
+var scaleRatio = 1;
+
+var stationfontSize = 1;
+var stationfontOffsetx = -0.25;
+var stationfontOffsety = -1.1;
+
+var cableThickness = 0.25;
+
+/* Externe Quellen */
+var jsonStationURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/StationsStatic";
+var jsonCableURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/CablesStatic";
+var jsonServiceStaticURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/ServicesStatic";
+var jsonKueURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/KueStatic";
+var jsonStatusURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/StationsStatus";
+var jsonServiceURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/ServicesStatus";
+var jsonKueStatusURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/KueStatus";
+
+
+/* Locale Quellen - Nur zur Programmierung */
+/*var jsonStationURL = "StationsStatic.json";
+var jsonCableURL = "CablesStatic.json";
+var jsonServiceStaticURL = "ServicesStatic.json";
+var jsonKueURL = "KueStatic.json";
+var jsonStatusURL = "StationsStatus.json";
+var jsonServiceURL = "ServicesStatus.json";
+var jsonKueStatusURL = "KueStatus.json";*/
+
+
+/* Map Border Data Quelle */
+var jsonMapBorderURL = "geo/ger_grenze.json";
+
+/* Map Border Data Quelle */
+var jsonStaedteURL = "geo/staedte.json";
+
+
+/* Minimale Zoomstufe - Standard 1 */
+var minZoomstufe = 1;
+
+/* Maximale Zoomstufe - Standard 90 */
+var maxZoomstufe = 90;
+
+/* Datum von Heute */
+var heute = new Date();
+
+/* Seiten Selbsttest */
+document.getElementById("mousovertext").innerHTML = "Daten geladen, Skalierung wird gestartet...";
+
+
+
diff --git a/MessagesMap/config.bak2 b/MessagesMap/config.bak2
new file mode 100644
index 000000000..101e6fdee
--- /dev/null
+++ b/MessagesMap/config.bak2
@@ -0,0 +1,273 @@
+// Config TALAS Map
+// Ersteller: ANT
+
+/* IP der Quelle */
+var quellURL = "http://10.54.158.105"
+
+/* Kartengröße definieren */
+var minXMAP = 328000; // Sollte noch automatisiert werden
+var minYMAP = 523000;
+var maxXMAP = 387000;
+var maxYMAP = 600000;
+var mapStartZoom = 0.5; // Standard 0.5
+var newScale = 0;
+var big = 1;
+
+/* Zoom Empfindlichkeit - Standard 0.65 */
+var scaleBy = 0.75;
+
+/* Start Skalierung */
+var skalierung = 10; // Beinflusst die Performance - Standard 1
+
+var updateInterval = 7;
+var startZoom = 0.5;
+var zoomGeschwindigkeit = 0.65;
+
+var standardCableThickness = 1;
+var standardMeldestationen = 2;
+var standardUlafStationen = 2;
+var standardPassiveStationen = 2;
+var standardFontSize = 1;
+var zoomStage = startZoom;
+
+var meldungCableThickness = 4;
+var meldungMeldestationen = 20;
+var meldungZoomUmschaltung = 10;
+
+if(localStorage.getItem('zoomStage')){
+ zoomStage = parseFloat(localStorage.getItem('zoomStage'));
+ console.log("Erkannte Zoomstufe: "+zoomStage);
+ mapStartZoom = zoomStage; // Je kleiner je näher die Karte am start - Standard 0.5
+ if (mapStartZoom < 1) {
+ var mapStartOffsetTemp = 64;
+ }
+ else {
+ var mapStartOffsetTemp = 0;
+ }
+}
+else {
+ //mapStartZoom = 0.5; // Je kleiner je näher die Karte am start - Standard 0.5
+ if (mapStartZoom < 1) {
+ var mapStartOffsetTemp = 64;
+ }
+ else {
+ var mapStartOffsetTemp = 4/mapStartZoom;
+ }
+}
+
+var minX = minXMAP / skalierung;
+var minY = minYMAP / skalierung;
+var maxX = maxXMAP / skalierung;
+var maxY = maxYMAP / skalierung;
+
+var displayWidth = window.screen.width;
+var displayHeight = window.innerHeight;
+
+console.log("%cSYS | Displaybreite : "+displayWidth+"px - Displayhöhe : "+displayHeight+"px", "color:green;");
+
+var mapWidth = Math.round(maxX - minX);
+var mapWidthRaw = maxX - minX;
+var mapHeight = Math.round(maxY - minY);
+var mapHeightRaw = maxY - minY;
+
+console.log("%cSYS | Kartenbreite : "+mapWidth+"px - Kartenhöhe : "+mapHeight+"px", "color:green;");
+
+var displayFactor = (mapWidth / displayWidth);
+console.log("%cSYS | Faktor : "+displayFactor+"", "color:green;");
+
+var stageWidthTemp = mapWidth / displayFactor;
+var stageWidthRawTemp = mapWidthRaw / displayFactor;
+var stageWidth = displayWidth / mapStartZoom;
+
+var stageHeightTemp = mapHeight / displayFactor;
+var stageHeightRawTemp = mapHeightRaw / displayFactor;
+var stageHeight = stageHeightTemp / mapStartZoom;
+
+console.log("%cSYS | Bühnenbreite : "+stageWidth+"px - Bühnenhöhe : "+stageHeight+"px", "color:green;");
+
+/* Karten Offset beim Start */
+if(localStorage.getItem('zoomStage')) {
+ var zoomStage = parseFloat(localStorage.getItem('zoomStage'));
+ var xStage = parseFloat(localStorage.getItem('xStage'));
+ var yStage = parseFloat(localStorage.getItem('yStage'));
+}
+else {
+ var mapStartOffsety = stageHeight/mapStartOffsetTemp;
+ var mapStartOffsetx = -1000;
+}
+
+var scaleRatio = 2;
+
+/* Externe Quellen */
+//var jsonStationURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/StationsStatic";
+//var jsonCableURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/CablesStatic";
+//var jsonServiceStaticURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/ServicesStatic";
+//var jsonKueURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/KueStatic";
+//var jsonStatusURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/StationsStatus";
+//var jsonServiceURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/ServicesStatus";
+//var jsonKueStatusURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/KueStatus";
+
+
+/* Locale Quellen - Nur zur Programmierung */
+var jsonStationURL = "StationsStatic.json";
+var jsonCableURL = "CablesStatic.json";
+var jsonServiceStaticURL = "ServicesStatic.json";
+var jsonKueURL = "KueStatic.json";
+var jsonStatusURL = "StationsStatus.json";
+var jsonServiceURL = "ServicesStatus.json";
+var jsonKueStatusURL = "KueStatus.json";
+
+
+/* Map Border Data Quelle */
+var jsonMapBorderURL = "geo/ger_grenze.json";
+var jsonMapBorderURL2 = "geo/test2.json";
+//var jsonMapBorderURL = "geo/gre_ger_ver_gauss.json";
+
+/* Map Border Data Quelle */
+var jsonStaedteURL = "geo/staedte.json";
+
+
+/* Minimale Zoomstufe - Standard 1 */
+var minZoomstufe = 1;
+
+/* Maximale Zoomstufe - Standard 90 */
+var maxZoomstufe = 90;
+
+/* Datum von Heute */
+var heute = new Date();
+
+/* Seiten Selbsttest */
+document.getElementById("mousovertext").innerHTML = "Daten geladen, Skalierung wird gestartet...";
+
+//Konva.hitOnDragEnabled = true;
+Konva.pixelRatio = 1;
+
+function datenZuruecksetzen() {
+ console.log("Bingo");
+ if (confirm('Wirklich auf Standardwerte zurücksetzen?')) {
+ standardEinstellungenKarte(1);
+ cableReset();
+ }
+ else {
+ //some code
+ }
+}
+
+function standardEinstellungenKarte(x) {
+
+ if (x > 0 || localStorage.getItem('UpdateInterval') == null) {
+ // Standarwerte
+ updateInterval = 5;
+ //startZoom = 0.5;
+ //zoomGeschwindigkeit = 0.65;
+
+ standardCableThickness = 1;
+ standardMeldestationen = 2;
+ standardUlafStationen = 2;
+ standardPassiveStationen = 2;
+ standardFontSize = 3;
+
+ meldungCableThickness = 3;
+ meldungMeldestationen = 5;
+ //meldungZoomUmschaltung = 8;
+
+ setEinstellungen(0);
+ if (x > 0) {
+ console.log("Werte vorhanden. Werte wurden aktualisiert");
+ }
+ else {
+ console.log("Werte noch nicht vorhanden. Werte geschrieben");
+ }
+ }
+ else {
+ getEinstellungen();
+ console.log("Es wurden keine Werte aktualisiert");
+ }
+
+
+}
+
+function setEinstellungen(x) {
+ // Ins Localstorage schreiben
+ if (x > 0){
+ updateInterval = document.getElementById("SliderUpdateInterval").value;
+ //startZoom = (document.getElementById("StartZoom").value)/2;
+
+ standardCableThickness = document.getElementById("StandardCableThickness").value;
+ standardMeldestationen = document.getElementById("StandardMeldestationen").value;
+ standardUlafStationen = document.getElementById("StandardUlafStationen").value;
+ standardPassiveStationen = document.getElementById("StandardPassiveStationen").value;
+ standardFontSize = document.getElementById("StandardFontSize").value;
+
+ meldungCableThickness = document.getElementById("MeldungCableThickness").value;
+ meldungMeldestationen = document.getElementById("MeldungMeldestationen").value;
+ //meldungZoomUmschaltung = document.getElementById("MeldungZoomUmschaltung").value;
+
+ }
+ localStorage.setItem("UpdateInterval",updateInterval);
+ //localStorage.setItem("StartZoom",startZoom);
+ //localStorage.setItem("ZoomGeschwindigkeit",zoomGeschwindigkeit);
+
+ localStorage.setItem("StandardCableThickness",standardCableThickness);
+ localStorage.setItem("StandardMeldestationen",standardMeldestationen);
+ localStorage.setItem("StandardUlafStationen",standardUlafStationen);
+ localStorage.setItem("StandardPassiveStationen",standardPassiveStationen);
+ localStorage.setItem("StandardFontSize",standardFontSize);
+
+ localStorage.setItem("MeldungCableThickness",meldungCableThickness);
+ localStorage.setItem("MeldungMeldestationen",meldungMeldestationen);
+ //localStorage.setItem("MeldungZoomUmschaltung",meldungZoomUmschaltung);
+
+}
+
+function getEinstellungen() {
+ updateInterval = localStorage.getItem("UpdateInterval");
+ //startZoom = localStorage.getItem("StartZoom");
+ //zoomGeschwindigkeit = localStorage.getItem("ZoomGeschwindigkeit");
+
+ standardCableThickness = localStorage.getItem("StandardCableThickness");
+ standardMeldestationen = localStorage.getItem("StandardMeldestationen");
+ standardUlafStationen = localStorage.getItem("StandardUlafStationen");
+ standardPassiveStationen = localStorage.getItem("StandardPassiveStationen");
+ standardFontSize = localStorage.getItem("StandardFontSize");
+
+ meldungCableThickness = localStorage.getItem("MeldungCableThickness");
+ meldungMeldestationen = localStorage.getItem("MeldungMeldestationen");
+ meldungZoomUmschaltung = localStorage.getItem("MeldungZoomUmschaltung");
+}
+
+function writeEinstellungen() {
+ document.getElementById("SliderUpdateInterval").value = updateInterval;
+ //document.getElementById("StartZoom").value = startZoom*2;
+ //selectElement('ZoomGeschwindigkeit', zoomGeschwindigkeit*100)
+
+ document.getElementById("StandardCableThickness").value = standardCableThickness;
+ document.getElementById("StandardMeldestationen").value = standardMeldestationen;
+ document.getElementById("StandardUlafStationen").value = standardUlafStationen;
+ document.getElementById("StandardPassiveStationen").value = standardPassiveStationen;
+ document.getElementById("StandardFontSize").value = standardFontSize;
+
+ document.getElementById("MeldungCableThickness").value = meldungCableThickness;
+ document.getElementById("MeldungMeldestationen").value = meldungMeldestationen;
+ //document.getElementById("MeldungZoomUmschaltung").value = meldungZoomUmschaltung;
+ $('.slider').show();
+ $('.slider').foundation('_reflow');
+}
+
+
+
+function selectElement(id, valueToSelect) {
+ let element = document.getElementById(id);
+ element.value = valueToSelect;
+}
+
+function main() {
+ standardEinstellungenKarte(0);
+ writeEinstellungen();
+}
+
+main();
+
+$('.slider').on('changed.zf.slider', function() {
+ setEinstellungen(1);
+});
\ No newline at end of file
diff --git a/MessagesMap/config.js b/MessagesMap/config.js
new file mode 100644
index 000000000..c9c39434a
--- /dev/null
+++ b/MessagesMap/config.js
@@ -0,0 +1,288 @@
+// Config TALAS Map
+// Ersteller: ANT
+
+/* IP der Quelle */
+var quellURL = "http://10.10.0.13"
+
+/* Kartengröße definieren */
+var minXMAP = 328000; // Sollte noch automatisiert werden
+var minYMAP = 523000;
+var maxXMAP = 387000;
+var maxYMAP = 600000;
+var mapStartZoom = 0.5; // Standard 0.5
+var newScale = 0;
+var big = 1;
+var ebenenLayer = [];
+if (localStorage.getItem(ebenenLayer)){
+ ebenenLayer = localStorage.getItem("ebenenLayer");
+}
+else {
+ ebenenLayer = [1,1,1,1,1];
+ localStorage.setItem("ebenenLayer",ebenenLayer);
+}
+
+
+/* Zoom Empfindlichkeit - Standard 0.65 */
+var scaleBy = 0.75;
+
+/* Start Skalierung */
+var skalierung = 10; // Beinflusst die Performance - Standard 1
+
+var updateInterval = 7;
+var startZoom = 0.5;
+var zoomGeschwindigkeit = 0.65;
+
+var standardCableThickness = 1;
+var standardMeldestationen = 2;
+var standardUlafStationen = 2;
+var standardPassiveStationen = 2;
+var standardFontSize = 1;
+var zoomStage = startZoom;
+
+var meldungCableThickness = 4;
+var meldungMeldestationen = 20;
+var meldungZoomUmschaltung = 8;
+
+if(localStorage.getItem('zoomStage')){
+ zoomStage = parseFloat(localStorage.getItem('zoomStage'));
+ console.log("Erkannte Zoomstufe: "+zoomStage);
+ mapStartZoom = zoomStage; // Je kleiner je näher die Karte am start - Standard 0.5
+ if (mapStartZoom < 1) {
+ var mapStartOffsetTemp = 64;
+ }
+ else {
+ var mapStartOffsetTemp = 0;
+ }
+}
+else {
+ //mapStartZoom = 0.5; // Je kleiner je näher die Karte am start - Standard 0.5
+ if (mapStartZoom < 1) {
+ var mapStartOffsetTemp = 64;
+ }
+ else {
+ var mapStartOffsetTemp = 4/mapStartZoom;
+ }
+}
+
+if(localStorage.getItem('infoSheet')){
+ document.getElementById("infoSheet").style.visibility = "hidden";
+ }
+ else {
+ document.getElementById("infoSheet").style.visibility = "visible";
+ }
+
+var minX = minXMAP / skalierung;
+var minY = minYMAP / skalierung;
+var maxX = maxXMAP / skalierung;
+var maxY = maxYMAP / skalierung;
+
+var displayWidth = window.screen.width;
+var displayHeight = window.innerHeight;
+
+console.log("%cSYS | Displaybreite : "+displayWidth+"px - Displayhöhe : "+displayHeight+"px", "color:green;");
+
+var mapWidth = Math.round(maxX - minX);
+var mapWidthRaw = maxX - minX;
+var mapHeight = Math.round(maxY - minY);
+var mapHeightRaw = maxY - minY;
+
+console.log("%cSYS | Kartenbreite : "+mapWidth+"px - Kartenhöhe : "+mapHeight+"px", "color:green;");
+
+var displayFactor = (mapWidth / displayWidth);
+console.log("%cSYS | Faktor : "+displayFactor+"", "color:green;");
+
+var stageWidthTemp = mapWidth / displayFactor;
+var stageWidthRawTemp = mapWidthRaw / displayFactor;
+var stageWidth = displayWidth / mapStartZoom;
+
+var stageHeightTemp = mapHeight / displayFactor;
+var stageHeightRawTemp = mapHeightRaw / displayFactor;
+var stageHeight = stageHeightTemp / mapStartZoom;
+
+console.log("%cSYS | Bühnenbreite : "+stageWidth+"px - Bühnenhöhe : "+stageHeight+"px", "color:green;");
+
+/* Karten Offset beim Start */
+if(localStorage.getItem('zoomStage')) {
+ var zoomStage = parseFloat(localStorage.getItem('zoomStage'));
+ var xStage = parseFloat(localStorage.getItem('xStage'));
+ var yStage = parseFloat(localStorage.getItem('yStage'));
+}
+else {
+ var mapStartOffsety = stageHeight/mapStartOffsetTemp;
+ var mapStartOffsetx = -1000;
+}
+
+var scaleRatio = 2;
+
+/* Externe Quellen */
+var jsonStationURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/StationsStatic";
+var jsonCableURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/CablesStatic";
+var jsonServiceStaticURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/ServicesStatic";
+var jsonKueURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/KueStatic";
+var jsonStatusURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/StationsStatus";
+var jsonServiceURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/ServicesStatus";
+var jsonKueStatusURL = quellURL+"/talas5/ClientData/WebserviceMap.asmx/KueStatus";
+
+
+/* Locale Quellen - Nur zur Programmierung */
+/*var jsonStationURL = "StationsStatic.json";
+var jsonCableURL = "CablesStatic.json";
+var jsonServiceStaticURL = "ServicesStatic.json";
+var jsonKueURL = "KueStatic.json";
+var jsonStatusURL = "StationsStatus.json";
+var jsonServiceURL = "ServicesStatus.json";
+var jsonKueStatusURL = "KueStatus.json";*/
+
+
+/* Map Border Data Quelle */
+var jsonMapBorderURL = "geo/ger_grenze.json";
+var jsonMapBorderURL2 = "geo/test2.json";
+//var jsonMapBorderURL = "geo/gre_ger_ver_gauss.json";
+
+/* Map Border Data Quelle */
+var jsonStaedteURL = "geo/staedte.json";
+
+
+/* Minimale Zoomstufe - Standard 1 */
+var minZoomstufe = 1;
+
+/* Maximale Zoomstufe - Standard 90 */
+var maxZoomstufe = 90;
+
+/* Datum von Heute */
+var heute = new Date();
+
+/* Seiten Selbsttest */
+document.getElementById("mousovertext").innerHTML = "Daten geladen, Skalierung wird gestartet...";
+
+//Konva.hitOnDragEnabled = true;
+Konva.pixelRatio = 1;
+
+function datenZuruecksetzen() {
+ if (confirm('Wirklich auf Standardwerte zurücksetzen?')) {
+ standardEinstellungenKarte(1);
+ cableReset();
+ }
+ else {
+ //some code
+ }
+}
+
+function standardEinstellungenKarte(x) {
+
+ if (x > 0 || localStorage.getItem('UpdateInterval') == null) {
+ // Standarwerte
+ updateInterval = 5;
+ //startZoom = 0.5;
+ //zoomGeschwindigkeit = 0.65;
+
+ standardCableThickness = 1;
+ standardMeldestationen = 2;
+ standardUlafStationen = 2;
+ standardPassiveStationen = 2;
+ standardFontSize = 3;
+
+ meldungCableThickness = 3;
+ meldungMeldestationen = 20;
+ //meldungZoomUmschaltung = 8;
+
+ setEinstellungen(0);
+ if (x > 0) {
+ console.log("Werte vorhanden. Werte wurden aktualisiert");
+ }
+ else {
+ console.log("Werte noch nicht vorhanden. Werte geschrieben");
+ }
+ }
+ else {
+ getEinstellungen();
+ console.log("Es wurden keine Werte aktualisiert");
+ }
+
+
+}
+
+function setEinstellungen(x) {
+ // Ins Localstorage schreiben
+ if (x > 0){
+ updateInterval = document.getElementById("SliderUpdateInterval").value;
+ //startZoom = (document.getElementById("StartZoom").value)/2;
+
+ standardCableThickness = document.getElementById("StandardCableThickness").value;
+ standardMeldestationen = document.getElementById("StandardMeldestationen").value;
+ standardUlafStationen = document.getElementById("StandardUlafStationen").value;
+ standardPassiveStationen = document.getElementById("StandardPassiveStationen").value;
+ standardFontSize = document.getElementById("StandardFontSize").value;
+
+ meldungCableThickness = document.getElementById("MeldungCableThickness").value;
+ meldungMeldestationen = document.getElementById("MeldungMeldestationen").value;
+ //meldungZoomUmschaltung = document.getElementById("MeldungZoomUmschaltung").value;
+
+ }
+ localStorage.setItem("UpdateInterval",updateInterval);
+ //localStorage.setItem("StartZoom",startZoom);
+ //localStorage.setItem("ZoomGeschwindigkeit",zoomGeschwindigkeit);
+
+ localStorage.setItem("StandardCableThickness",standardCableThickness);
+ localStorage.setItem("StandardMeldestationen",standardMeldestationen);
+ localStorage.setItem("StandardUlafStationen",standardUlafStationen);
+ localStorage.setItem("StandardPassiveStationen",standardPassiveStationen);
+ localStorage.setItem("StandardFontSize",standardFontSize);
+
+ localStorage.setItem("MeldungCableThickness",meldungCableThickness);
+ localStorage.setItem("MeldungMeldestationen",meldungMeldestationen);
+ //localStorage.setItem("MeldungZoomUmschaltung",meldungZoomUmschaltung);
+
+}
+
+function getEinstellungen() {
+ updateInterval = localStorage.getItem("UpdateInterval");
+ //startZoom = localStorage.getItem("StartZoom");
+ //zoomGeschwindigkeit = localStorage.getItem("ZoomGeschwindigkeit");
+
+ standardCableThickness = localStorage.getItem("StandardCableThickness");
+ standardMeldestationen = localStorage.getItem("StandardMeldestationen");
+ standardUlafStationen = localStorage.getItem("StandardUlafStationen");
+ standardPassiveStationen = localStorage.getItem("StandardPassiveStationen");
+ standardFontSize = localStorage.getItem("StandardFontSize");
+
+ meldungCableThickness = localStorage.getItem("MeldungCableThickness");
+ meldungMeldestationen = localStorage.getItem("MeldungMeldestationen");
+ meldungZoomUmschaltung = localStorage.getItem("MeldungZoomUmschaltung");
+}
+
+function writeEinstellungen() {
+ document.getElementById("SliderUpdateInterval").value = updateInterval;
+ //document.getElementById("StartZoom").value = startZoom*2;
+ //selectElement('ZoomGeschwindigkeit', zoomGeschwindigkeit*100)
+
+ document.getElementById("StandardCableThickness").value = standardCableThickness;
+ document.getElementById("StandardMeldestationen").value = standardMeldestationen;
+ document.getElementById("StandardUlafStationen").value = standardUlafStationen;
+ document.getElementById("StandardPassiveStationen").value = standardPassiveStationen;
+ document.getElementById("StandardFontSize").value = standardFontSize;
+
+ document.getElementById("MeldungCableThickness").value = meldungCableThickness;
+ document.getElementById("MeldungMeldestationen").value = meldungMeldestationen;
+ //document.getElementById("MeldungZoomUmschaltung").value = meldungZoomUmschaltung;
+ $('.slider').show();
+ $('.slider').foundation('_reflow');
+}
+
+
+
+function selectElement(id, valueToSelect) {
+ let element = document.getElementById(id);
+ element.value = valueToSelect;
+}
+
+function main() {
+ standardEinstellungenKarte(0);
+ writeEinstellungen();
+}
+
+main();
+
+$('.slider').on('changed.zf.slider', function() {
+ setEinstellungen(1);
+});
\ No newline at end of file
diff --git a/MessagesMap/css/.fontcustom-data b/MessagesMap/css/.fontcustom-data
new file mode 100644
index 000000000..8753d7b15
--- /dev/null
+++ b/MessagesMap/css/.fontcustom-data
@@ -0,0 +1,298 @@
+{
+ "fonts": [
+ "fontcustom_10588e4d0af9f9cd5471c9540658204b.ttf",
+ "fontcustom_10588e4d0af9f9cd5471c9540658204b.woff",
+ "fontcustom_10588e4d0af9f9cd5471c9540658204b.eot",
+ "fontcustom_10588e4d0af9f9cd5471c9540658204b.svg"
+ ],
+ "templates": [
+ "fontcustom.css",
+ "fontcustom-preview.html"
+ ],
+ "file_name": "fontcustom_10588e4d0af9f9cd5471c9540658204b",
+ "glyphs": [
+ "fi-address-book",
+ "fi-alert",
+ "fi-align-center",
+ "fi-align-justify",
+ "fi-align-left",
+ "fi-align-right",
+ "fi-anchor",
+ "fi-annotate",
+ "fi-archive",
+ "fi-arrow-down",
+ "fi-arrow-left",
+ "fi-arrow-right",
+ "fi-arrow-up",
+ "fi-arrows-compress",
+ "fi-arrows-expand",
+ "fi-arrows-in",
+ "fi-arrows-out",
+ "fi-asl",
+ "fi-asterisk",
+ "fi-at-sign",
+ "fi-background-color",
+ "fi-battery-empty",
+ "fi-battery-full",
+ "fi-battery-half",
+ "fi-bitcoin-circle",
+ "fi-bitcoin",
+ "fi-blind",
+ "fi-bluetooth",
+ "fi-bold",
+ "fi-book-bookmark",
+ "fi-book",
+ "fi-bookmark",
+ "fi-braille",
+ "fi-burst-new",
+ "fi-burst-sale",
+ "fi-burst",
+ "fi-calendar",
+ "fi-camera",
+ "fi-check",
+ "fi-checkbox",
+ "fi-clipboard-notes",
+ "fi-clipboard-pencil",
+ "fi-clipboard",
+ "fi-clock",
+ "fi-closed-caption",
+ "fi-cloud",
+ "fi-comment-minus",
+ "fi-comment-quotes",
+ "fi-comment-video",
+ "fi-comment",
+ "fi-comments",
+ "fi-compass",
+ "fi-contrast",
+ "fi-credit-card",
+ "fi-crop",
+ "fi-crown",
+ "fi-css3",
+ "fi-database",
+ "fi-die-five",
+ "fi-die-four",
+ "fi-die-one",
+ "fi-die-six",
+ "fi-die-three",
+ "fi-die-two",
+ "fi-dislike",
+ "fi-dollar-bill",
+ "fi-dollar",
+ "fi-download",
+ "fi-eject",
+ "fi-elevator",
+ "fi-euro",
+ "fi-eye",
+ "fi-fast-forward",
+ "fi-female-symbol",
+ "fi-female",
+ "fi-filter",
+ "fi-first-aid",
+ "fi-flag",
+ "fi-folder-add",
+ "fi-folder-lock",
+ "fi-folder",
+ "fi-foot",
+ "fi-foundation",
+ "fi-graph-bar",
+ "fi-graph-horizontal",
+ "fi-graph-pie",
+ "fi-graph-trend",
+ "fi-guide-dog",
+ "fi-hearing-aid",
+ "fi-heart",
+ "fi-home",
+ "fi-html5",
+ "fi-indent-less",
+ "fi-indent-more",
+ "fi-info",
+ "fi-italic",
+ "fi-key",
+ "fi-laptop",
+ "fi-layout",
+ "fi-lightbulb",
+ "fi-like",
+ "fi-link",
+ "fi-list-bullet",
+ "fi-list-number",
+ "fi-list-thumbnails",
+ "fi-list",
+ "fi-lock",
+ "fi-loop",
+ "fi-magnifying-glass",
+ "fi-mail",
+ "fi-male-female",
+ "fi-male-symbol",
+ "fi-male",
+ "fi-map",
+ "fi-marker",
+ "fi-megaphone",
+ "fi-microphone",
+ "fi-minus-circle",
+ "fi-minus",
+ "fi-mobile-signal",
+ "fi-mobile",
+ "fi-monitor",
+ "fi-mountains",
+ "fi-music",
+ "fi-next",
+ "fi-no-dogs",
+ "fi-no-smoking",
+ "fi-page-add",
+ "fi-page-copy",
+ "fi-page-csv",
+ "fi-page-delete",
+ "fi-page-doc",
+ "fi-page-edit",
+ "fi-page-export-csv",
+ "fi-page-export-doc",
+ "fi-page-export-pdf",
+ "fi-page-export",
+ "fi-page-filled",
+ "fi-page-multiple",
+ "fi-page-pdf",
+ "fi-page-remove",
+ "fi-page-search",
+ "fi-page",
+ "fi-paint-bucket",
+ "fi-paperclip",
+ "fi-pause",
+ "fi-paw",
+ "fi-paypal",
+ "fi-pencil",
+ "fi-photo",
+ "fi-play-circle",
+ "fi-play-video",
+ "fi-play",
+ "fi-plus",
+ "fi-pound",
+ "fi-power",
+ "fi-previous",
+ "fi-price-tag",
+ "fi-pricetag-multiple",
+ "fi-print",
+ "fi-prohibited",
+ "fi-projection-screen",
+ "fi-puzzle",
+ "fi-quote",
+ "fi-record",
+ "fi-refresh",
+ "fi-results-demographics",
+ "fi-results",
+ "fi-rewind-ten",
+ "fi-rewind",
+ "fi-rss",
+ "fi-safety-cone",
+ "fi-save",
+ "fi-share",
+ "fi-sheriff-badge",
+ "fi-shield",
+ "fi-shopping-bag",
+ "fi-shopping-cart",
+ "fi-shuffle",
+ "fi-skull",
+ "fi-social-500px",
+ "fi-social-adobe",
+ "fi-social-amazon",
+ "fi-social-android",
+ "fi-social-apple",
+ "fi-social-behance",
+ "fi-social-bing",
+ "fi-social-blogger",
+ "fi-social-delicious",
+ "fi-social-designer-news",
+ "fi-social-deviant-art",
+ "fi-social-digg",
+ "fi-social-dribbble",
+ "fi-social-drive",
+ "fi-social-dropbox",
+ "fi-social-evernote",
+ "fi-social-facebook",
+ "fi-social-flickr",
+ "fi-social-forrst",
+ "fi-social-foursquare",
+ "fi-social-game-center",
+ "fi-social-github",
+ "fi-social-google-plus",
+ "fi-social-hacker-news",
+ "fi-social-hi5",
+ "fi-social-instagram",
+ "fi-social-joomla",
+ "fi-social-lastfm",
+ "fi-social-linkedin",
+ "fi-social-medium",
+ "fi-social-myspace",
+ "fi-social-orkut",
+ "fi-social-path",
+ "fi-social-picasa",
+ "fi-social-pinterest",
+ "fi-social-rdio",
+ "fi-social-reddit",
+ "fi-social-skillshare",
+ "fi-social-skype",
+ "fi-social-smashing-mag",
+ "fi-social-snapchat",
+ "fi-social-spotify",
+ "fi-social-squidoo",
+ "fi-social-stack-overflow",
+ "fi-social-steam",
+ "fi-social-stumbleupon",
+ "fi-social-treehouse",
+ "fi-social-tumblr",
+ "fi-social-twitter",
+ "fi-social-vimeo",
+ "fi-social-windows",
+ "fi-social-xbox-20",
+ "fi-social-yahoo",
+ "fi-social-yelp",
+ "fi-social-youtube",
+ "fi-social-zerply",
+ "fi-social-zurb",
+ "fi-sound",
+ "fi-star",
+ "fi-stop",
+ "fi-strikethrough",
+ "fi-subscript",
+ "fi-superscript",
+ "fi-tablet-landscape",
+ "fi-tablet-portrait",
+ "fi-target-two",
+ "fi-target",
+ "fi-telephone-accessible",
+ "fi-telephone",
+ "fi-text-color",
+ "fi-thumbnails",
+ "fi-ticket",
+ "fi-torso-business",
+ "fi-torso-female",
+ "fi-torso",
+ "fi-torsos-all-female",
+ "fi-torsos-all",
+ "fi-torsos-female-male",
+ "fi-torsos-male-female",
+ "fi-torsos",
+ "fi-trash",
+ "fi-trees",
+ "fi-trophy",
+ "fi-underline",
+ "fi-universal-access",
+ "fi-unlink",
+ "fi-unlock",
+ "fi-upload-cloud",
+ "fi-upload",
+ "fi-usb",
+ "fi-video",
+ "fi-volume-none",
+ "fi-volume-strike",
+ "fi-volume",
+ "fi-web",
+ "fi-wheelchair",
+ "fi-widget",
+ "fi-wrench",
+ "fi-x-circle",
+ "fi-x",
+ "fi-yen",
+ "fi-zoom-in",
+ "fi-zoom-out"
+ ]
+}
\ No newline at end of file
diff --git a/MessagesMap/css/app.css b/MessagesMap/css/app.css
new file mode 100644
index 000000000..fb43efc10
--- /dev/null
+++ b/MessagesMap/css/app.css
@@ -0,0 +1,517 @@
+*, input, select, textarea, option, button {
+ outline: none!important;
+}
+
+#offCanvasRight {
+ width: 400px;
+ background-color:#f3f3f3;
+}
+
+#offCanvasRight.position-right:not(.is-open) {
+ transform: translateX(100%)!important;
+}
+
+#offCanvasRight.is-closed {
+ transform: translateX(50%)!important;
+}
+
+.title-bar {
+ /*background: #3f3f3f;*/
+ background: #ffffff;
+}
+
+.loader {
+ border: 16px solid #f3f3f3; /* Light grey */
+ border-top: 16px solid #3498db; /* Blue */
+ border-radius: 50%;
+ width: 120px;
+ height: 120px;
+ animation: spin 2s linear infinite;
+ }
+
+ @keyframes spin {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+ }
+
+ .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {
+ border-color: #333333 transparent transparent;
+}
+
+.loading {
+ -webkit-animation:fadein 2s;
+ -moz-animation:fadein 2s;
+ -o-animation:fadein 2s;
+ animation:fadein 2s;
+ }
+ @-moz-keyframes fadein {
+ from {opacity:0}
+ to {opacity:1}
+ }
+ @-webkit-keyframes fadein {
+ from {opacity:0}
+ to {opacity:1}
+ }
+ @-o-keyframes fadein {
+ from {opacity:0}
+ to {opacity:1}
+ }
+ @keyframes fadein {
+ from {opacity:0}
+ to {opacity:1}
+ }
+
+ .spinner-wrapper {
+ min-width:100%;
+ min-height:100%;
+ height:100%;
+ top:0;
+ left:0;
+ background:rgba(255,255,255,0.65);
+ position:absolute;
+ z-index:300;
+ }
+
+ .spinner-text {
+ position:absolute;
+ top:40.2%;
+ left:47%;
+ margin:16px 0 0 35px;
+ color:#333333;
+ font-size:12px;
+ letter-spacing:1px;
+ font-weight:700
+ }
+
+ .spinner {
+ margin:0;
+ display:block;
+ position:absolute;
+ left:45%;
+ top:40%;
+ border:25px solid rgba(100,100,100,0.2);
+ width:1px;
+ height:1px;
+ border-left-color:transparent;
+ border-right-color:transparent;
+ -webkit-border-radius:50px;
+ -moz-border-radius:50px;
+ border-radius:50px;
+ -webkit-animation:spin 1.5s infinite;
+ -moz-animation:spin 1.5s infinite;
+ animation:spin 1.5s infinite;
+ }
+
+ @-webkit-keyframes spin {
+ 0%,100% {-webkit-transform:rotate(0deg) scale(1)}
+ 50% {-webkit-transform:rotate(720deg) scale(0.6)}
+ }
+
+ @-moz-keyframes spin {
+ 0%,100% {-moz-transform:rotate(0deg) scale(1)}
+ 50% {-moz-transform:rotate(720deg) scale(0.6)}
+ }
+ @-o-keyframes spin {
+ 0%,100% {-o-transform:rotate(0deg) scale(1)}
+ 50% {-o-transform:rotate(720deg) scale(0.6)}
+ }
+ @keyframes spin {
+ 0%,100% {transform:rotate(0deg) scale(1)}
+ 50% {transform:rotate(720deg) scale(0.6)}
+ }
+
+ .spinner2-wrapper {
+ min-width:100%;
+ min-height:100%;
+ height:100%;
+ top:0;
+ left:0;
+ background:rgba(211, 211, 211, 0.25);
+ position:absolute;
+ z-index:300;
+ }
+
+ .spinner2-text {
+ position:absolute;
+ top:39.2%;
+ left:40%;
+ margin:16px 0 0 35px;
+ color:#333333;
+ font-size:20px;
+ letter-spacing:1px;
+ font-weight:700;
+ padding:15px;
+ background-color:#ffffff;
+ border-radius: 8px;
+ -webkit-box-shadow: 2px 2px 5px 2px rgba(204,204,204,0.5);
+ box-shadow: 2px 2px 5px 2px rgba(204,204,204,0.5);
+ }
+
+ .spinner2 {
+ margin:0;
+ display:block;
+ position:absolute;
+ left:38%;
+ top:40%;
+ border:25px solid rgba(100,100,100,0.2);
+ width:1px;
+ height:1px;
+ border-left-color:transparent;
+ border-right-color:transparent;
+
+ }
+
+ @-webkit-keyframes spin {
+ 0%,100% {-webkit-transform:rotate(0deg) scale(1)}
+ 50% {-webkit-transform:rotate(720deg) scale(0.6)}
+ }
+
+ @-moz-keyframes spin {
+ 0%,100% {-moz-transform:rotate(0deg) scale(1)}
+ 50% {-moz-transform:rotate(720deg) scale(0.6)}
+ }
+ @-o-keyframes spin {
+ 0%,100% {-o-transform:rotate(0deg) scale(1)}
+ 50% {-o-transform:rotate(720deg) scale(0.6)}
+ }
+ @keyframes spin {
+ 0%,100% {transform:rotate(0deg) scale(1)}
+ 50% {transform:rotate(720deg) scale(0.6)}
+ }
+
+ .menu a, .menu .button {
+ padding: 0.4rem 1rem;
+}
+
+.position-right.is-transition-push {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+
+.switch .switch-paddle {
+ width: 3.25rem;
+}
+
+.switch input:checked ~ .switch-paddle::after {
+ left: 1.3rem;
+}
+
+.block-list {
+ width: 100%;
+ line-height: 1;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ background: #fefefe;
+}
+
+.block-list a {
+ width: 100%;
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+ color: #1779ba;
+}
+
+.block-list img {
+ margin-right: 1rem;
+}
+
+.block-list img.small-icon {
+ margin-right: 0.3rem;
+}
+
+.block-list, .block-list ul {
+ list-style-type: none;
+}
+
+.block-list ul {
+ margin-left: 0;
+ margin-bottom: 0;
+}
+
+.block-list ul li {
+ height: 4.0625rem;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: space-between;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+}
+
+.block-list li > input[type="checkbox"], .block-list li > input[type="radio"] {
+ position: absolute;
+ left: -9999px;
+}
+
+.block-list li > input[type="checkbox"] + label, .block-list li > input[type="radio"] + label {
+ margin: 0;
+ margin-left: 0.5rem;
+ width: 100%;
+ padding-top: 1rem;
+ padding-bottom: 1rem;
+}
+
+.block-list li > input[type="checkbox"] + label.list-header, .block-list li > input[type="radio"] + label.list-header {
+ margin: 0;
+}
+
+.block-list li > input[type="checkbox"]:checked + label::before, .block-list li > input[type="radio"]:checked + label::before {
+ font: normal normal normal 14px/1 FontAwesome;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: "\f00c";
+ background-size: 100% 100%;
+ width: 1.5em;
+ height: 1.5em;
+ color: #1779ba;
+ position: absolute;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%);
+ right: 1rem;
+ pointer-events: none;
+}
+
+.block-list .switch {
+ -webkit-align-self: center;
+ -ms-flex-item-align: center;
+ -ms-grid-row-align: center;
+ align-self: center;
+ margin: 0;
+}
+
+.block-list li {
+ padding-left: 1.25rem;
+ padding-right: 1.25rem;
+}
+
+.block-list li p {
+ margin: 0;
+}
+
+.block-list .section-header-bg {
+ width: 100%;
+ height: 1.25rem;
+ border-bottom: none;
+ border-top: none;
+ color: #fefefe;
+}
+
+.block-list .section-header-bg p {
+ z-index: 10;
+}
+
+.block-list .section-header-bg.gray {
+ background: #cacaca;
+}
+
+.block-list .section-header-bg.gray:before {
+ content: '';
+ height: 1.25rem;
+ position: absolute;
+ width: 1.25rem;
+ background: #cacaca;
+ left: -rem-calc(20);
+}
+
+.block-list .section-header-bg.gray:after {
+ content: '';
+ height: 1.25rem;
+ position: absolute;
+ width: 1.25rem;
+ background: #cacaca;
+ right: -rem-calc(20);
+}
+
+.block-list.block-list-short {
+ margin-top: 2rem;
+ border-top: 1px solid #e6e6e6;
+}
+
+.block-list.block-list-short li {
+ height: 2.5rem;
+}
+
+.block-list.block-list-padded {
+ padding: 0 1.25rem;
+}
+
+.block-list.block-list-padded p {
+ margin-left: 0;
+}
+
+.block-list.with-icons li > a, .block-list.with-icons li > span, .block-list.with-icons li > label {
+ padding-left: 8.925rem;
+}
+
+.block-list.with-icons li img, .block-list.with-icons li .iconic {
+ position: absolute;
+ top: 0.08;
+ left: 0.08;
+ width: 0.64;
+ height: 0.64;
+ border-radius: 8px;
+ pointer-events: none;
+}
+
+.block-list header {
+ padding-left: 0.75rem;
+ padding-bottom: 0.5rem;
+ height: 45px;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-align-items: flex-end;
+ -ms-flex-align: end;
+ align-items: flex-end;
+ cursor: default;
+ background-color: #e6e6e6;
+ font-weight: bold;
+ text-align: left;
+ /*text-transform: uppercase;*/
+}
+
+.block-list li {
+ position: relative;
+ border-bottom: 1px solid #e6e6e6;
+}
+
+.block-list li label {
+ color: #0a0a0a;
+ font-size: 0.875rem;
+ letter-spacing: 0;
+ margin: 0;
+}
+
+.block-list li input, .block-list li select {
+ margin: 0;
+}
+
+.block-list li button {
+ padding: 1rem;
+}
+
+.block-list li button img {
+ margin: 0;
+}
+
+.block-list li:first-child {
+ border-top: none;
+}
+
+.block-list li > a,
+.block-list li > span,
+.block-list li > label {
+ margin-bottom: 0;
+}
+
+.block-list li p {
+ margin-bottom: 0;
+}
+
+.block-list li > span {
+ cursor: default;
+}
+
+.block-list li > a, .block-list li > label {
+ cursor: pointer;
+}
+
+.block-list li.block-list-time-item {
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+}
+
+.block-list li.block-list-time-item div:first-of-type {
+ border-right: 1px solid #1779ba;
+ padding-right: 1.25rem;
+ margin-right: 0.625rem;
+}
+
+.block-list li .list-form {
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+}
+
+.block-list li .list-form label {
+ -webkit-flex-basis: 100%;
+ -ms-flex-preferred-size: 100%;
+ flex-basis: 100%;
+ text-align: right;
+ color: #4D4D4E;
+ font-weight: 400;
+}
+
+.block-list li .list-form [type="text"], .block-list li .list-form [type="tel"] {
+ border: none;
+ box-shadow: none;
+ text-align: center;
+}
+
+.block-list li p {
+ margin-left: 0.5rem;
+}
+
+.block-list li.list-header-selected {
+ padding: 1.25rem 2rem 1.25rem;
+ border: none;
+}
+
+.block-list li.with-chevron::after {
+ font: normal normal normal 14px/1 FontAwesome;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ content: "\f054";
+ display: block;
+ right: 1rem;
+ position: absolute;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%);
+ font-weight: bold;
+ font-size: 1em;
+ color: #8a8a8a;
+}
+
+.block-list li.with-chevron a {
+ color: #8a8a8a;
+}
+
+.block-list li.with-chevron img {
+ vertical-align: bottom;
+}
+
+.block-list li .block-list-label {
+ display: inline-block;
+ float: right;
+ padding: 0;
+ pointer-events: none;
+}
+
+.block-list-item-highlight span,
+.block-list-item-highlight p {
+ color: #1779ba;
+}
+
+#offCanvasRight {
+ background-color: #ffffff;
+}
+
diff --git a/MessagesMap/css/foundation-icons.css b/MessagesMap/css/foundation-icons.css
new file mode 100644
index 000000000..d866a7335
--- /dev/null
+++ b/MessagesMap/css/foundation-icons.css
@@ -0,0 +1,594 @@
+/*
+ * Foundation Icons v 3.0
+ * Made by ZURB 2013 http://zurb.com/playground/foundation-icon-fonts-3
+ * MIT License
+ */
+
+@font-face {
+ font-family: "foundation-icons";
+ src: url("foundation-icons.eot");
+ src: url("foundation-icons.eot?#iefix") format("embedded-opentype"),
+ url("foundation-icons.woff") format("woff"),
+ url("foundation-icons.ttf") format("truetype"),
+ url("foundation-icons.svg#fontcustom") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+
+.fi-address-book:before,
+.fi-alert:before,
+.fi-align-center:before,
+.fi-align-justify:before,
+.fi-align-left:before,
+.fi-align-right:before,
+.fi-anchor:before,
+.fi-annotate:before,
+.fi-archive:before,
+.fi-arrow-down:before,
+.fi-arrow-left:before,
+.fi-arrow-right:before,
+.fi-arrow-up:before,
+.fi-arrows-compress:before,
+.fi-arrows-expand:before,
+.fi-arrows-in:before,
+.fi-arrows-out:before,
+.fi-asl:before,
+.fi-asterisk:before,
+.fi-at-sign:before,
+.fi-background-color:before,
+.fi-battery-empty:before,
+.fi-battery-full:before,
+.fi-battery-half:before,
+.fi-bitcoin-circle:before,
+.fi-bitcoin:before,
+.fi-blind:before,
+.fi-bluetooth:before,
+.fi-bold:before,
+.fi-book-bookmark:before,
+.fi-book:before,
+.fi-bookmark:before,
+.fi-braille:before,
+.fi-burst-new:before,
+.fi-burst-sale:before,
+.fi-burst:before,
+.fi-calendar:before,
+.fi-camera:before,
+.fi-check:before,
+.fi-checkbox:before,
+.fi-clipboard-notes:before,
+.fi-clipboard-pencil:before,
+.fi-clipboard:before,
+.fi-clock:before,
+.fi-closed-caption:before,
+.fi-cloud:before,
+.fi-comment-minus:before,
+.fi-comment-quotes:before,
+.fi-comment-video:before,
+.fi-comment:before,
+.fi-comments:before,
+.fi-compass:before,
+.fi-contrast:before,
+.fi-credit-card:before,
+.fi-crop:before,
+.fi-crown:before,
+.fi-css3:before,
+.fi-database:before,
+.fi-die-five:before,
+.fi-die-four:before,
+.fi-die-one:before,
+.fi-die-six:before,
+.fi-die-three:before,
+.fi-die-two:before,
+.fi-dislike:before,
+.fi-dollar-bill:before,
+.fi-dollar:before,
+.fi-download:before,
+.fi-eject:before,
+.fi-elevator:before,
+.fi-euro:before,
+.fi-eye:before,
+.fi-fast-forward:before,
+.fi-female-symbol:before,
+.fi-female:before,
+.fi-filter:before,
+.fi-first-aid:before,
+.fi-flag:before,
+.fi-folder-add:before,
+.fi-folder-lock:before,
+.fi-folder:before,
+.fi-foot:before,
+.fi-foundation:before,
+.fi-graph-bar:before,
+.fi-graph-horizontal:before,
+.fi-graph-pie:before,
+.fi-graph-trend:before,
+.fi-guide-dog:before,
+.fi-hearing-aid:before,
+.fi-heart:before,
+.fi-home:before,
+.fi-html5:before,
+.fi-indent-less:before,
+.fi-indent-more:before,
+.fi-info:before,
+.fi-italic:before,
+.fi-key:before,
+.fi-laptop:before,
+.fi-layout:before,
+.fi-lightbulb:before,
+.fi-like:before,
+.fi-link:before,
+.fi-list-bullet:before,
+.fi-list-number:before,
+.fi-list-thumbnails:before,
+.fi-list:before,
+.fi-lock:before,
+.fi-loop:before,
+.fi-magnifying-glass:before,
+.fi-mail:before,
+.fi-male-female:before,
+.fi-male-symbol:before,
+.fi-male:before,
+.fi-map:before,
+.fi-marker:before,
+.fi-megaphone:before,
+.fi-microphone:before,
+.fi-minus-circle:before,
+.fi-minus:before,
+.fi-mobile-signal:before,
+.fi-mobile:before,
+.fi-monitor:before,
+.fi-mountains:before,
+.fi-music:before,
+.fi-next:before,
+.fi-no-dogs:before,
+.fi-no-smoking:before,
+.fi-page-add:before,
+.fi-page-copy:before,
+.fi-page-csv:before,
+.fi-page-delete:before,
+.fi-page-doc:before,
+.fi-page-edit:before,
+.fi-page-export-csv:before,
+.fi-page-export-doc:before,
+.fi-page-export-pdf:before,
+.fi-page-export:before,
+.fi-page-filled:before,
+.fi-page-multiple:before,
+.fi-page-pdf:before,
+.fi-page-remove:before,
+.fi-page-search:before,
+.fi-page:before,
+.fi-paint-bucket:before,
+.fi-paperclip:before,
+.fi-pause:before,
+.fi-paw:before,
+.fi-paypal:before,
+.fi-pencil:before,
+.fi-photo:before,
+.fi-play-circle:before,
+.fi-play-video:before,
+.fi-play:before,
+.fi-plus:before,
+.fi-pound:before,
+.fi-power:before,
+.fi-previous:before,
+.fi-price-tag:before,
+.fi-pricetag-multiple:before,
+.fi-print:before,
+.fi-prohibited:before,
+.fi-projection-screen:before,
+.fi-puzzle:before,
+.fi-quote:before,
+.fi-record:before,
+.fi-refresh:before,
+.fi-results-demographics:before,
+.fi-results:before,
+.fi-rewind-ten:before,
+.fi-rewind:before,
+.fi-rss:before,
+.fi-safety-cone:before,
+.fi-save:before,
+.fi-share:before,
+.fi-sheriff-badge:before,
+.fi-shield:before,
+.fi-shopping-bag:before,
+.fi-shopping-cart:before,
+.fi-shuffle:before,
+.fi-skull:before,
+.fi-social-500px:before,
+.fi-social-adobe:before,
+.fi-social-amazon:before,
+.fi-social-android:before,
+.fi-social-apple:before,
+.fi-social-behance:before,
+.fi-social-bing:before,
+.fi-social-blogger:before,
+.fi-social-delicious:before,
+.fi-social-designer-news:before,
+.fi-social-deviant-art:before,
+.fi-social-digg:before,
+.fi-social-dribbble:before,
+.fi-social-drive:before,
+.fi-social-dropbox:before,
+.fi-social-evernote:before,
+.fi-social-facebook:before,
+.fi-social-flickr:before,
+.fi-social-forrst:before,
+.fi-social-foursquare:before,
+.fi-social-game-center:before,
+.fi-social-github:before,
+.fi-social-google-plus:before,
+.fi-social-hacker-news:before,
+.fi-social-hi5:before,
+.fi-social-instagram:before,
+.fi-social-joomla:before,
+.fi-social-lastfm:before,
+.fi-social-linkedin:before,
+.fi-social-medium:before,
+.fi-social-myspace:before,
+.fi-social-orkut:before,
+.fi-social-path:before,
+.fi-social-picasa:before,
+.fi-social-pinterest:before,
+.fi-social-rdio:before,
+.fi-social-reddit:before,
+.fi-social-skillshare:before,
+.fi-social-skype:before,
+.fi-social-smashing-mag:before,
+.fi-social-snapchat:before,
+.fi-social-spotify:before,
+.fi-social-squidoo:before,
+.fi-social-stack-overflow:before,
+.fi-social-steam:before,
+.fi-social-stumbleupon:before,
+.fi-social-treehouse:before,
+.fi-social-tumblr:before,
+.fi-social-twitter:before,
+.fi-social-vimeo:before,
+.fi-social-windows:before,
+.fi-social-xbox:before,
+.fi-social-yahoo:before,
+.fi-social-yelp:before,
+.fi-social-youtube:before,
+.fi-social-zerply:before,
+.fi-social-zurb:before,
+.fi-sound:before,
+.fi-star:before,
+.fi-stop:before,
+.fi-strikethrough:before,
+.fi-subscript:before,
+.fi-superscript:before,
+.fi-tablet-landscape:before,
+.fi-tablet-portrait:before,
+.fi-target-two:before,
+.fi-target:before,
+.fi-telephone-accessible:before,
+.fi-telephone:before,
+.fi-text-color:before,
+.fi-thumbnails:before,
+.fi-ticket:before,
+.fi-torso-business:before,
+.fi-torso-female:before,
+.fi-torso:before,
+.fi-torsos-all-female:before,
+.fi-torsos-all:before,
+.fi-torsos-female-male:before,
+.fi-torsos-male-female:before,
+.fi-torsos:before,
+.fi-trash:before,
+.fi-trees:before,
+.fi-trophy:before,
+.fi-underline:before,
+.fi-universal-access:before,
+.fi-unlink:before,
+.fi-unlock:before,
+.fi-upload-cloud:before,
+.fi-upload:before,
+.fi-usb:before,
+.fi-video:before,
+.fi-volume-none:before,
+.fi-volume-strike:before,
+.fi-volume:before,
+.fi-web:before,
+.fi-wheelchair:before,
+.fi-widget:before,
+.fi-wrench:before,
+.fi-x-circle:before,
+.fi-x:before,
+.fi-yen:before,
+.fi-zoom-in:before,
+.fi-zoom-out:before {
+ font-family: "foundation-icons";
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ display: inline-block;
+ text-decoration: inherit;
+}
+
+.fi-address-book:before { content: "\f100"; }
+.fi-alert:before { content: "\f101"; }
+.fi-align-center:before { content: "\f102"; }
+.fi-align-justify:before { content: "\f103"; }
+.fi-align-left:before { content: "\f104"; }
+.fi-align-right:before { content: "\f105"; }
+.fi-anchor:before { content: "\f106"; }
+.fi-annotate:before { content: "\f107"; }
+.fi-archive:before { content: "\f108"; }
+.fi-arrow-down:before { content: "\f109"; }
+.fi-arrow-left:before { content: "\f10a"; }
+.fi-arrow-right:before { content: "\f10b"; }
+.fi-arrow-up:before { content: "\f10c"; }
+.fi-arrows-compress:before { content: "\f10d"; }
+.fi-arrows-expand:before { content: "\f10e"; }
+.fi-arrows-in:before { content: "\f10f"; }
+.fi-arrows-out:before { content: "\f110"; }
+.fi-asl:before { content: "\f111"; }
+.fi-asterisk:before { content: "\f112"; }
+.fi-at-sign:before { content: "\f113"; }
+.fi-background-color:before { content: "\f114"; }
+.fi-battery-empty:before { content: "\f115"; }
+.fi-battery-full:before { content: "\f116"; }
+.fi-battery-half:before { content: "\f117"; }
+.fi-bitcoin-circle:before { content: "\f118"; }
+.fi-bitcoin:before { content: "\f119"; }
+.fi-blind:before { content: "\f11a"; }
+.fi-bluetooth:before { content: "\f11b"; }
+.fi-bold:before { content: "\f11c"; }
+.fi-book-bookmark:before { content: "\f11d"; }
+.fi-book:before { content: "\f11e"; }
+.fi-bookmark:before { content: "\f11f"; }
+.fi-braille:before { content: "\f120"; }
+.fi-burst-new:before { content: "\f121"; }
+.fi-burst-sale:before { content: "\f122"; }
+.fi-burst:before { content: "\f123"; }
+.fi-calendar:before { content: "\f124"; }
+.fi-camera:before { content: "\f125"; }
+.fi-check:before { content: "\f126"; }
+.fi-checkbox:before { content: "\f127"; }
+.fi-clipboard-notes:before { content: "\f128"; }
+.fi-clipboard-pencil:before { content: "\f129"; }
+.fi-clipboard:before { content: "\f12a"; }
+.fi-clock:before { content: "\f12b"; }
+.fi-closed-caption:before { content: "\f12c"; }
+.fi-cloud:before { content: "\f12d"; }
+.fi-comment-minus:before { content: "\f12e"; }
+.fi-comment-quotes:before { content: "\f12f"; }
+.fi-comment-video:before { content: "\f130"; }
+.fi-comment:before { content: "\f131"; }
+.fi-comments:before { content: "\f132"; }
+.fi-compass:before { content: "\f133"; }
+.fi-contrast:before { content: "\f134"; }
+.fi-credit-card:before { content: "\f135"; }
+.fi-crop:before { content: "\f136"; }
+.fi-crown:before { content: "\f137"; }
+.fi-css3:before { content: "\f138"; }
+.fi-database:before { content: "\f139"; }
+.fi-die-five:before { content: "\f13a"; }
+.fi-die-four:before { content: "\f13b"; }
+.fi-die-one:before { content: "\f13c"; }
+.fi-die-six:before { content: "\f13d"; }
+.fi-die-three:before { content: "\f13e"; }
+.fi-die-two:before { content: "\f13f"; }
+.fi-dislike:before { content: "\f140"; }
+.fi-dollar-bill:before { content: "\f141"; }
+.fi-dollar:before { content: "\f142"; }
+.fi-download:before { content: "\f143"; }
+.fi-eject:before { content: "\f144"; }
+.fi-elevator:before { content: "\f145"; }
+.fi-euro:before { content: "\f146"; }
+.fi-eye:before { content: "\f147"; }
+.fi-fast-forward:before { content: "\f148"; }
+.fi-female-symbol:before { content: "\f149"; }
+.fi-female:before { content: "\f14a"; }
+.fi-filter:before { content: "\f14b"; }
+.fi-first-aid:before { content: "\f14c"; }
+.fi-flag:before { content: "\f14d"; }
+.fi-folder-add:before { content: "\f14e"; }
+.fi-folder-lock:before { content: "\f14f"; }
+.fi-folder:before { content: "\f150"; }
+.fi-foot:before { content: "\f151"; }
+.fi-foundation:before { content: "\f152"; }
+.fi-graph-bar:before { content: "\f153"; }
+.fi-graph-horizontal:before { content: "\f154"; }
+.fi-graph-pie:before { content: "\f155"; }
+.fi-graph-trend:before { content: "\f156"; }
+.fi-guide-dog:before { content: "\f157"; }
+.fi-hearing-aid:before { content: "\f158"; }
+.fi-heart:before { content: "\f159"; }
+.fi-home:before { content: "\f15a"; }
+.fi-html5:before { content: "\f15b"; }
+.fi-indent-less:before { content: "\f15c"; }
+.fi-indent-more:before { content: "\f15d"; }
+.fi-info:before { content: "\f15e"; }
+.fi-italic:before { content: "\f15f"; }
+.fi-key:before { content: "\f160"; }
+.fi-laptop:before { content: "\f161"; }
+.fi-layout:before { content: "\f162"; }
+.fi-lightbulb:before { content: "\f163"; }
+.fi-like:before { content: "\f164"; }
+.fi-link:before { content: "\f165"; }
+.fi-list-bullet:before { content: "\f166"; }
+.fi-list-number:before { content: "\f167"; }
+.fi-list-thumbnails:before { content: "\f168"; }
+.fi-list:before { content: "\f169"; }
+.fi-lock:before { content: "\f16a"; }
+.fi-loop:before { content: "\f16b"; }
+.fi-magnifying-glass:before { content: "\f16c"; }
+.fi-mail:before { content: "\f16d"; }
+.fi-male-female:before { content: "\f16e"; }
+.fi-male-symbol:before { content: "\f16f"; }
+.fi-male:before { content: "\f170"; }
+.fi-map:before { content: "\f171"; }
+.fi-marker:before { content: "\f172"; }
+.fi-megaphone:before { content: "\f173"; }
+.fi-microphone:before { content: "\f174"; }
+.fi-minus-circle:before { content: "\f175"; }
+.fi-minus:before { content: "\f176"; }
+.fi-mobile-signal:before { content: "\f177"; }
+.fi-mobile:before { content: "\f178"; }
+.fi-monitor:before { content: "\f179"; }
+.fi-mountains:before { content: "\f17a"; }
+.fi-music:before { content: "\f17b"; }
+.fi-next:before { content: "\f17c"; }
+.fi-no-dogs:before { content: "\f17d"; }
+.fi-no-smoking:before { content: "\f17e"; }
+.fi-page-add:before { content: "\f17f"; }
+.fi-page-copy:before { content: "\f180"; }
+.fi-page-csv:before { content: "\f181"; }
+.fi-page-delete:before { content: "\f182"; }
+.fi-page-doc:before { content: "\f183"; }
+.fi-page-edit:before { content: "\f184"; }
+.fi-page-export-csv:before { content: "\f185"; }
+.fi-page-export-doc:before { content: "\f186"; }
+.fi-page-export-pdf:before { content: "\f187"; }
+.fi-page-export:before { content: "\f188"; }
+.fi-page-filled:before { content: "\f189"; }
+.fi-page-multiple:before { content: "\f18a"; }
+.fi-page-pdf:before { content: "\f18b"; }
+.fi-page-remove:before { content: "\f18c"; }
+.fi-page-search:before { content: "\f18d"; }
+.fi-page:before { content: "\f18e"; }
+.fi-paint-bucket:before { content: "\f18f"; }
+.fi-paperclip:before { content: "\f190"; }
+.fi-pause:before { content: "\f191"; }
+.fi-paw:before { content: "\f192"; }
+.fi-paypal:before { content: "\f193"; }
+.fi-pencil:before { content: "\f194"; }
+.fi-photo:before { content: "\f195"; }
+.fi-play-circle:before { content: "\f196"; }
+.fi-play-video:before { content: "\f197"; }
+.fi-play:before { content: "\f198"; }
+.fi-plus:before { content: "\f199"; }
+.fi-pound:before { content: "\f19a"; }
+.fi-power:before { content: "\f19b"; }
+.fi-previous:before { content: "\f19c"; }
+.fi-price-tag:before { content: "\f19d"; }
+.fi-pricetag-multiple:before { content: "\f19e"; }
+.fi-print:before { content: "\f19f"; }
+.fi-prohibited:before { content: "\f1a0"; }
+.fi-projection-screen:before { content: "\f1a1"; }
+.fi-puzzle:before { content: "\f1a2"; }
+.fi-quote:before { content: "\f1a3"; }
+.fi-record:before { content: "\f1a4"; }
+.fi-refresh:before { content: "\f1a5"; }
+.fi-results-demographics:before { content: "\f1a6"; }
+.fi-results:before { content: "\f1a7"; }
+.fi-rewind-ten:before { content: "\f1a8"; }
+.fi-rewind:before { content: "\f1a9"; }
+.fi-rss:before { content: "\f1aa"; }
+.fi-safety-cone:before { content: "\f1ab"; }
+.fi-save:before { content: "\f1ac"; }
+.fi-share:before { content: "\f1ad"; }
+.fi-sheriff-badge:before { content: "\f1ae"; }
+.fi-shield:before { content: "\f1af"; }
+.fi-shopping-bag:before { content: "\f1b0"; }
+.fi-shopping-cart:before { content: "\f1b1"; }
+.fi-shuffle:before { content: "\f1b2"; }
+.fi-skull:before { content: "\f1b3"; }
+.fi-social-500px:before { content: "\f1b4"; }
+.fi-social-adobe:before { content: "\f1b5"; }
+.fi-social-amazon:before { content: "\f1b6"; }
+.fi-social-android:before { content: "\f1b7"; }
+.fi-social-apple:before { content: "\f1b8"; }
+.fi-social-behance:before { content: "\f1b9"; }
+.fi-social-bing:before { content: "\f1ba"; }
+.fi-social-blogger:before { content: "\f1bb"; }
+.fi-social-delicious:before { content: "\f1bc"; }
+.fi-social-designer-news:before { content: "\f1bd"; }
+.fi-social-deviant-art:before { content: "\f1be"; }
+.fi-social-digg:before { content: "\f1bf"; }
+.fi-social-dribbble:before { content: "\f1c0"; }
+.fi-social-drive:before { content: "\f1c1"; }
+.fi-social-dropbox:before { content: "\f1c2"; }
+.fi-social-evernote:before { content: "\f1c3"; }
+.fi-social-facebook:before { content: "\f1c4"; }
+.fi-social-flickr:before { content: "\f1c5"; }
+.fi-social-forrst:before { content: "\f1c6"; }
+.fi-social-foursquare:before { content: "\f1c7"; }
+.fi-social-game-center:before { content: "\f1c8"; }
+.fi-social-github:before { content: "\f1c9"; }
+.fi-social-google-plus:before { content: "\f1ca"; }
+.fi-social-hacker-news:before { content: "\f1cb"; }
+.fi-social-hi5:before { content: "\f1cc"; }
+.fi-social-instagram:before { content: "\f1cd"; }
+.fi-social-joomla:before { content: "\f1ce"; }
+.fi-social-lastfm:before { content: "\f1cf"; }
+.fi-social-linkedin:before { content: "\f1d0"; }
+.fi-social-medium:before { content: "\f1d1"; }
+.fi-social-myspace:before { content: "\f1d2"; }
+.fi-social-orkut:before { content: "\f1d3"; }
+.fi-social-path:before { content: "\f1d4"; }
+.fi-social-picasa:before { content: "\f1d5"; }
+.fi-social-pinterest:before { content: "\f1d6"; }
+.fi-social-rdio:before { content: "\f1d7"; }
+.fi-social-reddit:before { content: "\f1d8"; }
+.fi-social-skillshare:before { content: "\f1d9"; }
+.fi-social-skype:before { content: "\f1da"; }
+.fi-social-smashing-mag:before { content: "\f1db"; }
+.fi-social-snapchat:before { content: "\f1dc"; }
+.fi-social-spotify:before { content: "\f1dd"; }
+.fi-social-squidoo:before { content: "\f1de"; }
+.fi-social-stack-overflow:before { content: "\f1df"; }
+.fi-social-steam:before { content: "\f1e0"; }
+.fi-social-stumbleupon:before { content: "\f1e1"; }
+.fi-social-treehouse:before { content: "\f1e2"; }
+.fi-social-tumblr:before { content: "\f1e3"; }
+.fi-social-twitter:before { content: "\f1e4"; }
+.fi-social-vimeo:before { content: "\f1e5"; }
+.fi-social-windows:before { content: "\f1e6"; }
+.fi-social-xbox:before { content: "\f1e7"; }
+.fi-social-yahoo:before { content: "\f1e8"; }
+.fi-social-yelp:before { content: "\f1e9"; }
+.fi-social-youtube:before { content: "\f1ea"; }
+.fi-social-zerply:before { content: "\f1eb"; }
+.fi-social-zurb:before { content: "\f1ec"; }
+.fi-sound:before { content: "\f1ed"; }
+.fi-star:before { content: "\f1ee"; }
+.fi-stop:before { content: "\f1ef"; }
+.fi-strikethrough:before { content: "\f1f0"; }
+.fi-subscript:before { content: "\f1f1"; }
+.fi-superscript:before { content: "\f1f2"; }
+.fi-tablet-landscape:before { content: "\f1f3"; }
+.fi-tablet-portrait:before { content: "\f1f4"; }
+.fi-target-two:before { content: "\f1f5"; }
+.fi-target:before { content: "\f1f6"; }
+.fi-telephone-accessible:before { content: "\f1f7"; }
+.fi-telephone:before { content: "\f1f8"; }
+.fi-text-color:before { content: "\f1f9"; }
+.fi-thumbnails:before { content: "\f1fa"; }
+.fi-ticket:before { content: "\f1fb"; }
+.fi-torso-business:before { content: "\f1fc"; }
+.fi-torso-female:before { content: "\f1fd"; }
+.fi-torso:before { content: "\f1fe"; }
+.fi-torsos-all-female:before { content: "\f1ff"; }
+.fi-torsos-all:before { content: "\f200"; }
+.fi-torsos-female-male:before { content: "\f201"; }
+.fi-torsos-male-female:before { content: "\f202"; }
+.fi-torsos:before { content: "\f203"; }
+.fi-trash:before { content: "\f204"; }
+.fi-trees:before { content: "\f205"; }
+.fi-trophy:before { content: "\f206"; }
+.fi-underline:before { content: "\f207"; }
+.fi-universal-access:before { content: "\f208"; }
+.fi-unlink:before { content: "\f209"; }
+.fi-unlock:before { content: "\f20a"; }
+.fi-upload-cloud:before { content: "\f20b"; }
+.fi-upload:before { content: "\f20c"; }
+.fi-usb:before { content: "\f20d"; }
+.fi-video:before { content: "\f20e"; }
+.fi-volume-none:before { content: "\f20f"; }
+.fi-volume-strike:before { content: "\f210"; }
+.fi-volume:before { content: "\f211"; }
+.fi-web:before { content: "\f212"; }
+.fi-wheelchair:before { content: "\f213"; }
+.fi-widget:before { content: "\f214"; }
+.fi-wrench:before { content: "\f215"; }
+.fi-x-circle:before { content: "\f216"; }
+.fi-x:before { content: "\f217"; }
+.fi-yen:before { content: "\f218"; }
+.fi-zoom-in:before { content: "\f219"; }
+.fi-zoom-out:before { content: "\f21a"; }
diff --git a/MessagesMap/css/foundation-icons.eot b/MessagesMap/css/foundation-icons.eot
new file mode 100644
index 000000000..1746ad407
Binary files /dev/null and b/MessagesMap/css/foundation-icons.eot differ
diff --git a/MessagesMap/css/foundation-icons.svg b/MessagesMap/css/foundation-icons.svg
new file mode 100644
index 000000000..4e014ff89
--- /dev/null
+++ b/MessagesMap/css/foundation-icons.svg
@@ -0,0 +1,970 @@
+
+
+
+
+
+Created by FontForge 20120731 at Fri Aug 23 09:25:55 2013
+ By Jordan Humphreys
+Created by Jordan Humphreys with FontForge 2.0 (http://fontforge.sf.net)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/foundation-icons.ttf b/MessagesMap/css/foundation-icons.ttf
new file mode 100644
index 000000000..6cce217dd
Binary files /dev/null and b/MessagesMap/css/foundation-icons.ttf differ
diff --git a/MessagesMap/css/foundation-icons.woff b/MessagesMap/css/foundation-icons.woff
new file mode 100644
index 000000000..e2cfe25dd
Binary files /dev/null and b/MessagesMap/css/foundation-icons.woff differ
diff --git a/MessagesMap/css/foundation.css b/MessagesMap/css/foundation.css
new file mode 100644
index 000000000..533aa7b7c
--- /dev/null
+++ b/MessagesMap/css/foundation.css
@@ -0,0 +1,6722 @@
+@charset "UTF-8";
+/**
+ * Foundation for Sites
+ * Version 6.6.3
+ * https://get.foundation
+ * Licensed under MIT Open Source
+ */
+@media print, screen and (min-width: 40em) {
+ .reveal, .reveal.tiny, .reveal.small, .reveal.large {
+ right: auto;
+ left: auto;
+ margin: 0 auto; } }
+
+/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
+html {
+ line-height: 1.15;
+ -webkit-text-size-adjust: 100%;
+ overflow: hidden;
+}
+
+body {
+ margin: 0; }
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0; }
+
+hr {
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+ overflow: visible; }
+
+pre {
+ font-family: monospace, monospace;
+ font-size: 1em; }
+
+a {
+ background-color: transparent; }
+
+abbr[title] {
+ border-bottom: none;
+ text-decoration: underline;
+ -webkit-text-decoration: underline dotted;
+ text-decoration: underline dotted; }
+
+b,
+strong {
+ font-weight: bolder; }
+
+code,
+kbd,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em; }
+
+small {
+ font-size: 80%; }
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline; }
+
+sub {
+ bottom: -0.25em; }
+
+sup {
+ top: -0.5em; }
+
+img {
+ border-style: none; }
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-family: inherit;
+ font-size: 100%;
+ line-height: 1.15;
+ margin: 0; }
+
+button,
+input {
+ overflow: visible; }
+
+button,
+select {
+ text-transform: none; }
+
+button,
+[type="button"],
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button; }
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+ border-style: none;
+ padding: 0; }
+
+button:-moz-focusring,
+[type="button"]:-moz-focusring,
+[type="reset"]:-moz-focusring,
+[type="submit"]:-moz-focusring {
+ outline: 1px dotted ButtonText; }
+
+fieldset {
+ padding: 0.35em 0.75em 0.625em; }
+
+legend {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ color: inherit;
+ display: table;
+ max-width: 100%;
+ padding: 0;
+ white-space: normal; }
+
+progress {
+ vertical-align: baseline; }
+
+textarea {
+ overflow: auto; }
+
+[type="checkbox"],
+[type="radio"] {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0; }
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto; }
+
+[type="search"] {
+ -webkit-appearance: textfield;
+ outline-offset: -2px; }
+
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none; }
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button;
+ font: inherit; }
+
+details {
+ display: block; }
+
+summary {
+ display: list-item; }
+
+template {
+ display: none; }
+
+[hidden] {
+ display: none; }
+
+.foundation-mq {
+ font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"; }
+
+html {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ font-size: 100%; }
+
+*,
+*::before,
+*::after {
+ -webkit-box-sizing: inherit;
+ box-sizing: inherit; }
+
+body {
+ margin: 0;
+ padding: 0;
+ background: #fefefe;
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+ font-weight: normal;
+ line-height: 1.5;
+ color: #0a0a0a;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale; }
+
+img {
+ display: inline-block;
+ vertical-align: middle;
+ max-width: 100%;
+ height: auto;
+ -ms-interpolation-mode: bicubic; }
+
+textarea {
+ height: auto;
+ min-height: 50px;
+ border-radius: 3px; }
+
+select {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ border-radius: 3px; }
+
+.map_canvas img,
+.map_canvas embed,
+.map_canvas object,
+.mqa-display img,
+.mqa-display embed,
+.mqa-display object {
+ max-width: none !important; }
+
+button {
+ padding: 0;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border: 0;
+ border-radius: 3px;
+ background: transparent;
+ line-height: 1;
+ cursor: auto; }
+ [data-whatinput='mouse'] button {
+ outline: 0; }
+
+pre {
+ overflow: auto; }
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-family: inherit; }
+
+.is-visible {
+ display: block !important; }
+
+.is-hidden {
+ display: none !important; }
+
+div,
+dl,
+dt,
+dd,
+ul,
+ol,
+li,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+pre,
+form,
+p,
+blockquote,
+th,
+td {
+ margin: 0;
+ padding: 0; }
+
+p {
+ margin-bottom: 1rem;
+ font-size: inherit;
+ line-height: 1.6;
+ text-rendering: optimizeLegibility; }
+
+em,
+i {
+ font-style: italic;
+ line-height: inherit; }
+
+strong,
+b {
+ font-weight: bold;
+ line-height: inherit; }
+
+small {
+ font-size: 80%;
+ line-height: inherit; }
+
+h1, .h1,
+h2, .h2,
+h3, .h3,
+h4, .h4,
+h5, .h5,
+h6, .h6 {
+ font-family: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ color: inherit;
+ text-rendering: optimizeLegibility; }
+ h1 small, .h1 small,
+ h2 small, .h2 small,
+ h3 small, .h3 small,
+ h4 small, .h4 small,
+ h5 small, .h5 small,
+ h6 small, .h6 small {
+ line-height: 0;
+ color: #cacaca; }
+
+h1, .h1 {
+ font-size: 1.5rem;
+ line-height: 1.4;
+ margin-top: 0;
+ margin-bottom: 0.5rem; }
+
+h2, .h2 {
+ font-size: 1.25rem;
+ line-height: 1.4;
+ margin-top: 0;
+ margin-bottom: 0.5rem; }
+
+h3, .h3 {
+ font-size: 1.1875rem;
+ line-height: 1.4;
+ margin-top: 0;
+ margin-bottom: 0.5rem; }
+
+h4, .h4 {
+ font-size: 1.125rem;
+ line-height: 1.4;
+ margin-top: 0;
+ margin-bottom: 0.5rem; }
+
+h5, .h5 {
+ font-size: 1.0625rem;
+ line-height: 1.4;
+ margin-top: 0;
+ margin-bottom: 0.5rem; }
+
+h6, .h6 {
+ font-size: 1rem;
+ line-height: 1.4;
+ margin-top: 0;
+ margin-bottom: 0.5rem; }
+
+@media print, screen and (min-width: 40em) {
+ h1, .h1 {
+ font-size: 3rem; }
+ h2, .h2 {
+ font-size: 2.5rem; }
+ h3, .h3 {
+ font-size: 1.9375rem; }
+ h4, .h4 {
+ font-size: 1.5625rem; }
+ h5, .h5 {
+ font-size: 1.25rem; }
+ h6, .h6 {
+ font-size: 1rem; } }
+
+a {
+ line-height: inherit;
+ color: #2ba6cb;
+ text-decoration: none;
+ cursor: pointer; }
+ a:hover, a:focus {
+ color: #258faf; }
+ a img {
+ border: 0; }
+
+hr {
+ clear: both;
+ max-width: 62.5rem;
+ height: 0;
+ margin: 1.25rem auto;
+ border-top: 0;
+ border-right: 0;
+ border-bottom: 1px solid #cacaca;
+ border-left: 0; }
+
+ul,
+ol,
+dl {
+ margin-bottom: 1rem;
+ list-style-position: outside;
+ line-height: 1.6; }
+
+li {
+ font-size: inherit; }
+
+ul {
+ margin-left: 1.25rem;
+ list-style-type: disc; }
+
+ol {
+ margin-left: 1.25rem; }
+
+ul ul, ol ul, ul ol, ol ol {
+ margin-left: 1.25rem;
+ margin-bottom: 0; }
+
+dl {
+ margin-bottom: 1rem; }
+ dl dt {
+ margin-bottom: 0.3rem;
+ font-weight: bold; }
+
+blockquote {
+ margin: 0 0 1rem;
+ padding: 0.5625rem 1.25rem 0 1.1875rem;
+ border-left: 1px solid #cacaca; }
+ blockquote, blockquote p {
+ line-height: 1.6;
+ color: #8a8a8a; }
+
+abbr, abbr[title] {
+ border-bottom: 1px dotted #0a0a0a;
+ cursor: help;
+ text-decoration: none; }
+
+figure {
+ margin: 0; }
+
+kbd {
+ margin: 0;
+ padding: 0.125rem 0.25rem 0;
+ background-color: #e6e6e6;
+ font-family: Consolas, "Liberation Mono", Courier, monospace;
+ color: #0a0a0a;
+ border-radius: 3px; }
+
+.subheader {
+ margin-top: 0.2rem;
+ margin-bottom: 0.5rem;
+ font-weight: normal;
+ line-height: 1.4;
+ color: #8a8a8a; }
+
+.lead {
+ font-size: 125%;
+ line-height: 1.6; }
+
+.stat {
+ font-size: 2.5rem;
+ line-height: 1; }
+ p + .stat {
+ margin-top: -1rem; }
+
+ul.no-bullet, ol.no-bullet {
+ margin-left: 0;
+ list-style: none; }
+
+.cite-block, cite {
+ display: block;
+ color: #8a8a8a;
+ font-size: 0.8125rem; }
+ .cite-block:before, cite:before {
+ content: "— "; }
+
+.code-inline, code {
+ border: 1px solid #cacaca;
+ background-color: #e6e6e6;
+ font-family: Consolas, "Liberation Mono", Courier, monospace;
+ font-weight: normal;
+ color: #0a0a0a;
+ display: inline;
+ max-width: 100%;
+ word-wrap: break-word;
+ padding: 0.125rem 0.3125rem 0.0625rem; }
+
+.code-block {
+ border: 1px solid #cacaca;
+ background-color: #e6e6e6;
+ font-family: Consolas, "Liberation Mono", Courier, monospace;
+ font-weight: normal;
+ color: #0a0a0a;
+ display: block;
+ overflow: auto;
+ white-space: pre;
+ padding: 1rem;
+ margin-bottom: 1.5rem; }
+
+.text-left {
+ text-align: left; }
+
+.text-right {
+ text-align: right; }
+
+.text-center {
+ text-align: center; }
+
+.text-justify {
+ text-align: justify; }
+
+@media print, screen and (min-width: 40em) {
+ .medium-text-left {
+ text-align: left; }
+ .medium-text-right {
+ text-align: right; }
+ .medium-text-center {
+ text-align: center; }
+ .medium-text-justify {
+ text-align: justify; } }
+
+@media print, screen and (min-width: 64em) {
+ .large-text-left {
+ text-align: left; }
+ .large-text-right {
+ text-align: right; }
+ .large-text-center {
+ text-align: center; }
+ .large-text-justify {
+ text-align: justify; } }
+
+.show-for-print {
+ display: none !important; }
+
+@media print {
+ * {
+ background: transparent !important;
+ color: black !important;
+ -webkit-print-color-adjust: economy;
+ color-adjust: economy;
+ -webkit-box-shadow: none !important;
+ box-shadow: none !important;
+ text-shadow: none !important; }
+ .show-for-print {
+ display: block !important; }
+ .hide-for-print {
+ display: none !important; }
+ table.show-for-print {
+ display: table !important; }
+ thead.show-for-print {
+ display: table-header-group !important; }
+ tbody.show-for-print {
+ display: table-row-group !important; }
+ tr.show-for-print {
+ display: table-row !important; }
+ td.show-for-print {
+ display: table-cell !important; }
+ th.show-for-print {
+ display: table-cell !important; }
+ a,
+ a:visited {
+ text-decoration: underline; }
+ a[href]:after {
+ content: " (" attr(href) ")"; }
+ .ir a:after,
+ a[href^='javascript:']:after,
+ a[href^='#']:after {
+ content: ''; }
+ abbr[title]:after {
+ content: " (" attr(title) ")"; }
+ pre,
+ blockquote {
+ border: 1px solid #8a8a8a;
+ page-break-inside: avoid; }
+ thead {
+ display: table-header-group; }
+ tr,
+ img {
+ page-break-inside: avoid; }
+ img {
+ max-width: 100% !important; }
+ @page {
+ margin: 0.5cm; }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3; }
+ h2,
+ h3 {
+ page-break-after: avoid; }
+ .print-break-inside {
+ page-break-inside: auto; } }
+
+[type='text'], [type='password'], [type='date'], [type='datetime'], [type='datetime-local'], [type='month'], [type='week'], [type='email'], [type='number'], [type='search'], [type='tel'], [type='time'], [type='url'], [type='color'],
+textarea {
+ display: block;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 100%;
+ height: 2.4375rem;
+ margin: 0 0 1rem;
+ padding: 0.5rem;
+ border: 1px solid #cacaca;
+ border-radius: 3px;
+ background-color: #fefefe;
+ -webkit-box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1);
+ font-family: inherit;
+ font-size: 1rem;
+ font-weight: normal;
+ line-height: 1.5;
+ color: #0a0a0a;
+ -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
+ transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
+ transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
+ transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none; }
+ [type='text']:focus, [type='password']:focus, [type='date']:focus, [type='datetime']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='week']:focus, [type='email']:focus, [type='number']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='url']:focus, [type='color']:focus,
+ textarea:focus {
+ outline: none;
+ border: 1px solid #8a8a8a;
+ background-color: #fefefe;
+ -webkit-box-shadow: 0 0 5px #cacaca;
+ box-shadow: 0 0 5px #cacaca;
+ -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
+ transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
+ transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
+ transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }
+
+textarea {
+ max-width: 100%; }
+ textarea[rows] {
+ height: auto; }
+
+input:disabled, input[readonly],
+textarea:disabled,
+textarea[readonly] {
+ background-color: #e6e6e6;
+ cursor: not-allowed; }
+
+[type='submit'],
+[type='button'] {
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border-radius: 3px; }
+
+input[type='search'] {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box; }
+
+::-webkit-input-placeholder {
+ color: #cacaca; }
+
+::-moz-placeholder {
+ color: #cacaca; }
+
+:-ms-input-placeholder {
+ color: #cacaca; }
+
+::-ms-input-placeholder {
+ color: #cacaca; }
+
+::placeholder {
+ color: #cacaca; }
+
+[type='file'],
+[type='checkbox'],
+[type='radio'] {
+ margin: 0 0 1rem; }
+
+[type='checkbox'] + label,
+[type='radio'] + label {
+ display: inline-block;
+ vertical-align: baseline;
+ margin-left: 0.5rem;
+ margin-right: 1rem;
+ margin-bottom: 0; }
+ [type='checkbox'] + label[for],
+ [type='radio'] + label[for] {
+ cursor: pointer; }
+
+label > [type='checkbox'],
+label > [type='radio'] {
+ margin-right: 0.5rem; }
+
+[type='file'] {
+ width: 100%; }
+
+label {
+ display: block;
+ margin: 0;
+ font-size: 0.875rem;
+ font-weight: normal;
+ line-height: 1.8;
+ color: #0a0a0a; }
+ label.middle {
+ margin: 0 0 1rem;
+ padding: 0.5625rem 0; }
+
+.help-text {
+ margin-top: -0.5rem;
+ font-size: 0.8125rem;
+ font-style: italic;
+ color: #0a0a0a; }
+
+.input-group {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ width: 100%;
+ margin-bottom: 1rem;
+ -webkit-box-align: stretch;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch; }
+ .input-group > :first-child, .input-group > :first-child.input-group-button > * {
+ border-radius: 3px 0 0 3px; }
+ .input-group > :last-child, .input-group > :last-child.input-group-button > * {
+ border-radius: 0 3px 3px 0; }
+
+.input-group-label, .input-group-field, .input-group-button, .input-group-button a,
+.input-group-button input,
+.input-group-button button,
+.input-group-button label {
+ margin: 0;
+ white-space: nowrap; }
+
+.input-group-label {
+ padding: 0 1rem;
+ border: 1px solid #cacaca;
+ background: #e6e6e6;
+ color: #0a0a0a;
+ text-align: center;
+ white-space: nowrap;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center; }
+ .input-group-label:first-child {
+ border-right: 0; }
+ .input-group-label:last-child {
+ border-left: 0; }
+
+.input-group-field {
+ border-radius: 0;
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px;
+ min-width: 0; }
+
+.input-group-button {
+ padding-top: 0;
+ padding-bottom: 0;
+ text-align: center;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto; }
+ .input-group-button a,
+ .input-group-button input,
+ .input-group-button button,
+ .input-group-button label {
+ -webkit-align-self: stretch;
+ -ms-flex-item-align: stretch;
+ align-self: stretch;
+ height: auto;
+ padding-top: 0;
+ padding-bottom: 0;
+ font-size: 1rem; }
+
+fieldset {
+ margin: 0;
+ padding: 0;
+ border: 0; }
+
+legend {
+ max-width: 100%;
+ margin-bottom: 0.5rem; }
+
+.fieldset {
+ margin: 1.125rem 0;
+ padding: 1.25rem;
+ border: 1px solid #cacaca; }
+ .fieldset legend {
+ margin: 0;
+ margin-left: -0.1875rem;
+ padding: 0 0.1875rem; }
+
+select {
+ height: 2.4375rem;
+ margin: 0 0 1rem;
+ padding: 0.5rem;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+ border: 1px solid #cacaca;
+ border-radius: 3px;
+ background-color: #fefefe;
+ font-family: inherit;
+ font-size: 1rem;
+ font-weight: normal;
+ line-height: 1.5;
+ color: #0a0a0a;
+ background-image: url("data:image/svg+xml;utf8, ");
+ background-origin: content-box;
+ background-position: right -1rem center;
+ background-repeat: no-repeat;
+ background-size: 9px 6px;
+ padding-right: 1.5rem;
+ -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
+ transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
+ transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
+ transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }
+ @media screen and (min-width: 0\0) {
+ select {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg=="); } }
+ select:focus {
+ outline: none;
+ border: 1px solid #8a8a8a;
+ background-color: #fefefe;
+ -webkit-box-shadow: 0 0 5px #cacaca;
+ box-shadow: 0 0 5px #cacaca;
+ -webkit-transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
+ transition: border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s;
+ transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
+ transition: box-shadow 0.5s, border-color 0.25s ease-in-out, -webkit-box-shadow 0.5s; }
+ select:disabled {
+ background-color: #e6e6e6;
+ cursor: not-allowed; }
+ select::-ms-expand {
+ display: none; }
+ select[multiple] {
+ height: auto;
+ background-image: none; }
+ select:not([multiple]) {
+ padding-top: 0;
+ padding-bottom: 0; }
+
+.is-invalid-input:not(:focus) {
+ border-color: #c60f13;
+ background-color: #f8e6e7; }
+ .is-invalid-input:not(:focus)::-webkit-input-placeholder {
+ color: #c60f13; }
+ .is-invalid-input:not(:focus)::-moz-placeholder {
+ color: #c60f13; }
+ .is-invalid-input:not(:focus):-ms-input-placeholder {
+ color: #c60f13; }
+ .is-invalid-input:not(:focus)::-ms-input-placeholder {
+ color: #c60f13; }
+ .is-invalid-input:not(:focus)::placeholder {
+ color: #c60f13; }
+
+.is-invalid-label {
+ color: #c60f13; }
+
+.form-error {
+ display: none;
+ margin-top: -0.5rem;
+ margin-bottom: 1rem;
+ font-size: 0.75rem;
+ font-weight: bold;
+ color: #c60f13; }
+ .form-error.is-visible {
+ display: block; }
+
+.text-hide {
+ font: 0/0 a !important;
+ color: transparent !important;
+ text-shadow: none !important;
+ background-color: transparent !important;
+ border: 0 !important; }
+
+.text-truncate {
+ max-width: 100% !important;
+ overflow: hidden !important;
+ text-overflow: ellipsis;
+ white-space: nowrap !important; }
+
+.text-nowrap {
+ white-space: nowrap !important; }
+
+.text-wrap {
+ word-wrap: break-word !important; }
+
+.text-lowercase {
+ text-transform: lowercase !important; }
+
+.text-uppercase {
+ text-transform: uppercase !important; }
+
+.text-capitalize {
+ text-transform: capitalize !important; }
+
+.text-overline {
+ text-decoration: overline !important; }
+
+.text-underline {
+ text-decoration: underline !important; }
+
+.text-line-through {
+ text-decoration: line-through !important; }
+
+.font-wide {
+ letter-spacing: 0.25rem; }
+
+.font-normal {
+ font-weight: normal; }
+
+.font-bold {
+ font-weight: bold; }
+
+.font-italic {
+ font-style: italic !important; }
+
+ul.list-disc {
+ list-style-type: disc !important; }
+
+ul.list-circle {
+ list-style-type: circle !important; }
+
+ul.list-square {
+ list-style-type: square !important; }
+
+ol.list-decimal {
+ list-style-type: decimal !important; }
+
+ol.list-lower-alpha {
+ list-style-type: lower-alpha !important; }
+
+ol.list-lower-latin {
+ list-style-type: lower-latin !important; }
+
+ol.list-lower-roman {
+ list-style-type: lower-roman !important; }
+
+ol.list-upper-alpha {
+ list-style-type: upper-alpha !important; }
+
+ol.list-upper-latin {
+ list-style-type: upper-latin !important; }
+
+ol.list-upper-roman {
+ list-style-type: upper-roman !important; }
+
+.rounded {
+ border-radius: 5000px !important; }
+ .rounded .switch-paddle {
+ border-radius: 5000px !important; }
+ .rounded .switch-paddle:after {
+ border-radius: 50%; }
+
+.radius {
+ border-radius: 0.1875rem; }
+
+.bordered {
+ border: 0.0625rem solid #cacaca; }
+
+.shadow {
+ -webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }
+
+.arrow-down {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.4375rem;
+ content: '';
+ border-bottom-width: 0;
+ border-top-style: solid;
+ border-color: #0a0a0a transparent transparent; }
+
+.arrow-up {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.4375rem;
+ content: '';
+ border-top-width: 0;
+ border-bottom-style: solid;
+ border-color: transparent transparent #0a0a0a; }
+
+.arrow-right {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.4375rem;
+ content: '';
+ border-right-width: 0;
+ border-left-style: solid;
+ border-color: transparent transparent transparent #0a0a0a; }
+
+.arrow-left {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.4375rem;
+ content: '';
+ border-left-width: 0;
+ border-right-style: solid;
+ border-color: transparent #0a0a0a transparent transparent; }
+
+.separator-center {
+ text-align: center !important; }
+ .separator-center::before, .separator-center::after {
+ display: table;
+ content: ' ';
+ -webkit-flex-basis: 0;
+ -ms-flex-preferred-size: 0;
+ flex-basis: 0;
+ -webkit-box-ordinal-group: 2;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1; }
+ .separator-center::after {
+ clear: both; }
+ .separator-center::after {
+ position: relative !important;
+ width: 3rem;
+ border-bottom: 0.125rem solid #2ba6cb;
+ margin: 1rem auto 0; }
+
+.separator-left {
+ text-align: left !important; }
+ .separator-left::before, .separator-left::after {
+ display: table;
+ content: ' ';
+ -webkit-flex-basis: 0;
+ -ms-flex-preferred-size: 0;
+ flex-basis: 0;
+ -webkit-box-ordinal-group: 2;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1; }
+ .separator-left::after {
+ clear: both; }
+ .separator-left::after {
+ position: relative !important;
+ width: 3rem;
+ border-bottom: 0.125rem solid #2ba6cb;
+ margin: 1rem auto 0;
+ margin-left: 0 !important; }
+
+.separator-right {
+ text-align: right !important; }
+ .separator-right::before, .separator-right::after {
+ display: table;
+ content: ' ';
+ -webkit-flex-basis: 0;
+ -ms-flex-preferred-size: 0;
+ flex-basis: 0;
+ -webkit-box-ordinal-group: 2;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1; }
+ .separator-right::after {
+ clear: both; }
+ .separator-right::after {
+ position: relative !important;
+ width: 3rem;
+ border-bottom: 0.125rem solid #2ba6cb;
+ margin: 1rem auto 0;
+ margin-right: 0 !important; }
+
+.overflow-visible {
+ overflow: visible !important; }
+
+.overflow-x-visible {
+ overflow-x: visible !important; }
+
+.overflow-y-visible {
+ overflow-y: visible !important; }
+
+.overflow-hidden {
+ overflow: hidden !important; }
+
+.overflow-x-hidden {
+ overflow-x: hidden !important; }
+
+.overflow-y-hidden {
+ overflow-y: hidden !important; }
+
+.overflow-scroll {
+ overflow: scroll !important; }
+
+.overflow-x-scroll {
+ overflow-x: scroll !important; }
+
+.overflow-y-scroll {
+ overflow-y: scroll !important; }
+
+.display-inline {
+ display: inline !important; }
+
+.display-inline-block {
+ display: inline-block !important; }
+
+.display-block {
+ display: block !important; }
+
+.display-table {
+ display: table !important; }
+
+.display-table-cell {
+ display: table-cell !important; }
+
+.position-static {
+ position: static !important; }
+
+.position-relative {
+ position: relative !important; }
+
+.position-absolute {
+ position: absolute !important; }
+
+.position-fixed {
+ position: fixed !important; }
+
+.position-fixed-top {
+ position: fixed !important;
+ top: 0rem !important;
+ right: 0rem !important;
+ left: 0rem !important;
+ z-index: 975; }
+
+.position-fixed-bottom {
+ position: fixed !important;
+ right: 0rem !important;
+ bottom: 0rem !important;
+ left: 0rem !important;
+ z-index: 975; }
+
+.border-box {
+ -webkit-box-sizing: border-box !important;
+ box-sizing: border-box !important; }
+
+.border-none {
+ border: none !important; }
+
+.width-25 {
+ width: 25% !important; }
+
+.width-50 {
+ width: 50% !important; }
+
+.width-75 {
+ width: 75% !important; }
+
+.width-100 {
+ width: 100% !important; }
+
+.height-25 {
+ height: 25% !important; }
+
+.height-50 {
+ height: 50% !important; }
+
+.height-75 {
+ height: 75% !important; }
+
+.height-100 {
+ height: 100% !important; }
+
+.max-width-100 {
+ max-width: 100% !important; }
+
+.max-height-100 {
+ max-height: 100% !important; }
+
+.margin-0 {
+ margin: 0rem !important; }
+
+.margin-top-0 {
+ margin-top: 0rem !important; }
+
+.margin-right-0 {
+ margin-right: 0rem !important; }
+
+.margin-bottom-0 {
+ margin-bottom: 0rem !important; }
+
+.margin-left-0 {
+ margin-left: 0rem !important; }
+
+.margin-horizontal-0 {
+ margin-right: 0rem !important;
+ margin-left: 0rem !important; }
+
+.margin-vertical-0 {
+ margin-top: 0rem !important;
+ margin-bottom: 0rem !important; }
+
+.padding-0 {
+ padding: 0rem !important; }
+
+.padding-top-0 {
+ padding-top: 0rem !important; }
+
+.padding-right-0 {
+ padding-right: 0rem !important; }
+
+.padding-bottom-0 {
+ padding-bottom: 0rem !important; }
+
+.padding-left-0 {
+ padding-left: 0rem !important; }
+
+.padding-horizontal-0 {
+ padding-right: 0rem !important;
+ padding-left: 0rem !important; }
+
+.padding-vertical-0 {
+ padding-top: 0rem !important;
+ padding-bottom: 0rem !important; }
+
+.margin-1 {
+ margin: 1rem !important; }
+
+.margin-top-1 {
+ margin-top: 1rem !important; }
+
+.margin-right-1 {
+ margin-right: 1rem !important; }
+
+.margin-bottom-1 {
+ margin-bottom: 1rem !important; }
+
+.margin-left-1 {
+ margin-left: 1rem !important; }
+
+.margin-horizontal-1 {
+ margin-right: 1rem !important;
+ margin-left: 1rem !important; }
+
+.margin-vertical-1 {
+ margin-top: 1rem !important;
+ margin-bottom: 1rem !important; }
+
+.padding-1 {
+ padding: 1rem !important; }
+
+.padding-top-1 {
+ padding-top: 1rem !important; }
+
+.padding-right-1 {
+ padding-right: 1rem !important; }
+
+.padding-bottom-1 {
+ padding-bottom: 1rem !important; }
+
+.padding-left-1 {
+ padding-left: 1rem !important; }
+
+.padding-horizontal-1 {
+ padding-right: 1rem !important;
+ padding-left: 1rem !important; }
+
+.padding-vertical-1 {
+ padding-top: 1rem !important;
+ padding-bottom: 1rem !important; }
+
+.margin-2 {
+ margin: 2rem !important; }
+
+.margin-top-2 {
+ margin-top: 2rem !important; }
+
+.margin-right-2 {
+ margin-right: 2rem !important; }
+
+.margin-bottom-2 {
+ margin-bottom: 2rem !important; }
+
+.margin-left-2 {
+ margin-left: 2rem !important; }
+
+.margin-horizontal-2 {
+ margin-right: 2rem !important;
+ margin-left: 2rem !important; }
+
+.margin-vertical-2 {
+ margin-top: 2rem !important;
+ margin-bottom: 2rem !important; }
+
+.padding-2 {
+ padding: 2rem !important; }
+
+.padding-top-2 {
+ padding-top: 2rem !important; }
+
+.padding-right-2 {
+ padding-right: 2rem !important; }
+
+.padding-bottom-2 {
+ padding-bottom: 2rem !important; }
+
+.padding-left-2 {
+ padding-left: 2rem !important; }
+
+.padding-horizontal-2 {
+ padding-right: 2rem !important;
+ padding-left: 2rem !important; }
+
+.padding-vertical-2 {
+ padding-top: 2rem !important;
+ padding-bottom: 2rem !important; }
+
+.margin-3 {
+ margin: 3rem !important; }
+
+.margin-top-3 {
+ margin-top: 3rem !important; }
+
+.margin-right-3 {
+ margin-right: 3rem !important; }
+
+.margin-bottom-3 {
+ margin-bottom: 3rem !important; }
+
+.margin-left-3 {
+ margin-left: 3rem !important; }
+
+.margin-horizontal-3 {
+ margin-right: 3rem !important;
+ margin-left: 3rem !important; }
+
+.margin-vertical-3 {
+ margin-top: 3rem !important;
+ margin-bottom: 3rem !important; }
+
+.padding-3 {
+ padding: 3rem !important; }
+
+.padding-top-3 {
+ padding-top: 3rem !important; }
+
+.padding-right-3 {
+ padding-right: 3rem !important; }
+
+.padding-bottom-3 {
+ padding-bottom: 3rem !important; }
+
+.padding-left-3 {
+ padding-left: 3rem !important; }
+
+.padding-horizontal-3 {
+ padding-right: 3rem !important;
+ padding-left: 3rem !important; }
+
+.padding-vertical-3 {
+ padding-top: 3rem !important;
+ padding-bottom: 3rem !important; }
+
+.float-left {
+ float: left !important; }
+
+.float-right {
+ float: right !important; }
+
+.float-center {
+ display: block;
+ margin-right: auto;
+ margin-left: auto; }
+
+.clearfix::before, .clearfix::after {
+ display: table;
+ content: ' ';
+ -webkit-flex-basis: 0;
+ -ms-flex-preferred-size: 0;
+ flex-basis: 0;
+ -webkit-box-ordinal-group: 2;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1; }
+
+.clearfix::after {
+ clear: both; }
+
+.hide {
+ display: none !important; }
+
+.invisible {
+ visibility: hidden; }
+
+@media print, screen and (max-width: 39.99875em) {
+ .hide-for-small-only {
+ display: none !important; } }
+
+@media screen and (max-width: 0em), screen and (min-width: 40em) {
+ .show-for-small-only {
+ display: none !important; } }
+
+@media print, screen and (min-width: 40em) {
+ .hide-for-medium {
+ display: none !important; } }
+
+@media screen and (max-width: 39.99875em) {
+ .show-for-medium {
+ display: none !important; } }
+
+@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {
+ .hide-for-medium-only {
+ display: none !important; } }
+
+@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {
+ .show-for-medium-only {
+ display: none !important; } }
+
+@media print, screen and (min-width: 64em) {
+ .hide-for-large {
+ display: none !important; } }
+
+@media screen and (max-width: 63.99875em) {
+ .show-for-large {
+ display: none !important; } }
+
+@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {
+ .hide-for-large-only {
+ display: none !important; } }
+
+@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {
+ .show-for-large-only {
+ display: none !important; } }
+
+.show-for-sr,
+.show-on-focus {
+ position: absolute !important;
+ width: 1px !important;
+ height: 1px !important;
+ padding: 0 !important;
+ overflow: hidden !important;
+ clip: rect(0, 0, 0, 0) !important;
+ white-space: nowrap !important;
+ border: 0 !important; }
+
+.show-on-focus:active, .show-on-focus:focus {
+ position: static !important;
+ width: auto !important;
+ height: auto !important;
+ overflow: visible !important;
+ clip: auto !important;
+ white-space: normal !important; }
+
+.show-for-landscape,
+.hide-for-portrait {
+ display: block !important; }
+ @media screen and (orientation: landscape) {
+ .show-for-landscape,
+ .hide-for-portrait {
+ display: block !important; } }
+ @media screen and (orientation: portrait) {
+ .show-for-landscape,
+ .hide-for-portrait {
+ display: none !important; } }
+
+.hide-for-landscape,
+.show-for-portrait {
+ display: none !important; }
+ @media screen and (orientation: landscape) {
+ .hide-for-landscape,
+ .show-for-portrait {
+ display: none !important; } }
+ @media screen and (orientation: portrait) {
+ .hide-for-landscape,
+ .show-for-portrait {
+ display: block !important; } }
+
+.button {
+ display: inline-block;
+ vertical-align: middle;
+ margin: 0 0 1rem 0;
+ padding: 0.85em 1em;
+ border: 1px solid transparent;
+ border-radius: 3px;
+ -webkit-transition: background-color 0.25s ease-out, color 0.25s ease-out;
+ transition: background-color 0.25s ease-out, color 0.25s ease-out;
+ font-family: inherit;
+ font-size: 0.9rem;
+ -webkit-appearance: none;
+ line-height: 1;
+ text-align: center;
+ cursor: pointer; }
+ [data-whatinput='mouse'] .button {
+ outline: 0; }
+ .button.tiny {
+ font-size: 0.6rem; }
+ .button.small {
+ font-size: 0.75rem; }
+ .button.large {
+ font-size: 1.25rem; }
+ .button.expanded {
+ display: block;
+ width: 100%;
+ margin-right: 0;
+ margin-left: 0; }
+ .button, .button.disabled, .button[disabled], .button.disabled:hover, .button[disabled]:hover, .button.disabled:focus, .button[disabled]:focus {
+ background-color: #2ba6cb;
+ color: #fefefe; }
+ .button:hover, .button:focus {
+ background-color: #258dad;
+ color: #fefefe; }
+ .button.primary, .button.primary.disabled, .button.primary[disabled], .button.primary.disabled:hover, .button.primary[disabled]:hover, .button.primary.disabled:focus, .button.primary[disabled]:focus {
+ background-color: #2ba6cb;
+ color: #0a0a0a; }
+ .button.primary:hover, .button.primary:focus {
+ background-color: #2285a2;
+ color: #0a0a0a; }
+ .button.secondary, .button.secondary.disabled, .button.secondary[disabled], .button.secondary.disabled:hover, .button.secondary[disabled]:hover, .button.secondary.disabled:focus, .button.secondary[disabled]:focus {
+ background-color: #e9e9e9;
+ color: #0a0a0a; }
+ .button.secondary:hover, .button.secondary:focus {
+ background-color: #bababa;
+ color: #0a0a0a; }
+ .button.alert, .button.alert.disabled, .button.alert[disabled], .button.alert.disabled:hover, .button.alert[disabled]:hover, .button.alert.disabled:focus, .button.alert[disabled]:focus {
+ background-color: #c60f13;
+ color: #fefefe; }
+ .button.alert:hover, .button.alert:focus {
+ background-color: #9e0c0f;
+ color: #fefefe; }
+ .button.success, .button.success.disabled, .button.success[disabled], .button.success.disabled:hover, .button.success[disabled]:hover, .button.success.disabled:focus, .button.success[disabled]:focus {
+ background-color: #5da423;
+ color: #0a0a0a; }
+ .button.success:hover, .button.success:focus {
+ background-color: #4a831c;
+ color: #0a0a0a; }
+ .button.warning, .button.warning.disabled, .button.warning[disabled], .button.warning.disabled:hover, .button.warning[disabled]:hover, .button.warning.disabled:focus, .button.warning[disabled]:focus {
+ background-color: #ffae00;
+ color: #0a0a0a; }
+ .button.warning:hover, .button.warning:focus {
+ background-color: #cc8b00;
+ color: #0a0a0a; }
+ .button.body-font, .button.body-font.disabled, .button.body-font[disabled], .button.body-font.disabled:hover, .button.body-font[disabled]:hover, .button.body-font.disabled:focus, .button.body-font[disabled]:focus {
+ background-color: #222222;
+ color: #fefefe; }
+ .button.body-font:hover, .button.body-font:focus {
+ background-color: #1b1b1b;
+ color: #fefefe; }
+ .button.header, .button.header.disabled, .button.header[disabled], .button.header.disabled:hover, .button.header[disabled]:hover, .button.header.disabled:focus, .button.header[disabled]:focus {
+ background-color: #222222;
+ color: #fefefe; }
+ .button.header:hover, .button.header:focus {
+ background-color: #1b1b1b;
+ color: #fefefe; }
+ .button.hollow, .button.hollow:hover, .button.hollow:focus, .button.hollow.disabled, .button.hollow.disabled:hover, .button.hollow.disabled:focus, .button.hollow[disabled], .button.hollow[disabled]:hover, .button.hollow[disabled]:focus {
+ background-color: transparent; }
+ .button.hollow, .button.hollow.disabled, .button.hollow[disabled], .button.hollow.disabled:hover, .button.hollow[disabled]:hover, .button.hollow.disabled:focus, .button.hollow[disabled]:focus {
+ border: 1px solid #2ba6cb;
+ color: #2ba6cb; }
+ .button.hollow:hover, .button.hollow:focus {
+ border-color: #165366;
+ color: #165366; }
+ .button.hollow.primary, .button.hollow.primary.disabled, .button.hollow.primary[disabled], .button.hollow.primary.disabled:hover, .button.hollow.primary[disabled]:hover, .button.hollow.primary.disabled:focus, .button.hollow.primary[disabled]:focus {
+ border: 1px solid #2ba6cb;
+ color: #2ba6cb; }
+ .button.hollow.primary:hover, .button.hollow.primary:focus {
+ border-color: #165366;
+ color: #165366; }
+ .button.hollow.secondary, .button.hollow.secondary.disabled, .button.hollow.secondary[disabled], .button.hollow.secondary.disabled:hover, .button.hollow.secondary[disabled]:hover, .button.hollow.secondary.disabled:focus, .button.hollow.secondary[disabled]:focus {
+ border: 1px solid #e9e9e9;
+ color: #e9e9e9; }
+ .button.hollow.secondary:hover, .button.hollow.secondary:focus {
+ border-color: #757575;
+ color: #757575; }
+ .button.hollow.alert, .button.hollow.alert.disabled, .button.hollow.alert[disabled], .button.hollow.alert.disabled:hover, .button.hollow.alert[disabled]:hover, .button.hollow.alert.disabled:focus, .button.hollow.alert[disabled]:focus {
+ border: 1px solid #c60f13;
+ color: #c60f13; }
+ .button.hollow.alert:hover, .button.hollow.alert:focus {
+ border-color: #63080a;
+ color: #63080a; }
+ .button.hollow.success, .button.hollow.success.disabled, .button.hollow.success[disabled], .button.hollow.success.disabled:hover, .button.hollow.success[disabled]:hover, .button.hollow.success.disabled:focus, .button.hollow.success[disabled]:focus {
+ border: 1px solid #5da423;
+ color: #5da423; }
+ .button.hollow.success:hover, .button.hollow.success:focus {
+ border-color: #2f5212;
+ color: #2f5212; }
+ .button.hollow.warning, .button.hollow.warning.disabled, .button.hollow.warning[disabled], .button.hollow.warning.disabled:hover, .button.hollow.warning[disabled]:hover, .button.hollow.warning.disabled:focus, .button.hollow.warning[disabled]:focus {
+ border: 1px solid #ffae00;
+ color: #ffae00; }
+ .button.hollow.warning:hover, .button.hollow.warning:focus {
+ border-color: #805700;
+ color: #805700; }
+ .button.hollow.body-font, .button.hollow.body-font.disabled, .button.hollow.body-font[disabled], .button.hollow.body-font.disabled:hover, .button.hollow.body-font[disabled]:hover, .button.hollow.body-font.disabled:focus, .button.hollow.body-font[disabled]:focus {
+ border: 1px solid #222222;
+ color: #222222; }
+ .button.hollow.body-font:hover, .button.hollow.body-font:focus {
+ border-color: #111111;
+ color: #111111; }
+ .button.hollow.header, .button.hollow.header.disabled, .button.hollow.header[disabled], .button.hollow.header.disabled:hover, .button.hollow.header[disabled]:hover, .button.hollow.header.disabled:focus, .button.hollow.header[disabled]:focus {
+ border: 1px solid #222222;
+ color: #222222; }
+ .button.hollow.header:hover, .button.hollow.header:focus {
+ border-color: #111111;
+ color: #111111; }
+ .button.clear, .button.clear:hover, .button.clear:focus, .button.clear.disabled, .button.clear.disabled:hover, .button.clear.disabled:focus, .button.clear[disabled], .button.clear[disabled]:hover, .button.clear[disabled]:focus {
+ border-color: transparent;
+ background-color: transparent; }
+ .button.clear, .button.clear.disabled, .button.clear[disabled], .button.clear.disabled:hover, .button.clear[disabled]:hover, .button.clear.disabled:focus, .button.clear[disabled]:focus {
+ color: #2ba6cb; }
+ .button.clear:hover, .button.clear:focus {
+ color: #165366; }
+ .button.clear.primary, .button.clear.primary.disabled, .button.clear.primary[disabled], .button.clear.primary.disabled:hover, .button.clear.primary[disabled]:hover, .button.clear.primary.disabled:focus, .button.clear.primary[disabled]:focus {
+ color: #2ba6cb; }
+ .button.clear.primary:hover, .button.clear.primary:focus {
+ color: #165366; }
+ .button.clear.secondary, .button.clear.secondary.disabled, .button.clear.secondary[disabled], .button.clear.secondary.disabled:hover, .button.clear.secondary[disabled]:hover, .button.clear.secondary.disabled:focus, .button.clear.secondary[disabled]:focus {
+ color: #e9e9e9; }
+ .button.clear.secondary:hover, .button.clear.secondary:focus {
+ color: #757575; }
+ .button.clear.alert, .button.clear.alert.disabled, .button.clear.alert[disabled], .button.clear.alert.disabled:hover, .button.clear.alert[disabled]:hover, .button.clear.alert.disabled:focus, .button.clear.alert[disabled]:focus {
+ color: #c60f13; }
+ .button.clear.alert:hover, .button.clear.alert:focus {
+ color: #63080a; }
+ .button.clear.success, .button.clear.success.disabled, .button.clear.success[disabled], .button.clear.success.disabled:hover, .button.clear.success[disabled]:hover, .button.clear.success.disabled:focus, .button.clear.success[disabled]:focus {
+ color: #5da423; }
+ .button.clear.success:hover, .button.clear.success:focus {
+ color: #2f5212; }
+ .button.clear.warning, .button.clear.warning.disabled, .button.clear.warning[disabled], .button.clear.warning.disabled:hover, .button.clear.warning[disabled]:hover, .button.clear.warning.disabled:focus, .button.clear.warning[disabled]:focus {
+ color: #ffae00; }
+ .button.clear.warning:hover, .button.clear.warning:focus {
+ color: #805700; }
+ .button.clear.body-font, .button.clear.body-font.disabled, .button.clear.body-font[disabled], .button.clear.body-font.disabled:hover, .button.clear.body-font[disabled]:hover, .button.clear.body-font.disabled:focus, .button.clear.body-font[disabled]:focus {
+ color: #222222; }
+ .button.clear.body-font:hover, .button.clear.body-font:focus {
+ color: #111111; }
+ .button.clear.header, .button.clear.header.disabled, .button.clear.header[disabled], .button.clear.header.disabled:hover, .button.clear.header[disabled]:hover, .button.clear.header.disabled:focus, .button.clear.header[disabled]:focus {
+ color: #222222; }
+ .button.clear.header:hover, .button.clear.header:focus {
+ color: #111111; }
+ .button.disabled, .button[disabled] {
+ opacity: 0.25;
+ cursor: not-allowed; }
+ .button.dropdown::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.4em;
+ content: '';
+ border-bottom-width: 0;
+ border-top-style: solid;
+ border-color: #fefefe transparent transparent;
+ position: relative;
+ top: 0.4em;
+ display: inline-block;
+ float: right;
+ margin-left: 1em; }
+ .button.dropdown.hollow::after, .button.dropdown.clear::after {
+ border-top-color: #2ba6cb; }
+ .button.dropdown.hollow.primary::after, .button.dropdown.clear.primary::after {
+ border-top-color: #2ba6cb; }
+ .button.dropdown.hollow.secondary::after, .button.dropdown.clear.secondary::after {
+ border-top-color: #e9e9e9; }
+ .button.dropdown.hollow.alert::after, .button.dropdown.clear.alert::after {
+ border-top-color: #c60f13; }
+ .button.dropdown.hollow.success::after, .button.dropdown.clear.success::after {
+ border-top-color: #5da423; }
+ .button.dropdown.hollow.warning::after, .button.dropdown.clear.warning::after {
+ border-top-color: #ffae00; }
+ .button.dropdown.hollow.body-font::after, .button.dropdown.clear.body-font::after {
+ border-top-color: #222222; }
+ .button.dropdown.hollow.header::after, .button.dropdown.clear.header::after {
+ border-top-color: #222222; }
+ .button.arrow-only::after {
+ top: -0.1em;
+ float: none;
+ margin-left: 0; }
+
+a.button:hover, a.button:focus {
+ text-decoration: none; }
+
+.close-button {
+ position: absolute;
+ z-index: 10;
+ color: #8a8a8a;
+ cursor: pointer; }
+ [data-whatinput='mouse'] .close-button {
+ outline: 0; }
+ .close-button:hover, .close-button:focus {
+ color: #0a0a0a; }
+ .close-button.small {
+ right: 0.66rem;
+ top: 0.33em;
+ font-size: 1.5em;
+ line-height: 1; }
+ .close-button.medium, .close-button {
+ right: 1rem;
+ top: 0.5rem;
+ font-size: 2em;
+ line-height: 1; }
+
+.button-group {
+ margin-bottom: 1rem;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-align: stretch;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ -webkit-box-flex: 1;
+ -webkit-flex-grow: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1; }
+ .button-group::before, .button-group::after {
+ display: table;
+ content: ' ';
+ -webkit-flex-basis: 0;
+ -ms-flex-preferred-size: 0;
+ flex-basis: 0;
+ -webkit-box-ordinal-group: 2;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1; }
+ .button-group::after {
+ clear: both; }
+ .button-group::before, .button-group::after {
+ display: none; }
+ .button-group .button {
+ margin: 0;
+ margin-right: 1px;
+ margin-bottom: 1px;
+ font-size: 0.9rem;
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto; }
+ .button-group .button:last-child {
+ margin-right: 0; }
+ .button-group.tiny .button {
+ font-size: 0.6rem; }
+ .button-group.small .button {
+ font-size: 0.75rem; }
+ .button-group.large .button {
+ font-size: 1.25rem; }
+ .button-group.expanded .button {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px;
+ margin-right: 0; }
+ .button-group.primary .button, .button-group.primary .button.disabled, .button-group.primary .button[disabled], .button-group.primary .button.disabled:hover, .button-group.primary .button[disabled]:hover, .button-group.primary .button.disabled:focus, .button-group.primary .button[disabled]:focus {
+ background-color: #2ba6cb;
+ color: #0a0a0a; }
+ .button-group.primary .button:hover, .button-group.primary .button:focus {
+ background-color: #2285a2;
+ color: #0a0a0a; }
+ .button-group.secondary .button, .button-group.secondary .button.disabled, .button-group.secondary .button[disabled], .button-group.secondary .button.disabled:hover, .button-group.secondary .button[disabled]:hover, .button-group.secondary .button.disabled:focus, .button-group.secondary .button[disabled]:focus {
+ background-color: #e9e9e9;
+ color: #0a0a0a; }
+ .button-group.secondary .button:hover, .button-group.secondary .button:focus {
+ background-color: #bababa;
+ color: #0a0a0a; }
+ .button-group.alert .button, .button-group.alert .button.disabled, .button-group.alert .button[disabled], .button-group.alert .button.disabled:hover, .button-group.alert .button[disabled]:hover, .button-group.alert .button.disabled:focus, .button-group.alert .button[disabled]:focus {
+ background-color: #c60f13;
+ color: #fefefe; }
+ .button-group.alert .button:hover, .button-group.alert .button:focus {
+ background-color: #9e0c0f;
+ color: #fefefe; }
+ .button-group.success .button, .button-group.success .button.disabled, .button-group.success .button[disabled], .button-group.success .button.disabled:hover, .button-group.success .button[disabled]:hover, .button-group.success .button.disabled:focus, .button-group.success .button[disabled]:focus {
+ background-color: #5da423;
+ color: #0a0a0a; }
+ .button-group.success .button:hover, .button-group.success .button:focus {
+ background-color: #4a831c;
+ color: #0a0a0a; }
+ .button-group.warning .button, .button-group.warning .button.disabled, .button-group.warning .button[disabled], .button-group.warning .button.disabled:hover, .button-group.warning .button[disabled]:hover, .button-group.warning .button.disabled:focus, .button-group.warning .button[disabled]:focus {
+ background-color: #ffae00;
+ color: #0a0a0a; }
+ .button-group.warning .button:hover, .button-group.warning .button:focus {
+ background-color: #cc8b00;
+ color: #0a0a0a; }
+ .button-group.body-font .button, .button-group.body-font .button.disabled, .button-group.body-font .button[disabled], .button-group.body-font .button.disabled:hover, .button-group.body-font .button[disabled]:hover, .button-group.body-font .button.disabled:focus, .button-group.body-font .button[disabled]:focus {
+ background-color: #222222;
+ color: #fefefe; }
+ .button-group.body-font .button:hover, .button-group.body-font .button:focus {
+ background-color: #1b1b1b;
+ color: #fefefe; }
+ .button-group.header .button, .button-group.header .button.disabled, .button-group.header .button[disabled], .button-group.header .button.disabled:hover, .button-group.header .button[disabled]:hover, .button-group.header .button.disabled:focus, .button-group.header .button[disabled]:focus {
+ background-color: #222222;
+ color: #fefefe; }
+ .button-group.header .button:hover, .button-group.header .button:focus {
+ background-color: #1b1b1b;
+ color: #fefefe; }
+ .button-group.hollow .button, .button-group.hollow .button:hover, .button-group.hollow .button:focus, .button-group.hollow .button.disabled, .button-group.hollow .button.disabled:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled], .button-group.hollow .button[disabled]:hover, .button-group.hollow .button[disabled]:focus {
+ background-color: transparent; }
+ .button-group.hollow .button, .button-group.hollow .button.disabled, .button-group.hollow .button[disabled], .button-group.hollow .button.disabled:hover, .button-group.hollow .button[disabled]:hover, .button-group.hollow .button.disabled:focus, .button-group.hollow .button[disabled]:focus {
+ border: 1px solid #2ba6cb;
+ color: #2ba6cb; }
+ .button-group.hollow .button:hover, .button-group.hollow .button:focus {
+ border-color: #165366;
+ color: #165366; }
+ .button-group.hollow.primary .button, .button-group.hollow.primary .button.disabled, .button-group.hollow.primary .button[disabled], .button-group.hollow.primary .button.disabled:hover, .button-group.hollow.primary .button[disabled]:hover, .button-group.hollow.primary .button.disabled:focus, .button-group.hollow.primary .button[disabled]:focus, .button-group.hollow .button.primary, .button-group.hollow .button.primary.disabled, .button-group.hollow .button.primary[disabled], .button-group.hollow .button.primary.disabled:hover, .button-group.hollow .button.primary[disabled]:hover, .button-group.hollow .button.primary.disabled:focus, .button-group.hollow .button.primary[disabled]:focus {
+ border: 1px solid #2ba6cb;
+ color: #2ba6cb; }
+ .button-group.hollow.primary .button:hover, .button-group.hollow.primary .button:focus, .button-group.hollow .button.primary:hover, .button-group.hollow .button.primary:focus {
+ border-color: #165366;
+ color: #165366; }
+ .button-group.hollow.secondary .button, .button-group.hollow.secondary .button.disabled, .button-group.hollow.secondary .button[disabled], .button-group.hollow.secondary .button.disabled:hover, .button-group.hollow.secondary .button[disabled]:hover, .button-group.hollow.secondary .button.disabled:focus, .button-group.hollow.secondary .button[disabled]:focus, .button-group.hollow .button.secondary, .button-group.hollow .button.secondary.disabled, .button-group.hollow .button.secondary[disabled], .button-group.hollow .button.secondary.disabled:hover, .button-group.hollow .button.secondary[disabled]:hover, .button-group.hollow .button.secondary.disabled:focus, .button-group.hollow .button.secondary[disabled]:focus {
+ border: 1px solid #e9e9e9;
+ color: #e9e9e9; }
+ .button-group.hollow.secondary .button:hover, .button-group.hollow.secondary .button:focus, .button-group.hollow .button.secondary:hover, .button-group.hollow .button.secondary:focus {
+ border-color: #757575;
+ color: #757575; }
+ .button-group.hollow.alert .button, .button-group.hollow.alert .button.disabled, .button-group.hollow.alert .button[disabled], .button-group.hollow.alert .button.disabled:hover, .button-group.hollow.alert .button[disabled]:hover, .button-group.hollow.alert .button.disabled:focus, .button-group.hollow.alert .button[disabled]:focus, .button-group.hollow .button.alert, .button-group.hollow .button.alert.disabled, .button-group.hollow .button.alert[disabled], .button-group.hollow .button.alert.disabled:hover, .button-group.hollow .button.alert[disabled]:hover, .button-group.hollow .button.alert.disabled:focus, .button-group.hollow .button.alert[disabled]:focus {
+ border: 1px solid #c60f13;
+ color: #c60f13; }
+ .button-group.hollow.alert .button:hover, .button-group.hollow.alert .button:focus, .button-group.hollow .button.alert:hover, .button-group.hollow .button.alert:focus {
+ border-color: #63080a;
+ color: #63080a; }
+ .button-group.hollow.success .button, .button-group.hollow.success .button.disabled, .button-group.hollow.success .button[disabled], .button-group.hollow.success .button.disabled:hover, .button-group.hollow.success .button[disabled]:hover, .button-group.hollow.success .button.disabled:focus, .button-group.hollow.success .button[disabled]:focus, .button-group.hollow .button.success, .button-group.hollow .button.success.disabled, .button-group.hollow .button.success[disabled], .button-group.hollow .button.success.disabled:hover, .button-group.hollow .button.success[disabled]:hover, .button-group.hollow .button.success.disabled:focus, .button-group.hollow .button.success[disabled]:focus {
+ border: 1px solid #5da423;
+ color: #5da423; }
+ .button-group.hollow.success .button:hover, .button-group.hollow.success .button:focus, .button-group.hollow .button.success:hover, .button-group.hollow .button.success:focus {
+ border-color: #2f5212;
+ color: #2f5212; }
+ .button-group.hollow.warning .button, .button-group.hollow.warning .button.disabled, .button-group.hollow.warning .button[disabled], .button-group.hollow.warning .button.disabled:hover, .button-group.hollow.warning .button[disabled]:hover, .button-group.hollow.warning .button.disabled:focus, .button-group.hollow.warning .button[disabled]:focus, .button-group.hollow .button.warning, .button-group.hollow .button.warning.disabled, .button-group.hollow .button.warning[disabled], .button-group.hollow .button.warning.disabled:hover, .button-group.hollow .button.warning[disabled]:hover, .button-group.hollow .button.warning.disabled:focus, .button-group.hollow .button.warning[disabled]:focus {
+ border: 1px solid #ffae00;
+ color: #ffae00; }
+ .button-group.hollow.warning .button:hover, .button-group.hollow.warning .button:focus, .button-group.hollow .button.warning:hover, .button-group.hollow .button.warning:focus {
+ border-color: #805700;
+ color: #805700; }
+ .button-group.hollow.body-font .button, .button-group.hollow.body-font .button.disabled, .button-group.hollow.body-font .button[disabled], .button-group.hollow.body-font .button.disabled:hover, .button-group.hollow.body-font .button[disabled]:hover, .button-group.hollow.body-font .button.disabled:focus, .button-group.hollow.body-font .button[disabled]:focus, .button-group.hollow .button.body-font, .button-group.hollow .button.body-font.disabled, .button-group.hollow .button.body-font[disabled], .button-group.hollow .button.body-font.disabled:hover, .button-group.hollow .button.body-font[disabled]:hover, .button-group.hollow .button.body-font.disabled:focus, .button-group.hollow .button.body-font[disabled]:focus {
+ border: 1px solid #222222;
+ color: #222222; }
+ .button-group.hollow.body-font .button:hover, .button-group.hollow.body-font .button:focus, .button-group.hollow .button.body-font:hover, .button-group.hollow .button.body-font:focus {
+ border-color: #111111;
+ color: #111111; }
+ .button-group.hollow.header .button, .button-group.hollow.header .button.disabled, .button-group.hollow.header .button[disabled], .button-group.hollow.header .button.disabled:hover, .button-group.hollow.header .button[disabled]:hover, .button-group.hollow.header .button.disabled:focus, .button-group.hollow.header .button[disabled]:focus, .button-group.hollow .button.header, .button-group.hollow .button.header.disabled, .button-group.hollow .button.header[disabled], .button-group.hollow .button.header.disabled:hover, .button-group.hollow .button.header[disabled]:hover, .button-group.hollow .button.header.disabled:focus, .button-group.hollow .button.header[disabled]:focus {
+ border: 1px solid #222222;
+ color: #222222; }
+ .button-group.hollow.header .button:hover, .button-group.hollow.header .button:focus, .button-group.hollow .button.header:hover, .button-group.hollow .button.header:focus {
+ border-color: #111111;
+ color: #111111; }
+ .button-group.clear .button, .button-group.clear .button:hover, .button-group.clear .button:focus, .button-group.clear .button.disabled, .button-group.clear .button.disabled:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled], .button-group.clear .button[disabled]:hover, .button-group.clear .button[disabled]:focus {
+ border-color: transparent;
+ background-color: transparent; }
+ .button-group.clear .button, .button-group.clear .button.disabled, .button-group.clear .button[disabled], .button-group.clear .button.disabled:hover, .button-group.clear .button[disabled]:hover, .button-group.clear .button.disabled:focus, .button-group.clear .button[disabled]:focus {
+ color: #2ba6cb; }
+ .button-group.clear .button:hover, .button-group.clear .button:focus {
+ color: #165366; }
+ .button-group.clear.primary .button, .button-group.clear.primary .button.disabled, .button-group.clear.primary .button[disabled], .button-group.clear.primary .button.disabled:hover, .button-group.clear.primary .button[disabled]:hover, .button-group.clear.primary .button.disabled:focus, .button-group.clear.primary .button[disabled]:focus, .button-group.clear .button.primary, .button-group.clear .button.primary.disabled, .button-group.clear .button.primary[disabled], .button-group.clear .button.primary.disabled:hover, .button-group.clear .button.primary[disabled]:hover, .button-group.clear .button.primary.disabled:focus, .button-group.clear .button.primary[disabled]:focus {
+ color: #2ba6cb; }
+ .button-group.clear.primary .button:hover, .button-group.clear.primary .button:focus, .button-group.clear .button.primary:hover, .button-group.clear .button.primary:focus {
+ color: #165366; }
+ .button-group.clear.secondary .button, .button-group.clear.secondary .button.disabled, .button-group.clear.secondary .button[disabled], .button-group.clear.secondary .button.disabled:hover, .button-group.clear.secondary .button[disabled]:hover, .button-group.clear.secondary .button.disabled:focus, .button-group.clear.secondary .button[disabled]:focus, .button-group.clear .button.secondary, .button-group.clear .button.secondary.disabled, .button-group.clear .button.secondary[disabled], .button-group.clear .button.secondary.disabled:hover, .button-group.clear .button.secondary[disabled]:hover, .button-group.clear .button.secondary.disabled:focus, .button-group.clear .button.secondary[disabled]:focus {
+ color: #e9e9e9; }
+ .button-group.clear.secondary .button:hover, .button-group.clear.secondary .button:focus, .button-group.clear .button.secondary:hover, .button-group.clear .button.secondary:focus {
+ color: #757575; }
+ .button-group.clear.alert .button, .button-group.clear.alert .button.disabled, .button-group.clear.alert .button[disabled], .button-group.clear.alert .button.disabled:hover, .button-group.clear.alert .button[disabled]:hover, .button-group.clear.alert .button.disabled:focus, .button-group.clear.alert .button[disabled]:focus, .button-group.clear .button.alert, .button-group.clear .button.alert.disabled, .button-group.clear .button.alert[disabled], .button-group.clear .button.alert.disabled:hover, .button-group.clear .button.alert[disabled]:hover, .button-group.clear .button.alert.disabled:focus, .button-group.clear .button.alert[disabled]:focus {
+ color: #c60f13; }
+ .button-group.clear.alert .button:hover, .button-group.clear.alert .button:focus, .button-group.clear .button.alert:hover, .button-group.clear .button.alert:focus {
+ color: #63080a; }
+ .button-group.clear.success .button, .button-group.clear.success .button.disabled, .button-group.clear.success .button[disabled], .button-group.clear.success .button.disabled:hover, .button-group.clear.success .button[disabled]:hover, .button-group.clear.success .button.disabled:focus, .button-group.clear.success .button[disabled]:focus, .button-group.clear .button.success, .button-group.clear .button.success.disabled, .button-group.clear .button.success[disabled], .button-group.clear .button.success.disabled:hover, .button-group.clear .button.success[disabled]:hover, .button-group.clear .button.success.disabled:focus, .button-group.clear .button.success[disabled]:focus {
+ color: #5da423; }
+ .button-group.clear.success .button:hover, .button-group.clear.success .button:focus, .button-group.clear .button.success:hover, .button-group.clear .button.success:focus {
+ color: #2f5212; }
+ .button-group.clear.warning .button, .button-group.clear.warning .button.disabled, .button-group.clear.warning .button[disabled], .button-group.clear.warning .button.disabled:hover, .button-group.clear.warning .button[disabled]:hover, .button-group.clear.warning .button.disabled:focus, .button-group.clear.warning .button[disabled]:focus, .button-group.clear .button.warning, .button-group.clear .button.warning.disabled, .button-group.clear .button.warning[disabled], .button-group.clear .button.warning.disabled:hover, .button-group.clear .button.warning[disabled]:hover, .button-group.clear .button.warning.disabled:focus, .button-group.clear .button.warning[disabled]:focus {
+ color: #ffae00; }
+ .button-group.clear.warning .button:hover, .button-group.clear.warning .button:focus, .button-group.clear .button.warning:hover, .button-group.clear .button.warning:focus {
+ color: #805700; }
+ .button-group.clear.body-font .button, .button-group.clear.body-font .button.disabled, .button-group.clear.body-font .button[disabled], .button-group.clear.body-font .button.disabled:hover, .button-group.clear.body-font .button[disabled]:hover, .button-group.clear.body-font .button.disabled:focus, .button-group.clear.body-font .button[disabled]:focus, .button-group.clear .button.body-font, .button-group.clear .button.body-font.disabled, .button-group.clear .button.body-font[disabled], .button-group.clear .button.body-font.disabled:hover, .button-group.clear .button.body-font[disabled]:hover, .button-group.clear .button.body-font.disabled:focus, .button-group.clear .button.body-font[disabled]:focus {
+ color: #222222; }
+ .button-group.clear.body-font .button:hover, .button-group.clear.body-font .button:focus, .button-group.clear .button.body-font:hover, .button-group.clear .button.body-font:focus {
+ color: #111111; }
+ .button-group.clear.header .button, .button-group.clear.header .button.disabled, .button-group.clear.header .button[disabled], .button-group.clear.header .button.disabled:hover, .button-group.clear.header .button[disabled]:hover, .button-group.clear.header .button.disabled:focus, .button-group.clear.header .button[disabled]:focus, .button-group.clear .button.header, .button-group.clear .button.header.disabled, .button-group.clear .button.header[disabled], .button-group.clear .button.header.disabled:hover, .button-group.clear .button.header[disabled]:hover, .button-group.clear .button.header.disabled:focus, .button-group.clear .button.header[disabled]:focus {
+ color: #222222; }
+ .button-group.clear.header .button:hover, .button-group.clear.header .button:focus, .button-group.clear .button.header:hover, .button-group.clear .button.header:focus {
+ color: #111111; }
+ .button-group.no-gaps .button {
+ margin-right: -0.0625rem; }
+ .button-group.no-gaps .button + .button {
+ border-left-color: transparent; }
+ .button-group.stacked, .button-group.stacked-for-small, .button-group.stacked-for-medium {
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap; }
+ .button-group.stacked .button, .button-group.stacked-for-small .button, .button-group.stacked-for-medium .button {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 100%;
+ -ms-flex: 0 0 100%;
+ flex: 0 0 100%; }
+ .button-group.stacked .button:last-child, .button-group.stacked-for-small .button:last-child, .button-group.stacked-for-medium .button:last-child {
+ margin-bottom: 0; }
+ .button-group.stacked.expanded .button, .button-group.stacked-for-small.expanded .button, .button-group.stacked-for-medium.expanded .button {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px;
+ margin-right: 0; }
+ @media print, screen and (min-width: 40em) {
+ .button-group.stacked-for-small .button {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto;
+ margin-bottom: 0; } }
+ @media print, screen and (min-width: 64em) {
+ .button-group.stacked-for-medium .button {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto;
+ margin-bottom: 0; } }
+ @media print, screen and (max-width: 39.99875em) {
+ .button-group.stacked-for-small.expanded {
+ display: block; }
+ .button-group.stacked-for-small.expanded .button {
+ display: block;
+ margin-right: 0; } }
+ @media print, screen and (max-width: 63.99875em) {
+ .button-group.stacked-for-medium.expanded {
+ display: block; }
+ .button-group.stacked-for-medium.expanded .button {
+ display: block;
+ margin-right: 0; } }
+
+.slider {
+ position: relative;
+ height: 0.5rem;
+ margin-top: 1.25rem;
+ margin-bottom: 2.25rem;
+ background-color: #e6e6e6;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -ms-touch-action: none;
+ touch-action: none; }
+
+.slider-fill {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: inline-block;
+ max-width: 100%;
+ height: 0.5rem;
+ background-color: #cacaca;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out; }
+ .slider-fill.is-dragging {
+ -webkit-transition: all 0s linear;
+ transition: all 0s linear; }
+
+.slider-handle {
+ position: absolute;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%);
+ left: 0;
+ z-index: 1;
+ display: inline-block;
+ width: 1.4rem;
+ height: 1.4rem;
+ border-radius: 3px;
+ background-color: #2ba6cb;
+ -webkit-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ -ms-touch-action: manipulation;
+ touch-action: manipulation; }
+ [data-whatinput='mouse'] .slider-handle {
+ outline: 0; }
+ .slider-handle:hover {
+ background-color: #258dad; }
+ .slider-handle.is-dragging {
+ -webkit-transition: all 0s linear;
+ transition: all 0s linear; }
+
+.slider.disabled,
+.slider[disabled] {
+ opacity: 0.25;
+ cursor: not-allowed; }
+
+.slider.vertical {
+ display: inline-block;
+ width: 0.5rem;
+ height: 12.5rem;
+ margin: 0 1.25rem;
+ -webkit-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1); }
+ .slider.vertical .slider-fill {
+ top: 0;
+ width: 0.5rem;
+ max-height: 100%; }
+ .slider.vertical .slider-handle {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ width: 1.4rem;
+ height: 1.4rem;
+ -webkit-transform: translateX(-50%);
+ -ms-transform: translateX(-50%);
+ transform: translateX(-50%); }
+
+.switch {
+ height: 2rem;
+ position: relative;
+ margin-bottom: 1rem;
+ outline: 0;
+ font-size: 0.875rem;
+ font-weight: bold;
+ color: #fefefe;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+
+.switch-input {
+ position: absolute;
+ margin-bottom: 0;
+ opacity: 0; }
+
+.switch-paddle {
+ position: relative;
+ display: block;
+ width: 4rem;
+ height: 2rem;
+ border-radius: 3px;
+ background: #cacaca;
+ -webkit-transition: all 0.25s ease-out;
+ transition: all 0.25s ease-out;
+ font-weight: inherit;
+ color: inherit;
+ cursor: pointer; }
+ input + .switch-paddle {
+ margin: 0; }
+ .switch-paddle::after {
+ position: absolute;
+ top: 0.25rem;
+ left: 0.25rem;
+ display: block;
+ width: 1.5rem;
+ height: 1.5rem;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ border-radius: 3px;
+ background: #fefefe;
+ -webkit-transition: all 0.25s ease-out;
+ transition: all 0.25s ease-out;
+ content: ''; }
+ input:checked ~ .switch-paddle {
+ background: #2ba6cb; }
+ input:checked ~ .switch-paddle::after {
+ left: 2.25rem; }
+ input:disabled ~ .switch-paddle {
+ cursor: not-allowed;
+ opacity: 0.5; }
+ [data-whatinput='mouse'] input:focus ~ .switch-paddle {
+ outline: 0; }
+
+.switch-active, .switch-inactive {
+ position: absolute;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%); }
+
+.switch-active {
+ left: 8%;
+ display: none; }
+ input:checked + label > .switch-active {
+ display: block; }
+
+.switch-inactive {
+ right: 15%; }
+ input:checked + label > .switch-inactive {
+ display: none; }
+
+.switch.tiny {
+ height: 1.5rem; }
+ .switch.tiny .switch-paddle {
+ width: 3rem;
+ height: 1.5rem;
+ font-size: 0.625rem; }
+ .switch.tiny .switch-paddle::after {
+ top: 0.25rem;
+ left: 0.25rem;
+ width: 1rem;
+ height: 1rem; }
+ .switch.tiny input:checked ~ .switch-paddle::after {
+ left: 1.75rem; }
+
+.switch.small {
+ height: 1.75rem; }
+ .switch.small .switch-paddle {
+ width: 3.5rem;
+ height: 1.75rem;
+ font-size: 0.75rem; }
+ .switch.small .switch-paddle::after {
+ top: 0.25rem;
+ left: 0.25rem;
+ width: 1.25rem;
+ height: 1.25rem; }
+ .switch.small input:checked ~ .switch-paddle::after {
+ left: 2rem; }
+
+.switch.large {
+ height: 2.5rem; }
+ .switch.large .switch-paddle {
+ width: 5rem;
+ height: 2.5rem;
+ font-size: 1rem; }
+ .switch.large .switch-paddle::after {
+ top: 0.25rem;
+ left: 0.25rem;
+ width: 2rem;
+ height: 2rem; }
+ .switch.large input:checked ~ .switch-paddle::after {
+ left: 2.75rem; }
+
+.menu {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ position: relative;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap; }
+ [data-whatinput='mouse'] .menu li {
+ outline: 0; }
+ .menu a,
+ .menu .button {
+ line-height: 1;
+ text-decoration: none;
+ display: block;
+ padding: 0.7rem 1rem; }
+ .menu input,
+ .menu select,
+ .menu a,
+ .menu button {
+ margin-bottom: 0; }
+ .menu input {
+ display: inline-block; }
+ .menu, .menu.horizontal {
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row; }
+ .menu.vertical {
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column; }
+ .menu.expanded li {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px; }
+ .menu.simple {
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center; }
+ .menu.simple li + li {
+ margin-left: 1rem; }
+ .menu.simple a {
+ padding: 0; }
+ @media print, screen and (min-width: 40em) {
+ .menu.medium-horizontal {
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row; }
+ .menu.medium-vertical {
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column; }
+ .menu.medium-expanded li {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px; }
+ .menu.medium-simple li {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px; } }
+ @media print, screen and (min-width: 64em) {
+ .menu.large-horizontal {
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row; }
+ .menu.large-vertical {
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column; }
+ .menu.large-expanded li {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px; }
+ .menu.large-simple li {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px; } }
+ .menu.nested {
+ margin-right: 0;
+ margin-left: 1rem; }
+ .menu.icons a {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex; }
+ .menu.icon-top a, .menu.icon-right a, .menu.icon-bottom a, .menu.icon-left a {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex; }
+ .menu.icon-left li a {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-flow: row nowrap;
+ -ms-flex-flow: row nowrap;
+ flex-flow: row nowrap; }
+ .menu.icon-left li a img,
+ .menu.icon-left li a i,
+ .menu.icon-left li a svg {
+ margin-right: 0.25rem; }
+ .menu.icon-right li a {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-flow: row nowrap;
+ -ms-flex-flow: row nowrap;
+ flex-flow: row nowrap; }
+ .menu.icon-right li a img,
+ .menu.icon-right li a i,
+ .menu.icon-right li a svg {
+ margin-left: 0.25rem; }
+ .menu.icon-top li a {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-flow: column nowrap;
+ -ms-flex-flow: column nowrap;
+ flex-flow: column nowrap; }
+ .menu.icon-top li a img,
+ .menu.icon-top li a i,
+ .menu.icon-top li a svg {
+ -webkit-align-self: stretch;
+ -ms-flex-item-align: stretch;
+ align-self: stretch;
+ margin-bottom: 0.25rem;
+ text-align: center; }
+ .menu.icon-bottom li a {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-flow: column nowrap;
+ -ms-flex-flow: column nowrap;
+ flex-flow: column nowrap; }
+ .menu.icon-bottom li a img,
+ .menu.icon-bottom li a i,
+ .menu.icon-bottom li a svg {
+ -webkit-align-self: stretch;
+ -ms-flex-item-align: stretch;
+ align-self: stretch;
+ margin-bottom: 0.25rem;
+ text-align: center; }
+ .menu .is-active > a {
+ background: #2ba6cb;
+ color: #0a0a0a; }
+ .menu .active > a {
+ background: #2ba6cb;
+ color: #0a0a0a; }
+ .menu.align-left {
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start; }
+ .menu.align-right li {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: end;
+ -webkit-justify-content: flex-end;
+ -ms-flex-pack: end;
+ justify-content: flex-end; }
+ .menu.align-right li .submenu li {
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start; }
+ .menu.align-right.vertical li {
+ display: block;
+ text-align: right; }
+ .menu.align-right.vertical li .submenu li {
+ text-align: right; }
+ .menu.align-right .nested {
+ margin-right: 1rem;
+ margin-left: 0; }
+ .menu.align-center li {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center; }
+ .menu.align-center li .submenu li {
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start; }
+ .menu .menu-text {
+ padding: 0.7rem 1rem;
+ font-weight: bold;
+ line-height: 1;
+ color: inherit; }
+
+.menu-centered > .menu {
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center; }
+ .menu-centered > .menu li {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center; }
+ .menu-centered > .menu li .submenu li {
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start; }
+
+.no-js [data-responsive-menu] ul {
+ display: none; }
+
+.is-drilldown {
+ position: relative;
+ overflow: hidden; }
+ .is-drilldown li {
+ display: block; }
+ .is-drilldown.animate-height {
+ -webkit-transition: height 0.5s;
+ transition: height 0.5s; }
+
+.drilldown a {
+ padding: 0.7rem 1rem;
+ background: #fefefe; }
+
+.drilldown .is-drilldown-submenu {
+ position: absolute;
+ top: 0;
+ left: 100%;
+ z-index: -1;
+ width: 100%;
+ background: #fefefe;
+ -webkit-transition: -webkit-transform 0.15s linear;
+ transition: -webkit-transform 0.15s linear;
+ transition: transform 0.15s linear;
+ transition: transform 0.15s linear, -webkit-transform 0.15s linear; }
+ .drilldown .is-drilldown-submenu.is-active {
+ z-index: 1;
+ display: block;
+ -webkit-transform: translateX(-100%);
+ -ms-transform: translateX(-100%);
+ transform: translateX(-100%); }
+ .drilldown .is-drilldown-submenu.is-closing {
+ -webkit-transform: translateX(100%);
+ -ms-transform: translateX(100%);
+ transform: translateX(100%); }
+ .drilldown .is-drilldown-submenu a {
+ padding: 0.7rem 1rem; }
+
+.drilldown .nested.is-drilldown-submenu {
+ margin-right: 0;
+ margin-left: 0; }
+
+.drilldown .drilldown-submenu-cover-previous {
+ min-height: 100%; }
+
+.drilldown .is-drilldown-submenu-parent > a {
+ position: relative; }
+ .drilldown .is-drilldown-submenu-parent > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-right-width: 0;
+ border-left-style: solid;
+ border-color: transparent transparent transparent #2ba6cb;
+ position: absolute;
+ top: 50%;
+ margin-top: -6px;
+ right: 1rem; }
+
+.drilldown.align-left .is-drilldown-submenu-parent > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-right-width: 0;
+ border-left-style: solid;
+ border-color: transparent transparent transparent #2ba6cb;
+ right: 1rem;
+ left: auto; }
+
+.drilldown.align-right .is-drilldown-submenu-parent > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-left-width: 0;
+ border-right-style: solid;
+ border-color: transparent #2ba6cb transparent transparent;
+ right: auto;
+ left: 1rem; }
+
+.drilldown .js-drilldown-back > a::before {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-left-width: 0;
+ border-right-style: solid;
+ border-color: transparent #2ba6cb transparent transparent;
+ display: inline-block;
+ vertical-align: middle;
+ margin-right: 0.75rem; }
+
+.accordion-menu li {
+ width: 100%; }
+
+.accordion-menu a {
+ padding: 0.7rem 1rem; }
+
+.accordion-menu .is-accordion-submenu a {
+ padding: 0.7rem 1rem; }
+
+.accordion-menu .nested.is-accordion-submenu {
+ margin-right: 0;
+ margin-left: 1rem; }
+
+.accordion-menu.align-right .nested.is-accordion-submenu {
+ margin-right: 1rem;
+ margin-left: 0; }
+
+.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a {
+ position: relative; }
+ .accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-bottom-width: 0;
+ border-top-style: solid;
+ border-color: #2ba6cb transparent transparent;
+ position: absolute;
+ top: 50%;
+ margin-top: -3px;
+ right: 1rem; }
+
+.accordion-menu.align-left .is-accordion-submenu-parent > a::after {
+ right: 1rem;
+ left: auto; }
+
+.accordion-menu.align-right .is-accordion-submenu-parent > a::after {
+ right: auto;
+ left: 1rem; }
+
+.accordion-menu .is-accordion-submenu-parent[aria-expanded='true'] > a::after {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg);
+ -webkit-transform-origin: 50% 50%;
+ -ms-transform-origin: 50% 50%;
+ transform-origin: 50% 50%; }
+
+.is-accordion-submenu-parent {
+ position: relative; }
+
+.has-submenu-toggle > a {
+ margin-right: 40px; }
+
+.submenu-toggle {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 40px;
+ height: 40px;
+ cursor: pointer; }
+ .submenu-toggle::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-bottom-width: 0;
+ border-top-style: solid;
+ border-color: #2ba6cb transparent transparent;
+ top: 0;
+ bottom: 0;
+ margin: auto; }
+
+.submenu-toggle[aria-expanded='true']::after {
+ -webkit-transform: scaleY(-1);
+ -ms-transform: scaleY(-1);
+ transform: scaleY(-1);
+ -webkit-transform-origin: 50% 50%;
+ -ms-transform-origin: 50% 50%;
+ transform-origin: 50% 50%; }
+
+.submenu-toggle-text {
+ position: absolute !important;
+ width: 1px !important;
+ height: 1px !important;
+ padding: 0 !important;
+ overflow: hidden !important;
+ clip: rect(0, 0, 0, 0) !important;
+ white-space: nowrap !important;
+ border: 0 !important; }
+
+.dropdown.menu > li.opens-left > .is-dropdown-submenu {
+ top: 100%;
+ right: 0;
+ left: auto; }
+
+.dropdown.menu > li.opens-right > .is-dropdown-submenu {
+ top: 100%;
+ right: auto;
+ left: 0; }
+
+.dropdown.menu > li.is-dropdown-submenu-parent > a {
+ position: relative;
+ padding-right: 1.5rem; }
+
+.dropdown.menu > li.is-dropdown-submenu-parent > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-bottom-width: 0;
+ border-top-style: solid;
+ border-color: #2ba6cb transparent transparent;
+ right: 5px;
+ left: auto;
+ margin-top: -3px; }
+
+[data-whatinput='mouse'] .dropdown.menu a {
+ outline: 0; }
+
+.dropdown.menu > li > a {
+ padding: 0.7rem 1rem; }
+
+.dropdown.menu > li.is-active > a {
+ background: transparent;
+ color: #2ba6cb; }
+
+.no-js .dropdown.menu ul {
+ display: none; }
+
+.dropdown.menu .nested.is-dropdown-submenu {
+ margin-right: 0;
+ margin-left: 0; }
+
+.dropdown.menu.vertical > li .is-dropdown-submenu {
+ top: 0; }
+
+.dropdown.menu.vertical > li.opens-left > .is-dropdown-submenu {
+ top: 0;
+ right: 100%;
+ left: auto; }
+
+.dropdown.menu.vertical > li.opens-right > .is-dropdown-submenu {
+ right: auto;
+ left: 100%; }
+
+.dropdown.menu.vertical > li > a::after {
+ right: 14px; }
+
+.dropdown.menu.vertical > li.opens-left > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-left-width: 0;
+ border-right-style: solid;
+ border-color: transparent #2ba6cb transparent transparent;
+ right: auto;
+ left: 5px; }
+
+.dropdown.menu.vertical > li.opens-right > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-right-width: 0;
+ border-left-style: solid;
+ border-color: transparent transparent transparent #2ba6cb; }
+
+@media print, screen and (min-width: 40em) {
+ .dropdown.menu.medium-horizontal > li.opens-left > .is-dropdown-submenu {
+ top: 100%;
+ right: 0;
+ left: auto; }
+ .dropdown.menu.medium-horizontal > li.opens-right > .is-dropdown-submenu {
+ top: 100%;
+ right: auto;
+ left: 0; }
+ .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a {
+ position: relative;
+ padding-right: 1.5rem; }
+ .dropdown.menu.medium-horizontal > li.is-dropdown-submenu-parent > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-bottom-width: 0;
+ border-top-style: solid;
+ border-color: #2ba6cb transparent transparent;
+ right: 5px;
+ left: auto;
+ margin-top: -3px; }
+ .dropdown.menu.medium-vertical > li .is-dropdown-submenu {
+ top: 0; }
+ .dropdown.menu.medium-vertical > li.opens-left > .is-dropdown-submenu {
+ top: 0;
+ right: 100%;
+ left: auto; }
+ .dropdown.menu.medium-vertical > li.opens-right > .is-dropdown-submenu {
+ right: auto;
+ left: 100%; }
+ .dropdown.menu.medium-vertical > li > a::after {
+ right: 14px; }
+ .dropdown.menu.medium-vertical > li.opens-left > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-left-width: 0;
+ border-right-style: solid;
+ border-color: transparent #2ba6cb transparent transparent;
+ right: auto;
+ left: 5px; }
+ .dropdown.menu.medium-vertical > li.opens-right > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-right-width: 0;
+ border-left-style: solid;
+ border-color: transparent transparent transparent #2ba6cb; } }
+
+@media print, screen and (min-width: 64em) {
+ .dropdown.menu.large-horizontal > li.opens-left > .is-dropdown-submenu {
+ top: 100%;
+ right: 0;
+ left: auto; }
+ .dropdown.menu.large-horizontal > li.opens-right > .is-dropdown-submenu {
+ top: 100%;
+ right: auto;
+ left: 0; }
+ .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a {
+ position: relative;
+ padding-right: 1.5rem; }
+ .dropdown.menu.large-horizontal > li.is-dropdown-submenu-parent > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-bottom-width: 0;
+ border-top-style: solid;
+ border-color: #2ba6cb transparent transparent;
+ right: 5px;
+ left: auto;
+ margin-top: -3px; }
+ .dropdown.menu.large-vertical > li .is-dropdown-submenu {
+ top: 0; }
+ .dropdown.menu.large-vertical > li.opens-left > .is-dropdown-submenu {
+ top: 0;
+ right: 100%;
+ left: auto; }
+ .dropdown.menu.large-vertical > li.opens-right > .is-dropdown-submenu {
+ right: auto;
+ left: 100%; }
+ .dropdown.menu.large-vertical > li > a::after {
+ right: 14px; }
+ .dropdown.menu.large-vertical > li.opens-left > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-left-width: 0;
+ border-right-style: solid;
+ border-color: transparent #2ba6cb transparent transparent;
+ right: auto;
+ left: 5px; }
+ .dropdown.menu.large-vertical > li.opens-right > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-right-width: 0;
+ border-left-style: solid;
+ border-color: transparent transparent transparent #2ba6cb; } }
+
+.dropdown.menu.align-right .is-dropdown-submenu.first-sub {
+ top: 100%;
+ right: 0;
+ left: auto; }
+
+.is-dropdown-menu.vertical {
+ width: 100px; }
+ .is-dropdown-menu.vertical.align-right {
+ float: right; }
+
+.is-dropdown-submenu-parent {
+ position: relative; }
+ .is-dropdown-submenu-parent a::after {
+ position: absolute;
+ top: 50%;
+ right: 5px;
+ left: auto;
+ margin-top: -6px; }
+ .is-dropdown-submenu-parent.opens-inner > .is-dropdown-submenu {
+ top: 100%;
+ left: auto; }
+ .is-dropdown-submenu-parent.opens-left > .is-dropdown-submenu {
+ right: 100%;
+ left: auto; }
+ .is-dropdown-submenu-parent.opens-right > .is-dropdown-submenu {
+ right: auto;
+ left: 100%; }
+
+.is-dropdown-submenu {
+ position: absolute;
+ top: 0;
+ left: 100%;
+ z-index: 1;
+ display: none;
+ min-width: 200px;
+ border: 1px solid #cacaca;
+ background: #fefefe; }
+ .dropdown .is-dropdown-submenu a {
+ padding: 0.7rem 1rem; }
+ .is-dropdown-submenu .is-dropdown-submenu-parent > a::after {
+ right: 14px; }
+ .is-dropdown-submenu .is-dropdown-submenu-parent.opens-left > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-left-width: 0;
+ border-right-style: solid;
+ border-color: transparent #2ba6cb transparent transparent;
+ right: auto;
+ left: 5px; }
+ .is-dropdown-submenu .is-dropdown-submenu-parent.opens-right > a::after {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 6px;
+ content: '';
+ border-right-width: 0;
+ border-left-style: solid;
+ border-color: transparent transparent transparent #2ba6cb; }
+ .is-dropdown-submenu .is-dropdown-submenu {
+ margin-top: -1px; }
+ .is-dropdown-submenu > li {
+ width: 100%; }
+ .is-dropdown-submenu.js-dropdown-active {
+ display: block; }
+
+.title-bar {
+ padding: 0.5rem;
+ background: #0a0a0a;
+ color: #fefefe;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center; }
+ .title-bar .menu-icon {
+ margin-left: 0.25rem;
+ margin-right: 0.25rem; }
+
+.title-bar-left,
+.title-bar-right {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px; }
+
+.title-bar-right {
+ text-align: right; }
+
+.title-bar-title {
+ display: inline-block;
+ vertical-align: middle;
+ font-weight: bold; }
+
+.top-bar {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-box-pack: justify;
+ -webkit-justify-content: space-between;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ padding: 0.5rem;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap; }
+ .top-bar,
+ .top-bar ul {
+ background-color: #e6e6e6; }
+ .top-bar input {
+ max-width: 200px;
+ margin-right: 1rem; }
+ .top-bar .input-group-field {
+ width: 100%;
+ margin-right: 0; }
+ .top-bar input.button {
+ width: auto; }
+ .top-bar .top-bar-left,
+ .top-bar .top-bar-right {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 100%;
+ -ms-flex: 0 0 100%;
+ flex: 0 0 100%;
+ max-width: 100%; }
+ @media print, screen and (min-width: 40em) {
+ .top-bar {
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap; }
+ .top-bar .top-bar-left {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto;
+ margin-right: auto; }
+ .top-bar .top-bar-right {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 1 auto;
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto;
+ margin-left: auto; } }
+ @media print, screen and (max-width: 63.99875em) {
+ .top-bar.stacked-for-medium {
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap; }
+ .top-bar.stacked-for-medium .top-bar-left,
+ .top-bar.stacked-for-medium .top-bar-right {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 100%;
+ -ms-flex: 0 0 100%;
+ flex: 0 0 100%;
+ max-width: 100%; } }
+ @media print, screen and (max-width: 74.99875em) {
+ .top-bar.stacked-for-large {
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap; }
+ .top-bar.stacked-for-large .top-bar-left,
+ .top-bar.stacked-for-large .top-bar-right {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 100%;
+ -ms-flex: 0 0 100%;
+ flex: 0 0 100%;
+ max-width: 100%; } }
+
+.top-bar-title {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto;
+ margin: 0.5rem 1rem 0.5rem 0; }
+
+.top-bar-left,
+.top-bar-right {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto; }
+
+.breadcrumbs {
+ margin: 0 0 1rem 0;
+ list-style: none; }
+ .breadcrumbs::before, .breadcrumbs::after {
+ display: table;
+ content: ' ';
+ -webkit-flex-basis: 0;
+ -ms-flex-preferred-size: 0;
+ flex-basis: 0;
+ -webkit-box-ordinal-group: 2;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1; }
+ .breadcrumbs::after {
+ clear: both; }
+ .breadcrumbs li {
+ float: left;
+ font-size: 0.6875rem;
+ color: #0a0a0a;
+ cursor: default;
+ text-transform: uppercase; }
+ .breadcrumbs li:not(:last-child)::after {
+ position: relative;
+ margin: 0 0.75rem;
+ opacity: 1;
+ content: "/";
+ color: #cacaca; }
+ .breadcrumbs a {
+ color: #2ba6cb; }
+ .breadcrumbs a:hover {
+ text-decoration: underline; }
+ .breadcrumbs .disabled {
+ color: #cacaca;
+ cursor: not-allowed; }
+
+.pagination {
+ margin-left: 0;
+ margin-bottom: 1rem; }
+ .pagination::before, .pagination::after {
+ display: table;
+ content: ' ';
+ -webkit-flex-basis: 0;
+ -ms-flex-preferred-size: 0;
+ flex-basis: 0;
+ -webkit-box-ordinal-group: 2;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1; }
+ .pagination::after {
+ clear: both; }
+ .pagination li {
+ margin-right: 0.0625rem;
+ border-radius: 3px;
+ font-size: 0.875rem;
+ display: none; }
+ .pagination li:last-child, .pagination li:first-child {
+ display: inline-block; }
+ @media print, screen and (min-width: 40em) {
+ .pagination li {
+ display: inline-block; } }
+ .pagination a,
+ .pagination button {
+ display: block;
+ padding: 0.1875rem 0.625rem;
+ border-radius: 3px;
+ color: #0a0a0a; }
+ .pagination a:hover,
+ .pagination button:hover {
+ background: #e6e6e6; }
+ .pagination .current {
+ padding: 0.1875rem 0.625rem;
+ background: #2ba6cb;
+ color: #fefefe;
+ cursor: default; }
+ .pagination .disabled {
+ padding: 0.1875rem 0.625rem;
+ color: #cacaca;
+ cursor: not-allowed; }
+ .pagination .disabled:hover {
+ background: transparent; }
+ .pagination .ellipsis::after {
+ padding: 0.1875rem 0.625rem;
+ content: '\2026';
+ color: #0a0a0a; }
+
+.pagination-previous a::before,
+.pagination-previous.disabled::before {
+ display: inline-block;
+ margin-right: 0.5rem;
+ content: "«"; }
+
+.pagination-next a::after,
+.pagination-next.disabled::after {
+ display: inline-block;
+ margin-left: 0.5rem;
+ content: "»"; }
+
+.accordion {
+ margin-left: 0;
+ background: #fefefe;
+ list-style-type: none; }
+ .accordion[disabled] .accordion-title {
+ cursor: not-allowed; }
+
+.accordion-item:first-child > :first-child {
+ border-radius: 3px 3px 0 0; }
+
+.accordion-item:last-child > :last-child {
+ border-radius: 0 0 3px 3px; }
+
+.accordion-title {
+ position: relative;
+ display: block;
+ padding: 1.25rem 1rem;
+ border: 1px solid #e6e6e6;
+ border-bottom: 0;
+ font-size: 0.75rem;
+ line-height: 1;
+ color: #2ba6cb; }
+ :last-child:not(.is-active) > .accordion-title {
+ border-bottom: 1px solid #e6e6e6;
+ border-radius: 0 0 3px 3px; }
+ .accordion-title:hover, .accordion-title:focus {
+ background-color: #e6e6e6; }
+ .accordion-title::before {
+ position: absolute;
+ top: 50%;
+ right: 1rem;
+ margin-top: -0.5rem;
+ content: "+"; }
+ .is-active > .accordion-title::before {
+ content: "–"; }
+
+.accordion-content {
+ display: none;
+ padding: 1rem;
+ border: 1px solid #e6e6e6;
+ border-bottom: 0;
+ background-color: #fefefe;
+ color: #0a0a0a; }
+ :last-child > .accordion-content:last-child {
+ border-bottom: 1px solid #e6e6e6; }
+
+.dropdown-pane {
+ position: absolute;
+ z-index: 10;
+ display: none;
+ width: 300px;
+ padding: 1rem;
+ visibility: hidden;
+ border: 1px solid #cacaca;
+ border-radius: 3px;
+ background-color: #fefefe;
+ font-size: 1rem; }
+ .dropdown-pane.is-opening {
+ display: block; }
+ .dropdown-pane.is-open {
+ display: block;
+ visibility: visible; }
+
+.dropdown-pane.tiny {
+ width: 100px; }
+
+.dropdown-pane.small {
+ width: 200px; }
+
+.dropdown-pane.large {
+ width: 400px; }
+
+.is-off-canvas-open {
+ overflow: hidden; }
+
+.js-off-canvas-overlay {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 11;
+ width: 100%;
+ height: 100%;
+ -webkit-transition: opacity 0.5s ease, visibility 0.5s ease;
+ transition: opacity 0.5s ease, visibility 0.5s ease;
+ background: rgba(254, 254, 254, 0.25);
+ opacity: 0;
+ visibility: hidden;
+ overflow: hidden; }
+ .js-off-canvas-overlay.is-visible {
+ opacity: 1;
+ visibility: visible; }
+ .js-off-canvas-overlay.is-closable {
+ cursor: pointer; }
+ .js-off-canvas-overlay.is-overlay-absolute {
+ position: absolute; }
+ .js-off-canvas-overlay.is-overlay-fixed {
+ position: fixed; }
+
+.off-canvas-wrapper {
+ position: relative;
+ overflow: hidden; }
+
+.off-canvas {
+ position: fixed;
+ z-index: 12;
+ -webkit-transition: -webkit-transform 0.5s ease;
+ transition: -webkit-transform 0.5s ease;
+ transition: transform 0.5s ease;
+ transition: transform 0.5s ease, -webkit-transform 0.5s ease;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ background: #e6e6e6; }
+ [data-whatinput='mouse'] .off-canvas {
+ outline: 0; }
+ .off-canvas.is-transition-push {
+ z-index: 12; }
+ .off-canvas.is-closed {
+ visibility: hidden; }
+ .off-canvas.is-transition-overlap {
+ z-index: 13; }
+ .off-canvas.is-transition-overlap.is-open {
+ -webkit-box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
+ box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }
+ .off-canvas.is-open {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0); }
+
+.off-canvas-absolute {
+ position: absolute;
+ z-index: 12;
+ -webkit-transition: -webkit-transform 0.5s ease;
+ transition: -webkit-transform 0.5s ease;
+ transition: transform 0.5s ease;
+ transition: transform 0.5s ease, -webkit-transform 0.5s ease;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ background: #e6e6e6; }
+ [data-whatinput='mouse'] .off-canvas-absolute {
+ outline: 0; }
+ .off-canvas-absolute.is-transition-push {
+ z-index: 12; }
+ .off-canvas-absolute.is-closed {
+ visibility: hidden; }
+ .off-canvas-absolute.is-transition-overlap {
+ z-index: 13; }
+ .off-canvas-absolute.is-transition-overlap.is-open {
+ -webkit-box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
+ box-shadow: 0 0 10px rgba(10, 10, 10, 0.7); }
+ .off-canvas-absolute.is-open {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0); }
+
+.position-left {
+ top: 0;
+ left: 0;
+ height: 100%;
+ overflow-y: auto;
+ width: 250px;
+ -webkit-transform: translateX(-250px);
+ -ms-transform: translateX(-250px);
+ transform: translateX(-250px); }
+ .off-canvas-content .off-canvas.position-left {
+ -webkit-transform: translateX(-250px);
+ -ms-transform: translateX(-250px);
+ transform: translateX(-250px); }
+ .off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0); }
+ .off-canvas-content.is-open-left.has-transition-push {
+ -webkit-transform: translateX(250px);
+ -ms-transform: translateX(250px);
+ transform: translateX(250px); }
+ .position-left.is-transition-push {
+ -webkit-box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25);
+ box-shadow: inset -13px 0 20px -13px rgba(10, 10, 10, 0.25); }
+
+.position-right {
+ top: 0;
+ right: 0;
+ height: 100%;
+ overflow-y: auto;
+ width: 250px;
+ -webkit-transform: translateX(250px);
+ -ms-transform: translateX(250px);
+ transform: translateX(250px); }
+ .off-canvas-content .off-canvas.position-right {
+ -webkit-transform: translateX(250px);
+ -ms-transform: translateX(250px);
+ transform: translateX(250px); }
+ .off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0); }
+ .off-canvas-content.is-open-right.has-transition-push {
+ -webkit-transform: translateX(-250px);
+ -ms-transform: translateX(-250px);
+ transform: translateX(-250px); }
+ .position-right.is-transition-push {
+ -webkit-box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25);
+ box-shadow: inset 13px 0 20px -13px rgba(10, 10, 10, 0.25); }
+
+.position-top {
+ top: 0;
+ left: 0;
+ width: 100%;
+ overflow-x: auto;
+ height: 250px;
+ -webkit-transform: translateY(-250px);
+ -ms-transform: translateY(-250px);
+ transform: translateY(-250px); }
+ .off-canvas-content .off-canvas.position-top {
+ -webkit-transform: translateY(-250px);
+ -ms-transform: translateY(-250px);
+ transform: translateY(-250px); }
+ .off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0); }
+ .off-canvas-content.is-open-top.has-transition-push {
+ -webkit-transform: translateY(250px);
+ -ms-transform: translateY(250px);
+ transform: translateY(250px); }
+ .position-top.is-transition-push {
+ -webkit-box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25);
+ box-shadow: inset 0 -13px 20px -13px rgba(10, 10, 10, 0.25); }
+
+.position-bottom {
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ overflow-x: auto;
+ height: 250px;
+ -webkit-transform: translateY(250px);
+ -ms-transform: translateY(250px);
+ transform: translateY(250px); }
+ .off-canvas-content .off-canvas.position-bottom {
+ -webkit-transform: translateY(250px);
+ -ms-transform: translateY(250px);
+ transform: translateY(250px); }
+ .off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0); }
+ .off-canvas-content.is-open-bottom.has-transition-push {
+ -webkit-transform: translateY(-250px);
+ -ms-transform: translateY(-250px);
+ transform: translateY(-250px); }
+ .position-bottom.is-transition-push {
+ -webkit-box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25);
+ box-shadow: inset 0 13px 20px -13px rgba(10, 10, 10, 0.25); }
+
+.off-canvas-content {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden; }
+ .off-canvas-content.has-transition-overlap, .off-canvas-content.has-transition-push {
+ -webkit-transition: -webkit-transform 0.5s ease;
+ transition: -webkit-transform 0.5s ease;
+ transition: transform 0.5s ease;
+ transition: transform 0.5s ease, -webkit-transform 0.5s ease; }
+ .off-canvas-content.has-transition-push {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0); }
+ .off-canvas-content .off-canvas.is-open {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0); }
+
+@media print, screen and (min-width: 40em) {
+ .position-left.reveal-for-medium {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ z-index: 12;
+ -webkit-transition: none;
+ transition: none;
+ visibility: visible; }
+ .position-left.reveal-for-medium .close-button {
+ display: none; }
+ .off-canvas-content .position-left.reveal-for-medium {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none; }
+ .off-canvas-content.has-reveal-left {
+ margin-left: 250px; }
+ .position-left.reveal-for-medium ~ .off-canvas-content {
+ margin-left: 250px; }
+ .position-right.reveal-for-medium {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ z-index: 12;
+ -webkit-transition: none;
+ transition: none;
+ visibility: visible; }
+ .position-right.reveal-for-medium .close-button {
+ display: none; }
+ .off-canvas-content .position-right.reveal-for-medium {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none; }
+ .off-canvas-content.has-reveal-right {
+ margin-right: 250px; }
+ .position-right.reveal-for-medium ~ .off-canvas-content {
+ margin-right: 250px; }
+ .position-top.reveal-for-medium {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ z-index: 12;
+ -webkit-transition: none;
+ transition: none;
+ visibility: visible; }
+ .position-top.reveal-for-medium .close-button {
+ display: none; }
+ .off-canvas-content .position-top.reveal-for-medium {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none; }
+ .off-canvas-content.has-reveal-top {
+ margin-top: 250px; }
+ .position-top.reveal-for-medium ~ .off-canvas-content {
+ margin-top: 250px; }
+ .position-bottom.reveal-for-medium {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ z-index: 12;
+ -webkit-transition: none;
+ transition: none;
+ visibility: visible; }
+ .position-bottom.reveal-for-medium .close-button {
+ display: none; }
+ .off-canvas-content .position-bottom.reveal-for-medium {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none; }
+ .off-canvas-content.has-reveal-bottom {
+ margin-bottom: 250px; }
+ .position-bottom.reveal-for-medium ~ .off-canvas-content {
+ margin-bottom: 250px; } }
+
+@media print, screen and (min-width: 64em) {
+ .position-left.reveal-for-large {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ z-index: 12;
+ -webkit-transition: none;
+ transition: none;
+ visibility: visible; }
+ .position-left.reveal-for-large .close-button {
+ display: none; }
+ .off-canvas-content .position-left.reveal-for-large {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none; }
+ .off-canvas-content.has-reveal-left {
+ margin-left: 250px; }
+ .position-left.reveal-for-large ~ .off-canvas-content {
+ margin-left: 250px; }
+ .position-right.reveal-for-large {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ z-index: 12;
+ -webkit-transition: none;
+ transition: none;
+ visibility: visible; }
+ .position-right.reveal-for-large .close-button {
+ display: none; }
+ .off-canvas-content .position-right.reveal-for-large {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none; }
+ .off-canvas-content.has-reveal-right {
+ margin-right: 250px; }
+ .position-right.reveal-for-large ~ .off-canvas-content {
+ margin-right: 250px; }
+ .position-top.reveal-for-large {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ z-index: 12;
+ -webkit-transition: none;
+ transition: none;
+ visibility: visible; }
+ .position-top.reveal-for-large .close-button {
+ display: none; }
+ .off-canvas-content .position-top.reveal-for-large {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none; }
+ .off-canvas-content.has-reveal-top {
+ margin-top: 250px; }
+ .position-top.reveal-for-large ~ .off-canvas-content {
+ margin-top: 250px; }
+ .position-bottom.reveal-for-large {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none;
+ z-index: 12;
+ -webkit-transition: none;
+ transition: none;
+ visibility: visible; }
+ .position-bottom.reveal-for-large .close-button {
+ display: none; }
+ .off-canvas-content .position-bottom.reveal-for-large {
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none; }
+ .off-canvas-content.has-reveal-bottom {
+ margin-bottom: 250px; }
+ .position-bottom.reveal-for-large ~ .off-canvas-content {
+ margin-bottom: 250px; } }
+
+@media print, screen and (min-width: 40em) {
+ .off-canvas.in-canvas-for-medium {
+ visibility: visible;
+ height: auto;
+ position: static;
+ background: none;
+ width: auto;
+ overflow: visible;
+ -webkit-transition: none;
+ transition: none; }
+ .off-canvas.in-canvas-for-medium.position-left, .off-canvas.in-canvas-for-medium.position-right, .off-canvas.in-canvas-for-medium.position-top, .off-canvas.in-canvas-for-medium.position-bottom {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none; }
+ .off-canvas.in-canvas-for-medium .close-button {
+ display: none; } }
+
+@media print, screen and (min-width: 64em) {
+ .off-canvas.in-canvas-for-large {
+ visibility: visible;
+ height: auto;
+ position: static;
+ background: none;
+ width: auto;
+ overflow: visible;
+ -webkit-transition: none;
+ transition: none; }
+ .off-canvas.in-canvas-for-large.position-left, .off-canvas.in-canvas-for-large.position-right, .off-canvas.in-canvas-for-large.position-top, .off-canvas.in-canvas-for-large.position-bottom {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none; }
+ .off-canvas.in-canvas-for-large .close-button {
+ display: none; } }
+
+.tabs {
+ margin: 0;
+ border: 1px solid #e6e6e6;
+ background: #fefefe;
+ list-style-type: none; }
+ .tabs::before, .tabs::after {
+ display: table;
+ content: ' ';
+ -webkit-flex-basis: 0;
+ -ms-flex-preferred-size: 0;
+ flex-basis: 0;
+ -webkit-box-ordinal-group: 2;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1; }
+ .tabs::after {
+ clear: both; }
+
+.tabs.vertical > li {
+ display: block;
+ float: none;
+ width: auto; }
+
+.tabs.simple > li > a {
+ padding: 0; }
+ .tabs.simple > li > a:hover {
+ background: transparent; }
+
+.tabs.primary {
+ background: #2ba6cb; }
+ .tabs.primary > li > a {
+ color: #0a0a0a; }
+ .tabs.primary > li > a:hover, .tabs.primary > li > a:focus {
+ background: #299ec1; }
+
+.tabs-title {
+ float: left; }
+ .tabs-title > a {
+ display: block;
+ padding: 1.25rem 1.5rem;
+ font-size: 0.75rem;
+ line-height: 1;
+ color: #2ba6cb; }
+ [data-whatinput='mouse'] .tabs-title > a {
+ outline: 0; }
+ .tabs-title > a:hover {
+ background: #fefefe;
+ color: #258faf; }
+ .tabs-title > a:focus, .tabs-title > a[aria-selected='true'] {
+ background: #e6e6e6;
+ color: #2ba6cb; }
+
+.tabs-content {
+ border: 1px solid #e6e6e6;
+ border-top: 0;
+ background: #fefefe;
+ color: #0a0a0a;
+ -webkit-transition: all 0.5s ease;
+ transition: all 0.5s ease; }
+
+.tabs-content.vertical {
+ border: 1px solid #e6e6e6;
+ border-left: 0; }
+
+.tabs-panel {
+ display: none;
+ padding: 1rem; }
+ .tabs-panel.is-active {
+ display: block; }
+
+.callout {
+ position: relative;
+ margin: 0 0 1rem 0;
+ padding: 1rem;
+ border: 1px solid rgba(10, 10, 10, 0.25);
+ border-radius: 3px;
+ background-color: white;
+ color: #0a0a0a; }
+ .callout > :first-child {
+ margin-top: 0; }
+ .callout > :last-child {
+ margin-bottom: 0; }
+ .callout.primary {
+ background-color: #def2f8;
+ color: #0a0a0a; }
+ .callout.secondary {
+ background-color: #fcfcfc;
+ color: #0a0a0a; }
+ .callout.alert {
+ background-color: #fcd6d6;
+ color: #0a0a0a; }
+ .callout.success {
+ background-color: #e6f7d9;
+ color: #0a0a0a; }
+ .callout.warning {
+ background-color: #fff3d9;
+ color: #0a0a0a; }
+ .callout.body-font {
+ background-color: #dedede;
+ color: #0a0a0a; }
+ .callout.header {
+ background-color: #dedede;
+ color: #0a0a0a; }
+ .callout.small {
+ padding-top: 0.5rem;
+ padding-right: 0.5rem;
+ padding-bottom: 0.5rem;
+ padding-left: 0.5rem; }
+ .callout.large {
+ padding-top: 3rem;
+ padding-right: 3rem;
+ padding-bottom: 3rem;
+ padding-left: 3rem; }
+
+.card {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-box-flex: 1;
+ -webkit-flex-grow: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+ margin-bottom: 1rem;
+ border: 1px solid #e6e6e6;
+ border-radius: 3px;
+ background: #fefefe;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ overflow: hidden;
+ color: #0a0a0a; }
+ .card > :last-child {
+ margin-bottom: 0; }
+
+.card-divider {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 1 auto;
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto;
+ padding: 1rem;
+ background: #e6e6e6; }
+ .card-divider > :last-child {
+ margin-bottom: 0; }
+
+.card-section {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 0 auto;
+ -ms-flex: 1 0 auto;
+ flex: 1 0 auto;
+ padding: 1rem; }
+ .card-section > :last-child {
+ margin-bottom: 0; }
+
+.card-image {
+ min-height: 1px; }
+
+.media-object {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ margin-bottom: 1rem;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap; }
+ .media-object img {
+ max-width: none; }
+ @media print, screen and (max-width: 39.99875em) {
+ .media-object.stack-for-small {
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap; } }
+
+.media-object-section {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 1 auto;
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto; }
+ .media-object-section:first-child {
+ padding-right: 1rem; }
+ .media-object-section:last-child:not(:nth-child(2)) {
+ padding-left: 1rem; }
+ .media-object-section > :last-child {
+ margin-bottom: 0; }
+ @media print, screen and (max-width: 39.99875em) {
+ .stack-for-small .media-object-section {
+ padding: 0;
+ padding-bottom: 1rem;
+ -webkit-flex-basis: 100%;
+ -ms-flex-preferred-size: 100%;
+ flex-basis: 100%;
+ max-width: 100%; }
+ .stack-for-small .media-object-section img {
+ width: 100%; } }
+ .media-object-section.main-section {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px; }
+
+html.is-reveal-open {
+ position: fixed;
+ width: 100%;
+ overflow-y: hidden; }
+ html.is-reveal-open.zf-has-scroll {
+ overflow-y: scroll; }
+ html.is-reveal-open body {
+ overflow-y: hidden; }
+
+.reveal-overlay {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1005;
+ display: none;
+ background-color: rgba(10, 10, 10, 0.45);
+ overflow-y: auto; }
+
+.reveal {
+ z-index: 1006;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ display: none;
+ padding: 1rem;
+ border: 1px solid #cacaca;
+ border-radius: 3px;
+ background-color: #fefefe;
+ position: relative;
+ top: 100px;
+ margin-right: auto;
+ margin-left: auto;
+ overflow-y: auto; }
+ [data-whatinput='mouse'] .reveal {
+ outline: 0; }
+ @media print, screen and (min-width: 40em) {
+ .reveal {
+ min-height: 0; } }
+ .reveal .column {
+ min-width: 0; }
+ .reveal > :last-child {
+ margin-bottom: 0; }
+ @media print, screen and (min-width: 40em) {
+ .reveal {
+ width: 600px;
+ max-width: 62.5rem; } }
+ .reveal.collapse {
+ padding: 0; }
+ @media print, screen and (min-width: 40em) {
+ .reveal.tiny {
+ width: 30%;
+ max-width: 62.5rem; } }
+ @media print, screen and (min-width: 40em) {
+ .reveal.small {
+ width: 50%;
+ max-width: 62.5rem; } }
+ @media print, screen and (min-width: 40em) {
+ .reveal.large {
+ width: 90%;
+ max-width: 62.5rem; } }
+ .reveal.full {
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ max-width: none;
+ height: 100%;
+ min-height: 100%;
+ margin-left: 0;
+ border: 0;
+ border-radius: 0; }
+ @media print, screen and (max-width: 39.99875em) {
+ .reveal {
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ max-width: none;
+ height: 100%;
+ min-height: 100%;
+ margin-left: 0;
+ border: 0;
+ border-radius: 0; } }
+ .reveal.without-overlay {
+ position: fixed; }
+
+.badge {
+ display: inline-block;
+ min-width: 2.1em;
+ padding: 0.3em;
+ border-radius: 50%;
+ font-size: 0.6rem;
+ text-align: center;
+ background: #2ba6cb;
+ color: #fefefe; }
+ .badge.primary {
+ background: #2ba6cb;
+ color: #0a0a0a; }
+ .badge.secondary {
+ background: #e9e9e9;
+ color: #0a0a0a; }
+ .badge.alert {
+ background: #c60f13;
+ color: #fefefe; }
+ .badge.success {
+ background: #5da423;
+ color: #0a0a0a; }
+ .badge.warning {
+ background: #ffae00;
+ color: #0a0a0a; }
+ .badge.body-font {
+ background: #222222;
+ color: #fefefe; }
+ .badge.header {
+ background: #222222;
+ color: #fefefe; }
+
+.label {
+ display: inline-block;
+ padding: 0.33333rem 0.5rem;
+ border-radius: 3px;
+ font-size: 0.8rem;
+ line-height: 1;
+ white-space: nowrap;
+ cursor: default;
+ background: #2ba6cb;
+ color: #fefefe; }
+ .label.primary {
+ background: #2ba6cb;
+ color: #0a0a0a; }
+ .label.secondary {
+ background: #e9e9e9;
+ color: #0a0a0a; }
+ .label.alert {
+ background: #c60f13;
+ color: #fefefe; }
+ .label.success {
+ background: #5da423;
+ color: #0a0a0a; }
+ .label.warning {
+ background: #ffae00;
+ color: #0a0a0a; }
+ .label.body-font {
+ background: #222222;
+ color: #fefefe; }
+ .label.header {
+ background: #222222;
+ color: #fefefe; }
+
+.progress {
+ height: 1rem;
+ margin-bottom: 1rem;
+ border-radius: 3px;
+ background-color: #cacaca; }
+ .progress.primary .progress-meter {
+ background-color: #2ba6cb; }
+ .progress.secondary .progress-meter {
+ background-color: #e9e9e9; }
+ .progress.alert .progress-meter {
+ background-color: #c60f13; }
+ .progress.success .progress-meter {
+ background-color: #5da423; }
+ .progress.warning .progress-meter {
+ background-color: #ffae00; }
+ .progress.body-font .progress-meter {
+ background-color: #222222; }
+ .progress.header .progress-meter {
+ background-color: #222222; }
+
+.progress-meter {
+ position: relative;
+ display: block;
+ width: 0%;
+ height: 100%;
+ background-color: #2ba6cb;
+ border-radius: 3px; }
+
+.progress-meter-text {
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ -ms-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ margin: 0;
+ font-size: 0.75rem;
+ font-weight: bold;
+ color: #fefefe;
+ white-space: nowrap;
+ border-radius: 3px; }
+
+.has-tip {
+ position: relative;
+ display: inline-block;
+ border-bottom: dotted 1px #8a8a8a;
+ font-weight: bold;
+ cursor: help; }
+
+.tooltip {
+ position: absolute;
+ top: calc(100% + 0.6495rem);
+ z-index: 1200;
+ max-width: 10rem;
+ padding: 0.75rem;
+ border-radius: 3px;
+ background-color: #0a0a0a;
+ font-size: 80%;
+ color: #fefefe; }
+ .tooltip::before {
+ position: absolute; }
+ .tooltip.bottom::before {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.75rem;
+ content: '';
+ border-top-width: 0;
+ border-bottom-style: solid;
+ border-color: transparent transparent #0a0a0a;
+ bottom: 100%; }
+ .tooltip.bottom.align-center::before {
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ -ms-transform: translateX(-50%);
+ transform: translateX(-50%); }
+ .tooltip.top::before {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.75rem;
+ content: '';
+ border-bottom-width: 0;
+ border-top-style: solid;
+ border-color: #0a0a0a transparent transparent;
+ top: 100%;
+ bottom: auto; }
+ .tooltip.top.align-center::before {
+ left: 50%;
+ -webkit-transform: translateX(-50%);
+ -ms-transform: translateX(-50%);
+ transform: translateX(-50%); }
+ .tooltip.left::before {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.75rem;
+ content: '';
+ border-right-width: 0;
+ border-left-style: solid;
+ border-color: transparent transparent transparent #0a0a0a;
+ left: 100%; }
+ .tooltip.left.align-center::before {
+ bottom: auto;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%); }
+ .tooltip.right::before {
+ display: block;
+ width: 0;
+ height: 0;
+ border: inset 0.75rem;
+ content: '';
+ border-left-width: 0;
+ border-right-style: solid;
+ border-color: transparent #0a0a0a transparent transparent;
+ right: 100%;
+ left: auto; }
+ .tooltip.right.align-center::before {
+ bottom: auto;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%); }
+ .tooltip.align-top::before {
+ bottom: auto;
+ top: 10%; }
+ .tooltip.align-bottom::before {
+ bottom: 10%;
+ top: auto; }
+ .tooltip.align-left::before {
+ left: 10%;
+ right: auto; }
+ .tooltip.align-right::before {
+ left: auto;
+ right: 10%; }
+
+.responsive-embed,
+.flex-video {
+ position: relative;
+ height: 0;
+ margin-bottom: 1rem;
+ padding-bottom: 75%;
+ overflow: hidden; }
+ .responsive-embed iframe,
+ .responsive-embed object,
+ .responsive-embed embed,
+ .responsive-embed video,
+ .flex-video iframe,
+ .flex-video object,
+ .flex-video embed,
+ .flex-video video {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%; }
+ .responsive-embed.widescreen,
+ .flex-video.widescreen {
+ padding-bottom: 56.25%; }
+
+.orbit {
+ position: relative; }
+
+.orbit-container {
+ position: relative;
+ height: 0;
+ margin: 0;
+ list-style: none;
+ overflow: hidden; }
+
+.orbit-slide {
+ width: 100%;
+ position: absolute; }
+ .orbit-slide.no-motionui.is-active {
+ top: 0;
+ left: 0; }
+
+.orbit-figure {
+ margin: 0; }
+
+.orbit-image {
+ width: 100%;
+ max-width: 100%;
+ margin: 0; }
+
+.orbit-caption {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ margin-bottom: 0;
+ padding: 1rem;
+ background-color: rgba(10, 10, 10, 0.5);
+ color: #fefefe; }
+
+.orbit-previous, .orbit-next {
+ position: absolute;
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ -ms-transform: translateY(-50%);
+ transform: translateY(-50%);
+ z-index: 10;
+ padding: 1rem;
+ color: #fefefe; }
+ [data-whatinput='mouse'] .orbit-previous, [data-whatinput='mouse'] .orbit-next {
+ outline: 0; }
+ .orbit-previous:hover, .orbit-next:hover, .orbit-previous:active, .orbit-next:active, .orbit-previous:focus, .orbit-next:focus {
+ background-color: rgba(10, 10, 10, 0.5); }
+
+.orbit-previous {
+ left: 0; }
+
+.orbit-next {
+ left: auto;
+ right: 0; }
+
+.orbit-bullets {
+ position: relative;
+ margin-top: 0.8rem;
+ margin-bottom: 0.8rem;
+ text-align: center; }
+ [data-whatinput='mouse'] .orbit-bullets {
+ outline: 0; }
+ .orbit-bullets button {
+ width: 1.2rem;
+ height: 1.2rem;
+ margin: 0.1rem;
+ border-radius: 50%;
+ background-color: #cacaca; }
+ .orbit-bullets button:hover {
+ background-color: #8a8a8a; }
+ .orbit-bullets button.is-active {
+ background-color: #8a8a8a; }
+
+.thumbnail {
+ display: inline-block;
+ max-width: 100%;
+ margin-bottom: 1rem;
+ border: 4px solid #fefefe;
+ border-radius: 3px;
+ -webkit-box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
+ box-shadow: 0 0 0 1px rgba(10, 10, 10, 0.2);
+ line-height: 0; }
+
+a.thumbnail {
+ -webkit-transition: -webkit-box-shadow 200ms ease-out;
+ transition: -webkit-box-shadow 200ms ease-out;
+ transition: box-shadow 200ms ease-out;
+ transition: box-shadow 200ms ease-out, -webkit-box-shadow 200ms ease-out; }
+ a.thumbnail:hover, a.thumbnail:focus {
+ -webkit-box-shadow: 0 0 6px 1px rgba(43, 166, 203, 0.5);
+ box-shadow: 0 0 6px 1px rgba(43, 166, 203, 0.5); }
+ a.thumbnail image {
+ -webkit-box-shadow: none;
+ box-shadow: none; }
+
+.sticky-container {
+ position: relative; }
+
+.sticky {
+ position: relative;
+ z-index: 0;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0); }
+
+.sticky.is-stuck {
+ position: fixed;
+ z-index: 5;
+ width: 100%; }
+ .sticky.is-stuck.is-at-top {
+ top: 0; }
+ .sticky.is-stuck.is-at-bottom {
+ bottom: 0; }
+
+.sticky.is-anchored {
+ position: relative;
+ right: auto;
+ left: auto; }
+ .sticky.is-anchored.is-at-bottom {
+ bottom: 0; }
+
+.grid-container {
+ padding-right: 0.9375rem;
+ padding-left: 0.9375rem;
+ max-width: 62.5rem;
+ margin-left: auto;
+ margin-right: auto; }
+ .grid-container.fluid {
+ padding-right: 0.9375rem;
+ padding-left: 0.9375rem;
+ max-width: 100%;
+ margin-left: auto;
+ margin-right: auto; }
+ .grid-container.full {
+ padding-right: 0;
+ padding-left: 0;
+ max-width: 100%;
+ margin-left: auto;
+ margin-right: auto; }
+
+.grid-x {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-flow: row wrap;
+ -ms-flex-flow: row wrap;
+ flex-flow: row wrap; }
+
+.cell {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto;
+ min-height: 0px;
+ min-width: 0px;
+ width: 100%; }
+ .cell.auto {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px; }
+ .cell.shrink {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto; }
+
+.grid-x > .auto {
+ width: auto; }
+
+.grid-x > .shrink {
+ width: auto; }
+
+.grid-x > .small-shrink, .grid-x > .small-full, .grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {
+ -webkit-flex-basis: auto;
+ -ms-flex-preferred-size: auto;
+ flex-basis: auto; }
+
+@media print, screen and (min-width: 40em) {
+ .grid-x > .medium-shrink, .grid-x > .medium-full, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {
+ -webkit-flex-basis: auto;
+ -ms-flex-preferred-size: auto;
+ flex-basis: auto; } }
+
+@media print, screen and (min-width: 64em) {
+ .grid-x > .large-shrink, .grid-x > .large-full, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {
+ -webkit-flex-basis: auto;
+ -ms-flex-preferred-size: auto;
+ flex-basis: auto; } }
+
+.grid-x > .small-1, .grid-x > .small-2, .grid-x > .small-3, .grid-x > .small-4, .grid-x > .small-5, .grid-x > .small-6, .grid-x > .small-7, .grid-x > .small-8, .grid-x > .small-9, .grid-x > .small-10, .grid-x > .small-11, .grid-x > .small-12 {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto; }
+
+.grid-x > .small-1 {
+ width: 8.33333%; }
+
+.grid-x > .small-2 {
+ width: 16.66667%; }
+
+.grid-x > .small-3 {
+ width: 25%; }
+
+.grid-x > .small-4 {
+ width: 33.33333%; }
+
+.grid-x > .small-5 {
+ width: 41.66667%; }
+
+.grid-x > .small-6 {
+ width: 50%; }
+
+.grid-x > .small-7 {
+ width: 58.33333%; }
+
+.grid-x > .small-8 {
+ width: 66.66667%; }
+
+.grid-x > .small-9 {
+ width: 75%; }
+
+.grid-x > .small-10 {
+ width: 83.33333%; }
+
+.grid-x > .small-11 {
+ width: 91.66667%; }
+
+.grid-x > .small-12 {
+ width: 100%; }
+
+@media print, screen and (min-width: 40em) {
+ .grid-x > .medium-auto {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px;
+ width: auto; }
+ .grid-x > .medium-shrink, .grid-x > .medium-1, .grid-x > .medium-2, .grid-x > .medium-3, .grid-x > .medium-4, .grid-x > .medium-5, .grid-x > .medium-6, .grid-x > .medium-7, .grid-x > .medium-8, .grid-x > .medium-9, .grid-x > .medium-10, .grid-x > .medium-11, .grid-x > .medium-12 {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto; }
+ .grid-x > .medium-shrink {
+ width: auto; }
+ .grid-x > .medium-1 {
+ width: 8.33333%; }
+ .grid-x > .medium-2 {
+ width: 16.66667%; }
+ .grid-x > .medium-3 {
+ width: 25%; }
+ .grid-x > .medium-4 {
+ width: 33.33333%; }
+ .grid-x > .medium-5 {
+ width: 41.66667%; }
+ .grid-x > .medium-6 {
+ width: 50%; }
+ .grid-x > .medium-7 {
+ width: 58.33333%; }
+ .grid-x > .medium-8 {
+ width: 66.66667%; }
+ .grid-x > .medium-9 {
+ width: 75%; }
+ .grid-x > .medium-10 {
+ width: 83.33333%; }
+ .grid-x > .medium-11 {
+ width: 91.66667%; }
+ .grid-x > .medium-12 {
+ width: 100%; } }
+
+@media print, screen and (min-width: 64em) {
+ .grid-x > .large-auto {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px;
+ width: auto; }
+ .grid-x > .large-shrink, .grid-x > .large-1, .grid-x > .large-2, .grid-x > .large-3, .grid-x > .large-4, .grid-x > .large-5, .grid-x > .large-6, .grid-x > .large-7, .grid-x > .large-8, .grid-x > .large-9, .grid-x > .large-10, .grid-x > .large-11, .grid-x > .large-12 {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto; }
+ .grid-x > .large-shrink {
+ width: auto; }
+ .grid-x > .large-1 {
+ width: 8.33333%; }
+ .grid-x > .large-2 {
+ width: 16.66667%; }
+ .grid-x > .large-3 {
+ width: 25%; }
+ .grid-x > .large-4 {
+ width: 33.33333%; }
+ .grid-x > .large-5 {
+ width: 41.66667%; }
+ .grid-x > .large-6 {
+ width: 50%; }
+ .grid-x > .large-7 {
+ width: 58.33333%; }
+ .grid-x > .large-8 {
+ width: 66.66667%; }
+ .grid-x > .large-9 {
+ width: 75%; }
+ .grid-x > .large-10 {
+ width: 83.33333%; }
+ .grid-x > .large-11 {
+ width: 91.66667%; }
+ .grid-x > .large-12 {
+ width: 100%; } }
+
+.grid-margin-x:not(.grid-x) > .cell {
+ width: auto; }
+
+.grid-margin-y:not(.grid-y) > .cell {
+ height: auto; }
+
+.grid-margin-x {
+ margin-left: -0.9375rem;
+ margin-right: -0.9375rem; }
+ .grid-margin-x > .cell {
+ width: calc(100% - 1.875rem);
+ margin-left: 0.9375rem;
+ margin-right: 0.9375rem; }
+ .grid-margin-x > .auto {
+ width: auto; }
+ .grid-margin-x > .shrink {
+ width: auto; }
+ .grid-margin-x > .small-1 {
+ width: calc(8.33333% - 1.875rem); }
+ .grid-margin-x > .small-2 {
+ width: calc(16.66667% - 1.875rem); }
+ .grid-margin-x > .small-3 {
+ width: calc(25% - 1.875rem); }
+ .grid-margin-x > .small-4 {
+ width: calc(33.33333% - 1.875rem); }
+ .grid-margin-x > .small-5 {
+ width: calc(41.66667% - 1.875rem); }
+ .grid-margin-x > .small-6 {
+ width: calc(50% - 1.875rem); }
+ .grid-margin-x > .small-7 {
+ width: calc(58.33333% - 1.875rem); }
+ .grid-margin-x > .small-8 {
+ width: calc(66.66667% - 1.875rem); }
+ .grid-margin-x > .small-9 {
+ width: calc(75% - 1.875rem); }
+ .grid-margin-x > .small-10 {
+ width: calc(83.33333% - 1.875rem); }
+ .grid-margin-x > .small-11 {
+ width: calc(91.66667% - 1.875rem); }
+ .grid-margin-x > .small-12 {
+ width: calc(100% - 1.875rem); }
+ @media print, screen and (min-width: 40em) {
+ .grid-margin-x > .medium-auto {
+ width: auto; }
+ .grid-margin-x > .medium-shrink {
+ width: auto; }
+ .grid-margin-x > .medium-1 {
+ width: calc(8.33333% - 1.875rem); }
+ .grid-margin-x > .medium-2 {
+ width: calc(16.66667% - 1.875rem); }
+ .grid-margin-x > .medium-3 {
+ width: calc(25% - 1.875rem); }
+ .grid-margin-x > .medium-4 {
+ width: calc(33.33333% - 1.875rem); }
+ .grid-margin-x > .medium-5 {
+ width: calc(41.66667% - 1.875rem); }
+ .grid-margin-x > .medium-6 {
+ width: calc(50% - 1.875rem); }
+ .grid-margin-x > .medium-7 {
+ width: calc(58.33333% - 1.875rem); }
+ .grid-margin-x > .medium-8 {
+ width: calc(66.66667% - 1.875rem); }
+ .grid-margin-x > .medium-9 {
+ width: calc(75% - 1.875rem); }
+ .grid-margin-x > .medium-10 {
+ width: calc(83.33333% - 1.875rem); }
+ .grid-margin-x > .medium-11 {
+ width: calc(91.66667% - 1.875rem); }
+ .grid-margin-x > .medium-12 {
+ width: calc(100% - 1.875rem); } }
+ @media print, screen and (min-width: 64em) {
+ .grid-margin-x > .large-auto {
+ width: auto; }
+ .grid-margin-x > .large-shrink {
+ width: auto; }
+ .grid-margin-x > .large-1 {
+ width: calc(8.33333% - 1.875rem); }
+ .grid-margin-x > .large-2 {
+ width: calc(16.66667% - 1.875rem); }
+ .grid-margin-x > .large-3 {
+ width: calc(25% - 1.875rem); }
+ .grid-margin-x > .large-4 {
+ width: calc(33.33333% - 1.875rem); }
+ .grid-margin-x > .large-5 {
+ width: calc(41.66667% - 1.875rem); }
+ .grid-margin-x > .large-6 {
+ width: calc(50% - 1.875rem); }
+ .grid-margin-x > .large-7 {
+ width: calc(58.33333% - 1.875rem); }
+ .grid-margin-x > .large-8 {
+ width: calc(66.66667% - 1.875rem); }
+ .grid-margin-x > .large-9 {
+ width: calc(75% - 1.875rem); }
+ .grid-margin-x > .large-10 {
+ width: calc(83.33333% - 1.875rem); }
+ .grid-margin-x > .large-11 {
+ width: calc(91.66667% - 1.875rem); }
+ .grid-margin-x > .large-12 {
+ width: calc(100% - 1.875rem); } }
+
+.grid-padding-x .grid-padding-x {
+ margin-right: -0.9375rem;
+ margin-left: -0.9375rem; }
+
+.grid-container:not(.full) > .grid-padding-x {
+ margin-right: -0.9375rem;
+ margin-left: -0.9375rem; }
+
+.grid-padding-x > .cell {
+ padding-right: 0.9375rem;
+ padding-left: 0.9375rem; }
+
+.small-up-1 > .cell {
+ width: 100%; }
+
+.small-up-2 > .cell {
+ width: 50%; }
+
+.small-up-3 > .cell {
+ width: 33.33333%; }
+
+.small-up-4 > .cell {
+ width: 25%; }
+
+.small-up-5 > .cell {
+ width: 20%; }
+
+.small-up-6 > .cell {
+ width: 16.66667%; }
+
+.small-up-7 > .cell {
+ width: 14.28571%; }
+
+.small-up-8 > .cell {
+ width: 12.5%; }
+
+@media print, screen and (min-width: 40em) {
+ .medium-up-1 > .cell {
+ width: 100%; }
+ .medium-up-2 > .cell {
+ width: 50%; }
+ .medium-up-3 > .cell {
+ width: 33.33333%; }
+ .medium-up-4 > .cell {
+ width: 25%; }
+ .medium-up-5 > .cell {
+ width: 20%; }
+ .medium-up-6 > .cell {
+ width: 16.66667%; }
+ .medium-up-7 > .cell {
+ width: 14.28571%; }
+ .medium-up-8 > .cell {
+ width: 12.5%; } }
+
+@media print, screen and (min-width: 64em) {
+ .large-up-1 > .cell {
+ width: 100%; }
+ .large-up-2 > .cell {
+ width: 50%; }
+ .large-up-3 > .cell {
+ width: 33.33333%; }
+ .large-up-4 > .cell {
+ width: 25%; }
+ .large-up-5 > .cell {
+ width: 20%; }
+ .large-up-6 > .cell {
+ width: 16.66667%; }
+ .large-up-7 > .cell {
+ width: 14.28571%; }
+ .large-up-8 > .cell {
+ width: 12.5%; } }
+
+.grid-margin-x.small-up-1 > .cell {
+ width: calc(100% - 1.875rem); }
+
+.grid-margin-x.small-up-2 > .cell {
+ width: calc(50% - 1.875rem); }
+
+.grid-margin-x.small-up-3 > .cell {
+ width: calc(33.33333% - 1.875rem); }
+
+.grid-margin-x.small-up-4 > .cell {
+ width: calc(25% - 1.875rem); }
+
+.grid-margin-x.small-up-5 > .cell {
+ width: calc(20% - 1.875rem); }
+
+.grid-margin-x.small-up-6 > .cell {
+ width: calc(16.66667% - 1.875rem); }
+
+.grid-margin-x.small-up-7 > .cell {
+ width: calc(14.28571% - 1.875rem); }
+
+.grid-margin-x.small-up-8 > .cell {
+ width: calc(12.5% - 1.875rem); }
+
+@media print, screen and (min-width: 40em) {
+ .grid-margin-x.medium-up-1 > .cell {
+ width: calc(100% - 1.875rem); }
+ .grid-margin-x.medium-up-2 > .cell {
+ width: calc(50% - 1.875rem); }
+ .grid-margin-x.medium-up-3 > .cell {
+ width: calc(33.33333% - 1.875rem); }
+ .grid-margin-x.medium-up-4 > .cell {
+ width: calc(25% - 1.875rem); }
+ .grid-margin-x.medium-up-5 > .cell {
+ width: calc(20% - 1.875rem); }
+ .grid-margin-x.medium-up-6 > .cell {
+ width: calc(16.66667% - 1.875rem); }
+ .grid-margin-x.medium-up-7 > .cell {
+ width: calc(14.28571% - 1.875rem); }
+ .grid-margin-x.medium-up-8 > .cell {
+ width: calc(12.5% - 1.875rem); } }
+
+@media print, screen and (min-width: 64em) {
+ .grid-margin-x.large-up-1 > .cell {
+ width: calc(100% - 1.875rem); }
+ .grid-margin-x.large-up-2 > .cell {
+ width: calc(50% - 1.875rem); }
+ .grid-margin-x.large-up-3 > .cell {
+ width: calc(33.33333% - 1.875rem); }
+ .grid-margin-x.large-up-4 > .cell {
+ width: calc(25% - 1.875rem); }
+ .grid-margin-x.large-up-5 > .cell {
+ width: calc(20% - 1.875rem); }
+ .grid-margin-x.large-up-6 > .cell {
+ width: calc(16.66667% - 1.875rem); }
+ .grid-margin-x.large-up-7 > .cell {
+ width: calc(14.28571% - 1.875rem); }
+ .grid-margin-x.large-up-8 > .cell {
+ width: calc(12.5% - 1.875rem); } }
+
+.small-margin-collapse {
+ margin-right: 0;
+ margin-left: 0; }
+ .small-margin-collapse > .cell {
+ margin-right: 0;
+ margin-left: 0; }
+ .small-margin-collapse > .small-1 {
+ width: 8.33333%; }
+ .small-margin-collapse > .small-2 {
+ width: 16.66667%; }
+ .small-margin-collapse > .small-3 {
+ width: 25%; }
+ .small-margin-collapse > .small-4 {
+ width: 33.33333%; }
+ .small-margin-collapse > .small-5 {
+ width: 41.66667%; }
+ .small-margin-collapse > .small-6 {
+ width: 50%; }
+ .small-margin-collapse > .small-7 {
+ width: 58.33333%; }
+ .small-margin-collapse > .small-8 {
+ width: 66.66667%; }
+ .small-margin-collapse > .small-9 {
+ width: 75%; }
+ .small-margin-collapse > .small-10 {
+ width: 83.33333%; }
+ .small-margin-collapse > .small-11 {
+ width: 91.66667%; }
+ .small-margin-collapse > .small-12 {
+ width: 100%; }
+ @media print, screen and (min-width: 40em) {
+ .small-margin-collapse > .medium-1 {
+ width: 8.33333%; }
+ .small-margin-collapse > .medium-2 {
+ width: 16.66667%; }
+ .small-margin-collapse > .medium-3 {
+ width: 25%; }
+ .small-margin-collapse > .medium-4 {
+ width: 33.33333%; }
+ .small-margin-collapse > .medium-5 {
+ width: 41.66667%; }
+ .small-margin-collapse > .medium-6 {
+ width: 50%; }
+ .small-margin-collapse > .medium-7 {
+ width: 58.33333%; }
+ .small-margin-collapse > .medium-8 {
+ width: 66.66667%; }
+ .small-margin-collapse > .medium-9 {
+ width: 75%; }
+ .small-margin-collapse > .medium-10 {
+ width: 83.33333%; }
+ .small-margin-collapse > .medium-11 {
+ width: 91.66667%; }
+ .small-margin-collapse > .medium-12 {
+ width: 100%; } }
+ @media print, screen and (min-width: 64em) {
+ .small-margin-collapse > .large-1 {
+ width: 8.33333%; }
+ .small-margin-collapse > .large-2 {
+ width: 16.66667%; }
+ .small-margin-collapse > .large-3 {
+ width: 25%; }
+ .small-margin-collapse > .large-4 {
+ width: 33.33333%; }
+ .small-margin-collapse > .large-5 {
+ width: 41.66667%; }
+ .small-margin-collapse > .large-6 {
+ width: 50%; }
+ .small-margin-collapse > .large-7 {
+ width: 58.33333%; }
+ .small-margin-collapse > .large-8 {
+ width: 66.66667%; }
+ .small-margin-collapse > .large-9 {
+ width: 75%; }
+ .small-margin-collapse > .large-10 {
+ width: 83.33333%; }
+ .small-margin-collapse > .large-11 {
+ width: 91.66667%; }
+ .small-margin-collapse > .large-12 {
+ width: 100%; } }
+
+.small-padding-collapse {
+ margin-right: 0;
+ margin-left: 0; }
+ .small-padding-collapse > .cell {
+ padding-right: 0;
+ padding-left: 0; }
+
+@media print, screen and (min-width: 40em) {
+ .medium-margin-collapse {
+ margin-right: 0;
+ margin-left: 0; }
+ .medium-margin-collapse > .cell {
+ margin-right: 0;
+ margin-left: 0; } }
+
+@media print, screen and (min-width: 40em) {
+ .medium-margin-collapse > .small-1 {
+ width: 8.33333%; }
+ .medium-margin-collapse > .small-2 {
+ width: 16.66667%; }
+ .medium-margin-collapse > .small-3 {
+ width: 25%; }
+ .medium-margin-collapse > .small-4 {
+ width: 33.33333%; }
+ .medium-margin-collapse > .small-5 {
+ width: 41.66667%; }
+ .medium-margin-collapse > .small-6 {
+ width: 50%; }
+ .medium-margin-collapse > .small-7 {
+ width: 58.33333%; }
+ .medium-margin-collapse > .small-8 {
+ width: 66.66667%; }
+ .medium-margin-collapse > .small-9 {
+ width: 75%; }
+ .medium-margin-collapse > .small-10 {
+ width: 83.33333%; }
+ .medium-margin-collapse > .small-11 {
+ width: 91.66667%; }
+ .medium-margin-collapse > .small-12 {
+ width: 100%; } }
+
+@media print, screen and (min-width: 40em) {
+ .medium-margin-collapse > .medium-1 {
+ width: 8.33333%; }
+ .medium-margin-collapse > .medium-2 {
+ width: 16.66667%; }
+ .medium-margin-collapse > .medium-3 {
+ width: 25%; }
+ .medium-margin-collapse > .medium-4 {
+ width: 33.33333%; }
+ .medium-margin-collapse > .medium-5 {
+ width: 41.66667%; }
+ .medium-margin-collapse > .medium-6 {
+ width: 50%; }
+ .medium-margin-collapse > .medium-7 {
+ width: 58.33333%; }
+ .medium-margin-collapse > .medium-8 {
+ width: 66.66667%; }
+ .medium-margin-collapse > .medium-9 {
+ width: 75%; }
+ .medium-margin-collapse > .medium-10 {
+ width: 83.33333%; }
+ .medium-margin-collapse > .medium-11 {
+ width: 91.66667%; }
+ .medium-margin-collapse > .medium-12 {
+ width: 100%; } }
+
+@media print, screen and (min-width: 64em) {
+ .medium-margin-collapse > .large-1 {
+ width: 8.33333%; }
+ .medium-margin-collapse > .large-2 {
+ width: 16.66667%; }
+ .medium-margin-collapse > .large-3 {
+ width: 25%; }
+ .medium-margin-collapse > .large-4 {
+ width: 33.33333%; }
+ .medium-margin-collapse > .large-5 {
+ width: 41.66667%; }
+ .medium-margin-collapse > .large-6 {
+ width: 50%; }
+ .medium-margin-collapse > .large-7 {
+ width: 58.33333%; }
+ .medium-margin-collapse > .large-8 {
+ width: 66.66667%; }
+ .medium-margin-collapse > .large-9 {
+ width: 75%; }
+ .medium-margin-collapse > .large-10 {
+ width: 83.33333%; }
+ .medium-margin-collapse > .large-11 {
+ width: 91.66667%; }
+ .medium-margin-collapse > .large-12 {
+ width: 100%; } }
+
+@media print, screen and (min-width: 40em) {
+ .medium-padding-collapse {
+ margin-right: 0;
+ margin-left: 0; }
+ .medium-padding-collapse > .cell {
+ padding-right: 0;
+ padding-left: 0; } }
+
+@media print, screen and (min-width: 64em) {
+ .large-margin-collapse {
+ margin-right: 0;
+ margin-left: 0; }
+ .large-margin-collapse > .cell {
+ margin-right: 0;
+ margin-left: 0; } }
+
+@media print, screen and (min-width: 64em) {
+ .large-margin-collapse > .small-1 {
+ width: 8.33333%; }
+ .large-margin-collapse > .small-2 {
+ width: 16.66667%; }
+ .large-margin-collapse > .small-3 {
+ width: 25%; }
+ .large-margin-collapse > .small-4 {
+ width: 33.33333%; }
+ .large-margin-collapse > .small-5 {
+ width: 41.66667%; }
+ .large-margin-collapse > .small-6 {
+ width: 50%; }
+ .large-margin-collapse > .small-7 {
+ width: 58.33333%; }
+ .large-margin-collapse > .small-8 {
+ width: 66.66667%; }
+ .large-margin-collapse > .small-9 {
+ width: 75%; }
+ .large-margin-collapse > .small-10 {
+ width: 83.33333%; }
+ .large-margin-collapse > .small-11 {
+ width: 91.66667%; }
+ .large-margin-collapse > .small-12 {
+ width: 100%; } }
+
+@media print, screen and (min-width: 64em) {
+ .large-margin-collapse > .medium-1 {
+ width: 8.33333%; }
+ .large-margin-collapse > .medium-2 {
+ width: 16.66667%; }
+ .large-margin-collapse > .medium-3 {
+ width: 25%; }
+ .large-margin-collapse > .medium-4 {
+ width: 33.33333%; }
+ .large-margin-collapse > .medium-5 {
+ width: 41.66667%; }
+ .large-margin-collapse > .medium-6 {
+ width: 50%; }
+ .large-margin-collapse > .medium-7 {
+ width: 58.33333%; }
+ .large-margin-collapse > .medium-8 {
+ width: 66.66667%; }
+ .large-margin-collapse > .medium-9 {
+ width: 75%; }
+ .large-margin-collapse > .medium-10 {
+ width: 83.33333%; }
+ .large-margin-collapse > .medium-11 {
+ width: 91.66667%; }
+ .large-margin-collapse > .medium-12 {
+ width: 100%; } }
+
+@media print, screen and (min-width: 64em) {
+ .large-margin-collapse > .large-1 {
+ width: 8.33333%; }
+ .large-margin-collapse > .large-2 {
+ width: 16.66667%; }
+ .large-margin-collapse > .large-3 {
+ width: 25%; }
+ .large-margin-collapse > .large-4 {
+ width: 33.33333%; }
+ .large-margin-collapse > .large-5 {
+ width: 41.66667%; }
+ .large-margin-collapse > .large-6 {
+ width: 50%; }
+ .large-margin-collapse > .large-7 {
+ width: 58.33333%; }
+ .large-margin-collapse > .large-8 {
+ width: 66.66667%; }
+ .large-margin-collapse > .large-9 {
+ width: 75%; }
+ .large-margin-collapse > .large-10 {
+ width: 83.33333%; }
+ .large-margin-collapse > .large-11 {
+ width: 91.66667%; }
+ .large-margin-collapse > .large-12 {
+ width: 100%; } }
+
+@media print, screen and (min-width: 64em) {
+ .large-padding-collapse {
+ margin-right: 0;
+ margin-left: 0; }
+ .large-padding-collapse > .cell {
+ padding-right: 0;
+ padding-left: 0; } }
+
+.small-offset-0 {
+ margin-left: 0%; }
+
+.grid-margin-x > .small-offset-0 {
+ margin-left: calc(0% + 0.9375rem); }
+
+.small-offset-1 {
+ margin-left: 8.33333%; }
+
+.grid-margin-x > .small-offset-1 {
+ margin-left: calc(8.33333% + 0.9375rem); }
+
+.small-offset-2 {
+ margin-left: 16.66667%; }
+
+.grid-margin-x > .small-offset-2 {
+ margin-left: calc(16.66667% + 0.9375rem); }
+
+.small-offset-3 {
+ margin-left: 25%; }
+
+.grid-margin-x > .small-offset-3 {
+ margin-left: calc(25% + 0.9375rem); }
+
+.small-offset-4 {
+ margin-left: 33.33333%; }
+
+.grid-margin-x > .small-offset-4 {
+ margin-left: calc(33.33333% + 0.9375rem); }
+
+.small-offset-5 {
+ margin-left: 41.66667%; }
+
+.grid-margin-x > .small-offset-5 {
+ margin-left: calc(41.66667% + 0.9375rem); }
+
+.small-offset-6 {
+ margin-left: 50%; }
+
+.grid-margin-x > .small-offset-6 {
+ margin-left: calc(50% + 0.9375rem); }
+
+.small-offset-7 {
+ margin-left: 58.33333%; }
+
+.grid-margin-x > .small-offset-7 {
+ margin-left: calc(58.33333% + 0.9375rem); }
+
+.small-offset-8 {
+ margin-left: 66.66667%; }
+
+.grid-margin-x > .small-offset-8 {
+ margin-left: calc(66.66667% + 0.9375rem); }
+
+.small-offset-9 {
+ margin-left: 75%; }
+
+.grid-margin-x > .small-offset-9 {
+ margin-left: calc(75% + 0.9375rem); }
+
+.small-offset-10 {
+ margin-left: 83.33333%; }
+
+.grid-margin-x > .small-offset-10 {
+ margin-left: calc(83.33333% + 0.9375rem); }
+
+.small-offset-11 {
+ margin-left: 91.66667%; }
+
+.grid-margin-x > .small-offset-11 {
+ margin-left: calc(91.66667% + 0.9375rem); }
+
+@media print, screen and (min-width: 40em) {
+ .medium-offset-0 {
+ margin-left: 0%; }
+ .grid-margin-x > .medium-offset-0 {
+ margin-left: calc(0% + 0.9375rem); }
+ .medium-offset-1 {
+ margin-left: 8.33333%; }
+ .grid-margin-x > .medium-offset-1 {
+ margin-left: calc(8.33333% + 0.9375rem); }
+ .medium-offset-2 {
+ margin-left: 16.66667%; }
+ .grid-margin-x > .medium-offset-2 {
+ margin-left: calc(16.66667% + 0.9375rem); }
+ .medium-offset-3 {
+ margin-left: 25%; }
+ .grid-margin-x > .medium-offset-3 {
+ margin-left: calc(25% + 0.9375rem); }
+ .medium-offset-4 {
+ margin-left: 33.33333%; }
+ .grid-margin-x > .medium-offset-4 {
+ margin-left: calc(33.33333% + 0.9375rem); }
+ .medium-offset-5 {
+ margin-left: 41.66667%; }
+ .grid-margin-x > .medium-offset-5 {
+ margin-left: calc(41.66667% + 0.9375rem); }
+ .medium-offset-6 {
+ margin-left: 50%; }
+ .grid-margin-x > .medium-offset-6 {
+ margin-left: calc(50% + 0.9375rem); }
+ .medium-offset-7 {
+ margin-left: 58.33333%; }
+ .grid-margin-x > .medium-offset-7 {
+ margin-left: calc(58.33333% + 0.9375rem); }
+ .medium-offset-8 {
+ margin-left: 66.66667%; }
+ .grid-margin-x > .medium-offset-8 {
+ margin-left: calc(66.66667% + 0.9375rem); }
+ .medium-offset-9 {
+ margin-left: 75%; }
+ .grid-margin-x > .medium-offset-9 {
+ margin-left: calc(75% + 0.9375rem); }
+ .medium-offset-10 {
+ margin-left: 83.33333%; }
+ .grid-margin-x > .medium-offset-10 {
+ margin-left: calc(83.33333% + 0.9375rem); }
+ .medium-offset-11 {
+ margin-left: 91.66667%; }
+ .grid-margin-x > .medium-offset-11 {
+ margin-left: calc(91.66667% + 0.9375rem); } }
+
+@media print, screen and (min-width: 64em) {
+ .large-offset-0 {
+ margin-left: 0%; }
+ .grid-margin-x > .large-offset-0 {
+ margin-left: calc(0% + 0.9375rem); }
+ .large-offset-1 {
+ margin-left: 8.33333%; }
+ .grid-margin-x > .large-offset-1 {
+ margin-left: calc(8.33333% + 0.9375rem); }
+ .large-offset-2 {
+ margin-left: 16.66667%; }
+ .grid-margin-x > .large-offset-2 {
+ margin-left: calc(16.66667% + 0.9375rem); }
+ .large-offset-3 {
+ margin-left: 25%; }
+ .grid-margin-x > .large-offset-3 {
+ margin-left: calc(25% + 0.9375rem); }
+ .large-offset-4 {
+ margin-left: 33.33333%; }
+ .grid-margin-x > .large-offset-4 {
+ margin-left: calc(33.33333% + 0.9375rem); }
+ .large-offset-5 {
+ margin-left: 41.66667%; }
+ .grid-margin-x > .large-offset-5 {
+ margin-left: calc(41.66667% + 0.9375rem); }
+ .large-offset-6 {
+ margin-left: 50%; }
+ .grid-margin-x > .large-offset-6 {
+ margin-left: calc(50% + 0.9375rem); }
+ .large-offset-7 {
+ margin-left: 58.33333%; }
+ .grid-margin-x > .large-offset-7 {
+ margin-left: calc(58.33333% + 0.9375rem); }
+ .large-offset-8 {
+ margin-left: 66.66667%; }
+ .grid-margin-x > .large-offset-8 {
+ margin-left: calc(66.66667% + 0.9375rem); }
+ .large-offset-9 {
+ margin-left: 75%; }
+ .grid-margin-x > .large-offset-9 {
+ margin-left: calc(75% + 0.9375rem); }
+ .large-offset-10 {
+ margin-left: 83.33333%; }
+ .grid-margin-x > .large-offset-10 {
+ margin-left: calc(83.33333% + 0.9375rem); }
+ .large-offset-11 {
+ margin-left: 91.66667%; }
+ .grid-margin-x > .large-offset-11 {
+ margin-left: calc(91.66667% + 0.9375rem); } }
+
+.grid-y {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-flow: column nowrap;
+ -ms-flex-flow: column nowrap;
+ flex-flow: column nowrap; }
+ .grid-y > .cell {
+ height: auto;
+ max-height: none; }
+ .grid-y > .auto {
+ height: auto; }
+ .grid-y > .shrink {
+ height: auto; }
+ .grid-y > .small-shrink, .grid-y > .small-full, .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {
+ -webkit-flex-basis: auto;
+ -ms-flex-preferred-size: auto;
+ flex-basis: auto; }
+ @media print, screen and (min-width: 40em) {
+ .grid-y > .medium-shrink, .grid-y > .medium-full, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {
+ -webkit-flex-basis: auto;
+ -ms-flex-preferred-size: auto;
+ flex-basis: auto; } }
+ @media print, screen and (min-width: 64em) {
+ .grid-y > .large-shrink, .grid-y > .large-full, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {
+ -webkit-flex-basis: auto;
+ -ms-flex-preferred-size: auto;
+ flex-basis: auto; } }
+ .grid-y > .small-1, .grid-y > .small-2, .grid-y > .small-3, .grid-y > .small-4, .grid-y > .small-5, .grid-y > .small-6, .grid-y > .small-7, .grid-y > .small-8, .grid-y > .small-9, .grid-y > .small-10, .grid-y > .small-11, .grid-y > .small-12 {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto; }
+ .grid-y > .small-1 {
+ height: 8.33333%; }
+ .grid-y > .small-2 {
+ height: 16.66667%; }
+ .grid-y > .small-3 {
+ height: 25%; }
+ .grid-y > .small-4 {
+ height: 33.33333%; }
+ .grid-y > .small-5 {
+ height: 41.66667%; }
+ .grid-y > .small-6 {
+ height: 50%; }
+ .grid-y > .small-7 {
+ height: 58.33333%; }
+ .grid-y > .small-8 {
+ height: 66.66667%; }
+ .grid-y > .small-9 {
+ height: 75%; }
+ .grid-y > .small-10 {
+ height: 83.33333%; }
+ .grid-y > .small-11 {
+ height: 91.66667%; }
+ .grid-y > .small-12 {
+ height: 100%; }
+ @media print, screen and (min-width: 40em) {
+ .grid-y > .medium-auto {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px;
+ height: auto; }
+ .grid-y > .medium-shrink, .grid-y > .medium-1, .grid-y > .medium-2, .grid-y > .medium-3, .grid-y > .medium-4, .grid-y > .medium-5, .grid-y > .medium-6, .grid-y > .medium-7, .grid-y > .medium-8, .grid-y > .medium-9, .grid-y > .medium-10, .grid-y > .medium-11, .grid-y > .medium-12 {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto; }
+ .grid-y > .medium-shrink {
+ height: auto; }
+ .grid-y > .medium-1 {
+ height: 8.33333%; }
+ .grid-y > .medium-2 {
+ height: 16.66667%; }
+ .grid-y > .medium-3 {
+ height: 25%; }
+ .grid-y > .medium-4 {
+ height: 33.33333%; }
+ .grid-y > .medium-5 {
+ height: 41.66667%; }
+ .grid-y > .medium-6 {
+ height: 50%; }
+ .grid-y > .medium-7 {
+ height: 58.33333%; }
+ .grid-y > .medium-8 {
+ height: 66.66667%; }
+ .grid-y > .medium-9 {
+ height: 75%; }
+ .grid-y > .medium-10 {
+ height: 83.33333%; }
+ .grid-y > .medium-11 {
+ height: 91.66667%; }
+ .grid-y > .medium-12 {
+ height: 100%; } }
+ @media print, screen and (min-width: 64em) {
+ .grid-y > .large-auto {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 0px;
+ -ms-flex: 1 1 0px;
+ flex: 1 1 0px;
+ height: auto; }
+ .grid-y > .large-shrink, .grid-y > .large-1, .grid-y > .large-2, .grid-y > .large-3, .grid-y > .large-4, .grid-y > .large-5, .grid-y > .large-6, .grid-y > .large-7, .grid-y > .large-8, .grid-y > .large-9, .grid-y > .large-10, .grid-y > .large-11, .grid-y > .large-12 {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 0 auto;
+ -ms-flex: 0 0 auto;
+ flex: 0 0 auto; }
+ .grid-y > .large-shrink {
+ height: auto; }
+ .grid-y > .large-1 {
+ height: 8.33333%; }
+ .grid-y > .large-2 {
+ height: 16.66667%; }
+ .grid-y > .large-3 {
+ height: 25%; }
+ .grid-y > .large-4 {
+ height: 33.33333%; }
+ .grid-y > .large-5 {
+ height: 41.66667%; }
+ .grid-y > .large-6 {
+ height: 50%; }
+ .grid-y > .large-7 {
+ height: 58.33333%; }
+ .grid-y > .large-8 {
+ height: 66.66667%; }
+ .grid-y > .large-9 {
+ height: 75%; }
+ .grid-y > .large-10 {
+ height: 83.33333%; }
+ .grid-y > .large-11 {
+ height: 91.66667%; }
+ .grid-y > .large-12 {
+ height: 100%; } }
+
+.grid-padding-y .grid-padding-y {
+ margin-top: -0.9375rem;
+ margin-bottom: -0.9375rem; }
+
+.grid-padding-y > .cell {
+ padding-top: 0.9375rem;
+ padding-bottom: 0.9375rem; }
+
+.grid-margin-y {
+ margin-top: -0.9375rem;
+ margin-bottom: -0.9375rem; }
+ .grid-margin-y > .cell {
+ height: calc(100% - 1.875rem);
+ margin-top: 0.9375rem;
+ margin-bottom: 0.9375rem; }
+ .grid-margin-y > .auto {
+ height: auto; }
+ .grid-margin-y > .shrink {
+ height: auto; }
+ .grid-margin-y > .small-1 {
+ height: calc(8.33333% - 1.875rem); }
+ .grid-margin-y > .small-2 {
+ height: calc(16.66667% - 1.875rem); }
+ .grid-margin-y > .small-3 {
+ height: calc(25% - 1.875rem); }
+ .grid-margin-y > .small-4 {
+ height: calc(33.33333% - 1.875rem); }
+ .grid-margin-y > .small-5 {
+ height: calc(41.66667% - 1.875rem); }
+ .grid-margin-y > .small-6 {
+ height: calc(50% - 1.875rem); }
+ .grid-margin-y > .small-7 {
+ height: calc(58.33333% - 1.875rem); }
+ .grid-margin-y > .small-8 {
+ height: calc(66.66667% - 1.875rem); }
+ .grid-margin-y > .small-9 {
+ height: calc(75% - 1.875rem); }
+ .grid-margin-y > .small-10 {
+ height: calc(83.33333% - 1.875rem); }
+ .grid-margin-y > .small-11 {
+ height: calc(91.66667% - 1.875rem); }
+ .grid-margin-y > .small-12 {
+ height: calc(100% - 1.875rem); }
+ @media print, screen and (min-width: 40em) {
+ .grid-margin-y > .medium-auto {
+ height: auto; }
+ .grid-margin-y > .medium-shrink {
+ height: auto; }
+ .grid-margin-y > .medium-1 {
+ height: calc(8.33333% - 1.875rem); }
+ .grid-margin-y > .medium-2 {
+ height: calc(16.66667% - 1.875rem); }
+ .grid-margin-y > .medium-3 {
+ height: calc(25% - 1.875rem); }
+ .grid-margin-y > .medium-4 {
+ height: calc(33.33333% - 1.875rem); }
+ .grid-margin-y > .medium-5 {
+ height: calc(41.66667% - 1.875rem); }
+ .grid-margin-y > .medium-6 {
+ height: calc(50% - 1.875rem); }
+ .grid-margin-y > .medium-7 {
+ height: calc(58.33333% - 1.875rem); }
+ .grid-margin-y > .medium-8 {
+ height: calc(66.66667% - 1.875rem); }
+ .grid-margin-y > .medium-9 {
+ height: calc(75% - 1.875rem); }
+ .grid-margin-y > .medium-10 {
+ height: calc(83.33333% - 1.875rem); }
+ .grid-margin-y > .medium-11 {
+ height: calc(91.66667% - 1.875rem); }
+ .grid-margin-y > .medium-12 {
+ height: calc(100% - 1.875rem); } }
+ @media print, screen and (min-width: 64em) {
+ .grid-margin-y > .large-auto {
+ height: auto; }
+ .grid-margin-y > .large-shrink {
+ height: auto; }
+ .grid-margin-y > .large-1 {
+ height: calc(8.33333% - 1.875rem); }
+ .grid-margin-y > .large-2 {
+ height: calc(16.66667% - 1.875rem); }
+ .grid-margin-y > .large-3 {
+ height: calc(25% - 1.875rem); }
+ .grid-margin-y > .large-4 {
+ height: calc(33.33333% - 1.875rem); }
+ .grid-margin-y > .large-5 {
+ height: calc(41.66667% - 1.875rem); }
+ .grid-margin-y > .large-6 {
+ height: calc(50% - 1.875rem); }
+ .grid-margin-y > .large-7 {
+ height: calc(58.33333% - 1.875rem); }
+ .grid-margin-y > .large-8 {
+ height: calc(66.66667% - 1.875rem); }
+ .grid-margin-y > .large-9 {
+ height: calc(75% - 1.875rem); }
+ .grid-margin-y > .large-10 {
+ height: calc(83.33333% - 1.875rem); }
+ .grid-margin-y > .large-11 {
+ height: calc(91.66667% - 1.875rem); }
+ .grid-margin-y > .large-12 {
+ height: calc(100% - 1.875rem); } }
+
+.grid-frame {
+ overflow: hidden;
+ position: relative;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-box-align: stretch;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ width: 100vw; }
+
+.cell .grid-frame {
+ width: 100%; }
+
+.cell-block {
+ overflow-x: auto;
+ max-width: 100%;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; }
+
+.cell-block-y {
+ overflow-y: auto;
+ max-height: 100%;
+ min-height: 100%;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; }
+
+.cell-block-container {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ max-height: 100%; }
+ .cell-block-container > .grid-x {
+ max-height: 100%;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap; }
+
+@media print, screen and (min-width: 40em) {
+ .medium-grid-frame {
+ overflow: hidden;
+ position: relative;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-box-align: stretch;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ width: 100vw; }
+ .cell .medium-grid-frame {
+ width: 100%; }
+ .medium-cell-block {
+ overflow-x: auto;
+ max-width: 100%;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; }
+ .medium-cell-block-container {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ max-height: 100%; }
+ .medium-cell-block-container > .grid-x {
+ max-height: 100%;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap; }
+ .medium-cell-block-y {
+ overflow-y: auto;
+ max-height: 100%;
+ min-height: 100%;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; } }
+
+@media print, screen and (min-width: 64em) {
+ .large-grid-frame {
+ overflow: hidden;
+ position: relative;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-box-align: stretch;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ width: 100vw; }
+ .cell .large-grid-frame {
+ width: 100%; }
+ .large-cell-block {
+ overflow-x: auto;
+ max-width: 100%;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; }
+ .large-cell-block-container {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ max-height: 100%; }
+ .large-cell-block-container > .grid-x {
+ max-height: 100%;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap; }
+ .large-cell-block-y {
+ overflow-y: auto;
+ max-height: 100%;
+ min-height: 100%;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; } }
+
+.grid-y.grid-frame {
+ width: auto;
+ overflow: hidden;
+ position: relative;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-box-align: stretch;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ height: 100vh; }
+
+@media print, screen and (min-width: 40em) {
+ .grid-y.medium-grid-frame {
+ width: auto;
+ overflow: hidden;
+ position: relative;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-box-align: stretch;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ height: 100vh; } }
+
+@media print, screen and (min-width: 64em) {
+ .grid-y.large-grid-frame {
+ width: auto;
+ overflow: hidden;
+ position: relative;
+ -webkit-flex-wrap: nowrap;
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ -webkit-box-align: stretch;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ height: 100vh; } }
+
+.cell .grid-y.grid-frame {
+ height: 100%; }
+
+@media print, screen and (min-width: 40em) {
+ .cell .grid-y.medium-grid-frame {
+ height: 100%; } }
+
+@media print, screen and (min-width: 64em) {
+ .cell .grid-y.large-grid-frame {
+ height: 100%; } }
+
+.grid-margin-y {
+ margin-top: -0.9375rem;
+ margin-bottom: -0.9375rem; }
+ .grid-margin-y > .cell {
+ height: calc(100% - 1.875rem);
+ margin-top: 0.9375rem;
+ margin-bottom: 0.9375rem; }
+ .grid-margin-y > .auto {
+ height: auto; }
+ .grid-margin-y > .shrink {
+ height: auto; }
+ .grid-margin-y > .small-1 {
+ height: calc(8.33333% - 1.875rem); }
+ .grid-margin-y > .small-2 {
+ height: calc(16.66667% - 1.875rem); }
+ .grid-margin-y > .small-3 {
+ height: calc(25% - 1.875rem); }
+ .grid-margin-y > .small-4 {
+ height: calc(33.33333% - 1.875rem); }
+ .grid-margin-y > .small-5 {
+ height: calc(41.66667% - 1.875rem); }
+ .grid-margin-y > .small-6 {
+ height: calc(50% - 1.875rem); }
+ .grid-margin-y > .small-7 {
+ height: calc(58.33333% - 1.875rem); }
+ .grid-margin-y > .small-8 {
+ height: calc(66.66667% - 1.875rem); }
+ .grid-margin-y > .small-9 {
+ height: calc(75% - 1.875rem); }
+ .grid-margin-y > .small-10 {
+ height: calc(83.33333% - 1.875rem); }
+ .grid-margin-y > .small-11 {
+ height: calc(91.66667% - 1.875rem); }
+ .grid-margin-y > .small-12 {
+ height: calc(100% - 1.875rem); }
+ @media print, screen and (min-width: 40em) {
+ .grid-margin-y > .medium-auto {
+ height: auto; }
+ .grid-margin-y > .medium-shrink {
+ height: auto; }
+ .grid-margin-y > .medium-1 {
+ height: calc(8.33333% - 1.875rem); }
+ .grid-margin-y > .medium-2 {
+ height: calc(16.66667% - 1.875rem); }
+ .grid-margin-y > .medium-3 {
+ height: calc(25% - 1.875rem); }
+ .grid-margin-y > .medium-4 {
+ height: calc(33.33333% - 1.875rem); }
+ .grid-margin-y > .medium-5 {
+ height: calc(41.66667% - 1.875rem); }
+ .grid-margin-y > .medium-6 {
+ height: calc(50% - 1.875rem); }
+ .grid-margin-y > .medium-7 {
+ height: calc(58.33333% - 1.875rem); }
+ .grid-margin-y > .medium-8 {
+ height: calc(66.66667% - 1.875rem); }
+ .grid-margin-y > .medium-9 {
+ height: calc(75% - 1.875rem); }
+ .grid-margin-y > .medium-10 {
+ height: calc(83.33333% - 1.875rem); }
+ .grid-margin-y > .medium-11 {
+ height: calc(91.66667% - 1.875rem); }
+ .grid-margin-y > .medium-12 {
+ height: calc(100% - 1.875rem); } }
+ @media print, screen and (min-width: 64em) {
+ .grid-margin-y > .large-auto {
+ height: auto; }
+ .grid-margin-y > .large-shrink {
+ height: auto; }
+ .grid-margin-y > .large-1 {
+ height: calc(8.33333% - 1.875rem); }
+ .grid-margin-y > .large-2 {
+ height: calc(16.66667% - 1.875rem); }
+ .grid-margin-y > .large-3 {
+ height: calc(25% - 1.875rem); }
+ .grid-margin-y > .large-4 {
+ height: calc(33.33333% - 1.875rem); }
+ .grid-margin-y > .large-5 {
+ height: calc(41.66667% - 1.875rem); }
+ .grid-margin-y > .large-6 {
+ height: calc(50% - 1.875rem); }
+ .grid-margin-y > .large-7 {
+ height: calc(58.33333% - 1.875rem); }
+ .grid-margin-y > .large-8 {
+ height: calc(66.66667% - 1.875rem); }
+ .grid-margin-y > .large-9 {
+ height: calc(75% - 1.875rem); }
+ .grid-margin-y > .large-10 {
+ height: calc(83.33333% - 1.875rem); }
+ .grid-margin-y > .large-11 {
+ height: calc(91.66667% - 1.875rem); }
+ .grid-margin-y > .large-12 {
+ height: calc(100% - 1.875rem); } }
+
+.grid-frame.grid-margin-y {
+ height: calc(100vh + 1.875rem); }
+
+@media print, screen and (min-width: 40em) {
+ .grid-margin-y.medium-grid-frame {
+ height: calc(100vh + 1.875rem); } }
+
+@media print, screen and (min-width: 64em) {
+ .grid-margin-y.large-grid-frame {
+ height: calc(100vh + 1.875rem); } }
+
+.align-left {
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start; }
+
+.align-right {
+ -webkit-box-pack: end;
+ -webkit-justify-content: flex-end;
+ -ms-flex-pack: end;
+ justify-content: flex-end; }
+
+.align-center {
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center; }
+
+.align-justify {
+ -webkit-box-pack: justify;
+ -webkit-justify-content: space-between;
+ -ms-flex-pack: justify;
+ justify-content: space-between; }
+
+.align-spaced {
+ -webkit-justify-content: space-around;
+ -ms-flex-pack: distribute;
+ justify-content: space-around; }
+
+.align-left.vertical.menu > li > a {
+ -webkit-box-pack: start;
+ -webkit-justify-content: flex-start;
+ -ms-flex-pack: start;
+ justify-content: flex-start; }
+
+.align-right.vertical.menu > li > a {
+ -webkit-box-pack: end;
+ -webkit-justify-content: flex-end;
+ -ms-flex-pack: end;
+ justify-content: flex-end; }
+
+.align-center.vertical.menu > li > a {
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center; }
+
+.align-top {
+ -webkit-box-align: start;
+ -webkit-align-items: flex-start;
+ -ms-flex-align: start;
+ align-items: flex-start; }
+
+.align-self-top {
+ -webkit-align-self: flex-start;
+ -ms-flex-item-align: start;
+ align-self: flex-start; }
+
+.align-bottom {
+ -webkit-box-align: end;
+ -webkit-align-items: flex-end;
+ -ms-flex-align: end;
+ align-items: flex-end; }
+
+.align-self-bottom {
+ -webkit-align-self: flex-end;
+ -ms-flex-item-align: end;
+ align-self: flex-end; }
+
+.align-middle {
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center; }
+
+.align-self-middle {
+ -webkit-align-self: center;
+ -ms-flex-item-align: center;
+ align-self: center; }
+
+.align-stretch {
+ -webkit-box-align: stretch;
+ -webkit-align-items: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch; }
+
+.align-self-stretch {
+ -webkit-align-self: stretch;
+ -ms-flex-item-align: stretch;
+ align-self: stretch; }
+
+.align-center-middle {
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ -ms-flex-align: center;
+ align-items: center;
+ -webkit-align-content: center;
+ -ms-flex-line-pack: center;
+ align-content: center; }
+
+.small-order-1 {
+ -webkit-box-ordinal-group: 2;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1; }
+
+.small-order-2 {
+ -webkit-box-ordinal-group: 3;
+ -webkit-order: 2;
+ -ms-flex-order: 2;
+ order: 2; }
+
+.small-order-3 {
+ -webkit-box-ordinal-group: 4;
+ -webkit-order: 3;
+ -ms-flex-order: 3;
+ order: 3; }
+
+.small-order-4 {
+ -webkit-box-ordinal-group: 5;
+ -webkit-order: 4;
+ -ms-flex-order: 4;
+ order: 4; }
+
+.small-order-5 {
+ -webkit-box-ordinal-group: 6;
+ -webkit-order: 5;
+ -ms-flex-order: 5;
+ order: 5; }
+
+.small-order-6 {
+ -webkit-box-ordinal-group: 7;
+ -webkit-order: 6;
+ -ms-flex-order: 6;
+ order: 6; }
+
+@media print, screen and (min-width: 40em) {
+ .medium-order-1 {
+ -webkit-box-ordinal-group: 2;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1; }
+ .medium-order-2 {
+ -webkit-box-ordinal-group: 3;
+ -webkit-order: 2;
+ -ms-flex-order: 2;
+ order: 2; }
+ .medium-order-3 {
+ -webkit-box-ordinal-group: 4;
+ -webkit-order: 3;
+ -ms-flex-order: 3;
+ order: 3; }
+ .medium-order-4 {
+ -webkit-box-ordinal-group: 5;
+ -webkit-order: 4;
+ -ms-flex-order: 4;
+ order: 4; }
+ .medium-order-5 {
+ -webkit-box-ordinal-group: 6;
+ -webkit-order: 5;
+ -ms-flex-order: 5;
+ order: 5; }
+ .medium-order-6 {
+ -webkit-box-ordinal-group: 7;
+ -webkit-order: 6;
+ -ms-flex-order: 6;
+ order: 6; } }
+
+@media print, screen and (min-width: 64em) {
+ .large-order-1 {
+ -webkit-box-ordinal-group: 2;
+ -webkit-order: 1;
+ -ms-flex-order: 1;
+ order: 1; }
+ .large-order-2 {
+ -webkit-box-ordinal-group: 3;
+ -webkit-order: 2;
+ -ms-flex-order: 2;
+ order: 2; }
+ .large-order-3 {
+ -webkit-box-ordinal-group: 4;
+ -webkit-order: 3;
+ -ms-flex-order: 3;
+ order: 3; }
+ .large-order-4 {
+ -webkit-box-ordinal-group: 5;
+ -webkit-order: 4;
+ -ms-flex-order: 4;
+ order: 4; }
+ .large-order-5 {
+ -webkit-box-ordinal-group: 6;
+ -webkit-order: 5;
+ -ms-flex-order: 5;
+ order: 5; }
+ .large-order-6 {
+ -webkit-box-ordinal-group: 7;
+ -webkit-order: 6;
+ -ms-flex-order: 6;
+ order: 6; } }
+
+.flex-container {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex; }
+
+.flex-child-auto {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto; }
+
+.flex-child-grow {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 0 auto;
+ -ms-flex: 1 0 auto;
+ flex: 1 0 auto; }
+
+.flex-child-shrink {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 1 auto;
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto; }
+
+.flex-dir-row {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row; }
+
+.flex-dir-row-reverse {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: reverse;
+ -webkit-flex-direction: row-reverse;
+ -ms-flex-direction: row-reverse;
+ flex-direction: row-reverse; }
+
+.flex-dir-column {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column; }
+
+.flex-dir-column-reverse {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: reverse;
+ -webkit-flex-direction: column-reverse;
+ -ms-flex-direction: column-reverse;
+ flex-direction: column-reverse; }
+
+@media print, screen and (min-width: 40em) {
+ .medium-flex-container {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex; }
+ .medium-flex-child-auto {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto; }
+ .medium-flex-child-grow {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 0 auto;
+ -ms-flex: 1 0 auto;
+ flex: 1 0 auto; }
+ .medium-flex-child-shrink {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 1 auto;
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto; }
+ .medium-flex-dir-row {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row; }
+ .medium-flex-dir-row-reverse {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: reverse;
+ -webkit-flex-direction: row-reverse;
+ -ms-flex-direction: row-reverse;
+ flex-direction: row-reverse; }
+ .medium-flex-dir-column {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column; }
+ .medium-flex-dir-column-reverse {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: reverse;
+ -webkit-flex-direction: column-reverse;
+ -ms-flex-direction: column-reverse;
+ flex-direction: column-reverse; } }
+
+@media print, screen and (min-width: 64em) {
+ .large-flex-container {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ display: flex; }
+ .large-flex-child-auto {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 1 auto;
+ -ms-flex: 1 1 auto;
+ flex: 1 1 auto; }
+ .large-flex-child-grow {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 0 auto;
+ -ms-flex: 1 0 auto;
+ flex: 1 0 auto; }
+ .large-flex-child-shrink {
+ -webkit-box-flex: 0;
+ -webkit-flex: 0 1 auto;
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto; }
+ .large-flex-dir-row {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ -ms-flex-direction: row;
+ flex-direction: row; }
+ .large-flex-dir-row-reverse {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: reverse;
+ -webkit-flex-direction: row-reverse;
+ -ms-flex-direction: row-reverse;
+ flex-direction: row-reverse; }
+ .large-flex-dir-column {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: column;
+ -ms-flex-direction: column;
+ flex-direction: column; }
+ .large-flex-dir-column-reverse {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: reverse;
+ -webkit-flex-direction: column-reverse;
+ -ms-flex-direction: column-reverse;
+ flex-direction: column-reverse; } }
+
+.menu-icon {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ width: 20px;
+ height: 16px;
+ cursor: pointer; }
+ .menu-icon::after {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: block;
+ width: 100%;
+ height: 2px;
+ background: #fefefe;
+ -webkit-box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
+ box-shadow: 0 7px 0 #fefefe, 0 14px 0 #fefefe;
+ content: ''; }
+ .menu-icon:hover::after {
+ background: #cacaca;
+ -webkit-box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca;
+ box-shadow: 0 7px 0 #cacaca, 0 14px 0 #cacaca; }
+
+.menu-icon.dark {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ width: 20px;
+ height: 16px;
+ cursor: pointer; }
+ .menu-icon.dark::after {
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: block;
+ width: 100%;
+ height: 2px;
+ background: #0a0a0a;
+ -webkit-box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
+ box-shadow: 0 7px 0 #0a0a0a, 0 14px 0 #0a0a0a;
+ content: ''; }
+ .menu-icon.dark:hover::after {
+ background: #8a8a8a;
+ -webkit-box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a;
+ box-shadow: 0 7px 0 #8a8a8a, 0 14px 0 #8a8a8a; }
+
+.slide-in-down.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: translateY(-100%);
+ -ms-transform: translateY(-100%);
+ transform: translateY(-100%);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden; }
+
+.slide-in-down.mui-enter.mui-enter-active {
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0); }
+
+.slide-in-left.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: translateX(-100%);
+ -ms-transform: translateX(-100%);
+ transform: translateX(-100%);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden; }
+
+.slide-in-left.mui-enter.mui-enter-active {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0); }
+
+.slide-in-up.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: translateY(100%);
+ -ms-transform: translateY(100%);
+ transform: translateY(100%);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden; }
+
+.slide-in-up.mui-enter.mui-enter-active {
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0); }
+
+.slide-in-right.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: translateX(100%);
+ -ms-transform: translateX(100%);
+ transform: translateX(100%);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden; }
+
+.slide-in-right.mui-enter.mui-enter-active {
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0); }
+
+.slide-out-down.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden; }
+
+.slide-out-down.mui-leave.mui-leave-active {
+ -webkit-transform: translateY(100%);
+ -ms-transform: translateY(100%);
+ transform: translateY(100%); }
+
+.slide-out-right.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden; }
+
+.slide-out-right.mui-leave.mui-leave-active {
+ -webkit-transform: translateX(100%);
+ -ms-transform: translateX(100%);
+ transform: translateX(100%); }
+
+.slide-out-up.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden; }
+
+.slide-out-up.mui-leave.mui-leave-active {
+ -webkit-transform: translateY(-100%);
+ -ms-transform: translateY(-100%);
+ transform: translateY(-100%); }
+
+.slide-out-left.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: translateX(0);
+ -ms-transform: translateX(0);
+ transform: translateX(0);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden; }
+
+.slide-out-left.mui-leave.mui-leave-active {
+ -webkit-transform: translateX(-100%);
+ -ms-transform: translateX(-100%);
+ transform: translateX(-100%); }
+
+.fade-in.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ opacity: 0;
+ -webkit-transition-property: opacity;
+ transition-property: opacity; }
+
+.fade-in.mui-enter.mui-enter-active {
+ opacity: 1; }
+
+.fade-out.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ opacity: 1;
+ -webkit-transition-property: opacity;
+ transition-property: opacity; }
+
+.fade-out.mui-leave.mui-leave-active {
+ opacity: 0; }
+
+.hinge-in-from-top.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: perspective(2000px) rotateX(-90deg);
+ transform: perspective(2000px) rotateX(-90deg);
+ -webkit-transform-origin: top;
+ -ms-transform-origin: top;
+ transform-origin: top;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 0; }
+
+.hinge-in-from-top.mui-enter.mui-enter-active {
+ -webkit-transform: perspective(2000px) rotate(0deg);
+ transform: perspective(2000px) rotate(0deg);
+ opacity: 1; }
+
+.hinge-in-from-right.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: perspective(2000px) rotateY(-90deg);
+ transform: perspective(2000px) rotateY(-90deg);
+ -webkit-transform-origin: right;
+ -ms-transform-origin: right;
+ transform-origin: right;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 0; }
+
+.hinge-in-from-right.mui-enter.mui-enter-active {
+ -webkit-transform: perspective(2000px) rotate(0deg);
+ transform: perspective(2000px) rotate(0deg);
+ opacity: 1; }
+
+.hinge-in-from-bottom.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: perspective(2000px) rotateX(90deg);
+ transform: perspective(2000px) rotateX(90deg);
+ -webkit-transform-origin: bottom;
+ -ms-transform-origin: bottom;
+ transform-origin: bottom;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 0; }
+
+.hinge-in-from-bottom.mui-enter.mui-enter-active {
+ -webkit-transform: perspective(2000px) rotate(0deg);
+ transform: perspective(2000px) rotate(0deg);
+ opacity: 1; }
+
+.hinge-in-from-left.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: perspective(2000px) rotateY(90deg);
+ transform: perspective(2000px) rotateY(90deg);
+ -webkit-transform-origin: left;
+ -ms-transform-origin: left;
+ transform-origin: left;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 0; }
+
+.hinge-in-from-left.mui-enter.mui-enter-active {
+ -webkit-transform: perspective(2000px) rotate(0deg);
+ transform: perspective(2000px) rotate(0deg);
+ opacity: 1; }
+
+.hinge-in-from-middle-x.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: perspective(2000px) rotateX(-90deg);
+ transform: perspective(2000px) rotateX(-90deg);
+ -webkit-transform-origin: center;
+ -ms-transform-origin: center;
+ transform-origin: center;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 0; }
+
+.hinge-in-from-middle-x.mui-enter.mui-enter-active {
+ -webkit-transform: perspective(2000px) rotate(0deg);
+ transform: perspective(2000px) rotate(0deg);
+ opacity: 1; }
+
+.hinge-in-from-middle-y.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: perspective(2000px) rotateY(-90deg);
+ transform: perspective(2000px) rotateY(-90deg);
+ -webkit-transform-origin: center;
+ -ms-transform-origin: center;
+ transform-origin: center;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 0; }
+
+.hinge-in-from-middle-y.mui-enter.mui-enter-active {
+ -webkit-transform: perspective(2000px) rotate(0deg);
+ transform: perspective(2000px) rotate(0deg);
+ opacity: 1; }
+
+.hinge-out-from-top.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: perspective(2000px) rotate(0deg);
+ transform: perspective(2000px) rotate(0deg);
+ -webkit-transform-origin: top;
+ -ms-transform-origin: top;
+ transform-origin: top;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 1; }
+
+.hinge-out-from-top.mui-leave.mui-leave-active {
+ -webkit-transform: perspective(2000px) rotateX(90deg);
+ transform: perspective(2000px) rotateX(90deg);
+ opacity: 0; }
+
+.hinge-out-from-right.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: perspective(2000px) rotate(0deg);
+ transform: perspective(2000px) rotate(0deg);
+ -webkit-transform-origin: right;
+ -ms-transform-origin: right;
+ transform-origin: right;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 1; }
+
+.hinge-out-from-right.mui-leave.mui-leave-active {
+ -webkit-transform: perspective(2000px) rotateY(90deg);
+ transform: perspective(2000px) rotateY(90deg);
+ opacity: 0; }
+
+.hinge-out-from-bottom.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: perspective(2000px) rotate(0deg);
+ transform: perspective(2000px) rotate(0deg);
+ -webkit-transform-origin: bottom;
+ -ms-transform-origin: bottom;
+ transform-origin: bottom;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 1; }
+
+.hinge-out-from-bottom.mui-leave.mui-leave-active {
+ -webkit-transform: perspective(2000px) rotateX(-90deg);
+ transform: perspective(2000px) rotateX(-90deg);
+ opacity: 0; }
+
+.hinge-out-from-left.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: perspective(2000px) rotate(0deg);
+ transform: perspective(2000px) rotate(0deg);
+ -webkit-transform-origin: left;
+ -ms-transform-origin: left;
+ transform-origin: left;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 1; }
+
+.hinge-out-from-left.mui-leave.mui-leave-active {
+ -webkit-transform: perspective(2000px) rotateY(-90deg);
+ transform: perspective(2000px) rotateY(-90deg);
+ opacity: 0; }
+
+.hinge-out-from-middle-x.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: perspective(2000px) rotate(0deg);
+ transform: perspective(2000px) rotate(0deg);
+ -webkit-transform-origin: center;
+ -ms-transform-origin: center;
+ transform-origin: center;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 1; }
+
+.hinge-out-from-middle-x.mui-leave.mui-leave-active {
+ -webkit-transform: perspective(2000px) rotateX(90deg);
+ transform: perspective(2000px) rotateX(90deg);
+ opacity: 0; }
+
+.hinge-out-from-middle-y.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: perspective(2000px) rotate(0deg);
+ transform: perspective(2000px) rotate(0deg);
+ -webkit-transform-origin: center;
+ -ms-transform-origin: center;
+ transform-origin: center;
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 1; }
+
+.hinge-out-from-middle-y.mui-leave.mui-leave-active {
+ -webkit-transform: perspective(2000px) rotateY(90deg);
+ transform: perspective(2000px) rotateY(90deg);
+ opacity: 0; }
+
+.scale-in-up.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: scale(0.5);
+ -ms-transform: scale(0.5);
+ transform: scale(0.5);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 0; }
+
+.scale-in-up.mui-enter.mui-enter-active {
+ -webkit-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1; }
+
+.scale-in-down.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: scale(1.5);
+ -ms-transform: scale(1.5);
+ transform: scale(1.5);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 0; }
+
+.scale-in-down.mui-enter.mui-enter-active {
+ -webkit-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ opacity: 1; }
+
+.scale-out-up.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 1; }
+
+.scale-out-up.mui-leave.mui-leave-active {
+ -webkit-transform: scale(1.5);
+ -ms-transform: scale(1.5);
+ transform: scale(1.5);
+ opacity: 0; }
+
+.scale-out-down.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: scale(1);
+ -ms-transform: scale(1);
+ transform: scale(1);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 1; }
+
+.scale-out-down.mui-leave.mui-leave-active {
+ -webkit-transform: scale(0.5);
+ -ms-transform: scale(0.5);
+ transform: scale(0.5);
+ opacity: 0; }
+
+.spin-in.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: rotate(-0.75turn);
+ -ms-transform: rotate(-0.75turn);
+ transform: rotate(-0.75turn);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 0; }
+
+.spin-in.mui-enter.mui-enter-active {
+ -webkit-transform: rotate(0);
+ -ms-transform: rotate(0);
+ transform: rotate(0);
+ opacity: 1; }
+
+.spin-out.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: rotate(0);
+ -ms-transform: rotate(0);
+ transform: rotate(0);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 1; }
+
+.spin-out.mui-leave.mui-leave-active {
+ -webkit-transform: rotate(0.75turn);
+ -ms-transform: rotate(0.75turn);
+ transform: rotate(0.75turn);
+ opacity: 0; }
+
+.spin-in-ccw.mui-enter {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: rotate(0.75turn);
+ -ms-transform: rotate(0.75turn);
+ transform: rotate(0.75turn);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 0; }
+
+.spin-in-ccw.mui-enter.mui-enter-active {
+ -webkit-transform: rotate(0);
+ -ms-transform: rotate(0);
+ transform: rotate(0);
+ opacity: 1; }
+
+.spin-out-ccw.mui-leave {
+ -webkit-transition-duration: 500ms;
+ transition-duration: 500ms;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transform: rotate(0);
+ -ms-transform: rotate(0);
+ transform: rotate(0);
+ -webkit-transition-property: opacity, -webkit-transform;
+ transition-property: opacity, -webkit-transform;
+ transition-property: transform, opacity;
+ transition-property: transform, opacity, -webkit-transform;
+ opacity: 1; }
+
+.spin-out-ccw.mui-leave.mui-leave-active {
+ -webkit-transform: rotate(-0.75turn);
+ -ms-transform: rotate(-0.75turn);
+ transform: rotate(-0.75turn);
+ opacity: 0; }
+
+.slow {
+ -webkit-transition-duration: 750ms !important;
+ transition-duration: 750ms !important; }
+
+.fast {
+ -webkit-transition-duration: 250ms !important;
+ transition-duration: 250ms !important; }
+
+.linear {
+ -webkit-transition-timing-function: linear !important;
+ transition-timing-function: linear !important; }
+
+.ease {
+ -webkit-transition-timing-function: ease !important;
+ transition-timing-function: ease !important; }
+
+.ease-in {
+ -webkit-transition-timing-function: ease-in !important;
+ transition-timing-function: ease-in !important; }
+
+.ease-out {
+ -webkit-transition-timing-function: ease-out !important;
+ transition-timing-function: ease-out !important; }
+
+.ease-in-out {
+ -webkit-transition-timing-function: ease-in-out !important;
+ transition-timing-function: ease-in-out !important; }
+
+.bounce-in {
+ -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
+ transition-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }
+
+.bounce-out {
+ -webkit-transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
+ transition-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }
+
+.bounce-in-out {
+ -webkit-transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
+ transition-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }
+
+.short-delay {
+ -webkit-transition-delay: 300ms !important;
+ transition-delay: 300ms !important; }
+
+.long-delay {
+ -webkit-transition-delay: 700ms !important;
+ transition-delay: 700ms !important; }
+
+.shake {
+ -webkit-animation-name: shake-7;
+ animation-name: shake-7; }
+
+@-webkit-keyframes shake-7 {
+ 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
+ -webkit-transform: translateX(7%);
+ transform: translateX(7%); }
+ 5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
+ -webkit-transform: translateX(-7%);
+ transform: translateX(-7%); } }
+
+@keyframes shake-7 {
+ 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90% {
+ -webkit-transform: translateX(7%);
+ transform: translateX(7%); }
+ 5%, 15%, 25%, 35%, 45%, 55%, 65%, 75%, 85%, 95% {
+ -webkit-transform: translateX(-7%);
+ transform: translateX(-7%); } }
+
+.spin-cw {
+ -webkit-animation-name: spin-cw-1turn;
+ animation-name: spin-cw-1turn; }
+
+@-webkit-keyframes spin-cw-1turn {
+ 0% {
+ -webkit-transform: rotate(-1turn);
+ transform: rotate(-1turn); }
+ 100% {
+ -webkit-transform: rotate(0);
+ transform: rotate(0); } }
+
+@keyframes spin-cw-1turn {
+ 0% {
+ -webkit-transform: rotate(-1turn);
+ transform: rotate(-1turn); }
+ 100% {
+ -webkit-transform: rotate(0);
+ transform: rotate(0); } }
+
+.spin-ccw {
+ -webkit-animation-name: spin-ccw-1turn;
+ animation-name: spin-ccw-1turn; }
+
+@-webkit-keyframes spin-ccw-1turn {
+ 0% {
+ -webkit-transform: rotate(0);
+ transform: rotate(0); }
+ 100% {
+ -webkit-transform: rotate(-1turn);
+ transform: rotate(-1turn); } }
+
+@keyframes spin-ccw-1turn {
+ 0% {
+ -webkit-transform: rotate(0);
+ transform: rotate(0); }
+ 100% {
+ -webkit-transform: rotate(-1turn);
+ transform: rotate(-1turn); } }
+
+.wiggle {
+ -webkit-animation-name: wiggle-7deg;
+ animation-name: wiggle-7deg; }
+
+@-webkit-keyframes wiggle-7deg {
+ 40%, 50%, 60% {
+ -webkit-transform: rotate(7deg);
+ transform: rotate(7deg); }
+ 35%, 45%, 55%, 65% {
+ -webkit-transform: rotate(-7deg);
+ transform: rotate(-7deg); }
+ 0%, 30%, 70%, 100% {
+ -webkit-transform: rotate(0);
+ transform: rotate(0); } }
+
+@keyframes wiggle-7deg {
+ 40%, 50%, 60% {
+ -webkit-transform: rotate(7deg);
+ transform: rotate(7deg); }
+ 35%, 45%, 55%, 65% {
+ -webkit-transform: rotate(-7deg);
+ transform: rotate(-7deg); }
+ 0%, 30%, 70%, 100% {
+ -webkit-transform: rotate(0);
+ transform: rotate(0); } }
+
+.shake,
+.spin-cw,
+.spin-ccw,
+.wiggle {
+ -webkit-animation-duration: 500ms;
+ animation-duration: 500ms; }
+
+.infinite {
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite; }
+
+.slow {
+ -webkit-animation-duration: 750ms !important;
+ animation-duration: 750ms !important; }
+
+.fast {
+ -webkit-animation-duration: 250ms !important;
+ animation-duration: 250ms !important; }
+
+.linear {
+ -webkit-animation-timing-function: linear !important;
+ animation-timing-function: linear !important; }
+
+.ease {
+ -webkit-animation-timing-function: ease !important;
+ animation-timing-function: ease !important; }
+
+.ease-in {
+ -webkit-animation-timing-function: ease-in !important;
+ animation-timing-function: ease-in !important; }
+
+.ease-out {
+ -webkit-animation-timing-function: ease-out !important;
+ animation-timing-function: ease-out !important; }
+
+.ease-in-out {
+ -webkit-animation-timing-function: ease-in-out !important;
+ animation-timing-function: ease-in-out !important; }
+
+.bounce-in {
+ -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important;
+ animation-timing-function: cubic-bezier(0.485, 0.155, 0.24, 1.245) !important; }
+
+.bounce-out {
+ -webkit-animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important;
+ animation-timing-function: cubic-bezier(0.485, 0.155, 0.515, 0.845) !important; }
+
+.bounce-in-out {
+ -webkit-animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important;
+ animation-timing-function: cubic-bezier(0.76, -0.245, 0.24, 1.245) !important; }
+
+.short-delay {
+ -webkit-animation-delay: 300ms !important;
+ animation-delay: 300ms !important; }
+
+.long-delay {
+ -webkit-animation-delay: 700ms !important;
+ animation-delay: 700ms !important; }
diff --git a/MessagesMap/css/foundation.min.css b/MessagesMap/css/foundation.min.css
new file mode 100644
index 000000000..d8a09d66b
--- /dev/null
+++ b/MessagesMap/css/foundation.min.css
@@ -0,0 +1 @@
+@charset "UTF-8";@media print,screen and (min-width:40em){.reveal,.reveal.large,.reveal.small,.reveal.tiny{right:auto;left:auto;margin:0 auto}}/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.foundation-mq{font-family:"small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em"}html{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:100%}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}body{margin:0;padding:0;background:#fefefe;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:inline-block;vertical-align:middle;max-width:100%;height:auto;-ms-interpolation-mode:bicubic}textarea{height:auto;min-height:50px;border-radius:3px}select{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;border-radius:3px}.map_canvas embed,.map_canvas img,.map_canvas object,.mqa-display embed,.mqa-display img,.mqa-display object{max-width:none!important}button{padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:3px;background:0 0;line-height:1;cursor:auto}[data-whatinput=mouse] button{outline:0}pre{overflow:auto}button,input,optgroup,select,textarea{font-family:inherit}.is-visible{display:block!important}.is-hidden{display:none!important}blockquote,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,li,ol,p,pre,td,th,ul{margin:0;padding:0}p{margin-bottom:1rem;font-size:inherit;line-height:1.6;text-rendering:optimizeLegibility}em,i{font-style:italic;line-height:inherit}b,strong{font-weight:700;line-height:inherit}small{font-size:80%;line-height:inherit}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-style:normal;font-weight:400;color:inherit;text-rendering:optimizeLegibility}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{line-height:0;color:#cacaca}.h1,h1{font-size:1.5rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h2,h2{font-size:1.25rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h3,h3{font-size:1.1875rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h4,h4{font-size:1.125rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h5,h5{font-size:1.0625rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}.h6,h6{font-size:1rem;line-height:1.4;margin-top:0;margin-bottom:.5rem}@media print,screen and (min-width:40em){.h1,h1{font-size:3rem}.h2,h2{font-size:2.5rem}.h3,h3{font-size:1.9375rem}.h4,h4{font-size:1.5625rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}}a{line-height:inherit;color:#2ba6cb;text-decoration:none;cursor:pointer}a:focus,a:hover{color:#258faf}a img{border:0}hr{clear:both;max-width:62.5rem;height:0;margin:1.25rem auto;border-top:0;border-right:0;border-bottom:1px solid #cacaca;border-left:0}dl,ol,ul{margin-bottom:1rem;list-style-position:outside;line-height:1.6}li{font-size:inherit}ul{margin-left:1.25rem;list-style-type:disc}ol{margin-left:1.25rem}ol ol,ol ul,ul ol,ul ul{margin-left:1.25rem;margin-bottom:0}dl{margin-bottom:1rem}dl dt{margin-bottom:.3rem;font-weight:700}blockquote{margin:0 0 1rem;padding:.5625rem 1.25rem 0 1.1875rem;border-left:1px solid #cacaca}blockquote,blockquote p{line-height:1.6;color:#8a8a8a}abbr,abbr[title]{border-bottom:1px dotted #0a0a0a;cursor:help;text-decoration:none}figure{margin:0}kbd{margin:0;padding:.125rem .25rem 0;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;color:#0a0a0a;border-radius:3px}.subheader{margin-top:.2rem;margin-bottom:.5rem;font-weight:400;line-height:1.4;color:#8a8a8a}.lead{font-size:125%;line-height:1.6}.stat{font-size:2.5rem;line-height:1}p+.stat{margin-top:-1rem}ol.no-bullet,ul.no-bullet{margin-left:0;list-style:none}.cite-block,cite{display:block;color:#8a8a8a;font-size:.8125rem}.cite-block:before,cite:before{content:"— "}.code-inline,code{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:inline;max-width:100%;word-wrap:break-word;padding:.125rem .3125rem .0625rem}.code-block{border:1px solid #cacaca;background-color:#e6e6e6;font-family:Consolas,"Liberation Mono",Courier,monospace;font-weight:400;color:#0a0a0a;display:block;overflow:auto;white-space:pre;padding:1rem;margin-bottom:1.5rem}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}@media print,screen and (min-width:40em){.medium-text-left{text-align:left}.medium-text-right{text-align:right}.medium-text-center{text-align:center}.medium-text-justify{text-align:justify}}@media print,screen and (min-width:64em){.large-text-left{text-align:left}.large-text-right{text-align:right}.large-text-center{text-align:center}.large-text-justify{text-align:justify}}.show-for-print{display:none!important}@media print{*{background:0 0!important;color:#000!important;-webkit-print-color-adjust:economy;color-adjust:economy;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}.show-for-print{display:block!important}.hide-for-print{display:none!important}table.show-for-print{display:table!important}thead.show-for-print{display:table-header-group!important}tbody.show-for-print{display:table-row-group!important}tr.show-for-print{display:table-row!important}td.show-for-print{display:table-cell!important}th.show-for-print{display:table-cell!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}.ir a:after,a[href^='#']:after,a[href^='javascript:']:after{content:''}abbr[title]:after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #8a8a8a;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.print-break-inside{page-break-inside:auto}}[type=color],[type=date],[type=datetime-local],[type=datetime],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],textarea{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:2.4375rem;margin:0 0 1rem;padding:.5rem;border:1px solid #cacaca;border-radius:3px;background-color:#fefefe;-webkit-box-shadow:inset 0 1px 2px rgba(10,10,10,.1);box-shadow:inset 0 1px 2px rgba(10,10,10,.1);font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s;-webkit-appearance:none;-moz-appearance:none;appearance:none}[type=color]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=datetime]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,textarea:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}textarea{max-width:100%}textarea[rows]{height:auto}input:disabled,input[readonly],textarea:disabled,textarea[readonly]{background-color:#e6e6e6;cursor:not-allowed}[type=button],[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:3px}input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}::-webkit-input-placeholder{color:#cacaca}::-moz-placeholder{color:#cacaca}:-ms-input-placeholder{color:#cacaca}::-ms-input-placeholder{color:#cacaca}::placeholder{color:#cacaca}[type=checkbox],[type=file],[type=radio]{margin:0 0 1rem}[type=checkbox]+label,[type=radio]+label{display:inline-block;vertical-align:baseline;margin-left:.5rem;margin-right:1rem;margin-bottom:0}[type=checkbox]+label[for],[type=radio]+label[for]{cursor:pointer}label>[type=checkbox],label>[type=radio]{margin-right:.5rem}[type=file]{width:100%}label{display:block;margin:0;font-size:.875rem;font-weight:400;line-height:1.8;color:#0a0a0a}label.middle{margin:0 0 1rem;padding:.5625rem 0}.help-text{margin-top:-.5rem;font-size:.8125rem;font-style:italic;color:#0a0a0a}.input-group{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;margin-bottom:1rem;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.input-group>:first-child,.input-group>:first-child.input-group-button>*{border-radius:3px 0 0 3px}.input-group>:last-child,.input-group>:last-child.input-group-button>*{border-radius:0 3px 3px 0}.input-group-button,.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label,.input-group-field,.input-group-label{margin:0;white-space:nowrap}.input-group-label{padding:0 1rem;border:1px solid #cacaca;background:#e6e6e6;color:#0a0a0a;text-align:center;white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.input-group-label:first-child{border-right:0}.input-group-label:last-child{border-left:0}.input-group-field{border-radius:0;-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;min-width:0}.input-group-button{padding-top:0;padding-bottom:0;text-align:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.input-group-button a,.input-group-button button,.input-group-button input,.input-group-button label{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:auto;padding-top:0;padding-bottom:0;font-size:1rem}fieldset{margin:0;padding:0;border:0}legend{max-width:100%;margin-bottom:.5rem}.fieldset{margin:1.125rem 0;padding:1.25rem;border:1px solid #cacaca}.fieldset legend{margin:0;margin-left:-.1875rem;padding:0 .1875rem}select{height:2.4375rem;margin:0 0 1rem;padding:.5rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #cacaca;border-radius:3px;background-color:#fefefe;font-family:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:#0a0a0a;background-image:url("data:image/svg+xml;utf8, ");background-origin:content-box;background-position:right -1rem center;background-repeat:no-repeat;background-size:9px 6px;padding-right:1.5rem;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}@media screen and (min-width:0\0){select{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAYCAYAAACbU/80AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIpJREFUeNrEkckNgDAMBBfRkEt0ObRBBdsGXUDgmQfK4XhH2m8czQAAy27R3tsw4Qfe2x8uOO6oYLb6GlOor3GF+swURAOmUJ+RwtEJs9WvTGEYxBXqI1MQAZhCfUQKRzDMVj+TwrAIV6jvSUEkYAr1LSkcyTBb/V+KYfX7xAeusq3sLDtGH3kEGACPWIflNZfhRQAAAABJRU5ErkJggg==)}}select:focus{outline:0;border:1px solid #8a8a8a;background-color:#fefefe;-webkit-box-shadow:0 0 5px #cacaca;box-shadow:0 0 5px #cacaca;-webkit-transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:border-color .25s ease-in-out,-webkit-box-shadow .5s;transition:box-shadow .5s,border-color .25s ease-in-out;transition:box-shadow .5s,border-color .25s ease-in-out,-webkit-box-shadow .5s}select:disabled{background-color:#e6e6e6;cursor:not-allowed}select::-ms-expand{display:none}select[multiple]{height:auto;background-image:none}select:not([multiple]){padding-top:0;padding-bottom:0}.is-invalid-input:not(:focus){border-color:#c60f13;background-color:#f8e6e7}.is-invalid-input:not(:focus)::-webkit-input-placeholder{color:#c60f13}.is-invalid-input:not(:focus)::-moz-placeholder{color:#c60f13}.is-invalid-input:not(:focus):-ms-input-placeholder{color:#c60f13}.is-invalid-input:not(:focus)::-ms-input-placeholder{color:#c60f13}.is-invalid-input:not(:focus)::placeholder{color:#c60f13}.is-invalid-label{color:#c60f13}.form-error{display:none;margin-top:-.5rem;margin-bottom:1rem;font-size:.75rem;font-weight:700;color:#c60f13}.form-error.is-visible{display:block}.text-hide{font:0/0 a!important;color:transparent!important;text-shadow:none!important;background-color:transparent!important;border:0!important}.text-truncate{max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap!important}.text-nowrap{white-space:nowrap!important}.text-wrap{word-wrap:break-word!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-overline{text-decoration:overline!important}.text-underline{text-decoration:underline!important}.text-line-through{text-decoration:line-through!important}.font-wide{letter-spacing:.25rem}.font-normal{font-weight:400}.font-bold{font-weight:700}.font-italic{font-style:italic!important}ul.list-disc{list-style-type:disc!important}ul.list-circle{list-style-type:circle!important}ul.list-square{list-style-type:square!important}ol.list-decimal{list-style-type:decimal!important}ol.list-lower-alpha{list-style-type:lower-alpha!important}ol.list-lower-latin{list-style-type:lower-latin!important}ol.list-lower-roman{list-style-type:lower-roman!important}ol.list-upper-alpha{list-style-type:upper-alpha!important}ol.list-upper-latin{list-style-type:upper-latin!important}ol.list-upper-roman{list-style-type:upper-roman!important}.rounded{border-radius:5000px!important}.rounded .switch-paddle{border-radius:5000px!important}.rounded .switch-paddle:after{border-radius:50%}.radius{border-radius:.1875rem}.bordered{border:.0625rem solid #cacaca}.shadow{-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.arrow-down{display:block;width:0;height:0;border:inset .4375rem;content:'';border-bottom-width:0;border-top-style:solid;border-color:#0a0a0a transparent transparent}.arrow-up{display:block;width:0;height:0;border:inset .4375rem;content:'';border-top-width:0;border-bottom-style:solid;border-color:transparent transparent #0a0a0a}.arrow-right{display:block;width:0;height:0;border:inset .4375rem;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #0a0a0a}.arrow-left{display:block;width:0;height:0;border:inset .4375rem;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #0a0a0a transparent transparent}.separator-center{text-align:center!important}.separator-center::after,.separator-center::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.separator-center::after{clear:both}.separator-center::after{position:relative!important;width:3rem;border-bottom:.125rem solid #2ba6cb;margin:1rem auto 0}.separator-left{text-align:left!important}.separator-left::after,.separator-left::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.separator-left::after{clear:both}.separator-left::after{position:relative!important;width:3rem;border-bottom:.125rem solid #2ba6cb;margin:1rem auto 0;margin-left:0!important}.separator-right{text-align:right!important}.separator-right::after,.separator-right::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.separator-right::after{clear:both}.separator-right::after{position:relative!important;width:3rem;border-bottom:.125rem solid #2ba6cb;margin:1rem auto 0;margin-right:0!important}.overflow-visible{overflow:visible!important}.overflow-x-visible{overflow-x:visible!important}.overflow-y-visible{overflow-y:visible!important}.overflow-hidden{overflow:hidden!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-scroll{overflow:scroll!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-scroll{overflow-y:scroll!important}.display-inline{display:inline!important}.display-inline-block{display:inline-block!important}.display-block{display:block!important}.display-table{display:table!important}.display-table-cell{display:table-cell!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-fixed-top{position:fixed!important;top:0!important;right:0!important;left:0!important;z-index:975}.position-fixed-bottom{position:fixed!important;right:0!important;bottom:0!important;left:0!important;z-index:975}.border-box{-webkit-box-sizing:border-box!important;box-sizing:border-box!important}.border-none{border:none!important}.width-25{width:25%!important}.width-50{width:50%!important}.width-75{width:75%!important}.width-100{width:100%!important}.height-25{height:25%!important}.height-50{height:50%!important}.height-75{height:75%!important}.height-100{height:100%!important}.max-width-100{max-width:100%!important}.max-height-100{max-height:100%!important}.margin-0{margin:0!important}.margin-top-0{margin-top:0!important}.margin-right-0{margin-right:0!important}.margin-bottom-0{margin-bottom:0!important}.margin-left-0{margin-left:0!important}.margin-horizontal-0{margin-right:0!important;margin-left:0!important}.margin-vertical-0{margin-top:0!important;margin-bottom:0!important}.padding-0{padding:0!important}.padding-top-0{padding-top:0!important}.padding-right-0{padding-right:0!important}.padding-bottom-0{padding-bottom:0!important}.padding-left-0{padding-left:0!important}.padding-horizontal-0{padding-right:0!important;padding-left:0!important}.padding-vertical-0{padding-top:0!important;padding-bottom:0!important}.margin-1{margin:1rem!important}.margin-top-1{margin-top:1rem!important}.margin-right-1{margin-right:1rem!important}.margin-bottom-1{margin-bottom:1rem!important}.margin-left-1{margin-left:1rem!important}.margin-horizontal-1{margin-right:1rem!important;margin-left:1rem!important}.margin-vertical-1{margin-top:1rem!important;margin-bottom:1rem!important}.padding-1{padding:1rem!important}.padding-top-1{padding-top:1rem!important}.padding-right-1{padding-right:1rem!important}.padding-bottom-1{padding-bottom:1rem!important}.padding-left-1{padding-left:1rem!important}.padding-horizontal-1{padding-right:1rem!important;padding-left:1rem!important}.padding-vertical-1{padding-top:1rem!important;padding-bottom:1rem!important}.margin-2{margin:2rem!important}.margin-top-2{margin-top:2rem!important}.margin-right-2{margin-right:2rem!important}.margin-bottom-2{margin-bottom:2rem!important}.margin-left-2{margin-left:2rem!important}.margin-horizontal-2{margin-right:2rem!important;margin-left:2rem!important}.margin-vertical-2{margin-top:2rem!important;margin-bottom:2rem!important}.padding-2{padding:2rem!important}.padding-top-2{padding-top:2rem!important}.padding-right-2{padding-right:2rem!important}.padding-bottom-2{padding-bottom:2rem!important}.padding-left-2{padding-left:2rem!important}.padding-horizontal-2{padding-right:2rem!important;padding-left:2rem!important}.padding-vertical-2{padding-top:2rem!important;padding-bottom:2rem!important}.margin-3{margin:3rem!important}.margin-top-3{margin-top:3rem!important}.margin-right-3{margin-right:3rem!important}.margin-bottom-3{margin-bottom:3rem!important}.margin-left-3{margin-left:3rem!important}.margin-horizontal-3{margin-right:3rem!important;margin-left:3rem!important}.margin-vertical-3{margin-top:3rem!important;margin-bottom:3rem!important}.padding-3{padding:3rem!important}.padding-top-3{padding-top:3rem!important}.padding-right-3{padding-right:3rem!important}.padding-bottom-3{padding-bottom:3rem!important}.padding-left-3{padding-left:3rem!important}.padding-horizontal-3{padding-right:3rem!important;padding-left:3rem!important}.padding-vertical-3{padding-top:3rem!important;padding-bottom:3rem!important}.float-left{float:left!important}.float-right{float:right!important}.float-center{display:block;margin-right:auto;margin-left:auto}.clearfix::after,.clearfix::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.clearfix::after{clear:both}.hide{display:none!important}.invisible{visibility:hidden}@media print,screen and (max-width:39.99875em){.hide-for-small-only{display:none!important}}@media screen and (max-width:0em),screen and (min-width:40em){.show-for-small-only{display:none!important}}@media print,screen and (min-width:40em){.hide-for-medium{display:none!important}}@media screen and (max-width:39.99875em){.show-for-medium{display:none!important}}@media print,screen and (min-width:40em) and (max-width:63.99875em){.hide-for-medium-only{display:none!important}}@media screen and (max-width:39.99875em),screen and (min-width:64em){.show-for-medium-only{display:none!important}}@media print,screen and (min-width:64em){.hide-for-large{display:none!important}}@media screen and (max-width:63.99875em){.show-for-large{display:none!important}}@media print,screen and (min-width:64em) and (max-width:74.99875em){.hide-for-large-only{display:none!important}}@media screen and (max-width:63.99875em),screen and (min-width:75em){.show-for-large-only{display:none!important}}.show-for-sr,.show-on-focus{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.show-on-focus:active,.show-on-focus:focus{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important;white-space:normal!important}.hide-for-portrait,.show-for-landscape{display:block!important}@media screen and (orientation:landscape){.hide-for-portrait,.show-for-landscape{display:block!important}}@media screen and (orientation:portrait){.hide-for-portrait,.show-for-landscape{display:none!important}}.hide-for-landscape,.show-for-portrait{display:none!important}@media screen and (orientation:landscape){.hide-for-landscape,.show-for-portrait{display:none!important}}@media screen and (orientation:portrait){.hide-for-landscape,.show-for-portrait{display:block!important}}.button{display:inline-block;vertical-align:middle;margin:0 0 1rem 0;padding:.85em 1em;border:1px solid transparent;border-radius:3px;-webkit-transition:background-color .25s ease-out,color .25s ease-out;transition:background-color .25s ease-out,color .25s ease-out;font-family:inherit;font-size:.9rem;-webkit-appearance:none;line-height:1;text-align:center;cursor:pointer}[data-whatinput=mouse] .button{outline:0}.button.tiny{font-size:.6rem}.button.small{font-size:.75rem}.button.large{font-size:1.25rem}.button.expanded{display:block;width:100%;margin-right:0;margin-left:0}.button,.button.disabled,.button.disabled:focus,.button.disabled:hover,.button[disabled],.button[disabled]:focus,.button[disabled]:hover{background-color:#2ba6cb;color:#fefefe}.button:focus,.button:hover{background-color:#258dad;color:#fefefe}.button.primary,.button.primary.disabled,.button.primary.disabled:focus,.button.primary.disabled:hover,.button.primary[disabled],.button.primary[disabled]:focus,.button.primary[disabled]:hover{background-color:#2ba6cb;color:#0a0a0a}.button.primary:focus,.button.primary:hover{background-color:#2285a2;color:#0a0a0a}.button.secondary,.button.secondary.disabled,.button.secondary.disabled:focus,.button.secondary.disabled:hover,.button.secondary[disabled],.button.secondary[disabled]:focus,.button.secondary[disabled]:hover{background-color:#e9e9e9;color:#0a0a0a}.button.secondary:focus,.button.secondary:hover{background-color:#bababa;color:#0a0a0a}.button.alert,.button.alert.disabled,.button.alert.disabled:focus,.button.alert.disabled:hover,.button.alert[disabled],.button.alert[disabled]:focus,.button.alert[disabled]:hover{background-color:#c60f13;color:#fefefe}.button.alert:focus,.button.alert:hover{background-color:#9e0c0f;color:#fefefe}.button.success,.button.success.disabled,.button.success.disabled:focus,.button.success.disabled:hover,.button.success[disabled],.button.success[disabled]:focus,.button.success[disabled]:hover{background-color:#5da423;color:#0a0a0a}.button.success:focus,.button.success:hover{background-color:#4a831c;color:#0a0a0a}.button.warning,.button.warning.disabled,.button.warning.disabled:focus,.button.warning.disabled:hover,.button.warning[disabled],.button.warning[disabled]:focus,.button.warning[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button.warning:focus,.button.warning:hover{background-color:#cc8b00;color:#0a0a0a}.button.body-font,.button.body-font.disabled,.button.body-font.disabled:focus,.button.body-font.disabled:hover,.button.body-font[disabled],.button.body-font[disabled]:focus,.button.body-font[disabled]:hover{background-color:#222;color:#fefefe}.button.body-font:focus,.button.body-font:hover{background-color:#1b1b1b;color:#fefefe}.button.header,.button.header.disabled,.button.header.disabled:focus,.button.header.disabled:hover,.button.header[disabled],.button.header[disabled]:focus,.button.header[disabled]:hover{background-color:#222;color:#fefefe}.button.header:focus,.button.header:hover{background-color:#1b1b1b;color:#fefefe}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow:focus,.button.hollow:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{background-color:transparent}.button.hollow,.button.hollow.disabled,.button.hollow.disabled:focus,.button.hollow.disabled:hover,.button.hollow[disabled],.button.hollow[disabled]:focus,.button.hollow[disabled]:hover{border:1px solid #2ba6cb;color:#2ba6cb}.button.hollow:focus,.button.hollow:hover{border-color:#165366;color:#165366}.button.hollow.primary,.button.hollow.primary.disabled,.button.hollow.primary.disabled:focus,.button.hollow.primary.disabled:hover,.button.hollow.primary[disabled],.button.hollow.primary[disabled]:focus,.button.hollow.primary[disabled]:hover{border:1px solid #2ba6cb;color:#2ba6cb}.button.hollow.primary:focus,.button.hollow.primary:hover{border-color:#165366;color:#165366}.button.hollow.secondary,.button.hollow.secondary.disabled,.button.hollow.secondary.disabled:focus,.button.hollow.secondary.disabled:hover,.button.hollow.secondary[disabled],.button.hollow.secondary[disabled]:focus,.button.hollow.secondary[disabled]:hover{border:1px solid #e9e9e9;color:#e9e9e9}.button.hollow.secondary:focus,.button.hollow.secondary:hover{border-color:#757575;color:#757575}.button.hollow.alert,.button.hollow.alert.disabled,.button.hollow.alert.disabled:focus,.button.hollow.alert.disabled:hover,.button.hollow.alert[disabled],.button.hollow.alert[disabled]:focus,.button.hollow.alert[disabled]:hover{border:1px solid #c60f13;color:#c60f13}.button.hollow.alert:focus,.button.hollow.alert:hover{border-color:#63080a;color:#63080a}.button.hollow.success,.button.hollow.success.disabled,.button.hollow.success.disabled:focus,.button.hollow.success.disabled:hover,.button.hollow.success[disabled],.button.hollow.success[disabled]:focus,.button.hollow.success[disabled]:hover{border:1px solid #5da423;color:#5da423}.button.hollow.success:focus,.button.hollow.success:hover{border-color:#2f5212;color:#2f5212}.button.hollow.warning,.button.hollow.warning.disabled,.button.hollow.warning.disabled:focus,.button.hollow.warning.disabled:hover,.button.hollow.warning[disabled],.button.hollow.warning[disabled]:focus,.button.hollow.warning[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button.hollow.warning:focus,.button.hollow.warning:hover{border-color:#805700;color:#805700}.button.hollow.body-font,.button.hollow.body-font.disabled,.button.hollow.body-font.disabled:focus,.button.hollow.body-font.disabled:hover,.button.hollow.body-font[disabled],.button.hollow.body-font[disabled]:focus,.button.hollow.body-font[disabled]:hover{border:1px solid #222;color:#222}.button.hollow.body-font:focus,.button.hollow.body-font:hover{border-color:#111;color:#111}.button.hollow.header,.button.hollow.header.disabled,.button.hollow.header.disabled:focus,.button.hollow.header.disabled:hover,.button.hollow.header[disabled],.button.hollow.header[disabled]:focus,.button.hollow.header[disabled]:hover{border:1px solid #222;color:#222}.button.hollow.header:focus,.button.hollow.header:hover{border-color:#111;color:#111}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear:focus,.button.clear:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{border-color:transparent;background-color:transparent}.button.clear,.button.clear.disabled,.button.clear.disabled:focus,.button.clear.disabled:hover,.button.clear[disabled],.button.clear[disabled]:focus,.button.clear[disabled]:hover{color:#2ba6cb}.button.clear:focus,.button.clear:hover{color:#165366}.button.clear.primary,.button.clear.primary.disabled,.button.clear.primary.disabled:focus,.button.clear.primary.disabled:hover,.button.clear.primary[disabled],.button.clear.primary[disabled]:focus,.button.clear.primary[disabled]:hover{color:#2ba6cb}.button.clear.primary:focus,.button.clear.primary:hover{color:#165366}.button.clear.secondary,.button.clear.secondary.disabled,.button.clear.secondary.disabled:focus,.button.clear.secondary.disabled:hover,.button.clear.secondary[disabled],.button.clear.secondary[disabled]:focus,.button.clear.secondary[disabled]:hover{color:#e9e9e9}.button.clear.secondary:focus,.button.clear.secondary:hover{color:#757575}.button.clear.alert,.button.clear.alert.disabled,.button.clear.alert.disabled:focus,.button.clear.alert.disabled:hover,.button.clear.alert[disabled],.button.clear.alert[disabled]:focus,.button.clear.alert[disabled]:hover{color:#c60f13}.button.clear.alert:focus,.button.clear.alert:hover{color:#63080a}.button.clear.success,.button.clear.success.disabled,.button.clear.success.disabled:focus,.button.clear.success.disabled:hover,.button.clear.success[disabled],.button.clear.success[disabled]:focus,.button.clear.success[disabled]:hover{color:#5da423}.button.clear.success:focus,.button.clear.success:hover{color:#2f5212}.button.clear.warning,.button.clear.warning.disabled,.button.clear.warning.disabled:focus,.button.clear.warning.disabled:hover,.button.clear.warning[disabled],.button.clear.warning[disabled]:focus,.button.clear.warning[disabled]:hover{color:#ffae00}.button.clear.warning:focus,.button.clear.warning:hover{color:#805700}.button.clear.body-font,.button.clear.body-font.disabled,.button.clear.body-font.disabled:focus,.button.clear.body-font.disabled:hover,.button.clear.body-font[disabled],.button.clear.body-font[disabled]:focus,.button.clear.body-font[disabled]:hover{color:#222}.button.clear.body-font:focus,.button.clear.body-font:hover{color:#111}.button.clear.header,.button.clear.header.disabled,.button.clear.header.disabled:focus,.button.clear.header.disabled:hover,.button.clear.header[disabled],.button.clear.header[disabled]:focus,.button.clear.header[disabled]:hover{color:#222}.button.clear.header:focus,.button.clear.header:hover{color:#111}.button.disabled,.button[disabled]{opacity:.25;cursor:not-allowed}.button.dropdown::after{display:block;width:0;height:0;border:inset .4em;content:'';border-bottom-width:0;border-top-style:solid;border-color:#fefefe transparent transparent;position:relative;top:.4em;display:inline-block;float:right;margin-left:1em}.button.dropdown.clear::after,.button.dropdown.hollow::after{border-top-color:#2ba6cb}.button.dropdown.clear.primary::after,.button.dropdown.hollow.primary::after{border-top-color:#2ba6cb}.button.dropdown.clear.secondary::after,.button.dropdown.hollow.secondary::after{border-top-color:#e9e9e9}.button.dropdown.clear.alert::after,.button.dropdown.hollow.alert::after{border-top-color:#c60f13}.button.dropdown.clear.success::after,.button.dropdown.hollow.success::after{border-top-color:#5da423}.button.dropdown.clear.warning::after,.button.dropdown.hollow.warning::after{border-top-color:#ffae00}.button.dropdown.clear.body-font::after,.button.dropdown.hollow.body-font::after{border-top-color:#222}.button.dropdown.clear.header::after,.button.dropdown.hollow.header::after{border-top-color:#222}.button.arrow-only::after{top:-.1em;float:none;margin-left:0}a.button:focus,a.button:hover{text-decoration:none}.close-button{position:absolute;z-index:10;color:#8a8a8a;cursor:pointer}[data-whatinput=mouse] .close-button{outline:0}.close-button:focus,.close-button:hover{color:#0a0a0a}.close-button.small{right:.66rem;top:.33em;font-size:1.5em;line-height:1}.close-button,.close-button.medium{right:1rem;top:.5rem;font-size:2em;line-height:1}.button-group{margin-bottom:1rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1}.button-group::after,.button-group::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.button-group::after{clear:both}.button-group::after,.button-group::before{display:none}.button-group .button{margin:0;margin-right:1px;margin-bottom:1px;font-size:.9rem;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.button-group .button:last-child{margin-right:0}.button-group.tiny .button{font-size:.6rem}.button-group.small .button{font-size:.75rem}.button-group.large .button{font-size:1.25rem}.button-group.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;margin-right:0}.button-group.primary .button,.button-group.primary .button.disabled,.button-group.primary .button.disabled:focus,.button-group.primary .button.disabled:hover,.button-group.primary .button[disabled],.button-group.primary .button[disabled]:focus,.button-group.primary .button[disabled]:hover{background-color:#2ba6cb;color:#0a0a0a}.button-group.primary .button:focus,.button-group.primary .button:hover{background-color:#2285a2;color:#0a0a0a}.button-group.secondary .button,.button-group.secondary .button.disabled,.button-group.secondary .button.disabled:focus,.button-group.secondary .button.disabled:hover,.button-group.secondary .button[disabled],.button-group.secondary .button[disabled]:focus,.button-group.secondary .button[disabled]:hover{background-color:#e9e9e9;color:#0a0a0a}.button-group.secondary .button:focus,.button-group.secondary .button:hover{background-color:#bababa;color:#0a0a0a}.button-group.alert .button,.button-group.alert .button.disabled,.button-group.alert .button.disabled:focus,.button-group.alert .button.disabled:hover,.button-group.alert .button[disabled],.button-group.alert .button[disabled]:focus,.button-group.alert .button[disabled]:hover{background-color:#c60f13;color:#fefefe}.button-group.alert .button:focus,.button-group.alert .button:hover{background-color:#9e0c0f;color:#fefefe}.button-group.success .button,.button-group.success .button.disabled,.button-group.success .button.disabled:focus,.button-group.success .button.disabled:hover,.button-group.success .button[disabled],.button-group.success .button[disabled]:focus,.button-group.success .button[disabled]:hover{background-color:#5da423;color:#0a0a0a}.button-group.success .button:focus,.button-group.success .button:hover{background-color:#4a831c;color:#0a0a0a}.button-group.warning .button,.button-group.warning .button.disabled,.button-group.warning .button.disabled:focus,.button-group.warning .button.disabled:hover,.button-group.warning .button[disabled],.button-group.warning .button[disabled]:focus,.button-group.warning .button[disabled]:hover{background-color:#ffae00;color:#0a0a0a}.button-group.warning .button:focus,.button-group.warning .button:hover{background-color:#cc8b00;color:#0a0a0a}.button-group.body-font .button,.button-group.body-font .button.disabled,.button-group.body-font .button.disabled:focus,.button-group.body-font .button.disabled:hover,.button-group.body-font .button[disabled],.button-group.body-font .button[disabled]:focus,.button-group.body-font .button[disabled]:hover{background-color:#222;color:#fefefe}.button-group.body-font .button:focus,.button-group.body-font .button:hover{background-color:#1b1b1b;color:#fefefe}.button-group.header .button,.button-group.header .button.disabled,.button-group.header .button.disabled:focus,.button-group.header .button.disabled:hover,.button-group.header .button[disabled],.button-group.header .button[disabled]:focus,.button-group.header .button[disabled]:hover{background-color:#222;color:#fefefe}.button-group.header .button:focus,.button-group.header .button:hover{background-color:#1b1b1b;color:#fefefe}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button:focus,.button-group.hollow .button:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{background-color:transparent}.button-group.hollow .button,.button-group.hollow .button.disabled,.button-group.hollow .button.disabled:focus,.button-group.hollow .button.disabled:hover,.button-group.hollow .button[disabled],.button-group.hollow .button[disabled]:focus,.button-group.hollow .button[disabled]:hover{border:1px solid #2ba6cb;color:#2ba6cb}.button-group.hollow .button:focus,.button-group.hollow .button:hover{border-color:#165366;color:#165366}.button-group.hollow .button.primary,.button-group.hollow .button.primary.disabled,.button-group.hollow .button.primary.disabled:focus,.button-group.hollow .button.primary.disabled:hover,.button-group.hollow .button.primary[disabled],.button-group.hollow .button.primary[disabled]:focus,.button-group.hollow .button.primary[disabled]:hover,.button-group.hollow.primary .button,.button-group.hollow.primary .button.disabled,.button-group.hollow.primary .button.disabled:focus,.button-group.hollow.primary .button.disabled:hover,.button-group.hollow.primary .button[disabled],.button-group.hollow.primary .button[disabled]:focus,.button-group.hollow.primary .button[disabled]:hover{border:1px solid #2ba6cb;color:#2ba6cb}.button-group.hollow .button.primary:focus,.button-group.hollow .button.primary:hover,.button-group.hollow.primary .button:focus,.button-group.hollow.primary .button:hover{border-color:#165366;color:#165366}.button-group.hollow .button.secondary,.button-group.hollow .button.secondary.disabled,.button-group.hollow .button.secondary.disabled:focus,.button-group.hollow .button.secondary.disabled:hover,.button-group.hollow .button.secondary[disabled],.button-group.hollow .button.secondary[disabled]:focus,.button-group.hollow .button.secondary[disabled]:hover,.button-group.hollow.secondary .button,.button-group.hollow.secondary .button.disabled,.button-group.hollow.secondary .button.disabled:focus,.button-group.hollow.secondary .button.disabled:hover,.button-group.hollow.secondary .button[disabled],.button-group.hollow.secondary .button[disabled]:focus,.button-group.hollow.secondary .button[disabled]:hover{border:1px solid #e9e9e9;color:#e9e9e9}.button-group.hollow .button.secondary:focus,.button-group.hollow .button.secondary:hover,.button-group.hollow.secondary .button:focus,.button-group.hollow.secondary .button:hover{border-color:#757575;color:#757575}.button-group.hollow .button.alert,.button-group.hollow .button.alert.disabled,.button-group.hollow .button.alert.disabled:focus,.button-group.hollow .button.alert.disabled:hover,.button-group.hollow .button.alert[disabled],.button-group.hollow .button.alert[disabled]:focus,.button-group.hollow .button.alert[disabled]:hover,.button-group.hollow.alert .button,.button-group.hollow.alert .button.disabled,.button-group.hollow.alert .button.disabled:focus,.button-group.hollow.alert .button.disabled:hover,.button-group.hollow.alert .button[disabled],.button-group.hollow.alert .button[disabled]:focus,.button-group.hollow.alert .button[disabled]:hover{border:1px solid #c60f13;color:#c60f13}.button-group.hollow .button.alert:focus,.button-group.hollow .button.alert:hover,.button-group.hollow.alert .button:focus,.button-group.hollow.alert .button:hover{border-color:#63080a;color:#63080a}.button-group.hollow .button.success,.button-group.hollow .button.success.disabled,.button-group.hollow .button.success.disabled:focus,.button-group.hollow .button.success.disabled:hover,.button-group.hollow .button.success[disabled],.button-group.hollow .button.success[disabled]:focus,.button-group.hollow .button.success[disabled]:hover,.button-group.hollow.success .button,.button-group.hollow.success .button.disabled,.button-group.hollow.success .button.disabled:focus,.button-group.hollow.success .button.disabled:hover,.button-group.hollow.success .button[disabled],.button-group.hollow.success .button[disabled]:focus,.button-group.hollow.success .button[disabled]:hover{border:1px solid #5da423;color:#5da423}.button-group.hollow .button.success:focus,.button-group.hollow .button.success:hover,.button-group.hollow.success .button:focus,.button-group.hollow.success .button:hover{border-color:#2f5212;color:#2f5212}.button-group.hollow .button.warning,.button-group.hollow .button.warning.disabled,.button-group.hollow .button.warning.disabled:focus,.button-group.hollow .button.warning.disabled:hover,.button-group.hollow .button.warning[disabled],.button-group.hollow .button.warning[disabled]:focus,.button-group.hollow .button.warning[disabled]:hover,.button-group.hollow.warning .button,.button-group.hollow.warning .button.disabled,.button-group.hollow.warning .button.disabled:focus,.button-group.hollow.warning .button.disabled:hover,.button-group.hollow.warning .button[disabled],.button-group.hollow.warning .button[disabled]:focus,.button-group.hollow.warning .button[disabled]:hover{border:1px solid #ffae00;color:#ffae00}.button-group.hollow .button.warning:focus,.button-group.hollow .button.warning:hover,.button-group.hollow.warning .button:focus,.button-group.hollow.warning .button:hover{border-color:#805700;color:#805700}.button-group.hollow .button.body-font,.button-group.hollow .button.body-font.disabled,.button-group.hollow .button.body-font.disabled:focus,.button-group.hollow .button.body-font.disabled:hover,.button-group.hollow .button.body-font[disabled],.button-group.hollow .button.body-font[disabled]:focus,.button-group.hollow .button.body-font[disabled]:hover,.button-group.hollow.body-font .button,.button-group.hollow.body-font .button.disabled,.button-group.hollow.body-font .button.disabled:focus,.button-group.hollow.body-font .button.disabled:hover,.button-group.hollow.body-font .button[disabled],.button-group.hollow.body-font .button[disabled]:focus,.button-group.hollow.body-font .button[disabled]:hover{border:1px solid #222;color:#222}.button-group.hollow .button.body-font:focus,.button-group.hollow .button.body-font:hover,.button-group.hollow.body-font .button:focus,.button-group.hollow.body-font .button:hover{border-color:#111;color:#111}.button-group.hollow .button.header,.button-group.hollow .button.header.disabled,.button-group.hollow .button.header.disabled:focus,.button-group.hollow .button.header.disabled:hover,.button-group.hollow .button.header[disabled],.button-group.hollow .button.header[disabled]:focus,.button-group.hollow .button.header[disabled]:hover,.button-group.hollow.header .button,.button-group.hollow.header .button.disabled,.button-group.hollow.header .button.disabled:focus,.button-group.hollow.header .button.disabled:hover,.button-group.hollow.header .button[disabled],.button-group.hollow.header .button[disabled]:focus,.button-group.hollow.header .button[disabled]:hover{border:1px solid #222;color:#222}.button-group.hollow .button.header:focus,.button-group.hollow .button.header:hover,.button-group.hollow.header .button:focus,.button-group.hollow.header .button:hover{border-color:#111;color:#111}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button:focus,.button-group.clear .button:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{border-color:transparent;background-color:transparent}.button-group.clear .button,.button-group.clear .button.disabled,.button-group.clear .button.disabled:focus,.button-group.clear .button.disabled:hover,.button-group.clear .button[disabled],.button-group.clear .button[disabled]:focus,.button-group.clear .button[disabled]:hover{color:#2ba6cb}.button-group.clear .button:focus,.button-group.clear .button:hover{color:#165366}.button-group.clear .button.primary,.button-group.clear .button.primary.disabled,.button-group.clear .button.primary.disabled:focus,.button-group.clear .button.primary.disabled:hover,.button-group.clear .button.primary[disabled],.button-group.clear .button.primary[disabled]:focus,.button-group.clear .button.primary[disabled]:hover,.button-group.clear.primary .button,.button-group.clear.primary .button.disabled,.button-group.clear.primary .button.disabled:focus,.button-group.clear.primary .button.disabled:hover,.button-group.clear.primary .button[disabled],.button-group.clear.primary .button[disabled]:focus,.button-group.clear.primary .button[disabled]:hover{color:#2ba6cb}.button-group.clear .button.primary:focus,.button-group.clear .button.primary:hover,.button-group.clear.primary .button:focus,.button-group.clear.primary .button:hover{color:#165366}.button-group.clear .button.secondary,.button-group.clear .button.secondary.disabled,.button-group.clear .button.secondary.disabled:focus,.button-group.clear .button.secondary.disabled:hover,.button-group.clear .button.secondary[disabled],.button-group.clear .button.secondary[disabled]:focus,.button-group.clear .button.secondary[disabled]:hover,.button-group.clear.secondary .button,.button-group.clear.secondary .button.disabled,.button-group.clear.secondary .button.disabled:focus,.button-group.clear.secondary .button.disabled:hover,.button-group.clear.secondary .button[disabled],.button-group.clear.secondary .button[disabled]:focus,.button-group.clear.secondary .button[disabled]:hover{color:#e9e9e9}.button-group.clear .button.secondary:focus,.button-group.clear .button.secondary:hover,.button-group.clear.secondary .button:focus,.button-group.clear.secondary .button:hover{color:#757575}.button-group.clear .button.alert,.button-group.clear .button.alert.disabled,.button-group.clear .button.alert.disabled:focus,.button-group.clear .button.alert.disabled:hover,.button-group.clear .button.alert[disabled],.button-group.clear .button.alert[disabled]:focus,.button-group.clear .button.alert[disabled]:hover,.button-group.clear.alert .button,.button-group.clear.alert .button.disabled,.button-group.clear.alert .button.disabled:focus,.button-group.clear.alert .button.disabled:hover,.button-group.clear.alert .button[disabled],.button-group.clear.alert .button[disabled]:focus,.button-group.clear.alert .button[disabled]:hover{color:#c60f13}.button-group.clear .button.alert:focus,.button-group.clear .button.alert:hover,.button-group.clear.alert .button:focus,.button-group.clear.alert .button:hover{color:#63080a}.button-group.clear .button.success,.button-group.clear .button.success.disabled,.button-group.clear .button.success.disabled:focus,.button-group.clear .button.success.disabled:hover,.button-group.clear .button.success[disabled],.button-group.clear .button.success[disabled]:focus,.button-group.clear .button.success[disabled]:hover,.button-group.clear.success .button,.button-group.clear.success .button.disabled,.button-group.clear.success .button.disabled:focus,.button-group.clear.success .button.disabled:hover,.button-group.clear.success .button[disabled],.button-group.clear.success .button[disabled]:focus,.button-group.clear.success .button[disabled]:hover{color:#5da423}.button-group.clear .button.success:focus,.button-group.clear .button.success:hover,.button-group.clear.success .button:focus,.button-group.clear.success .button:hover{color:#2f5212}.button-group.clear .button.warning,.button-group.clear .button.warning.disabled,.button-group.clear .button.warning.disabled:focus,.button-group.clear .button.warning.disabled:hover,.button-group.clear .button.warning[disabled],.button-group.clear .button.warning[disabled]:focus,.button-group.clear .button.warning[disabled]:hover,.button-group.clear.warning .button,.button-group.clear.warning .button.disabled,.button-group.clear.warning .button.disabled:focus,.button-group.clear.warning .button.disabled:hover,.button-group.clear.warning .button[disabled],.button-group.clear.warning .button[disabled]:focus,.button-group.clear.warning .button[disabled]:hover{color:#ffae00}.button-group.clear .button.warning:focus,.button-group.clear .button.warning:hover,.button-group.clear.warning .button:focus,.button-group.clear.warning .button:hover{color:#805700}.button-group.clear .button.body-font,.button-group.clear .button.body-font.disabled,.button-group.clear .button.body-font.disabled:focus,.button-group.clear .button.body-font.disabled:hover,.button-group.clear .button.body-font[disabled],.button-group.clear .button.body-font[disabled]:focus,.button-group.clear .button.body-font[disabled]:hover,.button-group.clear.body-font .button,.button-group.clear.body-font .button.disabled,.button-group.clear.body-font .button.disabled:focus,.button-group.clear.body-font .button.disabled:hover,.button-group.clear.body-font .button[disabled],.button-group.clear.body-font .button[disabled]:focus,.button-group.clear.body-font .button[disabled]:hover{color:#222}.button-group.clear .button.body-font:focus,.button-group.clear .button.body-font:hover,.button-group.clear.body-font .button:focus,.button-group.clear.body-font .button:hover{color:#111}.button-group.clear .button.header,.button-group.clear .button.header.disabled,.button-group.clear .button.header.disabled:focus,.button-group.clear .button.header.disabled:hover,.button-group.clear .button.header[disabled],.button-group.clear .button.header[disabled]:focus,.button-group.clear .button.header[disabled]:hover,.button-group.clear.header .button,.button-group.clear.header .button.disabled,.button-group.clear.header .button.disabled:focus,.button-group.clear.header .button.disabled:hover,.button-group.clear.header .button[disabled],.button-group.clear.header .button[disabled]:focus,.button-group.clear.header .button[disabled]:hover{color:#222}.button-group.clear .button.header:focus,.button-group.clear .button.header:hover,.button-group.clear.header .button:focus,.button-group.clear.header .button:hover{color:#111}.button-group.no-gaps .button{margin-right:-.0625rem}.button-group.no-gaps .button+.button{border-left-color:transparent}.button-group.stacked,.button-group.stacked-for-medium,.button-group.stacked-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.button-group.stacked .button,.button-group.stacked-for-medium .button,.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%}.button-group.stacked .button:last-child,.button-group.stacked-for-medium .button:last-child,.button-group.stacked-for-small .button:last-child{margin-bottom:0}.button-group.stacked-for-medium.expanded .button,.button-group.stacked-for-small.expanded .button,.button-group.stacked.expanded .button{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;margin-right:0}@media print,screen and (min-width:40em){.button-group.stacked-for-small .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (min-width:64em){.button-group.stacked-for-medium .button{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media print,screen and (max-width:39.99875em){.button-group.stacked-for-small.expanded{display:block}.button-group.stacked-for-small.expanded .button{display:block;margin-right:0}}@media print,screen and (max-width:63.99875em){.button-group.stacked-for-medium.expanded{display:block}.button-group.stacked-for-medium.expanded .button{display:block;margin-right:0}}.slider{position:relative;height:.5rem;margin-top:1.25rem;margin-bottom:2.25rem;background-color:#e6e6e6;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:none;touch-action:none}.slider-fill{position:absolute;top:0;left:0;display:inline-block;max-width:100%;height:.5rem;background-color:#cacaca;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.slider-fill.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider-handle{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0;z-index:1;display:inline-block;width:1.4rem;height:1.4rem;border-radius:3px;background-color:#2ba6cb;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;-ms-touch-action:manipulation;touch-action:manipulation}[data-whatinput=mouse] .slider-handle{outline:0}.slider-handle:hover{background-color:#258dad}.slider-handle.is-dragging{-webkit-transition:all 0s linear;transition:all 0s linear}.slider.disabled,.slider[disabled]{opacity:.25;cursor:not-allowed}.slider.vertical{display:inline-block;width:.5rem;height:12.5rem;margin:0 1.25rem;-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}.slider.vertical .slider-fill{top:0;width:.5rem;max-height:100%}.slider.vertical .slider-handle{position:absolute;top:0;left:50%;width:1.4rem;height:1.4rem;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.switch{height:2rem;position:relative;margin-bottom:1rem;outline:0;font-size:.875rem;font-weight:700;color:#fefefe;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.switch-input{position:absolute;margin-bottom:0;opacity:0}.switch-paddle{position:relative;display:block;width:4rem;height:2rem;border-radius:3px;background:#cacaca;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;font-weight:inherit;color:inherit;cursor:pointer}input+.switch-paddle{margin:0}.switch-paddle::after{position:absolute;top:.25rem;left:.25rem;display:block;width:1.5rem;height:1.5rem;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-radius:3px;background:#fefefe;-webkit-transition:all .25s ease-out;transition:all .25s ease-out;content:''}input:checked~.switch-paddle{background:#2ba6cb}input:checked~.switch-paddle::after{left:2.25rem}input:disabled~.switch-paddle{cursor:not-allowed;opacity:.5}[data-whatinput=mouse] input:focus~.switch-paddle{outline:0}.switch-active,.switch-inactive{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.switch-active{left:8%;display:none}input:checked+label>.switch-active{display:block}.switch-inactive{right:15%}input:checked+label>.switch-inactive{display:none}.switch.tiny{height:1.5rem}.switch.tiny .switch-paddle{width:3rem;height:1.5rem;font-size:.625rem}.switch.tiny .switch-paddle::after{top:.25rem;left:.25rem;width:1rem;height:1rem}.switch.tiny input:checked~.switch-paddle::after{left:1.75rem}.switch.small{height:1.75rem}.switch.small .switch-paddle{width:3.5rem;height:1.75rem;font-size:.75rem}.switch.small .switch-paddle::after{top:.25rem;left:.25rem;width:1.25rem;height:1.25rem}.switch.small input:checked~.switch-paddle::after{left:2rem}.switch.large{height:2.5rem}.switch.large .switch-paddle{width:5rem;height:2.5rem;font-size:1rem}.switch.large .switch-paddle::after{top:.25rem;left:.25rem;width:2rem;height:2rem}.switch.large input:checked~.switch-paddle::after{left:2.75rem}.menu{padding:0;margin:0;list-style:none;position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}[data-whatinput=mouse] .menu li{outline:0}.menu .button,.menu a{line-height:1;text-decoration:none;display:block;padding:.7rem 1rem}.menu a,.menu button,.menu input,.menu select{margin-bottom:0}.menu input{display:inline-block}.menu,.menu.horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.simple{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.menu.simple li+li{margin-left:1rem}.menu.simple a{padding:0}@media print,screen and (min-width:40em){.menu.medium-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.medium-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.medium-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.medium-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}@media print,screen and (min-width:64em){.menu.large-horizontal{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.menu.large-vertical{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.menu.large-expanded li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.menu.large-simple li{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}}.menu.nested{margin-right:0;margin-left:1rem}.menu.icons a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-bottom a,.menu.icon-left a,.menu.icon-right a,.menu.icon-top a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.menu.icon-left li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-left li a i,.menu.icon-left li a img,.menu.icon-left li a svg{margin-right:.25rem}.menu.icon-right li a{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.menu.icon-right li a i,.menu.icon-right li a img,.menu.icon-right li a svg{margin-left:.25rem}.menu.icon-top li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-top li a i,.menu.icon-top li a img,.menu.icon-top li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu.icon-bottom li a{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.menu.icon-bottom li a i,.menu.icon-bottom li a img,.menu.icon-bottom li a svg{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;margin-bottom:.25rem;text-align:center}.menu .is-active>a{background:#2ba6cb;color:#0a0a0a}.menu .active>a{background:#2ba6cb;color:#0a0a0a}.menu.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.menu.align-right li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu.align-right.vertical li{display:block;text-align:right}.menu.align-right.vertical li .submenu li{text-align:right}.menu.align-right .nested{margin-right:1rem;margin-left:0}.menu.align-center li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu.align-center li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.menu .menu-text{padding:.7rem 1rem;font-weight:700;line-height:1;color:inherit}.menu-centered>.menu{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.menu-centered>.menu li .submenu li{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.no-js [data-responsive-menu] ul{display:none}.is-drilldown{position:relative;overflow:hidden}.is-drilldown li{display:block}.is-drilldown.animate-height{-webkit-transition:height .5s;transition:height .5s}.drilldown a{padding:.7rem 1rem;background:#fefefe}.drilldown .is-drilldown-submenu{position:absolute;top:0;left:100%;z-index:-1;width:100%;background:#fefefe;-webkit-transition:-webkit-transform .15s linear;transition:-webkit-transform .15s linear;transition:transform .15s linear;transition:transform .15s linear,-webkit-transform .15s linear}.drilldown .is-drilldown-submenu.is-active{z-index:1;display:block;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.drilldown .is-drilldown-submenu.is-closing{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.drilldown .is-drilldown-submenu a{padding:.7rem 1rem}.drilldown .nested.is-drilldown-submenu{margin-right:0;margin-left:0}.drilldown .drilldown-submenu-cover-previous{min-height:100%}.drilldown .is-drilldown-submenu-parent>a{position:relative}.drilldown .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #2ba6cb;position:absolute;top:50%;margin-top:-6px;right:1rem}.drilldown.align-left .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #2ba6cb;right:1rem;left:auto}.drilldown.align-right .is-drilldown-submenu-parent>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #2ba6cb transparent transparent;right:auto;left:1rem}.drilldown .js-drilldown-back>a::before{display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #2ba6cb transparent transparent;display:inline-block;vertical-align:middle;margin-right:.75rem}.accordion-menu li{width:100%}.accordion-menu a{padding:.7rem 1rem}.accordion-menu .is-accordion-submenu a{padding:.7rem 1rem}.accordion-menu .nested.is-accordion-submenu{margin-right:0;margin-left:1rem}.accordion-menu.align-right .nested.is-accordion-submenu{margin-right:1rem;margin-left:0}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a{position:relative}.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle)>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#2ba6cb transparent transparent;position:absolute;top:50%;margin-top:-3px;right:1rem}.accordion-menu.align-left .is-accordion-submenu-parent>a::after{right:1rem;left:auto}.accordion-menu.align-right .is-accordion-submenu-parent>a::after{right:auto;left:1rem}.accordion-menu .is-accordion-submenu-parent[aria-expanded=true]>a::after{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.is-accordion-submenu-parent{position:relative}.has-submenu-toggle>a{margin-right:40px}.submenu-toggle{position:absolute;top:0;right:0;width:40px;height:40px;cursor:pointer}.submenu-toggle::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#2ba6cb transparent transparent;top:0;bottom:0;margin:auto}.submenu-toggle[aria-expanded=true]::after{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1);-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.submenu-toggle-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.dropdown.menu>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#2ba6cb transparent transparent;right:5px;left:auto;margin-top:-3px}[data-whatinput=mouse] .dropdown.menu a{outline:0}.dropdown.menu>li>a{padding:.7rem 1rem}.dropdown.menu>li.is-active>a{background:0 0;color:#2ba6cb}.no-js .dropdown.menu ul{display:none}.dropdown.menu .nested.is-dropdown-submenu{margin-right:0;margin-left:0}.dropdown.menu.vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.vertical>li>a::after{right:14px}.dropdown.menu.vertical>li.opens-left>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #2ba6cb transparent transparent;right:auto;left:5px}.dropdown.menu.vertical>li.opens-right>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #2ba6cb}@media print,screen and (min-width:40em){.dropdown.menu.medium-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.medium-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.medium-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#2ba6cb transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.medium-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.medium-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.medium-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.medium-vertical>li>a::after{right:14px}.dropdown.menu.medium-vertical>li.opens-left>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #2ba6cb transparent transparent;right:auto;left:5px}.dropdown.menu.medium-vertical>li.opens-right>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #2ba6cb}}@media print,screen and (min-width:64em){.dropdown.menu.large-horizontal>li.opens-left>.is-dropdown-submenu{top:100%;right:0;left:auto}.dropdown.menu.large-horizontal>li.opens-right>.is-dropdown-submenu{top:100%;right:auto;left:0}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a{position:relative;padding-right:1.5rem}.dropdown.menu.large-horizontal>li.is-dropdown-submenu-parent>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-bottom-width:0;border-top-style:solid;border-color:#2ba6cb transparent transparent;right:5px;left:auto;margin-top:-3px}.dropdown.menu.large-vertical>li .is-dropdown-submenu{top:0}.dropdown.menu.large-vertical>li.opens-left>.is-dropdown-submenu{top:0;right:100%;left:auto}.dropdown.menu.large-vertical>li.opens-right>.is-dropdown-submenu{right:auto;left:100%}.dropdown.menu.large-vertical>li>a::after{right:14px}.dropdown.menu.large-vertical>li.opens-left>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #2ba6cb transparent transparent;right:auto;left:5px}.dropdown.menu.large-vertical>li.opens-right>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #2ba6cb}}.dropdown.menu.align-right .is-dropdown-submenu.first-sub{top:100%;right:0;left:auto}.is-dropdown-menu.vertical{width:100px}.is-dropdown-menu.vertical.align-right{float:right}.is-dropdown-submenu-parent{position:relative}.is-dropdown-submenu-parent a::after{position:absolute;top:50%;right:5px;left:auto;margin-top:-6px}.is-dropdown-submenu-parent.opens-inner>.is-dropdown-submenu{top:100%;left:auto}.is-dropdown-submenu-parent.opens-left>.is-dropdown-submenu{right:100%;left:auto}.is-dropdown-submenu-parent.opens-right>.is-dropdown-submenu{right:auto;left:100%}.is-dropdown-submenu{position:absolute;top:0;left:100%;z-index:1;display:none;min-width:200px;border:1px solid #cacaca;background:#fefefe}.dropdown .is-dropdown-submenu a{padding:.7rem 1rem}.is-dropdown-submenu .is-dropdown-submenu-parent>a::after{right:14px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-left>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #2ba6cb transparent transparent;right:auto;left:5px}.is-dropdown-submenu .is-dropdown-submenu-parent.opens-right>a::after{display:block;width:0;height:0;border:inset 6px;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #2ba6cb}.is-dropdown-submenu .is-dropdown-submenu{margin-top:-1px}.is-dropdown-submenu>li{width:100%}.is-dropdown-submenu.js-dropdown-active{display:block}.title-bar{padding:.5rem;background:#0a0a0a;color:#fefefe;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.title-bar .menu-icon{margin-left:.25rem;margin-right:.25rem}.title-bar-left,.title-bar-right{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.title-bar-right{text-align:right}.title-bar-title{display:inline-block;vertical-align:middle;font-weight:700}.top-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:.5rem;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar,.top-bar ul{background-color:#e6e6e6}.top-bar input{max-width:200px;margin-right:1rem}.top-bar .input-group-field{width:100%;margin-right:0}.top-bar input.button{width:auto}.top-bar .top-bar-left,.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}@media print,screen and (min-width:40em){.top-bar{-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.top-bar .top-bar-left{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:auto}.top-bar .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-left:auto}}@media print,screen and (max-width:63.99875em){.top-bar.stacked-for-medium{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-medium .top-bar-left,.top-bar.stacked-for-medium .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media print,screen and (max-width:74.99875em){.top-bar.stacked-for-large{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.top-bar.stacked-for-large .top-bar-left,.top-bar.stacked-for-large .top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.top-bar-title{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;margin:.5rem 1rem .5rem 0}.top-bar-left,.top-bar-right{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.breadcrumbs{margin:0 0 1rem 0;list-style:none}.breadcrumbs::after,.breadcrumbs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.breadcrumbs::after{clear:both}.breadcrumbs li{float:left;font-size:.6875rem;color:#0a0a0a;cursor:default;text-transform:uppercase}.breadcrumbs li:not(:last-child)::after{position:relative;margin:0 .75rem;opacity:1;content:"/";color:#cacaca}.breadcrumbs a{color:#2ba6cb}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs .disabled{color:#cacaca;cursor:not-allowed}.pagination{margin-left:0;margin-bottom:1rem}.pagination::after,.pagination::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.pagination::after{clear:both}.pagination li{margin-right:.0625rem;border-radius:3px;font-size:.875rem;display:none}.pagination li:first-child,.pagination li:last-child{display:inline-block}@media print,screen and (min-width:40em){.pagination li{display:inline-block}}.pagination a,.pagination button{display:block;padding:.1875rem .625rem;border-radius:3px;color:#0a0a0a}.pagination a:hover,.pagination button:hover{background:#e6e6e6}.pagination .current{padding:.1875rem .625rem;background:#2ba6cb;color:#fefefe;cursor:default}.pagination .disabled{padding:.1875rem .625rem;color:#cacaca;cursor:not-allowed}.pagination .disabled:hover{background:0 0}.pagination .ellipsis::after{padding:.1875rem .625rem;content:'\2026';color:#0a0a0a}.pagination-previous a::before,.pagination-previous.disabled::before{display:inline-block;margin-right:.5rem;content:"«"}.pagination-next a::after,.pagination-next.disabled::after{display:inline-block;margin-left:.5rem;content:"»"}.accordion{margin-left:0;background:#fefefe;list-style-type:none}.accordion[disabled] .accordion-title{cursor:not-allowed}.accordion-item:first-child>:first-child{border-radius:3px 3px 0 0}.accordion-item:last-child>:last-child{border-radius:0 0 3px 3px}.accordion-title{position:relative;display:block;padding:1.25rem 1rem;border:1px solid #e6e6e6;border-bottom:0;font-size:.75rem;line-height:1;color:#2ba6cb}:last-child:not(.is-active)>.accordion-title{border-bottom:1px solid #e6e6e6;border-radius:0 0 3px 3px}.accordion-title:focus,.accordion-title:hover{background-color:#e6e6e6}.accordion-title::before{position:absolute;top:50%;right:1rem;margin-top:-.5rem;content:"+"}.is-active>.accordion-title::before{content:"–"}.accordion-content{display:none;padding:1rem;border:1px solid #e6e6e6;border-bottom:0;background-color:#fefefe;color:#0a0a0a}:last-child>.accordion-content:last-child{border-bottom:1px solid #e6e6e6}.dropdown-pane{position:absolute;z-index:10;display:none;width:300px;padding:1rem;visibility:hidden;border:1px solid #cacaca;border-radius:3px;background-color:#fefefe;font-size:1rem}.dropdown-pane.is-opening{display:block}.dropdown-pane.is-open{display:block;visibility:visible}.dropdown-pane.tiny{width:100px}.dropdown-pane.small{width:200px}.dropdown-pane.large{width:400px}.is-off-canvas-open{overflow:hidden}.js-off-canvas-overlay{position:absolute;top:0;left:0;z-index:11;width:100%;height:100%;-webkit-transition:opacity .5s ease,visibility .5s ease;transition:opacity .5s ease,visibility .5s ease;background:rgba(254,254,254,.25);opacity:0;visibility:hidden;overflow:hidden}.js-off-canvas-overlay.is-visible{opacity:1;visibility:visible}.js-off-canvas-overlay.is-closable{cursor:pointer}.js-off-canvas-overlay.is-overlay-absolute{position:absolute}.js-off-canvas-overlay.is-overlay-fixed{position:fixed}.off-canvas-wrapper{position:relative;overflow:hidden}.off-canvas{position:fixed;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas{outline:0}.off-canvas.is-transition-push{z-index:12}.off-canvas.is-closed{visibility:hidden}.off-canvas.is-transition-overlap{z-index:13}.off-canvas.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-absolute{position:absolute;z-index:12;-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:#e6e6e6}[data-whatinput=mouse] .off-canvas-absolute{outline:0}.off-canvas-absolute.is-transition-push{z-index:12}.off-canvas-absolute.is-closed{visibility:hidden}.off-canvas-absolute.is-transition-overlap{z-index:13}.off-canvas-absolute.is-transition-overlap.is-open{-webkit-box-shadow:0 0 10px rgba(10,10,10,.7);box-shadow:0 0 10px rgba(10,10,10,.7)}.off-canvas-absolute.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.position-left{top:0;left:0;height:100%;overflow-y:auto;width:250px;-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.off-canvas-content .off-canvas.position-left.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-left.has-transition-push{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.position-left.is-transition-push{-webkit-box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset -13px 0 20px -13px rgba(10,10,10,.25)}.position-right{top:0;right:0;height:100%;overflow-y:auto;width:250px;-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right{-webkit-transform:translateX(250px);-ms-transform:translateX(250px);transform:translateX(250px)}.off-canvas-content .off-canvas.position-right.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-right.has-transition-push{-webkit-transform:translateX(-250px);-ms-transform:translateX(-250px);transform:translateX(-250px)}.position-right.is-transition-push{-webkit-box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25);box-shadow:inset 13px 0 20px -13px rgba(10,10,10,.25)}.position-top{top:0;left:0;width:100%;overflow-x:auto;height:250px;-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.off-canvas-content .off-canvas.position-top.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-top.has-transition-push{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.position-top.is-transition-push{-webkit-box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 -13px 20px -13px rgba(10,10,10,.25)}.position-bottom{bottom:0;left:0;width:100%;overflow-x:auto;height:250px;-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom{-webkit-transform:translateY(250px);-ms-transform:translateY(250px);transform:translateY(250px)}.off-canvas-content .off-canvas.position-bottom.is-transition-overlap.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content.is-open-bottom.has-transition-push{-webkit-transform:translateY(-250px);-ms-transform:translateY(-250px);transform:translateY(-250px)}.position-bottom.is-transition-push{-webkit-box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25);box-shadow:inset 0 13px 20px -13px rgba(10,10,10,.25)}.off-canvas-content{-webkit-transform:none;-ms-transform:none;transform:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.off-canvas-content.has-transition-overlap,.off-canvas-content.has-transition-push{-webkit-transition:-webkit-transform .5s ease;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.off-canvas-content.has-transition-push{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.off-canvas-content .off-canvas.is-open{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}@media print,screen and (min-width:40em){.position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-medium .close-button{display:none}.off-canvas-content .position-left.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-medium~.off-canvas-content{margin-left:250px}.position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-medium .close-button{display:none}.off-canvas-content .position-right.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-medium~.off-canvas-content{margin-right:250px}.position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-medium .close-button{display:none}.off-canvas-content .position-top.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-medium~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-medium .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-medium{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-medium~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:64em){.position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-left.reveal-for-large .close-button{display:none}.off-canvas-content .position-left.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-left{margin-left:250px}.position-left.reveal-for-large~.off-canvas-content{margin-left:250px}.position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-right.reveal-for-large .close-button{display:none}.off-canvas-content .position-right.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-right{margin-right:250px}.position-right.reveal-for-large~.off-canvas-content{margin-right:250px}.position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-top.reveal-for-large .close-button{display:none}.off-canvas-content .position-top.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-top{margin-top:250px}.position-top.reveal-for-large~.off-canvas-content{margin-top:250px}.position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none;z-index:12;-webkit-transition:none;transition:none;visibility:visible}.position-bottom.reveal-for-large .close-button{display:none}.off-canvas-content .position-bottom.reveal-for-large{-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas-content.has-reveal-bottom{margin-bottom:250px}.position-bottom.reveal-for-large~.off-canvas-content{margin-bottom:250px}}@media print,screen and (min-width:40em){.off-canvas.in-canvas-for-medium{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-medium.position-bottom,.off-canvas.in-canvas-for-medium.position-left,.off-canvas.in-canvas-for-medium.position-right,.off-canvas.in-canvas-for-medium.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-medium .close-button{display:none}}@media print,screen and (min-width:64em){.off-canvas.in-canvas-for-large{visibility:visible;height:auto;position:static;background:0 0;width:auto;overflow:visible;-webkit-transition:none;transition:none}.off-canvas.in-canvas-for-large.position-bottom,.off-canvas.in-canvas-for-large.position-left,.off-canvas.in-canvas-for-large.position-right,.off-canvas.in-canvas-for-large.position-top{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-ms-transform:none;transform:none}.off-canvas.in-canvas-for-large .close-button{display:none}}.tabs{margin:0;border:1px solid #e6e6e6;background:#fefefe;list-style-type:none}.tabs::after,.tabs::before{display:table;content:' ';-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.tabs::after{clear:both}.tabs.vertical>li{display:block;float:none;width:auto}.tabs.simple>li>a{padding:0}.tabs.simple>li>a:hover{background:0 0}.tabs.primary{background:#2ba6cb}.tabs.primary>li>a{color:#0a0a0a}.tabs.primary>li>a:focus,.tabs.primary>li>a:hover{background:#299ec1}.tabs-title{float:left}.tabs-title>a{display:block;padding:1.25rem 1.5rem;font-size:.75rem;line-height:1;color:#2ba6cb}[data-whatinput=mouse] .tabs-title>a{outline:0}.tabs-title>a:hover{background:#fefefe;color:#258faf}.tabs-title>a:focus,.tabs-title>a[aria-selected=true]{background:#e6e6e6;color:#2ba6cb}.tabs-content{border:1px solid #e6e6e6;border-top:0;background:#fefefe;color:#0a0a0a;-webkit-transition:all .5s ease;transition:all .5s ease}.tabs-content.vertical{border:1px solid #e6e6e6;border-left:0}.tabs-panel{display:none;padding:1rem}.tabs-panel.is-active{display:block}.callout{position:relative;margin:0 0 1rem 0;padding:1rem;border:1px solid rgba(10,10,10,.25);border-radius:3px;background-color:#fff;color:#0a0a0a}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout.primary{background-color:#def2f8;color:#0a0a0a}.callout.secondary{background-color:#fcfcfc;color:#0a0a0a}.callout.alert{background-color:#fcd6d6;color:#0a0a0a}.callout.success{background-color:#e6f7d9;color:#0a0a0a}.callout.warning{background-color:#fff3d9;color:#0a0a0a}.callout.body-font{background-color:#dedede;color:#0a0a0a}.callout.header{background-color:#dedede;color:#0a0a0a}.callout.small{padding-top:.5rem;padding-right:.5rem;padding-bottom:.5rem;padding-left:.5rem}.callout.large{padding-top:3rem;padding-right:3rem;padding-bottom:3rem;padding-left:3rem}.card{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-bottom:1rem;border:1px solid #e6e6e6;border-radius:3px;background:#fefefe;-webkit-box-shadow:none;box-shadow:none;overflow:hidden;color:#0a0a0a}.card>:last-child{margin-bottom:0}.card-divider{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;padding:1rem;background:#e6e6e6}.card-divider>:last-child{margin-bottom:0}.card-section{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;padding:1rem}.card-section>:last-child{margin-bottom:0}.card-image{min-height:1px}.media-object{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:1rem;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.media-object img{max-width:none}@media print,screen and (max-width:39.99875em){.media-object.stack-for-small{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}}.media-object-section{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.media-object-section:first-child{padding-right:1rem}.media-object-section:last-child:not(:nth-child(2)){padding-left:1rem}.media-object-section>:last-child{margin-bottom:0}@media print,screen and (max-width:39.99875em){.stack-for-small .media-object-section{padding:0;padding-bottom:1rem;-webkit-flex-basis:100%;-ms-flex-preferred-size:100%;flex-basis:100%;max-width:100%}.stack-for-small .media-object-section img{width:100%}}.media-object-section.main-section{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}html.is-reveal-open{position:fixed;width:100%;overflow-y:hidden}html.is-reveal-open.zf-has-scroll{overflow-y:scroll}html.is-reveal-open body{overflow-y:hidden}.reveal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1005;display:none;background-color:rgba(10,10,10,.45);overflow-y:auto}.reveal{z-index:1006;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:none;padding:1rem;border:1px solid #cacaca;border-radius:3px;background-color:#fefefe;position:relative;top:100px;margin-right:auto;margin-left:auto;overflow-y:auto}[data-whatinput=mouse] .reveal{outline:0}@media print,screen and (min-width:40em){.reveal{min-height:0}}.reveal .column{min-width:0}.reveal>:last-child{margin-bottom:0}@media print,screen and (min-width:40em){.reveal{width:600px;max-width:62.5rem}}.reveal.collapse{padding:0}@media print,screen and (min-width:40em){.reveal.tiny{width:30%;max-width:62.5rem}}@media print,screen and (min-width:40em){.reveal.small{width:50%;max-width:62.5rem}}@media print,screen and (min-width:40em){.reveal.large{width:90%;max-width:62.5rem}}.reveal.full{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}@media print,screen and (max-width:39.99875em){.reveal{top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;min-height:100%;margin-left:0;border:0;border-radius:0}}.reveal.without-overlay{position:fixed}.badge{display:inline-block;min-width:2.1em;padding:.3em;border-radius:50%;font-size:.6rem;text-align:center;background:#2ba6cb;color:#fefefe}.badge.primary{background:#2ba6cb;color:#0a0a0a}.badge.secondary{background:#e9e9e9;color:#0a0a0a}.badge.alert{background:#c60f13;color:#fefefe}.badge.success{background:#5da423;color:#0a0a0a}.badge.warning{background:#ffae00;color:#0a0a0a}.badge.body-font{background:#222;color:#fefefe}.badge.header{background:#222;color:#fefefe}.label{display:inline-block;padding:.33333rem .5rem;border-radius:3px;font-size:.8rem;line-height:1;white-space:nowrap;cursor:default;background:#2ba6cb;color:#fefefe}.label.primary{background:#2ba6cb;color:#0a0a0a}.label.secondary{background:#e9e9e9;color:#0a0a0a}.label.alert{background:#c60f13;color:#fefefe}.label.success{background:#5da423;color:#0a0a0a}.label.warning{background:#ffae00;color:#0a0a0a}.label.body-font{background:#222;color:#fefefe}.label.header{background:#222;color:#fefefe}.progress{height:1rem;margin-bottom:1rem;border-radius:3px;background-color:#cacaca}.progress.primary .progress-meter{background-color:#2ba6cb}.progress.secondary .progress-meter{background-color:#e9e9e9}.progress.alert .progress-meter{background-color:#c60f13}.progress.success .progress-meter{background-color:#5da423}.progress.warning .progress-meter{background-color:#ffae00}.progress.body-font .progress-meter{background-color:#222}.progress.header .progress-meter{background-color:#222}.progress-meter{position:relative;display:block;width:0%;height:100%;background-color:#2ba6cb;border-radius:3px}.progress-meter-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin:0;font-size:.75rem;font-weight:700;color:#fefefe;white-space:nowrap;border-radius:3px}.has-tip{position:relative;display:inline-block;border-bottom:dotted 1px #8a8a8a;font-weight:700;cursor:help}.tooltip{position:absolute;top:calc(100% + .6495rem);z-index:1200;max-width:10rem;padding:.75rem;border-radius:3px;background-color:#0a0a0a;font-size:80%;color:#fefefe}.tooltip::before{position:absolute}.tooltip.bottom::before{display:block;width:0;height:0;border:inset .75rem;content:'';border-top-width:0;border-bottom-style:solid;border-color:transparent transparent #0a0a0a;bottom:100%}.tooltip.bottom.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.top::before{display:block;width:0;height:0;border:inset .75rem;content:'';border-bottom-width:0;border-top-style:solid;border-color:#0a0a0a transparent transparent;top:100%;bottom:auto}.tooltip.top.align-center::before{left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltip.left::before{display:block;width:0;height:0;border:inset .75rem;content:'';border-right-width:0;border-left-style:solid;border-color:transparent transparent transparent #0a0a0a;left:100%}.tooltip.left.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.right::before{display:block;width:0;height:0;border:inset .75rem;content:'';border-left-width:0;border-right-style:solid;border-color:transparent #0a0a0a transparent transparent;right:100%;left:auto}.tooltip.right.align-center::before{bottom:auto;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.tooltip.align-top::before{bottom:auto;top:10%}.tooltip.align-bottom::before{bottom:10%;top:auto}.tooltip.align-left::before{left:10%;right:auto}.tooltip.align-right::before{left:auto;right:10%}.flex-video,.responsive-embed{position:relative;height:0;margin-bottom:1rem;padding-bottom:75%;overflow:hidden}.flex-video embed,.flex-video iframe,.flex-video object,.flex-video video,.responsive-embed embed,.responsive-embed iframe,.responsive-embed object,.responsive-embed video{position:absolute;top:0;left:0;width:100%;height:100%}.flex-video.widescreen,.responsive-embed.widescreen{padding-bottom:56.25%}.orbit{position:relative}.orbit-container{position:relative;height:0;margin:0;list-style:none;overflow:hidden}.orbit-slide{width:100%;position:absolute}.orbit-slide.no-motionui.is-active{top:0;left:0}.orbit-figure{margin:0}.orbit-image{width:100%;max-width:100%;margin:0}.orbit-caption{position:absolute;bottom:0;width:100%;margin-bottom:0;padding:1rem;background-color:rgba(10,10,10,.5);color:#fefefe}.orbit-next,.orbit-previous{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10;padding:1rem;color:#fefefe}[data-whatinput=mouse] .orbit-next,[data-whatinput=mouse] .orbit-previous{outline:0}.orbit-next:active,.orbit-next:focus,.orbit-next:hover,.orbit-previous:active,.orbit-previous:focus,.orbit-previous:hover{background-color:rgba(10,10,10,.5)}.orbit-previous{left:0}.orbit-next{left:auto;right:0}.orbit-bullets{position:relative;margin-top:.8rem;margin-bottom:.8rem;text-align:center}[data-whatinput=mouse] .orbit-bullets{outline:0}.orbit-bullets button{width:1.2rem;height:1.2rem;margin:.1rem;border-radius:50%;background-color:#cacaca}.orbit-bullets button:hover{background-color:#8a8a8a}.orbit-bullets button.is-active{background-color:#8a8a8a}.thumbnail{display:inline-block;max-width:100%;margin-bottom:1rem;border:4px solid #fefefe;border-radius:3px;-webkit-box-shadow:0 0 0 1px rgba(10,10,10,.2);box-shadow:0 0 0 1px rgba(10,10,10,.2);line-height:0}a.thumbnail{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}a.thumbnail:focus,a.thumbnail:hover{-webkit-box-shadow:0 0 6px 1px rgba(43,166,203,.5);box-shadow:0 0 6px 1px rgba(43,166,203,.5)}a.thumbnail image{-webkit-box-shadow:none;box-shadow:none}.sticky-container{position:relative}.sticky{position:relative;z-index:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.sticky.is-stuck{position:fixed;z-index:5;width:100%}.sticky.is-stuck.is-at-top{top:0}.sticky.is-stuck.is-at-bottom{bottom:0}.sticky.is-anchored{position:relative;right:auto;left:auto}.sticky.is-anchored.is-at-bottom{bottom:0}.grid-container{padding-right:.9375rem;padding-left:.9375rem;max-width:62.5rem;margin-left:auto;margin-right:auto}.grid-container.fluid{padding-right:.9375rem;padding-left:.9375rem;max-width:100%;margin-left:auto;margin-right:auto}.grid-container.full{padding-right:0;padding-left:0;max-width:100%;margin-left:auto;margin-right:auto}.grid-x{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap}.cell{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;min-height:0;min-width:0;width:100%}.cell.auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px}.cell.shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.auto{width:auto}.grid-x>.shrink{width:auto}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9,.grid-x>.small-full,.grid-x>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-full,.grid-x>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-full,.grid-x>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-x>.small-1,.grid-x>.small-10,.grid-x>.small-11,.grid-x>.small-12,.grid-x>.small-2,.grid-x>.small-3,.grid-x>.small-4,.grid-x>.small-5,.grid-x>.small-6,.grid-x>.small-7,.grid-x>.small-8,.grid-x>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.small-1{width:8.33333%}.grid-x>.small-2{width:16.66667%}.grid-x>.small-3{width:25%}.grid-x>.small-4{width:33.33333%}.grid-x>.small-5{width:41.66667%}.grid-x>.small-6{width:50%}.grid-x>.small-7{width:58.33333%}.grid-x>.small-8{width:66.66667%}.grid-x>.small-9{width:75%}.grid-x>.small-10{width:83.33333%}.grid-x>.small-11{width:91.66667%}.grid-x>.small-12{width:100%}@media print,screen and (min-width:40em){.grid-x>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.medium-1,.grid-x>.medium-10,.grid-x>.medium-11,.grid-x>.medium-12,.grid-x>.medium-2,.grid-x>.medium-3,.grid-x>.medium-4,.grid-x>.medium-5,.grid-x>.medium-6,.grid-x>.medium-7,.grid-x>.medium-8,.grid-x>.medium-9,.grid-x>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.medium-shrink{width:auto}.grid-x>.medium-1{width:8.33333%}.grid-x>.medium-2{width:16.66667%}.grid-x>.medium-3{width:25%}.grid-x>.medium-4{width:33.33333%}.grid-x>.medium-5{width:41.66667%}.grid-x>.medium-6{width:50%}.grid-x>.medium-7{width:58.33333%}.grid-x>.medium-8{width:66.66667%}.grid-x>.medium-9{width:75%}.grid-x>.medium-10{width:83.33333%}.grid-x>.medium-11{width:91.66667%}.grid-x>.medium-12{width:100%}}@media print,screen and (min-width:64em){.grid-x>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;width:auto}.grid-x>.large-1,.grid-x>.large-10,.grid-x>.large-11,.grid-x>.large-12,.grid-x>.large-2,.grid-x>.large-3,.grid-x>.large-4,.grid-x>.large-5,.grid-x>.large-6,.grid-x>.large-7,.grid-x>.large-8,.grid-x>.large-9,.grid-x>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-x>.large-shrink{width:auto}.grid-x>.large-1{width:8.33333%}.grid-x>.large-2{width:16.66667%}.grid-x>.large-3{width:25%}.grid-x>.large-4{width:33.33333%}.grid-x>.large-5{width:41.66667%}.grid-x>.large-6{width:50%}.grid-x>.large-7{width:58.33333%}.grid-x>.large-8{width:66.66667%}.grid-x>.large-9{width:75%}.grid-x>.large-10{width:83.33333%}.grid-x>.large-11{width:91.66667%}.grid-x>.large-12{width:100%}}.grid-margin-x:not(.grid-x)>.cell{width:auto}.grid-margin-y:not(.grid-y)>.cell{height:auto}.grid-margin-x{margin-left:-.9375rem;margin-right:-.9375rem}.grid-margin-x>.cell{width:calc(100% - 1.875rem);margin-left:.9375rem;margin-right:.9375rem}.grid-margin-x>.auto{width:auto}.grid-margin-x>.shrink{width:auto}.grid-margin-x>.small-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.small-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.small-3{width:calc(25% - 1.875rem)}.grid-margin-x>.small-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.small-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.small-6{width:calc(50% - 1.875rem)}.grid-margin-x>.small-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.small-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.small-9{width:calc(75% - 1.875rem)}.grid-margin-x>.small-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.small-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.small-12{width:calc(100% - 1.875rem)}@media print,screen and (min-width:40em){.grid-margin-x>.medium-auto{width:auto}.grid-margin-x>.medium-shrink{width:auto}.grid-margin-x>.medium-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.medium-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.medium-3{width:calc(25% - 1.875rem)}.grid-margin-x>.medium-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.medium-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.medium-6{width:calc(50% - 1.875rem)}.grid-margin-x>.medium-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.medium-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.medium-9{width:calc(75% - 1.875rem)}.grid-margin-x>.medium-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.medium-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.medium-12{width:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x>.large-auto{width:auto}.grid-margin-x>.large-shrink{width:auto}.grid-margin-x>.large-1{width:calc(8.33333% - 1.875rem)}.grid-margin-x>.large-2{width:calc(16.66667% - 1.875rem)}.grid-margin-x>.large-3{width:calc(25% - 1.875rem)}.grid-margin-x>.large-4{width:calc(33.33333% - 1.875rem)}.grid-margin-x>.large-5{width:calc(41.66667% - 1.875rem)}.grid-margin-x>.large-6{width:calc(50% - 1.875rem)}.grid-margin-x>.large-7{width:calc(58.33333% - 1.875rem)}.grid-margin-x>.large-8{width:calc(66.66667% - 1.875rem)}.grid-margin-x>.large-9{width:calc(75% - 1.875rem)}.grid-margin-x>.large-10{width:calc(83.33333% - 1.875rem)}.grid-margin-x>.large-11{width:calc(91.66667% - 1.875rem)}.grid-margin-x>.large-12{width:calc(100% - 1.875rem)}}.grid-padding-x .grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}.grid-container:not(.full)>.grid-padding-x{margin-right:-.9375rem;margin-left:-.9375rem}.grid-padding-x>.cell{padding-right:.9375rem;padding-left:.9375rem}.small-up-1>.cell{width:100%}.small-up-2>.cell{width:50%}.small-up-3>.cell{width:33.33333%}.small-up-4>.cell{width:25%}.small-up-5>.cell{width:20%}.small-up-6>.cell{width:16.66667%}.small-up-7>.cell{width:14.28571%}.small-up-8>.cell{width:12.5%}@media print,screen and (min-width:40em){.medium-up-1>.cell{width:100%}.medium-up-2>.cell{width:50%}.medium-up-3>.cell{width:33.33333%}.medium-up-4>.cell{width:25%}.medium-up-5>.cell{width:20%}.medium-up-6>.cell{width:16.66667%}.medium-up-7>.cell{width:14.28571%}.medium-up-8>.cell{width:12.5%}}@media print,screen and (min-width:64em){.large-up-1>.cell{width:100%}.large-up-2>.cell{width:50%}.large-up-3>.cell{width:33.33333%}.large-up-4>.cell{width:25%}.large-up-5>.cell{width:20%}.large-up-6>.cell{width:16.66667%}.large-up-7>.cell{width:14.28571%}.large-up-8>.cell{width:12.5%}}.grid-margin-x.small-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.small-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.small-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.small-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.small-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.small-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.small-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.small-up-8>.cell{width:calc(12.5% - 1.875rem)}@media print,screen and (min-width:40em){.grid-margin-x.medium-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.medium-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.medium-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.medium-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.medium-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.medium-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.medium-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.medium-up-8>.cell{width:calc(12.5% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-x.large-up-1>.cell{width:calc(100% - 1.875rem)}.grid-margin-x.large-up-2>.cell{width:calc(50% - 1.875rem)}.grid-margin-x.large-up-3>.cell{width:calc(33.33333% - 1.875rem)}.grid-margin-x.large-up-4>.cell{width:calc(25% - 1.875rem)}.grid-margin-x.large-up-5>.cell{width:calc(20% - 1.875rem)}.grid-margin-x.large-up-6>.cell{width:calc(16.66667% - 1.875rem)}.grid-margin-x.large-up-7>.cell{width:calc(14.28571% - 1.875rem)}.grid-margin-x.large-up-8>.cell{width:calc(12.5% - 1.875rem)}}.small-margin-collapse{margin-right:0;margin-left:0}.small-margin-collapse>.cell{margin-right:0;margin-left:0}.small-margin-collapse>.small-1{width:8.33333%}.small-margin-collapse>.small-2{width:16.66667%}.small-margin-collapse>.small-3{width:25%}.small-margin-collapse>.small-4{width:33.33333%}.small-margin-collapse>.small-5{width:41.66667%}.small-margin-collapse>.small-6{width:50%}.small-margin-collapse>.small-7{width:58.33333%}.small-margin-collapse>.small-8{width:66.66667%}.small-margin-collapse>.small-9{width:75%}.small-margin-collapse>.small-10{width:83.33333%}.small-margin-collapse>.small-11{width:91.66667%}.small-margin-collapse>.small-12{width:100%}@media print,screen and (min-width:40em){.small-margin-collapse>.medium-1{width:8.33333%}.small-margin-collapse>.medium-2{width:16.66667%}.small-margin-collapse>.medium-3{width:25%}.small-margin-collapse>.medium-4{width:33.33333%}.small-margin-collapse>.medium-5{width:41.66667%}.small-margin-collapse>.medium-6{width:50%}.small-margin-collapse>.medium-7{width:58.33333%}.small-margin-collapse>.medium-8{width:66.66667%}.small-margin-collapse>.medium-9{width:75%}.small-margin-collapse>.medium-10{width:83.33333%}.small-margin-collapse>.medium-11{width:91.66667%}.small-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.small-margin-collapse>.large-1{width:8.33333%}.small-margin-collapse>.large-2{width:16.66667%}.small-margin-collapse>.large-3{width:25%}.small-margin-collapse>.large-4{width:33.33333%}.small-margin-collapse>.large-5{width:41.66667%}.small-margin-collapse>.large-6{width:50%}.small-margin-collapse>.large-7{width:58.33333%}.small-margin-collapse>.large-8{width:66.66667%}.small-margin-collapse>.large-9{width:75%}.small-margin-collapse>.large-10{width:83.33333%}.small-margin-collapse>.large-11{width:91.66667%}.small-margin-collapse>.large-12{width:100%}}.small-padding-collapse{margin-right:0;margin-left:0}.small-padding-collapse>.cell{padding-right:0;padding-left:0}@media print,screen and (min-width:40em){.medium-margin-collapse{margin-right:0;margin-left:0}.medium-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:40em){.medium-margin-collapse>.small-1{width:8.33333%}.medium-margin-collapse>.small-2{width:16.66667%}.medium-margin-collapse>.small-3{width:25%}.medium-margin-collapse>.small-4{width:33.33333%}.medium-margin-collapse>.small-5{width:41.66667%}.medium-margin-collapse>.small-6{width:50%}.medium-margin-collapse>.small-7{width:58.33333%}.medium-margin-collapse>.small-8{width:66.66667%}.medium-margin-collapse>.small-9{width:75%}.medium-margin-collapse>.small-10{width:83.33333%}.medium-margin-collapse>.small-11{width:91.66667%}.medium-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:40em){.medium-margin-collapse>.medium-1{width:8.33333%}.medium-margin-collapse>.medium-2{width:16.66667%}.medium-margin-collapse>.medium-3{width:25%}.medium-margin-collapse>.medium-4{width:33.33333%}.medium-margin-collapse>.medium-5{width:41.66667%}.medium-margin-collapse>.medium-6{width:50%}.medium-margin-collapse>.medium-7{width:58.33333%}.medium-margin-collapse>.medium-8{width:66.66667%}.medium-margin-collapse>.medium-9{width:75%}.medium-margin-collapse>.medium-10{width:83.33333%}.medium-margin-collapse>.medium-11{width:91.66667%}.medium-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.medium-margin-collapse>.large-1{width:8.33333%}.medium-margin-collapse>.large-2{width:16.66667%}.medium-margin-collapse>.large-3{width:25%}.medium-margin-collapse>.large-4{width:33.33333%}.medium-margin-collapse>.large-5{width:41.66667%}.medium-margin-collapse>.large-6{width:50%}.medium-margin-collapse>.large-7{width:58.33333%}.medium-margin-collapse>.large-8{width:66.66667%}.medium-margin-collapse>.large-9{width:75%}.medium-margin-collapse>.large-10{width:83.33333%}.medium-margin-collapse>.large-11{width:91.66667%}.medium-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:40em){.medium-padding-collapse{margin-right:0;margin-left:0}.medium-padding-collapse>.cell{padding-right:0;padding-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse{margin-right:0;margin-left:0}.large-margin-collapse>.cell{margin-right:0;margin-left:0}}@media print,screen and (min-width:64em){.large-margin-collapse>.small-1{width:8.33333%}.large-margin-collapse>.small-2{width:16.66667%}.large-margin-collapse>.small-3{width:25%}.large-margin-collapse>.small-4{width:33.33333%}.large-margin-collapse>.small-5{width:41.66667%}.large-margin-collapse>.small-6{width:50%}.large-margin-collapse>.small-7{width:58.33333%}.large-margin-collapse>.small-8{width:66.66667%}.large-margin-collapse>.small-9{width:75%}.large-margin-collapse>.small-10{width:83.33333%}.large-margin-collapse>.small-11{width:91.66667%}.large-margin-collapse>.small-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.medium-1{width:8.33333%}.large-margin-collapse>.medium-2{width:16.66667%}.large-margin-collapse>.medium-3{width:25%}.large-margin-collapse>.medium-4{width:33.33333%}.large-margin-collapse>.medium-5{width:41.66667%}.large-margin-collapse>.medium-6{width:50%}.large-margin-collapse>.medium-7{width:58.33333%}.large-margin-collapse>.medium-8{width:66.66667%}.large-margin-collapse>.medium-9{width:75%}.large-margin-collapse>.medium-10{width:83.33333%}.large-margin-collapse>.medium-11{width:91.66667%}.large-margin-collapse>.medium-12{width:100%}}@media print,screen and (min-width:64em){.large-margin-collapse>.large-1{width:8.33333%}.large-margin-collapse>.large-2{width:16.66667%}.large-margin-collapse>.large-3{width:25%}.large-margin-collapse>.large-4{width:33.33333%}.large-margin-collapse>.large-5{width:41.66667%}.large-margin-collapse>.large-6{width:50%}.large-margin-collapse>.large-7{width:58.33333%}.large-margin-collapse>.large-8{width:66.66667%}.large-margin-collapse>.large-9{width:75%}.large-margin-collapse>.large-10{width:83.33333%}.large-margin-collapse>.large-11{width:91.66667%}.large-margin-collapse>.large-12{width:100%}}@media print,screen and (min-width:64em){.large-padding-collapse{margin-right:0;margin-left:0}.large-padding-collapse>.cell{padding-right:0;padding-left:0}}.small-offset-0{margin-left:0}.grid-margin-x>.small-offset-0{margin-left:calc(0% + .9375rem)}.small-offset-1{margin-left:8.33333%}.grid-margin-x>.small-offset-1{margin-left:calc(8.33333% + .9375rem)}.small-offset-2{margin-left:16.66667%}.grid-margin-x>.small-offset-2{margin-left:calc(16.66667% + .9375rem)}.small-offset-3{margin-left:25%}.grid-margin-x>.small-offset-3{margin-left:calc(25% + .9375rem)}.small-offset-4{margin-left:33.33333%}.grid-margin-x>.small-offset-4{margin-left:calc(33.33333% + .9375rem)}.small-offset-5{margin-left:41.66667%}.grid-margin-x>.small-offset-5{margin-left:calc(41.66667% + .9375rem)}.small-offset-6{margin-left:50%}.grid-margin-x>.small-offset-6{margin-left:calc(50% + .9375rem)}.small-offset-7{margin-left:58.33333%}.grid-margin-x>.small-offset-7{margin-left:calc(58.33333% + .9375rem)}.small-offset-8{margin-left:66.66667%}.grid-margin-x>.small-offset-8{margin-left:calc(66.66667% + .9375rem)}.small-offset-9{margin-left:75%}.grid-margin-x>.small-offset-9{margin-left:calc(75% + .9375rem)}.small-offset-10{margin-left:83.33333%}.grid-margin-x>.small-offset-10{margin-left:calc(83.33333% + .9375rem)}.small-offset-11{margin-left:91.66667%}.grid-margin-x>.small-offset-11{margin-left:calc(91.66667% + .9375rem)}@media print,screen and (min-width:40em){.medium-offset-0{margin-left:0}.grid-margin-x>.medium-offset-0{margin-left:calc(0% + .9375rem)}.medium-offset-1{margin-left:8.33333%}.grid-margin-x>.medium-offset-1{margin-left:calc(8.33333% + .9375rem)}.medium-offset-2{margin-left:16.66667%}.grid-margin-x>.medium-offset-2{margin-left:calc(16.66667% + .9375rem)}.medium-offset-3{margin-left:25%}.grid-margin-x>.medium-offset-3{margin-left:calc(25% + .9375rem)}.medium-offset-4{margin-left:33.33333%}.grid-margin-x>.medium-offset-4{margin-left:calc(33.33333% + .9375rem)}.medium-offset-5{margin-left:41.66667%}.grid-margin-x>.medium-offset-5{margin-left:calc(41.66667% + .9375rem)}.medium-offset-6{margin-left:50%}.grid-margin-x>.medium-offset-6{margin-left:calc(50% + .9375rem)}.medium-offset-7{margin-left:58.33333%}.grid-margin-x>.medium-offset-7{margin-left:calc(58.33333% + .9375rem)}.medium-offset-8{margin-left:66.66667%}.grid-margin-x>.medium-offset-8{margin-left:calc(66.66667% + .9375rem)}.medium-offset-9{margin-left:75%}.grid-margin-x>.medium-offset-9{margin-left:calc(75% + .9375rem)}.medium-offset-10{margin-left:83.33333%}.grid-margin-x>.medium-offset-10{margin-left:calc(83.33333% + .9375rem)}.medium-offset-11{margin-left:91.66667%}.grid-margin-x>.medium-offset-11{margin-left:calc(91.66667% + .9375rem)}}@media print,screen and (min-width:64em){.large-offset-0{margin-left:0}.grid-margin-x>.large-offset-0{margin-left:calc(0% + .9375rem)}.large-offset-1{margin-left:8.33333%}.grid-margin-x>.large-offset-1{margin-left:calc(8.33333% + .9375rem)}.large-offset-2{margin-left:16.66667%}.grid-margin-x>.large-offset-2{margin-left:calc(16.66667% + .9375rem)}.large-offset-3{margin-left:25%}.grid-margin-x>.large-offset-3{margin-left:calc(25% + .9375rem)}.large-offset-4{margin-left:33.33333%}.grid-margin-x>.large-offset-4{margin-left:calc(33.33333% + .9375rem)}.large-offset-5{margin-left:41.66667%}.grid-margin-x>.large-offset-5{margin-left:calc(41.66667% + .9375rem)}.large-offset-6{margin-left:50%}.grid-margin-x>.large-offset-6{margin-left:calc(50% + .9375rem)}.large-offset-7{margin-left:58.33333%}.grid-margin-x>.large-offset-7{margin-left:calc(58.33333% + .9375rem)}.large-offset-8{margin-left:66.66667%}.grid-margin-x>.large-offset-8{margin-left:calc(66.66667% + .9375rem)}.large-offset-9{margin-left:75%}.grid-margin-x>.large-offset-9{margin-left:calc(75% + .9375rem)}.large-offset-10{margin-left:83.33333%}.grid-margin-x>.large-offset-10{margin-left:calc(83.33333% + .9375rem)}.large-offset-11{margin-left:91.66667%}.grid-margin-x>.large-offset-11{margin-left:calc(91.66667% + .9375rem)}}.grid-y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-flow:column nowrap;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.grid-y>.cell{height:auto;max-height:none}.grid-y>.auto{height:auto}.grid-y>.shrink{height:auto}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9,.grid-y>.small-full,.grid-y>.small-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}@media print,screen and (min-width:40em){.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-full,.grid-y>.medium-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}@media print,screen and (min-width:64em){.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-full,.grid-y>.large-shrink{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto}}.grid-y>.small-1,.grid-y>.small-10,.grid-y>.small-11,.grid-y>.small-12,.grid-y>.small-2,.grid-y>.small-3,.grid-y>.small-4,.grid-y>.small-5,.grid-y>.small-6,.grid-y>.small-7,.grid-y>.small-8,.grid-y>.small-9{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.small-1{height:8.33333%}.grid-y>.small-2{height:16.66667%}.grid-y>.small-3{height:25%}.grid-y>.small-4{height:33.33333%}.grid-y>.small-5{height:41.66667%}.grid-y>.small-6{height:50%}.grid-y>.small-7{height:58.33333%}.grid-y>.small-8{height:66.66667%}.grid-y>.small-9{height:75%}.grid-y>.small-10{height:83.33333%}.grid-y>.small-11{height:91.66667%}.grid-y>.small-12{height:100%}@media print,screen and (min-width:40em){.grid-y>.medium-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.medium-1,.grid-y>.medium-10,.grid-y>.medium-11,.grid-y>.medium-12,.grid-y>.medium-2,.grid-y>.medium-3,.grid-y>.medium-4,.grid-y>.medium-5,.grid-y>.medium-6,.grid-y>.medium-7,.grid-y>.medium-8,.grid-y>.medium-9,.grid-y>.medium-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.medium-shrink{height:auto}.grid-y>.medium-1{height:8.33333%}.grid-y>.medium-2{height:16.66667%}.grid-y>.medium-3{height:25%}.grid-y>.medium-4{height:33.33333%}.grid-y>.medium-5{height:41.66667%}.grid-y>.medium-6{height:50%}.grid-y>.medium-7{height:58.33333%}.grid-y>.medium-8{height:66.66667%}.grid-y>.medium-9{height:75%}.grid-y>.medium-10{height:83.33333%}.grid-y>.medium-11{height:91.66667%}.grid-y>.medium-12{height:100%}}@media print,screen and (min-width:64em){.grid-y>.large-auto{-webkit-box-flex:1;-webkit-flex:1 1 0px;-ms-flex:1 1 0px;flex:1 1 0px;height:auto}.grid-y>.large-1,.grid-y>.large-10,.grid-y>.large-11,.grid-y>.large-12,.grid-y>.large-2,.grid-y>.large-3,.grid-y>.large-4,.grid-y>.large-5,.grid-y>.large-6,.grid-y>.large-7,.grid-y>.large-8,.grid-y>.large-9,.grid-y>.large-shrink{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.grid-y>.large-shrink{height:auto}.grid-y>.large-1{height:8.33333%}.grid-y>.large-2{height:16.66667%}.grid-y>.large-3{height:25%}.grid-y>.large-4{height:33.33333%}.grid-y>.large-5{height:41.66667%}.grid-y>.large-6{height:50%}.grid-y>.large-7{height:58.33333%}.grid-y>.large-8{height:66.66667%}.grid-y>.large-9{height:75%}.grid-y>.large-10{height:83.33333%}.grid-y>.large-11{height:91.66667%}.grid-y>.large-12{height:100%}}.grid-padding-y .grid-padding-y{margin-top:-.9375rem;margin-bottom:-.9375rem}.grid-padding-y>.cell{padding-top:.9375rem;padding-bottom:.9375rem}.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}@media print,screen and (min-width:40em){.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .grid-frame{width:100%}.cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}@media print,screen and (min-width:40em){.medium-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .medium-grid-frame{width:100%}.medium-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.medium-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.medium-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.medium-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}@media print,screen and (min-width:64em){.large-grid-frame{overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;width:100vw}.cell .large-grid-frame{width:100%}.large-cell-block{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.large-cell-block-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;max-height:100%}.large-cell-block-container>.grid-x{max-height:100%;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.large-cell-block-y{overflow-y:auto;max-height:100%;min-height:100%;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.grid-y.grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}@media print,screen and (min-width:40em){.grid-y.medium-grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}}@media print,screen and (min-width:64em){.grid-y.large-grid-frame{width:auto;overflow:hidden;position:relative;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch;height:100vh}}.cell .grid-y.grid-frame{height:100%}@media print,screen and (min-width:40em){.cell .grid-y.medium-grid-frame{height:100%}}@media print,screen and (min-width:64em){.cell .grid-y.large-grid-frame{height:100%}}.grid-margin-y{margin-top:-.9375rem;margin-bottom:-.9375rem}.grid-margin-y>.cell{height:calc(100% - 1.875rem);margin-top:.9375rem;margin-bottom:.9375rem}.grid-margin-y>.auto{height:auto}.grid-margin-y>.shrink{height:auto}.grid-margin-y>.small-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.small-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.small-3{height:calc(25% - 1.875rem)}.grid-margin-y>.small-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.small-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.small-6{height:calc(50% - 1.875rem)}.grid-margin-y>.small-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.small-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.small-9{height:calc(75% - 1.875rem)}.grid-margin-y>.small-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.small-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.small-12{height:calc(100% - 1.875rem)}@media print,screen and (min-width:40em){.grid-margin-y>.medium-auto{height:auto}.grid-margin-y>.medium-shrink{height:auto}.grid-margin-y>.medium-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.medium-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.medium-3{height:calc(25% - 1.875rem)}.grid-margin-y>.medium-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.medium-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.medium-6{height:calc(50% - 1.875rem)}.grid-margin-y>.medium-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.medium-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.medium-9{height:calc(75% - 1.875rem)}.grid-margin-y>.medium-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.medium-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.medium-12{height:calc(100% - 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y>.large-auto{height:auto}.grid-margin-y>.large-shrink{height:auto}.grid-margin-y>.large-1{height:calc(8.33333% - 1.875rem)}.grid-margin-y>.large-2{height:calc(16.66667% - 1.875rem)}.grid-margin-y>.large-3{height:calc(25% - 1.875rem)}.grid-margin-y>.large-4{height:calc(33.33333% - 1.875rem)}.grid-margin-y>.large-5{height:calc(41.66667% - 1.875rem)}.grid-margin-y>.large-6{height:calc(50% - 1.875rem)}.grid-margin-y>.large-7{height:calc(58.33333% - 1.875rem)}.grid-margin-y>.large-8{height:calc(66.66667% - 1.875rem)}.grid-margin-y>.large-9{height:calc(75% - 1.875rem)}.grid-margin-y>.large-10{height:calc(83.33333% - 1.875rem)}.grid-margin-y>.large-11{height:calc(91.66667% - 1.875rem)}.grid-margin-y>.large-12{height:calc(100% - 1.875rem)}}.grid-frame.grid-margin-y{height:calc(100vh + 1.875rem)}@media print,screen and (min-width:40em){.grid-margin-y.medium-grid-frame{height:calc(100vh + 1.875rem)}}@media print,screen and (min-width:64em){.grid-margin-y.large-grid-frame{height:calc(100vh + 1.875rem)}}.align-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.align-spaced{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.align-left.vertical.menu>li>a{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.align-right.vertical.menu>li>a{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.align-center.vertical.menu>li>a{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.align-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}.align-self-top{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}.align-self-bottom{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.align-middle{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.align-self-middle{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.align-stretch{-webkit-box-align:stretch;-webkit-align-items:stretch;-ms-flex-align:stretch;align-items:stretch}.align-self-stretch{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch}.align-center-middle{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center}.small-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.small-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.small-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.small-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.small-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.small-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}@media print,screen and (min-width:40em){.medium-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.medium-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.medium-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.medium-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.medium-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.medium-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}@media print,screen and (min-width:64em){.large-order-1{-webkit-box-ordinal-group:2;-webkit-order:1;-ms-flex-order:1;order:1}.large-order-2{-webkit-box-ordinal-group:3;-webkit-order:2;-ms-flex-order:2;order:2}.large-order-3{-webkit-box-ordinal-group:4;-webkit-order:3;-ms-flex-order:3;order:3}.large-order-4{-webkit-box-ordinal-group:5;-webkit-order:4;-ms-flex-order:4;order:4}.large-order-5{-webkit-box-ordinal-group:6;-webkit-order:5;-ms-flex-order:5;order:5}.large-order-6{-webkit-box-ordinal-group:7;-webkit-order:6;-ms-flex-order:6;order:6}}.flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}@media print,screen and (min-width:40em){.medium-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.medium-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.medium-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.medium-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.medium-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.medium-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.medium-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.medium-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}@media print,screen and (min-width:64em){.large-flex-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.large-flex-child-auto{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.large-flex-child-grow{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.large-flex-child-shrink{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.large-flex-dir-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.large-flex-dir-row-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.large-flex-dir-column{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.large-flex-dir-column-reverse{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}}.menu-icon{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#fefefe;-webkit-box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;box-shadow:0 7px 0 #fefefe,0 14px 0 #fefefe;content:''}.menu-icon:hover::after{background:#cacaca;-webkit-box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca;box-shadow:0 7px 0 #cacaca,0 14px 0 #cacaca}.menu-icon.dark{position:relative;display:inline-block;vertical-align:middle;width:20px;height:16px;cursor:pointer}.menu-icon.dark::after{position:absolute;top:0;left:0;display:block;width:100%;height:2px;background:#0a0a0a;-webkit-box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;box-shadow:0 7px 0 #0a0a0a,0 14px 0 #0a0a0a;content:''}.menu-icon.dark:hover::after{background:#8a8a8a;-webkit-box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a;box-shadow:0 7px 0 #8a8a8a,0 14px 0 #8a8a8a}.slide-in-down.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-in-down.mui-enter.mui-enter-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.slide-in-left.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-in-left.mui-enter.mui-enter-active{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.slide-in-up.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-in-up.mui-enter.mui-enter-active{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}.slide-in-right.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-in-right.mui-enter.mui-enter-active{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.slide-out-down.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-out-down.mui-leave.mui-leave-active{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%)}.slide-out-right.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-out-right.mui-leave.mui-leave-active{-webkit-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%)}.slide-out-up.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-out-up.mui-leave.mui-leave-active{-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.slide-out-left.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;-webkit-backface-visibility:hidden;backface-visibility:hidden}.slide-out-left.mui-leave.mui-leave-active{-webkit-transform:translateX(-100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.fade-in.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;opacity:0;-webkit-transition-property:opacity;transition-property:opacity}.fade-in.mui-enter.mui-enter-active{opacity:1}.fade-out.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;opacity:1;-webkit-transition-property:opacity;transition-property:opacity}.fade-out.mui-leave.mui-leave-active{opacity:0}.hinge-in-from-top.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.hinge-in-from-top.mui-enter.mui-enter-active{-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-right.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);-webkit-transform-origin:right;-ms-transform-origin:right;transform-origin:right;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.hinge-in-from-right.mui-enter.mui-enter-active{-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-bottom.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotateX(90deg);transform:perspective(2000px) rotateX(90deg);-webkit-transform-origin:bottom;-ms-transform-origin:bottom;transform-origin:bottom;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.hinge-in-from-bottom.mui-enter.mui-enter-active{-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-left.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);-webkit-transform-origin:left;-ms-transform-origin:left;transform-origin:left;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.hinge-in-from-left.mui-enter.mui-enter-active{-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-middle-x.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.hinge-in-from-middle-x.mui-enter.mui-enter-active{-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);opacity:1}.hinge-in-from-middle-y.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.hinge-in-from-middle-y.mui-enter.mui-enter-active{-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);opacity:1}.hinge-out-from-top.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);-webkit-transform-origin:top;-ms-transform-origin:top;transform-origin:top;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.hinge-out-from-top.mui-leave.mui-leave-active{-webkit-transform:perspective(2000px) rotateX(90deg);transform:perspective(2000px) rotateX(90deg);opacity:0}.hinge-out-from-right.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);-webkit-transform-origin:right;-ms-transform-origin:right;transform-origin:right;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.hinge-out-from-right.mui-leave.mui-leave-active{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}.hinge-out-from-bottom.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);-webkit-transform-origin:bottom;-ms-transform-origin:bottom;transform-origin:bottom;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.hinge-out-from-bottom.mui-leave.mui-leave-active{-webkit-transform:perspective(2000px) rotateX(-90deg);transform:perspective(2000px) rotateX(-90deg);opacity:0}.hinge-out-from-left.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);-webkit-transform-origin:left;-ms-transform-origin:left;transform-origin:left;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.hinge-out-from-left.mui-leave.mui-leave-active{-webkit-transform:perspective(2000px) rotateY(-90deg);transform:perspective(2000px) rotateY(-90deg);opacity:0}.hinge-out-from-middle-x.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.hinge-out-from-middle-x.mui-leave.mui-leave-active{-webkit-transform:perspective(2000px) rotateX(90deg);transform:perspective(2000px) rotateX(90deg);opacity:0}.hinge-out-from-middle-y.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:perspective(2000px) rotate(0);transform:perspective(2000px) rotate(0);-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.hinge-out-from-middle-y.mui-leave.mui-leave-active{-webkit-transform:perspective(2000px) rotateY(90deg);transform:perspective(2000px) rotateY(90deg);opacity:0}.scale-in-up.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.scale-in-up.mui-enter.mui-enter-active{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.scale-in-down.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.scale-in-down.mui-enter.mui-enter-active{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);opacity:1}.scale-out-up.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.scale-out-up.mui-leave.mui-leave-active{-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5);opacity:0}.scale-out-down.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.scale-out-down.mui-leave.mui-leave-active{-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5);opacity:0}.spin-in.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:rotate(-.75turn);-ms-transform:rotate(-.75turn);transform:rotate(-.75turn);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.spin-in.mui-enter.mui-enter-active{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.spin-out.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.spin-out.mui-leave.mui-leave-active{-webkit-transform:rotate(.75turn);-ms-transform:rotate(.75turn);transform:rotate(.75turn);opacity:0}.spin-in-ccw.mui-enter{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:rotate(.75turn);-ms-transform:rotate(.75turn);transform:rotate(.75turn);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:0}.spin-in-ccw.mui-enter.mui-enter-active{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);opacity:1}.spin-out-ccw.mui-leave{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0);-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform;opacity:1}.spin-out-ccw.mui-leave.mui-leave-active{-webkit-transform:rotate(-.75turn);-ms-transform:rotate(-.75turn);transform:rotate(-.75turn);opacity:0}.slow{-webkit-transition-duration:750ms!important;transition-duration:750ms!important}.fast{-webkit-transition-duration:250ms!important;transition-duration:250ms!important}.linear{-webkit-transition-timing-function:linear!important;transition-timing-function:linear!important}.ease{-webkit-transition-timing-function:ease!important;transition-timing-function:ease!important}.ease-in{-webkit-transition-timing-function:ease-in!important;transition-timing-function:ease-in!important}.ease-out{-webkit-transition-timing-function:ease-out!important;transition-timing-function:ease-out!important}.ease-in-out{-webkit-transition-timing-function:ease-in-out!important;transition-timing-function:ease-in-out!important}.bounce-in{-webkit-transition-timing-function:cubic-bezier(.485,.155,.24,1.245)!important;transition-timing-function:cubic-bezier(.485,.155,.24,1.245)!important}.bounce-out{-webkit-transition-timing-function:cubic-bezier(.485,.155,.515,.845)!important;transition-timing-function:cubic-bezier(.485,.155,.515,.845)!important}.bounce-in-out{-webkit-transition-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important;transition-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important}.short-delay{-webkit-transition-delay:.3s!important;transition-delay:.3s!important}.long-delay{-webkit-transition-delay:.7s!important;transition-delay:.7s!important}.shake{-webkit-animation-name:shake-7;animation-name:shake-7}@-webkit-keyframes shake-7{0%,10%,20%,30%,40%,50%,60%,70%,80%,90%{-webkit-transform:translateX(7%);transform:translateX(7%)}15%,25%,35%,45%,5%,55%,65%,75%,85%,95%{-webkit-transform:translateX(-7%);transform:translateX(-7%)}}@keyframes shake-7{0%,10%,20%,30%,40%,50%,60%,70%,80%,90%{-webkit-transform:translateX(7%);transform:translateX(7%)}15%,25%,35%,45%,5%,55%,65%,75%,85%,95%{-webkit-transform:translateX(-7%);transform:translateX(-7%)}}.spin-cw{-webkit-animation-name:spin-cw-1turn;animation-name:spin-cw-1turn}@-webkit-keyframes spin-cw-1turn{0%{-webkit-transform:rotate(-1turn);transform:rotate(-1turn)}100%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes spin-cw-1turn{0%{-webkit-transform:rotate(-1turn);transform:rotate(-1turn)}100%{-webkit-transform:rotate(0);transform:rotate(0)}}.spin-ccw{-webkit-animation-name:spin-ccw-1turn;animation-name:spin-ccw-1turn}@-webkit-keyframes spin-ccw-1turn{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-1turn);transform:rotate(-1turn)}}@keyframes spin-ccw-1turn{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-1turn);transform:rotate(-1turn)}}.wiggle{-webkit-animation-name:wiggle-7deg;animation-name:wiggle-7deg}@-webkit-keyframes wiggle-7deg{40%,50%,60%{-webkit-transform:rotate(7deg);transform:rotate(7deg)}35%,45%,55%,65%{-webkit-transform:rotate(-7deg);transform:rotate(-7deg)}0%,100%,30%,70%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes wiggle-7deg{40%,50%,60%{-webkit-transform:rotate(7deg);transform:rotate(7deg)}35%,45%,55%,65%{-webkit-transform:rotate(-7deg);transform:rotate(-7deg)}0%,100%,30%,70%{-webkit-transform:rotate(0);transform:rotate(0)}}.shake,.spin-ccw,.spin-cw,.wiggle{-webkit-animation-duration:.5s;animation-duration:.5s}.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.slow{-webkit-animation-duration:750ms!important;animation-duration:750ms!important}.fast{-webkit-animation-duration:250ms!important;animation-duration:250ms!important}.linear{-webkit-animation-timing-function:linear!important;animation-timing-function:linear!important}.ease{-webkit-animation-timing-function:ease!important;animation-timing-function:ease!important}.ease-in{-webkit-animation-timing-function:ease-in!important;animation-timing-function:ease-in!important}.ease-out{-webkit-animation-timing-function:ease-out!important;animation-timing-function:ease-out!important}.ease-in-out{-webkit-animation-timing-function:ease-in-out!important;animation-timing-function:ease-in-out!important}.bounce-in{-webkit-animation-timing-function:cubic-bezier(.485,.155,.24,1.245)!important;animation-timing-function:cubic-bezier(.485,.155,.24,1.245)!important}.bounce-out{-webkit-animation-timing-function:cubic-bezier(.485,.155,.515,.845)!important;animation-timing-function:cubic-bezier(.485,.155,.515,.845)!important}.bounce-in-out{-webkit-animation-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important;animation-timing-function:cubic-bezier(.76,-.245,.24,1.245)!important}.short-delay{-webkit-animation-delay:.3s!important;animation-delay:.3s!important}.long-delay{-webkit-animation-delay:.7s!important;animation-delay:.7s!important}
\ No newline at end of file
diff --git a/MessagesMap/css/leaflet.css b/MessagesMap/css/leaflet.css
new file mode 100644
index 000000000..017fa0e4c
--- /dev/null
+++ b/MessagesMap/css/leaflet.css
@@ -0,0 +1,640 @@
+/* required styles */
+
+.leaflet-pane,
+.leaflet-tile,
+.leaflet-marker-icon,
+.leaflet-marker-shadow,
+.leaflet-tile-container,
+.leaflet-pane > svg,
+.leaflet-pane > canvas,
+.leaflet-zoom-box,
+.leaflet-image-layer,
+.leaflet-layer {
+ position: absolute;
+ left: 0;
+ top: 0;
+ }
+.leaflet-container {
+ overflow: hidden;
+ }
+.leaflet-tile,
+.leaflet-marker-icon,
+.leaflet-marker-shadow {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+ -webkit-user-drag: none;
+ }
+/* Prevents IE11 from highlighting tiles in blue */
+.leaflet-tile::selection {
+ background: transparent;
+}
+/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
+.leaflet-safari .leaflet-tile {
+ image-rendering: -webkit-optimize-contrast;
+ }
+/* hack that prevents hw layers "stretching" when loading new tiles */
+.leaflet-safari .leaflet-tile-container {
+ width: 1600px;
+ height: 1600px;
+ -webkit-transform-origin: 0 0;
+ }
+.leaflet-marker-icon,
+.leaflet-marker-shadow {
+ display: block;
+ }
+/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
+/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
+.leaflet-container .leaflet-overlay-pane svg,
+.leaflet-container .leaflet-marker-pane img,
+.leaflet-container .leaflet-shadow-pane img,
+.leaflet-container .leaflet-tile-pane img,
+.leaflet-container img.leaflet-image-layer,
+.leaflet-container .leaflet-tile {
+ max-width: none !important;
+ max-height: none !important;
+ }
+
+.leaflet-container.leaflet-touch-zoom {
+ -ms-touch-action: pan-x pan-y;
+ touch-action: pan-x pan-y;
+ }
+.leaflet-container.leaflet-touch-drag {
+ -ms-touch-action: pinch-zoom;
+ /* Fallback for FF which doesn't support pinch-zoom */
+ touch-action: none;
+ touch-action: pinch-zoom;
+}
+.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
+ -ms-touch-action: none;
+ touch-action: none;
+}
+.leaflet-container {
+ -webkit-tap-highlight-color: transparent;
+}
+.leaflet-container a {
+ -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
+}
+.leaflet-tile {
+ filter: inherit;
+ visibility: hidden;
+ }
+.leaflet-tile-loaded {
+ visibility: inherit;
+ }
+.leaflet-zoom-box {
+ width: 0;
+ height: 0;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ z-index: 800;
+ }
+/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
+.leaflet-overlay-pane svg {
+ -moz-user-select: none;
+ }
+
+.leaflet-pane { z-index: 400; }
+
+.leaflet-tile-pane { z-index: 200; }
+.leaflet-overlay-pane { z-index: 400; }
+.leaflet-shadow-pane { z-index: 500; }
+.leaflet-marker-pane { z-index: 600; }
+.leaflet-tooltip-pane { z-index: 650; }
+.leaflet-popup-pane { z-index: 700; }
+
+.leaflet-map-pane canvas { z-index: 100; }
+.leaflet-map-pane svg { z-index: 200; }
+
+.leaflet-vml-shape {
+ width: 1px;
+ height: 1px;
+ }
+.lvml {
+ behavior: url(#default#VML);
+ display: inline-block;
+ position: absolute;
+ }
+
+
+/* control positioning */
+
+.leaflet-control {
+ position: relative;
+ z-index: 800;
+ pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
+ pointer-events: auto;
+ }
+.leaflet-top,
+.leaflet-bottom {
+ position: absolute;
+ z-index: 1000;
+ pointer-events: none;
+ }
+.leaflet-top {
+ top: 0;
+ }
+.leaflet-right {
+ right: 0;
+ }
+.leaflet-bottom {
+ bottom: 0;
+ }
+.leaflet-left {
+ left: 0;
+ }
+.leaflet-control {
+ float: left;
+ clear: both;
+ }
+.leaflet-right .leaflet-control {
+ float: right;
+ }
+.leaflet-top .leaflet-control {
+ margin-top: 10px;
+ }
+.leaflet-bottom .leaflet-control {
+ margin-bottom: 10px;
+ }
+.leaflet-left .leaflet-control {
+ margin-left: 10px;
+ }
+.leaflet-right .leaflet-control {
+ margin-right: 10px;
+ }
+
+
+/* zoom and fade animations */
+
+.leaflet-fade-anim .leaflet-tile {
+ will-change: opacity;
+ }
+.leaflet-fade-anim .leaflet-popup {
+ opacity: 0;
+ -webkit-transition: opacity 0.2s linear;
+ -moz-transition: opacity 0.2s linear;
+ transition: opacity 0.2s linear;
+ }
+.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
+ opacity: 1;
+ }
+.leaflet-zoom-animated {
+ -webkit-transform-origin: 0 0;
+ -ms-transform-origin: 0 0;
+ transform-origin: 0 0;
+ }
+.leaflet-zoom-anim .leaflet-zoom-animated {
+ will-change: transform;
+ }
+.leaflet-zoom-anim .leaflet-zoom-animated {
+ -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
+ -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
+ transition: transform 0.25s cubic-bezier(0,0,0.25,1);
+ }
+.leaflet-zoom-anim .leaflet-tile,
+.leaflet-pan-anim .leaflet-tile {
+ -webkit-transition: none;
+ -moz-transition: none;
+ transition: none;
+ }
+
+.leaflet-zoom-anim .leaflet-zoom-hide {
+ visibility: hidden;
+ }
+
+
+/* cursors */
+
+.leaflet-interactive {
+ cursor: pointer;
+ }
+.leaflet-grab {
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+ cursor: grab;
+ }
+.leaflet-crosshair,
+.leaflet-crosshair .leaflet-interactive {
+ cursor: crosshair;
+ }
+.leaflet-popup-pane,
+.leaflet-control {
+ cursor: auto;
+ }
+.leaflet-dragging .leaflet-grab,
+.leaflet-dragging .leaflet-grab .leaflet-interactive,
+.leaflet-dragging .leaflet-marker-draggable {
+ cursor: move;
+ cursor: -webkit-grabbing;
+ cursor: -moz-grabbing;
+ cursor: grabbing;
+ }
+
+/* marker & overlays interactivity */
+.leaflet-marker-icon,
+.leaflet-marker-shadow,
+.leaflet-image-layer,
+.leaflet-pane > svg path,
+.leaflet-tile-container {
+ pointer-events: none;
+ }
+
+.leaflet-marker-icon.leaflet-interactive,
+.leaflet-image-layer.leaflet-interactive,
+.leaflet-pane > svg path.leaflet-interactive,
+svg.leaflet-image-layer.leaflet-interactive path {
+ pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
+ pointer-events: auto;
+ }
+
+/* visual tweaks */
+
+.leaflet-container {
+ background: #ddd;
+ outline: 0;
+ }
+.leaflet-container a {
+ color: #0078A8;
+ }
+.leaflet-container a.leaflet-active {
+ outline: 2px solid orange;
+ }
+.leaflet-zoom-box {
+ border: 2px dotted #38f;
+ background: rgba(255,255,255,0.5);
+ }
+
+
+/* general typography */
+.leaflet-container {
+ font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
+ }
+
+
+/* general toolbar styles */
+
+.leaflet-bar {
+ box-shadow: 0 1px 5px rgba(0,0,0,0.65);
+ border-radius: 4px;
+ }
+.leaflet-bar a,
+.leaflet-bar a:hover {
+ background-color: #fff;
+ border-bottom: 1px solid #ccc;
+ width: 26px;
+ height: 26px;
+ line-height: 26px;
+ display: block;
+ text-align: center;
+ text-decoration: none;
+ color: black;
+ }
+.leaflet-bar a,
+.leaflet-control-layers-toggle {
+ background-position: 50% 50%;
+ background-repeat: no-repeat;
+ display: block;
+ }
+.leaflet-bar a:hover {
+ background-color: #f4f4f4;
+ }
+.leaflet-bar a:first-child {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ }
+.leaflet-bar a:last-child {
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ border-bottom: none;
+ }
+.leaflet-bar a.leaflet-disabled {
+ cursor: default;
+ background-color: #f4f4f4;
+ color: #bbb;
+ }
+
+.leaflet-touch .leaflet-bar a {
+ width: 30px;
+ height: 30px;
+ line-height: 30px;
+ }
+.leaflet-touch .leaflet-bar a:first-child {
+ border-top-left-radius: 2px;
+ border-top-right-radius: 2px;
+ }
+.leaflet-touch .leaflet-bar a:last-child {
+ border-bottom-left-radius: 2px;
+ border-bottom-right-radius: 2px;
+ }
+
+/* zoom control */
+
+.leaflet-control-zoom-in,
+.leaflet-control-zoom-out {
+ font: bold 18px 'Lucida Console', Monaco, monospace;
+ text-indent: 1px;
+ }
+
+.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
+ font-size: 22px;
+ }
+
+
+/* layers control */
+
+.leaflet-control-layers {
+ box-shadow: 0 1px 5px rgba(0,0,0,0.4);
+ background: #fff;
+ border-radius: 5px;
+ }
+.leaflet-control-layers-toggle {
+ background-image: url(images/layers.png);
+ width: 36px;
+ height: 36px;
+ }
+.leaflet-retina .leaflet-control-layers-toggle {
+ background-image: url(images/layers-2x.png);
+ background-size: 26px 26px;
+ }
+.leaflet-touch .leaflet-control-layers-toggle {
+ width: 44px;
+ height: 44px;
+ }
+.leaflet-control-layers .leaflet-control-layers-list,
+.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
+ display: none;
+ }
+.leaflet-control-layers-expanded .leaflet-control-layers-list {
+ display: block;
+ position: relative;
+ }
+.leaflet-control-layers-expanded {
+ padding: 6px 10px 6px 6px;
+ color: #333;
+ background: #fff;
+ }
+.leaflet-control-layers-scrollbar {
+ overflow-y: scroll;
+ overflow-x: hidden;
+ padding-right: 5px;
+ }
+.leaflet-control-layers-selector {
+ margin-top: 2px;
+ position: relative;
+ top: 1px;
+ }
+.leaflet-control-layers label {
+ display: block;
+ }
+.leaflet-control-layers-separator {
+ height: 0;
+ border-top: 1px solid #ddd;
+ margin: 5px -10px 5px -6px;
+ }
+
+/* Default icon URLs */
+.leaflet-default-icon-path {
+ background-image: url(images/marker-icon.png);
+ }
+
+
+/* attribution and scale controls */
+
+.leaflet-container .leaflet-control-attribution {
+ background: #fff;
+ background: rgba(255, 255, 255, 0.7);
+ margin: 0;
+ }
+.leaflet-control-attribution,
+.leaflet-control-scale-line {
+ padding: 0 5px;
+ color: #333;
+ }
+.leaflet-control-attribution a {
+ text-decoration: none;
+ }
+.leaflet-control-attribution a:hover {
+ text-decoration: underline;
+ }
+.leaflet-container .leaflet-control-attribution,
+.leaflet-container .leaflet-control-scale {
+ font-size: 11px;
+ }
+.leaflet-left .leaflet-control-scale {
+ margin-left: 5px;
+ }
+.leaflet-bottom .leaflet-control-scale {
+ margin-bottom: 5px;
+ }
+.leaflet-control-scale-line {
+ border: 2px solid #777;
+ border-top: none;
+ line-height: 1.1;
+ padding: 2px 5px 1px;
+ font-size: 11px;
+ white-space: nowrap;
+ overflow: hidden;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+
+ background: #fff;
+ background: rgba(255, 255, 255, 0.5);
+ }
+.leaflet-control-scale-line:not(:first-child) {
+ border-top: 2px solid #777;
+ border-bottom: none;
+ margin-top: -2px;
+ }
+.leaflet-control-scale-line:not(:first-child):not(:last-child) {
+ border-bottom: 2px solid #777;
+ }
+
+.leaflet-touch .leaflet-control-attribution,
+.leaflet-touch .leaflet-control-layers,
+.leaflet-touch .leaflet-bar {
+ box-shadow: none;
+ }
+.leaflet-touch .leaflet-control-layers,
+.leaflet-touch .leaflet-bar {
+ border: 2px solid rgba(0,0,0,0.2);
+ background-clip: padding-box;
+ }
+
+
+/* popup */
+
+.leaflet-popup {
+ position: absolute;
+ text-align: center;
+ margin-bottom: 20px;
+ }
+.leaflet-popup-content-wrapper {
+ padding: 1px;
+ text-align: left;
+ border-radius: 12px;
+ }
+.leaflet-popup-content {
+ margin: 13px 19px;
+ line-height: 1.4;
+ }
+.leaflet-popup-content p {
+ margin: 18px 0;
+ }
+.leaflet-popup-tip-container {
+ width: 40px;
+ height: 20px;
+ position: absolute;
+ left: 50%;
+ margin-left: -20px;
+ overflow: hidden;
+ pointer-events: none;
+ }
+.leaflet-popup-tip {
+ width: 17px;
+ height: 17px;
+ padding: 1px;
+
+ margin: -10px auto 0;
+
+ -webkit-transform: rotate(45deg);
+ -moz-transform: rotate(45deg);
+ -ms-transform: rotate(45deg);
+ transform: rotate(45deg);
+ }
+.leaflet-popup-content-wrapper,
+.leaflet-popup-tip {
+ background: white;
+ color: #333;
+ box-shadow: 0 3px 14px rgba(0,0,0,0.4);
+ }
+.leaflet-container a.leaflet-popup-close-button {
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding: 4px 4px 0 0;
+ border: none;
+ text-align: center;
+ width: 18px;
+ height: 14px;
+ font: 16px/14px Tahoma, Verdana, sans-serif;
+ color: #c3c3c3;
+ text-decoration: none;
+ font-weight: bold;
+ background: transparent;
+ }
+.leaflet-container a.leaflet-popup-close-button:hover {
+ color: #999;
+ }
+.leaflet-popup-scrolled {
+ overflow: auto;
+ border-bottom: 1px solid #ddd;
+ border-top: 1px solid #ddd;
+ }
+
+.leaflet-oldie .leaflet-popup-content-wrapper {
+ -ms-zoom: 1;
+ }
+.leaflet-oldie .leaflet-popup-tip {
+ width: 24px;
+ margin: 0 auto;
+
+ -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
+ filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
+ }
+.leaflet-oldie .leaflet-popup-tip-container {
+ margin-top: -1px;
+ }
+
+.leaflet-oldie .leaflet-control-zoom,
+.leaflet-oldie .leaflet-control-layers,
+.leaflet-oldie .leaflet-popup-content-wrapper,
+.leaflet-oldie .leaflet-popup-tip {
+ border: 1px solid #999;
+ }
+
+
+/* div icon */
+
+.leaflet-div-icon {
+ background: #fff;
+ border: 1px solid #666;
+ }
+
+
+/* Tooltip */
+/* Base styles for the element that has a tooltip */
+.leaflet-tooltip {
+ position: absolute;
+ padding: 6px;
+ background-color: #fff;
+ border: 1px solid #fff;
+ border-radius: 3px;
+ color: #222;
+ white-space: nowrap;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ pointer-events: none;
+ box-shadow: 0 1px 3px rgba(0,0,0,0.4);
+ }
+.leaflet-tooltip.leaflet-clickable {
+ cursor: pointer;
+ pointer-events: auto;
+ }
+.leaflet-tooltip-top:before,
+.leaflet-tooltip-bottom:before,
+.leaflet-tooltip-left:before,
+.leaflet-tooltip-right:before {
+ position: absolute;
+ pointer-events: none;
+ border: 6px solid transparent;
+ background: transparent;
+ content: "";
+ }
+
+/* Directions */
+
+.leaflet-tooltip-bottom {
+ margin-top: 6px;
+}
+.leaflet-tooltip-top {
+ margin-top: -6px;
+}
+.leaflet-tooltip-bottom:before,
+.leaflet-tooltip-top:before {
+ left: 50%;
+ margin-left: -6px;
+ }
+.leaflet-tooltip-top:before {
+ bottom: 0;
+ margin-bottom: -12px;
+ border-top-color: #fff;
+ }
+.leaflet-tooltip-bottom:before {
+ top: 0;
+ margin-top: -12px;
+ margin-left: -6px;
+ border-bottom-color: #fff;
+ }
+.leaflet-tooltip-left {
+ margin-left: -6px;
+}
+.leaflet-tooltip-right {
+ margin-left: 6px;
+}
+.leaflet-tooltip-left:before,
+.leaflet-tooltip-right:before {
+ top: 50%;
+ margin-top: -6px;
+ }
+.leaflet-tooltip-left:before {
+ right: 0;
+ margin-right: -12px;
+ border-left-color: #fff;
+ }
+.leaflet-tooltip-right:before {
+ left: 0;
+ margin-left: -12px;
+ border-right-color: #fff;
+ }
diff --git a/MessagesMap/css/style.css b/MessagesMap/css/style.css
new file mode 100644
index 000000000..e69de29bb
diff --git a/MessagesMap/css/svgs/fi-address-book.svg b/MessagesMap/css/svgs/fi-address-book.svg
new file mode 100644
index 000000000..803c41b59
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-address-book.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-alert.svg b/MessagesMap/css/svgs/fi-alert.svg
new file mode 100644
index 000000000..bef63b8fd
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-alert.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-align-center.svg b/MessagesMap/css/svgs/fi-align-center.svg
new file mode 100644
index 000000000..045775363
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-align-center.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-align-justify.svg b/MessagesMap/css/svgs/fi-align-justify.svg
new file mode 100644
index 000000000..4a1099648
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-align-justify.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-align-left.svg b/MessagesMap/css/svgs/fi-align-left.svg
new file mode 100644
index 000000000..705d0a678
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-align-left.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-align-right.svg b/MessagesMap/css/svgs/fi-align-right.svg
new file mode 100644
index 000000000..c2bc676c7
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-align-right.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-anchor.svg b/MessagesMap/css/svgs/fi-anchor.svg
new file mode 100644
index 000000000..204db4350
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-anchor.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-annotate.svg b/MessagesMap/css/svgs/fi-annotate.svg
new file mode 100644
index 000000000..72bcfcb48
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-annotate.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-archive.svg b/MessagesMap/css/svgs/fi-archive.svg
new file mode 100644
index 000000000..4fcc82a21
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-archive.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-arrow-down.svg b/MessagesMap/css/svgs/fi-arrow-down.svg
new file mode 100644
index 000000000..53cb1a927
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-arrow-down.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-arrow-left.svg b/MessagesMap/css/svgs/fi-arrow-left.svg
new file mode 100644
index 000000000..c0c4d72f2
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-arrow-left.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-arrow-right.svg b/MessagesMap/css/svgs/fi-arrow-right.svg
new file mode 100644
index 000000000..9da35e9b4
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-arrow-right.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-arrow-up.svg b/MessagesMap/css/svgs/fi-arrow-up.svg
new file mode 100644
index 000000000..8a67d80e5
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-arrow-up.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-arrows-compress.svg b/MessagesMap/css/svgs/fi-arrows-compress.svg
new file mode 100644
index 000000000..51c2a1ee7
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-arrows-compress.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-arrows-expand.svg b/MessagesMap/css/svgs/fi-arrows-expand.svg
new file mode 100644
index 000000000..9da2447b4
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-arrows-expand.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-arrows-in.svg b/MessagesMap/css/svgs/fi-arrows-in.svg
new file mode 100644
index 000000000..819c99ea2
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-arrows-in.svg
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-arrows-out.svg b/MessagesMap/css/svgs/fi-arrows-out.svg
new file mode 100644
index 000000000..8c00d5e66
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-arrows-out.svg
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-asl.svg b/MessagesMap/css/svgs/fi-asl.svg
new file mode 100644
index 000000000..c2e5dfe10
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-asl.svg
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-asterisk.svg b/MessagesMap/css/svgs/fi-asterisk.svg
new file mode 100644
index 000000000..6c9c3c754
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-asterisk.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-at-sign.svg b/MessagesMap/css/svgs/fi-at-sign.svg
new file mode 100644
index 000000000..c3c3cde5c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-at-sign.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-background-color.svg b/MessagesMap/css/svgs/fi-background-color.svg
new file mode 100644
index 000000000..7e927749d
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-background-color.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-battery-empty.svg b/MessagesMap/css/svgs/fi-battery-empty.svg
new file mode 100644
index 000000000..0f0159276
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-battery-empty.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-battery-full.svg b/MessagesMap/css/svgs/fi-battery-full.svg
new file mode 100644
index 000000000..53ce92eb8
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-battery-full.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-battery-half.svg b/MessagesMap/css/svgs/fi-battery-half.svg
new file mode 100644
index 000000000..43014ece9
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-battery-half.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-bitcoin-circle.svg b/MessagesMap/css/svgs/fi-bitcoin-circle.svg
new file mode 100644
index 000000000..19e7b3bd1
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-bitcoin-circle.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-bitcoin.svg b/MessagesMap/css/svgs/fi-bitcoin.svg
new file mode 100644
index 000000000..2fb56e0f3
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-bitcoin.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-blind.svg b/MessagesMap/css/svgs/fi-blind.svg
new file mode 100644
index 000000000..a77a6e79c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-blind.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-bluetooth.svg b/MessagesMap/css/svgs/fi-bluetooth.svg
new file mode 100644
index 000000000..301376262
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-bluetooth.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-bold.svg b/MessagesMap/css/svgs/fi-bold.svg
new file mode 100644
index 000000000..87238c772
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-bold.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-book-bookmark.svg b/MessagesMap/css/svgs/fi-book-bookmark.svg
new file mode 100644
index 000000000..8d452be67
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-book-bookmark.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-book.svg b/MessagesMap/css/svgs/fi-book.svg
new file mode 100644
index 000000000..cdfea0a68
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-book.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-bookmark.svg b/MessagesMap/css/svgs/fi-bookmark.svg
new file mode 100644
index 000000000..d2ca51575
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-bookmark.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-braille.svg b/MessagesMap/css/svgs/fi-braille.svg
new file mode 100644
index 000000000..769b63908
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-braille.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-burst-new.svg b/MessagesMap/css/svgs/fi-burst-new.svg
new file mode 100644
index 000000000..8c1939f7a
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-burst-new.svg
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-burst-sale.svg b/MessagesMap/css/svgs/fi-burst-sale.svg
new file mode 100644
index 000000000..88d573688
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-burst-sale.svg
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-burst.svg b/MessagesMap/css/svgs/fi-burst.svg
new file mode 100644
index 000000000..1da7b9d9a
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-burst.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-calendar.svg b/MessagesMap/css/svgs/fi-calendar.svg
new file mode 100644
index 000000000..3b11eab65
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-calendar.svg
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-camera.svg b/MessagesMap/css/svgs/fi-camera.svg
new file mode 100644
index 000000000..d787172ab
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-camera.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-check.svg b/MessagesMap/css/svgs/fi-check.svg
new file mode 100644
index 000000000..5179421fd
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-check.svg
@@ -0,0 +1,10 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-checkbox.svg b/MessagesMap/css/svgs/fi-checkbox.svg
new file mode 100644
index 000000000..d780b7a82
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-checkbox.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-clipboard-notes.svg b/MessagesMap/css/svgs/fi-clipboard-notes.svg
new file mode 100644
index 000000000..1ce072b7d
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-clipboard-notes.svg
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-clipboard-pencil.svg b/MessagesMap/css/svgs/fi-clipboard-pencil.svg
new file mode 100644
index 000000000..0292f51b1
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-clipboard-pencil.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-clipboard.svg b/MessagesMap/css/svgs/fi-clipboard.svg
new file mode 100644
index 000000000..6bc4b0fbc
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-clipboard.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-clock.svg b/MessagesMap/css/svgs/fi-clock.svg
new file mode 100644
index 000000000..11478e13f
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-clock.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-closed-caption.svg b/MessagesMap/css/svgs/fi-closed-caption.svg
new file mode 100644
index 000000000..c0bbf5759
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-closed-caption.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-cloud.svg b/MessagesMap/css/svgs/fi-cloud.svg
new file mode 100644
index 000000000..aeb67853b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-cloud.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-comment-minus.svg b/MessagesMap/css/svgs/fi-comment-minus.svg
new file mode 100644
index 000000000..d29afacda
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-comment-minus.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-comment-quotes.svg b/MessagesMap/css/svgs/fi-comment-quotes.svg
new file mode 100644
index 000000000..d4792971f
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-comment-quotes.svg
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-comment-video.svg b/MessagesMap/css/svgs/fi-comment-video.svg
new file mode 100644
index 000000000..d4d6e3417
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-comment-video.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-comment.svg b/MessagesMap/css/svgs/fi-comment.svg
new file mode 100644
index 000000000..c4620e059
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-comment.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-comments.svg b/MessagesMap/css/svgs/fi-comments.svg
new file mode 100644
index 000000000..737e427e4
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-comments.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-compass.svg b/MessagesMap/css/svgs/fi-compass.svg
new file mode 100644
index 000000000..f343227c5
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-compass.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-contrast.svg b/MessagesMap/css/svgs/fi-contrast.svg
new file mode 100644
index 000000000..f345f19ed
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-contrast.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-credit-card.svg b/MessagesMap/css/svgs/fi-credit-card.svg
new file mode 100644
index 000000000..65257f61d
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-credit-card.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-crop.svg b/MessagesMap/css/svgs/fi-crop.svg
new file mode 100644
index 000000000..07e9d2fe9
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-crop.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-crown.svg b/MessagesMap/css/svgs/fi-crown.svg
new file mode 100644
index 000000000..f1f24a783
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-crown.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-css3.svg b/MessagesMap/css/svgs/fi-css3.svg
new file mode 100644
index 000000000..4972fc357
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-css3.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-database.svg b/MessagesMap/css/svgs/fi-database.svg
new file mode 100644
index 000000000..749397c7c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-database.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-die-five.svg b/MessagesMap/css/svgs/fi-die-five.svg
new file mode 100644
index 000000000..6269b38e9
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-die-five.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-die-four.svg b/MessagesMap/css/svgs/fi-die-four.svg
new file mode 100644
index 000000000..1caa06a81
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-die-four.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-die-one.svg b/MessagesMap/css/svgs/fi-die-one.svg
new file mode 100644
index 000000000..bd92b5293
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-die-one.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-die-six.svg b/MessagesMap/css/svgs/fi-die-six.svg
new file mode 100644
index 000000000..218e4c438
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-die-six.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-die-three.svg b/MessagesMap/css/svgs/fi-die-three.svg
new file mode 100644
index 000000000..9a2ca59a2
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-die-three.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-die-two.svg b/MessagesMap/css/svgs/fi-die-two.svg
new file mode 100644
index 000000000..1fac170dc
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-die-two.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-dislike.svg b/MessagesMap/css/svgs/fi-dislike.svg
new file mode 100644
index 000000000..9a185d897
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-dislike.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-dollar-bill.svg b/MessagesMap/css/svgs/fi-dollar-bill.svg
new file mode 100644
index 000000000..03cb2b9ee
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-dollar-bill.svg
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-dollar.svg b/MessagesMap/css/svgs/fi-dollar.svg
new file mode 100644
index 000000000..686a3a939
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-dollar.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-download.svg b/MessagesMap/css/svgs/fi-download.svg
new file mode 100644
index 000000000..121a21f36
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-download.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-eject.svg b/MessagesMap/css/svgs/fi-eject.svg
new file mode 100644
index 000000000..095eb2e65
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-eject.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-elevator.svg b/MessagesMap/css/svgs/fi-elevator.svg
new file mode 100644
index 000000000..e0de3ab6c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-elevator.svg
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-euro.svg b/MessagesMap/css/svgs/fi-euro.svg
new file mode 100644
index 000000000..21953e0ae
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-euro.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-eye.svg b/MessagesMap/css/svgs/fi-eye.svg
new file mode 100644
index 000000000..56732d730
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-eye.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-fast-forward.svg b/MessagesMap/css/svgs/fi-fast-forward.svg
new file mode 100644
index 000000000..a95fbac03
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-fast-forward.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-female-symbol.svg b/MessagesMap/css/svgs/fi-female-symbol.svg
new file mode 100644
index 000000000..e21bccc94
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-female-symbol.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-female.svg b/MessagesMap/css/svgs/fi-female.svg
new file mode 100644
index 000000000..ea6985eeb
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-female.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-filter.svg b/MessagesMap/css/svgs/fi-filter.svg
new file mode 100644
index 000000000..9baa0da3b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-filter.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-first-aid.svg b/MessagesMap/css/svgs/fi-first-aid.svg
new file mode 100644
index 000000000..60946ecfb
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-first-aid.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-flag.svg b/MessagesMap/css/svgs/fi-flag.svg
new file mode 100644
index 000000000..061bdccad
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-flag.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-folder-add.svg b/MessagesMap/css/svgs/fi-folder-add.svg
new file mode 100644
index 000000000..1391da84b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-folder-add.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-folder-lock.svg b/MessagesMap/css/svgs/fi-folder-lock.svg
new file mode 100644
index 000000000..271ef81d0
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-folder-lock.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-folder.svg b/MessagesMap/css/svgs/fi-folder.svg
new file mode 100644
index 000000000..eef46f319
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-folder.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-foot.svg b/MessagesMap/css/svgs/fi-foot.svg
new file mode 100644
index 000000000..65a529902
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-foot.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-foundation.svg b/MessagesMap/css/svgs/fi-foundation.svg
new file mode 100644
index 000000000..9926d04b5
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-foundation.svg
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-graph-bar.svg b/MessagesMap/css/svgs/fi-graph-bar.svg
new file mode 100644
index 000000000..7f0226fdc
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-graph-bar.svg
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-graph-horizontal.svg b/MessagesMap/css/svgs/fi-graph-horizontal.svg
new file mode 100644
index 000000000..65edd6476
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-graph-horizontal.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-graph-pie.svg b/MessagesMap/css/svgs/fi-graph-pie.svg
new file mode 100644
index 000000000..c9484b8ad
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-graph-pie.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-graph-trend.svg b/MessagesMap/css/svgs/fi-graph-trend.svg
new file mode 100644
index 000000000..bf75b9eff
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-graph-trend.svg
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-guide-dog.svg b/MessagesMap/css/svgs/fi-guide-dog.svg
new file mode 100644
index 000000000..c20f008ed
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-guide-dog.svg
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-hearing-aid.svg b/MessagesMap/css/svgs/fi-hearing-aid.svg
new file mode 100644
index 000000000..3298723e3
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-hearing-aid.svg
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-heart.svg b/MessagesMap/css/svgs/fi-heart.svg
new file mode 100644
index 000000000..3f90c025e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-heart.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-home.svg b/MessagesMap/css/svgs/fi-home.svg
new file mode 100644
index 000000000..94b0b9b9a
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-home.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-html5.svg b/MessagesMap/css/svgs/fi-html5.svg
new file mode 100644
index 000000000..8ca1961af
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-html5.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-indent-less.svg b/MessagesMap/css/svgs/fi-indent-less.svg
new file mode 100644
index 000000000..f3f1ff91d
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-indent-less.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-indent-more.svg b/MessagesMap/css/svgs/fi-indent-more.svg
new file mode 100644
index 000000000..83bbe803a
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-indent-more.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-info.svg b/MessagesMap/css/svgs/fi-info.svg
new file mode 100644
index 000000000..94ad4069d
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-info.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-italic.svg b/MessagesMap/css/svgs/fi-italic.svg
new file mode 100644
index 000000000..5efc8d485
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-italic.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-key.svg b/MessagesMap/css/svgs/fi-key.svg
new file mode 100644
index 000000000..c434a6967
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-key.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-laptop.svg b/MessagesMap/css/svgs/fi-laptop.svg
new file mode 100644
index 000000000..62cd20bdb
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-laptop.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-layout.svg b/MessagesMap/css/svgs/fi-layout.svg
new file mode 100644
index 000000000..41be56aab
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-layout.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-lightbulb.svg b/MessagesMap/css/svgs/fi-lightbulb.svg
new file mode 100644
index 000000000..401f6033c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-lightbulb.svg
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-like.svg b/MessagesMap/css/svgs/fi-like.svg
new file mode 100644
index 000000000..5639e629c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-like.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-link.svg b/MessagesMap/css/svgs/fi-link.svg
new file mode 100644
index 000000000..b5583cd42
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-link.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-list-bullet.svg b/MessagesMap/css/svgs/fi-list-bullet.svg
new file mode 100644
index 000000000..deeb774d7
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-list-bullet.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-list-number.svg b/MessagesMap/css/svgs/fi-list-number.svg
new file mode 100644
index 000000000..f81ae8900
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-list-number.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-list-thumbnails.svg b/MessagesMap/css/svgs/fi-list-thumbnails.svg
new file mode 100644
index 000000000..e5ef93f18
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-list-thumbnails.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-list.svg b/MessagesMap/css/svgs/fi-list.svg
new file mode 100644
index 000000000..c29a5dc6e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-list.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-lock.svg b/MessagesMap/css/svgs/fi-lock.svg
new file mode 100644
index 000000000..4d8b6016c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-lock.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-loop.svg b/MessagesMap/css/svgs/fi-loop.svg
new file mode 100644
index 000000000..bced6ad70
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-loop.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-magnifying-glass.svg b/MessagesMap/css/svgs/fi-magnifying-glass.svg
new file mode 100644
index 000000000..d4a4e3c85
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-magnifying-glass.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-mail.svg b/MessagesMap/css/svgs/fi-mail.svg
new file mode 100644
index 000000000..da03bd7cb
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-mail.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-male-female.svg b/MessagesMap/css/svgs/fi-male-female.svg
new file mode 100644
index 000000000..d9f8eeeff
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-male-female.svg
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-male-symbol.svg b/MessagesMap/css/svgs/fi-male-symbol.svg
new file mode 100644
index 000000000..98a9b129c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-male-symbol.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-male.svg b/MessagesMap/css/svgs/fi-male.svg
new file mode 100644
index 000000000..1e9ad9b36
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-male.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-map.svg b/MessagesMap/css/svgs/fi-map.svg
new file mode 100644
index 000000000..412854d60
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-map.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-marker.svg b/MessagesMap/css/svgs/fi-marker.svg
new file mode 100644
index 000000000..aa426f6ee
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-marker.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-megaphone.svg b/MessagesMap/css/svgs/fi-megaphone.svg
new file mode 100644
index 000000000..41a1de168
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-megaphone.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-microphone.svg b/MessagesMap/css/svgs/fi-microphone.svg
new file mode 100644
index 000000000..9bfb8c22d
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-microphone.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-minus-circle.svg b/MessagesMap/css/svgs/fi-minus-circle.svg
new file mode 100644
index 000000000..34009c5e8
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-minus-circle.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-minus.svg b/MessagesMap/css/svgs/fi-minus.svg
new file mode 100644
index 000000000..649493e7c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-minus.svg
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-mobile-signal.svg b/MessagesMap/css/svgs/fi-mobile-signal.svg
new file mode 100644
index 000000000..a512948be
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-mobile-signal.svg
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-mobile.svg b/MessagesMap/css/svgs/fi-mobile.svg
new file mode 100644
index 000000000..359e4c322
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-mobile.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-monitor.svg b/MessagesMap/css/svgs/fi-monitor.svg
new file mode 100644
index 000000000..86efcfdd7
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-monitor.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-mountains.svg b/MessagesMap/css/svgs/fi-mountains.svg
new file mode 100644
index 000000000..4071c62af
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-mountains.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-music.svg b/MessagesMap/css/svgs/fi-music.svg
new file mode 100644
index 000000000..65eda0300
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-music.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-next.svg b/MessagesMap/css/svgs/fi-next.svg
new file mode 100644
index 000000000..617c0495f
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-next.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-no-dogs.svg b/MessagesMap/css/svgs/fi-no-dogs.svg
new file mode 100644
index 000000000..1a103f6f0
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-no-dogs.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-no-smoking.svg b/MessagesMap/css/svgs/fi-no-smoking.svg
new file mode 100644
index 000000000..b0c6afbf6
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-no-smoking.svg
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-add.svg b/MessagesMap/css/svgs/fi-page-add.svg
new file mode 100644
index 000000000..48c5ad3c5
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-add.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-copy.svg b/MessagesMap/css/svgs/fi-page-copy.svg
new file mode 100644
index 000000000..68dd2b58a
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-copy.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-csv.svg b/MessagesMap/css/svgs/fi-page-csv.svg
new file mode 100644
index 000000000..30223c586
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-csv.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-delete.svg b/MessagesMap/css/svgs/fi-page-delete.svg
new file mode 100644
index 000000000..9be20fb00
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-delete.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-doc.svg b/MessagesMap/css/svgs/fi-page-doc.svg
new file mode 100644
index 000000000..61aef5f08
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-doc.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-edit.svg b/MessagesMap/css/svgs/fi-page-edit.svg
new file mode 100644
index 000000000..7abe5ee0e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-edit.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-export-csv.svg b/MessagesMap/css/svgs/fi-page-export-csv.svg
new file mode 100644
index 000000000..60433336e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-export-csv.svg
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-export-doc.svg b/MessagesMap/css/svgs/fi-page-export-doc.svg
new file mode 100644
index 000000000..8fd76c8a9
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-export-doc.svg
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-export-pdf.svg b/MessagesMap/css/svgs/fi-page-export-pdf.svg
new file mode 100644
index 000000000..5e3a745bf
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-export-pdf.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-export.svg b/MessagesMap/css/svgs/fi-page-export.svg
new file mode 100644
index 000000000..c2e3f7c11
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-export.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-filled.svg b/MessagesMap/css/svgs/fi-page-filled.svg
new file mode 100644
index 000000000..40df8fbd3
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-filled.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-multiple.svg b/MessagesMap/css/svgs/fi-page-multiple.svg
new file mode 100644
index 000000000..b8f737626
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-multiple.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-pdf.svg b/MessagesMap/css/svgs/fi-page-pdf.svg
new file mode 100644
index 000000000..39b0c6df5
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-pdf.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-remove.svg b/MessagesMap/css/svgs/fi-page-remove.svg
new file mode 100644
index 000000000..7bcfc7d1b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-remove.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page-search.svg b/MessagesMap/css/svgs/fi-page-search.svg
new file mode 100644
index 000000000..757ed6f22
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page-search.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-page.svg b/MessagesMap/css/svgs/fi-page.svg
new file mode 100644
index 000000000..f9057e993
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-page.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-paint-bucket.svg b/MessagesMap/css/svgs/fi-paint-bucket.svg
new file mode 100644
index 000000000..3d8be6576
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-paint-bucket.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-paperclip.svg b/MessagesMap/css/svgs/fi-paperclip.svg
new file mode 100644
index 000000000..c26d168ef
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-paperclip.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-pause.svg b/MessagesMap/css/svgs/fi-pause.svg
new file mode 100644
index 000000000..b708cbabc
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-pause.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-paw.svg b/MessagesMap/css/svgs/fi-paw.svg
new file mode 100644
index 000000000..3e67ab629
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-paw.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-paypal.svg b/MessagesMap/css/svgs/fi-paypal.svg
new file mode 100644
index 000000000..6db35cedd
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-paypal.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-pencil.svg b/MessagesMap/css/svgs/fi-pencil.svg
new file mode 100644
index 000000000..93fc87a79
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-pencil.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-photo.svg b/MessagesMap/css/svgs/fi-photo.svg
new file mode 100644
index 000000000..9c4db2f0b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-photo.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-play-circle.svg b/MessagesMap/css/svgs/fi-play-circle.svg
new file mode 100644
index 000000000..7cbe765f4
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-play-circle.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-play-video.svg b/MessagesMap/css/svgs/fi-play-video.svg
new file mode 100644
index 000000000..e0f318249
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-play-video.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-play.svg b/MessagesMap/css/svgs/fi-play.svg
new file mode 100644
index 000000000..a93c15880
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-play.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-plus.svg b/MessagesMap/css/svgs/fi-plus.svg
new file mode 100644
index 000000000..c4f32c8f5
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-plus.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-pound.svg b/MessagesMap/css/svgs/fi-pound.svg
new file mode 100644
index 000000000..0c1685c16
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-pound.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-power.svg b/MessagesMap/css/svgs/fi-power.svg
new file mode 100644
index 000000000..cdbfb238d
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-power.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-previous.svg b/MessagesMap/css/svgs/fi-previous.svg
new file mode 100644
index 000000000..7a22b451b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-previous.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-price-tag.svg b/MessagesMap/css/svgs/fi-price-tag.svg
new file mode 100644
index 000000000..f8cb16c2e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-price-tag.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-pricetag-multiple.svg b/MessagesMap/css/svgs/fi-pricetag-multiple.svg
new file mode 100644
index 000000000..255ec8e34
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-pricetag-multiple.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-print.svg b/MessagesMap/css/svgs/fi-print.svg
new file mode 100644
index 000000000..88aa402db
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-print.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-prohibited.svg b/MessagesMap/css/svgs/fi-prohibited.svg
new file mode 100644
index 000000000..e7df04005
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-prohibited.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-projection-screen.svg b/MessagesMap/css/svgs/fi-projection-screen.svg
new file mode 100644
index 000000000..c6f650217
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-projection-screen.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-puzzle.svg b/MessagesMap/css/svgs/fi-puzzle.svg
new file mode 100644
index 000000000..34c798824
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-puzzle.svg
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-quote.svg b/MessagesMap/css/svgs/fi-quote.svg
new file mode 100644
index 000000000..a4f7e77e0
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-quote.svg
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-record.svg b/MessagesMap/css/svgs/fi-record.svg
new file mode 100644
index 000000000..515b8cc91
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-record.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-refresh.svg b/MessagesMap/css/svgs/fi-refresh.svg
new file mode 100644
index 000000000..5eb3af1c6
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-refresh.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-results-demographics.svg b/MessagesMap/css/svgs/fi-results-demographics.svg
new file mode 100644
index 000000000..0b982d8db
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-results-demographics.svg
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-results.svg b/MessagesMap/css/svgs/fi-results.svg
new file mode 100644
index 000000000..f11a67091
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-results.svg
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-rewind-ten.svg b/MessagesMap/css/svgs/fi-rewind-ten.svg
new file mode 100644
index 000000000..6c8f514a3
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-rewind-ten.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-rewind.svg b/MessagesMap/css/svgs/fi-rewind.svg
new file mode 100644
index 000000000..309aef581
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-rewind.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-rss.svg b/MessagesMap/css/svgs/fi-rss.svg
new file mode 100644
index 000000000..b98778804
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-rss.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-safety-cone.svg b/MessagesMap/css/svgs/fi-safety-cone.svg
new file mode 100644
index 000000000..1561f76c4
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-safety-cone.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-save.svg b/MessagesMap/css/svgs/fi-save.svg
new file mode 100644
index 000000000..318ccd2e9
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-save.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-share.svg b/MessagesMap/css/svgs/fi-share.svg
new file mode 100644
index 000000000..528408968
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-share.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-sheriff-badge.svg b/MessagesMap/css/svgs/fi-sheriff-badge.svg
new file mode 100644
index 000000000..60e79a95c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-sheriff-badge.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-shield.svg b/MessagesMap/css/svgs/fi-shield.svg
new file mode 100644
index 000000000..a1397bdf4
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-shield.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-shopping-bag.svg b/MessagesMap/css/svgs/fi-shopping-bag.svg
new file mode 100644
index 000000000..3f8fc8731
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-shopping-bag.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-shopping-cart.svg b/MessagesMap/css/svgs/fi-shopping-cart.svg
new file mode 100644
index 000000000..230b90285
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-shopping-cart.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-shuffle.svg b/MessagesMap/css/svgs/fi-shuffle.svg
new file mode 100644
index 000000000..6ccf41e7e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-shuffle.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-skull.svg b/MessagesMap/css/svgs/fi-skull.svg
new file mode 100644
index 000000000..74f40c2b4
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-skull.svg
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-500px.svg b/MessagesMap/css/svgs/fi-social-500px.svg
new file mode 100644
index 000000000..1cd1f5705
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-500px.svg
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-adobe.svg b/MessagesMap/css/svgs/fi-social-adobe.svg
new file mode 100644
index 000000000..6fbeebe0b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-adobe.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-amazon.svg b/MessagesMap/css/svgs/fi-social-amazon.svg
new file mode 100644
index 000000000..c6c5baf2e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-amazon.svg
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-android.svg b/MessagesMap/css/svgs/fi-social-android.svg
new file mode 100644
index 000000000..0b5d69f06
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-android.svg
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-apple.svg b/MessagesMap/css/svgs/fi-social-apple.svg
new file mode 100644
index 000000000..18810d5ce
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-apple.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-behance.svg b/MessagesMap/css/svgs/fi-social-behance.svg
new file mode 100644
index 000000000..20c5012f1
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-behance.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-bing.svg b/MessagesMap/css/svgs/fi-social-bing.svg
new file mode 100644
index 000000000..8e256be6a
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-bing.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-blogger.svg b/MessagesMap/css/svgs/fi-social-blogger.svg
new file mode 100644
index 000000000..8a45b49e6
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-blogger.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-delicious.svg b/MessagesMap/css/svgs/fi-social-delicious.svg
new file mode 100644
index 000000000..8e3a59268
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-delicious.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-designer-news.svg b/MessagesMap/css/svgs/fi-social-designer-news.svg
new file mode 100644
index 000000000..13be8b330
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-designer-news.svg
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-deviant-art.svg b/MessagesMap/css/svgs/fi-social-deviant-art.svg
new file mode 100644
index 000000000..9992d6b59
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-deviant-art.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-digg.svg b/MessagesMap/css/svgs/fi-social-digg.svg
new file mode 100644
index 000000000..aec5efd1a
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-digg.svg
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-dribbble.svg b/MessagesMap/css/svgs/fi-social-dribbble.svg
new file mode 100644
index 000000000..ac6dd61df
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-dribbble.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-drive.svg b/MessagesMap/css/svgs/fi-social-drive.svg
new file mode 100644
index 000000000..6dda57e22
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-drive.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-dropbox.svg b/MessagesMap/css/svgs/fi-social-dropbox.svg
new file mode 100644
index 000000000..612b04a49
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-dropbox.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-evernote.svg b/MessagesMap/css/svgs/fi-social-evernote.svg
new file mode 100644
index 000000000..dd72619a2
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-evernote.svg
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-facebook.svg b/MessagesMap/css/svgs/fi-social-facebook.svg
new file mode 100644
index 000000000..303af0620
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-facebook.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-flickr.svg b/MessagesMap/css/svgs/fi-social-flickr.svg
new file mode 100644
index 000000000..99ace87a0
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-flickr.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-forrst.svg b/MessagesMap/css/svgs/fi-social-forrst.svg
new file mode 100644
index 000000000..7c4aee465
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-forrst.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-foursquare.svg b/MessagesMap/css/svgs/fi-social-foursquare.svg
new file mode 100644
index 000000000..73fa5172e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-foursquare.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-game-center.svg b/MessagesMap/css/svgs/fi-social-game-center.svg
new file mode 100644
index 000000000..a9fca3f94
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-game-center.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-github.svg b/MessagesMap/css/svgs/fi-social-github.svg
new file mode 100644
index 000000000..a36ff8b92
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-github.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-google-plus.svg b/MessagesMap/css/svgs/fi-social-google-plus.svg
new file mode 100644
index 000000000..68665069c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-google-plus.svg
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-hacker-news.svg b/MessagesMap/css/svgs/fi-social-hacker-news.svg
new file mode 100644
index 000000000..b09bae762
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-hacker-news.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-hi5.svg b/MessagesMap/css/svgs/fi-social-hi5.svg
new file mode 100644
index 000000000..f886c6595
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-hi5.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-instagram.svg b/MessagesMap/css/svgs/fi-social-instagram.svg
new file mode 100644
index 000000000..bb333e26b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-instagram.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-joomla.svg b/MessagesMap/css/svgs/fi-social-joomla.svg
new file mode 100644
index 000000000..addec2e78
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-joomla.svg
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-lastfm.svg b/MessagesMap/css/svgs/fi-social-lastfm.svg
new file mode 100644
index 000000000..e9ac380dc
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-lastfm.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-linkedin.svg b/MessagesMap/css/svgs/fi-social-linkedin.svg
new file mode 100644
index 000000000..e68b824aa
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-linkedin.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-medium.svg b/MessagesMap/css/svgs/fi-social-medium.svg
new file mode 100644
index 000000000..7fe39dc71
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-medium.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-myspace.svg b/MessagesMap/css/svgs/fi-social-myspace.svg
new file mode 100644
index 000000000..a4633a493
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-myspace.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-orkut.svg b/MessagesMap/css/svgs/fi-social-orkut.svg
new file mode 100644
index 000000000..335b4ece9
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-orkut.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-path.svg b/MessagesMap/css/svgs/fi-social-path.svg
new file mode 100644
index 000000000..41fb4b2b2
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-path.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-picasa.svg b/MessagesMap/css/svgs/fi-social-picasa.svg
new file mode 100644
index 000000000..e665e0305
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-picasa.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-pinterest.svg b/MessagesMap/css/svgs/fi-social-pinterest.svg
new file mode 100644
index 000000000..0eb447d84
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-pinterest.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-rdio.svg b/MessagesMap/css/svgs/fi-social-rdio.svg
new file mode 100644
index 000000000..ef788c284
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-rdio.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-reddit.svg b/MessagesMap/css/svgs/fi-social-reddit.svg
new file mode 100644
index 000000000..5c2563a68
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-reddit.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-skillshare.svg b/MessagesMap/css/svgs/fi-social-skillshare.svg
new file mode 100644
index 000000000..12fb8e6ee
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-skillshare.svg
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-skype.svg b/MessagesMap/css/svgs/fi-social-skype.svg
new file mode 100644
index 000000000..0be5e3849
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-skype.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-smashing-mag.svg b/MessagesMap/css/svgs/fi-social-smashing-mag.svg
new file mode 100644
index 000000000..8e12c3f55
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-smashing-mag.svg
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-snapchat.svg b/MessagesMap/css/svgs/fi-social-snapchat.svg
new file mode 100644
index 000000000..3b3fb50b7
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-snapchat.svg
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-spotify.svg b/MessagesMap/css/svgs/fi-social-spotify.svg
new file mode 100644
index 000000000..487ee8829
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-spotify.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-squidoo.svg b/MessagesMap/css/svgs/fi-social-squidoo.svg
new file mode 100644
index 000000000..22eb38dec
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-squidoo.svg
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-stack-overflow.svg b/MessagesMap/css/svgs/fi-social-stack-overflow.svg
new file mode 100644
index 000000000..56cdd3956
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-stack-overflow.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-steam.svg b/MessagesMap/css/svgs/fi-social-steam.svg
new file mode 100644
index 000000000..2cce5a795
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-steam.svg
@@ -0,0 +1,18 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-stumbleupon.svg b/MessagesMap/css/svgs/fi-social-stumbleupon.svg
new file mode 100644
index 000000000..6249230c4
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-stumbleupon.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-treehouse.svg b/MessagesMap/css/svgs/fi-social-treehouse.svg
new file mode 100644
index 000000000..6dca6f40b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-treehouse.svg
@@ -0,0 +1,24 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-tumblr.svg b/MessagesMap/css/svgs/fi-social-tumblr.svg
new file mode 100644
index 000000000..b9b12e595
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-tumblr.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-twitter.svg b/MessagesMap/css/svgs/fi-social-twitter.svg
new file mode 100644
index 000000000..d34adff72
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-twitter.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-vimeo.svg b/MessagesMap/css/svgs/fi-social-vimeo.svg
new file mode 100644
index 000000000..7277649e3
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-vimeo.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-windows.svg b/MessagesMap/css/svgs/fi-social-windows.svg
new file mode 100644
index 000000000..c30d00343
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-windows.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-xbox.svg b/MessagesMap/css/svgs/fi-social-xbox.svg
new file mode 100644
index 000000000..1503532e4
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-xbox.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-yahoo.svg b/MessagesMap/css/svgs/fi-social-yahoo.svg
new file mode 100644
index 000000000..cd91c7efd
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-yahoo.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-yelp.svg b/MessagesMap/css/svgs/fi-social-yelp.svg
new file mode 100644
index 000000000..0394e91e8
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-yelp.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-youtube.svg b/MessagesMap/css/svgs/fi-social-youtube.svg
new file mode 100644
index 000000000..f152e73af
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-youtube.svg
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-zerply.svg b/MessagesMap/css/svgs/fi-social-zerply.svg
new file mode 100644
index 000000000..aa3cabf0c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-zerply.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-social-zurb.svg b/MessagesMap/css/svgs/fi-social-zurb.svg
new file mode 100644
index 000000000..5fcaa0e22
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-social-zurb.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-sound.svg b/MessagesMap/css/svgs/fi-sound.svg
new file mode 100644
index 000000000..0e8d9325c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-sound.svg
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-star.svg b/MessagesMap/css/svgs/fi-star.svg
new file mode 100644
index 000000000..7f84dd95e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-star.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-stop.svg b/MessagesMap/css/svgs/fi-stop.svg
new file mode 100644
index 000000000..1f3788663
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-stop.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-strikethrough.svg b/MessagesMap/css/svgs/fi-strikethrough.svg
new file mode 100644
index 000000000..186b85852
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-strikethrough.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-subscript.svg b/MessagesMap/css/svgs/fi-subscript.svg
new file mode 100644
index 000000000..8b2acdd4d
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-subscript.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-superscript.svg b/MessagesMap/css/svgs/fi-superscript.svg
new file mode 100644
index 000000000..35f15601d
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-superscript.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-tablet-landscape.svg b/MessagesMap/css/svgs/fi-tablet-landscape.svg
new file mode 100644
index 000000000..07d96462d
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-tablet-landscape.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-tablet-portrait.svg b/MessagesMap/css/svgs/fi-tablet-portrait.svg
new file mode 100644
index 000000000..dfe77df2f
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-tablet-portrait.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-target-two.svg b/MessagesMap/css/svgs/fi-target-two.svg
new file mode 100644
index 000000000..298c01503
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-target-two.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-target.svg b/MessagesMap/css/svgs/fi-target.svg
new file mode 100644
index 000000000..5c3538c27
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-target.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-telephone-accessible.svg b/MessagesMap/css/svgs/fi-telephone-accessible.svg
new file mode 100644
index 000000000..f428683a9
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-telephone-accessible.svg
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-telephone.svg b/MessagesMap/css/svgs/fi-telephone.svg
new file mode 100644
index 000000000..fe9640f4b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-telephone.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-text-color.svg b/MessagesMap/css/svgs/fi-text-color.svg
new file mode 100644
index 000000000..234b7a4cb
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-text-color.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-thumbnails.svg b/MessagesMap/css/svgs/fi-thumbnails.svg
new file mode 100644
index 000000000..a622fb22d
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-thumbnails.svg
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-ticket.svg b/MessagesMap/css/svgs/fi-ticket.svg
new file mode 100644
index 000000000..a9cc43067
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-ticket.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-torso-business.svg b/MessagesMap/css/svgs/fi-torso-business.svg
new file mode 100644
index 000000000..c6b27466f
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-torso-business.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-torso-female.svg b/MessagesMap/css/svgs/fi-torso-female.svg
new file mode 100644
index 000000000..944cc3c4d
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-torso-female.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-torso.svg b/MessagesMap/css/svgs/fi-torso.svg
new file mode 100644
index 000000000..e55236e7e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-torso.svg
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-torsos-all-female.svg b/MessagesMap/css/svgs/fi-torsos-all-female.svg
new file mode 100644
index 000000000..558c6bb1f
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-torsos-all-female.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-torsos-all.svg b/MessagesMap/css/svgs/fi-torsos-all.svg
new file mode 100644
index 000000000..0228bf803
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-torsos-all.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-torsos-female-male.svg b/MessagesMap/css/svgs/fi-torsos-female-male.svg
new file mode 100644
index 000000000..5e4567ac5
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-torsos-female-male.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-torsos-male-female.svg b/MessagesMap/css/svgs/fi-torsos-male-female.svg
new file mode 100644
index 000000000..6b28f126e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-torsos-male-female.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-torsos.svg b/MessagesMap/css/svgs/fi-torsos.svg
new file mode 100644
index 000000000..77f13a22f
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-torsos.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-trash.svg b/MessagesMap/css/svgs/fi-trash.svg
new file mode 100644
index 000000000..84fcebf28
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-trash.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-trees.svg b/MessagesMap/css/svgs/fi-trees.svg
new file mode 100644
index 000000000..07473147b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-trees.svg
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-trophy.svg b/MessagesMap/css/svgs/fi-trophy.svg
new file mode 100644
index 000000000..b32ff9bcb
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-trophy.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-underline.svg b/MessagesMap/css/svgs/fi-underline.svg
new file mode 100644
index 000000000..40487af93
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-underline.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-universal-access.svg b/MessagesMap/css/svgs/fi-universal-access.svg
new file mode 100644
index 000000000..527a6d414
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-universal-access.svg
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-unlink.svg b/MessagesMap/css/svgs/fi-unlink.svg
new file mode 100644
index 000000000..130d1453f
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-unlink.svg
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-unlock.svg b/MessagesMap/css/svgs/fi-unlock.svg
new file mode 100644
index 000000000..433aa093a
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-unlock.svg
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-upload-cloud.svg b/MessagesMap/css/svgs/fi-upload-cloud.svg
new file mode 100644
index 000000000..0c03336f8
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-upload-cloud.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-upload.svg b/MessagesMap/css/svgs/fi-upload.svg
new file mode 100644
index 000000000..3f2809e8b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-upload.svg
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-usb.svg b/MessagesMap/css/svgs/fi-usb.svg
new file mode 100644
index 000000000..a80912d37
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-usb.svg
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-video.svg b/MessagesMap/css/svgs/fi-video.svg
new file mode 100644
index 000000000..a245c443e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-video.svg
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-volume-none.svg b/MessagesMap/css/svgs/fi-volume-none.svg
new file mode 100644
index 000000000..ab3331950
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-volume-none.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-volume-strike.svg b/MessagesMap/css/svgs/fi-volume-strike.svg
new file mode 100644
index 000000000..7db38951e
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-volume-strike.svg
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-volume.svg b/MessagesMap/css/svgs/fi-volume.svg
new file mode 100644
index 000000000..8580f1d98
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-volume.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-web.svg b/MessagesMap/css/svgs/fi-web.svg
new file mode 100644
index 000000000..1bf45fbe1
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-web.svg
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-wheelchair.svg b/MessagesMap/css/svgs/fi-wheelchair.svg
new file mode 100644
index 000000000..caff28195
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-wheelchair.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-widget.svg b/MessagesMap/css/svgs/fi-widget.svg
new file mode 100644
index 000000000..d79f0b0ed
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-widget.svg
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-wrench.svg b/MessagesMap/css/svgs/fi-wrench.svg
new file mode 100644
index 000000000..e9dac124c
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-wrench.svg
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-x-circle.svg b/MessagesMap/css/svgs/fi-x-circle.svg
new file mode 100644
index 000000000..dc20f8c2b
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-x-circle.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-x.svg b/MessagesMap/css/svgs/fi-x.svg
new file mode 100644
index 000000000..0f33db970
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-x.svg
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-yen.svg b/MessagesMap/css/svgs/fi-yen.svg
new file mode 100644
index 000000000..0e5128932
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-yen.svg
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-zoom-in.svg b/MessagesMap/css/svgs/fi-zoom-in.svg
new file mode 100644
index 000000000..b1fa45b00
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-zoom-in.svg
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/css/svgs/fi-zoom-out.svg b/MessagesMap/css/svgs/fi-zoom-out.svg
new file mode 100644
index 000000000..f3088c2e5
--- /dev/null
+++ b/MessagesMap/css/svgs/fi-zoom-out.svg
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MessagesMap/geo/GER_Grenze_Gauss3.json b/MessagesMap/geo/GER_Grenze_Gauss3.json
new file mode 100644
index 000000000..b2d58c9da
--- /dev/null
+++ b/MessagesMap/geo/GER_Grenze_Gauss3.json
@@ -0,0 +1,8 @@
+{
+"type": "FeatureCollection",
+"name": "GER_Grenze_Gauss3",
+"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::31467" } },
+"features": [
+{ "type": "Feature", "properties": { "id": 999 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3488903.086491901427507, 5988592.433669316582382 ], [ 3501040.92095809802413, 5967492.484927506186068 ], [ 3477273.512136612553149, 5973334.398993898183107 ], [ 3465782.128794832155108, 5947598.025027338415384 ], [ 3471528.177071628626436, 5933874.54866623878479 ], [ 3454065.407405604608357, 5941587.849655893631279 ], [ 3448425.653026330750436, 5932903.721534681506455 ], [ 3454545.283226275350899, 5930798.692972049117088 ], [ 3451049.900168190710247, 5921596.207060987129807 ], [ 3443723.847251273691654, 5921677.485473573207855 ], [ 3440017.995697320438921, 5929902.712283425033092 ], [ 3444910.719115827232599, 5932359.984124059788883 ], [ 3435992.97031009895727, 5956588.451582433655858 ], [ 3373709.419205415528268, 5951023.976981458254158 ], [ 3361694.271378137171268, 5913843.575087629258633 ], [ 3376963.807132553309202, 5907852.113651960156858 ], [ 3373333.809460100252181, 5876151.341025674715638 ], [ 3361371.726349880453199, 5840902.157837905921042 ], [ 3340209.520492874085903, 5841550.639928775839508 ], [ 3339074.745854454115033, 5816073.945138255134225 ], [ 3362510.629622306209058, 5806979.447100719437003 ], [ 3357740.203154448419809, 5792561.468267437070608 ], [ 3335083.024601093027741, 5772632.850123685784638 ], [ 3343243.139271493535489, 5762702.534217528067529 ], [ 3319462.238745191134512, 5754878.311336709186435 ], [ 3300513.643178152386099, 5763470.380908016115427 ], [ 3282390.630142358597368, 5747858.132298409938812 ], [ 3297892.78627804107964, 5701471.419144324027002 ], [ 3286492.066937009803951, 5674754.395258638076484 ], [ 3271479.918641315307468, 5663528.081026799976826 ], [ 3283810.92517633875832, 5621315.758694834075868 ], [ 3293409.242735505104065, 5611586.738158248364925 ], [ 3291902.7312470539473, 5593227.553720614872873 ], [ 3300793.991580836009234, 5587878.832332665100694 ], [ 3292077.590238950680941, 5577718.39535968657583 ], [ 3282371.767190631479025, 5559569.50096951238811 ], [ 3282131.586608956102282, 5538133.319707515649498 ], [ 3300607.154790175147355, 5515095.921056292951107 ], [ 3305088.176045497879386, 5511441.991787481121719 ], [ 3295337.186375926714391, 5484911.008865202777088 ], [ 3309428.758659065701067, 5466989.927760008722544 ], [ 3327599.541088704485446, 5437522.573062540963292 ], [ 3350440.75936670601368, 5435572.743892506696284 ], [ 3376810.548095549922436, 5432351.292579610832036 ], [ 3387387.653451231773943, 5436948.959922121837735 ], [ 3392963.375629832502455, 5425257.864077758975327 ], [ 3420995.089629953727126, 5420923.886728782206774 ], [ 3396435.913923039101064, 5385931.455531300976872 ], [ 3382431.607321445830166, 5345689.017485333606601 ], [ 3376418.515503544826061, 5309776.724808223545551 ], [ 3375428.270375600084662, 5271218.056154271587729 ], [ 3394026.551387794315815, 5253790.185758068226278 ], [ 3439840.108005859423429, 5260102.816684278659523 ], [ 3468404.356293418910354, 5257725.086745200678706 ], [ 3475573.863898475188762, 5263156.082219758071005 ], [ 3479085.183459083084017, 5269925.611961784772575 ], [ 3476142.572602465283126, 5280344.692764445208013 ], [ 3469544.531470495276153, 5284995.377842415124178 ], [ 3464929.569905128795654, 5287824.58578263875097 ], [ 3467426.445713574532419, 5290776.523850770667195 ], [ 3472543.299283417407423, 5289431.705843285657465 ], [ 3477326.001555753406137, 5286608.70127615891397 ], [ 3481110.904911515768617, 5280821.513346721418202 ], [ 3486392.413255110848695, 5274036.120345689356327 ], [ 3490698.623459725640714, 5272209.771720167249441 ], [ 3493850.698660458438098, 5274188.588902130723 ], [ 3499485.35598041722551, 5272202.231943801045418 ], [ 3503960.841738698538393, 5273360.335223917849362 ], [ 3511759.900201284792274, 5269072.654567818157375 ], [ 3524904.160525664221495, 5259679.865552661940455 ], [ 3534732.147985801100731, 5255421.302327753975987 ], [ 3543566.383660976774991, 5252495.511932985857129 ], [ 3552200.428999913856387, 5254389.812908703461289 ], [ 3559339.564848348964006, 5255618.030978349968791 ], [ 3563631.937229986768216, 5258480.435187649913132 ], [ 3568263.931147942785174, 5260354.88756232522428 ], [ 3569943.043837536592036, 5258883.64986215159297 ], [ 3571623.001648128964007, 5257412.508176498115063 ], [ 3573840.082154950592667, 5252963.454574408940971 ], [ 3574468.636003991123289, 5252595.560759061016142 ], [ 3579134.730638100299984, 5245861.791461043059826 ], [ 3580792.253873020876199, 5243426.922373999841511 ], [ 3582180.741045937873423, 5239457.522007525898516 ], [ 3584712.703152353875339, 5237331.687218788079917 ], [ 3585594.841903848573565, 5234017.270995333790779 ], [ 3586533.88759029051289, 5226871.274032309651375 ], [ 3597873.805685080122203, 5228380.477540778927505 ], [ 3608797.99689149716869, 5234065.894790575839579 ], [ 3617764.643587435595691, 5244880.445102356374264 ], [ 3618533.221477307379246, 5256348.770362419076264 ], [ 3614940.914178411010653, 5261415.53355885669589 ], [ 3618389.323575435671955, 5263471.99446214735508 ], [ 3624469.630703025497496, 5258792.810584625229239 ], [ 3633157.225013030227274, 5256993.952698923647404 ], [ 3637878.606771489139646, 5254283.07897412776947 ], [ 3641720.371126152109355, 5253710.795982576906681 ], [ 3639699.590418811421841, 5247685.68960656132549 ], [ 3643773.448389902245253, 5251437.051289405673742 ], [ 3644722.948618983384222, 5253452.100788698531687 ], [ 3645345.040534084662795, 5248486.797624019905925 ], [ 3648388.17649304587394, 5246735.418247454799712 ], [ 3655396.707979186438024, 5246417.757433427497745 ], [ 3662961.262570937164128, 5244129.048206195235252 ], [ 3665956.096848679706454, 5244378.900985679589212 ], [ 3669426.757605436723679, 5245475.147388444282115 ], [ 3674434.764379680622369, 5245288.882279383018613 ], [ 3678065.129292535129935, 5246561.171146233566105 ], [ 3682365.359866241924465, 5247690.083994581364095 ], [ 3686392.358910931739956, 5252135.985606377013028 ], [ 3691819.495683043729514, 5254303.400165732949972 ], [ 3691646.18681214004755, 5259608.523115026764572 ], [ 3696084.247696314007044, 5261248.137900935485959 ], [ 3705469.15488572139293, 5264057.203502279706299 ], [ 3709811.486303417943418, 5268189.240935676731169 ], [ 3719100.764015860389918, 5268695.620914088562131 ], [ 3724508.344897862523794, 5270723.397151054814458 ], [ 3743686.957307410426438, 5269171.4100591680035 ], [ 3741776.009074639063329, 5283165.751345736905932 ], [ 3745129.614354538265616, 5282313.633385145105422 ], [ 3747275.69372695311904, 5282569.791286633349955 ], [ 3751000.29731030203402, 5273127.074425704777241 ], [ 3757107.335320068523288, 5277865.033764152787626 ], [ 3761996.068287856411189, 5276260.900811364874244 ], [ 3766488.093972546048462, 5276133.0600013025105 ], [ 3772338.100881797261536, 5275409.09004632756114 ], [ 3775159.548461358062923, 5279020.291065848432481 ], [ 3779902.742183760739863, 5280570.95156076643616 ], [ 3779461.610629265196621, 5275911.60213265568018 ], [ 3780490.138035723008215, 5268333.075414067134261 ], [ 3808315.766472284682095, 5258434.875874915160239 ], [ 3812859.637579744216055, 5273294.545467361807823 ], [ 3814633.405312519520521, 5280520.428939720615745 ], [ 3812913.191750422120094, 5290859.15806838683784 ], [ 3806425.376008400227875, 5297456.554444319568574 ], [ 3802564.151352714281529, 5298410.063018353655934 ], [ 3801113.856124200858176, 5300811.550097609870136 ], [ 3802732.458182363305241, 5304692.149358347058296 ], [ 3808322.931970115751028, 5311584.405471592210233 ], [ 3799699.719356313347816, 5324793.084697316400707 ], [ 3792997.7570486436598, 5333318.524641047231853 ], [ 3790244.022101813927293, 5338920.679890521802008 ], [ 3799579.10706680174917, 5342845.108221280388534 ], [ 3817386.590982605703175, 5350852.696821444667876 ], [ 3833061.94796058209613, 5360913.243080700747669 ], [ 3838848.456987005658448, 5376610.247337277978659 ], [ 3837547.472271871287376, 5384683.051558773033321 ], [ 3841395.588146388530731, 5385892.059891938231885 ], [ 3846524.358721159398556, 5379522.321580246090889 ], [ 3858314.851789401844144, 5384497.638231771998107 ], [ 3862587.617253113538027, 5391776.237194489687681 ], [ 3866259.575045705307275, 5403075.929300256073475 ], [ 3867157.973593944683671, 5411741.818534544669092 ], [ 3862012.960701681207865, 5420809.717049594037235 ], [ 3854127.406784638762474, 5429851.352738753892481 ], [ 3849553.229767407756299, 5435540.873172941617668 ], [ 3844140.88084171526134, 5439238.460166331380606 ], [ 3841534.274563944432884, 5442142.390384323894978 ], [ 3835684.709925707429647, 5442590.995071599259973 ], [ 3832762.269431865308434, 5445477.113459219224751 ], [ 3823964.410679575521499, 5449464.320268048904836 ], [ 3815447.243608051910996, 5460066.771412965841591 ], [ 3810012.879654709715396, 5462167.001615763641894 ], [ 3806615.033327244687825, 5468234.459628885611892 ], [ 3800003.7768444721587, 5474439.763530363328755 ], [ 3789761.83496128115803, 5482848.919317474588752 ], [ 3781881.852585146669298, 5486431.78058366291225 ], [ 3775553.170905835926533, 5491217.460590046830475 ], [ 3770336.321746882982552, 5496378.699993329122663 ], [ 3766873.881598062813282, 5501783.868354248814285 ], [ 3764280.02171581890434, 5509135.744285047054291 ], [ 3754180.254221700597554, 5511156.215266954153776 ], [ 3745526.408792310860008, 5519251.350063856691122 ], [ 3750225.682538017630577, 5522559.980446685105562 ], [ 3755066.501499155536294, 5536170.315652346238494 ], [ 3749332.513239243533462, 5540091.321428187191486 ], [ 3751214.929691878147423, 5543892.276949902065098 ], [ 3742803.538636051118374, 5547767.175745568238199 ], [ 3734936.673377062194049, 5552147.809944314882159 ], [ 3729811.923416517209262, 5564678.939766755327582 ], [ 3721306.548207649961114, 5573902.442312805913389 ], [ 3724389.946823725942522, 5581012.800639648921788 ], [ 3727139.491112404037267, 5581051.599327689036727 ], [ 3729180.872512030415237, 5575649.216645678505301 ], [ 3735636.236145881004632, 5564933.488095776177943 ], [ 3738329.79561550822109, 5564660.139601922594011 ], [ 3742607.118624444119632, 5581502.340226092375815 ], [ 3751534.621668986976147, 5590538.419591725803912 ], [ 3765543.574928259477019, 5594590.794321143068373 ], [ 3773003.206189451273531, 5597554.085736626759171 ], [ 3780437.729732664301991, 5593482.68738354742527 ], [ 3785846.93958854675293, 5598000.498474818654358 ], [ 3786243.125229068566114, 5605138.638210694305599 ], [ 3798163.436447305139154, 5605019.536529672332108 ], [ 3801657.971011260524392, 5615139.223676504567266 ], [ 3809342.27197136124596, 5618864.380389887839556 ], [ 3809726.811082373838872, 5621616.562100976705551 ], [ 3811477.665177068207413, 5621096.781483097933233 ], [ 3816342.046918489970267, 5616941.838838119059801 ], [ 3821386.112420959863812, 5625282.609525769948959 ], [ 3819994.620176353491843, 5628858.913463165983558 ], [ 3829805.659093851223588, 5631806.273182883858681 ], [ 3844814.097172466572374, 5633945.661918910220265 ], [ 3856745.131124688778073, 5641462.839177167974412 ], [ 3870200.229061647318304, 5650801.216317716985941 ], [ 3882226.515095525421202, 5655713.818613845854998 ], [ 3876759.213736824691296, 5665552.082540917210281 ], [ 3886790.627201220020652, 5664433.886519509367645 ], [ 3895006.419092109892517, 5646410.148152018897235 ], [ 3914159.41519628232345, 5645099.373575182631612 ], [ 3929278.260688469279557, 5699679.029202713631094 ], [ 3911869.260495021939278, 5731148.109323262237012 ], [ 3892394.787482062820345, 5760146.335713357664645 ], [ 3903082.984338829293847, 5797726.764955022372305 ], [ 3892444.462623181287199, 5824614.036409680731595 ], [ 3863883.314673051703721, 5867880.558060788549483 ], [ 3872078.909846739843488, 5915929.015552959404886 ], [ 3860092.23112147860229, 5964295.424202460795641 ], [ 3830276.455211311578751, 5988856.369047674350441 ], [ 3817878.249389458447695, 6016897.728018875233829 ], [ 3783095.046259038150311, 6019231.49365708604455 ], [ 3762996.137034160085022, 6047848.593513793312013 ], [ 3718084.42398465750739, 6029460.488006083294749 ], [ 3698096.850492359604686, 6013635.304436453618109 ], [ 3667340.895944108720869, 6004365.710901287384331 ], [ 3655208.180680884048343, 5987804.550042318180203 ], [ 3623869.332185707986355, 5991477.298619108274579 ], [ 3646348.289383464958519, 6011699.428504345938563 ], [ 3633031.630026810336858, 6034206.906247117556632 ], [ 3607773.587194512598217, 6036967.660821806639433 ], [ 3571123.535132620017976, 6039672.427625136449933 ], [ 3574328.48616199195385, 6053389.483730522915721 ], [ 3567205.029448272660375, 6072568.016669141128659 ], [ 3520655.3160350471735, 6078902.108201012946665 ], [ 3464081.759395625907928, 6088032.033732699230313 ], [ 3494549.563606171868742, 6037980.362486270256341 ], [ 3469338.580764980521053, 6028945.83792691398412 ], [ 3468034.257400855887681, 6006039.974456588737667 ], [ 3486443.136280077975243, 6002502.351190875284374 ], [ 3492189.86928970227018, 5994436.344882891513407 ], [ 3488930.04041753616184, 5988538.329635483212769 ] ] ] } }
+]
+}
diff --git a/MessagesMap/geo/Gauss_Test.json b/MessagesMap/geo/Gauss_Test.json
new file mode 100644
index 000000000..bb8fb6f64
--- /dev/null
+++ b/MessagesMap/geo/Gauss_Test.json
@@ -0,0 +1,8 @@
+{
+"type": "FeatureCollection",
+"name": "Gauss_Test",
+"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::31467" } },
+"features": [
+{ "type": "Feature", "properties": { "id": 999 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3488903.086491901427507, 5988592.433669316582382 ], [ 3501040.92095809802413, 5967492.484927506186068 ], [ 3477273.512136612553149, 5973334.398993898183107 ], [ 3465782.128794832155108, 5947598.025027338415384 ], [ 3471528.177071628626436, 5933874.54866623878479 ], [ 3454065.407405604608357, 5941587.849655893631279 ], [ 3448425.653026330750436, 5932903.721534681506455 ], [ 3454545.283226275350899, 5930798.692972049117088 ], [ 3451189.829035405535251, 5917390.028398899361491 ], [ 3443291.650382754858583, 5919233.298043580725789 ], [ 3437285.653369885403663, 5930704.299328923225403 ], [ 3444910.719115827232599, 5932359.984124059788883 ], [ 3434385.333255098201334, 5953453.100098665803671 ], [ 3384790.200907859019935, 5949757.71471640188247 ], [ 3367766.762290414888412, 5914293.654521684162319 ], [ 3383568.512687175534666, 5911828.772774253971875 ], [ 3380332.599845375400037, 5876304.545604753307998 ], [ 3367681.262549435719848, 5835702.820802959613502 ], [ 3345601.788628919050097, 5836351.790609746240079 ], [ 3345054.899054845329374, 5819059.159614024683833 ], [ 3368737.952166273724288, 5808194.963265904225409 ], [ 3368559.889458938501775, 5790195.896474539302289 ], [ 3343240.323785672429949, 5771048.808202957734466 ], [ 3350867.008096042089164, 5762960.388359255157411 ], [ 3320942.976540514267981, 5748496.790899236686528 ], [ 3302677.863704200834036, 5755852.558105627074838 ], [ 3290178.089636533055454, 5747564.486211785115302 ], [ 3307463.851725652813911, 5697769.124757849611342 ], [ 3300941.978382501285523, 5672211.150351090356708 ], [ 3283232.500141961034387, 5655027.836849273182452 ], [ 3290789.978035064879805, 5627133.528184759430587 ], [ 3306841.754253781866282, 5614695.624578730203211 ], [ 3302237.877377323806286, 5600211.888261660002172 ], [ 3310578.852587650064379, 5597094.288107200525701 ], [ 3314311.496718878857791, 5578499.420205740258098 ], [ 3296361.456295125186443, 5561258.502072387374938 ], [ 3294837.256878709886223, 5546196.191183859482408 ], [ 3308037.695845444686711, 5526115.78131450060755 ], [ 3321196.071385617367923, 5520913.300677664577961 ], [ 3308818.954193457495421, 5485099.92020414583385 ], [ 3322657.44935197988525, 5477932.192024222575128 ], [ 3334313.756463064812124, 5450365.454483617097139 ], [ 3342937.799727577716112, 5448188.243685916997492 ], [ 3377587.750647253356874, 5443781.44684683624655 ], [ 3387666.993135758675635, 5448700.670315750874579 ], [ 3399011.698713344521821, 5435961.572891810908914 ], [ 3443068.602551481686532, 5426973.132265389896929 ], [ 3413382.749822113197297, 5385685.643573168665171 ], [ 3403656.40497805038467, 5349085.759114944376051 ], [ 3395822.349869083613157, 5314197.519827735610306 ], [ 3390317.520428855437785, 5284342.748901517130435 ], [ 3399956.638223411981016, 5267313.251752641052008 ], [ 3437193.117124232463539, 5272747.766638733446598 ], [ 3458723.471351154148579, 5269579.649587816558778 ], [ 3465485.650643994566053, 5277054.935927891172469 ], [ 3469608.411578155588359, 5273480.063501285389066 ], [ 3471876.869455458130687, 5279827.356722624972463 ], [ 3465507.712293966207653, 5280769.560745644383132 ], [ 3455331.675620899070054, 5281499.089872232638299 ], [ 3460366.880656358785927, 5291603.156220824457705 ], [ 3468228.852910205256194, 5293942.921997044235468 ], [ 3473753.864018956199288, 5292103.482183309271932 ], [ 3479191.99680063361302, 5288126.616441235877573 ], [ 3484465.479533662088215, 5281677.936977523379028 ], [ 3484233.158995650708675, 5287533.708568384870887 ], [ 3490428.390171200037003, 5284222.149695058353245 ], [ 3491000.769480463117361, 5279931.127693087793887 ], [ 3492903.583002479281276, 5278937.995121872983873 ], [ 3507803.162257547024637, 5281992.040672280825675 ], [ 3524702.902041159570217, 5277829.74519784655422 ], [ 3534513.035875500179827, 5271435.741341199725866 ], [ 3539020.832032816950232, 5266833.377551326528192 ], [ 3555621.480045845266432, 5266305.57709379401058 ], [ 3558952.816213102545589, 5273366.515957298688591 ], [ 3562113.729253232479095, 5272324.868347470648587 ], [ 3561827.582389018498361, 5268022.300728110596538 ], [ 3573310.903668540995568, 5265341.85504446644336 ], [ 3575443.357139936648309, 5260898.375713305547833 ], [ 3579010.501662814524025, 5261276.631373301148415 ], [ 3583675.359696322120726, 5254546.396928901784122 ], [ 3581706.219058393966407, 5252611.388772974722087 ], [ 3583119.092095236759633, 5246822.575319822877645 ], [ 3588252.644855486229062, 5248806.492976345121861 ], [ 3589636.013782095164061, 5250901.954892938025296 ], [ 3593493.758656036108732, 5249053.414725457318127 ], [ 3588750.512874899897724, 5237848.320015479810536 ], [ 3600282.253009745851159, 5241524.36706917732954 ], [ 3607871.532975196372718, 5250461.351396663114429 ], [ 3610756.479654781520367, 5260796.508926127105951 ], [ 3608120.214136477559805, 5264060.05351637583226 ], [ 3609507.749941754154861, 5269796.027705783955753 ], [ 3618603.629106603097171, 5267243.079056724905968 ], [ 3621007.390491601545364, 5271428.876349403522909 ], [ 3633415.370987127069384, 5265740.940481092780828 ], [ 3642414.509604401886463, 5267939.818768813274801 ], [ 3644620.985638108104467, 5266007.087686084210873 ], [ 3640945.55374155472964, 5263432.969433877617121 ], [ 3641483.787825344596058, 5261789.061448882333934 ], [ 3646133.271562666632235, 5261986.012734254822135 ], [ 3650189.885286884382367, 5256119.636941907927394 ], [ 3649022.619927716441453, 5252937.214517680928111 ], [ 3659920.607651796191931, 5253223.734834285452962 ], [ 3667299.030912990216166, 5257246.005578976124525 ], [ 3669709.965525438077748, 5257315.254263963550329 ], [ 3667749.944248455576599, 5253110.081102469004691 ], [ 3671983.144428202882409, 5253564.513584430329502 ], [ 3673539.098830877803266, 5257261.371434027329087 ], [ 3676965.869417712558061, 5259520.21703711990267 ], [ 3682471.480813615955412, 5259025.516825335100293 ], [ 3680178.046337462030351, 5263265.810927473939955 ], [ 3684037.067308578174561, 5267445.608168485574424 ], [ 3695390.886128115467727, 5268310.905470369383693 ], [ 3696664.62451197206974, 5274893.369693823158741 ], [ 3713915.741994529031217, 5275252.028197621926665 ], [ 3718102.747901007067412, 5278716.463984348811209 ], [ 3740240.383420335128903, 5279173.282036549411714 ], [ 3737647.585725761950016, 5289813.151592687703669 ], [ 3741727.710653737653047, 5291302.83018587063998 ], [ 3744575.707333970814943, 5294476.625472434796393 ], [ 3745288.191418152302504, 5287404.49440909922123 ], [ 3753691.518454688135535, 5288591.532835963182151 ], [ 3758701.088444931898266, 5289638.708879820071161 ], [ 3763612.872422658838332, 5281838.791366779245436 ], [ 3769097.427795308176428, 5283496.245105778798461 ], [ 3770794.443574465345591, 5288040.847986193373799 ], [ 3781046.568587427027524, 5288692.912589829415083 ], [ 3787685.56383138243109, 5281902.200875535607338 ], [ 3784842.450178260914981, 5277207.505344204604626 ], [ 3801964.119604788720608, 5265957.173971475102007 ], [ 3804666.789772639516741, 5273234.763270952738822 ], [ 3806293.358889241237193, 5280283.300847192294896 ], [ 3808076.702756034675986, 5285842.992680142633617 ], [ 3804001.732127825729549, 5293899.82277178298682 ], [ 3800656.097825336735696, 5294469.32288596406579 ], [ 3794845.194958792533726, 5293014.197684743441641 ], [ 3793008.863352846354246, 5294904.344051047228277 ], [ 3799978.437273916322738, 5309125.376165048219264 ], [ 3792529.381861644797027, 5320682.251044020988047 ], [ 3784323.175368095282465, 5329803.339305875822902 ], [ 3780235.570561276748776, 5339282.392634831368923 ], [ 3788094.359217397868633, 5348110.325547033920884 ], [ 3807208.579320894088596, 5357617.499150255694985 ], [ 3821255.168221527244896, 5363053.430816201493144 ], [ 3828605.103542598895729, 5374823.091548603959382 ], [ 3828521.265923576895148, 5390295.124010912142694 ], [ 3835455.948123118840158, 5391680.305247893556952 ], [ 3845327.080294183455408, 5387719.510910115204751 ], [ 3849922.695553515572101, 5386048.371181754395366 ], [ 3852217.556485538370907, 5391158.38615037035197 ], [ 3855729.068305258639157, 5400163.518306402489543 ], [ 3853295.394990793894976, 5409023.617015701718628 ], [ 3856106.594388220924884, 5414717.04146568197757 ], [ 3850781.134228098671883, 5421832.687394288368523 ], [ 3847204.56197401881218, 5427110.495129433460534 ], [ 3842467.696174547541887, 5426331.793787164613605 ], [ 3838011.495434453245252, 5432928.395549885928631 ], [ 3833228.114202972967178, 5435707.226960925385356 ], [ 3829997.111181290820241, 5435594.854566244408488 ], [ 3822549.949913235846907, 5437012.664671908132732 ], [ 3812759.461599776986986, 5451353.118904460221529 ], [ 3804165.635243383236229, 5453606.896128167398274 ], [ 3804653.678448359947652, 5456446.743104871362448 ], [ 3795021.820309116505086, 5466276.518175694160163 ], [ 3786683.185648626182228, 5475047.713175878860056 ], [ 3782658.125401898287237, 5473717.956217215396464 ], [ 3774427.062458618078381, 5476180.536993635818362 ], [ 3765309.017572577577084, 5483884.352542290464044 ], [ 3763100.386236127465963, 5494788.699389837682247 ], [ 3756983.140921232290566, 5504132.311381533741951 ], [ 3754180.254221700597554, 5511156.215266954153776 ], [ 3745526.408792310860008, 5519251.350063856691122 ], [ 3750225.682538017630577, 5522559.980446685105562 ], [ 3755066.501499155536294, 5536170.315652346238494 ], [ 3749332.513239243533462, 5540091.321428187191486 ], [ 3751214.929691878147423, 5543892.276949902065098 ], [ 3742803.538636051118374, 5547767.175745568238199 ], [ 3734936.673377062194049, 5552147.809944314882159 ], [ 3729811.923416517209262, 5564678.939766755327582 ], [ 3721306.548207649961114, 5573902.442312805913389 ], [ 3724389.946823725942522, 5581012.800639648921788 ], [ 3727139.491112404037267, 5581051.599327689036727 ], [ 3729180.872512030415237, 5575649.216645678505301 ], [ 3735636.236145881004632, 5564933.488095776177943 ], [ 3738329.79561550822109, 5564660.139601922594011 ], [ 3742607.118624444119632, 5581502.340226092375815 ], [ 3751534.621668986976147, 5590538.419591725803912 ], [ 3765543.574928259477019, 5594590.794321143068373 ], [ 3773003.206189451273531, 5597554.085736626759171 ], [ 3780437.729732664301991, 5593482.68738354742527 ], [ 3785846.93958854675293, 5598000.498474818654358 ], [ 3786243.125229068566114, 5605138.638210694305599 ], [ 3798163.436447305139154, 5605019.536529672332108 ], [ 3801657.971011260524392, 5615139.223676504567266 ], [ 3809342.27197136124596, 5618864.380389887839556 ], [ 3809726.811082373838872, 5621616.562100976705551 ], [ 3811477.665177068207413, 5621096.781483097933233 ], [ 3816342.046918489970267, 5616941.838838119059801 ], [ 3821386.112420959863812, 5625282.609525769948959 ], [ 3819994.620176353491843, 5628858.913463165983558 ], [ 3829805.659093851223588, 5631806.273182883858681 ], [ 3844736.357234984636307, 5633940.517361459322274 ], [ 3845801.316082409583032, 5640237.205341270193458 ], [ 3852145.138822331558913, 5643307.250882064923644 ], [ 3867890.541748698335141, 5648907.918767829425633 ], [ 3879888.773806755896658, 5657463.187507338821888 ], [ 3874277.093837912194431, 5662949.301301119849086 ], [ 3870475.640655733179301, 5669337.505809855647385 ], [ 3875621.733388590160757, 5670097.265952996909618 ], [ 3885109.02394663495943, 5668861.465130038559437 ], [ 3893132.031234338413924, 5664505.908223968930542 ], [ 3891320.649292404763401, 5657616.70987637154758 ], [ 3893183.429220336023718, 5656670.669763247482479 ], [ 3897460.619043631944805, 5658783.84818359836936 ], [ 3897549.359077489934862, 5656615.88398555573076 ], [ 3895680.532783163711429, 5650487.657361081801355 ], [ 3908358.649764881934971, 5647969.026481870561838 ], [ 3910216.550331942737103, 5653095.646518115885556 ], [ 3919509.735196982510388, 5687341.766885205172002 ], [ 3920746.300471366848797, 5701494.275911221280694 ], [ 3914828.10680645564571, 5717173.148750389926136 ], [ 3912006.450267340987921, 5721551.938652051612735 ], [ 3897796.977036475203931, 5726093.091069177724421 ], [ 3896205.794341160450131, 5729723.286813952028751 ], [ 3899366.033354983199388, 5735408.654249706305563 ], [ 3893389.977891464717686, 5746099.248998455703259 ], [ 3885877.539860573131591, 5757183.80767719540745 ], [ 3888863.400405426509678, 5763961.371781493537128 ], [ 3892625.725415065418929, 5778159.640468307770789 ], [ 3891832.772984541021287, 5789162.744540113024414 ], [ 3890145.517433936242014, 5804752.069255168549716 ], [ 3880537.359044073149562, 5810637.058815266005695 ], [ 3877110.962415006943047, 5824744.167225709185004 ], [ 3882287.1107057495974, 5832728.846030381508172 ], [ 3882035.202984184026718, 5841704.357507294975221 ], [ 3869075.477280294056982, 5851251.097417563199997 ], [ 3854294.512647214345634, 5863948.003679854795337 ], [ 3845627.587390527129173, 5868233.010508646257222 ], [ 3845515.124151324853301, 5882263.829413751140237 ], [ 3858559.189459214918315, 5893817.552267575636506 ], [ 3859194.396286151837558, 5908059.534440889954567 ], [ 3862487.735376585274935, 5919223.064397945068777 ], [ 3856621.741954918950796, 5938258.042501827701926 ], [ 3852058.950930363032967, 5950113.2617327272892 ], [ 3851635.508948883973062, 5956260.161191704683006 ], [ 3848992.549787138123065, 5960773.213785777799785 ], [ 3847808.868023575749248, 5969800.258259858936071 ], [ 3844598.457673901226372, 5971747.270246701315045 ], [ 3841632.243552946019918, 5968397.634862125851214 ], [ 3836363.089190022088587, 5968561.879841503687203 ], [ 3825975.361082653515041, 5973066.128461833111942 ], [ 3823619.291661579627544, 5974974.672812019474804 ], [ 3819918.5794523274526, 5978461.823101965710521 ], [ 3817171.004520201124251, 5977111.657073760405183 ], [ 3819080.675756135489792, 5973680.502858299762011 ], [ 3818138.348643812350929, 5973070.809746626764536 ], [ 3816730.467051633168012, 5979841.694549190811813 ], [ 3818546.884959461633116, 5984139.021231184713542 ], [ 3815898.35695027699694, 5995261.851306503638625 ], [ 3814536.771176524925977, 6006734.123992432840168 ], [ 3807086.097984693478793, 6014309.642201050184667 ], [ 3792574.066933913622051, 6008608.046559262089431 ], [ 3793622.800843920558691, 6003480.03207319136709 ], [ 3790595.443215337116271, 6005597.932654122821987 ], [ 3766296.583892309106886, 6025716.7217764146626 ], [ 3761802.319205838721246, 6041364.549116510897875 ], [ 3744589.635262138675898, 6033539.677563833072782 ], [ 3728964.773051043506712, 6030296.042848121374846 ], [ 3717421.901425512507558, 6022422.659988652914762 ], [ 3704438.063571680802852, 6010481.039954836480319 ], [ 3676719.919713791459799, 6004445.436351356096566 ], [ 3657498.620636057108641, 5980243.680815604515374 ], [ 3645728.784004415851086, 5985927.553603636100888 ], [ 3625144.970208787824959, 5982006.309447490610182 ], [ 3614904.841705586761236, 5992129.066734934225678 ], [ 3618092.671784308273345, 5997394.308884313330054 ], [ 3622873.920284078456461, 5996655.058432653546333 ], [ 3637630.075319347437471, 6010012.678756413049996 ], [ 3636248.02878107689321, 6027457.815692572854459 ], [ 3626439.124325928743929, 6029607.658978880383074 ], [ 3616023.917056980542839, 6022178.384500930085778 ], [ 3588830.42291117599234, 6033437.491733647882938 ], [ 3577609.032023014500737, 6036943.752208053134382 ], [ 3560169.99708172865212, 6036680.559443272650242 ], [ 3556134.187610518652946, 6039338.539873390458524 ], [ 3568261.950465325266123, 6050041.678009453229606 ], [ 3565651.614230945706367, 6062928.375982251949608 ], [ 3547579.392117959447205, 6078276.025336083956063 ], [ 3517846.952139782253653, 6075091.024747706949711 ], [ 3497583.972483191639185, 6084521.229529938660562 ], [ 3477370.665093007497489, 6086975.898121568374336 ], [ 3478725.666283292230219, 6074539.842249141074717 ], [ 3489739.172130523715168, 6055367.379333235323429 ], [ 3500845.78832932561636, 6038992.951772619970143 ], [ 3489968.959965492598712, 6030300.507200916297734 ], [ 3475071.800344426650554, 6028357.45111992303282 ], [ 3474858.230296804569662, 6015481.667792963795364 ], [ 3490081.008894195780158, 6015853.561298763379455 ], [ 3489613.883279331959784, 5999637.744539761915803 ], [ 3496098.062121235299855, 5999483.995547072030604 ], [ 3498833.52718121279031, 5989551.967362821102142 ], [ 3489011.33098604856059, 5988556.150254318490624 ] ] ] } }
+]
+}
diff --git a/MessagesMap/geo/ger_grenze.json b/MessagesMap/geo/ger_grenze.json
new file mode 100644
index 000000000..82a22ee1a
--- /dev/null
+++ b/MessagesMap/geo/ger_grenze.json
@@ -0,0 +1,2 @@
+{ "coordinates": [ [ 3488903.086491901427507, 5988592.433669316582382 ], [ 3501040.92095809802413, 5967492.484927506186068 ], [ 3477273.512136612553149, 5973334.398993898183107 ], [ 3465782.128794832155108, 5947598.025027338415384 ], [ 3471528.177071628626436, 5933874.54866623878479 ], [ 3454065.407405604608357, 5941587.849655893631279 ], [ 3448425.653026330750436, 5932903.721534681506455 ], [ 3454545.283226275350899, 5930798.692972049117088 ], [ 3451049.900168190710247, 5921596.207060987129807 ], [ 3443723.847251273691654, 5921677.485473573207855 ], [ 3440017.995697320438921, 5929902.712283425033092 ], [ 3444910.719115827232599, 5932359.984124059788883 ], [ 3435992.97031009895727, 5956588.451582433655858 ], [ 3373709.419205415528268, 5951023.976981458254158 ], [ 3361694.271378137171268, 5913843.575087629258633 ], [ 3376963.807132553309202, 5907852.113651960156858 ], [ 3373333.809460100252181, 5876151.341025674715638 ], [ 3361371.726349880453199, 5840902.157837905921042 ], [ 3340209.520492874085903, 5841550.639928775839508 ], [ 3339074.745854454115033, 5816073.945138255134225 ], [ 3362510.629622306209058, 5806979.447100719437003 ], [ 3357740.203154448419809, 5792561.468267437070608 ], [ 3335083.024601093027741, 5772632.850123685784638 ], [ 3343243.139271493535489, 5762702.534217528067529 ], [ 3319462.238745191134512, 5754878.311336709186435 ], [ 3300513.643178152386099, 5763470.380908016115427 ], [ 3282390.630142358597368, 5747858.132298409938812 ], [ 3297892.78627804107964, 5701471.419144324027002 ], [ 3286492.066937009803951, 5674754.395258638076484 ], [ 3271479.918641315307468, 5663528.081026799976826 ], [ 3283810.92517633875832, 5621315.758694834075868 ], [ 3293409.242735505104065, 5611586.738158248364925 ], [ 3291902.7312470539473, 5593227.553720614872873 ], [ 3300793.991580836009234, 5587878.832332665100694 ], [ 3292077.590238950680941, 5577718.39535968657583 ], [ 3282371.767190631479025, 5559569.50096951238811 ], [ 3282131.586608956102282, 5538133.319707515649498 ], [ 3300607.154790175147355, 5515095.921056292951107 ], [ 3305088.176045497879386, 5511441.991787481121719 ], [ 3295337.186375926714391, 5484911.008865202777088 ], [ 3309428.758659065701067, 5466989.927760008722544 ], [ 3327599.541088704485446, 5437522.573062540963292 ], [ 3350440.75936670601368, 5435572.743892506696284 ], [ 3376810.548095549922436, 5432351.292579610832036 ], [ 3387387.653451231773943, 5436948.959922121837735 ], [ 3392963.375629832502455, 5425257.864077758975327 ], [ 3420995.089629953727126, 5420923.886728782206774 ], [ 3396435.913923039101064, 5385931.455531300976872 ], [ 3382431.607321445830166, 5345689.017485333606601 ], [ 3376418.515503544826061, 5309776.724808223545551 ], [ 3375428.270375600084662, 5271218.056154271587729 ], [ 3394026.551387794315815, 5253790.185758068226278 ], [ 3439840.108005859423429, 5260102.816684278659523 ], [ 3468404.356293418910354, 5257725.086745200678706 ], [ 3475573.863898475188762, 5263156.082219758071005 ], [ 3479085.183459083084017, 5269925.611961784772575 ], [ 3476142.572602465283126, 5280344.692764445208013 ], [ 3469544.531470495276153, 5284995.377842415124178 ], [ 3464929.569905128795654, 5287824.58578263875097 ], [ 3467426.445713574532419, 5290776.523850770667195 ], [ 3472543.299283417407423, 5289431.705843285657465 ], [ 3477326.001555753406137, 5286608.70127615891397 ], [ 3481110.904911515768617, 5280821.513346721418202 ], [ 3486392.413255110848695, 5274036.120345689356327 ], [ 3490698.623459725640714, 5272209.771720167249441 ], [ 3493850.698660458438098, 5274188.588902130723 ], [ 3499485.35598041722551, 5272202.231943801045418 ], [ 3503960.841738698538393, 5273360.335223917849362 ], [ 3511759.900201284792274, 5269072.654567818157375 ], [ 3524904.160525664221495, 5259679.865552661940455 ], [ 3534732.147985801100731, 5255421.302327753975987 ], [ 3543566.383660976774991, 5252495.511932985857129 ], [ 3552200.428999913856387, 5254389.812908703461289 ], [ 3559339.564848348964006, 5255618.030978349968791 ], [ 3563631.937229986768216, 5258480.435187649913132 ], [ 3568263.931147942785174, 5260354.88756232522428 ], [ 3569943.043837536592036, 5258883.64986215159297 ], [ 3571623.001648128964007, 5257412.508176498115063 ], [ 3573840.082154950592667, 5252963.454574408940971 ], [ 3574468.636003991123289, 5252595.560759061016142 ], [ 3579134.730638100299984, 5245861.791461043059826 ], [ 3580792.253873020876199, 5243426.922373999841511 ], [ 3582180.741045937873423, 5239457.522007525898516 ], [ 3584712.703152353875339, 5237331.687218788079917 ], [ 3585594.841903848573565, 5234017.270995333790779 ], [ 3586533.88759029051289, 5226871.274032309651375 ], [ 3597873.805685080122203, 5228380.477540778927505 ], [ 3608797.99689149716869, 5234065.894790575839579 ], [ 3617764.643587435595691, 5244880.445102356374264 ], [ 3618533.221477307379246, 5256348.770362419076264 ], [ 3614940.914178411010653, 5261415.53355885669589 ], [ 3618389.323575435671955, 5263471.99446214735508 ], [ 3624469.630703025497496, 5258792.810584625229239 ], [ 3633157.225013030227274, 5256993.952698923647404 ], [ 3637878.606771489139646, 5254283.07897412776947 ], [ 3641720.371126152109355, 5253710.795982576906681 ], [ 3639699.590418811421841, 5247685.68960656132549 ], [ 3643773.448389902245253, 5251437.051289405673742 ], [ 3644722.948618983384222, 5253452.100788698531687 ], [ 3645345.040534084662795, 5248486.797624019905925 ], [ 3648388.17649304587394, 5246735.418247454799712 ], [ 3655396.707979186438024, 5246417.757433427497745 ], [ 3662961.262570937164128, 5244129.048206195235252 ], [ 3665956.096848679706454, 5244378.900985679589212 ], [ 3669426.757605436723679, 5245475.147388444282115 ], [ 3674434.764379680622369, 5245288.882279383018613 ], [ 3678065.129292535129935, 5246561.171146233566105 ], [ 3682365.359866241924465, 5247690.083994581364095 ], [ 3686392.358910931739956, 5252135.985606377013028 ], [ 3691819.495683043729514, 5254303.400165732949972 ], [ 3691646.18681214004755, 5259608.523115026764572 ], [ 3696084.247696314007044, 5261248.137900935485959 ], [ 3705469.15488572139293, 5264057.203502279706299 ], [ 3709811.486303417943418, 5268189.240935676731169 ], [ 3719100.764015860389918, 5268695.620914088562131 ], [ 3724508.344897862523794, 5270723.397151054814458 ], [ 3743686.957307410426438, 5269171.4100591680035 ], [ 3741776.009074639063329, 5283165.751345736905932 ], [ 3745129.614354538265616, 5282313.633385145105422 ], [ 3747275.69372695311904, 5282569.791286633349955 ], [ 3751000.29731030203402, 5273127.074425704777241 ], [ 3757107.335320068523288, 5277865.033764152787626 ], [ 3761996.068287856411189, 5276260.900811364874244 ], [ 3766488.093972546048462, 5276133.0600013025105 ], [ 3772338.100881797261536, 5275409.09004632756114 ], [ 3775159.548461358062923, 5279020.291065848432481 ], [ 3779902.742183760739863, 5280570.95156076643616 ], [ 3779461.610629265196621, 5275911.60213265568018 ], [ 3780490.138035723008215, 5268333.075414067134261 ], [ 3808315.766472284682095, 5258434.875874915160239 ], [ 3812859.637579744216055, 5273294.545467361807823 ], [ 3814633.405312519520521, 5280520.428939720615745 ], [ 3812913.191750422120094, 5290859.15806838683784 ], [ 3806425.376008400227875, 5297456.554444319568574 ], [ 3802564.151352714281529, 5298410.063018353655934 ], [ 3801113.856124200858176, 5300811.550097609870136 ], [ 3802732.458182363305241, 5304692.149358347058296 ], [ 3808322.931970115751028, 5311584.405471592210233 ], [ 3799699.719356313347816, 5324793.084697316400707 ], [ 3792997.7570486436598, 5333318.524641047231853 ], [ 3790244.022101813927293, 5338920.679890521802008 ], [ 3799579.10706680174917, 5342845.108221280388534 ], [ 3817386.590982605703175, 5350852.696821444667876 ], [ 3833061.94796058209613, 5360913.243080700747669 ], [ 3838848.456987005658448, 5376610.247337277978659 ], [ 3837547.472271871287376, 5384683.051558773033321 ], [ 3841395.588146388530731, 5385892.059891938231885 ], [ 3846524.358721159398556, 5379522.321580246090889 ], [ 3858314.851789401844144, 5384497.638231771998107 ], [ 3862587.617253113538027, 5391776.237194489687681 ], [ 3866259.575045705307275, 5403075.929300256073475 ], [ 3867157.973593944683671, 5411741.818534544669092 ], [ 3862012.960701681207865, 5420809.717049594037235 ], [ 3854127.406784638762474, 5429851.352738753892481 ], [ 3849553.229767407756299, 5435540.873172941617668 ], [ 3844140.88084171526134, 5439238.460166331380606 ], [ 3841534.274563944432884, 5442142.390384323894978 ], [ 3835684.709925707429647, 5442590.995071599259973 ], [ 3832762.269431865308434, 5445477.113459219224751 ], [ 3823964.410679575521499, 5449464.320268048904836 ], [ 3815447.243608051910996, 5460066.771412965841591 ], [ 3810012.879654709715396, 5462167.001615763641894 ], [ 3806615.033327244687825, 5468234.459628885611892 ], [ 3800003.7768444721587, 5474439.763530363328755 ], [ 3789761.83496128115803, 5482848.919317474588752 ], [ 3781881.852585146669298, 5486431.78058366291225 ], [ 3775553.170905835926533, 5491217.460590046830475 ], [ 3770336.321746882982552, 5496378.699993329122663 ], [ 3766873.881598062813282, 5501783.868354248814285 ], [ 3764280.02171581890434, 5509135.744285047054291 ], [ 3754180.254221700597554, 5511156.215266954153776 ], [ 3745526.408792310860008, 5519251.350063856691122 ], [ 3750225.682538017630577, 5522559.980446685105562 ], [ 3755066.501499155536294, 5536170.315652346238494 ], [ 3749332.513239243533462, 5540091.321428187191486 ], [ 3751214.929691878147423, 5543892.276949902065098 ], [ 3742803.538636051118374, 5547767.175745568238199 ], [ 3734936.673377062194049, 5552147.809944314882159 ], [ 3729811.923416517209262, 5564678.939766755327582 ], [ 3721306.548207649961114, 5573902.442312805913389 ], [ 3724389.946823725942522, 5581012.800639648921788 ], [ 3727139.491112404037267, 5581051.599327689036727 ], [ 3729180.872512030415237, 5575649.216645678505301 ], [ 3735636.236145881004632, 5564933.488095776177943 ], [ 3738329.79561550822109, 5564660.139601922594011 ], [ 3742607.118624444119632, 5581502.340226092375815 ], [ 3751534.621668986976147, 5590538.419591725803912 ], [ 3765543.574928259477019, 5594590.794321143068373 ], [ 3773003.206189451273531, 5597554.085736626759171 ], [ 3780437.729732664301991, 5593482.68738354742527 ], [ 3785846.93958854675293, 5598000.498474818654358 ], [ 3786243.125229068566114, 5605138.638210694305599 ], [ 3798163.436447305139154, 5605019.536529672332108 ], [ 3801657.971011260524392, 5615139.223676504567266 ], [ 3809342.27197136124596, 5618864.380389887839556 ], [ 3809726.811082373838872, 5621616.562100976705551 ], [ 3811477.665177068207413, 5621096.781483097933233 ], [ 3816342.046918489970267, 5616941.838838119059801 ], [ 3821386.112420959863812, 5625282.609525769948959 ], [ 3819994.620176353491843, 5628858.913463165983558 ], [ 3829805.659093851223588, 5631806.273182883858681 ], [ 3844814.097172466572374, 5633945.661918910220265 ], [ 3856745.131124688778073, 5641462.839177167974412 ], [ 3870200.229061647318304, 5650801.216317716985941 ], [ 3882226.515095525421202, 5655713.818613845854998 ], [ 3876759.213736824691296, 5665552.082540917210281 ], [ 3886790.627201220020652, 5664433.886519509367645 ], [ 3895006.419092109892517, 5646410.148152018897235 ], [ 3914159.41519628232345, 5645099.373575182631612 ], [ 3929278.260688469279557, 5699679.029202713631094 ], [ 3911869.260495021939278, 5731148.109323262237012 ], [ 3892394.787482062820345, 5760146.335713357664645 ], [ 3903082.984338829293847, 5797726.764955022372305 ], [ 3892444.462623181287199, 5824614.036409680731595 ], [ 3863883.314673051703721, 5867880.558060788549483 ], [ 3872078.909846739843488, 5915929.015552959404886 ], [ 3860092.23112147860229, 5964295.424202460795641 ], [ 3830276.455211311578751, 5988856.369047674350441 ], [ 3817878.249389458447695, 6016897.728018875233829 ], [ 3783095.046259038150311, 6019231.49365708604455 ], [ 3762996.137034160085022, 6047848.593513793312013 ], [ 3718084.42398465750739, 6029460.488006083294749 ], [ 3698096.850492359604686, 6013635.304436453618109 ], [ 3667340.895944108720869, 6004365.710901287384331 ], [ 3655208.180680884048343, 5987804.550042318180203 ], [ 3623869.332185707986355, 5991477.298619108274579 ], [ 3646348.289383464958519, 6011699.428504345938563 ], [ 3633031.630026810336858, 6034206.906247117556632 ], [ 3607773.587194512598217, 6036967.660821806639433 ], [ 3571123.535132620017976, 6039672.427625136449933 ], [ 3574328.48616199195385, 6053389.483730522915721 ], [ 3567205.029448272660375, 6072568.016669141128659 ], [ 3520655.3160350471735, 6078902.108201012946665 ], [ 3464081.759395625907928, 6088032.033732699230313 ], [ 3494549.563606171868742, 6037980.362486270256341 ], [ 3469338.580764980521053, 6028945.83792691398412 ], [ 3468034.257400855887681, 6006039.974456588737667 ], [ 3486443.136280077975243, 6002502.351190875284374 ], [ 3492189.86928970227018, 5994436.344882891513407 ], [ 3488930.04041753616184, 5988538.329635483212769 ] ]
+}
diff --git a/MessagesMap/geo/gre_eur_gauss.geojson b/MessagesMap/geo/gre_eur_gauss.geojson
new file mode 100644
index 000000000..d56bfbd44
--- /dev/null
+++ b/MessagesMap/geo/gre_eur_gauss.geojson
@@ -0,0 +1,11 @@
+{ "coordinates": [ [ [ 3476677.303190048318356, 6087007.257444866932929 ], [ 3476616.822004675399512, 6084966.811360620893538 ], [ 3473668.040791889186949, 6084136.65482482034713 ], [ 3474958.085608421824872, 6082784.623404480516911 ], [ 3474686.09936313983053, 6078799.581815544515848 ], [ 3477666.907604074571282, 6075342.610363858751953 ], [ 3478458.137393671087921, 6073492.401157525368035 ], [ 3479258.72941018268466, 6073538.567376623861492 ], [ 3481041.117867288179696, 6069136.443714180961251 ], [ 3481084.92734553059563, 6067637.231298245489597 ], [ 3480178.321920018643141, 6066491.516745407134295 ], [ 3480225.367629409302026, 6065791.416873103938997 ], [ 3482030.445277167484164, 6066083.865732400678098 ], [ 3483378.506749597843736, 6064778.721244581975043 ], [ 3483974.459224163554609, 6063226.091161146759987 ], [ 3483968.806775116827339, 6061625.055352501571178 ], [ 3485367.320772295352072, 6059818.473003786057234 ], [ 3487271.696009595412761, 6059011.685488608665764 ], [ 3488722.168830782175064, 6057054.701115871779621 ], [ 3488919.456368356477469, 6055601.327695346437395 ], [ 3489869.808718715794384, 6053870.073632965795696 ], [ 3489088.997096770443022, 6052994.578761538490653 ], [ 3487630.804641078226268, 6052647.335497889667749 ], [ 3487955.332369572483003, 6051844.152047887444496 ], [ 3488607.613161220215261, 6051391.110381573438644 ], [ 3489238.623185290955007, 6052517.903995002619922 ], [ 3490645.543693324085325, 6052414.511348939500749 ], [ 3491600.308246622327715, 6052362.507246378809214 ], [ 3492179.24110572738573, 6052938.084833488799632 ], [ 3492278.427850613836199, 6052160.730622250586748 ], [ 3492552.921309833880514, 6050981.703681353479624 ], [ 3491820.470023844856769, 6049026.361397593282163 ], [ 3491916.337048817425966, 6046365.880419854074717 ], [ 3491837.571855330374092, 6044533.019575617276132 ], [ 3490424.542005356401205, 6042903.018327214755118 ], [ 3488986.826742523815483, 6041901.200352019630373 ], [ 3487902.959149586502463, 6041577.248776316642761 ], [ 3487447.089427972212434, 6040673.673030675388873 ], [ 3487848.103307355660945, 6039893.309557938948274 ], [ 3488376.412795174401253, 6039565.102359182201326 ], [ 3487212.267653345130384, 6037782.777916644699872 ], [ 3488747.531551353633404, 6036772.5651326905936 ], [ 3491344.281854037661105, 6036590.818132951855659 ], [ 3493260.651203465182334, 6036587.600898121483624 ], [ 3494648.877097764518112, 6037768.053973471745849 ], [ 3495532.680629992857575, 6039301.104760761372745 ], [ 3496718.211747415363789, 6040858.722266473807395 ], [ 3497097.05774338170886, 6042391.427392679266632 ], [ 3498835.000953202601522, 6043571.445409429259598 ], [ 3499288.190216931048781, 6043621.594292171299458 ], [ 3499842.018962797708809, 6041762.324521061964333 ], [ 3500774.142192447092384, 6040556.009328267537057 ], [ 3501001.161251977551728, 6039324.209037479013205 ], [ 3500547.610257353633642, 6038896.676230365410447 ], [ 3500295.591036630328745, 6038796.068267208524048 ], [ 3500799.714126588311046, 6038469.222843501716852 ], [ 3500446.927848208229989, 6037664.372356803156435 ], [ 3498757.581189809367061, 6036482.201649500988424 ], [ 3497320.008458916097879, 6036029.930034782737494 ], [ 3495931.345742169767618, 6034168.640607496723533 ], [ 3494137.630558690987527, 6032231.968735426664352 ], [ 3492773.114790372550488, 6031226.519073423929513 ], [ 3490676.500464137643576, 6030600.56354686897248 ], [ 3489162.783735713455826, 6031107.682208864949644 ], [ 3487648.182124414946884, 6031161.885515580885112 ], [ 3484312.695420804899186, 6030265.217610725201666 ], [ 3482341.424828741233796, 6029818.884594698436558 ], [ 3480674.634771616198123, 6029800.410619959235191 ], [ 3478908.206775232683867, 6030085.344181993044913 ], [ 3477996.738320228643715, 6029585.711916355416179 ], [ 3477080.912461290601641, 6028254.550017295405269 ], [ 3477379.575982786249369, 6027345.612320648506284 ], [ 3478539.832447910681367, 6026911.455994581803679 ], [ 3479904.242047449573874, 6026880.066496703773737 ], [ 3480101.803682956378907, 6025820.182651890441775 ], [ 3479643.165972984395921, 6024989.932254783809185 ], [ 3478554.028805126436055, 6024540.864729285240173 ], [ 3477412.493434378411621, 6023764.300371735356748 ], [ 3476777.402341734152287, 6023187.159839357249439 ], [ 3475768.219432229176164, 6023646.534396583214402 ], [ 3475060.184485014993697, 6023650.325195582583547 ], [ 3474148.007917058188468, 6023327.368328050710261 ], [ 3474495.186071339063346, 6022088.903486514464021 ], [ 3474441.927685622125864, 6021609.641836904920638 ], [ 3474141.616244169417769, 6022191.833146094344556 ], [ 3473910.235273453872651, 6021536.905754138715565 ], [ 3474182.707033030688763, 6020500.344429734162986 ], [ 3474708.681990761309862, 6019512.672322079539299 ], [ 3475845.500116827897727, 6019102.501202166080475 ], [ 3476699.710459274705499, 6017835.186774375848472 ], [ 3477935.615038743708283, 6016843.789863794110715 ], [ 3479225.334938751067966, 6016433.502446329221129 ], [ 3480390.684009729884565, 6016504.200149700976908 ], [ 3480876.818839738145471, 6017689.628717071376741 ], [ 3482142.117695638444275, 6017507.710238441824913 ], [ 3482953.970881132874638, 6017934.085652164183557 ], [ 3483408.243424926418811, 6017528.238434339873493 ], [ 3484421.493565948214382, 6017651.013177098706365 ], [ 3484876.836277821101248, 6017523.18357397057116 ], [ 3485076.370753273367882, 6016587.713416242040694 ], [ 3486089.781757748220116, 6016710.881793124601245 ], [ 3487357.143783047329634, 6017111.490024683065712 ], [ 3488675.669734642375261, 6017815.428914855234325 ], [ 3489660.672165025025606, 6016726.760208196938038 ], [ 3489961.711308636702597, 6015412.022719726897776 ], [ 3490011.445208260323852, 6014982.233129035681486 ], [ 3491785.766385649330914, 6015484.237369721755385 ], [ 3493054.258189263753593, 6016745.67030805721879 ], [ 3494423.38638886064291, 6018057.503272474743426 ], [ 3495715.754178680013865, 6019318.934935205616057 ], [ 3496501.127805914729834, 6020303.026617791503668 ], [ 3497184.568025426007807, 6020630.765349281020463 ], [ 3497209.735056382138282, 6020403.534698413684964 ], [ 3496626.938052949495614, 6019318.181960014626384 ], [ 3496271.064359024167061, 6017424.111700810492039 ], [ 3495383.716512867249548, 6016313.201293854042888 ], [ 3494445.060474902391434, 6015025.325029075145721 ], [ 3493557.23128197202459, 6014217.566314378753304 ], [ 3492188.937240012455732, 6014219.676489369943738 ], [ 3490465.796297576278448, 6014172.351298003457487 ], [ 3489705.399327688384801, 6014072.859690828248858 ], [ 3489424.519602987449616, 6013137.982663879171014 ], [ 3489396.270064483396709, 6011873.540976386517286 ], [ 3489699.644226006697863, 6011493.435010779649019 ], [ 3489543.397864985279739, 6009672.140033581294119 ], [ 3488398.721078993752599, 6008358.791234686039388 ], [ 3487887.65149036468938, 6006967.687228480353951 ], [ 3487783.394649030640721, 6005929.708095429465175 ], [ 3487374.340646149590611, 6004866.988068813458085 ], [ 3488133.712167686782777, 6003952.94100640527904 ], [ 3488535.208597412332892, 6002000.580343826673925 ], [ 3489344.124714308883995, 6000223.984489561058581 ], [ 3490436.11603883607313, 5999790.509757761843503 ], [ 3490713.178875850513577, 5998521.796330644749105 ], [ 3492062.576726691331714, 5999609.919839192181826 ], [ 3493970.034583770204335, 6000393.157158768735826 ], [ 3495316.664923462551087, 6000036.604230587370694 ], [ 3496204.045478584710509, 5997321.685142442584038 ], [ 3496635.361620070878416, 5995900.251514022238553 ], [ 3497906.500985828693956, 5994020.95537724904716 ], [ 3498822.481232897378504, 5993157.263414944522083 ], [ 3497244.117597866337746, 5992853.166500536724925 ], [ 3497294.824806632939726, 5992497.560236354358494 ], [ 3499076.87488862266764, 5992369.874042908661067 ], [ 3498898.303493827115744, 5990820.254816381260753 ], [ 3497751.613563754130155, 5989448.404544831253588 ], [ 3496707.123435814864933, 5989423.606808953918517 ], [ 3494235.068423153832555, 5988638.041764864698052 ], [ 3492504.350645236670971, 5989809.698533716611564 ], [ 3490874.977210045792162, 5990270.040501957759261 ], [ 3489574.504850093275309, 5989612.027205031365156 ], [ 3489215.278043416794389, 5988494.443721514195204 ], [ 3490155.682392837014049, 5987373.687156686559319 ], [ 3492368.340063839685172, 5984520.798736343160272 ], [ 3493489.048904071096331, 5983526.719524797052145 ], [ 3493459.034774763509631, 5980293.705846439115703 ], [ 3494758.039027869235724, 5977795.738842130638659 ], [ 3496033.422306774184108, 5975934.107598604634404 ], [ 3496748.48243021639064, 5975474.720108155161142 ], [ 3497258.913039631675929, 5974429.09876615088433 ], [ 3498741.000572288874537, 5973510.456161595880985 ], [ 3501450.354571287985891, 5974326.542106374166906 ], [ 3502728.207479953300208, 5974403.614853972569108 ], [ 3504722.662174994125962, 5973461.69496139511466 ], [ 3506410.543320814613253, 5972928.118898688815534 ], [ 3508481.40759842749685, 5972905.927353111095726 ], [ 3510858.726791886147112, 5973038.396658951416612 ], [ 3514437.667801415082067, 5973099.135321523062885 ], [ 3517689.619749707169831, 5971732.852935117669404 ], [ 3520071.79460312332958, 5970823.944320211187005 ], [ 3522100.38359285145998, 5969148.617584634572268 ], [ 3524390.52389700524509, 5966683.225926808081567 ], [ 3525932.338460141792893, 5965644.248623124323785 ], [ 3526715.26692469092086, 5963067.739376971498132 ], [ 3527108.010876456275582, 5961612.809277003630996 ], [ 3528252.460967866238207, 5958831.762410629540682 ], [ 3528673.873235184699297, 5957017.511846443638206 ], [ 3531431.443511363118887, 5955140.881238510832191 ], [ 3533156.49808227783069, 5954358.971981920301914 ], [ 3534888.61565616633743, 5952706.683271947316825 ], [ 3535649.97364470269531, 5950508.755971888080239 ], [ 3536279.568306562490761, 5948821.704728314653039 ], [ 3535742.444965830538422, 5948484.26254793908447 ], [ 3535600.479971596039832, 5946867.530726219527423 ], [ 3535406.01020170468837, 5945378.146233955398202 ], [ 3536366.456744550261647, 5944230.741993399336934 ], [ 3537639.202111887279898, 5942700.664343249052763 ], [ 3540616.254224290139973, 5940645.490606938488781 ], [ 3543698.68793532345444, 5938617.915230557322502 ], [ 3545662.204447855707258, 5937994.112867050804198 ], [ 3545543.090832621790469, 5936990.590394141152501 ], [ 3542754.872309128753841, 5937607.029409196227789 ], [ 3540966.085153403226286, 5938901.687121853232384 ], [ 3539080.200113159604371, 5939605.017451407387853 ], [ 3537185.967812778893858, 5941438.940311964601278 ], [ 3536124.192986026406288, 5942278.004538708366454 ], [ 3535003.894007174298167, 5944117.738086530938745 ], [ 3533781.426410960033536, 5945981.924722048453987 ], [ 3532783.738886163104326, 5948924.170413659885526 ], [ 3532130.958529762923717, 5950432.066735602915287 ], [ 3530733.010538680944592, 5952062.726530008949339 ], [ 3528176.512794377282262, 5954403.192552183754742 ], [ 3526908.81742023024708, 5956136.757830238901079 ], [ 3525613.749208349268883, 5958356.028938844799995 ], [ 3523933.308036295231432, 5960981.771894171833992 ], [ 3522225.354591047856957, 5964398.712193109095097 ], [ 3520982.854110349435359, 5967305.124535276554525 ], [ 3519287.987911266740412, 5968625.561561356298625 ], [ 3517926.941844350192696, 5969870.935102732852101 ], [ 3516007.293956977315247, 5970144.692940020933747 ], [ 3511886.873376769479364, 5970872.42351512145251 ], [ 3509534.005070523358881, 5970764.942434266209602 ], [ 3505442.229162491392344, 5970222.456928632222116 ], [ 3502450.280958690214902, 5968407.593091765418649 ], [ 3501452.385463931132108, 5967998.666074465960264 ], [ 3502425.703641577623785, 5966492.391245706938207 ], [ 3502938.765823274850845, 5964857.773516360670328 ], [ 3502503.397950951941311, 5964857.519704677164555 ], [ 3501606.420056908857077, 5966645.280344867147505 ], [ 3500761.467388154473156, 5967513.351773649454117 ], [ 3498611.505742757115513, 5967666.702764188870788 ], [ 3496384.280060479417443, 5967003.944920568726957 ], [ 3493516.553727657999843, 5966470.706748393364251 ], [ 3490956.549612362403423, 5966526.039071647450328 ], [ 3488141.374203115701675, 5966889.892934074625373 ], [ 3485429.576104983687401, 5967433.852817035280168 ], [ 3483361.405270639341325, 5968870.570711989887059 ], [ 3481144.941529768053442, 5971278.058991043828428 ], [ 3480585.90487444261089, 5972147.796602218411863 ], [ 3479944.902084841392934, 5971742.319209679029882 ], [ 3479259.78169163595885, 5972944.272228319197893 ], [ 3479671.720897752325982, 5973605.57880505733192 ], [ 3477523.777500263880938, 5973462.420466737821698 ], [ 3475038.041070946492255, 5972327.254984011873603 ], [ 3473597.222281103953719, 5970753.292319818399847 ], [ 3472227.788292527664453, 5968438.451589711010456 ], [ 3471273.561512243002653, 5967244.088373540900648 ], [ 3470724.346342022996396, 5965382.846015744842589 ], [ 3470026.726949790026993, 5964416.332110068760812 ], [ 3469884.352837080601603, 5962193.559136566706002 ], [ 3469518.946333679836243, 5961173.185775845311582 ], [ 3469148.664925666991621, 5959436.442868684418499 ], [ 3468523.683629658073187, 5958007.860167969949543 ], [ 3467899.551634310279042, 5956758.086275375448167 ], [ 3467012.5337621322833, 5954664.949093569070101 ], [ 3466484.583247231319547, 5952619.694428771734238 ], [ 3465886.56201363587752, 5951599.168357658199966 ], [ 3465966.649820008780807, 5948471.469624611549079 ], [ 3466514.704319792799652, 5946031.051722260192037 ], [ 3467654.699947436805815, 5943534.009449102915823 ], [ 3468440.193999410606921, 5941731.634774578735232 ], [ 3468999.306686798110604, 5940649.36988194193691 ], [ 3469761.206471896730363, 5939026.133002907969058 ], [ 3470135.115965273231268, 5937070.796957628801465 ], [ 3471562.621569440700114, 5934542.515133575536311 ], [ 3471888.831830199342221, 5933048.822247330099344 ], [ 3471181.839416280388832, 5931277.813002342358232 ], [ 3470247.435915781650692, 5930357.109370796009898 ], [ 3468543.862083675805479, 5930239.441170612350106 ], [ 3467685.270660751499236, 5929189.8042405359447 ], [ 3467081.363217087462544, 5927700.523775080218911 ], [ 3466256.80613265838474, 5927912.351402817294002 ], [ 3467384.130276493728161, 5930427.469608259387314 ], [ 3469147.159465497825295, 5931753.834628779441118 ], [ 3470830.574399704113603, 5932875.168024580925703 ], [ 3470323.601052484475076, 5934267.258341459557414 ], [ 3469010.808993947692215, 5934558.572257807478309 ], [ 3467031.455326407216489, 5935343.390442443080246 ], [ 3464844.698914587497711, 5935873.376480970531702 ], [ 3463710.873431571293622, 5935881.957258437760174 ], [ 3462404.245113571174443, 5936843.328530467115343 ], [ 3459169.611636072862893, 5938206.64283024892211 ], [ 3458004.053356953430921, 5940374.942820684053004 ], [ 3456810.54819371085614, 5942183.372621999122202 ], [ 3453724.933793261647224, 5942469.428621008060873 ], [ 3451402.34242440899834, 5941850.907283470965922 ], [ 3449968.027718199416995, 5940093.78015689458698 ], [ 3449506.415085554122925, 5937863.313724148087204 ], [ 3449218.692173304501921, 5935064.251987352967262 ], [ 3449019.958390897139907, 5933368.87287231720984 ], [ 3449007.466803256887943, 5932211.259051729924977 ], [ 3450732.393905590288341, 5931909.915176779031754 ], [ 3452023.500862216111273, 5932051.023267468437552 ], [ 3453785.02066671429202, 5932831.068790009245276 ], [ 3454702.209136665798724, 5931664.340971240773797 ], [ 3454704.339597740676254, 5929193.306496763601899 ], [ 3454547.126716680824757, 5926258.815160104073584 ], [ 3454297.831244829576463, 5924509.052633958868682 ], [ 3453436.544310845900327, 5923615.337047577835619 ], [ 3453370.927973054349422, 5922198.0477643487975 ], [ 3452638.035677419509739, 5921276.978695284575224 ], [ 3451979.810506428591907, 5920097.128058318980038 ], [ 3450572.618216125294566, 5919053.819553339853883 ], [ 3448938.665912148077041, 5918632.462204776704311 ], [ 3447391.162750523537397, 5919036.412611030973494 ], [ 3446704.213739825412631, 5920050.267837939783931 ], [ 3445436.657299753278494, 5922256.93124105874449 ], [ 3444445.376104539260268, 5923686.429506257176399 ], [ 3443270.505878716241568, 5924834.438234180212021 ], [ 3442367.409962251316756, 5924922.653455334715545 ], [ 3441045.313221304677427, 5924552.333469422534108 ], [ 3440367.214761393144727, 5924045.317873069085181 ], [ 3440081.085191955789924, 5923894.265626089647412 ], [ 3438960.289806449785829, 5925145.727907898835838 ], [ 3437775.150844753719866, 5927351.171701144427061 ], [ 3437667.781184329651296, 5929000.879488595761359 ], [ 3437609.03816049778834, 5930417.701596533879638 ], [ 3437720.372066305018961, 5931034.013309716247022 ], [ 3439234.401194016449153, 5930396.536052782088518 ], [ 3440760.11646825587377, 5930660.331835241988301 ], [ 3442625.690823226235807, 5931306.530912490561604 ], [ 3443557.360421299003065, 5931552.67557420488447 ], [ 3444520.762324354611337, 5932313.264070412144065 ], [ 3444767.297731639351696, 5933545.304144686087966 ], [ 3445171.049471332225949, 5935006.658037713728845 ], [ 3444564.248057119548321, 5936016.577023228630424 ], [ 3443783.491945372894406, 5937542.520102150738239 ], [ 3443183.511062816251069, 5939065.935103427618742 ], [ 3444373.255398991052061, 5939488.537014181725681 ], [ 3444038.687686034478247, 5941675.83074155729264 ], [ 3441999.091217389795929, 5941186.859105006791651 ], [ 3441682.267003884073347, 5942628.821024079807103 ], [ 3440547.964738555718213, 5944516.958514201454818 ], [ 3439518.418841506354511, 5946480.262995032593608 ], [ 3438568.430191929917783, 5946595.193164446391165 ], [ 3436757.97238511685282, 5945823.819847674109042 ], [ 3436424.658952358178794, 5947803.656272273510695 ], [ 3435794.304737102705985, 5948709.835236906073987 ], [ 3435562.271022037602961, 5950533.361839624121785 ], [ 3435627.348826813045889, 5951532.082239156588912 ], [ 3436238.614928482566029, 5953035.571394780650735 ], [ 3434683.082664306275547, 5953825.505866463296115 ], [ 3431225.680597115308046, 5954438.43411442451179 ], [ 3428042.019134792499244, 5954434.955622931011021 ], [ 3424132.954372886102647, 5954035.453433121554554 ], [ 3420662.623981730546802, 5953811.043793925084174 ], [ 3417358.084225899539888, 5952817.552741648629308 ], [ 3414515.304292720276862, 5953278.455503807403147 ], [ 3408574.040819264948368, 5951545.100782874971628 ], [ 3406190.520086363889277, 5950566.599212774075568 ], [ 3403456.761280425358564, 5950109.137784102000296 ], [ 3400031.293022985104471, 5951001.319529866799712 ], [ 3393309.005317478440702, 5951508.163937739096582 ], [ 3389864.618126108776778, 5951485.115436712279916 ], [ 3386708.577799924649298, 5950637.017777714878321 ], [ 3385159.556979889981449, 5950366.861781798303127 ], [ 3383445.997129346244037, 5949690.849111491814256 ], [ 3381870.667392538394779, 5948396.06060378625989 ], [ 3379935.811761349905282, 5947161.888310228474438 ], [ 3378858.489231504965574, 5945289.741361330263317 ], [ 3378408.761624115519226, 5945814.868023200891912 ], [ 3377590.491221052594483, 5944038.47620371170342 ], [ 3375116.210454526823014, 5941996.77489753626287 ], [ 3373575.08113806694746, 5940238.72660840395838 ], [ 3373645.036291722208261, 5939002.754042189568281 ], [ 3376925.006747884210199, 5936292.569189994595945 ], [ 3377457.266654254868627, 5934940.725709207355976 ], [ 3374967.4192228410393, 5932483.310416745953262 ], [ 3373278.96142367599532, 5933043.231897374615073 ], [ 3371733.026679804548621, 5933136.436747873201966 ], [ 3370160.365371438674629, 5936010.665202242322266 ], [ 3369519.076137204654515, 5935204.872746789827943 ], [ 3370623.14611141057685, 5932188.231711954809725 ], [ 3369114.591493148822337, 5929911.514532618224621 ], [ 3368440.948788946028799, 5926115.48908681795001 ], [ 3367815.174491509795189, 5922211.898900600150228 ], [ 3367855.358955427072942, 5919939.24583179783076 ], [ 3367481.656192598398775, 5917677.045145064592361 ], [ 3366519.759346931241453, 5916618.93251958116889 ], [ 3367844.007828892674297, 5913945.794399360194802 ], [ 3369891.462418453767896, 5913010.317344238981605 ], [ 3370114.172645153477788, 5913573.019863194786012 ], [ 3372171.915933999232948, 5913000.192899932153523 ], [ 3375694.094334222376347, 5912906.838117407634854 ], [ 3378958.63119217986241, 5912874.349174916744232 ], [ 3381492.820797096937895, 5912655.416653768159449 ], [ 3383761.873747890349478, 5912185.763681191019714 ], [ 3387057.6894920039922, 5911278.965560235083103 ], [ 3389231.434091472998261, 5911124.437441256828606 ], [ 3389169.990427058190107, 5910712.10502291098237 ], [ 3385800.536714525893331, 5910740.032295181415975 ], [ 3383269.018336617387831, 5911111.788336644880474 ], [ 3382339.612016226630658, 5909168.814603465609252 ], [ 3382303.83582130772993, 5907720.653053808026016 ], [ 3382690.641357883810997, 5906572.273836356587708 ], [ 3382015.770535920746624, 5904465.816472715698183 ], [ 3380989.873488475568593, 5902885.385575579479337 ], [ 3380601.92565342830494, 5901910.534897705540061 ], [ 3380963.030417488887906, 5899724.451104337349534 ], [ 3381006.272233997937292, 5897285.966047517023981 ], [ 3380571.120637733489275, 5896518.658477083779871 ], [ 3381950.119964316021651, 5895498.57891889102757 ], [ 3380124.136973114684224, 5895284.522914436645806 ], [ 3379353.156213115900755, 5893591.053024855442345 ], [ 3378897.736422620248049, 5892044.881480769254267 ], [ 3378243.114757189992815, 5890866.917534163221717 ], [ 3378562.644735089503229, 5889092.39410496596247 ], [ 3379631.040984740946442, 5888078.060530565679073 ], [ 3379297.529351510107517, 5885175.069798098877072 ], [ 3379711.781163732521236, 5880898.433419520966709 ], [ 3380381.403146901167929, 5876351.257420996204019 ], [ 3377849.263701925519854, 5869167.572208140976727 ], [ 3371206.723894194699824, 5859363.605619667097926 ], [ 3371527.624746496789157, 5857629.285488212481141 ], [ 3369980.544609344564378, 5854688.178933726623654 ], [ 3368376.925378764048219, 5836115.600377579219639 ], [ 3367449.391853407025337, 5834932.172175120562315 ], [ 3364635.786091762594879, 5836060.378633598797023 ], [ 3363178.295037750620395, 5836678.985137461684644 ], [ 3360259.830418622121215, 5835921.066314455121756 ], [ 3355996.562058160547167, 5837831.420854992233217 ], [ 3353407.414001809898764, 5837540.864718444645405 ], [ 3350618.66691506979987, 5837625.520739251747727 ], [ 3347601.42301795585081, 5837140.95612277276814 ], [ 3345436.599921233952045, 5835317.092675862833858 ], [ 3346230.910827414598316, 5833767.356425877660513 ], [ 3345673.96247839089483, 5831155.126211114227772 ], [ 3348989.942511128727347, 5827525.473647148348391 ], [ 3348192.509100822266191, 5827339.569121494889259 ], [ 3345941.73168804962188, 5827936.415297140367329 ], [ 3345420.68796781077981, 5826478.587266082875431 ], [ 3342795.582504959311336, 5826930.849230648949742 ], [ 3344366.017807743046433, 5823193.267107733525336 ], [ 3343657.871893892996013, 5819209.242543862201273 ], [ 3347499.253721815999597, 5816925.581227378919721 ], [ 3354561.335717626847327, 5816078.104852819815278 ], [ 3354158.508194022811949, 5814981.891949186101556 ], [ 3360410.07235207175836, 5813427.94102281704545 ], [ 3362996.824905620422214, 5816996.017746383324265 ], [ 3363939.139830404892564, 5816653.312081508338451 ], [ 3364874.159504909534007, 5812194.532633400522172 ], [ 3366096.086246723774821, 5810418.508456693962216 ], [ 3366961.268144804984331, 5809127.319069962948561 ], [ 3368172.814551057759672, 5808883.393574013374746 ], [ 3368827.476798161398619, 5803633.030413242988288 ], [ 3367622.175327560864389, 5802184.235616413876414 ], [ 3366151.062394830863923, 5798784.119034263305366 ], [ 3365519.953127616550773, 5795094.159021019004285 ], [ 3367092.672837511636317, 5792349.01920360326767 ], [ 3368069.139912141021341, 5791103.592635864391923 ], [ 3365597.090867508202791, 5790109.597399059683084 ], [ 3363098.702927227132022, 5790125.026598390191793 ], [ 3361671.551380389835685, 5788520.380895545706153 ], [ 3360531.128899966366589, 5785792.907465665601194 ], [ 3358424.072646805085242, 5784684.696112652309239 ], [ 3356556.446475771721452, 5784525.982402518391609 ], [ 3355394.674210579134524, 5783019.637303083203733 ], [ 3354493.993350301869214, 5779539.148845079354942 ], [ 3353125.28834030777216, 5778303.598316594958305 ], [ 3346633.135050836019218, 5778659.228243296965957 ], [ 3346386.405461711343378, 5775848.133750449866056 ], [ 3345958.498180619440973, 5775808.169491874985397 ], [ 3345570.669794476125389, 5775341.380574398674071 ], [ 3345915.712972332723439, 5774426.130252461880445 ], [ 3344716.62388327345252, 5773611.904277126304805 ], [ 3342034.409588743466884, 5773164.032505496405065 ], [ 3341392.093165616970509, 5771427.533043761737645 ], [ 3341604.64657867141068, 5769716.502373205497861 ], [ 3343151.784930287860334, 5769667.569369819015265 ], [ 3346612.322104823775589, 5767588.680359845981002 ], [ 3349786.27053867932409, 5764773.853767707012594 ], [ 3351001.773874350823462, 5764310.908056103624403 ], [ 3350956.643581428565085, 5761005.542051751166582 ], [ 3349780.946646358352154, 5761040.744923886843026 ], [ 3348694.386072121094912, 5760486.610711646266282 ], [ 3348454.893066844437271, 5757878.592688990756869 ], [ 3346462.724164394196123, 5755749.967545739375055 ], [ 3345580.431701772846282, 5754922.452193521894515 ], [ 3344393.333735656458884, 5754638.667289501056075 ], [ 3343615.865370575338602, 5753754.582464783452451 ], [ 3341729.641622526571155, 5755096.11836779024452 ], [ 3340852.271643145009875, 5756138.854005487635732 ], [ 3337433.614686265122145, 5754752.922583672218025 ], [ 3332228.736082796007395, 5752893.764317509718239 ], [ 3331484.686652049887925, 5753079.092910259030759 ], [ 3328537.479325717315078, 5751521.730785178951919 ], [ 3326763.096911835949868, 5749817.823775429278612 ], [ 3325255.827953243162483, 5749656.135702987201512 ], [ 3324174.002950797788799, 5750924.18424697034061 ], [ 3323135.752882071770728, 5750372.353652258403599 ], [ 3320413.791677316650748, 5752233.983169891871512 ], [ 3320203.366592936217785, 5750851.055406567640603 ], [ 3321443.058834682684392, 5749522.922141700051725 ], [ 3321288.639827483799309, 5746692.129620227962732 ], [ 3319064.428227376658469, 5747521.174326245673001 ], [ 3317318.221982288639992, 5749671.447625671513379 ], [ 3315008.851298400200903, 5749595.574773462489247 ], [ 3313754.942126256413758, 5751942.229805063456297 ], [ 3312705.989071736112237, 5752569.594331275671721 ], [ 3311498.001884695608169, 5751812.666121704503894 ], [ 3309891.581034890376031, 5751873.337724787183106 ], [ 3307358.448377598077059, 5751542.130840381607413 ], [ 3305888.227406042162329, 5753738.157947232015431 ], [ 3306925.84768676571548, 5754232.736749564297497 ], [ 3305271.256137723103166, 5755793.628545100800693 ], [ 3304612.516627378296107, 5755391.671358566731215 ], [ 3304316.483997973613441, 5756044.661156723275781 ], [ 3300518.059394588228315, 5754858.14023379702121 ], [ 3303523.705921316985041, 5752225.898682885803282 ], [ 3305131.703610144555569, 5750825.716953269205987 ], [ 3304725.069228686392307, 5748647.424826041795313 ], [ 3300695.251087656710297, 5749876.3569799028337 ], [ 3298051.387151405680925, 5752175.954285630956292 ], [ 3296791.089118544477969, 5750193.582437377423048 ], [ 3294787.194813664536923, 5749739.948938356712461 ], [ 3292318.856472048442811, 5748449.63183955848217 ], [ 3290791.532442485913634, 5749155.562595460563898 ], [ 3289755.415782129857689, 5747485.386199300177395 ], [ 3289920.600297310389578, 5746300.110409592278302 ], [ 3291301.480364295188338, 5744635.263140850700438 ], [ 3291346.548505856189877, 5743132.823075205087662 ], [ 3292459.85460583679378, 5742765.128410023637116 ], [ 3292442.820313614327461, 5741050.270462101325393 ], [ 3289569.277748117689043, 5739185.255158288404346 ], [ 3289938.450207580812275, 5737721.263886852189898 ], [ 3292831.856771476566792, 5737440.418076044879854 ], [ 3295447.548237965907902, 5735616.209272241219878 ], [ 3294546.444769632536918, 5734632.946251344867051 ], [ 3294769.298018490895629, 5733496.348698431625962 ], [ 3294763.373022275976837, 5730703.567491865716875 ], [ 3300766.162442500703037, 5728582.398163359612226 ], [ 3298604.938741892576218, 5723021.899275249801576 ], [ 3301252.56455855909735, 5720387.896259279921651 ], [ 3303898.60222477838397, 5716246.142775188200176 ], [ 3306407.695644464343786, 5712647.141253584064543 ], [ 3307041.350388780236244, 5707985.196954485028982 ], [ 3306760.580651397816837, 5704865.656977678649127 ], [ 3305694.239859013818204, 5699612.892034158110619 ], [ 3307059.12371038692072, 5699885.279689623042941 ], [ 3306408.677259535994381, 5698450.714144894853234 ], [ 3306891.591118102893233, 5695458.633018332533538 ], [ 3304303.466169738210738, 5693014.552679062820971 ], [ 3304820.446972778532654, 5692345.384959954768419 ], [ 3302757.350133853033185, 5692316.377612895332277 ], [ 3300807.180342230945826, 5688222.898389655165374 ], [ 3298167.731455585453659, 5684641.587172788567841 ], [ 3295598.09920528717339, 5682900.066120402887464 ], [ 3296643.59034953918308, 5680471.920284806750715 ], [ 3295340.14535668073222, 5680523.768423667177558 ], [ 3295423.864063579589128, 5675798.2512610508129 ], [ 3296144.030565818306059, 5674737.776216881349683 ], [ 3297818.871181078255177, 5674400.035455786623061 ], [ 3301846.811181697528809, 5677175.150566702708602 ], [ 3303004.950451396871358, 5676153.443406596779823 ], [ 3300069.322801499627531, 5674855.088434789329767 ], [ 3302601.980081139598042, 5672747.463959520682693 ], [ 3301543.437256735749543, 5672136.245121591724455 ], [ 3298906.924106827005744, 5671586.597227867692709 ], [ 3296411.522928901016712, 5670489.049561847932637 ], [ 3295915.934955024160445, 5668986.453105127438903 ], [ 3292843.561578573659062, 5667151.291205334477127 ], [ 3290555.82791165355593, 5665883.689916778355837 ], [ 3288726.071391376666725, 5663835.839024382643402 ], [ 3287655.788463062606752, 5661701.903095590882003 ], [ 3287788.022429387550801, 5660933.985525010153651 ], [ 3286589.163556799292564, 5659676.030673863366246 ], [ 3285675.648484024684876, 5660040.748064618557692 ], [ 3283969.518847334198654, 5662345.04369845148176 ], [ 3283910.612274311482906, 5663545.414018142968416 ], [ 3282216.161774517036974, 5662200.924963196739554 ], [ 3280462.666012768168002, 5662057.389897791668773 ], [ 3281149.725693407002836, 5660230.614482069388032 ], [ 3281007.559314908459783, 5658165.921700863167644 ], [ 3282057.265123712364584, 5657140.391278399154544 ], [ 3282195.721687640529126, 5656534.878498041070998 ], [ 3282895.95685621490702, 5656287.340810407884419 ], [ 3282895.669324495829642, 5654978.694535035640001 ], [ 3281921.831084162462503, 5653928.857449941337109 ], [ 3282164.998008157592267, 5653209.464688984677196 ], [ 3284269.431074277497828, 5653830.426918645389378 ], [ 3286175.214554916135967, 5654951.118787158280611 ], [ 3287108.409572302829474, 5653712.820064155384898 ], [ 3288543.489978682715446, 5654035.741379365324974 ], [ 3291436.881228879094124, 5653918.27361779846251 ], [ 3290313.565470241010189, 5651836.339308062568307 ], [ 3289686.244772073347121, 5651207.041993699036539 ], [ 3290479.113975885789841, 5650520.071423185057938 ], [ 3290561.484402420930564, 5648497.187573024071753 ], [ 3293036.209390486590564, 5647415.017832157202065 ], [ 3295798.145860120654106, 5646650.238728865049779 ], [ 3294738.588578765746206, 5644780.477730887010694 ], [ 3294251.966444883961231, 5642176.986034880392253 ], [ 3295429.911229199264199, 5641474.552059262059629 ], [ 3294038.655232372693717, 5639561.356737680733204 ], [ 3293995.366815812885761, 5638469.315338461659849 ], [ 3292764.31663303123787, 5639229.229561239480972 ], [ 3293061.974928386509418, 5639818.888335167430341 ], [ 3290278.663255966734141, 5638782.033004604279995 ], [ 3289921.04455010779202, 5636717.667458184063435 ], [ 3290352.365412818733603, 5635167.991757966578007 ], [ 3289253.805881355889142, 5633789.126760985702276 ], [ 3287483.172903017606586, 5634791.749206254258752 ], [ 3286712.606090801768005, 5633399.843388979323208 ], [ 3290445.980533546302468, 5630674.267780573107302 ], [ 3289638.17804793221876, 5628350.766448652371764 ], [ 3291080.021227496676147, 5627306.252356147393584 ], [ 3290796.933658776339144, 5624356.834253843873739 ], [ 3291817.968506064265966, 5625138.613653897307813 ], [ 3295043.942357258405536, 5624681.944071646779776 ], [ 3296693.072183144744486, 5624672.295821407809854 ], [ 3297022.031125582288951, 5623233.608524720184505 ], [ 3298291.305944545194507, 5620496.189007695764303 ], [ 3299538.523947891779244, 5618582.128672275692225 ], [ 3299570.386601782403886, 5617977.033707095310092 ], [ 3301329.404882526025176, 5617909.946983234956861 ], [ 3301850.0372996898368, 5617121.559172347187996 ], [ 3300977.427015575114638, 5615891.639724168926477 ], [ 3302162.35970045812428, 5615187.648598435334861 ], [ 3304315.478376474231482, 5615326.448602642863989 ], [ 3304771.804897429421544, 5615748.7816889481619 ], [ 3306900.287934598047286, 5615230.495798503048718 ], [ 3307079.866087296511978, 5614125.333096931688488 ], [ 3306591.203096221201122, 5612824.790656130760908 ], [ 3305774.137469457928091, 5611591.066646741703153 ], [ 3304942.406250657979399, 5609972.853507907129824 ], [ 3304475.208323805127293, 5607790.642461740411818 ], [ 3303121.993529784493148, 5605530.618068462237716 ], [ 3301353.683156805578619, 5604001.152899656444788 ], [ 3301730.339020947460085, 5602280.295819290913641 ], [ 3302920.122726429253817, 5600142.847967209294438 ], [ 3303375.420874859206378, 5599024.059985257685184 ], [ 3306211.227273208089173, 5599524.868260719813406 ], [ 3308305.345973854418844, 5599393.092373580671847 ], [ 3310312.637645933311433, 5598383.865202314220369 ], [ 3312501.882658250629902, 5597809.588673127815127 ], [ 3311240.651073282118887, 5596532.144901648163795 ], [ 3311733.563964404165745, 5594860.915249953046441 ], [ 3313415.794884885661304, 5593974.11834666505456 ], [ 3313854.436974819283932, 5592304.291197531856596 ], [ 3313032.955026251729578, 5589409.431447661481798 ], [ 3312072.228916894178838, 5587290.935907955281436 ], [ 3311029.729631065391004, 5586002.996481238864362 ], [ 3312851.407242894172668, 5584281.337762791663408 ], [ 3314117.023758508265018, 5582468.860902468673885 ], [ 3315507.704989780671895, 5581038.677639014087617 ], [ 3315297.356875209137797, 5579774.707749810069799 ], [ 3313834.56846736650914, 5579162.511864907108247 ], [ 3312422.890927549917251, 5578438.213172486051917 ], [ 3312239.135910466313362, 5577947.022410762496293 ], [ 3309972.402404117397964, 5579686.697858810424805 ], [ 3308506.895402595866472, 5579020.704504291526973 ], [ 3306869.852216646075249, 5576701.878813940100372 ], [ 3306799.393962098751217, 5574767.862640046514571 ], [ 3305868.182006170041859, 5573584.214415721595287 ], [ 3302236.243611646816134, 5572943.305715539492667 ], [ 3300930.017860637046397, 5572161.599748998880386 ], [ 3300144.664714391343296, 5570474.226262048818171 ], [ 3298369.740403208415955, 5570541.314642827026546 ], [ 3297743.478723010979593, 5568681.405577485449612 ], [ 3299343.308557103388011, 5566902.703473022207618 ], [ 3299230.510358086321503, 5563912.904206435196102 ], [ 3296171.838873052038252, 5563918.234956804662943 ], [ 3295589.09417691314593, 5561777.030498195439577 ], [ 3296171.017793844919652, 5559534.813624084927142 ], [ 3295251.905445382930338, 5558792.845377014018595 ], [ 3294582.857005979400128, 5555875.301833150908351 ], [ 3294043.740374677814543, 5553451.368433734402061 ], [ 3294251.548703496344388, 5550163.490096008405089 ], [ 3294854.003845088649541, 5546969.783770482055843 ], [ 3295568.789650909602642, 5543770.044488900341094 ], [ 3298137.080562264192849, 5539328.601225581951439 ], [ 3300777.904525710269809, 5538226.936383076943457 ], [ 3300591.881895710714161, 5536227.414858377538621 ], [ 3301506.195114647038281, 5533740.250803409144282 ], [ 3303618.107277052477002, 5530315.553367778658867 ], [ 3306815.368343424983323, 5528972.044152360409498 ], [ 3307534.157465105410665, 5527160.001687828451395 ], [ 3307574.282217318192124, 5525148.292277450673282 ], [ 3308696.975071363616735, 5525220.016151678748429 ], [ 3309319.512640958186239, 5526984.82498583663255 ], [ 3310993.110894050914794, 5526814.163781641982496 ], [ 3313538.285051248501986, 5522704.250675394199789 ], [ 3316548.763631217181683, 5522265.77099993545562 ], [ 3318269.067922670859843, 5523436.550476114265621 ], [ 3319914.076553903985769, 5522375.822257258929312 ], [ 3321440.373675452079624, 5521095.863393030129373 ], [ 3321037.886370377149433, 5519097.157823511399329 ], [ 3320105.186610721051693, 5514654.248619129881263 ], [ 3319773.01095390226692, 5511419.421840450726449 ], [ 3315822.932736824266613, 5507520.179941294714808 ], [ 3314171.082749260123819, 5505223.023033342324197 ], [ 3315870.534160270821303, 5505613.415918727405369 ], [ 3314532.170840017031878, 5502631.805040402337909 ], [ 3313095.445247137919068, 5500100.983985096216202 ], [ 3311017.866549561731517, 5498601.740836505778134 ], [ 3309590.280488845426589, 5496406.288109920918941 ], [ 3310745.491916314233094, 5494007.452444901689887 ], [ 3308854.629367342684418, 5491489.192985010333359 ], [ 3309181.777033932041377, 5484730.256133002229035 ], [ 3313247.010812398511916, 5484814.69000612013042 ], [ 3316492.805140560958534, 5484029.476350947283208 ], [ 3319570.990886089392006, 5481563.382581897079945 ], [ 3322287.867931914515793, 5478321.523670556023717 ], [ 3321235.587449310813099, 5477229.36579033266753 ], [ 3322961.23001126293093, 5474694.29114542901516 ], [ 3325099.315040445420891, 5474400.165233524516225 ], [ 3325489.990141856949776, 5472471.349379789084196 ], [ 3324874.834437024779618, 5470912.296611363068223 ], [ 3323205.481559679843485, 5471755.291168798692524 ], [ 3322589.593790540471673, 5470196.25176914408803 ], [ 3325043.291458060964942, 5469102.162997494451702 ], [ 3324770.449323010630906, 5467644.072313352487981 ], [ 3330396.944478302728385, 5462951.873545842245221 ], [ 3329867.541308000683784, 5460483.174938303418458 ], [ 3331884.418704373762012, 5459743.229751444421709 ], [ 3331997.139188995119184, 5456009.726872179657221 ], [ 3334142.840959931258112, 5455718.552115550264716 ], [ 3334888.504926262423396, 5454112.922470156103373 ], [ 3332903.71215025568381, 5452249.616904384456575 ], [ 3335540.263590311165899, 5449341.080995460040867 ], [ 3338722.781859032809734, 5449473.553945599123836 ], [ 3341862.933300896547735, 5448137.472464187070727 ], [ 3343528.168615900911391, 5450806.451900968328118 ], [ 3344353.816673721652478, 5451914.538425981998444 ], [ 3343517.471719459164888, 5454426.592455507256091 ], [ 3342416.623720757197589, 5455588.693145615980029 ], [ 3344471.86133106937632, 5456095.545629951171577 ], [ 3346230.777860252652317, 5454124.041230094619095 ], [ 3348534.500820654910058, 5455417.066853553988039 ], [ 3350126.772815578151494, 5455599.616118837147951 ], [ 3350754.49173581879586, 5453660.418490864336491 ], [ 3353042.183922443073243, 5454390.484042441472411 ], [ 3355475.836065769661218, 5452064.318216507323086 ], [ 3356254.627246593125165, 5451478.37142503913492 ], [ 3356823.409308884758502, 5447163.237360533326864 ], [ 3357294.292350224219263, 5443413.863010513596237 ], [ 3359579.423207714688033, 5443921.746796428225935 ], [ 3360987.298051197081804, 5445698.208481875248253 ], [ 3360590.471944097895175, 5447972.440755658783019 ], [ 3362292.112452516332269, 5447929.735422714613378 ], [ 3361455.444901064969599, 5446252.590178170241416 ], [ 3364057.079601254779845, 5445848.282199367880821 ], [ 3365712.608134512789547, 5443882.626493926160038 ], [ 3367896.633981968276203, 5444962.516656741499901 ], [ 3368642.734678084496409, 5442906.054143330082297 ], [ 3371980.076957716140896, 5444753.172875575721264 ], [ 3374577.838198570534587, 5444127.395131227560341 ], [ 3375230.834074159618467, 5442866.755629636347294 ], [ 3377448.385518587194383, 5445535.004778406582773 ], [ 3379165.533601051662117, 5446176.423322357237339 ], [ 3380870.060002903919667, 5446252.588262471370399 ], [ 3380943.272243015002459, 5449645.88072828296572 ], [ 3386280.102225408889353, 5449872.642567787319422 ], [ 3385796.10053317528218, 5448411.922651157714427 ], [ 3390566.658243300393224, 5448654.678026086650789 ], [ 3390875.608130455948412, 5447064.419459532946348 ], [ 3389591.466181238181889, 5445278.940169045701623 ], [ 3391921.592530752066523, 5442515.271651929244399 ], [ 3394684.753265048842877, 5438496.4903419399634 ], [ 3399004.598318004515022, 5438529.320804560557008 ], [ 3400550.565832812339067, 5436007.450539210811257 ], [ 3403823.534864186309278, 5434588.917249847203493 ], [ 3405324.923858066089451, 5435923.79734976682812 ], [ 3407253.612404691055417, 5435664.408813539892435 ], [ 3407806.925638171844184, 5434748.031439089216292 ], [ 3410777.704689913894981, 5435606.534004563465714 ], [ 3412390.74775867164135, 5436941.196620415896177 ], [ 3417001.288586367387325, 5433582.037418880499899 ], [ 3418957.754121808800846, 5435140.697352018207312 ], [ 3421562.956715709995478, 5434422.86768676713109 ], [ 3422379.521928046364337, 5435885.328683120198548 ], [ 3425744.129689838737249, 5432437.227799493819475 ], [ 3427224.266208763234317, 5432531.038100123405457 ], [ 3431741.759720824658871, 5429864.124439768493176 ], [ 3432188.612845612224191, 5429177.71805084683001 ], [ 3438648.05060533201322, 5426605.180578490719199 ], [ 3441146.937545709311962, 5426010.398915889672935 ], [ 3443774.019803314469755, 5426777.997880448587239 ], [ 3444100.72794422134757, 5425298.52947814296931 ], [ 3441018.598437156993896, 5424648.949427127838135 ], [ 3435781.751066780183464, 5415044.075494257733226 ], [ 3434346.99304535286501, 5409482.786479373462498 ], [ 3431221.258303457405418, 5406102.538412497378886 ], [ 3428935.65839446336031, 5406131.130265021696687 ], [ 3427750.173842236865312, 5402840.358370274305344 ], [ 3424540.760941871441901, 5402312.519788173958659 ], [ 3423922.496248530223966, 5398898.478684207424521 ], [ 3418439.855920504312962, 5391781.614717473275959 ], [ 3413938.186163996346295, 5389677.335346916690469 ], [ 3411663.536555420141667, 5383536.496232718229294 ], [ 3411904.082985449582338, 5376891.61941062938422 ], [ 3409316.030788129195571, 5373150.537075099535286 ], [ 3408785.944496780633926, 5368800.822875512763858 ], [ 3406375.0789919286035, 5362181.630773250944912 ], [ 3407291.672799124382436, 5354810.195661885663867 ], [ 3403448.705552062485367, 5352688.398006235249341 ], [ 3401584.928618231788278, 5345005.833078308030963 ], [ 3399793.318139681126922, 5341694.676721687428653 ], [ 3395999.802427514456213, 5336572.159682932309806 ], [ 3395949.444171581882983, 5333802.955227456986904 ], [ 3394183.205465422011912, 5332218.813860137946904 ], [ 3394595.380240791011602, 5329438.959857028909028 ], [ 3393640.730744129046798, 5327954.405255996622145 ], [ 3393211.342989110853523, 5323569.099566949531436 ], [ 3396360.318487529177219, 5318073.055318268015981 ], [ 3398280.386333810631186, 5315028.157073317095637 ], [ 3394487.641686563845724, 5310925.224588554352522 ], [ 3394423.981077825650573, 5307448.090825513936579 ], [ 3392276.657797023188323, 5304587.579806504771113 ], [ 3392216.062134995125234, 5301338.763521077111363 ], [ 3390511.565416099969298, 5297421.956813243217766 ], [ 3390967.2622343711555, 5290670.947469526901841 ], [ 3391033.667191634885967, 5287993.832420127466321 ], [ 3389003.368527046404779, 5285588.023670888505876 ], [ 3389741.017122888471931, 5281381.400491485372186 ], [ 3392819.984673089813441, 5277244.935140418820083 ], [ 3394591.297573479358107, 5271730.801261203363538 ], [ 3398013.090484702028334, 5273303.366132202558219 ], [ 3400707.498672728426754, 5273490.161846791394055 ], [ 3401828.139359097927809, 5270554.286127161234617 ], [ 3397955.972861425019801, 5270037.144075736403465 ], [ 3399998.7742646089755, 5266265.641654439270496 ], [ 3404585.363901938777417, 5267356.723335566930473 ], [ 3408467.720814909785986, 5268462.114133893512189 ], [ 3410960.008184376638383, 5270641.193926501087844 ], [ 3411809.170814938377589, 5272611.76419866271317 ], [ 3418007.770553172565997, 5272404.673736351542175 ], [ 3417943.807783041615039, 5267854.309229598380625 ], [ 3424162.66499761166051, 5268820.825085404329002 ], [ 3429899.930880703497678, 5268865.822852464392781 ], [ 3433071.157436474226415, 5269762.234682783484459 ], [ 3434850.180987715255469, 5271842.22906899638474 ], [ 3440261.857453008182347, 5274699.827171719633043 ], [ 3442490.564558713696897, 5275376.912784439511597 ], [ 3447264.346893206704408, 5273116.368334513157606 ], [ 3451332.917477671988308, 5270048.07426589820534 ], [ 3455199.364794543478638, 5270600.441492328420281 ], [ 3462217.406400641426444, 5270084.029153803363442 ], [ 3462115.544423341285437, 5272417.717338015325367 ], [ 3459549.26128638535738, 5273484.546016472391784 ], [ 3461315.280674194917083, 5275221.385354879312217 ], [ 3464252.008879730477929, 5277417.029964530840516 ], [ 3466808.071528592146933, 5274721.123694409616292 ], [ 3465386.15279812226072, 5271580.890589426271617 ], [ 3466536.707049704156816, 5268190.529738401062787 ], [ 3469135.004472768865526, 5272492.859014559537172 ], [ 3469979.735556862317026, 5277501.11858360376209 ], [ 3471967.220725715626031, 5277607.701487408950925 ], [ 3470702.75202213646844, 5281807.2296939836815 ], [ 3465559.106220188550651, 5281020.366265679709613 ], [ 3464258.458702430594712, 5278465.64477123785764 ], [ 3460407.672557429876179, 5279306.108462906442583 ], [ 3456223.297716085333377, 5282247.711141574196517 ], [ 3458593.045648510567844, 5287002.174714633263648 ], [ 3460609.171887961681932, 5291756.062570192851126 ], [ 3464815.680743975564837, 5293239.917727896012366 ], [ 3468788.821677942294627, 5295076.193848267197609 ], [ 3471580.842789880000055, 5294132.310972448438406 ], [ 3472965.241934643127024, 5291103.872367586009204 ], [ 3474382.003062608186156, 5295048.671408385969698 ], [ 3476475.191171061713248, 5293994.103915286250412 ], [ 3477158.859918577596545, 5290039.41158040985465 ], [ 3479963.103435664903373, 5291540.355961260385811 ], [ 3481008.256034184712917, 5290258.01567401830107 ], [ 3479137.714538817759603, 5288985.379434469155967 ], [ 3478663.841934462543577, 5287009.781976686790586 ], [ 3480528.078016032930464, 5286188.817212254740298 ], [ 3480169.60632247896865, 5283746.194585441611707 ], [ 3484950.365807128604501, 5281403.371870806440711 ], [ 3486007.458826499991119, 5283845.517693010158837 ], [ 3483447.301175893750042, 5286761.43484144937247 ], [ 3486135.654042263980955, 5288615.446468035690486 ], [ 3487996.787629834376276, 5286052.11650069616735 ], [ 3490561.435793025419116, 5284301.819737511686981 ], [ 3489857.728705554269254, 5282440.55852793995291 ], [ 3491137.812988555524498, 5279527.166797446087003 ], [ 3498265.325822744518518, 5281267.486392702907324 ], [ 3502819.825412742327899, 5282781.419286884367466 ], [ 3509244.374250557273626, 5281390.825471815653145 ], [ 3515089.988283701241016, 5279190.109527446329594 ], [ 3523858.888779436703771, 5277821.259920362383127 ], [ 3530889.600915216375142, 5274357.56218041293323 ], [ 3536891.081754141952842, 5268443.197854464873672 ], [ 3540068.480084216687828, 5266012.652949059382081 ], [ 3553417.852102292235941, 5266235.853332026861608 ], [ 3556211.594016916584224, 5268013.127959861420095 ], [ 3558968.337896288372576, 5273290.572352670133114 ], [ 3561899.912950264289975, 5272621.111900174990296 ], [ 3562284.403799287974834, 5269475.152123768813908 ], [ 3561479.815212272107601, 5268066.084516203962266 ], [ 3564183.976370956283063, 5267044.468381702899933 ], [ 3565719.279709361959249, 5265893.89309382904321 ], [ 3566403.429552424233407, 5267536.205747944302857 ], [ 3568290.372541241813451, 5266390.391143075190485 ], [ 3569818.320568916853517, 5265941.33543078135699 ], [ 3572029.144681832287461, 5267135.752536108717322 ], [ 3573221.965306973550469, 5265399.005599326454103 ], [ 3574655.764731553848833, 5263197.722430121153593 ], [ 3575151.409697893541306, 5261100.712370845489204 ], [ 3578547.478611031081527, 5261378.970776219852269 ], [ 3579748.168419474270195, 5259291.129584588110447 ], [ 3581883.149714205879718, 5257566.576770008541644 ], [ 3582808.240240890067071, 5258515.072712591849267 ], [ 3583446.076896387152374, 5254898.145284430123866 ], [ 3582763.456113736145198, 5253367.264338509179652 ], [ 3581358.256128629203886, 5253113.575677283108234 ], [ 3581141.269917943049222, 5251823.039311069063842 ], [ 3583929.950573852751404, 5245654.594349051825702 ], [ 3585183.727434386033565, 5248367.265037763863802 ], [ 3588707.837484438437968, 5248419.322575177066028 ], [ 3589154.649804558139294, 5249948.636216470040381 ], [ 3591389.652602588757873, 5249748.712714437395334 ], [ 3592909.037499438039958, 5250240.939058191142976 ], [ 3593529.716749743092805, 5248142.545198270119727 ], [ 3590780.658106582704931, 5243529.163231349550188 ], [ 3592564.436123425606638, 5242267.182938345707953 ], [ 3590476.508206685073674, 5240358.343124462291598 ], [ 3589307.2881701849401, 5239871.332583459094167 ], [ 3589344.571334254462272, 5237407.992308411747217 ], [ 3592638.066764779854566, 5237576.085658218711615 ], [ 3596022.389893831685185, 5239390.200858609750867 ], [ 3599875.145035069435835, 5241213.710675236769021 ], [ 3602669.389848919585347, 5242903.50682313926518 ], [ 3605032.05606965534389, 5248922.291727581992745 ], [ 3608066.80489345267415, 5250031.43032496329397 ], [ 3609625.871784656774253, 5254626.30302225984633 ], [ 3611348.46130685089156, 5256647.945228716358542 ], [ 3610419.388586510438472, 5262360.304890165105462 ], [ 3608763.424330571200699, 5263147.427640830166638 ], [ 3608694.033288604114205, 5266884.567464678548276 ], [ 3609118.909958738833666, 5269227.795274266041815 ], [ 3610647.321896548848599, 5268906.279476214200258 ], [ 3615249.731480587739497, 5267126.820916695520282 ], [ 3619348.372115508653224, 5267208.993084497749805 ], [ 3621032.431041778530926, 5270746.408954884856939 ], [ 3626079.967394401784986, 5270152.706479787826538 ], [ 3630572.067742535844445, 5268266.285531943663955 ], [ 3632807.319957664236426, 5267849.441527684219182 ], [ 3633446.057540745474398, 5265527.547462677583098 ], [ 3638095.929316089954227, 5267154.234824404120445 ], [ 3642637.700458443723619, 5268314.512101682834327 ], [ 3643857.431304589379579, 5266358.401632416062057 ], [ 3644800.262721888720989, 5266147.963323574513197 ], [ 3644817.604788166470826, 5265447.263283429667354 ], [ 3640165.15465962793678, 5263931.561806668527424 ], [ 3641139.183433841913939, 5262435.246510568074882 ], [ 3644198.11670959694311, 5262042.036850397475064 ], [ 3646308.03940167883411, 5262094.335843012668192 ], [ 3645636.6809899113141, 5260791.255818320438266 ], [ 3649977.000201102811843, 5256220.514234762638807 ], [ 3649895.504383739084005, 5254813.657967455685139 ], [ 3648493.041923482902348, 5254543.871222625486553 ], [ 3648898.53397985547781, 5252446.283060369081795 ], [ 3655244.936900129541755, 5252376.249460184946656 ], [ 3659944.748774581588805, 5252385.14824132528156 ], [ 3660356.915271494071931, 5254504.557586400769651 ], [ 3665364.514791925437748, 5256048.53507305495441 ], [ 3667446.723311715293676, 5257161.197963807731867 ], [ 3670269.322932854294777, 5257008.310153999365866 ], [ 3668257.917418883182108, 5253437.308276225812733 ], [ 3671669.364111591130495, 5253301.741627963259816 ], [ 3673464.882921018637717, 5256165.284245558083057 ], [ 3673885.756954886950552, 5257816.760811294429004 ], [ 3676428.008520286995918, 5259180.193365572020411 ], [ 3680419.411375533789396, 5259184.620946523733437 ], [ 3683007.097934948280454, 5259030.728365052491426 ], [ 3681644.402653094381094, 5261328.834081131033599 ], [ 3679505.29189323540777, 5262198.820665345527232 ], [ 3681762.838844546116889, 5265075.352458233945072 ], [ 3683571.641286125872284, 5267236.164021715521812 ], [ 3684911.747386515140533, 5265641.709323761053383 ], [ 3688876.447099495213479, 5266352.949248921126127 ], [ 3695183.112736156210303, 5267144.526237981393933 ], [ 3695319.863971607759595, 5270071.130221887491643 ], [ 3696119.325948164798319, 5274186.363479602150619 ], [ 3696906.828900756314397, 5275146.99231637455523 ], [ 3698455.322155223693699, 5274382.098087263293564 ], [ 3698165.873252294491976, 5276006.855788071639836 ], [ 3700872.075926858466119, 5275632.422248547896743 ], [ 3704272.418023795820773, 5275516.964767271652818 ], [ 3709753.506413412280381, 5276178.495045790448785 ], [ 3714834.560195084195584, 5274962.047557797282934 ], [ 3715225.076776642352343, 5277078.369512633420527 ], [ 3719598.942155567463487, 5279109.284095799550414 ], [ 3723200.924123435281217, 5279829.728579265065491 ], [ 3726460.559814589098096, 5280305.658364173956215 ], [ 3728479.740992708131671, 5279567.430374900810421 ], [ 3730448.767183461226523, 5280111.890556435100734 ], [ 3734937.954438397660851, 5279123.749624446034431 ], [ 3737407.580403123050928, 5278873.540395647287369 ], [ 3739839.115334124770015, 5279556.906656790524721 ], [ 3741062.50966218020767, 5281125.072306622751057 ], [ 3740314.499946163035929, 5285061.61410831194371 ], [ 3738462.100503182038665, 5287434.47964827530086 ], [ 3737671.088330583646894, 5289617.026910294778645 ], [ 3741138.691207077819854, 5290575.791679365560412 ], [ 3743583.974459180608392, 5293590.783346704207361 ], [ 3744239.741539272945374, 5294666.666533531621099 ], [ 3745464.946214229334146, 5293320.574310488067567 ], [ 3743998.069396694656461, 5289296.49346340354532 ], [ 3744183.253322290256619, 5287671.990883053280413 ], [ 3746692.623504033312201, 5289177.121603433042765 ], [ 3750788.186702605802566, 5289119.279253566637635 ], [ 3752676.163812062237412, 5288734.667057823389769 ], [ 3757447.123620067723095, 5289293.919177147559822 ], [ 3759273.323339673690498, 5290307.941840749233961 ], [ 3759434.355598406866193, 5286699.644191927276552 ], [ 3760924.608653508126736, 5284782.653198830783367 ], [ 3763488.720214647240937, 5282446.77900482993573 ], [ 3764875.338989542797208, 5282859.968370902352035 ], [ 3766495.511189344339073, 5283284.17008647415787 ], [ 3769066.47902257181704, 5283402.444049267098308 ], [ 3770618.857421291992068, 5287792.848045555874705 ], [ 3774917.488424092996866, 5288461.269915884360671 ], [ 3781994.922287775669247, 5289733.756127413362265 ], [ 3781684.184308716095984, 5288901.981460696086287 ], [ 3784281.404768616426736, 5288445.005778755992651 ], [ 3783899.587727916426957, 5286675.657007952220738 ], [ 3782309.491651613265276, 5285664.359989155083895 ], [ 3784281.144812294282019, 5283658.524575554765761 ], [ 3787003.591664461418986, 5283091.307140819728374 ], [ 3788124.720327303744853, 5281744.780626373365521 ], [ 3786505.169203932397068, 5281314.372820717282593 ], [ 3785532.874546250328422, 5279630.628904357552528 ], [ 3784799.654778862372041, 5277841.408533683978021 ], [ 3786603.60178305208683, 5274538.416780044324696 ], [ 3790477.9888247968629, 5274495.941701513715088 ], [ 3790594.128488400951028, 5272161.474625929258764 ], [ 3793111.897764969151467, 5271116.731996889226139 ], [ 3795818.700670539867133, 5268677.05331720970571 ], [ 3798855.596301339101046, 5266722.819737875834107 ], [ 3799838.722160743549466, 5268178.955591368488967 ], [ 3802889.489610741846263, 5265992.731342470273376 ], [ 3804384.913735983893275, 5268882.313176333904266 ], [ 3805133.319873026106507, 5272551.575273250229657 ], [ 3803754.023067193571478, 5274235.446301868185401 ], [ 3805363.573710943572223, 5277127.578434414230287 ], [ 3804047.390052516479045, 5279865.629771737381816 ], [ 3806959.158603717572987, 5280252.08644082583487 ], [ 3806042.457857865374535, 5282074.320290931500494 ], [ 3808337.247325238306075, 5285233.647769700735807 ], [ 3807389.733745195437223, 5289854.723989077843726 ], [ 3804631.600111520383507, 5293326.948602575808764 ], [ 3800935.690724624320865, 5294650.400785171426833 ], [ 3796205.97065965924412, 5293357.427407402545214 ], [ 3792640.902135544922203, 5294459.316254674457014 ], [ 3795373.669104842003435, 5298211.406877520494163 ], [ 3795010.249062247108668, 5300756.032704696059227 ], [ 3797138.066065363120288, 5304823.992066430859268 ], [ 3798377.11803000792861, 5305702.598571930080652 ], [ 3798384.577908948995173, 5312333.655418801121414 ], [ 3794250.609914021100849, 5317931.166057704016566 ], [ 3790229.527724273037165, 5321442.149465550668538 ], [ 3786678.104510818608105, 5327295.615803264081478 ], [ 3781226.071450241375715, 5331776.835706444457173 ], [ 3778754.146607806906104, 5337212.942081055603921 ], [ 3781026.840195064432919, 5340563.218345453031361 ], [ 3784765.083432798739523, 5342367.16905709169805 ], [ 3787737.504416177049279, 5345521.691941050812602 ], [ 3789793.842401337809861, 5348398.836057630367577 ], [ 3793826.797423883806914, 5348836.223122604191303 ], [ 3797599.462265519890934, 5352034.835355360992253 ], [ 3804847.855404205620289, 5357266.374191619455814 ], [ 3812375.677845589350909, 5359290.237615343183279 ], [ 3817631.024841874837875, 5360504.439402943477035 ], [ 3822651.658046095632017, 5363786.195641887374222 ], [ 3825398.449115025345236, 5368323.389857625588775 ], [ 3828089.372631504200399, 5375733.77600179053843 ], [ 3827511.594646334648132, 5379727.006050870753825 ], [ 3828863.156577812042087, 5388195.249212647788227 ], [ 3828641.499112889170647, 5390019.510012876242399 ], [ 3831139.159764649346471, 5390625.081788191571832 ], [ 3832704.719903009012341, 5393357.319908248260617 ], [ 3836917.414856550749391, 5390279.050154198892415 ], [ 3838962.361385906580836, 5390746.295140411704779 ], [ 3843176.997758243698627, 5389623.48540545720607 ], [ 3845376.278749476186931, 5387575.043853930197656 ], [ 3850226.137220137286931, 5385575.508480267599225 ], [ 3851189.237577030435205, 5388623.880884901620448 ], [ 3850659.475342543795705, 5391577.755359980277717 ], [ 3852789.389023704454303, 5390677.091992710717022 ], [ 3854029.779714288655668, 5392937.241628798656166 ], [ 3854286.8513412210159, 5396167.913990419358015 ], [ 3854864.502612382173538, 5401596.117986790835857 ], [ 3855912.69081223430112, 5406820.185579559765756 ], [ 3853265.493678213562816, 5408714.249234259128571 ], [ 3854757.19810030516237, 5412357.58047001156956 ], [ 3856304.881807212717831, 5415087.768602450378239 ], [ 3853490.335917244199663, 5416052.7716233888641 ], [ 3853710.381891583092511, 5418010.65491761174053 ], [ 3851403.576942361425608, 5421864.904213130474091 ], [ 3849770.128725301939994, 5422333.346828631125391 ], [ 3847147.385368203744292, 5427649.450403043068945 ], [ 3842373.275378418620676, 5427125.432981932535768 ], [ 3840837.995919925626367, 5429769.007287064567208 ], [ 3839227.780072700697929, 5433660.686249264515936 ], [ 3836439.828622874803841, 5434402.664457753300667 ], [ 3836095.253023515921086, 5436318.424838675186038 ], [ 3829366.732189212460071, 5436142.68965432792902 ], [ 3830673.839149459730834, 5433372.629446876235306 ], [ 3827231.001920537557453, 5433624.40624125674367 ], [ 3822318.734723675530404, 5437550.340535138733685 ], [ 3822575.768218017183244, 5440979.144701819866896 ], [ 3821468.647546603810042, 5444326.509012749418616 ], [ 3817497.509936431888491, 5447961.082637995481491 ], [ 3813525.178468396887183, 5451708.761152523569763 ], [ 3808576.439607511274517, 5450635.348259688355029 ], [ 3804448.080683045554906, 5453243.31266425549984 ], [ 3805066.947153330780566, 5456453.37618157081306 ], [ 3801793.476753655355424, 5458087.058316828683019 ], [ 3800209.238722647540271, 5460040.354074968956411 ], [ 3800098.372055599931628, 5462073.412857607007027 ], [ 3797570.184695475269109, 5462615.608460924588144 ], [ 3797120.666033543180674, 5464629.31726430170238 ], [ 3795064.951798662077636, 5464858.183651850558817 ], [ 3794735.671891257166862, 5466764.423756338655949 ], [ 3793830.467423887457699, 5466715.935289075598121 ], [ 3793363.018220909871161, 5471215.067984454333782 ], [ 3791649.173001739662141, 5471462.839840769767761 ], [ 3788192.944655504543334, 5474670.355206306092441 ], [ 3781767.430439930409193, 5476256.194380306638777 ], [ 3782494.705392826814204, 5473130.944204164668918 ], [ 3778803.899224318098277, 5474410.55358830653131 ], [ 3774488.077136000618339, 5474644.452892290428281 ], [ 3774499.445151279680431, 5476677.436628054827452 ], [ 3773071.275329637341201, 5478073.397718599997461 ], [ 3770742.316181838978082, 5481680.674946036189795 ], [ 3769090.785169301088899, 5483065.046973722986877 ], [ 3765550.433686465024948, 5483793.733113300055265 ], [ 3762932.97133231209591, 5488849.73077289480716 ], [ 3763914.385872582904994, 5489572.763349560089409 ], [ 3763680.64985917834565, 5494401.116383878514171 ], [ 3759918.058954005129635, 5495232.585864448919892 ], [ 3759837.691012873779982, 5496915.595750628039241 ], [ 3758306.480578999500722, 5500664.208094398491085 ], [ 3757087.693330587819219, 5504986.580174822360277 ], [ 3754883.128251632675529, 5503984.414849063381553 ], [ 3754714.808642594143748, 5507568.351268366910517 ], [ 3754663.982789839152247, 5511043.313948171213269 ], [ 3752281.613686378113925, 5511492.468478155322373 ], [ 3748129.784483372233808, 5513766.628840764984488 ], [ 3746198.039193653967232, 5516703.218183800578117 ], [ 3745164.472104180138558, 5519679.350210216827691 ], [ 3750539.33744758926332, 5522388.22244018688798 ], [ 3749631.557521247304976, 5525030.91827192530036 ], [ 3751453.250985849648714, 5529252.096258390694857 ], [ 3753537.38713001832366, 5532589.865801245905459 ], [ 3755725.237144735641778, 5536043.278154118917882 ], [ 3755294.895878308918327, 5538031.72348784096539 ], [ 3751431.163173641078174, 5539299.782857084646821 ], [ 3749066.560313181020319, 5539635.706390921957791 ], [ 3749653.344769380521029, 5541447.267171245068312 ], [ 3751865.640581336338073, 5544337.569970003329217 ], [ 3747566.525898560415953, 5545474.365603343583643 ], [ 3741168.10805734898895, 5548634.853609713725746 ], [ 3736883.377496286295354, 5552115.916657934896648 ], [ 3732860.684804424177855, 5554830.687946009449661 ], [ 3728711.969448793213814, 5557985.670789001509547 ], [ 3729464.714967768639326, 5563792.524646927602589 ], [ 3727989.290521514136344, 5567057.754149910062551 ], [ 3725271.63060312345624, 5570822.592721866443753 ], [ 3723020.272674647625536, 5571503.397643525153399 ], [ 3720954.572312307544053, 5573079.009767584502697 ], [ 3722197.374655489809811, 5575235.247705519199371 ], [ 3724497.154413202777505, 5575996.423454540781677 ], [ 3722834.039479933679104, 5578583.004573442041874 ], [ 3722769.039576907176524, 5580129.408005010336637 ], [ 3725066.585877205245197, 5580890.293769891373813 ], [ 3727535.879815011750907, 5580221.320491296239197 ], [ 3728536.122558393981308, 5577608.177078784443438 ], [ 3729416.839799566194415, 5575210.187771665863693 ], [ 3732993.263559928163886, 5574701.404885558411479 ], [ 3733393.895032570697367, 5573167.954350016079843 ], [ 3731330.138952594250441, 5572080.348174600861967 ], [ 3733611.763258014339954, 5570739.254571005702019 ], [ 3734761.716771180741489, 5567352.232825891114771 ], [ 3735101.073267021682113, 5564704.269534032791853 ], [ 3739149.540715137496591, 5563774.546241171658039 ], [ 3738370.86983257997781, 5568732.839852967299521 ], [ 3737612.999364356510341, 5573244.241673161275685 ], [ 3739326.31655189068988, 5572212.901111060753465 ], [ 3739241.605420134961605, 5574093.036808216013014 ], [ 3739434.552854179404676, 5577203.285217555239797 ], [ 3742486.88466526241973, 5578449.297283021733165 ], [ 3743195.698030634783208, 5582355.619254254736006 ], [ 3745193.616463465616107, 5582337.129896971397102 ], [ 3746473.449683679267764, 5585825.585223335772753 ], [ 3747626.353403460234404, 5584884.130324793048203 ], [ 3748912.741093137301505, 5585829.254802440293133 ], [ 3748055.406660733744502, 5587558.010741391219199 ], [ 3750352.821555800270289, 5590539.87686912342906 ], [ 3756120.740906673483551, 5592694.691901732236147 ], [ 3761319.851808167994022, 5592839.135161161422729 ], [ 3763640.022545332554728, 5590744.539587195031345 ], [ 3765088.066164024174213, 5592806.126774789765477 ], [ 3765805.504067606292665, 5596155.763985391706228 ], [ 3769294.493140616454184, 5597216.168350159190595 ], [ 3771777.307420271914452, 5598447.61954506020993 ], [ 3777517.269274128600955, 5594550.152100934647024 ], [ 3779174.767910319380462, 5592537.95446698833257 ], [ 3783064.905809750314802, 5594402.989793696440756 ], [ 3785531.590503603219986, 5597960.613069591112435 ], [ 3785292.918592177331448, 5602363.352759633213282 ], [ 3785793.407418191898614, 5605369.051127099432051 ], [ 3788786.980039114132524, 5603216.049936227500439 ], [ 3791820.629771676845849, 5604376.48924214206636 ], [ 3793817.67619692441076, 5606252.661121785640717 ], [ 3794767.486478177830577, 5605092.483013670891523 ], [ 3797984.086632254999131, 5604942.84390078112483 ], [ 3798942.971542614977807, 5607534.35722359828651 ], [ 3800863.902500619180501, 5612604.557866881601512 ], [ 3800719.00320157315582, 5615129.840504218824208 ], [ 3804603.223441467620432, 5614803.464634914882481 ], [ 3804588.826225992757827, 5613150.133053756318986 ], [ 3807322.295576164498925, 5613640.182172295637429 ], [ 3807666.494451082311571, 5617185.059356661513448 ], [ 3810002.666366584599018, 5618754.134881952777505 ], [ 3809885.218344220891595, 5622598.770956395193934 ], [ 3811567.728737420868129, 5620278.020765405148268 ], [ 3813154.783157257828861, 5617730.618035649880767 ], [ 3816631.800540513824672, 5616838.365389060229063 ], [ 3818528.980083230417222, 5620146.826872535049915 ], [ 3820138.351486396510154, 5620905.539194607175887 ], [ 3819241.415794375818223, 5622941.702673432417214 ], [ 3820589.658701670821756, 5624344.438851588405669 ], [ 3820804.910515702795237, 5626227.419903922826052 ], [ 3819791.884480574168265, 5628364.13313468080014 ], [ 3823876.049646253697574, 5630044.886930740438402 ], [ 3825460.674490362405777, 5629374.150745071470737 ], [ 3827690.549742918461561, 5630722.753537888638675 ], [ 3829240.189858032856137, 5632358.759236394427717 ], [ 3833741.381344829220325, 5630886.665362003259361 ], [ 3835823.814404712989926, 5632778.79919742513448 ], [ 3839809.57790264301002, 5632487.659409415908158 ], [ 3842376.606729364022613, 5631996.142137260176241 ], [ 3843445.237223695032299, 5632506.12609598506242 ], [ 3843768.665056216064841, 5634285.857123780995607 ], [ 3845552.902452688198537, 5633964.343297033570707 ], [ 3845882.751379332505167, 5635634.421999706886709 ], [ 3844655.647528459317982, 5637530.159447366371751 ], [ 3845015.252021585591137, 5640408.523520876653492 ], [ 3848266.043823816813529, 5639527.474278996698558 ], [ 3849631.292850653175265, 5642143.735014835372567 ], [ 3852193.607557627372444, 5643304.407770987600088 ], [ 3853370.509702744428068, 5642177.166409933008254 ], [ 3858058.244092615321279, 5642827.346514443866909 ], [ 3860739.176678330637515, 5645427.098640786483884 ], [ 3864651.863971631042659, 5647675.155172302387655 ], [ 3868303.865829121787101, 5650455.49470139015466 ], [ 3868453.576860548462719, 5652987.293692287988961 ], [ 3871296.134664352517575, 5653190.297076079063118 ], [ 3872913.080978018697351, 5652100.729297350160778 ], [ 3876138.209241904318333, 5653101.258640002459288 ], [ 3878799.779436421580613, 5654281.763115962035954 ], [ 3878304.489329853560776, 5656546.711064988747239 ], [ 3879908.626702595502138, 5658635.955835712142289 ], [ 3877372.649784710258245, 5658778.769319750368595 ], [ 3873642.486421301960945, 5660259.489899774082005 ], [ 3873235.278182575013489, 5662856.40735577698797 ], [ 3870881.069638357497752, 5663561.869010458700359 ], [ 3869470.482533756643534, 5664882.406933111138642 ], [ 3870186.647737168706954, 5668650.290464341640472 ], [ 3872123.148852197919041, 5672176.251362370327115 ], [ 3874116.987340273335576, 5670354.607665712945163 ], [ 3877635.807600828818977, 5670174.337916933000088 ], [ 3878340.289480796549469, 5668040.137615696527064 ], [ 3881417.001703299582005, 5667938.896000509150326 ], [ 3883064.431431839708239, 5669372.928906513378024 ], [ 3888997.140150122344494, 5667739.8405701527372 ], [ 3888961.934402021113783, 5666752.781339449808002 ], [ 3892023.850398609414697, 5666875.233139554969966 ], [ 3893338.353903179056942, 5664020.649399837478995 ], [ 3891158.190800605807453, 5659474.878535458818078 ], [ 3890104.731355381198227, 5657423.090989323332906 ], [ 3892129.193082225974649, 5656808.973944171331823 ], [ 3894827.737983160186559, 5657452.652578229084611 ], [ 3897458.780000742990524, 5658969.336797493509948 ], [ 3897171.9116838183254, 5655549.085117362439632 ], [ 3896271.607996895909309, 5654383.446695215068758 ], [ 3894939.189184807706624, 5650222.260358816944063 ], [ 3900965.669202022720128, 5649147.84597579203546 ], [ 3902717.484788775909692, 5647855.888542323373258 ], [ 3905445.77613417385146, 5648178.216958883218467 ], [ 3907046.862452036235482, 5647424.744623495265841 ], [ 3909026.233708560932428, 5647470.513458472676575 ], [ 3910069.637819682713598, 5652385.177885238081217 ], [ 3909865.309848226606846, 5653576.397182139568031 ], [ 3913082.410075725521892, 5658768.88069938775152 ], [ 3915410.742858809418976, 5663997.593522780574858 ], [ 3917012.611035787500441, 5671353.094391087070107 ], [ 3918296.957832679152489, 5677143.973583422601223 ], [ 3919504.542406174354255, 5687834.231917208991945 ], [ 3920672.771858642809093, 5694907.032213196158409 ], [ 3920284.027654484380037, 5702277.906722805462778 ], [ 3916463.925518930424005, 5706313.800851550884545 ], [ 3915285.635153631679714, 5712734.544092117808759 ], [ 3915008.205929875839502, 5718786.992313132621348 ], [ 3911838.72823394369334, 5721671.671947702765465 ], [ 3907542.996553308330476, 5722407.63689452689141 ], [ 3903103.416968822944909, 5724975.725576804019511 ], [ 3897542.520291690248996, 5726699.96311570610851 ], [ 3896245.534509391989559, 5729409.967081543058157 ], [ 3898500.509518878068775, 5733802.266504067927599 ], [ 3898348.651361923664808, 5739836.77102857735008 ], [ 3896200.332342120353132, 5743766.076700169593096 ], [ 3891487.09427963802591, 5747384.29760904982686 ], [ 3890574.56668200623244, 5753557.032989542 ], [ 3888437.580468225758523, 5756079.847011269070208 ], [ 3885742.359704523347318, 5757484.134529687464237 ], [ 3885372.002301629632711, 5760893.872864078730345 ], [ 3888096.617191788740456, 5763252.3663928527385 ], [ 3892196.794025591574609, 5768616.83880356233567 ], [ 3892632.152710522990674, 5774012.137072905898094 ], [ 3894115.599812015891075, 5779699.031685368157923 ], [ 3894972.631552360020578, 5785116.966093302704394 ], [ 3893581.534340028651059, 5787786.130199570208788 ], [ 3890777.183824066072702, 5789380.913124461658299 ], [ 3888569.729216711595654, 5792944.990928837098181 ], [ 3889726.900846492499113, 5795917.421942629851401 ], [ 3890172.28518925793469, 5798405.867914486676455 ], [ 3888903.454182128887624, 5799585.361395683139563 ], [ 3890027.523497267160565, 5801592.656182849779725 ], [ 3889905.114240184891969, 5805844.128890166059136 ], [ 3888247.102217198815197, 5806565.065330009907484 ], [ 3882656.58084465470165, 5808469.249768460169435 ], [ 3880234.041036660317332, 5810834.403206677176058 ], [ 3880731.198938641697168, 5811298.160065221600235 ], [ 3878816.152385847177356, 5815401.533867488615215 ], [ 3876652.399458919186145, 5821392.686789776198566 ], [ 3877092.396654475945979, 5825350.62587003223598 ], [ 3879091.297345243860036, 5826988.96576280053705 ], [ 3882498.281371041666716, 5832339.281443700194359 ], [ 3882350.060754121746868, 5834233.360282779671252 ], [ 3881221.47015118971467, 5835097.70364648476243 ], [ 3880917.736755230929703, 5838988.048479683697224 ], [ 3882535.770093734376132, 5841334.883136425167322 ], [ 3879405.847002695314586, 5844788.118399401195347 ], [ 3871500.854137918446213, 5849877.344673019833863 ], [ 3866640.257241865620017, 5854041.000506401993334 ], [ 3862160.876345915254205, 5858864.291369445621967 ], [ 3856376.902230790816247, 5861486.168679472059011 ], [ 3853638.720928938128054, 5864333.985031346790493 ], [ 3851771.953848134726286, 5866824.332399304024875 ], [ 3847350.529758316930383, 5866819.612195742316544 ], [ 3845338.447944106534123, 5868460.235444736666977 ], [ 3846452.133862742222846, 5872002.866743963211775 ], [ 3846861.614577474072576, 5876540.917836175300181 ], [ 3845710.982599182985723, 5880857.880886669270694 ], [ 3845807.479627902153879, 5882435.174994660541415 ], [ 3849681.634586024098098, 5885436.37144530005753 ], [ 3854481.854157145135105, 5888612.59417827706784 ], [ 3858727.026504829060286, 5893527.765895562246442 ], [ 3860205.582850014325231, 5900321.679272799752653 ], [ 3860739.986647294368595, 5904325.677436962723732 ], [ 3858347.318934781476855, 5906959.643038901500404 ], [ 3859097.22065301053226, 5910869.979741984046996 ], [ 3861679.16217056941241, 5913980.012699580751359 ], [ 3863619.950443720910698, 5917248.956983144395053 ], [ 3862210.696277414448559, 5919324.832144322805107 ], [ 3860233.158865793142468, 5924784.39159846957773 ], [ 3858552.09466500626877, 5929119.357846072874963 ], [ 3857717.564035345800221, 5934654.2578652407974 ], [ 3855171.982983477413654, 5940881.22075732331723 ], [ 3854527.476558213122189, 5943935.597366889938712 ], [ 3852400.277569544501603, 5946050.187352763488889 ], [ 3851616.722759102005512, 5949607.364094331860542 ], [ 3852580.257987612858415, 5956077.816162295639515 ], [ 3849416.085709900595248, 5958315.387874973937869 ], [ 3849225.238656923174858, 5960877.051389093510807 ], [ 3848490.837490907870233, 5963808.613355265930295 ], [ 3847969.858788084238768, 5966651.315098694525659 ], [ 3847153.169963970314711, 5970703.895104909315705 ], [ 3848404.598714721854776, 5973263.388607643544674 ], [ 3847126.08941642800346, 5975222.370868641883135 ], [ 3842306.220610584132373, 5983380.822239859960973 ], [ 3842055.818560723215342, 5988177.143582530319691 ], [ 3840918.038545733783394, 5988298.260834409855306 ], [ 3841179.362973350100219, 5988931.705752913840115 ], [ 3842192.431896094698459, 5989108.622355900704861 ], [ 3843530.772687897086143, 5990435.763576031662524 ], [ 3840124.111086568329483, 5992128.893822520971298 ], [ 3836528.07627619523555, 5996467.294168918393552 ], [ 3830096.005070522427559, 6001926.714695753529668 ], [ 3825287.936896343715489, 6004849.845059881918132 ], [ 3821201.844556387979537, 6006296.751869357191026 ], [ 3817508.110044788103551, 6009504.76006458606571 ], [ 3815559.110609824769199, 6012628.2958875419572 ], [ 3814525.595302366651595, 6015812.593641201965511 ], [ 3812374.654038909357041, 6015971.108908070251346 ], [ 3809778.813840273302048, 6013660.167321825399995 ], [ 3810856.172438477165997, 6011290.994475170969963 ], [ 3812699.170466981362551, 6009685.247450346127152 ], [ 3814312.60594163602218, 6008471.197386899031699 ], [ 3815102.191506309900433, 6005876.401914129033685 ], [ 3814387.411642957478762, 6002871.683019595220685 ], [ 3813792.423173900227994, 6001097.582835406064987 ], [ 3812734.765973706264049, 6000107.874244066886604 ], [ 3813584.92423349339515, 5998124.621058972552419 ], [ 3815117.383426785003394, 5999657.405717846006155 ], [ 3815598.668185557238758, 6000098.339933203533292 ], [ 3818350.909517375286669, 6001715.195427712053061 ], [ 3820021.17661928711459, 6001218.428985885344446 ], [ 3818967.951326082926244, 5998696.602521911263466 ], [ 3818339.014142722822726, 5997428.309621640481055 ], [ 3820600.843805714510381, 5997278.070353273302317 ], [ 3822612.33334398875013, 5999255.450895296409726 ], [ 3822165.396366210654378, 6001265.297379594296217 ], [ 3822090.287061945535243, 6003810.049904906190932 ], [ 3825714.615339929237962, 6003146.230748705565929 ], [ 3827529.260290835052729, 6000621.622595163062215 ], [ 3828400.351152353454381, 5998437.446402784436941 ], [ 3829513.328229235485196, 5998618.661438570357859 ], [ 3831557.306061188690364, 5995802.28364584222436 ], [ 3831426.091278413310647, 5993339.893814634531736 ], [ 3830893.825760428793728, 5990745.345366813242435 ], [ 3829203.903412165120244, 5991443.359282188117504 ], [ 3829488.980940259993076, 5993201.830792748369277 ], [ 3827049.24052733136341, 5992926.876620600000024 ], [ 3826085.011663523502648, 5990609.498445996083319 ], [ 3824438.641294470056891, 5990698.635787636041641 ], [ 3824412.541935313958675, 5992537.21607933472842 ], [ 3825747.121908552013338, 5993959.545821349136531 ], [ 3825836.580149458255619, 5995600.741319499909878 ], [ 3823689.601770301349461, 5995552.398365689441562 ], [ 3821855.437051408924162, 5995424.613865301944315 ], [ 3821880.633335412945598, 5993587.260404518805444 ], [ 3821796.73431309312582, 5991843.849779789336026 ], [ 3824305.743323993869126, 5989666.591411430388689 ], [ 3824322.042061796877533, 5986495.784550337120891 ], [ 3823428.641705371439457, 5984590.801889563910663 ], [ 3822375.753491351380944, 5983493.667432649061084 ], [ 3819782.580594954546541, 5982392.91536043677479 ], [ 3818005.957522900309414, 5981349.262659789994359 ], [ 3817926.876398161519319, 5979499.543670936487615 ], [ 3819971.780043373350054, 5979639.588933923281729 ], [ 3821187.900747263804078, 5978390.752438402734697 ], [ 3823709.250050269532949, 5979077.849297716282308 ], [ 3825930.391790833789855, 5979642.794376843608916 ], [ 3829305.8130545578897, 5981315.276018842123449 ], [ 3831971.026225287932903, 5982836.814950498752296 ], [ 3835343.056173400022089, 5983078.647248992696404 ], [ 3839744.233914831653237, 5983295.502931435592473 ], [ 3841693.135043901856989, 5983335.75089196767658 ], [ 3842548.111940761096776, 5982886.127058120444417 ], [ 3848097.373533959966153, 5973240.467052654363215 ], [ 3847122.784433279652148, 5971112.767836498096585 ], [ 3844918.384478706866503, 5971668.826793747022748 ], [ 3843581.939886667765677, 5970234.325936361216009 ], [ 3841249.520946009550244, 5968315.866357866674662 ], [ 3840574.844139227643609, 5969089.101315757259727 ], [ 3836687.408751669805497, 5968704.67504149209708 ], [ 3834439.792970782145858, 5969879.31200283113867 ], [ 3831519.804017058573663, 5970390.402397912926972 ], [ 3826115.942458458244801, 5972577.326063128188252 ], [ 3823452.826516568195075, 5975368.150790618732572 ], [ 3820221.262711521238089, 5977504.015669897198677 ], [ 3816932.178310172632337, 5979021.811006994917989 ], [ 3816138.546738297212869, 5981631.785931341350079 ], [ 3817205.015792998485267, 5984059.694228403270245 ], [ 3821516.051772620528936, 5987017.175704867579043 ], [ 3822518.737237338442355, 5988826.05731981061399 ], [ 3820689.044716849457473, 5991562.677708619274199 ], [ 3818143.726520751602948, 5992818.363634699955583 ], [ 3815387.227404770907015, 5995694.71714888792485 ], [ 3811684.292087491601706, 5997485.930742738768458 ], [ 3810943.517384564504027, 5999375.005022188648582 ], [ 3812176.781638809479773, 6002313.98266426473856 ], [ 3813921.817398926243186, 6006712.982908229343593 ], [ 3812253.037583652418107, 6008738.655122142285109 ], [ 3808392.064613906666636, 6011532.477427837438881 ], [ 3806734.16166792018339, 6013456.363565259613097 ], [ 3807992.562500847037882, 6014455.632723518647254 ], [ 3806626.264317887835205, 6015076.168979535810649 ], [ 3802659.520258758217096, 6011864.548755905590951 ], [ 3798811.760882809758186, 6009883.921152976341546 ], [ 3794064.106386752799153, 6009171.685126464813948 ], [ 3792687.07569847535342, 6008371.782942567951977 ], [ 3794685.88600092055276, 6004222.805990059860051 ], [ 3791088.546243601478636, 6004605.794178533367813 ], [ 3789505.91277037281543, 6008679.793153521604836 ], [ 3787728.793438333552331, 6011009.784827677533031 ], [ 3788813.782599210273474, 6013212.705813540145755 ], [ 3786873.546122521162033, 6014920.632212925702333 ], [ 3783029.227954701986164, 6012853.580367775633931 ], [ 3782511.458777102641761, 6014650.824821609072387 ], [ 3781234.70441169384867, 6017213.246092568151653 ], [ 3779768.913745779544115, 6019559.932232212275267 ], [ 3776112.770517634693533, 6021164.903081224299967 ], [ 3774074.752143368124962, 6021245.684098690748215 ], [ 3771869.300013697240502, 6024156.122327806428075 ], [ 3768564.19647551747039, 6023353.374325577169657 ], [ 3767523.414402691181749, 6025521.87589046638459 ], [ 3768292.354436634108424, 6027997.564554531127214 ], [ 3765248.221741194836795, 6029743.695151202380657 ], [ 3765109.748743453063071, 6033883.330772624351084 ], [ 3764280.34460795391351, 6035958.266693005338311 ], [ 3762765.899476274382323, 6035870.94380324985832 ], [ 3761018.105369170662016, 6038094.656807157211006 ], [ 3761093.247822588775307, 6040320.691884091123939 ], [ 3762430.087666644249111, 6041709.750470524653792 ], [ 3759998.580624234862626, 6041772.375258774496615 ], [ 3758940.825581229291856, 6040803.775463434867561 ], [ 3756470.40269632358104, 6039755.681054452434182 ], [ 3752804.307394893839955, 6036521.521206941455603 ], [ 3753055.784843786619604, 6033807.058794326148927 ], [ 3750938.731402240227908, 6031769.543922696262598 ], [ 3748631.074460600502789, 6031340.235107620246708 ], [ 3747426.784799127839506, 6032993.680331636220217 ], [ 3745857.339145273901522, 6033919.736923540011048 ], [ 3746136.529551450163126, 6036258.490557551383972 ], [ 3744661.555840937420726, 6033552.429880760610104 ], [ 3743667.625503038056195, 6033196.178480857983232 ], [ 3743108.997815452050418, 6034176.993536909110844 ], [ 3742253.470986216794699, 6033121.062001348473132 ], [ 3741280.492322136182338, 6036201.49111932143569 ], [ 3740791.782335953786969, 6037791.310700886882842 ], [ 3737455.092099911998957, 6035799.123348211869597 ], [ 3738703.303173653781414, 6035157.144828265532851 ], [ 3734081.673467176035047, 6032493.485683113336563 ], [ 3733330.043289718218148, 6031343.380345672369003 ], [ 3731980.673528867773712, 6031982.251434212550521 ], [ 3730419.51835469994694, 6032812.78634455986321 ], [ 3729773.173329246696085, 6031567.692819925956428 ], [ 3731117.212575062178075, 6031028.951015931554139 ], [ 3730773.995509297586977, 6029798.554891315288842 ], [ 3729621.729109869338572, 6028527.254869546741247 ], [ 3727928.02172327041626, 6027937.018797882832587 ], [ 3725116.533024829346687, 6027393.482239477336407 ], [ 3726424.75954246846959, 6025535.835066474042833 ], [ 3725487.495060288812965, 6023971.663806582801044 ], [ 3722100.292317955289036, 6022692.994664092548192 ], [ 3722516.560699354391545, 6020384.161762323230505 ], [ 3725199.394957223441452, 6019501.900499909184873 ], [ 3726778.776370322797447, 6018363.643743954598904 ], [ 3726119.202826383989304, 6017317.633085707202554 ], [ 3723039.401978814974427, 6017977.9983922354877 ], [ 3721364.47513691522181, 6019011.613713788799942 ], [ 3719275.529880725312978, 6020228.299805155955255 ], [ 3720119.265075228177011, 6021686.388792828656733 ], [ 3719212.75581233901903, 6023667.572833340615034 ], [ 3719617.254350285045803, 6025811.75805654656142 ], [ 3720836.031494583468884, 6025769.135930905118585 ], [ 3721523.358021774329245, 6028330.727622084319592 ], [ 3720569.689016116317362, 6029194.597934174351394 ], [ 3722196.840759535320103, 6029071.065916651859879 ], [ 3723244.894790519960225, 6030436.108291476964951 ], [ 3722959.268658598419279, 6032140.026833917014301 ], [ 3724425.143682877533138, 6033221.913167136721313 ], [ 3726738.112371258437634, 6033538.016386386938393 ], [ 3728798.290063797496259, 6032832.442932987585664 ], [ 3730848.264600807335228, 6034349.711179758422077 ], [ 3732937.980043532326818, 6035061.708327089436352 ], [ 3734258.5030502891168, 6036946.775469387881458 ], [ 3735911.757200521882623, 6038243.214857249520719 ], [ 3737961.108212190214545, 6037743.894668837077916 ], [ 3740823.658936268649995, 6039105.251171295531094 ], [ 3742193.80096535384655, 6038067.363417882472277 ], [ 3745321.737821755930781, 6038234.333982950076461 ], [ 3746485.969277562573552, 6037287.288985782302916 ], [ 3749324.717875947710127, 6039056.920759504660964 ], [ 3751465.456641239579767, 6038770.484320494346321 ], [ 3754458.529945777263492, 6039542.118886507116258 ], [ 3755623.951427319552749, 6040414.86443118005991 ], [ 3757959.185003742109984, 6042060.267913053743541 ], [ 3755007.152474541217089, 6042398.785698775202036 ], [ 3751399.981268565170467, 6041794.917994506657124 ], [ 3746666.56720372941345, 6041435.590234220027924 ], [ 3739502.185492270626128, 6041154.697005128487945 ], [ 3734843.127078706398606, 6041315.946868452243507 ], [ 3729635.086897281929851, 6042361.719952314160764 ], [ 3728138.320885144174099, 6044000.263294978998601 ], [ 3728767.940376318059862, 6045543.378206262364984 ], [ 3726581.882752718869597, 6044829.57412367593497 ], [ 3725769.796274413820356, 6042874.389445617794991 ], [ 3725186.847372009884566, 6038307.203973875381052 ], [ 3723998.714390577748418, 6035725.575150183402002 ], [ 3720491.004156142938882, 6032929.566381332464516 ], [ 3719875.989780278410763, 6030980.455938110128045 ], [ 3717170.997069503180683, 6028223.445105090737343 ], [ 3717430.007851812522858, 6024898.193870973773301 ], [ 3714748.144796086009592, 6021533.271084840409458 ], [ 3712364.798926087561995, 6020409.937135866843164 ], [ 3708534.236759637016803, 6017601.099382697604597 ], [ 3705679.470627882052213, 6013317.076930527575314 ], [ 3705582.560963278170675, 6013211.350209499709308 ], [ 3704367.235640893224627, 6010824.51767501886934 ], [ 3699848.767275876831263, 6009510.317855437286198 ], [ 3693690.658139432780445, 6008435.702488843351603 ], [ 3690407.059879276435822, 6006675.127723609097302 ], [ 3688408.812814397271723, 6005780.994439611211419 ], [ 3684040.589266420342028, 6005604.719556323252618 ], [ 3680156.496599656529725, 6006060.482165691442788 ], [ 3675085.353797282092273, 6005662.29970726557076 ], [ 3671932.824757600668818, 6002904.291240676306188 ], [ 3671933.047460834030062, 6000161.712918213568628 ], [ 3671827.644010708667338, 5997515.263955920934677 ], [ 3669059.909657659940422, 5995176.238214493729174 ], [ 3669035.928434316068888, 5993038.967825968749821 ], [ 3666751.682976705022156, 5991327.871624678373337 ], [ 3664946.507073573302478, 5990448.939264009706676 ], [ 3662227.984403604175895, 5986483.000469360500574 ], [ 3662651.523339381907135, 5983134.362195494584739 ], [ 3662871.2521534524858, 5979776.177587747573853 ], [ 3661494.22465406358242, 5978197.475895876996219 ], [ 3658925.789222318213433, 5978517.341157169081271 ], [ 3656830.826976154465228, 5979976.812364197336137 ], [ 3658508.176196332555264, 5981767.639744437299669 ], [ 3656170.109076574910432, 5981382.603831958957016 ], [ 3654624.93631299212575, 5981738.902033882215619 ], [ 3653434.612719595897943, 5983738.503827882930636 ], [ 3651074.579556458164006, 5980908.381289593875408 ], [ 3648837.783996753860265, 5980530.324519597925246 ], [ 3647448.808551948517561, 5982423.488371020182967 ], [ 3647782.667416546493769, 5984778.280985984019935 ], [ 3648645.566185598261654, 5986537.733906109817326 ], [ 3645579.410863374825567, 5986644.305157721973956 ], [ 3643470.403510181698948, 5988818.80433077737689 ], [ 3640504.846709623932838, 5989033.430624036118388 ], [ 3633890.674955031834543, 5988430.668406412936747 ], [ 3628061.871624656487256, 5985211.493438999168575 ], [ 3625061.642700591590255, 5982888.460956374183297 ], [ 3623538.758175417315215, 5982542.018510132096708 ], [ 3623360.939891994465142, 5985389.746848962269723 ], [ 3620284.747867436148226, 5985920.020641611889005 ], [ 3619154.936340152751654, 5986196.347556664608419 ], [ 3615305.386085841804743, 5989152.597783781588078 ], [ 3614702.638933064416051, 5992900.839564746245742 ], [ 3617578.598124216776341, 5996022.030784356407821 ], [ 3619585.181020395830274, 5997190.966657686978579 ], [ 3622560.127815623302013, 5996354.516834427602589 ], [ 3626140.682375621516258, 5999497.935413821600378 ], [ 3630042.858900194987655, 6005491.831297133117914 ], [ 3633234.458409746643156, 6007610.801031122915447 ], [ 3637437.938445141073316, 6009761.294675259850919 ], [ 3636398.014385366346687, 6017425.26873295288533 ], [ 3635831.303666833788157, 6022868.104215316474438 ], [ 3635131.936384604312479, 6025978.740311385132372 ], [ 3637105.992037691175938, 6027652.735205392353237 ], [ 3639256.170031713321805, 6030139.634154226630926 ], [ 3638818.416685725096613, 6031235.995821256190538 ], [ 3635574.331812719348818, 6031542.128796365112066 ], [ 3634136.185552867129445, 6028876.806608921848238 ], [ 3632323.031344205606729, 6028622.215504952706397 ], [ 3625827.451684121508151, 6029448.043566320091486 ], [ 3622437.933770126197487, 6027640.811726442538202 ], [ 3620573.184138350188732, 6025471.583947250619531 ], [ 3616129.822868337389082, 6021114.568310817703605 ], [ 3612989.503001395147294, 6021137.231254814192653 ], [ 3609121.560775980819017, 6021952.949824293144047 ], [ 3606034.203942938242108, 6024102.523656030185521 ], [ 3603944.780373683199286, 6026981.947867111302912 ], [ 3598431.819304782897234, 6029382.075281332246959 ], [ 3595165.199908215552568, 6030926.24999563023448 ], [ 3590865.173918840009719, 6033761.328385912813246 ], [ 3587920.620899152942002, 6034610.322936806827784 ], [ 3584895.028692354913801, 6034452.377030610106885 ], [ 3581692.645633881911635, 6032882.931262120604515 ], [ 3579788.619642806705087, 6032043.205590416677296 ], [ 3577820.630791730247438, 6028985.207703548483551 ], [ 3577572.168072968255728, 6025753.117762702517211 ], [ 3576104.1117475903593, 6022801.308350095525384 ], [ 3574813.553303983993828, 6021265.291233776137233 ], [ 3574465.663523115217686, 6023985.877401391044259 ], [ 3574331.777493017725646, 6026002.105266426689923 ], [ 3575895.904716937802732, 6029255.381189533509314 ], [ 3577293.306442660279572, 6030286.946996293962002 ], [ 3576949.579184582922608, 6032699.874535360373557 ], [ 3576890.240706387907267, 6036223.897661622613668 ], [ 3577674.992212505079806, 6037545.79078642744571 ], [ 3574813.283204010222107, 6039812.267928255721927 ], [ 3571077.493545711971819, 6040154.867030277848244 ], [ 3564245.037148574367166, 6038544.508196053095162 ], [ 3558028.478378171101213, 6035743.866404894739389 ], [ 3555090.671247178222984, 6036714.062961063347757 ], [ 3553966.897324731107801, 6037908.24919056892395 ], [ 3559584.787068200763315, 6040191.345246435143054 ], [ 3563388.093420676421374, 6042153.198028391227126 ], [ 3566064.425076221115887, 6045206.30196550115943 ], [ 3566315.203580655623227, 6048725.041971346363425 ], [ 3567385.31338122440502, 6057967.624278583563864 ], [ 3567647.609812436625361, 6060575.743284944444895 ], [ 3566405.381215043365955, 6063160.065788928419352 ], [ 3564362.767563796136528, 6065731.74424010142684 ], [ 3562891.432223541196436, 6070609.209251622669399 ], [ 3560955.523667989298701, 6073079.659824595786631 ], [ 3558829.530779158230871, 6074948.215923575684428 ], [ 3557673.998887941241264, 6071438.592247040942311 ], [ 3556590.489519403316081, 6070026.249422416090965 ], [ 3553076.67631616583094, 6070782.82060684543103 ], [ 3552046.776633912697434, 6073267.578044282272458 ], [ 3550526.952917625661939, 6074947.287820353172719 ], [ 3546624.263458918314427, 6075104.819875131361187 ], [ 3541807.937914241570979, 6076753.792426519095898 ], [ 3539092.153807563241571, 6078624.422683315351605 ], [ 3537474.945653808303177, 6080803.904797994531691 ], [ 3539555.858869717922062, 6082715.047184738330543 ], [ 3538353.496481058653444, 6083202.732383102178574 ], [ 3535878.380624684970826, 6080591.541057301685214 ], [ 3531601.35056213894859, 6077967.245022288523614 ], [ 3530312.121341595426202, 6076462.201856628060341 ], [ 3529126.559532237239182, 6074259.098911981098354 ], [ 3528525.755083577241749, 6074355.062290877103806 ], [ 3528017.54898785520345, 6075649.177612939849496 ], [ 3527707.112792796455324, 6077343.170737358741462 ], [ 3527302.429359105415642, 6078138.553843031637371 ], [ 3526695.078588108066469, 6079431.124257008545101 ], [ 3524400.84816991025582, 6078720.174671530723572 ], [ 3523513.470992925576866, 6076421.549449931830168 ], [ 3521822.026053374167532, 6074716.797060671262443 ], [ 3520019.923130665905774, 6075107.589370651170611 ], [ 3516518.126046721357852, 6075492.499923293478787 ], [ 3514906.866170011926442, 6078878.067467384971678 ], [ 3515402.050149623304605, 6080175.702469152398407 ], [ 3511302.014361139852554, 6081857.656631960533559 ], [ 3506807.12502259016037, 6082645.586997093632817 ], [ 3503512.498904316686094, 6082442.527247777208686 ], [ 3500516.901155684608966, 6084134.438620503991842 ], [ 3498122.152735123876482, 6085727.889748476445675 ], [ 3493632.789508264046162, 6086030.63562573492527 ], [ 3490538.361381174996495, 6085239.642211005091667 ], [ 3488944.994919380173087, 6086537.404741224832833 ], [ 3486147.556667842436582, 6085151.436336082406342 ], [ 3483951.904921564739197, 6085059.155766732059419 ], [ 3481957.734690066426992, 6085464.957368570379913 ], [ 3479468.249222930520773, 6086570.648820630274713 ], [ 3476678.167309266049415, 6087005.580536222085357 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 2 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3380778.604670230764896, 5902073.122036438435316 ], [ 3375726.823530718684196, 5903470.802044775336981 ], [ 3371330.154709893278778, 5905490.030882922001183 ], [ 3372075.896578511223197, 5909589.830021053552628 ], [ 3363853.086085553281009, 5910768.153223063796759 ], [ 3359850.212554804515094, 5915000.30731042008847 ], [ 3360073.881563961040229, 5922583.141060510650277 ], [ 3356429.502869814168662, 5927745.194575251080096 ], [ 3347252.112448724918067, 5927716.759252518415451 ], [ 3338630.811657946091145, 5925476.280404699034989 ], [ 3325265.581130147911608, 5923738.265153413638473 ], [ 3319169.421816731803119, 5921753.602949703112245 ], [ 3306875.397099556401372, 5923503.472277458757162 ], [ 3303355.099310901481658, 5922699.396325753070414 ], [ 3283933.274196678772569, 5921013.065371791832149 ], [ 3278948.128543256781995, 5916174.688978646881878 ], [ 3270477.572711636312306, 5911819.563190818764269 ], [ 3270476.65594639768824, 5911821.000986488536 ], [ 3263373.324523608200252, 5903275.930534976534545 ], [ 3255829.270972661674023, 5892833.955991860479116 ], [ 3258071.762477568816394, 5880277.342902692966163 ], [ 3259111.227379691787064, 5869031.587788868695498 ], [ 3254803.070664508733898, 5866365.842140915803611 ], [ 3261372.870466467924416, 5862832.187349698506296 ], [ 3268623.933397396001965, 5859914.898251376114786 ], [ 3268625.016325183678418, 5859913.493876562453806 ], [ 3275859.55646439595148, 5863419.501624556258321 ], [ 3271024.668102971743792, 5856270.50689900200814 ], [ 3271047.80971019435674, 5843094.022975184954703 ], [ 3273556.779957081191242, 5834603.499682081863284 ], [ 3273555.631362767424434, 5834604.928271131590009 ], [ 3261280.481531865429133, 5828092.560063485987484 ], [ 3251524.99533888977021, 5820823.002746338024735 ], [ 3241552.059844254981726, 5816160.707032063044608 ], [ 3236454.103350671473891, 5811896.18809153791517 ], [ 3234195.971949317026883, 5806180.08091857098043 ], [ 3229041.60548882605508, 5807109.918311539106071 ], [ 3227255.7609618678689, 5815962.359440715052187 ], [ 3232717.211569033563137, 5820841.811475122347474 ], [ 3234753.663519355934113, 5828490.422770950943232 ], [ 3228706.948794895317405, 5842050.802320181392133 ], [ 3234216.428749855142087, 5842391.31538435164839 ], [ 3237567.982336892280728, 5838664.844126964919269 ], [ 3245942.352140980772674, 5844341.349161708727479 ], [ 3250274.580284293740988, 5847013.220398122444749 ], [ 3246190.933691426180303, 5855261.209983203560114 ], [ 3242184.421694870106876, 5852580.79481409676373 ], [ 3238449.891646721865982, 5855030.139793961308897 ], [ 3237564.608328994829208, 5862462.018686322495341 ], [ 3233355.517310408875346, 5873588.249898795969784 ], [ 3230227.81529455492273, 5875042.670808990485966 ], [ 3225477.738567552994937, 5870507.503698742948472 ], [ 3218490.677153469529003, 5871871.349362455308437 ], [ 3217472.475309191737324, 5876414.115510955452919 ], [ 3215385.014243156649172, 5879097.140316253527999 ], [ 3210092.389544081874192, 5871087.054435792379081 ], [ 3208226.386591887567192, 5856112.032218128442764 ], [ 3204234.904172765556723, 5843475.947633626870811 ], [ 3200134.001123861875385, 5824021.616275741718709 ], [ 3193125.129459123592824, 5810516.113176869228482 ], [ 3183292.88537753559649, 5794226.612774663604796 ], [ 3170373.203913390170783, 5781691.976565846242011 ], [ 3161273.484195217955858, 5773145.321495993994176 ], [ 3164145.635081208311021, 5767054.610711450688541 ], [ 3158249.844788721762598, 5762535.469023349694908 ], [ 3160842.476076067890972, 5757106.591239670291543 ], [ 3171601.692263434641063, 5750475.500550773926079 ], [ 3175921.658077522180974, 5745919.580627669580281 ], [ 3165213.460813104640692, 5748595.680848368443549 ], [ 3156685.120179068762809, 5754104.200743944384158 ], [ 3153371.6461844407022, 5758603.618620920926332 ], [ 3146540.898812134750187, 5755138.12945694103837 ], [ 3149591.773048392031342, 5751635.699265331029892 ], [ 3155215.703488276340067, 5751903.727377810515463 ], [ 3158313.039836829993874, 5744123.440747913904488 ], [ 3163965.867510774172843, 5739789.846334595233202 ], [ 3169628.085549620911479, 5735459.930890368297696 ], [ 3165283.529953663703054, 5734757.119484769180417 ], [ 3154360.356679893098772, 5739451.281032736413181 ], [ 3152137.123914947267622, 5745534.882132642902434 ], [ 3148851.554410881362855, 5745763.363867732696235 ], [ 3138619.526836377568543, 5745829.941178337670863 ], [ 3132794.431991994846612, 5742956.411160547286272 ], [ 3132812.272554140072316, 5738667.45198592916131 ], [ 3141930.618149492423981, 5741308.961843910627067 ], [ 3145576.990055280737579, 5736763.66336699295789 ], [ 3152240.314392559695989, 5732669.660267662256956 ], [ 3161266.668509931303561, 5734035.680730662308633 ], [ 3168273.676568760536611, 5729940.252705669030547 ], [ 3159024.719932626467198, 5730226.034721503034234 ], [ 3150911.504153004847467, 5727807.265039497055113 ], [ 3159878.592976677231491, 5723230.038295869715512 ], [ 3167209.161927039735019, 5718774.443487421609461 ], [ 3173827.209459164179862, 5713380.216470567509532 ], [ 3169976.431537412106991, 5710316.7359120240435 ], [ 3159192.777442252263427, 5713016.502276328392327 ], [ 3154614.534361061174423, 5718955.148719969205558 ], [ 3145260.155848376452923, 5727539.72994930204004 ], [ 3141536.475189471617341, 5731106.805503869429231 ], [ 3131297.222830927465111, 5731513.671447210013866 ], [ 3122021.219202402047813, 5731538.512380097061396 ], [ 3116349.021036500111222, 5726674.062378684990108 ], [ 3115899.663496726658195, 5720747.864565817639232 ], [ 3126032.017601882573217, 5714024.345240009017289 ], [ 3131208.165193360298872, 5716629.16052520647645 ], [ 3136449.31086911726743, 5710946.646548677235842 ], [ 3147470.262940561398864, 5706853.285976064391434 ], [ 3146958.594840076286346, 5713852.293160608969629 ], [ 3154187.97427768772468, 5712692.143069566227496 ], [ 3157581.25693406816572, 5708816.248457440175116 ], [ 3168438.076983394101262, 5707102.319231282919645 ], [ 3166192.184261424466968, 5703268.739057377912104 ], [ 3152105.688392657320946, 5706534.309288348071277 ], [ 3148943.602469087578356, 5704096.322511609643698 ], [ 3141184.842631045728922, 5702644.430386745370924 ], [ 3129682.630647358018905, 5704796.157173171639442 ], [ 3122566.000607694033533, 5707643.62160971108824 ], [ 3116168.033817570190877, 5711110.452504074200988 ], [ 3107946.387386967428029, 5708084.712934106588364 ], [ 3108482.829429902136326, 5702059.907340582460165 ], [ 3112189.8927495284006, 5693788.623194732703269 ], [ 3118474.317364891991019, 5692982.683731397613883 ], [ 3119864.921166342217475, 5698205.120109529234469 ], [ 3126289.294416126329452, 5699393.746156557463109 ], [ 3131664.853003790602088, 5695343.98116959631443 ], [ 3137712.867537557147443, 5691250.579429494217038 ], [ 3138189.776659540832043, 5688552.746561635285616 ], [ 3146452.062414306215942, 5687309.418830297887325 ], [ 3153324.115071977488697, 5690168.827090061269701 ], [ 3162489.570746422279626, 5692549.905924540944397 ], [ 3167236.937324412632734, 5698884.905828083865345 ], [ 3170830.143069595098495, 5702966.964954684488475 ], [ 3177393.218076284043491, 5701551.827328355051577 ], [ 3182839.059196336660534, 5703532.001301294192672 ], [ 3180273.298092367593199, 5710321.140441430732608 ], [ 3186161.678708742838353, 5714257.761144604533911 ], [ 3191700.37089960789308, 5712594.683561488054693 ], [ 3191089.170918536838144, 5707996.27644244581461 ], [ 3196033.098735404666513, 5707367.171790008433163 ], [ 3207543.387287834659219, 5716948.73772550560534 ], [ 3210564.43831893755123, 5711815.514176430180669 ], [ 3210226.142458096146584, 5705876.589810511097312 ], [ 3219053.939362868666649, 5703394.325522064231336 ], [ 3224191.470842730253935, 5712380.12563360016793 ], [ 3229652.871967637911439, 5709109.982573644258082 ], [ 3227297.184931426309049, 5702283.778965838253498 ], [ 3231744.162240828853101, 5692100.705890671350062 ], [ 3237402.587901112623513, 5692138.704261324368417 ], [ 3236832.350524887442589, 5687520.25982644315809 ], [ 3250117.913276670966297, 5686854.465880636125803 ], [ 3256934.036369914188981, 5690177.31055742688477 ], [ 3256936.241059264168143, 5690176.777581120841205 ], [ 3259976.003603522665799, 5684057.787389886565506 ], [ 3262480.917449220549315, 5680618.524108259007335 ], [ 3269950.727635845541954, 5676288.639022206887603 ], [ 3277590.652936858590692, 5675619.561424765735865 ], [ 3279416.661340694408864, 5671548.640699408017099 ], [ 3276247.197342094033957, 5660023.646914684213698 ], [ 3271293.585620534606278, 5653898.639160289429128 ], [ 3267182.521107512060553, 5644386.616770638152957 ], [ 3263255.445063246879727, 5639207.14141998719424 ], [ 3266031.688410314265639, 5633718.989908457733691 ], [ 3267440.623714432120323, 5627616.719167762435973 ], [ 3283285.863345902878791, 5628276.812224241904914 ], [ 3289707.937767443247139, 5629020.377138397656381 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 3 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3108939.801924951374531, 5708008.269435727037489 ], [ 3093497.028081365860999, 5706559.192181641235948 ], [ 3086944.939218807965517, 5699764.738704291172326 ], [ 3067639.974080462940037, 5692693.509059071540833 ], [ 3064587.140880455262959, 5688277.293499479070306 ], [ 3047922.603933127596974, 5681693.180033656768501 ], [ 3049510.038241357076913, 5661431.170091088861227 ], [ 3052254.174234774895012, 5646388.764305534772575 ], [ 3063932.344638678245246, 5632580.722406509332359 ], [ 3079807.747484362218529, 5644759.703383449465036 ], [ 3087962.235419537406415, 5645452.500553983263671 ], [ 3095588.203306931070983, 5630705.054498264566064 ], [ 3092525.689905411563814, 5617433.218116288073361 ], [ 3111102.792881587520242, 5611963.637187130749226 ], [ 3119045.299197326414287, 5599869.246970724314451 ], [ 3122718.774563939776272, 5584671.87246766872704 ], [ 3136560.652431230060756, 5587778.910597732290626 ], [ 3147448.404560095630586, 5587720.564050928689539 ], [ 3160350.675610242411494, 5576688.001328445971012 ], [ 3155223.759246363304555, 5560676.123287870548666 ], [ 3150382.130510147660971, 5549384.37512871529907 ], [ 3172863.431871780194342, 5547279.992179336026311 ], [ 3191412.589716390706599, 5548227.753580251708627 ], [ 3200441.359258550219238, 5562712.676339372061193 ], [ 3208904.452317881863564, 5567686.23134277574718 ], [ 3202596.11902814777568, 5552371.07966476585716 ], [ 3201155.673689151648432, 5538793.237791875377297 ], [ 3205118.902762345504016, 5523511.522147440351546 ], [ 3222696.208125048317015, 5517779.505258431658149 ], [ 3235163.951207591686398, 5505481.986315397545695 ], [ 3240829.476395334117115, 5494201.07403904851526 ], [ 3249534.398743452969939, 5488282.457506939768791 ], [ 3249535.476331850513816, 5488283.838629018515348 ], [ 3271120.481228434015065, 5492156.419702745042741 ], [ 3277253.755945149809122, 5507025.53866242710501 ], [ 3271077.731034234166145, 5523735.02108253352344 ], [ 3268387.718061197083443, 5540935.570149082690477 ], [ 3277094.22923263348639, 5552833.638515506871045 ], [ 3286388.485916609875858, 5563333.293423902243376 ], [ 3295779.407065341249108, 5559567.751979552209377 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 4 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3396144.590957805048674, 5274604.953427812084556 ], [ 3389485.073512768838555, 5263292.287006054073572 ], [ 3377140.247334918472916, 5256379.598158866167068 ], [ 3365698.113404111936688, 5258779.146803831681609 ], [ 3357222.492313188500702, 5264705.943734335713089 ], [ 3346407.577410334721208, 5262832.880861897021532 ], [ 3344688.213210380636156, 5252131.552120495587587 ], [ 3354609.77594734262675, 5246138.52814852911979 ], [ 3341291.405092711560428, 5232828.522323912940919 ], [ 3332168.527143463026732, 5216508.662615103647113 ], [ 3332171.197236378211528, 5216507.115681268274784 ], [ 3318188.241519938688725, 5208975.736962746828794 ], [ 3309336.806464326102287, 5204192.092024491168559 ], [ 3305757.619499848224223, 5183296.66300612129271 ], [ 3290180.542662247549742, 5175103.924532828852534 ], [ 3280464.588741773273796, 5148491.459849622100592 ], [ 3281508.575582264456898, 5136759.15385751798749 ], [ 3271541.758181994780898, 5125406.537768177688122 ], [ 3268105.338062315247953, 5112325.781960810534656 ], [ 3292080.815303722862154, 5123940.70678486675024 ], [ 3288258.211565756238997, 5140908.603065073490143 ], [ 3308242.890879342332482, 5146820.388578435406089 ], [ 3331718.303281357977539, 5148313.93635980784893 ], [ 3334147.424607050605118, 5129978.301482761278749 ], [ 3337193.831793326418847, 5106433.582715851254761 ], [ 3353028.610650948714465, 5090590.8865258814767 ], [ 3333377.192883853800595, 5074128.171243034303188 ], [ 3335207.609028611332178, 5059293.165677567943931 ], [ 3349569.765114767942578, 5038916.212960412725806 ], [ 3357490.133114687167108, 5026841.969567533582449 ], [ 3350302.0386898862198, 5006893.422741368412971 ], [ 3323988.85276650916785, 5003089.34793227724731 ], [ 3316306.938928673043847, 4996581.140264197252691 ], [ 3326069.327955525834113, 4969335.933414373546839 ], [ 3345604.748161309398711, 4967334.945288635790348 ], [ 3345980.760703351348639, 4951539.667172871530056 ], [ 3332741.299798379186541, 4936042.914762773551047 ], [ 3333657.346246560569853, 4912586.93738498352468 ], [ 3348564.309586613904685, 4900099.038838400505483 ], [ 3368862.683083969168365, 4887515.838021834380925 ], [ 3389530.225220596417785, 4892452.724765956401825 ], [ 3389975.219295417424291, 4873440.040908450260758 ], [ 3378866.186632874421775, 4850754.821972282603383 ], [ 3360185.174938269890845, 4837353.999080273322761 ], [ 3332505.644231083337218, 4805751.619578449055552 ], [ 3274277.384218838997185, 4773490.574113591574132 ], [ 3244950.427227860316634, 4778391.402344848029315 ], [ 3208472.189723939169198, 4796856.163909059017897 ], [ 3175005.237055753357708, 4809952.066890715621412 ], [ 3132238.561599476262927, 4820627.100393341854215 ], [ 3088762.066906373016536, 4830850.071779905818403 ], [ 3043711.713006297126412, 4805176.180162645876408 ], [ 3023386.061110450420529, 4770078.945197131484747 ], [ 3011030.591095483396202, 4727986.442866530269384 ], [ 3023424.739645170513541, 4713795.184811040759087 ], [ 2988430.716428179293871, 4720202.95946563500911 ], [ 2974833.955902950838208, 4707068.47318125795573 ], [ 2922733.014375389087945, 4726919.796532323583961 ], [ 2880683.444594210013747, 4742338.155347806401551 ], [ 2866111.825590307824314, 4755439.201406631618738 ], [ 2847990.901150344870985, 4772033.208863709121943 ], [ 2806222.234323195181787, 4779273.732647805474699 ], [ 2795979.467414537444711, 4763828.469160384498537 ], [ 2742086.824217745568603, 4776647.727694331668317 ], [ 2714916.521936867386103, 4794658.004159042611718 ], [ 2674549.07413569604978, 4819868.599643308669329 ], [ 2649903.296542058698833, 4824493.182080863043666 ], [ 2641320.615112013183534, 4849898.261589783243835 ], [ 2628536.061540987808257, 4866421.104525680653751 ], [ 2669810.243352449964732, 4914048.630605327896774 ], [ 2680930.732746536843479, 4971270.847869606688619 ], [ 2703070.755741720087826, 5031135.459798202849925 ], [ 2707270.152735451236367, 5094165.821672104299068 ], [ 2723631.831513554789126, 5080045.360878769308329 ], [ 2734969.573112798389047, 5055240.437717982567847 ], [ 2738248.40127535443753, 5032118.467068358324468 ], [ 2743318.495593301486224, 5067823.060082919895649 ], [ 2731426.391231280751526, 5094135.894830764271319 ], [ 2711388.276513304561377, 5108682.342071150429547 ], [ 2700960.442238051444292, 5121286.223958385176957 ], [ 2699287.993327445350587, 5120002.917893845587969 ], [ 2726247.603264543693513, 5148711.791882509365678 ], [ 2718507.262859079055488, 5175763.78714744374156 ], [ 2685382.976831003557891, 5195747.929113548249006 ], [ 2660838.886659314855933, 5233223.654936589300632 ], [ 2655629.566272190306336, 5264208.528378147631884 ], [ 2666874.736603701487184, 5275833.472416776232421 ], [ 2644125.099778972100466, 5291591.404055437073112 ], [ 2639072.262715508230031, 5312109.9268693998456 ], [ 2620265.180578246712685, 5333205.071378163993359 ], [ 2585407.809111441019922, 5344481.668679958209395 ], [ 2564144.879449413158, 5366889.456048770807683 ], [ 2535696.505047792103142, 5384756.503997485153377 ], [ 2523622.773114776238799, 5386821.071677313186228 ], [ 2509481.19152975268662, 5381242.676843178458512 ], [ 2503489.95062449388206, 5388863.224568387493491 ], [ 2497978.397847956977785, 5407335.347951902076602 ], [ 2467475.735586343333125, 5416487.763661442324519 ], [ 2509791.597659815102816, 5420512.561604637652636 ], [ 2512150.210314007941633, 5433873.19220404047519 ], [ 2488515.899319015443325, 5443900.522594092413783 ], [ 2478991.992952547036111, 5451433.942229198291898 ], [ 2490931.397039160132408, 5473095.176707258448005 ], [ 2520907.176611950621009, 5479209.478264576755464 ], [ 2547814.281165891326964, 5476648.270002123899758 ], [ 2571909.065065911971033, 5470391.738569905981421 ], [ 2593414.73608385771513, 5483257.281648432835937 ], [ 2616050.239643529988825, 5481710.442508124746382 ], [ 2639702.595113455783576, 5450137.110032133758068 ], [ 2658930.479102376382798, 5449334.361329760402441 ], [ 2673634.720120946876705, 5447126.522459450177848 ], [ 2719857.40873847482726, 5440446.521821609698236 ], [ 2729134.766558613162488, 5445556.358798530884087 ], [ 2725024.366032637190074, 5487235.501201888546348 ], [ 2724495.025481657125056, 5523221.416655199602246 ], [ 2710789.83092031814158, 5554628.079281798563898 ], [ 2713686.799702571704984, 5569555.417150729335845 ], [ 2755935.722571577876806, 5557241.251761347055435 ], [ 2757497.694955649320036, 5538193.8245002143085 ], [ 2765613.219687490724027, 5515393.167529745958745 ], [ 2808069.56741754617542, 5507019.727912622503936 ], [ 2832605.794180289376527, 5501157.360448088496923 ], [ 2876895.665403209626675, 5508476.109505116939545 ], [ 2859243.54538197349757, 5518892.983403992839158 ], [ 2847542.651764994952828, 5537682.391771700233221 ], [ 2876702.890277949161828, 5555007.781158907338977 ], [ 2916202.380399039946496, 5561592.064574543386698 ], [ 2952093.315820410847664, 5574968.2587836580351 ], [ 2971414.089068603236228, 5596273.56185660418123 ], [ 2971964.975313203409314, 5628889.532112777233124 ], [ 2980977.084300642367452, 5657754.619107319973409 ], [ 2992336.653004604391754, 5670099.984521032311022 ], [ 3012757.840754575561732, 5672162.297169964760542 ], [ 3033512.31943123228848, 5678291.973222662694752 ], [ 3047197.894132232293487, 5681087.485073811374605 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 5 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3843113.393844936508685, 5990930.95453892275691 ], [ 3862852.115670506376773, 5995565.509850547648966 ], [ 3900399.562155766412616, 6011807.51401758287102 ], [ 3900400.120228598359972, 6011806.268425439484417 ], [ 3936092.387851006817073, 6025674.414500284008682 ], [ 3965353.433156988117844, 6039787.380728571675718 ], [ 3987297.468482594937086, 6062626.142309280112386 ], [ 4021064.998421079944819, 6088726.374285455793142 ], [ 4047969.291333992499858, 6104924.422244537621737 ], [ 4073133.314949556719512, 6111789.340855102986097 ], [ 4102391.576570556033403, 6115642.109139547683299 ], [ 4110893.18009928194806, 6098802.314867443405092 ], [ 4126864.524938672780991, 6073550.90780839882791 ], [ 4141445.065285576041788, 6068074.465708726085722 ], [ 4169534.645258415490389, 6069624.599169601686299 ], [ 4179516.032418535090983, 6066078.203088854439557 ], [ 4193766.078827765770257, 6088345.073470018804073 ], [ 4232436.895583217963576, 6094469.37561148032546 ], [ 4286835.394788296893239, 6101142.898622437380254 ], [ 4348405.584077109582722, 6104129.264864181168377 ], [ 4387541.370727983303368, 6112335.626292346976697 ], [ 4400534.005934420973063, 6117472.53509162273258 ], [ 4427214.613518337719142, 6105697.024170469492674 ], [ 4448327.119321482256055, 6099853.087614319287241 ], [ 4455813.109941096976399, 6067311.675022344104946 ], [ 4492092.477959051728249, 6000726.590833118185401 ], [ 4504096.600294389761984, 5972315.112677071243525 ], [ 4505247.542933228425682, 5938734.890532223507762 ], [ 4481308.504585198126733, 5919104.37285712081939 ], [ 4470312.994253216311336, 5900865.814483650028706 ], [ 4467613.081671358086169, 5884281.795378777198493 ], [ 4494504.290088405832648, 5877656.797123712487519 ], [ 4508612.940348559990525, 5858330.514124928042293 ], [ 4506776.375022993423045, 5834268.279005215503275 ], [ 4510541.024416147731245, 5805799.311982207000256 ], [ 4526029.486297533847392, 5783668.74365256447345 ], [ 4544945.791978491470218, 5762133.784255480393767 ], [ 4566886.072089086286724, 5746676.533536236733198 ], [ 4551258.184342595748603, 5731633.474123590625823 ], [ 4561916.654284156858921, 5717167.599119883961976 ], [ 4569064.038923991844058, 5692838.089686185121536 ], [ 4543249.263724148273468, 5681964.621501837857068 ], [ 4522180.949904321692884, 5660986.36414173617959 ], [ 4498289.890128215774894, 5605821.414290207438171 ], [ 4486216.994111262261868, 5571782.356489877216518 ], [ 4499580.202787721529603, 5557232.387430517934263 ], [ 4512517.320663826540112, 5526137.816943503916264 ], [ 4488889.246476444415748, 5526069.892916448414326 ], [ 4455851.072432364337146, 5535095.850872302427888 ], [ 4428989.555756320245564, 5558729.947014918550849 ], [ 4373844.788672808557749, 5545959.995772828347981 ], [ 4355550.401271725073457, 5536686.915113438852131 ], [ 4317362.882687546312809, 5527963.222342494875193 ], [ 4309887.330965348519385, 5507115.039189295843244 ], [ 4283472.735166446305811, 5508889.869999112561345 ], [ 4278820.686473856680095, 5531406.477323731407523 ], [ 4247410.828830407932401, 5545149.317434553988278 ], [ 4238955.255907628685236, 5525112.270595573820174 ], [ 4221084.521677569486201, 5527596.769962286576629 ], [ 4207937.220170143991709, 5537024.600574120879173 ], [ 4195388.134367648512125, 5558338.167754915542901 ], [ 4175168.371474529150873, 5580657.48114004638046 ], [ 4141479.142926500178874, 5584752.760949399322271 ], [ 4139492.975329682696611, 5578314.408900247886777 ], [ 4112849.124143457040191, 5593733.5600361302495 ], [ 4124145.854823018424213, 5608766.413699044845998 ], [ 4113233.349329824093729, 5608168.347804208286107 ], [ 4086674.641319013666362, 5612658.034706080332398 ], [ 4066865.789398183114827, 5618665.898857541382313 ], [ 4071615.918544370681047, 5600069.493677191436291 ], [ 4056631.157065225765109, 5586152.277325436472893 ], [ 4044820.188348148018122, 5580815.216292542405427 ], [ 4030203.504336852580309, 5596429.93414072599262 ], [ 4010613.495956193655729, 5614930.590122414752841 ], [ 4028159.958563326392323, 5630253.34558976162225 ], [ 4007584.454740398563445, 5639050.823240162804723 ], [ 3990655.10670124925673, 5638780.894056480377913 ], [ 3965130.890066393651068, 5643865.616871885955334 ], [ 3965132.175497892312706, 5643865.783349201083183 ], [ 3942071.485676991287619, 5652630.598928898572922 ], [ 3939596.071066991426051, 5665859.812816687859595 ], [ 3923681.836542929988354, 5671233.054224649444222 ], [ 3922318.893752008210868, 5655017.087038393132389 ], [ 3908825.587095263879746, 5655277.489812803454697 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 6 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3855359.793198207393289, 5416054.81366853043437 ], [ 3872327.054156054276973, 5403836.957844302989542 ], [ 3874288.347799035720527, 5395536.3900754051283 ], [ 3897753.501870630774647, 5392925.89949644729495 ], [ 3908179.76769644767046, 5404928.2302455464378 ], [ 3926408.871249897871166, 5406285.623175366781652 ], [ 3934056.563742288853973, 5425828.214018240571022 ], [ 3941005.948966486379504, 5417955.924397064372897 ], [ 3944261.410020180977881, 5447626.397520146332681 ], [ 3956666.159684520214796, 5441645.341059206053615 ], [ 3981692.404683574102819, 5444464.513014166615903 ], [ 3981690.67675420595333, 5444464.571899062022567 ], [ 4015350.067041798029095, 5429952.598619556985795 ], [ 4029620.704097897745669, 5420736.742803094908595 ], [ 4057975.22104768641293, 5434064.411014225333929 ], [ 4078841.460052259266376, 5423509.074636850506067 ], [ 4089160.309443039353937, 5419645.398838697932661 ], [ 4104874.942254485562444, 5444606.449376451782882 ], [ 4124342.390434809029102, 5441125.551013576798141 ], [ 4146707.17190949479118, 5455673.256116500124335 ], [ 4155225.601364898495376, 5467236.061796899884939 ], [ 4165322.841621338389814, 5471260.386318121105433 ], [ 4165514.101429037284106, 5498645.937117046676576 ], [ 4184790.221997576300055, 5507333.668568672612309 ], [ 4188983.743515606969595, 5529516.921127676032484 ], [ 4203609.33691771235317, 5530007.141183043830097 ], [ 4212101.629080828279257, 5534609.145863595418632 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 7 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3542035.396427161525935, 5265212.925454019568861 ], [ 3544585.692909493111074, 5259867.90865589492023 ], [ 3547289.899165036156774, 5258278.944561273790896 ], [ 3550919.520700506865978, 5253655.323959340341389 ], [ 3550964.504653503652662, 5248460.449181189760566 ], [ 3545424.912290220614523, 5244112.254975312389433 ], [ 3541868.937623105943203, 5238164.406485673971474 ], [ 3540113.199363869149238, 5231505.902357500977814 ], [ 3538134.732060497161001, 5230773.883335229940712 ], [ 3537453.261084453202784, 5224474.892642559483647 ], [ 3540385.229108595754951, 5218012.623036920093 ], [ 3537880.76003496767953, 5214031.816796146333218 ], [ 3542411.366836687549949, 5212620.088010231032968 ], [ 3553269.244490670505911, 5211985.969740117900074 ], [ 3569241.065412397962064, 5207459.562848629429936 ], [ 3569242.89961814135313, 5207459.912309416569769 ], [ 3568272.353287215810269, 5197333.39895286038518 ], [ 3583967.94246830092743, 5190297.13137331046164 ], [ 3595235.305443309713155, 5189741.504807036370039 ], [ 3596202.5285280845128, 5197355.992418546229601 ], [ 3605491.513894413597882, 5205463.704749562777579 ], [ 3612078.760425571817905, 5201970.9498973172158 ], [ 3613015.233321637846529, 5190774.655880166217685 ], [ 3608192.851895840838552, 5176185.563713612966239 ], [ 3608017.421854039188474, 5165648.13989616278559 ], [ 3617610.310300108511001, 5160007.212898851372302 ], [ 3611513.27060225745663, 5154066.222364104352891 ], [ 3603432.974135962780565, 5156472.158065704628825 ], [ 3592356.041897097602487, 5164297.584957789629698 ], [ 3584759.072326793801039, 5159821.586585975252092 ], [ 3580919.579580957069993, 5146656.554643015377223 ], [ 3593072.296862139832228, 5141358.470166529528797 ], [ 3588456.567721078172326, 5131427.65375198982656 ], [ 3593757.800731947179884, 5120530.188029116950929 ], [ 3585330.101259963121265, 5118942.001051283441484 ], [ 3579013.459451757837087, 5124348.986546451225877 ], [ 3573419.515709336381406, 5131593.775817639194429 ], [ 3571871.147835773881525, 5138516.010313520208001 ], [ 3559832.74006253387779, 5133638.01629822421819 ], [ 3553283.601279514376074, 5128094.564668060280383 ], [ 3538573.53907689685002, 5133831.888102422468364 ], [ 3534869.065437301062047, 5140746.658639782108366 ], [ 3535883.182695998810232, 5154967.224071574397385 ], [ 3532629.634613327682018, 5148756.798836742527783 ], [ 3523114.933853897731751, 5151263.529911556281149 ], [ 3520586.571546369232237, 5142505.830034005455673 ], [ 3520632.210824927315116, 5128994.017852286808193 ], [ 3512960.32443230971694, 5114698.469885380938649 ], [ 3503041.250019654631615, 5101112.594611318781972 ], [ 3500462.871399114374071, 5091924.081785440444946 ], [ 3506747.928338061086833, 5080515.961744583211839 ], [ 3499723.947447700891644, 5072400.98713949136436 ], [ 3493810.490953385829926, 5081252.314195899292827 ], [ 3489393.437962437514216, 5091933.223641494289041 ], [ 3485353.019089461304247, 5099660.203115375712514 ], [ 3489785.647103716153651, 5105892.668234018608928 ], [ 3471766.732579983770847, 5110351.08494689874351 ], [ 3457528.712062899023294, 5126181.655109773389995 ], [ 3457218.216453461907804, 5134225.671716790646315 ], [ 3458412.553082356229424, 5148083.040947030298412 ], [ 3445200.895911775529385, 5142718.305281395092607 ], [ 3445144.967656014021486, 5136513.892053802497685 ], [ 3432972.031004352495074, 5128961.867662388831377 ], [ 3429945.564825887326151, 5120946.192982636392117 ], [ 3436450.062063429970294, 5110615.159097295254469 ], [ 3426455.81723073637113, 5105590.178147848695517 ], [ 3423719.462841683533043, 5092763.271625800058246 ], [ 3412640.342284307349473, 5092174.398820438422263 ], [ 3410715.636223931331187, 5086681.28358681499958 ], [ 3399344.337511202786118, 5091640.97380353230983 ], [ 3387561.733761759009212, 5093315.927260241471231 ], [ 3377497.864976434968412, 5088354.666430576704443 ], [ 3369704.591985190752894, 5086672.580526566132903 ], [ 3360789.988017294090241, 5084656.221851395443082 ], [ 3353303.994744714349508, 5080774.193904279731214 ], [ 3349389.188620323780924, 5087133.799178745597601 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 8 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3541438.248960509896278, 5235377.993360521271825 ], [ 3543433.237450088839978, 5233595.859768289141357 ], [ 3542633.903708097524941, 5231972.805831268429756 ], [ 3544175.565662282984704, 5230725.927225286141038 ], [ 3543486.660695320926607, 5226315.158741917461157 ], [ 3546128.223934991750866, 5223096.176299881190062 ], [ 3548471.555172997526824, 5223564.788349682465196 ], [ 3548866.672121139243245, 5219427.131203308701515 ], [ 3548168.875794492196292, 5216358.936919000931084 ], [ 3546650.913392481859773, 5214003.88520095217973 ], [ 3548292.879481580574065, 5212214.056450068019331 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 9 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 4086760.826636567246169, 5420143.518276430666447 ], [ 4086808.671531142666936, 5409542.967353885993361 ], [ 4082766.14061520434916, 5400624.051537222228944 ], [ 4082421.635905048809946, 5386754.225615528412163 ], [ 4089049.219753789715469, 5377843.226248670369387 ], [ 4098617.331486855633557, 5364950.144174781627953 ], [ 4108935.259993148501962, 5352111.858303027227521 ], [ 4104099.747851769439876, 5340142.583631908521056 ], [ 4105126.022716738283634, 5326977.471707190386951 ], [ 4105644.832726715598255, 5315168.633660563267767 ], [ 4087476.778485930990428, 5309335.265523483045399 ], [ 4077510.900357795879245, 5315163.615023667924106 ], [ 4062209.74771217815578, 5316885.637266781181097 ], [ 4060437.251534739974886, 5309170.12626963108778 ], [ 4072142.658878248184919, 5303840.807784150354564 ], [ 4081367.015848306939006, 5298274.757965501397848 ], [ 4077383.18692975025624, 5287417.042536328546703 ], [ 4066521.071695063728839, 5276237.430549457669258 ], [ 4060654.432545214425772, 5273141.313279598020017 ], [ 4063641.371250056196004, 5257134.219709347933531 ], [ 4068576.893246999010444, 5247447.335074703209102 ], [ 4069102.343545162118971, 5234407.485015222802758 ], [ 4052727.677972931414843, 5229945.598466962575912 ], [ 4051917.089469941332936, 5222950.22226426191628 ], [ 4039524.525534840300679, 5214522.555176675319672 ], [ 4034398.804291163571179, 5206398.09894232172519 ], [ 4039141.821909353602678, 5194396.479145209304988 ], [ 4025019.397148092277348, 5196434.308113299310207 ], [ 4005884.467674105428159, 5192961.325033752247691 ], [ 3991946.867379131261259, 5184125.071647917851806 ], [ 3972791.72589312819764, 5185147.496710248291492 ], [ 3955549.230108744930476, 5180527.375362847931683 ], [ 3949948.288172746542841, 5172060.714401353150606 ], [ 3937174.35566330794245, 5165998.106741577386856 ], [ 3930199.867754022125155, 5155605.93190052267164 ], [ 3918728.155445598065853, 5156635.620072795078158 ], [ 3889954.13173627667129, 5158378.038717797026038 ], [ 3874852.903410571627319, 5165104.134305202402174 ], [ 3847273.084076985251158, 5166743.416135856881738 ], [ 3819664.537880597170442, 5169596.635912803933024 ], [ 3788779.538568348623812, 5173139.998882246203721 ], [ 3770060.973630983848125, 5175183.909194376319647 ], [ 3752206.711032005026937, 5191846.764033508487046 ], [ 3741117.361241395585239, 5205157.015413116663694 ], [ 3739319.33573512127623, 5213763.126683001406491 ], [ 3739318.648017242085189, 5213762.041995136067271 ], [ 3746347.125247769989073, 5219106.092436093837023 ], [ 3740083.589096038602293, 5221737.266996593214571 ], [ 3728044.598747427109629, 5214764.223563306033611 ], [ 3728045.337757213506848, 5214765.286014859564602 ], [ 3713703.327675763517618, 5210621.072368776425719 ], [ 3704652.582366657443345, 5210303.103773106820881 ], [ 3686142.781542423181236, 5211139.640304392203689 ], [ 3673611.167479817289859, 5206064.474945543333888 ], [ 3662529.25473585492, 5200329.012095936574042 ], [ 3662058.708734086714685, 5190904.67964499630034 ], [ 3653547.152818731963634, 5182705.952032035216689 ], [ 3640076.020032383967191, 5183101.987345575354993 ], [ 3631965.547610606066883, 5187992.767938876524568 ], [ 3627135.335209024138749, 5192958.465879148803651 ], [ 3618488.409091074485332, 5189522.425121571868658 ], [ 3612280.574078688863665, 5191213.41864407248795 ] ] ] } }
+]
+}
diff --git a/MessagesMap/geo/gre_eur_gauss.json b/MessagesMap/geo/gre_eur_gauss.json
new file mode 100644
index 000000000..bffb7663a
--- /dev/null
+++ b/MessagesMap/geo/gre_eur_gauss.json
@@ -0,0 +1,4 @@
+{ "coordinates": [ [ 3476677.303190048318356, 6087007.257444866932929 ], [ 3476616.822004675399512, 6084966.811360620893538 ], [ 3473668.040791889186949, 6084136.65482482034713 ], [ 3474958.085608421824872, 6082784.623404480516911 ], [ 3474686.09936313983053, 6078799.581815544515848 ], [ 3477666.907604074571282, 6075342.610363858751953 ], [ 3478458.137393671087921, 6073492.401157525368035 ], [ 3479258.72941018268466, 6073538.567376623861492 ], [ 3481041.117867288179696, 6069136.443714180961251 ], [ 3481084.92734553059563, 6067637.231298245489597 ], [ 3480178.321920018643141, 6066491.516745407134295 ], [ 3480225.367629409302026, 6065791.416873103938997 ], [ 3482030.445277167484164, 6066083.865732400678098 ], [ 3483378.506749597843736, 6064778.721244581975043 ], [ 3483974.459224163554609, 6063226.091161146759987 ], [ 3483968.806775116827339, 6061625.055352501571178 ], [ 3485367.320772295352072, 6059818.473003786057234 ], [ 3487271.696009595412761, 6059011.685488608665764 ], [ 3488722.168830782175064, 6057054.701115871779621 ], [ 3488919.456368356477469, 6055601.327695346437395 ], [ 3489869.808718715794384, 6053870.073632965795696 ], [ 3489088.997096770443022, 6052994.578761538490653 ], [ 3487630.804641078226268, 6052647.335497889667749 ], [ 3487955.332369572483003, 6051844.152047887444496 ], [ 3488607.613161220215261, 6051391.110381573438644 ], [ 3489238.623185290955007, 6052517.903995002619922 ], [ 3490645.543693324085325, 6052414.511348939500749 ], [ 3491600.308246622327715, 6052362.507246378809214 ], [ 3492179.24110572738573, 6052938.084833488799632 ], [ 3492278.427850613836199, 6052160.730622250586748 ], [ 3492552.921309833880514, 6050981.703681353479624 ], [ 3491820.470023844856769, 6049026.361397593282163 ], [ 3491916.337048817425966, 6046365.880419854074717 ], [ 3491837.571855330374092, 6044533.019575617276132 ], [ 3490424.542005356401205, 6042903.018327214755118 ], [ 3488986.826742523815483, 6041901.200352019630373 ], [ 3487902.959149586502463, 6041577.248776316642761 ], [ 3487447.089427972212434, 6040673.673030675388873 ], [ 3487848.103307355660945, 6039893.309557938948274 ], [ 3488376.412795174401253, 6039565.102359182201326 ], [ 3487212.267653345130384, 6037782.777916644699872 ], [ 3488747.531551353633404, 6036772.5651326905936 ], [ 3491344.281854037661105, 6036590.818132951855659 ], [ 3493260.651203465182334, 6036587.600898121483624 ], [ 3494648.877097764518112, 6037768.053973471745849 ], [ 3495532.680629992857575, 6039301.104760761372745 ], [ 3496718.211747415363789, 6040858.722266473807395 ], [ 3497097.05774338170886, 6042391.427392679266632 ], [ 3498835.000953202601522, 6043571.445409429259598 ], [ 3499288.190216931048781, 6043621.594292171299458 ], [ 3499842.018962797708809, 6041762.324521061964333 ], [ 3500774.142192447092384, 6040556.009328267537057 ], [ 3501001.161251977551728, 6039324.209037479013205 ], [ 3500547.610257353633642, 6038896.676230365410447 ], [ 3500295.591036630328745, 6038796.068267208524048 ], [ 3500799.714126588311046, 6038469.222843501716852 ], [ 3500446.927848208229989, 6037664.372356803156435 ], [ 3498757.581189809367061, 6036482.201649500988424 ], [ 3497320.008458916097879, 6036029.930034782737494 ], [ 3495931.345742169767618, 6034168.640607496723533 ], [ 3494137.630558690987527, 6032231.968735426664352 ], [ 3492773.114790372550488, 6031226.519073423929513 ], [ 3490676.500464137643576, 6030600.56354686897248 ], [ 3489162.783735713455826, 6031107.682208864949644 ], [ 3487648.182124414946884, 6031161.885515580885112 ], [ 3484312.695420804899186, 6030265.217610725201666 ], [ 3482341.424828741233796, 6029818.884594698436558 ], [ 3480674.634771616198123, 6029800.410619959235191 ], [ 3478908.206775232683867, 6030085.344181993044913 ], [ 3477996.738320228643715, 6029585.711916355416179 ], [ 3477080.912461290601641, 6028254.550017295405269 ], [ 3477379.575982786249369, 6027345.612320648506284 ], [ 3478539.832447910681367, 6026911.455994581803679 ], [ 3479904.242047449573874, 6026880.066496703773737 ], [ 3480101.803682956378907, 6025820.182651890441775 ], [ 3479643.165972984395921, 6024989.932254783809185 ], [ 3478554.028805126436055, 6024540.864729285240173 ], [ 3477412.493434378411621, 6023764.300371735356748 ], [ 3476777.402341734152287, 6023187.159839357249439 ], [ 3475768.219432229176164, 6023646.534396583214402 ], [ 3475060.184485014993697, 6023650.325195582583547 ], [ 3474148.007917058188468, 6023327.368328050710261 ], [ 3474495.186071339063346, 6022088.903486514464021 ], [ 3474441.927685622125864, 6021609.641836904920638 ], [ 3474141.616244169417769, 6022191.833146094344556 ], [ 3473910.235273453872651, 6021536.905754138715565 ], [ 3474182.707033030688763, 6020500.344429734162986 ], [ 3474708.681990761309862, 6019512.672322079539299 ], [ 3475845.500116827897727, 6019102.501202166080475 ], [ 3476699.710459274705499, 6017835.186774375848472 ], [ 3477935.615038743708283, 6016843.789863794110715 ], [ 3479225.334938751067966, 6016433.502446329221129 ], [ 3480390.684009729884565, 6016504.200149700976908 ], [ 3480876.818839738145471, 6017689.628717071376741 ], [ 3482142.117695638444275, 6017507.710238441824913 ], [ 3482953.970881132874638, 6017934.085652164183557 ], [ 3483408.243424926418811, 6017528.238434339873493 ], [ 3484421.493565948214382, 6017651.013177098706365 ], [ 3484876.836277821101248, 6017523.18357397057116 ], [ 3485076.370753273367882, 6016587.713416242040694 ], [ 3486089.781757748220116, 6016710.881793124601245 ], [ 3487357.143783047329634, 6017111.490024683065712 ], [ 3488675.669734642375261, 6017815.428914855234325 ], [ 3489660.672165025025606, 6016726.760208196938038 ], [ 3489961.711308636702597, 6015412.022719726897776 ], [ 3490011.445208260323852, 6014982.233129035681486 ], [ 3491785.766385649330914, 6015484.237369721755385 ], [ 3493054.258189263753593, 6016745.67030805721879 ], [ 3494423.38638886064291, 6018057.503272474743426 ], [ 3495715.754178680013865, 6019318.934935205616057 ], [ 3496501.127805914729834, 6020303.026617791503668 ], [ 3497184.568025426007807, 6020630.765349281020463 ], [ 3497209.735056382138282, 6020403.534698413684964 ], [ 3496626.938052949495614, 6019318.181960014626384 ], [ 3496271.064359024167061, 6017424.111700810492039 ], [ 3495383.716512867249548, 6016313.201293854042888 ], [ 3494445.060474902391434, 6015025.325029075145721 ], [ 3493557.23128197202459, 6014217.566314378753304 ], [ 3492188.937240012455732, 6014219.676489369943738 ], [ 3490465.796297576278448, 6014172.351298003457487 ], [ 3489705.399327688384801, 6014072.859690828248858 ], [ 3489424.519602987449616, 6013137.982663879171014 ], [ 3489396.270064483396709, 6011873.540976386517286 ], [ 3489699.644226006697863, 6011493.435010779649019 ], [ 3489543.397864985279739, 6009672.140033581294119 ], [ 3488398.721078993752599, 6008358.791234686039388 ], [ 3487887.65149036468938, 6006967.687228480353951 ], [ 3487783.394649030640721, 6005929.708095429465175 ], [ 3487374.340646149590611, 6004866.988068813458085 ], [ 3488133.712167686782777, 6003952.94100640527904 ], [ 3488535.208597412332892, 6002000.580343826673925 ], [ 3489344.124714308883995, 6000223.984489561058581 ], [ 3490436.11603883607313, 5999790.509757761843503 ], [ 3490713.178875850513577, 5998521.796330644749105 ], [ 3492062.576726691331714, 5999609.919839192181826 ], [ 3493970.034583770204335, 6000393.157158768735826 ], [ 3495316.664923462551087, 6000036.604230587370694 ], [ 3496204.045478584710509, 5997321.685142442584038 ], [ 3496635.361620070878416, 5995900.251514022238553 ], [ 3497906.500985828693956, 5994020.95537724904716 ], [ 3498822.481232897378504, 5993157.263414944522083 ], [ 3497244.117597866337746, 5992853.166500536724925 ], [ 3497294.824806632939726, 5992497.560236354358494 ], [ 3499076.87488862266764, 5992369.874042908661067 ], [ 3498898.303493827115744, 5990820.254816381260753 ], [ 3497751.613563754130155, 5989448.404544831253588 ], [ 3496707.123435814864933, 5989423.606808953918517 ], [ 3494235.068423153832555, 5988638.041764864698052 ], [ 3492504.350645236670971, 5989809.698533716611564 ], [ 3490874.977210045792162, 5990270.040501957759261 ], [ 3489574.504850093275309, 5989612.027205031365156 ], [ 3489215.278043416794389, 5988494.443721514195204 ], [ 3490155.682392837014049, 5987373.687156686559319 ], [ 3492368.340063839685172, 5984520.798736343160272 ], [ 3493489.048904071096331, 5983526.719524797052145 ], [ 3493459.034774763509631, 5980293.705846439115703 ], [ 3494758.039027869235724, 5977795.738842130638659 ], [ 3496033.422306774184108, 5975934.107598604634404 ], [ 3496748.48243021639064, 5975474.720108155161142 ], [ 3497258.913039631675929, 5974429.09876615088433 ], [ 3498741.000572288874537, 5973510.456161595880985 ], [ 3501450.354571287985891, 5974326.542106374166906 ], [ 3502728.207479953300208, 5974403.614853972569108 ], [ 3504722.662174994125962, 5973461.69496139511466 ], [ 3506410.543320814613253, 5972928.118898688815534 ], [ 3508481.40759842749685, 5972905.927353111095726 ], [ 3510858.726791886147112, 5973038.396658951416612 ], [ 3514437.667801415082067, 5973099.135321523062885 ], [ 3517689.619749707169831, 5971732.852935117669404 ], [ 3520071.79460312332958, 5970823.944320211187005 ], [ 3522100.38359285145998, 5969148.617584634572268 ], [ 3524390.52389700524509, 5966683.225926808081567 ], [ 3525932.338460141792893, 5965644.248623124323785 ], [ 3526715.26692469092086, 5963067.739376971498132 ], [ 3527108.010876456275582, 5961612.809277003630996 ], [ 3528252.460967866238207, 5958831.762410629540682 ], [ 3528673.873235184699297, 5957017.511846443638206 ], [ 3531431.443511363118887, 5955140.881238510832191 ], [ 3533156.49808227783069, 5954358.971981920301914 ], [ 3534888.61565616633743, 5952706.683271947316825 ], [ 3535649.97364470269531, 5950508.755971888080239 ], [ 3536279.568306562490761, 5948821.704728314653039 ], [ 3535742.444965830538422, 5948484.26254793908447 ], [ 3535600.479971596039832, 5946867.530726219527423 ], [ 3535406.01020170468837, 5945378.146233955398202 ], [ 3536366.456744550261647, 5944230.741993399336934 ], [ 3537639.202111887279898, 5942700.664343249052763 ], [ 3540616.254224290139973, 5940645.490606938488781 ], [ 3543698.68793532345444, 5938617.915230557322502 ], [ 3545662.204447855707258, 5937994.112867050804198 ], [ 3545543.090832621790469, 5936990.590394141152501 ], [ 3542754.872309128753841, 5937607.029409196227789 ], [ 3540966.085153403226286, 5938901.687121853232384 ], [ 3539080.200113159604371, 5939605.017451407387853 ], [ 3537185.967812778893858, 5941438.940311964601278 ], [ 3536124.192986026406288, 5942278.004538708366454 ], [ 3535003.894007174298167, 5944117.738086530938745 ], [ 3533781.426410960033536, 5945981.924722048453987 ], [ 3532783.738886163104326, 5948924.170413659885526 ], [ 3532130.958529762923717, 5950432.066735602915287 ], [ 3530733.010538680944592, 5952062.726530008949339 ], [ 3528176.512794377282262, 5954403.192552183754742 ], [ 3526908.81742023024708, 5956136.757830238901079 ], [ 3525613.749208349268883, 5958356.028938844799995 ], [ 3523933.308036295231432, 5960981.771894171833992 ], [ 3522225.354591047856957, 5964398.712193109095097 ], [ 3520982.854110349435359, 5967305.124535276554525 ], [ 3519287.987911266740412, 5968625.561561356298625 ], [ 3517926.941844350192696, 5969870.935102732852101 ], [ 3516007.293956977315247, 5970144.692940020933747 ], [ 3511886.873376769479364, 5970872.42351512145251 ], [ 3509534.005070523358881, 5970764.942434266209602 ], [ 3505442.229162491392344, 5970222.456928632222116 ], [ 3502450.280958690214902, 5968407.593091765418649 ], [ 3501452.385463931132108, 5967998.666074465960264 ], [ 3502425.703641577623785, 5966492.391245706938207 ], [ 3502938.765823274850845, 5964857.773516360670328 ], [ 3502503.397950951941311, 5964857.519704677164555 ], [ 3501606.420056908857077, 5966645.280344867147505 ], [ 3500761.467388154473156, 5967513.351773649454117 ], [ 3498611.505742757115513, 5967666.702764188870788 ], [ 3496384.280060479417443, 5967003.944920568726957 ], [ 3493516.553727657999843, 5966470.706748393364251 ], [ 3490956.549612362403423, 5966526.039071647450328 ], [ 3488141.374203115701675, 5966889.892934074625373 ], [ 3485429.576104983687401, 5967433.852817035280168 ], [ 3483361.405270639341325, 5968870.570711989887059 ], [ 3481144.941529768053442, 5971278.058991043828428 ], [ 3480585.90487444261089, 5972147.796602218411863 ], [ 3479944.902084841392934, 5971742.319209679029882 ], [ 3479259.78169163595885, 5972944.272228319197893 ], [ 3479671.720897752325982, 5973605.57880505733192 ], [ 3477523.777500263880938, 5973462.420466737821698 ], [ 3475038.041070946492255, 5972327.254984011873603 ], [ 3473597.222281103953719, 5970753.292319818399847 ], [ 3472227.788292527664453, 5968438.451589711010456 ], [ 3471273.561512243002653, 5967244.088373540900648 ], [ 3470724.346342022996396, 5965382.846015744842589 ], [ 3470026.726949790026993, 5964416.332110068760812 ], [ 3469884.352837080601603, 5962193.559136566706002 ], [ 3469518.946333679836243, 5961173.185775845311582 ], [ 3469148.664925666991621, 5959436.442868684418499 ], [ 3468523.683629658073187, 5958007.860167969949543 ], [ 3467899.551634310279042, 5956758.086275375448167 ], [ 3467012.5337621322833, 5954664.949093569070101 ], [ 3466484.583247231319547, 5952619.694428771734238 ], [ 3465886.56201363587752, 5951599.168357658199966 ], [ 3465966.649820008780807, 5948471.469624611549079 ], [ 3466514.704319792799652, 5946031.051722260192037 ], [ 3467654.699947436805815, 5943534.009449102915823 ], [ 3468440.193999410606921, 5941731.634774578735232 ], [ 3468999.306686798110604, 5940649.36988194193691 ], [ 3469761.206471896730363, 5939026.133002907969058 ], [ 3470135.115965273231268, 5937070.796957628801465 ], [ 3471562.621569440700114, 5934542.515133575536311 ], [ 3471888.831830199342221, 5933048.822247330099344 ], [ 3471181.839416280388832, 5931277.813002342358232 ], [ 3470247.435915781650692, 5930357.109370796009898 ], [ 3468543.862083675805479, 5930239.441170612350106 ], [ 3467685.270660751499236, 5929189.8042405359447 ], [ 3467081.363217087462544, 5927700.523775080218911 ], [ 3466256.80613265838474, 5927912.351402817294002 ], [ 3467384.130276493728161, 5930427.469608259387314 ], [ 3469147.159465497825295, 5931753.834628779441118 ], [ 3470830.574399704113603, 5932875.168024580925703 ], [ 3470323.601052484475076, 5934267.258341459557414 ], [ 3469010.808993947692215, 5934558.572257807478309 ], [ 3467031.455326407216489, 5935343.390442443080246 ], [ 3464844.698914587497711, 5935873.376480970531702 ], [ 3463710.873431571293622, 5935881.957258437760174 ], [ 3462404.245113571174443, 5936843.328530467115343 ], [ 3459169.611636072862893, 5938206.64283024892211 ], [ 3458004.053356953430921, 5940374.942820684053004 ], [ 3456810.54819371085614, 5942183.372621999122202 ], [ 3453724.933793261647224, 5942469.428621008060873 ], [ 3451402.34242440899834, 5941850.907283470965922 ], [ 3449968.027718199416995, 5940093.78015689458698 ], [ 3449506.415085554122925, 5937863.313724148087204 ], [ 3449218.692173304501921, 5935064.251987352967262 ], [ 3449019.958390897139907, 5933368.87287231720984 ], [ 3449007.466803256887943, 5932211.259051729924977 ], [ 3450732.393905590288341, 5931909.915176779031754 ], [ 3452023.500862216111273, 5932051.023267468437552 ], [ 3453785.02066671429202, 5932831.068790009245276 ], [ 3454702.209136665798724, 5931664.340971240773797 ], [ 3454704.339597740676254, 5929193.306496763601899 ], [ 3454547.126716680824757, 5926258.815160104073584 ], [ 3454297.831244829576463, 5924509.052633958868682 ], [ 3453436.544310845900327, 5923615.337047577835619 ], [ 3453370.927973054349422, 5922198.0477643487975 ], [ 3452638.035677419509739, 5921276.978695284575224 ], [ 3451979.810506428591907, 5920097.128058318980038 ], [ 3450572.618216125294566, 5919053.819553339853883 ], [ 3448938.665912148077041, 5918632.462204776704311 ], [ 3447391.162750523537397, 5919036.412611030973494 ], [ 3446704.213739825412631, 5920050.267837939783931 ], [ 3445436.657299753278494, 5922256.93124105874449 ], [ 3444445.376104539260268, 5923686.429506257176399 ], [ 3443270.505878716241568, 5924834.438234180212021 ], [ 3442367.409962251316756, 5924922.653455334715545 ], [ 3441045.313221304677427, 5924552.333469422534108 ], [ 3440367.214761393144727, 5924045.317873069085181 ], [ 3440081.085191955789924, 5923894.265626089647412 ], [ 3438960.289806449785829, 5925145.727907898835838 ], [ 3437775.150844753719866, 5927351.171701144427061 ], [ 3437667.781184329651296, 5929000.879488595761359 ], [ 3437609.03816049778834, 5930417.701596533879638 ], [ 3437720.372066305018961, 5931034.013309716247022 ], [ 3439234.401194016449153, 5930396.536052782088518 ], [ 3440760.11646825587377, 5930660.331835241988301 ], [ 3442625.690823226235807, 5931306.530912490561604 ], [ 3443557.360421299003065, 5931552.67557420488447 ], [ 3444520.762324354611337, 5932313.264070412144065 ], [ 3444767.297731639351696, 5933545.304144686087966 ], [ 3445171.049471332225949, 5935006.658037713728845 ], [ 3444564.248057119548321, 5936016.577023228630424 ], [ 3443783.491945372894406, 5937542.520102150738239 ], [ 3443183.511062816251069, 5939065.935103427618742 ], [ 3444373.255398991052061, 5939488.537014181725681 ], [ 3444038.687686034478247, 5941675.83074155729264 ], [ 3441999.091217389795929, 5941186.859105006791651 ], [ 3441682.267003884073347, 5942628.821024079807103 ], [ 3440547.964738555718213, 5944516.958514201454818 ], [ 3439518.418841506354511, 5946480.262995032593608 ], [ 3438568.430191929917783, 5946595.193164446391165 ], [ 3436757.97238511685282, 5945823.819847674109042 ], [ 3436424.658952358178794, 5947803.656272273510695 ], [ 3435794.304737102705985, 5948709.835236906073987 ], [ 3435562.271022037602961, 5950533.361839624121785 ], [ 3435627.348826813045889, 5951532.082239156588912 ], [ 3436238.614928482566029, 5953035.571394780650735 ], [ 3434683.082664306275547, 5953825.505866463296115 ], [ 3431225.680597115308046, 5954438.43411442451179 ], [ 3428042.019134792499244, 5954434.955622931011021 ], [ 3424132.954372886102647, 5954035.453433121554554 ], [ 3420662.623981730546802, 5953811.043793925084174 ], [ 3417358.084225899539888, 5952817.552741648629308 ], [ 3414515.304292720276862, 5953278.455503807403147 ], [ 3408574.040819264948368, 5951545.100782874971628 ], [ 3406190.520086363889277, 5950566.599212774075568 ], [ 3403456.761280425358564, 5950109.137784102000296 ], [ 3400031.293022985104471, 5951001.319529866799712 ], [ 3393309.005317478440702, 5951508.163937739096582 ], [ 3389864.618126108776778, 5951485.115436712279916 ], [ 3386708.577799924649298, 5950637.017777714878321 ], [ 3385159.556979889981449, 5950366.861781798303127 ], [ 3383445.997129346244037, 5949690.849111491814256 ], [ 3381870.667392538394779, 5948396.06060378625989 ], [ 3379935.811761349905282, 5947161.888310228474438 ], [ 3378858.489231504965574, 5945289.741361330263317 ], [ 3378408.761624115519226, 5945814.868023200891912 ], [ 3377590.491221052594483, 5944038.47620371170342 ], [ 3375116.210454526823014, 5941996.77489753626287 ], [ 3373575.08113806694746, 5940238.72660840395838 ], [ 3373645.036291722208261, 5939002.754042189568281 ], [ 3376925.006747884210199, 5936292.569189994595945 ], [ 3377457.266654254868627, 5934940.725709207355976 ], [ 3374967.4192228410393, 5932483.310416745953262 ], [ 3373278.96142367599532, 5933043.231897374615073 ], [ 3371733.026679804548621, 5933136.436747873201966 ], [ 3370160.365371438674629, 5936010.665202242322266 ], [ 3369519.076137204654515, 5935204.872746789827943 ], [ 3370623.14611141057685, 5932188.231711954809725 ], [ 3369114.591493148822337, 5929911.514532618224621 ], [ 3368440.948788946028799, 5926115.48908681795001 ], [ 3367815.174491509795189, 5922211.898900600150228 ], [ 3367855.358955427072942, 5919939.24583179783076 ], [ 3367481.656192598398775, 5917677.045145064592361 ], [ 3366519.759346931241453, 5916618.93251958116889 ], [ 3367844.007828892674297, 5913945.794399360194802 ], [ 3369891.462418453767896, 5913010.317344238981605 ], [ 3370114.172645153477788, 5913573.019863194786012 ], [ 3372171.915933999232948, 5913000.192899932153523 ], [ 3375694.094334222376347, 5912906.838117407634854 ], [ 3378958.63119217986241, 5912874.349174916744232 ], [ 3381492.820797096937895, 5912655.416653768159449 ], [ 3383761.873747890349478, 5912185.763681191019714 ], [ 3387057.6894920039922, 5911278.965560235083103 ], [ 3389231.434091472998261, 5911124.437441256828606 ], [ 3389169.990427058190107, 5910712.10502291098237 ], [ 3385800.536714525893331, 5910740.032295181415975 ], [ 3383269.018336617387831, 5911111.788336644880474 ], [ 3382339.612016226630658, 5909168.814603465609252 ], [ 3382303.83582130772993, 5907720.653053808026016 ], [ 3382690.641357883810997, 5906572.273836356587708 ], [ 3382015.770535920746624, 5904465.816472715698183 ], [ 3380989.873488475568593, 5902885.385575579479337 ], [ 3380601.92565342830494, 5901910.534897705540061 ], [ 3380963.030417488887906, 5899724.451104337349534 ], [ 3381006.272233997937292, 5897285.966047517023981 ], [ 3380571.120637733489275, 5896518.658477083779871 ], [ 3381950.119964316021651, 5895498.57891889102757 ], [ 3380124.136973114684224, 5895284.522914436645806 ], [ 3379353.156213115900755, 5893591.053024855442345 ], [ 3378897.736422620248049, 5892044.881480769254267 ], [ 3378243.114757189992815, 5890866.917534163221717 ], [ 3378562.644735089503229, 5889092.39410496596247 ], [ 3379631.040984740946442, 5888078.060530565679073 ], [ 3379297.529351510107517, 5885175.069798098877072 ], [ 3379711.781163732521236, 5880898.433419520966709 ], [ 3380381.403146901167929, 5876351.257420996204019 ], [ 3377849.263701925519854, 5869167.572208140976727 ], [ 3371206.723894194699824, 5859363.605619667097926 ], [ 3371527.624746496789157, 5857629.285488212481141 ], [ 3369980.544609344564378, 5854688.178933726623654 ], [ 3368376.925378764048219, 5836115.600377579219639 ], [ 3367449.391853407025337, 5834932.172175120562315 ], [ 3364635.786091762594879, 5836060.378633598797023 ], [ 3363178.295037750620395, 5836678.985137461684644 ], [ 3360259.830418622121215, 5835921.066314455121756 ], [ 3355996.562058160547167, 5837831.420854992233217 ], [ 3353407.414001809898764, 5837540.864718444645405 ], [ 3350618.66691506979987, 5837625.520739251747727 ], [ 3347601.42301795585081, 5837140.95612277276814 ], [ 3345436.599921233952045, 5835317.092675862833858 ], [ 3346230.910827414598316, 5833767.356425877660513 ], [ 3345673.96247839089483, 5831155.126211114227772 ], [ 3348989.942511128727347, 5827525.473647148348391 ], [ 3348192.509100822266191, 5827339.569121494889259 ], [ 3345941.73168804962188, 5827936.415297140367329 ], [ 3345420.68796781077981, 5826478.587266082875431 ], [ 3342795.582504959311336, 5826930.849230648949742 ], [ 3344366.017807743046433, 5823193.267107733525336 ], [ 3343657.871893892996013, 5819209.242543862201273 ], [ 3347499.253721815999597, 5816925.581227378919721 ], [ 3354561.335717626847327, 5816078.104852819815278 ], [ 3354158.508194022811949, 5814981.891949186101556 ], [ 3360410.07235207175836, 5813427.94102281704545 ], [ 3362996.824905620422214, 5816996.017746383324265 ], [ 3363939.139830404892564, 5816653.312081508338451 ], [ 3364874.159504909534007, 5812194.532633400522172 ], [ 3366096.086246723774821, 5810418.508456693962216 ], [ 3366961.268144804984331, 5809127.319069962948561 ], [ 3368172.814551057759672, 5808883.393574013374746 ], [ 3368827.476798161398619, 5803633.030413242988288 ], [ 3367622.175327560864389, 5802184.235616413876414 ], [ 3366151.062394830863923, 5798784.119034263305366 ], [ 3365519.953127616550773, 5795094.159021019004285 ], [ 3367092.672837511636317, 5792349.01920360326767 ], [ 3368069.139912141021341, 5791103.592635864391923 ], [ 3365597.090867508202791, 5790109.597399059683084 ], [ 3363098.702927227132022, 5790125.026598390191793 ], [ 3361671.551380389835685, 5788520.380895545706153 ], [ 3360531.128899966366589, 5785792.907465665601194 ], [ 3358424.072646805085242, 5784684.696112652309239 ], [ 3356556.446475771721452, 5784525.982402518391609 ], [ 3355394.674210579134524, 5783019.637303083203733 ], [ 3354493.993350301869214, 5779539.148845079354942 ], [ 3353125.28834030777216, 5778303.598316594958305 ], [ 3346633.135050836019218, 5778659.228243296965957 ], [ 3346386.405461711343378, 5775848.133750449866056 ], [ 3345958.498180619440973, 5775808.169491874985397 ], [ 3345570.669794476125389, 5775341.380574398674071 ], [ 3345915.712972332723439, 5774426.130252461880445 ], [ 3344716.62388327345252, 5773611.904277126304805 ], [ 3342034.409588743466884, 5773164.032505496405065 ], [ 3341392.093165616970509, 5771427.533043761737645 ], [ 3341604.64657867141068, 5769716.502373205497861 ], [ 3343151.784930287860334, 5769667.569369819015265 ], [ 3346612.322104823775589, 5767588.680359845981002 ], [ 3349786.27053867932409, 5764773.853767707012594 ], [ 3351001.773874350823462, 5764310.908056103624403 ], [ 3350956.643581428565085, 5761005.542051751166582 ], [ 3349780.946646358352154, 5761040.744923886843026 ], [ 3348694.386072121094912, 5760486.610711646266282 ], [ 3348454.893066844437271, 5757878.592688990756869 ], [ 3346462.724164394196123, 5755749.967545739375055 ], [ 3345580.431701772846282, 5754922.452193521894515 ], [ 3344393.333735656458884, 5754638.667289501056075 ], [ 3343615.865370575338602, 5753754.582464783452451 ], [ 3341729.641622526571155, 5755096.11836779024452 ], [ 3340852.271643145009875, 5756138.854005487635732 ], [ 3337433.614686265122145, 5754752.922583672218025 ], [ 3332228.736082796007395, 5752893.764317509718239 ], [ 3331484.686652049887925, 5753079.092910259030759 ], [ 3328537.479325717315078, 5751521.730785178951919 ], [ 3326763.096911835949868, 5749817.823775429278612 ], [ 3325255.827953243162483, 5749656.135702987201512 ], [ 3324174.002950797788799, 5750924.18424697034061 ], [ 3323135.752882071770728, 5750372.353652258403599 ], [ 3320413.791677316650748, 5752233.983169891871512 ], [ 3320203.366592936217785, 5750851.055406567640603 ], [ 3321443.058834682684392, 5749522.922141700051725 ], [ 3321288.639827483799309, 5746692.129620227962732 ], [ 3319064.428227376658469, 5747521.174326245673001 ], [ 3317318.221982288639992, 5749671.447625671513379 ], [ 3315008.851298400200903, 5749595.574773462489247 ], [ 3313754.942126256413758, 5751942.229805063456297 ], [ 3312705.989071736112237, 5752569.594331275671721 ], [ 3311498.001884695608169, 5751812.666121704503894 ], [ 3309891.581034890376031, 5751873.337724787183106 ], [ 3307358.448377598077059, 5751542.130840381607413 ], [ 3305888.227406042162329, 5753738.157947232015431 ], [ 3306925.84768676571548, 5754232.736749564297497 ], [ 3305271.256137723103166, 5755793.628545100800693 ], [ 3304612.516627378296107, 5755391.671358566731215 ], [ 3304316.483997973613441, 5756044.661156723275781 ], [ 3300518.059394588228315, 5754858.14023379702121 ], [ 3303523.705921316985041, 5752225.898682885803282 ], [ 3305131.703610144555569, 5750825.716953269205987 ], [ 3304725.069228686392307, 5748647.424826041795313 ], [ 3300695.251087656710297, 5749876.3569799028337 ], [ 3298051.387151405680925, 5752175.954285630956292 ], [ 3296791.089118544477969, 5750193.582437377423048 ], [ 3294787.194813664536923, 5749739.948938356712461 ], [ 3292318.856472048442811, 5748449.63183955848217 ], [ 3290791.532442485913634, 5749155.562595460563898 ], [ 3289755.415782129857689, 5747485.386199300177395 ], [ 3289920.600297310389578, 5746300.110409592278302 ], [ 3291301.480364295188338, 5744635.263140850700438 ], [ 3291346.548505856189877, 5743132.823075205087662 ], [ 3292459.85460583679378, 5742765.128410023637116 ], [ 3292442.820313614327461, 5741050.270462101325393 ], [ 3289569.277748117689043, 5739185.255158288404346 ], [ 3289938.450207580812275, 5737721.263886852189898 ], [ 3292831.856771476566792, 5737440.418076044879854 ], [ 3295447.548237965907902, 5735616.209272241219878 ], [ 3294546.444769632536918, 5734632.946251344867051 ], [ 3294769.298018490895629, 5733496.348698431625962 ], [ 3294763.373022275976837, 5730703.567491865716875 ], [ 3300766.162442500703037, 5728582.398163359612226 ], [ 3298604.938741892576218, 5723021.899275249801576 ], [ 3301252.56455855909735, 5720387.896259279921651 ], [ 3303898.60222477838397, 5716246.142775188200176 ], [ 3306407.695644464343786, 5712647.141253584064543 ], [ 3307041.350388780236244, 5707985.196954485028982 ], [ 3306760.580651397816837, 5704865.656977678649127 ], [ 3305694.239859013818204, 5699612.892034158110619 ], [ 3307059.12371038692072, 5699885.279689623042941 ], [ 3306408.677259535994381, 5698450.714144894853234 ], [ 3306891.591118102893233, 5695458.633018332533538 ], [ 3304303.466169738210738, 5693014.552679062820971 ], [ 3304820.446972778532654, 5692345.384959954768419 ], [ 3302757.350133853033185, 5692316.377612895332277 ], [ 3300807.180342230945826, 5688222.898389655165374 ], [ 3298167.731455585453659, 5684641.587172788567841 ], [ 3295598.09920528717339, 5682900.066120402887464 ], [ 3296643.59034953918308, 5680471.920284806750715 ], [ 3295340.14535668073222, 5680523.768423667177558 ], [ 3295423.864063579589128, 5675798.2512610508129 ], [ 3296144.030565818306059, 5674737.776216881349683 ], [ 3297818.871181078255177, 5674400.035455786623061 ], [ 3301846.811181697528809, 5677175.150566702708602 ], [ 3303004.950451396871358, 5676153.443406596779823 ], [ 3300069.322801499627531, 5674855.088434789329767 ], [ 3302601.980081139598042, 5672747.463959520682693 ], [ 3301543.437256735749543, 5672136.245121591724455 ], [ 3298906.924106827005744, 5671586.597227867692709 ], [ 3296411.522928901016712, 5670489.049561847932637 ], [ 3295915.934955024160445, 5668986.453105127438903 ], [ 3292843.561578573659062, 5667151.291205334477127 ], [ 3290555.82791165355593, 5665883.689916778355837 ], [ 3288726.071391376666725, 5663835.839024382643402 ], [ 3287655.788463062606752, 5661701.903095590882003 ], [ 3287788.022429387550801, 5660933.985525010153651 ], [ 3286589.163556799292564, 5659676.030673863366246 ], [ 3285675.648484024684876, 5660040.748064618557692 ], [ 3283969.518847334198654, 5662345.04369845148176 ], [ 3283910.612274311482906, 5663545.414018142968416 ], [ 3282216.161774517036974, 5662200.924963196739554 ], [ 3280462.666012768168002, 5662057.389897791668773 ], [ 3281149.725693407002836, 5660230.614482069388032 ], [ 3281007.559314908459783, 5658165.921700863167644 ], [ 3282057.265123712364584, 5657140.391278399154544 ], [ 3282195.721687640529126, 5656534.878498041070998 ], [ 3282895.95685621490702, 5656287.340810407884419 ], [ 3282895.669324495829642, 5654978.694535035640001 ], [ 3281921.831084162462503, 5653928.857449941337109 ], [ 3282164.998008157592267, 5653209.464688984677196 ], [ 3284269.431074277497828, 5653830.426918645389378 ], [ 3286175.214554916135967, 5654951.118787158280611 ], [ 3287108.409572302829474, 5653712.820064155384898 ], [ 3288543.489978682715446, 5654035.741379365324974 ], [ 3291436.881228879094124, 5653918.27361779846251 ], [ 3290313.565470241010189, 5651836.339308062568307 ], [ 3289686.244772073347121, 5651207.041993699036539 ], [ 3290479.113975885789841, 5650520.071423185057938 ], [ 3290561.484402420930564, 5648497.187573024071753 ], [ 3293036.209390486590564, 5647415.017832157202065 ], [ 3295798.145860120654106, 5646650.238728865049779 ], [ 3294738.588578765746206, 5644780.477730887010694 ], [ 3294251.966444883961231, 5642176.986034880392253 ], [ 3295429.911229199264199, 5641474.552059262059629 ], [ 3294038.655232372693717, 5639561.356737680733204 ], [ 3293995.366815812885761, 5638469.315338461659849 ], [ 3292764.31663303123787, 5639229.229561239480972 ], [ 3293061.974928386509418, 5639818.888335167430341 ], [ 3290278.663255966734141, 5638782.033004604279995 ], [ 3289921.04455010779202, 5636717.667458184063435 ], [ 3290352.365412818733603, 5635167.991757966578007 ], [ 3289253.805881355889142, 5633789.126760985702276 ], [ 3287483.172903017606586, 5634791.749206254258752 ], [ 3286712.606090801768005, 5633399.843388979323208 ], [ 3290445.980533546302468, 5630674.267780573107302 ], [ 3289638.17804793221876, 5628350.766448652371764 ], [ 3291080.021227496676147, 5627306.252356147393584 ], [ 3290796.933658776339144, 5624356.834253843873739 ], [ 3291817.968506064265966, 5625138.613653897307813 ], [ 3295043.942357258405536, 5624681.944071646779776 ], [ 3296693.072183144744486, 5624672.295821407809854 ], [ 3297022.031125582288951, 5623233.608524720184505 ], [ 3298291.305944545194507, 5620496.189007695764303 ], [ 3299538.523947891779244, 5618582.128672275692225 ], [ 3299570.386601782403886, 5617977.033707095310092 ], [ 3301329.404882526025176, 5617909.946983234956861 ], [ 3301850.0372996898368, 5617121.559172347187996 ], [ 3300977.427015575114638, 5615891.639724168926477 ], [ 3302162.35970045812428, 5615187.648598435334861 ], [ 3304315.478376474231482, 5615326.448602642863989 ], [ 3304771.804897429421544, 5615748.7816889481619 ], [ 3306900.287934598047286, 5615230.495798503048718 ], [ 3307079.866087296511978, 5614125.333096931688488 ], [ 3306591.203096221201122, 5612824.790656130760908 ], [ 3305774.137469457928091, 5611591.066646741703153 ], [ 3304942.406250657979399, 5609972.853507907129824 ], [ 3304475.208323805127293, 5607790.642461740411818 ], [ 3303121.993529784493148, 5605530.618068462237716 ], [ 3301353.683156805578619, 5604001.152899656444788 ], [ 3301730.339020947460085, 5602280.295819290913641 ], [ 3302920.122726429253817, 5600142.847967209294438 ], [ 3303375.420874859206378, 5599024.059985257685184 ], [ 3306211.227273208089173, 5599524.868260719813406 ], [ 3308305.345973854418844, 5599393.092373580671847 ], [ 3310312.637645933311433, 5598383.865202314220369 ], [ 3312501.882658250629902, 5597809.588673127815127 ], [ 3311240.651073282118887, 5596532.144901648163795 ], [ 3311733.563964404165745, 5594860.915249953046441 ], [ 3313415.794884885661304, 5593974.11834666505456 ], [ 3313854.436974819283932, 5592304.291197531856596 ], [ 3313032.955026251729578, 5589409.431447661481798 ], [ 3312072.228916894178838, 5587290.935907955281436 ], [ 3311029.729631065391004, 5586002.996481238864362 ], [ 3312851.407242894172668, 5584281.337762791663408 ], [ 3314117.023758508265018, 5582468.860902468673885 ], [ 3315507.704989780671895, 5581038.677639014087617 ], [ 3315297.356875209137797, 5579774.707749810069799 ], [ 3313834.56846736650914, 5579162.511864907108247 ], [ 3312422.890927549917251, 5578438.213172486051917 ], [ 3312239.135910466313362, 5577947.022410762496293 ], [ 3309972.402404117397964, 5579686.697858810424805 ], [ 3308506.895402595866472, 5579020.704504291526973 ], [ 3306869.852216646075249, 5576701.878813940100372 ], [ 3306799.393962098751217, 5574767.862640046514571 ], [ 3305868.182006170041859, 5573584.214415721595287 ], [ 3302236.243611646816134, 5572943.305715539492667 ], [ 3300930.017860637046397, 5572161.599748998880386 ], [ 3300144.664714391343296, 5570474.226262048818171 ], [ 3298369.740403208415955, 5570541.314642827026546 ], [ 3297743.478723010979593, 5568681.405577485449612 ], [ 3299343.308557103388011, 5566902.703473022207618 ], [ 3299230.510358086321503, 5563912.904206435196102 ], [ 3296171.838873052038252, 5563918.234956804662943 ], [ 3295589.09417691314593, 5561777.030498195439577 ], [ 3296171.017793844919652, 5559534.813624084927142 ], [ 3295251.905445382930338, 5558792.845377014018595 ], [ 3294582.857005979400128, 5555875.301833150908351 ], [ 3294043.740374677814543, 5553451.368433734402061 ], [ 3294251.548703496344388, 5550163.490096008405089 ], [ 3294854.003845088649541, 5546969.783770482055843 ], [ 3295568.789650909602642, 5543770.044488900341094 ], [ 3298137.080562264192849, 5539328.601225581951439 ], [ 3300777.904525710269809, 5538226.936383076943457 ], [ 3300591.881895710714161, 5536227.414858377538621 ], [ 3301506.195114647038281, 5533740.250803409144282 ], [ 3303618.107277052477002, 5530315.553367778658867 ], [ 3306815.368343424983323, 5528972.044152360409498 ], [ 3307534.157465105410665, 5527160.001687828451395 ], [ 3307574.282217318192124, 5525148.292277450673282 ], [ 3308696.975071363616735, 5525220.016151678748429 ], [ 3309319.512640958186239, 5526984.82498583663255 ], [ 3310993.110894050914794, 5526814.163781641982496 ], [ 3313538.285051248501986, 5522704.250675394199789 ], [ 3316548.763631217181683, 5522265.77099993545562 ], [ 3318269.067922670859843, 5523436.550476114265621 ], [ 3319914.076553903985769, 5522375.822257258929312 ], [ 3321440.373675452079624, 5521095.863393030129373 ], [ 3321037.886370377149433, 5519097.157823511399329 ], [ 3320105.186610721051693, 5514654.248619129881263 ], [ 3319773.01095390226692, 5511419.421840450726449 ], [ 3315822.932736824266613, 5507520.179941294714808 ], [ 3314171.082749260123819, 5505223.023033342324197 ], [ 3315870.534160270821303, 5505613.415918727405369 ], [ 3314532.170840017031878, 5502631.805040402337909 ], [ 3313095.445247137919068, 5500100.983985096216202 ], [ 3311017.866549561731517, 5498601.740836505778134 ], [ 3309590.280488845426589, 5496406.288109920918941 ], [ 3310745.491916314233094, 5494007.452444901689887 ], [ 3308854.629367342684418, 5491489.192985010333359 ], [ 3309181.777033932041377, 5484730.256133002229035 ], [ 3313247.010812398511916, 5484814.69000612013042 ], [ 3316492.805140560958534, 5484029.476350947283208 ], [ 3319570.990886089392006, 5481563.382581897079945 ], [ 3322287.867931914515793, 5478321.523670556023717 ], [ 3321235.587449310813099, 5477229.36579033266753 ], [ 3322961.23001126293093, 5474694.29114542901516 ], [ 3325099.315040445420891, 5474400.165233524516225 ], [ 3325489.990141856949776, 5472471.349379789084196 ], [ 3324874.834437024779618, 5470912.296611363068223 ], [ 3323205.481559679843485, 5471755.291168798692524 ], [ 3322589.593790540471673, 5470196.25176914408803 ], [ 3325043.291458060964942, 5469102.162997494451702 ], [ 3324770.449323010630906, 5467644.072313352487981 ], [ 3330396.944478302728385, 5462951.873545842245221 ], [ 3329867.541308000683784, 5460483.174938303418458 ], [ 3331884.418704373762012, 5459743.229751444421709 ], [ 3331997.139188995119184, 5456009.726872179657221 ], [ 3334142.840959931258112, 5455718.552115550264716 ], [ 3334888.504926262423396, 5454112.922470156103373 ], [ 3332903.71215025568381, 5452249.616904384456575 ], [ 3335540.263590311165899, 5449341.080995460040867 ], [ 3338722.781859032809734, 5449473.553945599123836 ], [ 3341862.933300896547735, 5448137.472464187070727 ], [ 3343528.168615900911391, 5450806.451900968328118 ], [ 3344353.816673721652478, 5451914.538425981998444 ], [ 3343517.471719459164888, 5454426.592455507256091 ], [ 3342416.623720757197589, 5455588.693145615980029 ], [ 3344471.86133106937632, 5456095.545629951171577 ], [ 3346230.777860252652317, 5454124.041230094619095 ], [ 3348534.500820654910058, 5455417.066853553988039 ], [ 3350126.772815578151494, 5455599.616118837147951 ], [ 3350754.49173581879586, 5453660.418490864336491 ], [ 3353042.183922443073243, 5454390.484042441472411 ], [ 3355475.836065769661218, 5452064.318216507323086 ], [ 3356254.627246593125165, 5451478.37142503913492 ], [ 3356823.409308884758502, 5447163.237360533326864 ], [ 3357294.292350224219263, 5443413.863010513596237 ], [ 3359579.423207714688033, 5443921.746796428225935 ], [ 3360987.298051197081804, 5445698.208481875248253 ], [ 3360590.471944097895175, 5447972.440755658783019 ], [ 3362292.112452516332269, 5447929.735422714613378 ], [ 3361455.444901064969599, 5446252.590178170241416 ], [ 3364057.079601254779845, 5445848.282199367880821 ], [ 3365712.608134512789547, 5443882.626493926160038 ], [ 3367896.633981968276203, 5444962.516656741499901 ], [ 3368642.734678084496409, 5442906.054143330082297 ], [ 3371980.076957716140896, 5444753.172875575721264 ], [ 3374577.838198570534587, 5444127.395131227560341 ], [ 3375230.834074159618467, 5442866.755629636347294 ], [ 3377448.385518587194383, 5445535.004778406582773 ], [ 3379165.533601051662117, 5446176.423322357237339 ], [ 3380870.060002903919667, 5446252.588262471370399 ], [ 3380943.272243015002459, 5449645.88072828296572 ], [ 3386280.102225408889353, 5449872.642567787319422 ], [ 3385796.10053317528218, 5448411.922651157714427 ], [ 3390566.658243300393224, 5448654.678026086650789 ], [ 3390875.608130455948412, 5447064.419459532946348 ], [ 3389591.466181238181889, 5445278.940169045701623 ], [ 3391921.592530752066523, 5442515.271651929244399 ], [ 3394684.753265048842877, 5438496.4903419399634 ], [ 3399004.598318004515022, 5438529.320804560557008 ], [ 3400550.565832812339067, 5436007.450539210811257 ], [ 3403823.534864186309278, 5434588.917249847203493 ], [ 3405324.923858066089451, 5435923.79734976682812 ], [ 3407253.612404691055417, 5435664.408813539892435 ], [ 3407806.925638171844184, 5434748.031439089216292 ], [ 3410777.704689913894981, 5435606.534004563465714 ], [ 3412390.74775867164135, 5436941.196620415896177 ], [ 3417001.288586367387325, 5433582.037418880499899 ], [ 3418957.754121808800846, 5435140.697352018207312 ], [ 3421562.956715709995478, 5434422.86768676713109 ], [ 3422379.521928046364337, 5435885.328683120198548 ], [ 3425744.129689838737249, 5432437.227799493819475 ], [ 3427224.266208763234317, 5432531.038100123405457 ], [ 3431741.759720824658871, 5429864.124439768493176 ], [ 3432188.612845612224191, 5429177.71805084683001 ], [ 3438648.05060533201322, 5426605.180578490719199 ], [ 3441146.937545709311962, 5426010.398915889672935 ], [ 3443774.019803314469755, 5426777.997880448587239 ], [ 3444100.72794422134757, 5425298.52947814296931 ], [ 3441018.598437156993896, 5424648.949427127838135 ], [ 3435781.751066780183464, 5415044.075494257733226 ], [ 3434346.99304535286501, 5409482.786479373462498 ], [ 3431221.258303457405418, 5406102.538412497378886 ], [ 3428935.65839446336031, 5406131.130265021696687 ], [ 3427750.173842236865312, 5402840.358370274305344 ], [ 3424540.760941871441901, 5402312.519788173958659 ], [ 3423922.496248530223966, 5398898.478684207424521 ], [ 3418439.855920504312962, 5391781.614717473275959 ], [ 3413938.186163996346295, 5389677.335346916690469 ], [ 3411663.536555420141667, 5383536.496232718229294 ], [ 3411904.082985449582338, 5376891.61941062938422 ], [ 3409316.030788129195571, 5373150.537075099535286 ], [ 3408785.944496780633926, 5368800.822875512763858 ], [ 3406375.0789919286035, 5362181.630773250944912 ], [ 3407291.672799124382436, 5354810.195661885663867 ], [ 3403448.705552062485367, 5352688.398006235249341 ], [ 3401584.928618231788278, 5345005.833078308030963 ], [ 3399793.318139681126922, 5341694.676721687428653 ], [ 3395999.802427514456213, 5336572.159682932309806 ], [ 3395949.444171581882983, 5333802.955227456986904 ], [ 3394183.205465422011912, 5332218.813860137946904 ], [ 3394595.380240791011602, 5329438.959857028909028 ], [ 3393640.730744129046798, 5327954.405255996622145 ], [ 3393211.342989110853523, 5323569.099566949531436 ], [ 3396360.318487529177219, 5318073.055318268015981 ], [ 3398280.386333810631186, 5315028.157073317095637 ], [ 3394487.641686563845724, 5310925.224588554352522 ], [ 3394423.981077825650573, 5307448.090825513936579 ], [ 3392276.657797023188323, 5304587.579806504771113 ], [ 3392216.062134995125234, 5301338.763521077111363 ], [ 3390511.565416099969298, 5297421.956813243217766 ], [ 3390967.2622343711555, 5290670.947469526901841 ], [ 3391033.667191634885967, 5287993.832420127466321 ], [ 3389003.368527046404779, 5285588.023670888505876 ], [ 3389741.017122888471931, 5281381.400491485372186 ], [ 3392819.984673089813441, 5277244.935140418820083 ], [ 3394591.297573479358107, 5271730.801261203363538 ], [ 3398013.090484702028334, 5273303.366132202558219 ], [ 3400707.498672728426754, 5273490.161846791394055 ], [ 3401828.139359097927809, 5270554.286127161234617 ], [ 3397955.972861425019801, 5270037.144075736403465 ], [ 3399998.7742646089755, 5266265.641654439270496 ], [ 3404585.363901938777417, 5267356.723335566930473 ], [ 3408467.720814909785986, 5268462.114133893512189 ], [ 3410960.008184376638383, 5270641.193926501087844 ], [ 3411809.170814938377589, 5272611.76419866271317 ], [ 3418007.770553172565997, 5272404.673736351542175 ], [ 3417943.807783041615039, 5267854.309229598380625 ], [ 3424162.66499761166051, 5268820.825085404329002 ], [ 3429899.930880703497678, 5268865.822852464392781 ], [ 3433071.157436474226415, 5269762.234682783484459 ], [ 3434850.180987715255469, 5271842.22906899638474 ], [ 3440261.857453008182347, 5274699.827171719633043 ], [ 3442490.564558713696897, 5275376.912784439511597 ], [ 3447264.346893206704408, 5273116.368334513157606 ], [ 3451332.917477671988308, 5270048.07426589820534 ], [ 3455199.364794543478638, 5270600.441492328420281 ], [ 3462217.406400641426444, 5270084.029153803363442 ], [ 3462115.544423341285437, 5272417.717338015325367 ], [ 3459549.26128638535738, 5273484.546016472391784 ], [ 3461315.280674194917083, 5275221.385354879312217 ], [ 3464252.008879730477929, 5277417.029964530840516 ], [ 3466808.071528592146933, 5274721.123694409616292 ], [ 3465386.15279812226072, 5271580.890589426271617 ], [ 3466536.707049704156816, 5268190.529738401062787 ], [ 3469135.004472768865526, 5272492.859014559537172 ], [ 3469979.735556862317026, 5277501.11858360376209 ], [ 3471967.220725715626031, 5277607.701487408950925 ], [ 3470702.75202213646844, 5281807.2296939836815 ], [ 3465559.106220188550651, 5281020.366265679709613 ], [ 3464258.458702430594712, 5278465.64477123785764 ], [ 3460407.672557429876179, 5279306.108462906442583 ], [ 3456223.297716085333377, 5282247.711141574196517 ], [ 3458593.045648510567844, 5287002.174714633263648 ], [ 3460609.171887961681932, 5291756.062570192851126 ], [ 3464815.680743975564837, 5293239.917727896012366 ], [ 3468788.821677942294627, 5295076.193848267197609 ], [ 3471580.842789880000055, 5294132.310972448438406 ], [ 3472965.241934643127024, 5291103.872367586009204 ], [ 3474382.003062608186156, 5295048.671408385969698 ], [ 3476475.191171061713248, 5293994.103915286250412 ], [ 3477158.859918577596545, 5290039.41158040985465 ], [ 3479963.103435664903373, 5291540.355961260385811 ], [ 3481008.256034184712917, 5290258.01567401830107 ], [ 3479137.714538817759603, 5288985.379434469155967 ], [ 3478663.841934462543577, 5287009.781976686790586 ], [ 3480528.078016032930464, 5286188.817212254740298 ], [ 3480169.60632247896865, 5283746.194585441611707 ], [ 3484950.365807128604501, 5281403.371870806440711 ], [ 3486007.458826499991119, 5283845.517693010158837 ], [ 3483447.301175893750042, 5286761.43484144937247 ], [ 3486135.654042263980955, 5288615.446468035690486 ], [ 3487996.787629834376276, 5286052.11650069616735 ], [ 3490561.435793025419116, 5284301.819737511686981 ], [ 3489857.728705554269254, 5282440.55852793995291 ], [ 3491137.812988555524498, 5279527.166797446087003 ], [ 3498265.325822744518518, 5281267.486392702907324 ], [ 3502819.825412742327899, 5282781.419286884367466 ], [ 3509244.374250557273626, 5281390.825471815653145 ], [ 3515089.988283701241016, 5279190.109527446329594 ], [ 3523858.888779436703771, 5277821.259920362383127 ], [ 3530889.600915216375142, 5274357.56218041293323 ], [ 3536891.081754141952842, 5268443.197854464873672 ], [ 3540068.480084216687828, 5266012.652949059382081 ], [ 3553417.852102292235941, 5266235.853332026861608 ], [ 3556211.594016916584224, 5268013.127959861420095 ], [ 3558968.337896288372576, 5273290.572352670133114 ], [ 3561899.912950264289975, 5272621.111900174990296 ], [ 3562284.403799287974834, 5269475.152123768813908 ], [ 3561479.815212272107601, 5268066.084516203962266 ], [ 3564183.976370956283063, 5267044.468381702899933 ], [ 3565719.279709361959249, 5265893.89309382904321 ], [ 3566403.429552424233407, 5267536.205747944302857 ], [ 3568290.372541241813451, 5266390.391143075190485 ], [ 3569818.320568916853517, 5265941.33543078135699 ], [ 3572029.144681832287461, 5267135.752536108717322 ], [ 3573221.965306973550469, 5265399.005599326454103 ], [ 3574655.764731553848833, 5263197.722430121153593 ], [ 3575151.409697893541306, 5261100.712370845489204 ], [ 3578547.478611031081527, 5261378.970776219852269 ], [ 3579748.168419474270195, 5259291.129584588110447 ], [ 3581883.149714205879718, 5257566.576770008541644 ], [ 3582808.240240890067071, 5258515.072712591849267 ], [ 3583446.076896387152374, 5254898.145284430123866 ], [ 3582763.456113736145198, 5253367.264338509179652 ], [ 3581358.256128629203886, 5253113.575677283108234 ], [ 3581141.269917943049222, 5251823.039311069063842 ], [ 3583929.950573852751404, 5245654.594349051825702 ], [ 3585183.727434386033565, 5248367.265037763863802 ], [ 3588707.837484438437968, 5248419.322575177066028 ], [ 3589154.649804558139294, 5249948.636216470040381 ], [ 3591389.652602588757873, 5249748.712714437395334 ], [ 3592909.037499438039958, 5250240.939058191142976 ], [ 3593529.716749743092805, 5248142.545198270119727 ], [ 3590780.658106582704931, 5243529.163231349550188 ], [ 3592564.436123425606638, 5242267.182938345707953 ], [ 3590476.508206685073674, 5240358.343124462291598 ], [ 3589307.2881701849401, 5239871.332583459094167 ], [ 3589344.571334254462272, 5237407.992308411747217 ], [ 3592638.066764779854566, 5237576.085658218711615 ], [ 3596022.389893831685185, 5239390.200858609750867 ], [ 3599875.145035069435835, 5241213.710675236769021 ], [ 3602669.389848919585347, 5242903.50682313926518 ], [ 3605032.05606965534389, 5248922.291727581992745 ], [ 3608066.80489345267415, 5250031.43032496329397 ], [ 3609625.871784656774253, 5254626.30302225984633 ], [ 3611348.46130685089156, 5256647.945228716358542 ], [ 3610419.388586510438472, 5262360.304890165105462 ], [ 3608763.424330571200699, 5263147.427640830166638 ], [ 3608694.033288604114205, 5266884.567464678548276 ], [ 3609118.909958738833666, 5269227.795274266041815 ], [ 3610647.321896548848599, 5268906.279476214200258 ], [ 3615249.731480587739497, 5267126.820916695520282 ], [ 3619348.372115508653224, 5267208.993084497749805 ], [ 3621032.431041778530926, 5270746.408954884856939 ], [ 3626079.967394401784986, 5270152.706479787826538 ], [ 3630572.067742535844445, 5268266.285531943663955 ], [ 3632807.319957664236426, 5267849.441527684219182 ], [ 3633446.057540745474398, 5265527.547462677583098 ], [ 3638095.929316089954227, 5267154.234824404120445 ], [ 3642637.700458443723619, 5268314.512101682834327 ], [ 3643857.431304589379579, 5266358.401632416062057 ], [ 3644800.262721888720989, 5266147.963323574513197 ], [ 3644817.604788166470826, 5265447.263283429667354 ], [ 3640165.15465962793678, 5263931.561806668527424 ], [ 3641139.183433841913939, 5262435.246510568074882 ], [ 3644198.11670959694311, 5262042.036850397475064 ], [ 3646308.03940167883411, 5262094.335843012668192 ], [ 3645636.6809899113141, 5260791.255818320438266 ], [ 3649977.000201102811843, 5256220.514234762638807 ], [ 3649895.504383739084005, 5254813.657967455685139 ], [ 3648493.041923482902348, 5254543.871222625486553 ], [ 3648898.53397985547781, 5252446.283060369081795 ], [ 3655244.936900129541755, 5252376.249460184946656 ], [ 3659944.748774581588805, 5252385.14824132528156 ], [ 3660356.915271494071931, 5254504.557586400769651 ], [ 3665364.514791925437748, 5256048.53507305495441 ], [ 3667446.723311715293676, 5257161.197963807731867 ], [ 3670269.322932854294777, 5257008.310153999365866 ], [ 3668257.917418883182108, 5253437.308276225812733 ], [ 3671669.364111591130495, 5253301.741627963259816 ], [ 3673464.882921018637717, 5256165.284245558083057 ], [ 3673885.756954886950552, 5257816.760811294429004 ], [ 3676428.008520286995918, 5259180.193365572020411 ], [ 3680419.411375533789396, 5259184.620946523733437 ], [ 3683007.097934948280454, 5259030.728365052491426 ], [ 3681644.402653094381094, 5261328.834081131033599 ], [ 3679505.29189323540777, 5262198.820665345527232 ], [ 3681762.838844546116889, 5265075.352458233945072 ], [ 3683571.641286125872284, 5267236.164021715521812 ], [ 3684911.747386515140533, 5265641.709323761053383 ], [ 3688876.447099495213479, 5266352.949248921126127 ], [ 3695183.112736156210303, 5267144.526237981393933 ], [ 3695319.863971607759595, 5270071.130221887491643 ], [ 3696119.325948164798319, 5274186.363479602150619 ], [ 3696906.828900756314397, 5275146.99231637455523 ], [ 3698455.322155223693699, 5274382.098087263293564 ], [ 3698165.873252294491976, 5276006.855788071639836 ], [ 3700872.075926858466119, 5275632.422248547896743 ], [ 3704272.418023795820773, 5275516.964767271652818 ], [ 3709753.506413412280381, 5276178.495045790448785 ], [ 3714834.560195084195584, 5274962.047557797282934 ], [ 3715225.076776642352343, 5277078.369512633420527 ], [ 3719598.942155567463487, 5279109.284095799550414 ], [ 3723200.924123435281217, 5279829.728579265065491 ], [ 3726460.559814589098096, 5280305.658364173956215 ], [ 3728479.740992708131671, 5279567.430374900810421 ], [ 3730448.767183461226523, 5280111.890556435100734 ], [ 3734937.954438397660851, 5279123.749624446034431 ], [ 3737407.580403123050928, 5278873.540395647287369 ], [ 3739839.115334124770015, 5279556.906656790524721 ], [ 3741062.50966218020767, 5281125.072306622751057 ], [ 3740314.499946163035929, 5285061.61410831194371 ], [ 3738462.100503182038665, 5287434.47964827530086 ], [ 3737671.088330583646894, 5289617.026910294778645 ], [ 3741138.691207077819854, 5290575.791679365560412 ], [ 3743583.974459180608392, 5293590.783346704207361 ], [ 3744239.741539272945374, 5294666.666533531621099 ], [ 3745464.946214229334146, 5293320.574310488067567 ], [ 3743998.069396694656461, 5289296.49346340354532 ], [ 3744183.253322290256619, 5287671.990883053280413 ], [ 3746692.623504033312201, 5289177.121603433042765 ], [ 3750788.186702605802566, 5289119.279253566637635 ], [ 3752676.163812062237412, 5288734.667057823389769 ], [ 3757447.123620067723095, 5289293.919177147559822 ], [ 3759273.323339673690498, 5290307.941840749233961 ], [ 3759434.355598406866193, 5286699.644191927276552 ], [ 3760924.608653508126736, 5284782.653198830783367 ], [ 3763488.720214647240937, 5282446.77900482993573 ], [ 3764875.338989542797208, 5282859.968370902352035 ], [ 3766495.511189344339073, 5283284.17008647415787 ], [ 3769066.47902257181704, 5283402.444049267098308 ], [ 3770618.857421291992068, 5287792.848045555874705 ], [ 3774917.488424092996866, 5288461.269915884360671 ], [ 3781994.922287775669247, 5289733.756127413362265 ], [ 3781684.184308716095984, 5288901.981460696086287 ], [ 3784281.404768616426736, 5288445.005778755992651 ], [ 3783899.587727916426957, 5286675.657007952220738 ], [ 3782309.491651613265276, 5285664.359989155083895 ], [ 3784281.144812294282019, 5283658.524575554765761 ], [ 3787003.591664461418986, 5283091.307140819728374 ], [ 3788124.720327303744853, 5281744.780626373365521 ], [ 3786505.169203932397068, 5281314.372820717282593 ], [ 3785532.874546250328422, 5279630.628904357552528 ], [ 3784799.654778862372041, 5277841.408533683978021 ], [ 3786603.60178305208683, 5274538.416780044324696 ], [ 3790477.9888247968629, 5274495.941701513715088 ], [ 3790594.128488400951028, 5272161.474625929258764 ], [ 3793111.897764969151467, 5271116.731996889226139 ], [ 3795818.700670539867133, 5268677.05331720970571 ], [ 3798855.596301339101046, 5266722.819737875834107 ], [ 3799838.722160743549466, 5268178.955591368488967 ], [ 3802889.489610741846263, 5265992.731342470273376 ], [ 3804384.913735983893275, 5268882.313176333904266 ], [ 3805133.319873026106507, 5272551.575273250229657 ], [ 3803754.023067193571478, 5274235.446301868185401 ], [ 3805363.573710943572223, 5277127.578434414230287 ], [ 3804047.390052516479045, 5279865.629771737381816 ], [ 3806959.158603717572987, 5280252.08644082583487 ], [ 3806042.457857865374535, 5282074.320290931500494 ], [ 3808337.247325238306075, 5285233.647769700735807 ], [ 3807389.733745195437223, 5289854.723989077843726 ], [ 3804631.600111520383507, 5293326.948602575808764 ], [ 3800935.690724624320865, 5294650.400785171426833 ], [ 3796205.97065965924412, 5293357.427407402545214 ], [ 3792640.902135544922203, 5294459.316254674457014 ], [ 3795373.669104842003435, 5298211.406877520494163 ], [ 3795010.249062247108668, 5300756.032704696059227 ], [ 3797138.066065363120288, 5304823.992066430859268 ], [ 3798377.11803000792861, 5305702.598571930080652 ], [ 3798384.577908948995173, 5312333.655418801121414 ], [ 3794250.609914021100849, 5317931.166057704016566 ], [ 3790229.527724273037165, 5321442.149465550668538 ], [ 3786678.104510818608105, 5327295.615803264081478 ], [ 3781226.071450241375715, 5331776.835706444457173 ], [ 3778754.146607806906104, 5337212.942081055603921 ], [ 3781026.840195064432919, 5340563.218345453031361 ], [ 3784765.083432798739523, 5342367.16905709169805 ], [ 3787737.504416177049279, 5345521.691941050812602 ], [ 3789793.842401337809861, 5348398.836057630367577 ], [ 3793826.797423883806914, 5348836.223122604191303 ], [ 3797599.462265519890934, 5352034.835355360992253 ], [ 3804847.855404205620289, 5357266.374191619455814 ], [ 3812375.677845589350909, 5359290.237615343183279 ], [ 3817631.024841874837875, 5360504.439402943477035 ], [ 3822651.658046095632017, 5363786.195641887374222 ], [ 3825398.449115025345236, 5368323.389857625588775 ], [ 3828089.372631504200399, 5375733.77600179053843 ], [ 3827511.594646334648132, 5379727.006050870753825 ], [ 3828863.156577812042087, 5388195.249212647788227 ], [ 3828641.499112889170647, 5390019.510012876242399 ], [ 3831139.159764649346471, 5390625.081788191571832 ], [ 3832704.719903009012341, 5393357.319908248260617 ], [ 3836917.414856550749391, 5390279.050154198892415 ], [ 3838962.361385906580836, 5390746.295140411704779 ], [ 3843176.997758243698627, 5389623.48540545720607 ], [ 3845376.278749476186931, 5387575.043853930197656 ], [ 3850226.137220137286931, 5385575.508480267599225 ], [ 3851189.237577030435205, 5388623.880884901620448 ], [ 3850659.475342543795705, 5391577.755359980277717 ], [ 3852789.389023704454303, 5390677.091992710717022 ], [ 3854029.779714288655668, 5392937.241628798656166 ], [ 3854286.8513412210159, 5396167.913990419358015 ], [ 3854864.502612382173538, 5401596.117986790835857 ], [ 3855912.69081223430112, 5406820.185579559765756 ], [ 3853265.493678213562816, 5408714.249234259128571 ], [ 3854757.19810030516237, 5412357.58047001156956 ], [ 3856304.881807212717831, 5415087.768602450378239 ], [ 3853490.335917244199663, 5416052.7716233888641 ], [ 3853710.381891583092511, 5418010.65491761174053 ], [ 3851403.576942361425608, 5421864.904213130474091 ], [ 3849770.128725301939994, 5422333.346828631125391 ], [ 3847147.385368203744292, 5427649.450403043068945 ], [ 3842373.275378418620676, 5427125.432981932535768 ], [ 3840837.995919925626367, 5429769.007287064567208 ], [ 3839227.780072700697929, 5433660.686249264515936 ], [ 3836439.828622874803841, 5434402.664457753300667 ], [ 3836095.253023515921086, 5436318.424838675186038 ], [ 3829366.732189212460071, 5436142.68965432792902 ], [ 3830673.839149459730834, 5433372.629446876235306 ], [ 3827231.001920537557453, 5433624.40624125674367 ], [ 3822318.734723675530404, 5437550.340535138733685 ], [ 3822575.768218017183244, 5440979.144701819866896 ], [ 3821468.647546603810042, 5444326.509012749418616 ], [ 3817497.509936431888491, 5447961.082637995481491 ], [ 3813525.178468396887183, 5451708.761152523569763 ], [ 3808576.439607511274517, 5450635.348259688355029 ], [ 3804448.080683045554906, 5453243.31266425549984 ], [ 3805066.947153330780566, 5456453.37618157081306 ], [ 3801793.476753655355424, 5458087.058316828683019 ], [ 3800209.238722647540271, 5460040.354074968956411 ], [ 3800098.372055599931628, 5462073.412857607007027 ], [ 3797570.184695475269109, 5462615.608460924588144 ], [ 3797120.666033543180674, 5464629.31726430170238 ], [ 3795064.951798662077636, 5464858.183651850558817 ], [ 3794735.671891257166862, 5466764.423756338655949 ], [ 3793830.467423887457699, 5466715.935289075598121 ], [ 3793363.018220909871161, 5471215.067984454333782 ], [ 3791649.173001739662141, 5471462.839840769767761 ], [ 3788192.944655504543334, 5474670.355206306092441 ], [ 3781767.430439930409193, 5476256.194380306638777 ], [ 3782494.705392826814204, 5473130.944204164668918 ], [ 3778803.899224318098277, 5474410.55358830653131 ], [ 3774488.077136000618339, 5474644.452892290428281 ], [ 3774499.445151279680431, 5476677.436628054827452 ], [ 3773071.275329637341201, 5478073.397718599997461 ], [ 3770742.316181838978082, 5481680.674946036189795 ], [ 3769090.785169301088899, 5483065.046973722986877 ], [ 3765550.433686465024948, 5483793.733113300055265 ], [ 3762932.97133231209591, 5488849.73077289480716 ], [ 3763914.385872582904994, 5489572.763349560089409 ], [ 3763680.64985917834565, 5494401.116383878514171 ], [ 3759918.058954005129635, 5495232.585864448919892 ], [ 3759837.691012873779982, 5496915.595750628039241 ], [ 3758306.480578999500722, 5500664.208094398491085 ], [ 3757087.693330587819219, 5504986.580174822360277 ], [ 3754883.128251632675529, 5503984.414849063381553 ], [ 3754714.808642594143748, 5507568.351268366910517 ], [ 3754663.982789839152247, 5511043.313948171213269 ], [ 3752281.613686378113925, 5511492.468478155322373 ], [ 3748129.784483372233808, 5513766.628840764984488 ], [ 3746198.039193653967232, 5516703.218183800578117 ], [ 3745164.472104180138558, 5519679.350210216827691 ], [ 3750539.33744758926332, 5522388.22244018688798 ], [ 3749631.557521247304976, 5525030.91827192530036 ], [ 3751453.250985849648714, 5529252.096258390694857 ], [ 3753537.38713001832366, 5532589.865801245905459 ], [ 3755725.237144735641778, 5536043.278154118917882 ], [ 3755294.895878308918327, 5538031.72348784096539 ], [ 3751431.163173641078174, 5539299.782857084646821 ], [ 3749066.560313181020319, 5539635.706390921957791 ], [ 3749653.344769380521029, 5541447.267171245068312 ], [ 3751865.640581336338073, 5544337.569970003329217 ], [ 3747566.525898560415953, 5545474.365603343583643 ], [ 3741168.10805734898895, 5548634.853609713725746 ], [ 3736883.377496286295354, 5552115.916657934896648 ], [ 3732860.684804424177855, 5554830.687946009449661 ], [ 3728711.969448793213814, 5557985.670789001509547 ], [ 3729464.714967768639326, 5563792.524646927602589 ], [ 3727989.290521514136344, 5567057.754149910062551 ], [ 3725271.63060312345624, 5570822.592721866443753 ], [ 3723020.272674647625536, 5571503.397643525153399 ], [ 3720954.572312307544053, 5573079.009767584502697 ], [ 3722197.374655489809811, 5575235.247705519199371 ], [ 3724497.154413202777505, 5575996.423454540781677 ], [ 3722834.039479933679104, 5578583.004573442041874 ], [ 3722769.039576907176524, 5580129.408005010336637 ], [ 3725066.585877205245197, 5580890.293769891373813 ], [ 3727535.879815011750907, 5580221.320491296239197 ], [ 3728536.122558393981308, 5577608.177078784443438 ], [ 3729416.839799566194415, 5575210.187771665863693 ], [ 3732993.263559928163886, 5574701.404885558411479 ], [ 3733393.895032570697367, 5573167.954350016079843 ], [ 3731330.138952594250441, 5572080.348174600861967 ], [ 3733611.763258014339954, 5570739.254571005702019 ], [ 3734761.716771180741489, 5567352.232825891114771 ], [ 3735101.073267021682113, 5564704.269534032791853 ], [ 3739149.540715137496591, 5563774.546241171658039 ], [ 3738370.86983257997781, 5568732.839852967299521 ], [ 3737612.999364356510341, 5573244.241673161275685 ], [ 3739326.31655189068988, 5572212.901111060753465 ], [ 3739241.605420134961605, 5574093.036808216013014 ], [ 3739434.552854179404676, 5577203.285217555239797 ], [ 3742486.88466526241973, 5578449.297283021733165 ], [ 3743195.698030634783208, 5582355.619254254736006 ], [ 3745193.616463465616107, 5582337.129896971397102 ], [ 3746473.449683679267764, 5585825.585223335772753 ], [ 3747626.353403460234404, 5584884.130324793048203 ], [ 3748912.741093137301505, 5585829.254802440293133 ], [ 3748055.406660733744502, 5587558.010741391219199 ], [ 3750352.821555800270289, 5590539.87686912342906 ], [ 3756120.740906673483551, 5592694.691901732236147 ], [ 3761319.851808167994022, 5592839.135161161422729 ], [ 3763640.022545332554728, 5590744.539587195031345 ], [ 3765088.066164024174213, 5592806.126774789765477 ], [ 3765805.504067606292665, 5596155.763985391706228 ], [ 3769294.493140616454184, 5597216.168350159190595 ], [ 3771777.307420271914452, 5598447.61954506020993 ], [ 3777517.269274128600955, 5594550.152100934647024 ], [ 3779174.767910319380462, 5592537.95446698833257 ], [ 3783064.905809750314802, 5594402.989793696440756 ], [ 3785531.590503603219986, 5597960.613069591112435 ], [ 3785292.918592177331448, 5602363.352759633213282 ], [ 3785793.407418191898614, 5605369.051127099432051 ], [ 3788786.980039114132524, 5603216.049936227500439 ], [ 3791820.629771676845849, 5604376.48924214206636 ], [ 3793817.67619692441076, 5606252.661121785640717 ], [ 3794767.486478177830577, 5605092.483013670891523 ], [ 3797984.086632254999131, 5604942.84390078112483 ], [ 3798942.971542614977807, 5607534.35722359828651 ], [ 3800863.902500619180501, 5612604.557866881601512 ], [ 3800719.00320157315582, 5615129.840504218824208 ], [ 3804603.223441467620432, 5614803.464634914882481 ], [ 3804588.826225992757827, 5613150.133053756318986 ], [ 3807322.295576164498925, 5613640.182172295637429 ], [ 3807666.494451082311571, 5617185.059356661513448 ], [ 3810002.666366584599018, 5618754.134881952777505 ], [ 3809885.218344220891595, 5622598.770956395193934 ], [ 3811567.728737420868129, 5620278.020765405148268 ], [ 3813154.783157257828861, 5617730.618035649880767 ], [ 3816631.800540513824672, 5616838.365389060229063 ], [ 3818528.980083230417222, 5620146.826872535049915 ], [ 3820138.351486396510154, 5620905.539194607175887 ], [ 3819241.415794375818223, 5622941.702673432417214 ], [ 3820589.658701670821756, 5624344.438851588405669 ], [ 3820804.910515702795237, 5626227.419903922826052 ], [ 3819791.884480574168265, 5628364.13313468080014 ], [ 3823876.049646253697574, 5630044.886930740438402 ], [ 3825460.674490362405777, 5629374.150745071470737 ], [ 3827690.549742918461561, 5630722.753537888638675 ], [ 3829240.189858032856137, 5632358.759236394427717 ], [ 3833741.381344829220325, 5630886.665362003259361 ], [ 3835823.814404712989926, 5632778.79919742513448 ], [ 3839809.57790264301002, 5632487.659409415908158 ], [ 3842376.606729364022613, 5631996.142137260176241 ], [ 3843445.237223695032299, 5632506.12609598506242 ], [ 3843768.665056216064841, 5634285.857123780995607 ], [ 3845552.902452688198537, 5633964.343297033570707 ], [ 3845882.751379332505167, 5635634.421999706886709 ], [ 3844655.647528459317982, 5637530.159447366371751 ], [ 3845015.252021585591137, 5640408.523520876653492 ], [ 3848266.043823816813529, 5639527.474278996698558 ], [ 3849631.292850653175265, 5642143.735014835372567 ], [ 3852193.607557627372444, 5643304.407770987600088 ], [ 3853370.509702744428068, 5642177.166409933008254 ], [ 3858058.244092615321279, 5642827.346514443866909 ], [ 3860739.176678330637515, 5645427.098640786483884 ], [ 3864651.863971631042659, 5647675.155172302387655 ], [ 3868303.865829121787101, 5650455.49470139015466 ], [ 3868453.576860548462719, 5652987.293692287988961 ], [ 3871296.134664352517575, 5653190.297076079063118 ], [ 3872913.080978018697351, 5652100.729297350160778 ], [ 3876138.209241904318333, 5653101.258640002459288 ], [ 3878799.779436421580613, 5654281.763115962035954 ], [ 3878304.489329853560776, 5656546.711064988747239 ], [ 3879908.626702595502138, 5658635.955835712142289 ], [ 3877372.649784710258245, 5658778.769319750368595 ], [ 3873642.486421301960945, 5660259.489899774082005 ], [ 3873235.278182575013489, 5662856.40735577698797 ], [ 3870881.069638357497752, 5663561.869010458700359 ], [ 3869470.482533756643534, 5664882.406933111138642 ], [ 3870186.647737168706954, 5668650.290464341640472 ], [ 3872123.148852197919041, 5672176.251362370327115 ], [ 3874116.987340273335576, 5670354.607665712945163 ], [ 3877635.807600828818977, 5670174.337916933000088 ], [ 3878340.289480796549469, 5668040.137615696527064 ], [ 3881417.001703299582005, 5667938.896000509150326 ], [ 3883064.431431839708239, 5669372.928906513378024 ], [ 3888997.140150122344494, 5667739.8405701527372 ], [ 3888961.934402021113783, 5666752.781339449808002 ], [ 3892023.850398609414697, 5666875.233139554969966 ], [ 3893338.353903179056942, 5664020.649399837478995 ], [ 3891158.190800605807453, 5659474.878535458818078 ], [ 3890104.731355381198227, 5657423.090989323332906 ], [ 3892129.193082225974649, 5656808.973944171331823 ], [ 3894827.737983160186559, 5657452.652578229084611 ], [ 3897458.780000742990524, 5658969.336797493509948 ], [ 3897171.9116838183254, 5655549.085117362439632 ], [ 3896271.607996895909309, 5654383.446695215068758 ], [ 3894939.189184807706624, 5650222.260358816944063 ], [ 3900965.669202022720128, 5649147.84597579203546 ], [ 3902717.484788775909692, 5647855.888542323373258 ], [ 3905445.77613417385146, 5648178.216958883218467 ], [ 3907046.862452036235482, 5647424.744623495265841 ], [ 3909026.233708560932428, 5647470.513458472676575 ], [ 3910069.637819682713598, 5652385.177885238081217 ], [ 3909865.309848226606846, 5653576.397182139568031 ], [ 3913082.410075725521892, 5658768.88069938775152 ], [ 3915410.742858809418976, 5663997.593522780574858 ], [ 3917012.611035787500441, 5671353.094391087070107 ], [ 3918296.957832679152489, 5677143.973583422601223 ], [ 3919504.542406174354255, 5687834.231917208991945 ], [ 3920672.771858642809093, 5694907.032213196158409 ], [ 3920284.027654484380037, 5702277.906722805462778 ], [ 3916463.925518930424005, 5706313.800851550884545 ], [ 3915285.635153631679714, 5712734.544092117808759 ], [ 3915008.205929875839502, 5718786.992313132621348 ], [ 3911838.72823394369334, 5721671.671947702765465 ], [ 3907542.996553308330476, 5722407.63689452689141 ], [ 3903103.416968822944909, 5724975.725576804019511 ], [ 3897542.520291690248996, 5726699.96311570610851 ], [ 3896245.534509391989559, 5729409.967081543058157 ], [ 3898500.509518878068775, 5733802.266504067927599 ], [ 3898348.651361923664808, 5739836.77102857735008 ], [ 3896200.332342120353132, 5743766.076700169593096 ], [ 3891487.09427963802591, 5747384.29760904982686 ], [ 3890574.56668200623244, 5753557.032989542 ], [ 3888437.580468225758523, 5756079.847011269070208 ], [ 3885742.359704523347318, 5757484.134529687464237 ], [ 3885372.002301629632711, 5760893.872864078730345 ], [ 3888096.617191788740456, 5763252.3663928527385 ], [ 3892196.794025591574609, 5768616.83880356233567 ], [ 3892632.152710522990674, 5774012.137072905898094 ], [ 3894115.599812015891075, 5779699.031685368157923 ], [ 3894972.631552360020578, 5785116.966093302704394 ], [ 3893581.534340028651059, 5787786.130199570208788 ], [ 3890777.183824066072702, 5789380.913124461658299 ], [ 3888569.729216711595654, 5792944.990928837098181 ], [ 3889726.900846492499113, 5795917.421942629851401 ], [ 3890172.28518925793469, 5798405.867914486676455 ], [ 3888903.454182128887624, 5799585.361395683139563 ], [ 3890027.523497267160565, 5801592.656182849779725 ], [ 3889905.114240184891969, 5805844.128890166059136 ], [ 3888247.102217198815197, 5806565.065330009907484 ], [ 3882656.58084465470165, 5808469.249768460169435 ], [ 3880234.041036660317332, 5810834.403206677176058 ], [ 3880731.198938641697168, 5811298.160065221600235 ], [ 3878816.152385847177356, 5815401.533867488615215 ], [ 3876652.399458919186145, 5821392.686789776198566 ], [ 3877092.396654475945979, 5825350.62587003223598 ], [ 3879091.297345243860036, 5826988.96576280053705 ], [ 3882498.281371041666716, 5832339.281443700194359 ], [ 3882350.060754121746868, 5834233.360282779671252 ], [ 3881221.47015118971467, 5835097.70364648476243 ], [ 3880917.736755230929703, 5838988.048479683697224 ], [ 3882535.770093734376132, 5841334.883136425167322 ], [ 3879405.847002695314586, 5844788.118399401195347 ], [ 3871500.854137918446213, 5849877.344673019833863 ], [ 3866640.257241865620017, 5854041.000506401993334 ], [ 3862160.876345915254205, 5858864.291369445621967 ], [ 3856376.902230790816247, 5861486.168679472059011 ], [ 3853638.720928938128054, 5864333.985031346790493 ], [ 3851771.953848134726286, 5866824.332399304024875 ], [ 3847350.529758316930383, 5866819.612195742316544 ], [ 3845338.447944106534123, 5868460.235444736666977 ], [ 3846452.133862742222846, 5872002.866743963211775 ], [ 3846861.614577474072576, 5876540.917836175300181 ], [ 3845710.982599182985723, 5880857.880886669270694 ], [ 3845807.479627902153879, 5882435.174994660541415 ], [ 3849681.634586024098098, 5885436.37144530005753 ], [ 3854481.854157145135105, 5888612.59417827706784 ], [ 3858727.026504829060286, 5893527.765895562246442 ], [ 3860205.582850014325231, 5900321.679272799752653 ], [ 3860739.986647294368595, 5904325.677436962723732 ], [ 3858347.318934781476855, 5906959.643038901500404 ], [ 3859097.22065301053226, 5910869.979741984046996 ], [ 3861679.16217056941241, 5913980.012699580751359 ], [ 3863619.950443720910698, 5917248.956983144395053 ], [ 3862210.696277414448559, 5919324.832144322805107 ], [ 3860233.158865793142468, 5924784.39159846957773 ], [ 3858552.09466500626877, 5929119.357846072874963 ], [ 3857717.564035345800221, 5934654.2578652407974 ], [ 3855171.982983477413654, 5940881.22075732331723 ], [ 3854527.476558213122189, 5943935.597366889938712 ], [ 3852400.277569544501603, 5946050.187352763488889 ], [ 3851616.722759102005512, 5949607.364094331860542 ], [ 3852580.257987612858415, 5956077.816162295639515 ], [ 3849416.085709900595248, 5958315.387874973937869 ], [ 3849225.238656923174858, 5960877.051389093510807 ], [ 3848490.837490907870233, 5963808.613355265930295 ], [ 3847969.858788084238768, 5966651.315098694525659 ], [ 3847153.169963970314711, 5970703.895104909315705 ], [ 3848404.598714721854776, 5973263.388607643544674 ], [ 3847126.08941642800346, 5975222.370868641883135 ], [ 3842306.220610584132373, 5983380.822239859960973 ], [ 3842055.818560723215342, 5988177.143582530319691 ], [ 3840918.038545733783394, 5988298.260834409855306 ], [ 3841179.362973350100219, 5988931.705752913840115 ], [ 3842192.431896094698459, 5989108.622355900704861 ], [ 3843530.772687897086143, 5990435.763576031662524 ], [ 3840124.111086568329483, 5992128.893822520971298 ], [ 3836528.07627619523555, 5996467.294168918393552 ], [ 3830096.005070522427559, 6001926.714695753529668 ], [ 3825287.936896343715489, 6004849.845059881918132 ], [ 3821201.844556387979537, 6006296.751869357191026 ], [ 3817508.110044788103551, 6009504.76006458606571 ], [ 3815559.110609824769199, 6012628.2958875419572 ], [ 3814525.595302366651595, 6015812.593641201965511 ], [ 3812374.654038909357041, 6015971.108908070251346 ], [ 3809778.813840273302048, 6013660.167321825399995 ], [ 3810856.172438477165997, 6011290.994475170969963 ], [ 3812699.170466981362551, 6009685.247450346127152 ], [ 3814312.60594163602218, 6008471.197386899031699 ], [ 3815102.191506309900433, 6005876.401914129033685 ], [ 3814387.411642957478762, 6002871.683019595220685 ], [ 3813792.423173900227994, 6001097.582835406064987 ], [ 3812734.765973706264049, 6000107.874244066886604 ], [ 3813584.92423349339515, 5998124.621058972552419 ], [ 3815117.383426785003394, 5999657.405717846006155 ], [ 3815598.668185557238758, 6000098.339933203533292 ], [ 3818350.909517375286669, 6001715.195427712053061 ], [ 3820021.17661928711459, 6001218.428985885344446 ], [ 3818967.951326082926244, 5998696.602521911263466 ], [ 3818339.014142722822726, 5997428.309621640481055 ], [ 3820600.843805714510381, 5997278.070353273302317 ], [ 3822612.33334398875013, 5999255.450895296409726 ], [ 3822165.396366210654378, 6001265.297379594296217 ], [ 3822090.287061945535243, 6003810.049904906190932 ], [ 3825714.615339929237962, 6003146.230748705565929 ], [ 3827529.260290835052729, 6000621.622595163062215 ], [ 3828400.351152353454381, 5998437.446402784436941 ], [ 3829513.328229235485196, 5998618.661438570357859 ], [ 3831557.306061188690364, 5995802.28364584222436 ], [ 3831426.091278413310647, 5993339.893814634531736 ], [ 3830893.825760428793728, 5990745.345366813242435 ], [ 3829203.903412165120244, 5991443.359282188117504 ], [ 3829488.980940259993076, 5993201.830792748369277 ], [ 3827049.24052733136341, 5992926.876620600000024 ], [ 3826085.011663523502648, 5990609.498445996083319 ], [ 3824438.641294470056891, 5990698.635787636041641 ], [ 3824412.541935313958675, 5992537.21607933472842 ], [ 3825747.121908552013338, 5993959.545821349136531 ], [ 3825836.580149458255619, 5995600.741319499909878 ], [ 3823689.601770301349461, 5995552.398365689441562 ], [ 3821855.437051408924162, 5995424.613865301944315 ], [ 3821880.633335412945598, 5993587.260404518805444 ], [ 3821796.73431309312582, 5991843.849779789336026 ], [ 3824305.743323993869126, 5989666.591411430388689 ], [ 3824322.042061796877533, 5986495.784550337120891 ], [ 3823428.641705371439457, 5984590.801889563910663 ], [ 3822375.753491351380944, 5983493.667432649061084 ], [ 3819782.580594954546541, 5982392.91536043677479 ], [ 3818005.957522900309414, 5981349.262659789994359 ], [ 3817926.876398161519319, 5979499.543670936487615 ], [ 3819971.780043373350054, 5979639.588933923281729 ], [ 3821187.900747263804078, 5978390.752438402734697 ], [ 3823709.250050269532949, 5979077.849297716282308 ], [ 3825930.391790833789855, 5979642.794376843608916 ], [ 3829305.8130545578897, 5981315.276018842123449 ], [ 3831971.026225287932903, 5982836.814950498752296 ], [ 3835343.056173400022089, 5983078.647248992696404 ], [ 3839744.233914831653237, 5983295.502931435592473 ], [ 3841693.135043901856989, 5983335.75089196767658 ], [ 3842548.111940761096776, 5982886.127058120444417 ], [ 3848097.373533959966153, 5973240.467052654363215 ], [ 3847122.784433279652148, 5971112.767836498096585 ], [ 3844918.384478706866503, 5971668.826793747022748 ], [ 3843581.939886667765677, 5970234.325936361216009 ], [ 3841249.520946009550244, 5968315.866357866674662 ], [ 3840574.844139227643609, 5969089.101315757259727 ], [ 3836687.408751669805497, 5968704.67504149209708 ], [ 3834439.792970782145858, 5969879.31200283113867 ], [ 3831519.804017058573663, 5970390.402397912926972 ], [ 3826115.942458458244801, 5972577.326063128188252 ], [ 3823452.826516568195075, 5975368.150790618732572 ], [ 3820221.262711521238089, 5977504.015669897198677 ], [ 3816932.178310172632337, 5979021.811006994917989 ], [ 3816138.546738297212869, 5981631.785931341350079 ], [ 3817205.015792998485267, 5984059.694228403270245 ], [ 3821516.051772620528936, 5987017.175704867579043 ], [ 3822518.737237338442355, 5988826.05731981061399 ], [ 3820689.044716849457473, 5991562.677708619274199 ], [ 3818143.726520751602948, 5992818.363634699955583 ], [ 3815387.227404770907015, 5995694.71714888792485 ], [ 3811684.292087491601706, 5997485.930742738768458 ], [ 3810943.517384564504027, 5999375.005022188648582 ], [ 3812176.781638809479773, 6002313.98266426473856 ], [ 3813921.817398926243186, 6006712.982908229343593 ], [ 3812253.037583652418107, 6008738.655122142285109 ], [ 3808392.064613906666636, 6011532.477427837438881 ], [ 3806734.16166792018339, 6013456.363565259613097 ], [ 3807992.562500847037882, 6014455.632723518647254 ], [ 3806626.264317887835205, 6015076.168979535810649 ], [ 3802659.520258758217096, 6011864.548755905590951 ], [ 3798811.760882809758186, 6009883.921152976341546 ], [ 3794064.106386752799153, 6009171.685126464813948 ], [ 3792687.07569847535342, 6008371.782942567951977 ], [ 3794685.88600092055276, 6004222.805990059860051 ], [ 3791088.546243601478636, 6004605.794178533367813 ], [ 3789505.91277037281543, 6008679.793153521604836 ], [ 3787728.793438333552331, 6011009.784827677533031 ], [ 3788813.782599210273474, 6013212.705813540145755 ], [ 3786873.546122521162033, 6014920.632212925702333 ], [ 3783029.227954701986164, 6012853.580367775633931 ], [ 3782511.458777102641761, 6014650.824821609072387 ], [ 3781234.70441169384867, 6017213.246092568151653 ], [ 3779768.913745779544115, 6019559.932232212275267 ], [ 3776112.770517634693533, 6021164.903081224299967 ], [ 3774074.752143368124962, 6021245.684098690748215 ], [ 3771869.300013697240502, 6024156.122327806428075 ], [ 3768564.19647551747039, 6023353.374325577169657 ], [ 3767523.414402691181749, 6025521.87589046638459 ], [ 3768292.354436634108424, 6027997.564554531127214 ], [ 3765248.221741194836795, 6029743.695151202380657 ], [ 3765109.748743453063071, 6033883.330772624351084 ], [ 3764280.34460795391351, 6035958.266693005338311 ], [ 3762765.899476274382323, 6035870.94380324985832 ], [ 3761018.105369170662016, 6038094.656807157211006 ], [ 3761093.247822588775307, 6040320.691884091123939 ], [ 3762430.087666644249111, 6041709.750470524653792 ], [ 3759998.580624234862626, 6041772.375258774496615 ], [ 3758940.825581229291856, 6040803.775463434867561 ], [ 3756470.40269632358104, 6039755.681054452434182 ], [ 3752804.307394893839955, 6036521.521206941455603 ], [ 3753055.784843786619604, 6033807.058794326148927 ], [ 3750938.731402240227908, 6031769.543922696262598 ], [ 3748631.074460600502789, 6031340.235107620246708 ], [ 3747426.784799127839506, 6032993.680331636220217 ], [ 3745857.339145273901522, 6033919.736923540011048 ], [ 3746136.529551450163126, 6036258.490557551383972 ], [ 3744661.555840937420726, 6033552.429880760610104 ], [ 3743667.625503038056195, 6033196.178480857983232 ], [ 3743108.997815452050418, 6034176.993536909110844 ], [ 3742253.470986216794699, 6033121.062001348473132 ], [ 3741280.492322136182338, 6036201.49111932143569 ], [ 3740791.782335953786969, 6037791.310700886882842 ], [ 3737455.092099911998957, 6035799.123348211869597 ], [ 3738703.303173653781414, 6035157.144828265532851 ], [ 3734081.673467176035047, 6032493.485683113336563 ], [ 3733330.043289718218148, 6031343.380345672369003 ], [ 3731980.673528867773712, 6031982.251434212550521 ], [ 3730419.51835469994694, 6032812.78634455986321 ], [ 3729773.173329246696085, 6031567.692819925956428 ], [ 3731117.212575062178075, 6031028.951015931554139 ], [ 3730773.995509297586977, 6029798.554891315288842 ], [ 3729621.729109869338572, 6028527.254869546741247 ], [ 3727928.02172327041626, 6027937.018797882832587 ], [ 3725116.533024829346687, 6027393.482239477336407 ], [ 3726424.75954246846959, 6025535.835066474042833 ], [ 3725487.495060288812965, 6023971.663806582801044 ], [ 3722100.292317955289036, 6022692.994664092548192 ], [ 3722516.560699354391545, 6020384.161762323230505 ], [ 3725199.394957223441452, 6019501.900499909184873 ], [ 3726778.776370322797447, 6018363.643743954598904 ], [ 3726119.202826383989304, 6017317.633085707202554 ], [ 3723039.401978814974427, 6017977.9983922354877 ], [ 3721364.47513691522181, 6019011.613713788799942 ], [ 3719275.529880725312978, 6020228.299805155955255 ], [ 3720119.265075228177011, 6021686.388792828656733 ], [ 3719212.75581233901903, 6023667.572833340615034 ], [ 3719617.254350285045803, 6025811.75805654656142 ], [ 3720836.031494583468884, 6025769.135930905118585 ], [ 3721523.358021774329245, 6028330.727622084319592 ], [ 3720569.689016116317362, 6029194.597934174351394 ], [ 3722196.840759535320103, 6029071.065916651859879 ], [ 3723244.894790519960225, 6030436.108291476964951 ], [ 3722959.268658598419279, 6032140.026833917014301 ], [ 3724425.143682877533138, 6033221.913167136721313 ], [ 3726738.112371258437634, 6033538.016386386938393 ], [ 3728798.290063797496259, 6032832.442932987585664 ], [ 3730848.264600807335228, 6034349.711179758422077 ], [ 3732937.980043532326818, 6035061.708327089436352 ], [ 3734258.5030502891168, 6036946.775469387881458 ], [ 3735911.757200521882623, 6038243.214857249520719 ], [ 3737961.108212190214545, 6037743.894668837077916 ], [ 3740823.658936268649995, 6039105.251171295531094 ], [ 3742193.80096535384655, 6038067.363417882472277 ], [ 3745321.737821755930781, 6038234.333982950076461 ], [ 3746485.969277562573552, 6037287.288985782302916 ], [ 3749324.717875947710127, 6039056.920759504660964 ], [ 3751465.456641239579767, 6038770.484320494346321 ], [ 3754458.529945777263492, 6039542.118886507116258 ], [ 3755623.951427319552749, 6040414.86443118005991 ], [ 3757959.185003742109984, 6042060.267913053743541 ], [ 3755007.152474541217089, 6042398.785698775202036 ], [ 3751399.981268565170467, 6041794.917994506657124 ], [ 3746666.56720372941345, 6041435.590234220027924 ], [ 3739502.185492270626128, 6041154.697005128487945 ], [ 3734843.127078706398606, 6041315.946868452243507 ], [ 3729635.086897281929851, 6042361.719952314160764 ], [ 3728138.320885144174099, 6044000.263294978998601 ], [ 3728767.940376318059862, 6045543.378206262364984 ], [ 3726581.882752718869597, 6044829.57412367593497 ], [ 3725769.796274413820356, 6042874.389445617794991 ], [ 3725186.847372009884566, 6038307.203973875381052 ], [ 3723998.714390577748418, 6035725.575150183402002 ], [ 3720491.004156142938882, 6032929.566381332464516 ], [ 3719875.989780278410763, 6030980.455938110128045 ], [ 3717170.997069503180683, 6028223.445105090737343 ], [ 3717430.007851812522858, 6024898.193870973773301 ], [ 3714748.144796086009592, 6021533.271084840409458 ], [ 3712364.798926087561995, 6020409.937135866843164 ], [ 3708534.236759637016803, 6017601.099382697604597 ], [ 3705679.470627882052213, 6013317.076930527575314 ], [ 3705582.560963278170675, 6013211.350209499709308 ], [ 3704367.235640893224627, 6010824.51767501886934 ], [ 3699848.767275876831263, 6009510.317855437286198 ], [ 3693690.658139432780445, 6008435.702488843351603 ], [ 3690407.059879276435822, 6006675.127723609097302 ], [ 3688408.812814397271723, 6005780.994439611211419 ], [ 3684040.589266420342028, 6005604.719556323252618 ], [ 3680156.496599656529725, 6006060.482165691442788 ], [ 3675085.353797282092273, 6005662.29970726557076 ], [ 3671932.824757600668818, 6002904.291240676306188 ], [ 3671933.047460834030062, 6000161.712918213568628 ], [ 3671827.644010708667338, 5997515.263955920934677 ], [ 3669059.909657659940422, 5995176.238214493729174 ], [ 3669035.928434316068888, 5993038.967825968749821 ], [ 3666751.682976705022156, 5991327.871624678373337 ], [ 3664946.507073573302478, 5990448.939264009706676 ], [ 3662227.984403604175895, 5986483.000469360500574 ], [ 3662651.523339381907135, 5983134.362195494584739 ], [ 3662871.2521534524858, 5979776.177587747573853 ], [ 3661494.22465406358242, 5978197.475895876996219 ], [ 3658925.789222318213433, 5978517.341157169081271 ], [ 3656830.826976154465228, 5979976.812364197336137 ], [ 3658508.176196332555264, 5981767.639744437299669 ], [ 3656170.109076574910432, 5981382.603831958957016 ], [ 3654624.93631299212575, 5981738.902033882215619 ], [ 3653434.612719595897943, 5983738.503827882930636 ], [ 3651074.579556458164006, 5980908.381289593875408 ], [ 3648837.783996753860265, 5980530.324519597925246 ], [ 3647448.808551948517561, 5982423.488371020182967 ], [ 3647782.667416546493769, 5984778.280985984019935 ], [ 3648645.566185598261654, 5986537.733906109817326 ], [ 3645579.410863374825567, 5986644.305157721973956 ], [ 3643470.403510181698948, 5988818.80433077737689 ], [ 3640504.846709623932838, 5989033.430624036118388 ], [ 3633890.674955031834543, 5988430.668406412936747 ], [ 3628061.871624656487256, 5985211.493438999168575 ], [ 3625061.642700591590255, 5982888.460956374183297 ], [ 3623538.758175417315215, 5982542.018510132096708 ], [ 3623360.939891994465142, 5985389.746848962269723 ], [ 3620284.747867436148226, 5985920.020641611889005 ], [ 3619154.936340152751654, 5986196.347556664608419 ], [ 3615305.386085841804743, 5989152.597783781588078 ], [ 3614702.638933064416051, 5992900.839564746245742 ], [ 3617578.598124216776341, 5996022.030784356407821 ], [ 3619585.181020395830274, 5997190.966657686978579 ], [ 3622560.127815623302013, 5996354.516834427602589 ], [ 3626140.682375621516258, 5999497.935413821600378 ], [ 3630042.858900194987655, 6005491.831297133117914 ], [ 3633234.458409746643156, 6007610.801031122915447 ], [ 3637437.938445141073316, 6009761.294675259850919 ], [ 3636398.014385366346687, 6017425.26873295288533 ], [ 3635831.303666833788157, 6022868.104215316474438 ], [ 3635131.936384604312479, 6025978.740311385132372 ], [ 3637105.992037691175938, 6027652.735205392353237 ], [ 3639256.170031713321805, 6030139.634154226630926 ], [ 3638818.416685725096613, 6031235.995821256190538 ], [ 3635574.331812719348818, 6031542.128796365112066 ], [ 3634136.185552867129445, 6028876.806608921848238 ], [ 3632323.031344205606729, 6028622.215504952706397 ], [ 3625827.451684121508151, 6029448.043566320091486 ], [ 3622437.933770126197487, 6027640.811726442538202 ], [ 3620573.184138350188732, 6025471.583947250619531 ], [ 3616129.822868337389082, 6021114.568310817703605 ], [ 3612989.503001395147294, 6021137.231254814192653 ], [ 3609121.560775980819017, 6021952.949824293144047 ], [ 3606034.203942938242108, 6024102.523656030185521 ], [ 3603944.780373683199286, 6026981.947867111302912 ], [ 3598431.819304782897234, 6029382.075281332246959 ], [ 3595165.199908215552568, 6030926.24999563023448 ], [ 3590865.173918840009719, 6033761.328385912813246 ], [ 3587920.620899152942002, 6034610.322936806827784 ], [ 3584895.028692354913801, 6034452.377030610106885 ], [ 3581692.645633881911635, 6032882.931262120604515 ], [ 3579788.619642806705087, 6032043.205590416677296 ], [ 3577820.630791730247438, 6028985.207703548483551 ], [ 3577572.168072968255728, 6025753.117762702517211 ], [ 3576104.1117475903593, 6022801.308350095525384 ], [ 3574813.553303983993828, 6021265.291233776137233 ], [ 3574465.663523115217686, 6023985.877401391044259 ], [ 3574331.777493017725646, 6026002.105266426689923 ], [ 3575895.904716937802732, 6029255.381189533509314 ], [ 3577293.306442660279572, 6030286.946996293962002 ], [ 3576949.579184582922608, 6032699.874535360373557 ], [ 3576890.240706387907267, 6036223.897661622613668 ], [ 3577674.992212505079806, 6037545.79078642744571 ], [ 3574813.283204010222107, 6039812.267928255721927 ], [ 3571077.493545711971819, 6040154.867030277848244 ], [ 3564245.037148574367166, 6038544.508196053095162 ], [ 3558028.478378171101213, 6035743.866404894739389 ], [ 3555090.671247178222984, 6036714.062961063347757 ], [ 3553966.897324731107801, 6037908.24919056892395 ], [ 3559584.787068200763315, 6040191.345246435143054 ], [ 3563388.093420676421374, 6042153.198028391227126 ], [ 3566064.425076221115887, 6045206.30196550115943 ], [ 3566315.203580655623227, 6048725.041971346363425 ], [ 3567385.31338122440502, 6057967.624278583563864 ], [ 3567647.609812436625361, 6060575.743284944444895 ], [ 3566405.381215043365955, 6063160.065788928419352 ], [ 3564362.767563796136528, 6065731.74424010142684 ], [ 3562891.432223541196436, 6070609.209251622669399 ], [ 3560955.523667989298701, 6073079.659824595786631 ], [ 3558829.530779158230871, 6074948.215923575684428 ], [ 3557673.998887941241264, 6071438.592247040942311 ], [ 3556590.489519403316081, 6070026.249422416090965 ], [ 3553076.67631616583094, 6070782.82060684543103 ], [ 3552046.776633912697434, 6073267.578044282272458 ], [ 3550526.952917625661939, 6074947.287820353172719 ], [ 3546624.263458918314427, 6075104.819875131361187 ], [ 3541807.937914241570979, 6076753.792426519095898 ], [ 3539092.153807563241571, 6078624.422683315351605 ], [ 3537474.945653808303177, 6080803.904797994531691 ], [ 3539555.858869717922062, 6082715.047184738330543 ], [ 3538353.496481058653444, 6083202.732383102178574 ], [ 3535878.380624684970826, 6080591.541057301685214 ], [ 3531601.35056213894859, 6077967.245022288523614 ], [ 3530312.121341595426202, 6076462.201856628060341 ], [ 3529126.559532237239182, 6074259.098911981098354 ], [ 3528525.755083577241749, 6074355.062290877103806 ], [ 3528017.54898785520345, 6075649.177612939849496 ], [ 3527707.112792796455324, 6077343.170737358741462 ], [ 3527302.429359105415642, 6078138.553843031637371 ], [ 3526695.078588108066469, 6079431.124257008545101 ], [ 3524400.84816991025582, 6078720.174671530723572 ], [ 3523513.470992925576866, 6076421.549449931830168 ], [ 3521822.026053374167532, 6074716.797060671262443 ], [ 3520019.923130665905774, 6075107.589370651170611 ], [ 3516518.126046721357852, 6075492.499923293478787 ], [ 3514906.866170011926442, 6078878.067467384971678 ], [ 3515402.050149623304605, 6080175.702469152398407 ], [ 3511302.014361139852554, 6081857.656631960533559 ], [ 3506807.12502259016037, 6082645.586997093632817 ], [ 3503512.498904316686094, 6082442.527247777208686 ], [ 3500516.901155684608966, 6084134.438620503991842 ], [ 3498122.152735123876482, 6085727.889748476445675 ], [ 3493632.789508264046162, 6086030.63562573492527 ], [ 3490538.361381174996495, 6085239.642211005091667 ], [ 3488944.994919380173087, 6086537.404741224832833 ], [ 3486147.556667842436582, 6085151.436336082406342 ], [ 3483951.904921564739197, 6085059.155766732059419 ], [ 3481957.734690066426992, 6085464.957368570379913 ], [ 3479468.249222930520773, 6086570.648820630274713 ], [ 3476678.167309266049415, 6087005.580536222085357 ], [ 3380778.604670230764896, 5902073.122036438435316 ], [ 3375726.823530718684196, 5903470.802044775336981 ], [ 3371330.154709893278778, 5905490.030882922001183 ], [ 3372075.896578511223197, 5909589.830021053552628 ], [ 3363853.086085553281009, 5910768.153223063796759 ], [ 3359850.212554804515094, 5915000.30731042008847 ], [ 3360073.881563961040229, 5922583.141060510650277 ], [ 3356429.502869814168662, 5927745.194575251080096 ], [ 3347252.112448724918067, 5927716.759252518415451 ], [ 3338630.811657946091145, 5925476.280404699034989 ], [ 3325265.581130147911608, 5923738.265153413638473 ], [ 3319169.421816731803119, 5921753.602949703112245 ], [ 3306875.397099556401372, 5923503.472277458757162 ], [ 3303355.099310901481658, 5922699.396325753070414 ], [ 3283933.274196678772569, 5921013.065371791832149 ], [ 3278948.128543256781995, 5916174.688978646881878 ], [ 3270477.572711636312306, 5911819.563190818764269 ], [ 3270476.65594639768824, 5911821.000986488536 ], [ 3263373.324523608200252, 5903275.930534976534545 ], [ 3255829.270972661674023, 5892833.955991860479116 ], [ 3258071.762477568816394, 5880277.342902692966163 ], [ 3259111.227379691787064, 5869031.587788868695498 ], [ 3254803.070664508733898, 5866365.842140915803611 ], [ 3261372.870466467924416, 5862832.187349698506296 ], [ 3268623.933397396001965, 5859914.898251376114786 ], [ 3268625.016325183678418, 5859913.493876562453806 ], [ 3275859.55646439595148, 5863419.501624556258321 ], [ 3271024.668102971743792, 5856270.50689900200814 ], [ 3271047.80971019435674, 5843094.022975184954703 ], [ 3273556.779957081191242, 5834603.499682081863284 ], [ 3273555.631362767424434, 5834604.928271131590009 ], [ 3261280.481531865429133, 5828092.560063485987484 ], [ 3251524.99533888977021, 5820823.002746338024735 ], [ 3241552.059844254981726, 5816160.707032063044608 ], [ 3236454.103350671473891, 5811896.18809153791517 ], [ 3234195.971949317026883, 5806180.08091857098043 ], [ 3229041.60548882605508, 5807109.918311539106071 ], [ 3227255.7609618678689, 5815962.359440715052187 ], [ 3232717.211569033563137, 5820841.811475122347474 ], [ 3234753.663519355934113, 5828490.422770950943232 ], [ 3228706.948794895317405, 5842050.802320181392133 ], [ 3234216.428749855142087, 5842391.31538435164839 ], [ 3237567.982336892280728, 5838664.844126964919269 ], [ 3245942.352140980772674, 5844341.349161708727479 ], [ 3250274.580284293740988, 5847013.220398122444749 ], [ 3246190.933691426180303, 5855261.209983203560114 ], [ 3242184.421694870106876, 5852580.79481409676373 ], [ 3238449.891646721865982, 5855030.139793961308897 ], [ 3237564.608328994829208, 5862462.018686322495341 ], [ 3233355.517310408875346, 5873588.249898795969784 ], [ 3230227.81529455492273, 5875042.670808990485966 ], [ 3225477.738567552994937, 5870507.503698742948472 ], [ 3218490.677153469529003, 5871871.349362455308437 ], [ 3217472.475309191737324, 5876414.115510955452919 ], [ 3215385.014243156649172, 5879097.140316253527999 ], [ 3210092.389544081874192, 5871087.054435792379081 ], [ 3208226.386591887567192, 5856112.032218128442764 ], [ 3204234.904172765556723, 5843475.947633626870811 ], [ 3200134.001123861875385, 5824021.616275741718709 ], [ 3193125.129459123592824, 5810516.113176869228482 ], [ 3183292.88537753559649, 5794226.612774663604796 ], [ 3170373.203913390170783, 5781691.976565846242011 ], [ 3161273.484195217955858, 5773145.321495993994176 ], [ 3164145.635081208311021, 5767054.610711450688541 ], [ 3158249.844788721762598, 5762535.469023349694908 ], [ 3160842.476076067890972, 5757106.591239670291543 ], [ 3171601.692263434641063, 5750475.500550773926079 ], [ 3175921.658077522180974, 5745919.580627669580281 ], [ 3165213.460813104640692, 5748595.680848368443549 ], [ 3156685.120179068762809, 5754104.200743944384158 ], [ 3153371.6461844407022, 5758603.618620920926332 ], [ 3146540.898812134750187, 5755138.12945694103837 ], [ 3149591.773048392031342, 5751635.699265331029892 ], [ 3155215.703488276340067, 5751903.727377810515463 ], [ 3158313.039836829993874, 5744123.440747913904488 ], [ 3163965.867510774172843, 5739789.846334595233202 ], [ 3169628.085549620911479, 5735459.930890368297696 ], [ 3165283.529953663703054, 5734757.119484769180417 ], [ 3154360.356679893098772, 5739451.281032736413181 ], [ 3152137.123914947267622, 5745534.882132642902434 ], [ 3148851.554410881362855, 5745763.363867732696235 ], [ 3138619.526836377568543, 5745829.941178337670863 ], [ 3132794.431991994846612, 5742956.411160547286272 ], [ 3132812.272554140072316, 5738667.45198592916131 ], [ 3141930.618149492423981, 5741308.961843910627067 ], [ 3145576.990055280737579, 5736763.66336699295789 ], [ 3152240.314392559695989, 5732669.660267662256956 ], [ 3161266.668509931303561, 5734035.680730662308633 ], [ 3168273.676568760536611, 5729940.252705669030547 ], [ 3159024.719932626467198, 5730226.034721503034234 ], [ 3150911.504153004847467, 5727807.265039497055113 ], [ 3159878.592976677231491, 5723230.038295869715512 ], [ 3167209.161927039735019, 5718774.443487421609461 ], [ 3173827.209459164179862, 5713380.216470567509532 ], [ 3169976.431537412106991, 5710316.7359120240435 ], [ 3159192.777442252263427, 5713016.502276328392327 ], [ 3154614.534361061174423, 5718955.148719969205558 ], [ 3145260.155848376452923, 5727539.72994930204004 ], [ 3141536.475189471617341, 5731106.805503869429231 ], [ 3131297.222830927465111, 5731513.671447210013866 ], [ 3122021.219202402047813, 5731538.512380097061396 ], [ 3116349.021036500111222, 5726674.062378684990108 ], [ 3115899.663496726658195, 5720747.864565817639232 ], [ 3126032.017601882573217, 5714024.345240009017289 ], [ 3131208.165193360298872, 5716629.16052520647645 ], [ 3136449.31086911726743, 5710946.646548677235842 ], [ 3147470.262940561398864, 5706853.285976064391434 ], [ 3146958.594840076286346, 5713852.293160608969629 ], [ 3154187.97427768772468, 5712692.143069566227496 ], [ 3157581.25693406816572, 5708816.248457440175116 ], [ 3168438.076983394101262, 5707102.319231282919645 ], [ 3166192.184261424466968, 5703268.739057377912104 ], [ 3152105.688392657320946, 5706534.309288348071277 ], [ 3148943.602469087578356, 5704096.322511609643698 ], [ 3141184.842631045728922, 5702644.430386745370924 ], [ 3129682.630647358018905, 5704796.157173171639442 ], [ 3122566.000607694033533, 5707643.62160971108824 ], [ 3116168.033817570190877, 5711110.452504074200988 ], [ 3107946.387386967428029, 5708084.712934106588364 ], [ 3108482.829429902136326, 5702059.907340582460165 ], [ 3112189.8927495284006, 5693788.623194732703269 ], [ 3118474.317364891991019, 5692982.683731397613883 ], [ 3119864.921166342217475, 5698205.120109529234469 ], [ 3126289.294416126329452, 5699393.746156557463109 ], [ 3131664.853003790602088, 5695343.98116959631443 ], [ 3137712.867537557147443, 5691250.579429494217038 ], [ 3138189.776659540832043, 5688552.746561635285616 ], [ 3146452.062414306215942, 5687309.418830297887325 ], [ 3153324.115071977488697, 5690168.827090061269701 ], [ 3162489.570746422279626, 5692549.905924540944397 ], [ 3167236.937324412632734, 5698884.905828083865345 ], [ 3170830.143069595098495, 5702966.964954684488475 ], [ 3177393.218076284043491, 5701551.827328355051577 ], [ 3182839.059196336660534, 5703532.001301294192672 ], [ 3180273.298092367593199, 5710321.140441430732608 ], [ 3186161.678708742838353, 5714257.761144604533911 ], [ 3191700.37089960789308, 5712594.683561488054693 ], [ 3191089.170918536838144, 5707996.27644244581461 ], [ 3196033.098735404666513, 5707367.171790008433163 ], [ 3207543.387287834659219, 5716948.73772550560534 ], [ 3210564.43831893755123, 5711815.514176430180669 ], [ 3210226.142458096146584, 5705876.589810511097312 ], [ 3219053.939362868666649, 5703394.325522064231336 ], [ 3224191.470842730253935, 5712380.12563360016793 ], [ 3229652.871967637911439, 5709109.982573644258082 ], [ 3227297.184931426309049, 5702283.778965838253498 ], [ 3231744.162240828853101, 5692100.705890671350062 ], [ 3237402.587901112623513, 5692138.704261324368417 ], [ 3236832.350524887442589, 5687520.25982644315809 ], [ 3250117.913276670966297, 5686854.465880636125803 ], [ 3256934.036369914188981, 5690177.31055742688477 ], [ 3256936.241059264168143, 5690176.777581120841205 ], [ 3259976.003603522665799, 5684057.787389886565506 ], [ 3262480.917449220549315, 5680618.524108259007335 ], [ 3269950.727635845541954, 5676288.639022206887603 ], [ 3277590.652936858590692, 5675619.561424765735865 ], [ 3279416.661340694408864, 5671548.640699408017099 ], [ 3276247.197342094033957, 5660023.646914684213698 ], [ 3271293.585620534606278, 5653898.639160289429128 ], [ 3267182.521107512060553, 5644386.616770638152957 ], [ 3263255.445063246879727, 5639207.14141998719424 ], [ 3266031.688410314265639, 5633718.989908457733691 ], [ 3267440.623714432120323, 5627616.719167762435973 ], [ 3283285.863345902878791, 5628276.812224241904914 ], [ 3289707.937767443247139, 5629020.377138397656381 ], [ 3108939.801924951374531, 5708008.269435727037489 ], [ 3093497.028081365860999, 5706559.192181641235948 ], [ 3086944.939218807965517, 5699764.738704291172326 ], [ 3067639.974080462940037, 5692693.509059071540833 ], [ 3064587.140880455262959, 5688277.293499479070306 ], [ 3047922.603933127596974, 5681693.180033656768501 ], [ 3049510.038241357076913, 5661431.170091088861227 ], [ 3052254.174234774895012, 5646388.764305534772575 ], [ 3063932.344638678245246, 5632580.722406509332359 ], [ 3079807.747484362218529, 5644759.703383449465036 ], [ 3087962.235419537406415, 5645452.500553983263671 ], [ 3095588.203306931070983, 5630705.054498264566064 ], [ 3092525.689905411563814, 5617433.218116288073361 ], [ 3111102.792881587520242, 5611963.637187130749226 ], [ 3119045.299197326414287, 5599869.246970724314451 ], [ 3122718.774563939776272, 5584671.87246766872704 ], [ 3136560.652431230060756, 5587778.910597732290626 ], [ 3147448.404560095630586, 5587720.564050928689539 ], [ 3160350.675610242411494, 5576688.001328445971012 ], [ 3155223.759246363304555, 5560676.123287870548666 ], [ 3150382.130510147660971, 5549384.37512871529907 ], [ 3172863.431871780194342, 5547279.992179336026311 ], [ 3191412.589716390706599, 5548227.753580251708627 ], [ 3200441.359258550219238, 5562712.676339372061193 ], [ 3208904.452317881863564, 5567686.23134277574718 ], [ 3202596.11902814777568, 5552371.07966476585716 ], [ 3201155.673689151648432, 5538793.237791875377297 ], [ 3205118.902762345504016, 5523511.522147440351546 ], [ 3222696.208125048317015, 5517779.505258431658149 ], [ 3235163.951207591686398, 5505481.986315397545695 ], [ 3240829.476395334117115, 5494201.07403904851526 ], [ 3249534.398743452969939, 5488282.457506939768791 ], [ 3249535.476331850513816, 5488283.838629018515348 ], [ 3271120.481228434015065, 5492156.419702745042741 ], [ 3277253.755945149809122, 5507025.53866242710501 ], [ 3271077.731034234166145, 5523735.02108253352344 ], [ 3268387.718061197083443, 5540935.570149082690477 ], [ 3277094.22923263348639, 5552833.638515506871045 ], [ 3286388.485916609875858, 5563333.293423902243376 ], [ 3295779.407065341249108, 5559567.751979552209377 ], [ 3396144.590957805048674, 5274604.953427812084556 ], [ 3389485.073512768838555, 5263292.287006054073572 ], [ 3377140.247334918472916, 5256379.598158866167068 ], [ 3365698.113404111936688, 5258779.146803831681609 ], [ 3357222.492313188500702, 5264705.943734335713089 ], [ 3346407.577410334721208, 5262832.880861897021532 ], [ 3344688.213210380636156, 5252131.552120495587587 ], [ 3354609.77594734262675, 5246138.52814852911979 ], [ 3341291.405092711560428, 5232828.522323912940919 ], [ 3332168.527143463026732, 5216508.662615103647113 ], [ 3332171.197236378211528, 5216507.115681268274784 ], [ 3318188.241519938688725, 5208975.736962746828794 ], [ 3309336.806464326102287, 5204192.092024491168559 ], [ 3305757.619499848224223, 5183296.66300612129271 ], [ 3290180.542662247549742, 5175103.924532828852534 ], [ 3280464.588741773273796, 5148491.459849622100592 ], [ 3281508.575582264456898, 5136759.15385751798749 ], [ 3271541.758181994780898, 5125406.537768177688122 ], [ 3268105.338062315247953, 5112325.781960810534656 ], [ 3292080.815303722862154, 5123940.70678486675024 ], [ 3288258.211565756238997, 5140908.603065073490143 ], [ 3308242.890879342332482, 5146820.388578435406089 ], [ 3331718.303281357977539, 5148313.93635980784893 ], [ 3334147.424607050605118, 5129978.301482761278749 ], [ 3337193.831793326418847, 5106433.582715851254761 ], [ 3353028.610650948714465, 5090590.8865258814767 ], [ 3333377.192883853800595, 5074128.171243034303188 ], [ 3335207.609028611332178, 5059293.165677567943931 ], [ 3349569.765114767942578, 5038916.212960412725806 ], [ 3357490.133114687167108, 5026841.969567533582449 ], [ 3350302.0386898862198, 5006893.422741368412971 ], [ 3323988.85276650916785, 5003089.34793227724731 ], [ 3316306.938928673043847, 4996581.140264197252691 ], [ 3326069.327955525834113, 4969335.933414373546839 ], [ 3345604.748161309398711, 4967334.945288635790348 ], [ 3345980.760703351348639, 4951539.667172871530056 ], [ 3332741.299798379186541, 4936042.914762773551047 ], [ 3333657.346246560569853, 4912586.93738498352468 ], [ 3348564.309586613904685, 4900099.038838400505483 ], [ 3368862.683083969168365, 4887515.838021834380925 ], [ 3389530.225220596417785, 4892452.724765956401825 ], [ 3389975.219295417424291, 4873440.040908450260758 ], [ 3378866.186632874421775, 4850754.821972282603383 ], [ 3360185.174938269890845, 4837353.999080273322761 ], [ 3332505.644231083337218, 4805751.619578449055552 ], [ 3274277.384218838997185, 4773490.574113591574132 ], [ 3244950.427227860316634, 4778391.402344848029315 ], [ 3208472.189723939169198, 4796856.163909059017897 ], [ 3175005.237055753357708, 4809952.066890715621412 ], [ 3132238.561599476262927, 4820627.100393341854215 ], [ 3088762.066906373016536, 4830850.071779905818403 ], [ 3043711.713006297126412, 4805176.180162645876408 ], [ 3023386.061110450420529, 4770078.945197131484747 ], [ 3011030.591095483396202, 4727986.442866530269384 ], [ 3023424.739645170513541, 4713795.184811040759087 ], [ 2988430.716428179293871, 4720202.95946563500911 ], [ 2974833.955902950838208, 4707068.47318125795573 ], [ 2922733.014375389087945, 4726919.796532323583961 ], [ 2880683.444594210013747, 4742338.155347806401551 ], [ 2866111.825590307824314, 4755439.201406631618738 ], [ 2847990.901150344870985, 4772033.208863709121943 ], [ 2806222.234323195181787, 4779273.732647805474699 ], [ 2795979.467414537444711, 4763828.469160384498537 ], [ 2742086.824217745568603, 4776647.727694331668317 ], [ 2714916.521936867386103, 4794658.004159042611718 ], [ 2674549.07413569604978, 4819868.599643308669329 ], [ 2649903.296542058698833, 4824493.182080863043666 ], [ 2641320.615112013183534, 4849898.261589783243835 ], [ 2628536.061540987808257, 4866421.104525680653751 ], [ 2669810.243352449964732, 4914048.630605327896774 ], [ 2680930.732746536843479, 4971270.847869606688619 ], [ 2703070.755741720087826, 5031135.459798202849925 ], [ 2707270.152735451236367, 5094165.821672104299068 ], [ 2723631.831513554789126, 5080045.360878769308329 ], [ 2734969.573112798389047, 5055240.437717982567847 ], [ 2738248.40127535443753, 5032118.467068358324468 ], [ 2743318.495593301486224, 5067823.060082919895649 ], [ 2731426.391231280751526, 5094135.894830764271319 ], [ 2711388.276513304561377, 5108682.342071150429547 ], [ 2700960.442238051444292, 5121286.223958385176957 ], [ 2699287.993327445350587, 5120002.917893845587969 ], [ 2726247.603264543693513, 5148711.791882509365678 ], [ 2718507.262859079055488, 5175763.78714744374156 ], [ 2685382.976831003557891, 5195747.929113548249006 ], [ 2660838.886659314855933, 5233223.654936589300632 ], [ 2655629.566272190306336, 5264208.528378147631884 ], [ 2666874.736603701487184, 5275833.472416776232421 ], [ 2644125.099778972100466, 5291591.404055437073112 ], [ 2639072.262715508230031, 5312109.9268693998456 ], [ 2620265.180578246712685, 5333205.071378163993359 ], [ 2585407.809111441019922, 5344481.668679958209395 ], [ 2564144.879449413158, 5366889.456048770807683 ], [ 2535696.505047792103142, 5384756.503997485153377 ], [ 2523622.773114776238799, 5386821.071677313186228 ], [ 2509481.19152975268662, 5381242.676843178458512 ], [ 2503489.95062449388206, 5388863.224568387493491 ], [ 2497978.397847956977785, 5407335.347951902076602 ], [ 2467475.735586343333125, 5416487.763661442324519 ], [ 2509791.597659815102816, 5420512.561604637652636 ], [ 2512150.210314007941633, 5433873.19220404047519 ], [ 2488515.899319015443325, 5443900.522594092413783 ], [ 2478991.992952547036111, 5451433.942229198291898 ], [ 2490931.397039160132408, 5473095.176707258448005 ], [ 2520907.176611950621009, 5479209.478264576755464 ], [ 2547814.281165891326964, 5476648.270002123899758 ], [ 2571909.065065911971033, 5470391.738569905981421 ], [ 2593414.73608385771513, 5483257.281648432835937 ], [ 2616050.239643529988825, 5481710.442508124746382 ], [ 2639702.595113455783576, 5450137.110032133758068 ], [ 2658930.479102376382798, 5449334.361329760402441 ], [ 2673634.720120946876705, 5447126.522459450177848 ], [ 2719857.40873847482726, 5440446.521821609698236 ], [ 2729134.766558613162488, 5445556.358798530884087 ], [ 2725024.366032637190074, 5487235.501201888546348 ], [ 2724495.025481657125056, 5523221.416655199602246 ], [ 2710789.83092031814158, 5554628.079281798563898 ], [ 2713686.799702571704984, 5569555.417150729335845 ], [ 2755935.722571577876806, 5557241.251761347055435 ], [ 2757497.694955649320036, 5538193.8245002143085 ], [ 2765613.219687490724027, 5515393.167529745958745 ], [ 2808069.56741754617542, 5507019.727912622503936 ], [ 2832605.794180289376527, 5501157.360448088496923 ], [ 2876895.665403209626675, 5508476.109505116939545 ], [ 2859243.54538197349757, 5518892.983403992839158 ], [ 2847542.651764994952828, 5537682.391771700233221 ], [ 2876702.890277949161828, 5555007.781158907338977 ], [ 2916202.380399039946496, 5561592.064574543386698 ], [ 2952093.315820410847664, 5574968.2587836580351 ], [ 2971414.089068603236228, 5596273.56185660418123 ], [ 2971964.975313203409314, 5628889.532112777233124 ], [ 2980977.084300642367452, 5657754.619107319973409 ], [ 2992336.653004604391754, 5670099.984521032311022 ], [ 3012757.840754575561732, 5672162.297169964760542 ], [ 3033512.31943123228848, 5678291.973222662694752 ], [ 3843113.393844936508685, 5990930.95453892275691 ], [ 3862852.115670506376773, 5995565.509850547648966 ], [ 3900399.562155766412616, 6011807.51401758287102 ], [ 3900400.120228598359972, 6011806.268425439484417 ], [ 3936092.387851006817073, 6025674.414500284008682 ], [ 3965353.433156988117844, 6039787.380728571675718 ], [ 3987297.468482594937086, 6062626.142309280112386 ], [ 4021064.998421079944819, 6088726.374285455793142 ], [ 4047969.291333992499858, 6104924.422244537621737 ], [ 4073133.314949556719512, 6111789.340855102986097 ], [ 4102391.576570556033403, 6115642.109139547683299 ], [ 4110893.18009928194806, 6098802.314867443405092 ], [ 4126864.524938672780991, 6073550.90780839882791 ], [ 4141445.065285576041788, 6068074.465708726085722 ], [ 4169534.645258415490389, 6069624.599169601686299 ], [ 4179516.032418535090983, 6066078.203088854439557 ], [ 4193766.078827765770257, 6088345.073470018804073 ], [ 4232436.895583217963576, 6094469.37561148032546 ], [ 4286835.394788296893239, 6101142.898622437380254 ], [ 4348405.584077109582722, 6104129.264864181168377 ], [ 4387541.370727983303368, 6112335.626292346976697 ], [ 4400534.005934420973063, 6117472.53509162273258 ], [ 4427214.613518337719142, 6105697.024170469492674 ], [ 4448327.119321482256055, 6099853.087614319287241 ], [ 4455813.109941096976399, 6067311.675022344104946 ], [ 4492092.477959051728249, 6000726.590833118185401 ], [ 4504096.600294389761984, 5972315.112677071243525 ], [ 4505247.542933228425682, 5938734.890532223507762 ], [ 4481308.504585198126733, 5919104.37285712081939 ], [ 4470312.994253216311336, 5900865.814483650028706 ], [ 4467613.081671358086169, 5884281.795378777198493 ], [ 4494504.290088405832648, 5877656.797123712487519 ], [ 4508612.940348559990525, 5858330.514124928042293 ], [ 4506776.375022993423045, 5834268.279005215503275 ], [ 4510541.024416147731245, 5805799.311982207000256 ], [ 4526029.486297533847392, 5783668.74365256447345 ], [ 4544945.791978491470218, 5762133.784255480393767 ], [ 4566886.072089086286724, 5746676.533536236733198 ], [ 4551258.184342595748603, 5731633.474123590625823 ], [ 4561916.654284156858921, 5717167.599119883961976 ], [ 4569064.038923991844058, 5692838.089686185121536 ], [ 4543249.263724148273468, 5681964.621501837857068 ], [ 4522180.949904321692884, 5660986.36414173617959 ], [ 4498289.890128215774894, 5605821.414290207438171 ], [ 4486216.994111262261868, 5571782.356489877216518 ], [ 4499580.202787721529603, 5557232.387430517934263 ], [ 4512517.320663826540112, 5526137.816943503916264 ], [ 4488889.246476444415748, 5526069.892916448414326 ], [ 4455851.072432364337146, 5535095.850872302427888 ], [ 4428989.555756320245564, 5558729.947014918550849 ], [ 4373844.788672808557749, 5545959.995772828347981 ], [ 4355550.401271725073457, 5536686.915113438852131 ], [ 4317362.882687546312809, 5527963.222342494875193 ], [ 4309887.330965348519385, 5507115.039189295843244 ], [ 4283472.735166446305811, 5508889.869999112561345 ], [ 4278820.686473856680095, 5531406.477323731407523 ], [ 4247410.828830407932401, 5545149.317434553988278 ], [ 4238955.255907628685236, 5525112.270595573820174 ], [ 4221084.521677569486201, 5527596.769962286576629 ], [ 4207937.220170143991709, 5537024.600574120879173 ], [ 4195388.134367648512125, 5558338.167754915542901 ], [ 4175168.371474529150873, 5580657.48114004638046 ], [ 4141479.142926500178874, 5584752.760949399322271 ], [ 4139492.975329682696611, 5578314.408900247886777 ], [ 4112849.124143457040191, 5593733.5600361302495 ], [ 4124145.854823018424213, 5608766.413699044845998 ], [ 4113233.349329824093729, 5608168.347804208286107 ], [ 4086674.641319013666362, 5612658.034706080332398 ], [ 4066865.789398183114827, 5618665.898857541382313 ], [ 4071615.918544370681047, 5600069.493677191436291 ], [ 4056631.157065225765109, 5586152.277325436472893 ], [ 4044820.188348148018122, 5580815.216292542405427 ], [ 4030203.504336852580309, 5596429.93414072599262 ], [ 4010613.495956193655729, 5614930.590122414752841 ], [ 4028159.958563326392323, 5630253.34558976162225 ], [ 4007584.454740398563445, 5639050.823240162804723 ], [ 3990655.10670124925673, 5638780.894056480377913 ], [ 3965130.890066393651068, 5643865.616871885955334 ], [ 3965132.175497892312706, 5643865.783349201083183 ], [ 3942071.485676991287619, 5652630.598928898572922 ], [ 3939596.071066991426051, 5665859.812816687859595 ], [ 3923681.836542929988354, 5671233.054224649444222 ], [ 3922318.893752008210868, 5655017.087038393132389 ], [ 3855359.793198207393289, 5416054.81366853043437 ], [ 3872327.054156054276973, 5403836.957844302989542 ], [ 3874288.347799035720527, 5395536.3900754051283 ], [ 3897753.501870630774647, 5392925.89949644729495 ], [ 3908179.76769644767046, 5404928.2302455464378 ], [ 3926408.871249897871166, 5406285.623175366781652 ], [ 3934056.563742288853973, 5425828.214018240571022 ], [ 3941005.948966486379504, 5417955.924397064372897 ], [ 3944261.410020180977881, 5447626.397520146332681 ], [ 3956666.159684520214796, 5441645.341059206053615 ], [ 3981692.404683574102819, 5444464.513014166615903 ], [ 3981690.67675420595333, 5444464.571899062022567 ], [ 4015350.067041798029095, 5429952.598619556985795 ], [ 4029620.704097897745669, 5420736.742803094908595 ], [ 4057975.22104768641293, 5434064.411014225333929 ], [ 4078841.460052259266376, 5423509.074636850506067 ], [ 4089160.309443039353937, 5419645.398838697932661 ], [ 4104874.942254485562444, 5444606.449376451782882 ], [ 4124342.390434809029102, 5441125.551013576798141 ], [ 4146707.17190949479118, 5455673.256116500124335 ], [ 4155225.601364898495376, 5467236.061796899884939 ], [ 4165322.841621338389814, 5471260.386318121105433 ], [ 4165514.101429037284106, 5498645.937117046676576 ], [ 4184790.221997576300055, 5507333.668568672612309 ], [ 4188983.743515606969595, 5529516.921127676032484 ], [ 4203609.33691771235317, 5530007.141183043830097 ], [ 3542035.396427161525935, 5265212.925454019568861 ], [ 3544585.692909493111074, 5259867.90865589492023 ], [ 3547289.899165036156774, 5258278.944561273790896 ], [ 3550919.520700506865978, 5253655.323959340341389 ], [ 3550964.504653503652662, 5248460.449181189760566 ], [ 3545424.912290220614523, 5244112.254975312389433 ], [ 3541868.937623105943203, 5238164.406485673971474 ], [ 3540113.199363869149238, 5231505.902357500977814 ], [ 3538134.732060497161001, 5230773.883335229940712 ], [ 3537453.261084453202784, 5224474.892642559483647 ], [ 3540385.229108595754951, 5218012.623036920093 ], [ 3537880.76003496767953, 5214031.816796146333218 ], [ 3542411.366836687549949, 5212620.088010231032968 ], [ 3553269.244490670505911, 5211985.969740117900074 ], [ 3569241.065412397962064, 5207459.562848629429936 ], [ 3569242.89961814135313, 5207459.912309416569769 ], [ 3568272.353287215810269, 5197333.39895286038518 ], [ 3583967.94246830092743, 5190297.13137331046164 ], [ 3595235.305443309713155, 5189741.504807036370039 ], [ 3596202.5285280845128, 5197355.992418546229601 ], [ 3605491.513894413597882, 5205463.704749562777579 ], [ 3612078.760425571817905, 5201970.9498973172158 ], [ 3613015.233321637846529, 5190774.655880166217685 ], [ 3608192.851895840838552, 5176185.563713612966239 ], [ 3608017.421854039188474, 5165648.13989616278559 ], [ 3617610.310300108511001, 5160007.212898851372302 ], [ 3611513.27060225745663, 5154066.222364104352891 ], [ 3603432.974135962780565, 5156472.158065704628825 ], [ 3592356.041897097602487, 5164297.584957789629698 ], [ 3584759.072326793801039, 5159821.586585975252092 ], [ 3580919.579580957069993, 5146656.554643015377223 ], [ 3593072.296862139832228, 5141358.470166529528797 ], [ 3588456.567721078172326, 5131427.65375198982656 ], [ 3593757.800731947179884, 5120530.188029116950929 ], [ 3585330.101259963121265, 5118942.001051283441484 ], [ 3579013.459451757837087, 5124348.986546451225877 ], [ 3573419.515709336381406, 5131593.775817639194429 ], [ 3571871.147835773881525, 5138516.010313520208001 ], [ 3559832.74006253387779, 5133638.01629822421819 ], [ 3553283.601279514376074, 5128094.564668060280383 ], [ 3538573.53907689685002, 5133831.888102422468364 ], [ 3534869.065437301062047, 5140746.658639782108366 ], [ 3535883.182695998810232, 5154967.224071574397385 ], [ 3532629.634613327682018, 5148756.798836742527783 ], [ 3523114.933853897731751, 5151263.529911556281149 ], [ 3520586.571546369232237, 5142505.830034005455673 ], [ 3520632.210824927315116, 5128994.017852286808193 ], [ 3512960.32443230971694, 5114698.469885380938649 ], [ 3503041.250019654631615, 5101112.594611318781972 ], [ 3500462.871399114374071, 5091924.081785440444946 ], [ 3506747.928338061086833, 5080515.961744583211839 ], [ 3499723.947447700891644, 5072400.98713949136436 ], [ 3493810.490953385829926, 5081252.314195899292827 ], [ 3489393.437962437514216, 5091933.223641494289041 ], [ 3485353.019089461304247, 5099660.203115375712514 ], [ 3489785.647103716153651, 5105892.668234018608928 ], [ 3471766.732579983770847, 5110351.08494689874351 ], [ 3457528.712062899023294, 5126181.655109773389995 ], [ 3457218.216453461907804, 5134225.671716790646315 ], [ 3458412.553082356229424, 5148083.040947030298412 ], [ 3445200.895911775529385, 5142718.305281395092607 ], [ 3445144.967656014021486, 5136513.892053802497685 ], [ 3432972.031004352495074, 5128961.867662388831377 ], [ 3429945.564825887326151, 5120946.192982636392117 ], [ 3436450.062063429970294, 5110615.159097295254469 ], [ 3426455.81723073637113, 5105590.178147848695517 ], [ 3423719.462841683533043, 5092763.271625800058246 ], [ 3412640.342284307349473, 5092174.398820438422263 ], [ 3410715.636223931331187, 5086681.28358681499958 ], [ 3399344.337511202786118, 5091640.97380353230983 ], [ 3387561.733761759009212, 5093315.927260241471231 ], [ 3377497.864976434968412, 5088354.666430576704443 ], [ 3369704.591985190752894, 5086672.580526566132903 ], [ 3360789.988017294090241, 5084656.221851395443082 ], [ 3353303.994744714349508, 5080774.193904279731214 ], [ 3541438.248960509896278, 5235377.993360521271825 ], [ 3543433.237450088839978, 5233595.859768289141357 ], [ 3542633.903708097524941, 5231972.805831268429756 ], [ 3544175.565662282984704, 5230725.927225286141038 ], [ 3543486.660695320926607, 5226315.158741917461157 ], [ 3546128.223934991750866, 5223096.176299881190062 ], [ 3548471.555172997526824, 5223564.788349682465196 ], [ 3548866.672121139243245, 5219427.131203308701515 ], [ 3548168.875794492196292, 5216358.936919000931084 ], [ 3546650.913392481859773, 5214003.88520095217973 ], [ 4086760.826636567246169, 5420143.518276430666447 ], [ 4086808.671531142666936, 5409542.967353885993361 ], [ 4082766.14061520434916, 5400624.051537222228944 ], [ 4082421.635905048809946, 5386754.225615528412163 ], [ 4089049.219753789715469, 5377843.226248670369387 ], [ 4098617.331486855633557, 5364950.144174781627953 ], [ 4108935.259993148501962, 5352111.858303027227521 ], [ 4104099.747851769439876, 5340142.583631908521056 ], [ 4105126.022716738283634, 5326977.471707190386951 ], [ 4105644.832726715598255, 5315168.633660563267767 ], [ 4087476.778485930990428, 5309335.265523483045399 ], [ 4077510.900357795879245, 5315163.615023667924106 ], [ 4062209.74771217815578, 5316885.637266781181097 ], [ 4060437.251534739974886, 5309170.12626963108778 ], [ 4072142.658878248184919, 5303840.807784150354564 ], [ 4081367.015848306939006, 5298274.757965501397848 ], [ 4077383.18692975025624, 5287417.042536328546703 ], [ 4066521.071695063728839, 5276237.430549457669258 ], [ 4060654.432545214425772, 5273141.313279598020017 ], [ 4063641.371250056196004, 5257134.219709347933531 ], [ 4068576.893246999010444, 5247447.335074703209102 ], [ 4069102.343545162118971, 5234407.485015222802758 ], [ 4052727.677972931414843, 5229945.598466962575912 ], [ 4051917.089469941332936, 5222950.22226426191628 ], [ 4039524.525534840300679, 5214522.555176675319672 ], [ 4034398.804291163571179, 5206398.09894232172519 ], [ 4039141.821909353602678, 5194396.479145209304988 ], [ 4025019.397148092277348, 5196434.308113299310207 ], [ 4005884.467674105428159, 5192961.325033752247691 ], [ 3991946.867379131261259, 5184125.071647917851806 ], [ 3972791.72589312819764, 5185147.496710248291492 ], [ 3955549.230108744930476, 5180527.375362847931683 ], [ 3949948.288172746542841, 5172060.714401353150606 ], [ 3937174.35566330794245, 5165998.106741577386856 ], [ 3930199.867754022125155, 5155605.93190052267164 ], [ 3918728.155445598065853, 5156635.620072795078158 ], [ 3889954.13173627667129, 5158378.038717797026038 ], [ 3874852.903410571627319, 5165104.134305202402174 ], [ 3847273.084076985251158, 5166743.416135856881738 ], [ 3819664.537880597170442, 5169596.635912803933024 ], [ 3788779.538568348623812, 5173139.998882246203721 ], [ 3770060.973630983848125, 5175183.909194376319647 ], [ 3752206.711032005026937, 5191846.764033508487046 ], [ 3741117.361241395585239, 5205157.015413116663694 ], [ 3739319.33573512127623, 5213763.126683001406491 ], [ 3739318.648017242085189, 5213762.041995136067271 ], [ 3746347.125247769989073, 5219106.092436093837023 ], [ 3740083.589096038602293, 5221737.266996593214571 ], [ 3728044.598747427109629, 5214764.223563306033611 ], [ 3728045.337757213506848, 5214765.286014859564602 ], [ 3713703.327675763517618, 5210621.072368776425719 ], [ 3704652.582366657443345, 5210303.103773106820881 ], [ 3686142.781542423181236, 5211139.640304392203689 ], [ 3673611.167479817289859, 5206064.474945543333888 ], [ 3662529.25473585492, 5200329.012095936574042 ], [ 3662058.708734086714685, 5190904.67964499630034 ], [ 3653547.152818731963634, 5182705.952032035216689 ], [ 3640076.020032383967191, 5183101.987345575354993 ], [ 3631965.547610606066883, 5187992.767938876524568 ], [ 3627135.335209024138749, 5192958.465879148803651 ], [ 3618488.409091074485332, 5189522.425121571868658 ]
+]
+}
+
diff --git a/MessagesMap/geo/gre_ger_gauss.geojson b/MessagesMap/geo/gre_ger_gauss.geojson
new file mode 100644
index 000000000..955b63aec
--- /dev/null
+++ b/MessagesMap/geo/gre_ger_gauss.geojson
@@ -0,0 +1,18 @@
+{
+"type": "FeatureCollection",
+"name": "gre_ger_gauss",
+"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::31467" } },
+"features": [
+{ "type": "Feature", "properties": { "id": 1 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 1 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3476677.303190048318356, 6087007.257444866932929 ], [ 3476616.822004675399512, 6084966.811360620893538 ], [ 3473668.040791889186949, 6084136.65482482034713 ], [ 3474958.085608421824872, 6082784.623404480516911 ], [ 3474686.09936313983053, 6078799.581815544515848 ], [ 3477666.907604074571282, 6075342.610363858751953 ], [ 3478458.137393671087921, 6073492.401157525368035 ], [ 3479258.72941018268466, 6073538.567376623861492 ], [ 3481041.117867288179696, 6069136.443714180961251 ], [ 3481084.92734553059563, 6067637.231298245489597 ], [ 3480178.321920018643141, 6066491.516745407134295 ], [ 3480225.367629409302026, 6065791.416873103938997 ], [ 3482030.445277167484164, 6066083.865732400678098 ], [ 3483378.506749597843736, 6064778.721244581975043 ], [ 3483974.459224163554609, 6063226.091161146759987 ], [ 3483968.806775116827339, 6061625.055352501571178 ], [ 3485367.320772295352072, 6059818.473003786057234 ], [ 3487271.696009595412761, 6059011.685488608665764 ], [ 3488722.168830782175064, 6057054.701115871779621 ], [ 3488919.456368356477469, 6055601.327695346437395 ], [ 3489869.808718715794384, 6053870.073632965795696 ], [ 3489088.997096770443022, 6052994.578761538490653 ], [ 3487630.804641078226268, 6052647.335497889667749 ], [ 3487955.332369572483003, 6051844.152047887444496 ], [ 3488607.613161220215261, 6051391.110381573438644 ], [ 3489238.623185290955007, 6052517.903995002619922 ], [ 3490645.543693324085325, 6052414.511348939500749 ], [ 3491600.308246622327715, 6052362.507246378809214 ], [ 3492179.24110572738573, 6052938.084833488799632 ], [ 3492278.427850613836199, 6052160.730622250586748 ], [ 3492552.921309833880514, 6050981.703681353479624 ], [ 3491820.470023844856769, 6049026.361397593282163 ], [ 3491916.337048817425966, 6046365.880419854074717 ], [ 3491837.571855330374092, 6044533.019575617276132 ], [ 3490424.542005356401205, 6042903.018327214755118 ], [ 3488986.826742523815483, 6041901.200352019630373 ], [ 3487902.959149586502463, 6041577.248776316642761 ], [ 3487447.089427972212434, 6040673.673030675388873 ], [ 3487848.103307355660945, 6039893.309557938948274 ], [ 3488376.412795174401253, 6039565.102359182201326 ], [ 3487212.267653345130384, 6037782.777916644699872 ], [ 3488747.531551353633404, 6036772.5651326905936 ], [ 3491344.281854037661105, 6036590.818132951855659 ], [ 3493260.651203465182334, 6036587.600898121483624 ], [ 3494648.877097764518112, 6037768.053973471745849 ], [ 3495532.680629992857575, 6039301.104760761372745 ], [ 3496718.211747415363789, 6040858.722266473807395 ], [ 3497097.05774338170886, 6042391.427392679266632 ], [ 3498835.000953202601522, 6043571.445409429259598 ], [ 3499288.190216931048781, 6043621.594292171299458 ], [ 3499842.018962797708809, 6041762.324521061964333 ], [ 3500774.142192447092384, 6040556.009328267537057 ], [ 3501001.161251977551728, 6039324.209037479013205 ], [ 3500547.610257353633642, 6038896.676230365410447 ], [ 3500295.591036630328745, 6038796.068267208524048 ], [ 3500799.714126588311046, 6038469.222843501716852 ], [ 3500446.927848208229989, 6037664.372356803156435 ], [ 3498757.581189809367061, 6036482.201649500988424 ], [ 3497320.008458916097879, 6036029.930034782737494 ], [ 3495931.345742169767618, 6034168.640607496723533 ], [ 3494137.630558690987527, 6032231.968735426664352 ], [ 3492773.114790372550488, 6031226.519073423929513 ], [ 3490676.500464137643576, 6030600.56354686897248 ], [ 3489162.783735713455826, 6031107.682208864949644 ], [ 3487648.182124414946884, 6031161.885515580885112 ], [ 3484312.695420804899186, 6030265.217610725201666 ], [ 3482341.424828741233796, 6029818.884594698436558 ], [ 3480674.634771616198123, 6029800.410619959235191 ], [ 3478908.206775232683867, 6030085.344181993044913 ], [ 3477996.738320228643715, 6029585.711916355416179 ], [ 3477080.912461290601641, 6028254.550017295405269 ], [ 3477379.575982786249369, 6027345.612320648506284 ], [ 3478539.832447910681367, 6026911.455994581803679 ], [ 3479904.242047449573874, 6026880.066496703773737 ], [ 3480101.803682956378907, 6025820.182651890441775 ], [ 3479643.165972984395921, 6024989.932254783809185 ], [ 3478554.028805126436055, 6024540.864729285240173 ], [ 3477412.493434378411621, 6023764.300371735356748 ], [ 3476777.402341734152287, 6023187.159839357249439 ], [ 3475768.219432229176164, 6023646.534396583214402 ], [ 3475060.184485014993697, 6023650.325195582583547 ], [ 3474148.007917058188468, 6023327.368328050710261 ], [ 3474495.186071339063346, 6022088.903486514464021 ], [ 3474441.927685622125864, 6021609.641836904920638 ], [ 3474141.616244169417769, 6022191.833146094344556 ], [ 3473910.235273453872651, 6021536.905754138715565 ], [ 3474182.707033030688763, 6020500.344429734162986 ], [ 3474708.681990761309862, 6019512.672322079539299 ], [ 3475845.500116827897727, 6019102.501202166080475 ], [ 3476699.710459274705499, 6017835.186774375848472 ], [ 3477935.615038743708283, 6016843.789863794110715 ], [ 3479225.334938751067966, 6016433.502446329221129 ], [ 3480390.684009729884565, 6016504.200149700976908 ], [ 3480876.818839738145471, 6017689.628717071376741 ], [ 3482142.117695638444275, 6017507.710238441824913 ], [ 3482953.970881132874638, 6017934.085652164183557 ], [ 3483408.243424926418811, 6017528.238434339873493 ], [ 3484421.493565948214382, 6017651.013177098706365 ], [ 3484876.836277821101248, 6017523.18357397057116 ], [ 3485076.370753273367882, 6016587.713416242040694 ], [ 3486089.781757748220116, 6016710.881793124601245 ], [ 3487357.143783047329634, 6017111.490024683065712 ], [ 3488675.669734642375261, 6017815.428914855234325 ], [ 3489660.672165025025606, 6016726.760208196938038 ], [ 3489961.711308636702597, 6015412.022719726897776 ], [ 3490011.445208260323852, 6014982.233129035681486 ], [ 3491785.766385649330914, 6015484.237369721755385 ], [ 3493054.258189263753593, 6016745.67030805721879 ], [ 3494423.38638886064291, 6018057.503272474743426 ], [ 3495715.754178680013865, 6019318.934935205616057 ], [ 3496501.127805914729834, 6020303.026617791503668 ], [ 3497184.568025426007807, 6020630.765349281020463 ], [ 3497209.735056382138282, 6020403.534698413684964 ], [ 3496626.938052949495614, 6019318.181960014626384 ], [ 3496271.064359024167061, 6017424.111700810492039 ], [ 3495383.716512867249548, 6016313.201293854042888 ], [ 3494445.060474902391434, 6015025.325029075145721 ], [ 3493557.23128197202459, 6014217.566314378753304 ], [ 3492188.937240012455732, 6014219.676489369943738 ], [ 3490465.796297576278448, 6014172.351298003457487 ], [ 3489705.399327688384801, 6014072.859690828248858 ], [ 3489424.519602987449616, 6013137.982663879171014 ], [ 3489396.270064483396709, 6011873.540976386517286 ], [ 3489699.644226006697863, 6011493.435010779649019 ], [ 3489543.397864985279739, 6009672.140033581294119 ], [ 3488398.721078993752599, 6008358.791234686039388 ], [ 3487887.65149036468938, 6006967.687228480353951 ], [ 3487783.394649030640721, 6005929.708095429465175 ], [ 3487374.340646149590611, 6004866.988068813458085 ], [ 3488133.712167686782777, 6003952.94100640527904 ], [ 3488535.208597412332892, 6002000.580343826673925 ], [ 3489344.124714308883995, 6000223.984489561058581 ], [ 3490436.11603883607313, 5999790.509757761843503 ], [ 3490713.178875850513577, 5998521.796330644749105 ], [ 3492062.576726691331714, 5999609.919839192181826 ], [ 3493970.034583770204335, 6000393.157158768735826 ], [ 3495316.664923462551087, 6000036.604230587370694 ], [ 3496204.045478584710509, 5997321.685142442584038 ], [ 3496635.361620070878416, 5995900.251514022238553 ], [ 3497906.500985828693956, 5994020.95537724904716 ], [ 3498822.481232897378504, 5993157.263414944522083 ], [ 3497244.117597866337746, 5992853.166500536724925 ], [ 3497294.824806632939726, 5992497.560236354358494 ], [ 3499076.87488862266764, 5992369.874042908661067 ], [ 3498898.303493827115744, 5990820.254816381260753 ], [ 3497751.613563754130155, 5989448.404544831253588 ], [ 3496707.123435814864933, 5989423.606808953918517 ], [ 3494235.068423153832555, 5988638.041764864698052 ], [ 3492504.350645236670971, 5989809.698533716611564 ], [ 3490874.977210045792162, 5990270.040501957759261 ], [ 3489574.504850093275309, 5989612.027205031365156 ], [ 3489215.278043416794389, 5988494.443721514195204 ], [ 3490155.682392837014049, 5987373.687156686559319 ], [ 3492368.340063839685172, 5984520.798736343160272 ], [ 3493489.048904071096331, 5983526.719524797052145 ], [ 3493459.034774763509631, 5980293.705846439115703 ], [ 3494758.039027869235724, 5977795.738842130638659 ], [ 3496033.422306774184108, 5975934.107598604634404 ], [ 3496748.48243021639064, 5975474.720108155161142 ], [ 3497258.913039631675929, 5974429.09876615088433 ], [ 3498741.000572288874537, 5973510.456161595880985 ], [ 3501450.354571287985891, 5974326.542106374166906 ], [ 3502728.207479953300208, 5974403.614853972569108 ], [ 3504722.662174994125962, 5973461.69496139511466 ], [ 3506410.543320814613253, 5972928.118898688815534 ], [ 3508481.40759842749685, 5972905.927353111095726 ], [ 3510858.726791886147112, 5973038.396658951416612 ], [ 3514437.667801415082067, 5973099.135321523062885 ], [ 3517689.619749707169831, 5971732.852935117669404 ], [ 3520071.79460312332958, 5970823.944320211187005 ], [ 3522100.38359285145998, 5969148.617584634572268 ], [ 3524390.52389700524509, 5966683.225926808081567 ], [ 3525932.338460141792893, 5965644.248623124323785 ], [ 3526715.26692469092086, 5963067.739376971498132 ], [ 3527108.010876456275582, 5961612.809277003630996 ], [ 3528252.460967866238207, 5958831.762410629540682 ], [ 3528673.873235184699297, 5957017.511846443638206 ], [ 3531431.443511363118887, 5955140.881238510832191 ], [ 3533156.49808227783069, 5954358.971981920301914 ], [ 3534888.61565616633743, 5952706.683271947316825 ], [ 3535649.97364470269531, 5950508.755971888080239 ], [ 3536279.568306562490761, 5948821.704728314653039 ], [ 3535742.444965830538422, 5948484.26254793908447 ], [ 3535600.479971596039832, 5946867.530726219527423 ], [ 3535406.01020170468837, 5945378.146233955398202 ], [ 3536366.456744550261647, 5944230.741993399336934 ], [ 3537639.202111887279898, 5942700.664343249052763 ], [ 3540616.254224290139973, 5940645.490606938488781 ], [ 3543698.68793532345444, 5938617.915230557322502 ], [ 3545662.204447855707258, 5937994.112867050804198 ], [ 3545543.090832621790469, 5936990.590394141152501 ], [ 3542754.872309128753841, 5937607.029409196227789 ], [ 3540966.085153403226286, 5938901.687121853232384 ], [ 3539080.200113159604371, 5939605.017451407387853 ], [ 3537185.967812778893858, 5941438.940311964601278 ], [ 3536124.192986026406288, 5942278.004538708366454 ], [ 3535003.894007174298167, 5944117.738086530938745 ], [ 3533781.426410960033536, 5945981.924722048453987 ], [ 3532783.738886163104326, 5948924.170413659885526 ], [ 3532130.958529762923717, 5950432.066735602915287 ], [ 3530733.010538680944592, 5952062.726530008949339 ], [ 3528176.512794377282262, 5954403.192552183754742 ], [ 3526908.81742023024708, 5956136.757830238901079 ], [ 3525613.749208349268883, 5958356.028938844799995 ], [ 3523933.308036295231432, 5960981.771894171833992 ], [ 3522225.354591047856957, 5964398.712193109095097 ], [ 3520982.854110349435359, 5967305.124535276554525 ], [ 3519287.987911266740412, 5968625.561561356298625 ], [ 3517926.941844350192696, 5969870.935102732852101 ], [ 3516007.293956977315247, 5970144.692940020933747 ], [ 3511886.873376769479364, 5970872.42351512145251 ], [ 3509534.005070523358881, 5970764.942434266209602 ], [ 3505442.229162491392344, 5970222.456928632222116 ], [ 3502450.280958690214902, 5968407.593091765418649 ], [ 3501452.385463931132108, 5967998.666074465960264 ], [ 3502425.703641577623785, 5966492.391245706938207 ], [ 3502938.765823274850845, 5964857.773516360670328 ], [ 3502503.397950951941311, 5964857.519704677164555 ], [ 3501606.420056908857077, 5966645.280344867147505 ], [ 3500761.467388154473156, 5967513.351773649454117 ], [ 3498611.505742757115513, 5967666.702764188870788 ], [ 3496384.280060479417443, 5967003.944920568726957 ], [ 3493516.553727657999843, 5966470.706748393364251 ], [ 3490956.549612362403423, 5966526.039071647450328 ], [ 3488141.374203115701675, 5966889.892934074625373 ], [ 3485429.576104983687401, 5967433.852817035280168 ], [ 3483361.405270639341325, 5968870.570711989887059 ], [ 3481144.941529768053442, 5971278.058991043828428 ], [ 3480585.90487444261089, 5972147.796602218411863 ], [ 3479944.902084841392934, 5971742.319209679029882 ], [ 3479259.78169163595885, 5972944.272228319197893 ], [ 3479671.720897752325982, 5973605.57880505733192 ], [ 3477523.777500263880938, 5973462.420466737821698 ], [ 3475038.041070946492255, 5972327.254984011873603 ], [ 3473597.222281103953719, 5970753.292319818399847 ], [ 3472227.788292527664453, 5968438.451589711010456 ], [ 3471273.561512243002653, 5967244.088373540900648 ], [ 3470724.346342022996396, 5965382.846015744842589 ], [ 3470026.726949790026993, 5964416.332110068760812 ], [ 3469884.352837080601603, 5962193.559136566706002 ], [ 3469518.946333679836243, 5961173.185775845311582 ], [ 3469148.664925666991621, 5959436.442868684418499 ], [ 3468523.683629658073187, 5958007.860167969949543 ], [ 3467899.551634310279042, 5956758.086275375448167 ], [ 3467012.5337621322833, 5954664.949093569070101 ], [ 3466484.583247231319547, 5952619.694428771734238 ], [ 3465886.56201363587752, 5951599.168357658199966 ], [ 3465966.649820008780807, 5948471.469624611549079 ], [ 3466514.704319792799652, 5946031.051722260192037 ], [ 3467654.699947436805815, 5943534.009449102915823 ], [ 3468440.193999410606921, 5941731.634774578735232 ], [ 3468999.306686798110604, 5940649.36988194193691 ], [ 3469761.206471896730363, 5939026.133002907969058 ], [ 3470135.115965273231268, 5937070.796957628801465 ], [ 3471562.621569440700114, 5934542.515133575536311 ], [ 3471888.831830199342221, 5933048.822247330099344 ], [ 3471181.839416280388832, 5931277.813002342358232 ], [ 3470247.435915781650692, 5930357.109370796009898 ], [ 3468543.862083675805479, 5930239.441170612350106 ], [ 3467685.270660751499236, 5929189.8042405359447 ], [ 3467081.363217087462544, 5927700.523775080218911 ], [ 3466256.80613265838474, 5927912.351402817294002 ], [ 3467384.130276493728161, 5930427.469608259387314 ], [ 3469147.159465497825295, 5931753.834628779441118 ], [ 3470830.574399704113603, 5932875.168024580925703 ], [ 3470323.601052484475076, 5934267.258341459557414 ], [ 3469010.808993947692215, 5934558.572257807478309 ], [ 3467031.455326407216489, 5935343.390442443080246 ], [ 3464844.698914587497711, 5935873.376480970531702 ], [ 3463710.873431571293622, 5935881.957258437760174 ], [ 3462404.245113571174443, 5936843.328530467115343 ], [ 3459169.611636072862893, 5938206.64283024892211 ], [ 3458004.053356953430921, 5940374.942820684053004 ], [ 3456810.54819371085614, 5942183.372621999122202 ], [ 3453724.933793261647224, 5942469.428621008060873 ], [ 3451402.34242440899834, 5941850.907283470965922 ], [ 3449968.027718199416995, 5940093.78015689458698 ], [ 3449506.415085554122925, 5937863.313724148087204 ], [ 3449218.692173304501921, 5935064.251987352967262 ], [ 3449019.958390897139907, 5933368.87287231720984 ], [ 3449007.466803256887943, 5932211.259051729924977 ], [ 3450732.393905590288341, 5931909.915176779031754 ], [ 3452023.500862216111273, 5932051.023267468437552 ], [ 3453785.02066671429202, 5932831.068790009245276 ], [ 3454702.209136665798724, 5931664.340971240773797 ], [ 3454704.339597740676254, 5929193.306496763601899 ], [ 3454547.126716680824757, 5926258.815160104073584 ], [ 3454297.831244829576463, 5924509.052633958868682 ], [ 3453436.544310845900327, 5923615.337047577835619 ], [ 3453370.927973054349422, 5922198.0477643487975 ], [ 3452638.035677419509739, 5921276.978695284575224 ], [ 3451979.810506428591907, 5920097.128058318980038 ], [ 3450572.618216125294566, 5919053.819553339853883 ], [ 3448938.665912148077041, 5918632.462204776704311 ], [ 3447391.162750523537397, 5919036.412611030973494 ], [ 3446704.213739825412631, 5920050.267837939783931 ], [ 3445436.657299753278494, 5922256.93124105874449 ], [ 3444445.376104539260268, 5923686.429506257176399 ], [ 3443270.505878716241568, 5924834.438234180212021 ], [ 3442367.409962251316756, 5924922.653455334715545 ], [ 3441045.313221304677427, 5924552.333469422534108 ], [ 3440367.214761393144727, 5924045.317873069085181 ], [ 3440081.085191955789924, 5923894.265626089647412 ], [ 3438960.289806449785829, 5925145.727907898835838 ], [ 3437775.150844753719866, 5927351.171701144427061 ], [ 3437667.781184329651296, 5929000.879488595761359 ], [ 3437609.03816049778834, 5930417.701596533879638 ], [ 3437720.372066305018961, 5931034.013309716247022 ], [ 3439234.401194016449153, 5930396.536052782088518 ], [ 3440760.11646825587377, 5930660.331835241988301 ], [ 3442625.690823226235807, 5931306.530912490561604 ], [ 3443557.360421299003065, 5931552.67557420488447 ], [ 3444520.762324354611337, 5932313.264070412144065 ], [ 3444767.297731639351696, 5933545.304144686087966 ], [ 3445171.049471332225949, 5935006.658037713728845 ], [ 3444564.248057119548321, 5936016.577023228630424 ], [ 3443783.491945372894406, 5937542.520102150738239 ], [ 3443183.511062816251069, 5939065.935103427618742 ], [ 3444373.255398991052061, 5939488.537014181725681 ], [ 3444038.687686034478247, 5941675.83074155729264 ], [ 3441999.091217389795929, 5941186.859105006791651 ], [ 3441682.267003884073347, 5942628.821024079807103 ], [ 3440547.964738555718213, 5944516.958514201454818 ], [ 3439518.418841506354511, 5946480.262995032593608 ], [ 3438568.430191929917783, 5946595.193164446391165 ], [ 3436757.97238511685282, 5945823.819847674109042 ], [ 3436424.658952358178794, 5947803.656272273510695 ], [ 3435794.304737102705985, 5948709.835236906073987 ], [ 3435562.271022037602961, 5950533.361839624121785 ], [ 3435627.348826813045889, 5951532.082239156588912 ], [ 3436238.614928482566029, 5953035.571394780650735 ], [ 3434683.082664306275547, 5953825.505866463296115 ], [ 3431225.680597115308046, 5954438.43411442451179 ], [ 3428042.019134792499244, 5954434.955622931011021 ], [ 3424132.954372886102647, 5954035.453433121554554 ], [ 3420662.623981730546802, 5953811.043793925084174 ], [ 3417358.084225899539888, 5952817.552741648629308 ], [ 3414515.304292720276862, 5953278.455503807403147 ], [ 3408574.040819264948368, 5951545.100782874971628 ], [ 3406190.520086363889277, 5950566.599212774075568 ], [ 3403456.761280425358564, 5950109.137784102000296 ], [ 3400031.293022985104471, 5951001.319529866799712 ], [ 3393309.005317478440702, 5951508.163937739096582 ], [ 3389864.618126108776778, 5951485.115436712279916 ], [ 3386708.577799924649298, 5950637.017777714878321 ], [ 3385159.556979889981449, 5950366.861781798303127 ], [ 3383445.997129346244037, 5949690.849111491814256 ], [ 3381870.667392538394779, 5948396.06060378625989 ], [ 3379935.811761349905282, 5947161.888310228474438 ], [ 3378858.489231504965574, 5945289.741361330263317 ], [ 3378408.761624115519226, 5945814.868023200891912 ], [ 3377590.491221052594483, 5944038.47620371170342 ], [ 3375116.210454526823014, 5941996.77489753626287 ], [ 3373575.08113806694746, 5940238.72660840395838 ], [ 3373645.036291722208261, 5939002.754042189568281 ], [ 3376925.006747884210199, 5936292.569189994595945 ], [ 3377457.266654254868627, 5934940.725709207355976 ], [ 3374967.4192228410393, 5932483.310416745953262 ], [ 3373278.96142367599532, 5933043.231897374615073 ], [ 3371733.026679804548621, 5933136.436747873201966 ], [ 3370160.365371438674629, 5936010.665202242322266 ], [ 3369519.076137204654515, 5935204.872746789827943 ], [ 3370623.14611141057685, 5932188.231711954809725 ], [ 3369114.591493148822337, 5929911.514532618224621 ], [ 3368440.948788946028799, 5926115.48908681795001 ], [ 3367815.174491509795189, 5922211.898900600150228 ], [ 3367855.358955427072942, 5919939.24583179783076 ], [ 3367481.656192598398775, 5917677.045145064592361 ], [ 3366519.759346931241453, 5916618.93251958116889 ], [ 3367844.007828892674297, 5913945.794399360194802 ], [ 3369891.462418453767896, 5913010.317344238981605 ], [ 3370114.172645153477788, 5913573.019863194786012 ], [ 3372171.915933999232948, 5913000.192899932153523 ], [ 3375694.094334222376347, 5912906.838117407634854 ], [ 3378958.63119217986241, 5912874.349174916744232 ], [ 3381492.820797096937895, 5912655.416653768159449 ], [ 3383761.873747890349478, 5912185.763681191019714 ], [ 3387057.6894920039922, 5911278.965560235083103 ], [ 3389231.434091472998261, 5911124.437441256828606 ], [ 3389169.990427058190107, 5910712.10502291098237 ], [ 3385800.536714525893331, 5910740.032295181415975 ], [ 3383269.018336617387831, 5911111.788336644880474 ], [ 3382339.612016226630658, 5909168.814603465609252 ], [ 3382303.83582130772993, 5907720.653053808026016 ], [ 3382690.641357883810997, 5906572.273836356587708 ], [ 3382015.770535920746624, 5904465.816472715698183 ], [ 3380989.873488475568593, 5902885.385575579479337 ], [ 3380601.92565342830494, 5901910.534897705540061 ], [ 3380963.030417488887906, 5899724.451104337349534 ], [ 3381006.272233997937292, 5897285.966047517023981 ], [ 3380571.120637733489275, 5896518.658477083779871 ], [ 3381950.119964316021651, 5895498.57891889102757 ], [ 3380124.136973114684224, 5895284.522914436645806 ], [ 3379353.156213115900755, 5893591.053024855442345 ], [ 3378897.736422620248049, 5892044.881480769254267 ], [ 3378243.114757189992815, 5890866.917534163221717 ], [ 3378562.644735089503229, 5889092.39410496596247 ], [ 3379631.040984740946442, 5888078.060530565679073 ], [ 3379297.529351510107517, 5885175.069798098877072 ], [ 3379711.781163732521236, 5880898.433419520966709 ], [ 3380381.403146901167929, 5876351.257420996204019 ], [ 3377849.263701925519854, 5869167.572208140976727 ], [ 3371206.723894194699824, 5859363.605619667097926 ], [ 3371527.624746496789157, 5857629.285488212481141 ], [ 3369980.544609344564378, 5854688.178933726623654 ], [ 3368376.925378764048219, 5836115.600377579219639 ], [ 3367449.391853407025337, 5834932.172175120562315 ], [ 3364635.786091762594879, 5836060.378633598797023 ], [ 3363178.295037750620395, 5836678.985137461684644 ], [ 3360259.830418622121215, 5835921.066314455121756 ], [ 3355996.562058160547167, 5837831.420854992233217 ], [ 3353407.414001809898764, 5837540.864718444645405 ], [ 3350618.66691506979987, 5837625.520739251747727 ], [ 3347601.42301795585081, 5837140.95612277276814 ], [ 3345436.599921233952045, 5835317.092675862833858 ], [ 3346230.910827414598316, 5833767.356425877660513 ], [ 3345673.96247839089483, 5831155.126211114227772 ], [ 3348989.942511128727347, 5827525.473647148348391 ], [ 3348192.509100822266191, 5827339.569121494889259 ], [ 3345941.73168804962188, 5827936.415297140367329 ], [ 3345420.68796781077981, 5826478.587266082875431 ], [ 3342795.582504959311336, 5826930.849230648949742 ], [ 3344366.017807743046433, 5823193.267107733525336 ], [ 3343657.871893892996013, 5819209.242543862201273 ], [ 3347499.253721815999597, 5816925.581227378919721 ], [ 3354561.335717626847327, 5816078.104852819815278 ], [ 3354158.508194022811949, 5814981.891949186101556 ], [ 3360410.07235207175836, 5813427.94102281704545 ], [ 3362996.824905620422214, 5816996.017746383324265 ], [ 3363939.139830404892564, 5816653.312081508338451 ], [ 3364874.159504909534007, 5812194.532633400522172 ], [ 3366096.086246723774821, 5810418.508456693962216 ], [ 3366961.268144804984331, 5809127.319069962948561 ], [ 3368172.814551057759672, 5808883.393574013374746 ], [ 3368827.476798161398619, 5803633.030413242988288 ], [ 3367622.175327560864389, 5802184.235616413876414 ], [ 3366151.062394830863923, 5798784.119034263305366 ], [ 3365519.953127616550773, 5795094.159021019004285 ], [ 3367092.672837511636317, 5792349.01920360326767 ], [ 3368069.139912141021341, 5791103.592635864391923 ], [ 3365597.090867508202791, 5790109.597399059683084 ], [ 3363098.702927227132022, 5790125.026598390191793 ], [ 3361671.551380389835685, 5788520.380895545706153 ], [ 3360531.128899966366589, 5785792.907465665601194 ], [ 3358424.072646805085242, 5784684.696112652309239 ], [ 3356556.446475771721452, 5784525.982402518391609 ], [ 3355394.674210579134524, 5783019.637303083203733 ], [ 3354493.993350301869214, 5779539.148845079354942 ], [ 3353125.28834030777216, 5778303.598316594958305 ], [ 3346633.135050836019218, 5778659.228243296965957 ], [ 3346386.405461711343378, 5775848.133750449866056 ], [ 3345958.498180619440973, 5775808.169491874985397 ], [ 3345570.669794476125389, 5775341.380574398674071 ], [ 3345915.712972332723439, 5774426.130252461880445 ], [ 3344716.62388327345252, 5773611.904277126304805 ], [ 3342034.409588743466884, 5773164.032505496405065 ], [ 3341392.093165616970509, 5771427.533043761737645 ], [ 3341604.64657867141068, 5769716.502373205497861 ], [ 3343151.784930287860334, 5769667.569369819015265 ], [ 3346612.322104823775589, 5767588.680359845981002 ], [ 3349786.27053867932409, 5764773.853767707012594 ], [ 3351001.773874350823462, 5764310.908056103624403 ], [ 3350956.643581428565085, 5761005.542051751166582 ], [ 3349780.946646358352154, 5761040.744923886843026 ], [ 3348694.386072121094912, 5760486.610711646266282 ], [ 3348454.893066844437271, 5757878.592688990756869 ], [ 3346462.724164394196123, 5755749.967545739375055 ], [ 3345580.431701772846282, 5754922.452193521894515 ], [ 3344393.333735656458884, 5754638.667289501056075 ], [ 3343615.865370575338602, 5753754.582464783452451 ], [ 3341729.641622526571155, 5755096.11836779024452 ], [ 3340852.271643145009875, 5756138.854005487635732 ], [ 3337433.614686265122145, 5754752.922583672218025 ], [ 3332228.736082796007395, 5752893.764317509718239 ], [ 3331484.686652049887925, 5753079.092910259030759 ], [ 3328537.479325717315078, 5751521.730785178951919 ], [ 3326763.096911835949868, 5749817.823775429278612 ], [ 3325255.827953243162483, 5749656.135702987201512 ], [ 3324174.002950797788799, 5750924.18424697034061 ], [ 3323135.752882071770728, 5750372.353652258403599 ], [ 3320413.791677316650748, 5752233.983169891871512 ], [ 3320203.366592936217785, 5750851.055406567640603 ], [ 3321443.058834682684392, 5749522.922141700051725 ], [ 3321288.639827483799309, 5746692.129620227962732 ], [ 3319064.428227376658469, 5747521.174326245673001 ], [ 3317318.221982288639992, 5749671.447625671513379 ], [ 3315008.851298400200903, 5749595.574773462489247 ], [ 3313754.942126256413758, 5751942.229805063456297 ], [ 3312705.989071736112237, 5752569.594331275671721 ], [ 3311498.001884695608169, 5751812.666121704503894 ], [ 3309891.581034890376031, 5751873.337724787183106 ], [ 3307358.448377598077059, 5751542.130840381607413 ], [ 3305888.227406042162329, 5753738.157947232015431 ], [ 3306925.84768676571548, 5754232.736749564297497 ], [ 3305271.256137723103166, 5755793.628545100800693 ], [ 3304612.516627378296107, 5755391.671358566731215 ], [ 3304316.483997973613441, 5756044.661156723275781 ], [ 3300518.059394588228315, 5754858.14023379702121 ], [ 3303523.705921316985041, 5752225.898682885803282 ], [ 3305131.703610144555569, 5750825.716953269205987 ], [ 3304725.069228686392307, 5748647.424826041795313 ], [ 3300695.251087656710297, 5749876.3569799028337 ], [ 3298051.387151405680925, 5752175.954285630956292 ], [ 3296791.089118544477969, 5750193.582437377423048 ], [ 3294787.194813664536923, 5749739.948938356712461 ], [ 3292318.856472048442811, 5748449.63183955848217 ], [ 3290791.532442485913634, 5749155.562595460563898 ], [ 3289755.415782129857689, 5747485.386199300177395 ], [ 3289920.600297310389578, 5746300.110409592278302 ], [ 3291301.480364295188338, 5744635.263140850700438 ], [ 3291346.548505856189877, 5743132.823075205087662 ], [ 3292459.85460583679378, 5742765.128410023637116 ], [ 3292442.820313614327461, 5741050.270462101325393 ], [ 3289569.277748117689043, 5739185.255158288404346 ], [ 3289938.450207580812275, 5737721.263886852189898 ], [ 3292831.856771476566792, 5737440.418076044879854 ], [ 3295447.548237965907902, 5735616.209272241219878 ], [ 3294546.444769632536918, 5734632.946251344867051 ], [ 3294769.298018490895629, 5733496.348698431625962 ], [ 3294763.373022275976837, 5730703.567491865716875 ], [ 3300766.162442500703037, 5728582.398163359612226 ], [ 3298604.938741892576218, 5723021.899275249801576 ], [ 3301252.56455855909735, 5720387.896259279921651 ], [ 3303898.60222477838397, 5716246.142775188200176 ], [ 3306407.695644464343786, 5712647.141253584064543 ], [ 3307041.350388780236244, 5707985.196954485028982 ], [ 3306760.580651397816837, 5704865.656977678649127 ], [ 3305694.239859013818204, 5699612.892034158110619 ], [ 3307059.12371038692072, 5699885.279689623042941 ], [ 3306408.677259535994381, 5698450.714144894853234 ], [ 3306891.591118102893233, 5695458.633018332533538 ], [ 3304303.466169738210738, 5693014.552679062820971 ], [ 3304820.446972778532654, 5692345.384959954768419 ], [ 3302757.350133853033185, 5692316.377612895332277 ], [ 3300807.180342230945826, 5688222.898389655165374 ], [ 3298167.731455585453659, 5684641.587172788567841 ], [ 3295598.09920528717339, 5682900.066120402887464 ], [ 3296643.59034953918308, 5680471.920284806750715 ], [ 3295340.14535668073222, 5680523.768423667177558 ], [ 3295423.864063579589128, 5675798.2512610508129 ], [ 3296144.030565818306059, 5674737.776216881349683 ], [ 3297818.871181078255177, 5674400.035455786623061 ], [ 3301846.811181697528809, 5677175.150566702708602 ], [ 3303004.950451396871358, 5676153.443406596779823 ], [ 3300069.322801499627531, 5674855.088434789329767 ], [ 3302601.980081139598042, 5672747.463959520682693 ], [ 3301543.437256735749543, 5672136.245121591724455 ], [ 3298906.924106827005744, 5671586.597227867692709 ], [ 3296411.522928901016712, 5670489.049561847932637 ], [ 3295915.934955024160445, 5668986.453105127438903 ], [ 3292843.561578573659062, 5667151.291205334477127 ], [ 3290555.82791165355593, 5665883.689916778355837 ], [ 3288726.071391376666725, 5663835.839024382643402 ], [ 3287655.788463062606752, 5661701.903095590882003 ], [ 3287788.022429387550801, 5660933.985525010153651 ], [ 3286589.163556799292564, 5659676.030673863366246 ], [ 3285675.648484024684876, 5660040.748064618557692 ], [ 3283969.518847334198654, 5662345.04369845148176 ], [ 3283910.612274311482906, 5663545.414018142968416 ], [ 3282216.161774517036974, 5662200.924963196739554 ], [ 3280462.666012768168002, 5662057.389897791668773 ], [ 3281149.725693407002836, 5660230.614482069388032 ], [ 3281007.559314908459783, 5658165.921700863167644 ], [ 3282057.265123712364584, 5657140.391278399154544 ], [ 3282195.721687640529126, 5656534.878498041070998 ], [ 3282895.95685621490702, 5656287.340810407884419 ], [ 3282895.669324495829642, 5654978.694535035640001 ], [ 3281921.831084162462503, 5653928.857449941337109 ], [ 3282164.998008157592267, 5653209.464688984677196 ], [ 3284269.431074277497828, 5653830.426918645389378 ], [ 3286175.214554916135967, 5654951.118787158280611 ], [ 3287108.409572302829474, 5653712.820064155384898 ], [ 3288543.489978682715446, 5654035.741379365324974 ], [ 3291436.881228879094124, 5653918.27361779846251 ], [ 3290313.565470241010189, 5651836.339308062568307 ], [ 3289686.244772073347121, 5651207.041993699036539 ], [ 3290479.113975885789841, 5650520.071423185057938 ], [ 3290561.484402420930564, 5648497.187573024071753 ], [ 3293036.209390486590564, 5647415.017832157202065 ], [ 3295798.145860120654106, 5646650.238728865049779 ], [ 3294738.588578765746206, 5644780.477730887010694 ], [ 3294251.966444883961231, 5642176.986034880392253 ], [ 3295429.911229199264199, 5641474.552059262059629 ], [ 3294038.655232372693717, 5639561.356737680733204 ], [ 3293995.366815812885761, 5638469.315338461659849 ], [ 3292764.31663303123787, 5639229.229561239480972 ], [ 3293061.974928386509418, 5639818.888335167430341 ], [ 3290278.663255966734141, 5638782.033004604279995 ], [ 3289921.04455010779202, 5636717.667458184063435 ], [ 3290352.365412818733603, 5635167.991757966578007 ], [ 3289253.805881355889142, 5633789.126760985702276 ], [ 3287483.172903017606586, 5634791.749206254258752 ], [ 3286712.606090801768005, 5633399.843388979323208 ], [ 3290445.980533546302468, 5630674.267780573107302 ], [ 3289638.17804793221876, 5628350.766448652371764 ], [ 3291080.021227496676147, 5627306.252356147393584 ], [ 3290796.933658776339144, 5624356.834253843873739 ], [ 3291817.968506064265966, 5625138.613653897307813 ], [ 3295043.942357258405536, 5624681.944071646779776 ], [ 3296693.072183144744486, 5624672.295821407809854 ], [ 3297022.031125582288951, 5623233.608524720184505 ], [ 3298291.305944545194507, 5620496.189007695764303 ], [ 3299538.523947891779244, 5618582.128672275692225 ], [ 3299570.386601782403886, 5617977.033707095310092 ], [ 3301329.404882526025176, 5617909.946983234956861 ], [ 3301850.0372996898368, 5617121.559172347187996 ], [ 3300977.427015575114638, 5615891.639724168926477 ], [ 3302162.35970045812428, 5615187.648598435334861 ], [ 3304315.478376474231482, 5615326.448602642863989 ], [ 3304771.804897429421544, 5615748.7816889481619 ], [ 3306900.287934598047286, 5615230.495798503048718 ], [ 3307079.866087296511978, 5614125.333096931688488 ], [ 3306591.203096221201122, 5612824.790656130760908 ], [ 3305774.137469457928091, 5611591.066646741703153 ], [ 3304942.406250657979399, 5609972.853507907129824 ], [ 3304475.208323805127293, 5607790.642461740411818 ], [ 3303121.993529784493148, 5605530.618068462237716 ], [ 3301353.683156805578619, 5604001.152899656444788 ], [ 3301730.339020947460085, 5602280.295819290913641 ], [ 3302920.122726429253817, 5600142.847967209294438 ], [ 3303375.420874859206378, 5599024.059985257685184 ], [ 3306211.227273208089173, 5599524.868260719813406 ], [ 3308305.345973854418844, 5599393.092373580671847 ], [ 3310312.637645933311433, 5598383.865202314220369 ], [ 3312501.882658250629902, 5597809.588673127815127 ], [ 3311240.651073282118887, 5596532.144901648163795 ], [ 3311733.563964404165745, 5594860.915249953046441 ], [ 3313415.794884885661304, 5593974.11834666505456 ], [ 3313854.436974819283932, 5592304.291197531856596 ], [ 3313032.955026251729578, 5589409.431447661481798 ], [ 3312072.228916894178838, 5587290.935907955281436 ], [ 3311029.729631065391004, 5586002.996481238864362 ], [ 3312851.407242894172668, 5584281.337762791663408 ], [ 3314117.023758508265018, 5582468.860902468673885 ], [ 3315507.704989780671895, 5581038.677639014087617 ], [ 3315297.356875209137797, 5579774.707749810069799 ], [ 3313834.56846736650914, 5579162.511864907108247 ], [ 3312422.890927549917251, 5578438.213172486051917 ], [ 3312239.135910466313362, 5577947.022410762496293 ], [ 3309972.402404117397964, 5579686.697858810424805 ], [ 3308506.895402595866472, 5579020.704504291526973 ], [ 3306869.852216646075249, 5576701.878813940100372 ], [ 3306799.393962098751217, 5574767.862640046514571 ], [ 3305868.182006170041859, 5573584.214415721595287 ], [ 3302236.243611646816134, 5572943.305715539492667 ], [ 3300930.017860637046397, 5572161.599748998880386 ], [ 3300144.664714391343296, 5570474.226262048818171 ], [ 3298369.740403208415955, 5570541.314642827026546 ], [ 3297743.478723010979593, 5568681.405577485449612 ], [ 3299343.308557103388011, 5566902.703473022207618 ], [ 3299230.510358086321503, 5563912.904206435196102 ], [ 3296171.838873052038252, 5563918.234956804662943 ], [ 3295589.09417691314593, 5561777.030498195439577 ], [ 3296171.017793844919652, 5559534.813624084927142 ], [ 3295251.905445382930338, 5558792.845377014018595 ], [ 3294582.857005979400128, 5555875.301833150908351 ], [ 3294043.740374677814543, 5553451.368433734402061 ], [ 3294251.548703496344388, 5550163.490096008405089 ], [ 3294854.003845088649541, 5546969.783770482055843 ], [ 3295568.789650909602642, 5543770.044488900341094 ], [ 3298137.080562264192849, 5539328.601225581951439 ], [ 3300777.904525710269809, 5538226.936383076943457 ], [ 3300591.881895710714161, 5536227.414858377538621 ], [ 3301506.195114647038281, 5533740.250803409144282 ], [ 3303618.107277052477002, 5530315.553367778658867 ], [ 3306815.368343424983323, 5528972.044152360409498 ], [ 3307534.157465105410665, 5527160.001687828451395 ], [ 3307574.282217318192124, 5525148.292277450673282 ], [ 3308696.975071363616735, 5525220.016151678748429 ], [ 3309319.512640958186239, 5526984.82498583663255 ], [ 3310993.110894050914794, 5526814.163781641982496 ], [ 3313538.285051248501986, 5522704.250675394199789 ], [ 3316548.763631217181683, 5522265.77099993545562 ], [ 3318269.067922670859843, 5523436.550476114265621 ], [ 3319914.076553903985769, 5522375.822257258929312 ], [ 3321440.373675452079624, 5521095.863393030129373 ], [ 3321037.886370377149433, 5519097.157823511399329 ], [ 3320105.186610721051693, 5514654.248619129881263 ], [ 3319773.01095390226692, 5511419.421840450726449 ], [ 3315822.932736824266613, 5507520.179941294714808 ], [ 3314171.082749260123819, 5505223.023033342324197 ], [ 3315870.534160270821303, 5505613.415918727405369 ], [ 3314532.170840017031878, 5502631.805040402337909 ], [ 3313095.445247137919068, 5500100.983985096216202 ], [ 3311017.866549561731517, 5498601.740836505778134 ], [ 3309590.280488845426589, 5496406.288109920918941 ], [ 3310745.491916314233094, 5494007.452444901689887 ], [ 3308854.629367342684418, 5491489.192985010333359 ], [ 3309181.777033932041377, 5484730.256133002229035 ], [ 3313247.010812398511916, 5484814.69000612013042 ], [ 3316492.805140560958534, 5484029.476350947283208 ], [ 3319570.990886089392006, 5481563.382581897079945 ], [ 3322287.867931914515793, 5478321.523670556023717 ], [ 3321235.587449310813099, 5477229.36579033266753 ], [ 3322961.23001126293093, 5474694.29114542901516 ], [ 3325099.315040445420891, 5474400.165233524516225 ], [ 3325489.990141856949776, 5472471.349379789084196 ], [ 3324874.834437024779618, 5470912.296611363068223 ], [ 3323205.481559679843485, 5471755.291168798692524 ], [ 3322589.593790540471673, 5470196.25176914408803 ], [ 3325043.291458060964942, 5469102.162997494451702 ], [ 3324770.449323010630906, 5467644.072313352487981 ], [ 3330396.944478302728385, 5462951.873545842245221 ], [ 3329867.541308000683784, 5460483.174938303418458 ], [ 3331884.418704373762012, 5459743.229751444421709 ], [ 3331997.139188995119184, 5456009.726872179657221 ], [ 3334142.840959931258112, 5455718.552115550264716 ], [ 3334888.504926262423396, 5454112.922470156103373 ], [ 3332903.71215025568381, 5452249.616904384456575 ], [ 3335540.263590311165899, 5449341.080995460040867 ], [ 3338722.781859032809734, 5449473.553945599123836 ], [ 3341862.933300896547735, 5448137.472464187070727 ], [ 3343528.168615900911391, 5450806.451900968328118 ], [ 3344353.816673721652478, 5451914.538425981998444 ], [ 3343517.471719459164888, 5454426.592455507256091 ], [ 3342416.623720757197589, 5455588.693145615980029 ], [ 3344471.86133106937632, 5456095.545629951171577 ], [ 3346230.777860252652317, 5454124.041230094619095 ], [ 3348534.500820654910058, 5455417.066853553988039 ], [ 3350126.772815578151494, 5455599.616118837147951 ], [ 3350754.49173581879586, 5453660.418490864336491 ], [ 3353042.183922443073243, 5454390.484042441472411 ], [ 3355475.836065769661218, 5452064.318216507323086 ], [ 3356254.627246593125165, 5451478.37142503913492 ], [ 3356823.409308884758502, 5447163.237360533326864 ], [ 3357294.292350224219263, 5443413.863010513596237 ], [ 3359579.423207714688033, 5443921.746796428225935 ], [ 3360987.298051197081804, 5445698.208481875248253 ], [ 3360590.471944097895175, 5447972.440755658783019 ], [ 3362292.112452516332269, 5447929.735422714613378 ], [ 3361455.444901064969599, 5446252.590178170241416 ], [ 3364057.079601254779845, 5445848.282199367880821 ], [ 3365712.608134512789547, 5443882.626493926160038 ], [ 3367896.633981968276203, 5444962.516656741499901 ], [ 3368642.734678084496409, 5442906.054143330082297 ], [ 3371980.076957716140896, 5444753.172875575721264 ], [ 3374577.838198570534587, 5444127.395131227560341 ], [ 3375230.834074159618467, 5442866.755629636347294 ], [ 3377448.385518587194383, 5445535.004778406582773 ], [ 3379165.533601051662117, 5446176.423322357237339 ], [ 3380870.060002903919667, 5446252.588262471370399 ], [ 3380943.272243015002459, 5449645.88072828296572 ], [ 3386280.102225408889353, 5449872.642567787319422 ], [ 3385796.10053317528218, 5448411.922651157714427 ], [ 3390566.658243300393224, 5448654.678026086650789 ], [ 3390875.608130455948412, 5447064.419459532946348 ], [ 3389591.466181238181889, 5445278.940169045701623 ], [ 3391921.592530752066523, 5442515.271651929244399 ], [ 3394684.753265048842877, 5438496.4903419399634 ], [ 3399004.598318004515022, 5438529.320804560557008 ], [ 3400550.565832812339067, 5436007.450539210811257 ], [ 3403823.534864186309278, 5434588.917249847203493 ], [ 3405324.923858066089451, 5435923.79734976682812 ], [ 3407253.612404691055417, 5435664.408813539892435 ], [ 3407806.925638171844184, 5434748.031439089216292 ], [ 3410777.704689913894981, 5435606.534004563465714 ], [ 3412390.74775867164135, 5436941.196620415896177 ], [ 3417001.288586367387325, 5433582.037418880499899 ], [ 3418957.754121808800846, 5435140.697352018207312 ], [ 3421562.956715709995478, 5434422.86768676713109 ], [ 3422379.521928046364337, 5435885.328683120198548 ], [ 3425744.129689838737249, 5432437.227799493819475 ], [ 3427224.266208763234317, 5432531.038100123405457 ], [ 3431741.759720824658871, 5429864.124439768493176 ], [ 3432188.612845612224191, 5429177.71805084683001 ], [ 3438648.05060533201322, 5426605.180578490719199 ], [ 3441146.937545709311962, 5426010.398915889672935 ], [ 3443774.019803314469755, 5426777.997880448587239 ], [ 3444100.72794422134757, 5425298.52947814296931 ], [ 3441018.598437156993896, 5424648.949427127838135 ], [ 3435781.751066780183464, 5415044.075494257733226 ], [ 3434346.99304535286501, 5409482.786479373462498 ], [ 3431221.258303457405418, 5406102.538412497378886 ], [ 3428935.65839446336031, 5406131.130265021696687 ], [ 3427750.173842236865312, 5402840.358370274305344 ], [ 3424540.760941871441901, 5402312.519788173958659 ], [ 3423922.496248530223966, 5398898.478684207424521 ], [ 3418439.855920504312962, 5391781.614717473275959 ], [ 3413938.186163996346295, 5389677.335346916690469 ], [ 3411663.536555420141667, 5383536.496232718229294 ], [ 3411904.082985449582338, 5376891.61941062938422 ], [ 3409316.030788129195571, 5373150.537075099535286 ], [ 3408785.944496780633926, 5368800.822875512763858 ], [ 3406375.0789919286035, 5362181.630773250944912 ], [ 3407291.672799124382436, 5354810.195661885663867 ], [ 3403448.705552062485367, 5352688.398006235249341 ], [ 3401584.928618231788278, 5345005.833078308030963 ], [ 3399793.318139681126922, 5341694.676721687428653 ], [ 3395999.802427514456213, 5336572.159682932309806 ], [ 3395949.444171581882983, 5333802.955227456986904 ], [ 3394183.205465422011912, 5332218.813860137946904 ], [ 3394595.380240791011602, 5329438.959857028909028 ], [ 3393640.730744129046798, 5327954.405255996622145 ], [ 3393211.342989110853523, 5323569.099566949531436 ], [ 3396360.318487529177219, 5318073.055318268015981 ], [ 3398280.386333810631186, 5315028.157073317095637 ], [ 3394487.641686563845724, 5310925.224588554352522 ], [ 3394423.981077825650573, 5307448.090825513936579 ], [ 3392276.657797023188323, 5304587.579806504771113 ], [ 3392216.062134995125234, 5301338.763521077111363 ], [ 3390511.565416099969298, 5297421.956813243217766 ], [ 3390967.2622343711555, 5290670.947469526901841 ], [ 3391033.667191634885967, 5287993.832420127466321 ], [ 3389003.368527046404779, 5285588.023670888505876 ], [ 3389741.017122888471931, 5281381.400491485372186 ], [ 3392819.984673089813441, 5277244.935140418820083 ], [ 3394591.297573479358107, 5271730.801261203363538 ], [ 3398013.090484702028334, 5273303.366132202558219 ], [ 3400707.498672728426754, 5273490.161846791394055 ], [ 3401828.139359097927809, 5270554.286127161234617 ], [ 3397955.972861425019801, 5270037.144075736403465 ], [ 3399998.7742646089755, 5266265.641654439270496 ], [ 3404585.363901938777417, 5267356.723335566930473 ], [ 3408467.720814909785986, 5268462.114133893512189 ], [ 3410960.008184376638383, 5270641.193926501087844 ], [ 3411809.170814938377589, 5272611.76419866271317 ], [ 3418007.770553172565997, 5272404.673736351542175 ], [ 3417943.807783041615039, 5267854.309229598380625 ], [ 3424162.66499761166051, 5268820.825085404329002 ], [ 3429899.930880703497678, 5268865.822852464392781 ], [ 3433071.157436474226415, 5269762.234682783484459 ], [ 3434850.180987715255469, 5271842.22906899638474 ], [ 3440261.857453008182347, 5274699.827171719633043 ], [ 3442490.564558713696897, 5275376.912784439511597 ], [ 3447264.346893206704408, 5273116.368334513157606 ], [ 3451332.917477671988308, 5270048.07426589820534 ], [ 3455199.364794543478638, 5270600.441492328420281 ], [ 3462217.406400641426444, 5270084.029153803363442 ], [ 3462115.544423341285437, 5272417.717338015325367 ], [ 3459549.26128638535738, 5273484.546016472391784 ], [ 3461315.280674194917083, 5275221.385354879312217 ], [ 3464252.008879730477929, 5277417.029964530840516 ], [ 3466808.071528592146933, 5274721.123694409616292 ], [ 3465386.15279812226072, 5271580.890589426271617 ], [ 3466536.707049704156816, 5268190.529738401062787 ], [ 3469135.004472768865526, 5272492.859014559537172 ], [ 3469979.735556862317026, 5277501.11858360376209 ], [ 3471967.220725715626031, 5277607.701487408950925 ], [ 3470702.75202213646844, 5281807.2296939836815 ], [ 3465559.106220188550651, 5281020.366265679709613 ], [ 3464258.458702430594712, 5278465.64477123785764 ], [ 3460407.672557429876179, 5279306.108462906442583 ], [ 3456223.297716085333377, 5282247.711141574196517 ], [ 3458593.045648510567844, 5287002.174714633263648 ], [ 3460609.171887961681932, 5291756.062570192851126 ], [ 3464815.680743975564837, 5293239.917727896012366 ], [ 3468788.821677942294627, 5295076.193848267197609 ], [ 3471580.842789880000055, 5294132.310972448438406 ], [ 3472965.241934643127024, 5291103.872367586009204 ], [ 3474382.003062608186156, 5295048.671408385969698 ], [ 3476475.191171061713248, 5293994.103915286250412 ], [ 3477158.859918577596545, 5290039.41158040985465 ], [ 3479963.103435664903373, 5291540.355961260385811 ], [ 3481008.256034184712917, 5290258.01567401830107 ], [ 3479137.714538817759603, 5288985.379434469155967 ], [ 3478663.841934462543577, 5287009.781976686790586 ], [ 3480528.078016032930464, 5286188.817212254740298 ], [ 3480169.60632247896865, 5283746.194585441611707 ], [ 3484950.365807128604501, 5281403.371870806440711 ], [ 3486007.458826499991119, 5283845.517693010158837 ], [ 3483447.301175893750042, 5286761.43484144937247 ], [ 3486135.654042263980955, 5288615.446468035690486 ], [ 3487996.787629834376276, 5286052.11650069616735 ], [ 3490561.435793025419116, 5284301.819737511686981 ], [ 3489857.728705554269254, 5282440.55852793995291 ], [ 3491137.812988555524498, 5279527.166797446087003 ], [ 3498265.325822744518518, 5281267.486392702907324 ], [ 3502819.825412742327899, 5282781.419286884367466 ], [ 3509244.374250557273626, 5281390.825471815653145 ], [ 3515089.988283701241016, 5279190.109527446329594 ], [ 3523858.888779436703771, 5277821.259920362383127 ], [ 3530889.600915216375142, 5274357.56218041293323 ], [ 3536891.081754141952842, 5268443.197854464873672 ], [ 3540068.480084216687828, 5266012.652949059382081 ], [ 3553417.852102292235941, 5266235.853332026861608 ], [ 3556211.594016916584224, 5268013.127959861420095 ], [ 3558968.337896288372576, 5273290.572352670133114 ], [ 3561899.912950264289975, 5272621.111900174990296 ], [ 3562284.403799287974834, 5269475.152123768813908 ], [ 3561479.815212272107601, 5268066.084516203962266 ], [ 3564183.976370956283063, 5267044.468381702899933 ], [ 3565719.279709361959249, 5265893.89309382904321 ], [ 3566403.429552424233407, 5267536.205747944302857 ], [ 3568290.372541241813451, 5266390.391143075190485 ], [ 3569818.320568916853517, 5265941.33543078135699 ], [ 3572029.144681832287461, 5267135.752536108717322 ], [ 3573221.965306973550469, 5265399.005599326454103 ], [ 3574655.764731553848833, 5263197.722430121153593 ], [ 3575151.409697893541306, 5261100.712370845489204 ], [ 3578547.478611031081527, 5261378.970776219852269 ], [ 3579748.168419474270195, 5259291.129584588110447 ], [ 3581883.149714205879718, 5257566.576770008541644 ], [ 3582808.240240890067071, 5258515.072712591849267 ], [ 3583446.076896387152374, 5254898.145284430123866 ], [ 3582763.456113736145198, 5253367.264338509179652 ], [ 3581358.256128629203886, 5253113.575677283108234 ], [ 3581141.269917943049222, 5251823.039311069063842 ], [ 3589154.649804558139294, 5249948.636216470040381 ], [ 3591389.652602588757873, 5249748.712714437395334 ], [ 3592909.037499438039958, 5250240.939058191142976 ], [ 3608066.80489345267415, 5250031.43032496329397 ], [ 3609625.871784656774253, 5254626.30302225984633 ], [ 3611348.46130685089156, 5256647.945228716358542 ], [ 3610419.388586510438472, 5262360.304890165105462 ], [ 3608763.424330571200699, 5263147.427640830166638 ], [ 3608694.033288604114205, 5266884.567464678548276 ], [ 3609118.909958738833666, 5269227.795274266041815 ], [ 3610647.321896548848599, 5268906.279476214200258 ], [ 3615249.731480587739497, 5267126.820916695520282 ], [ 3619348.372115508653224, 5267208.993084497749805 ], [ 3621032.431041778530926, 5270746.408954884856939 ], [ 3626079.967394401784986, 5270152.706479787826538 ], [ 3630572.067742535844445, 5268266.285531943663955 ], [ 3632807.319957664236426, 5267849.441527684219182 ], [ 3633446.057540745474398, 5265527.547462677583098 ], [ 3638095.929316089954227, 5267154.234824404120445 ], [ 3642637.700458443723619, 5268314.512101682834327 ], [ 3643857.431304589379579, 5266358.401632416062057 ], [ 3644800.262721888720989, 5266147.963323574513197 ], [ 3644817.604788166470826, 5265447.263283429667354 ], [ 3640165.15465962793678, 5263931.561806668527424 ], [ 3641139.183433841913939, 5262435.246510568074882 ], [ 3644198.11670959694311, 5262042.036850397475064 ], [ 3646308.03940167883411, 5262094.335843012668192 ], [ 3645636.6809899113141, 5260791.255818320438266 ], [ 3649977.000201102811843, 5256220.514234762638807 ], [ 3649895.504383739084005, 5254813.657967455685139 ], [ 3648493.041923482902348, 5254543.871222625486553 ], [ 3648898.53397985547781, 5252446.283060369081795 ], [ 3655244.936900129541755, 5252376.249460184946656 ], [ 3659944.748774581588805, 5252385.14824132528156 ], [ 3660356.915271494071931, 5254504.557586400769651 ], [ 3665364.514791925437748, 5256048.53507305495441 ], [ 3667446.723311715293676, 5257161.197963807731867 ], [ 3670269.322932854294777, 5257008.310153999365866 ], [ 3668257.917418883182108, 5253437.308276225812733 ], [ 3671669.364111591130495, 5253301.741627963259816 ], [ 3673464.882921018637717, 5256165.284245558083057 ], [ 3673885.756954886950552, 5257816.760811294429004 ], [ 3676428.008520286995918, 5259180.193365572020411 ], [ 3680419.411375533789396, 5259184.620946523733437 ], [ 3683007.097934948280454, 5259030.728365052491426 ], [ 3681644.402653094381094, 5261328.834081131033599 ], [ 3679505.29189323540777, 5262198.820665345527232 ], [ 3681762.838844546116889, 5265075.352458233945072 ], [ 3683571.641286125872284, 5267236.164021715521812 ], [ 3684911.747386515140533, 5265641.709323761053383 ], [ 3688876.447099495213479, 5266352.949248921126127 ], [ 3695183.112736156210303, 5267144.526237981393933 ], [ 3695319.863971607759595, 5270071.130221887491643 ], [ 3696119.325948164798319, 5274186.363479602150619 ], [ 3696906.828900756314397, 5275146.99231637455523 ], [ 3698455.322155223693699, 5274382.098087263293564 ], [ 3698165.873252294491976, 5276006.855788071639836 ], [ 3700872.075926858466119, 5275632.422248547896743 ], [ 3704272.418023795820773, 5275516.964767271652818 ], [ 3709753.506413412280381, 5276178.495045790448785 ], [ 3714834.560195084195584, 5274962.047557797282934 ], [ 3715225.076776642352343, 5277078.369512633420527 ], [ 3719598.942155567463487, 5279109.284095799550414 ], [ 3723200.924123435281217, 5279829.728579265065491 ], [ 3726460.559814589098096, 5280305.658364173956215 ], [ 3728479.740992708131671, 5279567.430374900810421 ], [ 3730448.767183461226523, 5280111.890556435100734 ], [ 3734937.954438397660851, 5279123.749624446034431 ], [ 3737407.580403123050928, 5278873.540395647287369 ], [ 3739839.115334124770015, 5279556.906656790524721 ], [ 3741062.50966218020767, 5281125.072306622751057 ], [ 3740314.499946163035929, 5285061.61410831194371 ], [ 3738462.100503182038665, 5287434.47964827530086 ], [ 3737671.088330583646894, 5289617.026910294778645 ], [ 3741138.691207077819854, 5290575.791679365560412 ], [ 3743583.974459180608392, 5293590.783346704207361 ], [ 3744239.741539272945374, 5294666.666533531621099 ], [ 3745464.946214229334146, 5293320.574310488067567 ], [ 3743998.069396694656461, 5289296.49346340354532 ], [ 3744183.253322290256619, 5287671.990883053280413 ], [ 3746692.623504033312201, 5289177.121603433042765 ], [ 3750788.186702605802566, 5289119.279253566637635 ], [ 3752676.163812062237412, 5288734.667057823389769 ], [ 3757447.123620067723095, 5289293.919177147559822 ], [ 3759273.323339673690498, 5290307.941840749233961 ], [ 3759434.355598406866193, 5286699.644191927276552 ], [ 3760924.608653508126736, 5284782.653198830783367 ], [ 3763488.720214647240937, 5282446.77900482993573 ], [ 3764875.338989542797208, 5282859.968370902352035 ], [ 3766495.511189344339073, 5283284.17008647415787 ], [ 3769066.47902257181704, 5283402.444049267098308 ], [ 3770618.857421291992068, 5287792.848045555874705 ], [ 3774917.488424092996866, 5288461.269915884360671 ], [ 3781994.922287775669247, 5289733.756127413362265 ], [ 3781684.184308716095984, 5288901.981460696086287 ], [ 3784281.404768616426736, 5288445.005778755992651 ], [ 3783899.587727916426957, 5286675.657007952220738 ], [ 3782309.491651613265276, 5285664.359989155083895 ], [ 3784281.144812294282019, 5283658.524575554765761 ], [ 3787003.591664461418986, 5283091.307140819728374 ], [ 3788124.720327303744853, 5281744.780626373365521 ], [ 3786505.169203932397068, 5281314.372820717282593 ], [ 3785532.874546250328422, 5279630.628904357552528 ], [ 3784799.654778862372041, 5277841.408533683978021 ], [ 3786603.60178305208683, 5274538.416780044324696 ], [ 3790477.9888247968629, 5274495.941701513715088 ], [ 3790594.128488400951028, 5272161.474625929258764 ], [ 3793111.897764969151467, 5271116.731996889226139 ], [ 3795818.700670539867133, 5268677.05331720970571 ], [ 3798855.596301339101046, 5266722.819737875834107 ], [ 3799838.722160743549466, 5268178.955591368488967 ], [ 3802889.489610741846263, 5265992.731342470273376 ], [ 3804384.913735983893275, 5268882.313176333904266 ], [ 3805133.319873026106507, 5272551.575273250229657 ], [ 3803754.023067193571478, 5274235.446301868185401 ], [ 3805363.573710943572223, 5277127.578434414230287 ], [ 3804047.390052516479045, 5279865.629771737381816 ], [ 3806959.158603717572987, 5280252.08644082583487 ], [ 3806042.457857865374535, 5282074.320290931500494 ], [ 3808337.247325238306075, 5285233.647769700735807 ], [ 3807389.733745195437223, 5289854.723989077843726 ], [ 3804631.600111520383507, 5293326.948602575808764 ], [ 3800935.690724624320865, 5294650.400785171426833 ], [ 3796205.97065965924412, 5293357.427407402545214 ], [ 3792640.902135544922203, 5294459.316254674457014 ], [ 3795373.669104842003435, 5298211.406877520494163 ], [ 3795010.249062247108668, 5300756.032704696059227 ], [ 3797138.066065363120288, 5304823.992066430859268 ], [ 3798377.11803000792861, 5305702.598571930080652 ], [ 3798384.577908948995173, 5312333.655418801121414 ], [ 3794250.609914021100849, 5317931.166057704016566 ], [ 3790229.527724273037165, 5321442.149465550668538 ], [ 3786678.104510818608105, 5327295.615803264081478 ], [ 3781226.071450241375715, 5331776.835706444457173 ], [ 3778754.146607806906104, 5337212.942081055603921 ], [ 3781026.840195064432919, 5340563.218345453031361 ], [ 3784765.083432798739523, 5342367.16905709169805 ], [ 3787737.504416177049279, 5345521.691941050812602 ], [ 3789793.842401337809861, 5348398.836057630367577 ], [ 3793826.797423883806914, 5348836.223122604191303 ], [ 3797599.462265519890934, 5352034.835355360992253 ], [ 3804847.855404205620289, 5357266.374191619455814 ], [ 3812375.677845589350909, 5359290.237615343183279 ], [ 3817631.024841874837875, 5360504.439402943477035 ], [ 3822651.658046095632017, 5363786.195641887374222 ], [ 3825398.449115025345236, 5368323.389857625588775 ], [ 3828089.372631504200399, 5375733.77600179053843 ], [ 3827511.594646334648132, 5379727.006050870753825 ], [ 3828863.156577812042087, 5388195.249212647788227 ], [ 3828641.499112889170647, 5390019.510012876242399 ], [ 3831139.159764649346471, 5390625.081788191571832 ], [ 3832704.719903009012341, 5393357.319908248260617 ], [ 3836917.414856550749391, 5390279.050154198892415 ], [ 3838962.361385906580836, 5390746.295140411704779 ], [ 3843176.997758243698627, 5389623.48540545720607 ], [ 3845376.278749476186931, 5387575.043853930197656 ], [ 3850226.137220137286931, 5385575.508480267599225 ], [ 3851189.237577030435205, 5388623.880884901620448 ], [ 3850659.475342543795705, 5391577.755359980277717 ], [ 3852789.389023704454303, 5390677.091992710717022 ], [ 3854029.779714288655668, 5392937.241628798656166 ], [ 3854286.8513412210159, 5396167.913990419358015 ], [ 3854864.502612382173538, 5401596.117986790835857 ], [ 3855912.69081223430112, 5406820.185579559765756 ], [ 3853265.493678213562816, 5408714.249234259128571 ], [ 3854757.19810030516237, 5412357.58047001156956 ], [ 3856304.881807212717831, 5415087.768602450378239 ], [ 3853490.335917244199663, 5416052.7716233888641 ], [ 3853710.381891583092511, 5418010.65491761174053 ], [ 3851403.576942361425608, 5421864.904213130474091 ], [ 3849770.128725301939994, 5422333.346828631125391 ], [ 3847147.385368203744292, 5427649.450403043068945 ], [ 3842373.275378418620676, 5427125.432981932535768 ], [ 3840837.995919925626367, 5429769.007287064567208 ], [ 3839227.780072700697929, 5433660.686249264515936 ], [ 3836439.828622874803841, 5434402.664457753300667 ], [ 3836095.253023515921086, 5436318.424838675186038 ], [ 3829366.732189212460071, 5436142.68965432792902 ], [ 3830673.839149459730834, 5433372.629446876235306 ], [ 3827231.001920537557453, 5433624.40624125674367 ], [ 3822318.734723675530404, 5437550.340535138733685 ], [ 3822575.768218017183244, 5440979.144701819866896 ], [ 3821468.647546603810042, 5444326.509012749418616 ], [ 3817497.509936431888491, 5447961.082637995481491 ], [ 3813525.178468396887183, 5451708.761152523569763 ], [ 3808576.439607511274517, 5450635.348259688355029 ], [ 3804448.080683045554906, 5453243.31266425549984 ], [ 3805066.947153330780566, 5456453.37618157081306 ], [ 3801793.476753655355424, 5458087.058316828683019 ], [ 3800209.238722647540271, 5460040.354074968956411 ], [ 3800098.372055599931628, 5462073.412857607007027 ], [ 3797570.184695475269109, 5462615.608460924588144 ], [ 3797120.666033543180674, 5464629.31726430170238 ], [ 3795064.951798662077636, 5464858.183651850558817 ], [ 3794735.671891257166862, 5466764.423756338655949 ], [ 3793830.467423887457699, 5466715.935289075598121 ], [ 3793363.018220909871161, 5471215.067984454333782 ], [ 3791649.173001739662141, 5471462.839840769767761 ], [ 3788192.944655504543334, 5474670.355206306092441 ], [ 3781767.430439930409193, 5476256.194380306638777 ], [ 3782494.705392826814204, 5473130.944204164668918 ], [ 3778803.899224318098277, 5474410.55358830653131 ], [ 3774488.077136000618339, 5474644.452892290428281 ], [ 3774499.445151279680431, 5476677.436628054827452 ], [ 3773071.275329637341201, 5478073.397718599997461 ], [ 3770742.316181838978082, 5481680.674946036189795 ], [ 3769090.785169301088899, 5483065.046973722986877 ], [ 3765550.433686465024948, 5483793.733113300055265 ], [ 3762932.97133231209591, 5488849.73077289480716 ], [ 3763914.385872582904994, 5489572.763349560089409 ], [ 3763680.64985917834565, 5494401.116383878514171 ], [ 3759918.058954005129635, 5495232.585864448919892 ], [ 3759837.691012873779982, 5496915.595750628039241 ], [ 3758306.480578999500722, 5500664.208094398491085 ], [ 3757087.693330587819219, 5504986.580174822360277 ], [ 3754883.128251632675529, 5503984.414849063381553 ], [ 3754714.808642594143748, 5507568.351268366910517 ], [ 3754663.982789839152247, 5511043.313948171213269 ], [ 3752281.613686378113925, 5511492.468478155322373 ], [ 3748129.784483372233808, 5513766.628840764984488 ], [ 3746198.039193653967232, 5516703.218183800578117 ], [ 3745164.472104180138558, 5519679.350210216827691 ], [ 3750539.33744758926332, 5522388.22244018688798 ], [ 3749631.557521247304976, 5525030.91827192530036 ], [ 3751453.250985849648714, 5529252.096258390694857 ], [ 3753537.38713001832366, 5532589.865801245905459 ], [ 3755725.237144735641778, 5536043.278154118917882 ], [ 3755294.895878308918327, 5538031.72348784096539 ], [ 3751431.163173641078174, 5539299.782857084646821 ], [ 3749066.560313181020319, 5539635.706390921957791 ], [ 3749653.344769380521029, 5541447.267171245068312 ], [ 3751865.640581336338073, 5544337.569970003329217 ], [ 3747566.525898560415953, 5545474.365603343583643 ], [ 3741168.10805734898895, 5548634.853609713725746 ], [ 3736883.377496286295354, 5552115.916657934896648 ], [ 3732860.684804424177855, 5554830.687946009449661 ], [ 3728711.969448793213814, 5557985.670789001509547 ], [ 3729464.714967768639326, 5563792.524646927602589 ], [ 3727989.290521514136344, 5567057.754149910062551 ], [ 3725271.63060312345624, 5570822.592721866443753 ], [ 3723020.272674647625536, 5571503.397643525153399 ], [ 3720954.572312307544053, 5573079.009767584502697 ], [ 3722197.374655489809811, 5575235.247705519199371 ], [ 3724497.154413202777505, 5575996.423454540781677 ], [ 3722834.039479933679104, 5578583.004573442041874 ], [ 3722769.039576907176524, 5580129.408005010336637 ], [ 3725066.585877205245197, 5580890.293769891373813 ], [ 3727535.879815011750907, 5580221.320491296239197 ], [ 3728536.122558393981308, 5577608.177078784443438 ], [ 3729416.839799566194415, 5575210.187771665863693 ], [ 3732993.263559928163886, 5574701.404885558411479 ], [ 3733393.895032570697367, 5573167.954350016079843 ], [ 3731330.138952594250441, 5572080.348174600861967 ], [ 3733611.763258014339954, 5570739.254571005702019 ], [ 3734761.716771180741489, 5567352.232825891114771 ], [ 3735101.073267021682113, 5564704.269534032791853 ], [ 3739149.540715137496591, 5563774.546241171658039 ], [ 3738370.86983257997781, 5568732.839852967299521 ], [ 3737612.999364356510341, 5573244.241673161275685 ], [ 3739326.31655189068988, 5572212.901111060753465 ], [ 3739241.605420134961605, 5574093.036808216013014 ], [ 3739434.552854179404676, 5577203.285217555239797 ], [ 3742486.88466526241973, 5578449.297283021733165 ], [ 3743195.698030634783208, 5582355.619254254736006 ], [ 3745193.616463465616107, 5582337.129896971397102 ], [ 3746473.449683679267764, 5585825.585223335772753 ], [ 3747626.353403460234404, 5584884.130324793048203 ], [ 3748912.741093137301505, 5585829.254802440293133 ], [ 3748055.406660733744502, 5587558.010741391219199 ], [ 3750352.821555800270289, 5590539.87686912342906 ], [ 3756120.740906673483551, 5592694.691901732236147 ], [ 3761319.851808167994022, 5592839.135161161422729 ], [ 3763640.022545332554728, 5590744.539587195031345 ], [ 3765088.066164024174213, 5592806.126774789765477 ], [ 3765805.504067606292665, 5596155.763985391706228 ], [ 3769294.493140616454184, 5597216.168350159190595 ], [ 3771777.307420271914452, 5598447.61954506020993 ], [ 3777517.269274128600955, 5594550.152100934647024 ], [ 3779174.767910319380462, 5592537.95446698833257 ], [ 3783064.905809750314802, 5594402.989793696440756 ], [ 3785531.590503603219986, 5597960.613069591112435 ], [ 3785292.918592177331448, 5602363.352759633213282 ], [ 3785793.407418191898614, 5605369.051127099432051 ], [ 3788786.980039114132524, 5603216.049936227500439 ], [ 3791820.629771676845849, 5604376.48924214206636 ], [ 3793817.67619692441076, 5606252.661121785640717 ], [ 3794767.486478177830577, 5605092.483013670891523 ], [ 3797984.086632254999131, 5604942.84390078112483 ], [ 3798942.971542614977807, 5607534.35722359828651 ], [ 3800863.902500619180501, 5612604.557866881601512 ], [ 3800719.00320157315582, 5615129.840504218824208 ], [ 3804603.223441467620432, 5614803.464634914882481 ], [ 3804588.826225992757827, 5613150.133053756318986 ], [ 3807322.295576164498925, 5613640.182172295637429 ], [ 3807666.494451082311571, 5617185.059356661513448 ], [ 3810002.666366584599018, 5618754.134881952777505 ], [ 3809885.218344220891595, 5622598.770956395193934 ], [ 3811567.728737420868129, 5620278.020765405148268 ], [ 3813154.783157257828861, 5617730.618035649880767 ], [ 3816631.800540513824672, 5616838.365389060229063 ], [ 3818528.980083230417222, 5620146.826872535049915 ], [ 3820138.351486396510154, 5620905.539194607175887 ], [ 3819241.415794375818223, 5622941.702673432417214 ], [ 3820589.658701670821756, 5624344.438851588405669 ], [ 3820804.910515702795237, 5626227.419903922826052 ], [ 3819791.884480574168265, 5628364.13313468080014 ], [ 3823876.049646253697574, 5630044.886930740438402 ], [ 3825460.674490362405777, 5629374.150745071470737 ], [ 3827690.549742918461561, 5630722.753537888638675 ], [ 3829240.189858032856137, 5632358.759236394427717 ], [ 3833741.381344829220325, 5630886.665362003259361 ], [ 3835823.814404712989926, 5632778.79919742513448 ], [ 3839809.57790264301002, 5632487.659409415908158 ], [ 3842376.606729364022613, 5631996.142137260176241 ], [ 3843445.237223695032299, 5632506.12609598506242 ], [ 3843768.665056216064841, 5634285.857123780995607 ], [ 3845552.902452688198537, 5633964.343297033570707 ], [ 3845882.751379332505167, 5635634.421999706886709 ], [ 3844655.647528459317982, 5637530.159447366371751 ], [ 3845015.252021585591137, 5640408.523520876653492 ], [ 3848266.043823816813529, 5639527.474278996698558 ], [ 3849631.292850653175265, 5642143.735014835372567 ], [ 3852193.607557627372444, 5643304.407770987600088 ], [ 3853370.509702744428068, 5642177.166409933008254 ], [ 3858058.244092615321279, 5642827.346514443866909 ], [ 3860739.176678330637515, 5645427.098640786483884 ], [ 3864651.863971631042659, 5647675.155172302387655 ], [ 3868303.865829121787101, 5650455.49470139015466 ], [ 3868453.576860548462719, 5652987.293692287988961 ], [ 3871296.134664352517575, 5653190.297076079063118 ], [ 3872913.080978018697351, 5652100.729297350160778 ], [ 3876138.209241904318333, 5653101.258640002459288 ], [ 3878799.779436421580613, 5654281.763115962035954 ], [ 3878304.489329853560776, 5656546.711064988747239 ], [ 3879908.626702595502138, 5658635.955835712142289 ], [ 3877372.649784710258245, 5658778.769319750368595 ], [ 3873642.486421301960945, 5660259.489899774082005 ], [ 3873235.278182575013489, 5662856.40735577698797 ], [ 3870881.069638357497752, 5663561.869010458700359 ], [ 3869470.482533756643534, 5664882.406933111138642 ], [ 3870186.647737168706954, 5668650.290464341640472 ], [ 3872123.148852197919041, 5672176.251362370327115 ], [ 3874116.987340273335576, 5670354.607665712945163 ], [ 3877635.807600828818977, 5670174.337916933000088 ], [ 3878340.289480796549469, 5668040.137615696527064 ], [ 3881417.001703299582005, 5667938.896000509150326 ], [ 3883064.431431839708239, 5669372.928906513378024 ], [ 3888997.140150122344494, 5667739.8405701527372 ], [ 3888961.934402021113783, 5666752.781339449808002 ], [ 3892023.850398609414697, 5666875.233139554969966 ], [ 3893338.353903179056942, 5664020.649399837478995 ], [ 3891158.190800605807453, 5659474.878535458818078 ], [ 3890104.731355381198227, 5657423.090989323332906 ], [ 3892129.193082225974649, 5656808.973944171331823 ], [ 3894827.737983160186559, 5657452.652578229084611 ], [ 3897458.780000742990524, 5658969.336797493509948 ], [ 3897171.9116838183254, 5655549.085117362439632 ], [ 3896271.607996895909309, 5654383.446695215068758 ], [ 3894939.189184807706624, 5650222.260358816944063 ], [ 3900965.669202022720128, 5649147.84597579203546 ], [ 3902717.484788775909692, 5647855.888542323373258 ], [ 3905445.77613417385146, 5648178.216958883218467 ], [ 3907046.862452036235482, 5647424.744623495265841 ], [ 3909026.233708560932428, 5647470.513458472676575 ], [ 3910069.637819682713598, 5652385.177885238081217 ], [ 3909865.309848226606846, 5653576.397182139568031 ], [ 3913082.410075725521892, 5658768.88069938775152 ], [ 3915410.742858809418976, 5663997.593522780574858 ], [ 3917012.611035787500441, 5671353.094391087070107 ], [ 3918296.957832679152489, 5677143.973583422601223 ], [ 3919504.542406174354255, 5687834.231917208991945 ], [ 3920672.771858642809093, 5694907.032213196158409 ], [ 3920284.027654484380037, 5702277.906722805462778 ], [ 3916463.925518930424005, 5706313.800851550884545 ], [ 3915285.635153631679714, 5712734.544092117808759 ], [ 3915008.205929875839502, 5718786.992313132621348 ], [ 3911838.72823394369334, 5721671.671947702765465 ], [ 3907542.996553308330476, 5722407.63689452689141 ], [ 3903103.416968822944909, 5724975.725576804019511 ], [ 3897542.520291690248996, 5726699.96311570610851 ], [ 3896245.534509391989559, 5729409.967081543058157 ], [ 3898500.509518878068775, 5733802.266504067927599 ], [ 3898348.651361923664808, 5739836.77102857735008 ], [ 3896200.332342120353132, 5743766.076700169593096 ], [ 3891487.09427963802591, 5747384.29760904982686 ], [ 3890574.56668200623244, 5753557.032989542 ], [ 3888437.580468225758523, 5756079.847011269070208 ], [ 3885742.359704523347318, 5757484.134529687464237 ], [ 3885372.002301629632711, 5760893.872864078730345 ], [ 3888096.617191788740456, 5763252.3663928527385 ], [ 3892196.794025591574609, 5768616.83880356233567 ], [ 3892632.152710522990674, 5774012.137072905898094 ], [ 3894115.599812015891075, 5779699.031685368157923 ], [ 3894972.631552360020578, 5785116.966093302704394 ], [ 3893581.534340028651059, 5787786.130199570208788 ], [ 3890777.183824066072702, 5789380.913124461658299 ], [ 3888569.729216711595654, 5792944.990928837098181 ], [ 3889726.900846492499113, 5795917.421942629851401 ], [ 3890172.28518925793469, 5798405.867914486676455 ], [ 3888903.454182128887624, 5799585.361395683139563 ], [ 3890027.523497267160565, 5801592.656182849779725 ], [ 3889905.114240184891969, 5805844.128890166059136 ], [ 3888247.102217198815197, 5806565.065330009907484 ], [ 3882656.58084465470165, 5808469.249768460169435 ], [ 3880234.041036660317332, 5810834.403206677176058 ], [ 3880731.198938641697168, 5811298.160065221600235 ], [ 3878816.152385847177356, 5815401.533867488615215 ], [ 3876652.399458919186145, 5821392.686789776198566 ], [ 3877092.396654475945979, 5825350.62587003223598 ], [ 3879091.297345243860036, 5826988.96576280053705 ], [ 3882498.281371041666716, 5832339.281443700194359 ], [ 3882350.060754121746868, 5834233.360282779671252 ], [ 3881221.47015118971467, 5835097.70364648476243 ], [ 3880917.736755230929703, 5838988.048479683697224 ], [ 3882535.770093734376132, 5841334.883136425167322 ], [ 3879405.847002695314586, 5844788.118399401195347 ], [ 3871500.854137918446213, 5849877.344673019833863 ], [ 3866640.257241865620017, 5854041.000506401993334 ], [ 3862160.876345915254205, 5858864.291369445621967 ], [ 3856376.902230790816247, 5861486.168679472059011 ], [ 3853638.720928938128054, 5864333.985031346790493 ], [ 3851771.953848134726286, 5866824.332399304024875 ], [ 3847350.529758316930383, 5866819.612195742316544 ], [ 3845338.447944106534123, 5868460.235444736666977 ], [ 3846452.133862742222846, 5872002.866743963211775 ], [ 3846861.614577474072576, 5876540.917836175300181 ], [ 3845710.982599182985723, 5880857.880886669270694 ], [ 3845807.479627902153879, 5882435.174994660541415 ], [ 3849681.634586024098098, 5885436.37144530005753 ], [ 3854481.854157145135105, 5888612.59417827706784 ], [ 3858727.026504829060286, 5893527.765895562246442 ], [ 3860205.582850014325231, 5900321.679272799752653 ], [ 3860739.986647294368595, 5904325.677436962723732 ], [ 3858347.318934781476855, 5906959.643038901500404 ], [ 3859097.22065301053226, 5910869.979741984046996 ], [ 3861679.16217056941241, 5913980.012699580751359 ], [ 3863619.950443720910698, 5917248.956983144395053 ], [ 3862210.696277414448559, 5919324.832144322805107 ], [ 3860233.158865793142468, 5924784.39159846957773 ], [ 3858552.09466500626877, 5929119.357846072874963 ], [ 3857717.564035345800221, 5934654.2578652407974 ], [ 3855171.982983477413654, 5940881.22075732331723 ], [ 3854527.476558213122189, 5943935.597366889938712 ], [ 3852400.277569544501603, 5946050.187352763488889 ], [ 3851616.722759102005512, 5949607.364094331860542 ], [ 3852580.257987612858415, 5956077.816162295639515 ], [ 3849416.085709900595248, 5958315.387874973937869 ], [ 3849225.238656923174858, 5960877.051389093510807 ], [ 3848490.837490907870233, 5963808.613355265930295 ], [ 3847969.858788084238768, 5966651.315098694525659 ], [ 3847153.169963970314711, 5970703.895104909315705 ], [ 3848404.598714721854776, 5973263.388607643544674 ], [ 3847126.08941642800346, 5975222.370868641883135 ], [ 3842306.220610584132373, 5983380.822239859960973 ], [ 3842055.818560723215342, 5988177.143582530319691 ], [ 3840918.038545733783394, 5988298.260834409855306 ], [ 3841179.362973350100219, 5988931.705752913840115 ], [ 3842192.431896094698459, 5989108.622355900704861 ], [ 3840124.111086568329483, 5992128.893822520971298 ], [ 3836528.07627619523555, 5996467.294168918393552 ], [ 3830096.005070522427559, 6001926.714695753529668 ], [ 3825287.936896343715489, 6004849.845059881918132 ], [ 3821201.844556387979537, 6006296.751869357191026 ], [ 3817508.110044788103551, 6009504.76006458606571 ], [ 3815559.110609824769199, 6012628.2958875419572 ], [ 3814525.595302366651595, 6015812.593641201965511 ], [ 3812374.654038909357041, 6015971.108908070251346 ], [ 3809778.813840273302048, 6013660.167321825399995 ], [ 3810856.172438477165997, 6011290.994475170969963 ], [ 3812699.170466981362551, 6009685.247450346127152 ], [ 3814312.60594163602218, 6008471.197386899031699 ], [ 3815102.191506309900433, 6005876.401914129033685 ], [ 3814387.411642957478762, 6002871.683019595220685 ], [ 3813792.423173900227994, 6001097.582835406064987 ], [ 3812734.765973706264049, 6000107.874244066886604 ], [ 3813584.92423349339515, 5998124.621058972552419 ], [ 3815117.383426785003394, 5999657.405717846006155 ], [ 3815598.668185557238758, 6000098.339933203533292 ], [ 3818350.909517375286669, 6001715.195427712053061 ], [ 3820021.17661928711459, 6001218.428985885344446 ], [ 3818967.951326082926244, 5998696.602521911263466 ], [ 3818339.014142722822726, 5997428.309621640481055 ], [ 3820600.843805714510381, 5997278.070353273302317 ], [ 3822612.33334398875013, 5999255.450895296409726 ], [ 3822165.396366210654378, 6001265.297379594296217 ], [ 3822090.287061945535243, 6003810.049904906190932 ], [ 3825714.615339929237962, 6003146.230748705565929 ], [ 3827529.260290835052729, 6000621.622595163062215 ], [ 3828400.351152353454381, 5998437.446402784436941 ], [ 3829513.328229235485196, 5998618.661438570357859 ], [ 3831557.306061188690364, 5995802.28364584222436 ], [ 3831426.091278413310647, 5993339.893814634531736 ], [ 3830893.825760428793728, 5990745.345366813242435 ], [ 3829203.903412165120244, 5991443.359282188117504 ], [ 3829488.980940259993076, 5993201.830792748369277 ], [ 3827049.24052733136341, 5992926.876620600000024 ], [ 3826085.011663523502648, 5990609.498445996083319 ], [ 3824438.641294470056891, 5990698.635787636041641 ], [ 3824412.541935313958675, 5992537.21607933472842 ], [ 3825747.121908552013338, 5993959.545821349136531 ], [ 3825836.580149458255619, 5995600.741319499909878 ], [ 3823689.601770301349461, 5995552.398365689441562 ], [ 3821855.437051408924162, 5995424.613865301944315 ], [ 3821880.633335412945598, 5993587.260404518805444 ], [ 3821796.73431309312582, 5991843.849779789336026 ], [ 3824305.743323993869126, 5989666.591411430388689 ], [ 3824322.042061796877533, 5986495.784550337120891 ], [ 3823428.641705371439457, 5984590.801889563910663 ], [ 3822375.753491351380944, 5983493.667432649061084 ], [ 3819782.580594954546541, 5982392.91536043677479 ], [ 3818005.957522900309414, 5981349.262659789994359 ], [ 3817926.876398161519319, 5979499.543670936487615 ], [ 3819971.780043373350054, 5979639.588933923281729 ], [ 3821187.900747263804078, 5978390.752438402734697 ], [ 3823709.250050269532949, 5979077.849297716282308 ], [ 3825930.391790833789855, 5979642.794376843608916 ], [ 3829305.8130545578897, 5981315.276018842123449 ], [ 3831971.026225287932903, 5982836.814950498752296 ], [ 3835343.056173400022089, 5983078.647248992696404 ], [ 3839744.233914831653237, 5983295.502931435592473 ], [ 3841693.135043901856989, 5983335.75089196767658 ], [ 3842548.111940761096776, 5982886.127058120444417 ], [ 3848097.373533959966153, 5973240.467052654363215 ], [ 3847122.784433279652148, 5971112.767836498096585 ], [ 3844918.384478706866503, 5971668.826793747022748 ], [ 3843581.939886667765677, 5970234.325936361216009 ], [ 3841249.520946009550244, 5968315.866357866674662 ], [ 3840574.844139227643609, 5969089.101315757259727 ], [ 3836687.408751669805497, 5968704.67504149209708 ], [ 3834439.792970782145858, 5969879.31200283113867 ], [ 3831519.804017058573663, 5970390.402397912926972 ], [ 3826115.942458458244801, 5972577.326063128188252 ], [ 3823452.826516568195075, 5975368.150790618732572 ], [ 3820221.262711521238089, 5977504.015669897198677 ], [ 3816932.178310172632337, 5979021.811006994917989 ], [ 3816138.546738297212869, 5981631.785931341350079 ], [ 3817205.015792998485267, 5984059.694228403270245 ], [ 3821516.051772620528936, 5987017.175704867579043 ], [ 3822518.737237338442355, 5988826.05731981061399 ], [ 3820689.044716849457473, 5991562.677708619274199 ], [ 3818143.726520751602948, 5992818.363634699955583 ], [ 3815387.227404770907015, 5995694.71714888792485 ], [ 3811684.292087491601706, 5997485.930742738768458 ], [ 3810943.517384564504027, 5999375.005022188648582 ], [ 3812176.781638809479773, 6002313.98266426473856 ], [ 3813921.817398926243186, 6006712.982908229343593 ], [ 3812253.037583652418107, 6008738.655122142285109 ], [ 3808392.064613906666636, 6011532.477427837438881 ], [ 3806734.16166792018339, 6013456.363565259613097 ], [ 3807992.562500847037882, 6014455.632723518647254 ], [ 3806626.264317887835205, 6015076.168979535810649 ], [ 3802659.520258758217096, 6011864.548755905590951 ], [ 3798811.760882809758186, 6009883.921152976341546 ], [ 3794064.106386752799153, 6009171.685126464813948 ], [ 3792687.07569847535342, 6008371.782942567951977 ], [ 3794685.88600092055276, 6004222.805990059860051 ], [ 3791088.546243601478636, 6004605.794178533367813 ], [ 3789505.91277037281543, 6008679.793153521604836 ], [ 3787728.793438333552331, 6011009.784827677533031 ], [ 3788813.782599210273474, 6013212.705813540145755 ], [ 3786873.546122521162033, 6014920.632212925702333 ], [ 3783029.227954701986164, 6012853.580367775633931 ], [ 3782511.458777102641761, 6014650.824821609072387 ], [ 3781234.70441169384867, 6017213.246092568151653 ], [ 3779768.913745779544115, 6019559.932232212275267 ], [ 3776112.770517634693533, 6021164.903081224299967 ], [ 3774074.752143368124962, 6021245.684098690748215 ], [ 3771869.300013697240502, 6024156.122327806428075 ], [ 3768564.19647551747039, 6023353.374325577169657 ], [ 3767523.414402691181749, 6025521.87589046638459 ], [ 3768292.354436634108424, 6027997.564554531127214 ], [ 3765248.221741194836795, 6029743.695151202380657 ], [ 3765109.748743453063071, 6033883.330772624351084 ], [ 3764280.34460795391351, 6035958.266693005338311 ], [ 3762765.899476274382323, 6035870.94380324985832 ], [ 3761018.105369170662016, 6038094.656807157211006 ], [ 3761093.247822588775307, 6040320.691884091123939 ], [ 3762430.087666644249111, 6041709.750470524653792 ], [ 3759998.580624234862626, 6041772.375258774496615 ], [ 3758940.825581229291856, 6040803.775463434867561 ], [ 3756470.40269632358104, 6039755.681054452434182 ], [ 3752804.307394893839955, 6036521.521206941455603 ], [ 3753055.784843786619604, 6033807.058794326148927 ], [ 3750938.731402240227908, 6031769.543922696262598 ], [ 3748631.074460600502789, 6031340.235107620246708 ], [ 3747426.784799127839506, 6032993.680331636220217 ], [ 3745857.339145273901522, 6033919.736923540011048 ], [ 3746136.529551450163126, 6036258.490557551383972 ], [ 3744661.555840937420726, 6033552.429880760610104 ], [ 3743667.625503038056195, 6033196.178480857983232 ], [ 3743108.997815452050418, 6034176.993536909110844 ], [ 3742253.470986216794699, 6033121.062001348473132 ], [ 3741280.492322136182338, 6036201.49111932143569 ], [ 3740791.782335953786969, 6037791.310700886882842 ], [ 3737455.092099911998957, 6035799.123348211869597 ], [ 3738703.303173653781414, 6035157.144828265532851 ], [ 3734081.673467176035047, 6032493.485683113336563 ], [ 3733330.043289718218148, 6031343.380345672369003 ], [ 3731980.673528867773712, 6031982.251434212550521 ], [ 3730419.51835469994694, 6032812.78634455986321 ], [ 3729773.173329246696085, 6031567.692819925956428 ], [ 3731117.212575062178075, 6031028.951015931554139 ], [ 3730773.995509297586977, 6029798.554891315288842 ], [ 3729621.729109869338572, 6028527.254869546741247 ], [ 3727928.02172327041626, 6027937.018797882832587 ], [ 3725116.533024829346687, 6027393.482239477336407 ], [ 3726424.75954246846959, 6025535.835066474042833 ], [ 3725487.495060288812965, 6023971.663806582801044 ], [ 3722100.292317955289036, 6022692.994664092548192 ], [ 3722516.560699354391545, 6020384.161762323230505 ], [ 3725199.394957223441452, 6019501.900499909184873 ], [ 3726778.776370322797447, 6018363.643743954598904 ], [ 3726119.202826383989304, 6017317.633085707202554 ], [ 3723039.401978814974427, 6017977.9983922354877 ], [ 3721364.47513691522181, 6019011.613713788799942 ], [ 3719275.529880725312978, 6020228.299805155955255 ], [ 3720119.265075228177011, 6021686.388792828656733 ], [ 3719212.75581233901903, 6023667.572833340615034 ], [ 3719617.254350285045803, 6025811.75805654656142 ], [ 3720836.031494583468884, 6025769.135930905118585 ], [ 3721523.358021774329245, 6028330.727622084319592 ], [ 3720569.689016116317362, 6029194.597934174351394 ], [ 3722196.840759535320103, 6029071.065916651859879 ], [ 3723244.894790519960225, 6030436.108291476964951 ], [ 3722959.268658598419279, 6032140.026833917014301 ], [ 3724425.143682877533138, 6033221.913167136721313 ], [ 3726738.112371258437634, 6033538.016386386938393 ], [ 3728798.290063797496259, 6032832.442932987585664 ], [ 3730848.264600807335228, 6034349.711179758422077 ], [ 3732937.980043532326818, 6035061.708327089436352 ], [ 3734258.5030502891168, 6036946.775469387881458 ], [ 3735911.757200521882623, 6038243.214857249520719 ], [ 3737961.108212190214545, 6037743.894668837077916 ], [ 3740823.658936268649995, 6039105.251171295531094 ], [ 3742193.80096535384655, 6038067.363417882472277 ], [ 3745321.737821755930781, 6038234.333982950076461 ], [ 3746485.969277562573552, 6037287.288985782302916 ], [ 3749324.717875947710127, 6039056.920759504660964 ], [ 3751465.456641239579767, 6038770.484320494346321 ], [ 3754458.529945777263492, 6039542.118886507116258 ], [ 3755623.951427319552749, 6040414.86443118005991 ], [ 3757959.185003742109984, 6042060.267913053743541 ], [ 3755007.152474541217089, 6042398.785698775202036 ], [ 3751399.981268565170467, 6041794.917994506657124 ], [ 3746666.56720372941345, 6041435.590234220027924 ], [ 3739502.185492270626128, 6041154.697005128487945 ], [ 3734843.127078706398606, 6041315.946868452243507 ], [ 3729635.086897281929851, 6042361.719952314160764 ], [ 3728138.320885144174099, 6044000.263294978998601 ], [ 3728767.940376318059862, 6045543.378206262364984 ], [ 3726581.882752718869597, 6044829.57412367593497 ], [ 3725769.796274413820356, 6042874.389445617794991 ], [ 3725186.847372009884566, 6038307.203973875381052 ], [ 3723998.714390577748418, 6035725.575150183402002 ], [ 3720491.004156142938882, 6032929.566381332464516 ], [ 3719875.989780278410763, 6030980.455938110128045 ], [ 3717170.997069503180683, 6028223.445105090737343 ], [ 3717430.007851812522858, 6024898.193870973773301 ], [ 3714748.144796086009592, 6021533.271084840409458 ], [ 3712364.798926087561995, 6020409.937135866843164 ], [ 3708534.236759637016803, 6017601.099382697604597 ], [ 3705679.470627882052213, 6013317.076930527575314 ], [ 3705582.560963278170675, 6013211.350209499709308 ], [ 3704367.235640893224627, 6010824.51767501886934 ], [ 3699848.767275876831263, 6009510.317855437286198 ], [ 3693690.658139432780445, 6008435.702488843351603 ], [ 3690407.059879276435822, 6006675.127723609097302 ], [ 3688408.812814397271723, 6005780.994439611211419 ], [ 3684040.589266420342028, 6005604.719556323252618 ], [ 3680156.496599656529725, 6006060.482165691442788 ], [ 3675085.353797282092273, 6005662.29970726557076 ], [ 3671932.824757600668818, 6002904.291240676306188 ], [ 3671933.047460834030062, 6000161.712918213568628 ], [ 3671827.644010708667338, 5997515.263955920934677 ], [ 3669059.909657659940422, 5995176.238214493729174 ], [ 3669035.928434316068888, 5993038.967825968749821 ], [ 3666751.682976705022156, 5991327.871624678373337 ], [ 3664946.507073573302478, 5990448.939264009706676 ], [ 3662227.984403604175895, 5986483.000469360500574 ], [ 3662651.523339381907135, 5983134.362195494584739 ], [ 3662871.2521534524858, 5979776.177587747573853 ], [ 3661494.22465406358242, 5978197.475895876996219 ], [ 3658925.789222318213433, 5978517.341157169081271 ], [ 3656830.826976154465228, 5979976.812364197336137 ], [ 3658508.176196332555264, 5981767.639744437299669 ], [ 3656170.109076574910432, 5981382.603831958957016 ], [ 3654624.93631299212575, 5981738.902033882215619 ], [ 3653434.612719595897943, 5983738.503827882930636 ], [ 3651074.579556458164006, 5980908.381289593875408 ], [ 3648837.783996753860265, 5980530.324519597925246 ], [ 3647448.808551948517561, 5982423.488371020182967 ], [ 3647782.667416546493769, 5984778.280985984019935 ], [ 3648645.566185598261654, 5986537.733906109817326 ], [ 3645579.410863374825567, 5986644.305157721973956 ], [ 3643470.403510181698948, 5988818.80433077737689 ], [ 3640504.846709623932838, 5989033.430624036118388 ], [ 3633890.674955031834543, 5988430.668406412936747 ], [ 3628061.871624656487256, 5985211.493438999168575 ], [ 3625061.642700591590255, 5982888.460956374183297 ], [ 3623538.758175417315215, 5982542.018510132096708 ], [ 3623360.939891994465142, 5985389.746848962269723 ], [ 3620284.747867436148226, 5985920.020641611889005 ], [ 3619154.936340152751654, 5986196.347556664608419 ], [ 3615305.386085841804743, 5989152.597783781588078 ], [ 3614702.638933064416051, 5992900.839564746245742 ], [ 3617578.598124216776341, 5996022.030784356407821 ], [ 3619585.181020395830274, 5997190.966657686978579 ], [ 3622560.127815623302013, 5996354.516834427602589 ], [ 3626140.682375621516258, 5999497.935413821600378 ], [ 3630042.858900194987655, 6005491.831297133117914 ], [ 3633234.458409746643156, 6007610.801031122915447 ], [ 3637437.938445141073316, 6009761.294675259850919 ], [ 3636398.014385366346687, 6017425.26873295288533 ], [ 3635831.303666833788157, 6022868.104215316474438 ], [ 3635131.936384604312479, 6025978.740311385132372 ], [ 3637105.992037691175938, 6027652.735205392353237 ], [ 3639256.170031713321805, 6030139.634154226630926 ], [ 3638818.416685725096613, 6031235.995821256190538 ], [ 3635574.331812719348818, 6031542.128796365112066 ], [ 3634136.185552867129445, 6028876.806608921848238 ], [ 3632323.031344205606729, 6028622.215504952706397 ], [ 3625827.451684121508151, 6029448.043566320091486 ], [ 3622437.933770126197487, 6027640.811726442538202 ], [ 3620573.184138350188732, 6025471.583947250619531 ], [ 3616129.822868337389082, 6021114.568310817703605 ], [ 3612989.503001395147294, 6021137.231254814192653 ], [ 3609121.560775980819017, 6021952.949824293144047 ], [ 3606034.203942938242108, 6024102.523656030185521 ], [ 3603944.780373683199286, 6026981.947867111302912 ], [ 3598431.819304782897234, 6029382.075281332246959 ], [ 3595165.199908215552568, 6030926.24999563023448 ], [ 3590865.173918840009719, 6033761.328385912813246 ], [ 3587920.620899152942002, 6034610.322936806827784 ], [ 3584895.028692354913801, 6034452.377030610106885 ], [ 3581692.645633881911635, 6032882.931262120604515 ], [ 3579788.619642806705087, 6032043.205590416677296 ], [ 3577820.630791730247438, 6028985.207703548483551 ], [ 3577572.168072968255728, 6025753.117762702517211 ], [ 3576104.1117475903593, 6022801.308350095525384 ], [ 3574813.553303983993828, 6021265.291233776137233 ], [ 3574465.663523115217686, 6023985.877401391044259 ], [ 3574331.777493017725646, 6026002.105266426689923 ], [ 3575895.904716937802732, 6029255.381189533509314 ], [ 3577293.306442660279572, 6030286.946996293962002 ], [ 3576949.579184582922608, 6032699.874535360373557 ], [ 3576890.240706387907267, 6036223.897661622613668 ], [ 3577674.992212505079806, 6037545.79078642744571 ], [ 3574813.283204010222107, 6039812.267928255721927 ], [ 3571077.493545711971819, 6040154.867030277848244 ], [ 3564245.037148574367166, 6038544.508196053095162 ], [ 3558028.478378171101213, 6035743.866404894739389 ], [ 3555090.671247178222984, 6036714.062961063347757 ], [ 3553966.897324731107801, 6037908.24919056892395 ], [ 3559584.787068200763315, 6040191.345246435143054 ], [ 3563388.093420676421374, 6042153.198028391227126 ], [ 3566064.425076221115887, 6045206.30196550115943 ], [ 3566315.203580655623227, 6048725.041971346363425 ], [ 3567385.31338122440502, 6057967.624278583563864 ], [ 3567647.609812436625361, 6060575.743284944444895 ], [ 3566405.381215043365955, 6063160.065788928419352 ], [ 3564362.767563796136528, 6065731.74424010142684 ], [ 3562891.432223541196436, 6070609.209251622669399 ], [ 3560955.523667989298701, 6073079.659824595786631 ], [ 3558829.530779158230871, 6074948.215923575684428 ], [ 3557673.998887941241264, 6071438.592247040942311 ], [ 3556590.489519403316081, 6070026.249422416090965 ], [ 3553076.67631616583094, 6070782.82060684543103 ], [ 3552046.776633912697434, 6073267.578044282272458 ], [ 3550526.952917625661939, 6074947.287820353172719 ], [ 3546624.263458918314427, 6075104.819875131361187 ], [ 3541807.937914241570979, 6076753.792426519095898 ], [ 3539092.153807563241571, 6078624.422683315351605 ], [ 3537474.945653808303177, 6080803.904797994531691 ], [ 3539555.858869717922062, 6082715.047184738330543 ], [ 3538353.496481058653444, 6083202.732383102178574 ], [ 3535878.380624684970826, 6080591.541057301685214 ], [ 3531601.35056213894859, 6077967.245022288523614 ], [ 3530312.121341595426202, 6076462.201856628060341 ], [ 3529126.559532237239182, 6074259.098911981098354 ], [ 3528525.755083577241749, 6074355.062290877103806 ], [ 3528017.54898785520345, 6075649.177612939849496 ], [ 3527707.112792796455324, 6077343.170737358741462 ], [ 3527302.429359105415642, 6078138.553843031637371 ], [ 3526695.078588108066469, 6079431.124257008545101 ], [ 3524400.84816991025582, 6078720.174671530723572 ], [ 3523513.470992925576866, 6076421.549449931830168 ], [ 3521822.026053374167532, 6074716.797060671262443 ], [ 3520019.923130665905774, 6075107.589370651170611 ], [ 3516518.126046721357852, 6075492.499923293478787 ], [ 3514906.866170011926442, 6078878.067467384971678 ], [ 3515402.050149623304605, 6080175.702469152398407 ], [ 3511302.014361139852554, 6081857.656631960533559 ], [ 3506807.12502259016037, 6082645.586997093632817 ], [ 3503512.498904316686094, 6082442.527247777208686 ], [ 3500516.901155684608966, 6084134.438620503991842 ], [ 3498122.152735123876482, 6085727.889748476445675 ], [ 3493632.789508264046162, 6086030.63562573492527 ], [ 3490538.361381174996495, 6085239.642211005091667 ], [ 3488944.994919380173087, 6086537.404741224832833 ], [ 3486147.556667842436582, 6085151.436336082406342 ], [ 3483951.904921564739197, 6085059.155766732059419 ], [ 3481957.734690066426992, 6085464.957368570379913 ], [ 3479468.249222930520773, 6086570.648820630274713 ], [ 3476678.167309266049415, 6087005.580536222085357 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 2 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 3 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 4 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 5 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 6 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 7 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3542035.396427161525935, 5265212.925454019568861 ], [ 3544585.692909493111074, 5259867.90865589492023 ], [ 3547289.899165036156774, 5258278.944561273790896 ], [ 3550919.520700506865978, 5253655.323959340341389 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 8 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 9 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 10 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } }
+]
+}
diff --git a/MessagesMap/geo/gre_ger_gauss.json b/MessagesMap/geo/gre_ger_gauss.json
new file mode 100644
index 000000000..43d45c448
--- /dev/null
+++ b/MessagesMap/geo/gre_ger_gauss.json
@@ -0,0 +1,3 @@
+{ "coordinates": [ [ 3476677.303190048318356, 6087007.257444866932929 ], [ 3476616.822004675399512, 6084966.811360620893538 ], [ 3473668.040791889186949, 6084136.65482482034713 ], [ 3474958.085608421824872, 6082784.623404480516911 ], [ 3474686.09936313983053, 6078799.581815544515848 ], [ 3477666.907604074571282, 6075342.610363858751953 ], [ 3478458.137393671087921, 6073492.401157525368035 ], [ 3479258.72941018268466, 6073538.567376623861492 ], [ 3481041.117867288179696, 6069136.443714180961251 ], [ 3481084.92734553059563, 6067637.231298245489597 ], [ 3480178.321920018643141, 6066491.516745407134295 ], [ 3480225.367629409302026, 6065791.416873103938997 ], [ 3482030.445277167484164, 6066083.865732400678098 ], [ 3483378.506749597843736, 6064778.721244581975043 ], [ 3483974.459224163554609, 6063226.091161146759987 ], [ 3483968.806775116827339, 6061625.055352501571178 ], [ 3485367.320772295352072, 6059818.473003786057234 ], [ 3487271.696009595412761, 6059011.685488608665764 ], [ 3488722.168830782175064, 6057054.701115871779621 ], [ 3488919.456368356477469, 6055601.327695346437395 ], [ 3489869.808718715794384, 6053870.073632965795696 ], [ 3489088.997096770443022, 6052994.578761538490653 ], [ 3487630.804641078226268, 6052647.335497889667749 ], [ 3487955.332369572483003, 6051844.152047887444496 ], [ 3488607.613161220215261, 6051391.110381573438644 ], [ 3489238.623185290955007, 6052517.903995002619922 ], [ 3490645.543693324085325, 6052414.511348939500749 ], [ 3491600.308246622327715, 6052362.507246378809214 ], [ 3492179.24110572738573, 6052938.084833488799632 ], [ 3492278.427850613836199, 6052160.730622250586748 ], [ 3492552.921309833880514, 6050981.703681353479624 ], [ 3491820.470023844856769, 6049026.361397593282163 ], [ 3491916.337048817425966, 6046365.880419854074717 ], [ 3491837.571855330374092, 6044533.019575617276132 ], [ 3490424.542005356401205, 6042903.018327214755118 ], [ 3488986.826742523815483, 6041901.200352019630373 ], [ 3487902.959149586502463, 6041577.248776316642761 ], [ 3487447.089427972212434, 6040673.673030675388873 ], [ 3487848.103307355660945, 6039893.309557938948274 ], [ 3488376.412795174401253, 6039565.102359182201326 ], [ 3487212.267653345130384, 6037782.777916644699872 ], [ 3488747.531551353633404, 6036772.5651326905936 ], [ 3491344.281854037661105, 6036590.818132951855659 ], [ 3493260.651203465182334, 6036587.600898121483624 ], [ 3494648.877097764518112, 6037768.053973471745849 ], [ 3495532.680629992857575, 6039301.104760761372745 ], [ 3496718.211747415363789, 6040858.722266473807395 ], [ 3497097.05774338170886, 6042391.427392679266632 ], [ 3498835.000953202601522, 6043571.445409429259598 ], [ 3499288.190216931048781, 6043621.594292171299458 ], [ 3499842.018962797708809, 6041762.324521061964333 ], [ 3500774.142192447092384, 6040556.009328267537057 ], [ 3501001.161251977551728, 6039324.209037479013205 ], [ 3500547.610257353633642, 6038896.676230365410447 ], [ 3500295.591036630328745, 6038796.068267208524048 ], [ 3500799.714126588311046, 6038469.222843501716852 ], [ 3500446.927848208229989, 6037664.372356803156435 ], [ 3498757.581189809367061, 6036482.201649500988424 ], [ 3497320.008458916097879, 6036029.930034782737494 ], [ 3495931.345742169767618, 6034168.640607496723533 ], [ 3494137.630558690987527, 6032231.968735426664352 ], [ 3492773.114790372550488, 6031226.519073423929513 ], [ 3490676.500464137643576, 6030600.56354686897248 ], [ 3489162.783735713455826, 6031107.682208864949644 ], [ 3487648.182124414946884, 6031161.885515580885112 ], [ 3484312.695420804899186, 6030265.217610725201666 ], [ 3482341.424828741233796, 6029818.884594698436558 ], [ 3480674.634771616198123, 6029800.410619959235191 ], [ 3478908.206775232683867, 6030085.344181993044913 ], [ 3477996.738320228643715, 6029585.711916355416179 ], [ 3477080.912461290601641, 6028254.550017295405269 ], [ 3477379.575982786249369, 6027345.612320648506284 ], [ 3478539.832447910681367, 6026911.455994581803679 ], [ 3479904.242047449573874, 6026880.066496703773737 ], [ 3480101.803682956378907, 6025820.182651890441775 ], [ 3479643.165972984395921, 6024989.932254783809185 ], [ 3478554.028805126436055, 6024540.864729285240173 ], [ 3477412.493434378411621, 6023764.300371735356748 ], [ 3476777.402341734152287, 6023187.159839357249439 ], [ 3475768.219432229176164, 6023646.534396583214402 ], [ 3475060.184485014993697, 6023650.325195582583547 ], [ 3474148.007917058188468, 6023327.368328050710261 ], [ 3474495.186071339063346, 6022088.903486514464021 ], [ 3474441.927685622125864, 6021609.641836904920638 ], [ 3474141.616244169417769, 6022191.833146094344556 ], [ 3473910.235273453872651, 6021536.905754138715565 ], [ 3474182.707033030688763, 6020500.344429734162986 ], [ 3474708.681990761309862, 6019512.672322079539299 ], [ 3475845.500116827897727, 6019102.501202166080475 ], [ 3476699.710459274705499, 6017835.186774375848472 ], [ 3477935.615038743708283, 6016843.789863794110715 ], [ 3479225.334938751067966, 6016433.502446329221129 ], [ 3480390.684009729884565, 6016504.200149700976908 ], [ 3480876.818839738145471, 6017689.628717071376741 ], [ 3482142.117695638444275, 6017507.710238441824913 ], [ 3482953.970881132874638, 6017934.085652164183557 ], [ 3483408.243424926418811, 6017528.238434339873493 ], [ 3484421.493565948214382, 6017651.013177098706365 ], [ 3484876.836277821101248, 6017523.18357397057116 ], [ 3485076.370753273367882, 6016587.713416242040694 ], [ 3486089.781757748220116, 6016710.881793124601245 ], [ 3487357.143783047329634, 6017111.490024683065712 ], [ 3488675.669734642375261, 6017815.428914855234325 ], [ 3489660.672165025025606, 6016726.760208196938038 ], [ 3489961.711308636702597, 6015412.022719726897776 ], [ 3490011.445208260323852, 6014982.233129035681486 ], [ 3491785.766385649330914, 6015484.237369721755385 ], [ 3493054.258189263753593, 6016745.67030805721879 ], [ 3494423.38638886064291, 6018057.503272474743426 ], [ 3495715.754178680013865, 6019318.934935205616057 ], [ 3496501.127805914729834, 6020303.026617791503668 ], [ 3497184.568025426007807, 6020630.765349281020463 ], [ 3497209.735056382138282, 6020403.534698413684964 ], [ 3496626.938052949495614, 6019318.181960014626384 ], [ 3496271.064359024167061, 6017424.111700810492039 ], [ 3495383.716512867249548, 6016313.201293854042888 ], [ 3494445.060474902391434, 6015025.325029075145721 ], [ 3493557.23128197202459, 6014217.566314378753304 ], [ 3492188.937240012455732, 6014219.676489369943738 ], [ 3490465.796297576278448, 6014172.351298003457487 ], [ 3489705.399327688384801, 6014072.859690828248858 ], [ 3489424.519602987449616, 6013137.982663879171014 ], [ 3489396.270064483396709, 6011873.540976386517286 ], [ 3489699.644226006697863, 6011493.435010779649019 ], [ 3489543.397864985279739, 6009672.140033581294119 ], [ 3488398.721078993752599, 6008358.791234686039388 ], [ 3487887.65149036468938, 6006967.687228480353951 ], [ 3487783.394649030640721, 6005929.708095429465175 ], [ 3487374.340646149590611, 6004866.988068813458085 ], [ 3488133.712167686782777, 6003952.94100640527904 ], [ 3488535.208597412332892, 6002000.580343826673925 ], [ 3489344.124714308883995, 6000223.984489561058581 ], [ 3490436.11603883607313, 5999790.509757761843503 ], [ 3490713.178875850513577, 5998521.796330644749105 ], [ 3492062.576726691331714, 5999609.919839192181826 ], [ 3493970.034583770204335, 6000393.157158768735826 ], [ 3495316.664923462551087, 6000036.604230587370694 ], [ 3496204.045478584710509, 5997321.685142442584038 ], [ 3496635.361620070878416, 5995900.251514022238553 ], [ 3497906.500985828693956, 5994020.95537724904716 ], [ 3498822.481232897378504, 5993157.263414944522083 ], [ 3497244.117597866337746, 5992853.166500536724925 ], [ 3497294.824806632939726, 5992497.560236354358494 ], [ 3499076.87488862266764, 5992369.874042908661067 ], [ 3498898.303493827115744, 5990820.254816381260753 ], [ 3497751.613563754130155, 5989448.404544831253588 ], [ 3496707.123435814864933, 5989423.606808953918517 ], [ 3494235.068423153832555, 5988638.041764864698052 ], [ 3492504.350645236670971, 5989809.698533716611564 ], [ 3490874.977210045792162, 5990270.040501957759261 ], [ 3489574.504850093275309, 5989612.027205031365156 ], [ 3489215.278043416794389, 5988494.443721514195204 ], [ 3490155.682392837014049, 5987373.687156686559319 ], [ 3492368.340063839685172, 5984520.798736343160272 ], [ 3493489.048904071096331, 5983526.719524797052145 ], [ 3493459.034774763509631, 5980293.705846439115703 ], [ 3494758.039027869235724, 5977795.738842130638659 ], [ 3496033.422306774184108, 5975934.107598604634404 ], [ 3496748.48243021639064, 5975474.720108155161142 ], [ 3497258.913039631675929, 5974429.09876615088433 ], [ 3498741.000572288874537, 5973510.456161595880985 ], [ 3501450.354571287985891, 5974326.542106374166906 ], [ 3502728.207479953300208, 5974403.614853972569108 ], [ 3504722.662174994125962, 5973461.69496139511466 ], [ 3506410.543320814613253, 5972928.118898688815534 ], [ 3508481.40759842749685, 5972905.927353111095726 ], [ 3510858.726791886147112, 5973038.396658951416612 ], [ 3514437.667801415082067, 5973099.135321523062885 ], [ 3517689.619749707169831, 5971732.852935117669404 ], [ 3520071.79460312332958, 5970823.944320211187005 ], [ 3522100.38359285145998, 5969148.617584634572268 ], [ 3524390.52389700524509, 5966683.225926808081567 ], [ 3525932.338460141792893, 5965644.248623124323785 ], [ 3526715.26692469092086, 5963067.739376971498132 ], [ 3527108.010876456275582, 5961612.809277003630996 ], [ 3528252.460967866238207, 5958831.762410629540682 ], [ 3528673.873235184699297, 5957017.511846443638206 ], [ 3531431.443511363118887, 5955140.881238510832191 ], [ 3533156.49808227783069, 5954358.971981920301914 ], [ 3534888.61565616633743, 5952706.683271947316825 ], [ 3535649.97364470269531, 5950508.755971888080239 ], [ 3536279.568306562490761, 5948821.704728314653039 ], [ 3535742.444965830538422, 5948484.26254793908447 ], [ 3535600.479971596039832, 5946867.530726219527423 ], [ 3535406.01020170468837, 5945378.146233955398202 ], [ 3536366.456744550261647, 5944230.741993399336934 ], [ 3537639.202111887279898, 5942700.664343249052763 ], [ 3540616.254224290139973, 5940645.490606938488781 ], [ 3543698.68793532345444, 5938617.915230557322502 ], [ 3545662.204447855707258, 5937994.112867050804198 ], [ 3545543.090832621790469, 5936990.590394141152501 ], [ 3542754.872309128753841, 5937607.029409196227789 ], [ 3540966.085153403226286, 5938901.687121853232384 ], [ 3539080.200113159604371, 5939605.017451407387853 ], [ 3537185.967812778893858, 5941438.940311964601278 ], [ 3536124.192986026406288, 5942278.004538708366454 ], [ 3535003.894007174298167, 5944117.738086530938745 ], [ 3533781.426410960033536, 5945981.924722048453987 ], [ 3532783.738886163104326, 5948924.170413659885526 ], [ 3532130.958529762923717, 5950432.066735602915287 ], [ 3530733.010538680944592, 5952062.726530008949339 ], [ 3528176.512794377282262, 5954403.192552183754742 ], [ 3526908.81742023024708, 5956136.757830238901079 ], [ 3525613.749208349268883, 5958356.028938844799995 ], [ 3523933.308036295231432, 5960981.771894171833992 ], [ 3522225.354591047856957, 5964398.712193109095097 ], [ 3520982.854110349435359, 5967305.124535276554525 ], [ 3519287.987911266740412, 5968625.561561356298625 ], [ 3517926.941844350192696, 5969870.935102732852101 ], [ 3516007.293956977315247, 5970144.692940020933747 ], [ 3511886.873376769479364, 5970872.42351512145251 ], [ 3509534.005070523358881, 5970764.942434266209602 ], [ 3505442.229162491392344, 5970222.456928632222116 ], [ 3502450.280958690214902, 5968407.593091765418649 ], [ 3501452.385463931132108, 5967998.666074465960264 ], [ 3502425.703641577623785, 5966492.391245706938207 ], [ 3502938.765823274850845, 5964857.773516360670328 ], [ 3502503.397950951941311, 5964857.519704677164555 ], [ 3501606.420056908857077, 5966645.280344867147505 ], [ 3500761.467388154473156, 5967513.351773649454117 ], [ 3498611.505742757115513, 5967666.702764188870788 ], [ 3496384.280060479417443, 5967003.944920568726957 ], [ 3493516.553727657999843, 5966470.706748393364251 ], [ 3490956.549612362403423, 5966526.039071647450328 ], [ 3488141.374203115701675, 5966889.892934074625373 ], [ 3485429.576104983687401, 5967433.852817035280168 ], [ 3483361.405270639341325, 5968870.570711989887059 ], [ 3481144.941529768053442, 5971278.058991043828428 ], [ 3480585.90487444261089, 5972147.796602218411863 ], [ 3479944.902084841392934, 5971742.319209679029882 ], [ 3479259.78169163595885, 5972944.272228319197893 ], [ 3479671.720897752325982, 5973605.57880505733192 ], [ 3477523.777500263880938, 5973462.420466737821698 ], [ 3475038.041070946492255, 5972327.254984011873603 ], [ 3473597.222281103953719, 5970753.292319818399847 ], [ 3472227.788292527664453, 5968438.451589711010456 ], [ 3471273.561512243002653, 5967244.088373540900648 ], [ 3470724.346342022996396, 5965382.846015744842589 ], [ 3470026.726949790026993, 5964416.332110068760812 ], [ 3469884.352837080601603, 5962193.559136566706002 ], [ 3469518.946333679836243, 5961173.185775845311582 ], [ 3469148.664925666991621, 5959436.442868684418499 ], [ 3468523.683629658073187, 5958007.860167969949543 ], [ 3467899.551634310279042, 5956758.086275375448167 ], [ 3467012.5337621322833, 5954664.949093569070101 ], [ 3466484.583247231319547, 5952619.694428771734238 ], [ 3465886.56201363587752, 5951599.168357658199966 ], [ 3465966.649820008780807, 5948471.469624611549079 ], [ 3466514.704319792799652, 5946031.051722260192037 ], [ 3467654.699947436805815, 5943534.009449102915823 ], [ 3468440.193999410606921, 5941731.634774578735232 ], [ 3468999.306686798110604, 5940649.36988194193691 ], [ 3469761.206471896730363, 5939026.133002907969058 ], [ 3470135.115965273231268, 5937070.796957628801465 ], [ 3471562.621569440700114, 5934542.515133575536311 ], [ 3471888.831830199342221, 5933048.822247330099344 ], [ 3471181.839416280388832, 5931277.813002342358232 ], [ 3470247.435915781650692, 5930357.109370796009898 ], [ 3468543.862083675805479, 5930239.441170612350106 ], [ 3467685.270660751499236, 5929189.8042405359447 ], [ 3467081.363217087462544, 5927700.523775080218911 ], [ 3466256.80613265838474, 5927912.351402817294002 ], [ 3467384.130276493728161, 5930427.469608259387314 ], [ 3469147.159465497825295, 5931753.834628779441118 ], [ 3470830.574399704113603, 5932875.168024580925703 ], [ 3470323.601052484475076, 5934267.258341459557414 ], [ 3469010.808993947692215, 5934558.572257807478309 ], [ 3467031.455326407216489, 5935343.390442443080246 ], [ 3464844.698914587497711, 5935873.376480970531702 ], [ 3463710.873431571293622, 5935881.957258437760174 ], [ 3462404.245113571174443, 5936843.328530467115343 ], [ 3459169.611636072862893, 5938206.64283024892211 ], [ 3458004.053356953430921, 5940374.942820684053004 ], [ 3456810.54819371085614, 5942183.372621999122202 ], [ 3453724.933793261647224, 5942469.428621008060873 ], [ 3451402.34242440899834, 5941850.907283470965922 ], [ 3449968.027718199416995, 5940093.78015689458698 ], [ 3449506.415085554122925, 5937863.313724148087204 ], [ 3449218.692173304501921, 5935064.251987352967262 ], [ 3449019.958390897139907, 5933368.87287231720984 ], [ 3449007.466803256887943, 5932211.259051729924977 ], [ 3450732.393905590288341, 5931909.915176779031754 ], [ 3452023.500862216111273, 5932051.023267468437552 ], [ 3453785.02066671429202, 5932831.068790009245276 ], [ 3454702.209136665798724, 5931664.340971240773797 ], [ 3454704.339597740676254, 5929193.306496763601899 ], [ 3454547.126716680824757, 5926258.815160104073584 ], [ 3454297.831244829576463, 5924509.052633958868682 ], [ 3453436.544310845900327, 5923615.337047577835619 ], [ 3453370.927973054349422, 5922198.0477643487975 ], [ 3452638.035677419509739, 5921276.978695284575224 ], [ 3451979.810506428591907, 5920097.128058318980038 ], [ 3450572.618216125294566, 5919053.819553339853883 ], [ 3448938.665912148077041, 5918632.462204776704311 ], [ 3447391.162750523537397, 5919036.412611030973494 ], [ 3446704.213739825412631, 5920050.267837939783931 ], [ 3445436.657299753278494, 5922256.93124105874449 ], [ 3444445.376104539260268, 5923686.429506257176399 ], [ 3443270.505878716241568, 5924834.438234180212021 ], [ 3442367.409962251316756, 5924922.653455334715545 ], [ 3441045.313221304677427, 5924552.333469422534108 ], [ 3440367.214761393144727, 5924045.317873069085181 ], [ 3440081.085191955789924, 5923894.265626089647412 ], [ 3438960.289806449785829, 5925145.727907898835838 ], [ 3437775.150844753719866, 5927351.171701144427061 ], [ 3437667.781184329651296, 5929000.879488595761359 ], [ 3437609.03816049778834, 5930417.701596533879638 ], [ 3437720.372066305018961, 5931034.013309716247022 ], [ 3439234.401194016449153, 5930396.536052782088518 ], [ 3440760.11646825587377, 5930660.331835241988301 ], [ 3442625.690823226235807, 5931306.530912490561604 ], [ 3443557.360421299003065, 5931552.67557420488447 ], [ 3444520.762324354611337, 5932313.264070412144065 ], [ 3444767.297731639351696, 5933545.304144686087966 ], [ 3445171.049471332225949, 5935006.658037713728845 ], [ 3444564.248057119548321, 5936016.577023228630424 ], [ 3443783.491945372894406, 5937542.520102150738239 ], [ 3443183.511062816251069, 5939065.935103427618742 ], [ 3444373.255398991052061, 5939488.537014181725681 ], [ 3444038.687686034478247, 5941675.83074155729264 ], [ 3441999.091217389795929, 5941186.859105006791651 ], [ 3441682.267003884073347, 5942628.821024079807103 ], [ 3440547.964738555718213, 5944516.958514201454818 ], [ 3439518.418841506354511, 5946480.262995032593608 ], [ 3438568.430191929917783, 5946595.193164446391165 ], [ 3436757.97238511685282, 5945823.819847674109042 ], [ 3436424.658952358178794, 5947803.656272273510695 ], [ 3435794.304737102705985, 5948709.835236906073987 ], [ 3435562.271022037602961, 5950533.361839624121785 ], [ 3435627.348826813045889, 5951532.082239156588912 ], [ 3436238.614928482566029, 5953035.571394780650735 ], [ 3434683.082664306275547, 5953825.505866463296115 ], [ 3431225.680597115308046, 5954438.43411442451179 ], [ 3428042.019134792499244, 5954434.955622931011021 ], [ 3424132.954372886102647, 5954035.453433121554554 ], [ 3420662.623981730546802, 5953811.043793925084174 ], [ 3417358.084225899539888, 5952817.552741648629308 ], [ 3414515.304292720276862, 5953278.455503807403147 ], [ 3408574.040819264948368, 5951545.100782874971628 ], [ 3406190.520086363889277, 5950566.599212774075568 ], [ 3403456.761280425358564, 5950109.137784102000296 ], [ 3400031.293022985104471, 5951001.319529866799712 ], [ 3393309.005317478440702, 5951508.163937739096582 ], [ 3389864.618126108776778, 5951485.115436712279916 ], [ 3386708.577799924649298, 5950637.017777714878321 ], [ 3385159.556979889981449, 5950366.861781798303127 ], [ 3383445.997129346244037, 5949690.849111491814256 ], [ 3381870.667392538394779, 5948396.06060378625989 ], [ 3379935.811761349905282, 5947161.888310228474438 ], [ 3378858.489231504965574, 5945289.741361330263317 ], [ 3378408.761624115519226, 5945814.868023200891912 ], [ 3377590.491221052594483, 5944038.47620371170342 ], [ 3375116.210454526823014, 5941996.77489753626287 ], [ 3373575.08113806694746, 5940238.72660840395838 ], [ 3373645.036291722208261, 5939002.754042189568281 ], [ 3376925.006747884210199, 5936292.569189994595945 ], [ 3377457.266654254868627, 5934940.725709207355976 ], [ 3374967.4192228410393, 5932483.310416745953262 ], [ 3373278.96142367599532, 5933043.231897374615073 ], [ 3371733.026679804548621, 5933136.436747873201966 ], [ 3370160.365371438674629, 5936010.665202242322266 ], [ 3369519.076137204654515, 5935204.872746789827943 ], [ 3370623.14611141057685, 5932188.231711954809725 ], [ 3369114.591493148822337, 5929911.514532618224621 ], [ 3368440.948788946028799, 5926115.48908681795001 ], [ 3367815.174491509795189, 5922211.898900600150228 ], [ 3367855.358955427072942, 5919939.24583179783076 ], [ 3367481.656192598398775, 5917677.045145064592361 ], [ 3366519.759346931241453, 5916618.93251958116889 ], [ 3367844.007828892674297, 5913945.794399360194802 ], [ 3369891.462418453767896, 5913010.317344238981605 ], [ 3370114.172645153477788, 5913573.019863194786012 ], [ 3372171.915933999232948, 5913000.192899932153523 ], [ 3375694.094334222376347, 5912906.838117407634854 ], [ 3378958.63119217986241, 5912874.349174916744232 ], [ 3381492.820797096937895, 5912655.416653768159449 ], [ 3383761.873747890349478, 5912185.763681191019714 ], [ 3387057.6894920039922, 5911278.965560235083103 ], [ 3389231.434091472998261, 5911124.437441256828606 ], [ 3389169.990427058190107, 5910712.10502291098237 ], [ 3385800.536714525893331, 5910740.032295181415975 ], [ 3383269.018336617387831, 5911111.788336644880474 ], [ 3382339.612016226630658, 5909168.814603465609252 ], [ 3382303.83582130772993, 5907720.653053808026016 ], [ 3382690.641357883810997, 5906572.273836356587708 ], [ 3382015.770535920746624, 5904465.816472715698183 ], [ 3380989.873488475568593, 5902885.385575579479337 ], [ 3380601.92565342830494, 5901910.534897705540061 ], [ 3380963.030417488887906, 5899724.451104337349534 ], [ 3381006.272233997937292, 5897285.966047517023981 ], [ 3380571.120637733489275, 5896518.658477083779871 ], [ 3381950.119964316021651, 5895498.57891889102757 ], [ 3380124.136973114684224, 5895284.522914436645806 ], [ 3379353.156213115900755, 5893591.053024855442345 ], [ 3378897.736422620248049, 5892044.881480769254267 ], [ 3378243.114757189992815, 5890866.917534163221717 ], [ 3378562.644735089503229, 5889092.39410496596247 ], [ 3379631.040984740946442, 5888078.060530565679073 ], [ 3379297.529351510107517, 5885175.069798098877072 ], [ 3379711.781163732521236, 5880898.433419520966709 ], [ 3380381.403146901167929, 5876351.257420996204019 ], [ 3377849.263701925519854, 5869167.572208140976727 ], [ 3371206.723894194699824, 5859363.605619667097926 ], [ 3371527.624746496789157, 5857629.285488212481141 ], [ 3369980.544609344564378, 5854688.178933726623654 ], [ 3368376.925378764048219, 5836115.600377579219639 ], [ 3367449.391853407025337, 5834932.172175120562315 ], [ 3364635.786091762594879, 5836060.378633598797023 ], [ 3363178.295037750620395, 5836678.985137461684644 ], [ 3360259.830418622121215, 5835921.066314455121756 ], [ 3355996.562058160547167, 5837831.420854992233217 ], [ 3353407.414001809898764, 5837540.864718444645405 ], [ 3350618.66691506979987, 5837625.520739251747727 ], [ 3347601.42301795585081, 5837140.95612277276814 ], [ 3345436.599921233952045, 5835317.092675862833858 ], [ 3346230.910827414598316, 5833767.356425877660513 ], [ 3345673.96247839089483, 5831155.126211114227772 ], [ 3348989.942511128727347, 5827525.473647148348391 ], [ 3348192.509100822266191, 5827339.569121494889259 ], [ 3345941.73168804962188, 5827936.415297140367329 ], [ 3345420.68796781077981, 5826478.587266082875431 ], [ 3342795.582504959311336, 5826930.849230648949742 ], [ 3344366.017807743046433, 5823193.267107733525336 ], [ 3343657.871893892996013, 5819209.242543862201273 ], [ 3347499.253721815999597, 5816925.581227378919721 ], [ 3354561.335717626847327, 5816078.104852819815278 ], [ 3354158.508194022811949, 5814981.891949186101556 ], [ 3360410.07235207175836, 5813427.94102281704545 ], [ 3362996.824905620422214, 5816996.017746383324265 ], [ 3363939.139830404892564, 5816653.312081508338451 ], [ 3364874.159504909534007, 5812194.532633400522172 ], [ 3366096.086246723774821, 5810418.508456693962216 ], [ 3366961.268144804984331, 5809127.319069962948561 ], [ 3368172.814551057759672, 5808883.393574013374746 ], [ 3368827.476798161398619, 5803633.030413242988288 ], [ 3367622.175327560864389, 5802184.235616413876414 ], [ 3366151.062394830863923, 5798784.119034263305366 ], [ 3365519.953127616550773, 5795094.159021019004285 ], [ 3367092.672837511636317, 5792349.01920360326767 ], [ 3368069.139912141021341, 5791103.592635864391923 ], [ 3365597.090867508202791, 5790109.597399059683084 ], [ 3363098.702927227132022, 5790125.026598390191793 ], [ 3361671.551380389835685, 5788520.380895545706153 ], [ 3360531.128899966366589, 5785792.907465665601194 ], [ 3358424.072646805085242, 5784684.696112652309239 ], [ 3356556.446475771721452, 5784525.982402518391609 ], [ 3355394.674210579134524, 5783019.637303083203733 ], [ 3354493.993350301869214, 5779539.148845079354942 ], [ 3353125.28834030777216, 5778303.598316594958305 ], [ 3346633.135050836019218, 5778659.228243296965957 ], [ 3346386.405461711343378, 5775848.133750449866056 ], [ 3345958.498180619440973, 5775808.169491874985397 ], [ 3345570.669794476125389, 5775341.380574398674071 ], [ 3345915.712972332723439, 5774426.130252461880445 ], [ 3344716.62388327345252, 5773611.904277126304805 ], [ 3342034.409588743466884, 5773164.032505496405065 ], [ 3341392.093165616970509, 5771427.533043761737645 ], [ 3341604.64657867141068, 5769716.502373205497861 ], [ 3343151.784930287860334, 5769667.569369819015265 ], [ 3346612.322104823775589, 5767588.680359845981002 ], [ 3349786.27053867932409, 5764773.853767707012594 ], [ 3351001.773874350823462, 5764310.908056103624403 ], [ 3350956.643581428565085, 5761005.542051751166582 ], [ 3349780.946646358352154, 5761040.744923886843026 ], [ 3348694.386072121094912, 5760486.610711646266282 ], [ 3348454.893066844437271, 5757878.592688990756869 ], [ 3346462.724164394196123, 5755749.967545739375055 ], [ 3345580.431701772846282, 5754922.452193521894515 ], [ 3344393.333735656458884, 5754638.667289501056075 ], [ 3343615.865370575338602, 5753754.582464783452451 ], [ 3341729.641622526571155, 5755096.11836779024452 ], [ 3340852.271643145009875, 5756138.854005487635732 ], [ 3337433.614686265122145, 5754752.922583672218025 ], [ 3332228.736082796007395, 5752893.764317509718239 ], [ 3331484.686652049887925, 5753079.092910259030759 ], [ 3328537.479325717315078, 5751521.730785178951919 ], [ 3326763.096911835949868, 5749817.823775429278612 ], [ 3325255.827953243162483, 5749656.135702987201512 ], [ 3324174.002950797788799, 5750924.18424697034061 ], [ 3323135.752882071770728, 5750372.353652258403599 ], [ 3320413.791677316650748, 5752233.983169891871512 ], [ 3320203.366592936217785, 5750851.055406567640603 ], [ 3321443.058834682684392, 5749522.922141700051725 ], [ 3321288.639827483799309, 5746692.129620227962732 ], [ 3319064.428227376658469, 5747521.174326245673001 ], [ 3317318.221982288639992, 5749671.447625671513379 ], [ 3315008.851298400200903, 5749595.574773462489247 ], [ 3313754.942126256413758, 5751942.229805063456297 ], [ 3312705.989071736112237, 5752569.594331275671721 ], [ 3311498.001884695608169, 5751812.666121704503894 ], [ 3309891.581034890376031, 5751873.337724787183106 ], [ 3307358.448377598077059, 5751542.130840381607413 ], [ 3305888.227406042162329, 5753738.157947232015431 ], [ 3306925.84768676571548, 5754232.736749564297497 ], [ 3305271.256137723103166, 5755793.628545100800693 ], [ 3304612.516627378296107, 5755391.671358566731215 ], [ 3304316.483997973613441, 5756044.661156723275781 ], [ 3300518.059394588228315, 5754858.14023379702121 ], [ 3303523.705921316985041, 5752225.898682885803282 ], [ 3305131.703610144555569, 5750825.716953269205987 ], [ 3304725.069228686392307, 5748647.424826041795313 ], [ 3300695.251087656710297, 5749876.3569799028337 ], [ 3298051.387151405680925, 5752175.954285630956292 ], [ 3296791.089118544477969, 5750193.582437377423048 ], [ 3294787.194813664536923, 5749739.948938356712461 ], [ 3292318.856472048442811, 5748449.63183955848217 ], [ 3290791.532442485913634, 5749155.562595460563898 ], [ 3289755.415782129857689, 5747485.386199300177395 ], [ 3289920.600297310389578, 5746300.110409592278302 ], [ 3291301.480364295188338, 5744635.263140850700438 ], [ 3291346.548505856189877, 5743132.823075205087662 ], [ 3292459.85460583679378, 5742765.128410023637116 ], [ 3292442.820313614327461, 5741050.270462101325393 ], [ 3289569.277748117689043, 5739185.255158288404346 ], [ 3289938.450207580812275, 5737721.263886852189898 ], [ 3292831.856771476566792, 5737440.418076044879854 ], [ 3295447.548237965907902, 5735616.209272241219878 ], [ 3294546.444769632536918, 5734632.946251344867051 ], [ 3294769.298018490895629, 5733496.348698431625962 ], [ 3294763.373022275976837, 5730703.567491865716875 ], [ 3300766.162442500703037, 5728582.398163359612226 ], [ 3298604.938741892576218, 5723021.899275249801576 ], [ 3301252.56455855909735, 5720387.896259279921651 ], [ 3303898.60222477838397, 5716246.142775188200176 ], [ 3306407.695644464343786, 5712647.141253584064543 ], [ 3307041.350388780236244, 5707985.196954485028982 ], [ 3306760.580651397816837, 5704865.656977678649127 ], [ 3305694.239859013818204, 5699612.892034158110619 ], [ 3307059.12371038692072, 5699885.279689623042941 ], [ 3306408.677259535994381, 5698450.714144894853234 ], [ 3306891.591118102893233, 5695458.633018332533538 ], [ 3304303.466169738210738, 5693014.552679062820971 ], [ 3304820.446972778532654, 5692345.384959954768419 ], [ 3302757.350133853033185, 5692316.377612895332277 ], [ 3300807.180342230945826, 5688222.898389655165374 ], [ 3298167.731455585453659, 5684641.587172788567841 ], [ 3295598.09920528717339, 5682900.066120402887464 ], [ 3296643.59034953918308, 5680471.920284806750715 ], [ 3295340.14535668073222, 5680523.768423667177558 ], [ 3295423.864063579589128, 5675798.2512610508129 ], [ 3296144.030565818306059, 5674737.776216881349683 ], [ 3297818.871181078255177, 5674400.035455786623061 ], [ 3301846.811181697528809, 5677175.150566702708602 ], [ 3303004.950451396871358, 5676153.443406596779823 ], [ 3300069.322801499627531, 5674855.088434789329767 ], [ 3302601.980081139598042, 5672747.463959520682693 ], [ 3301543.437256735749543, 5672136.245121591724455 ], [ 3298906.924106827005744, 5671586.597227867692709 ], [ 3296411.522928901016712, 5670489.049561847932637 ], [ 3295915.934955024160445, 5668986.453105127438903 ], [ 3292843.561578573659062, 5667151.291205334477127 ], [ 3290555.82791165355593, 5665883.689916778355837 ], [ 3288726.071391376666725, 5663835.839024382643402 ], [ 3287655.788463062606752, 5661701.903095590882003 ], [ 3287788.022429387550801, 5660933.985525010153651 ], [ 3286589.163556799292564, 5659676.030673863366246 ], [ 3285675.648484024684876, 5660040.748064618557692 ], [ 3283969.518847334198654, 5662345.04369845148176 ], [ 3283910.612274311482906, 5663545.414018142968416 ], [ 3282216.161774517036974, 5662200.924963196739554 ], [ 3280462.666012768168002, 5662057.389897791668773 ], [ 3281149.725693407002836, 5660230.614482069388032 ], [ 3281007.559314908459783, 5658165.921700863167644 ], [ 3282057.265123712364584, 5657140.391278399154544 ], [ 3282195.721687640529126, 5656534.878498041070998 ], [ 3282895.95685621490702, 5656287.340810407884419 ], [ 3282895.669324495829642, 5654978.694535035640001 ], [ 3281921.831084162462503, 5653928.857449941337109 ], [ 3282164.998008157592267, 5653209.464688984677196 ], [ 3284269.431074277497828, 5653830.426918645389378 ], [ 3286175.214554916135967, 5654951.118787158280611 ], [ 3287108.409572302829474, 5653712.820064155384898 ], [ 3288543.489978682715446, 5654035.741379365324974 ], [ 3291436.881228879094124, 5653918.27361779846251 ], [ 3290313.565470241010189, 5651836.339308062568307 ], [ 3289686.244772073347121, 5651207.041993699036539 ], [ 3290479.113975885789841, 5650520.071423185057938 ], [ 3290561.484402420930564, 5648497.187573024071753 ], [ 3293036.209390486590564, 5647415.017832157202065 ], [ 3295798.145860120654106, 5646650.238728865049779 ], [ 3294738.588578765746206, 5644780.477730887010694 ], [ 3294251.966444883961231, 5642176.986034880392253 ], [ 3295429.911229199264199, 5641474.552059262059629 ], [ 3294038.655232372693717, 5639561.356737680733204 ], [ 3293995.366815812885761, 5638469.315338461659849 ], [ 3292764.31663303123787, 5639229.229561239480972 ], [ 3293061.974928386509418, 5639818.888335167430341 ], [ 3290278.663255966734141, 5638782.033004604279995 ], [ 3289921.04455010779202, 5636717.667458184063435 ], [ 3290352.365412818733603, 5635167.991757966578007 ], [ 3289253.805881355889142, 5633789.126760985702276 ], [ 3287483.172903017606586, 5634791.749206254258752 ], [ 3286712.606090801768005, 5633399.843388979323208 ], [ 3290445.980533546302468, 5630674.267780573107302 ], [ 3289638.17804793221876, 5628350.766448652371764 ], [ 3291080.021227496676147, 5627306.252356147393584 ], [ 3290796.933658776339144, 5624356.834253843873739 ], [ 3291817.968506064265966, 5625138.613653897307813 ], [ 3295043.942357258405536, 5624681.944071646779776 ], [ 3296693.072183144744486, 5624672.295821407809854 ], [ 3297022.031125582288951, 5623233.608524720184505 ], [ 3298291.305944545194507, 5620496.189007695764303 ], [ 3299538.523947891779244, 5618582.128672275692225 ], [ 3299570.386601782403886, 5617977.033707095310092 ], [ 3301329.404882526025176, 5617909.946983234956861 ], [ 3301850.0372996898368, 5617121.559172347187996 ], [ 3300977.427015575114638, 5615891.639724168926477 ], [ 3302162.35970045812428, 5615187.648598435334861 ], [ 3304315.478376474231482, 5615326.448602642863989 ], [ 3304771.804897429421544, 5615748.7816889481619 ], [ 3306900.287934598047286, 5615230.495798503048718 ], [ 3307079.866087296511978, 5614125.333096931688488 ], [ 3306591.203096221201122, 5612824.790656130760908 ], [ 3305774.137469457928091, 5611591.066646741703153 ], [ 3304942.406250657979399, 5609972.853507907129824 ], [ 3304475.208323805127293, 5607790.642461740411818 ], [ 3303121.993529784493148, 5605530.618068462237716 ], [ 3301353.683156805578619, 5604001.152899656444788 ], [ 3301730.339020947460085, 5602280.295819290913641 ], [ 3302920.122726429253817, 5600142.847967209294438 ], [ 3303375.420874859206378, 5599024.059985257685184 ], [ 3306211.227273208089173, 5599524.868260719813406 ], [ 3308305.345973854418844, 5599393.092373580671847 ], [ 3310312.637645933311433, 5598383.865202314220369 ], [ 3312501.882658250629902, 5597809.588673127815127 ], [ 3311240.651073282118887, 5596532.144901648163795 ], [ 3311733.563964404165745, 5594860.915249953046441 ], [ 3313415.794884885661304, 5593974.11834666505456 ], [ 3313854.436974819283932, 5592304.291197531856596 ], [ 3313032.955026251729578, 5589409.431447661481798 ], [ 3312072.228916894178838, 5587290.935907955281436 ], [ 3311029.729631065391004, 5586002.996481238864362 ], [ 3312851.407242894172668, 5584281.337762791663408 ], [ 3314117.023758508265018, 5582468.860902468673885 ], [ 3315507.704989780671895, 5581038.677639014087617 ], [ 3315297.356875209137797, 5579774.707749810069799 ], [ 3313834.56846736650914, 5579162.511864907108247 ], [ 3312422.890927549917251, 5578438.213172486051917 ], [ 3312239.135910466313362, 5577947.022410762496293 ], [ 3309972.402404117397964, 5579686.697858810424805 ], [ 3308506.895402595866472, 5579020.704504291526973 ], [ 3306869.852216646075249, 5576701.878813940100372 ], [ 3306799.393962098751217, 5574767.862640046514571 ], [ 3305868.182006170041859, 5573584.214415721595287 ], [ 3302236.243611646816134, 5572943.305715539492667 ], [ 3300930.017860637046397, 5572161.599748998880386 ], [ 3300144.664714391343296, 5570474.226262048818171 ], [ 3298369.740403208415955, 5570541.314642827026546 ], [ 3297743.478723010979593, 5568681.405577485449612 ], [ 3299343.308557103388011, 5566902.703473022207618 ], [ 3299230.510358086321503, 5563912.904206435196102 ], [ 3296171.838873052038252, 5563918.234956804662943 ], [ 3295589.09417691314593, 5561777.030498195439577 ], [ 3296171.017793844919652, 5559534.813624084927142 ], [ 3295251.905445382930338, 5558792.845377014018595 ], [ 3294582.857005979400128, 5555875.301833150908351 ], [ 3294043.740374677814543, 5553451.368433734402061 ], [ 3294251.548703496344388, 5550163.490096008405089 ], [ 3294854.003845088649541, 5546969.783770482055843 ], [ 3295568.789650909602642, 5543770.044488900341094 ], [ 3298137.080562264192849, 5539328.601225581951439 ], [ 3300777.904525710269809, 5538226.936383076943457 ], [ 3300591.881895710714161, 5536227.414858377538621 ], [ 3301506.195114647038281, 5533740.250803409144282 ], [ 3303618.107277052477002, 5530315.553367778658867 ], [ 3306815.368343424983323, 5528972.044152360409498 ], [ 3307534.157465105410665, 5527160.001687828451395 ], [ 3307574.282217318192124, 5525148.292277450673282 ], [ 3308696.975071363616735, 5525220.016151678748429 ], [ 3309319.512640958186239, 5526984.82498583663255 ], [ 3310993.110894050914794, 5526814.163781641982496 ], [ 3313538.285051248501986, 5522704.250675394199789 ], [ 3316548.763631217181683, 5522265.77099993545562 ], [ 3318269.067922670859843, 5523436.550476114265621 ], [ 3319914.076553903985769, 5522375.822257258929312 ], [ 3321440.373675452079624, 5521095.863393030129373 ], [ 3321037.886370377149433, 5519097.157823511399329 ], [ 3320105.186610721051693, 5514654.248619129881263 ], [ 3319773.01095390226692, 5511419.421840450726449 ], [ 3315822.932736824266613, 5507520.179941294714808 ], [ 3314171.082749260123819, 5505223.023033342324197 ], [ 3315870.534160270821303, 5505613.415918727405369 ], [ 3314532.170840017031878, 5502631.805040402337909 ], [ 3313095.445247137919068, 5500100.983985096216202 ], [ 3311017.866549561731517, 5498601.740836505778134 ], [ 3309590.280488845426589, 5496406.288109920918941 ], [ 3310745.491916314233094, 5494007.452444901689887 ], [ 3308854.629367342684418, 5491489.192985010333359 ], [ 3309181.777033932041377, 5484730.256133002229035 ], [ 3313247.010812398511916, 5484814.69000612013042 ], [ 3316492.805140560958534, 5484029.476350947283208 ], [ 3319570.990886089392006, 5481563.382581897079945 ], [ 3322287.867931914515793, 5478321.523670556023717 ], [ 3321235.587449310813099, 5477229.36579033266753 ], [ 3322961.23001126293093, 5474694.29114542901516 ], [ 3325099.315040445420891, 5474400.165233524516225 ], [ 3325489.990141856949776, 5472471.349379789084196 ], [ 3324874.834437024779618, 5470912.296611363068223 ], [ 3323205.481559679843485, 5471755.291168798692524 ], [ 3322589.593790540471673, 5470196.25176914408803 ], [ 3325043.291458060964942, 5469102.162997494451702 ], [ 3324770.449323010630906, 5467644.072313352487981 ], [ 3330396.944478302728385, 5462951.873545842245221 ], [ 3329867.541308000683784, 5460483.174938303418458 ], [ 3331884.418704373762012, 5459743.229751444421709 ], [ 3331997.139188995119184, 5456009.726872179657221 ], [ 3334142.840959931258112, 5455718.552115550264716 ], [ 3334888.504926262423396, 5454112.922470156103373 ], [ 3332903.71215025568381, 5452249.616904384456575 ], [ 3335540.263590311165899, 5449341.080995460040867 ], [ 3338722.781859032809734, 5449473.553945599123836 ], [ 3341862.933300896547735, 5448137.472464187070727 ], [ 3343528.168615900911391, 5450806.451900968328118 ], [ 3344353.816673721652478, 5451914.538425981998444 ], [ 3343517.471719459164888, 5454426.592455507256091 ], [ 3342416.623720757197589, 5455588.693145615980029 ], [ 3344471.86133106937632, 5456095.545629951171577 ], [ 3346230.777860252652317, 5454124.041230094619095 ], [ 3348534.500820654910058, 5455417.066853553988039 ], [ 3350126.772815578151494, 5455599.616118837147951 ], [ 3350754.49173581879586, 5453660.418490864336491 ], [ 3353042.183922443073243, 5454390.484042441472411 ], [ 3355475.836065769661218, 5452064.318216507323086 ], [ 3356254.627246593125165, 5451478.37142503913492 ], [ 3356823.409308884758502, 5447163.237360533326864 ], [ 3357294.292350224219263, 5443413.863010513596237 ], [ 3359579.423207714688033, 5443921.746796428225935 ], [ 3360987.298051197081804, 5445698.208481875248253 ], [ 3360590.471944097895175, 5447972.440755658783019 ], [ 3362292.112452516332269, 5447929.735422714613378 ], [ 3361455.444901064969599, 5446252.590178170241416 ], [ 3364057.079601254779845, 5445848.282199367880821 ], [ 3365712.608134512789547, 5443882.626493926160038 ], [ 3367896.633981968276203, 5444962.516656741499901 ], [ 3368642.734678084496409, 5442906.054143330082297 ], [ 3371980.076957716140896, 5444753.172875575721264 ], [ 3374577.838198570534587, 5444127.395131227560341 ], [ 3375230.834074159618467, 5442866.755629636347294 ], [ 3377448.385518587194383, 5445535.004778406582773 ], [ 3379165.533601051662117, 5446176.423322357237339 ], [ 3380870.060002903919667, 5446252.588262471370399 ], [ 3380943.272243015002459, 5449645.88072828296572 ], [ 3386280.102225408889353, 5449872.642567787319422 ], [ 3385796.10053317528218, 5448411.922651157714427 ], [ 3390566.658243300393224, 5448654.678026086650789 ], [ 3390875.608130455948412, 5447064.419459532946348 ], [ 3389591.466181238181889, 5445278.940169045701623 ], [ 3391921.592530752066523, 5442515.271651929244399 ], [ 3394684.753265048842877, 5438496.4903419399634 ], [ 3399004.598318004515022, 5438529.320804560557008 ], [ 3400550.565832812339067, 5436007.450539210811257 ], [ 3403823.534864186309278, 5434588.917249847203493 ], [ 3405324.923858066089451, 5435923.79734976682812 ], [ 3407253.612404691055417, 5435664.408813539892435 ], [ 3407806.925638171844184, 5434748.031439089216292 ], [ 3410777.704689913894981, 5435606.534004563465714 ], [ 3412390.74775867164135, 5436941.196620415896177 ], [ 3417001.288586367387325, 5433582.037418880499899 ], [ 3418957.754121808800846, 5435140.697352018207312 ], [ 3421562.956715709995478, 5434422.86768676713109 ], [ 3422379.521928046364337, 5435885.328683120198548 ], [ 3425744.129689838737249, 5432437.227799493819475 ], [ 3427224.266208763234317, 5432531.038100123405457 ], [ 3431741.759720824658871, 5429864.124439768493176 ], [ 3432188.612845612224191, 5429177.71805084683001 ], [ 3438648.05060533201322, 5426605.180578490719199 ], [ 3441146.937545709311962, 5426010.398915889672935 ], [ 3443774.019803314469755, 5426777.997880448587239 ], [ 3444100.72794422134757, 5425298.52947814296931 ], [ 3441018.598437156993896, 5424648.949427127838135 ], [ 3435781.751066780183464, 5415044.075494257733226 ], [ 3434346.99304535286501, 5409482.786479373462498 ], [ 3431221.258303457405418, 5406102.538412497378886 ], [ 3428935.65839446336031, 5406131.130265021696687 ], [ 3427750.173842236865312, 5402840.358370274305344 ], [ 3424540.760941871441901, 5402312.519788173958659 ], [ 3423922.496248530223966, 5398898.478684207424521 ], [ 3418439.855920504312962, 5391781.614717473275959 ], [ 3413938.186163996346295, 5389677.335346916690469 ], [ 3411663.536555420141667, 5383536.496232718229294 ], [ 3411904.082985449582338, 5376891.61941062938422 ], [ 3409316.030788129195571, 5373150.537075099535286 ], [ 3408785.944496780633926, 5368800.822875512763858 ], [ 3406375.0789919286035, 5362181.630773250944912 ], [ 3407291.672799124382436, 5354810.195661885663867 ], [ 3403448.705552062485367, 5352688.398006235249341 ], [ 3401584.928618231788278, 5345005.833078308030963 ], [ 3399793.318139681126922, 5341694.676721687428653 ], [ 3395999.802427514456213, 5336572.159682932309806 ], [ 3395949.444171581882983, 5333802.955227456986904 ], [ 3394183.205465422011912, 5332218.813860137946904 ], [ 3394595.380240791011602, 5329438.959857028909028 ], [ 3393640.730744129046798, 5327954.405255996622145 ], [ 3393211.342989110853523, 5323569.099566949531436 ], [ 3396360.318487529177219, 5318073.055318268015981 ], [ 3398280.386333810631186, 5315028.157073317095637 ], [ 3394487.641686563845724, 5310925.224588554352522 ], [ 3394423.981077825650573, 5307448.090825513936579 ], [ 3392276.657797023188323, 5304587.579806504771113 ], [ 3392216.062134995125234, 5301338.763521077111363 ], [ 3390511.565416099969298, 5297421.956813243217766 ], [ 3390967.2622343711555, 5290670.947469526901841 ], [ 3391033.667191634885967, 5287993.832420127466321 ], [ 3389003.368527046404779, 5285588.023670888505876 ], [ 3389741.017122888471931, 5281381.400491485372186 ], [ 3392819.984673089813441, 5277244.935140418820083 ], [ 3394591.297573479358107, 5271730.801261203363538 ], [ 3398013.090484702028334, 5273303.366132202558219 ], [ 3400707.498672728426754, 5273490.161846791394055 ], [ 3401828.139359097927809, 5270554.286127161234617 ], [ 3397955.972861425019801, 5270037.144075736403465 ], [ 3399998.7742646089755, 5266265.641654439270496 ], [ 3404585.363901938777417, 5267356.723335566930473 ], [ 3408467.720814909785986, 5268462.114133893512189 ], [ 3410960.008184376638383, 5270641.193926501087844 ], [ 3411809.170814938377589, 5272611.76419866271317 ], [ 3418007.770553172565997, 5272404.673736351542175 ], [ 3417943.807783041615039, 5267854.309229598380625 ], [ 3424162.66499761166051, 5268820.825085404329002 ], [ 3429899.930880703497678, 5268865.822852464392781 ], [ 3433071.157436474226415, 5269762.234682783484459 ], [ 3434850.180987715255469, 5271842.22906899638474 ], [ 3440261.857453008182347, 5274699.827171719633043 ], [ 3442490.564558713696897, 5275376.912784439511597 ], [ 3447264.346893206704408, 5273116.368334513157606 ], [ 3451332.917477671988308, 5270048.07426589820534 ], [ 3455199.364794543478638, 5270600.441492328420281 ], [ 3462217.406400641426444, 5270084.029153803363442 ], [ 3462115.544423341285437, 5272417.717338015325367 ], [ 3459549.26128638535738, 5273484.546016472391784 ], [ 3461315.280674194917083, 5275221.385354879312217 ], [ 3464252.008879730477929, 5277417.029964530840516 ], [ 3466808.071528592146933, 5274721.123694409616292 ], [ 3465386.15279812226072, 5271580.890589426271617 ], [ 3466536.707049704156816, 5268190.529738401062787 ], [ 3469135.004472768865526, 5272492.859014559537172 ], [ 3469979.735556862317026, 5277501.11858360376209 ], [ 3471967.220725715626031, 5277607.701487408950925 ], [ 3470702.75202213646844, 5281807.2296939836815 ], [ 3465559.106220188550651, 5281020.366265679709613 ], [ 3464258.458702430594712, 5278465.64477123785764 ], [ 3460407.672557429876179, 5279306.108462906442583 ], [ 3456223.297716085333377, 5282247.711141574196517 ], [ 3458593.045648510567844, 5287002.174714633263648 ], [ 3460609.171887961681932, 5291756.062570192851126 ], [ 3464815.680743975564837, 5293239.917727896012366 ], [ 3468788.821677942294627, 5295076.193848267197609 ], [ 3471580.842789880000055, 5294132.310972448438406 ], [ 3472965.241934643127024, 5291103.872367586009204 ], [ 3474382.003062608186156, 5295048.671408385969698 ], [ 3476475.191171061713248, 5293994.103915286250412 ], [ 3477158.859918577596545, 5290039.41158040985465 ], [ 3479963.103435664903373, 5291540.355961260385811 ], [ 3481008.256034184712917, 5290258.01567401830107 ], [ 3479137.714538817759603, 5288985.379434469155967 ], [ 3478663.841934462543577, 5287009.781976686790586 ], [ 3480528.078016032930464, 5286188.817212254740298 ], [ 3480169.60632247896865, 5283746.194585441611707 ], [ 3484950.365807128604501, 5281403.371870806440711 ], [ 3486007.458826499991119, 5283845.517693010158837 ], [ 3483447.301175893750042, 5286761.43484144937247 ], [ 3486135.654042263980955, 5288615.446468035690486 ], [ 3487996.787629834376276, 5286052.11650069616735 ], [ 3490561.435793025419116, 5284301.819737511686981 ], [ 3489857.728705554269254, 5282440.55852793995291 ], [ 3491137.812988555524498, 5279527.166797446087003 ], [ 3498265.325822744518518, 5281267.486392702907324 ], [ 3502819.825412742327899, 5282781.419286884367466 ], [ 3509244.374250557273626, 5281390.825471815653145 ], [ 3515089.988283701241016, 5279190.109527446329594 ], [ 3523858.888779436703771, 5277821.259920362383127 ], [ 3530889.600915216375142, 5274357.56218041293323 ], [ 3536891.081754141952842, 5268443.197854464873672 ], [ 3540068.480084216687828, 5266012.652949059382081 ], [ 3553417.852102292235941, 5266235.853332026861608 ], [ 3556211.594016916584224, 5268013.127959861420095 ], [ 3558968.337896288372576, 5273290.572352670133114 ], [ 3561899.912950264289975, 5272621.111900174990296 ], [ 3562284.403799287974834, 5269475.152123768813908 ], [ 3561479.815212272107601, 5268066.084516203962266 ], [ 3564183.976370956283063, 5267044.468381702899933 ], [ 3565719.279709361959249, 5265893.89309382904321 ], [ 3566403.429552424233407, 5267536.205747944302857 ], [ 3568290.372541241813451, 5266390.391143075190485 ], [ 3569818.320568916853517, 5265941.33543078135699 ], [ 3572029.144681832287461, 5267135.752536108717322 ], [ 3573221.965306973550469, 5265399.005599326454103 ], [ 3574655.764731553848833, 5263197.722430121153593 ], [ 3575151.409697893541306, 5261100.712370845489204 ], [ 3578547.478611031081527, 5261378.970776219852269 ], [ 3579748.168419474270195, 5259291.129584588110447 ], [ 3581883.149714205879718, 5257566.576770008541644 ], [ 3582808.240240890067071, 5258515.072712591849267 ], [ 3583446.076896387152374, 5254898.145284430123866 ], [ 3582763.456113736145198, 5253367.264338509179652 ], [ 3581358.256128629203886, 5253113.575677283108234 ], [ 3581141.269917943049222, 5251823.039311069063842 ], [ 3589154.649804558139294, 5249948.636216470040381 ], [ 3591389.652602588757873, 5249748.712714437395334 ], [ 3592909.037499438039958, 5250240.939058191142976 ], [ 3608066.80489345267415, 5250031.43032496329397 ], [ 3609625.871784656774253, 5254626.30302225984633 ], [ 3611348.46130685089156, 5256647.945228716358542 ], [ 3610419.388586510438472, 5262360.304890165105462 ], [ 3608763.424330571200699, 5263147.427640830166638 ], [ 3608694.033288604114205, 5266884.567464678548276 ], [ 3609118.909958738833666, 5269227.795274266041815 ], [ 3610647.321896548848599, 5268906.279476214200258 ], [ 3615249.731480587739497, 5267126.820916695520282 ], [ 3619348.372115508653224, 5267208.993084497749805 ], [ 3621032.431041778530926, 5270746.408954884856939 ], [ 3626079.967394401784986, 5270152.706479787826538 ], [ 3630572.067742535844445, 5268266.285531943663955 ], [ 3632807.319957664236426, 5267849.441527684219182 ], [ 3633446.057540745474398, 5265527.547462677583098 ], [ 3638095.929316089954227, 5267154.234824404120445 ], [ 3642637.700458443723619, 5268314.512101682834327 ], [ 3643857.431304589379579, 5266358.401632416062057 ], [ 3644800.262721888720989, 5266147.963323574513197 ], [ 3644817.604788166470826, 5265447.263283429667354 ], [ 3640165.15465962793678, 5263931.561806668527424 ], [ 3641139.183433841913939, 5262435.246510568074882 ], [ 3644198.11670959694311, 5262042.036850397475064 ], [ 3646308.03940167883411, 5262094.335843012668192 ], [ 3645636.6809899113141, 5260791.255818320438266 ], [ 3649977.000201102811843, 5256220.514234762638807 ], [ 3649895.504383739084005, 5254813.657967455685139 ], [ 3648493.041923482902348, 5254543.871222625486553 ], [ 3648898.53397985547781, 5252446.283060369081795 ], [ 3655244.936900129541755, 5252376.249460184946656 ], [ 3659944.748774581588805, 5252385.14824132528156 ], [ 3660356.915271494071931, 5254504.557586400769651 ], [ 3665364.514791925437748, 5256048.53507305495441 ], [ 3667446.723311715293676, 5257161.197963807731867 ], [ 3670269.322932854294777, 5257008.310153999365866 ], [ 3668257.917418883182108, 5253437.308276225812733 ], [ 3671669.364111591130495, 5253301.741627963259816 ], [ 3673464.882921018637717, 5256165.284245558083057 ], [ 3673885.756954886950552, 5257816.760811294429004 ], [ 3676428.008520286995918, 5259180.193365572020411 ], [ 3680419.411375533789396, 5259184.620946523733437 ], [ 3683007.097934948280454, 5259030.728365052491426 ], [ 3681644.402653094381094, 5261328.834081131033599 ], [ 3679505.29189323540777, 5262198.820665345527232 ], [ 3681762.838844546116889, 5265075.352458233945072 ], [ 3683571.641286125872284, 5267236.164021715521812 ], [ 3684911.747386515140533, 5265641.709323761053383 ], [ 3688876.447099495213479, 5266352.949248921126127 ], [ 3695183.112736156210303, 5267144.526237981393933 ], [ 3695319.863971607759595, 5270071.130221887491643 ], [ 3696119.325948164798319, 5274186.363479602150619 ], [ 3696906.828900756314397, 5275146.99231637455523 ], [ 3698455.322155223693699, 5274382.098087263293564 ], [ 3698165.873252294491976, 5276006.855788071639836 ], [ 3700872.075926858466119, 5275632.422248547896743 ], [ 3704272.418023795820773, 5275516.964767271652818 ], [ 3709753.506413412280381, 5276178.495045790448785 ], [ 3714834.560195084195584, 5274962.047557797282934 ], [ 3715225.076776642352343, 5277078.369512633420527 ], [ 3719598.942155567463487, 5279109.284095799550414 ], [ 3723200.924123435281217, 5279829.728579265065491 ], [ 3726460.559814589098096, 5280305.658364173956215 ], [ 3728479.740992708131671, 5279567.430374900810421 ], [ 3730448.767183461226523, 5280111.890556435100734 ], [ 3734937.954438397660851, 5279123.749624446034431 ], [ 3737407.580403123050928, 5278873.540395647287369 ], [ 3739839.115334124770015, 5279556.906656790524721 ], [ 3741062.50966218020767, 5281125.072306622751057 ], [ 3740314.499946163035929, 5285061.61410831194371 ], [ 3738462.100503182038665, 5287434.47964827530086 ], [ 3737671.088330583646894, 5289617.026910294778645 ], [ 3741138.691207077819854, 5290575.791679365560412 ], [ 3743583.974459180608392, 5293590.783346704207361 ], [ 3744239.741539272945374, 5294666.666533531621099 ], [ 3745464.946214229334146, 5293320.574310488067567 ], [ 3743998.069396694656461, 5289296.49346340354532 ], [ 3744183.253322290256619, 5287671.990883053280413 ], [ 3746692.623504033312201, 5289177.121603433042765 ], [ 3750788.186702605802566, 5289119.279253566637635 ], [ 3752676.163812062237412, 5288734.667057823389769 ], [ 3757447.123620067723095, 5289293.919177147559822 ], [ 3759273.323339673690498, 5290307.941840749233961 ], [ 3759434.355598406866193, 5286699.644191927276552 ], [ 3760924.608653508126736, 5284782.653198830783367 ], [ 3763488.720214647240937, 5282446.77900482993573 ], [ 3764875.338989542797208, 5282859.968370902352035 ], [ 3766495.511189344339073, 5283284.17008647415787 ], [ 3769066.47902257181704, 5283402.444049267098308 ], [ 3770618.857421291992068, 5287792.848045555874705 ], [ 3774917.488424092996866, 5288461.269915884360671 ], [ 3781994.922287775669247, 5289733.756127413362265 ], [ 3781684.184308716095984, 5288901.981460696086287 ], [ 3784281.404768616426736, 5288445.005778755992651 ], [ 3783899.587727916426957, 5286675.657007952220738 ], [ 3782309.491651613265276, 5285664.359989155083895 ], [ 3784281.144812294282019, 5283658.524575554765761 ], [ 3787003.591664461418986, 5283091.307140819728374 ], [ 3788124.720327303744853, 5281744.780626373365521 ], [ 3786505.169203932397068, 5281314.372820717282593 ], [ 3785532.874546250328422, 5279630.628904357552528 ], [ 3784799.654778862372041, 5277841.408533683978021 ], [ 3786603.60178305208683, 5274538.416780044324696 ], [ 3790477.9888247968629, 5274495.941701513715088 ], [ 3790594.128488400951028, 5272161.474625929258764 ], [ 3793111.897764969151467, 5271116.731996889226139 ], [ 3795818.700670539867133, 5268677.05331720970571 ], [ 3798855.596301339101046, 5266722.819737875834107 ], [ 3799838.722160743549466, 5268178.955591368488967 ], [ 3802889.489610741846263, 5265992.731342470273376 ], [ 3804384.913735983893275, 5268882.313176333904266 ], [ 3805133.319873026106507, 5272551.575273250229657 ], [ 3803754.023067193571478, 5274235.446301868185401 ], [ 3805363.573710943572223, 5277127.578434414230287 ], [ 3804047.390052516479045, 5279865.629771737381816 ], [ 3806959.158603717572987, 5280252.08644082583487 ], [ 3806042.457857865374535, 5282074.320290931500494 ], [ 3808337.247325238306075, 5285233.647769700735807 ], [ 3807389.733745195437223, 5289854.723989077843726 ], [ 3804631.600111520383507, 5293326.948602575808764 ], [ 3800935.690724624320865, 5294650.400785171426833 ], [ 3796205.97065965924412, 5293357.427407402545214 ], [ 3792640.902135544922203, 5294459.316254674457014 ], [ 3795373.669104842003435, 5298211.406877520494163 ], [ 3795010.249062247108668, 5300756.032704696059227 ], [ 3797138.066065363120288, 5304823.992066430859268 ], [ 3798377.11803000792861, 5305702.598571930080652 ], [ 3798384.577908948995173, 5312333.655418801121414 ], [ 3794250.609914021100849, 5317931.166057704016566 ], [ 3790229.527724273037165, 5321442.149465550668538 ], [ 3786678.104510818608105, 5327295.615803264081478 ], [ 3781226.071450241375715, 5331776.835706444457173 ], [ 3778754.146607806906104, 5337212.942081055603921 ], [ 3781026.840195064432919, 5340563.218345453031361 ], [ 3784765.083432798739523, 5342367.16905709169805 ], [ 3787737.504416177049279, 5345521.691941050812602 ], [ 3789793.842401337809861, 5348398.836057630367577 ], [ 3793826.797423883806914, 5348836.223122604191303 ], [ 3797599.462265519890934, 5352034.835355360992253 ], [ 3804847.855404205620289, 5357266.374191619455814 ], [ 3812375.677845589350909, 5359290.237615343183279 ], [ 3817631.024841874837875, 5360504.439402943477035 ], [ 3822651.658046095632017, 5363786.195641887374222 ], [ 3825398.449115025345236, 5368323.389857625588775 ], [ 3828089.372631504200399, 5375733.77600179053843 ], [ 3827511.594646334648132, 5379727.006050870753825 ], [ 3828863.156577812042087, 5388195.249212647788227 ], [ 3828641.499112889170647, 5390019.510012876242399 ], [ 3831139.159764649346471, 5390625.081788191571832 ], [ 3832704.719903009012341, 5393357.319908248260617 ], [ 3836917.414856550749391, 5390279.050154198892415 ], [ 3838962.361385906580836, 5390746.295140411704779 ], [ 3843176.997758243698627, 5389623.48540545720607 ], [ 3845376.278749476186931, 5387575.043853930197656 ], [ 3850226.137220137286931, 5385575.508480267599225 ], [ 3851189.237577030435205, 5388623.880884901620448 ], [ 3850659.475342543795705, 5391577.755359980277717 ], [ 3852789.389023704454303, 5390677.091992710717022 ], [ 3854029.779714288655668, 5392937.241628798656166 ], [ 3854286.8513412210159, 5396167.913990419358015 ], [ 3854864.502612382173538, 5401596.117986790835857 ], [ 3855912.69081223430112, 5406820.185579559765756 ], [ 3853265.493678213562816, 5408714.249234259128571 ], [ 3854757.19810030516237, 5412357.58047001156956 ], [ 3856304.881807212717831, 5415087.768602450378239 ], [ 3853490.335917244199663, 5416052.7716233888641 ], [ 3853710.381891583092511, 5418010.65491761174053 ], [ 3851403.576942361425608, 5421864.904213130474091 ], [ 3849770.128725301939994, 5422333.346828631125391 ], [ 3847147.385368203744292, 5427649.450403043068945 ], [ 3842373.275378418620676, 5427125.432981932535768 ], [ 3840837.995919925626367, 5429769.007287064567208 ], [ 3839227.780072700697929, 5433660.686249264515936 ], [ 3836439.828622874803841, 5434402.664457753300667 ], [ 3836095.253023515921086, 5436318.424838675186038 ], [ 3829366.732189212460071, 5436142.68965432792902 ], [ 3830673.839149459730834, 5433372.629446876235306 ], [ 3827231.001920537557453, 5433624.40624125674367 ], [ 3822318.734723675530404, 5437550.340535138733685 ], [ 3822575.768218017183244, 5440979.144701819866896 ], [ 3821468.647546603810042, 5444326.509012749418616 ], [ 3817497.509936431888491, 5447961.082637995481491 ], [ 3813525.178468396887183, 5451708.761152523569763 ], [ 3808576.439607511274517, 5450635.348259688355029 ], [ 3804448.080683045554906, 5453243.31266425549984 ], [ 3805066.947153330780566, 5456453.37618157081306 ], [ 3801793.476753655355424, 5458087.058316828683019 ], [ 3800209.238722647540271, 5460040.354074968956411 ], [ 3800098.372055599931628, 5462073.412857607007027 ], [ 3797570.184695475269109, 5462615.608460924588144 ], [ 3797120.666033543180674, 5464629.31726430170238 ], [ 3795064.951798662077636, 5464858.183651850558817 ], [ 3794735.671891257166862, 5466764.423756338655949 ], [ 3793830.467423887457699, 5466715.935289075598121 ], [ 3793363.018220909871161, 5471215.067984454333782 ], [ 3791649.173001739662141, 5471462.839840769767761 ], [ 3788192.944655504543334, 5474670.355206306092441 ], [ 3781767.430439930409193, 5476256.194380306638777 ], [ 3782494.705392826814204, 5473130.944204164668918 ], [ 3778803.899224318098277, 5474410.55358830653131 ], [ 3774488.077136000618339, 5474644.452892290428281 ], [ 3774499.445151279680431, 5476677.436628054827452 ], [ 3773071.275329637341201, 5478073.397718599997461 ], [ 3770742.316181838978082, 5481680.674946036189795 ], [ 3769090.785169301088899, 5483065.046973722986877 ], [ 3765550.433686465024948, 5483793.733113300055265 ], [ 3762932.97133231209591, 5488849.73077289480716 ], [ 3763914.385872582904994, 5489572.763349560089409 ], [ 3763680.64985917834565, 5494401.116383878514171 ], [ 3759918.058954005129635, 5495232.585864448919892 ], [ 3759837.691012873779982, 5496915.595750628039241 ], [ 3758306.480578999500722, 5500664.208094398491085 ], [ 3757087.693330587819219, 5504986.580174822360277 ], [ 3754883.128251632675529, 5503984.414849063381553 ], [ 3754714.808642594143748, 5507568.351268366910517 ], [ 3754663.982789839152247, 5511043.313948171213269 ], [ 3752281.613686378113925, 5511492.468478155322373 ], [ 3748129.784483372233808, 5513766.628840764984488 ], [ 3746198.039193653967232, 5516703.218183800578117 ], [ 3745164.472104180138558, 5519679.350210216827691 ], [ 3750539.33744758926332, 5522388.22244018688798 ], [ 3749631.557521247304976, 5525030.91827192530036 ], [ 3751453.250985849648714, 5529252.096258390694857 ], [ 3753537.38713001832366, 5532589.865801245905459 ], [ 3755725.237144735641778, 5536043.278154118917882 ], [ 3755294.895878308918327, 5538031.72348784096539 ], [ 3751431.163173641078174, 5539299.782857084646821 ], [ 3749066.560313181020319, 5539635.706390921957791 ], [ 3749653.344769380521029, 5541447.267171245068312 ], [ 3751865.640581336338073, 5544337.569970003329217 ], [ 3747566.525898560415953, 5545474.365603343583643 ], [ 3741168.10805734898895, 5548634.853609713725746 ], [ 3736883.377496286295354, 5552115.916657934896648 ], [ 3732860.684804424177855, 5554830.687946009449661 ], [ 3728711.969448793213814, 5557985.670789001509547 ], [ 3729464.714967768639326, 5563792.524646927602589 ], [ 3727989.290521514136344, 5567057.754149910062551 ], [ 3725271.63060312345624, 5570822.592721866443753 ], [ 3723020.272674647625536, 5571503.397643525153399 ], [ 3720954.572312307544053, 5573079.009767584502697 ], [ 3722197.374655489809811, 5575235.247705519199371 ], [ 3724497.154413202777505, 5575996.423454540781677 ], [ 3722834.039479933679104, 5578583.004573442041874 ], [ 3722769.039576907176524, 5580129.408005010336637 ], [ 3725066.585877205245197, 5580890.293769891373813 ], [ 3727535.879815011750907, 5580221.320491296239197 ], [ 3728536.122558393981308, 5577608.177078784443438 ], [ 3729416.839799566194415, 5575210.187771665863693 ], [ 3732993.263559928163886, 5574701.404885558411479 ], [ 3733393.895032570697367, 5573167.954350016079843 ], [ 3731330.138952594250441, 5572080.348174600861967 ], [ 3733611.763258014339954, 5570739.254571005702019 ], [ 3734761.716771180741489, 5567352.232825891114771 ], [ 3735101.073267021682113, 5564704.269534032791853 ], [ 3739149.540715137496591, 5563774.546241171658039 ], [ 3738370.86983257997781, 5568732.839852967299521 ], [ 3737612.999364356510341, 5573244.241673161275685 ], [ 3739326.31655189068988, 5572212.901111060753465 ], [ 3739241.605420134961605, 5574093.036808216013014 ], [ 3739434.552854179404676, 5577203.285217555239797 ], [ 3742486.88466526241973, 5578449.297283021733165 ], [ 3743195.698030634783208, 5582355.619254254736006 ], [ 3745193.616463465616107, 5582337.129896971397102 ], [ 3746473.449683679267764, 5585825.585223335772753 ], [ 3747626.353403460234404, 5584884.130324793048203 ], [ 3748912.741093137301505, 5585829.254802440293133 ], [ 3748055.406660733744502, 5587558.010741391219199 ], [ 3750352.821555800270289, 5590539.87686912342906 ], [ 3756120.740906673483551, 5592694.691901732236147 ], [ 3761319.851808167994022, 5592839.135161161422729 ], [ 3763640.022545332554728, 5590744.539587195031345 ], [ 3765088.066164024174213, 5592806.126774789765477 ], [ 3765805.504067606292665, 5596155.763985391706228 ], [ 3769294.493140616454184, 5597216.168350159190595 ], [ 3771777.307420271914452, 5598447.61954506020993 ], [ 3777517.269274128600955, 5594550.152100934647024 ], [ 3779174.767910319380462, 5592537.95446698833257 ], [ 3783064.905809750314802, 5594402.989793696440756 ], [ 3785531.590503603219986, 5597960.613069591112435 ], [ 3785292.918592177331448, 5602363.352759633213282 ], [ 3785793.407418191898614, 5605369.051127099432051 ], [ 3788786.980039114132524, 5603216.049936227500439 ], [ 3791820.629771676845849, 5604376.48924214206636 ], [ 3793817.67619692441076, 5606252.661121785640717 ], [ 3794767.486478177830577, 5605092.483013670891523 ], [ 3797984.086632254999131, 5604942.84390078112483 ], [ 3798942.971542614977807, 5607534.35722359828651 ], [ 3800863.902500619180501, 5612604.557866881601512 ], [ 3800719.00320157315582, 5615129.840504218824208 ], [ 3804603.223441467620432, 5614803.464634914882481 ], [ 3804588.826225992757827, 5613150.133053756318986 ], [ 3807322.295576164498925, 5613640.182172295637429 ], [ 3807666.494451082311571, 5617185.059356661513448 ], [ 3810002.666366584599018, 5618754.134881952777505 ], [ 3809885.218344220891595, 5622598.770956395193934 ], [ 3811567.728737420868129, 5620278.020765405148268 ], [ 3813154.783157257828861, 5617730.618035649880767 ], [ 3816631.800540513824672, 5616838.365389060229063 ], [ 3818528.980083230417222, 5620146.826872535049915 ], [ 3820138.351486396510154, 5620905.539194607175887 ], [ 3819241.415794375818223, 5622941.702673432417214 ], [ 3820589.658701670821756, 5624344.438851588405669 ], [ 3820804.910515702795237, 5626227.419903922826052 ], [ 3819791.884480574168265, 5628364.13313468080014 ], [ 3823876.049646253697574, 5630044.886930740438402 ], [ 3825460.674490362405777, 5629374.150745071470737 ], [ 3827690.549742918461561, 5630722.753537888638675 ], [ 3829240.189858032856137, 5632358.759236394427717 ], [ 3833741.381344829220325, 5630886.665362003259361 ], [ 3835823.814404712989926, 5632778.79919742513448 ], [ 3839809.57790264301002, 5632487.659409415908158 ], [ 3842376.606729364022613, 5631996.142137260176241 ], [ 3843445.237223695032299, 5632506.12609598506242 ], [ 3843768.665056216064841, 5634285.857123780995607 ], [ 3845552.902452688198537, 5633964.343297033570707 ], [ 3845882.751379332505167, 5635634.421999706886709 ], [ 3844655.647528459317982, 5637530.159447366371751 ], [ 3845015.252021585591137, 5640408.523520876653492 ], [ 3848266.043823816813529, 5639527.474278996698558 ], [ 3849631.292850653175265, 5642143.735014835372567 ], [ 3852193.607557627372444, 5643304.407770987600088 ], [ 3853370.509702744428068, 5642177.166409933008254 ], [ 3858058.244092615321279, 5642827.346514443866909 ], [ 3860739.176678330637515, 5645427.098640786483884 ], [ 3864651.863971631042659, 5647675.155172302387655 ], [ 3868303.865829121787101, 5650455.49470139015466 ], [ 3868453.576860548462719, 5652987.293692287988961 ], [ 3871296.134664352517575, 5653190.297076079063118 ], [ 3872913.080978018697351, 5652100.729297350160778 ], [ 3876138.209241904318333, 5653101.258640002459288 ], [ 3878799.779436421580613, 5654281.763115962035954 ], [ 3878304.489329853560776, 5656546.711064988747239 ], [ 3879908.626702595502138, 5658635.955835712142289 ], [ 3877372.649784710258245, 5658778.769319750368595 ], [ 3873642.486421301960945, 5660259.489899774082005 ], [ 3873235.278182575013489, 5662856.40735577698797 ], [ 3870881.069638357497752, 5663561.869010458700359 ], [ 3869470.482533756643534, 5664882.406933111138642 ], [ 3870186.647737168706954, 5668650.290464341640472 ], [ 3872123.148852197919041, 5672176.251362370327115 ], [ 3874116.987340273335576, 5670354.607665712945163 ], [ 3877635.807600828818977, 5670174.337916933000088 ], [ 3878340.289480796549469, 5668040.137615696527064 ], [ 3881417.001703299582005, 5667938.896000509150326 ], [ 3883064.431431839708239, 5669372.928906513378024 ], [ 3888997.140150122344494, 5667739.8405701527372 ], [ 3888961.934402021113783, 5666752.781339449808002 ], [ 3892023.850398609414697, 5666875.233139554969966 ], [ 3893338.353903179056942, 5664020.649399837478995 ], [ 3891158.190800605807453, 5659474.878535458818078 ], [ 3890104.731355381198227, 5657423.090989323332906 ], [ 3892129.193082225974649, 5656808.973944171331823 ], [ 3894827.737983160186559, 5657452.652578229084611 ], [ 3897458.780000742990524, 5658969.336797493509948 ], [ 3897171.9116838183254, 5655549.085117362439632 ], [ 3896271.607996895909309, 5654383.446695215068758 ], [ 3894939.189184807706624, 5650222.260358816944063 ], [ 3900965.669202022720128, 5649147.84597579203546 ], [ 3902717.484788775909692, 5647855.888542323373258 ], [ 3905445.77613417385146, 5648178.216958883218467 ], [ 3907046.862452036235482, 5647424.744623495265841 ], [ 3909026.233708560932428, 5647470.513458472676575 ], [ 3910069.637819682713598, 5652385.177885238081217 ], [ 3909865.309848226606846, 5653576.397182139568031 ], [ 3913082.410075725521892, 5658768.88069938775152 ], [ 3915410.742858809418976, 5663997.593522780574858 ], [ 3917012.611035787500441, 5671353.094391087070107 ], [ 3918296.957832679152489, 5677143.973583422601223 ], [ 3919504.542406174354255, 5687834.231917208991945 ], [ 3920672.771858642809093, 5694907.032213196158409 ], [ 3920284.027654484380037, 5702277.906722805462778 ], [ 3916463.925518930424005, 5706313.800851550884545 ], [ 3915285.635153631679714, 5712734.544092117808759 ], [ 3915008.205929875839502, 5718786.992313132621348 ], [ 3911838.72823394369334, 5721671.671947702765465 ], [ 3907542.996553308330476, 5722407.63689452689141 ], [ 3903103.416968822944909, 5724975.725576804019511 ], [ 3897542.520291690248996, 5726699.96311570610851 ], [ 3896245.534509391989559, 5729409.967081543058157 ], [ 3898500.509518878068775, 5733802.266504067927599 ], [ 3898348.651361923664808, 5739836.77102857735008 ], [ 3896200.332342120353132, 5743766.076700169593096 ], [ 3891487.09427963802591, 5747384.29760904982686 ], [ 3890574.56668200623244, 5753557.032989542 ], [ 3888437.580468225758523, 5756079.847011269070208 ], [ 3885742.359704523347318, 5757484.134529687464237 ], [ 3885372.002301629632711, 5760893.872864078730345 ], [ 3888096.617191788740456, 5763252.3663928527385 ], [ 3892196.794025591574609, 5768616.83880356233567 ], [ 3892632.152710522990674, 5774012.137072905898094 ], [ 3894115.599812015891075, 5779699.031685368157923 ], [ 3894972.631552360020578, 5785116.966093302704394 ], [ 3893581.534340028651059, 5787786.130199570208788 ], [ 3890777.183824066072702, 5789380.913124461658299 ], [ 3888569.729216711595654, 5792944.990928837098181 ], [ 3889726.900846492499113, 5795917.421942629851401 ], [ 3890172.28518925793469, 5798405.867914486676455 ], [ 3888903.454182128887624, 5799585.361395683139563 ], [ 3890027.523497267160565, 5801592.656182849779725 ], [ 3889905.114240184891969, 5805844.128890166059136 ], [ 3888247.102217198815197, 5806565.065330009907484 ], [ 3882656.58084465470165, 5808469.249768460169435 ], [ 3880234.041036660317332, 5810834.403206677176058 ], [ 3880731.198938641697168, 5811298.160065221600235 ], [ 3878816.152385847177356, 5815401.533867488615215 ], [ 3876652.399458919186145, 5821392.686789776198566 ], [ 3877092.396654475945979, 5825350.62587003223598 ], [ 3879091.297345243860036, 5826988.96576280053705 ], [ 3882498.281371041666716, 5832339.281443700194359 ], [ 3882350.060754121746868, 5834233.360282779671252 ], [ 3881221.47015118971467, 5835097.70364648476243 ], [ 3880917.736755230929703, 5838988.048479683697224 ], [ 3882535.770093734376132, 5841334.883136425167322 ], [ 3879405.847002695314586, 5844788.118399401195347 ], [ 3871500.854137918446213, 5849877.344673019833863 ], [ 3866640.257241865620017, 5854041.000506401993334 ], [ 3862160.876345915254205, 5858864.291369445621967 ], [ 3856376.902230790816247, 5861486.168679472059011 ], [ 3853638.720928938128054, 5864333.985031346790493 ], [ 3851771.953848134726286, 5866824.332399304024875 ], [ 3847350.529758316930383, 5866819.612195742316544 ], [ 3845338.447944106534123, 5868460.235444736666977 ], [ 3846452.133862742222846, 5872002.866743963211775 ], [ 3846861.614577474072576, 5876540.917836175300181 ], [ 3845710.982599182985723, 5880857.880886669270694 ], [ 3845807.479627902153879, 5882435.174994660541415 ], [ 3849681.634586024098098, 5885436.37144530005753 ], [ 3854481.854157145135105, 5888612.59417827706784 ], [ 3858727.026504829060286, 5893527.765895562246442 ], [ 3860205.582850014325231, 5900321.679272799752653 ], [ 3860739.986647294368595, 5904325.677436962723732 ], [ 3858347.318934781476855, 5906959.643038901500404 ], [ 3859097.22065301053226, 5910869.979741984046996 ], [ 3861679.16217056941241, 5913980.012699580751359 ], [ 3863619.950443720910698, 5917248.956983144395053 ], [ 3862210.696277414448559, 5919324.832144322805107 ], [ 3860233.158865793142468, 5924784.39159846957773 ], [ 3858552.09466500626877, 5929119.357846072874963 ], [ 3857717.564035345800221, 5934654.2578652407974 ], [ 3855171.982983477413654, 5940881.22075732331723 ], [ 3854527.476558213122189, 5943935.597366889938712 ], [ 3852400.277569544501603, 5946050.187352763488889 ], [ 3851616.722759102005512, 5949607.364094331860542 ], [ 3852580.257987612858415, 5956077.816162295639515 ], [ 3849416.085709900595248, 5958315.387874973937869 ], [ 3849225.238656923174858, 5960877.051389093510807 ], [ 3848490.837490907870233, 5963808.613355265930295 ], [ 3847969.858788084238768, 5966651.315098694525659 ], [ 3847153.169963970314711, 5970703.895104909315705 ], [ 3848404.598714721854776, 5973263.388607643544674 ], [ 3847126.08941642800346, 5975222.370868641883135 ], [ 3842306.220610584132373, 5983380.822239859960973 ], [ 3842055.818560723215342, 5988177.143582530319691 ], [ 3840918.038545733783394, 5988298.260834409855306 ], [ 3841179.362973350100219, 5988931.705752913840115 ], [ 3842192.431896094698459, 5989108.622355900704861 ], [ 3840124.111086568329483, 5992128.893822520971298 ], [ 3836528.07627619523555, 5996467.294168918393552 ], [ 3830096.005070522427559, 6001926.714695753529668 ], [ 3825287.936896343715489, 6004849.845059881918132 ], [ 3821201.844556387979537, 6006296.751869357191026 ], [ 3817508.110044788103551, 6009504.76006458606571 ], [ 3815559.110609824769199, 6012628.2958875419572 ], [ 3814525.595302366651595, 6015812.593641201965511 ], [ 3812374.654038909357041, 6015971.108908070251346 ], [ 3809778.813840273302048, 6013660.167321825399995 ], [ 3810856.172438477165997, 6011290.994475170969963 ], [ 3812699.170466981362551, 6009685.247450346127152 ], [ 3814312.60594163602218, 6008471.197386899031699 ], [ 3815102.191506309900433, 6005876.401914129033685 ], [ 3814387.411642957478762, 6002871.683019595220685 ], [ 3813792.423173900227994, 6001097.582835406064987 ], [ 3812734.765973706264049, 6000107.874244066886604 ], [ 3813584.92423349339515, 5998124.621058972552419 ], [ 3815117.383426785003394, 5999657.405717846006155 ], [ 3815598.668185557238758, 6000098.339933203533292 ], [ 3818350.909517375286669, 6001715.195427712053061 ], [ 3820021.17661928711459, 6001218.428985885344446 ], [ 3818967.951326082926244, 5998696.602521911263466 ], [ 3818339.014142722822726, 5997428.309621640481055 ], [ 3820600.843805714510381, 5997278.070353273302317 ], [ 3822612.33334398875013, 5999255.450895296409726 ], [ 3822165.396366210654378, 6001265.297379594296217 ], [ 3822090.287061945535243, 6003810.049904906190932 ], [ 3825714.615339929237962, 6003146.230748705565929 ], [ 3827529.260290835052729, 6000621.622595163062215 ], [ 3828400.351152353454381, 5998437.446402784436941 ], [ 3829513.328229235485196, 5998618.661438570357859 ], [ 3831557.306061188690364, 5995802.28364584222436 ], [ 3831426.091278413310647, 5993339.893814634531736 ], [ 3830893.825760428793728, 5990745.345366813242435 ], [ 3829203.903412165120244, 5991443.359282188117504 ], [ 3829488.980940259993076, 5993201.830792748369277 ], [ 3827049.24052733136341, 5992926.876620600000024 ], [ 3826085.011663523502648, 5990609.498445996083319 ], [ 3824438.641294470056891, 5990698.635787636041641 ], [ 3824412.541935313958675, 5992537.21607933472842 ], [ 3825747.121908552013338, 5993959.545821349136531 ], [ 3825836.580149458255619, 5995600.741319499909878 ], [ 3823689.601770301349461, 5995552.398365689441562 ], [ 3821855.437051408924162, 5995424.613865301944315 ], [ 3821880.633335412945598, 5993587.260404518805444 ], [ 3821796.73431309312582, 5991843.849779789336026 ], [ 3824305.743323993869126, 5989666.591411430388689 ], [ 3824322.042061796877533, 5986495.784550337120891 ], [ 3823428.641705371439457, 5984590.801889563910663 ], [ 3822375.753491351380944, 5983493.667432649061084 ], [ 3819782.580594954546541, 5982392.91536043677479 ], [ 3818005.957522900309414, 5981349.262659789994359 ], [ 3817926.876398161519319, 5979499.543670936487615 ], [ 3819971.780043373350054, 5979639.588933923281729 ], [ 3821187.900747263804078, 5978390.752438402734697 ], [ 3823709.250050269532949, 5979077.849297716282308 ], [ 3825930.391790833789855, 5979642.794376843608916 ], [ 3829305.8130545578897, 5981315.276018842123449 ], [ 3831971.026225287932903, 5982836.814950498752296 ], [ 3835343.056173400022089, 5983078.647248992696404 ], [ 3839744.233914831653237, 5983295.502931435592473 ], [ 3841693.135043901856989, 5983335.75089196767658 ], [ 3842548.111940761096776, 5982886.127058120444417 ], [ 3848097.373533959966153, 5973240.467052654363215 ], [ 3847122.784433279652148, 5971112.767836498096585 ], [ 3844918.384478706866503, 5971668.826793747022748 ], [ 3843581.939886667765677, 5970234.325936361216009 ], [ 3841249.520946009550244, 5968315.866357866674662 ], [ 3840574.844139227643609, 5969089.101315757259727 ], [ 3836687.408751669805497, 5968704.67504149209708 ], [ 3834439.792970782145858, 5969879.31200283113867 ], [ 3831519.804017058573663, 5970390.402397912926972 ], [ 3826115.942458458244801, 5972577.326063128188252 ], [ 3823452.826516568195075, 5975368.150790618732572 ], [ 3820221.262711521238089, 5977504.015669897198677 ], [ 3816932.178310172632337, 5979021.811006994917989 ], [ 3816138.546738297212869, 5981631.785931341350079 ], [ 3817205.015792998485267, 5984059.694228403270245 ], [ 3821516.051772620528936, 5987017.175704867579043 ], [ 3822518.737237338442355, 5988826.05731981061399 ], [ 3820689.044716849457473, 5991562.677708619274199 ], [ 3818143.726520751602948, 5992818.363634699955583 ], [ 3815387.227404770907015, 5995694.71714888792485 ], [ 3811684.292087491601706, 5997485.930742738768458 ], [ 3810943.517384564504027, 5999375.005022188648582 ], [ 3812176.781638809479773, 6002313.98266426473856 ], [ 3813921.817398926243186, 6006712.982908229343593 ], [ 3812253.037583652418107, 6008738.655122142285109 ], [ 3808392.064613906666636, 6011532.477427837438881 ], [ 3806734.16166792018339, 6013456.363565259613097 ], [ 3807992.562500847037882, 6014455.632723518647254 ], [ 3806626.264317887835205, 6015076.168979535810649 ], [ 3802659.520258758217096, 6011864.548755905590951 ], [ 3798811.760882809758186, 6009883.921152976341546 ], [ 3794064.106386752799153, 6009171.685126464813948 ], [ 3792687.07569847535342, 6008371.782942567951977 ], [ 3794685.88600092055276, 6004222.805990059860051 ], [ 3791088.546243601478636, 6004605.794178533367813 ], [ 3789505.91277037281543, 6008679.793153521604836 ], [ 3787728.793438333552331, 6011009.784827677533031 ], [ 3788813.782599210273474, 6013212.705813540145755 ], [ 3786873.546122521162033, 6014920.632212925702333 ], [ 3783029.227954701986164, 6012853.580367775633931 ], [ 3782511.458777102641761, 6014650.824821609072387 ], [ 3781234.70441169384867, 6017213.246092568151653 ], [ 3779768.913745779544115, 6019559.932232212275267 ], [ 3776112.770517634693533, 6021164.903081224299967 ], [ 3774074.752143368124962, 6021245.684098690748215 ], [ 3771869.300013697240502, 6024156.122327806428075 ], [ 3768564.19647551747039, 6023353.374325577169657 ], [ 3767523.414402691181749, 6025521.87589046638459 ], [ 3768292.354436634108424, 6027997.564554531127214 ], [ 3765248.221741194836795, 6029743.695151202380657 ], [ 3765109.748743453063071, 6033883.330772624351084 ], [ 3764280.34460795391351, 6035958.266693005338311 ], [ 3762765.899476274382323, 6035870.94380324985832 ], [ 3761018.105369170662016, 6038094.656807157211006 ], [ 3761093.247822588775307, 6040320.691884091123939 ], [ 3762430.087666644249111, 6041709.750470524653792 ], [ 3759998.580624234862626, 6041772.375258774496615 ], [ 3758940.825581229291856, 6040803.775463434867561 ], [ 3756470.40269632358104, 6039755.681054452434182 ], [ 3752804.307394893839955, 6036521.521206941455603 ], [ 3753055.784843786619604, 6033807.058794326148927 ], [ 3750938.731402240227908, 6031769.543922696262598 ], [ 3748631.074460600502789, 6031340.235107620246708 ], [ 3747426.784799127839506, 6032993.680331636220217 ], [ 3745857.339145273901522, 6033919.736923540011048 ], [ 3746136.529551450163126, 6036258.490557551383972 ], [ 3744661.555840937420726, 6033552.429880760610104 ], [ 3743667.625503038056195, 6033196.178480857983232 ], [ 3743108.997815452050418, 6034176.993536909110844 ], [ 3742253.470986216794699, 6033121.062001348473132 ], [ 3741280.492322136182338, 6036201.49111932143569 ], [ 3740791.782335953786969, 6037791.310700886882842 ], [ 3737455.092099911998957, 6035799.123348211869597 ], [ 3738703.303173653781414, 6035157.144828265532851 ], [ 3734081.673467176035047, 6032493.485683113336563 ], [ 3733330.043289718218148, 6031343.380345672369003 ], [ 3731980.673528867773712, 6031982.251434212550521 ], [ 3730419.51835469994694, 6032812.78634455986321 ], [ 3729773.173329246696085, 6031567.692819925956428 ], [ 3731117.212575062178075, 6031028.951015931554139 ], [ 3730773.995509297586977, 6029798.554891315288842 ], [ 3729621.729109869338572, 6028527.254869546741247 ], [ 3727928.02172327041626, 6027937.018797882832587 ], [ 3725116.533024829346687, 6027393.482239477336407 ], [ 3726424.75954246846959, 6025535.835066474042833 ], [ 3725487.495060288812965, 6023971.663806582801044 ], [ 3722100.292317955289036, 6022692.994664092548192 ], [ 3722516.560699354391545, 6020384.161762323230505 ], [ 3725199.394957223441452, 6019501.900499909184873 ], [ 3726778.776370322797447, 6018363.643743954598904 ], [ 3726119.202826383989304, 6017317.633085707202554 ], [ 3723039.401978814974427, 6017977.9983922354877 ], [ 3721364.47513691522181, 6019011.613713788799942 ], [ 3719275.529880725312978, 6020228.299805155955255 ], [ 3720119.265075228177011, 6021686.388792828656733 ], [ 3719212.75581233901903, 6023667.572833340615034 ], [ 3719617.254350285045803, 6025811.75805654656142 ], [ 3720836.031494583468884, 6025769.135930905118585 ], [ 3721523.358021774329245, 6028330.727622084319592 ], [ 3720569.689016116317362, 6029194.597934174351394 ], [ 3722196.840759535320103, 6029071.065916651859879 ], [ 3723244.894790519960225, 6030436.108291476964951 ], [ 3722959.268658598419279, 6032140.026833917014301 ], [ 3724425.143682877533138, 6033221.913167136721313 ], [ 3726738.112371258437634, 6033538.016386386938393 ], [ 3728798.290063797496259, 6032832.442932987585664 ], [ 3730848.264600807335228, 6034349.711179758422077 ], [ 3732937.980043532326818, 6035061.708327089436352 ], [ 3734258.5030502891168, 6036946.775469387881458 ], [ 3735911.757200521882623, 6038243.214857249520719 ], [ 3737961.108212190214545, 6037743.894668837077916 ], [ 3740823.658936268649995, 6039105.251171295531094 ], [ 3742193.80096535384655, 6038067.363417882472277 ], [ 3745321.737821755930781, 6038234.333982950076461 ], [ 3746485.969277562573552, 6037287.288985782302916 ], [ 3749324.717875947710127, 6039056.920759504660964 ], [ 3751465.456641239579767, 6038770.484320494346321 ], [ 3754458.529945777263492, 6039542.118886507116258 ], [ 3755623.951427319552749, 6040414.86443118005991 ], [ 3757959.185003742109984, 6042060.267913053743541 ], [ 3755007.152474541217089, 6042398.785698775202036 ], [ 3751399.981268565170467, 6041794.917994506657124 ], [ 3746666.56720372941345, 6041435.590234220027924 ], [ 3739502.185492270626128, 6041154.697005128487945 ], [ 3734843.127078706398606, 6041315.946868452243507 ], [ 3729635.086897281929851, 6042361.719952314160764 ], [ 3728138.320885144174099, 6044000.263294978998601 ], [ 3728767.940376318059862, 6045543.378206262364984 ], [ 3726581.882752718869597, 6044829.57412367593497 ], [ 3725769.796274413820356, 6042874.389445617794991 ], [ 3725186.847372009884566, 6038307.203973875381052 ], [ 3723998.714390577748418, 6035725.575150183402002 ], [ 3720491.004156142938882, 6032929.566381332464516 ], [ 3719875.989780278410763, 6030980.455938110128045 ], [ 3717170.997069503180683, 6028223.445105090737343 ], [ 3717430.007851812522858, 6024898.193870973773301 ], [ 3714748.144796086009592, 6021533.271084840409458 ], [ 3712364.798926087561995, 6020409.937135866843164 ], [ 3708534.236759637016803, 6017601.099382697604597 ], [ 3705679.470627882052213, 6013317.076930527575314 ], [ 3705582.560963278170675, 6013211.350209499709308 ], [ 3704367.235640893224627, 6010824.51767501886934 ], [ 3699848.767275876831263, 6009510.317855437286198 ], [ 3693690.658139432780445, 6008435.702488843351603 ], [ 3690407.059879276435822, 6006675.127723609097302 ], [ 3688408.812814397271723, 6005780.994439611211419 ], [ 3684040.589266420342028, 6005604.719556323252618 ], [ 3680156.496599656529725, 6006060.482165691442788 ], [ 3675085.353797282092273, 6005662.29970726557076 ], [ 3671932.824757600668818, 6002904.291240676306188 ], [ 3671933.047460834030062, 6000161.712918213568628 ], [ 3671827.644010708667338, 5997515.263955920934677 ], [ 3669059.909657659940422, 5995176.238214493729174 ], [ 3669035.928434316068888, 5993038.967825968749821 ], [ 3666751.682976705022156, 5991327.871624678373337 ], [ 3664946.507073573302478, 5990448.939264009706676 ], [ 3662227.984403604175895, 5986483.000469360500574 ], [ 3662651.523339381907135, 5983134.362195494584739 ], [ 3662871.2521534524858, 5979776.177587747573853 ], [ 3661494.22465406358242, 5978197.475895876996219 ], [ 3658925.789222318213433, 5978517.341157169081271 ], [ 3656830.826976154465228, 5979976.812364197336137 ], [ 3658508.176196332555264, 5981767.639744437299669 ], [ 3656170.109076574910432, 5981382.603831958957016 ], [ 3654624.93631299212575, 5981738.902033882215619 ], [ 3653434.612719595897943, 5983738.503827882930636 ], [ 3651074.579556458164006, 5980908.381289593875408 ], [ 3648837.783996753860265, 5980530.324519597925246 ], [ 3647448.808551948517561, 5982423.488371020182967 ], [ 3647782.667416546493769, 5984778.280985984019935 ], [ 3648645.566185598261654, 5986537.733906109817326 ], [ 3645579.410863374825567, 5986644.305157721973956 ], [ 3643470.403510181698948, 5988818.80433077737689 ], [ 3640504.846709623932838, 5989033.430624036118388 ], [ 3633890.674955031834543, 5988430.668406412936747 ], [ 3628061.871624656487256, 5985211.493438999168575 ], [ 3625061.642700591590255, 5982888.460956374183297 ], [ 3623538.758175417315215, 5982542.018510132096708 ], [ 3623360.939891994465142, 5985389.746848962269723 ], [ 3620284.747867436148226, 5985920.020641611889005 ], [ 3619154.936340152751654, 5986196.347556664608419 ], [ 3615305.386085841804743, 5989152.597783781588078 ], [ 3614702.638933064416051, 5992900.839564746245742 ], [ 3617578.598124216776341, 5996022.030784356407821 ], [ 3619585.181020395830274, 5997190.966657686978579 ], [ 3622560.127815623302013, 5996354.516834427602589 ], [ 3626140.682375621516258, 5999497.935413821600378 ], [ 3630042.858900194987655, 6005491.831297133117914 ], [ 3633234.458409746643156, 6007610.801031122915447 ], [ 3637437.938445141073316, 6009761.294675259850919 ], [ 3636398.014385366346687, 6017425.26873295288533 ], [ 3635831.303666833788157, 6022868.104215316474438 ], [ 3635131.936384604312479, 6025978.740311385132372 ], [ 3637105.992037691175938, 6027652.735205392353237 ], [ 3639256.170031713321805, 6030139.634154226630926 ], [ 3638818.416685725096613, 6031235.995821256190538 ], [ 3635574.331812719348818, 6031542.128796365112066 ], [ 3634136.185552867129445, 6028876.806608921848238 ], [ 3632323.031344205606729, 6028622.215504952706397 ], [ 3625827.451684121508151, 6029448.043566320091486 ], [ 3622437.933770126197487, 6027640.811726442538202 ], [ 3620573.184138350188732, 6025471.583947250619531 ], [ 3616129.822868337389082, 6021114.568310817703605 ], [ 3612989.503001395147294, 6021137.231254814192653 ], [ 3609121.560775980819017, 6021952.949824293144047 ], [ 3606034.203942938242108, 6024102.523656030185521 ], [ 3603944.780373683199286, 6026981.947867111302912 ], [ 3598431.819304782897234, 6029382.075281332246959 ], [ 3595165.199908215552568, 6030926.24999563023448 ], [ 3590865.173918840009719, 6033761.328385912813246 ], [ 3587920.620899152942002, 6034610.322936806827784 ], [ 3584895.028692354913801, 6034452.377030610106885 ], [ 3581692.645633881911635, 6032882.931262120604515 ], [ 3579788.619642806705087, 6032043.205590416677296 ], [ 3577820.630791730247438, 6028985.207703548483551 ], [ 3577572.168072968255728, 6025753.117762702517211 ], [ 3576104.1117475903593, 6022801.308350095525384 ], [ 3574813.553303983993828, 6021265.291233776137233 ], [ 3574465.663523115217686, 6023985.877401391044259 ], [ 3574331.777493017725646, 6026002.105266426689923 ], [ 3575895.904716937802732, 6029255.381189533509314 ], [ 3577293.306442660279572, 6030286.946996293962002 ], [ 3576949.579184582922608, 6032699.874535360373557 ], [ 3576890.240706387907267, 6036223.897661622613668 ], [ 3577674.992212505079806, 6037545.79078642744571 ], [ 3574813.283204010222107, 6039812.267928255721927 ], [ 3571077.493545711971819, 6040154.867030277848244 ], [ 3564245.037148574367166, 6038544.508196053095162 ], [ 3558028.478378171101213, 6035743.866404894739389 ], [ 3555090.671247178222984, 6036714.062961063347757 ], [ 3553966.897324731107801, 6037908.24919056892395 ], [ 3559584.787068200763315, 6040191.345246435143054 ], [ 3563388.093420676421374, 6042153.198028391227126 ], [ 3566064.425076221115887, 6045206.30196550115943 ], [ 3566315.203580655623227, 6048725.041971346363425 ], [ 3567385.31338122440502, 6057967.624278583563864 ], [ 3567647.609812436625361, 6060575.743284944444895 ], [ 3566405.381215043365955, 6063160.065788928419352 ], [ 3564362.767563796136528, 6065731.74424010142684 ], [ 3562891.432223541196436, 6070609.209251622669399 ], [ 3560955.523667989298701, 6073079.659824595786631 ], [ 3558829.530779158230871, 6074948.215923575684428 ], [ 3557673.998887941241264, 6071438.592247040942311 ], [ 3556590.489519403316081, 6070026.249422416090965 ], [ 3553076.67631616583094, 6070782.82060684543103 ], [ 3552046.776633912697434, 6073267.578044282272458 ], [ 3550526.952917625661939, 6074947.287820353172719 ], [ 3546624.263458918314427, 6075104.819875131361187 ], [ 3541807.937914241570979, 6076753.792426519095898 ], [ 3539092.153807563241571, 6078624.422683315351605 ], [ 3537474.945653808303177, 6080803.904797994531691 ], [ 3539555.858869717922062, 6082715.047184738330543 ], [ 3538353.496481058653444, 6083202.732383102178574 ], [ 3535878.380624684970826, 6080591.541057301685214 ], [ 3531601.35056213894859, 6077967.245022288523614 ], [ 3530312.121341595426202, 6076462.201856628060341 ], [ 3529126.559532237239182, 6074259.098911981098354 ], [ 3528525.755083577241749, 6074355.062290877103806 ], [ 3528017.54898785520345, 6075649.177612939849496 ], [ 3527707.112792796455324, 6077343.170737358741462 ], [ 3527302.429359105415642, 6078138.553843031637371 ], [ 3526695.078588108066469, 6079431.124257008545101 ], [ 3524400.84816991025582, 6078720.174671530723572 ], [ 3523513.470992925576866, 6076421.549449931830168 ], [ 3521822.026053374167532, 6074716.797060671262443 ], [ 3520019.923130665905774, 6075107.589370651170611 ], [ 3516518.126046721357852, 6075492.499923293478787 ], [ 3514906.866170011926442, 6078878.067467384971678 ], [ 3515402.050149623304605, 6080175.702469152398407 ], [ 3511302.014361139852554, 6081857.656631960533559 ], [ 3506807.12502259016037, 6082645.586997093632817 ], [ 3503512.498904316686094, 6082442.527247777208686 ], [ 3500516.901155684608966, 6084134.438620503991842 ], [ 3498122.152735123876482, 6085727.889748476445675 ], [ 3493632.789508264046162, 6086030.63562573492527 ], [ 3490538.361381174996495, 6085239.642211005091667 ], [ 3488944.994919380173087, 6086537.404741224832833 ], [ 3486147.556667842436582, 6085151.436336082406342 ], [ 3483951.904921564739197, 6085059.155766732059419 ], [ 3481957.734690066426992, 6085464.957368570379913 ], [ 3479468.249222930520773, 6086570.648820630274713 ], [ 3476678.167309266049415, 6087005.580536222085357 ]
+]
+}
\ No newline at end of file
diff --git a/MessagesMap/geo/gre_ger_ver_gauss.geojson b/MessagesMap/geo/gre_ger_ver_gauss.geojson
new file mode 100644
index 000000000..b93b8c51c
--- /dev/null
+++ b/MessagesMap/geo/gre_ger_ver_gauss.geojson
@@ -0,0 +1,18 @@
+{
+"type": "FeatureCollection",
+"name": "gre_ger_ver_gauss",
+"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::31467" } },
+"features": [
+{ "type": "Feature", "properties": { "id": 1 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 1 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3476677.303190048318356, 6087007.257444866932929 ], [ 3476616.822004675399512, 6084966.811360620893538 ], [ 3473668.040791889186949, 6084136.65482482034713 ], [ 3474958.085608421824872, 6082784.623404480516911 ], [ 3474686.09936313983053, 6078799.581815544515848 ], [ 3477666.907604074571282, 6075342.610363858751953 ], [ 3478458.137393671087921, 6073492.401157525368035 ], [ 3479258.72941018268466, 6073538.567376623861492 ], [ 3481041.117867288179696, 6069136.443714180961251 ], [ 3481084.92734553059563, 6067637.231298245489597 ], [ 3480178.321920018643141, 6066491.516745407134295 ], [ 3480225.367629409302026, 6065791.416873103938997 ], [ 3482030.445277167484164, 6066083.865732400678098 ], [ 3483378.506749597843736, 6064778.721244581975043 ], [ 3483974.459224163554609, 6063226.091161146759987 ], [ 3483968.806775116827339, 6061625.055352501571178 ], [ 3485367.320772295352072, 6059818.473003786057234 ], [ 3487271.696009595412761, 6059011.685488608665764 ], [ 3488722.168830782175064, 6057054.701115871779621 ], [ 3488919.456368356477469, 6055601.327695346437395 ], [ 3489869.808718715794384, 6053870.073632965795696 ], [ 3489088.997096770443022, 6052994.578761538490653 ], [ 3487630.804641078226268, 6052647.335497889667749 ], [ 3487955.332369572483003, 6051844.152047887444496 ], [ 3488607.613161220215261, 6051391.110381573438644 ], [ 3489238.623185290955007, 6052517.903995002619922 ], [ 3490645.543693324085325, 6052414.511348939500749 ], [ 3491600.308246622327715, 6052362.507246378809214 ], [ 3492179.24110572738573, 6052938.084833488799632 ], [ 3492278.427850613836199, 6052160.730622250586748 ], [ 3492552.921309833880514, 6050981.703681353479624 ], [ 3491820.470023844856769, 6049026.361397593282163 ], [ 3491916.337048817425966, 6046365.880419854074717 ], [ 3491837.571855330374092, 6044533.019575617276132 ], [ 3490424.542005356401205, 6042903.018327214755118 ], [ 3488986.826742523815483, 6041901.200352019630373 ], [ 3487902.959149586502463, 6041577.248776316642761 ], [ 3487447.089427972212434, 6040673.673030675388873 ], [ 3487848.103307355660945, 6039893.309557938948274 ], [ 3488376.412795174401253, 6039565.102359182201326 ], [ 3487212.267653345130384, 6037782.777916644699872 ], [ 3488747.531551353633404, 6036772.5651326905936 ], [ 3491344.281854037661105, 6036590.818132951855659 ], [ 3493260.651203465182334, 6036587.600898121483624 ], [ 3494648.877097764518112, 6037768.053973471745849 ], [ 3495532.680629992857575, 6039301.104760761372745 ], [ 3496718.211747415363789, 6040858.722266473807395 ], [ 3497097.05774338170886, 6042391.427392679266632 ], [ 3498835.000953202601522, 6043571.445409429259598 ], [ 3499288.190216931048781, 6043621.594292171299458 ], [ 3499842.018962797708809, 6041762.324521061964333 ], [ 3500774.142192447092384, 6040556.009328267537057 ], [ 3501001.161251977551728, 6039324.209037479013205 ], [ 3500547.610257353633642, 6038896.676230365410447 ], [ 3500295.591036630328745, 6038796.068267208524048 ], [ 3500799.714126588311046, 6038469.222843501716852 ], [ 3500446.927848208229989, 6037664.372356803156435 ], [ 3498757.581189809367061, 6036482.201649500988424 ], [ 3497320.008458916097879, 6036029.930034782737494 ], [ 3495931.345742169767618, 6034168.640607496723533 ], [ 3494137.630558690987527, 6032231.968735426664352 ], [ 3492773.114790372550488, 6031226.519073423929513 ], [ 3490676.500464137643576, 6030600.56354686897248 ], [ 3489162.783735713455826, 6031107.682208864949644 ], [ 3487648.182124414946884, 6031161.885515580885112 ], [ 3484312.695420804899186, 6030265.217610725201666 ], [ 3482341.424828741233796, 6029818.884594698436558 ], [ 3480674.634771616198123, 6029800.410619959235191 ], [ 3478908.206775232683867, 6030085.344181993044913 ], [ 3477996.738320228643715, 6029585.711916355416179 ], [ 3477080.912461290601641, 6028254.550017295405269 ], [ 3477379.575982786249369, 6027345.612320648506284 ], [ 3478539.832447910681367, 6026911.455994581803679 ], [ 3479904.242047449573874, 6026880.066496703773737 ], [ 3480101.803682956378907, 6025820.182651890441775 ], [ 3479643.165972984395921, 6024989.932254783809185 ], [ 3478554.028805126436055, 6024540.864729285240173 ], [ 3477412.493434378411621, 6023764.300371735356748 ], [ 3476777.402341734152287, 6023187.159839357249439 ], [ 3475768.219432229176164, 6023646.534396583214402 ], [ 3475060.184485014993697, 6023650.325195582583547 ], [ 3474148.007917058188468, 6023327.368328050710261 ], [ 3474495.186071339063346, 6022088.903486514464021 ], [ 3474441.927685622125864, 6021609.641836904920638 ], [ 3474141.616244169417769, 6022191.833146094344556 ], [ 3473910.235273453872651, 6021536.905754138715565 ], [ 3474182.707033030688763, 6020500.344429734162986 ], [ 3474708.681990761309862, 6019512.672322079539299 ], [ 3475845.500116827897727, 6019102.501202166080475 ], [ 3476699.710459274705499, 6017835.186774375848472 ], [ 3477935.615038743708283, 6016843.789863794110715 ], [ 3479225.334938751067966, 6016433.502446329221129 ], [ 3480390.684009729884565, 6016504.200149700976908 ], [ 3480876.818839738145471, 6017689.628717071376741 ], [ 3482142.117695638444275, 6017507.710238441824913 ], [ 3482953.970881132874638, 6017934.085652164183557 ], [ 3483408.243424926418811, 6017528.238434339873493 ], [ 3484421.493565948214382, 6017651.013177098706365 ], [ 3484876.836277821101248, 6017523.18357397057116 ], [ 3485076.370753273367882, 6016587.713416242040694 ], [ 3486089.781757748220116, 6016710.881793124601245 ], [ 3487357.143783047329634, 6017111.490024683065712 ], [ 3488675.669734642375261, 6017815.428914855234325 ], [ 3489660.672165025025606, 6016726.760208196938038 ], [ 3489961.711308636702597, 6015412.022719726897776 ], [ 3490011.445208260323852, 6014982.233129035681486 ], [ 3491785.766385649330914, 6015484.237369721755385 ], [ 3493054.258189263753593, 6016745.67030805721879 ], [ 3494423.38638886064291, 6018057.503272474743426 ], [ 3495715.754178680013865, 6019318.934935205616057 ], [ 3496501.127805914729834, 6020303.026617791503668 ], [ 3497184.568025426007807, 6020630.765349281020463 ], [ 3497209.735056382138282, 6020403.534698413684964 ], [ 3496626.938052949495614, 6019318.181960014626384 ], [ 3496271.064359024167061, 6017424.111700810492039 ], [ 3495383.716512867249548, 6016313.201293854042888 ], [ 3494445.060474902391434, 6015025.325029075145721 ], [ 3493557.23128197202459, 6014217.566314378753304 ], [ 3492188.937240012455732, 6014219.676489369943738 ], [ 3490465.796297576278448, 6014172.351298003457487 ], [ 3489705.399327688384801, 6014072.859690828248858 ], [ 3489424.519602987449616, 6013137.982663879171014 ], [ 3489396.270064483396709, 6011873.540976386517286 ], [ 3489699.644226006697863, 6011493.435010779649019 ], [ 3489543.397864985279739, 6009672.140033581294119 ], [ 3488398.721078993752599, 6008358.791234686039388 ], [ 3487887.65149036468938, 6006967.687228480353951 ], [ 3487783.394649030640721, 6005929.708095429465175 ], [ 3487374.340646149590611, 6004866.988068813458085 ], [ 3488133.712167686782777, 6003952.94100640527904 ], [ 3488535.208597412332892, 6002000.580343826673925 ], [ 3489344.124714308883995, 6000223.984489561058581 ], [ 3490436.11603883607313, 5999790.509757761843503 ], [ 3490713.178875850513577, 5998521.796330644749105 ], [ 3492062.576726691331714, 5999609.919839192181826 ], [ 3493970.034583770204335, 6000393.157158768735826 ], [ 3495316.664923462551087, 6000036.604230587370694 ], [ 3496204.045478584710509, 5997321.685142442584038 ], [ 3496635.361620070878416, 5995900.251514022238553 ], [ 3497906.500985828693956, 5994020.95537724904716 ], [ 3498822.481232897378504, 5993157.263414944522083 ], [ 3497244.117597866337746, 5992853.166500536724925 ], [ 3497294.824806632939726, 5992497.560236354358494 ], [ 3499076.87488862266764, 5992369.874042908661067 ], [ 3498898.303493827115744, 5990820.254816381260753 ], [ 3497751.613563754130155, 5989448.404544831253588 ], [ 3496707.123435814864933, 5989423.606808953918517 ], [ 3494235.068423153832555, 5988638.041764864698052 ], [ 3492504.350645236670971, 5989809.698533716611564 ], [ 3490874.977210045792162, 5990270.040501957759261 ], [ 3489574.504850093275309, 5989612.027205031365156 ], [ 3489215.278043416794389, 5988494.443721514195204 ], [ 3490155.682392837014049, 5987373.687156686559319 ], [ 3492368.340063839685172, 5984520.798736343160272 ], [ 3493489.048904071096331, 5983526.719524797052145 ], [ 3493459.034774763509631, 5980293.705846439115703 ], [ 3494758.039027869235724, 5977795.738842130638659 ], [ 3496033.422306774184108, 5975934.107598604634404 ], [ 3496748.48243021639064, 5975474.720108155161142 ], [ 3497258.913039631675929, 5974429.09876615088433 ], [ 3498741.000572288874537, 5973510.456161595880985 ], [ 3501450.354571287985891, 5974326.542106374166906 ], [ 3502728.207479953300208, 5974403.614853972569108 ], [ 3504722.662174994125962, 5973461.69496139511466 ], [ 3506410.543320814613253, 5972928.118898688815534 ], [ 3508481.40759842749685, 5972905.927353111095726 ], [ 3510858.726791886147112, 5973038.396658951416612 ], [ 3514437.667801415082067, 5973099.135321523062885 ], [ 3517689.619749707169831, 5971732.852935117669404 ], [ 3520071.79460312332958, 5970823.944320211187005 ], [ 3522100.38359285145998, 5969148.617584634572268 ], [ 3524390.52389700524509, 5966683.225926808081567 ], [ 3525932.338460141792893, 5965644.248623124323785 ], [ 3526715.26692469092086, 5963067.739376971498132 ], [ 3527108.010876456275582, 5961612.809277003630996 ], [ 3528252.460967866238207, 5958831.762410629540682 ], [ 3528673.873235184699297, 5957017.511846443638206 ], [ 3531431.443511363118887, 5955140.881238510832191 ], [ 3533156.49808227783069, 5954358.971981920301914 ], [ 3534888.61565616633743, 5952706.683271947316825 ], [ 3535649.97364470269531, 5950508.755971888080239 ], [ 3536279.568306562490761, 5948821.704728314653039 ], [ 3535742.444965830538422, 5948484.26254793908447 ], [ 3535600.479971596039832, 5946867.530726219527423 ], [ 3535406.01020170468837, 5945378.146233955398202 ], [ 3536366.456744550261647, 5944230.741993399336934 ], [ 3537639.202111887279898, 5942700.664343249052763 ], [ 3540616.254224290139973, 5940645.490606938488781 ], [ 3543698.68793532345444, 5938617.915230557322502 ], [ 3545662.204447855707258, 5937994.112867050804198 ], [ 3545543.090832621790469, 5936990.590394141152501 ], [ 3542754.872309128753841, 5937607.029409196227789 ], [ 3540966.085153403226286, 5938901.687121853232384 ], [ 3539080.200113159604371, 5939605.017451407387853 ], [ 3537185.967812778893858, 5941438.940311964601278 ], [ 3536124.192986026406288, 5942278.004538708366454 ], [ 3535003.894007174298167, 5944117.738086530938745 ], [ 3533781.426410960033536, 5945981.924722048453987 ], [ 3532783.738886163104326, 5948924.170413659885526 ], [ 3532130.958529762923717, 5950432.066735602915287 ], [ 3530733.010538680944592, 5952062.726530008949339 ], [ 3528176.512794377282262, 5954403.192552183754742 ], [ 3526908.81742023024708, 5956136.757830238901079 ], [ 3525613.749208349268883, 5958356.028938844799995 ], [ 3523933.308036295231432, 5960981.771894171833992 ], [ 3522225.354591047856957, 5964398.712193109095097 ], [ 3520982.854110349435359, 5967305.124535276554525 ], [ 3519287.987911266740412, 5968625.561561356298625 ], [ 3517926.941844350192696, 5969870.935102732852101 ], [ 3516007.293956977315247, 5970144.692940020933747 ], [ 3511886.873376769479364, 5970872.42351512145251 ], [ 3509534.005070523358881, 5970764.942434266209602 ], [ 3505442.229162491392344, 5970222.456928632222116 ], [ 3502450.280958690214902, 5968407.593091765418649 ], [ 3501452.385463931132108, 5967998.666074465960264 ], [ 3502425.703641577623785, 5966492.391245706938207 ], [ 3502938.765823274850845, 5964857.773516360670328 ], [ 3502503.397950951941311, 5964857.519704677164555 ], [ 3501606.420056908857077, 5966645.280344867147505 ], [ 3500761.467388154473156, 5967513.351773649454117 ], [ 3498611.505742757115513, 5967666.702764188870788 ], [ 3496384.280060479417443, 5967003.944920568726957 ], [ 3493516.553727657999843, 5966470.706748393364251 ], [ 3490956.549612362403423, 5966526.039071647450328 ], [ 3488141.374203115701675, 5966889.892934074625373 ], [ 3485429.576104983687401, 5967433.852817035280168 ], [ 3483361.405270639341325, 5968870.570711989887059 ], [ 3481144.941529768053442, 5971278.058991043828428 ], [ 3480585.90487444261089, 5972147.796602218411863 ], [ 3479944.902084841392934, 5971742.319209679029882 ], [ 3479259.78169163595885, 5972944.272228319197893 ], [ 3479671.720897752325982, 5973605.57880505733192 ], [ 3477523.777500263880938, 5973462.420466737821698 ], [ 3475038.041070946492255, 5972327.254984011873603 ], [ 3473597.222281103953719, 5970753.292319818399847 ], [ 3472227.788292527664453, 5968438.451589711010456 ], [ 3471273.561512243002653, 5967244.088373540900648 ], [ 3470724.346342022996396, 5965382.846015744842589 ], [ 3470026.726949790026993, 5964416.332110068760812 ], [ 3469884.352837080601603, 5962193.559136566706002 ], [ 3469518.946333679836243, 5961173.185775845311582 ], [ 3469148.664925666991621, 5959436.442868684418499 ], [ 3468523.683629658073187, 5958007.860167969949543 ], [ 3467899.551634310279042, 5956758.086275375448167 ], [ 3467012.5337621322833, 5954664.949093569070101 ], [ 3466484.583247231319547, 5952619.694428771734238 ], [ 3465886.56201363587752, 5951599.168357658199966 ], [ 3465966.649820008780807, 5948471.469624611549079 ], [ 3466514.704319792799652, 5946031.051722260192037 ], [ 3467654.699947436805815, 5943534.009449102915823 ], [ 3468440.193999410606921, 5941731.634774578735232 ], [ 3468999.306686798110604, 5940649.36988194193691 ], [ 3469761.206471896730363, 5939026.133002907969058 ], [ 3470135.115965273231268, 5937070.796957628801465 ], [ 3471562.621569440700114, 5934542.515133575536311 ], [ 3471888.831830199342221, 5933048.822247330099344 ], [ 3471181.839416280388832, 5931277.813002342358232 ], [ 3470247.435915781650692, 5930357.109370796009898 ], [ 3468543.862083675805479, 5930239.441170612350106 ], [ 3467685.270660751499236, 5929189.8042405359447 ], [ 3467081.363217087462544, 5927700.523775080218911 ], [ 3466256.80613265838474, 5927912.351402817294002 ], [ 3467384.130276493728161, 5930427.469608259387314 ], [ 3469147.159465497825295, 5931753.834628779441118 ], [ 3470830.574399704113603, 5932875.168024580925703 ], [ 3470323.601052484475076, 5934267.258341459557414 ], [ 3469010.808993947692215, 5934558.572257807478309 ], [ 3467031.455326407216489, 5935343.390442443080246 ], [ 3464844.698914587497711, 5935873.376480970531702 ], [ 3463710.873431571293622, 5935881.957258437760174 ], [ 3462404.245113571174443, 5936843.328530467115343 ], [ 3459169.611636072862893, 5938206.64283024892211 ], [ 3458004.053356953430921, 5940374.942820684053004 ], [ 3456810.54819371085614, 5942183.372621999122202 ], [ 3453724.933793261647224, 5942469.428621008060873 ], [ 3451402.34242440899834, 5941850.907283470965922 ], [ 3449968.027718199416995, 5940093.78015689458698 ], [ 3449506.415085554122925, 5937863.313724148087204 ], [ 3449218.692173304501921, 5935064.251987352967262 ], [ 3449019.958390897139907, 5933368.87287231720984 ], [ 3449007.466803256887943, 5932211.259051729924977 ], [ 3450732.393905590288341, 5931909.915176779031754 ], [ 3452023.500862216111273, 5932051.023267468437552 ], [ 3453785.02066671429202, 5932831.068790009245276 ], [ 3454702.209136665798724, 5931664.340971240773797 ], [ 3454704.339597740676254, 5929193.306496763601899 ], [ 3454547.126716680824757, 5926258.815160104073584 ], [ 3454297.831244829576463, 5924509.052633958868682 ], [ 3453436.544310845900327, 5923615.337047577835619 ], [ 3453370.927973054349422, 5922198.0477643487975 ], [ 3452638.035677419509739, 5921276.978695284575224 ], [ 3451979.810506428591907, 5920097.128058318980038 ], [ 3450572.618216125294566, 5919053.819553339853883 ], [ 3448938.665912148077041, 5918632.462204776704311 ], [ 3447391.162750523537397, 5919036.412611030973494 ], [ 3446704.213739825412631, 5920050.267837939783931 ], [ 3445436.657299753278494, 5922256.93124105874449 ], [ 3444445.376104539260268, 5923686.429506257176399 ], [ 3443270.505878716241568, 5924834.438234180212021 ], [ 3442367.409962251316756, 5924922.653455334715545 ], [ 3441045.313221304677427, 5924552.333469422534108 ], [ 3440367.214761393144727, 5924045.317873069085181 ], [ 3440081.085191955789924, 5923894.265626089647412 ], [ 3438960.289806449785829, 5925145.727907898835838 ], [ 3437775.150844753719866, 5927351.171701144427061 ], [ 3437667.781184329651296, 5929000.879488595761359 ], [ 3437609.03816049778834, 5930417.701596533879638 ], [ 3437720.372066305018961, 5931034.013309716247022 ], [ 3439234.401194016449153, 5930396.536052782088518 ], [ 3440760.11646825587377, 5930660.331835241988301 ], [ 3442625.690823226235807, 5931306.530912490561604 ], [ 3443557.360421299003065, 5931552.67557420488447 ], [ 3444520.762324354611337, 5932313.264070412144065 ], [ 3444767.297731639351696, 5933545.304144686087966 ], [ 3445171.049471332225949, 5935006.658037713728845 ], [ 3444564.248057119548321, 5936016.577023228630424 ], [ 3443783.491945372894406, 5937542.520102150738239 ], [ 3443183.511062816251069, 5939065.935103427618742 ], [ 3444373.255398991052061, 5939488.537014181725681 ], [ 3444038.687686034478247, 5941675.83074155729264 ], [ 3441999.091217389795929, 5941186.859105006791651 ], [ 3441682.267003884073347, 5942628.821024079807103 ], [ 3440547.964738555718213, 5944516.958514201454818 ], [ 3439518.418841506354511, 5946480.262995032593608 ], [ 3438568.430191929917783, 5946595.193164446391165 ], [ 3436757.97238511685282, 5945823.819847674109042 ], [ 3436424.658952358178794, 5947803.656272273510695 ], [ 3435794.304737102705985, 5948709.835236906073987 ], [ 3435562.271022037602961, 5950533.361839624121785 ], [ 3435627.348826813045889, 5951532.082239156588912 ], [ 3436238.614928482566029, 5953035.571394780650735 ], [ 3434683.082664306275547, 5953825.505866463296115 ], [ 3431225.680597115308046, 5954438.43411442451179 ], [ 3428042.019134792499244, 5954434.955622931011021 ], [ 3424132.954372886102647, 5954035.453433121554554 ], [ 3420662.623981730546802, 5953811.043793925084174 ], [ 3417358.084225899539888, 5952817.552741648629308 ], [ 3414515.304292720276862, 5953278.455503807403147 ], [ 3408574.040819264948368, 5951545.100782874971628 ], [ 3406190.520086363889277, 5950566.599212774075568 ], [ 3403456.761280425358564, 5950109.137784102000296 ], [ 3400031.293022985104471, 5951001.319529866799712 ], [ 3393309.005317478440702, 5951508.163937739096582 ], [ 3389864.618126108776778, 5951485.115436712279916 ], [ 3386708.577799924649298, 5950637.017777714878321 ], [ 3385159.556979889981449, 5950366.861781798303127 ], [ 3383445.997129346244037, 5949690.849111491814256 ], [ 3381870.667392538394779, 5948396.06060378625989 ], [ 3379935.811761349905282, 5947161.888310228474438 ], [ 3378858.489231504965574, 5945289.741361330263317 ], [ 3378408.761624115519226, 5945814.868023200891912 ], [ 3377590.491221052594483, 5944038.47620371170342 ], [ 3375116.210454526823014, 5941996.77489753626287 ], [ 3373575.08113806694746, 5940238.72660840395838 ], [ 3373645.036291722208261, 5939002.754042189568281 ], [ 3376925.006747884210199, 5936292.569189994595945 ], [ 3377457.266654254868627, 5934940.725709207355976 ], [ 3374967.4192228410393, 5932483.310416745953262 ], [ 3373278.96142367599532, 5933043.231897374615073 ], [ 3371733.026679804548621, 5933136.436747873201966 ], [ 3370160.365371438674629, 5936010.665202242322266 ], [ 3369519.076137204654515, 5935204.872746789827943 ], [ 3370623.14611141057685, 5932188.231711954809725 ], [ 3369114.591493148822337, 5929911.514532618224621 ], [ 3368440.948788946028799, 5926115.48908681795001 ], [ 3367815.174491509795189, 5922211.898900600150228 ], [ 3367855.358955427072942, 5919939.24583179783076 ], [ 3367481.656192598398775, 5917677.045145064592361 ], [ 3366519.759346931241453, 5916618.93251958116889 ], [ 3367844.007828892674297, 5913945.794399360194802 ], [ 3369891.462418453767896, 5913010.317344238981605 ], [ 3370114.172645153477788, 5913573.019863194786012 ], [ 3372171.915933999232948, 5913000.192899932153523 ], [ 3375694.094334222376347, 5912906.838117407634854 ], [ 3378958.63119217986241, 5912874.349174916744232 ], [ 3381492.820797096937895, 5912655.416653768159449 ], [ 3383761.873747890349478, 5912185.763681191019714 ], [ 3387057.6894920039922, 5911278.965560235083103 ], [ 3389231.434091472998261, 5911124.437441256828606 ], [ 3389169.990427058190107, 5910712.10502291098237 ], [ 3385800.536714525893331, 5910740.032295181415975 ], [ 3383269.018336617387831, 5911111.788336644880474 ], [ 3382339.612016226630658, 5909168.814603465609252 ], [ 3382303.83582130772993, 5907720.653053808026016 ], [ 3382690.641357883810997, 5906572.273836356587708 ], [ 3382015.770535920746624, 5904465.816472715698183 ], [ 3380989.873488475568593, 5902885.385575579479337 ], [ 3380601.92565342830494, 5901910.534897705540061 ], [ 3380963.030417488887906, 5899724.451104337349534 ], [ 3381006.272233997937292, 5897285.966047517023981 ], [ 3380571.120637733489275, 5896518.658477083779871 ], [ 3381950.119964316021651, 5895498.57891889102757 ], [ 3380124.136973114684224, 5895284.522914436645806 ], [ 3379353.156213115900755, 5893591.053024855442345 ], [ 3378897.736422620248049, 5892044.881480769254267 ], [ 3378243.114757189992815, 5890866.917534163221717 ], [ 3378562.644735089503229, 5889092.39410496596247 ], [ 3379631.040984740946442, 5888078.060530565679073 ], [ 3379297.529351510107517, 5885175.069798098877072 ], [ 3379711.781163732521236, 5880898.433419520966709 ], [ 3380381.403146901167929, 5876351.257420996204019 ], [ 3377849.263701925519854, 5869167.572208140976727 ], [ 3371206.723894194699824, 5859363.605619667097926 ], [ 3371527.624746496789157, 5857629.285488212481141 ], [ 3369980.544609344564378, 5854688.178933726623654 ], [ 3368376.925378764048219, 5836115.600377579219639 ], [ 3367449.391853407025337, 5834932.172175120562315 ], [ 3364635.786091762594879, 5836060.378633598797023 ], [ 3363178.295037750620395, 5836678.985137461684644 ], [ 3360259.830418622121215, 5835921.066314455121756 ], [ 3355996.562058160547167, 5837831.420854992233217 ], [ 3353407.414001809898764, 5837540.864718444645405 ], [ 3350618.66691506979987, 5837625.520739251747727 ], [ 3347601.42301795585081, 5837140.95612277276814 ], [ 3345436.599921233952045, 5835317.092675862833858 ], [ 3346230.910827414598316, 5833767.356425877660513 ], [ 3345673.96247839089483, 5831155.126211114227772 ], [ 3348989.942511128727347, 5827525.473647148348391 ], [ 3348192.509100822266191, 5827339.569121494889259 ], [ 3345941.73168804962188, 5827936.415297140367329 ], [ 3345420.68796781077981, 5826478.587266082875431 ], [ 3342795.582504959311336, 5826930.849230648949742 ], [ 3344366.017807743046433, 5823193.267107733525336 ], [ 3343657.871893892996013, 5819209.242543862201273 ], [ 3347499.253721815999597, 5816925.581227378919721 ], [ 3354561.335717626847327, 5816078.104852819815278 ], [ 3354158.508194022811949, 5814981.891949186101556 ], [ 3360410.07235207175836, 5813427.94102281704545 ], [ 3362996.824905620422214, 5816996.017746383324265 ], [ 3363939.139830404892564, 5816653.312081508338451 ], [ 3364874.159504909534007, 5812194.532633400522172 ], [ 3366096.086246723774821, 5810418.508456693962216 ], [ 3366961.268144804984331, 5809127.319069962948561 ], [ 3368172.814551057759672, 5808883.393574013374746 ], [ 3368827.476798161398619, 5803633.030413242988288 ], [ 3367622.175327560864389, 5802184.235616413876414 ], [ 3366151.062394830863923, 5798784.119034263305366 ], [ 3365519.953127616550773, 5795094.159021019004285 ], [ 3367092.672837511636317, 5792349.01920360326767 ], [ 3368069.139912141021341, 5791103.592635864391923 ], [ 3365597.090867508202791, 5790109.597399059683084 ], [ 3363098.702927227132022, 5790125.026598390191793 ], [ 3361671.551380389835685, 5788520.380895545706153 ], [ 3360531.128899966366589, 5785792.907465665601194 ], [ 3358424.072646805085242, 5784684.696112652309239 ], [ 3356556.446475771721452, 5784525.982402518391609 ], [ 3355394.674210579134524, 5783019.637303083203733 ], [ 3354493.993350301869214, 5779539.148845079354942 ], [ 3353125.28834030777216, 5778303.598316594958305 ], [ 3346633.135050836019218, 5778659.228243296965957 ], [ 3346386.405461711343378, 5775848.133750449866056 ], [ 3345958.498180619440973, 5775808.169491874985397 ], [ 3345570.669794476125389, 5775341.380574398674071 ], [ 3345915.712972332723439, 5774426.130252461880445 ], [ 3344716.62388327345252, 5773611.904277126304805 ], [ 3342034.409588743466884, 5773164.032505496405065 ], [ 3341392.093165616970509, 5771427.533043761737645 ], [ 3341604.64657867141068, 5769716.502373205497861 ], [ 3343151.784930287860334, 5769667.569369819015265 ], [ 3346612.322104823775589, 5767588.680359845981002 ], [ 3349786.27053867932409, 5764773.853767707012594 ], [ 3351001.773874350823462, 5764310.908056103624403 ], [ 3350956.643581428565085, 5761005.542051751166582 ], [ 3349780.946646358352154, 5761040.744923886843026 ], [ 3348694.386072121094912, 5760486.610711646266282 ], [ 3348454.893066844437271, 5757878.592688990756869 ], [ 3346462.724164394196123, 5755749.967545739375055 ], [ 3345580.431701772846282, 5754922.452193521894515 ], [ 3344393.333735656458884, 5754638.667289501056075 ], [ 3343615.865370575338602, 5753754.582464783452451 ], [ 3341729.641622526571155, 5755096.11836779024452 ], [ 3340852.271643145009875, 5756138.854005487635732 ], [ 3337433.614686265122145, 5754752.922583672218025 ], [ 3332228.736082796007395, 5752893.764317509718239 ], [ 3331484.686652049887925, 5753079.092910259030759 ], [ 3328537.479325717315078, 5751521.730785178951919 ], [ 3326763.096911835949868, 5749817.823775429278612 ], [ 3325255.827953243162483, 5749656.135702987201512 ], [ 3324174.002950797788799, 5750924.18424697034061 ], [ 3323135.752882071770728, 5750372.353652258403599 ], [ 3320413.791677316650748, 5752233.983169891871512 ], [ 3320203.366592936217785, 5750851.055406567640603 ], [ 3321443.058834682684392, 5749522.922141700051725 ], [ 3321288.639827483799309, 5746692.129620227962732 ], [ 3319064.428227376658469, 5747521.174326245673001 ], [ 3317318.221982288639992, 5749671.447625671513379 ], [ 3315008.851298400200903, 5749595.574773462489247 ], [ 3313754.942126256413758, 5751942.229805063456297 ], [ 3312705.989071736112237, 5752569.594331275671721 ], [ 3311498.001884695608169, 5751812.666121704503894 ], [ 3309891.581034890376031, 5751873.337724787183106 ], [ 3307358.448377598077059, 5751542.130840381607413 ], [ 3305888.227406042162329, 5753738.157947232015431 ], [ 3306925.84768676571548, 5754232.736749564297497 ], [ 3305271.256137723103166, 5755793.628545100800693 ], [ 3304612.516627378296107, 5755391.671358566731215 ], [ 3304316.483997973613441, 5756044.661156723275781 ], [ 3300518.059394588228315, 5754858.14023379702121 ], [ 3303523.705921316985041, 5752225.898682885803282 ], [ 3305131.703610144555569, 5750825.716953269205987 ], [ 3304725.069228686392307, 5748647.424826041795313 ], [ 3300695.251087656710297, 5749876.3569799028337 ], [ 3298051.387151405680925, 5752175.954285630956292 ], [ 3296791.089118544477969, 5750193.582437377423048 ], [ 3294787.194813664536923, 5749739.948938356712461 ], [ 3292318.856472048442811, 5748449.63183955848217 ], [ 3290791.532442485913634, 5749155.562595460563898 ], [ 3289755.415782129857689, 5747485.386199300177395 ], [ 3289920.600297310389578, 5746300.110409592278302 ], [ 3291301.480364295188338, 5744635.263140850700438 ], [ 3291346.548505856189877, 5743132.823075205087662 ], [ 3292459.85460583679378, 5742765.128410023637116 ], [ 3292442.820313614327461, 5741050.270462101325393 ], [ 3289569.277748117689043, 5739185.255158288404346 ], [ 3289938.450207580812275, 5737721.263886852189898 ], [ 3292831.856771476566792, 5737440.418076044879854 ], [ 3295447.548237965907902, 5735616.209272241219878 ], [ 3294546.444769632536918, 5734632.946251344867051 ], [ 3294769.298018490895629, 5733496.348698431625962 ], [ 3294763.373022275976837, 5730703.567491865716875 ], [ 3300766.162442500703037, 5728582.398163359612226 ], [ 3298604.938741892576218, 5723021.899275249801576 ], [ 3301252.56455855909735, 5720387.896259279921651 ], [ 3303898.60222477838397, 5716246.142775188200176 ], [ 3306407.695644464343786, 5712647.141253584064543 ], [ 3307041.350388780236244, 5707985.196954485028982 ], [ 3306760.580651397816837, 5704865.656977678649127 ], [ 3305694.239859013818204, 5699612.892034158110619 ], [ 3307059.12371038692072, 5699885.279689623042941 ], [ 3306408.677259535994381, 5698450.714144894853234 ], [ 3306891.591118102893233, 5695458.633018332533538 ], [ 3304303.466169738210738, 5693014.552679062820971 ], [ 3304820.446972778532654, 5692345.384959954768419 ], [ 3302757.350133853033185, 5692316.377612895332277 ], [ 3300807.180342230945826, 5688222.898389655165374 ], [ 3298167.731455585453659, 5684641.587172788567841 ], [ 3295598.09920528717339, 5682900.066120402887464 ], [ 3296643.59034953918308, 5680471.920284806750715 ], [ 3295340.14535668073222, 5680523.768423667177558 ], [ 3295423.864063579589128, 5675798.2512610508129 ], [ 3296144.030565818306059, 5674737.776216881349683 ], [ 3297818.871181078255177, 5674400.035455786623061 ], [ 3301846.811181697528809, 5677175.150566702708602 ], [ 3303004.950451396871358, 5676153.443406596779823 ], [ 3300069.322801499627531, 5674855.088434789329767 ], [ 3302601.980081139598042, 5672747.463959520682693 ], [ 3301543.437256735749543, 5672136.245121591724455 ], [ 3298906.924106827005744, 5671586.597227867692709 ], [ 3296411.522928901016712, 5670489.049561847932637 ], [ 3295915.934955024160445, 5668986.453105127438903 ], [ 3292843.561578573659062, 5667151.291205334477127 ], [ 3290555.82791165355593, 5665883.689916778355837 ], [ 3288726.071391376666725, 5663835.839024382643402 ], [ 3287655.788463062606752, 5661701.903095590882003 ], [ 3287788.022429387550801, 5660933.985525010153651 ], [ 3286589.163556799292564, 5659676.030673863366246 ], [ 3285675.648484024684876, 5660040.748064618557692 ], [ 3283969.518847334198654, 5662345.04369845148176 ], [ 3283910.612274311482906, 5663545.414018142968416 ], [ 3282216.161774517036974, 5662200.924963196739554 ], [ 3280462.666012768168002, 5662057.389897791668773 ], [ 3281149.725693407002836, 5660230.614482069388032 ], [ 3281007.559314908459783, 5658165.921700863167644 ], [ 3282057.265123712364584, 5657140.391278399154544 ], [ 3282195.721687640529126, 5656534.878498041070998 ], [ 3282895.95685621490702, 5656287.340810407884419 ], [ 3282895.669324495829642, 5654978.694535035640001 ], [ 3281921.831084162462503, 5653928.857449941337109 ], [ 3282164.998008157592267, 5653209.464688984677196 ], [ 3284269.431074277497828, 5653830.426918645389378 ], [ 3286175.214554916135967, 5654951.118787158280611 ], [ 3287108.409572302829474, 5653712.820064155384898 ], [ 3288543.489978682715446, 5654035.741379365324974 ], [ 3291436.881228879094124, 5653918.27361779846251 ], [ 3290313.565470241010189, 5651836.339308062568307 ], [ 3289686.244772073347121, 5651207.041993699036539 ], [ 3290479.113975885789841, 5650520.071423185057938 ], [ 3290561.484402420930564, 5648497.187573024071753 ], [ 3293036.209390486590564, 5647415.017832157202065 ], [ 3295798.145860120654106, 5646650.238728865049779 ], [ 3294738.588578765746206, 5644780.477730887010694 ], [ 3294251.966444883961231, 5642176.986034880392253 ], [ 3295429.911229199264199, 5641474.552059262059629 ], [ 3294038.655232372693717, 5639561.356737680733204 ], [ 3293995.366815812885761, 5638469.315338461659849 ], [ 3292764.31663303123787, 5639229.229561239480972 ], [ 3293061.974928386509418, 5639818.888335167430341 ], [ 3290278.663255966734141, 5638782.033004604279995 ], [ 3289921.04455010779202, 5636717.667458184063435 ], [ 3290352.365412818733603, 5635167.991757966578007 ], [ 3289253.805881355889142, 5633789.126760985702276 ], [ 3287483.172903017606586, 5634791.749206254258752 ], [ 3286712.606090801768005, 5633399.843388979323208 ], [ 3290445.980533546302468, 5630674.267780573107302 ], [ 3289638.17804793221876, 5628350.766448652371764 ], [ 3291080.021227496676147, 5627306.252356147393584 ], [ 3290796.933658776339144, 5624356.834253843873739 ], [ 3291817.968506064265966, 5625138.613653897307813 ], [ 3295043.942357258405536, 5624681.944071646779776 ], [ 3296693.072183144744486, 5624672.295821407809854 ], [ 3297022.031125582288951, 5623233.608524720184505 ], [ 3298291.305944545194507, 5620496.189007695764303 ], [ 3299538.523947891779244, 5618582.128672275692225 ], [ 3299570.386601782403886, 5617977.033707095310092 ], [ 3301329.404882526025176, 5617909.946983234956861 ], [ 3301850.0372996898368, 5617121.559172347187996 ], [ 3300977.427015575114638, 5615891.639724168926477 ], [ 3302162.35970045812428, 5615187.648598435334861 ], [ 3304315.478376474231482, 5615326.448602642863989 ], [ 3304771.804897429421544, 5615748.7816889481619 ], [ 3306900.287934598047286, 5615230.495798503048718 ], [ 3307079.866087296511978, 5614125.333096931688488 ], [ 3306591.203096221201122, 5612824.790656130760908 ], [ 3305774.137469457928091, 5611591.066646741703153 ], [ 3304942.406250657979399, 5609972.853507907129824 ], [ 3304475.208323805127293, 5607790.642461740411818 ], [ 3303121.993529784493148, 5605530.618068462237716 ], [ 3301353.683156805578619, 5604001.152899656444788 ], [ 3301730.339020947460085, 5602280.295819290913641 ], [ 3302920.122726429253817, 5600142.847967209294438 ], [ 3303375.420874859206378, 5599024.059985257685184 ], [ 3306211.227273208089173, 5599524.868260719813406 ], [ 3308305.345973854418844, 5599393.092373580671847 ], [ 3310312.637645933311433, 5598383.865202314220369 ], [ 3312501.882658250629902, 5597809.588673127815127 ], [ 3311240.651073282118887, 5596532.144901648163795 ], [ 3311733.563964404165745, 5594860.915249953046441 ], [ 3313415.794884885661304, 5593974.11834666505456 ], [ 3313854.436974819283932, 5592304.291197531856596 ], [ 3313032.955026251729578, 5589409.431447661481798 ], [ 3312072.228916894178838, 5587290.935907955281436 ], [ 3311029.729631065391004, 5586002.996481238864362 ], [ 3312851.407242894172668, 5584281.337762791663408 ], [ 3314117.023758508265018, 5582468.860902468673885 ], [ 3315507.704989780671895, 5581038.677639014087617 ], [ 3315297.356875209137797, 5579774.707749810069799 ], [ 3313834.56846736650914, 5579162.511864907108247 ], [ 3312422.890927549917251, 5578438.213172486051917 ], [ 3312239.135910466313362, 5577947.022410762496293 ], [ 3309972.402404117397964, 5579686.697858810424805 ], [ 3308506.895402595866472, 5579020.704504291526973 ], [ 3306869.852216646075249, 5576701.878813940100372 ], [ 3306799.393962098751217, 5574767.862640046514571 ], [ 3305868.182006170041859, 5573584.214415721595287 ], [ 3302236.243611646816134, 5572943.305715539492667 ], [ 3300930.017860637046397, 5572161.599748998880386 ], [ 3300144.664714391343296, 5570474.226262048818171 ], [ 3298369.740403208415955, 5570541.314642827026546 ], [ 3297743.478723010979593, 5568681.405577485449612 ], [ 3299343.308557103388011, 5566902.703473022207618 ], [ 3299230.510358086321503, 5563912.904206435196102 ], [ 3296171.838873052038252, 5563918.234956804662943 ], [ 3295589.09417691314593, 5561777.030498195439577 ], [ 3296171.017793844919652, 5559534.813624084927142 ], [ 3295251.905445382930338, 5558792.845377014018595 ], [ 3294582.857005979400128, 5555875.301833150908351 ], [ 3294043.740374677814543, 5553451.368433734402061 ], [ 3294251.548703496344388, 5550163.490096008405089 ], [ 3294854.003845088649541, 5546969.783770482055843 ], [ 3295568.789650909602642, 5543770.044488900341094 ], [ 3298137.080562264192849, 5539328.601225581951439 ], [ 3300777.904525710269809, 5538226.936383076943457 ], [ 3300591.881895710714161, 5536227.414858377538621 ], [ 3301506.195114647038281, 5533740.250803409144282 ], [ 3303618.107277052477002, 5530315.553367778658867 ], [ 3306815.368343424983323, 5528972.044152360409498 ], [ 3307534.157465105410665, 5527160.001687828451395 ], [ 3307574.282217318192124, 5525148.292277450673282 ], [ 3308696.975071363616735, 5525220.016151678748429 ], [ 3309319.512640958186239, 5526984.82498583663255 ], [ 3310993.110894050914794, 5526814.163781641982496 ], [ 3313538.285051248501986, 5522704.250675394199789 ], [ 3316548.763631217181683, 5522265.77099993545562 ], [ 3318269.067922670859843, 5523436.550476114265621 ], [ 3319914.076553903985769, 5522375.822257258929312 ], [ 3321440.373675452079624, 5521095.863393030129373 ], [ 3321037.886370377149433, 5519097.157823511399329 ], [ 3320105.186610721051693, 5514654.248619129881263 ], [ 3319773.01095390226692, 5511419.421840450726449 ], [ 3315822.932736824266613, 5507520.179941294714808 ], [ 3314171.082749260123819, 5505223.023033342324197 ], [ 3315870.534160270821303, 5505613.415918727405369 ], [ 3314532.170840017031878, 5502631.805040402337909 ], [ 3313095.445247137919068, 5500100.983985096216202 ], [ 3311017.866549561731517, 5498601.740836505778134 ], [ 3309590.280488845426589, 5496406.288109920918941 ], [ 3310745.491916314233094, 5494007.452444901689887 ], [ 3308854.629367342684418, 5491489.192985010333359 ], [ 3309181.777033932041377, 5484730.256133002229035 ], [ 3313247.010812398511916, 5484814.69000612013042 ], [ 3316492.805140560958534, 5484029.476350947283208 ], [ 3319570.990886089392006, 5481563.382581897079945 ], [ 3322287.867931914515793, 5478321.523670556023717 ], [ 3321235.587449310813099, 5477229.36579033266753 ], [ 3322961.23001126293093, 5474694.29114542901516 ], [ 3325099.315040445420891, 5474400.165233524516225 ], [ 3325489.990141856949776, 5472471.349379789084196 ], [ 3324874.834437024779618, 5470912.296611363068223 ], [ 3323205.481559679843485, 5471755.291168798692524 ], [ 3322589.593790540471673, 5470196.25176914408803 ], [ 3325043.291458060964942, 5469102.162997494451702 ], [ 3324770.449323010630906, 5467644.072313352487981 ], [ 3330396.944478302728385, 5462951.873545842245221 ], [ 3329867.541308000683784, 5460483.174938303418458 ], [ 3331884.418704373762012, 5459743.229751444421709 ], [ 3331997.139188995119184, 5456009.726872179657221 ], [ 3334142.840959931258112, 5455718.552115550264716 ], [ 3334888.504926262423396, 5454112.922470156103373 ], [ 3332903.71215025568381, 5452249.616904384456575 ], [ 3335540.263590311165899, 5449341.080995460040867 ], [ 3338722.781859032809734, 5449473.553945599123836 ], [ 3341862.933300896547735, 5448137.472464187070727 ], [ 3343528.168615900911391, 5450806.451900968328118 ], [ 3344353.816673721652478, 5451914.538425981998444 ], [ 3343517.471719459164888, 5454426.592455507256091 ], [ 3342416.623720757197589, 5455588.693145615980029 ], [ 3344471.86133106937632, 5456095.545629951171577 ], [ 3346230.777860252652317, 5454124.041230094619095 ], [ 3348534.500820654910058, 5455417.066853553988039 ], [ 3350126.772815578151494, 5455599.616118837147951 ], [ 3350754.49173581879586, 5453660.418490864336491 ], [ 3353042.183922443073243, 5454390.484042441472411 ], [ 3355475.836065769661218, 5452064.318216507323086 ], [ 3356254.627246593125165, 5451478.37142503913492 ], [ 3356823.409308884758502, 5447163.237360533326864 ], [ 3357294.292350224219263, 5443413.863010513596237 ], [ 3359579.423207714688033, 5443921.746796428225935 ], [ 3360987.298051197081804, 5445698.208481875248253 ], [ 3360590.471944097895175, 5447972.440755658783019 ], [ 3362292.112452516332269, 5447929.735422714613378 ], [ 3361455.444901064969599, 5446252.590178170241416 ], [ 3364057.079601254779845, 5445848.282199367880821 ], [ 3365712.608134512789547, 5443882.626493926160038 ], [ 3367896.633981968276203, 5444962.516656741499901 ], [ 3368642.734678084496409, 5442906.054143330082297 ], [ 3371980.076957716140896, 5444753.172875575721264 ], [ 3374577.838198570534587, 5444127.395131227560341 ], [ 3375230.834074159618467, 5442866.755629636347294 ], [ 3377448.385518587194383, 5445535.004778406582773 ], [ 3379165.533601051662117, 5446176.423322357237339 ], [ 3380870.060002903919667, 5446252.588262471370399 ], [ 3380943.272243015002459, 5449645.88072828296572 ], [ 3386280.102225408889353, 5449872.642567787319422 ], [ 3385796.10053317528218, 5448411.922651157714427 ], [ 3390566.658243300393224, 5448654.678026086650789 ], [ 3390875.608130455948412, 5447064.419459532946348 ], [ 3389591.466181238181889, 5445278.940169045701623 ], [ 3391921.592530752066523, 5442515.271651929244399 ], [ 3394684.753265048842877, 5438496.4903419399634 ], [ 3399004.598318004515022, 5438529.320804560557008 ], [ 3400550.565832812339067, 5436007.450539210811257 ], [ 3403823.534864186309278, 5434588.917249847203493 ], [ 3405324.923858066089451, 5435923.79734976682812 ], [ 3407253.612404691055417, 5435664.408813539892435 ], [ 3407806.925638171844184, 5434748.031439089216292 ], [ 3410777.704689913894981, 5435606.534004563465714 ], [ 3412390.74775867164135, 5436941.196620415896177 ], [ 3417001.288586367387325, 5433582.037418880499899 ], [ 3418957.754121808800846, 5435140.697352018207312 ], [ 3421562.956715709995478, 5434422.86768676713109 ], [ 3422379.521928046364337, 5435885.328683120198548 ], [ 3425744.129689838737249, 5432437.227799493819475 ], [ 3427224.266208763234317, 5432531.038100123405457 ], [ 3431741.759720824658871, 5429864.124439768493176 ], [ 3432188.612845612224191, 5429177.71805084683001 ], [ 3438648.05060533201322, 5426605.180578490719199 ], [ 3441146.937545709311962, 5426010.398915889672935 ], [ 3443774.019803314469755, 5426777.997880448587239 ], [ 3444100.72794422134757, 5425298.52947814296931 ], [ 3441018.598437156993896, 5424648.949427127838135 ], [ 3435781.751066780183464, 5415044.075494257733226 ], [ 3434346.99304535286501, 5409482.786479373462498 ], [ 3431221.258303457405418, 5406102.538412497378886 ], [ 3428935.65839446336031, 5406131.130265021696687 ], [ 3427750.173842236865312, 5402840.358370274305344 ], [ 3424540.760941871441901, 5402312.519788173958659 ], [ 3423922.496248530223966, 5398898.478684207424521 ], [ 3418439.855920504312962, 5391781.614717473275959 ], [ 3413938.186163996346295, 5389677.335346916690469 ], [ 3411663.536555420141667, 5383536.496232718229294 ], [ 3411904.082985449582338, 5376891.61941062938422 ], [ 3409316.030788129195571, 5373150.537075099535286 ], [ 3408785.944496780633926, 5368800.822875512763858 ], [ 3406375.0789919286035, 5362181.630773250944912 ], [ 3407291.672799124382436, 5354810.195661885663867 ], [ 3403448.705552062485367, 5352688.398006235249341 ], [ 3401584.928618231788278, 5345005.833078308030963 ], [ 3399793.318139681126922, 5341694.676721687428653 ], [ 3395999.802427514456213, 5336572.159682932309806 ], [ 3395949.444171581882983, 5333802.955227456986904 ], [ 3394183.205465422011912, 5332218.813860137946904 ], [ 3394595.380240791011602, 5329438.959857028909028 ], [ 3393640.730744129046798, 5327954.405255996622145 ], [ 3393211.342989110853523, 5323569.099566949531436 ], [ 3396360.318487529177219, 5318073.055318268015981 ], [ 3398280.386333810631186, 5315028.157073317095637 ], [ 3394487.641686563845724, 5310925.224588554352522 ], [ 3394423.981077825650573, 5307448.090825513936579 ], [ 3392276.657797023188323, 5304587.579806504771113 ], [ 3392216.062134995125234, 5301338.763521077111363 ], [ 3390511.565416099969298, 5297421.956813243217766 ], [ 3390967.2622343711555, 5290670.947469526901841 ], [ 3391033.667191634885967, 5287993.832420127466321 ], [ 3389003.368527046404779, 5285588.023670888505876 ], [ 3389741.017122888471931, 5281381.400491485372186 ], [ 3392819.984673089813441, 5277244.935140418820083 ], [ 3394591.297573479358107, 5271730.801261203363538 ], [ 3398013.090484702028334, 5273303.366132202558219 ], [ 3400707.498672728426754, 5273490.161846791394055 ], [ 3401828.139359097927809, 5270554.286127161234617 ], [ 3397955.972861425019801, 5270037.144075736403465 ], [ 3399998.7742646089755, 5266265.641654439270496 ], [ 3404585.363901938777417, 5267356.723335566930473 ], [ 3408467.720814909785986, 5268462.114133893512189 ], [ 3410960.008184376638383, 5270641.193926501087844 ], [ 3411809.170814938377589, 5272611.76419866271317 ], [ 3418007.770553172565997, 5272404.673736351542175 ], [ 3417943.807783041615039, 5267854.309229598380625 ], [ 3424162.66499761166051, 5268820.825085404329002 ], [ 3429899.930880703497678, 5268865.822852464392781 ], [ 3433071.157436474226415, 5269762.234682783484459 ], [ 3434850.180987715255469, 5271842.22906899638474 ], [ 3440261.857453008182347, 5274699.827171719633043 ], [ 3442490.564558713696897, 5275376.912784439511597 ], [ 3447264.346893206704408, 5273116.368334513157606 ], [ 3451332.917477671988308, 5270048.07426589820534 ], [ 3455199.364794543478638, 5270600.441492328420281 ], [ 3462217.406400641426444, 5270084.029153803363442 ], [ 3462115.544423341285437, 5272417.717338015325367 ], [ 3459549.26128638535738, 5273484.546016472391784 ], [ 3461315.280674194917083, 5275221.385354879312217 ], [ 3464252.008879730477929, 5277417.029964530840516 ], [ 3466808.071528592146933, 5274721.123694409616292 ], [ 3465386.15279812226072, 5271580.890589426271617 ], [ 3466536.707049704156816, 5268190.529738401062787 ], [ 3469135.004472768865526, 5272492.859014559537172 ], [ 3469979.735556862317026, 5277501.11858360376209 ], [ 3471967.220725715626031, 5277607.701487408950925 ], [ 3470702.75202213646844, 5281807.2296939836815 ], [ 3465559.106220188550651, 5281020.366265679709613 ], [ 3464258.458702430594712, 5278465.64477123785764 ], [ 3460407.672557429876179, 5279306.108462906442583 ], [ 3456223.297716085333377, 5282247.711141574196517 ], [ 3458593.045648510567844, 5287002.174714633263648 ], [ 3460609.171887961681932, 5291756.062570192851126 ], [ 3464815.680743975564837, 5293239.917727896012366 ], [ 3468788.821677942294627, 5295076.193848267197609 ], [ 3471580.842789880000055, 5294132.310972448438406 ], [ 3472965.241934643127024, 5291103.872367586009204 ], [ 3474382.003062608186156, 5295048.671408385969698 ], [ 3476475.191171061713248, 5293994.103915286250412 ], [ 3477158.859918577596545, 5290039.41158040985465 ], [ 3479963.103435664903373, 5291540.355961260385811 ], [ 3481008.256034184712917, 5290258.01567401830107 ], [ 3479137.714538817759603, 5288985.379434469155967 ], [ 3478663.841934462543577, 5287009.781976686790586 ], [ 3480528.078016032930464, 5286188.817212254740298 ], [ 3480169.60632247896865, 5283746.194585441611707 ], [ 3484950.365807128604501, 5281403.371870806440711 ], [ 3486007.458826499991119, 5283845.517693010158837 ], [ 3483447.301175893750042, 5286761.43484144937247 ], [ 3486135.654042263980955, 5288615.446468035690486 ], [ 3487996.787629834376276, 5286052.11650069616735 ], [ 3490561.435793025419116, 5284301.819737511686981 ], [ 3489857.728705554269254, 5282440.55852793995291 ], [ 3491137.812988555524498, 5279527.166797446087003 ], [ 3498265.325822744518518, 5281267.486392702907324 ], [ 3502819.825412742327899, 5282781.419286884367466 ], [ 3509244.374250557273626, 5281390.825471815653145 ], [ 3515089.988283701241016, 5279190.109527446329594 ], [ 3523858.888779436703771, 5277821.259920362383127 ], [ 3530889.600915216375142, 5274357.56218041293323 ], [ 3536891.081754141952842, 5268443.197854464873672 ], [ 3540068.480084216687828, 5266012.652949059382081 ], [ 3553417.852102292235941, 5266235.853332026861608 ], [ 3556211.594016916584224, 5268013.127959861420095 ], [ 3558968.337896288372576, 5273290.572352670133114 ], [ 3561899.912950264289975, 5272621.111900174990296 ], [ 3562284.403799287974834, 5269475.152123768813908 ], [ 3561479.815212272107601, 5268066.084516203962266 ], [ 3564183.976370956283063, 5267044.468381702899933 ], [ 3565719.279709361959249, 5265893.89309382904321 ], [ 3566403.429552424233407, 5267536.205747944302857 ], [ 3568290.372541241813451, 5266390.391143075190485 ], [ 3569818.320568916853517, 5265941.33543078135699 ], [ 3572029.144681832287461, 5267135.752536108717322 ], [ 3573221.965306973550469, 5265399.005599326454103 ], [ 3574655.764731553848833, 5263197.722430121153593 ], [ 3575151.409697893541306, 5261100.712370845489204 ], [ 3578547.478611031081527, 5261378.970776219852269 ], [ 3579748.168419474270195, 5259291.129584588110447 ], [ 3581883.149714205879718, 5257566.576770008541644 ], [ 3582808.240240890067071, 5258515.072712591849267 ], [ 3583446.076896387152374, 5254898.145284430123866 ], [ 3582763.456113736145198, 5253367.264338509179652 ], [ 3581358.256128629203886, 5253113.575677283108234 ], [ 3581141.269917943049222, 5251823.039311069063842 ], [ 3589154.649804558139294, 5249948.636216470040381 ], [ 3591389.652602588757873, 5249748.712714437395334 ], [ 3592909.037499438039958, 5250240.939058191142976 ], [ 3608066.80489345267415, 5250031.43032496329397 ], [ 3609625.871784656774253, 5254626.30302225984633 ], [ 3611348.46130685089156, 5256647.945228716358542 ], [ 3610419.388586510438472, 5262360.304890165105462 ], [ 3608763.424330571200699, 5263147.427640830166638 ], [ 3608694.033288604114205, 5266884.567464678548276 ], [ 3609118.909958738833666, 5269227.795274266041815 ], [ 3610647.321896548848599, 5268906.279476214200258 ], [ 3615249.731480587739497, 5267126.820916695520282 ], [ 3619348.372115508653224, 5267208.993084497749805 ], [ 3621032.431041778530926, 5270746.408954884856939 ], [ 3626079.967394401784986, 5270152.706479787826538 ], [ 3630572.067742535844445, 5268266.285531943663955 ], [ 3632807.319957664236426, 5267849.441527684219182 ], [ 3633446.057540745474398, 5265527.547462677583098 ], [ 3638095.929316089954227, 5267154.234824404120445 ], [ 3642637.700458443723619, 5268314.512101682834327 ], [ 3643857.431304589379579, 5266358.401632416062057 ], [ 3644800.262721888720989, 5266147.963323574513197 ], [ 3644817.604788166470826, 5265447.263283429667354 ], [ 3640165.15465962793678, 5263931.561806668527424 ], [ 3641139.183433841913939, 5262435.246510568074882 ], [ 3644198.11670959694311, 5262042.036850397475064 ], [ 3646308.03940167883411, 5262094.335843012668192 ], [ 3645636.6809899113141, 5260791.255818320438266 ], [ 3649977.000201102811843, 5256220.514234762638807 ], [ 3649895.504383739084005, 5254813.657967455685139 ], [ 3648493.041923482902348, 5254543.871222625486553 ], [ 3648898.53397985547781, 5252446.283060369081795 ], [ 3655244.936900129541755, 5252376.249460184946656 ], [ 3659944.748774581588805, 5252385.14824132528156 ], [ 3660356.915271494071931, 5254504.557586400769651 ], [ 3665364.514791925437748, 5256048.53507305495441 ], [ 3667446.723311715293676, 5257161.197963807731867 ], [ 3670269.322932854294777, 5257008.310153999365866 ], [ 3668257.917418883182108, 5253437.308276225812733 ], [ 3671669.364111591130495, 5253301.741627963259816 ], [ 3673464.882921018637717, 5256165.284245558083057 ], [ 3673885.756954886950552, 5257816.760811294429004 ], [ 3676428.008520286995918, 5259180.193365572020411 ], [ 3680419.411375533789396, 5259184.620946523733437 ], [ 3683007.097934948280454, 5259030.728365052491426 ], [ 3681644.402653094381094, 5261328.834081131033599 ], [ 3679505.29189323540777, 5262198.820665345527232 ], [ 3681762.838844546116889, 5265075.352458233945072 ], [ 3683571.641286125872284, 5267236.164021715521812 ], [ 3684911.747386515140533, 5265641.709323761053383 ], [ 3688876.447099495213479, 5266352.949248921126127 ], [ 3695183.112736156210303, 5267144.526237981393933 ], [ 3695319.863971607759595, 5270071.130221887491643 ], [ 3696119.325948164798319, 5274186.363479602150619 ], [ 3696906.828900756314397, 5275146.99231637455523 ], [ 3698455.322155223693699, 5274382.098087263293564 ], [ 3698165.873252294491976, 5276006.855788071639836 ], [ 3700872.075926858466119, 5275632.422248547896743 ], [ 3704272.418023795820773, 5275516.964767271652818 ], [ 3709753.506413412280381, 5276178.495045790448785 ], [ 3714834.560195084195584, 5274962.047557797282934 ], [ 3715225.076776642352343, 5277078.369512633420527 ], [ 3719598.942155567463487, 5279109.284095799550414 ], [ 3723200.924123435281217, 5279829.728579265065491 ], [ 3726460.559814589098096, 5280305.658364173956215 ], [ 3728479.740992708131671, 5279567.430374900810421 ], [ 3730448.767183461226523, 5280111.890556435100734 ], [ 3734937.954438397660851, 5279123.749624446034431 ], [ 3737407.580403123050928, 5278873.540395647287369 ], [ 3739839.115334124770015, 5279556.906656790524721 ], [ 3741062.50966218020767, 5281125.072306622751057 ], [ 3740314.499946163035929, 5285061.61410831194371 ], [ 3738462.100503182038665, 5287434.47964827530086 ], [ 3737671.088330583646894, 5289617.026910294778645 ], [ 3741138.691207077819854, 5290575.791679365560412 ], [ 3743583.974459180608392, 5293590.783346704207361 ], [ 3744239.741539272945374, 5294666.666533531621099 ], [ 3745464.946214229334146, 5293320.574310488067567 ], [ 3743998.069396694656461, 5289296.49346340354532 ], [ 3744183.253322290256619, 5287671.990883053280413 ], [ 3746692.623504033312201, 5289177.121603433042765 ], [ 3750788.186702605802566, 5289119.279253566637635 ], [ 3752676.163812062237412, 5288734.667057823389769 ], [ 3757447.123620067723095, 5289293.919177147559822 ], [ 3759273.323339673690498, 5290307.941840749233961 ], [ 3759434.355598406866193, 5286699.644191927276552 ], [ 3760924.608653508126736, 5284782.653198830783367 ], [ 3763488.720214647240937, 5282446.77900482993573 ], [ 3764875.338989542797208, 5282859.968370902352035 ], [ 3766495.511189344339073, 5283284.17008647415787 ], [ 3769066.47902257181704, 5283402.444049267098308 ], [ 3770618.857421291992068, 5287792.848045555874705 ], [ 3774917.488424092996866, 5288461.269915884360671 ], [ 3781994.922287775669247, 5289733.756127413362265 ], [ 3781684.184308716095984, 5288901.981460696086287 ], [ 3784281.404768616426736, 5288445.005778755992651 ], [ 3783899.587727916426957, 5286675.657007952220738 ], [ 3782309.491651613265276, 5285664.359989155083895 ], [ 3784281.144812294282019, 5283658.524575554765761 ], [ 3787003.591664461418986, 5283091.307140819728374 ], [ 3788124.720327303744853, 5281744.780626373365521 ], [ 3786505.169203932397068, 5281314.372820717282593 ], [ 3785532.874546250328422, 5279630.628904357552528 ], [ 3784799.654778862372041, 5277841.408533683978021 ], [ 3786603.60178305208683, 5274538.416780044324696 ], [ 3790477.9888247968629, 5274495.941701513715088 ], [ 3790594.128488400951028, 5272161.474625929258764 ], [ 3793111.897764969151467, 5271116.731996889226139 ], [ 3795818.700670539867133, 5268677.05331720970571 ], [ 3798855.596301339101046, 5266722.819737875834107 ], [ 3799838.722160743549466, 5268178.955591368488967 ], [ 3802889.489610741846263, 5265992.731342470273376 ], [ 3804384.913735983893275, 5268882.313176333904266 ], [ 3805133.319873026106507, 5272551.575273250229657 ], [ 3803754.023067193571478, 5274235.446301868185401 ], [ 3805363.573710943572223, 5277127.578434414230287 ], [ 3804047.390052516479045, 5279865.629771737381816 ], [ 3806959.158603717572987, 5280252.08644082583487 ], [ 3806042.457857865374535, 5282074.320290931500494 ], [ 3808337.247325238306075, 5285233.647769700735807 ], [ 3807389.733745195437223, 5289854.723989077843726 ], [ 3804631.600111520383507, 5293326.948602575808764 ], [ 3800935.690724624320865, 5294650.400785171426833 ], [ 3796205.97065965924412, 5293357.427407402545214 ], [ 3792640.902135544922203, 5294459.316254674457014 ], [ 3795373.669104842003435, 5298211.406877520494163 ], [ 3795010.249062247108668, 5300756.032704696059227 ], [ 3797138.066065363120288, 5304823.992066430859268 ], [ 3798377.11803000792861, 5305702.598571930080652 ], [ 3798384.577908948995173, 5312333.655418801121414 ], [ 3794250.609914021100849, 5317931.166057704016566 ], [ 3790229.527724273037165, 5321442.149465550668538 ], [ 3786678.104510818608105, 5327295.615803264081478 ], [ 3781226.071450241375715, 5331776.835706444457173 ], [ 3778754.146607806906104, 5337212.942081055603921 ], [ 3781026.840195064432919, 5340563.218345453031361 ], [ 3784765.083432798739523, 5342367.16905709169805 ], [ 3787737.504416177049279, 5345521.691941050812602 ], [ 3789793.842401337809861, 5348398.836057630367577 ], [ 3793826.797423883806914, 5348836.223122604191303 ], [ 3797599.462265519890934, 5352034.835355360992253 ], [ 3804847.855404205620289, 5357266.374191619455814 ], [ 3812375.677845589350909, 5359290.237615343183279 ], [ 3817631.024841874837875, 5360504.439402943477035 ], [ 3822651.658046095632017, 5363786.195641887374222 ], [ 3825398.449115025345236, 5368323.389857625588775 ], [ 3828089.372631504200399, 5375733.77600179053843 ], [ 3827511.594646334648132, 5379727.006050870753825 ], [ 3828863.156577812042087, 5388195.249212647788227 ], [ 3828641.499112889170647, 5390019.510012876242399 ], [ 3831139.159764649346471, 5390625.081788191571832 ], [ 3832704.719903009012341, 5393357.319908248260617 ], [ 3836917.414856550749391, 5390279.050154198892415 ], [ 3838962.361385906580836, 5390746.295140411704779 ], [ 3843176.997758243698627, 5389623.48540545720607 ], [ 3845376.278749476186931, 5387575.043853930197656 ], [ 3850226.137220137286931, 5385575.508480267599225 ], [ 3851189.237577030435205, 5388623.880884901620448 ], [ 3850659.475342543795705, 5391577.755359980277717 ], [ 3852789.389023704454303, 5390677.091992710717022 ], [ 3854029.779714288655668, 5392937.241628798656166 ], [ 3854286.8513412210159, 5396167.913990419358015 ], [ 3854864.502612382173538, 5401596.117986790835857 ], [ 3855912.69081223430112, 5406820.185579559765756 ], [ 3853265.493678213562816, 5408714.249234259128571 ], [ 3854757.19810030516237, 5412357.58047001156956 ], [ 3856304.881807212717831, 5415087.768602450378239 ], [ 3853490.335917244199663, 5416052.7716233888641 ], [ 3853710.381891583092511, 5418010.65491761174053 ], [ 3851403.576942361425608, 5421864.904213130474091 ], [ 3849770.128725301939994, 5422333.346828631125391 ], [ 3847147.385368203744292, 5427649.450403043068945 ], [ 3842373.275378418620676, 5427125.432981932535768 ], [ 3840837.995919925626367, 5429769.007287064567208 ], [ 3839227.780072700697929, 5433660.686249264515936 ], [ 3836439.828622874803841, 5434402.664457753300667 ], [ 3836095.253023515921086, 5436318.424838675186038 ], [ 3829366.732189212460071, 5436142.68965432792902 ], [ 3830673.839149459730834, 5433372.629446876235306 ], [ 3827231.001920537557453, 5433624.40624125674367 ], [ 3822318.734723675530404, 5437550.340535138733685 ], [ 3822575.768218017183244, 5440979.144701819866896 ], [ 3821468.647546603810042, 5444326.509012749418616 ], [ 3817497.509936431888491, 5447961.082637995481491 ], [ 3813525.178468396887183, 5451708.761152523569763 ], [ 3808576.439607511274517, 5450635.348259688355029 ], [ 3804448.080683045554906, 5453243.31266425549984 ], [ 3805066.947153330780566, 5456453.37618157081306 ], [ 3801793.476753655355424, 5458087.058316828683019 ], [ 3800209.238722647540271, 5460040.354074968956411 ], [ 3800098.372055599931628, 5462073.412857607007027 ], [ 3797570.184695475269109, 5462615.608460924588144 ], [ 3797120.666033543180674, 5464629.31726430170238 ], [ 3795064.951798662077636, 5464858.183651850558817 ], [ 3794735.671891257166862, 5466764.423756338655949 ], [ 3793830.467423887457699, 5466715.935289075598121 ], [ 3793363.018220909871161, 5471215.067984454333782 ], [ 3791649.173001739662141, 5471462.839840769767761 ], [ 3788192.944655504543334, 5474670.355206306092441 ], [ 3781767.430439930409193, 5476256.194380306638777 ], [ 3782494.705392826814204, 5473130.944204164668918 ], [ 3778803.899224318098277, 5474410.55358830653131 ], [ 3774488.077136000618339, 5474644.452892290428281 ], [ 3774499.445151279680431, 5476677.436628054827452 ], [ 3773071.275329637341201, 5478073.397718599997461 ], [ 3770742.316181838978082, 5481680.674946036189795 ], [ 3769090.785169301088899, 5483065.046973722986877 ], [ 3765550.433686465024948, 5483793.733113300055265 ], [ 3762932.97133231209591, 5488849.73077289480716 ], [ 3763914.385872582904994, 5489572.763349560089409 ], [ 3763680.64985917834565, 5494401.116383878514171 ], [ 3759918.058954005129635, 5495232.585864448919892 ], [ 3759837.691012873779982, 5496915.595750628039241 ], [ 3758306.480578999500722, 5500664.208094398491085 ], [ 3757087.693330587819219, 5504986.580174822360277 ], [ 3754883.128251632675529, 5503984.414849063381553 ], [ 3754714.808642594143748, 5507568.351268366910517 ], [ 3754663.982789839152247, 5511043.313948171213269 ], [ 3752281.613686378113925, 5511492.468478155322373 ], [ 3748129.784483372233808, 5513766.628840764984488 ], [ 3746198.039193653967232, 5516703.218183800578117 ], [ 3745164.472104180138558, 5519679.350210216827691 ], [ 3750539.33744758926332, 5522388.22244018688798 ], [ 3749631.557521247304976, 5525030.91827192530036 ], [ 3751453.250985849648714, 5529252.096258390694857 ], [ 3753537.38713001832366, 5532589.865801245905459 ], [ 3755725.237144735641778, 5536043.278154118917882 ], [ 3755294.895878308918327, 5538031.72348784096539 ], [ 3751431.163173641078174, 5539299.782857084646821 ], [ 3749066.560313181020319, 5539635.706390921957791 ], [ 3749653.344769380521029, 5541447.267171245068312 ], [ 3751865.640581336338073, 5544337.569970003329217 ], [ 3747566.525898560415953, 5545474.365603343583643 ], [ 3741168.10805734898895, 5548634.853609713725746 ], [ 3736883.377496286295354, 5552115.916657934896648 ], [ 3732860.684804424177855, 5554830.687946009449661 ], [ 3728711.969448793213814, 5557985.670789001509547 ], [ 3729464.714967768639326, 5563792.524646927602589 ], [ 3727989.290521514136344, 5567057.754149910062551 ], [ 3725271.63060312345624, 5570822.592721866443753 ], [ 3723020.272674647625536, 5571503.397643525153399 ], [ 3720954.572312307544053, 5573079.009767584502697 ], [ 3722197.374655489809811, 5575235.247705519199371 ], [ 3724497.154413202777505, 5575996.423454540781677 ], [ 3722834.039479933679104, 5578583.004573442041874 ], [ 3722769.039576907176524, 5580129.408005010336637 ], [ 3725066.585877205245197, 5580890.293769891373813 ], [ 3727535.879815011750907, 5580221.320491296239197 ], [ 3728536.122558393981308, 5577608.177078784443438 ], [ 3729416.839799566194415, 5575210.187771665863693 ], [ 3732993.263559928163886, 5574701.404885558411479 ], [ 3733393.895032570697367, 5573167.954350016079843 ], [ 3731330.138952594250441, 5572080.348174600861967 ], [ 3733611.763258014339954, 5570739.254571005702019 ], [ 3734761.716771180741489, 5567352.232825891114771 ], [ 3735101.073267021682113, 5564704.269534032791853 ], [ 3739149.540715137496591, 5563774.546241171658039 ], [ 3738370.86983257997781, 5568732.839852967299521 ], [ 3737612.999364356510341, 5573244.241673161275685 ], [ 3739326.31655189068988, 5572212.901111060753465 ], [ 3739241.605420134961605, 5574093.036808216013014 ], [ 3739434.552854179404676, 5577203.285217555239797 ], [ 3742486.88466526241973, 5578449.297283021733165 ], [ 3743195.698030634783208, 5582355.619254254736006 ], [ 3745193.616463465616107, 5582337.129896971397102 ], [ 3746473.449683679267764, 5585825.585223335772753 ], [ 3747626.353403460234404, 5584884.130324793048203 ], [ 3748912.741093137301505, 5585829.254802440293133 ], [ 3748055.406660733744502, 5587558.010741391219199 ], [ 3750352.821555800270289, 5590539.87686912342906 ], [ 3756120.740906673483551, 5592694.691901732236147 ], [ 3761319.851808167994022, 5592839.135161161422729 ], [ 3763640.022545332554728, 5590744.539587195031345 ], [ 3765088.066164024174213, 5592806.126774789765477 ], [ 3765805.504067606292665, 5596155.763985391706228 ], [ 3769294.493140616454184, 5597216.168350159190595 ], [ 3771777.307420271914452, 5598447.61954506020993 ], [ 3777517.269274128600955, 5594550.152100934647024 ], [ 3779174.767910319380462, 5592537.95446698833257 ], [ 3783064.905809750314802, 5594402.989793696440756 ], [ 3785531.590503603219986, 5597960.613069591112435 ], [ 3785292.918592177331448, 5602363.352759633213282 ], [ 3785793.407418191898614, 5605369.051127099432051 ], [ 3788786.980039114132524, 5603216.049936227500439 ], [ 3791820.629771676845849, 5604376.48924214206636 ], [ 3793817.67619692441076, 5606252.661121785640717 ], [ 3794767.486478177830577, 5605092.483013670891523 ], [ 3797984.086632254999131, 5604942.84390078112483 ], [ 3798942.971542614977807, 5607534.35722359828651 ], [ 3800863.902500619180501, 5612604.557866881601512 ], [ 3800719.00320157315582, 5615129.840504218824208 ], [ 3804603.223441467620432, 5614803.464634914882481 ], [ 3804588.826225992757827, 5613150.133053756318986 ], [ 3807322.295576164498925, 5613640.182172295637429 ], [ 3807666.494451082311571, 5617185.059356661513448 ], [ 3810002.666366584599018, 5618754.134881952777505 ], [ 3809885.218344220891595, 5622598.770956395193934 ], [ 3811567.728737420868129, 5620278.020765405148268 ], [ 3813154.783157257828861, 5617730.618035649880767 ], [ 3816631.800540513824672, 5616838.365389060229063 ], [ 3818528.980083230417222, 5620146.826872535049915 ], [ 3820138.351486396510154, 5620905.539194607175887 ], [ 3819241.415794375818223, 5622941.702673432417214 ], [ 3820589.658701670821756, 5624344.438851588405669 ], [ 3820804.910515702795237, 5626227.419903922826052 ], [ 3819791.884480574168265, 5628364.13313468080014 ], [ 3823876.049646253697574, 5630044.886930740438402 ], [ 3825460.674490362405777, 5629374.150745071470737 ], [ 3827690.549742918461561, 5630722.753537888638675 ], [ 3829240.189858032856137, 5632358.759236394427717 ], [ 3833741.381344829220325, 5630886.665362003259361 ], [ 3835823.814404712989926, 5632778.79919742513448 ], [ 3839809.57790264301002, 5632487.659409415908158 ], [ 3842376.606729364022613, 5631996.142137260176241 ], [ 3843445.237223695032299, 5632506.12609598506242 ], [ 3843768.665056216064841, 5634285.857123780995607 ], [ 3845552.902452688198537, 5633964.343297033570707 ], [ 3845882.751379332505167, 5635634.421999706886709 ], [ 3844655.647528459317982, 5637530.159447366371751 ], [ 3845015.252021585591137, 5640408.523520876653492 ], [ 3848266.043823816813529, 5639527.474278996698558 ], [ 3849631.292850653175265, 5642143.735014835372567 ], [ 3852193.607557627372444, 5643304.407770987600088 ], [ 3853370.509702744428068, 5642177.166409933008254 ], [ 3858058.244092615321279, 5642827.346514443866909 ], [ 3860739.176678330637515, 5645427.098640786483884 ], [ 3864651.863971631042659, 5647675.155172302387655 ], [ 3868303.865829121787101, 5650455.49470139015466 ], [ 3868453.576860548462719, 5652987.293692287988961 ], [ 3871296.134664352517575, 5653190.297076079063118 ], [ 3872913.080978018697351, 5652100.729297350160778 ], [ 3876138.209241904318333, 5653101.258640002459288 ], [ 3878799.779436421580613, 5654281.763115962035954 ], [ 3878304.489329853560776, 5656546.711064988747239 ], [ 3879908.626702595502138, 5658635.955835712142289 ], [ 3877372.649784710258245, 5658778.769319750368595 ], [ 3873642.486421301960945, 5660259.489899774082005 ], [ 3873235.278182575013489, 5662856.40735577698797 ], [ 3870881.069638357497752, 5663561.869010458700359 ], [ 3869470.482533756643534, 5664882.406933111138642 ], [ 3870186.647737168706954, 5668650.290464341640472 ], [ 3872123.148852197919041, 5672176.251362370327115 ], [ 3874116.987340273335576, 5670354.607665712945163 ], [ 3877635.807600828818977, 5670174.337916933000088 ], [ 3878340.289480796549469, 5668040.137615696527064 ], [ 3881417.001703299582005, 5667938.896000509150326 ], [ 3883064.431431839708239, 5669372.928906513378024 ], [ 3888997.140150122344494, 5667739.8405701527372 ], [ 3888961.934402021113783, 5666752.781339449808002 ], [ 3892023.850398609414697, 5666875.233139554969966 ], [ 3893338.353903179056942, 5664020.649399837478995 ], [ 3891158.190800605807453, 5659474.878535458818078 ], [ 3890104.731355381198227, 5657423.090989323332906 ], [ 3892129.193082225974649, 5656808.973944171331823 ], [ 3894827.737983160186559, 5657452.652578229084611 ], [ 3897458.780000742990524, 5658969.336797493509948 ], [ 3897171.9116838183254, 5655549.085117362439632 ], [ 3896271.607996895909309, 5654383.446695215068758 ], [ 3894939.189184807706624, 5650222.260358816944063 ], [ 3900965.669202022720128, 5649147.84597579203546 ], [ 3902717.484788775909692, 5647855.888542323373258 ], [ 3905445.77613417385146, 5648178.216958883218467 ], [ 3907046.862452036235482, 5647424.744623495265841 ], [ 3909026.233708560932428, 5647470.513458472676575 ], [ 3910069.637819682713598, 5652385.177885238081217 ], [ 3909865.309848226606846, 5653576.397182139568031 ], [ 3913082.410075725521892, 5658768.88069938775152 ], [ 3915410.742858809418976, 5663997.593522780574858 ], [ 3917012.611035787500441, 5671353.094391087070107 ], [ 3918296.957832679152489, 5677143.973583422601223 ], [ 3919504.542406174354255, 5687834.231917208991945 ], [ 3920672.771858642809093, 5694907.032213196158409 ], [ 3920284.027654484380037, 5702277.906722805462778 ], [ 3916463.925518930424005, 5706313.800851550884545 ], [ 3915285.635153631679714, 5712734.544092117808759 ], [ 3915008.205929875839502, 5718786.992313132621348 ], [ 3911838.72823394369334, 5721671.671947702765465 ], [ 3907542.996553308330476, 5722407.63689452689141 ], [ 3903103.416968822944909, 5724975.725576804019511 ], [ 3897542.520291690248996, 5726699.96311570610851 ], [ 3896245.534509391989559, 5729409.967081543058157 ], [ 3898500.509518878068775, 5733802.266504067927599 ], [ 3898348.651361923664808, 5739836.77102857735008 ], [ 3896200.332342120353132, 5743766.076700169593096 ], [ 3891487.09427963802591, 5747384.29760904982686 ], [ 3890574.56668200623244, 5753557.032989542 ], [ 3888437.580468225758523, 5756079.847011269070208 ], [ 3885742.359704523347318, 5757484.134529687464237 ], [ 3885372.002301629632711, 5760893.872864078730345 ], [ 3888096.617191788740456, 5763252.3663928527385 ], [ 3892196.794025591574609, 5768616.83880356233567 ], [ 3892632.152710522990674, 5774012.137072905898094 ], [ 3894115.599812015891075, 5779699.031685368157923 ], [ 3894972.631552360020578, 5785116.966093302704394 ], [ 3893581.534340028651059, 5787786.130199570208788 ], [ 3890777.183824066072702, 5789380.913124461658299 ], [ 3888569.729216711595654, 5792944.990928837098181 ], [ 3889726.900846492499113, 5795917.421942629851401 ], [ 3890172.28518925793469, 5798405.867914486676455 ], [ 3888903.454182128887624, 5799585.361395683139563 ], [ 3890027.523497267160565, 5801592.656182849779725 ], [ 3889905.114240184891969, 5805844.128890166059136 ], [ 3888247.102217198815197, 5806565.065330009907484 ], [ 3882656.58084465470165, 5808469.249768460169435 ], [ 3880234.041036660317332, 5810834.403206677176058 ], [ 3880731.198938641697168, 5811298.160065221600235 ], [ 3878816.152385847177356, 5815401.533867488615215 ], [ 3876652.399458919186145, 5821392.686789776198566 ], [ 3877092.396654475945979, 5825350.62587003223598 ], [ 3879091.297345243860036, 5826988.96576280053705 ], [ 3882498.281371041666716, 5832339.281443700194359 ], [ 3882350.060754121746868, 5834233.360282779671252 ], [ 3881221.47015118971467, 5835097.70364648476243 ], [ 3880917.736755230929703, 5838988.048479683697224 ], [ 3882535.770093734376132, 5841334.883136425167322 ], [ 3879405.847002695314586, 5844788.118399401195347 ], [ 3871500.854137918446213, 5849877.344673019833863 ], [ 3866640.257241865620017, 5854041.000506401993334 ], [ 3862160.876345915254205, 5858864.291369445621967 ], [ 3856376.902230790816247, 5861486.168679472059011 ], [ 3853638.720928938128054, 5864333.985031346790493 ], [ 3851771.953848134726286, 5866824.332399304024875 ], [ 3847350.529758316930383, 5866819.612195742316544 ], [ 3845338.447944106534123, 5868460.235444736666977 ], [ 3846452.133862742222846, 5872002.866743963211775 ], [ 3846861.614577474072576, 5876540.917836175300181 ], [ 3845710.982599182985723, 5880857.880886669270694 ], [ 3845807.479627902153879, 5882435.174994660541415 ], [ 3849681.634586024098098, 5885436.37144530005753 ], [ 3854481.854157145135105, 5888612.59417827706784 ], [ 3858727.026504829060286, 5893527.765895562246442 ], [ 3860205.582850014325231, 5900321.679272799752653 ], [ 3860739.986647294368595, 5904325.677436962723732 ], [ 3858347.318934781476855, 5906959.643038901500404 ], [ 3859097.22065301053226, 5910869.979741984046996 ], [ 3861679.16217056941241, 5913980.012699580751359 ], [ 3863619.950443720910698, 5917248.956983144395053 ], [ 3862210.696277414448559, 5919324.832144322805107 ], [ 3860233.158865793142468, 5924784.39159846957773 ], [ 3858552.09466500626877, 5929119.357846072874963 ], [ 3857717.564035345800221, 5934654.2578652407974 ], [ 3855171.982983477413654, 5940881.22075732331723 ], [ 3854527.476558213122189, 5943935.597366889938712 ], [ 3852400.277569544501603, 5946050.187352763488889 ], [ 3851616.722759102005512, 5949607.364094331860542 ], [ 3852580.257987612858415, 5956077.816162295639515 ], [ 3849416.085709900595248, 5958315.387874973937869 ], [ 3849225.238656923174858, 5960877.051389093510807 ], [ 3848490.837490907870233, 5963808.613355265930295 ], [ 3847969.858788084238768, 5966651.315098694525659 ], [ 3847153.169963970314711, 5970703.895104909315705 ], [ 3848404.598714721854776, 5973263.388607643544674 ], [ 3847126.08941642800346, 5975222.370868641883135 ], [ 3842306.220610584132373, 5983380.822239859960973 ], [ 3842055.818560723215342, 5988177.143582530319691 ], [ 3840918.038545733783394, 5988298.260834409855306 ], [ 3841179.362973350100219, 5988931.705752913840115 ], [ 3842192.431896094698459, 5989108.622355900704861 ], [ 3840124.111086568329483, 5992128.893822520971298 ], [ 3836528.07627619523555, 5996467.294168918393552 ], [ 3830096.005070522427559, 6001926.714695753529668 ], [ 3825287.936896343715489, 6004849.845059881918132 ], [ 3821201.844556387979537, 6006296.751869357191026 ], [ 3817508.110044788103551, 6009504.76006458606571 ], [ 3815559.110609824769199, 6012628.2958875419572 ], [ 3814525.595302366651595, 6015812.593641201965511 ], [ 3812374.654038909357041, 6015971.108908070251346 ], [ 3809778.813840273302048, 6013660.167321825399995 ], [ 3810856.172438477165997, 6011290.994475170969963 ], [ 3812699.170466981362551, 6009685.247450346127152 ], [ 3814312.60594163602218, 6008471.197386899031699 ], [ 3815102.191506309900433, 6005876.401914129033685 ], [ 3814387.411642957478762, 6002871.683019595220685 ], [ 3813792.423173900227994, 6001097.582835406064987 ], [ 3812734.765973706264049, 6000107.874244066886604 ], [ 3813584.92423349339515, 5998124.621058972552419 ], [ 3815117.383426785003394, 5999657.405717846006155 ], [ 3815598.668185557238758, 6000098.339933203533292 ], [ 3818350.909517375286669, 6001715.195427712053061 ], [ 3820021.17661928711459, 6001218.428985885344446 ], [ 3818967.951326082926244, 5998696.602521911263466 ], [ 3818339.014142722822726, 5997428.309621640481055 ], [ 3820600.843805714510381, 5997278.070353273302317 ], [ 3822612.33334398875013, 5999255.450895296409726 ], [ 3822165.396366210654378, 6001265.297379594296217 ], [ 3822090.287061945535243, 6003810.049904906190932 ], [ 3825714.615339929237962, 6003146.230748705565929 ], [ 3827529.260290835052729, 6000621.622595163062215 ], [ 3828400.351152353454381, 5998437.446402784436941 ], [ 3829513.328229235485196, 5998618.661438570357859 ], [ 3831557.306061188690364, 5995802.28364584222436 ], [ 3831426.091278413310647, 5993339.893814634531736 ], [ 3830893.825760428793728, 5990745.345366813242435 ], [ 3829203.903412165120244, 5991443.359282188117504 ], [ 3829488.980940259993076, 5993201.830792748369277 ], [ 3827049.24052733136341, 5992926.876620600000024 ], [ 3826085.011663523502648, 5990609.498445996083319 ], [ 3824438.641294470056891, 5990698.635787636041641 ], [ 3824412.541935313958675, 5992537.21607933472842 ], [ 3825747.121908552013338, 5993959.545821349136531 ], [ 3825836.580149458255619, 5995600.741319499909878 ], [ 3823689.601770301349461, 5995552.398365689441562 ], [ 3821855.437051408924162, 5995424.613865301944315 ], [ 3821880.633335412945598, 5993587.260404518805444 ], [ 3821796.73431309312582, 5991843.849779789336026 ], [ 3824305.743323993869126, 5989666.591411430388689 ], [ 3824322.042061796877533, 5986495.784550337120891 ], [ 3823428.641705371439457, 5984590.801889563910663 ], [ 3822375.753491351380944, 5983493.667432649061084 ], [ 3819782.580594954546541, 5982392.91536043677479 ], [ 3818005.957522900309414, 5981349.262659789994359 ], [ 3817926.876398161519319, 5979499.543670936487615 ], [ 3819971.780043373350054, 5979639.588933923281729 ], [ 3821187.900747263804078, 5978390.752438402734697 ], [ 3823709.250050269532949, 5979077.849297716282308 ], [ 3825930.391790833789855, 5979642.794376843608916 ], [ 3829305.8130545578897, 5981315.276018842123449 ], [ 3831971.026225287932903, 5982836.814950498752296 ], [ 3835343.056173400022089, 5983078.647248992696404 ], [ 3839744.233914831653237, 5983295.502931435592473 ], [ 3841693.135043901856989, 5983335.75089196767658 ], [ 3842548.111940761096776, 5982886.127058120444417 ], [ 3848097.373533959966153, 5973240.467052654363215 ], [ 3847122.784433279652148, 5971112.767836498096585 ], [ 3844918.384478706866503, 5971668.826793747022748 ], [ 3843581.939886667765677, 5970234.325936361216009 ], [ 3841249.520946009550244, 5968315.866357866674662 ], [ 3840574.844139227643609, 5969089.101315757259727 ], [ 3836687.408751669805497, 5968704.67504149209708 ], [ 3834439.792970782145858, 5969879.31200283113867 ], [ 3831519.804017058573663, 5970390.402397912926972 ], [ 3826115.942458458244801, 5972577.326063128188252 ], [ 3823452.826516568195075, 5975368.150790618732572 ], [ 3820221.262711521238089, 5977504.015669897198677 ], [ 3816932.178310172632337, 5979021.811006994917989 ], [ 3816138.546738297212869, 5981631.785931341350079 ], [ 3817205.015792998485267, 5984059.694228403270245 ], [ 3821516.051772620528936, 5987017.175704867579043 ], [ 3822518.737237338442355, 5988826.05731981061399 ], [ 3820689.044716849457473, 5991562.677708619274199 ], [ 3818143.726520751602948, 5992818.363634699955583 ], [ 3815387.227404770907015, 5995694.71714888792485 ], [ 3811684.292087491601706, 5997485.930742738768458 ], [ 3810943.517384564504027, 5999375.005022188648582 ], [ 3812176.781638809479773, 6002313.98266426473856 ], [ 3813921.817398926243186, 6006712.982908229343593 ], [ 3812253.037583652418107, 6008738.655122142285109 ], [ 3808392.064613906666636, 6011532.477427837438881 ], [ 3806734.16166792018339, 6013456.363565259613097 ], [ 3807992.562500847037882, 6014455.632723518647254 ], [ 3806626.264317887835205, 6015076.168979535810649 ], [ 3802659.520258758217096, 6011864.548755905590951 ], [ 3798811.760882809758186, 6009883.921152976341546 ], [ 3794064.106386752799153, 6009171.685126464813948 ], [ 3792687.07569847535342, 6008371.782942567951977 ], [ 3794685.88600092055276, 6004222.805990059860051 ], [ 3791088.546243601478636, 6004605.794178533367813 ], [ 3789505.91277037281543, 6008679.793153521604836 ], [ 3787728.793438333552331, 6011009.784827677533031 ], [ 3788813.782599210273474, 6013212.705813540145755 ], [ 3786873.546122521162033, 6014920.632212925702333 ], [ 3783029.227954701986164, 6012853.580367775633931 ], [ 3782511.458777102641761, 6014650.824821609072387 ], [ 3781234.70441169384867, 6017213.246092568151653 ], [ 3779768.913745779544115, 6019559.932232212275267 ], [ 3776112.770517634693533, 6021164.903081224299967 ], [ 3774074.752143368124962, 6021245.684098690748215 ], [ 3771869.300013697240502, 6024156.122327806428075 ], [ 3768564.19647551747039, 6023353.374325577169657 ], [ 3767523.414402691181749, 6025521.87589046638459 ], [ 3768292.354436634108424, 6027997.564554531127214 ], [ 3765248.221741194836795, 6029743.695151202380657 ], [ 3765109.748743453063071, 6033883.330772624351084 ], [ 3764280.34460795391351, 6035958.266693005338311 ], [ 3762765.899476274382323, 6035870.94380324985832 ], [ 3761018.105369170662016, 6038094.656807157211006 ], [ 3761093.247822588775307, 6040320.691884091123939 ], [ 3762430.087666644249111, 6041709.750470524653792 ], [ 3759998.580624234862626, 6041772.375258774496615 ], [ 3758940.825581229291856, 6040803.775463434867561 ], [ 3756470.40269632358104, 6039755.681054452434182 ], [ 3752804.307394893839955, 6036521.521206941455603 ], [ 3753055.784843786619604, 6033807.058794326148927 ], [ 3750938.731402240227908, 6031769.543922696262598 ], [ 3748631.074460600502789, 6031340.235107620246708 ], [ 3747426.784799127839506, 6032993.680331636220217 ], [ 3745857.339145273901522, 6033919.736923540011048 ], [ 3746136.529551450163126, 6036258.490557551383972 ], [ 3744661.555840937420726, 6033552.429880760610104 ], [ 3743667.625503038056195, 6033196.178480857983232 ], [ 3743108.997815452050418, 6034176.993536909110844 ], [ 3742253.470986216794699, 6033121.062001348473132 ], [ 3741280.492322136182338, 6036201.49111932143569 ], [ 3740791.782335953786969, 6037791.310700886882842 ], [ 3737455.092099911998957, 6035799.123348211869597 ], [ 3738703.303173653781414, 6035157.144828265532851 ], [ 3734081.673467176035047, 6032493.485683113336563 ], [ 3733330.043289718218148, 6031343.380345672369003 ], [ 3731980.673528867773712, 6031982.251434212550521 ], [ 3730419.51835469994694, 6032812.78634455986321 ], [ 3729773.173329246696085, 6031567.692819925956428 ], [ 3731117.212575062178075, 6031028.951015931554139 ], [ 3730773.995509297586977, 6029798.554891315288842 ], [ 3729621.729109869338572, 6028527.254869546741247 ], [ 3727928.02172327041626, 6027937.018797882832587 ], [ 3725116.533024829346687, 6027393.482239477336407 ], [ 3726424.75954246846959, 6025535.835066474042833 ], [ 3725487.495060288812965, 6023971.663806582801044 ], [ 3722100.292317955289036, 6022692.994664092548192 ], [ 3722516.560699354391545, 6020384.161762323230505 ], [ 3725199.394957223441452, 6019501.900499909184873 ], [ 3726778.776370322797447, 6018363.643743954598904 ], [ 3726119.202826383989304, 6017317.633085707202554 ], [ 3723039.401978814974427, 6017977.9983922354877 ], [ 3721364.47513691522181, 6019011.613713788799942 ], [ 3719275.529880725312978, 6020228.299805155955255 ], [ 3720119.265075228177011, 6021686.388792828656733 ], [ 3719212.75581233901903, 6023667.572833340615034 ], [ 3719617.254350285045803, 6025811.75805654656142 ], [ 3720836.031494583468884, 6025769.135930905118585 ], [ 3721523.358021774329245, 6028330.727622084319592 ], [ 3720569.689016116317362, 6029194.597934174351394 ], [ 3722196.840759535320103, 6029071.065916651859879 ], [ 3723244.894790519960225, 6030436.108291476964951 ], [ 3722959.268658598419279, 6032140.026833917014301 ], [ 3724425.143682877533138, 6033221.913167136721313 ], [ 3726738.112371258437634, 6033538.016386386938393 ], [ 3728798.290063797496259, 6032832.442932987585664 ], [ 3730848.264600807335228, 6034349.711179758422077 ], [ 3732937.980043532326818, 6035061.708327089436352 ], [ 3734258.5030502891168, 6036946.775469387881458 ], [ 3735911.757200521882623, 6038243.214857249520719 ], [ 3737961.108212190214545, 6037743.894668837077916 ], [ 3740823.658936268649995, 6039105.251171295531094 ], [ 3742193.80096535384655, 6038067.363417882472277 ], [ 3745321.737821755930781, 6038234.333982950076461 ], [ 3746485.969277562573552, 6037287.288985782302916 ], [ 3749324.717875947710127, 6039056.920759504660964 ], [ 3751465.456641239579767, 6038770.484320494346321 ], [ 3754458.529945777263492, 6039542.118886507116258 ], [ 3755623.951427319552749, 6040414.86443118005991 ], [ 3757959.185003742109984, 6042060.267913053743541 ], [ 3755007.152474541217089, 6042398.785698775202036 ], [ 3751399.981268565170467, 6041794.917994506657124 ], [ 3746666.56720372941345, 6041435.590234220027924 ], [ 3739502.185492270626128, 6041154.697005128487945 ], [ 3734843.127078706398606, 6041315.946868452243507 ], [ 3729635.086897281929851, 6042361.719952314160764 ], [ 3728138.320885144174099, 6044000.263294978998601 ], [ 3728767.940376318059862, 6045543.378206262364984 ], [ 3726581.882752718869597, 6044829.57412367593497 ], [ 3725769.796274413820356, 6042874.389445617794991 ], [ 3725186.847372009884566, 6038307.203973875381052 ], [ 3723998.714390577748418, 6035725.575150183402002 ], [ 3720491.004156142938882, 6032929.566381332464516 ], [ 3719875.989780278410763, 6030980.455938110128045 ], [ 3717170.997069503180683, 6028223.445105090737343 ], [ 3717430.007851812522858, 6024898.193870973773301 ], [ 3714748.144796086009592, 6021533.271084840409458 ], [ 3712364.798926087561995, 6020409.937135866843164 ], [ 3708534.236759637016803, 6017601.099382697604597 ], [ 3705679.470627882052213, 6013317.076930527575314 ], [ 3705582.560963278170675, 6013211.350209499709308 ], [ 3704367.235640893224627, 6010824.51767501886934 ], [ 3699848.767275876831263, 6009510.317855437286198 ], [ 3693690.658139432780445, 6008435.702488843351603 ], [ 3690407.059879276435822, 6006675.127723609097302 ], [ 3688408.812814397271723, 6005780.994439611211419 ], [ 3684040.589266420342028, 6005604.719556323252618 ], [ 3680156.496599656529725, 6006060.482165691442788 ], [ 3675085.353797282092273, 6005662.29970726557076 ], [ 3671932.824757600668818, 6002904.291240676306188 ], [ 3671933.047460834030062, 6000161.712918213568628 ], [ 3671827.644010708667338, 5997515.263955920934677 ], [ 3669059.909657659940422, 5995176.238214493729174 ], [ 3669035.928434316068888, 5993038.967825968749821 ], [ 3666751.682976705022156, 5991327.871624678373337 ], [ 3664946.507073573302478, 5990448.939264009706676 ], [ 3662227.984403604175895, 5986483.000469360500574 ], [ 3662651.523339381907135, 5983134.362195494584739 ], [ 3662871.2521534524858, 5979776.177587747573853 ], [ 3661494.22465406358242, 5978197.475895876996219 ], [ 3658925.789222318213433, 5978517.341157169081271 ], [ 3656830.826976154465228, 5979976.812364197336137 ], [ 3658508.176196332555264, 5981767.639744437299669 ], [ 3656170.109076574910432, 5981382.603831958957016 ], [ 3654624.93631299212575, 5981738.902033882215619 ], [ 3653434.612719595897943, 5983738.503827882930636 ], [ 3651074.579556458164006, 5980908.381289593875408 ], [ 3648837.783996753860265, 5980530.324519597925246 ], [ 3647448.808551948517561, 5982423.488371020182967 ], [ 3647782.667416546493769, 5984778.280985984019935 ], [ 3648645.566185598261654, 5986537.733906109817326 ], [ 3645579.410863374825567, 5986644.305157721973956 ], [ 3643470.403510181698948, 5988818.80433077737689 ], [ 3640504.846709623932838, 5989033.430624036118388 ], [ 3633890.674955031834543, 5988430.668406412936747 ], [ 3628061.871624656487256, 5985211.493438999168575 ], [ 3625061.642700591590255, 5982888.460956374183297 ], [ 3623538.758175417315215, 5982542.018510132096708 ], [ 3623360.939891994465142, 5985389.746848962269723 ], [ 3620284.747867436148226, 5985920.020641611889005 ], [ 3619154.936340152751654, 5986196.347556664608419 ], [ 3615305.386085841804743, 5989152.597783781588078 ], [ 3614702.638933064416051, 5992900.839564746245742 ], [ 3617578.598124216776341, 5996022.030784356407821 ], [ 3619585.181020395830274, 5997190.966657686978579 ], [ 3622560.127815623302013, 5996354.516834427602589 ], [ 3626140.682375621516258, 5999497.935413821600378 ], [ 3630042.858900194987655, 6005491.831297133117914 ], [ 3633234.458409746643156, 6007610.801031122915447 ], [ 3637437.938445141073316, 6009761.294675259850919 ], [ 3636398.014385366346687, 6017425.26873295288533 ], [ 3635831.303666833788157, 6022868.104215316474438 ], [ 3635131.936384604312479, 6025978.740311385132372 ], [ 3637105.992037691175938, 6027652.735205392353237 ], [ 3639256.170031713321805, 6030139.634154226630926 ], [ 3638818.416685725096613, 6031235.995821256190538 ], [ 3635574.331812719348818, 6031542.128796365112066 ], [ 3634136.185552867129445, 6028876.806608921848238 ], [ 3632323.031344205606729, 6028622.215504952706397 ], [ 3625827.451684121508151, 6029448.043566320091486 ], [ 3622437.933770126197487, 6027640.811726442538202 ], [ 3620573.184138350188732, 6025471.583947250619531 ], [ 3616129.822868337389082, 6021114.568310817703605 ], [ 3612989.503001395147294, 6021137.231254814192653 ], [ 3609121.560775980819017, 6021952.949824293144047 ], [ 3606034.203942938242108, 6024102.523656030185521 ], [ 3603944.780373683199286, 6026981.947867111302912 ], [ 3598431.819304782897234, 6029382.075281332246959 ], [ 3595165.199908215552568, 6030926.24999563023448 ], [ 3590865.173918840009719, 6033761.328385912813246 ], [ 3587920.620899152942002, 6034610.322936806827784 ], [ 3584895.028692354913801, 6034452.377030610106885 ], [ 3581692.645633881911635, 6032882.931262120604515 ], [ 3579788.619642806705087, 6032043.205590416677296 ], [ 3577820.630791730247438, 6028985.207703548483551 ], [ 3577572.168072968255728, 6025753.117762702517211 ], [ 3576104.1117475903593, 6022801.308350095525384 ], [ 3574813.553303983993828, 6021265.291233776137233 ], [ 3574465.663523115217686, 6023985.877401391044259 ], [ 3574331.777493017725646, 6026002.105266426689923 ], [ 3575895.904716937802732, 6029255.381189533509314 ], [ 3577293.306442660279572, 6030286.946996293962002 ], [ 3576949.579184582922608, 6032699.874535360373557 ], [ 3576890.240706387907267, 6036223.897661622613668 ], [ 3577674.992212505079806, 6037545.79078642744571 ], [ 3574813.283204010222107, 6039812.267928255721927 ], [ 3571077.493545711971819, 6040154.867030277848244 ], [ 3564245.037148574367166, 6038544.508196053095162 ], [ 3558028.478378171101213, 6035743.866404894739389 ], [ 3555090.671247178222984, 6036714.062961063347757 ], [ 3553966.897324731107801, 6037908.24919056892395 ], [ 3559584.787068200763315, 6040191.345246435143054 ], [ 3563388.093420676421374, 6042153.198028391227126 ], [ 3566064.425076221115887, 6045206.30196550115943 ], [ 3566315.203580655623227, 6048725.041971346363425 ], [ 3567385.31338122440502, 6057967.624278583563864 ], [ 3567647.609812436625361, 6060575.743284944444895 ], [ 3566405.381215043365955, 6063160.065788928419352 ], [ 3564362.767563796136528, 6065731.74424010142684 ], [ 3562891.432223541196436, 6070609.209251622669399 ], [ 3560955.523667989298701, 6073079.659824595786631 ], [ 3558829.530779158230871, 6074948.215923575684428 ], [ 3557673.998887941241264, 6071438.592247040942311 ], [ 3556590.489519403316081, 6070026.249422416090965 ], [ 3553076.67631616583094, 6070782.82060684543103 ], [ 3552046.776633912697434, 6073267.578044282272458 ], [ 3550526.952917625661939, 6074947.287820353172719 ], [ 3546624.263458918314427, 6075104.819875131361187 ], [ 3541807.937914241570979, 6076753.792426519095898 ], [ 3539092.153807563241571, 6078624.422683315351605 ], [ 3537474.945653808303177, 6080803.904797994531691 ], [ 3539555.858869717922062, 6082715.047184738330543 ], [ 3538353.496481058653444, 6083202.732383102178574 ], [ 3535878.380624684970826, 6080591.541057301685214 ], [ 3531601.35056213894859, 6077967.245022288523614 ], [ 3530312.121341595426202, 6076462.201856628060341 ], [ 3529126.559532237239182, 6074259.098911981098354 ], [ 3528525.755083577241749, 6074355.062290877103806 ], [ 3528017.54898785520345, 6075649.177612939849496 ], [ 3527707.112792796455324, 6077343.170737358741462 ], [ 3527302.429359105415642, 6078138.553843031637371 ], [ 3526695.078588108066469, 6079431.124257008545101 ], [ 3524400.84816991025582, 6078720.174671530723572 ], [ 3523513.470992925576866, 6076421.549449931830168 ], [ 3521822.026053374167532, 6074716.797060671262443 ], [ 3520019.923130665905774, 6075107.589370651170611 ], [ 3516518.126046721357852, 6075492.499923293478787 ], [ 3514906.866170011926442, 6078878.067467384971678 ], [ 3515402.050149623304605, 6080175.702469152398407 ], [ 3511302.014361139852554, 6081857.656631960533559 ], [ 3506807.12502259016037, 6082645.586997093632817 ], [ 3503512.498904316686094, 6082442.527247777208686 ], [ 3500516.901155684608966, 6084134.438620503991842 ], [ 3498122.152735123876482, 6085727.889748476445675 ], [ 3493632.789508264046162, 6086030.63562573492527 ], [ 3490538.361381174996495, 6085239.642211005091667 ], [ 3488944.994919380173087, 6086537.404741224832833 ], [ 3486147.556667842436582, 6085151.436336082406342 ], [ 3483951.904921564739197, 6085059.155766732059419 ], [ 3481957.734690066426992, 6085464.957368570379913 ], [ 3479468.249222930520773, 6086570.648820630274713 ], [ 3476678.167309266049415, 6087005.580536222085357 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 2 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 3 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 4 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 5 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 6 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 7 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 3542035.396427161525935, 5265212.925454019568861 ], [ 3544585.692909493111074, 5259867.90865589492023 ], [ 3547289.899165036156774, 5258278.944561273790896 ], [ 3550919.520700506865978, 5253655.323959340341389 ] ] ] } },
+{ "type": "Feature", "properties": { "id": 8 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 9 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } },
+{ "type": "Feature", "properties": { "id": 10 }, "geometry": { "type": "MultiLineString", "coordinates": [ ] } }
+]
+}
diff --git a/MessagesMap/geo/gre_ger_ver_gauss.json b/MessagesMap/geo/gre_ger_ver_gauss.json
new file mode 100644
index 000000000..fe306dcd2
--- /dev/null
+++ b/MessagesMap/geo/gre_ger_ver_gauss.json
@@ -0,0 +1,3 @@
+{ "coordinates": [ [ 3476677.303190048318356, 6087007.257444866932929 ], [ 3476616.822004675399512, 6084966.811360620893538 ], [ 3473668.040791889186949, 6084136.65482482034713 ], [ 3474958.085608421824872, 6082784.623404480516911 ], [ 3474686.09936313983053, 6078799.581815544515848 ], [ 3477666.907604074571282, 6075342.610363858751953 ], [ 3478458.137393671087921, 6073492.401157525368035 ], [ 3479258.72941018268466, 6073538.567376623861492 ], [ 3481041.117867288179696, 6069136.443714180961251 ], [ 3481084.92734553059563, 6067637.231298245489597 ], [ 3480178.321920018643141, 6066491.516745407134295 ], [ 3480225.367629409302026, 6065791.416873103938997 ], [ 3482030.445277167484164, 6066083.865732400678098 ], [ 3483378.506749597843736, 6064778.721244581975043 ], [ 3483974.459224163554609, 6063226.091161146759987 ], [ 3483968.806775116827339, 6061625.055352501571178 ], [ 3485367.320772295352072, 6059818.473003786057234 ], [ 3487271.696009595412761, 6059011.685488608665764 ], [ 3488722.168830782175064, 6057054.701115871779621 ], [ 3488919.456368356477469, 6055601.327695346437395 ], [ 3489869.808718715794384, 6053870.073632965795696 ], [ 3489088.997096770443022, 6052994.578761538490653 ], [ 3487630.804641078226268, 6052647.335497889667749 ], [ 3487955.332369572483003, 6051844.152047887444496 ], [ 3488607.613161220215261, 6051391.110381573438644 ], [ 3489238.623185290955007, 6052517.903995002619922 ], [ 3490645.543693324085325, 6052414.511348939500749 ], [ 3491600.308246622327715, 6052362.507246378809214 ], [ 3492179.24110572738573, 6052938.084833488799632 ], [ 3492278.427850613836199, 6052160.730622250586748 ], [ 3492552.921309833880514, 6050981.703681353479624 ], [ 3491820.470023844856769, 6049026.361397593282163 ], [ 3491916.337048817425966, 6046365.880419854074717 ], [ 3491837.571855330374092, 6044533.019575617276132 ], [ 3490424.542005356401205, 6042903.018327214755118 ], [ 3488986.826742523815483, 6041901.200352019630373 ], [ 3487902.959149586502463, 6041577.248776316642761 ], [ 3487447.089427972212434, 6040673.673030675388873 ], [ 3487848.103307355660945, 6039893.309557938948274 ], [ 3488376.412795174401253, 6039565.102359182201326 ], [ 3487212.267653345130384, 6037782.777916644699872 ], [ 3488747.531551353633404, 6036772.5651326905936 ], [ 3491344.281854037661105, 6036590.818132951855659 ], [ 3493260.651203465182334, 6036587.600898121483624 ], [ 3494648.877097764518112, 6037768.053973471745849 ], [ 3495532.680629992857575, 6039301.104760761372745 ], [ 3496718.211747415363789, 6040858.722266473807395 ], [ 3497097.05774338170886, 6042391.427392679266632 ], [ 3498835.000953202601522, 6043571.445409429259598 ], [ 3499288.190216931048781, 6043621.594292171299458 ], [ 3499842.018962797708809, 6041762.324521061964333 ], [ 3500774.142192447092384, 6040556.009328267537057 ], [ 3501001.161251977551728, 6039324.209037479013205 ], [ 3500547.610257353633642, 6038896.676230365410447 ], [ 3500295.591036630328745, 6038796.068267208524048 ], [ 3500799.714126588311046, 6038469.222843501716852 ], [ 3500446.927848208229989, 6037664.372356803156435 ], [ 3498757.581189809367061, 6036482.201649500988424 ], [ 3497320.008458916097879, 6036029.930034782737494 ], [ 3495931.345742169767618, 6034168.640607496723533 ], [ 3494137.630558690987527, 6032231.968735426664352 ], [ 3492773.114790372550488, 6031226.519073423929513 ], [ 3490676.500464137643576, 6030600.56354686897248 ], [ 3489162.783735713455826, 6031107.682208864949644 ], [ 3487648.182124414946884, 6031161.885515580885112 ], [ 3484312.695420804899186, 6030265.217610725201666 ], [ 3482341.424828741233796, 6029818.884594698436558 ], [ 3480674.634771616198123, 6029800.410619959235191 ], [ 3478908.206775232683867, 6030085.344181993044913 ], [ 3477996.738320228643715, 6029585.711916355416179 ], [ 3477080.912461290601641, 6028254.550017295405269 ], [ 3477379.575982786249369, 6027345.612320648506284 ], [ 3478539.832447910681367, 6026911.455994581803679 ], [ 3479904.242047449573874, 6026880.066496703773737 ], [ 3480101.803682956378907, 6025820.182651890441775 ], [ 3479643.165972984395921, 6024989.932254783809185 ], [ 3478554.028805126436055, 6024540.864729285240173 ], [ 3477412.493434378411621, 6023764.300371735356748 ], [ 3476777.402341734152287, 6023187.159839357249439 ], [ 3475768.219432229176164, 6023646.534396583214402 ], [ 3475060.184485014993697, 6023650.325195582583547 ], [ 3474148.007917058188468, 6023327.368328050710261 ], [ 3474495.186071339063346, 6022088.903486514464021 ], [ 3474441.927685622125864, 6021609.641836904920638 ], [ 3474141.616244169417769, 6022191.833146094344556 ], [ 3473910.235273453872651, 6021536.905754138715565 ], [ 3474182.707033030688763, 6020500.344429734162986 ], [ 3474708.681990761309862, 6019512.672322079539299 ], [ 3475845.500116827897727, 6019102.501202166080475 ], [ 3476699.710459274705499, 6017835.186774375848472 ], [ 3477935.615038743708283, 6016843.789863794110715 ], [ 3479225.334938751067966, 6016433.502446329221129 ], [ 3480390.684009729884565, 6016504.200149700976908 ], [ 3480876.818839738145471, 6017689.628717071376741 ], [ 3482142.117695638444275, 6017507.710238441824913 ], [ 3482953.970881132874638, 6017934.085652164183557 ], [ 3483408.243424926418811, 6017528.238434339873493 ], [ 3484421.493565948214382, 6017651.013177098706365 ], [ 3484876.836277821101248, 6017523.18357397057116 ], [ 3485076.370753273367882, 6016587.713416242040694 ], [ 3486089.781757748220116, 6016710.881793124601245 ], [ 3487357.143783047329634, 6017111.490024683065712 ], [ 3488675.669734642375261, 6017815.428914855234325 ], [ 3489660.672165025025606, 6016726.760208196938038 ], [ 3489961.711308636702597, 6015412.022719726897776 ], [ 3490011.445208260323852, 6014982.233129035681486 ], [ 3491785.766385649330914, 6015484.237369721755385 ], [ 3493054.258189263753593, 6016745.67030805721879 ], [ 3494423.38638886064291, 6018057.503272474743426 ], [ 3495715.754178680013865, 6019318.934935205616057 ], [ 3496501.127805914729834, 6020303.026617791503668 ], [ 3497184.568025426007807, 6020630.765349281020463 ], [ 3497209.735056382138282, 6020403.534698413684964 ], [ 3496626.938052949495614, 6019318.181960014626384 ], [ 3496271.064359024167061, 6017424.111700810492039 ], [ 3495383.716512867249548, 6016313.201293854042888 ], [ 3494445.060474902391434, 6015025.325029075145721 ], [ 3493557.23128197202459, 6014217.566314378753304 ], [ 3492188.937240012455732, 6014219.676489369943738 ], [ 3490465.796297576278448, 6014172.351298003457487 ], [ 3489705.399327688384801, 6014072.859690828248858 ], [ 3489424.519602987449616, 6013137.982663879171014 ], [ 3489396.270064483396709, 6011873.540976386517286 ], [ 3489699.644226006697863, 6011493.435010779649019 ], [ 3489543.397864985279739, 6009672.140033581294119 ], [ 3488398.721078993752599, 6008358.791234686039388 ], [ 3487887.65149036468938, 6006967.687228480353951 ], [ 3487783.394649030640721, 6005929.708095429465175 ], [ 3487374.340646149590611, 6004866.988068813458085 ], [ 3488133.712167686782777, 6003952.94100640527904 ], [ 3488535.208597412332892, 6002000.580343826673925 ], [ 3489344.124714308883995, 6000223.984489561058581 ], [ 3490436.11603883607313, 5999790.509757761843503 ], [ 3490713.178875850513577, 5998521.796330644749105 ], [ 3492062.576726691331714, 5999609.919839192181826 ], [ 3493970.034583770204335, 6000393.157158768735826 ], [ 3495316.664923462551087, 6000036.604230587370694 ], [ 3496204.045478584710509, 5997321.685142442584038 ], [ 3496635.361620070878416, 5995900.251514022238553 ], [ 3497906.500985828693956, 5994020.95537724904716 ], [ 3498822.481232897378504, 5993157.263414944522083 ], [ 3497244.117597866337746, 5992853.166500536724925 ], [ 3497294.824806632939726, 5992497.560236354358494 ], [ 3499076.87488862266764, 5992369.874042908661067 ], [ 3498898.303493827115744, 5990820.254816381260753 ], [ 3497751.613563754130155, 5989448.404544831253588 ], [ 3496707.123435814864933, 5989423.606808953918517 ], [ 3494235.068423153832555, 5988638.041764864698052 ], [ 3492504.350645236670971, 5989809.698533716611564 ], [ 3490874.977210045792162, 5990270.040501957759261 ], [ 3489574.504850093275309, 5989612.027205031365156 ], [ 3489215.278043416794389, 5988494.443721514195204 ], [ 3490155.682392837014049, 5987373.687156686559319 ], [ 3492368.340063839685172, 5984520.798736343160272 ], [ 3493489.048904071096331, 5983526.719524797052145 ], [ 3493459.034774763509631, 5980293.705846439115703 ], [ 3494758.039027869235724, 5977795.738842130638659 ], [ 3496033.422306774184108, 5975934.107598604634404 ], [ 3496748.48243021639064, 5975474.720108155161142 ], [ 3497258.913039631675929, 5974429.09876615088433 ], [ 3498741.000572288874537, 5973510.456161595880985 ], [ 3501450.354571287985891, 5974326.542106374166906 ], [ 3502728.207479953300208, 5974403.614853972569108 ], [ 3504722.662174994125962, 5973461.69496139511466 ], [ 3506410.543320814613253, 5972928.118898688815534 ], [ 3508481.40759842749685, 5972905.927353111095726 ], [ 3510858.726791886147112, 5973038.396658951416612 ], [ 3514437.667801415082067, 5973099.135321523062885 ], [ 3517689.619749707169831, 5971732.852935117669404 ], [ 3520071.79460312332958, 5970823.944320211187005 ], [ 3522100.38359285145998, 5969148.617584634572268 ], [ 3524390.52389700524509, 5966683.225926808081567 ], [ 3525932.338460141792893, 5965644.248623124323785 ], [ 3526715.26692469092086, 5963067.739376971498132 ], [ 3527108.010876456275582, 5961612.809277003630996 ], [ 3528252.460967866238207, 5958831.762410629540682 ], [ 3528673.873235184699297, 5957017.511846443638206 ], [ 3531431.443511363118887, 5955140.881238510832191 ], [ 3533156.49808227783069, 5954358.971981920301914 ], [ 3534888.61565616633743, 5952706.683271947316825 ], [ 3535649.97364470269531, 5950508.755971888080239 ], [ 3536279.568306562490761, 5948821.704728314653039 ], [ 3535742.444965830538422, 5948484.26254793908447 ], [ 3535600.479971596039832, 5946867.530726219527423 ], [ 3535406.01020170468837, 5945378.146233955398202 ], [ 3536366.456744550261647, 5944230.741993399336934 ], [ 3537639.202111887279898, 5942700.664343249052763 ], [ 3540616.254224290139973, 5940645.490606938488781 ], [ 3543698.68793532345444, 5938617.915230557322502 ], [ 3545662.204447855707258, 5937994.112867050804198 ], [ 3545543.090832621790469, 5936990.590394141152501 ], [ 3542754.872309128753841, 5937607.029409196227789 ], [ 3540966.085153403226286, 5938901.687121853232384 ], [ 3539080.200113159604371, 5939605.017451407387853 ], [ 3537185.967812778893858, 5941438.940311964601278 ], [ 3536124.192986026406288, 5942278.004538708366454 ], [ 3535003.894007174298167, 5944117.738086530938745 ], [ 3533781.426410960033536, 5945981.924722048453987 ], [ 3532783.738886163104326, 5948924.170413659885526 ], [ 3532130.958529762923717, 5950432.066735602915287 ], [ 3530733.010538680944592, 5952062.726530008949339 ], [ 3528176.512794377282262, 5954403.192552183754742 ], [ 3526908.81742023024708, 5956136.757830238901079 ], [ 3525613.749208349268883, 5958356.028938844799995 ], [ 3523933.308036295231432, 5960981.771894171833992 ], [ 3522225.354591047856957, 5964398.712193109095097 ], [ 3520982.854110349435359, 5967305.124535276554525 ], [ 3519287.987911266740412, 5968625.561561356298625 ], [ 3517926.941844350192696, 5969870.935102732852101 ], [ 3516007.293956977315247, 5970144.692940020933747 ], [ 3511886.873376769479364, 5970872.42351512145251 ], [ 3509534.005070523358881, 5970764.942434266209602 ], [ 3505442.229162491392344, 5970222.456928632222116 ], [ 3502450.280958690214902, 5968407.593091765418649 ], [ 3501452.385463931132108, 5967998.666074465960264 ], [ 3502425.703641577623785, 5966492.391245706938207 ], [ 3502938.765823274850845, 5964857.773516360670328 ], [ 3502503.397950951941311, 5964857.519704677164555 ], [ 3501606.420056908857077, 5966645.280344867147505 ], [ 3500761.467388154473156, 5967513.351773649454117 ], [ 3498611.505742757115513, 5967666.702764188870788 ], [ 3496384.280060479417443, 5967003.944920568726957 ], [ 3493516.553727657999843, 5966470.706748393364251 ], [ 3490956.549612362403423, 5966526.039071647450328 ], [ 3488141.374203115701675, 5966889.892934074625373 ], [ 3485429.576104983687401, 5967433.852817035280168 ], [ 3483361.405270639341325, 5968870.570711989887059 ], [ 3481144.941529768053442, 5971278.058991043828428 ], [ 3480585.90487444261089, 5972147.796602218411863 ], [ 3479944.902084841392934, 5971742.319209679029882 ], [ 3479259.78169163595885, 5972944.272228319197893 ], [ 3479671.720897752325982, 5973605.57880505733192 ], [ 3477523.777500263880938, 5973462.420466737821698 ], [ 3475038.041070946492255, 5972327.254984011873603 ], [ 3473597.222281103953719, 5970753.292319818399847 ], [ 3472227.788292527664453, 5968438.451589711010456 ], [ 3471273.561512243002653, 5967244.088373540900648 ], [ 3470724.346342022996396, 5965382.846015744842589 ], [ 3470026.726949790026993, 5964416.332110068760812 ], [ 3469884.352837080601603, 5962193.559136566706002 ], [ 3469518.946333679836243, 5961173.185775845311582 ], [ 3469148.664925666991621, 5959436.442868684418499 ], [ 3468523.683629658073187, 5958007.860167969949543 ], [ 3467899.551634310279042, 5956758.086275375448167 ], [ 3467012.5337621322833, 5954664.949093569070101 ], [ 3466484.583247231319547, 5952619.694428771734238 ], [ 3465886.56201363587752, 5951599.168357658199966 ], [ 3465966.649820008780807, 5948471.469624611549079 ], [ 3466514.704319792799652, 5946031.051722260192037 ], [ 3467654.699947436805815, 5943534.009449102915823 ], [ 3468440.193999410606921, 5941731.634774578735232 ], [ 3468999.306686798110604, 5940649.36988194193691 ], [ 3469761.206471896730363, 5939026.133002907969058 ], [ 3470135.115965273231268, 5937070.796957628801465 ], [ 3471562.621569440700114, 5934542.515133575536311 ], [ 3471888.831830199342221, 5933048.822247330099344 ], [ 3471181.839416280388832, 5931277.813002342358232 ], [ 3470247.435915781650692, 5930357.109370796009898 ], [ 3468543.862083675805479, 5930239.441170612350106 ], [ 3467685.270660751499236, 5929189.8042405359447 ], [ 3467081.363217087462544, 5927700.523775080218911 ], [ 3466256.80613265838474, 5927912.351402817294002 ], [ 3467384.130276493728161, 5930427.469608259387314 ], [ 3469147.159465497825295, 5931753.834628779441118 ], [ 3470830.574399704113603, 5932875.168024580925703 ], [ 3470323.601052484475076, 5934267.258341459557414 ], [ 3469010.808993947692215, 5934558.572257807478309 ], [ 3467031.455326407216489, 5935343.390442443080246 ], [ 3464844.698914587497711, 5935873.376480970531702 ], [ 3463710.873431571293622, 5935881.957258437760174 ], [ 3462404.245113571174443, 5936843.328530467115343 ], [ 3459169.611636072862893, 5938206.64283024892211 ], [ 3458004.053356953430921, 5940374.942820684053004 ], [ 3456810.54819371085614, 5942183.372621999122202 ], [ 3453724.933793261647224, 5942469.428621008060873 ], [ 3451402.34242440899834, 5941850.907283470965922 ], [ 3449968.027718199416995, 5940093.78015689458698 ], [ 3449506.415085554122925, 5937863.313724148087204 ], [ 3449218.692173304501921, 5935064.251987352967262 ], [ 3449019.958390897139907, 5933368.87287231720984 ], [ 3449007.466803256887943, 5932211.259051729924977 ], [ 3450732.393905590288341, 5931909.915176779031754 ], [ 3452023.500862216111273, 5932051.023267468437552 ], [ 3453785.02066671429202, 5932831.068790009245276 ], [ 3454702.209136665798724, 5931664.340971240773797 ], [ 3454704.339597740676254, 5929193.306496763601899 ], [ 3454547.126716680824757, 5926258.815160104073584 ], [ 3454297.831244829576463, 5924509.052633958868682 ], [ 3453436.544310845900327, 5923615.337047577835619 ], [ 3453370.927973054349422, 5922198.0477643487975 ], [ 3452638.035677419509739, 5921276.978695284575224 ], [ 3451979.810506428591907, 5920097.128058318980038 ], [ 3450572.618216125294566, 5919053.819553339853883 ], [ 3448938.665912148077041, 5918632.462204776704311 ], [ 3447391.162750523537397, 5919036.412611030973494 ], [ 3446704.213739825412631, 5920050.267837939783931 ], [ 3445436.657299753278494, 5922256.93124105874449 ], [ 3444445.376104539260268, 5923686.429506257176399 ], [ 3443270.505878716241568, 5924834.438234180212021 ], [ 3442367.409962251316756, 5924922.653455334715545 ], [ 3441045.313221304677427, 5924552.333469422534108 ], [ 3440367.214761393144727, 5924045.317873069085181 ], [ 3440081.085191955789924, 5923894.265626089647412 ], [ 3438960.289806449785829, 5925145.727907898835838 ], [ 3437775.150844753719866, 5927351.171701144427061 ], [ 3437667.781184329651296, 5929000.879488595761359 ], [ 3437609.03816049778834, 5930417.701596533879638 ], [ 3437720.372066305018961, 5931034.013309716247022 ], [ 3439234.401194016449153, 5930396.536052782088518 ], [ 3440760.11646825587377, 5930660.331835241988301 ], [ 3442625.690823226235807, 5931306.530912490561604 ], [ 3443557.360421299003065, 5931552.67557420488447 ], [ 3444520.762324354611337, 5932313.264070412144065 ], [ 3444767.297731639351696, 5933545.304144686087966 ], [ 3445171.049471332225949, 5935006.658037713728845 ], [ 3444564.248057119548321, 5936016.577023228630424 ], [ 3443783.491945372894406, 5937542.520102150738239 ], [ 3443183.511062816251069, 5939065.935103427618742 ], [ 3444373.255398991052061, 5939488.537014181725681 ], [ 3444038.687686034478247, 5941675.83074155729264 ], [ 3441999.091217389795929, 5941186.859105006791651 ], [ 3441682.267003884073347, 5942628.821024079807103 ], [ 3440547.964738555718213, 5944516.958514201454818 ], [ 3439518.418841506354511, 5946480.262995032593608 ], [ 3438568.430191929917783, 5946595.193164446391165 ], [ 3436757.97238511685282, 5945823.819847674109042 ], [ 3436424.658952358178794, 5947803.656272273510695 ], [ 3435794.304737102705985, 5948709.835236906073987 ], [ 3435562.271022037602961, 5950533.361839624121785 ], [ 3435627.348826813045889, 5951532.082239156588912 ], [ 3436238.614928482566029, 5953035.571394780650735 ], [ 3434683.082664306275547, 5953825.505866463296115 ], [ 3431225.680597115308046, 5954438.43411442451179 ], [ 3428042.019134792499244, 5954434.955622931011021 ], [ 3424132.954372886102647, 5954035.453433121554554 ], [ 3420662.623981730546802, 5953811.043793925084174 ], [ 3417358.084225899539888, 5952817.552741648629308 ], [ 3414515.304292720276862, 5953278.455503807403147 ], [ 3408574.040819264948368, 5951545.100782874971628 ], [ 3406190.520086363889277, 5950566.599212774075568 ], [ 3403456.761280425358564, 5950109.137784102000296 ], [ 3400031.293022985104471, 5951001.319529866799712 ], [ 3393309.005317478440702, 5951508.163937739096582 ], [ 3389864.618126108776778, 5951485.115436712279916 ], [ 3386708.577799924649298, 5950637.017777714878321 ], [ 3385159.556979889981449, 5950366.861781798303127 ], [ 3383445.997129346244037, 5949690.849111491814256 ], [ 3381870.667392538394779, 5948396.06060378625989 ], [ 3379935.811761349905282, 5947161.888310228474438 ], [ 3378858.489231504965574, 5945289.741361330263317 ], [ 3378408.761624115519226, 5945814.868023200891912 ], [ 3377590.491221052594483, 5944038.47620371170342 ], [ 3375116.210454526823014, 5941996.77489753626287 ], [ 3373575.08113806694746, 5940238.72660840395838 ], [ 3373645.036291722208261, 5939002.754042189568281 ], [ 3376925.006747884210199, 5936292.569189994595945 ], [ 3377457.266654254868627, 5934940.725709207355976 ], [ 3374967.4192228410393, 5932483.310416745953262 ], [ 3373278.96142367599532, 5933043.231897374615073 ], [ 3371733.026679804548621, 5933136.436747873201966 ], [ 3370160.365371438674629, 5936010.665202242322266 ], [ 3369519.076137204654515, 5935204.872746789827943 ], [ 3370623.14611141057685, 5932188.231711954809725 ], [ 3369114.591493148822337, 5929911.514532618224621 ], [ 3368440.948788946028799, 5926115.48908681795001 ], [ 3367815.174491509795189, 5922211.898900600150228 ], [ 3367855.358955427072942, 5919939.24583179783076 ], [ 3367481.656192598398775, 5917677.045145064592361 ], [ 3366519.759346931241453, 5916618.93251958116889 ], [ 3367844.007828892674297, 5913945.794399360194802 ], [ 3369891.462418453767896, 5913010.317344238981605 ], [ 3370114.172645153477788, 5913573.019863194786012 ], [ 3372171.915933999232948, 5913000.192899932153523 ], [ 3375694.094334222376347, 5912906.838117407634854 ], [ 3378958.63119217986241, 5912874.349174916744232 ], [ 3381492.820797096937895, 5912655.416653768159449 ], [ 3383761.873747890349478, 5912185.763681191019714 ], [ 3387057.6894920039922, 5911278.965560235083103 ], [ 3389231.434091472998261, 5911124.437441256828606 ], [ 3389169.990427058190107, 5910712.10502291098237 ], [ 3385800.536714525893331, 5910740.032295181415975 ], [ 3383269.018336617387831, 5911111.788336644880474 ], [ 3382339.612016226630658, 5909168.814603465609252 ], [ 3382303.83582130772993, 5907720.653053808026016 ], [ 3382690.641357883810997, 5906572.273836356587708 ], [ 3382015.770535920746624, 5904465.816472715698183 ], [ 3380989.873488475568593, 5902885.385575579479337 ], [ 3380601.92565342830494, 5901910.534897705540061 ], [ 3380963.030417488887906, 5899724.451104337349534 ], [ 3381006.272233997937292, 5897285.966047517023981 ], [ 3380571.120637733489275, 5896518.658477083779871 ], [ 3381950.119964316021651, 5895498.57891889102757 ], [ 3380124.136973114684224, 5895284.522914436645806 ], [ 3379353.156213115900755, 5893591.053024855442345 ], [ 3378897.736422620248049, 5892044.881480769254267 ], [ 3378243.114757189992815, 5890866.917534163221717 ], [ 3378562.644735089503229, 5889092.39410496596247 ], [ 3379631.040984740946442, 5888078.060530565679073 ], [ 3379297.529351510107517, 5885175.069798098877072 ], [ 3379711.781163732521236, 5880898.433419520966709 ], [ 3380381.403146901167929, 5876351.257420996204019 ], [ 3377849.263701925519854, 5869167.572208140976727 ], [ 3371206.723894194699824, 5859363.605619667097926 ], [ 3371527.624746496789157, 5857629.285488212481141 ], [ 3369980.544609344564378, 5854688.178933726623654 ], [ 3368376.925378764048219, 5836115.600377579219639 ], [ 3367449.391853407025337, 5834932.172175120562315 ], [ 3364635.786091762594879, 5836060.378633598797023 ], [ 3363178.295037750620395, 5836678.985137461684644 ], [ 3360259.830418622121215, 5835921.066314455121756 ], [ 3355996.562058160547167, 5837831.420854992233217 ], [ 3353407.414001809898764, 5837540.864718444645405 ], [ 3350618.66691506979987, 5837625.520739251747727 ], [ 3347601.42301795585081, 5837140.95612277276814 ], [ 3345436.599921233952045, 5835317.092675862833858 ], [ 3346230.910827414598316, 5833767.356425877660513 ], [ 3345673.96247839089483, 5831155.126211114227772 ], [ 3348989.942511128727347, 5827525.473647148348391 ], [ 3348192.509100822266191, 5827339.569121494889259 ], [ 3345941.73168804962188, 5827936.415297140367329 ], [ 3345420.68796781077981, 5826478.587266082875431 ], [ 3342795.582504959311336, 5826930.849230648949742 ], [ 3344366.017807743046433, 5823193.267107733525336 ], [ 3343657.871893892996013, 5819209.242543862201273 ], [ 3347499.253721815999597, 5816925.581227378919721 ], [ 3354561.335717626847327, 5816078.104852819815278 ], [ 3354158.508194022811949, 5814981.891949186101556 ], [ 3360410.07235207175836, 5813427.94102281704545 ], [ 3362996.824905620422214, 5816996.017746383324265 ], [ 3363939.139830404892564, 5816653.312081508338451 ], [ 3364874.159504909534007, 5812194.532633400522172 ], [ 3366096.086246723774821, 5810418.508456693962216 ], [ 3366961.268144804984331, 5809127.319069962948561 ], [ 3368172.814551057759672, 5808883.393574013374746 ], [ 3368827.476798161398619, 5803633.030413242988288 ], [ 3367622.175327560864389, 5802184.235616413876414 ], [ 3366151.062394830863923, 5798784.119034263305366 ], [ 3365519.953127616550773, 5795094.159021019004285 ], [ 3367092.672837511636317, 5792349.01920360326767 ], [ 3368069.139912141021341, 5791103.592635864391923 ], [ 3365597.090867508202791, 5790109.597399059683084 ], [ 3363098.702927227132022, 5790125.026598390191793 ], [ 3361671.551380389835685, 5788520.380895545706153 ], [ 3360531.128899966366589, 5785792.907465665601194 ], [ 3358424.072646805085242, 5784684.696112652309239 ], [ 3356556.446475771721452, 5784525.982402518391609 ], [ 3355394.674210579134524, 5783019.637303083203733 ], [ 3354493.993350301869214, 5779539.148845079354942 ], [ 3353125.28834030777216, 5778303.598316594958305 ], [ 3346633.135050836019218, 5778659.228243296965957 ], [ 3346386.405461711343378, 5775848.133750449866056 ], [ 3345958.498180619440973, 5775808.169491874985397 ], [ 3345570.669794476125389, 5775341.380574398674071 ], [ 3345915.712972332723439, 5774426.130252461880445 ], [ 3344716.62388327345252, 5773611.904277126304805 ], [ 3342034.409588743466884, 5773164.032505496405065 ], [ 3341392.093165616970509, 5771427.533043761737645 ], [ 3341604.64657867141068, 5769716.502373205497861 ], [ 3343151.784930287860334, 5769667.569369819015265 ], [ 3346612.322104823775589, 5767588.680359845981002 ], [ 3349786.27053867932409, 5764773.853767707012594 ], [ 3351001.773874350823462, 5764310.908056103624403 ], [ 3350956.643581428565085, 5761005.542051751166582 ], [ 3349780.946646358352154, 5761040.744923886843026 ], [ 3348694.386072121094912, 5760486.610711646266282 ], [ 3348454.893066844437271, 5757878.592688990756869 ], [ 3346462.724164394196123, 5755749.967545739375055 ], [ 3345580.431701772846282, 5754922.452193521894515 ], [ 3344393.333735656458884, 5754638.667289501056075 ], [ 3343615.865370575338602, 5753754.582464783452451 ], [ 3341729.641622526571155, 5755096.11836779024452 ], [ 3340852.271643145009875, 5756138.854005487635732 ], [ 3337433.614686265122145, 5754752.922583672218025 ], [ 3332228.736082796007395, 5752893.764317509718239 ], [ 3331484.686652049887925, 5753079.092910259030759 ], [ 3328537.479325717315078, 5751521.730785178951919 ], [ 3326763.096911835949868, 5749817.823775429278612 ], [ 3325255.827953243162483, 5749656.135702987201512 ], [ 3324174.002950797788799, 5750924.18424697034061 ], [ 3323135.752882071770728, 5750372.353652258403599 ], [ 3320413.791677316650748, 5752233.983169891871512 ], [ 3320203.366592936217785, 5750851.055406567640603 ], [ 3321443.058834682684392, 5749522.922141700051725 ], [ 3321288.639827483799309, 5746692.129620227962732 ], [ 3319064.428227376658469, 5747521.174326245673001 ], [ 3317318.221982288639992, 5749671.447625671513379 ], [ 3315008.851298400200903, 5749595.574773462489247 ], [ 3313754.942126256413758, 5751942.229805063456297 ], [ 3312705.989071736112237, 5752569.594331275671721 ], [ 3311498.001884695608169, 5751812.666121704503894 ], [ 3309891.581034890376031, 5751873.337724787183106 ], [ 3307358.448377598077059, 5751542.130840381607413 ], [ 3305888.227406042162329, 5753738.157947232015431 ], [ 3306925.84768676571548, 5754232.736749564297497 ], [ 3305271.256137723103166, 5755793.628545100800693 ], [ 3304612.516627378296107, 5755391.671358566731215 ], [ 3304316.483997973613441, 5756044.661156723275781 ], [ 3300518.059394588228315, 5754858.14023379702121 ], [ 3303523.705921316985041, 5752225.898682885803282 ], [ 3305131.703610144555569, 5750825.716953269205987 ], [ 3304725.069228686392307, 5748647.424826041795313 ], [ 3300695.251087656710297, 5749876.3569799028337 ], [ 3298051.387151405680925, 5752175.954285630956292 ], [ 3296791.089118544477969, 5750193.582437377423048 ], [ 3294787.194813664536923, 5749739.948938356712461 ], [ 3292318.856472048442811, 5748449.63183955848217 ], [ 3290791.532442485913634, 5749155.562595460563898 ], [ 3289755.415782129857689, 5747485.386199300177395 ], [ 3289920.600297310389578, 5746300.110409592278302 ], [ 3291301.480364295188338, 5744635.263140850700438 ], [ 3291346.548505856189877, 5743132.823075205087662 ], [ 3292459.85460583679378, 5742765.128410023637116 ], [ 3292442.820313614327461, 5741050.270462101325393 ], [ 3289569.277748117689043, 5739185.255158288404346 ], [ 3289938.450207580812275, 5737721.263886852189898 ], [ 3292831.856771476566792, 5737440.418076044879854 ], [ 3295447.548237965907902, 5735616.209272241219878 ], [ 3294546.444769632536918, 5734632.946251344867051 ], [ 3294769.298018490895629, 5733496.348698431625962 ], [ 3294763.373022275976837, 5730703.567491865716875 ], [ 3300766.162442500703037, 5728582.398163359612226 ], [ 3298604.938741892576218, 5723021.899275249801576 ], [ 3301252.56455855909735, 5720387.896259279921651 ], [ 3303898.60222477838397, 5716246.142775188200176 ], [ 3306407.695644464343786, 5712647.141253584064543 ], [ 3307041.350388780236244, 5707985.196954485028982 ], [ 3306760.580651397816837, 5704865.656977678649127 ], [ 3305694.239859013818204, 5699612.892034158110619 ], [ 3307059.12371038692072, 5699885.279689623042941 ], [ 3306408.677259535994381, 5698450.714144894853234 ], [ 3306891.591118102893233, 5695458.633018332533538 ], [ 3304303.466169738210738, 5693014.552679062820971 ], [ 3304820.446972778532654, 5692345.384959954768419 ], [ 3302757.350133853033185, 5692316.377612895332277 ], [ 3300807.180342230945826, 5688222.898389655165374 ], [ 3298167.731455585453659, 5684641.587172788567841 ], [ 3295598.09920528717339, 5682900.066120402887464 ], [ 3296643.59034953918308, 5680471.920284806750715 ], [ 3295340.14535668073222, 5680523.768423667177558 ], [ 3295423.864063579589128, 5675798.2512610508129 ], [ 3296144.030565818306059, 5674737.776216881349683 ], [ 3297818.871181078255177, 5674400.035455786623061 ], [ 3301846.811181697528809, 5677175.150566702708602 ], [ 3303004.950451396871358, 5676153.443406596779823 ], [ 3300069.322801499627531, 5674855.088434789329767 ], [ 3302601.980081139598042, 5672747.463959520682693 ], [ 3301543.437256735749543, 5672136.245121591724455 ], [ 3298906.924106827005744, 5671586.597227867692709 ], [ 3296411.522928901016712, 5670489.049561847932637 ], [ 3295915.934955024160445, 5668986.453105127438903 ], [ 3292843.561578573659062, 5667151.291205334477127 ], [ 3290555.82791165355593, 5665883.689916778355837 ], [ 3288726.071391376666725, 5663835.839024382643402 ], [ 3287655.788463062606752, 5661701.903095590882003 ], [ 3287788.022429387550801, 5660933.985525010153651 ], [ 3286589.163556799292564, 5659676.030673863366246 ], [ 3285675.648484024684876, 5660040.748064618557692 ], [ 3283969.518847334198654, 5662345.04369845148176 ], [ 3283910.612274311482906, 5663545.414018142968416 ], [ 3282216.161774517036974, 5662200.924963196739554 ], [ 3280462.666012768168002, 5662057.389897791668773 ], [ 3281149.725693407002836, 5660230.614482069388032 ], [ 3281007.559314908459783, 5658165.921700863167644 ], [ 3282057.265123712364584, 5657140.391278399154544 ], [ 3282195.721687640529126, 5656534.878498041070998 ], [ 3282895.95685621490702, 5656287.340810407884419 ], [ 3282895.669324495829642, 5654978.694535035640001 ], [ 3281921.831084162462503, 5653928.857449941337109 ], [ 3282164.998008157592267, 5653209.464688984677196 ], [ 3284269.431074277497828, 5653830.426918645389378 ], [ 3286175.214554916135967, 5654951.118787158280611 ], [ 3287108.409572302829474, 5653712.820064155384898 ], [ 3288543.489978682715446, 5654035.741379365324974 ], [ 3291436.881228879094124, 5653918.27361779846251 ], [ 3290313.565470241010189, 5651836.339308062568307 ], [ 3289686.244772073347121, 5651207.041993699036539 ], [ 3290479.113975885789841, 5650520.071423185057938 ], [ 3290561.484402420930564, 5648497.187573024071753 ], [ 3293036.209390486590564, 5647415.017832157202065 ], [ 3295798.145860120654106, 5646650.238728865049779 ], [ 3294738.588578765746206, 5644780.477730887010694 ], [ 3294251.966444883961231, 5642176.986034880392253 ], [ 3295429.911229199264199, 5641474.552059262059629 ], [ 3294038.655232372693717, 5639561.356737680733204 ], [ 3293995.366815812885761, 5638469.315338461659849 ], [ 3292764.31663303123787, 5639229.229561239480972 ], [ 3293061.974928386509418, 5639818.888335167430341 ], [ 3290278.663255966734141, 5638782.033004604279995 ], [ 3289921.04455010779202, 5636717.667458184063435 ], [ 3290352.365412818733603, 5635167.991757966578007 ], [ 3289253.805881355889142, 5633789.126760985702276 ], [ 3287483.172903017606586, 5634791.749206254258752 ], [ 3286712.606090801768005, 5633399.843388979323208 ], [ 3290445.980533546302468, 5630674.267780573107302 ], [ 3289638.17804793221876, 5628350.766448652371764 ], [ 3291080.021227496676147, 5627306.252356147393584 ], [ 3290796.933658776339144, 5624356.834253843873739 ], [ 3291817.968506064265966, 5625138.613653897307813 ], [ 3295043.942357258405536, 5624681.944071646779776 ], [ 3296693.072183144744486, 5624672.295821407809854 ], [ 3297022.031125582288951, 5623233.608524720184505 ], [ 3298291.305944545194507, 5620496.189007695764303 ], [ 3299538.523947891779244, 5618582.128672275692225 ], [ 3299570.386601782403886, 5617977.033707095310092 ], [ 3301329.404882526025176, 5617909.946983234956861 ], [ 3301850.0372996898368, 5617121.559172347187996 ], [ 3300977.427015575114638, 5615891.639724168926477 ], [ 3302162.35970045812428, 5615187.648598435334861 ], [ 3304315.478376474231482, 5615326.448602642863989 ], [ 3304771.804897429421544, 5615748.7816889481619 ], [ 3306900.287934598047286, 5615230.495798503048718 ], [ 3307079.866087296511978, 5614125.333096931688488 ], [ 3306591.203096221201122, 5612824.790656130760908 ], [ 3305774.137469457928091, 5611591.066646741703153 ], [ 3304942.406250657979399, 5609972.853507907129824 ], [ 3304475.208323805127293, 5607790.642461740411818 ], [ 3303121.993529784493148, 5605530.618068462237716 ], [ 3301353.683156805578619, 5604001.152899656444788 ], [ 3301730.339020947460085, 5602280.295819290913641 ], [ 3302920.122726429253817, 5600142.847967209294438 ], [ 3303375.420874859206378, 5599024.059985257685184 ], [ 3306211.227273208089173, 5599524.868260719813406 ], [ 3308305.345973854418844, 5599393.092373580671847 ], [ 3310312.637645933311433, 5598383.865202314220369 ], [ 3312501.882658250629902, 5597809.588673127815127 ], [ 3311240.651073282118887, 5596532.144901648163795 ], [ 3311733.563964404165745, 5594860.915249953046441 ], [ 3313415.794884885661304, 5593974.11834666505456 ], [ 3313854.436974819283932, 5592304.291197531856596 ], [ 3313032.955026251729578, 5589409.431447661481798 ], [ 3312072.228916894178838, 5587290.935907955281436 ], [ 3311029.729631065391004, 5586002.996481238864362 ], [ 3312851.407242894172668, 5584281.337762791663408 ], [ 3314117.023758508265018, 5582468.860902468673885 ], [ 3315507.704989780671895, 5581038.677639014087617 ], [ 3315297.356875209137797, 5579774.707749810069799 ], [ 3313834.56846736650914, 5579162.511864907108247 ], [ 3312422.890927549917251, 5578438.213172486051917 ], [ 3312239.135910466313362, 5577947.022410762496293 ], [ 3309972.402404117397964, 5579686.697858810424805 ], [ 3308506.895402595866472, 5579020.704504291526973 ], [ 3306869.852216646075249, 5576701.878813940100372 ], [ 3306799.393962098751217, 5574767.862640046514571 ], [ 3305868.182006170041859, 5573584.214415721595287 ], [ 3302236.243611646816134, 5572943.305715539492667 ], [ 3300930.017860637046397, 5572161.599748998880386 ], [ 3300144.664714391343296, 5570474.226262048818171 ], [ 3298369.740403208415955, 5570541.314642827026546 ], [ 3297743.478723010979593, 5568681.405577485449612 ], [ 3299343.308557103388011, 5566902.703473022207618 ], [ 3299230.510358086321503, 5563912.904206435196102 ], [ 3296171.838873052038252, 5563918.234956804662943 ], [ 3295589.09417691314593, 5561777.030498195439577 ], [ 3296171.017793844919652, 5559534.813624084927142 ], [ 3295251.905445382930338, 5558792.845377014018595 ], [ 3294582.857005979400128, 5555875.301833150908351 ], [ 3294043.740374677814543, 5553451.368433734402061 ], [ 3294251.548703496344388, 5550163.490096008405089 ], [ 3294854.003845088649541, 5546969.783770482055843 ], [ 3295568.789650909602642, 5543770.044488900341094 ], [ 3298137.080562264192849, 5539328.601225581951439 ], [ 3300777.904525710269809, 5538226.936383076943457 ], [ 3300591.881895710714161, 5536227.414858377538621 ], [ 3301506.195114647038281, 5533740.250803409144282 ], [ 3303618.107277052477002, 5530315.553367778658867 ], [ 3306815.368343424983323, 5528972.044152360409498 ], [ 3307534.157465105410665, 5527160.001687828451395 ], [ 3307574.282217318192124, 5525148.292277450673282 ], [ 3308696.975071363616735, 5525220.016151678748429 ], [ 3309319.512640958186239, 5526984.82498583663255 ], [ 3310993.110894050914794, 5526814.163781641982496 ], [ 3313538.285051248501986, 5522704.250675394199789 ], [ 3316548.763631217181683, 5522265.77099993545562 ], [ 3318269.067922670859843, 5523436.550476114265621 ], [ 3319914.076553903985769, 5522375.822257258929312 ], [ 3321440.373675452079624, 5521095.863393030129373 ], [ 3321037.886370377149433, 5519097.157823511399329 ], [ 3320105.186610721051693, 5514654.248619129881263 ], [ 3319773.01095390226692, 5511419.421840450726449 ], [ 3315822.932736824266613, 5507520.179941294714808 ], [ 3314171.082749260123819, 5505223.023033342324197 ], [ 3315870.534160270821303, 5505613.415918727405369 ], [ 3314532.170840017031878, 5502631.805040402337909 ], [ 3313095.445247137919068, 5500100.983985096216202 ], [ 3311017.866549561731517, 5498601.740836505778134 ], [ 3309590.280488845426589, 5496406.288109920918941 ], [ 3310745.491916314233094, 5494007.452444901689887 ], [ 3308854.629367342684418, 5491489.192985010333359 ], [ 3309181.777033932041377, 5484730.256133002229035 ], [ 3313247.010812398511916, 5484814.69000612013042 ], [ 3316492.805140560958534, 5484029.476350947283208 ], [ 3319570.990886089392006, 5481563.382581897079945 ], [ 3322287.867931914515793, 5478321.523670556023717 ], [ 3321235.587449310813099, 5477229.36579033266753 ], [ 3322961.23001126293093, 5474694.29114542901516 ], [ 3325099.315040445420891, 5474400.165233524516225 ], [ 3325489.990141856949776, 5472471.349379789084196 ], [ 3324874.834437024779618, 5470912.296611363068223 ], [ 3323205.481559679843485, 5471755.291168798692524 ], [ 3322589.593790540471673, 5470196.25176914408803 ], [ 3325043.291458060964942, 5469102.162997494451702 ], [ 3324770.449323010630906, 5467644.072313352487981 ], [ 3330396.944478302728385, 5462951.873545842245221 ], [ 3329867.541308000683784, 5460483.174938303418458 ], [ 3331884.418704373762012, 5459743.229751444421709 ], [ 3331997.139188995119184, 5456009.726872179657221 ], [ 3334142.840959931258112, 5455718.552115550264716 ], [ 3334888.504926262423396, 5454112.922470156103373 ], [ 3332903.71215025568381, 5452249.616904384456575 ], [ 3335540.263590311165899, 5449341.080995460040867 ], [ 3338722.781859032809734, 5449473.553945599123836 ], [ 3341862.933300896547735, 5448137.472464187070727 ], [ 3343528.168615900911391, 5450806.451900968328118 ], [ 3344353.816673721652478, 5451914.538425981998444 ], [ 3343517.471719459164888, 5454426.592455507256091 ], [ 3342416.623720757197589, 5455588.693145615980029 ], [ 3344471.86133106937632, 5456095.545629951171577 ], [ 3346230.777860252652317, 5454124.041230094619095 ], [ 3348534.500820654910058, 5455417.066853553988039 ], [ 3350126.772815578151494, 5455599.616118837147951 ], [ 3350754.49173581879586, 5453660.418490864336491 ], [ 3353042.183922443073243, 5454390.484042441472411 ], [ 3355475.836065769661218, 5452064.318216507323086 ], [ 3356254.627246593125165, 5451478.37142503913492 ], [ 3356823.409308884758502, 5447163.237360533326864 ], [ 3357294.292350224219263, 5443413.863010513596237 ], [ 3359579.423207714688033, 5443921.746796428225935 ], [ 3360987.298051197081804, 5445698.208481875248253 ], [ 3360590.471944097895175, 5447972.440755658783019 ], [ 3362292.112452516332269, 5447929.735422714613378 ], [ 3361455.444901064969599, 5446252.590178170241416 ], [ 3364057.079601254779845, 5445848.282199367880821 ], [ 3365712.608134512789547, 5443882.626493926160038 ], [ 3367896.633981968276203, 5444962.516656741499901 ], [ 3368642.734678084496409, 5442906.054143330082297 ], [ 3371980.076957716140896, 5444753.172875575721264 ], [ 3374577.838198570534587, 5444127.395131227560341 ], [ 3375230.834074159618467, 5442866.755629636347294 ], [ 3377448.385518587194383, 5445535.004778406582773 ], [ 3379165.533601051662117, 5446176.423322357237339 ], [ 3380870.060002903919667, 5446252.588262471370399 ], [ 3380943.272243015002459, 5449645.88072828296572 ], [ 3386280.102225408889353, 5449872.642567787319422 ], [ 3385796.10053317528218, 5448411.922651157714427 ], [ 3390566.658243300393224, 5448654.678026086650789 ], [ 3390875.608130455948412, 5447064.419459532946348 ], [ 3389591.466181238181889, 5445278.940169045701623 ], [ 3391921.592530752066523, 5442515.271651929244399 ], [ 3394684.753265048842877, 5438496.4903419399634 ], [ 3399004.598318004515022, 5438529.320804560557008 ], [ 3400550.565832812339067, 5436007.450539210811257 ], [ 3403823.534864186309278, 5434588.917249847203493 ], [ 3405324.923858066089451, 5435923.79734976682812 ], [ 3407253.612404691055417, 5435664.408813539892435 ], [ 3407806.925638171844184, 5434748.031439089216292 ], [ 3410777.704689913894981, 5435606.534004563465714 ], [ 3412390.74775867164135, 5436941.196620415896177 ], [ 3417001.288586367387325, 5433582.037418880499899 ], [ 3418957.754121808800846, 5435140.697352018207312 ], [ 3421562.956715709995478, 5434422.86768676713109 ], [ 3422379.521928046364337, 5435885.328683120198548 ], [ 3425744.129689838737249, 5432437.227799493819475 ], [ 3427224.266208763234317, 5432531.038100123405457 ], [ 3431741.759720824658871, 5429864.124439768493176 ], [ 3432188.612845612224191, 5429177.71805084683001 ], [ 3438648.05060533201322, 5426605.180578490719199 ], [ 3441146.937545709311962, 5426010.398915889672935 ], [ 3443774.019803314469755, 5426777.997880448587239 ], [ 3444100.72794422134757, 5425298.52947814296931 ], [ 3441018.598437156993896, 5424648.949427127838135 ], [ 3435781.751066780183464, 5415044.075494257733226 ], [ 3434346.99304535286501, 5409482.786479373462498 ], [ 3431221.258303457405418, 5406102.538412497378886 ], [ 3428935.65839446336031, 5406131.130265021696687 ], [ 3427750.173842236865312, 5402840.358370274305344 ], [ 3424540.760941871441901, 5402312.519788173958659 ], [ 3423922.496248530223966, 5398898.478684207424521 ], [ 3418439.855920504312962, 5391781.614717473275959 ], [ 3413938.186163996346295, 5389677.335346916690469 ], [ 3411663.536555420141667, 5383536.496232718229294 ], [ 3411904.082985449582338, 5376891.61941062938422 ], [ 3409316.030788129195571, 5373150.537075099535286 ], [ 3408785.944496780633926, 5368800.822875512763858 ], [ 3406375.0789919286035, 5362181.630773250944912 ], [ 3407291.672799124382436, 5354810.195661885663867 ], [ 3403448.705552062485367, 5352688.398006235249341 ], [ 3401584.928618231788278, 5345005.833078308030963 ], [ 3399793.318139681126922, 5341694.676721687428653 ], [ 3395999.802427514456213, 5336572.159682932309806 ], [ 3395949.444171581882983, 5333802.955227456986904 ], [ 3394183.205465422011912, 5332218.813860137946904 ], [ 3394595.380240791011602, 5329438.959857028909028 ], [ 3393640.730744129046798, 5327954.405255996622145 ], [ 3393211.342989110853523, 5323569.099566949531436 ], [ 3396360.318487529177219, 5318073.055318268015981 ], [ 3398280.386333810631186, 5315028.157073317095637 ], [ 3394487.641686563845724, 5310925.224588554352522 ], [ 3394423.981077825650573, 5307448.090825513936579 ], [ 3392276.657797023188323, 5304587.579806504771113 ], [ 3392216.062134995125234, 5301338.763521077111363 ], [ 3390511.565416099969298, 5297421.956813243217766 ], [ 3390967.2622343711555, 5290670.947469526901841 ], [ 3391033.667191634885967, 5287993.832420127466321 ], [ 3389003.368527046404779, 5285588.023670888505876 ], [ 3389741.017122888471931, 5281381.400491485372186 ], [ 3392819.984673089813441, 5277244.935140418820083 ], [ 3394591.297573479358107, 5271730.801261203363538 ], [ 3398013.090484702028334, 5273303.366132202558219 ], [ 3400707.498672728426754, 5273490.161846791394055 ], [ 3401828.139359097927809, 5270554.286127161234617 ], [ 3397955.972861425019801, 5270037.144075736403465 ], [ 3399998.7742646089755, 5266265.641654439270496 ], [ 3404585.363901938777417, 5267356.723335566930473 ], [ 3408467.720814909785986, 5268462.114133893512189 ], [ 3410960.008184376638383, 5270641.193926501087844 ], [ 3411809.170814938377589, 5272611.76419866271317 ], [ 3418007.770553172565997, 5272404.673736351542175 ], [ 3417943.807783041615039, 5267854.309229598380625 ], [ 3424162.66499761166051, 5268820.825085404329002 ], [ 3429899.930880703497678, 5268865.822852464392781 ], [ 3433071.157436474226415, 5269762.234682783484459 ], [ 3434850.180987715255469, 5271842.22906899638474 ], [ 3440261.857453008182347, 5274699.827171719633043 ], [ 3442490.564558713696897, 5275376.912784439511597 ], [ 3447264.346893206704408, 5273116.368334513157606 ], [ 3451332.917477671988308, 5270048.07426589820534 ], [ 3455199.364794543478638, 5270600.441492328420281 ], [ 3462217.406400641426444, 5270084.029153803363442 ], [ 3462115.544423341285437, 5272417.717338015325367 ], [ 3459549.26128638535738, 5273484.546016472391784 ], [ 3461315.280674194917083, 5275221.385354879312217 ], [ 3464252.008879730477929, 5277417.029964530840516 ], [ 3466808.071528592146933, 5274721.123694409616292 ], [ 3465386.15279812226072, 5271580.890589426271617 ], [ 3466536.707049704156816, 5268190.529738401062787 ], [ 3469135.004472768865526, 5272492.859014559537172 ], [ 3469979.735556862317026, 5277501.11858360376209 ], [ 3471967.220725715626031, 5277607.701487408950925 ], [ 3470702.75202213646844, 5281807.2296939836815 ], [ 3465559.106220188550651, 5281020.366265679709613 ], [ 3464258.458702430594712, 5278465.64477123785764 ], [ 3460407.672557429876179, 5279306.108462906442583 ], [ 3456223.297716085333377, 5282247.711141574196517 ], [ 3458593.045648510567844, 5287002.174714633263648 ], [ 3460609.171887961681932, 5291756.062570192851126 ], [ 3464815.680743975564837, 5293239.917727896012366 ], [ 3468788.821677942294627, 5295076.193848267197609 ], [ 3471580.842789880000055, 5294132.310972448438406 ], [ 3472965.241934643127024, 5291103.872367586009204 ], [ 3474382.003062608186156, 5295048.671408385969698 ], [ 3476475.191171061713248, 5293994.103915286250412 ], [ 3477158.859918577596545, 5290039.41158040985465 ], [ 3479963.103435664903373, 5291540.355961260385811 ], [ 3481008.256034184712917, 5290258.01567401830107 ], [ 3479137.714538817759603, 5288985.379434469155967 ], [ 3478663.841934462543577, 5287009.781976686790586 ], [ 3480528.078016032930464, 5286188.817212254740298 ], [ 3480169.60632247896865, 5283746.194585441611707 ], [ 3484950.365807128604501, 5281403.371870806440711 ], [ 3486007.458826499991119, 5283845.517693010158837 ], [ 3483447.301175893750042, 5286761.43484144937247 ], [ 3486135.654042263980955, 5288615.446468035690486 ], [ 3487996.787629834376276, 5286052.11650069616735 ], [ 3490561.435793025419116, 5284301.819737511686981 ], [ 3489857.728705554269254, 5282440.55852793995291 ], [ 3491137.812988555524498, 5279527.166797446087003 ], [ 3498265.325822744518518, 5281267.486392702907324 ], [ 3502819.825412742327899, 5282781.419286884367466 ], [ 3509244.374250557273626, 5281390.825471815653145 ], [ 3515089.988283701241016, 5279190.109527446329594 ], [ 3523858.888779436703771, 5277821.259920362383127 ], [ 3530889.600915216375142, 5274357.56218041293323 ], [ 3536891.081754141952842, 5268443.197854464873672 ], [ 3540068.480084216687828, 5266012.652949059382081 ], [ 3553417.852102292235941, 5266235.853332026861608 ], [ 3556211.594016916584224, 5268013.127959861420095 ], [ 3558968.337896288372576, 5273290.572352670133114 ], [ 3561899.912950264289975, 5272621.111900174990296 ], [ 3562284.403799287974834, 5269475.152123768813908 ], [ 3561479.815212272107601, 5268066.084516203962266 ], [ 3564183.976370956283063, 5267044.468381702899933 ], [ 3565719.279709361959249, 5265893.89309382904321 ], [ 3566403.429552424233407, 5267536.205747944302857 ], [ 3568290.372541241813451, 5266390.391143075190485 ], [ 3569818.320568916853517, 5265941.33543078135699 ], [ 3572029.144681832287461, 5267135.752536108717322 ], [ 3573221.965306973550469, 5265399.005599326454103 ], [ 3574655.764731553848833, 5263197.722430121153593 ], [ 3575151.409697893541306, 5261100.712370845489204 ], [ 3578547.478611031081527, 5261378.970776219852269 ], [ 3579748.168419474270195, 5259291.129584588110447 ], [ 3581883.149714205879718, 5257566.576770008541644 ], [ 3582808.240240890067071, 5258515.072712591849267 ], [ 3583446.076896387152374, 5254898.145284430123866 ], [ 3582763.456113736145198, 5253367.264338509179652 ], [ 3581358.256128629203886, 5253113.575677283108234 ], [ 3581141.269917943049222, 5251823.039311069063842 ], [ 3589154.649804558139294, 5249948.636216470040381 ], [ 3591389.652602588757873, 5249748.712714437395334 ], [ 3592909.037499438039958, 5250240.939058191142976 ], [ 3608066.80489345267415, 5250031.43032496329397 ], [ 3609625.871784656774253, 5254626.30302225984633 ], [ 3611348.46130685089156, 5256647.945228716358542 ], [ 3610419.388586510438472, 5262360.304890165105462 ], [ 3608763.424330571200699, 5263147.427640830166638 ], [ 3608694.033288604114205, 5266884.567464678548276 ], [ 3609118.909958738833666, 5269227.795274266041815 ], [ 3610647.321896548848599, 5268906.279476214200258 ], [ 3615249.731480587739497, 5267126.820916695520282 ], [ 3619348.372115508653224, 5267208.993084497749805 ], [ 3621032.431041778530926, 5270746.408954884856939 ], [ 3626079.967394401784986, 5270152.706479787826538 ], [ 3630572.067742535844445, 5268266.285531943663955 ], [ 3632807.319957664236426, 5267849.441527684219182 ], [ 3633446.057540745474398, 5265527.547462677583098 ], [ 3638095.929316089954227, 5267154.234824404120445 ], [ 3642637.700458443723619, 5268314.512101682834327 ], [ 3643857.431304589379579, 5266358.401632416062057 ], [ 3644800.262721888720989, 5266147.963323574513197 ], [ 3644817.604788166470826, 5265447.263283429667354 ], [ 3640165.15465962793678, 5263931.561806668527424 ], [ 3641139.183433841913939, 5262435.246510568074882 ], [ 3644198.11670959694311, 5262042.036850397475064 ], [ 3646308.03940167883411, 5262094.335843012668192 ], [ 3645636.6809899113141, 5260791.255818320438266 ], [ 3649977.000201102811843, 5256220.514234762638807 ], [ 3649895.504383739084005, 5254813.657967455685139 ], [ 3648493.041923482902348, 5254543.871222625486553 ], [ 3648898.53397985547781, 5252446.283060369081795 ], [ 3655244.936900129541755, 5252376.249460184946656 ], [ 3659944.748774581588805, 5252385.14824132528156 ], [ 3660356.915271494071931, 5254504.557586400769651 ], [ 3665364.514791925437748, 5256048.53507305495441 ], [ 3667446.723311715293676, 5257161.197963807731867 ], [ 3670269.322932854294777, 5257008.310153999365866 ], [ 3668257.917418883182108, 5253437.308276225812733 ], [ 3671669.364111591130495, 5253301.741627963259816 ], [ 3673464.882921018637717, 5256165.284245558083057 ], [ 3673885.756954886950552, 5257816.760811294429004 ], [ 3676428.008520286995918, 5259180.193365572020411 ], [ 3680419.411375533789396, 5259184.620946523733437 ], [ 3683007.097934948280454, 5259030.728365052491426 ], [ 3681644.402653094381094, 5261328.834081131033599 ], [ 3679505.29189323540777, 5262198.820665345527232 ], [ 3681762.838844546116889, 5265075.352458233945072 ], [ 3683571.641286125872284, 5267236.164021715521812 ], [ 3684911.747386515140533, 5265641.709323761053383 ], [ 3688876.447099495213479, 5266352.949248921126127 ], [ 3695183.112736156210303, 5267144.526237981393933 ], [ 3695319.863971607759595, 5270071.130221887491643 ], [ 3696119.325948164798319, 5274186.363479602150619 ], [ 3696906.828900756314397, 5275146.99231637455523 ], [ 3698455.322155223693699, 5274382.098087263293564 ], [ 3698165.873252294491976, 5276006.855788071639836 ], [ 3700872.075926858466119, 5275632.422248547896743 ], [ 3704272.418023795820773, 5275516.964767271652818 ], [ 3709753.506413412280381, 5276178.495045790448785 ], [ 3714834.560195084195584, 5274962.047557797282934 ], [ 3715225.076776642352343, 5277078.369512633420527 ], [ 3719598.942155567463487, 5279109.284095799550414 ], [ 3723200.924123435281217, 5279829.728579265065491 ], [ 3726460.559814589098096, 5280305.658364173956215 ], [ 3728479.740992708131671, 5279567.430374900810421 ], [ 3730448.767183461226523, 5280111.890556435100734 ], [ 3734937.954438397660851, 5279123.749624446034431 ], [ 3737407.580403123050928, 5278873.540395647287369 ], [ 3739839.115334124770015, 5279556.906656790524721 ], [ 3741062.50966218020767, 5281125.072306622751057 ], [ 3740314.499946163035929, 5285061.61410831194371 ], [ 3738462.100503182038665, 5287434.47964827530086 ], [ 3737671.088330583646894, 5289617.026910294778645 ], [ 3741138.691207077819854, 5290575.791679365560412 ], [ 3743583.974459180608392, 5293590.783346704207361 ], [ 3744239.741539272945374, 5294666.666533531621099 ], [ 3745464.946214229334146, 5293320.574310488067567 ], [ 3743998.069396694656461, 5289296.49346340354532 ], [ 3744183.253322290256619, 5287671.990883053280413 ], [ 3746692.623504033312201, 5289177.121603433042765 ], [ 3750788.186702605802566, 5289119.279253566637635 ], [ 3752676.163812062237412, 5288734.667057823389769 ], [ 3757447.123620067723095, 5289293.919177147559822 ], [ 3759273.323339673690498, 5290307.941840749233961 ], [ 3759434.355598406866193, 5286699.644191927276552 ], [ 3760924.608653508126736, 5284782.653198830783367 ], [ 3763488.720214647240937, 5282446.77900482993573 ], [ 3764875.338989542797208, 5282859.968370902352035 ], [ 3766495.511189344339073, 5283284.17008647415787 ], [ 3769066.47902257181704, 5283402.444049267098308 ], [ 3770618.857421291992068, 5287792.848045555874705 ], [ 3774917.488424092996866, 5288461.269915884360671 ], [ 3781994.922287775669247, 5289733.756127413362265 ], [ 3781684.184308716095984, 5288901.981460696086287 ], [ 3784281.404768616426736, 5288445.005778755992651 ], [ 3783899.587727916426957, 5286675.657007952220738 ], [ 3782309.491651613265276, 5285664.359989155083895 ], [ 3784281.144812294282019, 5283658.524575554765761 ], [ 3787003.591664461418986, 5283091.307140819728374 ], [ 3788124.720327303744853, 5281744.780626373365521 ], [ 3786505.169203932397068, 5281314.372820717282593 ], [ 3785532.874546250328422, 5279630.628904357552528 ], [ 3784799.654778862372041, 5277841.408533683978021 ], [ 3786603.60178305208683, 5274538.416780044324696 ], [ 3790477.9888247968629, 5274495.941701513715088 ], [ 3790594.128488400951028, 5272161.474625929258764 ], [ 3793111.897764969151467, 5271116.731996889226139 ], [ 3795818.700670539867133, 5268677.05331720970571 ], [ 3798855.596301339101046, 5266722.819737875834107 ], [ 3799838.722160743549466, 5268178.955591368488967 ], [ 3802889.489610741846263, 5265992.731342470273376 ], [ 3804384.913735983893275, 5268882.313176333904266 ], [ 3805133.319873026106507, 5272551.575273250229657 ], [ 3803754.023067193571478, 5274235.446301868185401 ], [ 3805363.573710943572223, 5277127.578434414230287 ], [ 3804047.390052516479045, 5279865.629771737381816 ], [ 3806959.158603717572987, 5280252.08644082583487 ], [ 3806042.457857865374535, 5282074.320290931500494 ], [ 3808337.247325238306075, 5285233.647769700735807 ], [ 3807389.733745195437223, 5289854.723989077843726 ], [ 3804631.600111520383507, 5293326.948602575808764 ], [ 3800935.690724624320865, 5294650.400785171426833 ], [ 3796205.97065965924412, 5293357.427407402545214 ], [ 3792640.902135544922203, 5294459.316254674457014 ], [ 3795373.669104842003435, 5298211.406877520494163 ], [ 3795010.249062247108668, 5300756.032704696059227 ], [ 3797138.066065363120288, 5304823.992066430859268 ], [ 3798377.11803000792861, 5305702.598571930080652 ], [ 3798384.577908948995173, 5312333.655418801121414 ], [ 3794250.609914021100849, 5317931.166057704016566 ], [ 3790229.527724273037165, 5321442.149465550668538 ], [ 3786678.104510818608105, 5327295.615803264081478 ], [ 3781226.071450241375715, 5331776.835706444457173 ], [ 3778754.146607806906104, 5337212.942081055603921 ], [ 3781026.840195064432919, 5340563.218345453031361 ], [ 3784765.083432798739523, 5342367.16905709169805 ], [ 3787737.504416177049279, 5345521.691941050812602 ], [ 3789793.842401337809861, 5348398.836057630367577 ], [ 3793826.797423883806914, 5348836.223122604191303 ], [ 3797599.462265519890934, 5352034.835355360992253 ], [ 3804847.855404205620289, 5357266.374191619455814 ], [ 3812375.677845589350909, 5359290.237615343183279 ], [ 3817631.024841874837875, 5360504.439402943477035 ], [ 3822651.658046095632017, 5363786.195641887374222 ], [ 3825398.449115025345236, 5368323.389857625588775 ], [ 3828089.372631504200399, 5375733.77600179053843 ], [ 3827511.594646334648132, 5379727.006050870753825 ], [ 3828863.156577812042087, 5388195.249212647788227 ], [ 3828641.499112889170647, 5390019.510012876242399 ], [ 3831139.159764649346471, 5390625.081788191571832 ], [ 3832704.719903009012341, 5393357.319908248260617 ], [ 3836917.414856550749391, 5390279.050154198892415 ], [ 3838962.361385906580836, 5390746.295140411704779 ], [ 3843176.997758243698627, 5389623.48540545720607 ], [ 3845376.278749476186931, 5387575.043853930197656 ], [ 3850226.137220137286931, 5385575.508480267599225 ], [ 3851189.237577030435205, 5388623.880884901620448 ], [ 3850659.475342543795705, 5391577.755359980277717 ], [ 3852789.389023704454303, 5390677.091992710717022 ], [ 3854029.779714288655668, 5392937.241628798656166 ], [ 3854286.8513412210159, 5396167.913990419358015 ], [ 3854864.502612382173538, 5401596.117986790835857 ], [ 3855912.69081223430112, 5406820.185579559765756 ], [ 3853265.493678213562816, 5408714.249234259128571 ], [ 3854757.19810030516237, 5412357.58047001156956 ], [ 3856304.881807212717831, 5415087.768602450378239 ], [ 3853490.335917244199663, 5416052.7716233888641 ], [ 3853710.381891583092511, 5418010.65491761174053 ], [ 3851403.576942361425608, 5421864.904213130474091 ], [ 3849770.128725301939994, 5422333.346828631125391 ], [ 3847147.385368203744292, 5427649.450403043068945 ], [ 3842373.275378418620676, 5427125.432981932535768 ], [ 3840837.995919925626367, 5429769.007287064567208 ], [ 3839227.780072700697929, 5433660.686249264515936 ], [ 3836439.828622874803841, 5434402.664457753300667 ], [ 3836095.253023515921086, 5436318.424838675186038 ], [ 3829366.732189212460071, 5436142.68965432792902 ], [ 3830673.839149459730834, 5433372.629446876235306 ], [ 3827231.001920537557453, 5433624.40624125674367 ], [ 3822318.734723675530404, 5437550.340535138733685 ], [ 3822575.768218017183244, 5440979.144701819866896 ], [ 3821468.647546603810042, 5444326.509012749418616 ], [ 3817497.509936431888491, 5447961.082637995481491 ], [ 3813525.178468396887183, 5451708.761152523569763 ], [ 3808576.439607511274517, 5450635.348259688355029 ], [ 3804448.080683045554906, 5453243.31266425549984 ], [ 3805066.947153330780566, 5456453.37618157081306 ], [ 3801793.476753655355424, 5458087.058316828683019 ], [ 3800209.238722647540271, 5460040.354074968956411 ], [ 3800098.372055599931628, 5462073.412857607007027 ], [ 3797570.184695475269109, 5462615.608460924588144 ], [ 3797120.666033543180674, 5464629.31726430170238 ], [ 3795064.951798662077636, 5464858.183651850558817 ], [ 3794735.671891257166862, 5466764.423756338655949 ], [ 3793830.467423887457699, 5466715.935289075598121 ], [ 3793363.018220909871161, 5471215.067984454333782 ], [ 3791649.173001739662141, 5471462.839840769767761 ], [ 3788192.944655504543334, 5474670.355206306092441 ], [ 3781767.430439930409193, 5476256.194380306638777 ], [ 3782494.705392826814204, 5473130.944204164668918 ], [ 3778803.899224318098277, 5474410.55358830653131 ], [ 3774488.077136000618339, 5474644.452892290428281 ], [ 3774499.445151279680431, 5476677.436628054827452 ], [ 3773071.275329637341201, 5478073.397718599997461 ], [ 3770742.316181838978082, 5481680.674946036189795 ], [ 3769090.785169301088899, 5483065.046973722986877 ], [ 3765550.433686465024948, 5483793.733113300055265 ], [ 3762932.97133231209591, 5488849.73077289480716 ], [ 3763914.385872582904994, 5489572.763349560089409 ], [ 3763680.64985917834565, 5494401.116383878514171 ], [ 3759918.058954005129635, 5495232.585864448919892 ], [ 3759837.691012873779982, 5496915.595750628039241 ], [ 3758306.480578999500722, 5500664.208094398491085 ], [ 3757087.693330587819219, 5504986.580174822360277 ], [ 3754883.128251632675529, 5503984.414849063381553 ], [ 3754714.808642594143748, 5507568.351268366910517 ], [ 3754663.982789839152247, 5511043.313948171213269 ], [ 3752281.613686378113925, 5511492.468478155322373 ], [ 3748129.784483372233808, 5513766.628840764984488 ], [ 3746198.039193653967232, 5516703.218183800578117 ], [ 3745164.472104180138558, 5519679.350210216827691 ], [ 3750539.33744758926332, 5522388.22244018688798 ], [ 3749631.557521247304976, 5525030.91827192530036 ], [ 3751453.250985849648714, 5529252.096258390694857 ], [ 3753537.38713001832366, 5532589.865801245905459 ], [ 3755725.237144735641778, 5536043.278154118917882 ], [ 3755294.895878308918327, 5538031.72348784096539 ], [ 3751431.163173641078174, 5539299.782857084646821 ], [ 3749066.560313181020319, 5539635.706390921957791 ], [ 3749653.344769380521029, 5541447.267171245068312 ], [ 3751865.640581336338073, 5544337.569970003329217 ], [ 3747566.525898560415953, 5545474.365603343583643 ], [ 3741168.10805734898895, 5548634.853609713725746 ], [ 3736883.377496286295354, 5552115.916657934896648 ], [ 3732860.684804424177855, 5554830.687946009449661 ], [ 3728711.969448793213814, 5557985.670789001509547 ], [ 3729464.714967768639326, 5563792.524646927602589 ], [ 3727989.290521514136344, 5567057.754149910062551 ], [ 3725271.63060312345624, 5570822.592721866443753 ], [ 3723020.272674647625536, 5571503.397643525153399 ], [ 3720954.572312307544053, 5573079.009767584502697 ], [ 3722197.374655489809811, 5575235.247705519199371 ], [ 3724497.154413202777505, 5575996.423454540781677 ], [ 3722834.039479933679104, 5578583.004573442041874 ], [ 3722769.039576907176524, 5580129.408005010336637 ], [ 3725066.585877205245197, 5580890.293769891373813 ], [ 3727535.879815011750907, 5580221.320491296239197 ], [ 3728536.122558393981308, 5577608.177078784443438 ], [ 3729416.839799566194415, 5575210.187771665863693 ], [ 3732993.263559928163886, 5574701.404885558411479 ], [ 3733393.895032570697367, 5573167.954350016079843 ], [ 3731330.138952594250441, 5572080.348174600861967 ], [ 3733611.763258014339954, 5570739.254571005702019 ], [ 3734761.716771180741489, 5567352.232825891114771 ], [ 3735101.073267021682113, 5564704.269534032791853 ], [ 3739149.540715137496591, 5563774.546241171658039 ], [ 3738370.86983257997781, 5568732.839852967299521 ], [ 3737612.999364356510341, 5573244.241673161275685 ], [ 3739326.31655189068988, 5572212.901111060753465 ], [ 3739241.605420134961605, 5574093.036808216013014 ], [ 3739434.552854179404676, 5577203.285217555239797 ], [ 3742486.88466526241973, 5578449.297283021733165 ], [ 3743195.698030634783208, 5582355.619254254736006 ], [ 3745193.616463465616107, 5582337.129896971397102 ], [ 3746473.449683679267764, 5585825.585223335772753 ], [ 3747626.353403460234404, 5584884.130324793048203 ], [ 3748912.741093137301505, 5585829.254802440293133 ], [ 3748055.406660733744502, 5587558.010741391219199 ], [ 3750352.821555800270289, 5590539.87686912342906 ], [ 3756120.740906673483551, 5592694.691901732236147 ], [ 3761319.851808167994022, 5592839.135161161422729 ], [ 3763640.022545332554728, 5590744.539587195031345 ], [ 3765088.066164024174213, 5592806.126774789765477 ], [ 3765805.504067606292665, 5596155.763985391706228 ], [ 3769294.493140616454184, 5597216.168350159190595 ], [ 3771777.307420271914452, 5598447.61954506020993 ], [ 3777517.269274128600955, 5594550.152100934647024 ], [ 3779174.767910319380462, 5592537.95446698833257 ], [ 3783064.905809750314802, 5594402.989793696440756 ], [ 3785531.590503603219986, 5597960.613069591112435 ], [ 3785292.918592177331448, 5602363.352759633213282 ], [ 3785793.407418191898614, 5605369.051127099432051 ], [ 3788786.980039114132524, 5603216.049936227500439 ], [ 3791820.629771676845849, 5604376.48924214206636 ], [ 3793817.67619692441076, 5606252.661121785640717 ], [ 3794767.486478177830577, 5605092.483013670891523 ], [ 3797984.086632254999131, 5604942.84390078112483 ], [ 3798942.971542614977807, 5607534.35722359828651 ], [ 3800863.902500619180501, 5612604.557866881601512 ], [ 3800719.00320157315582, 5615129.840504218824208 ], [ 3804603.223441467620432, 5614803.464634914882481 ], [ 3804588.826225992757827, 5613150.133053756318986 ], [ 3807322.295576164498925, 5613640.182172295637429 ], [ 3807666.494451082311571, 5617185.059356661513448 ], [ 3810002.666366584599018, 5618754.134881952777505 ], [ 3809885.218344220891595, 5622598.770956395193934 ], [ 3811567.728737420868129, 5620278.020765405148268 ], [ 3813154.783157257828861, 5617730.618035649880767 ], [ 3816631.800540513824672, 5616838.365389060229063 ], [ 3818528.980083230417222, 5620146.826872535049915 ], [ 3820138.351486396510154, 5620905.539194607175887 ], [ 3819241.415794375818223, 5622941.702673432417214 ], [ 3820589.658701670821756, 5624344.438851588405669 ], [ 3820804.910515702795237, 5626227.419903922826052 ], [ 3819791.884480574168265, 5628364.13313468080014 ], [ 3823876.049646253697574, 5630044.886930740438402 ], [ 3825460.674490362405777, 5629374.150745071470737 ], [ 3827690.549742918461561, 5630722.753537888638675 ], [ 3829240.189858032856137, 5632358.759236394427717 ], [ 3833741.381344829220325, 5630886.665362003259361 ], [ 3835823.814404712989926, 5632778.79919742513448 ], [ 3839809.57790264301002, 5632487.659409415908158 ], [ 3842376.606729364022613, 5631996.142137260176241 ], [ 3843445.237223695032299, 5632506.12609598506242 ], [ 3843768.665056216064841, 5634285.857123780995607 ], [ 3845552.902452688198537, 5633964.343297033570707 ], [ 3845882.751379332505167, 5635634.421999706886709 ], [ 3844655.647528459317982, 5637530.159447366371751 ], [ 3845015.252021585591137, 5640408.523520876653492 ], [ 3848266.043823816813529, 5639527.474278996698558 ], [ 3849631.292850653175265, 5642143.735014835372567 ], [ 3852193.607557627372444, 5643304.407770987600088 ], [ 3853370.509702744428068, 5642177.166409933008254 ], [ 3858058.244092615321279, 5642827.346514443866909 ], [ 3860739.176678330637515, 5645427.098640786483884 ], [ 3864651.863971631042659, 5647675.155172302387655 ], [ 3868303.865829121787101, 5650455.49470139015466 ], [ 3868453.576860548462719, 5652987.293692287988961 ], [ 3871296.134664352517575, 5653190.297076079063118 ], [ 3872913.080978018697351, 5652100.729297350160778 ], [ 3876138.209241904318333, 5653101.258640002459288 ], [ 3878799.779436421580613, 5654281.763115962035954 ], [ 3878304.489329853560776, 5656546.711064988747239 ], [ 3879908.626702595502138, 5658635.955835712142289 ], [ 3877372.649784710258245, 5658778.769319750368595 ], [ 3873642.486421301960945, 5660259.489899774082005 ], [ 3873235.278182575013489, 5662856.40735577698797 ], [ 3870881.069638357497752, 5663561.869010458700359 ], [ 3869470.482533756643534, 5664882.406933111138642 ], [ 3870186.647737168706954, 5668650.290464341640472 ], [ 3872123.148852197919041, 5672176.251362370327115 ], [ 3874116.987340273335576, 5670354.607665712945163 ], [ 3877635.807600828818977, 5670174.337916933000088 ], [ 3878340.289480796549469, 5668040.137615696527064 ], [ 3881417.001703299582005, 5667938.896000509150326 ], [ 3883064.431431839708239, 5669372.928906513378024 ], [ 3888997.140150122344494, 5667739.8405701527372 ], [ 3888961.934402021113783, 5666752.781339449808002 ], [ 3892023.850398609414697, 5666875.233139554969966 ], [ 3893338.353903179056942, 5664020.649399837478995 ], [ 3891158.190800605807453, 5659474.878535458818078 ], [ 3890104.731355381198227, 5657423.090989323332906 ], [ 3892129.193082225974649, 5656808.973944171331823 ], [ 3894827.737983160186559, 5657452.652578229084611 ], [ 3897458.780000742990524, 5658969.336797493509948 ], [ 3897171.9116838183254, 5655549.085117362439632 ], [ 3896271.607996895909309, 5654383.446695215068758 ], [ 3894939.189184807706624, 5650222.260358816944063 ], [ 3900965.669202022720128, 5649147.84597579203546 ], [ 3902717.484788775909692, 5647855.888542323373258 ], [ 3905445.77613417385146, 5648178.216958883218467 ], [ 3907046.862452036235482, 5647424.744623495265841 ], [ 3909026.233708560932428, 5647470.513458472676575 ], [ 3910069.637819682713598, 5652385.177885238081217 ], [ 3909865.309848226606846, 5653576.397182139568031 ], [ 3913082.410075725521892, 5658768.88069938775152 ], [ 3915410.742858809418976, 5663997.593522780574858 ], [ 3917012.611035787500441, 5671353.094391087070107 ], [ 3918296.957832679152489, 5677143.973583422601223 ], [ 3919504.542406174354255, 5687834.231917208991945 ], [ 3920672.771858642809093, 5694907.032213196158409 ], [ 3920284.027654484380037, 5702277.906722805462778 ], [ 3916463.925518930424005, 5706313.800851550884545 ], [ 3915285.635153631679714, 5712734.544092117808759 ], [ 3915008.205929875839502, 5718786.992313132621348 ], [ 3911838.72823394369334, 5721671.671947702765465 ], [ 3907542.996553308330476, 5722407.63689452689141 ], [ 3903103.416968822944909, 5724975.725576804019511 ], [ 3897542.520291690248996, 5726699.96311570610851 ], [ 3896245.534509391989559, 5729409.967081543058157 ], [ 3898500.509518878068775, 5733802.266504067927599 ], [ 3898348.651361923664808, 5739836.77102857735008 ], [ 3896200.332342120353132, 5743766.076700169593096 ], [ 3891487.09427963802591, 5747384.29760904982686 ], [ 3890574.56668200623244, 5753557.032989542 ], [ 3888437.580468225758523, 5756079.847011269070208 ], [ 3885742.359704523347318, 5757484.134529687464237 ], [ 3885372.002301629632711, 5760893.872864078730345 ], [ 3888096.617191788740456, 5763252.3663928527385 ], [ 3892196.794025591574609, 5768616.83880356233567 ], [ 3892632.152710522990674, 5774012.137072905898094 ], [ 3894115.599812015891075, 5779699.031685368157923 ], [ 3894972.631552360020578, 5785116.966093302704394 ], [ 3893581.534340028651059, 5787786.130199570208788 ], [ 3890777.183824066072702, 5789380.913124461658299 ], [ 3888569.729216711595654, 5792944.990928837098181 ], [ 3889726.900846492499113, 5795917.421942629851401 ], [ 3890172.28518925793469, 5798405.867914486676455 ], [ 3888903.454182128887624, 5799585.361395683139563 ], [ 3890027.523497267160565, 5801592.656182849779725 ], [ 3889905.114240184891969, 5805844.128890166059136 ], [ 3888247.102217198815197, 5806565.065330009907484 ], [ 3882656.58084465470165, 5808469.249768460169435 ], [ 3880234.041036660317332, 5810834.403206677176058 ], [ 3880731.198938641697168, 5811298.160065221600235 ], [ 3878816.152385847177356, 5815401.533867488615215 ], [ 3876652.399458919186145, 5821392.686789776198566 ], [ 3877092.396654475945979, 5825350.62587003223598 ], [ 3879091.297345243860036, 5826988.96576280053705 ], [ 3882498.281371041666716, 5832339.281443700194359 ], [ 3882350.060754121746868, 5834233.360282779671252 ], [ 3881221.47015118971467, 5835097.70364648476243 ], [ 3880917.736755230929703, 5838988.048479683697224 ], [ 3882535.770093734376132, 5841334.883136425167322 ], [ 3879405.847002695314586, 5844788.118399401195347 ], [ 3871500.854137918446213, 5849877.344673019833863 ], [ 3866640.257241865620017, 5854041.000506401993334 ], [ 3862160.876345915254205, 5858864.291369445621967 ], [ 3856376.902230790816247, 5861486.168679472059011 ], [ 3853638.720928938128054, 5864333.985031346790493 ], [ 3851771.953848134726286, 5866824.332399304024875 ], [ 3847350.529758316930383, 5866819.612195742316544 ], [ 3845338.447944106534123, 5868460.235444736666977 ], [ 3846452.133862742222846, 5872002.866743963211775 ], [ 3846861.614577474072576, 5876540.917836175300181 ], [ 3845710.982599182985723, 5880857.880886669270694 ], [ 3845807.479627902153879, 5882435.174994660541415 ], [ 3849681.634586024098098, 5885436.37144530005753 ], [ 3854481.854157145135105, 5888612.59417827706784 ], [ 3858727.026504829060286, 5893527.765895562246442 ], [ 3860205.582850014325231, 5900321.679272799752653 ], [ 3860739.986647294368595, 5904325.677436962723732 ], [ 3858347.318934781476855, 5906959.643038901500404 ], [ 3859097.22065301053226, 5910869.979741984046996 ], [ 3861679.16217056941241, 5913980.012699580751359 ], [ 3863619.950443720910698, 5917248.956983144395053 ], [ 3862210.696277414448559, 5919324.832144322805107 ], [ 3860233.158865793142468, 5924784.39159846957773 ], [ 3858552.09466500626877, 5929119.357846072874963 ], [ 3857717.564035345800221, 5934654.2578652407974 ], [ 3855171.982983477413654, 5940881.22075732331723 ], [ 3854527.476558213122189, 5943935.597366889938712 ], [ 3852400.277569544501603, 5946050.187352763488889 ], [ 3851616.722759102005512, 5949607.364094331860542 ], [ 3852580.257987612858415, 5956077.816162295639515 ], [ 3849416.085709900595248, 5958315.387874973937869 ], [ 3849225.238656923174858, 5960877.051389093510807 ], [ 3848490.837490907870233, 5963808.613355265930295 ], [ 3847969.858788084238768, 5966651.315098694525659 ], [ 3847153.169963970314711, 5970703.895104909315705 ], [ 3848404.598714721854776, 5973263.388607643544674 ], [ 3847126.08941642800346, 5975222.370868641883135 ], [ 3842306.220610584132373, 5983380.822239859960973 ], [ 3842055.818560723215342, 5988177.143582530319691 ], [ 3840918.038545733783394, 5988298.260834409855306 ], [ 3841179.362973350100219, 5988931.705752913840115 ], [ 3842192.431896094698459, 5989108.622355900704861 ], [ 3840124.111086568329483, 5992128.893822520971298 ], [ 3836528.07627619523555, 5996467.294168918393552 ], [ 3830096.005070522427559, 6001926.714695753529668 ], [ 3825287.936896343715489, 6004849.845059881918132 ], [ 3821201.844556387979537, 6006296.751869357191026 ], [ 3817508.110044788103551, 6009504.76006458606571 ], [ 3815559.110609824769199, 6012628.2958875419572 ], [ 3814525.595302366651595, 6015812.593641201965511 ], [ 3812374.654038909357041, 6015971.108908070251346 ], [ 3809778.813840273302048, 6013660.167321825399995 ], [ 3810856.172438477165997, 6011290.994475170969963 ], [ 3812699.170466981362551, 6009685.247450346127152 ], [ 3814312.60594163602218, 6008471.197386899031699 ], [ 3815102.191506309900433, 6005876.401914129033685 ], [ 3814387.411642957478762, 6002871.683019595220685 ], [ 3813792.423173900227994, 6001097.582835406064987 ], [ 3812734.765973706264049, 6000107.874244066886604 ], [ 3813584.92423349339515, 5998124.621058972552419 ], [ 3815117.383426785003394, 5999657.405717846006155 ], [ 3815598.668185557238758, 6000098.339933203533292 ], [ 3818350.909517375286669, 6001715.195427712053061 ], [ 3820021.17661928711459, 6001218.428985885344446 ], [ 3818967.951326082926244, 5998696.602521911263466 ], [ 3818339.014142722822726, 5997428.309621640481055 ], [ 3820600.843805714510381, 5997278.070353273302317 ], [ 3822612.33334398875013, 5999255.450895296409726 ], [ 3822165.396366210654378, 6001265.297379594296217 ], [ 3822090.287061945535243, 6003810.049904906190932 ], [ 3825714.615339929237962, 6003146.230748705565929 ], [ 3827529.260290835052729, 6000621.622595163062215 ], [ 3828400.351152353454381, 5998437.446402784436941 ], [ 3829513.328229235485196, 5998618.661438570357859 ], [ 3831557.306061188690364, 5995802.28364584222436 ], [ 3831426.091278413310647, 5993339.893814634531736 ], [ 3830893.825760428793728, 5990745.345366813242435 ], [ 3829203.903412165120244, 5991443.359282188117504 ], [ 3829488.980940259993076, 5993201.830792748369277 ], [ 3827049.24052733136341, 5992926.876620600000024 ], [ 3826085.011663523502648, 5990609.498445996083319 ], [ 3824438.641294470056891, 5990698.635787636041641 ], [ 3824412.541935313958675, 5992537.21607933472842 ], [ 3825747.121908552013338, 5993959.545821349136531 ], [ 3825836.580149458255619, 5995600.741319499909878 ], [ 3823689.601770301349461, 5995552.398365689441562 ], [ 3821855.437051408924162, 5995424.613865301944315 ], [ 3821880.633335412945598, 5993587.260404518805444 ], [ 3821796.73431309312582, 5991843.849779789336026 ], [ 3824305.743323993869126, 5989666.591411430388689 ], [ 3824322.042061796877533, 5986495.784550337120891 ], [ 3823428.641705371439457, 5984590.801889563910663 ], [ 3822375.753491351380944, 5983493.667432649061084 ], [ 3819782.580594954546541, 5982392.91536043677479 ], [ 3818005.957522900309414, 5981349.262659789994359 ], [ 3817926.876398161519319, 5979499.543670936487615 ], [ 3819971.780043373350054, 5979639.588933923281729 ], [ 3821187.900747263804078, 5978390.752438402734697 ], [ 3823709.250050269532949, 5979077.849297716282308 ], [ 3825930.391790833789855, 5979642.794376843608916 ], [ 3829305.8130545578897, 5981315.276018842123449 ], [ 3831971.026225287932903, 5982836.814950498752296 ], [ 3835343.056173400022089, 5983078.647248992696404 ], [ 3839744.233914831653237, 5983295.502931435592473 ], [ 3841693.135043901856989, 5983335.75089196767658 ], [ 3842548.111940761096776, 5982886.127058120444417 ], [ 3848097.373533959966153, 5973240.467052654363215 ], [ 3847122.784433279652148, 5971112.767836498096585 ], [ 3844918.384478706866503, 5971668.826793747022748 ], [ 3843581.939886667765677, 5970234.325936361216009 ], [ 3841249.520946009550244, 5968315.866357866674662 ], [ 3840574.844139227643609, 5969089.101315757259727 ], [ 3836687.408751669805497, 5968704.67504149209708 ], [ 3834439.792970782145858, 5969879.31200283113867 ], [ 3831519.804017058573663, 5970390.402397912926972 ], [ 3826115.942458458244801, 5972577.326063128188252 ], [ 3823452.826516568195075, 5975368.150790618732572 ], [ 3820221.262711521238089, 5977504.015669897198677 ], [ 3816932.178310172632337, 5979021.811006994917989 ], [ 3816138.546738297212869, 5981631.785931341350079 ], [ 3817205.015792998485267, 5984059.694228403270245 ], [ 3821516.051772620528936, 5987017.175704867579043 ], [ 3822518.737237338442355, 5988826.05731981061399 ], [ 3820689.044716849457473, 5991562.677708619274199 ], [ 3818143.726520751602948, 5992818.363634699955583 ], [ 3815387.227404770907015, 5995694.71714888792485 ], [ 3811684.292087491601706, 5997485.930742738768458 ], [ 3810943.517384564504027, 5999375.005022188648582 ], [ 3812176.781638809479773, 6002313.98266426473856 ], [ 3813921.817398926243186, 6006712.982908229343593 ], [ 3812253.037583652418107, 6008738.655122142285109 ], [ 3808392.064613906666636, 6011532.477427837438881 ], [ 3806734.16166792018339, 6013456.363565259613097 ], [ 3807992.562500847037882, 6014455.632723518647254 ], [ 3806626.264317887835205, 6015076.168979535810649 ], [ 3802659.520258758217096, 6011864.548755905590951 ], [ 3798811.760882809758186, 6009883.921152976341546 ], [ 3794064.106386752799153, 6009171.685126464813948 ], [ 3792687.07569847535342, 6008371.782942567951977 ], [ 3794685.88600092055276, 6004222.805990059860051 ], [ 3791088.546243601478636, 6004605.794178533367813 ], [ 3789505.91277037281543, 6008679.793153521604836 ], [ 3787728.793438333552331, 6011009.784827677533031 ], [ 3788813.782599210273474, 6013212.705813540145755 ], [ 3786873.546122521162033, 6014920.632212925702333 ], [ 3783029.227954701986164, 6012853.580367775633931 ], [ 3782511.458777102641761, 6014650.824821609072387 ], [ 3781234.70441169384867, 6017213.246092568151653 ], [ 3779768.913745779544115, 6019559.932232212275267 ], [ 3776112.770517634693533, 6021164.903081224299967 ], [ 3774074.752143368124962, 6021245.684098690748215 ], [ 3771869.300013697240502, 6024156.122327806428075 ], [ 3768564.19647551747039, 6023353.374325577169657 ], [ 3767523.414402691181749, 6025521.87589046638459 ], [ 3768292.354436634108424, 6027997.564554531127214 ], [ 3765248.221741194836795, 6029743.695151202380657 ], [ 3765109.748743453063071, 6033883.330772624351084 ], [ 3764280.34460795391351, 6035958.266693005338311 ], [ 3762765.899476274382323, 6035870.94380324985832 ], [ 3761018.105369170662016, 6038094.656807157211006 ], [ 3761093.247822588775307, 6040320.691884091123939 ], [ 3762430.087666644249111, 6041709.750470524653792 ], [ 3759998.580624234862626, 6041772.375258774496615 ], [ 3758940.825581229291856, 6040803.775463434867561 ], [ 3756470.40269632358104, 6039755.681054452434182 ], [ 3752804.307394893839955, 6036521.521206941455603 ], [ 3753055.784843786619604, 6033807.058794326148927 ], [ 3750938.731402240227908, 6031769.543922696262598 ], [ 3748631.074460600502789, 6031340.235107620246708 ], [ 3747426.784799127839506, 6032993.680331636220217 ], [ 3745857.339145273901522, 6033919.736923540011048 ], [ 3746136.529551450163126, 6036258.490557551383972 ], [ 3744661.555840937420726, 6033552.429880760610104 ], [ 3743667.625503038056195, 6033196.178480857983232 ], [ 3743108.997815452050418, 6034176.993536909110844 ], [ 3742253.470986216794699, 6033121.062001348473132 ], [ 3741280.492322136182338, 6036201.49111932143569 ], [ 3740791.782335953786969, 6037791.310700886882842 ], [ 3737455.092099911998957, 6035799.123348211869597 ], [ 3738703.303173653781414, 6035157.144828265532851 ], [ 3734081.673467176035047, 6032493.485683113336563 ], [ 3733330.043289718218148, 6031343.380345672369003 ], [ 3731980.673528867773712, 6031982.251434212550521 ], [ 3730419.51835469994694, 6032812.78634455986321 ], [ 3729773.173329246696085, 6031567.692819925956428 ], [ 3731117.212575062178075, 6031028.951015931554139 ], [ 3730773.995509297586977, 6029798.554891315288842 ], [ 3729621.729109869338572, 6028527.254869546741247 ], [ 3727928.02172327041626, 6027937.018797882832587 ], [ 3725116.533024829346687, 6027393.482239477336407 ], [ 3726424.75954246846959, 6025535.835066474042833 ], [ 3725487.495060288812965, 6023971.663806582801044 ], [ 3722100.292317955289036, 6022692.994664092548192 ], [ 3722516.560699354391545, 6020384.161762323230505 ], [ 3725199.394957223441452, 6019501.900499909184873 ], [ 3726778.776370322797447, 6018363.643743954598904 ], [ 3726119.202826383989304, 6017317.633085707202554 ], [ 3723039.401978814974427, 6017977.9983922354877 ], [ 3721364.47513691522181, 6019011.613713788799942 ], [ 3719275.529880725312978, 6020228.299805155955255 ], [ 3720119.265075228177011, 6021686.388792828656733 ], [ 3719212.75581233901903, 6023667.572833340615034 ], [ 3719617.254350285045803, 6025811.75805654656142 ], [ 3720836.031494583468884, 6025769.135930905118585 ], [ 3721523.358021774329245, 6028330.727622084319592 ], [ 3720569.689016116317362, 6029194.597934174351394 ], [ 3722196.840759535320103, 6029071.065916651859879 ], [ 3723244.894790519960225, 6030436.108291476964951 ], [ 3722959.268658598419279, 6032140.026833917014301 ], [ 3724425.143682877533138, 6033221.913167136721313 ], [ 3726738.112371258437634, 6033538.016386386938393 ], [ 3728798.290063797496259, 6032832.442932987585664 ], [ 3730848.264600807335228, 6034349.711179758422077 ], [ 3732937.980043532326818, 6035061.708327089436352 ], [ 3734258.5030502891168, 6036946.775469387881458 ], [ 3735911.757200521882623, 6038243.214857249520719 ], [ 3737961.108212190214545, 6037743.894668837077916 ], [ 3740823.658936268649995, 6039105.251171295531094 ], [ 3742193.80096535384655, 6038067.363417882472277 ], [ 3745321.737821755930781, 6038234.333982950076461 ], [ 3746485.969277562573552, 6037287.288985782302916 ], [ 3749324.717875947710127, 6039056.920759504660964 ], [ 3751465.456641239579767, 6038770.484320494346321 ], [ 3754458.529945777263492, 6039542.118886507116258 ], [ 3755623.951427319552749, 6040414.86443118005991 ], [ 3757959.185003742109984, 6042060.267913053743541 ], [ 3755007.152474541217089, 6042398.785698775202036 ], [ 3751399.981268565170467, 6041794.917994506657124 ], [ 3746666.56720372941345, 6041435.590234220027924 ], [ 3739502.185492270626128, 6041154.697005128487945 ], [ 3734843.127078706398606, 6041315.946868452243507 ], [ 3729635.086897281929851, 6042361.719952314160764 ], [ 3728138.320885144174099, 6044000.263294978998601 ], [ 3728767.940376318059862, 6045543.378206262364984 ], [ 3726581.882752718869597, 6044829.57412367593497 ], [ 3725769.796274413820356, 6042874.389445617794991 ], [ 3725186.847372009884566, 6038307.203973875381052 ], [ 3723998.714390577748418, 6035725.575150183402002 ], [ 3720491.004156142938882, 6032929.566381332464516 ], [ 3719875.989780278410763, 6030980.455938110128045 ], [ 3717170.997069503180683, 6028223.445105090737343 ], [ 3717430.007851812522858, 6024898.193870973773301 ], [ 3714748.144796086009592, 6021533.271084840409458 ], [ 3712364.798926087561995, 6020409.937135866843164 ], [ 3708534.236759637016803, 6017601.099382697604597 ], [ 3705679.470627882052213, 6013317.076930527575314 ], [ 3705582.560963278170675, 6013211.350209499709308 ], [ 3704367.235640893224627, 6010824.51767501886934 ], [ 3699848.767275876831263, 6009510.317855437286198 ], [ 3693690.658139432780445, 6008435.702488843351603 ], [ 3690407.059879276435822, 6006675.127723609097302 ], [ 3688408.812814397271723, 6005780.994439611211419 ], [ 3684040.589266420342028, 6005604.719556323252618 ], [ 3680156.496599656529725, 6006060.482165691442788 ], [ 3675085.353797282092273, 6005662.29970726557076 ], [ 3671932.824757600668818, 6002904.291240676306188 ], [ 3671933.047460834030062, 6000161.712918213568628 ], [ 3671827.644010708667338, 5997515.263955920934677 ], [ 3669059.909657659940422, 5995176.238214493729174 ], [ 3669035.928434316068888, 5993038.967825968749821 ], [ 3666751.682976705022156, 5991327.871624678373337 ], [ 3664946.507073573302478, 5990448.939264009706676 ], [ 3662227.984403604175895, 5986483.000469360500574 ], [ 3662651.523339381907135, 5983134.362195494584739 ], [ 3662871.2521534524858, 5979776.177587747573853 ], [ 3661494.22465406358242, 5978197.475895876996219 ], [ 3658925.789222318213433, 5978517.341157169081271 ], [ 3656830.826976154465228, 5979976.812364197336137 ], [ 3658508.176196332555264, 5981767.639744437299669 ], [ 3656170.109076574910432, 5981382.603831958957016 ], [ 3654624.93631299212575, 5981738.902033882215619 ], [ 3653434.612719595897943, 5983738.503827882930636 ], [ 3651074.579556458164006, 5980908.381289593875408 ], [ 3648837.783996753860265, 5980530.324519597925246 ], [ 3647448.808551948517561, 5982423.488371020182967 ], [ 3647782.667416546493769, 5984778.280985984019935 ], [ 3648645.566185598261654, 5986537.733906109817326 ], [ 3645579.410863374825567, 5986644.305157721973956 ], [ 3643470.403510181698948, 5988818.80433077737689 ], [ 3640504.846709623932838, 5989033.430624036118388 ], [ 3633890.674955031834543, 5988430.668406412936747 ], [ 3628061.871624656487256, 5985211.493438999168575 ], [ 3625061.642700591590255, 5982888.460956374183297 ], [ 3623538.758175417315215, 5982542.018510132096708 ], [ 3623360.939891994465142, 5985389.746848962269723 ], [ 3620284.747867436148226, 5985920.020641611889005 ], [ 3619154.936340152751654, 5986196.347556664608419 ], [ 3615305.386085841804743, 5989152.597783781588078 ], [ 3614702.638933064416051, 5992900.839564746245742 ], [ 3617578.598124216776341, 5996022.030784356407821 ], [ 3619585.181020395830274, 5997190.966657686978579 ], [ 3622560.127815623302013, 5996354.516834427602589 ], [ 3626140.682375621516258, 5999497.935413821600378 ], [ 3630042.858900194987655, 6005491.831297133117914 ], [ 3633234.458409746643156, 6007610.801031122915447 ], [ 3637437.938445141073316, 6009761.294675259850919 ], [ 3636398.014385366346687, 6017425.26873295288533 ], [ 3635831.303666833788157, 6022868.104215316474438 ], [ 3635131.936384604312479, 6025978.740311385132372 ], [ 3637105.992037691175938, 6027652.735205392353237 ], [ 3639256.170031713321805, 6030139.634154226630926 ], [ 3638818.416685725096613, 6031235.995821256190538 ], [ 3635574.331812719348818, 6031542.128796365112066 ], [ 3634136.185552867129445, 6028876.806608921848238 ], [ 3632323.031344205606729, 6028622.215504952706397 ], [ 3625827.451684121508151, 6029448.043566320091486 ], [ 3622437.933770126197487, 6027640.811726442538202 ], [ 3620573.184138350188732, 6025471.583947250619531 ], [ 3616129.822868337389082, 6021114.568310817703605 ], [ 3612989.503001395147294, 6021137.231254814192653 ], [ 3609121.560775980819017, 6021952.949824293144047 ], [ 3606034.203942938242108, 6024102.523656030185521 ], [ 3603944.780373683199286, 6026981.947867111302912 ], [ 3598431.819304782897234, 6029382.075281332246959 ], [ 3595165.199908215552568, 6030926.24999563023448 ], [ 3590865.173918840009719, 6033761.328385912813246 ], [ 3587920.620899152942002, 6034610.322936806827784 ], [ 3584895.028692354913801, 6034452.377030610106885 ], [ 3581692.645633881911635, 6032882.931262120604515 ], [ 3579788.619642806705087, 6032043.205590416677296 ], [ 3577820.630791730247438, 6028985.207703548483551 ], [ 3577572.168072968255728, 6025753.117762702517211 ], [ 3576104.1117475903593, 6022801.308350095525384 ], [ 3574813.553303983993828, 6021265.291233776137233 ], [ 3574465.663523115217686, 6023985.877401391044259 ], [ 3574331.777493017725646, 6026002.105266426689923 ], [ 3575895.904716937802732, 6029255.381189533509314 ], [ 3577293.306442660279572, 6030286.946996293962002 ], [ 3576949.579184582922608, 6032699.874535360373557 ], [ 3576890.240706387907267, 6036223.897661622613668 ], [ 3577674.992212505079806, 6037545.79078642744571 ], [ 3574813.283204010222107, 6039812.267928255721927 ], [ 3571077.493545711971819, 6040154.867030277848244 ], [ 3564245.037148574367166, 6038544.508196053095162 ], [ 3558028.478378171101213, 6035743.866404894739389 ], [ 3555090.671247178222984, 6036714.062961063347757 ], [ 3553966.897324731107801, 6037908.24919056892395 ], [ 3559584.787068200763315, 6040191.345246435143054 ], [ 3563388.093420676421374, 6042153.198028391227126 ], [ 3566064.425076221115887, 6045206.30196550115943 ], [ 3566315.203580655623227, 6048725.041971346363425 ], [ 3567385.31338122440502, 6057967.624278583563864 ], [ 3567647.609812436625361, 6060575.743284944444895 ], [ 3566405.381215043365955, 6063160.065788928419352 ], [ 3564362.767563796136528, 6065731.74424010142684 ], [ 3562891.432223541196436, 6070609.209251622669399 ], [ 3560955.523667989298701, 6073079.659824595786631 ], [ 3558829.530779158230871, 6074948.215923575684428 ], [ 3557673.998887941241264, 6071438.592247040942311 ], [ 3556590.489519403316081, 6070026.249422416090965 ], [ 3553076.67631616583094, 6070782.82060684543103 ], [ 3552046.776633912697434, 6073267.578044282272458 ], [ 3550526.952917625661939, 6074947.287820353172719 ], [ 3546624.263458918314427, 6075104.819875131361187 ], [ 3541807.937914241570979, 6076753.792426519095898 ], [ 3539092.153807563241571, 6078624.422683315351605 ], [ 3537474.945653808303177, 6080803.904797994531691 ], [ 3539555.858869717922062, 6082715.047184738330543 ], [ 3538353.496481058653444, 6083202.732383102178574 ], [ 3535878.380624684970826, 6080591.541057301685214 ], [ 3531601.35056213894859, 6077967.245022288523614 ], [ 3530312.121341595426202, 6076462.201856628060341 ], [ 3529126.559532237239182, 6074259.098911981098354 ], [ 3528525.755083577241749, 6074355.062290877103806 ], [ 3528017.54898785520345, 6075649.177612939849496 ], [ 3527707.112792796455324, 6077343.170737358741462 ], [ 3527302.429359105415642, 6078138.553843031637371 ], [ 3526695.078588108066469, 6079431.124257008545101 ], [ 3524400.84816991025582, 6078720.174671530723572 ], [ 3523513.470992925576866, 6076421.549449931830168 ], [ 3521822.026053374167532, 6074716.797060671262443 ], [ 3520019.923130665905774, 6075107.589370651170611 ], [ 3516518.126046721357852, 6075492.499923293478787 ], [ 3514906.866170011926442, 6078878.067467384971678 ], [ 3515402.050149623304605, 6080175.702469152398407 ], [ 3511302.014361139852554, 6081857.656631960533559 ], [ 3506807.12502259016037, 6082645.586997093632817 ], [ 3503512.498904316686094, 6082442.527247777208686 ], [ 3500516.901155684608966, 6084134.438620503991842 ], [ 3498122.152735123876482, 6085727.889748476445675 ], [ 3493632.789508264046162, 6086030.63562573492527 ], [ 3490538.361381174996495, 6085239.642211005091667 ], [ 3488944.994919380173087, 6086537.404741224832833 ], [ 3486147.556667842436582, 6085151.436336082406342 ], [ 3483951.904921564739197, 6085059.155766732059419 ], [ 3481957.734690066426992, 6085464.957368570379913 ], [ 3479468.249222930520773, 6086570.648820630274713 ], [ 3476678.167309266049415, 6087005.580536222085357 ]
+]
+}
diff --git a/MessagesMap/geo/nieder.json b/MessagesMap/geo/nieder.json
new file mode 100644
index 000000000..8d9345ed3
--- /dev/null
+++ b/MessagesMap/geo/nieder.json
@@ -0,0 +1,33 @@
+{ "coordinates": [ [ 3366613.220192805863917, 5837237.085074399597943 ], [ 3372895.784487974364311, 5858702.356327089481056 ],
+ [ 3381476.314488233532757, 5883412.412340324372053 ], [ 3381977.605507949367166, 5903700.264691166579723 ],
+ [ 3364243.590132939163595, 5914853.161152821034193 ], [ 3357864.318516287952662, 5927378.370022400282323 ],
+ [ 3315168.749368491582572, 5927171.603537390939891 ], [ 3283340.753800391219556, 5919541.239242925308645 ],
+ [ 3257219.220138288568705, 5904476.146443791687489 ], [ 3255362.491318218875676, 5879121.795591489411891 ],
+ [ 3258339.950222108047456, 5859086.072968618012965 ], [ 3276093.657871243543923, 5860508.682551158592105 ],
+ [ 3273459.38114631222561, 5840679.064753565937281 ], [ 3269438.596944881603122, 5828284.062297967262566 ],
+ [ 3252937.518764852546155, 5819915.624092226848006 ], [ 3240039.047706812620163, 5815413.33022310398519 ],
+ [ 3232205.04053636547178, 5830181.631613202393055 ], [ 3232227.984790925402194, 5841056.690862233750522 ],
+ [ 3246515.98159845219925, 5840292.261714085005224 ], [ 3250471.716910247690976, 5850366.65122645534575 ],
+ [ 3237477.346664835698903, 5853333.567585138604045 ], [ 3238906.481187243945897, 5869198.540382725186646 ],
+ [ 3230669.056639562360942, 5874765.211545810103416 ], [ 3225774.648920132778585, 5868789.582136072218418 ],
+ [ 3218249.767071741633117, 5876611.528345324099064 ], [ 3207831.395611303392798, 5873823.017069964669645 ],
+ [ 3199655.041390411090106, 5842956.665231743827462 ], [ 3188480.835353218950331, 5811506.711187100969255 ],
+ [ 3170464.485231657978147, 5783786.958800564520061 ], [ 3149009.647909346036613, 5759681.850630478002131 ],
+ [ 3137581.0806092498824, 5747072.662792292423546 ], [ 3128064.311000199057162, 5737235.547265500761569 ],
+ [ 3113338.007301921024919, 5721323.101161855272949 ], [ 3106073.222010579891503, 5703622.842265072278678 ],
+ [ 3127866.415172179229558, 5694312.611008622683585 ], [ 3146554.672073393594474, 5690624.0953478384763 ],
+ [ 3168574.690318589564413, 5701533.162524756044149 ], [ 3184808.701677598059177, 5715788.74512882437557 ],
+ [ 3209987.294323309790343, 5713700.485541071742773 ], [ 3229054.876890842802823, 5696195.867842555046082 ],
+ [ 3258342.938640548381954, 5679409.646287951618433 ], [ 3279928.698350230231881, 5672537.638789446093142 ],
+ [ 3278021.33152529457584, 5641825.826969608664513 ], [ 3266167.595281501766294, 5629856.583192945457995 ],
+ [ 3292340.505450212862343, 5627557.997350256890059 ], [ 3296590.807450795546174, 5644626.768494551070035 ],
+ [ 3286411.27065656054765, 5657483.661232760176063 ], [ 3295768.694748405832797, 5668931.466987715102732 ],
+ [ 3305174.700070853810757, 5682721.155265647917986 ], [ 3306721.980153884273022, 5707925.256256165914237 ],
+ [ 3303790.232991121709347, 5723253.227235634811223 ], [ 3295188.859440404456109, 5742261.110429567284882 ],
+ [ 3304497.507924288976938, 5756424.853484092280269 ], [ 3320520.67363158473745, 5748854.757906285114586 ],
+ [ 3349777.162685384042561, 5753120.29734484385699 ], [ 3353110.213244007900357, 5767511.300041844137013 ],
+ [ 3344684.697313823737204, 5776441.229970180429518 ], [ 3363988.124457832891494, 5783380.319859277456999 ],
+ [ 3375993.345192904118448, 5800913.982429808005691 ], [ 3374573.21056748740375, 5813004.481191262602806 ],
+ [ 3362607.305751452222466, 5816763.644856258295476 ], [ 3344904.977025134954602, 5820155.783955365419388 ],
+ [ 3346055.235198382753879, 5838413.588596979156137 ], [ 3367215.853271258994937, 5838361.660252500325441 ] ]
+}
diff --git a/MessagesMap/geo/staedte.json b/MessagesMap/geo/staedte.json
new file mode 100644
index 000000000..ca12335eb
--- /dev/null
+++ b/MessagesMap/geo/staedte.json
@@ -0,0 +1,33 @@
+{"staedte": [
+ { "name": "Osnabrück", "coordinates": [ 3435476.474962641950697, 5793189.111933359876275 ] },
+ { "name": "Oldenburg", "coordinates": [ 3447956.740903835743666, 5889837.284656334668398 ] },
+ { "name": "Bremen", "coordinates": [ 3487467.7476477609016, 5881913.22159257158637 ] },
+ { "name": "Hamburg", "coordinates": [ 3567082.093213576357812, 5935723.430783089250326 ] },
+ { "name": "Bremerhaven", "coordinates": [ 3472420.342533649876714, 5936492.876519463025033 ] },
+ { "name": "Hannover", "coordinates": [ 3549704.637474101502448, 5805498.155239073559642 ] },
+ { "name": "Münster", "coordinates": [ 3405332.959945561829954, 5759212.912409080192447 ] },
+ { "name": "Bielefeld", "coordinates": [ 3469003.764907385222614, 5764454.450157666578889 ] },
+ { "name": "Paderborn", "coordinates": [ 3483421.704089821781963, 5731067.650332229211926 ] },
+ { "name": "Hamm", "coordinates": [ 3418163.299707658123225, 5728055.403538709506392 ] },
+ { "name": "Essen", "coordinates": [ 3363820.143956846557558, 5703604.493758551776409 ] },
+ { "name": "Düsseldorf", "coordinates": [ 3344693.387653215788305, 5679624.132854724302888 ] },
+ { "name": "Köln", "coordinates": [ 3357338.892705495003611, 5646580.839965544641018 ] },
+ { "name": "Bonn", "coordinates": [ 3365438.60516404453665, 5624053.55296743195504 ] },
+ { "name": "Siegen", "coordinates": [ 3432208.197569655254483, 5636399.556224619038403 ] },
+ { "name": "Koblenz", "coordinates": [ 3398843.277502813842148, 5580281.787194314412773 ] },
+ { "name": "Trier", "coordinates": [ 3331519.667447004467249, 5515827.781217336654663 ] },
+ { "name": "Frankfurt am Main", "coordinates": [ 3477163.527472961694002, 5552387.039028997533023 ] },
+ { "name": "Saarbrücken", "coordinates": [ 3354758.64655616460368, 5457161.569658951833844 ] },
+ { "name": "Nürnberg", "coordinates": [ 3653780.003284765407443, 5479569.414021594449878 ] },
+ { "name": "Würzburg", "coordinates": [ 3566315.418665131088346, 5518476.049305569380522 ] },
+ { "name": "Ingolstadt", "coordinates": [ 3679111.688386999536306, 5408389.984459951519966 ] },
+ { "name": "München", "coordinates": [ 3693197.994104720652103, 5337278.222105529159307 ] },
+ { "name": "Kassel", "coordinates": [ 3534712.683337911963463, 5687630.061413222923875 ] },
+ { "name": "Karlsruhe", "coordinates": [ 3457726.745059475302696, 5428893.178250314667821 ] },
+ { "name": "Ulm", "coordinates": [ 3574746.662172362208366, 5361918.693024148233235 ] },
+ { "name": "Freiburg", "coordinates": [ 3413431.31797070754692, 5316326.627433011308312 ] },
+ { "name": "Leipzig", "coordinates": [ 3734929.23418741626665, 5695364.175632460974157 ] },
+ { "name": "Wolfsburg", "coordinates": [ 3621440.637989502865821, 5811348.403787585906684 ] },
+ { "name": "Berlin", "coordinates": [ 3795789.184353771619499, 5830738.049455482512712 ] },
+ { "name": "Erfurt", "coordinates": [ 3642699.687785469461232, 5651332.539033926092088 ] }]
+}
\ No newline at end of file
diff --git a/MessagesMap/geo/test.json b/MessagesMap/geo/test.json
new file mode 100644
index 000000000..69ebff5b6
--- /dev/null
+++ b/MessagesMap/geo/test.json
@@ -0,0 +1,39 @@
+{ "coordinates": [ [ 3402589.55628314614296, 5863122.386693456210196 ], [ 3370749.096561832819134, 5905679.256926951929927 ],
+ [ 3349975.500890186056495, 5926501.321144934743643 ], [ 3319636.057045510504395, 5926438.691339792683721 ],
+ [ 3281985.693451403640211, 5914541.922814427874982 ], [ 3281985.017824433743954, 5914543.474055293016136 ],
+ [ 3256310.827088410034776, 5897749.165071363560855 ], [ 3255722.898480571806431, 5863769.924452734179795 ],
+ [ 3274955.531766403000802, 5860561.475777630694211 ], [ 3274956.503003729507327, 5860560.013170911930501 ],
+ [ 3271559.33131845202297, 5836766.161902693100274 ], [ 3271558.165733441710472, 5836767.574820312671363 ],
+ [ 3261796.691692617256194, 5824639.232647031545639 ], [ 3234621.283325062133372, 5811103.365973848849535 ],
+ [ 3228800.11018044501543, 5830942.426543967798352 ], [ 3242185.272592680994421, 5845091.074853087775409 ],
+ [ 3249272.294153803028166, 5849287.40495746769011 ], [ 3238108.789870514534414, 5854439.896159173920751 ],
+ [ 3237954.888195464853197, 5872659.595427840948105 ], [ 3220922.713954557664692, 5873615.570101278834045 ],
+ [ 3212042.630160563159734, 5877546.696275452151895 ], [ 3206030.896639268379658, 5834551.806356373243034 ],
+ [ 3186965.79962198343128, 5805839.394418727606535 ], [ 3158945.198871711734682, 5768307.973242768086493 ],
+ [ 3133533.064701006282121, 5739762.513081220909953 ], [ 3120282.719812225550413, 5719622.186049605719745 ],
+ [ 3138291.703572979196906, 5707716.405694483779371 ], [ 3152871.232666957657784, 5713760.35906788520515 ],
+ [ 3151910.687030347064137, 5699697.39469136018306 ], [ 3138885.20734595740214, 5699423.546747662127018 ],
+ [ 3115969.788163851480931, 5709352.554888823069632 ], [ 3098600.621831897646189, 5698891.760087131522596 ],
+ [ 3048573.53105350304395, 5682921.637417756952345 ], [ 3017707.427172263618559, 5671446.426940221339464 ],
+ [ 2985611.435558930039406, 5661411.540673290379345 ], [ 2973221.88435765216127, 5621822.421336872503161 ],
+ [ 2961653.537095320876688, 5579406.900576538406312 ], [ 2920556.166329110506922, 5560557.249382002279162 ],
+ [ 2864959.488534722942859, 5547247.946934427134693 ], [ 2853686.471902007237077, 5525180.027237627655268 ],
+ [ 2870586.92008957779035, 5510832.593582849018276 ], [ 2888793.651849212590605, 5474042.334767296910286 ],
+ [ 2912089.746103932149708, 5375034.345184789039195 ], [ 2963404.763001573272049, 5342134.548296894878149 ],
+ [ 3130717.607141342945397, 5284580.895592210814357 ], [ 3372860.787464575842023, 5251413.079919698648155 ],
+ [ 3604246.609392241109163, 5221631.018594023771584 ], [ 3899632.379088155459613, 5244451.820869256742299 ],
+ [ 3899631.058894992340356, 5244452.362735482864082 ], [ 4079634.297131419181824, 5314523.612996457144618 ],
+ [ 4184617.380289990920573, 5390967.241231970489025 ], [ 4249642.595975152216852, 5617353.157305533066392 ],
+ [ 4201527.399990531615913, 5761205.509112450294197 ], [ 4206890.30915433075279, 5847959.394722265191376 ],
+ [ 4187269.12061698641628, 5919339.10337168071419 ], [ 4189136.636814709287137, 5992733.099909086711705 ],
+ [ 4159850.727864414453506, 6069374.073575872927904 ], [ 4129106.046366612426937, 6073897.686920647509396 ],
+ [ 4114371.901775758713484, 6084065.269025192596018 ], [ 4103304.073941050563008, 6116745.155966782011092 ],
+ [ 4063972.285039170645177, 6106115.374501251615584 ], [ 4012239.299944775179029, 6087831.579441223293543 ],
+ [ 3997251.444002272561193, 6074059.61202086135745 ], [ 3968442.397193581797183, 6043415.48103141784668 ],
+ [ 3931073.699284748639911, 6028676.366916682571173 ], [ 3931072.150422212202102, 6028677.559559794142842 ],
+ [ 3895995.288044658955187, 6011115.359759030863643 ], [ 3865869.469221924897283, 5998640.513605297543108 ],
+ [ 3851046.227232145611197, 5988601.221333314664662 ], [ 3865981.763045189902186, 5983072.152140183374286 ],
+ [ 3865148.028585189487785, 5965141.813450297340751 ], [ 3822061.786804167088121, 5988724.291599882766604 ],
+ [ 3710994.17604787601158, 5859926.014085770584643 ], [ 3402566.701866475865245, 5861988.092063340358436 ],
+ [ 3402572.148686083499342, 5863140.465945766307414 ], [ 3402295.614840701688081, 5863527.193903259001672 ] ]
+}
diff --git a/MessagesMap/geo/test2.json b/MessagesMap/geo/test2.json
new file mode 100644
index 000000000..10cc22ead
--- /dev/null
+++ b/MessagesMap/geo/test2.json
@@ -0,0 +1,2 @@
+{ "coordinates": [ [ 3430558.391785612329841, 5854898.69403818435967 ], [ 3351043.452697556465864, 5929640.763640177436173 ], [ 3293612.205606228206307, 5907587.360704869963229 ], [ 3265280.468581228982657, 5908900.4923674184829 ], [ 3263087.850754016079009, 5864283.166855762712657 ], [ 3274964.106121309567243, 5855540.948255017399788 ], [ 3257171.472157999873161, 5827672.554449108429253 ], [ 3223087.557678541634232, 5808849.598959651775658 ], [ 3237476.429442807100713, 5845131.495622143149376 ], [ 3222710.563997729681432, 5874599.719647135585546 ], [ 3186948.54888044949621, 5827541.592893831431866 ], [ 3154096.075033277273178, 5771633.188695943914354 ], [ 3134404.103080899920315, 5731093.842044740915298 ], [ 3102704.811433294322342, 5703900.02567438967526 ], [ 3044047.631753840483725, 5666184.823486849665642 ], [ 2995969.741034935228527, 5657785.430420506745577 ], [ 2971595.793354781344533, 5586619.822154226712883 ], [ 2874160.85182745102793, 5540105.731427953578532 ], [ 2871115.983556916005909, 5513886.157635677605867 ], [ 2821156.410074022598565, 5506552.442230841144919 ], [ 2764528.507902590557933, 5518386.302081751637161 ], [ 2741227.328600434586406, 5543903.899101392365992 ], [ 2728166.048748175613582, 5483050.056327369064093 ], [ 2747540.558010469190776, 5426115.628122478723526 ], [ 2672174.531807905528694, 5441344.26467523816973 ], [ 2645371.677542404737324, 5445398.296044395305216 ], [ 2614636.90516682388261, 5482087.436940996907651 ], [ 2536854.656092827674001, 5481487.08156153280288 ], [ 2468798.036874806508422, 5461627.578308171592653 ], [ 2493371.120379388332367, 5392296.120526272803545 ], [ 2587913.989099600352347, 5343820.957712485454977 ], [ 2656783.209412088617682, 5272713.582237105816603 ], [ 2693797.189690702594817, 5163798.955092680640519 ], [ 2711138.005040554795414, 5075473.479470097459853 ], [ 2680418.525173281319439, 4908687.62072494532913 ], [ 2623896.747768824454397, 4856322.74044138751924 ], [ 2490894.842525760643184, 4875092.467286396771669 ], [ 2357179.698129876982421, 4921958.748136376030743 ], [ 2234454.931984908878803, 4944456.235187213867903 ], [ 2130566.893498337827623, 4985791.800660982728004 ], [ 2049030.991262872004882, 4941846.655255357734859 ], [ 2008995.49223009753041, 4830848.292295320890844 ], [ 2009230.057477062568069, 4682417.564982812851667 ], [ 1977466.555591123178601, 4581325.12106606643647 ], [ 1898863.803173829102889, 4493818.121235621161759 ], [ 1921917.419012395432219, 4361562.390491612255573 ], [ 1881037.09459138312377, 4240326.038701847195625 ], [ 2072571.267258507199585, 4205117.496969733387232 ], [ 2134754.31321166921407, 4138691.406981480307877 ], [ 2219188.258932416327298, 4063838.342601182870567 ], [ 2363469.273094842676073, 4132805.97249952936545 ], [ 2499947.919628346338868, 4115602.362501880619675 ], [ 2660699.891013386193663, 4179976.657559415791184 ], [ 2749093.130914427340031, 4311051.423762573860586 ], [ 2745995.617693590465933, 4443369.74418546911329 ], [ 2817445.861481563188136, 4535325.793703122064471 ], [ 2940667.597296367399395, 4591567.124620921909809 ], [ 3033121.646858702879399, 4676065.789593084715307 ], [ 3025934.484802299644798, 4791244.738397163338959 ], [ 3121446.527096380479634, 4814821.661065343767405 ], [ 3233021.537131195887923, 4770108.648974569514394 ], [ 3296885.628724770620465, 4753099.216794070787728 ], [ 3392474.557799564208835, 4839288.192833029665053 ], [ 3466284.967102353926748, 4920879.636520247906446 ], [ 3553453.357159716077149, 4896889.356147661805153 ], [ 3608526.968986418098211, 4790361.209641774185002 ], [ 3674464.449153255205601, 4717629.502623347565532 ], [ 3761932.120111405383795, 4645415.876319784671068 ], [ 3892483.106038274709135, 4565357.006851435638964 ], [ 3995466.106369057670236, 4479215.155204933136702 ], [ 4072032.389512144494802, 4427539.200200743973255 ], [ 4110609.213003889191896, 4336066.691226734779775 ], [ 4099554.211581259034574, 4271644.067399833351374 ], [ 3994344.268617989961058, 4248549.148426273837686 ], [ 3962739.4637122140266, 4241363.47517666220665 ], [ 3851021.616557301487774, 4235753.718381896615028 ], [ 3787951.484620574396104, 4212031.865173391997814 ], [ 3840074.498560854233801, 4112351.301588744856417 ], [ 4009746.480250994674861, 4083026.323055787477642 ], [ 4091541.108974817208946, 4082875.98393155541271 ], [ 4079394.10176223423332, 4179308.023171824868768 ], [ 4152465.098994967527688, 4211624.143045023083687 ], [ 4151375.727815673686564, 4291642.336564572528005 ], [ 4206878.539772247895598, 4328243.294227046892047 ], [ 4198847.210238470695913, 4417157.427470621652901 ], [ 4138382.919390125665814, 4448447.203175754286349 ], [ 4169213.578246124088764, 4513433.360955527052283 ], [ 4248568.969885434024036, 4500231.317964065819979 ], [ 4313189.579452255740762, 4433698.745042996481061 ], [ 4310597.383486644364893, 4506704.00067578908056 ], [ 4207978.059221982955933, 4542877.426472261548042 ], [ 4083362.232043013907969, 4613840.259731094352901 ], [ 4111222.947242500260472, 4646645.436263741925359 ], [ 4052891.133234368637204, 4677246.922737505286932 ], [ 3981826.184635818935931, 4682093.607365156523883 ], [ 3927952.456854668445885, 4738589.136318989098072 ], [ 3898444.345630349591374, 4815963.835400913842022 ], [ 3826716.178568956442177, 4870801.524037089198828 ], [ 3780353.387976876925677, 4926824.326211964711547 ], [ 3753540.862845566589385, 4992896.658221863210201 ], [ 3774753.373866602778435, 5055547.03004782833159 ], [ 3844474.453266898170114, 5082625.959175204858184 ], [ 3878149.745092610828578, 4994289.141247479245067 ], [ 3914419.078953263349831, 4953296.083481502719223 ], [ 3944811.44827102124691, 5003383.175915982574224 ], [ 4003749.646294003352523, 4925746.54543842934072 ], [ 4073846.985630095936358, 4848345.226209172047675 ], [ 4165049.819010843988508, 4827119.395908239297569 ], [ 4202713.847744999453425, 4751080.733916603960097 ], [ 4312091.732483463361859, 4722680.17537999805063 ], [ 4374122.683537937700748, 4674119.073877012357116 ], [ 4382629.945425533689559, 4561755.35308872628957 ], [ 4441177.563810955733061, 4469518.083254924044013 ], [ 4508766.903359050862491, 4398584.702537713572383 ], [ 4529630.670299513265491, 4320853.297952158376575 ], [ 4595718.920668716542423, 4313465.527894875966012 ], [ 4665905.233267125673592, 4317991.678226368501782 ], [ 4761490.361937223002315, 4266782.640961347147822 ], [ 4799258.73613250348717, 4272740.182596009224653 ], [ 4885648.810367755591869, 4287055.902407020330429 ], [ 4896253.465188959613442, 4322063.861672636121511 ], [ 4795317.422833029180765, 4430535.622740567661822 ], [ 4655357.115149579942226, 4531127.676838210783899 ], [ 4659260.745358975604177, 4574032.323927110061049 ], [ 4768916.786473836749792, 4522944.653643687255681 ], [ 4787252.109598832204938, 4632467.202336606569588 ], [ 4856056.626103636808693, 4634435.42521960940212 ], [ 4948829.368921774439514, 4625680.86761302407831 ], [ 4984012.232016009278595, 4638150.164775673300028 ], [ 4950592.457050804048777, 4748466.192807632498443 ], [ 4955223.865789718925953, 4802130.347953317686915 ], [ 5134582.402026082389057, 4853199.88121435046196 ], [ 5046524.617472363635898, 4979209.368910531513393 ], [ 5110654.308202135376632, 5057081.813503955490887 ], [ 5088281.405294141732156, 5184671.597678536549211 ], [ 5165086.096134598366916, 5240837.686665534973145 ], [ 5153829.248958383686841, 5263128.761640721932054 ], [ 5146443.087969302199781, 5396716.66347486153245 ], [ 5042548.122371908277273, 5431804.121299262158573 ], [ 5006330.98325427249074, 5528572.402178733609617 ], [ 4890556.141045596450567, 5569113.200059272348881 ], [ 4939068.705123152583838, 5652427.649299384094775 ], [ 4986406.729113397188485, 5749702.766967558301985 ], [ 4938694.494424044154584, 5818743.107763200066984 ], [ 4908434.304600362665951, 5922920.65149344317615 ], [ 4990955.595924040302634, 5947834.701806082390249 ], [ 5027331.847295980900526, 6031342.842202653177083 ], [ 4977075.109543372876942, 6103616.971439402550459 ], [ 5017830.367524876259267, 6191614.163757644593716 ], [ 4918305.265430862084031, 6269740.460171056911349 ], [ 4871989.83583602681756, 6346609.246318683028221 ], [ 4857292.033084981143475, 6391235.789961948059499 ], [ 4773864.191525766626, 6397046.257237657904625 ], [ 4672436.362816701643169, 6386829.625328004360199 ], [ 4668681.184651763178408, 6441183.203278236091137 ], [ 4622174.874970854260027, 6494163.663751083426178 ], [ 4593909.483635630458593, 6566567.769100469537079 ], [ 4587926.934373699128628, 6613904.570193227380514 ], [ 4542753.804832647554576, 6667953.304986313916743 ], [ 4518695.418160944245756, 6701489.540686205029488 ], [ 4569393.11544117052108, 6715988.670498988591135 ], [ 4546998.19541082996875, 6767530.652067743241787 ], [ 4465468.845347382128239, 6737496.76244118064642 ], [ 4383263.496094018220901, 6709391.725206672213972 ], [ 4309737.255238452926278, 6656825.902775766327977 ], [ 4333165.870854875072837, 6582678.090604707598686 ], [ 4375891.491630547679961, 6555601.518246159888804 ], [ 4404967.032704738900065, 6573398.833388625644147 ], [ 4425746.241474055685103, 6485190.97763376776129 ], [ 4414601.817753253504634, 6418186.63595140632242 ], [ 4368591.157245540991426, 6419438.100366826169193 ], [ 4316039.375454420223832, 6472257.777333822101355 ], [ 4262296.666470409370959, 6461561.627527548931539 ], [ 4240573.092935781925917, 6397764.068663981743157 ], [ 4241250.879281020723283, 6287627.601956130005419 ], [ 4279036.374370372854173, 6228407.013804988004267 ], [ 4289358.275798534974456, 6171205.918190164491534 ], [ 4246438.463846365921199, 6120020.157652736641467 ], [ 4192856.438502913340926, 6079460.822048873640597 ], [ 4150271.486287254374474, 6069141.135062295012176 ], [ 4130087.351614642888308, 6070285.188416345976293 ], [ 4107503.050939481705427, 6118762.644481473602355 ], [ 4039935.049050788395107, 6090366.661058698780835 ], [ 3976846.313047314528376, 6051609.462797619402409 ], [ 3932231.443894079886377, 6019346.294463685713708 ], [ 3932230.059356894344091, 6019347.505310805514455 ], [ 3877437.89933395665139, 6006564.587224494665861 ], [ 3866160.919808467850089, 5997682.123953429982066 ], [ 3795355.092066496610641, 5916321.72977686021477 ], [ 3692488.151042006444186, 5854137.121019934304059 ], [ 3557409.431803345680237, 5850658.669014722108841 ], [ 3430304.58222025167197, 5855029.869291101582348]]
+}
diff --git a/MessagesMap/img/Logo_TALAS.png b/MessagesMap/img/Logo_TALAS.png
new file mode 100644
index 000000000..700f2217d
Binary files /dev/null and b/MessagesMap/img/Logo_TALAS.png differ
diff --git a/MessagesMap/img/center_focus.png b/MessagesMap/img/center_focus.png
new file mode 100644
index 000000000..2fe34a967
Binary files /dev/null and b/MessagesMap/img/center_focus.png differ
diff --git a/MessagesMap/img/data_big.png b/MessagesMap/img/data_big.png
new file mode 100644
index 000000000..e20ff5fb9
Binary files /dev/null and b/MessagesMap/img/data_big.png differ
diff --git a/MessagesMap/img/diensteButton.png b/MessagesMap/img/diensteButton.png
new file mode 100644
index 000000000..26ed2bf6d
Binary files /dev/null and b/MessagesMap/img/diensteButton.png differ
diff --git a/MessagesMap/img/group.png b/MessagesMap/img/group.png
new file mode 100644
index 000000000..b67122923
Binary files /dev/null and b/MessagesMap/img/group.png differ
diff --git a/MessagesMap/img/group_round.png b/MessagesMap/img/group_round.png
new file mode 100644
index 000000000..5131d7091
Binary files /dev/null and b/MessagesMap/img/group_round.png differ
diff --git a/MessagesMap/img/group_round_white.png b/MessagesMap/img/group_round_white.png
new file mode 100644
index 000000000..6f61d6db7
Binary files /dev/null and b/MessagesMap/img/group_round_white.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-0.png b/MessagesMap/img/icons/critical-marker-icon-0.png
new file mode 100644
index 000000000..b52374edc
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-0.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-1.png b/MessagesMap/img/icons/critical-marker-icon-1.png
new file mode 100644
index 000000000..13e174e9f
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-1.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-10.png b/MessagesMap/img/icons/critical-marker-icon-10.png
new file mode 100644
index 000000000..4ee88efb1
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-10.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-11.png b/MessagesMap/img/icons/critical-marker-icon-11.png
new file mode 100644
index 000000000..b3daa614f
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-11.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-12.png b/MessagesMap/img/icons/critical-marker-icon-12.png
new file mode 100644
index 000000000..0672753dd
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-12.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-13.png b/MessagesMap/img/icons/critical-marker-icon-13.png
new file mode 100644
index 000000000..1351570e6
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-13.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-14.png b/MessagesMap/img/icons/critical-marker-icon-14.png
new file mode 100644
index 000000000..46b36cb9d
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-14.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-15.png b/MessagesMap/img/icons/critical-marker-icon-15.png
new file mode 100644
index 000000000..25e9d04de
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-15.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-16.png b/MessagesMap/img/icons/critical-marker-icon-16.png
new file mode 100644
index 000000000..69895c15e
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-16.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-17.png b/MessagesMap/img/icons/critical-marker-icon-17.png
new file mode 100644
index 000000000..8114932ac
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-17.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-18.png b/MessagesMap/img/icons/critical-marker-icon-18.png
new file mode 100644
index 000000000..252c16bdc
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-18.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-19.png b/MessagesMap/img/icons/critical-marker-icon-19.png
new file mode 100644
index 000000000..fb3d52bb6
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-19.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-2.png b/MessagesMap/img/icons/critical-marker-icon-2.png
new file mode 100644
index 000000000..3651fb1b2
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-2.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-20.png b/MessagesMap/img/icons/critical-marker-icon-20.png
new file mode 100644
index 000000000..c4428d5f5
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-20.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-21.png b/MessagesMap/img/icons/critical-marker-icon-21.png
new file mode 100644
index 000000000..b818bb6c0
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-21.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-22.png b/MessagesMap/img/icons/critical-marker-icon-22.png
new file mode 100644
index 000000000..58e685b11
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-22.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-23.png b/MessagesMap/img/icons/critical-marker-icon-23.png
new file mode 100644
index 000000000..0a2b77a49
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-23.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-24.png b/MessagesMap/img/icons/critical-marker-icon-24.png
new file mode 100644
index 000000000..6e1e7a4ef
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-24.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-25.png b/MessagesMap/img/icons/critical-marker-icon-25.png
new file mode 100644
index 000000000..4bc9b923a
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-25.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-26.png b/MessagesMap/img/icons/critical-marker-icon-26.png
new file mode 100644
index 000000000..4b82903ad
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-26.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-27.png b/MessagesMap/img/icons/critical-marker-icon-27.png
new file mode 100644
index 000000000..2ee3ff3d1
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-27.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-28.png b/MessagesMap/img/icons/critical-marker-icon-28.png
new file mode 100644
index 000000000..20cfe4881
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-28.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-29.png b/MessagesMap/img/icons/critical-marker-icon-29.png
new file mode 100644
index 000000000..f2eab8289
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-29.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-3.png b/MessagesMap/img/icons/critical-marker-icon-3.png
new file mode 100644
index 000000000..e79a7de1c
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-3.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-30.png b/MessagesMap/img/icons/critical-marker-icon-30.png
new file mode 100644
index 000000000..d6225daf3
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-30.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-4.png b/MessagesMap/img/icons/critical-marker-icon-4.png
new file mode 100644
index 000000000..43fae1790
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-4.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-5.png b/MessagesMap/img/icons/critical-marker-icon-5.png
new file mode 100644
index 000000000..b08df0d39
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-5.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-6.png b/MessagesMap/img/icons/critical-marker-icon-6.png
new file mode 100644
index 000000000..8b1f7c6e3
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-6.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-7.png b/MessagesMap/img/icons/critical-marker-icon-7.png
new file mode 100644
index 000000000..cb2687d22
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-7.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-8.png b/MessagesMap/img/icons/critical-marker-icon-8.png
new file mode 100644
index 000000000..d010ea227
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-8.png differ
diff --git a/MessagesMap/img/icons/critical-marker-icon-9.png b/MessagesMap/img/icons/critical-marker-icon-9.png
new file mode 100644
index 000000000..5d2c26782
Binary files /dev/null and b/MessagesMap/img/icons/critical-marker-icon-9.png differ
diff --git a/MessagesMap/img/icons/green-marker-icon.png b/MessagesMap/img/icons/green-marker-icon.png
new file mode 100644
index 000000000..a7ed5246a
Binary files /dev/null and b/MessagesMap/img/icons/green-marker-icon.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-0.png b/MessagesMap/img/icons/major-marker-icon-0.png
new file mode 100644
index 000000000..5d76a0f88
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-0.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-1.png b/MessagesMap/img/icons/major-marker-icon-1.png
new file mode 100644
index 000000000..d4b9c2fd1
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-1.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-10.png b/MessagesMap/img/icons/major-marker-icon-10.png
new file mode 100644
index 000000000..dbc7c070f
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-10.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-11.png b/MessagesMap/img/icons/major-marker-icon-11.png
new file mode 100644
index 000000000..6fa8657e5
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-11.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-12.png b/MessagesMap/img/icons/major-marker-icon-12.png
new file mode 100644
index 000000000..822ff67fc
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-12.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-13.png b/MessagesMap/img/icons/major-marker-icon-13.png
new file mode 100644
index 000000000..69e98430a
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-13.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-14.png b/MessagesMap/img/icons/major-marker-icon-14.png
new file mode 100644
index 000000000..32fc1be31
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-14.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-15.png b/MessagesMap/img/icons/major-marker-icon-15.png
new file mode 100644
index 000000000..52640b244
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-15.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-16.png b/MessagesMap/img/icons/major-marker-icon-16.png
new file mode 100644
index 000000000..6ec0f60e0
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-16.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-17.png b/MessagesMap/img/icons/major-marker-icon-17.png
new file mode 100644
index 000000000..5845b9564
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-17.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-18.png b/MessagesMap/img/icons/major-marker-icon-18.png
new file mode 100644
index 000000000..8f3ddbc83
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-18.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-19.png b/MessagesMap/img/icons/major-marker-icon-19.png
new file mode 100644
index 000000000..f7604d95c
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-19.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-2.png b/MessagesMap/img/icons/major-marker-icon-2.png
new file mode 100644
index 000000000..ee62642fc
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-2.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-20.png b/MessagesMap/img/icons/major-marker-icon-20.png
new file mode 100644
index 000000000..a0d00a457
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-20.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-21.png b/MessagesMap/img/icons/major-marker-icon-21.png
new file mode 100644
index 000000000..48130ff49
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-21.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-22.png b/MessagesMap/img/icons/major-marker-icon-22.png
new file mode 100644
index 000000000..5fe81f2ca
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-22.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-23.png b/MessagesMap/img/icons/major-marker-icon-23.png
new file mode 100644
index 000000000..216ac32ea
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-23.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-24.png b/MessagesMap/img/icons/major-marker-icon-24.png
new file mode 100644
index 000000000..2ef90b11e
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-24.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-25.png b/MessagesMap/img/icons/major-marker-icon-25.png
new file mode 100644
index 000000000..4120c44c8
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-25.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-26.png b/MessagesMap/img/icons/major-marker-icon-26.png
new file mode 100644
index 000000000..27e1cf273
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-26.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-27.png b/MessagesMap/img/icons/major-marker-icon-27.png
new file mode 100644
index 000000000..2f56d1089
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-27.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-28.png b/MessagesMap/img/icons/major-marker-icon-28.png
new file mode 100644
index 000000000..ee7c77ea7
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-28.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-29.png b/MessagesMap/img/icons/major-marker-icon-29.png
new file mode 100644
index 000000000..2c5852669
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-29.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-3.png b/MessagesMap/img/icons/major-marker-icon-3.png
new file mode 100644
index 000000000..070d4f66a
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-3.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-30.png b/MessagesMap/img/icons/major-marker-icon-30.png
new file mode 100644
index 000000000..31b366f78
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-30.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-4.png b/MessagesMap/img/icons/major-marker-icon-4.png
new file mode 100644
index 000000000..9abdcc487
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-4.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-5.png b/MessagesMap/img/icons/major-marker-icon-5.png
new file mode 100644
index 000000000..382482a50
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-5.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-6.png b/MessagesMap/img/icons/major-marker-icon-6.png
new file mode 100644
index 000000000..74fef13a6
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-6.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-7.png b/MessagesMap/img/icons/major-marker-icon-7.png
new file mode 100644
index 000000000..f53b8ac60
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-7.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-8.png b/MessagesMap/img/icons/major-marker-icon-8.png
new file mode 100644
index 000000000..4e583dec9
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-8.png differ
diff --git a/MessagesMap/img/icons/major-marker-icon-9.png b/MessagesMap/img/icons/major-marker-icon-9.png
new file mode 100644
index 000000000..a55c90957
Binary files /dev/null and b/MessagesMap/img/icons/major-marker-icon-9.png differ
diff --git a/MessagesMap/img/icons/marker-icon-1.png b/MessagesMap/img/icons/marker-icon-1.png
new file mode 100644
index 000000000..3ed472b9a
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-1.png differ
diff --git a/MessagesMap/img/icons/marker-icon-10.png b/MessagesMap/img/icons/marker-icon-10.png
new file mode 100644
index 000000000..d1f6ac0ef
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-10.png differ
diff --git a/MessagesMap/img/icons/marker-icon-11.png b/MessagesMap/img/icons/marker-icon-11.png
new file mode 100644
index 000000000..be7c19b1c
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-11.png differ
diff --git a/MessagesMap/img/icons/marker-icon-12.png b/MessagesMap/img/icons/marker-icon-12.png
new file mode 100644
index 000000000..972662636
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-12.png differ
diff --git a/MessagesMap/img/icons/marker-icon-13.png b/MessagesMap/img/icons/marker-icon-13.png
new file mode 100644
index 000000000..2012a8dbf
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-13.png differ
diff --git a/MessagesMap/img/icons/marker-icon-14.png b/MessagesMap/img/icons/marker-icon-14.png
new file mode 100644
index 000000000..d8f883ec5
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-14.png differ
diff --git a/MessagesMap/img/icons/marker-icon-15.png b/MessagesMap/img/icons/marker-icon-15.png
new file mode 100644
index 000000000..a85c4605d
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-15.png differ
diff --git a/MessagesMap/img/icons/marker-icon-16.png b/MessagesMap/img/icons/marker-icon-16.png
new file mode 100644
index 000000000..5af4e3497
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-16.png differ
diff --git a/MessagesMap/img/icons/marker-icon-17.png b/MessagesMap/img/icons/marker-icon-17.png
new file mode 100644
index 000000000..86baf9ae4
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-17.png differ
diff --git a/MessagesMap/img/icons/marker-icon-18.png b/MessagesMap/img/icons/marker-icon-18.png
new file mode 100644
index 000000000..d87eb9808
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-18.png differ
diff --git a/MessagesMap/img/icons/marker-icon-19.png b/MessagesMap/img/icons/marker-icon-19.png
new file mode 100644
index 000000000..ba5f37199
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-19.png differ
diff --git a/MessagesMap/img/icons/marker-icon-2.png b/MessagesMap/img/icons/marker-icon-2.png
new file mode 100644
index 000000000..568fbef06
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-2.png differ
diff --git a/MessagesMap/img/icons/marker-icon-20.png b/MessagesMap/img/icons/marker-icon-20.png
new file mode 100644
index 000000000..5db3b5375
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-20.png differ
diff --git a/MessagesMap/img/icons/marker-icon-21.png b/MessagesMap/img/icons/marker-icon-21.png
new file mode 100644
index 000000000..8b36ad857
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-21.png differ
diff --git a/MessagesMap/img/icons/marker-icon-22.png b/MessagesMap/img/icons/marker-icon-22.png
new file mode 100644
index 000000000..c20063b51
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-22.png differ
diff --git a/MessagesMap/img/icons/marker-icon-23.png b/MessagesMap/img/icons/marker-icon-23.png
new file mode 100644
index 000000000..8c27636c2
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-23.png differ
diff --git a/MessagesMap/img/icons/marker-icon-24.png b/MessagesMap/img/icons/marker-icon-24.png
new file mode 100644
index 000000000..7a57ab114
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-24.png differ
diff --git a/MessagesMap/img/icons/marker-icon-25.png b/MessagesMap/img/icons/marker-icon-25.png
new file mode 100644
index 000000000..0a4731aec
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-25.png differ
diff --git a/MessagesMap/img/icons/marker-icon-26.png b/MessagesMap/img/icons/marker-icon-26.png
new file mode 100644
index 000000000..e202ebb91
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-26.png differ
diff --git a/MessagesMap/img/icons/marker-icon-27.png b/MessagesMap/img/icons/marker-icon-27.png
new file mode 100644
index 000000000..351e50fa1
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-27.png differ
diff --git a/MessagesMap/img/icons/marker-icon-28.png b/MessagesMap/img/icons/marker-icon-28.png
new file mode 100644
index 000000000..75ea8ad6d
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-28.png differ
diff --git a/MessagesMap/img/icons/marker-icon-29.png b/MessagesMap/img/icons/marker-icon-29.png
new file mode 100644
index 000000000..c7cf3932d
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-29.png differ
diff --git a/MessagesMap/img/icons/marker-icon-3.png b/MessagesMap/img/icons/marker-icon-3.png
new file mode 100644
index 000000000..6bad08df9
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-3.png differ
diff --git a/MessagesMap/img/icons/marker-icon-30.png b/MessagesMap/img/icons/marker-icon-30.png
new file mode 100644
index 000000000..994edf438
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-30.png differ
diff --git a/MessagesMap/img/icons/marker-icon-4.png b/MessagesMap/img/icons/marker-icon-4.png
new file mode 100644
index 000000000..ec96a02cf
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-4.png differ
diff --git a/MessagesMap/img/icons/marker-icon-5.png b/MessagesMap/img/icons/marker-icon-5.png
new file mode 100644
index 000000000..a3e147e2b
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-5.png differ
diff --git a/MessagesMap/img/icons/marker-icon-6.png b/MessagesMap/img/icons/marker-icon-6.png
new file mode 100644
index 000000000..cccde203e
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-6.png differ
diff --git a/MessagesMap/img/icons/marker-icon-7.png b/MessagesMap/img/icons/marker-icon-7.png
new file mode 100644
index 000000000..27b1d7345
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-7.png differ
diff --git a/MessagesMap/img/icons/marker-icon-8.png b/MessagesMap/img/icons/marker-icon-8.png
new file mode 100644
index 000000000..f675c9a63
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-8.png differ
diff --git a/MessagesMap/img/icons/marker-icon-9.png b/MessagesMap/img/icons/marker-icon-9.png
new file mode 100644
index 000000000..458015881
Binary files /dev/null and b/MessagesMap/img/icons/marker-icon-9.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-0.png b/MessagesMap/img/icons/minor-marker-icon-0.png
new file mode 100644
index 000000000..d3f476318
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-0.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-1.png b/MessagesMap/img/icons/minor-marker-icon-1.png
new file mode 100644
index 000000000..7706591fd
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-1.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-10.png b/MessagesMap/img/icons/minor-marker-icon-10.png
new file mode 100644
index 000000000..85acd52a1
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-10.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-11.png b/MessagesMap/img/icons/minor-marker-icon-11.png
new file mode 100644
index 000000000..98c35de0f
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-11.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-12.png b/MessagesMap/img/icons/minor-marker-icon-12.png
new file mode 100644
index 000000000..ee4020a63
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-12.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-13.png b/MessagesMap/img/icons/minor-marker-icon-13.png
new file mode 100644
index 000000000..1c526a7e3
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-13.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-14.png b/MessagesMap/img/icons/minor-marker-icon-14.png
new file mode 100644
index 000000000..6592000bf
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-14.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-15.png b/MessagesMap/img/icons/minor-marker-icon-15.png
new file mode 100644
index 000000000..3d5b65c0b
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-15.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-16.png b/MessagesMap/img/icons/minor-marker-icon-16.png
new file mode 100644
index 000000000..d3ea16b4d
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-16.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-17.png b/MessagesMap/img/icons/minor-marker-icon-17.png
new file mode 100644
index 000000000..220acd4ef
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-17.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-18.png b/MessagesMap/img/icons/minor-marker-icon-18.png
new file mode 100644
index 000000000..e6e8a4012
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-18.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-19.png b/MessagesMap/img/icons/minor-marker-icon-19.png
new file mode 100644
index 000000000..2f648c65b
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-19.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-2.png b/MessagesMap/img/icons/minor-marker-icon-2.png
new file mode 100644
index 000000000..6b556c113
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-2.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-20.png b/MessagesMap/img/icons/minor-marker-icon-20.png
new file mode 100644
index 000000000..7c5866743
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-20.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-21.png b/MessagesMap/img/icons/minor-marker-icon-21.png
new file mode 100644
index 000000000..ac3c5dc32
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-21.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-22.png b/MessagesMap/img/icons/minor-marker-icon-22.png
new file mode 100644
index 000000000..5a412f5c8
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-22.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-23.png b/MessagesMap/img/icons/minor-marker-icon-23.png
new file mode 100644
index 000000000..f023c0b24
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-23.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-24.png b/MessagesMap/img/icons/minor-marker-icon-24.png
new file mode 100644
index 000000000..e5884800d
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-24.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-25.png b/MessagesMap/img/icons/minor-marker-icon-25.png
new file mode 100644
index 000000000..5c75497a2
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-25.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-26.png b/MessagesMap/img/icons/minor-marker-icon-26.png
new file mode 100644
index 000000000..32c089f84
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-26.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-27.png b/MessagesMap/img/icons/minor-marker-icon-27.png
new file mode 100644
index 000000000..c60b6e179
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-27.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-28.png b/MessagesMap/img/icons/minor-marker-icon-28.png
new file mode 100644
index 000000000..39e2207d3
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-28.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-29.png b/MessagesMap/img/icons/minor-marker-icon-29.png
new file mode 100644
index 000000000..be7074b45
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-29.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-3.png b/MessagesMap/img/icons/minor-marker-icon-3.png
new file mode 100644
index 000000000..16af06c9f
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-3.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-30.png b/MessagesMap/img/icons/minor-marker-icon-30.png
new file mode 100644
index 000000000..7c60e00fa
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-30.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-4.png b/MessagesMap/img/icons/minor-marker-icon-4.png
new file mode 100644
index 000000000..d6601650d
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-4.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-5.png b/MessagesMap/img/icons/minor-marker-icon-5.png
new file mode 100644
index 000000000..93f739584
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-5.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-6.png b/MessagesMap/img/icons/minor-marker-icon-6.png
new file mode 100644
index 000000000..0cf462bb4
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-6.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-7.png b/MessagesMap/img/icons/minor-marker-icon-7.png
new file mode 100644
index 000000000..1b25e3348
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-7.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-8.png b/MessagesMap/img/icons/minor-marker-icon-8.png
new file mode 100644
index 000000000..b3dcb8d00
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-8.png differ
diff --git a/MessagesMap/img/icons/minor-marker-icon-9.png b/MessagesMap/img/icons/minor-marker-icon-9.png
new file mode 100644
index 000000000..729052561
Binary files /dev/null and b/MessagesMap/img/icons/minor-marker-icon-9.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-0.png b/MessagesMap/img/icons/system-marker-icon-0.png
new file mode 100644
index 000000000..3cae31ff2
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-0.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-1.png b/MessagesMap/img/icons/system-marker-icon-1.png
new file mode 100644
index 000000000..a77ff12be
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-1.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-10.png b/MessagesMap/img/icons/system-marker-icon-10.png
new file mode 100644
index 000000000..eae83e604
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-10.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-11.png b/MessagesMap/img/icons/system-marker-icon-11.png
new file mode 100644
index 000000000..4d9305e89
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-11.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-12.png b/MessagesMap/img/icons/system-marker-icon-12.png
new file mode 100644
index 000000000..d17413a23
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-12.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-13.png b/MessagesMap/img/icons/system-marker-icon-13.png
new file mode 100644
index 000000000..fbac77ff7
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-13.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-14.png b/MessagesMap/img/icons/system-marker-icon-14.png
new file mode 100644
index 000000000..bcda4018b
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-14.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-15.png b/MessagesMap/img/icons/system-marker-icon-15.png
new file mode 100644
index 000000000..8a837bf80
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-15.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-16.png b/MessagesMap/img/icons/system-marker-icon-16.png
new file mode 100644
index 000000000..7f8044e68
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-16.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-17.png b/MessagesMap/img/icons/system-marker-icon-17.png
new file mode 100644
index 000000000..992b99c9e
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-17.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-18.png b/MessagesMap/img/icons/system-marker-icon-18.png
new file mode 100644
index 000000000..aa6b4b38d
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-18.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-19.png b/MessagesMap/img/icons/system-marker-icon-19.png
new file mode 100644
index 000000000..be5b05c70
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-19.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-2.png b/MessagesMap/img/icons/system-marker-icon-2.png
new file mode 100644
index 000000000..6e3dbd47a
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-2.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-20.png b/MessagesMap/img/icons/system-marker-icon-20.png
new file mode 100644
index 000000000..daa5332e6
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-20.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-21.png b/MessagesMap/img/icons/system-marker-icon-21.png
new file mode 100644
index 000000000..c689fd979
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-21.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-22.png b/MessagesMap/img/icons/system-marker-icon-22.png
new file mode 100644
index 000000000..b09bafb30
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-22.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-23.png b/MessagesMap/img/icons/system-marker-icon-23.png
new file mode 100644
index 000000000..7ed3d9d34
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-23.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-24.png b/MessagesMap/img/icons/system-marker-icon-24.png
new file mode 100644
index 000000000..d9fd0f75c
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-24.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-25.png b/MessagesMap/img/icons/system-marker-icon-25.png
new file mode 100644
index 000000000..adedfb017
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-25.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-26.png b/MessagesMap/img/icons/system-marker-icon-26.png
new file mode 100644
index 000000000..c38aed9d1
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-26.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-27.png b/MessagesMap/img/icons/system-marker-icon-27.png
new file mode 100644
index 000000000..8706958fa
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-27.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-28.png b/MessagesMap/img/icons/system-marker-icon-28.png
new file mode 100644
index 000000000..f057b36f1
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-28.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-29.png b/MessagesMap/img/icons/system-marker-icon-29.png
new file mode 100644
index 000000000..6411935d9
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-29.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-3.png b/MessagesMap/img/icons/system-marker-icon-3.png
new file mode 100644
index 000000000..e7393bbfc
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-3.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-30.png b/MessagesMap/img/icons/system-marker-icon-30.png
new file mode 100644
index 000000000..9d4ab7bb3
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-30.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-4.png b/MessagesMap/img/icons/system-marker-icon-4.png
new file mode 100644
index 000000000..95ebd5fe2
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-4.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-5.png b/MessagesMap/img/icons/system-marker-icon-5.png
new file mode 100644
index 000000000..91967f5f1
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-5.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-6.png b/MessagesMap/img/icons/system-marker-icon-6.png
new file mode 100644
index 000000000..b8e08eebd
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-6.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-7.png b/MessagesMap/img/icons/system-marker-icon-7.png
new file mode 100644
index 000000000..0824aacdf
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-7.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-8.png b/MessagesMap/img/icons/system-marker-icon-8.png
new file mode 100644
index 000000000..d5345db52
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-8.png differ
diff --git a/MessagesMap/img/icons/system-marker-icon-9.png b/MessagesMap/img/icons/system-marker-icon-9.png
new file mode 100644
index 000000000..b8f7062ae
Binary files /dev/null and b/MessagesMap/img/icons/system-marker-icon-9.png differ
diff --git a/MessagesMap/img/kabelButton.png b/MessagesMap/img/kabelButton.png
new file mode 100644
index 000000000..73db5abb0
Binary files /dev/null and b/MessagesMap/img/kabelButton.png differ
diff --git a/MessagesMap/img/layers-2x.png b/MessagesMap/img/layers-2x.png
new file mode 100644
index 000000000..200c333dc
Binary files /dev/null and b/MessagesMap/img/layers-2x.png differ
diff --git a/MessagesMap/img/layers.png b/MessagesMap/img/layers.png
new file mode 100644
index 000000000..1a72e5784
Binary files /dev/null and b/MessagesMap/img/layers.png differ
diff --git a/MessagesMap/img/map.png b/MessagesMap/img/map.png
new file mode 100644
index 000000000..279816c5a
Binary files /dev/null and b/MessagesMap/img/map.png differ
diff --git a/MessagesMap/img/marker-group.png b/MessagesMap/img/marker-group.png
new file mode 100644
index 000000000..26f22dc2e
Binary files /dev/null and b/MessagesMap/img/marker-group.png differ
diff --git a/MessagesMap/img/marker-icon-2x.png b/MessagesMap/img/marker-icon-2x.png
new file mode 100644
index 000000000..88f9e5018
Binary files /dev/null and b/MessagesMap/img/marker-icon-2x.png differ
diff --git a/MessagesMap/img/marker-icon.png b/MessagesMap/img/marker-icon.png
new file mode 100644
index 000000000..950edf246
Binary files /dev/null and b/MessagesMap/img/marker-icon.png differ
diff --git a/MessagesMap/img/marker-shadow.png b/MessagesMap/img/marker-shadow.png
new file mode 100644
index 000000000..9fd297953
Binary files /dev/null and b/MessagesMap/img/marker-shadow.png differ
diff --git a/MessagesMap/img/not_listed_location.png b/MessagesMap/img/not_listed_location.png
new file mode 100644
index 000000000..bd0ae6ff2
Binary files /dev/null and b/MessagesMap/img/not_listed_location.png differ
diff --git a/MessagesMap/img/plus_round.png b/MessagesMap/img/plus_round.png
new file mode 100644
index 000000000..1fb105f00
Binary files /dev/null and b/MessagesMap/img/plus_round.png differ
diff --git a/MessagesMap/img/pstationButton.png b/MessagesMap/img/pstationButton.png
new file mode 100644
index 000000000..1f2ce73dd
Binary files /dev/null and b/MessagesMap/img/pstationButton.png differ
diff --git a/MessagesMap/img/sat.png b/MessagesMap/img/sat.png
new file mode 100644
index 000000000..447bf7e84
Binary files /dev/null and b/MessagesMap/img/sat.png differ
diff --git a/MessagesMap/img/screen_new.png b/MessagesMap/img/screen_new.png
new file mode 100644
index 000000000..c23859152
Binary files /dev/null and b/MessagesMap/img/screen_new.png differ
diff --git a/MessagesMap/img/screen_same.png b/MessagesMap/img/screen_same.png
new file mode 100644
index 000000000..3a4956993
Binary files /dev/null and b/MessagesMap/img/screen_same.png differ
diff --git a/MessagesMap/img/space-station.png b/MessagesMap/img/space-station.png
new file mode 100644
index 000000000..cdd8484be
Binary files /dev/null and b/MessagesMap/img/space-station.png differ
diff --git a/MessagesMap/img/stationButton.png b/MessagesMap/img/stationButton.png
new file mode 100644
index 000000000..d2be94a71
Binary files /dev/null and b/MessagesMap/img/stationButton.png differ
diff --git a/MessagesMap/img/ustationButton.png b/MessagesMap/img/ustationButton.png
new file mode 100644
index 000000000..d346f7175
Binary files /dev/null and b/MessagesMap/img/ustationButton.png differ
diff --git a/MessagesMap/img/white.png b/MessagesMap/img/white.png
new file mode 100644
index 000000000..40d753084
Binary files /dev/null and b/MessagesMap/img/white.png differ
diff --git a/MessagesMap/img/zoom_in.png b/MessagesMap/img/zoom_in.png
new file mode 100644
index 000000000..674e9d89b
Binary files /dev/null and b/MessagesMap/img/zoom_in.png differ
diff --git a/MessagesMap/img/zoom_out.png b/MessagesMap/img/zoom_out.png
new file mode 100644
index 000000000..60c908748
Binary files /dev/null and b/MessagesMap/img/zoom_out.png differ
diff --git a/MessagesMap/js/app.js b/MessagesMap/js/app.js
new file mode 100644
index 000000000..697d312e6
--- /dev/null
+++ b/MessagesMap/js/app.js
@@ -0,0 +1,114 @@
+/**
+ * @file app.js
+ * @author Andreas Tholen
+ * Contact: info@littwin-systechnik.de
+ * @version 0.5.3
+ * @description Basic Functions
+*/
+
+function getDataMenu() {
+ var stationsListing = [];
+
+ // Stationen erfassen
+ for (var i = 0; i < dataStaticlength; i++) {
+ var gisStatics = dataStatic[i];
+ var stationListing = gisStatics.Area_Name; // Area_Name
+ stationsListing.push(stationListing);
+ }
+
+ // Doppelte Einträge löschen
+ console.log("%cMAP| Einträge der Stationen werden geprüft",'color: green');
+ let uniqueStations = [];
+ stationsListing.forEach((c) => {
+ if (!uniqueStations.includes(c)) {
+ uniqueStations.push(c);
+ }
+ });
+
+ console.log("%cMAP| Stationen indexiert: %c"+uniqueStations,'color: green', 'color:grey');
+
+ var select = document.getElementById("stationListing");
+
+ for(var i = 0; i < uniqueStations.length; i++) {
+ var opt = uniqueStations[i];
+ var el = document.createElement("option");
+ el.textContent = opt;
+ el.value = opt;
+ el.style.color = "#000000";
+ el.style.fontWeight = "thin";
+ select.appendChild(el);
+ }
+}
+
+var checkbox = document.querySelector("#box-TALAS");
+
+checkbox.addEventListener('change', function() {
+ if (this.checked) {
+ map.addLayer(TALAS);
+
+ console.log("TALAS is checked..");
+ } else {
+ map.removeLayer(TALAS);
+
+ console.log("TALAS is not checked..");
+ }
+});
+
+var checkbox = document.querySelector("#box-GMA");
+
+checkbox.addEventListener('change', function() {
+ if (this.checked) {
+ map.addLayer(GMA);
+
+ console.log("GMA is checked..");
+ } else {
+ map.removeLayer(GMA);
+
+ console.log("GMA is not checked..");
+ }
+});
+
+var checkbox = document.querySelector("#box-MODEM");
+
+checkbox.addEventListener('change', function() {
+ if (this.checked) {
+ map.addLayer(GSM);
+
+ console.log("GSM is checked..");
+ } else {
+ map.removeLayer(GSM);
+
+ console.log("GSM is not checked..");
+ }
+});
+
+var checkbox = document.querySelector("#box-SIEMENS");
+
+checkbox.addEventListener('change', function() {
+ if (this.checked) {
+ map.addLayer(Siemens);
+
+ console.log("Notrufsäulen is checked..");
+ } else {
+ map.removeLayer(Siemens);
+
+ console.log("Notrufsäulen is not checked..");
+ }
+});
+
+// ISS Positions-Update Test
+/*var iss;
+function update_position() {
+ $.getJSON('http://open-notify-api.herokuapp.com/iss-now.json?callback=?', function(data) {
+ var latitude = data["iss_position"]["latitude"];
+ var longitude = data["iss_position"]["longitude"];
+ if (!iss) {
+ iss = L.marker([latitude,longitude], {icon: spaceStationMarker}).bindPopup("Ich bin die ISS").addTo(map);
+ }
+ iss.setLatLng([latitude,longitude]).update();
+ setTimeout(update_position, 1000);
+ });
+}
+update_position();*/
+
+
diff --git a/MessagesMap/js/conditions.js b/MessagesMap/js/conditions.js
new file mode 100644
index 000000000..b9a3d19c8
--- /dev/null
+++ b/MessagesMap/js/conditions.js
@@ -0,0 +1,206 @@
+var statusData = [];
+var statusDataCable = [];
+var statusDataKue = [];
+
+function getConditions() {
+ //console.log("%cDAT | Angezeigte Punkte : 4880", "color:blue;");
+ //console.log("%cDAT | Angezeigte Linien : ---", "color:blue;");
+
+ console.log("%cSYS | Meldungen werden geladen","color:orange;");
+
+ var req = new XMLHttpRequest();
+req.open("GET", jsonStatusURL , true);
+
+req.onreadystatechange = function(){
+ if ( req.readyState == 4) {
+ if ( req.status >= 200 && req.status < 300 ||req.status == 304 ) {
+ var returnData = req.responseText;
+ console.log('Statis geladen');
+ statusData = JSON.parse(returnData);
+ setConditions();
+ } else {
+ console.log("Fehler; request.status = " + req.status);
+ }
+ req = null;
+ };
+}
+req.send();
+}
+
+function getConditionsCable() {
+ console.log("%cSYS | Meldungen werden geladen","color:orange;");
+
+ var req = new XMLHttpRequest();
+req.open("GET", jsonServiceURL , true);
+
+req.onreadystatechange = function(){
+ if ( req.readyState == 4) {
+ if ( req.status >= 200 && req.status < 300 ||req.status == 304 ) {
+ var returnData = req.responseText;
+ console.log('Dienst Statis geladen');
+ statusDataCable = JSON.parse(returnData);
+ getConditionsKue();
+ } else {
+ console.log("Fehler; request.status = " + req.status);
+ }
+ req = null;
+ };
+}
+req.send();
+}
+
+function getConditionsKue() {
+ console.log("%cSYS | Meldungen werden geladen","color:orange;");
+
+ var req = new XMLHttpRequest();
+req.open("GET", jsonKueStatusURL , true);
+
+req.onreadystatechange = function(){
+ if ( req.readyState == 4) {
+ if ( req.status >= 200 && req.status < 300 ||req.status == 304 ) {
+ var returnData = req.responseText;
+ console.log('KUE Statis geladen');
+ statusDataKue= JSON.parse(returnData);
+ setConditionsCable();
+ document.getElementById("loadingMap").innerHTML = "";
+ } else {
+ console.log("Fehler; request.status = " + req.status);
+ }
+ req = null;
+ };
+}
+req.send();
+}
+
+function setConditions() {
+ // Shape Color Change
+ var anzahlStatis = statusData.Statis.length;
+ var IdLalt = 0;
+ var idlSet = [];
+
+ for (var n = 0; n < anzahlStatis; n++) {
+
+ if (statusData.Statis[n].IdL > 0) {
+ //console.log(statusData.Statis[n].IdL);
+ var statusID = statusData.Statis[n].IdL;
+ var statusColor = statusData.Statis[n].Co;
+ var statusFeld = statusData.Statis[n].Feld;
+ var statusNa = statusData.Statis[n].Na;
+ var shape = stage.find("#stationCircle"+statusID);
+
+ if(idlSet.indexOf(statusID) !== -1){
+ //console.log("ID vorhanden! "+statusID)
+
+ } else{
+ //console.log("ID noch nicht vorhanden! "+statusID)
+
+ shape.fill(statusColor);
+ var shapeQuad = stage.find("#station"+statusFeld+"f"+statusID);
+ //console.log("StatusID= station"+statusFeld+"f"+statusID+" Statusfarbe= "+statusColor);
+ shapeQuad.fill(statusColor);
+
+
+ if (newScale <= 10){
+ shape.height((standardMeldestationen/5)*meldungMeldestationen);
+ shape.width((standardMeldestationen/5)*meldungMeldestationen);
+ shape.strokeWidth((standardMeldestationen/100)*meldungMeldestationen);
+ }
+ else {
+ shape.height(standardMeldestationen/5);
+ shape.width(standardMeldestationen/5);
+ shape.strokeWidth(standardMeldestationen/100);
+ }
+ }
+ IdLalt = statusID;
+ idlSet.push(statusID);
+ }
+ }
+ layer.batchDraw();
+}
+
+function setConditionsCable() {
+ // Menge an Meldungen Service
+ var anzahlStatis = statusDataCable.Statis.length;
+ console.log("Anzahl geladener Dienst Stati : "+anzahlStatis);
+ // Menge an Meldungen KUE
+ var anzahlStatisKue = statusDataKue.Statis.length;
+ console.log("Anzahl geladener KUEG Stati : "+anzahlStatisKue);
+
+ // Dienste Meldungen
+ if (document.getElementById("buttonDienste").style.opacity > 0.6) {
+ for (var n = 0; n < anzahlStatis; n++) {
+ var sucheTemp = statusDataCable.Statis[n].IdLD;
+ console.log("IdlD Services: "+sucheTemp);
+ for (var x = 0; x < jso.Services.length; x++) {
+ if (sucheTemp == jso.Services[x].IdLD) {
+ //console.log("Test: "+sucheTemp+" IdS "+jso.Services[x].IdS);
+ var statusColor = statusDataCable.Statis[n].Co;
+ var shape = stage.find("#line"+jso.Services[x].IdS);
+ shape.stroke(statusColor);
+ shape.strokeWidth(meldungCableThickness/20);
+ }
+ }
+ }
+ }
+ else {
+ console.log("Dienste Layer abgeschaltet");
+ }
+
+ // KUE Meldungen
+ if (document.getElementById("buttonKabel").style.opacity > 0.6) {
+ for (var n = 0; n < anzahlStatisKue; n++) {
+ var sucheTemp = statusDataKue.Statis[n].IdLD;
+ var sucheSlTemp = statusDataKue.Statis[n].Sl;
+
+ for (var x = 0; x < jko.Services.length; x++) {
+ if (sucheTemp == jko.Services[x].IdLD && sucheSlTemp == jko.Services[x].Sl) {
+ //console.log("Test: "+sucheTemp+" IdS "+jko.Services[x].IdS);
+ var statusColor = statusDataKue.Statis[n].Co;
+ var shape = stage.find("#line"+jko.Services[x].IdS);
+ shape.stroke(statusColor);
+ shape.strokeWidth(meldungCableThickness/5);
+ }
+ }
+ }
+ }
+ else {
+ console.log("KÜG Layer abgeschaltet");
+ }
+
+ layer.batchDraw();
+
+}
+
+function ulafCableDisable() {
+ var anzahlUlafKabel = jso.Services.length;
+ for (var n = 0; n < anzahlUlafKabel; n++) {
+ var shape = stage.find("#line"+jso.Services[n].IdS);
+ //console.log(jso.Services[n].IdS);
+ shape.hide();
+ layer.batchDraw();
+ }
+ var anzahlKUEKabel = jko.Services.length;
+ for (var n = 0; n < anzahlKUEKabel; n++) {
+ var shape = stage.find("#line"+jko.Services[n].IdS);
+ //console.log(jko.Services[n].IdS);
+ shape.show();
+ layer.batchDraw();
+ }
+}
+
+function kueCableDisable() {
+ var anzahlKUEKabel = jko.Services.length;
+ for (var n = 0; n < anzahlKUEKabel; n++) {
+ var shape = stage.find("#line"+jko.Services[n].IdS);
+ //console.log(jso.Services[n].IdS);
+ shape.hide();
+ layer.batchDraw();
+ }
+ var anzahlUlafKabel = jso.Services.length;
+ for (var n = 0; n < anzahlUlafKabel; n++) {
+ var shape = stage.find("#line"+jso.Services[n].IdS);
+ //console.log(jko.Services[n].IdS);
+ shape.show();
+ layer.batchDraw();
+ }
+}
diff --git a/MessagesMap/js/functions.js b/MessagesMap/js/functions.js
new file mode 100644
index 000000000..22903bd1d
--- /dev/null
+++ b/MessagesMap/js/functions.js
@@ -0,0 +1,463 @@
+function fitStageIntoParentContainer() {
+
+ var container = document.querySelector('#stage-parent');
+
+ // now we need to fit stage into parent
+ var containerWidth = container.offsetWidth;
+ // to do this we need to scale the stage
+ var scale = containerWidth / stageWidth;
+
+ // stage. und layer. Test
+
+ stage.width(stageWidth * scale);
+ stage.height(stageHeight * scale);
+ stage.scale({ x: scale, y: scale });
+
+ stage.on('wheel', (e) => {
+ //getConditions()
+ e.evt.preventDefault();
+ var oldScale = stage.scaleX();
+
+ var pointer = stage.getPointerPosition();
+
+ var mousePointTo = {
+ x: (pointer.x - stage.x()) / oldScale,
+ y: (pointer.y - stage.y()) / oldScale,
+ };
+
+ newScale = e.evt.deltaY > 0 ? oldScale * scaleBy : oldScale / scaleBy; // Mouse Wheel Richtung > oder <
+ scaleRatio = newScale;
+ localStorage.setItem('zoomStage', newScale);
+ //console.log("Scale Wert: "+scaleRatio+" x: "+stage.x() +" y: "+stage.y());
+
+ //console.log("Pointer Wert x: "+pointer.x+" y: "+pointer.y);
+ if (newScale > 0.20 && newScale < 150){
+ stage.scale({ x: newScale, y: newScale });
+ //console.log("ZOOM");
+ var newPos = {
+ x: pointer.x - mousePointTo.x * newScale,
+ y: pointer.y - mousePointTo.y * newScale,
+ };
+
+ stage.position(newPos);
+ var pos = JSON.stringify(stage.position());
+ localStorage.setItem("Position",pos);
+ if(newScale <= 10 && big === 0) {
+ big = 1;
+ setConditions();
+ }
+ if(newScale > 10 && big === 1) {
+ big = 0;
+ setConditions();
+ }
+ }
+
+ layer.batchDraw();
+ });
+
+}
+
+function fitStageReset() {
+ localStorage.removeItem('xStage');
+ localStorage.removeItem('yStage');
+ localStorage.removeItem('Position');
+ localStorage.removeItem('Scale');
+ localStorage.removeItem('zoomStage');
+ localStorage.removeItem('AbsolutePosition');
+ location.reload();
+}
+
+function getStageData() {
+ localStorage.removeItem('xStage');
+ localStorage.removeItem('yStage');
+ localStorage.removeItem('Position');
+ localStorage.removeItem('Scale');
+ localStorage.removeItem('zoomStage');
+ localStorage.removeItem('AbsolutePosition');
+ location.reload();
+}
+
+fitStageIntoParentContainer();
+// adapt the stage on any window resize
+window.addEventListener('resize', fitStageIntoParentContainer);
+
+function getDistance(p1, p2) {
+ return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));
+}
+
+function getCenter(p1, p2) {
+ return {
+ x: (p1.x + p2.x) / 2,
+ y: (p1.y + p2.y) / 2,
+ };
+}
+
+function stageTouchController(){
+ var lastCenter = null;
+ var lastDist = 0;
+
+ stage.on('touchmove', function (e) {
+ stage.draggable(true);
+ stage.listening(false);
+ e.evt.preventDefault();
+ var touch1 = e.evt.touches[0];
+ var touch2 = e.evt.touches[1];
+
+ if (touch1 && touch2) {
+ // if the stage was under Konva's drag&drop
+ // we need to stop it, and implement our own pan logic with two pointers
+ if (stage.isDragging()) {
+ stage.stopDrag();
+ }
+
+ var p1 = {
+ x: touch1.clientX,
+ y: touch1.clientY,
+ };
+ var p2 = {
+ x: touch2.clientX,
+ y: touch2.clientY,
+ };
+
+ if (!lastCenter) {
+ lastCenter = getCenter(p1, p2);
+ return;
+ }
+ var newCenter = getCenter(p1, p2);
+
+ var dist = getDistance(p1, p2);
+
+ if (!lastDist) {
+ lastDist = dist;
+ }
+
+ // local coordinates of center point
+ var pointTo = {
+ x: (newCenter.x - stage.x()) / stage.scaleX(),
+ y: (newCenter.y - stage.y()) / stage.scaleX(),
+ };
+
+ var scale = stage.scaleX() * (dist / lastDist);
+
+ stage.scaleX(scale);
+ stage.scaleY(scale);
+
+ // calculate new position of the stage
+ var dx = newCenter.x - lastCenter.x;
+ var dy = newCenter.y - lastCenter.y;
+
+ var newPos = {
+ x: newCenter.x - pointTo.x * scale + dx,
+ y: newCenter.y - pointTo.y * scale + dy,
+ };
+
+ stage.position(newPos);
+ stage.batchDraw();
+
+ //setConditions();
+ //setConditionsCable();
+
+ lastDist = dist;
+ lastCenter = newCenter;
+ }
+ });
+
+ stage.on('touchend', function () {
+ stage.draggable(false);
+ stage.listening(true);
+ lastDist = 0;
+ lastCenter = null;
+ });
+
+ var container = stage.container();
+
+ // make it focusable
+
+ container.tabIndex = 1;
+ // focus it
+ // also stage will be in focus on its click
+ container.focus();
+
+ const DELTA = 10;
+
+ container.addEventListener('keydown', function (e) {
+ if (e.keyCode === 39 || e.keyCode === 68) {
+ stage.listening(false);
+ stage.x(stage.x() - DELTA);
+ } else if (e.keyCode === 40 || e.keyCode === 83) {
+ stage.listening(false);
+ stage.y(stage.y() - DELTA);
+ } else if (e.keyCode === 37 || e.keyCode === 65) {
+ stage.listening(false);
+ stage.x(stage.x() + DELTA);
+ } else if (e.keyCode === 38 || e.keyCode === 87) {
+ stage.listening(false);
+ stage.y(stage.y() + DELTA);
+ } else {
+ return;
+ }
+ e.preventDefault();
+
+ layer.batchDraw();
+ });
+ container.addEventListener('keyup', function (e) {
+ if (e.keyCode === 39 || e.keyCode === 68) {
+ stage.listening(true);
+ } else if (e.keyCode === 40 || e.keyCode === 83) {
+ stage.listening(true);
+ } else if (e.keyCode === 37 || e.keyCode === 65) {
+ stage.listening(true);
+ } else if (e.keyCode === 38 || e.keyCode === 87) {
+ stage.listening(true);
+ } else {
+ return;
+ }
+ e.preventDefault();
+ layer.batchDraw();
+ });
+}
+
+stageTouchController();
+
+function sideReload() {
+ window.location.reload(false);
+}
+
+function getStationInfos(id,color) {
+ //console.log("getStationInfo Test: "+id+" Farbe: "+color);
+ var res = id.split("station");
+ var stationIdInfo = res[1];
+ //console.log("Stations Listen ID: "+stationIdInfo);
+ var stationName = "";
+ for(i=0;i "+stationName+" Fehlertext TestLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et...
";
+}
+
+function getLineInfos(id,color) {
+ //console.log("getStationInfo Test: "+id+" Farbe: "+color);
+ var res = id.split("line");
+ var lineId = res[1];
+ //console.log("Strang Listen ID: "+lineId);
+ document.getElementById("tooltipTest").innerHTML = " Strang ID: "+jco.Lines[lineId].Short+" Fehlertext TestLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et...
";
+}
+
+dragElement(document.getElementById("mainDataSheet"));
+
+function dragElement(elmnt) {
+ var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
+ if (document.getElementById(elmnt.id + "header")) {
+ // if present, the header is where you move the DIV from:
+ document.getElementById(elmnt.id + "header").onmousedown = dragMouseDown;
+ } else {
+ // otherwise, move the DIV from anywhere inside the DIV:
+ elmnt.onmousedown = dragMouseDown;
+ }
+
+ function dragMouseDown(e) {
+ e = e || window.event;
+ e.preventDefault();
+ // get the mouse cursor position at startup:
+ pos3 = e.clientX;
+ pos4 = e.clientY;
+ document.onmouseup = closeDragElement;
+ // call a function whenever the cursor moves:
+ document.onmousemove = elementDrag;
+ }
+
+ function elementDrag(e) {
+ e = e || window.event;
+ e.preventDefault();
+ // calculate the new cursor position:
+ pos1 = pos3 - e.clientX;
+ pos2 = pos4 - e.clientY;
+ pos3 = e.clientX;
+ pos4 = e.clientY;
+ // set the element's new position:
+ elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
+ elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
+ localStorage.setItem("mainDataSheetX", elmnt.style.left);
+ localStorage.setItem("mainDataSheetY", elmnt.style.top);
+ }
+
+ function closeDragElement() {
+ // stop moving when mouse button is released:
+ document.onmouseup = null;
+ document.onmousemove = null;
+ }
+}
+
+if (localStorage.getItem("mainDataSheetX")) {
+ document.getElementById("mainDataSheet").style.left = localStorage.getItem("mainDataSheetX");
+ document.getElementById("mainDataSheet").style.top = localStorage.getItem("mainDataSheetY");
+}
+
+function mainDataSheetPositionReset() {
+ localStorage.removeItem("mainDataSheetX");
+ localStorage.removeItem("mainDataSheetY");
+ document.getElementById("mainDataSheet").style.left = "";
+ document.getElementById("mainDataSheet").style.right = "25px";
+ document.getElementById("mainDataSheet").style.top = "150px";
+}
+
+document.getElementById("mousovertext").innerHTML = "OGE Masterkarte Version 0.9.7";
+
+setInterval(() => {
+ if (swapShiftKey === 0) {
+ //document.getElementById("loadingMap").innerHTML = "Update der Daten...
";
+ cableReset();
+ }
+}, (updateInterval*60000));
+
+stage.on('dragstart', function () {
+ layer.listening(false);
+ var pos = JSON.stringify(stage.position());
+ localStorage.setItem("Position",pos);
+ var sca = JSON.stringify(stage.scale());
+ localStorage.setItem("Scale",sca);
+ console.log("AUS");
+});
+stage.on('dragend', function () {
+ layer.listening(true);
+ var pos = JSON.stringify(stage.absolutePosition());
+ localStorage.setItem("AbsolutePosition",pos);
+ var pos = JSON.stringify(stage.position());
+ localStorage.setItem("Position",pos);
+ var sca = JSON.stringify(stage.scale());
+ localStorage.setItem("Scale",sca);
+ layer.batchDraw();
+ console.log("EIN");
+});
+
+function stationButtonChange() {
+ var el = document.getElementById("buttonStation");
+ if(el.style.opacity > 0.6) {
+ console.log("Aus");
+ el.style.border = "none";
+ el.style.opacity = 0.4;
+ document.getElementById("ebenenSpeichernButton").style.opacity = 1;
+ }
+ else {
+ console.log("Ein");
+ el.style.border = "2px solid #63de17";
+ el.style.opacity = 1;
+ document.getElementById("ebenenSpeichernButton").style.opacity = 1;
+ }
+}
+
+function ustationButtonChange() {
+
+ var el = document.getElementById("buttonUStation");
+ if(el.style.opacity > 0.6) {
+ console.log("Aus");
+ el.style.border = "none";
+ el.style.opacity = 0.4;
+ document.getElementById("ebenenSpeichernButton").style.opacity = 1;
+ }
+ else {
+ console.log("Ein");
+ el.style.border = "2px solid #63de17";
+ el.style.opacity = 1;
+ document.getElementById("ebenenSpeichernButton").style.opacity = 1;
+ }
+
+}
+
+function pstationButtonChange() {
+
+ var el = document.getElementById("buttonPStation");
+ if(el.style.opacity > 0.6) {
+ console.log("Aus");
+ el.style.border = "none";
+ el.style.opacity = 0.4;
+ document.getElementById("ebenenSpeichernButton").style.opacity = 1;
+ }
+ else {
+ console.log("Ein");
+ el.style.border = "2px solid #63de17";
+ el.style.opacity = 1;
+ document.getElementById("ebenenSpeichernButton").style.opacity = 1;
+ }
+
+}
+
+function diensteButtonChange() {
+
+ var el = document.getElementById("buttonDienste");
+ if(el.style.opacity > 0.6) {
+ console.log("Aus");
+ el.style.border = "none";
+ el.style.opacity = 0.4;
+ document.getElementById("ebenenSpeichernButton").style.opacity = 1;
+ }
+ else {
+ console.log("Ein");
+ el.style.border = "2px solid #63de17";
+ el.style.opacity = 1;
+ document.getElementById("ebenenSpeichernButton").style.opacity = 1;
+ }
+
+}
+
+function kabelButtonChange() {
+
+ var el = document.getElementById("buttonKabel");
+ if(el.style.opacity > 0.6) {
+ console.log("Aus");
+ el.style.border = "none";
+ el.style.opacity = 0.4;
+ document.getElementById("ebenenSpeichernButton").style.opacity = 1;
+ }
+ else {
+ console.log("Ein");
+ el.style.border = "2px solid #63de17";
+ el.style.opacity = 1;
+ document.getElementById("ebenenSpeichernButton").style.opacity = 1;
+ }
+
+}
+
+function ebenenSpeichern() {
+ var ebenenNamen = ["buttonStation","buttonUStation","buttonPStation","buttonDienste","buttonKabel"];
+ var ebenenTemp = [];
+ for (x = 0;x < 5; x++){
+ var el = document.getElementById(ebenenNamen[x]);
+ if(el.style.opacity > 0.6) {
+ ebenenTemp.push(1);
+ }
+ else{
+ ebenenTemp.push(0);
+ }
+ }
+ localStorage.setItem("ebenenLayer",ebenenTemp);
+ cableReset();
+}
+
+function ebenenZuruecksetzen() {
+ var ebenenNamen = ["buttonStation","buttonUStation","buttonPStation","buttonDienste","buttonKabel"];
+ document.getElementById("ebenenSpeichernButton").style.opacity = 0;
+ ebenenLayer = localStorage.getItem("ebenenLayer");
+ ebenenLayer = ebenenLayer.replaceAll(",","");
+ //console.log("Layer "+ebenenLayer);
+ for (x = 0;x < 5; x++){
+ if (parseInt(ebenenLayer[x]) > 0) {
+ //console.log("Layer "+x+" Ein - " +ebenenLayer[x]);
+ var el = document.getElementById(ebenenNamen[x]);
+ el.style.border = "2px solid #63de17";
+ el.style.opacity = 1;
+ }
+ else {
+ //console.log("Layer "+x+" Aus - " +ebenenLayer[x]);
+ var el = document.getElementById(ebenenNamen[x]);
+ el.style.border = "none";
+ el.style.opacity = 0.4;
+ }
+ }
+}
+
+setTimeout(() => {
+ ebenenZuruecksetzen();
+}, 5000);
\ No newline at end of file
diff --git a/MessagesMap/js/hammer.js b/MessagesMap/js/hammer.js
new file mode 100644
index 000000000..30f22c676
--- /dev/null
+++ b/MessagesMap/js/hammer.js
@@ -0,0 +1,2465 @@
+/*! Hammer.JS - v2.0.4 - 2014-09-28
+ * http://hammerjs.github.io/
+ *
+ * Copyright (c) 2014 Jorik Tangelder;
+ * Licensed under the MIT license */
+(function(window, document, exportName, undefined) {
+ 'use strict';
+
+var VENDOR_PREFIXES = ['', 'webkit', 'moz', 'MS', 'ms', 'o'];
+var TEST_ELEMENT = document.createElement('div');
+
+var TYPE_FUNCTION = 'function';
+
+var round = Math.round;
+var abs = Math.abs;
+var now = Date.now;
+
+/**
+ * set a timeout with a given scope
+ * @param {Function} fn
+ * @param {Number} timeout
+ * @param {Object} context
+ * @returns {number}
+ */
+function setTimeoutContext(fn, timeout, context) {
+ return setTimeout(bindFn(fn, context), timeout);
+}
+
+/**
+ * if the argument is an array, we want to execute the fn on each entry
+ * if it aint an array we don't want to do a thing.
+ * this is used by all the methods that accept a single and array argument.
+ * @param {*|Array} arg
+ * @param {String} fn
+ * @param {Object} [context]
+ * @returns {Boolean}
+ */
+
+function invokeArrayArg(arg, fn, context) {
+ if (Array.isArray(arg)) {
+ each(arg, context[fn], context);
+ return true;
+ }
+ return false;
+}
+
+/**
+ * walk objects and arrays
+ * @param {Object} obj
+ * @param {Function} iterator
+ * @param {Object} context
+ */
+function each(obj, iterator, context) {
+ var i;
+
+ if (!obj) {
+ return;
+ }
+
+ if (obj.forEach) {
+ obj.forEach(iterator, context);
+ } else if (obj.length !== undefined) {
+ i = 0;
+ while (i < obj.length) {
+ iterator.call(context, obj[i], i, obj);
+ i++;
+ }
+ } else {
+ for (i in obj) {
+ obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);
+ }
+ }
+}
+
+/**
+ * extend object.
+ * means that properties in dest will be overwritten by the ones in src.
+ * @param {Object} dest
+ * @param {Object} src
+ * @param {Boolean} [merge]
+ * @returns {Object} dest
+ */
+function extend(dest, src, merge) {
+ var keys = Object.keys(src);
+ var i = 0;
+ while (i < keys.length) {
+ if (!merge || (merge && dest[keys[i]] === undefined)) {
+ dest[keys[i]] = src[keys[i]];
+ }
+ i++;
+ }
+ return dest;
+}
+
+/**
+ * merge the values from src in the dest.
+ * means that properties that exist in dest will not be overwritten by src
+ * @param {Object} dest
+ * @param {Object} src
+ * @returns {Object} dest
+ */
+function merge(dest, src) {
+ return extend(dest, src, true);
+}
+
+/**
+ * simple class inheritance
+ * @param {Function} child
+ * @param {Function} base
+ * @param {Object} [properties]
+ */
+function inherit(child, base, properties) {
+ var baseP = base.prototype,
+ childP;
+
+ childP = child.prototype = Object.create(baseP);
+ childP.constructor = child;
+ childP._super = baseP;
+
+ if (properties) {
+ extend(childP, properties);
+ }
+}
+
+/**
+ * simple function bind
+ * @param {Function} fn
+ * @param {Object} context
+ * @returns {Function}
+ */
+function bindFn(fn, context) {
+ return function boundFn() {
+ return fn.apply(context, arguments);
+ };
+}
+
+/**
+ * let a boolean value also be a function that must return a boolean
+ * this first item in args will be used as the context
+ * @param {Boolean|Function} val
+ * @param {Array} [args]
+ * @returns {Boolean}
+ */
+function boolOrFn(val, args) {
+ if (typeof val == TYPE_FUNCTION) {
+ return val.apply(args ? args[0] || undefined : undefined, args);
+ }
+ return val;
+}
+
+/**
+ * use the val2 when val1 is undefined
+ * @param {*} val1
+ * @param {*} val2
+ * @returns {*}
+ */
+function ifUndefined(val1, val2) {
+ return (val1 === undefined) ? val2 : val1;
+}
+
+/**
+ * addEventListener with multiple events at once
+ * @param {EventTarget} target
+ * @param {String} types
+ * @param {Function} handler
+ */
+function addEventListeners(target, types, handler) {
+ each(splitStr(types), function(type) {
+ target.addEventListener(type, handler, false);
+ });
+}
+
+/**
+ * removeEventListener with multiple events at once
+ * @param {EventTarget} target
+ * @param {String} types
+ * @param {Function} handler
+ */
+function removeEventListeners(target, types, handler) {
+ each(splitStr(types), function(type) {
+ target.removeEventListener(type, handler, false);
+ });
+}
+
+/**
+ * find if a node is in the given parent
+ * @method hasParent
+ * @param {HTMLElement} node
+ * @param {HTMLElement} parent
+ * @return {Boolean} found
+ */
+function hasParent(node, parent) {
+ while (node) {
+ if (node == parent) {
+ return true;
+ }
+ node = node.parentNode;
+ }
+ return false;
+}
+
+/**
+ * small indexOf wrapper
+ * @param {String} str
+ * @param {String} find
+ * @returns {Boolean} found
+ */
+function inStr(str, find) {
+ return str.indexOf(find) > -1;
+}
+
+/**
+ * split string on whitespace
+ * @param {String} str
+ * @returns {Array} words
+ */
+function splitStr(str) {
+ return str.trim().split(/\s+/g);
+}
+
+/**
+ * find if a array contains the object using indexOf or a simple polyFill
+ * @param {Array} src
+ * @param {String} find
+ * @param {String} [findByKey]
+ * @return {Boolean|Number} false when not found, or the index
+ */
+function inArray(src, find, findByKey) {
+ if (src.indexOf && !findByKey) {
+ return src.indexOf(find);
+ } else {
+ var i = 0;
+ while (i < src.length) {
+ if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {
+ return i;
+ }
+ i++;
+ }
+ return -1;
+ }
+}
+
+/**
+ * convert array-like objects to real arrays
+ * @param {Object} obj
+ * @returns {Array}
+ */
+function toArray(obj) {
+ return Array.prototype.slice.call(obj, 0);
+}
+
+/**
+ * unique array with objects based on a key (like 'id') or just by the array's value
+ * @param {Array} src [{id:1},{id:2},{id:1}]
+ * @param {String} [key]
+ * @param {Boolean} [sort=False]
+ * @returns {Array} [{id:1},{id:2}]
+ */
+function uniqueArray(src, key, sort) {
+ var results = [];
+ var values = [];
+ var i = 0;
+
+ while (i < src.length) {
+ var val = key ? src[i][key] : src[i];
+ if (inArray(values, val) < 0) {
+ results.push(src[i]);
+ }
+ values[i] = val;
+ i++;
+ }
+
+ if (sort) {
+ if (!key) {
+ results = results.sort();
+ } else {
+ results = results.sort(function sortUniqueArray(a, b) {
+ return a[key] > b[key];
+ });
+ }
+ }
+
+ return results;
+}
+
+/**
+ * get the prefixed property
+ * @param {Object} obj
+ * @param {String} property
+ * @returns {String|Undefined} prefixed
+ */
+function prefixed(obj, property) {
+ var prefix, prop;
+ var camelProp = property[0].toUpperCase() + property.slice(1);
+
+ var i = 0;
+ while (i < VENDOR_PREFIXES.length) {
+ prefix = VENDOR_PREFIXES[i];
+ prop = (prefix) ? prefix + camelProp : property;
+
+ if (prop in obj) {
+ return prop;
+ }
+ i++;
+ }
+ return undefined;
+}
+
+/**
+ * get a unique id
+ * @returns {number} uniqueId
+ */
+var _uniqueId = 1;
+function uniqueId() {
+ return _uniqueId++;
+}
+
+/**
+ * get the window object of an element
+ * @param {HTMLElement} element
+ * @returns {DocumentView|Window}
+ */
+function getWindowForElement(element) {
+ var doc = element.ownerDocument;
+ return (doc.defaultView || doc.parentWindow);
+}
+
+var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;
+
+var SUPPORT_TOUCH = ('ontouchstart' in window);
+var SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;
+var SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);
+
+var INPUT_TYPE_TOUCH = 'touch';
+var INPUT_TYPE_PEN = 'pen';
+var INPUT_TYPE_MOUSE = 'mouse';
+var INPUT_TYPE_KINECT = 'kinect';
+
+var COMPUTE_INTERVAL = 25;
+
+var INPUT_START = 1;
+var INPUT_MOVE = 2;
+var INPUT_END = 4;
+var INPUT_CANCEL = 8;
+
+var DIRECTION_NONE = 1;
+var DIRECTION_LEFT = 2;
+var DIRECTION_RIGHT = 4;
+var DIRECTION_UP = 8;
+var DIRECTION_DOWN = 16;
+
+var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;
+var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;
+var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;
+
+var PROPS_XY = ['x', 'y'];
+var PROPS_CLIENT_XY = ['clientX', 'clientY'];
+
+/**
+ * create new input type manager
+ * @param {Manager} manager
+ * @param {Function} callback
+ * @returns {Input}
+ * @constructor
+ */
+function Input(manager, callback) {
+ var self = this;
+ this.manager = manager;
+ this.callback = callback;
+ this.element = manager.element;
+ this.target = manager.options.inputTarget;
+
+ // smaller wrapper around the handler, for the scope and the enabled state of the manager,
+ // so when disabled the input events are completely bypassed.
+ this.domHandler = function(ev) {
+ if (boolOrFn(manager.options.enable, [manager])) {
+ self.handler(ev);
+ }
+ };
+
+ this.init();
+
+}
+
+Input.prototype = {
+ /**
+ * should handle the inputEvent data and trigger the callback
+ * @virtual
+ */
+ handler: function() { },
+
+ /**
+ * bind the events
+ */
+ init: function() {
+ this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);
+ this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);
+ this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);
+ },
+
+ /**
+ * unbind the events
+ */
+ destroy: function() {
+ this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);
+ this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);
+ this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);
+ }
+};
+
+/**
+ * create new input type manager
+ * called by the Manager constructor
+ * @param {Hammer} manager
+ * @returns {Input}
+ */
+function createInputInstance(manager) {
+ var Type;
+ var inputClass = manager.options.inputClass;
+
+ if (inputClass) {
+ Type = inputClass;
+ } else if (SUPPORT_POINTER_EVENTS) {
+ Type = PointerEventInput;
+ } else if (SUPPORT_ONLY_TOUCH) {
+ Type = TouchInput;
+ } else if (!SUPPORT_TOUCH) {
+ Type = MouseInput;
+ } else {
+ Type = TouchMouseInput;
+ }
+ return new (Type)(manager, inputHandler);
+}
+
+/**
+ * handle input events
+ * @param {Manager} manager
+ * @param {String} eventType
+ * @param {Object} input
+ */
+function inputHandler(manager, eventType, input) {
+ var pointersLen = input.pointers.length;
+ var changedPointersLen = input.changedPointers.length;
+ var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));
+ var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));
+
+ input.isFirst = !!isFirst;
+ input.isFinal = !!isFinal;
+
+ if (isFirst) {
+ manager.session = {};
+ }
+
+ // source event is the normalized value of the domEvents
+ // like 'touchstart, mouseup, pointerdown'
+ input.eventType = eventType;
+
+ // compute scale, rotation etc
+ computeInputData(manager, input);
+
+ // emit secret event
+ manager.emit('hammer.input', input);
+
+ manager.recognize(input);
+ manager.session.prevInput = input;
+}
+
+/**
+ * extend the data with some usable properties like scale, rotate, velocity etc
+ * @param {Object} manager
+ * @param {Object} input
+ */
+function computeInputData(manager, input) {
+ var session = manager.session;
+ var pointers = input.pointers;
+ var pointersLength = pointers.length;
+
+ // store the first input to calculate the distance and direction
+ if (!session.firstInput) {
+ session.firstInput = simpleCloneInputData(input);
+ }
+
+ // to compute scale and rotation we need to store the multiple touches
+ if (pointersLength > 1 && !session.firstMultiple) {
+ session.firstMultiple = simpleCloneInputData(input);
+ } else if (pointersLength === 1) {
+ session.firstMultiple = false;
+ }
+
+ var firstInput = session.firstInput;
+ var firstMultiple = session.firstMultiple;
+ var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;
+
+ var center = input.center = getCenter(pointers);
+ input.timeStamp = now();
+ input.deltaTime = input.timeStamp - firstInput.timeStamp;
+
+ input.angle = getAngle(offsetCenter, center);
+ input.distance = getDistance(offsetCenter, center);
+
+ computeDeltaXY(session, input);
+ input.offsetDirection = getDirection(input.deltaX, input.deltaY);
+
+ input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;
+ input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;
+
+ computeIntervalInputData(session, input);
+
+ // find the correct target
+ var target = manager.element;
+ if (hasParent(input.srcEvent.target, target)) {
+ target = input.srcEvent.target;
+ }
+ input.target = target;
+}
+
+function computeDeltaXY(session, input) {
+ var center = input.center;
+ var offset = session.offsetDelta || {};
+ var prevDelta = session.prevDelta || {};
+ var prevInput = session.prevInput || {};
+
+ if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {
+ prevDelta = session.prevDelta = {
+ x: prevInput.deltaX || 0,
+ y: prevInput.deltaY || 0
+ };
+
+ offset = session.offsetDelta = {
+ x: center.x,
+ y: center.y
+ };
+ }
+
+ input.deltaX = prevDelta.x + (center.x - offset.x);
+ input.deltaY = prevDelta.y + (center.y - offset.y);
+}
+
+/**
+ * velocity is calculated every x ms
+ * @param {Object} session
+ * @param {Object} input
+ */
+function computeIntervalInputData(session, input) {
+ var last = session.lastInterval || input,
+ deltaTime = input.timeStamp - last.timeStamp,
+ velocity, velocityX, velocityY, direction;
+
+ if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {
+ var deltaX = last.deltaX - input.deltaX;
+ var deltaY = last.deltaY - input.deltaY;
+
+ var v = getVelocity(deltaTime, deltaX, deltaY);
+ velocityX = v.x;
+ velocityY = v.y;
+ velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;
+ direction = getDirection(deltaX, deltaY);
+
+ session.lastInterval = input;
+ } else {
+ // use latest velocity info if it doesn't overtake a minimum period
+ velocity = last.velocity;
+ velocityX = last.velocityX;
+ velocityY = last.velocityY;
+ direction = last.direction;
+ }
+
+ input.velocity = velocity;
+ input.velocityX = velocityX;
+ input.velocityY = velocityY;
+ input.direction = direction;
+}
+
+/**
+ * create a simple clone from the input used for storage of firstInput and firstMultiple
+ * @param {Object} input
+ * @returns {Object} clonedInputData
+ */
+function simpleCloneInputData(input) {
+ // make a simple copy of the pointers because we will get a reference if we don't
+ // we only need clientXY for the calculations
+ var pointers = [];
+ var i = 0;
+ while (i < input.pointers.length) {
+ pointers[i] = {
+ clientX: round(input.pointers[i].clientX),
+ clientY: round(input.pointers[i].clientY)
+ };
+ i++;
+ }
+
+ return {
+ timeStamp: now(),
+ pointers: pointers,
+ center: getCenter(pointers),
+ deltaX: input.deltaX,
+ deltaY: input.deltaY
+ };
+}
+
+/**
+ * get the center of all the pointers
+ * @param {Array} pointers
+ * @return {Object} center contains `x` and `y` properties
+ */
+function getCenter(pointers) {
+ var pointersLength = pointers.length;
+
+ // no need to loop when only one touch
+ if (pointersLength === 1) {
+ return {
+ x: round(pointers[0].clientX),
+ y: round(pointers[0].clientY)
+ };
+ }
+
+ var x = 0, y = 0, i = 0;
+ while (i < pointersLength) {
+ x += pointers[i].clientX;
+ y += pointers[i].clientY;
+ i++;
+ }
+
+ return {
+ x: round(x / pointersLength),
+ y: round(y / pointersLength)
+ };
+}
+
+/**
+ * calculate the velocity between two points. unit is in px per ms.
+ * @param {Number} deltaTime
+ * @param {Number} x
+ * @param {Number} y
+ * @return {Object} velocity `x` and `y`
+ */
+function getVelocity(deltaTime, x, y) {
+ return {
+ x: x / deltaTime || 0,
+ y: y / deltaTime || 0
+ };
+}
+
+/**
+ * get the direction between two points
+ * @param {Number} x
+ * @param {Number} y
+ * @return {Number} direction
+ */
+function getDirection(x, y) {
+ if (x === y) {
+ return DIRECTION_NONE;
+ }
+
+ if (abs(x) >= abs(y)) {
+ return x > 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;
+ }
+ return y > 0 ? DIRECTION_UP : DIRECTION_DOWN;
+}
+
+/**
+ * calculate the absolute distance between two points
+ * @param {Object} p1 {x, y}
+ * @param {Object} p2 {x, y}
+ * @param {Array} [props] containing x and y keys
+ * @return {Number} distance
+ */
+function getDistance(p1, p2, props) {
+ if (!props) {
+ props = PROPS_XY;
+ }
+ var x = p2[props[0]] - p1[props[0]],
+ y = p2[props[1]] - p1[props[1]];
+
+ return Math.sqrt((x * x) + (y * y));
+}
+
+/**
+ * calculate the angle between two coordinates
+ * @param {Object} p1
+ * @param {Object} p2
+ * @param {Array} [props] containing x and y keys
+ * @return {Number} angle
+ */
+function getAngle(p1, p2, props) {
+ if (!props) {
+ props = PROPS_XY;
+ }
+ var x = p2[props[0]] - p1[props[0]],
+ y = p2[props[1]] - p1[props[1]];
+ return Math.atan2(y, x) * 180 / Math.PI;
+}
+
+/**
+ * calculate the rotation degrees between two pointersets
+ * @param {Array} start array of pointers
+ * @param {Array} end array of pointers
+ * @return {Number} rotation
+ */
+function getRotation(start, end) {
+ return getAngle(end[1], end[0], PROPS_CLIENT_XY) - getAngle(start[1], start[0], PROPS_CLIENT_XY);
+}
+
+/**
+ * calculate the scale factor between two pointersets
+ * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out
+ * @param {Array} start array of pointers
+ * @param {Array} end array of pointers
+ * @return {Number} scale
+ */
+function getScale(start, end) {
+ return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);
+}
+
+var MOUSE_INPUT_MAP = {
+ mousedown: INPUT_START,
+ mousemove: INPUT_MOVE,
+ mouseup: INPUT_END
+};
+
+var MOUSE_ELEMENT_EVENTS = 'mousedown';
+var MOUSE_WINDOW_EVENTS = 'mousemove mouseup';
+
+/**
+ * Mouse events input
+ * @constructor
+ * @extends Input
+ */
+function MouseInput() {
+ this.evEl = MOUSE_ELEMENT_EVENTS;
+ this.evWin = MOUSE_WINDOW_EVENTS;
+
+ this.allow = true; // used by Input.TouchMouse to disable mouse events
+ this.pressed = false; // mousedown state
+
+ Input.apply(this, arguments);
+}
+
+inherit(MouseInput, Input, {
+ /**
+ * handle mouse events
+ * @param {Object} ev
+ */
+ handler: function MEhandler(ev) {
+ var eventType = MOUSE_INPUT_MAP[ev.type];
+
+ // on start we want to have the left mouse button down
+ if (eventType & INPUT_START && ev.button === 0) {
+ this.pressed = true;
+ }
+
+ if (eventType & INPUT_MOVE && ev.which !== 1) {
+ eventType = INPUT_END;
+ }
+
+ // mouse must be down, and mouse events are allowed (see the TouchMouse input)
+ if (!this.pressed || !this.allow) {
+ return;
+ }
+
+ if (eventType & INPUT_END) {
+ this.pressed = false;
+ }
+
+ this.callback(this.manager, eventType, {
+ pointers: [ev],
+ changedPointers: [ev],
+ pointerType: INPUT_TYPE_MOUSE,
+ srcEvent: ev
+ });
+ }
+});
+
+var POINTER_INPUT_MAP = {
+ pointerdown: INPUT_START,
+ pointermove: INPUT_MOVE,
+ pointerup: INPUT_END,
+ pointercancel: INPUT_CANCEL,
+ pointerout: INPUT_CANCEL
+};
+
+// in IE10 the pointer types is defined as an enum
+var IE10_POINTER_TYPE_ENUM = {
+ 2: INPUT_TYPE_TOUCH,
+ 3: INPUT_TYPE_PEN,
+ 4: INPUT_TYPE_MOUSE,
+ 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816
+};
+
+var POINTER_ELEMENT_EVENTS = 'pointerdown';
+var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';
+
+// IE10 has prefixed support, and case-sensitive
+if (window.MSPointerEvent) {
+ POINTER_ELEMENT_EVENTS = 'MSPointerDown';
+ POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';
+}
+
+/**
+ * Pointer events input
+ * @constructor
+ * @extends Input
+ */
+function PointerEventInput() {
+ this.evEl = POINTER_ELEMENT_EVENTS;
+ this.evWin = POINTER_WINDOW_EVENTS;
+
+ Input.apply(this, arguments);
+
+ this.store = (this.manager.session.pointerEvents = []);
+}
+
+inherit(PointerEventInput, Input, {
+ /**
+ * handle mouse events
+ * @param {Object} ev
+ */
+ handler: function PEhandler(ev) {
+ var store = this.store;
+ var removePointer = false;
+
+ var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');
+ var eventType = POINTER_INPUT_MAP[eventTypeNormalized];
+ var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;
+
+ var isTouch = (pointerType == INPUT_TYPE_TOUCH);
+
+ // get index of the event in the store
+ var storeIndex = inArray(store, ev.pointerId, 'pointerId');
+
+ // start and mouse must be down
+ if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {
+ if (storeIndex < 0) {
+ store.push(ev);
+ storeIndex = store.length - 1;
+ }
+ } else if (eventType & (INPUT_END | INPUT_CANCEL)) {
+ removePointer = true;
+ }
+
+ // it not found, so the pointer hasn't been down (so it's probably a hover)
+ if (storeIndex < 0) {
+ return;
+ }
+
+ // update the event in the store
+ store[storeIndex] = ev;
+
+ this.callback(this.manager, eventType, {
+ pointers: store,
+ changedPointers: [ev],
+ pointerType: pointerType,
+ srcEvent: ev
+ });
+
+ if (removePointer) {
+ // remove from the store
+ store.splice(storeIndex, 1);
+ }
+ }
+});
+
+var SINGLE_TOUCH_INPUT_MAP = {
+ touchstart: INPUT_START,
+ touchmove: INPUT_MOVE,
+ touchend: INPUT_END,
+ touchcancel: INPUT_CANCEL
+};
+
+var SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';
+var SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';
+
+/**
+ * Touch events input
+ * @constructor
+ * @extends Input
+ */
+function SingleTouchInput() {
+ this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;
+ this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;
+ this.started = false;
+
+ Input.apply(this, arguments);
+}
+
+inherit(SingleTouchInput, Input, {
+ handler: function TEhandler(ev) {
+ var type = SINGLE_TOUCH_INPUT_MAP[ev.type];
+
+ // should we handle the touch events?
+ if (type === INPUT_START) {
+ this.started = true;
+ }
+
+ if (!this.started) {
+ return;
+ }
+
+ var touches = normalizeSingleTouches.call(this, ev, type);
+
+ // when done, reset the started state
+ if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {
+ this.started = false;
+ }
+
+ this.callback(this.manager, type, {
+ pointers: touches[0],
+ changedPointers: touches[1],
+ pointerType: INPUT_TYPE_TOUCH,
+ srcEvent: ev
+ });
+ }
+});
+
+/**
+ * @this {TouchInput}
+ * @param {Object} ev
+ * @param {Number} type flag
+ * @returns {undefined|Array} [all, changed]
+ */
+function normalizeSingleTouches(ev, type) {
+ var all = toArray(ev.touches);
+ var changed = toArray(ev.changedTouches);
+
+ if (type & (INPUT_END | INPUT_CANCEL)) {
+ all = uniqueArray(all.concat(changed), 'identifier', true);
+ }
+
+ return [all, changed];
+}
+
+var TOUCH_INPUT_MAP = {
+ touchstart: INPUT_START,
+ touchmove: INPUT_MOVE,
+ touchend: INPUT_END,
+ touchcancel: INPUT_CANCEL
+};
+
+var TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';
+
+/**
+ * Multi-user touch events input
+ * @constructor
+ * @extends Input
+ */
+function TouchInput() {
+ this.evTarget = TOUCH_TARGET_EVENTS;
+ this.targetIds = {};
+
+ Input.apply(this, arguments);
+}
+
+inherit(TouchInput, Input, {
+ handler: function MTEhandler(ev) {
+ var type = TOUCH_INPUT_MAP[ev.type];
+ var touches = getTouches.call(this, ev, type);
+ if (!touches) {
+ return;
+ }
+
+ this.callback(this.manager, type, {
+ pointers: touches[0],
+ changedPointers: touches[1],
+ pointerType: INPUT_TYPE_TOUCH,
+ srcEvent: ev
+ });
+ }
+});
+
+/**
+ * @this {TouchInput}
+ * @param {Object} ev
+ * @param {Number} type flag
+ * @returns {undefined|Array} [all, changed]
+ */
+function getTouches(ev, type) {
+ var allTouches = toArray(ev.touches);
+ var targetIds = this.targetIds;
+
+ // when there is only one touch, the process can be simplified
+ if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {
+ targetIds[allTouches[0].identifier] = true;
+ return [allTouches, allTouches];
+ }
+
+ var i,
+ targetTouches,
+ changedTouches = toArray(ev.changedTouches),
+ changedTargetTouches = [],
+ target = this.target;
+
+ // get target touches from touches
+ targetTouches = allTouches.filter(function(touch) {
+ return hasParent(touch.target, target);
+ });
+
+ // collect touches
+ if (type === INPUT_START) {
+ i = 0;
+ while (i < targetTouches.length) {
+ targetIds[targetTouches[i].identifier] = true;
+ i++;
+ }
+ }
+
+ // filter changed touches to only contain touches that exist in the collected target ids
+ i = 0;
+ while (i < changedTouches.length) {
+ if (targetIds[changedTouches[i].identifier]) {
+ changedTargetTouches.push(changedTouches[i]);
+ }
+
+ // cleanup removed touches
+ if (type & (INPUT_END | INPUT_CANCEL)) {
+ delete targetIds[changedTouches[i].identifier];
+ }
+ i++;
+ }
+
+ if (!changedTargetTouches.length) {
+ return;
+ }
+
+ return [
+ // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'
+ uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),
+ changedTargetTouches
+ ];
+}
+
+/**
+ * Combined touch and mouse input
+ *
+ * Touch has a higher priority then mouse, and while touching no mouse events are allowed.
+ * This because touch devices also emit mouse events while doing a touch.
+ *
+ * @constructor
+ * @extends Input
+ */
+function TouchMouseInput() {
+ Input.apply(this, arguments);
+
+ var handler = bindFn(this.handler, this);
+ this.touch = new TouchInput(this.manager, handler);
+ this.mouse = new MouseInput(this.manager, handler);
+}
+
+inherit(TouchMouseInput, Input, {
+ /**
+ * handle mouse and touch events
+ * @param {Hammer} manager
+ * @param {String} inputEvent
+ * @param {Object} inputData
+ */
+ handler: function TMEhandler(manager, inputEvent, inputData) {
+ var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),
+ isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);
+
+ // when we're in a touch event, so block all upcoming mouse events
+ // most mobile browser also emit mouseevents, right after touchstart
+ if (isTouch) {
+ this.mouse.allow = false;
+ } else if (isMouse && !this.mouse.allow) {
+ return;
+ }
+
+ // reset the allowMouse when we're done
+ if (inputEvent & (INPUT_END | INPUT_CANCEL)) {
+ this.mouse.allow = true;
+ }
+
+ this.callback(manager, inputEvent, inputData);
+ },
+
+ /**
+ * remove the event listeners
+ */
+ destroy: function destroy() {
+ this.touch.destroy();
+ this.mouse.destroy();
+ }
+});
+
+var PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');
+var NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;
+
+// magical touchAction value
+var TOUCH_ACTION_COMPUTE = 'compute';
+var TOUCH_ACTION_AUTO = 'auto';
+var TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented
+var TOUCH_ACTION_NONE = 'none';
+var TOUCH_ACTION_PAN_X = 'pan-x';
+var TOUCH_ACTION_PAN_Y = 'pan-y';
+
+/**
+ * Touch Action
+ * sets the touchAction property or uses the js alternative
+ * @param {Manager} manager
+ * @param {String} value
+ * @constructor
+ */
+function TouchAction(manager, value) {
+ this.manager = manager;
+ this.set(value);
+}
+
+TouchAction.prototype = {
+ /**
+ * set the touchAction value on the element or enable the polyfill
+ * @param {String} value
+ */
+ set: function(value) {
+ // find out the touch-action by the event handlers
+ if (value == TOUCH_ACTION_COMPUTE) {
+ value = this.compute();
+ }
+
+ if (NATIVE_TOUCH_ACTION) {
+ this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;
+ }
+ this.actions = value.toLowerCase().trim();
+ },
+
+ /**
+ * just re-set the touchAction value
+ */
+ update: function() {
+ this.set(this.manager.options.touchAction);
+ },
+
+ /**
+ * compute the value for the touchAction property based on the recognizer's settings
+ * @returns {String} value
+ */
+ compute: function() {
+ var actions = [];
+ each(this.manager.recognizers, function(recognizer) {
+ if (boolOrFn(recognizer.options.enable, [recognizer])) {
+ actions = actions.concat(recognizer.getTouchAction());
+ }
+ });
+ return cleanTouchActions(actions.join(' '));
+ },
+
+ /**
+ * this method is called on each input cycle and provides the preventing of the browser behavior
+ * @param {Object} input
+ */
+ preventDefaults: function(input) {
+ // not needed with native support for the touchAction property
+ if (NATIVE_TOUCH_ACTION) {
+ return;
+ }
+
+ var srcEvent = input.srcEvent;
+ var direction = input.offsetDirection;
+
+ // if the touch action did prevented once this session
+ if (this.manager.session.prevented) {
+ srcEvent.preventDefault();
+ return;
+ }
+
+ var actions = this.actions;
+ var hasNone = inStr(actions, TOUCH_ACTION_NONE);
+ var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);
+ var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);
+
+ if (hasNone ||
+ (hasPanY && direction & DIRECTION_HORIZONTAL) ||
+ (hasPanX && direction & DIRECTION_VERTICAL)) {
+ return this.preventSrc(srcEvent);
+ }
+ },
+
+ /**
+ * call preventDefault to prevent the browser's default behavior (scrolling in most cases)
+ * @param {Object} srcEvent
+ */
+ preventSrc: function(srcEvent) {
+ this.manager.session.prevented = true;
+ srcEvent.preventDefault();
+ }
+};
+
+/**
+ * when the touchActions are collected they are not a valid value, so we need to clean things up. *
+ * @param {String} actions
+ * @returns {*}
+ */
+function cleanTouchActions(actions) {
+ // none
+ if (inStr(actions, TOUCH_ACTION_NONE)) {
+ return TOUCH_ACTION_NONE;
+ }
+
+ var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);
+ var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);
+
+ // pan-x and pan-y can be combined
+ if (hasPanX && hasPanY) {
+ return TOUCH_ACTION_PAN_X + ' ' + TOUCH_ACTION_PAN_Y;
+ }
+
+ // pan-x OR pan-y
+ if (hasPanX || hasPanY) {
+ return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;
+ }
+
+ // manipulation
+ if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {
+ return TOUCH_ACTION_MANIPULATION;
+ }
+
+ return TOUCH_ACTION_AUTO;
+}
+
+/**
+ * Recognizer flow explained; *
+ * All recognizers have the initial state of POSSIBLE when a input session starts.
+ * The definition of a input session is from the first input until the last input, with all it's movement in it. *
+ * Example session for mouse-input: mousedown -> mousemove -> mouseup
+ *
+ * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed
+ * which determines with state it should be.
+ *
+ * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to
+ * POSSIBLE to give it another change on the next cycle.
+ *
+ * Possible
+ * |
+ * +-----+---------------+
+ * | |
+ * +-----+-----+ |
+ * | | |
+ * Failed Cancelled |
+ * +-------+------+
+ * | |
+ * Recognized Began
+ * |
+ * Changed
+ * |
+ * Ended/Recognized
+ */
+var STATE_POSSIBLE = 1;
+var STATE_BEGAN = 2;
+var STATE_CHANGED = 4;
+var STATE_ENDED = 8;
+var STATE_RECOGNIZED = STATE_ENDED;
+var STATE_CANCELLED = 16;
+var STATE_FAILED = 32;
+
+/**
+ * Recognizer
+ * Every recognizer needs to extend from this class.
+ * @constructor
+ * @param {Object} options
+ */
+function Recognizer(options) {
+ this.id = uniqueId();
+
+ this.manager = null;
+ this.options = merge(options || {}, this.defaults);
+
+ // default is enable true
+ this.options.enable = ifUndefined(this.options.enable, true);
+
+ this.state = STATE_POSSIBLE;
+
+ this.simultaneous = {};
+ this.requireFail = [];
+}
+
+Recognizer.prototype = {
+ /**
+ * @virtual
+ * @type {Object}
+ */
+ defaults: {},
+
+ /**
+ * set options
+ * @param {Object} options
+ * @return {Recognizer}
+ */
+ set: function(options) {
+ extend(this.options, options);
+
+ // also update the touchAction, in case something changed about the directions/enabled state
+ this.manager && this.manager.touchAction.update();
+ return this;
+ },
+
+ /**
+ * recognize simultaneous with an other recognizer.
+ * @param {Recognizer} otherRecognizer
+ * @returns {Recognizer} this
+ */
+ recognizeWith: function(otherRecognizer) {
+ if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {
+ return this;
+ }
+
+ var simultaneous = this.simultaneous;
+ otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);
+ if (!simultaneous[otherRecognizer.id]) {
+ simultaneous[otherRecognizer.id] = otherRecognizer;
+ otherRecognizer.recognizeWith(this);
+ }
+ return this;
+ },
+
+ /**
+ * drop the simultaneous link. it doesnt remove the link on the other recognizer.
+ * @param {Recognizer} otherRecognizer
+ * @returns {Recognizer} this
+ */
+ dropRecognizeWith: function(otherRecognizer) {
+ if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {
+ return this;
+ }
+
+ otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);
+ delete this.simultaneous[otherRecognizer.id];
+ return this;
+ },
+
+ /**
+ * recognizer can only run when an other is failing
+ * @param {Recognizer} otherRecognizer
+ * @returns {Recognizer} this
+ */
+ requireFailure: function(otherRecognizer) {
+ if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {
+ return this;
+ }
+
+ var requireFail = this.requireFail;
+ otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);
+ if (inArray(requireFail, otherRecognizer) === -1) {
+ requireFail.push(otherRecognizer);
+ otherRecognizer.requireFailure(this);
+ }
+ return this;
+ },
+
+ /**
+ * drop the requireFailure link. it does not remove the link on the other recognizer.
+ * @param {Recognizer} otherRecognizer
+ * @returns {Recognizer} this
+ */
+ dropRequireFailure: function(otherRecognizer) {
+ if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {
+ return this;
+ }
+
+ otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);
+ var index = inArray(this.requireFail, otherRecognizer);
+ if (index > -1) {
+ this.requireFail.splice(index, 1);
+ }
+ return this;
+ },
+
+ /**
+ * has require failures boolean
+ * @returns {boolean}
+ */
+ hasRequireFailures: function() {
+ return this.requireFail.length > 0;
+ },
+
+ /**
+ * if the recognizer can recognize simultaneous with an other recognizer
+ * @param {Recognizer} otherRecognizer
+ * @returns {Boolean}
+ */
+ canRecognizeWith: function(otherRecognizer) {
+ return !!this.simultaneous[otherRecognizer.id];
+ },
+
+ /**
+ * You should use `tryEmit` instead of `emit` directly to check
+ * that all the needed recognizers has failed before emitting.
+ * @param {Object} input
+ */
+ emit: function(input) {
+ var self = this;
+ var state = this.state;
+
+ function emit(withState) {
+ self.manager.emit(self.options.event + (withState ? stateStr(state) : ''), input);
+ }
+
+ // 'panstart' and 'panmove'
+ if (state < STATE_ENDED) {
+ emit(true);
+ }
+
+ emit(); // simple 'eventName' events
+
+ // panend and pancancel
+ if (state >= STATE_ENDED) {
+ emit(true);
+ }
+ },
+
+ /**
+ * Check that all the require failure recognizers has failed,
+ * if true, it emits a gesture event,
+ * otherwise, setup the state to FAILED.
+ * @param {Object} input
+ */
+ tryEmit: function(input) {
+ if (this.canEmit()) {
+ return this.emit(input);
+ }
+ // it's failing anyway
+ this.state = STATE_FAILED;
+ },
+
+ /**
+ * can we emit?
+ * @returns {boolean}
+ */
+ canEmit: function() {
+ var i = 0;
+ while (i < this.requireFail.length) {
+ if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {
+ return false;
+ }
+ i++;
+ }
+ return true;
+ },
+
+ /**
+ * update the recognizer
+ * @param {Object} inputData
+ */
+ recognize: function(inputData) {
+ // make a new copy of the inputData
+ // so we can change the inputData without messing up the other recognizers
+ var inputDataClone = extend({}, inputData);
+
+ // is is enabled and allow recognizing?
+ if (!boolOrFn(this.options.enable, [this, inputDataClone])) {
+ this.reset();
+ this.state = STATE_FAILED;
+ return;
+ }
+
+ // reset when we've reached the end
+ if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {
+ this.state = STATE_POSSIBLE;
+ }
+
+ this.state = this.process(inputDataClone);
+
+ // the recognizer has recognized a gesture
+ // so trigger an event
+ if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {
+ this.tryEmit(inputDataClone);
+ }
+ },
+
+ /**
+ * return the state of the recognizer
+ * the actual recognizing happens in this method
+ * @virtual
+ * @param {Object} inputData
+ * @returns {Const} STATE
+ */
+ process: function(inputData) { }, // jshint ignore:line
+
+ /**
+ * return the preferred touch-action
+ * @virtual
+ * @returns {Array}
+ */
+ getTouchAction: function() { },
+
+ /**
+ * called when the gesture isn't allowed to recognize
+ * like when another is being recognized or it is disabled
+ * @virtual
+ */
+ reset: function() { }
+};
+
+/**
+ * get a usable string, used as event postfix
+ * @param {Const} state
+ * @returns {String} state
+ */
+function stateStr(state) {
+ if (state & STATE_CANCELLED) {
+ return 'cancel';
+ } else if (state & STATE_ENDED) {
+ return 'end';
+ } else if (state & STATE_CHANGED) {
+ return 'move';
+ } else if (state & STATE_BEGAN) {
+ return 'start';
+ }
+ return '';
+}
+
+/**
+ * direction cons to string
+ * @param {Const} direction
+ * @returns {String}
+ */
+function directionStr(direction) {
+ if (direction == DIRECTION_DOWN) {
+ return 'down';
+ } else if (direction == DIRECTION_UP) {
+ return 'up';
+ } else if (direction == DIRECTION_LEFT) {
+ return 'left';
+ } else if (direction == DIRECTION_RIGHT) {
+ return 'right';
+ }
+ return '';
+}
+
+/**
+ * get a recognizer by name if it is bound to a manager
+ * @param {Recognizer|String} otherRecognizer
+ * @param {Recognizer} recognizer
+ * @returns {Recognizer}
+ */
+function getRecognizerByNameIfManager(otherRecognizer, recognizer) {
+ var manager = recognizer.manager;
+ if (manager) {
+ return manager.get(otherRecognizer);
+ }
+ return otherRecognizer;
+}
+
+/**
+ * This recognizer is just used as a base for the simple attribute recognizers.
+ * @constructor
+ * @extends Recognizer
+ */
+function AttrRecognizer() {
+ Recognizer.apply(this, arguments);
+}
+
+inherit(AttrRecognizer, Recognizer, {
+ /**
+ * @namespace
+ * @memberof AttrRecognizer
+ */
+ defaults: {
+ /**
+ * @type {Number}
+ * @default 1
+ */
+ pointers: 1
+ },
+
+ /**
+ * Used to check if it the recognizer receives valid input, like input.distance > 10.
+ * @memberof AttrRecognizer
+ * @param {Object} input
+ * @returns {Boolean} recognized
+ */
+ attrTest: function(input) {
+ var optionPointers = this.options.pointers;
+ return optionPointers === 0 || input.pointers.length === optionPointers;
+ },
+
+ /**
+ * Process the input and return the state for the recognizer
+ * @memberof AttrRecognizer
+ * @param {Object} input
+ * @returns {*} State
+ */
+ process: function(input) {
+ var state = this.state;
+ var eventType = input.eventType;
+
+ var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);
+ var isValid = this.attrTest(input);
+
+ // on cancel input and we've recognized before, return STATE_CANCELLED
+ if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {
+ return state | STATE_CANCELLED;
+ } else if (isRecognized || isValid) {
+ if (eventType & INPUT_END) {
+ return state | STATE_ENDED;
+ } else if (!(state & STATE_BEGAN)) {
+ return STATE_BEGAN;
+ }
+ return state | STATE_CHANGED;
+ }
+ return STATE_FAILED;
+ }
+});
+
+/**
+ * Pan
+ * Recognized when the pointer is down and moved in the allowed direction.
+ * @constructor
+ * @extends AttrRecognizer
+ */
+function PanRecognizer() {
+ AttrRecognizer.apply(this, arguments);
+
+ this.pX = null;
+ this.pY = null;
+}
+
+inherit(PanRecognizer, AttrRecognizer, {
+ /**
+ * @namespace
+ * @memberof PanRecognizer
+ */
+ defaults: {
+ event: 'pan',
+ threshold: 10,
+ pointers: 1,
+ direction: DIRECTION_ALL
+ },
+
+ getTouchAction: function() {
+ var direction = this.options.direction;
+ var actions = [];
+ if (direction & DIRECTION_HORIZONTAL) {
+ actions.push(TOUCH_ACTION_PAN_Y);
+ }
+ if (direction & DIRECTION_VERTICAL) {
+ actions.push(TOUCH_ACTION_PAN_X);
+ }
+ return actions;
+ },
+
+ directionTest: function(input) {
+ var options = this.options;
+ var hasMoved = true;
+ var distance = input.distance;
+ var direction = input.direction;
+ var x = input.deltaX;
+ var y = input.deltaY;
+
+ // lock to axis?
+ if (!(direction & options.direction)) {
+ if (options.direction & DIRECTION_HORIZONTAL) {
+ direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;
+ hasMoved = x != this.pX;
+ distance = Math.abs(input.deltaX);
+ } else {
+ direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;
+ hasMoved = y != this.pY;
+ distance = Math.abs(input.deltaY);
+ }
+ }
+ input.direction = direction;
+ return hasMoved && distance > options.threshold && direction & options.direction;
+ },
+
+ attrTest: function(input) {
+ return AttrRecognizer.prototype.attrTest.call(this, input) &&
+ (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));
+ },
+
+ emit: function(input) {
+ this.pX = input.deltaX;
+ this.pY = input.deltaY;
+
+ var direction = directionStr(input.direction);
+ if (direction) {
+ this.manager.emit(this.options.event + direction, input);
+ }
+
+ this._super.emit.call(this, input);
+ }
+});
+
+/**
+ * Pinch
+ * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).
+ * @constructor
+ * @extends AttrRecognizer
+ */
+function PinchRecognizer() {
+ AttrRecognizer.apply(this, arguments);
+}
+
+inherit(PinchRecognizer, AttrRecognizer, {
+ /**
+ * @namespace
+ * @memberof PinchRecognizer
+ */
+ defaults: {
+ event: 'pinch',
+ threshold: 0,
+ pointers: 2
+ },
+
+ getTouchAction: function() {
+ return [TOUCH_ACTION_NONE];
+ },
+
+ attrTest: function(input) {
+ return this._super.attrTest.call(this, input) &&
+ (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);
+ },
+
+ emit: function(input) {
+ this._super.emit.call(this, input);
+ if (input.scale !== 1) {
+ var inOut = input.scale < 1 ? 'in' : 'out';
+ this.manager.emit(this.options.event + inOut, input);
+ }
+ }
+});
+
+/**
+ * Press
+ * Recognized when the pointer is down for x ms without any movement.
+ * @constructor
+ * @extends Recognizer
+ */
+function PressRecognizer() {
+ Recognizer.apply(this, arguments);
+
+ this._timer = null;
+ this._input = null;
+}
+
+inherit(PressRecognizer, Recognizer, {
+ /**
+ * @namespace
+ * @memberof PressRecognizer
+ */
+ defaults: {
+ event: 'press',
+ pointers: 1,
+ time: 500, // minimal time of the pointer to be pressed
+ threshold: 5 // a minimal movement is ok, but keep it low
+ },
+
+ getTouchAction: function() {
+ return [TOUCH_ACTION_AUTO];
+ },
+
+ process: function(input) {
+ var options = this.options;
+ var validPointers = input.pointers.length === options.pointers;
+ var validMovement = input.distance < options.threshold;
+ var validTime = input.deltaTime > options.time;
+
+ this._input = input;
+
+ // we only allow little movement
+ // and we've reached an end event, so a tap is possible
+ if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {
+ this.reset();
+ } else if (input.eventType & INPUT_START) {
+ this.reset();
+ this._timer = setTimeoutContext(function() {
+ this.state = STATE_RECOGNIZED;
+ this.tryEmit();
+ }, options.time, this);
+ } else if (input.eventType & INPUT_END) {
+ return STATE_RECOGNIZED;
+ }
+ return STATE_FAILED;
+ },
+
+ reset: function() {
+ clearTimeout(this._timer);
+ },
+
+ emit: function(input) {
+ if (this.state !== STATE_RECOGNIZED) {
+ return;
+ }
+
+ if (input && (input.eventType & INPUT_END)) {
+ this.manager.emit(this.options.event + 'up', input);
+ } else {
+ this._input.timeStamp = now();
+ this.manager.emit(this.options.event, this._input);
+ }
+ }
+});
+
+/**
+ * Rotate
+ * Recognized when two or more pointer are moving in a circular motion.
+ * @constructor
+ * @extends AttrRecognizer
+ */
+function RotateRecognizer() {
+ AttrRecognizer.apply(this, arguments);
+}
+
+inherit(RotateRecognizer, AttrRecognizer, {
+ /**
+ * @namespace
+ * @memberof RotateRecognizer
+ */
+ defaults: {
+ event: 'rotate',
+ threshold: 0,
+ pointers: 2
+ },
+
+ getTouchAction: function() {
+ return [TOUCH_ACTION_NONE];
+ },
+
+ attrTest: function(input) {
+ return this._super.attrTest.call(this, input) &&
+ (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);
+ }
+});
+
+/**
+ * Swipe
+ * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.
+ * @constructor
+ * @extends AttrRecognizer
+ */
+function SwipeRecognizer() {
+ AttrRecognizer.apply(this, arguments);
+}
+
+inherit(SwipeRecognizer, AttrRecognizer, {
+ /**
+ * @namespace
+ * @memberof SwipeRecognizer
+ */
+ defaults: {
+ event: 'swipe',
+ threshold: 10,
+ velocity: 0.65,
+ direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,
+ pointers: 1
+ },
+
+ getTouchAction: function() {
+ return PanRecognizer.prototype.getTouchAction.call(this);
+ },
+
+ attrTest: function(input) {
+ var direction = this.options.direction;
+ var velocity;
+
+ if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {
+ velocity = input.velocity;
+ } else if (direction & DIRECTION_HORIZONTAL) {
+ velocity = input.velocityX;
+ } else if (direction & DIRECTION_VERTICAL) {
+ velocity = input.velocityY;
+ }
+
+ return this._super.attrTest.call(this, input) &&
+ direction & input.direction &&
+ input.distance > this.options.threshold &&
+ abs(velocity) > this.options.velocity && input.eventType & INPUT_END;
+ },
+
+ emit: function(input) {
+ var direction = directionStr(input.direction);
+ if (direction) {
+ this.manager.emit(this.options.event + direction, input);
+ }
+
+ this.manager.emit(this.options.event, input);
+ }
+});
+
+/**
+ * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur
+ * between the given interval and position. The delay option can be used to recognize multi-taps without firing
+ * a single tap.
+ *
+ * The eventData from the emitted event contains the property `tapCount`, which contains the amount of
+ * multi-taps being recognized.
+ * @constructor
+ * @extends Recognizer
+ */
+function TapRecognizer() {
+ Recognizer.apply(this, arguments);
+
+ // previous time and center,
+ // used for tap counting
+ this.pTime = false;
+ this.pCenter = false;
+
+ this._timer = null;
+ this._input = null;
+ this.count = 0;
+}
+
+inherit(TapRecognizer, Recognizer, {
+ /**
+ * @namespace
+ * @memberof PinchRecognizer
+ */
+ defaults: {
+ event: 'tap',
+ pointers: 1,
+ taps: 1,
+ interval: 300, // max time between the multi-tap taps
+ time: 250, // max time of the pointer to be down (like finger on the screen)
+ threshold: 2, // a minimal movement is ok, but keep it low
+ posThreshold: 10 // a multi-tap can be a bit off the initial position
+ },
+
+ getTouchAction: function() {
+ return [TOUCH_ACTION_MANIPULATION];
+ },
+
+ process: function(input) {
+ var options = this.options;
+
+ var validPointers = input.pointers.length === options.pointers;
+ var validMovement = input.distance < options.threshold;
+ var validTouchTime = input.deltaTime < options.time;
+
+ this.reset();
+
+ if ((input.eventType & INPUT_START) && (this.count === 0)) {
+ return this.failTimeout();
+ }
+
+ // we only allow little movement
+ // and we've reached an end event, so a tap is possible
+ if (validMovement && validTouchTime && validPointers) {
+ if (input.eventType != INPUT_END) {
+ return this.failTimeout();
+ }
+
+ var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;
+ var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;
+
+ this.pTime = input.timeStamp;
+ this.pCenter = input.center;
+
+ if (!validMultiTap || !validInterval) {
+ this.count = 1;
+ } else {
+ this.count += 1;
+ }
+
+ this._input = input;
+
+ // if tap count matches we have recognized it,
+ // else it has began recognizing...
+ var tapCount = this.count % options.taps;
+ if (tapCount === 0) {
+ // no failing requirements, immediately trigger the tap event
+ // or wait as long as the multitap interval to trigger
+ if (!this.hasRequireFailures()) {
+ return STATE_RECOGNIZED;
+ } else {
+ this._timer = setTimeoutContext(function() {
+ this.state = STATE_RECOGNIZED;
+ this.tryEmit();
+ }, options.interval, this);
+ return STATE_BEGAN;
+ }
+ }
+ }
+ return STATE_FAILED;
+ },
+
+ failTimeout: function() {
+ this._timer = setTimeoutContext(function() {
+ this.state = STATE_FAILED;
+ }, this.options.interval, this);
+ return STATE_FAILED;
+ },
+
+ reset: function() {
+ clearTimeout(this._timer);
+ },
+
+ emit: function() {
+ if (this.state == STATE_RECOGNIZED ) {
+ this._input.tapCount = this.count;
+ this.manager.emit(this.options.event, this._input);
+ }
+ }
+});
+
+/**
+ * Simple way to create an manager with a default set of recognizers.
+ * @param {HTMLElement} element
+ * @param {Object} [options]
+ * @constructor
+ */
+function Hammer(element, options) {
+ options = options || {};
+ options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);
+ return new Manager(element, options);
+}
+
+/**
+ * @const {string}
+ */
+Hammer.VERSION = '2.0.4';
+
+/**
+ * default settings
+ * @namespace
+ */
+Hammer.defaults = {
+ /**
+ * set if DOM events are being triggered.
+ * But this is slower and unused by simple implementations, so disabled by default.
+ * @type {Boolean}
+ * @default false
+ */
+ domEvents: false,
+
+ /**
+ * The value for the touchAction property/fallback.
+ * When set to `compute` it will magically set the correct value based on the added recognizers.
+ * @type {String}
+ * @default compute
+ */
+ touchAction: TOUCH_ACTION_COMPUTE,
+
+ /**
+ * @type {Boolean}
+ * @default true
+ */
+ enable: true,
+
+ /**
+ * EXPERIMENTAL FEATURE -- can be removed/changed
+ * Change the parent input target element.
+ * If Null, then it is being set the to main element.
+ * @type {Null|EventTarget}
+ * @default null
+ */
+ inputTarget: null,
+
+ /**
+ * force an input class
+ * @type {Null|Function}
+ * @default null
+ */
+ inputClass: null,
+
+ /**
+ * Default recognizer setup when calling `Hammer()`
+ * When creating a new Manager these will be skipped.
+ * @type {Array}
+ */
+ preset: [
+ // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]
+ [RotateRecognizer, { enable: false }],
+ [PinchRecognizer, { enable: false }, ['rotate']],
+ [SwipeRecognizer,{ direction: DIRECTION_HORIZONTAL }],
+ [PanRecognizer, { direction: DIRECTION_HORIZONTAL }, ['swipe']],
+ [TapRecognizer],
+ [TapRecognizer, { event: 'doubletap', taps: 2 }, ['tap']],
+ [PressRecognizer]
+ ],
+
+ /**
+ * Some CSS properties can be used to improve the working of Hammer.
+ * Add them to this method and they will be set when creating a new Manager.
+ * @namespace
+ */
+ cssProps: {
+ /**
+ * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.
+ * @type {String}
+ * @default 'none'
+ */
+ userSelect: 'none',
+
+ /**
+ * Disable the Windows Phone grippers when pressing an element.
+ * @type {String}
+ * @default 'none'
+ */
+ touchSelect: 'none',
+
+ /**
+ * Disables the default callout shown when you touch and hold a touch target.
+ * On iOS, when you touch and hold a touch target such as a link, Safari displays
+ * a callout containing information about the link. This property allows you to disable that callout.
+ * @type {String}
+ * @default 'none'
+ */
+ touchCallout: 'none',
+
+ /**
+ * Specifies whether zooming is enabled. Used by IE10>
+ * @type {String}
+ * @default 'none'
+ */
+ contentZooming: 'none',
+
+ /**
+ * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.
+ * @type {String}
+ * @default 'none'
+ */
+ userDrag: 'none',
+
+ /**
+ * Overrides the highlight color shown when the user taps a link or a JavaScript
+ * clickable element in iOS. This property obeys the alpha value, if specified.
+ * @type {String}
+ * @default 'rgba(0,0,0,0)'
+ */
+ tapHighlightColor: 'rgba(0,0,0,0)'
+ }
+};
+
+var STOP = 1;
+var FORCED_STOP = 2;
+
+/**
+ * Manager
+ * @param {HTMLElement} element
+ * @param {Object} [options]
+ * @constructor
+ */
+function Manager(element, options) {
+ options = options || {};
+
+ this.options = merge(options, Hammer.defaults);
+ this.options.inputTarget = this.options.inputTarget || element;
+
+ this.handlers = {};
+ this.session = {};
+ this.recognizers = [];
+
+ this.element = element;
+ this.input = createInputInstance(this);
+ this.touchAction = new TouchAction(this, this.options.touchAction);
+
+ toggleCssProps(this, true);
+
+ each(options.recognizers, function(item) {
+ var recognizer = this.add(new (item[0])(item[1]));
+ item[2] && recognizer.recognizeWith(item[2]);
+ item[3] && recognizer.requireFailure(item[3]);
+ }, this);
+}
+
+Manager.prototype = {
+ /**
+ * set options
+ * @param {Object} options
+ * @returns {Manager}
+ */
+ set: function(options) {
+ extend(this.options, options);
+
+ // Options that need a little more setup
+ if (options.touchAction) {
+ this.touchAction.update();
+ }
+ if (options.inputTarget) {
+ // Clean up existing event listeners and reinitialize
+ this.input.destroy();
+ this.input.target = options.inputTarget;
+ this.input.init();
+ }
+ return this;
+ },
+
+ /**
+ * stop recognizing for this session.
+ * This session will be discarded, when a new [input]start event is fired.
+ * When forced, the recognizer cycle is stopped immediately.
+ * @param {Boolean} [force]
+ */
+ stop: function(force) {
+ this.session.stopped = force ? FORCED_STOP : STOP;
+ },
+
+ /**
+ * run the recognizers!
+ * called by the inputHandler function on every movement of the pointers (touches)
+ * it walks through all the recognizers and tries to detect the gesture that is being made
+ * @param {Object} inputData
+ */
+ recognize: function(inputData) {
+ var session = this.session;
+ if (session.stopped) {
+ return;
+ }
+
+ // run the touch-action polyfill
+ this.touchAction.preventDefaults(inputData);
+
+ var recognizer;
+ var recognizers = this.recognizers;
+
+ // this holds the recognizer that is being recognized.
+ // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED
+ // if no recognizer is detecting a thing, it is set to `null`
+ var curRecognizer = session.curRecognizer;
+
+ // reset when the last recognizer is recognized
+ // or when we're in a new session
+ if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {
+ curRecognizer = session.curRecognizer = null;
+ }
+
+ var i = 0;
+ while (i < recognizers.length) {
+ recognizer = recognizers[i];
+
+ // find out if we are allowed try to recognize the input for this one.
+ // 1. allow if the session is NOT forced stopped (see the .stop() method)
+ // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one
+ // that is being recognized.
+ // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.
+ // this can be setup with the `recognizeWith()` method on the recognizer.
+ if (session.stopped !== FORCED_STOP && ( // 1
+ !curRecognizer || recognizer == curRecognizer || // 2
+ recognizer.canRecognizeWith(curRecognizer))) { // 3
+ recognizer.recognize(inputData);
+ } else {
+ recognizer.reset();
+ }
+
+ // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the
+ // current active recognizer. but only if we don't already have an active recognizer
+ if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {
+ curRecognizer = session.curRecognizer = recognizer;
+ }
+ i++;
+ }
+ },
+
+ /**
+ * get a recognizer by its event name.
+ * @param {Recognizer|String} recognizer
+ * @returns {Recognizer|Null}
+ */
+ get: function(recognizer) {
+ if (recognizer instanceof Recognizer) {
+ return recognizer;
+ }
+
+ var recognizers = this.recognizers;
+ for (var i = 0; i < recognizers.length; i++) {
+ if (recognizers[i].options.event == recognizer) {
+ return recognizers[i];
+ }
+ }
+ return null;
+ },
+
+ /**
+ * add a recognizer to the manager
+ * existing recognizers with the same event name will be removed
+ * @param {Recognizer} recognizer
+ * @returns {Recognizer|Manager}
+ */
+ add: function(recognizer) {
+ if (invokeArrayArg(recognizer, 'add', this)) {
+ return this;
+ }
+
+ // remove existing
+ var existing = this.get(recognizer.options.event);
+ if (existing) {
+ this.remove(existing);
+ }
+
+ this.recognizers.push(recognizer);
+ recognizer.manager = this;
+
+ this.touchAction.update();
+ return recognizer;
+ },
+
+ /**
+ * remove a recognizer by name or instance
+ * @param {Recognizer|String} recognizer
+ * @returns {Manager}
+ */
+ remove: function(recognizer) {
+ if (invokeArrayArg(recognizer, 'remove', this)) {
+ return this;
+ }
+
+ var recognizers = this.recognizers;
+ recognizer = this.get(recognizer);
+ recognizers.splice(inArray(recognizers, recognizer), 1);
+
+ this.touchAction.update();
+ return this;
+ },
+
+ /**
+ * bind event
+ * @param {String} events
+ * @param {Function} handler
+ * @returns {EventEmitter} this
+ */
+ on: function(events, handler) {
+ var handlers = this.handlers;
+ each(splitStr(events), function(event) {
+ handlers[event] = handlers[event] || [];
+ handlers[event].push(handler);
+ });
+ return this;
+ },
+
+ /**
+ * unbind event, leave emit blank to remove all handlers
+ * @param {String} events
+ * @param {Function} [handler]
+ * @returns {EventEmitter} this
+ */
+ off: function(events, handler) {
+ var handlers = this.handlers;
+ each(splitStr(events), function(event) {
+ if (!handler) {
+ delete handlers[event];
+ } else {
+ handlers[event].splice(inArray(handlers[event], handler), 1);
+ }
+ });
+ return this;
+ },
+
+ /**
+ * emit event to the listeners
+ * @param {String} event
+ * @param {Object} data
+ */
+ emit: function(event, data) {
+ // we also want to trigger dom events
+ if (this.options.domEvents) {
+ triggerDomEvent(event, data);
+ }
+
+ // no handlers, so skip it all
+ var handlers = this.handlers[event] && this.handlers[event].slice();
+ if (!handlers || !handlers.length) {
+ return;
+ }
+
+ data.type = event;
+ data.preventDefault = function() {
+ data.srcEvent.preventDefault();
+ };
+
+ var i = 0;
+ while (i < handlers.length) {
+ handlers[i](data);
+ i++;
+ }
+ },
+
+ /**
+ * destroy the manager and unbinds all events
+ * it doesn't unbind dom events, that is the user own responsibility
+ */
+ destroy: function() {
+ this.element && toggleCssProps(this, false);
+
+ this.handlers = {};
+ this.session = {};
+ this.input.destroy();
+ this.element = null;
+ }
+};
+
+/**
+ * add/remove the css properties as defined in manager.options.cssProps
+ * @param {Manager} manager
+ * @param {Boolean} add
+ */
+function toggleCssProps(manager, add) {
+ var element = manager.element;
+ each(manager.options.cssProps, function(value, name) {
+ element.style[prefixed(element.style, name)] = add ? value : '';
+ });
+}
+
+/**
+ * trigger dom event
+ * @param {String} event
+ * @param {Object} data
+ */
+function triggerDomEvent(event, data) {
+ var gestureEvent = document.createEvent('Event');
+ gestureEvent.initEvent(event, true, true);
+ gestureEvent.gesture = data;
+ data.target.dispatchEvent(gestureEvent);
+}
+
+extend(Hammer, {
+ INPUT_START: INPUT_START,
+ INPUT_MOVE: INPUT_MOVE,
+ INPUT_END: INPUT_END,
+ INPUT_CANCEL: INPUT_CANCEL,
+
+ STATE_POSSIBLE: STATE_POSSIBLE,
+ STATE_BEGAN: STATE_BEGAN,
+ STATE_CHANGED: STATE_CHANGED,
+ STATE_ENDED: STATE_ENDED,
+ STATE_RECOGNIZED: STATE_RECOGNIZED,
+ STATE_CANCELLED: STATE_CANCELLED,
+ STATE_FAILED: STATE_FAILED,
+
+ DIRECTION_NONE: DIRECTION_NONE,
+ DIRECTION_LEFT: DIRECTION_LEFT,
+ DIRECTION_RIGHT: DIRECTION_RIGHT,
+ DIRECTION_UP: DIRECTION_UP,
+ DIRECTION_DOWN: DIRECTION_DOWN,
+ DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,
+ DIRECTION_VERTICAL: DIRECTION_VERTICAL,
+ DIRECTION_ALL: DIRECTION_ALL,
+
+ Manager: Manager,
+ Input: Input,
+ TouchAction: TouchAction,
+
+ TouchInput: TouchInput,
+ MouseInput: MouseInput,
+ PointerEventInput: PointerEventInput,
+ TouchMouseInput: TouchMouseInput,
+ SingleTouchInput: SingleTouchInput,
+
+ Recognizer: Recognizer,
+ AttrRecognizer: AttrRecognizer,
+ Tap: TapRecognizer,
+ Pan: PanRecognizer,
+ Swipe: SwipeRecognizer,
+ Pinch: PinchRecognizer,
+ Rotate: RotateRecognizer,
+ Press: PressRecognizer,
+
+ on: addEventListeners,
+ off: removeEventListeners,
+ each: each,
+ merge: merge,
+ extend: extend,
+ inherit: inherit,
+ bindFn: bindFn,
+ prefixed: prefixed
+});
+
+if (typeof define == TYPE_FUNCTION && define.amd) {
+ define(function() {
+ return Hammer;
+ });
+} else if (typeof module != 'undefined' && module.exports) {
+ module.exports = Hammer;
+} else {
+ window[exportName] = Hammer;
+}
+
+})(window, document, 'Hammer');
+
diff --git a/MessagesMap/js/icons.js b/MessagesMap/js/icons.js
new file mode 100644
index 000000000..027a4866c
--- /dev/null
+++ b/MessagesMap/js/icons.js
@@ -0,0 +1,884 @@
+// OK
+var greenMarkerBox = L.icon({
+ iconUrl: 'img/icons/green-marker-icon.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [-3, -76] // PopUp Anker
+});
+
+// 0
+var redMarkerBox = L.icon({
+ iconUrl: 'img/icons/marker-icon-red-box.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [-3, -76] // PopUp Anker
+});
+
+var yellowMarkerBox = L.icon({
+ iconUrl: 'img/icons/marker-icon-yellow-box.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [-3, -76] // PopUp Anker
+});
+
+var redMarkerBox = L.icon({
+ iconUrl: 'img/icons/marker-icon-lr-critical.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 1 - Eis
+var systemMarker1 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-ac-unit.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker1 = L.icon({
+ iconUrl: 'img/icons/marker-icon-ac-unit.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker1 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-ac-unit.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker1 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-ac-unit.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 2 - Luft
+var systemMarker2 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-air.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker2 = L.icon({
+ iconUrl: 'img/icons/marker-icon-air.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker2 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-air.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker2 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-air.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 3 - Antenne
+var systemMarker3 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-antenna.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker3 = L.icon({
+ iconUrl: 'img/icons/marker-icon-antenna.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker3 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-antenna.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker3 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-antenna.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+// 4 - Baugruppenträger
+var systemMarker4 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-bgt2.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker4 = L.icon({
+ iconUrl: 'img/icons/marker-icon-bgt2.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker4 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-bgt2.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker4 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-bgt2.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 5 - PC Client
+var systemMarker5 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-desktop-windows.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker5 = L.icon({
+ iconUrl: 'img/icons/marker-icon-desktop-windows.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker5 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-desktop-windows.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker5 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-desktop-windows.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 6 - Gerät
+var systemMarker6 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-devices.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker6 = L.icon({
+ iconUrl: 'img/icons/marker-icon-devices.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker6 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-devices.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker6 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-devices.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 7 - KFZ
+var systemMarker7 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker7 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker7 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker7 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+////////////////////////////////////////////////////////////////////////////
+// 8 - Person
+var systemMarker8 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker8 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker8 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker8 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 9 - DNS
+var systemMarker9 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker9 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker9 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker9 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 10 - Monitor Tabelle
+var systemMarker10 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker10 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker10 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker10 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 11 - Techniker
+var systemMarker11 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker11 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker11 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker11 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 12 - Blitz
+var systemMarker12 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker12 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker12 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker12 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 13 - Haus
+var systemMarker13 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker13 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker13 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker13 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 14 - LAN
+var systemMarker14 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker14 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker14 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker14 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 15 - Management
+var systemMarker15 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker15 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker15 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker15 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 16 - Tür
+var systemMarker16 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker16 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker16 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker16 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 17 - Speicher
+var systemMarker17 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker17 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker17 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker17 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 18 - Alarmglocke
+var systemMarker18 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker18 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker18 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker18 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 19 - Telefon
+var redMarkerTelefonBox = L.icon({
+ iconUrl: 'img/icons/marker-icon-phone-talk.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var spaceStationMarker = L.icon({
+ iconUrl: 'img/icons/space-station.png',
+ iconSize: [50, 50], // Größe
+ iconAnchor: [25, 50], // Ankerpunkt
+ popupAnchor: [0, -60] // PopUp Anker
+});
+
+// 20 - Router
+var systemMarker20 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker20 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker20 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker20 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 21 - Sicherheit
+var systemMarker21 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker21 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker21 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker21 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 22 - Einstellungen
+var systemMarker22 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker22 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker22 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker22 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 23 - Messwerk
+var systemMarker23 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker23 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker23 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker23 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 24 - Lager
+var systemMarker24 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker24 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker24 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker24 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 25 - Thermometer
+var systemMarker25 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker25 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker25 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker25 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 26 - Gewitter
+var systemMarker26 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker26 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker26 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker26 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 27 - Kamera
+var systemMarker27 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker27 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker27 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker27 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 28 - Schlüssel
+var systemMarker28 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker28 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker28 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker28 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 29 - Warnung
+var systemMarker29 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker29 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker29 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker29 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+// 30 - Wasser
+var systemMarker30 = L.icon({
+ iconUrl: 'img/icons/system-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var criticalMarker30 = L.icon({
+ iconUrl: 'img/icons/marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var majorMarker30 = L.icon({
+ iconUrl: 'img/icons/major-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
+
+var minorMarker30 = L.icon({
+ iconUrl: 'img/icons/minor-marker-icon-car.png',
+ iconSize: [26, 41], // Größe
+ iconAnchor: [13, 41], // Ankerpunkt
+ popupAnchor: [0, -36] // PopUp Anker
+});
\ No newline at end of file
diff --git a/MessagesMap/js/jquery.min.js b/MessagesMap/js/jquery.min.js
new file mode 100644
index 000000000..e6a051d0d
--- /dev/null
+++ b/MessagesMap/js/jquery.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.2",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML=" ",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML=" ","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML=" ",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;
+return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" a ",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML=" ",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h ]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""," "],legend:[1,""," "],area:[1,""," "],param:[1,""," "],thead:[1,""],tr:[2,""],col:[2,""],td:[3,""],_default:k.htmlSerialize?[0,"",""]:[1,"X","
"]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>$2>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("")).appendTo(b.documentElement),b=(Cb[0].contentWindow||Cb[0].contentDocument).document,b.write(),b.close(),c=Eb(a,b),Cb.detach()),Db[a]=c),c}!function(){var a;k.shrinkWrapBlocks=function(){if(null!=a)return a;a=!1;var b,c,d;return c=y.getElementsByTagName("body")[0],c&&c.style?(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b.appendChild(y.createElement("div")).style.width="5px",a=3!==b.offsetWidth),c.removeChild(d),a):void 0}}();var Gb=/^margin/,Hb=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ib,Jb,Kb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Ib=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||m.contains(a.ownerDocument,a)||(g=m.style(a,b)),Hb.test(g)&&Gb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):y.documentElement.currentStyle&&(Ib=function(a){return a.currentStyle},Jb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Ib(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Hb.test(g)&&!Kb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Lb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h;if(b=y.createElement("div"),b.innerHTML=" a ",d=b.getElementsByTagName("a")[0],c=d&&d.style){c.cssText="float:left;opacity:.5",k.opacity="0.5"===c.opacity,k.cssFloat=!!c.cssFloat,b.style.backgroundClip="content-box",b.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===b.style.backgroundClip,k.boxSizing=""===c.boxSizing||""===c.MozBoxSizing||""===c.WebkitBoxSizing,m.extend(k,{reliableHiddenOffsets:function(){return null==g&&i(),g},boxSizingReliable:function(){return null==f&&i(),f},pixelPosition:function(){return null==e&&i(),e},reliableMarginRight:function(){return null==h&&i(),h}});function i(){var b,c,d,i;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),b.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",e=f=!1,h=!0,a.getComputedStyle&&(e="1%"!==(a.getComputedStyle(b,null)||{}).top,f="4px"===(a.getComputedStyle(b,null)||{width:"4px"}).width,i=b.appendChild(y.createElement("div")),i.style.cssText=b.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",i.style.marginRight=i.style.width="0",b.style.width="1px",h=!parseFloat((a.getComputedStyle(i,null)||{}).marginRight),b.removeChild(i)),b.innerHTML="",i=b.getElementsByTagName("td"),i[0].style.cssText="margin:0;border:0;padding:0;display:none",g=0===i[0].offsetHeight,g&&(i[0].style.display="",i[1].style.display="none",g=0===i[0].offsetHeight),c.removeChild(d))}}}(),m.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Mb=/alpha\([^)]*\)/i,Nb=/opacity\s*=\s*([^)]*)/,Ob=/^(none|table(?!-c[ea]).+)/,Pb=new RegExp("^("+S+")(.*)$","i"),Qb=new RegExp("^([+-])=("+S+")","i"),Rb={position:"absolute",visibility:"hidden",display:"block"},Sb={letterSpacing:"0",fontWeight:"400"},Tb=["Webkit","O","Moz","ms"];function Ub(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Tb.length;while(e--)if(b=Tb[e]+c,b in a)return b;return d}function Vb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=m._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&U(d)&&(f[g]=m._data(d,"olddisplay",Fb(d.nodeName)))):(e=U(d),(c&&"none"!==c||!e)&&m._data(d,"olddisplay",e?c:m.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Wb(a,b,c){var d=Pb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Xb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=m.css(a,c+T[f],!0,e)),d?("content"===c&&(g-=m.css(a,"padding"+T[f],!0,e)),"margin"!==c&&(g-=m.css(a,"border"+T[f]+"Width",!0,e))):(g+=m.css(a,"padding"+T[f],!0,e),"padding"!==c&&(g+=m.css(a,"border"+T[f]+"Width",!0,e)));return g}function Yb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Ib(a),g=k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Jb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Hb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Xb(a,b,c||(g?"border":"content"),d,f)+"px"}m.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Jb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":k.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=m.camelCase(b),i=a.style;if(b=m.cssProps[h]||(m.cssProps[h]=Ub(i,h)),g=m.cssHooks[b]||m.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Qb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(m.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||m.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=m.camelCase(b);return b=m.cssProps[h]||(m.cssProps[h]=Ub(a.style,h)),g=m.cssHooks[b]||m.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Jb(a,b,d)),"normal"===f&&b in Sb&&(f=Sb[b]),""===c||c?(e=parseFloat(f),c===!0||m.isNumeric(e)?e||0:f):f}}),m.each(["height","width"],function(a,b){m.cssHooks[b]={get:function(a,c,d){return c?Ob.test(m.css(a,"display"))&&0===a.offsetWidth?m.swap(a,Rb,function(){return Yb(a,b,d)}):Yb(a,b,d):void 0},set:function(a,c,d){var e=d&&Ib(a);return Wb(a,c,d?Xb(a,b,d,k.boxSizing&&"border-box"===m.css(a,"boxSizing",!1,e),e):0)}}}),k.opacity||(m.cssHooks.opacity={get:function(a,b){return Nb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=m.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===m.trim(f.replace(Mb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Mb.test(f)?f.replace(Mb,e):f+" "+e)}}),m.cssHooks.marginRight=Lb(k.reliableMarginRight,function(a,b){return b?m.swap(a,{display:"inline-block"},Jb,[a,"marginRight"]):void 0}),m.each({margin:"",padding:"",border:"Width"},function(a,b){m.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+T[d]+b]=f[d]||f[d-2]||f[0];return e}},Gb.test(a)||(m.cssHooks[a+b].set=Wb)}),m.fn.extend({css:function(a,b){return V(this,function(a,b,c){var d,e,f={},g=0;if(m.isArray(b)){for(d=Ib(a),e=b.length;e>g;g++)f[b[g]]=m.css(a,b[g],!1,d);return f}return void 0!==c?m.style(a,b,c):m.css(a,b)},a,b,arguments.length>1)},show:function(){return Vb(this,!0)},hide:function(){return Vb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){U(this)?m(this).show():m(this).hide()})}});function Zb(a,b,c,d,e){return new Zb.prototype.init(a,b,c,d,e)
+}m.Tween=Zb,Zb.prototype={constructor:Zb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Zb.propHooks[this.prop];return a&&a.get?a.get(this):Zb.propHooks._default.get(this)},run:function(a){var b,c=Zb.propHooks[this.prop];return this.pos=b=this.options.duration?m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Zb.propHooks._default.set(this),this}},Zb.prototype.init.prototype=Zb.prototype,Zb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Zb.propHooks.scrollTop=Zb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Zb.prototype.init,m.fx.step={};var $b,_b,ac=/^(?:toggle|show|hide)$/,bc=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cc=/queueHooks$/,dc=[ic],ec={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bc.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bc.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fc(){return setTimeout(function(){$b=void 0}),$b=m.now()}function gc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hc(a,b,c){for(var d,e=(ec[b]||[]).concat(ec["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ic(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fb(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fb(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ac.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fb(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hc(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jc(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kc(a,b,c){var d,e,f=0,g=dc.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$b||fc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$b||fc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jc(k,j.opts.specialEasing);g>f;f++)if(d=dc[f].call(j,a,k,j.opts))return d;return m.map(k,hc,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kc,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],ec[c]=ec[c]||[],ec[c].unshift(b)},prefilter:function(a,b){b?dc.unshift(a):dc.push(a)}}),m.speed=function(a,b,c){var d=a&&"object"==typeof a?m.extend({},a):{complete:c||!c&&b||m.isFunction(a)&&a,duration:a,easing:c&&b||b&&!m.isFunction(b)&&b};return d.duration=m.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in m.fx.speeds?m.fx.speeds[d.duration]:m.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){m.isFunction(d.old)&&d.old.call(this),d.queue&&m.dequeue(this,d.queue)},d},m.fn.extend({fadeTo:function(a,b,c,d){return this.filter(U).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=m.isEmptyObject(a),f=m.speed(b,c,d),g=function(){var b=kc(this,m.extend({},a),f);(e||m._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=m.timers,g=m._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&cc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&m.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=m._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=m.timers,g=d?d.length:0;for(c.finish=!0,m.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),m.each(["toggle","show","hide"],function(a,b){var c=m.fn[b];m.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gc(b,!0),a,d,e)}}),m.each({slideDown:gc("show"),slideUp:gc("hide"),slideToggle:gc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){m.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),m.timers=[],m.fx.tick=function(){var a,b=m.timers,c=0;for($b=m.now();ca ",d=b.getElementsByTagName("a")[0],c=y.createElement("select"),e=c.appendChild(y.createElement("option")),a=b.getElementsByTagName("input")[0],d.style.cssText="top:1px",k.getSetAttribute="t"!==b.className,k.style=/top/.test(d.getAttribute("style")),k.hrefNormalized="/a"===d.getAttribute("href"),k.checkOn=!!a.value,k.optSelected=e.selected,k.enctype=!!y.createElement("form").enctype,c.disabled=!0,k.optDisabled=!e.disabled,a=y.createElement("input"),a.setAttribute("value",""),k.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),k.radioValue="t"===a.value}();var lc=/\r/g;m.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=m.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,m(this).val()):a,null==e?e="":"number"==typeof e?e+="":m.isArray(e)&&(e=m.map(e,function(a){return null==a?"":a+""})),b=m.valHooks[this.type]||m.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=m.valHooks[e.type]||m.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(lc,""):null==c?"":c)}}}),m.extend({valHooks:{option:{get:function(a){var b=m.find.attr(a,"value");return null!=b?b:m.trim(m.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&m.nodeName(c.parentNode,"optgroup"))){if(b=m(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=m.makeArray(b),g=e.length;while(g--)if(d=e[g],m.inArray(m.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),m.each(["radio","checkbox"],function(){m.valHooks[this]={set:function(a,b){return m.isArray(b)?a.checked=m.inArray(m(a).val(),b)>=0:void 0}},k.checkOn||(m.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var mc,nc,oc=m.expr.attrHandle,pc=/^(?:checked|selected)$/i,qc=k.getSetAttribute,rc=k.input;m.fn.extend({attr:function(a,b){return V(this,m.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){m.removeAttr(this,a)})}}),m.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===K?m.prop(a,b,c):(1===f&&m.isXMLDoc(a)||(b=b.toLowerCase(),d=m.attrHooks[b]||(m.expr.match.bool.test(b)?nc:mc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=m.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void m.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=m.propFix[c]||c,m.expr.match.bool.test(c)?rc&&qc||!pc.test(c)?a[d]=!1:a[m.camelCase("default-"+c)]=a[d]=!1:m.attr(a,c,""),a.removeAttribute(qc?c:d)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&m.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),nc={set:function(a,b,c){return b===!1?m.removeAttr(a,c):rc&&qc||!pc.test(c)?a.setAttribute(!qc&&m.propFix[c]||c,c):a[m.camelCase("default-"+c)]=a[c]=!0,c}},m.each(m.expr.match.bool.source.match(/\w+/g),function(a,b){var c=oc[b]||m.find.attr;oc[b]=rc&&qc||!pc.test(b)?function(a,b,d){var e,f;return d||(f=oc[b],oc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,oc[b]=f),e}:function(a,b,c){return c?void 0:a[m.camelCase("default-"+b)]?b.toLowerCase():null}}),rc&&qc||(m.attrHooks.value={set:function(a,b,c){return m.nodeName(a,"input")?void(a.defaultValue=b):mc&&mc.set(a,b,c)}}),qc||(mc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},oc.id=oc.name=oc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},m.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:mc.set},m.attrHooks.contenteditable={set:function(a,b,c){mc.set(a,""===b?!1:b,c)}},m.each(["width","height"],function(a,b){m.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),k.style||(m.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var sc=/^(?:input|select|textarea|button|object)$/i,tc=/^(?:a|area)$/i;m.fn.extend({prop:function(a,b){return V(this,m.prop,a,b,arguments.length>1)},removeProp:function(a){return a=m.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),m.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!m.isXMLDoc(a),f&&(b=m.propFix[b]||b,e=m.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=m.find.attr(a,"tabindex");return b?parseInt(b,10):sc.test(a.nodeName)||tc.test(a.nodeName)&&a.href?0:-1}}}}),k.hrefNormalized||m.each(["href","src"],function(a,b){m.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),k.optSelected||(m.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),m.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){m.propFix[this.toLowerCase()]=this}),k.enctype||(m.propFix.enctype="encoding");var uc=/[\t\r\n\f]/g;m.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=m.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(m.isFunction(a))return this.each(function(b){m(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(E)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(uc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?m.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(m.isFunction(a)?function(c){m(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=m(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===K||"boolean"===c)&&(this.className&&m._data(this,"__className__",this.className),this.className=this.className||a===!1?"":m._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(uc," ").indexOf(b)>=0)return!0;return!1}}),m.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){m.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),m.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var vc=m.now(),wc=/\?/,xc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;m.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=m.trim(b+"");return e&&!m.trim(e.replace(xc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():m.error("Invalid JSON: "+b)},m.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||m.error("Invalid XML: "+b),c};var yc,zc,Ac=/#.*$/,Bc=/([?&])_=[^&]*/,Cc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Dc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ec=/^(?:GET|HEAD)$/,Fc=/^\/\//,Gc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Hc={},Ic={},Jc="*/".concat("*");try{zc=location.href}catch(Kc){zc=y.createElement("a"),zc.href="",zc=zc.href}yc=Gc.exec(zc.toLowerCase())||[];function Lc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(m.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Mc(a,b,c,d){var e={},f=a===Ic;function g(h){var i;return e[h]=!0,m.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Nc(a,b){var c,d,e=m.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&m.extend(!0,a,c),a}function Oc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Pc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}m.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:zc,type:"GET",isLocal:Dc.test(yc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Jc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":m.parseJSON,"text xml":m.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Nc(Nc(a,m.ajaxSettings),b):Nc(m.ajaxSettings,a)},ajaxPrefilter:Lc(Hc),ajaxTransport:Lc(Ic),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=m.ajaxSetup({},b),l=k.context||k,n=k.context&&(l.nodeType||l.jquery)?m(l):m.event,o=m.Deferred(),p=m.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Cc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||zc)+"").replace(Ac,"").replace(Fc,yc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=m.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(c=Gc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===yc[1]&&c[2]===yc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(yc[3]||("http:"===yc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=m.param(k.data,k.traditional)),Mc(Hc,k,b,v),2===t)return v;h=m.event&&k.global,h&&0===m.active++&&m.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Ec.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(wc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Bc.test(e)?e.replace(Bc,"$1_="+vc++):e+(wc.test(e)?"&":"?")+"_="+vc++)),k.ifModified&&(m.lastModified[e]&&v.setRequestHeader("If-Modified-Since",m.lastModified[e]),m.etag[e]&&v.setRequestHeader("If-None-Match",m.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Jc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Mc(Ic,k,b,v)){v.readyState=1,h&&n.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Oc(k,v,c)),u=Pc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(m.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(m.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&n.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(n.trigger("ajaxComplete",[v,k]),--m.active||m.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return m.get(a,b,c,"json")},getScript:function(a,b){return m.get(a,void 0,b,"script")}}),m.each(["get","post"],function(a,b){m[b]=function(a,c,d,e){return m.isFunction(c)&&(e=e||d,d=c,c=void 0),m.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),m._evalUrl=function(a){return m.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},m.fn.extend({wrapAll:function(a){if(m.isFunction(a))return this.each(function(b){m(this).wrapAll(a.call(this,b))});if(this[0]){var b=m(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(m.isFunction(a)?function(b){m(this).wrapInner(a.call(this,b))}:function(){var b=m(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=m.isFunction(a);return this.each(function(c){m(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){m.nodeName(this,"body")||m(this).replaceWith(this.childNodes)}).end()}}),m.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!k.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||m.css(a,"display"))},m.expr.filters.visible=function(a){return!m.expr.filters.hidden(a)};var Qc=/%20/g,Rc=/\[\]$/,Sc=/\r?\n/g,Tc=/^(?:submit|button|image|reset|file)$/i,Uc=/^(?:input|select|textarea|keygen)/i;function Vc(a,b,c,d){var e;if(m.isArray(b))m.each(b,function(b,e){c||Rc.test(a)?d(a,e):Vc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==m.type(b))d(a,b);else for(e in b)Vc(a+"["+e+"]",b[e],c,d)}m.param=function(a,b){var c,d=[],e=function(a,b){b=m.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=m.ajaxSettings&&m.ajaxSettings.traditional),m.isArray(a)||a.jquery&&!m.isPlainObject(a))m.each(a,function(){e(this.name,this.value)});else for(c in a)Vc(c,a[c],b,e);return d.join("&").replace(Qc,"+")},m.fn.extend({serialize:function(){return m.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=m.prop(this,"elements");return a?m.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!m(this).is(":disabled")&&Uc.test(this.nodeName)&&!Tc.test(a)&&(this.checked||!W.test(a))}).map(function(a,b){var c=m(this).val();return null==c?null:m.isArray(c)?m.map(c,function(a){return{name:b.name,value:a.replace(Sc,"\r\n")}}):{name:b.name,value:c.replace(Sc,"\r\n")}}).get()}}),m.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Zc()||$c()}:Zc;var Wc=0,Xc={},Yc=m.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Xc)Xc[a](void 0,!0)}),k.cors=!!Yc&&"withCredentials"in Yc,Yc=k.ajax=!!Yc,Yc&&m.ajaxTransport(function(a){if(!a.crossDomain||k.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Wc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Xc[g],b=void 0,f.onreadystatechange=m.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Xc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function Zc(){try{return new a.XMLHttpRequest}catch(b){}}function $c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}m.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return m.globalEval(a),a}}}),m.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),m.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=y.head||m("head")[0]||y.documentElement;return{send:function(d,e){b=y.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var _c=[],ad=/(=)\?(?=&|$)|\?\?/;m.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=_c.pop()||m.expando+"_"+vc++;return this[a]=!0,a}}),m.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(ad.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&ad.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=m.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(ad,"$1"+e):b.jsonp!==!1&&(b.url+=(wc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||m.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,_c.push(e)),g&&m.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),m.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||y;var d=u.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=m.buildFragment([a],b,e),e&&e.length&&m(e).remove(),m.merge([],d.childNodes))};var bd=m.fn.load;m.fn.load=function(a,b,c){if("string"!=typeof a&&bd)return bd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=m.trim(a.slice(h,a.length)),a=a.slice(0,h)),m.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&m.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?m("").append(m.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},m.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){m.fn[b]=function(a){return this.on(b,a)}}),m.expr.filters.animated=function(a){return m.grep(m.timers,function(b){return a===b.elem}).length};var cd=a.document.documentElement;function dd(a){return m.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}m.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=m.css(a,"position"),l=m(a),n={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=m.css(a,"top"),i=m.css(a,"left"),j=("absolute"===k||"fixed"===k)&&m.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),m.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(n.top=b.top-h.top+g),null!=b.left&&(n.left=b.left-h.left+e),"using"in b?b.using.call(a,n):l.css(n)}},m.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){m.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,m.contains(b,e)?(typeof e.getBoundingClientRect!==K&&(d=e.getBoundingClientRect()),c=dd(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===m.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),m.nodeName(a[0],"html")||(c=a.offset()),c.top+=m.css(a[0],"borderTopWidth",!0),c.left+=m.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-m.css(d,"marginTop",!0),left:b.left-c.left-m.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||cd;while(a&&!m.nodeName(a,"html")&&"static"===m.css(a,"position"))a=a.offsetParent;return a||cd})}}),m.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);m.fn[a]=function(d){return V(this,function(a,d,e){var f=dd(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?m(f).scrollLeft():e,c?e:m(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),m.each(["top","left"],function(a,b){m.cssHooks[b]=Lb(k.pixelPosition,function(a,c){return c?(c=Jb(a,b),Hb.test(c)?m(a).position()[b]+"px":c):void 0})}),m.each({Height:"height",Width:"width"},function(a,b){m.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){m.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return V(this,function(b,c,d){var e;return m.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?m.css(b,c,g):m.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),m.fn.size=function(){return this.length},m.fn.andSelf=m.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return m});var ed=a.jQuery,fd=a.$;return m.noConflict=function(b){return a.$===m&&(a.$=fd),b&&a.jQuery===m&&(a.jQuery=ed),m},typeof b===K&&(a.jQuery=a.$=m),m});
diff --git a/MessagesMap/js/konva.js b/MessagesMap/js/konva.js
new file mode 100644
index 000000000..76a6d9385
--- /dev/null
+++ b/MessagesMap/js/konva.js
@@ -0,0 +1,18223 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+ typeof define === 'function' && define.amd ? define(factory) :
+ (global = global || self, global.Konva = factory());
+ }(this, (function () { 'use strict';
+
+ /*
+ * Konva JavaScript Framework v7.0.3
+ * http://konvajs.org/
+ * Licensed under the MIT
+ * Date: Thu Jul 09 2020
+ *
+ * Original work Copyright (C) 2011 - 2013 by Eric Rowell (KineticJS)
+ * Modified work Copyright (C) 2014 - present by Anton Lavrenov (Konva)
+ *
+ * @license
+ */
+ var PI_OVER_180 = Math.PI / 180;
+ /**
+ * @namespace Konva
+ */
+ function detectBrowser() {
+ return (typeof window !== 'undefined' &&
+ // browser case
+ ({}.toString.call(window) === '[object Window]' ||
+ // electron case
+ {}.toString.call(window) === '[object global]'));
+ }
+ var _detectIE = function (ua) {
+ var msie = ua.indexOf('msie ');
+ if (msie > 0) {
+ // IE 10 or older => return version number
+ return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);
+ }
+ var trident = ua.indexOf('trident/');
+ if (trident > 0) {
+ // IE 11 => return version number
+ var rv = ua.indexOf('rv:');
+ return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);
+ }
+ var edge = ua.indexOf('edge/');
+ if (edge > 0) {
+ // Edge (IE 12+) => return version number
+ return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);
+ }
+ // other browser
+ return false;
+ };
+ var _parseUA = function (userAgent) {
+ var ua = userAgent.toLowerCase(),
+ // jQuery UA regex
+ match = /(chrome)[ /]([\w.]+)/.exec(ua) ||
+ /(webkit)[ /]([\w.]+)/.exec(ua) ||
+ /(opera)(?:.*version|)[ /]([\w.]+)/.exec(ua) ||
+ /(msie) ([\w.]+)/.exec(ua) ||
+ (ua.indexOf('compatible') < 0 &&
+ /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua)) ||
+ [],
+ // adding mobile flag as well
+ mobile = !!userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i), ieMobile = !!userAgent.match(/IEMobile/i);
+ return {
+ browser: match[1] || '',
+ version: match[2] || '0',
+ isIE: _detectIE(ua),
+ // adding mobile flab
+ mobile: mobile,
+ ieMobile: ieMobile // If this is true (i.e., WP8), then Konva touch events are executed instead of equivalent Konva mouse events
+ };
+ };
+ var glob = typeof global !== 'undefined'
+ ? global
+ : typeof window !== 'undefined'
+ ? window
+ : typeof WorkerGlobalScope !== 'undefined'
+ ? self
+ : {};
+ var Konva = {
+ _global: glob,
+ version: '7.0.3',
+ isBrowser: detectBrowser(),
+ isUnminified: /param/.test(function (param) { }.toString()),
+ dblClickWindow: 400,
+ getAngle: function (angle) {
+ return Konva.angleDeg ? angle * PI_OVER_180 : angle;
+ },
+ enableTrace: false,
+ _pointerEventsEnabled: false,
+ /**
+ * Should we enable hit detection while dragging? For performance reasons, by default it is false.
+ * But on some rare cases you want to see hit graph and check intersections. Just set it to true.
+ * @property hitOnDragEnabled
+ * @default false
+ * @name hitOnDragEnabled
+ * @memberof Konva
+ * @example
+ * Konva.hitOnDragEnabled = true;
+ */
+ hitOnDragEnabled: false,
+ /**
+ * Should we capture touch events and bind them to the touchstart target? That is how it works on DOM elements.
+ * The case: we touchstart on div1, then touchmove out of that element into another element div2.
+ * DOM will continue trigger touchmove events on div1 (not div2). Because events are "captured" into initial target.
+ * By default Konva do not do that and will trigger touchmove on another element, while pointer is moving.
+ * @property captureTouchEventsEnabled
+ * @default false
+ * @name captureTouchEventsEnabled
+ * @memberof Konva
+ * @example
+ * Konva.captureTouchEventsEnabled = true;
+ */
+ captureTouchEventsEnabled: false,
+ // TODO: move that to stage?
+ listenClickTap: false,
+ inDblClickWindow: false,
+ /**
+ * Global pixel ratio configuration. KonvaJS automatically detect pixel ratio of current device.
+ * But you may override such property, if you want to use your value. Set this value before any components initializations.
+ * @property pixelRatio
+ * @default undefined
+ * @name pixelRatio
+ * @memberof Konva
+ * @example
+ * // before any Konva code:
+ * Konva.pixelRatio = 1;
+ */
+ pixelRatio: undefined,
+ /**
+ * Drag distance property. If you start to drag a node you may want to wait until pointer is moved to some distance from start point,
+ * only then start dragging. Default is 3px.
+ * @property dragDistance
+ * @default 0
+ * @memberof Konva
+ * @example
+ * Konva.dragDistance = 10;
+ */
+ dragDistance: 3,
+ /**
+ * Use degree values for angle properties. You may set this property to false if you want to use radian values.
+ * @property angleDeg
+ * @default true
+ * @memberof Konva
+ * @example
+ * node.rotation(45); // 45 degrees
+ * Konva.angleDeg = false;
+ * node.rotation(Math.PI / 2); // PI/2 radian
+ */
+ angleDeg: true,
+ /**
+ * Show different warnings about errors or wrong API usage
+ * @property showWarnings
+ * @default true
+ * @memberof Konva
+ * @example
+ * Konva.showWarnings = false;
+ */
+ showWarnings: true,
+ /**
+ * Configure what mouse buttons can be used for drag and drop.
+ * Default value is [0] - only left mouse button.
+ * @property dragButtons
+ * @default true
+ * @memberof Konva
+ * @example
+ * // enable left and right mouse buttons
+ * Konva.dragButtons = [0, 2];
+ */
+ dragButtons: [0, 1],
+ /**
+ * returns whether or not drag and drop is currently active
+ * @method
+ * @memberof Konva
+ */
+ isDragging: function () {
+ return Konva['DD'].isDragging;
+ },
+ /**
+ * returns whether or not a drag and drop operation is ready, but may
+ * not necessarily have started
+ * @method
+ * @memberof Konva
+ */
+ isDragReady: function () {
+ return !!Konva['DD'].node;
+ },
+ // user agent
+ UA: _parseUA((glob.navigator && glob.navigator.userAgent) || ''),
+ document: glob.document,
+ // insert Konva into global namespace (window)
+ // it is required for npm packages
+ _injectGlobal: function (Konva) {
+ glob.Konva = Konva;
+ },
+ _parseUA: _parseUA
+ };
+ var _NODES_REGISTRY = {};
+ var _registerNode = function (NodeClass) {
+ _NODES_REGISTRY[NodeClass.prototype.getClassName()] = NodeClass;
+ Konva[NodeClass.prototype.getClassName()] = NodeClass;
+ };
+
+ /**
+ * Collection constructor. Collection extends Array.
+ * This class is used in conjunction with {@link Konva.Container#find}
+ * The good thing about collection is that it has ALL methods of all Konva nodes. Take a look into examples.
+ * @constructor
+ * @memberof Konva
+ * @example
+ *
+ * // find all rectangles and return them as Collection
+ * const shapes = layer.find('Rect');
+ * // fill all rectangles with a single function
+ * shapes.fill('red');
+ */
+ var Collection = /** @class */ (function () {
+ function Collection() {
+ }
+ /**
+ * convert array into a collection
+ * @method
+ * @memberof Konva.Collection
+ * @param {Array} arr
+ */
+ Collection.toCollection = function (arr) {
+ var collection = new Collection(), len = arr.length, n;
+ for (n = 0; n < len; n++) {
+ collection.push(arr[n]);
+ }
+ return collection;
+ };
+ Collection._mapMethod = function (methodName) {
+ Collection.prototype[methodName] = function () {
+ var len = this.length, i;
+ var args = [].slice.call(arguments);
+ for (i = 0; i < len; i++) {
+ this[i][methodName].apply(this[i], args);
+ }
+ return this;
+ };
+ };
+ Collection.mapMethods = function (constructor) {
+ var prot = constructor.prototype;
+ for (var methodName in prot) {
+ Collection._mapMethod(methodName);
+ }
+ };
+ return Collection;
+ }());
+ Collection.prototype = [];
+ /**
+ * iterate through node array and run a function for each node.
+ * The node and index is passed into the function
+ * @method
+ * @name Konva.Collection#each
+ * @param {Function} func
+ * @example
+ * // get all nodes with name foo inside layer, and set x to 10 for each
+ * layer.find('.foo').each(function(shape, n) {
+ * shape.setX(10);
+ * });
+ */
+ Collection.prototype.each = function (func) {
+ for (var n = 0; n < this.length; n++) {
+ func(this[n], n);
+ }
+ };
+ /**
+ * convert collection into an array
+ * @method
+ * @name Konva.Collection#toArray
+ */
+ Collection.prototype.toArray = function () {
+ var arr = [], len = this.length, n;
+ for (n = 0; n < len; n++) {
+ arr.push(this[n]);
+ }
+ return arr;
+ };
+ /*
+ * Last updated November 2011
+ * By Simon Sarris
+ * www.simonsarris.com
+ * sarris@acm.org
+ *
+ * Free to use and distribute at will
+ * So long as you are nice to people, etc
+ */
+ /*
+ * The usage of this class was inspired by some of the work done by a forked
+ * project, KineticJS-Ext by Wappworks, which is based on Simon's Transform
+ * class. Modified by Eric Rowell
+ */
+ /**
+ * Transform constructor.
+ * In most of the cases you don't need to use it in your app. Because it is for internal usage in Konva core.
+ * But there is a documentation for that class in case you still want
+ * to make some manual calculations.
+ * @constructor
+ * @param {Array} [m] Optional six-element matrix
+ * @memberof Konva
+ */
+ var Transform = /** @class */ (function () {
+ function Transform(m) {
+ if (m === void 0) { m = [1, 0, 0, 1, 0, 0]; }
+ this.dirty = false;
+ this.m = (m && m.slice()) || [1, 0, 0, 1, 0, 0];
+ }
+ Transform.prototype.reset = function () {
+ this.m[0] = 1;
+ this.m[1] = 0;
+ this.m[2] = 0;
+ this.m[3] = 1;
+ this.m[4] = 0;
+ this.m[5] = 0;
+ };
+ /**
+ * Copy Konva.Transform object
+ * @method
+ * @name Konva.Transform#copy
+ * @returns {Konva.Transform}
+ * @example
+ * const tr = shape.getTransform().copy()
+ */
+ Transform.prototype.copy = function () {
+ return new Transform(this.m);
+ };
+ Transform.prototype.copyInto = function (tr) {
+ tr.m[0] = this.m[0];
+ tr.m[1] = this.m[1];
+ tr.m[2] = this.m[2];
+ tr.m[3] = this.m[3];
+ tr.m[4] = this.m[4];
+ tr.m[5] = this.m[5];
+ };
+ /**
+ * Transform point
+ * @method
+ * @name Konva.Transform#point
+ * @param {Object} point 2D point(x, y)
+ * @returns {Object} 2D point(x, y)
+ */
+ Transform.prototype.point = function (point) {
+ var m = this.m;
+ return {
+ x: m[0] * point.x + m[2] * point.y + m[4],
+ y: m[1] * point.x + m[3] * point.y + m[5],
+ };
+ };
+ /**
+ * Apply translation
+ * @method
+ * @name Konva.Transform#translate
+ * @param {Number} x
+ * @param {Number} y
+ * @returns {Konva.Transform}
+ */
+ Transform.prototype.translate = function (x, y) {
+ this.m[4] += this.m[0] * x + this.m[2] * y;
+ this.m[5] += this.m[1] * x + this.m[3] * y;
+ return this;
+ };
+ /**
+ * Apply scale
+ * @method
+ * @name Konva.Transform#scale
+ * @param {Number} sx
+ * @param {Number} sy
+ * @returns {Konva.Transform}
+ */
+ Transform.prototype.scale = function (sx, sy) {
+ this.m[0] *= sx;
+ this.m[1] *= sx;
+ this.m[2] *= sy;
+ this.m[3] *= sy;
+ return this;
+ };
+ /**
+ * Apply rotation
+ * @method
+ * @name Konva.Transform#rotate
+ * @param {Number} rad Angle in radians
+ * @returns {Konva.Transform}
+ */
+ Transform.prototype.rotate = function (rad) {
+ var c = Math.cos(rad);
+ var s = Math.sin(rad);
+ var m11 = this.m[0] * c + this.m[2] * s;
+ var m12 = this.m[1] * c + this.m[3] * s;
+ var m21 = this.m[0] * -s + this.m[2] * c;
+ var m22 = this.m[1] * -s + this.m[3] * c;
+ this.m[0] = m11;
+ this.m[1] = m12;
+ this.m[2] = m21;
+ this.m[3] = m22;
+ return this;
+ };
+ /**
+ * Returns the translation
+ * @method
+ * @name Konva.Transform#getTranslation
+ * @returns {Object} 2D point(x, y)
+ */
+ Transform.prototype.getTranslation = function () {
+ return {
+ x: this.m[4],
+ y: this.m[5],
+ };
+ };
+ /**
+ * Apply skew
+ * @method
+ * @name Konva.Transform#skew
+ * @param {Number} sx
+ * @param {Number} sy
+ * @returns {Konva.Transform}
+ */
+ Transform.prototype.skew = function (sx, sy) {
+ var m11 = this.m[0] + this.m[2] * sy;
+ var m12 = this.m[1] + this.m[3] * sy;
+ var m21 = this.m[2] + this.m[0] * sx;
+ var m22 = this.m[3] + this.m[1] * sx;
+ this.m[0] = m11;
+ this.m[1] = m12;
+ this.m[2] = m21;
+ this.m[3] = m22;
+ return this;
+ };
+ /**
+ * Transform multiplication
+ * @method
+ * @name Konva.Transform#multiply
+ * @param {Konva.Transform} matrix
+ * @returns {Konva.Transform}
+ */
+ Transform.prototype.multiply = function (matrix) {
+ var m11 = this.m[0] * matrix.m[0] + this.m[2] * matrix.m[1];
+ var m12 = this.m[1] * matrix.m[0] + this.m[3] * matrix.m[1];
+ var m21 = this.m[0] * matrix.m[2] + this.m[2] * matrix.m[3];
+ var m22 = this.m[1] * matrix.m[2] + this.m[3] * matrix.m[3];
+ var dx = this.m[0] * matrix.m[4] + this.m[2] * matrix.m[5] + this.m[4];
+ var dy = this.m[1] * matrix.m[4] + this.m[3] * matrix.m[5] + this.m[5];
+ this.m[0] = m11;
+ this.m[1] = m12;
+ this.m[2] = m21;
+ this.m[3] = m22;
+ this.m[4] = dx;
+ this.m[5] = dy;
+ return this;
+ };
+ /**
+ * Invert the matrix
+ * @method
+ * @name Konva.Transform#invert
+ * @returns {Konva.Transform}
+ */
+ Transform.prototype.invert = function () {
+ var d = 1 / (this.m[0] * this.m[3] - this.m[1] * this.m[2]);
+ var m0 = this.m[3] * d;
+ var m1 = -this.m[1] * d;
+ var m2 = -this.m[2] * d;
+ var m3 = this.m[0] * d;
+ var m4 = d * (this.m[2] * this.m[5] - this.m[3] * this.m[4]);
+ var m5 = d * (this.m[1] * this.m[4] - this.m[0] * this.m[5]);
+ this.m[0] = m0;
+ this.m[1] = m1;
+ this.m[2] = m2;
+ this.m[3] = m3;
+ this.m[4] = m4;
+ this.m[5] = m5;
+ return this;
+ };
+ /**
+ * return matrix
+ * @method
+ * @name Konva.Transform#getMatrix
+ */
+ Transform.prototype.getMatrix = function () {
+ return this.m;
+ };
+ /**
+ * set to absolute position via translation
+ * @method
+ * @name Konva.Transform#setAbsolutePosition
+ * @returns {Konva.Transform}
+ * @author ericdrowell
+ */
+ Transform.prototype.setAbsolutePosition = function (x, y) {
+ var m0 = this.m[0], m1 = this.m[1], m2 = this.m[2], m3 = this.m[3], m4 = this.m[4], m5 = this.m[5], yt = (m0 * (y - m5) - m1 * (x - m4)) / (m0 * m3 - m1 * m2), xt = (x - m4 - m2 * yt) / m0;
+ return this.translate(xt, yt);
+ };
+ /**
+ * convert transformation matrix back into node's attributes
+ * @method
+ * @name Konva.Transform#decompose
+ * @returns {Konva.Transform}
+ */
+ Transform.prototype.decompose = function () {
+ var a = this.m[0];
+ var b = this.m[1];
+ var c = this.m[2];
+ var d = this.m[3];
+ var e = this.m[4];
+ var f = this.m[5];
+ var delta = a * d - b * c;
+ var result = {
+ x: e,
+ y: f,
+ rotation: 0,
+ scaleX: 0,
+ scaleY: 0,
+ skewX: 0,
+ skewY: 0,
+ };
+ // Apply the QR-like decomposition.
+ if (a != 0 || b != 0) {
+ var r = Math.sqrt(a * a + b * b);
+ result.rotation = b > 0 ? Math.acos(a / r) : -Math.acos(a / r);
+ result.scaleX = r;
+ result.scaleY = delta / r;
+ result.skewX = (a * c + b * d) / delta;
+ result.skewY = 0;
+ }
+ else if (c != 0 || d != 0) {
+ var s = Math.sqrt(c * c + d * d);
+ result.rotation =
+ Math.PI / 2 - (d > 0 ? Math.acos(-c / s) : -Math.acos(c / s));
+ result.scaleX = delta / s;
+ result.scaleY = s;
+ result.skewX = 0;
+ result.skewY = (a * c + b * d) / delta;
+ }
+ result.rotation = Util._getRotation(result.rotation);
+ return result;
+ };
+ return Transform;
+ }());
+ // CONSTANTS
+ var OBJECT_ARRAY = '[object Array]', OBJECT_NUMBER = '[object Number]', OBJECT_STRING = '[object String]', OBJECT_BOOLEAN = '[object Boolean]', PI_OVER_DEG180 = Math.PI / 180, DEG180_OVER_PI = 180 / Math.PI, HASH = '#', EMPTY_STRING = '', ZERO = '0', KONVA_WARNING = 'Konva warning: ', KONVA_ERROR = 'Konva error: ', RGB_PAREN = 'rgb(', COLORS = {
+ aliceblue: [240, 248, 255],
+ antiquewhite: [250, 235, 215],
+ aqua: [0, 255, 255],
+ aquamarine: [127, 255, 212],
+ azure: [240, 255, 255],
+ beige: [245, 245, 220],
+ bisque: [255, 228, 196],
+ black: [0, 0, 0],
+ blanchedalmond: [255, 235, 205],
+ blue: [0, 0, 255],
+ blueviolet: [138, 43, 226],
+ brown: [165, 42, 42],
+ burlywood: [222, 184, 135],
+ cadetblue: [95, 158, 160],
+ chartreuse: [127, 255, 0],
+ chocolate: [210, 105, 30],
+ coral: [255, 127, 80],
+ cornflowerblue: [100, 149, 237],
+ cornsilk: [255, 248, 220],
+ crimson: [220, 20, 60],
+ cyan: [0, 255, 255],
+ darkblue: [0, 0, 139],
+ darkcyan: [0, 139, 139],
+ darkgoldenrod: [184, 132, 11],
+ darkgray: [169, 169, 169],
+ darkgreen: [0, 100, 0],
+ darkgrey: [169, 169, 169],
+ darkkhaki: [189, 183, 107],
+ darkmagenta: [139, 0, 139],
+ darkolivegreen: [85, 107, 47],
+ darkorange: [255, 140, 0],
+ darkorchid: [153, 50, 204],
+ darkred: [139, 0, 0],
+ darksalmon: [233, 150, 122],
+ darkseagreen: [143, 188, 143],
+ darkslateblue: [72, 61, 139],
+ darkslategray: [47, 79, 79],
+ darkslategrey: [47, 79, 79],
+ darkturquoise: [0, 206, 209],
+ darkviolet: [148, 0, 211],
+ deeppink: [255, 20, 147],
+ deepskyblue: [0, 191, 255],
+ dimgray: [105, 105, 105],
+ dimgrey: [105, 105, 105],
+ dodgerblue: [30, 144, 255],
+ firebrick: [178, 34, 34],
+ floralwhite: [255, 255, 240],
+ forestgreen: [34, 139, 34],
+ fuchsia: [255, 0, 255],
+ gainsboro: [220, 220, 220],
+ ghostwhite: [248, 248, 255],
+ gold: [255, 215, 0],
+ goldenrod: [218, 165, 32],
+ gray: [128, 128, 128],
+ green: [0, 128, 0],
+ greenyellow: [173, 255, 47],
+ grey: [128, 128, 128],
+ honeydew: [240, 255, 240],
+ hotpink: [255, 105, 180],
+ indianred: [205, 92, 92],
+ indigo: [75, 0, 130],
+ ivory: [255, 255, 240],
+ khaki: [240, 230, 140],
+ lavender: [230, 230, 250],
+ lavenderblush: [255, 240, 245],
+ lawngreen: [124, 252, 0],
+ lemonchiffon: [255, 250, 205],
+ lightblue: [173, 216, 230],
+ lightcoral: [240, 128, 128],
+ lightcyan: [224, 255, 255],
+ lightgoldenrodyellow: [250, 250, 210],
+ lightgray: [211, 211, 211],
+ lightgreen: [144, 238, 144],
+ lightgrey: [211, 211, 211],
+ lightpink: [255, 182, 193],
+ lightsalmon: [255, 160, 122],
+ lightseagreen: [32, 178, 170],
+ lightskyblue: [135, 206, 250],
+ lightslategray: [119, 136, 153],
+ lightslategrey: [119, 136, 153],
+ lightsteelblue: [176, 196, 222],
+ lightyellow: [255, 255, 224],
+ lime: [0, 255, 0],
+ limegreen: [50, 205, 50],
+ linen: [250, 240, 230],
+ magenta: [255, 0, 255],
+ maroon: [128, 0, 0],
+ mediumaquamarine: [102, 205, 170],
+ mediumblue: [0, 0, 205],
+ mediumorchid: [186, 85, 211],
+ mediumpurple: [147, 112, 219],
+ mediumseagreen: [60, 179, 113],
+ mediumslateblue: [123, 104, 238],
+ mediumspringgreen: [0, 250, 154],
+ mediumturquoise: [72, 209, 204],
+ mediumvioletred: [199, 21, 133],
+ midnightblue: [25, 25, 112],
+ mintcream: [245, 255, 250],
+ mistyrose: [255, 228, 225],
+ moccasin: [255, 228, 181],
+ navajowhite: [255, 222, 173],
+ navy: [0, 0, 128],
+ oldlace: [253, 245, 230],
+ olive: [128, 128, 0],
+ olivedrab: [107, 142, 35],
+ orange: [255, 165, 0],
+ orangered: [255, 69, 0],
+ orchid: [218, 112, 214],
+ palegoldenrod: [238, 232, 170],
+ palegreen: [152, 251, 152],
+ paleturquoise: [175, 238, 238],
+ palevioletred: [219, 112, 147],
+ papayawhip: [255, 239, 213],
+ peachpuff: [255, 218, 185],
+ peru: [205, 133, 63],
+ pink: [255, 192, 203],
+ plum: [221, 160, 203],
+ powderblue: [176, 224, 230],
+ purple: [128, 0, 128],
+ rebeccapurple: [102, 51, 153],
+ red: [255, 0, 0],
+ rosybrown: [188, 143, 143],
+ royalblue: [65, 105, 225],
+ saddlebrown: [139, 69, 19],
+ salmon: [250, 128, 114],
+ sandybrown: [244, 164, 96],
+ seagreen: [46, 139, 87],
+ seashell: [255, 245, 238],
+ sienna: [160, 82, 45],
+ silver: [192, 192, 192],
+ skyblue: [135, 206, 235],
+ slateblue: [106, 90, 205],
+ slategray: [119, 128, 144],
+ slategrey: [119, 128, 144],
+ snow: [255, 255, 250],
+ springgreen: [0, 255, 127],
+ steelblue: [70, 130, 180],
+ tan: [210, 180, 140],
+ teal: [0, 128, 128],
+ thistle: [216, 191, 216],
+ transparent: [255, 255, 255, 0],
+ tomato: [255, 99, 71],
+ turquoise: [64, 224, 208],
+ violet: [238, 130, 238],
+ wheat: [245, 222, 179],
+ white: [255, 255, 255],
+ whitesmoke: [245, 245, 245],
+ yellow: [255, 255, 0],
+ yellowgreen: [154, 205, 5],
+ }, RGB_REGEX = /rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/, animQueue = [];
+ /**
+ * @namespace Util
+ * @memberof Konva
+ */
+ var Util = {
+ /*
+ * cherry-picked utilities from underscore.js
+ */
+ _isElement: function (obj) {
+ return !!(obj && obj.nodeType == 1);
+ },
+ _isFunction: function (obj) {
+ return !!(obj && obj.constructor && obj.call && obj.apply);
+ },
+ _isPlainObject: function (obj) {
+ return !!obj && obj.constructor === Object;
+ },
+ _isArray: function (obj) {
+ return Object.prototype.toString.call(obj) === OBJECT_ARRAY;
+ },
+ _isNumber: function (obj) {
+ return (Object.prototype.toString.call(obj) === OBJECT_NUMBER &&
+ !isNaN(obj) &&
+ isFinite(obj));
+ },
+ _isString: function (obj) {
+ return Object.prototype.toString.call(obj) === OBJECT_STRING;
+ },
+ _isBoolean: function (obj) {
+ return Object.prototype.toString.call(obj) === OBJECT_BOOLEAN;
+ },
+ // arrays are objects too
+ isObject: function (val) {
+ return val instanceof Object;
+ },
+ isValidSelector: function (selector) {
+ if (typeof selector !== 'string') {
+ return false;
+ }
+ var firstChar = selector[0];
+ return (firstChar === '#' ||
+ firstChar === '.' ||
+ firstChar === firstChar.toUpperCase());
+ },
+ _sign: function (number) {
+ if (number === 0) {
+ return 0;
+ }
+ if (number > 0) {
+ return 1;
+ }
+ else {
+ return -1;
+ }
+ },
+ requestAnimFrame: function (callback) {
+ animQueue.push(callback);
+ if (animQueue.length === 1) {
+ requestAnimationFrame(function () {
+ var queue = animQueue;
+ animQueue = [];
+ queue.forEach(function (cb) {
+ cb();
+ });
+ });
+ }
+ },
+ createCanvasElement: function () {
+ var canvas = document.createElement('canvas');
+ // on some environments canvas.style is readonly
+ try {
+ canvas.style = canvas.style || {};
+ }
+ catch (e) { }
+ return canvas;
+ },
+ createImageElement: function () {
+ return document.createElement('img');
+ },
+ _isInDocument: function (el) {
+ while ((el = el.parentNode)) {
+ if (el == document) {
+ return true;
+ }
+ }
+ return false;
+ },
+ _simplifyArray: function (arr) {
+ var retArr = [], len = arr.length, util = Util, n, val;
+ for (n = 0; n < len; n++) {
+ val = arr[n];
+ if (util._isNumber(val)) {
+ val = Math.round(val * 1000) / 1000;
+ }
+ else if (!util._isString(val)) {
+ val = val.toString();
+ }
+ retArr.push(val);
+ }
+ return retArr;
+ },
+ /*
+ * arg can be an image object or image data
+ */
+ _urlToImage: function (url, callback) {
+ // if arg is a string, then it's a data url
+ var imageObj = new glob.Image();
+ imageObj.onload = function () {
+ callback(imageObj);
+ };
+ imageObj.src = url;
+ },
+ _rgbToHex: function (r, g, b) {
+ return ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);
+ },
+ _hexToRgb: function (hex) {
+ hex = hex.replace(HASH, EMPTY_STRING);
+ var bigint = parseInt(hex, 16);
+ return {
+ r: (bigint >> 16) & 255,
+ g: (bigint >> 8) & 255,
+ b: bigint & 255,
+ };
+ },
+ /**
+ * return random hex color
+ * @method
+ * @memberof Konva.Util
+ * @example
+ * shape.fill(Konva.Util.getRandomColor());
+ */
+ getRandomColor: function () {
+ var randColor = ((Math.random() * 0xffffff) << 0).toString(16);
+ while (randColor.length < 6) {
+ randColor = ZERO + randColor;
+ }
+ return HASH + randColor;
+ },
+ get: function (val, def) {
+ if (val === undefined) {
+ return def;
+ }
+ else {
+ return val;
+ }
+ },
+ /**
+ * get RGB components of a color
+ * @method
+ * @memberof Konva.Util
+ * @param {String} color
+ * @example
+ * // each of the following examples return {r:0, g:0, b:255}
+ * var rgb = Konva.Util.getRGB('blue');
+ * var rgb = Konva.Util.getRGB('#0000ff');
+ * var rgb = Konva.Util.getRGB('rgb(0,0,255)');
+ */
+ getRGB: function (color) {
+ var rgb;
+ // color string
+ if (color in COLORS) {
+ rgb = COLORS[color];
+ return {
+ r: rgb[0],
+ g: rgb[1],
+ b: rgb[2],
+ };
+ }
+ else if (color[0] === HASH) {
+ // hex
+ return this._hexToRgb(color.substring(1));
+ }
+ else if (color.substr(0, 4) === RGB_PAREN) {
+ // rgb string
+ rgb = RGB_REGEX.exec(color.replace(/ /g, ''));
+ return {
+ r: parseInt(rgb[1], 10),
+ g: parseInt(rgb[2], 10),
+ b: parseInt(rgb[3], 10),
+ };
+ }
+ else {
+ // default
+ return {
+ r: 0,
+ g: 0,
+ b: 0,
+ };
+ }
+ },
+ // convert any color string to RGBA object
+ // from https://github.com/component/color-parser
+ colorToRGBA: function (str) {
+ str = str || 'black';
+ return (Util._namedColorToRBA(str) ||
+ Util._hex3ColorToRGBA(str) ||
+ Util._hex6ColorToRGBA(str) ||
+ Util._rgbColorToRGBA(str) ||
+ Util._rgbaColorToRGBA(str) ||
+ Util._hslColorToRGBA(str));
+ },
+ // Parse named css color. Like "green"
+ _namedColorToRBA: function (str) {
+ var c = COLORS[str.toLowerCase()];
+ if (!c) {
+ return null;
+ }
+ return {
+ r: c[0],
+ g: c[1],
+ b: c[2],
+ a: 1,
+ };
+ },
+ // Parse rgb(n, n, n)
+ _rgbColorToRGBA: function (str) {
+ if (str.indexOf('rgb(') === 0) {
+ str = str.match(/rgb\(([^)]+)\)/)[1];
+ var parts = str.split(/ *, */).map(Number);
+ return {
+ r: parts[0],
+ g: parts[1],
+ b: parts[2],
+ a: 1,
+ };
+ }
+ },
+ // Parse rgba(n, n, n, n)
+ _rgbaColorToRGBA: function (str) {
+ if (str.indexOf('rgba(') === 0) {
+ str = str.match(/rgba\(([^)]+)\)/)[1];
+ var parts = str.split(/ *, */).map(Number);
+ return {
+ r: parts[0],
+ g: parts[1],
+ b: parts[2],
+ a: parts[3],
+ };
+ }
+ },
+ // Parse #nnnnnn
+ _hex6ColorToRGBA: function (str) {
+ if (str[0] === '#' && str.length === 7) {
+ return {
+ r: parseInt(str.slice(1, 3), 16),
+ g: parseInt(str.slice(3, 5), 16),
+ b: parseInt(str.slice(5, 7), 16),
+ a: 1,
+ };
+ }
+ },
+ // Parse #nnn
+ _hex3ColorToRGBA: function (str) {
+ if (str[0] === '#' && str.length === 4) {
+ return {
+ r: parseInt(str[1] + str[1], 16),
+ g: parseInt(str[2] + str[2], 16),
+ b: parseInt(str[3] + str[3], 16),
+ a: 1,
+ };
+ }
+ },
+ // Code adapted from https://github.com/Qix-/color-convert/blob/master/conversions.js#L244
+ _hslColorToRGBA: function (str) {
+ // Check hsl() format
+ if (/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.test(str)) {
+ // Extract h, s, l
+ var _a = /hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(str), _ = _a[0], hsl = _a.slice(1);
+ var h = Number(hsl[0]) / 360;
+ var s = Number(hsl[1]) / 100;
+ var l = Number(hsl[2]) / 100;
+ var t2 = void 0;
+ var t3 = void 0;
+ var val = void 0;
+ if (s === 0) {
+ val = l * 255;
+ return {
+ r: Math.round(val),
+ g: Math.round(val),
+ b: Math.round(val),
+ a: 1,
+ };
+ }
+ if (l < 0.5) {
+ t2 = l * (1 + s);
+ }
+ else {
+ t2 = l + s - l * s;
+ }
+ var t1 = 2 * l - t2;
+ var rgb = [0, 0, 0];
+ for (var i = 0; i < 3; i++) {
+ t3 = h + (1 / 3) * -(i - 1);
+ if (t3 < 0) {
+ t3++;
+ }
+ if (t3 > 1) {
+ t3--;
+ }
+ if (6 * t3 < 1) {
+ val = t1 + (t2 - t1) * 6 * t3;
+ }
+ else if (2 * t3 < 1) {
+ val = t2;
+ }
+ else if (3 * t3 < 2) {
+ val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
+ }
+ else {
+ val = t1;
+ }
+ rgb[i] = val * 255;
+ }
+ return {
+ r: Math.round(rgb[0]),
+ g: Math.round(rgb[1]),
+ b: Math.round(rgb[2]),
+ a: 1,
+ };
+ }
+ },
+ /**
+ * check intersection of two client rectangles
+ * @method
+ * @memberof Konva.Util
+ * @param {Object} r1 - { x, y, width, height } client rectangle
+ * @param {Object} r2 - { x, y, width, height } client rectangle
+ * @example
+ * const overlapping = Konva.Util.haveIntersection(shape1.getClientRect(), shape2.getClientRect());
+ */
+ haveIntersection: function (r1, r2) {
+ return !(r2.x > r1.x + r1.width ||
+ r2.x + r2.width < r1.x ||
+ r2.y > r1.y + r1.height ||
+ r2.y + r2.height < r1.y);
+ },
+ cloneObject: function (obj) {
+ var retObj = {};
+ for (var key in obj) {
+ if (this._isPlainObject(obj[key])) {
+ retObj[key] = this.cloneObject(obj[key]);
+ }
+ else if (this._isArray(obj[key])) {
+ retObj[key] = this.cloneArray(obj[key]);
+ }
+ else {
+ retObj[key] = obj[key];
+ }
+ }
+ return retObj;
+ },
+ cloneArray: function (arr) {
+ return arr.slice(0);
+ },
+ _degToRad: function (deg) {
+ return deg * PI_OVER_DEG180;
+ },
+ _radToDeg: function (rad) {
+ return rad * DEG180_OVER_PI;
+ },
+ _getRotation: function (radians) {
+ return Konva.angleDeg ? Util._radToDeg(radians) : radians;
+ },
+ _capitalize: function (str) {
+ return str.charAt(0).toUpperCase() + str.slice(1);
+ },
+ throw: function (str) {
+ throw new Error(KONVA_ERROR + str);
+ },
+ error: function (str) {
+ console.error(KONVA_ERROR + str);
+ },
+ warn: function (str) {
+ if (!Konva.showWarnings) {
+ return;
+ }
+ console.warn(KONVA_WARNING + str);
+ },
+ extend: function (child, parent) {
+ function Ctor() {
+ this.constructor = child;
+ }
+ Ctor.prototype = parent.prototype;
+ var oldProto = child.prototype;
+ child.prototype = new Ctor();
+ for (var key in oldProto) {
+ if (oldProto.hasOwnProperty(key)) {
+ child.prototype[key] = oldProto[key];
+ }
+ }
+ child.__super__ = parent.prototype;
+ // create reference to parent
+ child.super = parent;
+ },
+ _getControlPoints: function (x0, y0, x1, y1, x2, y2, t) {
+ var d01 = Math.sqrt(Math.pow(x1 - x0, 2) + Math.pow(y1 - y0, 2)), d12 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)), fa = (t * d01) / (d01 + d12), fb = (t * d12) / (d01 + d12), p1x = x1 - fa * (x2 - x0), p1y = y1 - fa * (y2 - y0), p2x = x1 + fb * (x2 - x0), p2y = y1 + fb * (y2 - y0);
+ return [p1x, p1y, p2x, p2y];
+ },
+ _expandPoints: function (p, tension) {
+ var len = p.length, allPoints = [], n, cp;
+ for (n = 2; n < len - 2; n += 2) {
+ cp = Util._getControlPoints(p[n - 2], p[n - 1], p[n], p[n + 1], p[n + 2], p[n + 3], tension);
+ allPoints.push(cp[0]);
+ allPoints.push(cp[1]);
+ allPoints.push(p[n]);
+ allPoints.push(p[n + 1]);
+ allPoints.push(cp[2]);
+ allPoints.push(cp[3]);
+ }
+ return allPoints;
+ },
+ each: function (obj, func) {
+ for (var key in obj) {
+ func(key, obj[key]);
+ }
+ },
+ _inRange: function (val, left, right) {
+ return left <= val && val < right;
+ },
+ _getProjectionToSegment: function (x1, y1, x2, y2, x3, y3) {
+ var x, y, dist;
+ var pd2 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
+ if (pd2 == 0) {
+ x = x1;
+ y = y1;
+ dist = (x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2);
+ }
+ else {
+ var u = ((x3 - x1) * (x2 - x1) + (y3 - y1) * (y2 - y1)) / pd2;
+ if (u < 0) {
+ x = x1;
+ y = y1;
+ dist = (x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3);
+ }
+ else if (u > 1.0) {
+ x = x2;
+ y = y2;
+ dist = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);
+ }
+ else {
+ x = x1 + u * (x2 - x1);
+ y = y1 + u * (y2 - y1);
+ dist = (x - x3) * (x - x3) + (y - y3) * (y - y3);
+ }
+ }
+ return [x, y, dist];
+ },
+ // line as array of points.
+ // line might be closed
+ _getProjectionToLine: function (pt, line, isClosed) {
+ var pc = Util.cloneObject(pt);
+ var dist = Number.MAX_VALUE;
+ line.forEach(function (p1, i) {
+ if (!isClosed && i === line.length - 1) {
+ return;
+ }
+ var p2 = line[(i + 1) % line.length];
+ var proj = Util._getProjectionToSegment(p1.x, p1.y, p2.x, p2.y, pt.x, pt.y);
+ var px = proj[0], py = proj[1], pdist = proj[2];
+ if (pdist < dist) {
+ pc.x = px;
+ pc.y = py;
+ dist = pdist;
+ }
+ });
+ return pc;
+ },
+ _prepareArrayForTween: function (startArray, endArray, isClosed) {
+ var n, start = [], end = [];
+ if (startArray.length > endArray.length) {
+ var temp = endArray;
+ endArray = startArray;
+ startArray = temp;
+ }
+ for (n = 0; n < startArray.length; n += 2) {
+ start.push({
+ x: startArray[n],
+ y: startArray[n + 1],
+ });
+ }
+ for (n = 0; n < endArray.length; n += 2) {
+ end.push({
+ x: endArray[n],
+ y: endArray[n + 1],
+ });
+ }
+ var newStart = [];
+ end.forEach(function (point) {
+ var pr = Util._getProjectionToLine(point, start, isClosed);
+ newStart.push(pr.x);
+ newStart.push(pr.y);
+ });
+ return newStart;
+ },
+ _prepareToStringify: function (obj) {
+ var desc;
+ obj.visitedByCircularReferenceRemoval = true;
+ for (var key in obj) {
+ if (!(obj.hasOwnProperty(key) && obj[key] && typeof obj[key] == 'object')) {
+ continue;
+ }
+ desc = Object.getOwnPropertyDescriptor(obj, key);
+ if (obj[key].visitedByCircularReferenceRemoval ||
+ Util._isElement(obj[key])) {
+ if (desc.configurable) {
+ delete obj[key];
+ }
+ else {
+ return null;
+ }
+ }
+ else if (Util._prepareToStringify(obj[key]) === null) {
+ if (desc.configurable) {
+ delete obj[key];
+ }
+ else {
+ return null;
+ }
+ }
+ }
+ delete obj.visitedByCircularReferenceRemoval;
+ return obj;
+ },
+ // very simplified version of Object.assign
+ _assign: function (target, source) {
+ for (var key in source) {
+ target[key] = source[key];
+ }
+ return target;
+ },
+ _getFirstPointerId: function (evt) {
+ if (!evt.touches) {
+ // fake id for mouse
+ return 999;
+ }
+ else {
+ return evt.changedTouches[0].identifier;
+ }
+ },
+ };
+
+ function _formatValue(val) {
+ if (Util._isString(val)) {
+ return '"' + val + '"';
+ }
+ if (Object.prototype.toString.call(val) === '[object Number]') {
+ return val;
+ }
+ if (Util._isBoolean(val)) {
+ return val;
+ }
+ return Object.prototype.toString.call(val);
+ }
+ function RGBComponent(val) {
+ if (val > 255) {
+ return 255;
+ }
+ else if (val < 0) {
+ return 0;
+ }
+ return Math.round(val);
+ }
+ function getNumberValidator() {
+ if (Konva.isUnminified) {
+ return function (val, attr) {
+ if (!Util._isNumber(val)) {
+ Util.warn(_formatValue(val) +
+ ' is a not valid value for "' +
+ attr +
+ '" attribute. The value should be a number.');
+ }
+ return val;
+ };
+ }
+ }
+ function getNumberOrAutoValidator() {
+ if (Konva.isUnminified) {
+ return function (val, attr) {
+ var isNumber = Util._isNumber(val);
+ var isAuto = val === 'auto';
+ if (!(isNumber || isAuto)) {
+ Util.warn(_formatValue(val) +
+ ' is a not valid value for "' +
+ attr +
+ '" attribute. The value should be a number or "auto".');
+ }
+ return val;
+ };
+ }
+ }
+ function getStringValidator() {
+ if (Konva.isUnminified) {
+ return function (val, attr) {
+ if (!Util._isString(val)) {
+ Util.warn(_formatValue(val) +
+ ' is a not valid value for "' +
+ attr +
+ '" attribute. The value should be a string.');
+ }
+ return val;
+ };
+ }
+ }
+ function getNumberArrayValidator() {
+ if (Konva.isUnminified) {
+ return function (val, attr) {
+ if (!Util._isArray(val)) {
+ Util.warn(_formatValue(val) +
+ ' is a not valid value for "' +
+ attr +
+ '" attribute. The value should be a array of numbers.');
+ }
+ else {
+ val.forEach(function (item) {
+ if (!Util._isNumber(item)) {
+ Util.warn('"' +
+ attr +
+ '" attribute has non numeric element ' +
+ item +
+ '. Make sure that all elements are numbers.');
+ }
+ });
+ }
+ return val;
+ };
+ }
+ }
+ function getBooleanValidator() {
+ if (Konva.isUnminified) {
+ return function (val, attr) {
+ var isBool = val === true || val === false;
+ if (!isBool) {
+ Util.warn(_formatValue(val) +
+ ' is a not valid value for "' +
+ attr +
+ '" attribute. The value should be a boolean.');
+ }
+ return val;
+ };
+ }
+ }
+ function getComponentValidator(components) {
+ if (Konva.isUnminified) {
+ return function (val, attr) {
+ if (!Util.isObject(val)) {
+ Util.warn(_formatValue(val) +
+ ' is a not valid value for "' +
+ attr +
+ '" attribute. The value should be an object with properties ' +
+ components);
+ }
+ return val;
+ };
+ }
+ }
+
+ var GET = 'get', SET = 'set';
+ var Factory = {
+ addGetterSetter: function (constructor, attr, def, validator, after) {
+ Factory.addGetter(constructor, attr, def);
+ Factory.addSetter(constructor, attr, validator, after);
+ Factory.addOverloadedGetterSetter(constructor, attr);
+ },
+ addGetter: function (constructor, attr, def) {
+ var method = GET + Util._capitalize(attr);
+ constructor.prototype[method] =
+ constructor.prototype[method] ||
+ function () {
+ var val = this.attrs[attr];
+ return val === undefined ? def : val;
+ };
+ },
+ addSetter: function (constructor, attr, validator, after) {
+ var method = SET + Util._capitalize(attr);
+ if (!constructor.prototype[method]) {
+ Factory.overWriteSetter(constructor, attr, validator, after);
+ }
+ },
+ overWriteSetter: function (constructor, attr, validator, after) {
+ var method = SET + Util._capitalize(attr);
+ constructor.prototype[method] = function (val) {
+ if (validator && val !== undefined && val !== null) {
+ val = validator.call(this, val, attr);
+ }
+ this._setAttr(attr, val);
+ if (after) {
+ after.call(this);
+ }
+ return this;
+ };
+ },
+ addComponentsGetterSetter: function (constructor, attr, components, validator, after) {
+ var len = components.length, capitalize = Util._capitalize, getter = GET + capitalize(attr), setter = SET + capitalize(attr), n, component;
+ // getter
+ constructor.prototype[getter] = function () {
+ var ret = {};
+ for (n = 0; n < len; n++) {
+ component = components[n];
+ ret[component] = this.getAttr(attr + capitalize(component));
+ }
+ return ret;
+ };
+ var basicValidator = getComponentValidator(components);
+ // setter
+ constructor.prototype[setter] = function (val) {
+ var oldVal = this.attrs[attr], key;
+ if (validator) {
+ val = validator.call(this, val);
+ }
+ if (basicValidator) {
+ basicValidator.call(this, val, attr);
+ }
+ for (key in val) {
+ if (!val.hasOwnProperty(key)) {
+ continue;
+ }
+ this._setAttr(attr + capitalize(key), val[key]);
+ }
+ this._fireChangeEvent(attr, oldVal, val);
+ if (after) {
+ after.call(this);
+ }
+ return this;
+ };
+ Factory.addOverloadedGetterSetter(constructor, attr);
+ },
+ addOverloadedGetterSetter: function (constructor, attr) {
+ var capitalizedAttr = Util._capitalize(attr), setter = SET + capitalizedAttr, getter = GET + capitalizedAttr;
+ constructor.prototype[attr] = function () {
+ // setting
+ if (arguments.length) {
+ this[setter](arguments[0]);
+ return this;
+ }
+ // getting
+ return this[getter]();
+ };
+ },
+ addDeprecatedGetterSetter: function (constructor, attr, def, validator) {
+ Util.error('Adding deprecated ' + attr);
+ var method = GET + Util._capitalize(attr);
+ var message = attr +
+ ' property is deprecated and will be removed soon. Look at Konva change log for more information.';
+ constructor.prototype[method] = function () {
+ Util.error(message);
+ var val = this.attrs[attr];
+ return val === undefined ? def : val;
+ };
+ Factory.addSetter(constructor, attr, validator, function () {
+ Util.error(message);
+ });
+ Factory.addOverloadedGetterSetter(constructor, attr);
+ },
+ backCompat: function (constructor, methods) {
+ Util.each(methods, function (oldMethodName, newMethodName) {
+ var method = constructor.prototype[newMethodName];
+ var oldGetter = GET + Util._capitalize(oldMethodName);
+ var oldSetter = SET + Util._capitalize(oldMethodName);
+ function deprecated() {
+ method.apply(this, arguments);
+ Util.error('"' +
+ oldMethodName +
+ '" method is deprecated and will be removed soon. Use ""' +
+ newMethodName +
+ '" instead.');
+ }
+ constructor.prototype[oldMethodName] = deprecated;
+ constructor.prototype[oldGetter] = deprecated;
+ constructor.prototype[oldSetter] = deprecated;
+ });
+ },
+ afterSetFilter: function () {
+ this._filterUpToDate = false;
+ },
+ };
+
+ /*! *****************************************************************************
+ Copyright (c) Microsoft Corporation. All rights reserved.
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+ this file except in compliance with the License. You may obtain a copy of the
+ License at http://www.apache.org/licenses/LICENSE-2.0
+
+ THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
+ WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
+ MERCHANTABLITY OR NON-INFRINGEMENT.
+
+ See the Apache Version 2.0 License for specific language governing permissions
+ and limitations under the License.
+ ***************************************************************************** */
+ /* global Reflect, Promise */
+
+ var extendStatics = function(d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+
+ function __extends(d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ }
+
+ var __assign = function() {
+ __assign = Object.assign || function __assign(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+ };
+
+ function __spreadArrays() {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+ }
+
+ var COMMA = ',', OPEN_PAREN = '(', CLOSE_PAREN = ')', OPEN_PAREN_BRACKET = '([', CLOSE_BRACKET_PAREN = '])', SEMICOLON = ';', DOUBLE_PAREN = '()',
+ // EMPTY_STRING = '',
+ EQUALS = '=',
+ // SET = 'set',
+ CONTEXT_METHODS = [
+ 'arc',
+ 'arcTo',
+ 'beginPath',
+ 'bezierCurveTo',
+ 'clearRect',
+ 'clip',
+ 'closePath',
+ 'createLinearGradient',
+ 'createPattern',
+ 'createRadialGradient',
+ 'drawImage',
+ 'ellipse',
+ 'fill',
+ 'fillText',
+ 'getImageData',
+ 'createImageData',
+ 'lineTo',
+ 'moveTo',
+ 'putImageData',
+ 'quadraticCurveTo',
+ 'rect',
+ 'restore',
+ 'rotate',
+ 'save',
+ 'scale',
+ 'setLineDash',
+ 'setTransform',
+ 'stroke',
+ 'strokeText',
+ 'transform',
+ 'translate',
+ ];
+ var CONTEXT_PROPERTIES = [
+ 'fillStyle',
+ 'strokeStyle',
+ 'shadowColor',
+ 'shadowBlur',
+ 'shadowOffsetX',
+ 'shadowOffsetY',
+ 'lineCap',
+ 'lineDashOffset',
+ 'lineJoin',
+ 'lineWidth',
+ 'miterLimit',
+ 'font',
+ 'textAlign',
+ 'textBaseline',
+ 'globalAlpha',
+ 'globalCompositeOperation',
+ 'imageSmoothingEnabled',
+ ];
+ var traceArrMax = 100;
+ /**
+ * Konva wrapper around native 2d canvas context. It has almost the same API of 2d context with some additional functions.
+ * With core Konva shapes you don't need to use this object. But you will use it if you want to create
+ * a [custom shape](/docs/react/Custom_Shape.html) or a [custom hit regions](/docs/events/Custom_Hit_Region.html).
+ * For full information about each 2d context API use [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D)
+ * @constructor
+ * @memberof Konva
+ * @example
+ * const rect = new Konva.Shape({
+ * fill: 'red',
+ * width: 100,
+ * height: 100,
+ * sceneFunc: (ctx, shape) => {
+ * // ctx - is context wrapper
+ * // shape - is instance of Konva.Shape, so it equals to "rect" variable
+ * ctx.rect(0, 0, shape.getAttr('width'), shape.getAttr('height'));
+ *
+ * // automatically fill shape from props and draw hit region
+ * ctx.fillStrokeShape(shape);
+ * }
+ * })
+ */
+ var Context = /** @class */ (function () {
+ function Context(canvas) {
+ this.canvas = canvas;
+ this._context = canvas._canvas.getContext('2d');
+ if (Konva.enableTrace) {
+ this.traceArr = [];
+ this._enableTrace();
+ }
+ }
+ /**
+ * fill shape
+ * @method
+ * @name Konva.Context#fillShape
+ * @param {Konva.Shape} shape
+ */
+ Context.prototype.fillShape = function (shape) {
+ if (shape.fillEnabled()) {
+ this._fill(shape);
+ }
+ };
+ Context.prototype._fill = function (shape) {
+ // abstract
+ };
+ /**
+ * stroke shape
+ * @method
+ * @name Konva.Context#strokeShape
+ * @param {Konva.Shape} shape
+ */
+ Context.prototype.strokeShape = function (shape) {
+ if (shape.hasStroke()) {
+ this._stroke(shape);
+ }
+ };
+ Context.prototype._stroke = function (shape) {
+ // abstract
+ };
+ /**
+ * fill then stroke
+ * @method
+ * @name Konva.Context#fillStrokeShape
+ * @param {Konva.Shape} shape
+ */
+ Context.prototype.fillStrokeShape = function (shape) {
+ this.fillShape(shape);
+ this.strokeShape(shape);
+ };
+ Context.prototype.getTrace = function (relaxed) {
+ var traceArr = this.traceArr, len = traceArr.length, str = '', n, trace, method, args;
+ for (n = 0; n < len; n++) {
+ trace = traceArr[n];
+ method = trace.method;
+ // methods
+ if (method) {
+ args = trace.args;
+ str += method;
+ if (relaxed) {
+ str += DOUBLE_PAREN;
+ }
+ else {
+ if (Util._isArray(args[0])) {
+ str += OPEN_PAREN_BRACKET + args.join(COMMA) + CLOSE_BRACKET_PAREN;
+ }
+ else {
+ str += OPEN_PAREN + args.join(COMMA) + CLOSE_PAREN;
+ }
+ }
+ }
+ else {
+ // properties
+ str += trace.property;
+ if (!relaxed) {
+ str += EQUALS + trace.val;
+ }
+ }
+ str += SEMICOLON;
+ }
+ return str;
+ };
+ Context.prototype.clearTrace = function () {
+ this.traceArr = [];
+ };
+ Context.prototype._trace = function (str) {
+ var traceArr = this.traceArr, len;
+ traceArr.push(str);
+ len = traceArr.length;
+ if (len >= traceArrMax) {
+ traceArr.shift();
+ }
+ };
+ /**
+ * reset canvas context transform
+ * @method
+ * @name Konva.Context#reset
+ */
+ Context.prototype.reset = function () {
+ var pixelRatio = this.getCanvas().getPixelRatio();
+ this.setTransform(1 * pixelRatio, 0, 0, 1 * pixelRatio, 0, 0);
+ };
+ /**
+ * get canvas wrapper
+ * @method
+ * @name Konva.Context#getCanvas
+ * @returns {Konva.Canvas}
+ */
+ Context.prototype.getCanvas = function () {
+ return this.canvas;
+ };
+ /**
+ * clear canvas
+ * @method
+ * @name Konva.Context#clear
+ * @param {Object} [bounds]
+ * @param {Number} [bounds.x]
+ * @param {Number} [bounds.y]
+ * @param {Number} [bounds.width]
+ * @param {Number} [bounds.height]
+ */
+ Context.prototype.clear = function (bounds) {
+ var canvas = this.getCanvas();
+ if (bounds) {
+ this.clearRect(bounds.x || 0, bounds.y || 0, bounds.width || 0, bounds.height || 0);
+ }
+ else {
+ this.clearRect(0, 0, canvas.getWidth() / canvas.pixelRatio, canvas.getHeight() / canvas.pixelRatio);
+ }
+ };
+ Context.prototype._applyLineCap = function (shape) {
+ var lineCap = shape.getLineCap();
+ if (lineCap) {
+ this.setAttr('lineCap', lineCap);
+ }
+ };
+ Context.prototype._applyOpacity = function (shape) {
+ var absOpacity = shape.getAbsoluteOpacity();
+ if (absOpacity !== 1) {
+ this.setAttr('globalAlpha', absOpacity);
+ }
+ };
+ Context.prototype._applyLineJoin = function (shape) {
+ var lineJoin = shape.attrs.lineJoin;
+ if (lineJoin) {
+ this.setAttr('lineJoin', lineJoin);
+ }
+ };
+ Context.prototype.setAttr = function (attr, val) {
+ this._context[attr] = val;
+ };
+ /**
+ * arc function.
+ * @method
+ * @name Konva.Context#arc
+ */
+ Context.prototype.arc = function (a0, a1, a2, a3, a4, a5) {
+ this._context.arc(a0, a1, a2, a3, a4, a5);
+ };
+ /**
+ * arcTo function.
+ * @method
+ * @name Konva.Context#arcTo
+ */
+ Context.prototype.arcTo = function (a0, a1, a2, a3, a4) {
+ this._context.arcTo(a0, a1, a2, a3, a4);
+ };
+ /**
+ * beginPath function.
+ * @method
+ * @name Konva.Context#beginPath
+ */
+ Context.prototype.beginPath = function () {
+ this._context.beginPath();
+ };
+ /**
+ * bezierCurveTo function.
+ * @method
+ * @name Konva.Context#bezierCurveTo
+ */
+ Context.prototype.bezierCurveTo = function (a0, a1, a2, a3, a4, a5) {
+ this._context.bezierCurveTo(a0, a1, a2, a3, a4, a5);
+ };
+ /**
+ * clearRect function.
+ * @method
+ * @name Konva.Context#clearRect
+ */
+ Context.prototype.clearRect = function (a0, a1, a2, a3) {
+ this._context.clearRect(a0, a1, a2, a3);
+ };
+ /**
+ * clip function.
+ * @method
+ * @name Konva.Context#clip
+ */
+ Context.prototype.clip = function () {
+ this._context.clip();
+ };
+ /**
+ * closePath function.
+ * @method
+ * @name Konva.Context#closePath
+ */
+ Context.prototype.closePath = function () {
+ this._context.closePath();
+ };
+ /**
+ * createImageData function.
+ * @method
+ * @name Konva.Context#createImageData
+ */
+ Context.prototype.createImageData = function (a0, a1) {
+ var a = arguments;
+ if (a.length === 2) {
+ return this._context.createImageData(a0, a1);
+ }
+ else if (a.length === 1) {
+ return this._context.createImageData(a0);
+ }
+ };
+ /**
+ * createLinearGradient function.
+ * @method
+ * @name Konva.Context#createLinearGradient
+ */
+ Context.prototype.createLinearGradient = function (a0, a1, a2, a3) {
+ return this._context.createLinearGradient(a0, a1, a2, a3);
+ };
+ /**
+ * createPattern function.
+ * @method
+ * @name Konva.Context#createPattern
+ */
+ Context.prototype.createPattern = function (a0, a1) {
+ return this._context.createPattern(a0, a1);
+ };
+ /**
+ * createRadialGradient function.
+ * @method
+ * @name Konva.Context#createRadialGradient
+ */
+ Context.prototype.createRadialGradient = function (a0, a1, a2, a3, a4, a5) {
+ return this._context.createRadialGradient(a0, a1, a2, a3, a4, a5);
+ };
+ /**
+ * drawImage function.
+ * @method
+ * @name Konva.Context#drawImage
+ */
+ Context.prototype.drawImage = function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {
+ var a = arguments, _context = this._context;
+ if (a.length === 3) {
+ _context.drawImage(a0, a1, a2);
+ }
+ else if (a.length === 5) {
+ _context.drawImage(a0, a1, a2, a3, a4);
+ }
+ else if (a.length === 9) {
+ _context.drawImage(a0, a1, a2, a3, a4, a5, a6, a7, a8);
+ }
+ };
+ /**
+ * ellipse function.
+ * @method
+ * @name Konva.Context#ellipse
+ */
+ Context.prototype.ellipse = function (a0, a1, a2, a3, a4, a5, a6, a7) {
+ this._context.ellipse(a0, a1, a2, a3, a4, a5, a6, a7);
+ };
+ /**
+ * isPointInPath function.
+ * @method
+ * @name Konva.Context#isPointInPath
+ */
+ Context.prototype.isPointInPath = function (x, y) {
+ return this._context.isPointInPath(x, y);
+ };
+ /**
+ * fill function.
+ * @method
+ * @name Konva.Context#fill
+ */
+ Context.prototype.fill = function () {
+ this._context.fill();
+ };
+ /**
+ * fillRect function.
+ * @method
+ * @name Konva.Context#fillRect
+ */
+ Context.prototype.fillRect = function (x, y, width, height) {
+ this._context.fillRect(x, y, width, height);
+ };
+ /**
+ * strokeRect function.
+ * @method
+ * @name Konva.Context#strokeRect
+ */
+ Context.prototype.strokeRect = function (x, y, width, height) {
+ this._context.strokeRect(x, y, width, height);
+ };
+ /**
+ * fillText function.
+ * @method
+ * @name Konva.Context#fillText
+ */
+ Context.prototype.fillText = function (a0, a1, a2) {
+ this._context.fillText(a0, a1, a2);
+ };
+ /**
+ * measureText function.
+ * @method
+ * @name Konva.Context#measureText
+ */
+ Context.prototype.measureText = function (text) {
+ return this._context.measureText(text);
+ };
+ /**
+ * getImageData function.
+ * @method
+ * @name Konva.Context#getImageData
+ */
+ Context.prototype.getImageData = function (a0, a1, a2, a3) {
+ return this._context.getImageData(a0, a1, a2, a3);
+ };
+ /**
+ * lineTo function.
+ * @method
+ * @name Konva.Context#lineTo
+ */
+ Context.prototype.lineTo = function (a0, a1) {
+ this._context.lineTo(a0, a1);
+ };
+ /**
+ * moveTo function.
+ * @method
+ * @name Konva.Context#moveTo
+ */
+ Context.prototype.moveTo = function (a0, a1) {
+ this._context.moveTo(a0, a1);
+ };
+ /**
+ * rect function.
+ * @method
+ * @name Konva.Context#rect
+ */
+ Context.prototype.rect = function (a0, a1, a2, a3) {
+ this._context.rect(a0, a1, a2, a3);
+ };
+ /**
+ * putImageData function.
+ * @method
+ * @name Konva.Context#putImageData
+ */
+ Context.prototype.putImageData = function (a0, a1, a2) {
+ this._context.putImageData(a0, a1, a2);
+ };
+ /**
+ * quadraticCurveTo function.
+ * @method
+ * @name Konva.Context#quadraticCurveTo
+ */
+ Context.prototype.quadraticCurveTo = function (a0, a1, a2, a3) {
+ this._context.quadraticCurveTo(a0, a1, a2, a3);
+ };
+ /**
+ * restore function.
+ * @method
+ * @name Konva.Context#restore
+ */
+ Context.prototype.restore = function () {
+ this._context.restore();
+ };
+ /**
+ * rotate function.
+ * @method
+ * @name Konva.Context#rotate
+ */
+ Context.prototype.rotate = function (a0) {
+ this._context.rotate(a0);
+ };
+ /**
+ * save function.
+ * @method
+ * @name Konva.Context#save
+ */
+ Context.prototype.save = function () {
+ this._context.save();
+ };
+ /**
+ * scale function.
+ * @method
+ * @name Konva.Context#scale
+ */
+ Context.prototype.scale = function (a0, a1) {
+ this._context.scale(a0, a1);
+ };
+ /**
+ * setLineDash function.
+ * @method
+ * @name Konva.Context#setLineDash
+ */
+ Context.prototype.setLineDash = function (a0) {
+ // works for Chrome and IE11
+ if (this._context.setLineDash) {
+ this._context.setLineDash(a0);
+ }
+ else if ('mozDash' in this._context) {
+ // verified that this works in firefox
+ this._context['mozDash'] = a0;
+ }
+ else if ('webkitLineDash' in this._context) {
+ // does not currently work for Safari
+ this._context['webkitLineDash'] = a0;
+ }
+ // no support for IE9 and IE10
+ };
+ /**
+ * getLineDash function.
+ * @method
+ * @name Konva.Context#getLineDash
+ */
+ Context.prototype.getLineDash = function () {
+ return this._context.getLineDash();
+ };
+ /**
+ * setTransform function.
+ * @method
+ * @name Konva.Context#setTransform
+ */
+ Context.prototype.setTransform = function (a0, a1, a2, a3, a4, a5) {
+ this._context.setTransform(a0, a1, a2, a3, a4, a5);
+ };
+ /**
+ * stroke function.
+ * @method
+ * @name Konva.Context#stroke
+ */
+ Context.prototype.stroke = function () {
+ this._context.stroke();
+ };
+ /**
+ * strokeText function.
+ * @method
+ * @name Konva.Context#strokeText
+ */
+ Context.prototype.strokeText = function (a0, a1, a2, a3) {
+ this._context.strokeText(a0, a1, a2, a3);
+ };
+ /**
+ * transform function.
+ * @method
+ * @name Konva.Context#transform
+ */
+ Context.prototype.transform = function (a0, a1, a2, a3, a4, a5) {
+ this._context.transform(a0, a1, a2, a3, a4, a5);
+ };
+ /**
+ * translate function.
+ * @method
+ * @name Konva.Context#translate
+ */
+ Context.prototype.translate = function (a0, a1) {
+ this._context.translate(a0, a1);
+ };
+ Context.prototype._enableTrace = function () {
+ var that = this, len = CONTEXT_METHODS.length, _simplifyArray = Util._simplifyArray, origSetter = this.setAttr, n, args;
+ // to prevent creating scope function at each loop
+ var func = function (methodName) {
+ var origMethod = that[methodName], ret;
+ that[methodName] = function () {
+ args = _simplifyArray(Array.prototype.slice.call(arguments, 0));
+ ret = origMethod.apply(that, arguments);
+ that._trace({
+ method: methodName,
+ args: args,
+ });
+ return ret;
+ };
+ };
+ // methods
+ for (n = 0; n < len; n++) {
+ func(CONTEXT_METHODS[n]);
+ }
+ // attrs
+ that.setAttr = function () {
+ origSetter.apply(that, arguments);
+ var prop = arguments[0];
+ var val = arguments[1];
+ if (prop === 'shadowOffsetX' ||
+ prop === 'shadowOffsetY' ||
+ prop === 'shadowBlur') {
+ val = val / this.canvas.getPixelRatio();
+ }
+ that._trace({
+ property: prop,
+ val: val,
+ });
+ };
+ };
+ Context.prototype._applyGlobalCompositeOperation = function (node) {
+ var globalCompositeOperation = node.getGlobalCompositeOperation();
+ if (globalCompositeOperation !== 'source-over') {
+ this.setAttr('globalCompositeOperation', globalCompositeOperation);
+ }
+ };
+ return Context;
+ }());
+ CONTEXT_PROPERTIES.forEach(function (prop) {
+ Object.defineProperty(Context.prototype, prop, {
+ get: function () {
+ return this._context[prop];
+ },
+ set: function (val) {
+ this._context[prop] = val;
+ },
+ });
+ });
+ var SceneContext = /** @class */ (function (_super) {
+ __extends(SceneContext, _super);
+ function SceneContext() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ SceneContext.prototype._fillColor = function (shape) {
+ var fill = shape.fill();
+ this.setAttr('fillStyle', fill);
+ shape._fillFunc(this);
+ };
+ SceneContext.prototype._fillPattern = function (shape) {
+ var fillPatternX = shape.getFillPatternX(), fillPatternY = shape.getFillPatternY(), fillPatternRotation = Konva.getAngle(shape.getFillPatternRotation()), fillPatternOffsetX = shape.getFillPatternOffsetX(), fillPatternOffsetY = shape.getFillPatternOffsetY(), fillPatternScaleX = shape.getFillPatternScaleX(), fillPatternScaleY = shape.getFillPatternScaleY();
+ if (fillPatternX || fillPatternY) {
+ this.translate(fillPatternX || 0, fillPatternY || 0);
+ }
+ if (fillPatternRotation) {
+ this.rotate(fillPatternRotation);
+ }
+ if (fillPatternScaleX || fillPatternScaleY) {
+ this.scale(fillPatternScaleX, fillPatternScaleY);
+ }
+ if (fillPatternOffsetX || fillPatternOffsetY) {
+ this.translate(-1 * fillPatternOffsetX, -1 * fillPatternOffsetY);
+ }
+ this.setAttr('fillStyle', shape._getFillPattern());
+ shape._fillFunc(this);
+ };
+ SceneContext.prototype._fillLinearGradient = function (shape) {
+ var grd = shape._getLinearGradient();
+ if (grd) {
+ this.setAttr('fillStyle', grd);
+ shape._fillFunc(this);
+ }
+ };
+ SceneContext.prototype._fillRadialGradient = function (shape) {
+ var grd = shape._getRadialGradient();
+ if (grd) {
+ this.setAttr('fillStyle', grd);
+ shape._fillFunc(this);
+ }
+ };
+ SceneContext.prototype._fill = function (shape) {
+ var hasColor = shape.fill(), fillPriority = shape.getFillPriority();
+ // priority fills
+ if (hasColor && fillPriority === 'color') {
+ this._fillColor(shape);
+ return;
+ }
+ var hasPattern = shape.getFillPatternImage();
+ if (hasPattern && fillPriority === 'pattern') {
+ this._fillPattern(shape);
+ return;
+ }
+ var hasLinearGradient = shape.getFillLinearGradientColorStops();
+ if (hasLinearGradient && fillPriority === 'linear-gradient') {
+ this._fillLinearGradient(shape);
+ return;
+ }
+ var hasRadialGradient = shape.getFillRadialGradientColorStops();
+ if (hasRadialGradient && fillPriority === 'radial-gradient') {
+ this._fillRadialGradient(shape);
+ return;
+ }
+ // now just try and fill with whatever is available
+ if (hasColor) {
+ this._fillColor(shape);
+ }
+ else if (hasPattern) {
+ this._fillPattern(shape);
+ }
+ else if (hasLinearGradient) {
+ this._fillLinearGradient(shape);
+ }
+ else if (hasRadialGradient) {
+ this._fillRadialGradient(shape);
+ }
+ };
+ SceneContext.prototype._strokeLinearGradient = function (shape) {
+ var start = shape.getStrokeLinearGradientStartPoint(), end = shape.getStrokeLinearGradientEndPoint(), colorStops = shape.getStrokeLinearGradientColorStops(), grd = this.createLinearGradient(start.x, start.y, end.x, end.y);
+ if (colorStops) {
+ // build color stops
+ for (var n = 0; n < colorStops.length; n += 2) {
+ grd.addColorStop(colorStops[n], colorStops[n + 1]);
+ }
+ this.setAttr('strokeStyle', grd);
+ }
+ };
+ SceneContext.prototype._stroke = function (shape) {
+ var dash = shape.dash(),
+ // ignore strokeScaleEnabled for Text
+ strokeScaleEnabled = shape.getStrokeScaleEnabled();
+ if (shape.hasStroke()) {
+ if (!strokeScaleEnabled) {
+ this.save();
+ var pixelRatio = this.getCanvas().getPixelRatio();
+ this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);
+ }
+ this._applyLineCap(shape);
+ if (dash && shape.dashEnabled()) {
+ this.setLineDash(dash);
+ this.setAttr('lineDashOffset', shape.dashOffset());
+ }
+ this.setAttr('lineWidth', shape.strokeWidth());
+ if (!shape.getShadowForStrokeEnabled()) {
+ this.setAttr('shadowColor', 'rgba(0,0,0,0)');
+ }
+ var hasLinearGradient = shape.getStrokeLinearGradientColorStops();
+ if (hasLinearGradient) {
+ this._strokeLinearGradient(shape);
+ }
+ else {
+ this.setAttr('strokeStyle', shape.stroke());
+ }
+ shape._strokeFunc(this);
+ if (!strokeScaleEnabled) {
+ this.restore();
+ }
+ }
+ };
+ SceneContext.prototype._applyShadow = function (shape) {
+ var util = Util, color = util.get(shape.getShadowRGBA(), 'black'), blur = util.get(shape.getShadowBlur(), 5), offset = util.get(shape.getShadowOffset(), {
+ x: 0,
+ y: 0,
+ }), scale = shape.getAbsoluteScale(), ratio = this.canvas.getPixelRatio(), scaleX = scale.x * ratio, scaleY = scale.y * ratio;
+ this.setAttr('shadowColor', color);
+ this.setAttr('shadowBlur', blur * Math.min(Math.abs(scaleX), Math.abs(scaleY)));
+ this.setAttr('shadowOffsetX', offset.x * scaleX);
+ this.setAttr('shadowOffsetY', offset.y * scaleY);
+ };
+ return SceneContext;
+ }(Context));
+ var HitContext = /** @class */ (function (_super) {
+ __extends(HitContext, _super);
+ function HitContext() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ HitContext.prototype._fill = function (shape) {
+ this.save();
+ this.setAttr('fillStyle', shape.colorKey);
+ shape._fillFuncHit(this);
+ this.restore();
+ };
+ HitContext.prototype.strokeShape = function (shape) {
+ if (shape.hasHitStroke()) {
+ this._stroke(shape);
+ }
+ };
+ HitContext.prototype._stroke = function (shape) {
+ if (shape.hasHitStroke()) {
+ // ignore strokeScaleEnabled for Text
+ var strokeScaleEnabled = shape.getStrokeScaleEnabled();
+ if (!strokeScaleEnabled) {
+ this.save();
+ var pixelRatio = this.getCanvas().getPixelRatio();
+ this.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);
+ }
+ this._applyLineCap(shape);
+ var hitStrokeWidth = shape.hitStrokeWidth();
+ var strokeWidth = hitStrokeWidth === 'auto' ? shape.strokeWidth() : hitStrokeWidth;
+ this.setAttr('lineWidth', strokeWidth);
+ this.setAttr('strokeStyle', shape.colorKey);
+ shape._strokeFuncHit(this);
+ if (!strokeScaleEnabled) {
+ this.restore();
+ }
+ }
+ };
+ return HitContext;
+ }(Context));
+
+ // calculate pixel ratio
+ var _pixelRatio;
+ function getDevicePixelRatio() {
+ if (_pixelRatio) {
+ return _pixelRatio;
+ }
+ var canvas = Util.createCanvasElement();
+ var context = canvas.getContext('2d');
+ _pixelRatio = (function () {
+ var devicePixelRatio = Konva._global.devicePixelRatio || 1, backingStoreRatio = context.webkitBackingStorePixelRatio ||
+ context.mozBackingStorePixelRatio ||
+ context.msBackingStorePixelRatio ||
+ context.oBackingStorePixelRatio ||
+ context.backingStorePixelRatio ||
+ 1;
+ return devicePixelRatio / backingStoreRatio;
+ })();
+ return _pixelRatio;
+ }
+ /**
+ * Canvas Renderer constructor. It is a wrapper around native canvas element.
+ * Usually you don't need to use it manually.
+ * @constructor
+ * @abstract
+ * @memberof Konva
+ * @param {Object} config
+ * @param {Number} config.width
+ * @param {Number} config.height
+ * @param {Number} config.pixelRatio
+ */
+ var Canvas = /** @class */ (function () {
+ function Canvas(config) {
+ this.pixelRatio = 1;
+ this.width = 0;
+ this.height = 0;
+ this.isCache = false;
+ var conf = config || {};
+ var pixelRatio = conf.pixelRatio || Konva.pixelRatio || getDevicePixelRatio();
+ this.pixelRatio = pixelRatio;
+ this._canvas = Util.createCanvasElement();
+ // set inline styles
+ this._canvas.style.padding = '0';
+ this._canvas.style.margin = '0';
+ this._canvas.style.border = '0';
+ this._canvas.style.background = 'transparent';
+ this._canvas.style.position = 'absolute';
+ this._canvas.style.top = '0';
+ this._canvas.style.left = '0';
+ }
+ /**
+ * get canvas context
+ * @method
+ * @name Konva.Canvas#getContext
+ * @returns {CanvasContext} context
+ */
+ Canvas.prototype.getContext = function () {
+ return this.context;
+ };
+ Canvas.prototype.getPixelRatio = function () {
+ return this.pixelRatio;
+ };
+ Canvas.prototype.setPixelRatio = function (pixelRatio) {
+ var previousRatio = this.pixelRatio;
+ this.pixelRatio = pixelRatio;
+ this.setSize(this.getWidth() / previousRatio, this.getHeight() / previousRatio);
+ };
+ Canvas.prototype.setWidth = function (width) {
+ // take into account pixel ratio
+ this.width = this._canvas.width = width * this.pixelRatio;
+ this._canvas.style.width = width + 'px';
+ var pixelRatio = this.pixelRatio, _context = this.getContext()._context;
+ _context.scale(pixelRatio, pixelRatio);
+ };
+ Canvas.prototype.setHeight = function (height) {
+ // take into account pixel ratio
+ this.height = this._canvas.height = height * this.pixelRatio;
+ this._canvas.style.height = height + 'px';
+ var pixelRatio = this.pixelRatio, _context = this.getContext()._context;
+ _context.scale(pixelRatio, pixelRatio);
+ };
+ Canvas.prototype.getWidth = function () {
+ return this.width;
+ };
+ Canvas.prototype.getHeight = function () {
+ return this.height;
+ };
+ Canvas.prototype.setSize = function (width, height) {
+ this.setWidth(width || 0);
+ this.setHeight(height || 0);
+ };
+ /**
+ * to data url
+ * @method
+ * @name Konva.Canvas#toDataURL
+ * @param {String} mimeType
+ * @param {Number} quality between 0 and 1 for jpg mime types
+ * @returns {String} data url string
+ */
+ Canvas.prototype.toDataURL = function (mimeType, quality) {
+ try {
+ // If this call fails (due to browser bug, like in Firefox 3.6),
+ // then revert to previous no-parameter image/png behavior
+ return this._canvas.toDataURL(mimeType, quality);
+ }
+ catch (e) {
+ try {
+ return this._canvas.toDataURL();
+ }
+ catch (err) {
+ Util.error('Unable to get data URL. ' +
+ err.message +
+ ' For more info read https://konvajs.org/docs/posts/Tainted_Canvas.html.');
+ return '';
+ }
+ }
+ };
+ return Canvas;
+ }());
+ /**
+ * get/set pixel ratio.
+ * KonvaJS automatically handles pixel ratio adustments in order to render crisp drawings
+ * on all devices. Most desktops, low end tablets, and low end phones, have device pixel ratios
+ * of 1. Some high end tablets and phones, like iPhones and iPads have a device pixel ratio
+ * of 2. Some Macbook Pros, and iMacs also have a device pixel ratio of 2. Some high end Android devices have pixel
+ * ratios of 2 or 3. Some browsers like Firefox allow you to configure the pixel ratio of the viewport. Unless otherwise
+ * specificed, the pixel ratio will be defaulted to the actual device pixel ratio. You can override the device pixel
+ * ratio for special situations, or, if you don't want the pixel ratio to be taken into account, you can set it to 1.
+ * @name Konva.Canvas#pixelRatio
+ * @method
+ * @param {Number} pixelRatio
+ * @returns {Number}
+ * @example
+ * // get
+ * var pixelRatio = layer.getCanvas.pixelRatio();
+ *
+ * // set
+ * layer.getCanvas().pixelRatio(3);
+ */
+ Factory.addGetterSetter(Canvas, 'pixelRatio', undefined, getNumberValidator());
+ var SceneCanvas = /** @class */ (function (_super) {
+ __extends(SceneCanvas, _super);
+ function SceneCanvas(config) {
+ if (config === void 0) { config = { width: 0, height: 0 }; }
+ var _this = _super.call(this, config) || this;
+ _this.context = new SceneContext(_this);
+ _this.setSize(config.width, config.height);
+ return _this;
+ }
+ return SceneCanvas;
+ }(Canvas));
+ var HitCanvas = /** @class */ (function (_super) {
+ __extends(HitCanvas, _super);
+ function HitCanvas(config) {
+ if (config === void 0) { config = { width: 0, height: 0 }; }
+ var _this = _super.call(this, config) || this;
+ _this.hitCanvas = true;
+ _this.context = new HitContext(_this);
+ _this.setSize(config.width, config.height);
+ return _this;
+ }
+ return HitCanvas;
+ }(Canvas));
+
+ var DD = {
+ get isDragging() {
+ var flag = false;
+ DD._dragElements.forEach(function (elem) {
+ if (elem.dragStatus === 'dragging') {
+ flag = true;
+ }
+ });
+ return flag;
+ },
+ justDragged: false,
+ get node() {
+ // return first dragging node
+ var node;
+ DD._dragElements.forEach(function (elem) {
+ node = elem.node;
+ });
+ return node;
+ },
+ _dragElements: new Map(),
+ // methods
+ _drag: function (evt) {
+ var nodesToFireEvents = [];
+ DD._dragElements.forEach(function (elem, key) {
+ var node = elem.node;
+ // we need to find pointer relative to that node
+ var stage = node.getStage();
+ stage.setPointersPositions(evt);
+ // it is possible that user call startDrag without any event
+ // it that case we need to detect first movable pointer and attach it into the node
+ if (elem.pointerId === undefined) {
+ elem.pointerId = Util._getFirstPointerId(evt);
+ }
+ var pos = stage._changedPointerPositions.find(function (pos) { return pos.id === elem.pointerId; });
+ // not related pointer
+ if (!pos) {
+ return;
+ }
+ if (elem.dragStatus !== 'dragging') {
+ var dragDistance = node.dragDistance();
+ var distance = Math.max(Math.abs(pos.x - elem.startPointerPos.x), Math.abs(pos.y - elem.startPointerPos.y));
+ if (distance < dragDistance) {
+ return;
+ }
+ node.startDrag({ evt: evt });
+ // a user can stop dragging inside `dragstart`
+ if (!node.isDragging()) {
+ return;
+ }
+ }
+ node._setDragPosition(evt, elem);
+ nodesToFireEvents.push(node);
+ });
+ // call dragmove only after ALL positions are changed
+ nodesToFireEvents.forEach(function (node) {
+ node.fire('dragmove', {
+ type: 'dragmove',
+ target: node,
+ evt: evt,
+ }, true);
+ });
+ },
+ // dragBefore and dragAfter allows us to set correct order of events
+ // setup all in dragbefore, and stop dragging only after pointerup triggered.
+ _endDragBefore: function (evt) {
+ DD._dragElements.forEach(function (elem, key) {
+ var node = elem.node;
+ // we need to find pointer relative to that node
+ var stage = node.getStage();
+ if (evt) {
+ stage.setPointersPositions(evt);
+ }
+ var pos = stage._changedPointerPositions.find(function (pos) { return pos.id === elem.pointerId; });
+ // that pointer is not related
+ if (!pos) {
+ return;
+ }
+ if (elem.dragStatus === 'dragging' || elem.dragStatus === 'stopped') {
+ // if a node is stopped manully we still need to reset events:
+ DD.justDragged = true;
+ Konva.listenClickTap = false;
+ elem.dragStatus = 'stopped';
+ }
+ var drawNode = elem.node.getLayer() ||
+ (elem.node instanceof Konva['Stage'] && elem.node);
+ if (drawNode) {
+ drawNode.draw();
+ }
+ });
+ },
+ _endDragAfter: function (evt) {
+ DD._dragElements.forEach(function (elem, key) {
+ if (elem.dragStatus === 'stopped') {
+ elem.node.fire('dragend', {
+ type: 'dragend',
+ target: elem.node,
+ evt: evt,
+ }, true);
+ }
+ if (elem.dragStatus !== 'dragging') {
+ DD._dragElements.delete(key);
+ }
+ });
+ },
+ };
+ if (Konva.isBrowser) {
+ window.addEventListener('mouseup', DD._endDragBefore, true);
+ window.addEventListener('touchend', DD._endDragBefore, true);
+ window.addEventListener('mousemove', DD._drag);
+ window.addEventListener('touchmove', DD._drag);
+ window.addEventListener('mouseup', DD._endDragAfter, false);
+ window.addEventListener('touchend', DD._endDragAfter, false);
+ }
+
+ var ids = {};
+ var names = {};
+ var _addId = function (node, id) {
+ if (!id) {
+ return;
+ }
+ ids[id] = node;
+ };
+ var _removeId = function (id, node) {
+ // node has no id
+ if (!id) {
+ return;
+ }
+ // another node is registered (possible for duplicate ids)
+ if (ids[id] !== node) {
+ return;
+ }
+ delete ids[id];
+ };
+ var _addName = function (node, name) {
+ if (name) {
+ if (!names[name]) {
+ names[name] = [];
+ }
+ names[name].push(node);
+ }
+ };
+ var _removeName = function (name, _id) {
+ if (!name) {
+ return;
+ }
+ var nodes = names[name];
+ if (!nodes) {
+ return;
+ }
+ for (var n = 0; n < nodes.length; n++) {
+ var no = nodes[n];
+ if (no._id === _id) {
+ nodes.splice(n, 1);
+ }
+ }
+ if (nodes.length === 0) {
+ delete names[name];
+ }
+ };
+ // CONSTANTS
+ var ABSOLUTE_OPACITY = 'absoluteOpacity', ABSOLUTE_TRANSFORM = 'absoluteTransform', ABSOLUTE_SCALE = 'absoluteScale', CANVAS = 'canvas', CHANGE = 'Change', CHILDREN = 'children', KONVA = 'konva', LISTENING = 'listening', MOUSEENTER = 'mouseenter', MOUSELEAVE = 'mouseleave', NAME = 'name', SET$1 = 'set', SHAPE = 'Shape', SPACE = ' ', STAGE = 'stage', TRANSFORM = 'transform', UPPER_STAGE = 'Stage', VISIBLE = 'visible', TRANSFORM_CHANGE_STR = [
+ 'xChange.konva',
+ 'yChange.konva',
+ 'scaleXChange.konva',
+ 'scaleYChange.konva',
+ 'skewXChange.konva',
+ 'skewYChange.konva',
+ 'rotationChange.konva',
+ 'offsetXChange.konva',
+ 'offsetYChange.konva',
+ 'transformsEnabledChange.konva',
+ ].join(SPACE);
+ // TODO: can we remove children from node?
+ var emptyChildren = new Collection();
+ var idCounter = 1;
+ /**
+ * Node constructor. Nodes are entities that can be transformed, layered,
+ * and have bound events. The stage, layers, groups, and shapes all extend Node.
+ * @constructor
+ * @memberof Konva
+ * @param {Object} config
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ */
+ var Node = /** @class */ (function () {
+ function Node(config) {
+ var _this = this;
+ this._id = idCounter++;
+ this.eventListeners = {};
+ this.attrs = {};
+ this.index = 0;
+ this.parent = null;
+ this._cache = new Map();
+ this._attachedDepsListeners = new Map();
+ this._lastPos = null;
+ this._batchingTransformChange = false;
+ this._needClearTransformCache = false;
+ this._filterUpToDate = false;
+ this._isUnderCache = false;
+ this.children = emptyChildren;
+ this._dragEventId = null;
+ this.setAttrs(config);
+ // event bindings for cache handling
+ this.on(TRANSFORM_CHANGE_STR, function () {
+ if (_this._batchingTransformChange) {
+ _this._needClearTransformCache = true;
+ return;
+ }
+ _this._clearCache(TRANSFORM);
+ _this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);
+ });
+ this.on('visibleChange.konva', function () {
+ _this._clearSelfAndDescendantCache(VISIBLE);
+ });
+ this.on('listeningChange.konva', function () {
+ _this._clearSelfAndDescendantCache(LISTENING);
+ });
+ this.on('opacityChange.konva', function () {
+ _this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);
+ });
+ }
+ Node.prototype.hasChildren = function () {
+ return false;
+ };
+ Node.prototype.getChildren = function () {
+ return emptyChildren;
+ };
+ Node.prototype._clearCache = function (attr) {
+ // if we want to clear transform cache
+ // we don't really need to remove it from the cache
+ // but instead mark as "dirty"
+ // so we don't need to create a new instance next time
+ if ((attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM) &&
+ this._cache.get(attr)) {
+ this._cache.get(attr).dirty = true;
+ }
+ else if (attr) {
+ this._cache.delete(attr);
+ }
+ else {
+ this._cache.clear();
+ }
+ };
+ Node.prototype._getCache = function (attr, privateGetter) {
+ var cache = this._cache.get(attr);
+ // for transform the cache can be NOT empty
+ // but we still need to recalculate it if it is dirty
+ var isTransform = attr === TRANSFORM || attr === ABSOLUTE_TRANSFORM;
+ var invalid = cache === undefined || (isTransform && cache.dirty === true);
+ // if not cached, we need to set it using the private getter method.
+ if (invalid) {
+ cache = privateGetter.call(this);
+ this._cache.set(attr, cache);
+ }
+ return cache;
+ };
+ Node.prototype._calculate = function (name, deps, getter) {
+ var _this = this;
+ // if we are trying to calculate function for the first time
+ // we need to attach listeners for change events
+ if (!this._attachedDepsListeners.get(name)) {
+ var depsString = deps.map(function (dep) { return dep + 'Change.konva'; }).join(SPACE);
+ this.on(depsString, function () {
+ _this._clearCache(name);
+ });
+ this._attachedDepsListeners.set(name, true);
+ }
+ // just use cache function
+ return this._getCache(name, getter);
+ };
+ Node.prototype._getCanvasCache = function () {
+ return this._cache.get(CANVAS);
+ };
+ /*
+ * when the logic for a cached result depends on ancestor propagation, use this
+ * method to clear self and children cache
+ */
+ Node.prototype._clearSelfAndDescendantCache = function (attr, forceEvent) {
+ this._clearCache(attr);
+ // trigger clear cache, so transformer can use it
+ if (forceEvent && attr === ABSOLUTE_TRANSFORM) {
+ this.fire('_clearTransformCache');
+ }
+ // skip clearing if node is cached with canvas
+ // for performance reasons !!!
+ if (this.isCached()) {
+ return;
+ }
+ if (this.children) {
+ this.children.each(function (node) {
+ node._clearSelfAndDescendantCache(attr, true);
+ });
+ }
+ };
+ /**
+ * clear cached canvas
+ * @method
+ * @name Konva.Node#clearCache
+ * @returns {Konva.Node}
+ * @example
+ * node.clearCache();
+ */
+ Node.prototype.clearCache = function () {
+ this._cache.delete(CANVAS);
+ this._clearSelfAndDescendantCache();
+ return this;
+ };
+ /**
+ * cache node to improve drawing performance, apply filters, or create more accurate
+ * hit regions. For all basic shapes size of cache canvas will be automatically detected.
+ * If you need to cache your custom `Konva.Shape` instance you have to pass shape's bounding box
+ * properties. Look at [https://konvajs.org/docs/performance/Shape_Caching.html](https://konvajs.org/docs/performance/Shape_Caching.html) for more information.
+ * @method
+ * @name Konva.Node#cache
+ * @param {Object} [config]
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Number} [config.offset] increase canvas size by `offset` pixel in all directions.
+ * @param {Boolean} [config.drawBorder] when set to true, a red border will be drawn around the cached
+ * region for debugging purposes
+ * @param {Number} [config.pixelRatio] change quality (or pixel ratio) of cached image. pixelRatio = 2 will produce 2x sized cache.
+ * @param {Boolean} [config.imageSmoothingEnabled] control imageSmoothingEnabled property of created canvas for cache
+ * @returns {Konva.Node}
+ * @example
+ * // cache a shape with the x,y position of the bounding box at the center and
+ * // the width and height of the bounding box equal to the width and height of
+ * // the shape obtained from shape.width() and shape.height()
+ * image.cache();
+ *
+ * // cache a node and define the bounding box position and size
+ * node.cache({
+ * x: -30,
+ * y: -30,
+ * width: 100,
+ * height: 200
+ * });
+ *
+ * // cache a node and draw a red border around the bounding box
+ * // for debugging purposes
+ * node.cache({
+ * x: -30,
+ * y: -30,
+ * width: 100,
+ * height: 200,
+ * offset : 10,
+ * drawBorder: true
+ * });
+ */
+ Node.prototype.cache = function (config) {
+ var conf = config || {};
+ var rect = {};
+ // don't call getClientRect if we have all attributes
+ // it means call it only if have one undefined
+ if (conf.x === undefined ||
+ conf.y === undefined ||
+ conf.width === undefined ||
+ conf.height === undefined) {
+ rect = this.getClientRect({
+ skipTransform: true,
+ relativeTo: this.getParent(),
+ });
+ }
+ var width = Math.ceil(conf.width || rect.width), height = Math.ceil(conf.height || rect.height), pixelRatio = conf.pixelRatio, x = conf.x === undefined ? rect.x : conf.x, y = conf.y === undefined ? rect.y : conf.y, offset = conf.offset || 0, drawBorder = conf.drawBorder || false;
+ if (!width || !height) {
+ Util.error('Can not cache the node. Width or height of the node equals 0. Caching is skipped.');
+ return;
+ }
+ width += offset * 2;
+ height += offset * 2;
+ x -= offset;
+ y -= offset;
+ var cachedSceneCanvas = new SceneCanvas({
+ pixelRatio: pixelRatio,
+ width: width,
+ height: height,
+ }), cachedFilterCanvas = new SceneCanvas({
+ pixelRatio: pixelRatio,
+ width: 0,
+ height: 0,
+ }), cachedHitCanvas = new HitCanvas({
+ pixelRatio: 1,
+ width: width,
+ height: height,
+ }), sceneContext = cachedSceneCanvas.getContext(), hitContext = cachedHitCanvas.getContext();
+ cachedHitCanvas.isCache = true;
+ cachedSceneCanvas.isCache = true;
+ this._cache.delete('canvas');
+ this._filterUpToDate = false;
+ if (conf.imageSmoothingEnabled === false) {
+ cachedSceneCanvas.getContext()._context.imageSmoothingEnabled = false;
+ cachedFilterCanvas.getContext()._context.imageSmoothingEnabled = false;
+ }
+ sceneContext.save();
+ hitContext.save();
+ sceneContext.translate(-x, -y);
+ hitContext.translate(-x, -y);
+ // extra flag to skip on getAbsolute opacity calc
+ this._isUnderCache = true;
+ this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);
+ this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);
+ this.drawScene(cachedSceneCanvas, this);
+ this.drawHit(cachedHitCanvas, this);
+ this._isUnderCache = false;
+ sceneContext.restore();
+ hitContext.restore();
+ // this will draw a red border around the cached box for
+ // debugging purposes
+ if (drawBorder) {
+ sceneContext.save();
+ sceneContext.beginPath();
+ sceneContext.rect(0, 0, width, height);
+ sceneContext.closePath();
+ sceneContext.setAttr('strokeStyle', 'red');
+ sceneContext.setAttr('lineWidth', 5);
+ sceneContext.stroke();
+ sceneContext.restore();
+ }
+ this._cache.set(CANVAS, {
+ scene: cachedSceneCanvas,
+ filter: cachedFilterCanvas,
+ hit: cachedHitCanvas,
+ x: x,
+ y: y,
+ });
+ return this;
+ };
+ /**
+ * determine if node is currently cached
+ * @method
+ * @name Konva.Node#isCached
+ * @returns {Boolean}
+ */
+ Node.prototype.isCached = function () {
+ return this._cache.has('canvas');
+ };
+ /**
+ * Return client rectangle {x, y, width, height} of node. This rectangle also include all styling (strokes, shadows, etc).
+ * The rectangle position is relative to parent container.
+ * The purpose of the method is similar to getBoundingClientRect API of the DOM.
+ * @method
+ * @name Konva.Node#getClientRect
+ * @param {Object} config
+ * @param {Boolean} [config.skipTransform] should we apply transform to node for calculating rect?
+ * @param {Boolean} [config.skipShadow] should we apply shadow to the node for calculating bound box?
+ * @param {Boolean} [config.skipStroke] should we apply stroke to the node for calculating bound box?
+ * @param {Object} [config.relativeTo] calculate client rect relative to one of the parents
+ * @returns {Object} rect with {x, y, width, height} properties
+ * @example
+ * var rect = new Konva.Rect({
+ * width : 100,
+ * height : 100,
+ * x : 50,
+ * y : 50,
+ * strokeWidth : 4,
+ * stroke : 'black',
+ * offsetX : 50,
+ * scaleY : 2
+ * });
+ *
+ * // get client rect without think off transformations (position, rotation, scale, offset, etc)
+ * rect.getClientRect({ skipTransform: true});
+ * // returns {
+ * // x : -2, // two pixels for stroke / 2
+ * // y : -2,
+ * // width : 104, // increased by 4 for stroke
+ * // height : 104
+ * //}
+ *
+ * // get client rect with transformation applied
+ * rect.getClientRect();
+ * // returns Object {x: -2, y: 46, width: 104, height: 208}
+ */
+ Node.prototype.getClientRect = function (config) {
+ // abstract method
+ // redefine in Container and Shape
+ throw new Error('abstract "getClientRect" method call');
+ };
+ Node.prototype._transformedRect = function (rect, top) {
+ var points = [
+ { x: rect.x, y: rect.y },
+ { x: rect.x + rect.width, y: rect.y },
+ { x: rect.x + rect.width, y: rect.y + rect.height },
+ { x: rect.x, y: rect.y + rect.height },
+ ];
+ var minX, minY, maxX, maxY;
+ var trans = this.getAbsoluteTransform(top);
+ points.forEach(function (point) {
+ var transformed = trans.point(point);
+ if (minX === undefined) {
+ minX = maxX = transformed.x;
+ minY = maxY = transformed.y;
+ }
+ minX = Math.min(minX, transformed.x);
+ minY = Math.min(minY, transformed.y);
+ maxX = Math.max(maxX, transformed.x);
+ maxY = Math.max(maxY, transformed.y);
+ });
+ return {
+ x: minX,
+ y: minY,
+ width: maxX - minX,
+ height: maxY - minY,
+ };
+ };
+ Node.prototype._drawCachedSceneCanvas = function (context) {
+ context.save();
+ context._applyOpacity(this);
+ context._applyGlobalCompositeOperation(this);
+ var canvasCache = this._getCanvasCache();
+ context.translate(canvasCache.x, canvasCache.y);
+ var cacheCanvas = this._getCachedSceneCanvas();
+ var ratio = cacheCanvas.pixelRatio;
+ context.drawImage(cacheCanvas._canvas, 0, 0, cacheCanvas.width / ratio, cacheCanvas.height / ratio);
+ context.restore();
+ };
+ Node.prototype._drawCachedHitCanvas = function (context) {
+ var canvasCache = this._getCanvasCache(), hitCanvas = canvasCache.hit;
+ context.save();
+ context.translate(canvasCache.x, canvasCache.y);
+ context.drawImage(hitCanvas._canvas, 0, 0);
+ context.restore();
+ };
+ Node.prototype._getCachedSceneCanvas = function () {
+ var filters = this.filters(), cachedCanvas = this._getCanvasCache(), sceneCanvas = cachedCanvas.scene, filterCanvas = cachedCanvas.filter, filterContext = filterCanvas.getContext(), len, imageData, n, filter;
+ if (filters) {
+ if (!this._filterUpToDate) {
+ var ratio = sceneCanvas.pixelRatio;
+ filterCanvas.setSize(sceneCanvas.width / sceneCanvas.pixelRatio, sceneCanvas.height / sceneCanvas.pixelRatio);
+ try {
+ len = filters.length;
+ filterContext.clear();
+ // copy cached canvas onto filter context
+ filterContext.drawImage(sceneCanvas._canvas, 0, 0, sceneCanvas.getWidth() / ratio, sceneCanvas.getHeight() / ratio);
+ imageData = filterContext.getImageData(0, 0, filterCanvas.getWidth(), filterCanvas.getHeight());
+ // apply filters to filter context
+ for (n = 0; n < len; n++) {
+ filter = filters[n];
+ if (typeof filter !== 'function') {
+ Util.error('Filter should be type of function, but got ' +
+ typeof filter +
+ ' instead. Please check correct filters');
+ continue;
+ }
+ filter.call(this, imageData);
+ filterContext.putImageData(imageData, 0, 0);
+ }
+ }
+ catch (e) {
+ Util.error('Unable to apply filter. ' +
+ e.message +
+ ' This post my help you https://konvajs.org/docs/posts/Tainted_Canvas.html.');
+ }
+ this._filterUpToDate = true;
+ }
+ return filterCanvas;
+ }
+ return sceneCanvas;
+ };
+ /**
+ * bind events to the node. KonvaJS supports mouseover, mousemove,
+ * mouseout, mouseenter, mouseleave, mousedown, mouseup, wheel, contextmenu, click, dblclick, touchstart, touchmove,
+ * touchend, tap, dbltap, dragstart, dragmove, and dragend events.
+ * Pass in a string of events delimited by a space to bind multiple events at once
+ * such as 'mousedown mouseup mousemove'. Include a namespace to bind an
+ * event by name such as 'click.foobar'.
+ * @method
+ * @name Konva.Node#on
+ * @param {String} evtStr e.g. 'click', 'mousedown touchstart', 'mousedown.foo touchstart.foo'
+ * @param {Function} handler The handler function is passed an event object
+ * @returns {Konva.Node}
+ * @example
+ * // add click listener
+ * node.on('click', function() {
+ * console.log('you clicked me!');
+ * });
+ *
+ * // get the target node
+ * node.on('click', function(evt) {
+ * console.log(evt.target);
+ * });
+ *
+ * // stop event propagation
+ * node.on('click', function(evt) {
+ * evt.cancelBubble = true;
+ * });
+ *
+ * // bind multiple listeners
+ * node.on('click touchstart', function() {
+ * console.log('you clicked/touched me!');
+ * });
+ *
+ * // namespace listener
+ * node.on('click.foo', function() {
+ * console.log('you clicked/touched me!');
+ * });
+ *
+ * // get the event type
+ * node.on('click tap', function(evt) {
+ * var eventType = evt.type;
+ * });
+ *
+ * // get native event object
+ * node.on('click tap', function(evt) {
+ * var nativeEvent = evt.evt;
+ * });
+ *
+ * // for change events, get the old and new val
+ * node.on('xChange', function(evt) {
+ * var oldVal = evt.oldVal;
+ * var newVal = evt.newVal;
+ * });
+ *
+ * // get event targets
+ * // with event delegations
+ * layer.on('click', 'Group', function(evt) {
+ * var shape = evt.target;
+ * var group = evt.currentTarget;
+ * });
+ */
+ Node.prototype.on = function (evtStr, handler) {
+ if (arguments.length === 3) {
+ return this._delegate.apply(this, arguments);
+ }
+ var events = evtStr.split(SPACE), len = events.length, n, event, parts, baseEvent, name;
+ /*
+ * loop through types and attach event listeners to
+ * each one. eg. 'click mouseover.namespace mouseout'
+ * will create three event bindings
+ */
+ for (n = 0; n < len; n++) {
+ event = events[n];
+ parts = event.split('.');
+ baseEvent = parts[0];
+ name = parts[1] || '';
+ // create events array if it doesn't exist
+ if (!this.eventListeners[baseEvent]) {
+ this.eventListeners[baseEvent] = [];
+ }
+ this.eventListeners[baseEvent].push({
+ name: name,
+ handler: handler,
+ });
+ }
+ return this;
+ };
+ /**
+ * remove event bindings from the node. Pass in a string of
+ * event types delimmited by a space to remove multiple event
+ * bindings at once such as 'mousedown mouseup mousemove'.
+ * include a namespace to remove an event binding by name
+ * such as 'click.foobar'. If you only give a name like '.foobar',
+ * all events in that namespace will be removed.
+ * @method
+ * @name Konva.Node#off
+ * @param {String} evtStr e.g. 'click', 'mousedown touchstart', '.foobar'
+ * @returns {Konva.Node}
+ * @example
+ * // remove listener
+ * node.off('click');
+ *
+ * // remove multiple listeners
+ * node.off('click touchstart');
+ *
+ * // remove listener by name
+ * node.off('click.foo');
+ */
+ Node.prototype.off = function (evtStr, callback) {
+ var events = (evtStr || '').split(SPACE), len = events.length, n, t, event, parts, baseEvent, name;
+ if (!evtStr) {
+ // remove all events
+ for (t in this.eventListeners) {
+ this._off(t);
+ }
+ }
+ for (n = 0; n < len; n++) {
+ event = events[n];
+ parts = event.split('.');
+ baseEvent = parts[0];
+ name = parts[1];
+ if (baseEvent) {
+ if (this.eventListeners[baseEvent]) {
+ this._off(baseEvent, name, callback);
+ }
+ }
+ else {
+ for (t in this.eventListeners) {
+ this._off(t, name, callback);
+ }
+ }
+ }
+ return this;
+ };
+ // some event aliases for third party integration like HammerJS
+ Node.prototype.dispatchEvent = function (evt) {
+ var e = {
+ target: this,
+ type: evt.type,
+ evt: evt,
+ };
+ this.fire(evt.type, e);
+ return this;
+ };
+ Node.prototype.addEventListener = function (type, handler) {
+ // we have to pass native event to handler
+ this.on(type, function (evt) {
+ handler.call(this, evt.evt);
+ });
+ return this;
+ };
+ Node.prototype.removeEventListener = function (type) {
+ this.off(type);
+ return this;
+ };
+ // like node.on
+ Node.prototype._delegate = function (event, selector, handler) {
+ var stopNode = this;
+ this.on(event, function (evt) {
+ var targets = evt.target.findAncestors(selector, true, stopNode);
+ for (var i = 0; i < targets.length; i++) {
+ evt = Util.cloneObject(evt);
+ evt.currentTarget = targets[i];
+ handler.call(targets[i], evt);
+ }
+ });
+ };
+ /**
+ * remove a node from parent, but don't destroy. You can reuse the node later.
+ * @method
+ * @name Konva.Node#remove
+ * @returns {Konva.Node}
+ * @example
+ * node.remove();
+ */
+ Node.prototype.remove = function () {
+ if (this.isDragging()) {
+ this.stopDrag();
+ }
+ // we can have drag element but that is not dragged yet
+ // so just clear it
+ DD._dragElements.delete(this._id);
+ this._remove();
+ return this;
+ };
+ Node.prototype._clearCaches = function () {
+ this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);
+ this._clearSelfAndDescendantCache(ABSOLUTE_OPACITY);
+ this._clearSelfAndDescendantCache(ABSOLUTE_SCALE);
+ this._clearSelfAndDescendantCache(STAGE);
+ this._clearSelfAndDescendantCache(VISIBLE);
+ this._clearSelfAndDescendantCache(LISTENING);
+ };
+ Node.prototype._remove = function () {
+ // every cached attr that is calculated via node tree
+ // traversal must be cleared when removing a node
+ this._clearCaches();
+ var parent = this.getParent();
+ if (parent && parent.children) {
+ parent.children.splice(this.index, 1);
+ parent._setChildrenIndices();
+ this.parent = null;
+ }
+ };
+ /**
+ * remove and destroy a node. Kill it and delete forever! You should not reuse node after destroy().
+ * If the node is a container (Group, Stage or Layer) it will destroy all children too.
+ * @method
+ * @name Konva.Node#destroy
+ * @example
+ * node.destroy();
+ */
+ Node.prototype.destroy = function () {
+ // remove from ids and names hashes
+ _removeId(this.id(), this);
+ // remove all names
+ var names = (this.name() || '').split(/\s/g);
+ for (var i = 0; i < names.length; i++) {
+ var subname = names[i];
+ _removeName(subname, this._id);
+ }
+ this.remove();
+ return this;
+ };
+ /**
+ * get attr
+ * @method
+ * @name Konva.Node#getAttr
+ * @param {String} attr
+ * @returns {Integer|String|Object|Array}
+ * @example
+ * var x = node.getAttr('x');
+ */
+ Node.prototype.getAttr = function (attr) {
+ var method = 'get' + Util._capitalize(attr);
+ if (Util._isFunction(this[method])) {
+ return this[method]();
+ }
+ // otherwise get directly
+ return this.attrs[attr];
+ };
+ /**
+ * get ancestors
+ * @method
+ * @name Konva.Node#getAncestors
+ * @returns {Konva.Collection}
+ * @example
+ * shape.getAncestors().each(function(node) {
+ * console.log(node.getId());
+ * })
+ */
+ Node.prototype.getAncestors = function () {
+ var parent = this.getParent(), ancestors = new Collection();
+ while (parent) {
+ ancestors.push(parent);
+ parent = parent.getParent();
+ }
+ return ancestors;
+ };
+ /**
+ * get attrs object literal
+ * @method
+ * @name Konva.Node#getAttrs
+ * @returns {Object}
+ */
+ Node.prototype.getAttrs = function () {
+ return this.attrs || {};
+ };
+ /**
+ * set multiple attrs at once using an object literal
+ * @method
+ * @name Konva.Node#setAttrs
+ * @param {Object} config object containing key value pairs
+ * @returns {Konva.Node}
+ * @example
+ * node.setAttrs({
+ * x: 5,
+ * fill: 'red'
+ * });
+ */
+ Node.prototype.setAttrs = function (config) {
+ var _this = this;
+ this._batchTransformChanges(function () {
+ var key, method;
+ if (!config) {
+ return _this;
+ }
+ for (key in config) {
+ if (key === CHILDREN) {
+ continue;
+ }
+ method = SET$1 + Util._capitalize(key);
+ // use setter if available
+ if (Util._isFunction(_this[method])) {
+ _this[method](config[key]);
+ }
+ else {
+ // otherwise set directly
+ _this._setAttr(key, config[key]);
+ }
+ }
+ });
+ return this;
+ };
+ /**
+ * determine if node is listening for events by taking into account ancestors.
+ *
+ * Parent | Self | isListening
+ * listening | listening |
+ * ----------+-----------+------------
+ * T | T | T
+ * T | F | F
+ * F | T | F
+ * F | F | F
+ *
+ * @method
+ * @name Konva.Node#isListening
+ * @returns {Boolean}
+ */
+ Node.prototype.isListening = function () {
+ return this._getCache(LISTENING, this._isListening);
+ };
+ Node.prototype._isListening = function (relativeTo) {
+ var listening = this.listening();
+ if (!listening) {
+ return false;
+ }
+ var parent = this.getParent();
+ if (parent && parent !== relativeTo && this !== relativeTo) {
+ return parent._isListening(relativeTo);
+ }
+ else {
+ return true;
+ }
+ };
+ /**
+ * determine if node is visible by taking into account ancestors.
+ *
+ * Parent | Self | isVisible
+ * visible | visible |
+ * ----------+-----------+------------
+ * T | T | T
+ * T | F | F
+ * F | T | F
+ * F | F | F
+ * @method
+ * @name Konva.Node#isVisible
+ * @returns {Boolean}
+ */
+ Node.prototype.isVisible = function () {
+ return this._getCache(VISIBLE, this._isVisible);
+ };
+ Node.prototype._isVisible = function (relativeTo) {
+ var visible = this.visible();
+ if (!visible) {
+ return false;
+ }
+ var parent = this.getParent();
+ if (parent && parent !== relativeTo && this !== relativeTo) {
+ return parent._isVisible(relativeTo);
+ }
+ else {
+ return true;
+ }
+ };
+ Node.prototype.shouldDrawHit = function (top) {
+ if (top) {
+ return this._isVisible(top) && this._isListening(top);
+ }
+ var layer = this.getLayer();
+ var layerUnderDrag = false;
+ DD._dragElements.forEach(function (elem) {
+ if (elem.dragStatus === 'dragging' && elem.node.getLayer() === layer) {
+ layerUnderDrag = true;
+ }
+ });
+ var dragSkip = !Konva.hitOnDragEnabled && layerUnderDrag;
+ return this.isListening() && this.isVisible() && !dragSkip;
+ };
+ /**
+ * show node. set visible = true
+ * @method
+ * @name Konva.Node#show
+ * @returns {Konva.Node}
+ */
+ Node.prototype.show = function () {
+ this.visible(true);
+ return this;
+ };
+ /**
+ * hide node. Hidden nodes are no longer detectable
+ * @method
+ * @name Konva.Node#hide
+ * @returns {Konva.Node}
+ */
+ Node.prototype.hide = function () {
+ this.visible(false);
+ return this;
+ };
+ Node.prototype.getZIndex = function () {
+ return this.index || 0;
+ };
+ /**
+ * get absolute z-index which takes into account sibling
+ * and ancestor indices
+ * @method
+ * @name Konva.Node#getAbsoluteZIndex
+ * @returns {Integer}
+ */
+ Node.prototype.getAbsoluteZIndex = function () {
+ var depth = this.getDepth(), that = this, index = 0, nodes, len, n, child;
+ function addChildren(children) {
+ nodes = [];
+ len = children.length;
+ for (n = 0; n < len; n++) {
+ child = children[n];
+ index++;
+ if (child.nodeType !== SHAPE) {
+ nodes = nodes.concat(child.getChildren().toArray());
+ }
+ if (child._id === that._id) {
+ n = len;
+ }
+ }
+ if (nodes.length > 0 && nodes[0].getDepth() <= depth) {
+ addChildren(nodes);
+ }
+ }
+ if (that.nodeType !== UPPER_STAGE) {
+ addChildren(that.getStage().getChildren());
+ }
+ return index;
+ };
+ /**
+ * get node depth in node tree. Returns an integer.
+ * e.g. Stage depth will always be 0. Layers will always be 1. Groups and Shapes will always
+ * be >= 2
+ * @method
+ * @name Konva.Node#getDepth
+ * @returns {Integer}
+ */
+ Node.prototype.getDepth = function () {
+ var depth = 0, parent = this.parent;
+ while (parent) {
+ depth++;
+ parent = parent.parent;
+ }
+ return depth;
+ };
+ // sometimes we do several attributes changes
+ // like node.position(pos)
+ // for performance reasons, lets batch transform reset
+ // so it work faster
+ Node.prototype._batchTransformChanges = function (func) {
+ this._batchingTransformChange = true;
+ func();
+ this._batchingTransformChange = false;
+ if (this._needClearTransformCache) {
+ this._clearCache(TRANSFORM);
+ this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM, true);
+ }
+ this._needClearTransformCache = false;
+ };
+ Node.prototype.setPosition = function (pos) {
+ var _this = this;
+ this._batchTransformChanges(function () {
+ _this.x(pos.x);
+ _this.y(pos.y);
+ });
+ return this;
+ };
+ Node.prototype.getPosition = function () {
+ return {
+ x: this.x(),
+ y: this.y(),
+ };
+ };
+ Node.prototype.getAbsolutePosition = function (top) {
+ var haveCachedParent = false;
+ var parent = this.parent;
+ while (parent) {
+ if (parent.isCached()) {
+ haveCachedParent = true;
+ break;
+ }
+ parent = parent.parent;
+ }
+ if (haveCachedParent && !top) {
+ // make fake top element
+ // "true" is not a node, but it will just allow skip all caching
+ top = true;
+ }
+ var absoluteMatrix = this.getAbsoluteTransform(top).getMatrix(), absoluteTransform = new Transform(), offset = this.offset();
+ // clone the matrix array
+ absoluteTransform.m = absoluteMatrix.slice();
+ absoluteTransform.translate(offset.x, offset.y);
+ return absoluteTransform.getTranslation();
+ };
+ Node.prototype.setAbsolutePosition = function (pos) {
+ var origTrans = this._clearTransform();
+ // don't clear translation
+ this.attrs.x = origTrans.x;
+ this.attrs.y = origTrans.y;
+ delete origTrans.x;
+ delete origTrans.y;
+ // important, use non cached value
+ this._clearCache(TRANSFORM);
+ var it = this._getAbsoluteTransform().copy();
+ it.invert();
+ it.translate(pos.x, pos.y);
+ pos = {
+ x: this.attrs.x + it.getTranslation().x,
+ y: this.attrs.y + it.getTranslation().y,
+ };
+ this._setTransform(origTrans);
+ this.setPosition({ x: pos.x, y: pos.y });
+ this._clearCache(TRANSFORM);
+ this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);
+ return this;
+ };
+ Node.prototype._setTransform = function (trans) {
+ var key;
+ for (key in trans) {
+ this.attrs[key] = trans[key];
+ }
+ // this._clearCache(TRANSFORM);
+ // this._clearSelfAndDescendantCache(ABSOLUTE_TRANSFORM);
+ };
+ Node.prototype._clearTransform = function () {
+ var trans = {
+ x: this.x(),
+ y: this.y(),
+ rotation: this.rotation(),
+ scaleX: this.scaleX(),
+ scaleY: this.scaleY(),
+ offsetX: this.offsetX(),
+ offsetY: this.offsetY(),
+ skewX: this.skewX(),
+ skewY: this.skewY(),
+ };
+ this.attrs.x = 0;
+ this.attrs.y = 0;
+ this.attrs.rotation = 0;
+ this.attrs.scaleX = 1;
+ this.attrs.scaleY = 1;
+ this.attrs.offsetX = 0;
+ this.attrs.offsetY = 0;
+ this.attrs.skewX = 0;
+ this.attrs.skewY = 0;
+ // return original transform
+ return trans;
+ };
+ /**
+ * move node by an amount relative to its current position
+ * @method
+ * @name Konva.Node#move
+ * @param {Object} change
+ * @param {Number} change.x
+ * @param {Number} change.y
+ * @returns {Konva.Node}
+ * @example
+ * // move node in x direction by 1px and y direction by 2px
+ * node.move({
+ * x: 1,
+ * y: 2
+ * });
+ */
+ Node.prototype.move = function (change) {
+ var changeX = change.x, changeY = change.y, x = this.x(), y = this.y();
+ if (changeX !== undefined) {
+ x += changeX;
+ }
+ if (changeY !== undefined) {
+ y += changeY;
+ }
+ this.setPosition({ x: x, y: y });
+ return this;
+ };
+ Node.prototype._eachAncestorReverse = function (func, top) {
+ var family = [], parent = this.getParent(), len, n;
+ // if top node is defined, and this node is top node,
+ // there's no need to build a family tree. just execute
+ // func with this because it will be the only node
+ if (top && top._id === this._id) {
+ func(this);
+ return;
+ }
+ family.unshift(this);
+ while (parent && (!top || parent._id !== top._id)) {
+ family.unshift(parent);
+ parent = parent.parent;
+ }
+ len = family.length;
+ for (n = 0; n < len; n++) {
+ func(family[n]);
+ }
+ };
+ /**
+ * rotate node by an amount in degrees relative to its current rotation
+ * @method
+ * @name Konva.Node#rotate
+ * @param {Number} theta
+ * @returns {Konva.Node}
+ */
+ Node.prototype.rotate = function (theta) {
+ this.rotation(this.rotation() + theta);
+ return this;
+ };
+ /**
+ * move node to the top of its siblings
+ * @method
+ * @name Konva.Node#moveToTop
+ * @returns {Boolean}
+ */
+ Node.prototype.moveToTop = function () {
+ if (!this.parent) {
+ Util.warn('Node has no parent. moveToTop function is ignored.');
+ return false;
+ }
+ var index = this.index;
+ this.parent.children.splice(index, 1);
+ this.parent.children.push(this);
+ this.parent._setChildrenIndices();
+ return true;
+ };
+ /**
+ * move node up
+ * @method
+ * @name Konva.Node#moveUp
+ * @returns {Boolean} flag is moved or not
+ */
+ Node.prototype.moveUp = function () {
+ if (!this.parent) {
+ Util.warn('Node has no parent. moveUp function is ignored.');
+ return false;
+ }
+ var index = this.index, len = this.parent.getChildren().length;
+ if (index < len - 1) {
+ this.parent.children.splice(index, 1);
+ this.parent.children.splice(index + 1, 0, this);
+ this.parent._setChildrenIndices();
+ return true;
+ }
+ return false;
+ };
+ /**
+ * move node down
+ * @method
+ * @name Konva.Node#moveDown
+ * @returns {Boolean}
+ */
+ Node.prototype.moveDown = function () {
+ if (!this.parent) {
+ Util.warn('Node has no parent. moveDown function is ignored.');
+ return false;
+ }
+ var index = this.index;
+ if (index > 0) {
+ this.parent.children.splice(index, 1);
+ this.parent.children.splice(index - 1, 0, this);
+ this.parent._setChildrenIndices();
+ return true;
+ }
+ return false;
+ };
+ /**
+ * move node to the bottom of its siblings
+ * @method
+ * @name Konva.Node#moveToBottom
+ * @returns {Boolean}
+ */
+ Node.prototype.moveToBottom = function () {
+ if (!this.parent) {
+ Util.warn('Node has no parent. moveToBottom function is ignored.');
+ return false;
+ }
+ var index = this.index;
+ if (index > 0) {
+ this.parent.children.splice(index, 1);
+ this.parent.children.unshift(this);
+ this.parent._setChildrenIndices();
+ return true;
+ }
+ return false;
+ };
+ Node.prototype.setZIndex = function (zIndex) {
+ if (!this.parent) {
+ Util.warn('Node has no parent. zIndex parameter is ignored.');
+ return this;
+ }
+ if (zIndex < 0 || zIndex >= this.parent.children.length) {
+ Util.warn('Unexpected value ' +
+ zIndex +
+ ' for zIndex property. zIndex is just index of a node in children of its parent. Expected value is from 0 to ' +
+ (this.parent.children.length - 1) +
+ '.');
+ }
+ var index = this.index;
+ this.parent.children.splice(index, 1);
+ this.parent.children.splice(zIndex, 0, this);
+ this.parent._setChildrenIndices();
+ return this;
+ };
+ /**
+ * get absolute opacity
+ * @method
+ * @name Konva.Node#getAbsoluteOpacity
+ * @returns {Number}
+ */
+ Node.prototype.getAbsoluteOpacity = function () {
+ return this._getCache(ABSOLUTE_OPACITY, this._getAbsoluteOpacity);
+ };
+ Node.prototype._getAbsoluteOpacity = function () {
+ var absOpacity = this.opacity();
+ var parent = this.getParent();
+ if (parent && !parent._isUnderCache) {
+ absOpacity *= parent.getAbsoluteOpacity();
+ }
+ return absOpacity;
+ };
+ /**
+ * move node to another container
+ * @method
+ * @name Konva.Node#moveTo
+ * @param {Container} newContainer
+ * @returns {Konva.Node}
+ * @example
+ * // move node from current layer into layer2
+ * node.moveTo(layer2);
+ */
+ Node.prototype.moveTo = function (newContainer) {
+ // do nothing if new container is already parent
+ if (this.getParent() !== newContainer) {
+ this._remove();
+ newContainer.add(this);
+ }
+ return this;
+ };
+ /**
+ * convert Node into an object for serialization. Returns an object.
+ * @method
+ * @name Konva.Node#toObject
+ * @returns {Object}
+ */
+ Node.prototype.toObject = function () {
+ var obj = {}, attrs = this.getAttrs(), key, val, getter, defaultValue, nonPlainObject;
+ obj.attrs = {};
+ for (key in attrs) {
+ val = attrs[key];
+ // if value is object and object is not plain
+ // like class instance, we should skip it and to not include
+ nonPlainObject =
+ Util.isObject(val) && !Util._isPlainObject(val) && !Util._isArray(val);
+ if (nonPlainObject) {
+ continue;
+ }
+ getter = typeof this[key] === 'function' && this[key];
+ // remove attr value so that we can extract the default value from the getter
+ delete attrs[key];
+ defaultValue = getter ? getter.call(this) : null;
+ // restore attr value
+ attrs[key] = val;
+ if (defaultValue !== val) {
+ obj.attrs[key] = val;
+ }
+ }
+ obj.className = this.getClassName();
+ return Util._prepareToStringify(obj);
+ };
+ /**
+ * convert Node into a JSON string. Returns a JSON string.
+ * @method
+ * @name Konva.Node#toJSON
+ * @returns {String}
+ */
+ Node.prototype.toJSON = function () {
+ return JSON.stringify(this.toObject());
+ };
+ /**
+ * get parent container
+ * @method
+ * @name Konva.Node#getParent
+ * @returns {Konva.Node}
+ */
+ Node.prototype.getParent = function () {
+ return this.parent;
+ };
+ /**
+ * get all ancestors (parent then parent of the parent, etc) of the node
+ * @method
+ * @name Konva.Node#findAncestors
+ * @param {String} selector selector for search
+ * @param {Boolean} [includeSelf] show we think that node is ancestro itself?
+ * @param {Konva.Node} [stopNode] optional node where we need to stop searching (one of ancestors)
+ * @returns {Array} [ancestors]
+ * @example
+ * // get one of the parent group
+ * var parentGroups = node.findAncestors('Group');
+ */
+ Node.prototype.findAncestors = function (selector, includeSelf, stopNode) {
+ var res = [];
+ if (includeSelf && this._isMatch(selector)) {
+ res.push(this);
+ }
+ var ancestor = this.parent;
+ while (ancestor) {
+ if (ancestor === stopNode) {
+ return res;
+ }
+ if (ancestor._isMatch(selector)) {
+ res.push(ancestor);
+ }
+ ancestor = ancestor.parent;
+ }
+ return res;
+ };
+ Node.prototype.isAncestorOf = function (node) {
+ return false;
+ };
+ /**
+ * get ancestor (parent or parent of the parent, etc) of the node that match passed selector
+ * @method
+ * @name Konva.Node#findAncestor
+ * @param {String} selector selector for search
+ * @param {Boolean} [includeSelf] show we think that node is ancestro itself?
+ * @param {Konva.Node} [stopNode] optional node where we need to stop searching (one of ancestors)
+ * @returns {Konva.Node} ancestor
+ * @example
+ * // get one of the parent group
+ * var group = node.findAncestors('.mygroup');
+ */
+ Node.prototype.findAncestor = function (selector, includeSelf, stopNode) {
+ return this.findAncestors(selector, includeSelf, stopNode)[0];
+ };
+ // is current node match passed selector?
+ Node.prototype._isMatch = function (selector) {
+ if (!selector) {
+ return false;
+ }
+ if (typeof selector === 'function') {
+ return selector(this);
+ }
+ var selectorArr = selector.replace(/ /g, '').split(','), len = selectorArr.length, n, sel;
+ for (n = 0; n < len; n++) {
+ sel = selectorArr[n];
+ if (!Util.isValidSelector(sel)) {
+ Util.warn('Selector "' +
+ sel +
+ '" is invalid. Allowed selectors examples are "#foo", ".bar" or "Group".');
+ Util.warn('If you have a custom shape with such className, please change it to start with upper letter like "Triangle".');
+ Util.warn('Konva is awesome, right?');
+ }
+ // id selector
+ if (sel.charAt(0) === '#') {
+ if (this.id() === sel.slice(1)) {
+ return true;
+ }
+ }
+ else if (sel.charAt(0) === '.') {
+ // name selector
+ if (this.hasName(sel.slice(1))) {
+ return true;
+ }
+ }
+ else if (this.className === sel || this.nodeType === sel) {
+ return true;
+ }
+ }
+ return false;
+ };
+ /**
+ * get layer ancestor
+ * @method
+ * @name Konva.Node#getLayer
+ * @returns {Konva.Layer}
+ */
+ Node.prototype.getLayer = function () {
+ var parent = this.getParent();
+ return parent ? parent.getLayer() : null;
+ };
+ /**
+ * get stage ancestor
+ * @method
+ * @name Konva.Node#getStage
+ * @returns {Konva.Stage}
+ */
+ Node.prototype.getStage = function () {
+ return this._getCache(STAGE, this._getStage);
+ };
+ Node.prototype._getStage = function () {
+ var parent = this.getParent();
+ if (parent) {
+ return parent.getStage();
+ }
+ else {
+ return undefined;
+ }
+ };
+ /**
+ * fire event
+ * @method
+ * @name Konva.Node#fire
+ * @param {String} eventType event type. can be a regular event, like click, mouseover, or mouseout, or it can be a custom event, like myCustomEvent
+ * @param {Event} [evt] event object
+ * @param {Boolean} [bubble] setting the value to false, or leaving it undefined, will result in the event
+ * not bubbling. Setting the value to true will result in the event bubbling.
+ * @returns {Konva.Node}
+ * @example
+ * // manually fire click event
+ * node.fire('click');
+ *
+ * // fire custom event
+ * node.fire('foo');
+ *
+ * // fire custom event with custom event object
+ * node.fire('foo', {
+ * bar: 10
+ * });
+ *
+ * // fire click event that bubbles
+ * node.fire('click', null, true);
+ */
+ Node.prototype.fire = function (eventType, evt, bubble) {
+ if (evt === void 0) { evt = {}; }
+ evt.target = evt.target || this;
+ // bubble
+ if (bubble) {
+ this._fireAndBubble(eventType, evt);
+ }
+ else {
+ // no bubble
+ this._fire(eventType, evt);
+ }
+ return this;
+ };
+ /**
+ * get absolute transform of the node which takes into
+ * account its ancestor transforms
+ * @method
+ * @name Konva.Node#getAbsoluteTransform
+ * @returns {Konva.Transform}
+ */
+ Node.prototype.getAbsoluteTransform = function (top) {
+ // if using an argument, we can't cache the result.
+ if (top) {
+ return this._getAbsoluteTransform(top);
+ }
+ else {
+ // if no argument, we can cache the result
+ return this._getCache(ABSOLUTE_TRANSFORM, this._getAbsoluteTransform);
+ }
+ };
+ Node.prototype._getAbsoluteTransform = function (top) {
+ var at;
+ // we we need position relative to an ancestor, we will iterate for all
+ if (top) {
+ at = new Transform();
+ // start with stage and traverse downwards to self
+ this._eachAncestorReverse(function (node) {
+ var transformsEnabled = node.transformsEnabled();
+ if (transformsEnabled === 'all') {
+ at.multiply(node.getTransform());
+ }
+ else if (transformsEnabled === 'position') {
+ at.translate(node.x() - node.offsetX(), node.y() - node.offsetY());
+ }
+ }, top);
+ return at;
+ }
+ else {
+ // try to use a cached value
+ at = this._cache.get(ABSOLUTE_TRANSFORM) || new Transform();
+ if (this.parent) {
+ // transform will be cached
+ this.parent.getAbsoluteTransform().copyInto(at);
+ }
+ else {
+ at.reset();
+ }
+ var transformsEnabled = this.transformsEnabled();
+ if (transformsEnabled === 'all') {
+ at.multiply(this.getTransform());
+ }
+ else if (transformsEnabled === 'position') {
+ // use "attrs" directly, because it is a bit faster
+ var x = this.attrs.x || 0;
+ var y = this.attrs.y || 0;
+ var offsetX = this.attrs.offsetX || 0;
+ var offsetY = this.attrs.offsetY || 0;
+ at.translate(x - offsetX, y - offsetY);
+ }
+ at.dirty = false;
+ return at;
+ }
+ };
+ /**
+ * get absolute scale of the node which takes into
+ * account its ancestor scales
+ * @method
+ * @name Konva.Node#getAbsoluteScale
+ * @returns {Object}
+ * @example
+ * // get absolute scale x
+ * var scaleX = node.getAbsoluteScale().x;
+ */
+ Node.prototype.getAbsoluteScale = function (top) {
+ // do not cache this calculations,
+ // because it use cache transform
+ // this is special logic for caching with some shapes with shadow
+ var parent = this;
+ while (parent) {
+ if (parent._isUnderCache) {
+ top = parent;
+ }
+ parent = parent.getParent();
+ }
+ var transform = this.getAbsoluteTransform(top);
+ var attrs = transform.decompose();
+ return {
+ x: attrs.scaleX,
+ y: attrs.scaleY,
+ };
+ };
+ /**
+ * get absolute rotation of the node which takes into
+ * account its ancestor rotations
+ * @method
+ * @name Konva.Node#getAbsoluteRotation
+ * @returns {Number}
+ * @example
+ * // get absolute scale x
+ * var rotation = node.getAbsoluteRotation();
+ */
+ Node.prototype.getAbsoluteRotation = function () {
+ // var parent: Node = this;
+ // var rotation = 0;
+ // while (parent) {
+ // rotation += parent.rotation();
+ // parent = parent.getParent();
+ // }
+ // return rotation;
+ return this.getAbsoluteTransform().decompose().rotation;
+ };
+ /**
+ * get transform of the node
+ * @method
+ * @name Konva.Node#getTransform
+ * @returns {Konva.Transform}
+ */
+ Node.prototype.getTransform = function () {
+ return this._getCache(TRANSFORM, this._getTransform);
+ };
+ Node.prototype._getTransform = function () {
+ var _a, _b;
+ var m = this._cache.get(TRANSFORM) || new Transform();
+ m.reset();
+ // I was trying to use attributes directly here
+ // but it doesn't work for Transformer well
+ // because it overwrite x,y getters
+ var x = this.x(), y = this.y(), rotation = Konva.getAngle(this.rotation()), scaleX = (_a = this.attrs.scaleX) !== null && _a !== void 0 ? _a : 1, scaleY = (_b = this.attrs.scaleY) !== null && _b !== void 0 ? _b : 1, skewX = this.attrs.skewX || 0, skewY = this.attrs.skewY || 0, offsetX = this.attrs.offsetX || 0, offsetY = this.attrs.offsetY || 0;
+ if (x !== 0 || y !== 0) {
+ m.translate(x, y);
+ }
+ if (rotation !== 0) {
+ m.rotate(rotation);
+ }
+ if (skewX !== 0 || skewY !== 0) {
+ m.skew(skewX, skewY);
+ }
+ if (scaleX !== 1 || scaleY !== 1) {
+ m.scale(scaleX, scaleY);
+ }
+ if (offsetX !== 0 || offsetY !== 0) {
+ m.translate(-1 * offsetX, -1 * offsetY);
+ }
+ m.dirty = false;
+ return m;
+ };
+ /**
+ * clone node. Returns a new Node instance with identical attributes. You can also override
+ * the node properties with an object literal, enabling you to use an existing node as a template
+ * for another node
+ * @method
+ * @name Konva.Node#clone
+ * @param {Object} obj override attrs
+ * @returns {Konva.Node}
+ * @example
+ * // simple clone
+ * var clone = node.clone();
+ *
+ * // clone a node and override the x position
+ * var clone = rect.clone({
+ * x: 5
+ * });
+ */
+ Node.prototype.clone = function (obj) {
+ // instantiate new node
+ var attrs = Util.cloneObject(this.attrs), key, allListeners, len, n, listener;
+ // apply attr overrides
+ for (key in obj) {
+ attrs[key] = obj[key];
+ }
+ var node = new this.constructor(attrs);
+ // copy over listeners
+ for (key in this.eventListeners) {
+ allListeners = this.eventListeners[key];
+ len = allListeners.length;
+ for (n = 0; n < len; n++) {
+ listener = allListeners[n];
+ /*
+ * don't include konva namespaced listeners because
+ * these are generated by the constructors
+ */
+ if (listener.name.indexOf(KONVA) < 0) {
+ // if listeners array doesn't exist, then create it
+ if (!node.eventListeners[key]) {
+ node.eventListeners[key] = [];
+ }
+ node.eventListeners[key].push(listener);
+ }
+ }
+ }
+ return node;
+ };
+ Node.prototype._toKonvaCanvas = function (config) {
+ config = config || {};
+ var box = this.getClientRect();
+ var stage = this.getStage(), x = config.x !== undefined ? config.x : box.x, y = config.y !== undefined ? config.y : box.y, pixelRatio = config.pixelRatio || 1, canvas = new SceneCanvas({
+ width: config.width || box.width || (stage ? stage.width() : 0),
+ height: config.height || box.height || (stage ? stage.height() : 0),
+ pixelRatio: pixelRatio,
+ }), context = canvas.getContext();
+ context.save();
+ if (x || y) {
+ context.translate(-1 * x, -1 * y);
+ }
+ this.drawScene(canvas);
+ context.restore();
+ return canvas;
+ };
+ /**
+ * converts node into an canvas element.
+ * @method
+ * @name Konva.Node#toCanvas
+ * @param {Object} config
+ * @param {Function} config.callback function executed when the composite has completed
+ * @param {Number} [config.x] x position of canvas section
+ * @param {Number} [config.y] y position of canvas section
+ * @param {Number} [config.width] width of canvas section
+ * @param {Number} [config.height] height of canvas section
+ * @param {Number} [config.pixelRatio] pixelRatio of output canvas. Default is 1.
+ * You can use that property to increase quality of the image, for example for super hight quality exports
+ * or usage on retina (or similar) displays. pixelRatio will be used to multiply the size of exported image.
+ * If you export to 500x500 size with pixelRatio = 2, then produced image will have size 1000x1000.
+ * @example
+ * var canvas = node.toCanvas();
+ */
+ Node.prototype.toCanvas = function (config) {
+ return this._toKonvaCanvas(config)._canvas;
+ };
+ /**
+ * Creates a composite data URL (base64 string). If MIME type is not
+ * specified, then "image/png" will result. For "image/jpeg", specify a quality
+ * level as quality (range 0.0 - 1.0)
+ * @method
+ * @name Konva.Node#toDataURL
+ * @param {Object} config
+ * @param {String} [config.mimeType] can be "image/png" or "image/jpeg".
+ * "image/png" is the default
+ * @param {Number} [config.x] x position of canvas section
+ * @param {Number} [config.y] y position of canvas section
+ * @param {Number} [config.width] width of canvas section
+ * @param {Number} [config.height] height of canvas section
+ * @param {Number} [config.quality] jpeg quality. If using an "image/jpeg" mimeType,
+ * you can specify the quality from 0 to 1, where 0 is very poor quality and 1
+ * is very high quality
+ * @param {Number} [config.pixelRatio] pixelRatio of output image url. Default is 1.
+ * You can use that property to increase quality of the image, for example for super hight quality exports
+ * or usage on retina (or similar) displays. pixelRatio will be used to multiply the size of exported image.
+ * If you export to 500x500 size with pixelRatio = 2, then produced image will have size 1000x1000.
+ * @returns {String}
+ */
+ Node.prototype.toDataURL = function (config) {
+ config = config || {};
+ var mimeType = config.mimeType || null, quality = config.quality || null;
+ var url = this._toKonvaCanvas(config).toDataURL(mimeType, quality);
+ if (config.callback) {
+ config.callback(url);
+ }
+ return url;
+ };
+ /**
+ * converts node into an image. Since the toImage
+ * method is asynchronous, a callback is required. toImage is most commonly used
+ * to cache complex drawings as an image so that they don't have to constantly be redrawn
+ * @method
+ * @name Konva.Node#toImage
+ * @param {Object} config
+ * @param {Function} config.callback function executed when the composite has completed
+ * @param {String} [config.mimeType] can be "image/png" or "image/jpeg".
+ * "image/png" is the default
+ * @param {Number} [config.x] x position of canvas section
+ * @param {Number} [config.y] y position of canvas section
+ * @param {Number} [config.width] width of canvas section
+ * @param {Number} [config.height] height of canvas section
+ * @param {Number} [config.quality] jpeg quality. If using an "image/jpeg" mimeType,
+ * you can specify the quality from 0 to 1, where 0 is very poor quality and 1
+ * is very high quality
+ * @param {Number} [config.pixelRatio] pixelRatio of output image. Default is 1.
+ * You can use that property to increase quality of the image, for example for super hight quality exports
+ * or usage on retina (or similar) displays. pixelRatio will be used to multiply the size of exported image.
+ * If you export to 500x500 size with pixelRatio = 2, then produced image will have size 1000x1000.
+ * @example
+ * var image = node.toImage({
+ * callback(img) {
+ * // do stuff with img
+ * }
+ * });
+ */
+ Node.prototype.toImage = function (config) {
+ if (!config || !config.callback) {
+ throw 'callback required for toImage method config argument';
+ }
+ var callback = config.callback;
+ delete config.callback;
+ Util._urlToImage(this.toDataURL(config), function (img) {
+ callback(img);
+ });
+ };
+ Node.prototype.setSize = function (size) {
+ this.width(size.width);
+ this.height(size.height);
+ return this;
+ };
+ Node.prototype.getSize = function () {
+ return {
+ width: this.width(),
+ height: this.height(),
+ };
+ };
+ /**
+ * get class name, which may return Stage, Layer, Group, or shape class names like Rect, Circle, Text, etc.
+ * @method
+ * @name Konva.Node#getClassName
+ * @returns {String}
+ */
+ Node.prototype.getClassName = function () {
+ return this.className || this.nodeType;
+ };
+ /**
+ * get the node type, which may return Stage, Layer, Group, or Shape
+ * @method
+ * @name Konva.Node#getType
+ * @returns {String}
+ */
+ Node.prototype.getType = function () {
+ return this.nodeType;
+ };
+ Node.prototype.getDragDistance = function () {
+ // compare with undefined because we need to track 0 value
+ if (this.attrs.dragDistance !== undefined) {
+ return this.attrs.dragDistance;
+ }
+ else if (this.parent) {
+ return this.parent.getDragDistance();
+ }
+ else {
+ return Konva.dragDistance;
+ }
+ };
+ Node.prototype._off = function (type, name, callback) {
+ var evtListeners = this.eventListeners[type], i, evtName, handler;
+ for (i = 0; i < evtListeners.length; i++) {
+ evtName = evtListeners[i].name;
+ handler = evtListeners[i].handler;
+ // the following two conditions must be true in order to remove a handler:
+ // 1) the current event name cannot be konva unless the event name is konva
+ // this enables developers to force remove a konva specific listener for whatever reason
+ // 2) an event name is not specified, or if one is specified, it matches the current event name
+ if ((evtName !== 'konva' || name === 'konva') &&
+ (!name || evtName === name) &&
+ (!callback || callback === handler)) {
+ evtListeners.splice(i, 1);
+ if (evtListeners.length === 0) {
+ delete this.eventListeners[type];
+ break;
+ }
+ i--;
+ }
+ }
+ };
+ Node.prototype._fireChangeEvent = function (attr, oldVal, newVal) {
+ this._fire(attr + CHANGE, {
+ oldVal: oldVal,
+ newVal: newVal,
+ });
+ };
+ Node.prototype.setId = function (id) {
+ var oldId = this.id();
+ _removeId(oldId, this);
+ _addId(this, id);
+ this._setAttr('id', id);
+ return this;
+ };
+ Node.prototype.setName = function (name) {
+ var oldNames = (this.name() || '').split(/\s/g);
+ var newNames = (name || '').split(/\s/g);
+ var subname, i;
+ // remove all subnames
+ for (i = 0; i < oldNames.length; i++) {
+ subname = oldNames[i];
+ if (newNames.indexOf(subname) === -1 && subname) {
+ _removeName(subname, this._id);
+ }
+ }
+ // add new names
+ for (i = 0; i < newNames.length; i++) {
+ subname = newNames[i];
+ if (oldNames.indexOf(subname) === -1 && subname) {
+ _addName(this, subname);
+ }
+ }
+ this._setAttr(NAME, name);
+ return this;
+ };
+ /**
+ * add name to node
+ * @method
+ * @name Konva.Node#addName
+ * @param {String} name
+ * @returns {Konva.Node}
+ * @example
+ * node.name('red');
+ * node.addName('selected');
+ * node.name(); // return 'red selected'
+ */
+ Node.prototype.addName = function (name) {
+ if (!this.hasName(name)) {
+ var oldName = this.name();
+ var newName = oldName ? oldName + ' ' + name : name;
+ this.setName(newName);
+ }
+ return this;
+ };
+ /**
+ * check is node has name
+ * @method
+ * @name Konva.Node#hasName
+ * @param {String} name
+ * @returns {Boolean}
+ * @example
+ * node.name('red');
+ * node.hasName('red'); // return true
+ * node.hasName('selected'); // return false
+ * node.hasName(''); // return false
+ */
+ Node.prototype.hasName = function (name) {
+ if (!name) {
+ return false;
+ }
+ var fullName = this.name();
+ if (!fullName) {
+ return false;
+ }
+ // if name is '' the "names" will be [''], so I added extra check above
+ var names = (fullName || '').split(/\s/g);
+ return names.indexOf(name) !== -1;
+ };
+ /**
+ * remove name from node
+ * @method
+ * @name Konva.Node#removeName
+ * @param {String} name
+ * @returns {Konva.Node}
+ * @example
+ * node.name('red selected');
+ * node.removeName('selected');
+ * node.hasName('selected'); // return false
+ * node.name(); // return 'red'
+ */
+ Node.prototype.removeName = function (name) {
+ var names = (this.name() || '').split(/\s/g);
+ var index = names.indexOf(name);
+ if (index !== -1) {
+ names.splice(index, 1);
+ this.setName(names.join(' '));
+ }
+ return this;
+ };
+ /**
+ * set attr
+ * @method
+ * @name Konva.Node#setAttr
+ * @param {String} attr
+ * @param {*} val
+ * @returns {Konva.Node}
+ * @example
+ * node.setAttr('x', 5);
+ */
+ Node.prototype.setAttr = function (attr, val) {
+ var func = this[SET$1 + Util._capitalize(attr)];
+ if (Util._isFunction(func)) {
+ func.call(this, val);
+ }
+ else {
+ // otherwise set directly
+ this._setAttr(attr, val);
+ }
+ return this;
+ };
+ Node.prototype._setAttr = function (key, val) {
+ var oldVal = this.attrs[key];
+ if (oldVal === val && !Util.isObject(val)) {
+ return;
+ }
+ if (val === undefined || val === null) {
+ delete this.attrs[key];
+ }
+ else {
+ this.attrs[key] = val;
+ }
+ this._fireChangeEvent(key, oldVal, val);
+ };
+ Node.prototype._setComponentAttr = function (key, component, val) {
+ var oldVal;
+ if (val !== undefined) {
+ oldVal = this.attrs[key];
+ if (!oldVal) {
+ // set value to default value using getAttr
+ this.attrs[key] = this.getAttr(key);
+ }
+ this.attrs[key][component] = val;
+ this._fireChangeEvent(key, oldVal, val);
+ }
+ };
+ Node.prototype._fireAndBubble = function (eventType, evt, compareShape) {
+ if (evt && this.nodeType === SHAPE) {
+ evt.target = this;
+ }
+ var shouldStop = (eventType === MOUSEENTER || eventType === MOUSELEAVE) &&
+ ((compareShape &&
+ (this === compareShape ||
+ (this.isAncestorOf && this.isAncestorOf(compareShape)))) ||
+ (this.nodeType === 'Stage' && !compareShape));
+ if (!shouldStop) {
+ this._fire(eventType, evt);
+ // simulate event bubbling
+ var stopBubble = (eventType === MOUSEENTER || eventType === MOUSELEAVE) &&
+ compareShape &&
+ compareShape.isAncestorOf &&
+ compareShape.isAncestorOf(this) &&
+ !compareShape.isAncestorOf(this.parent);
+ if (((evt && !evt.cancelBubble) || !evt) &&
+ this.parent &&
+ this.parent.isListening() &&
+ !stopBubble) {
+ if (compareShape && compareShape.parent) {
+ this._fireAndBubble.call(this.parent, eventType, evt, compareShape);
+ }
+ else {
+ this._fireAndBubble.call(this.parent, eventType, evt);
+ }
+ }
+ }
+ };
+ Node.prototype._fire = function (eventType, evt) {
+ var events = this.eventListeners[eventType], i;
+ if (events) {
+ evt = evt || {};
+ evt.currentTarget = this;
+ evt.type = eventType;
+ for (i = 0; i < events.length; i++) {
+ events[i].handler.call(this, evt);
+ }
+ }
+ };
+ /**
+ * draw both scene and hit graphs. If the node being drawn is the stage, all of the layers will be cleared and redrawn
+ * @method
+ * @name Konva.Node#draw
+ * @returns {Konva.Node}
+ */
+ Node.prototype.draw = function () {
+ this.drawScene();
+ this.drawHit();
+ return this;
+ };
+ // drag & drop
+ Node.prototype._createDragElement = function (evt) {
+ var pointerId = evt ? evt.pointerId : undefined;
+ var stage = this.getStage();
+ var ap = this.getAbsolutePosition();
+ var pos = stage._getPointerById(pointerId) ||
+ stage._changedPointerPositions[0] ||
+ ap;
+ DD._dragElements.set(this._id, {
+ node: this,
+ startPointerPos: pos,
+ offset: {
+ x: pos.x - ap.x,
+ y: pos.y - ap.y,
+ },
+ dragStatus: 'ready',
+ pointerId: pointerId,
+ });
+ };
+ /**
+ * initiate drag and drop.
+ * @method
+ * @name Konva.Node#startDrag
+ */
+ Node.prototype.startDrag = function (evt) {
+ if (!DD._dragElements.has(this._id)) {
+ this._createDragElement(evt);
+ }
+ var elem = DD._dragElements.get(this._id);
+ elem.dragStatus = 'dragging';
+ this.fire('dragstart', {
+ type: 'dragstart',
+ target: this,
+ evt: evt && evt.evt,
+ }, true);
+ };
+ Node.prototype._setDragPosition = function (evt, elem) {
+ // const pointers = this.getStage().getPointersPositions();
+ // const pos = pointers.find(p => p.id === this._dragEventId);
+ var pos = this.getStage()._getPointerById(elem.pointerId);
+ if (!pos) {
+ return;
+ }
+ var newNodePos = {
+ x: pos.x - elem.offset.x,
+ y: pos.y - elem.offset.y,
+ };
+ var dbf = this.dragBoundFunc();
+ if (dbf !== undefined) {
+ var bounded = dbf.call(this, newNodePos, evt);
+ if (!bounded) {
+ Util.warn('dragBoundFunc did not return any value. That is unexpected behavior. You must return new absolute position from dragBoundFunc.');
+ }
+ else {
+ newNodePos = bounded;
+ }
+ }
+ if (!this._lastPos ||
+ this._lastPos.x !== newNodePos.x ||
+ this._lastPos.y !== newNodePos.y) {
+ this.setAbsolutePosition(newNodePos);
+ if (this.getLayer()) {
+ this.getLayer().batchDraw();
+ }
+ else if (this.getStage()) {
+ this.getStage().batchDraw();
+ }
+ }
+ this._lastPos = newNodePos;
+ };
+ /**
+ * stop drag and drop
+ * @method
+ * @name Konva.Node#stopDrag
+ */
+ Node.prototype.stopDrag = function (evt) {
+ var elem = DD._dragElements.get(this._id);
+ if (elem) {
+ elem.dragStatus = 'stopped';
+ }
+ DD._endDragBefore(evt);
+ DD._endDragAfter(evt);
+ };
+ Node.prototype.setDraggable = function (draggable) {
+ this._setAttr('draggable', draggable);
+ this._dragChange();
+ };
+ /**
+ * determine if node is currently in drag and drop mode
+ * @method
+ * @name Konva.Node#isDragging
+ */
+ Node.prototype.isDragging = function () {
+ var elem = DD._dragElements.get(this._id);
+ return elem ? elem.dragStatus === 'dragging' : false;
+ };
+ Node.prototype._listenDrag = function () {
+ this._dragCleanup();
+ this.on('mousedown.konva touchstart.konva', function (evt) {
+ var _this = this;
+ var shouldCheckButton = evt.evt['button'] !== undefined;
+ var canDrag = !shouldCheckButton || Konva.dragButtons.indexOf(evt.evt['button']) >= 0;
+ if (!canDrag) {
+ return;
+ }
+ if (this.isDragging()) {
+ return;
+ }
+ var hasDraggingChild = false;
+ DD._dragElements.forEach(function (elem) {
+ if (_this.isAncestorOf(elem.node)) {
+ hasDraggingChild = true;
+ }
+ });
+ // nested drag can be started
+ // in that case we don't need to start new drag
+ if (!hasDraggingChild) {
+ this._createDragElement(evt);
+ }
+ });
+ };
+ Node.prototype._dragChange = function () {
+ if (this.attrs.draggable) {
+ this._listenDrag();
+ }
+ else {
+ // remove event listeners
+ this._dragCleanup();
+ /*
+ * force drag and drop to end
+ * if this node is currently in
+ * drag and drop mode
+ */
+ var stage = this.getStage();
+ if (!stage) {
+ return;
+ }
+ var dragElement = DD._dragElements.get(this._id);
+ var isDragging = dragElement && dragElement.dragStatus === 'dragging';
+ var isReady = dragElement && dragElement.dragStatus === 'ready';
+ if (isDragging) {
+ this.stopDrag();
+ }
+ else if (isReady) {
+ DD._dragElements.delete(this._id);
+ }
+ }
+ };
+ Node.prototype._dragCleanup = function () {
+ this.off('mousedown.konva');
+ this.off('touchstart.konva');
+ };
+ /**
+ * create node with JSON string or an Object. De-serializtion does not generate custom
+ * shape drawing functions, images, or event handlers (this would make the
+ * serialized object huge). If your app uses custom shapes, images, and
+ * event handlers (it probably does), then you need to select the appropriate
+ * shapes after loading the stage and set these properties via on(), setSceneFunc(),
+ * and setImage() methods
+ * @method
+ * @memberof Konva.Node
+ * @param {String|Object} json string or object
+ * @param {Element} [container] optional container dom element used only if you're
+ * creating a stage node
+ */
+ Node.create = function (data, container) {
+ if (Util._isString(data)) {
+ data = JSON.parse(data);
+ }
+ return this._createNode(data, container);
+ };
+ Node._createNode = function (obj, container) {
+ var className = Node.prototype.getClassName.call(obj), children = obj.children, no, len, n;
+ // if container was passed in, add it to attrs
+ if (container) {
+ obj.attrs.container = container;
+ }
+ if (!_NODES_REGISTRY[className]) {
+ Util.warn('Can not find a node with class name "' +
+ className +
+ '". Fallback to "Shape".');
+ className = 'Shape';
+ }
+ var Class = _NODES_REGISTRY[className];
+ no = new Class(obj.attrs);
+ if (children) {
+ len = children.length;
+ for (n = 0; n < len; n++) {
+ no.add(Node._createNode(children[n]));
+ }
+ }
+ return no;
+ };
+ return Node;
+ }());
+ Node.prototype.nodeType = 'Node';
+ Node.prototype._attrsAffectingSize = [];
+ var addGetterSetter = Factory.addGetterSetter;
+ /**
+ * get/set zIndex relative to the node's siblings who share the same parent.
+ * Please remember that zIndex is not absolute (like in CSS). It is relative to parent element only.
+ * @name Konva.Node#zIndex
+ * @method
+ * @param {Number} index
+ * @returns {Number}
+ * @example
+ * // get index
+ * var index = node.zIndex();
+ *
+ * // set index
+ * node.zIndex(2);
+ */
+ addGetterSetter(Node, 'zIndex');
+ /**
+ * get/set node absolute position
+ * @name Konva.Node#absolutePosition
+ * @method
+ * @param {Object} pos
+ * @param {Number} pos.x
+ * @param {Number} pos.y
+ * @returns {Object}
+ * @example
+ * // get position
+ * var position = node.absolutePosition();
+ *
+ * // set position
+ * node.absolutePosition({
+ * x: 5,
+ * y: 10
+ * });
+ */
+ addGetterSetter(Node, 'absolutePosition');
+ addGetterSetter(Node, 'position');
+ /**
+ * get/set node position relative to parent
+ * @name Konva.Node#position
+ * @method
+ * @param {Object} pos
+ * @param {Number} pos.x
+ * @param {Number} pos.y
+ * @returns {Object}
+ * @example
+ * // get position
+ * var position = node.position();
+ *
+ * // set position
+ * node.position({
+ * x: 5,
+ * y: 10
+ * });
+ */
+ addGetterSetter(Node, 'x', 0, getNumberValidator());
+ /**
+ * get/set x position
+ * @name Konva.Node#x
+ * @method
+ * @param {Number} x
+ * @returns {Object}
+ * @example
+ * // get x
+ * var x = node.x();
+ *
+ * // set x
+ * node.x(5);
+ */
+ addGetterSetter(Node, 'y', 0, getNumberValidator());
+ /**
+ * get/set y position
+ * @name Konva.Node#y
+ * @method
+ * @param {Number} y
+ * @returns {Integer}
+ * @example
+ * // get y
+ * var y = node.y();
+ *
+ * // set y
+ * node.y(5);
+ */
+ addGetterSetter(Node, 'globalCompositeOperation', 'source-over', getStringValidator());
+ /**
+ * get/set globalCompositeOperation of a shape
+ * @name Konva.Node#globalCompositeOperation
+ * @method
+ * @param {String} type
+ * @returns {String}
+ * @example
+ * // get globalCompositeOperation
+ * var globalCompositeOperation = shape.globalCompositeOperation();
+ *
+ * // set globalCompositeOperation
+ * shape.globalCompositeOperation('source-in');
+ */
+ addGetterSetter(Node, 'opacity', 1, getNumberValidator());
+ /**
+ * get/set opacity. Opacity values range from 0 to 1.
+ * A node with an opacity of 0 is fully transparent, and a node
+ * with an opacity of 1 is fully opaque
+ * @name Konva.Node#opacity
+ * @method
+ * @param {Object} opacity
+ * @returns {Number}
+ * @example
+ * // get opacity
+ * var opacity = node.opacity();
+ *
+ * // set opacity
+ * node.opacity(0.5);
+ */
+ addGetterSetter(Node, 'name', '', getStringValidator());
+ /**
+ * get/set name
+ * @name Konva.Node#name
+ * @method
+ * @param {String} name
+ * @returns {String}
+ * @example
+ * // get name
+ * var name = node.name();
+ *
+ * // set name
+ * node.name('foo');
+ *
+ * // also node may have multiple names (as css classes)
+ * node.name('foo bar');
+ */
+ addGetterSetter(Node, 'id', '', getStringValidator());
+ /**
+ * get/set id. Id is global for whole page.
+ * @name Konva.Node#id
+ * @method
+ * @param {String} id
+ * @returns {String}
+ * @example
+ * // get id
+ * var name = node.id();
+ *
+ * // set id
+ * node.id('foo');
+ */
+ addGetterSetter(Node, 'rotation', 0, getNumberValidator());
+ /**
+ * get/set rotation in degrees
+ * @name Konva.Node#rotation
+ * @method
+ * @param {Number} rotation
+ * @returns {Number}
+ * @example
+ * // get rotation in degrees
+ * var rotation = node.rotation();
+ *
+ * // set rotation in degrees
+ * node.rotation(45);
+ */
+ Factory.addComponentsGetterSetter(Node, 'scale', ['x', 'y']);
+ /**
+ * get/set scale
+ * @name Konva.Node#scale
+ * @param {Object} scale
+ * @param {Number} scale.x
+ * @param {Number} scale.y
+ * @method
+ * @returns {Object}
+ * @example
+ * // get scale
+ * var scale = node.scale();
+ *
+ * // set scale
+ * shape.scale({
+ * x: 2,
+ * y: 3
+ * });
+ */
+ addGetterSetter(Node, 'scaleX', 1, getNumberValidator());
+ /**
+ * get/set scale x
+ * @name Konva.Node#scaleX
+ * @param {Number} x
+ * @method
+ * @returns {Number}
+ * @example
+ * // get scale x
+ * var scaleX = node.scaleX();
+ *
+ * // set scale x
+ * node.scaleX(2);
+ */
+ addGetterSetter(Node, 'scaleY', 1, getNumberValidator());
+ /**
+ * get/set scale y
+ * @name Konva.Node#scaleY
+ * @param {Number} y
+ * @method
+ * @returns {Number}
+ * @example
+ * // get scale y
+ * var scaleY = node.scaleY();
+ *
+ * // set scale y
+ * node.scaleY(2);
+ */
+ Factory.addComponentsGetterSetter(Node, 'skew', ['x', 'y']);
+ /**
+ * get/set skew
+ * @name Konva.Node#skew
+ * @param {Object} skew
+ * @param {Number} skew.x
+ * @param {Number} skew.y
+ * @method
+ * @returns {Object}
+ * @example
+ * // get skew
+ * var skew = node.skew();
+ *
+ * // set skew
+ * node.skew({
+ * x: 20,
+ * y: 10
+ * });
+ */
+ addGetterSetter(Node, 'skewX', 0, getNumberValidator());
+ /**
+ * get/set skew x
+ * @name Konva.Node#skewX
+ * @param {Number} x
+ * @method
+ * @returns {Number}
+ * @example
+ * // get skew x
+ * var skewX = node.skewX();
+ *
+ * // set skew x
+ * node.skewX(3);
+ */
+ addGetterSetter(Node, 'skewY', 0, getNumberValidator());
+ /**
+ * get/set skew y
+ * @name Konva.Node#skewY
+ * @param {Number} y
+ * @method
+ * @returns {Number}
+ * @example
+ * // get skew y
+ * var skewY = node.skewY();
+ *
+ * // set skew y
+ * node.skewY(3);
+ */
+ Factory.addComponentsGetterSetter(Node, 'offset', ['x', 'y']);
+ /**
+ * get/set offset. Offsets the default position and rotation point
+ * @method
+ * @param {Object} offset
+ * @param {Number} offset.x
+ * @param {Number} offset.y
+ * @returns {Object}
+ * @example
+ * // get offset
+ * var offset = node.offset();
+ *
+ * // set offset
+ * node.offset({
+ * x: 20,
+ * y: 10
+ * });
+ */
+ addGetterSetter(Node, 'offsetX', 0, getNumberValidator());
+ /**
+ * get/set offset x
+ * @name Konva.Node#offsetX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get offset x
+ * var offsetX = node.offsetX();
+ *
+ * // set offset x
+ * node.offsetX(3);
+ */
+ addGetterSetter(Node, 'offsetY', 0, getNumberValidator());
+ /**
+ * get/set offset y
+ * @name Konva.Node#offsetY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get offset y
+ * var offsetY = node.offsetY();
+ *
+ * // set offset y
+ * node.offsetY(3);
+ */
+ addGetterSetter(Node, 'dragDistance', null, getNumberValidator());
+ /**
+ * get/set drag distance
+ * @name Konva.Node#dragDistance
+ * @method
+ * @param {Number} distance
+ * @returns {Number}
+ * @example
+ * // get drag distance
+ * var dragDistance = node.dragDistance();
+ *
+ * // set distance
+ * // node starts dragging only if pointer moved more then 3 pixels
+ * node.dragDistance(3);
+ * // or set globally
+ * Konva.dragDistance = 3;
+ */
+ addGetterSetter(Node, 'width', 0, getNumberValidator());
+ /**
+ * get/set width
+ * @name Konva.Node#width
+ * @method
+ * @param {Number} width
+ * @returns {Number}
+ * @example
+ * // get width
+ * var width = node.width();
+ *
+ * // set width
+ * node.width(100);
+ */
+ addGetterSetter(Node, 'height', 0, getNumberValidator());
+ /**
+ * get/set height
+ * @name Konva.Node#height
+ * @method
+ * @param {Number} height
+ * @returns {Number}
+ * @example
+ * // get height
+ * var height = node.height();
+ *
+ * // set height
+ * node.height(100);
+ */
+ addGetterSetter(Node, 'listening', true, getBooleanValidator());
+ /**
+ * get/set listening attr. If you need to determine if a node is listening or not
+ * by taking into account its parents, use the isListening() method
+ * @name Konva.Node#listening
+ * @method
+ * @param {Boolean} listening Can be true, or false. The default is true.
+ * @returns {Boolean}
+ * @example
+ * // get listening attr
+ * var listening = node.listening();
+ *
+ * // stop listening for events, remove node and all its children from hit graph
+ * node.listening(false);
+ *
+ * // listen to events according to the parent
+ * node.listening(true);
+ */
+ /**
+ * get/set preventDefault
+ * By default all shapes will prevent default behavior
+ * of a browser on a pointer move or tap.
+ * that will prevent native scrolling when you are trying to drag&drop a node
+ * but sometimes you may need to enable default actions
+ * in that case you can set the property to false
+ * @name Konva.Node#preventDefault
+ * @method
+ * @param {Boolean} preventDefault
+ * @returns {Boolean}
+ * @example
+ * // get preventDefault
+ * var shouldPrevent = shape.preventDefault();
+ *
+ * // set preventDefault
+ * shape.preventDefault(false);
+ */
+ addGetterSetter(Node, 'preventDefault', true, getBooleanValidator());
+ addGetterSetter(Node, 'filters', null, function (val) {
+ this._filterUpToDate = false;
+ return val;
+ });
+ /**
+ * get/set filters. Filters are applied to cached canvases
+ * @name Konva.Node#filters
+ * @method
+ * @param {Array} filters array of filters
+ * @returns {Array}
+ * @example
+ * // get filters
+ * var filters = node.filters();
+ *
+ * // set a single filter
+ * node.cache();
+ * node.filters([Konva.Filters.Blur]);
+ *
+ * // set multiple filters
+ * node.cache();
+ * node.filters([
+ * Konva.Filters.Blur,
+ * Konva.Filters.Sepia,
+ * Konva.Filters.Invert
+ * ]);
+ */
+ addGetterSetter(Node, 'visible', true, getBooleanValidator());
+ /**
+ * get/set visible attr. Can be true, or false. The default is true.
+ * If you need to determine if a node is visible or not
+ * by taking into account its parents, use the isVisible() method
+ * @name Konva.Node#visible
+ * @method
+ * @param {Boolean} visible
+ * @returns {Boolean}
+ * @example
+ * // get visible attr
+ * var visible = node.visible();
+ *
+ * // make invisible
+ * node.visible(false);
+ *
+ * // make visible (according to the parent)
+ * node.visible(true);
+ *
+ */
+ addGetterSetter(Node, 'transformsEnabled', 'all', getStringValidator());
+ /**
+ * get/set transforms that are enabled. Can be "all", "none", or "position". The default
+ * is "all"
+ * @name Konva.Node#transformsEnabled
+ * @method
+ * @param {String} enabled
+ * @returns {String}
+ * @example
+ * // enable position transform only to improve draw performance
+ * node.transformsEnabled('position');
+ *
+ * // enable all transforms
+ * node.transformsEnabled('all');
+ */
+ /**
+ * get/set node size
+ * @name Konva.Node#size
+ * @method
+ * @param {Object} size
+ * @param {Number} size.width
+ * @param {Number} size.height
+ * @returns {Object}
+ * @example
+ * // get node size
+ * var size = node.size();
+ * var x = size.x;
+ * var y = size.y;
+ *
+ * // set size
+ * node.size({
+ * width: 100,
+ * height: 200
+ * });
+ */
+ addGetterSetter(Node, 'size');
+ /**
+ * get/set drag bound function. This is used to override the default
+ * drag and drop position.
+ * @name Konva.Node#dragBoundFunc
+ * @method
+ * @param {Function} dragBoundFunc
+ * @returns {Function}
+ * @example
+ * // get drag bound function
+ * var dragBoundFunc = node.dragBoundFunc();
+ *
+ * // create vertical drag and drop
+ * node.dragBoundFunc(function(pos){
+ * // important pos - is absolute position of the node
+ * // you should return absolute position too
+ * return {
+ * x: this.absolutePosition().x,
+ * y: pos.y
+ * };
+ * });
+ */
+ addGetterSetter(Node, 'dragBoundFunc');
+ /**
+ * get/set draggable flag
+ * @name Konva.Node#draggable
+ * @method
+ * @param {Boolean} draggable
+ * @returns {Boolean}
+ * @example
+ * // get draggable flag
+ * var draggable = node.draggable();
+ *
+ * // enable drag and drop
+ * node.draggable(true);
+ *
+ * // disable drag and drop
+ * node.draggable(false);
+ */
+ addGetterSetter(Node, 'draggable', false, getBooleanValidator());
+ Factory.backCompat(Node, {
+ rotateDeg: 'rotate',
+ setRotationDeg: 'setRotation',
+ getRotationDeg: 'getRotation',
+ });
+ Collection.mapMethods(Node);
+
+ /**
+ * Container constructor. Containers are used to contain nodes or other containers
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Node
+ * @abstract
+ * @param {Object} config
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * * @param {Object} [config.clip] set clip
+ * @param {Number} [config.clipX] set clip x
+ * @param {Number} [config.clipY] set clip y
+ * @param {Number} [config.clipWidth] set clip width
+ * @param {Number} [config.clipHeight] set clip height
+ * @param {Function} [config.clipFunc] set clip func
+
+ */
+ var Container = /** @class */ (function (_super) {
+ __extends(Container, _super);
+ function Container() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.children = new Collection();
+ return _this;
+ }
+ /**
+ * returns a {@link Konva.Collection} of direct descendant nodes
+ * @method
+ * @name Konva.Container#getChildren
+ * @param {Function} [filterFunc] filter function
+ * @returns {Konva.Collection}
+ * @example
+ * // get all children
+ * var children = layer.getChildren();
+ *
+ * // get only circles
+ * var circles = layer.getChildren(function(node){
+ * return node.getClassName() === 'Circle';
+ * });
+ */
+ Container.prototype.getChildren = function (filterFunc) {
+ if (!filterFunc) {
+ return this.children;
+ }
+ var results = new Collection();
+ this.children.each(function (child) {
+ if (filterFunc(child)) {
+ results.push(child);
+ }
+ });
+ return results;
+ };
+ /**
+ * determine if node has children
+ * @method
+ * @name Konva.Container#hasChildren
+ * @returns {Boolean}
+ */
+ Container.prototype.hasChildren = function () {
+ return this.getChildren().length > 0;
+ };
+ /**
+ * remove all children. Children will be still in memory.
+ * If you want to completely destroy all children please use "destroyChildren" method instead
+ * @method
+ * @name Konva.Container#removeChildren
+ */
+ Container.prototype.removeChildren = function () {
+ var child;
+ for (var i = 0; i < this.children.length; i++) {
+ child = this.children[i];
+ // reset parent to prevent many _setChildrenIndices calls
+ child.parent = null;
+ child.index = 0;
+ child.remove();
+ }
+ this.children = new Collection();
+ return this;
+ };
+ /**
+ * destroy all children nodes.
+ * @method
+ * @name Konva.Container#destroyChildren
+ */
+ Container.prototype.destroyChildren = function () {
+ var child;
+ for (var i = 0; i < this.children.length; i++) {
+ child = this.children[i];
+ // reset parent to prevent many _setChildrenIndices calls
+ child.parent = null;
+ child.index = 0;
+ child.destroy();
+ }
+ this.children = new Collection();
+ return this;
+ };
+ /**
+ * add a child and children into container
+ * @name Konva.Container#add
+ * @method
+ * @param {...Konva.Node} child
+ * @returns {Container}
+ * @example
+ * layer.add(rect);
+ * layer.add(shape1, shape2, shape3);
+ * // remember to redraw layer if you changed something
+ * layer.draw();
+ */
+ Container.prototype.add = function () {
+ var children = [];
+ for (var _i = 0; _i < arguments.length; _i++) {
+ children[_i] = arguments[_i];
+ }
+ if (arguments.length > 1) {
+ for (var i = 0; i < arguments.length; i++) {
+ this.add(arguments[i]);
+ }
+ return this;
+ }
+ var child = children[0];
+ if (child.getParent()) {
+ child.moveTo(this);
+ return this;
+ }
+ var _children = this.children;
+ this._validateAdd(child);
+ child._clearCaches();
+ child.index = _children.length;
+ child.parent = this;
+ _children.push(child);
+ this._fire('add', {
+ child: child,
+ });
+ // chainable
+ return this;
+ };
+ Container.prototype.destroy = function () {
+ if (this.hasChildren()) {
+ this.destroyChildren();
+ }
+ _super.prototype.destroy.call(this);
+ return this;
+ };
+ /**
+ * return a {@link Konva.Collection} of nodes that match the selector.
+ * You can provide a string with '#' for id selections and '.' for name selections.
+ * Or a function that will return true/false when a node is passed through. See example below.
+ * With strings you can also select by type or class name. Pass multiple selectors
+ * separated by a space.
+ * @method
+ * @name Konva.Container#find
+ * @param {String | Function} selector
+ * @returns {Collection}
+ * @example
+ *
+ * Passing a string as a selector
+ * // select node with id foo
+ * var node = stage.find('#foo');
+ *
+ * // select nodes with name bar inside layer
+ * var nodes = layer.find('.bar');
+ *
+ * // select all groups inside layer
+ * var nodes = layer.find('Group');
+ *
+ * // select all rectangles inside layer
+ * var nodes = layer.find('Rect');
+ *
+ * // select node with an id of foo or a name of bar inside layer
+ * var nodes = layer.find('#foo, .bar');
+ *
+ * Passing a function as a selector
+ *
+ * // get all groups with a function
+ * var groups = stage.find(node => {
+ * return node.getType() === 'Group';
+ * });
+ *
+ * // get only Nodes with partial opacity
+ * var alphaNodes = layer.find(node => {
+ * return node.getType() === 'Node' && node.getAbsoluteOpacity() < 1;
+ * });
+ */
+ Container.prototype.find = function (selector) {
+ // protecting _generalFind to prevent user from accidentally adding
+ // second argument and getting unexpected `findOne` result
+ return this._generalFind(selector, false);
+ };
+ Container.prototype.get = function (selector) {
+ Util.warn('collection.get() method is deprecated. Please use collection.find() instead.');
+ return this.find(selector);
+ };
+ /**
+ * return a first node from `find` method
+ * @method
+ * @name Konva.Container#findOne
+ * @param {String | Function} selector
+ * @returns {Konva.Node | Undefined}
+ * @example
+ * // select node with id foo
+ * var node = stage.findOne('#foo');
+ *
+ * // select node with name bar inside layer
+ * var nodes = layer.findOne('.bar');
+ *
+ * // select the first node to return true in a function
+ * var node = stage.findOne(node => {
+ * return node.getType() === 'Shape'
+ * })
+ */
+ Container.prototype.findOne = function (selector) {
+ var result = this._generalFind(selector, true);
+ return result.length > 0 ? result[0] : undefined;
+ };
+ Container.prototype._generalFind = function (selector, findOne) {
+ var retArr = [];
+ this._descendants(function (node) {
+ var valid = node._isMatch(selector);
+ if (valid) {
+ retArr.push(node);
+ }
+ if (valid && findOne) {
+ return true;
+ }
+ return false;
+ });
+ return Collection.toCollection(retArr);
+ };
+ Container.prototype._descendants = function (fn) {
+ var shouldStop = false;
+ for (var i = 0; i < this.children.length; i++) {
+ var child = this.children[i];
+ shouldStop = fn(child);
+ if (shouldStop) {
+ return true;
+ }
+ if (!child.hasChildren()) {
+ continue;
+ }
+ shouldStop = child._descendants(fn);
+ if (shouldStop) {
+ return true;
+ }
+ }
+ return false;
+ };
+ // extenders
+ Container.prototype.toObject = function () {
+ var obj = Node.prototype.toObject.call(this);
+ obj.children = [];
+ var children = this.getChildren();
+ var len = children.length;
+ for (var n = 0; n < len; n++) {
+ var child = children[n];
+ obj.children.push(child.toObject());
+ }
+ return obj;
+ };
+ /**
+ * determine if node is an ancestor
+ * of descendant
+ * @method
+ * @name Konva.Container#isAncestorOf
+ * @param {Konva.Node} node
+ */
+ Container.prototype.isAncestorOf = function (node) {
+ var parent = node.getParent();
+ while (parent) {
+ if (parent._id === this._id) {
+ return true;
+ }
+ parent = parent.getParent();
+ }
+ return false;
+ };
+ Container.prototype.clone = function (obj) {
+ // call super method
+ var node = Node.prototype.clone.call(this, obj);
+ this.getChildren().each(function (no) {
+ node.add(no.clone());
+ });
+ return node;
+ };
+ /**
+ * get all shapes that intersect a point. Note: because this method must clear a temporary
+ * canvas and redraw every shape inside the container, it should only be used for special situations
+ * because it performs very poorly. Please use the {@link Konva.Stage#getIntersection} method if at all possible
+ * because it performs much better
+ * @method
+ * @name Konva.Container#getAllIntersections
+ * @param {Object} pos
+ * @param {Number} pos.x
+ * @param {Number} pos.y
+ * @returns {Array} array of shapes
+ */
+ Container.prototype.getAllIntersections = function (pos) {
+ var arr = [];
+ this.find('Shape').each(function (shape) {
+ if (shape.isVisible() && shape.intersects(pos)) {
+ arr.push(shape);
+ }
+ });
+ return arr;
+ };
+ Container.prototype._setChildrenIndices = function () {
+ this.children.each(function (child, n) {
+ child.index = n;
+ });
+ };
+ Container.prototype.drawScene = function (can, top) {
+ var layer = this.getLayer(), canvas = can || (layer && layer.getCanvas()), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), cachedSceneCanvas = cachedCanvas && cachedCanvas.scene;
+ var caching = canvas && canvas.isCache;
+ if (!this.isVisible() && !caching) {
+ return this;
+ }
+ if (cachedSceneCanvas) {
+ context.save();
+ var m = this.getAbsoluteTransform(top).getMatrix();
+ context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
+ this._drawCachedSceneCanvas(context);
+ context.restore();
+ }
+ else {
+ this._drawChildren('drawScene', canvas, top);
+ }
+ return this;
+ };
+ Container.prototype.drawHit = function (can, top) {
+ if (!this.shouldDrawHit(top)) {
+ return this;
+ }
+ var layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas), context = canvas && canvas.getContext(), cachedCanvas = this._getCanvasCache(), cachedHitCanvas = cachedCanvas && cachedCanvas.hit;
+ if (cachedHitCanvas) {
+ context.save();
+ var m = this.getAbsoluteTransform(top).getMatrix();
+ context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
+ this._drawCachedHitCanvas(context);
+ context.restore();
+ }
+ else {
+ this._drawChildren('drawHit', canvas, top);
+ }
+ return this;
+ };
+ Container.prototype._drawChildren = function (drawMethod, canvas, top) {
+ var context = canvas && canvas.getContext(), clipWidth = this.clipWidth(), clipHeight = this.clipHeight(), clipFunc = this.clipFunc(), hasClip = (clipWidth && clipHeight) || clipFunc;
+ var selfCache = top === this;
+ if (hasClip) {
+ context.save();
+ var transform = this.getAbsoluteTransform(top);
+ var m = transform.getMatrix();
+ context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
+ context.beginPath();
+ if (clipFunc) {
+ clipFunc.call(this, context, this);
+ }
+ else {
+ var clipX = this.clipX();
+ var clipY = this.clipY();
+ context.rect(clipX, clipY, clipWidth, clipHeight);
+ }
+ context.clip();
+ m = transform.copy().invert().getMatrix();
+ context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
+ }
+ var hasComposition = !selfCache &&
+ this.globalCompositeOperation() !== 'source-over' &&
+ drawMethod === 'drawScene';
+ if (hasComposition) {
+ context.save();
+ context._applyGlobalCompositeOperation(this);
+ }
+ this.children.each(function (child) {
+ child[drawMethod](canvas, top);
+ });
+ if (hasComposition) {
+ context.restore();
+ }
+ if (hasClip) {
+ context.restore();
+ }
+ };
+ Container.prototype.getClientRect = function (config) {
+ config = config || {};
+ var skipTransform = config.skipTransform;
+ var relativeTo = config.relativeTo;
+ var minX, minY, maxX, maxY;
+ var selfRect = {
+ x: Infinity,
+ y: Infinity,
+ width: 0,
+ height: 0,
+ };
+ var that = this;
+ this.children.each(function (child) {
+ // skip invisible children
+ if (!child.visible()) {
+ return;
+ }
+ var rect = child.getClientRect({
+ relativeTo: that,
+ skipShadow: config.skipShadow,
+ skipStroke: config.skipStroke,
+ });
+ // skip invisible children (like empty groups)
+ if (rect.width === 0 && rect.height === 0) {
+ return;
+ }
+ if (minX === undefined) {
+ // initial value for first child
+ minX = rect.x;
+ minY = rect.y;
+ maxX = rect.x + rect.width;
+ maxY = rect.y + rect.height;
+ }
+ else {
+ minX = Math.min(minX, rect.x);
+ minY = Math.min(minY, rect.y);
+ maxX = Math.max(maxX, rect.x + rect.width);
+ maxY = Math.max(maxY, rect.y + rect.height);
+ }
+ });
+ // if child is group we need to make sure it has visible shapes inside
+ var shapes = this.find('Shape');
+ var hasVisible = false;
+ for (var i = 0; i < shapes.length; i++) {
+ var shape = shapes[i];
+ if (shape._isVisible(this)) {
+ hasVisible = true;
+ break;
+ }
+ }
+ if (hasVisible && minX !== undefined) {
+ selfRect = {
+ x: minX,
+ y: minY,
+ width: maxX - minX,
+ height: maxY - minY,
+ };
+ }
+ else {
+ selfRect = {
+ x: 0,
+ y: 0,
+ width: 0,
+ height: 0,
+ };
+ }
+ if (!skipTransform) {
+ return this._transformedRect(selfRect, relativeTo);
+ }
+ return selfRect;
+ };
+ return Container;
+ }(Node));
+ // add getters setters
+ Factory.addComponentsGetterSetter(Container, 'clip', [
+ 'x',
+ 'y',
+ 'width',
+ 'height',
+ ]);
+ /**
+ * get/set clip
+ * @method
+ * @name Konva.Container#clip
+ * @param {Object} clip
+ * @param {Number} clip.x
+ * @param {Number} clip.y
+ * @param {Number} clip.width
+ * @param {Number} clip.height
+ * @returns {Object}
+ * @example
+ * // get clip
+ * var clip = container.clip();
+ *
+ * // set clip
+ * container.clip({
+ * x: 20,
+ * y: 20,
+ * width: 20,
+ * height: 20
+ * });
+ */
+ Factory.addGetterSetter(Container, 'clipX', undefined, getNumberValidator());
+ /**
+ * get/set clip x
+ * @name Konva.Container#clipX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get clip x
+ * var clipX = container.clipX();
+ *
+ * // set clip x
+ * container.clipX(10);
+ */
+ Factory.addGetterSetter(Container, 'clipY', undefined, getNumberValidator());
+ /**
+ * get/set clip y
+ * @name Konva.Container#clipY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get clip y
+ * var clipY = container.clipY();
+ *
+ * // set clip y
+ * container.clipY(10);
+ */
+ Factory.addGetterSetter(Container, 'clipWidth', undefined, getNumberValidator());
+ /**
+ * get/set clip width
+ * @name Konva.Container#clipWidth
+ * @method
+ * @param {Number} width
+ * @returns {Number}
+ * @example
+ * // get clip width
+ * var clipWidth = container.clipWidth();
+ *
+ * // set clip width
+ * container.clipWidth(100);
+ */
+ Factory.addGetterSetter(Container, 'clipHeight', undefined, getNumberValidator());
+ /**
+ * get/set clip height
+ * @name Konva.Container#clipHeight
+ * @method
+ * @param {Number} height
+ * @returns {Number}
+ * @example
+ * // get clip height
+ * var clipHeight = container.clipHeight();
+ *
+ * // set clip height
+ * container.clipHeight(100);
+ */
+ Factory.addGetterSetter(Container, 'clipFunc');
+ /**
+ * get/set clip function
+ * @name Konva.Container#clipFunc
+ * @method
+ * @param {Function} function
+ * @returns {Function}
+ * @example
+ * // get clip function
+ * var clipFunction = container.clipFunc();
+ *
+ * // set clip height
+ * container.clipFunc(function(ctx) {
+ * ctx.rect(0, 0, 100, 100);
+ * });
+ */
+ Collection.mapMethods(Container);
+
+ var Captures = new Map();
+ // we may use this module for capturing touch events too
+ // so make sure we don't do something super specific to pointer
+ var SUPPORT_POINTER_EVENTS = Konva._global['PointerEvent'] !== undefined;
+ function getCapturedShape(pointerId) {
+ return Captures.get(pointerId);
+ }
+ function createEvent(evt) {
+ return {
+ evt: evt,
+ pointerId: evt.pointerId
+ };
+ }
+ function hasPointerCapture(pointerId, shape) {
+ return Captures.get(pointerId) === shape;
+ }
+ function setPointerCapture(pointerId, shape) {
+ releaseCapture(pointerId);
+ var stage = shape.getStage();
+ if (!stage)
+ return;
+ Captures.set(pointerId, shape);
+ if (SUPPORT_POINTER_EVENTS) {
+ shape._fire('gotpointercapture', createEvent(new PointerEvent('gotpointercapture')));
+ }
+ }
+ function releaseCapture(pointerId, target) {
+ var shape = Captures.get(pointerId);
+ if (!shape)
+ return;
+ var stage = shape.getStage();
+ if (stage && stage.content) ;
+ Captures.delete(pointerId);
+ if (SUPPORT_POINTER_EVENTS) {
+ shape._fire('lostpointercapture', createEvent(new PointerEvent('lostpointercapture')));
+ }
+ }
+
+ // CONSTANTS
+ var STAGE$1 = 'Stage', STRING = 'string', PX = 'px', MOUSEOUT = 'mouseout', MOUSELEAVE$1 = 'mouseleave', MOUSEOVER = 'mouseover', MOUSEENTER$1 = 'mouseenter', MOUSEMOVE = 'mousemove', MOUSEDOWN = 'mousedown', MOUSEUP = 'mouseup',
+ // TODO: add them into "on" method docs and into site docs
+ POINTERMOVE = 'pointermove', POINTERDOWN = 'pointerdown', POINTERUP = 'pointerup', POINTERCANCEL = 'pointercancel', LOSTPOINTERCAPTURE = 'lostpointercapture', CONTEXTMENU = 'contextmenu', CLICK = 'click', DBL_CLICK = 'dblclick', TOUCHSTART = 'touchstart', TOUCHEND = 'touchend', TAP = 'tap', DBL_TAP = 'dbltap', TOUCHMOVE = 'touchmove', WHEEL = 'wheel', CONTENT_MOUSEOUT = 'contentMouseout', CONTENT_MOUSEOVER = 'contentMouseover', CONTENT_MOUSEMOVE = 'contentMousemove', CONTENT_MOUSEDOWN = 'contentMousedown', CONTENT_MOUSEUP = 'contentMouseup', CONTENT_CONTEXTMENU = 'contentContextmenu', CONTENT_CLICK = 'contentClick', CONTENT_DBL_CLICK = 'contentDblclick', CONTENT_TOUCHSTART = 'contentTouchstart', CONTENT_TOUCHEND = 'contentTouchend', CONTENT_DBL_TAP = 'contentDbltap', CONTENT_TAP = 'contentTap', CONTENT_TOUCHMOVE = 'contentTouchmove', CONTENT_WHEEL = 'contentWheel', RELATIVE = 'relative', KONVA_CONTENT = 'konvajs-content', UNDERSCORE = '_', CONTAINER = 'container', MAX_LAYERS_NUMBER = 5, EMPTY_STRING$1 = '', EVENTS = [
+ MOUSEENTER$1,
+ MOUSEDOWN,
+ MOUSEMOVE,
+ MOUSEUP,
+ MOUSEOUT,
+ TOUCHSTART,
+ TOUCHMOVE,
+ TOUCHEND,
+ MOUSEOVER,
+ WHEEL,
+ CONTEXTMENU,
+ POINTERDOWN,
+ POINTERMOVE,
+ POINTERUP,
+ POINTERCANCEL,
+ LOSTPOINTERCAPTURE,
+ ],
+ // cached variables
+ eventsLength = EVENTS.length;
+ function addEvent(ctx, eventName) {
+ ctx.content.addEventListener(eventName, function (evt) {
+ ctx[UNDERSCORE + eventName](evt);
+ }, false);
+ }
+ var NO_POINTERS_MESSAGE = "Pointer position is missing and not registered by the stage. Looks like it is outside of the stage container. You can set it manually from event: stage.setPointersPositions(event);";
+ var stages = [];
+ function checkNoClip(attrs) {
+ if (attrs === void 0) { attrs = {}; }
+ if (attrs.clipFunc || attrs.clipWidth || attrs.clipHeight) {
+ Util.warn('Stage does not support clipping. Please use clip for Layers or Groups.');
+ }
+ return attrs;
+ }
+ /**
+ * Stage constructor. A stage is used to contain multiple layers
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Container
+ * @param {Object} config
+ * @param {String|Element} config.container Container selector or DOM element
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var stage = new Konva.Stage({
+ * width: 500,
+ * height: 800,
+ * container: 'containerId' // or "#containerId" or ".containerClass"
+ * });
+ */
+ var Stage = /** @class */ (function (_super) {
+ __extends(Stage, _super);
+ function Stage(config) {
+ var _this = _super.call(this, checkNoClip(config)) || this;
+ _this._pointerPositions = [];
+ _this._changedPointerPositions = [];
+ _this._buildDOM();
+ _this._bindContentEvents();
+ stages.push(_this);
+ _this.on('widthChange.konva heightChange.konva', _this._resizeDOM);
+ _this.on('visibleChange.konva', _this._checkVisibility);
+ _this.on('clipWidthChange.konva clipHeightChange.konva clipFuncChange.konva', function () {
+ checkNoClip(_this.attrs);
+ });
+ _this._checkVisibility();
+ return _this;
+ }
+ Stage.prototype._validateAdd = function (child) {
+ var isLayer = child.getType() === 'Layer';
+ var isFastLayer = child.getType() === 'FastLayer';
+ var valid = isLayer || isFastLayer;
+ if (!valid) {
+ Util.throw('You may only add layers to the stage.');
+ }
+ };
+ Stage.prototype._checkVisibility = function () {
+ if (!this.content) {
+ return;
+ }
+ var style = this.visible() ? '' : 'none';
+ this.content.style.display = style;
+ };
+ /**
+ * set container dom element which contains the stage wrapper div element
+ * @method
+ * @name Konva.Stage#setContainer
+ * @param {DomElement} container can pass in a dom element or id string
+ */
+ Stage.prototype.setContainer = function (container) {
+ if (typeof container === STRING) {
+ if (container.charAt(0) === '.') {
+ var className = container.slice(1);
+ container = document.getElementsByClassName(className)[0];
+ }
+ else {
+ var id;
+ if (container.charAt(0) !== '#') {
+ id = container;
+ }
+ else {
+ id = container.slice(1);
+ }
+ container = document.getElementById(id);
+ }
+ if (!container) {
+ throw 'Can not find container in document with id ' + id;
+ }
+ }
+ this._setAttr(CONTAINER, container);
+ if (this.content) {
+ if (this.content.parentElement) {
+ this.content.parentElement.removeChild(this.content);
+ }
+ container.appendChild(this.content);
+ }
+ return this;
+ };
+ Stage.prototype.shouldDrawHit = function () {
+ return true;
+ };
+ /**
+ * clear all layers
+ * @method
+ * @name Konva.Stage#clear
+ */
+ Stage.prototype.clear = function () {
+ var layers = this.children, len = layers.length, n;
+ for (n = 0; n < len; n++) {
+ layers[n].clear();
+ }
+ return this;
+ };
+ Stage.prototype.clone = function (obj) {
+ if (!obj) {
+ obj = {};
+ }
+ obj.container = document.createElement('div');
+ return Container.prototype.clone.call(this, obj);
+ };
+ Stage.prototype.destroy = function () {
+ _super.prototype.destroy.call(this);
+ var content = this.content;
+ if (content && Util._isInDocument(content)) {
+ this.container().removeChild(content);
+ }
+ var index = stages.indexOf(this);
+ if (index > -1) {
+ stages.splice(index, 1);
+ }
+ return this;
+ };
+ /**
+ * returns absolute pointer position which can be a touch position or mouse position
+ * pointer position doesn't include any transforms (such as scale) of the stage
+ * it is just a plain position of pointer relative to top-left corner of the stage container
+ * @method
+ * @name Konva.Stage#getPointerPosition
+ * @returns {Vector2d|null}
+ */
+ Stage.prototype.getPointerPosition = function () {
+ var pos = this._pointerPositions[0] || this._changedPointerPositions[0];
+ if (!pos) {
+ Util.warn(NO_POINTERS_MESSAGE);
+ return null;
+ }
+ return {
+ x: pos.x,
+ y: pos.y,
+ };
+ };
+ Stage.prototype._getPointerById = function (id) {
+ return this._pointerPositions.find(function (p) { return p.id === id; });
+ };
+ Stage.prototype.getPointersPositions = function () {
+ return this._pointerPositions;
+ };
+ Stage.prototype.getStage = function () {
+ return this;
+ };
+ Stage.prototype.getContent = function () {
+ return this.content;
+ };
+ Stage.prototype._toKonvaCanvas = function (config) {
+ config = config || {};
+ var x = config.x || 0, y = config.y || 0, canvas = new SceneCanvas({
+ width: config.width || this.width(),
+ height: config.height || this.height(),
+ pixelRatio: config.pixelRatio || 1,
+ }), _context = canvas.getContext()._context, layers = this.children;
+ if (x || y) {
+ _context.translate(-1 * x, -1 * y);
+ }
+ layers.each(function (layer) {
+ if (!layer.isVisible()) {
+ return;
+ }
+ var layerCanvas = layer._toKonvaCanvas(config);
+ _context.drawImage(layerCanvas._canvas, x, y, layerCanvas.getWidth() / layerCanvas.getPixelRatio(), layerCanvas.getHeight() / layerCanvas.getPixelRatio());
+ });
+ return canvas;
+ };
+ /**
+ * get visible intersection shape. This is the preferred
+ * method for determining if a point intersects a shape or not
+ * @method
+ * @name Konva.Stage#getIntersection
+ * @param {Object} pos
+ * @param {Number} pos.x
+ * @param {Number} pos.y
+ * @param {String} [selector]
+ * @returns {Konva.Node}
+ * @example
+ * var shape = stage.getIntersection({x: 50, y: 50});
+ * // or if you interested in shape parent:
+ * var group = stage.getIntersection({x: 50, y: 50}, 'Group');
+ */
+ Stage.prototype.getIntersection = function (pos, selector) {
+ if (!pos) {
+ return null;
+ }
+ var layers = this.children, len = layers.length, end = len - 1, n, shape;
+ for (n = end; n >= 0; n--) {
+ shape = layers[n].getIntersection(pos, selector);
+ if (shape) {
+ return shape;
+ }
+ }
+ return null;
+ };
+ Stage.prototype._resizeDOM = function () {
+ var width = this.width();
+ var height = this.height();
+ if (this.content) {
+ // set content dimensions
+ this.content.style.width = width + PX;
+ this.content.style.height = height + PX;
+ }
+ this.bufferCanvas.setSize(width, height);
+ this.bufferHitCanvas.setSize(width, height);
+ // set layer dimensions
+ this.children.each(function (layer) {
+ layer.setSize({ width: width, height: height });
+ layer.draw();
+ });
+ };
+ Stage.prototype.add = function (layer) {
+ if (arguments.length > 1) {
+ for (var i = 0; i < arguments.length; i++) {
+ this.add(arguments[i]);
+ }
+ return this;
+ }
+ _super.prototype.add.call(this, layer);
+ var length = this.children.length;
+ if (length > MAX_LAYERS_NUMBER) {
+ Util.warn('The stage has ' +
+ length +
+ ' layers. Recommended maximum number of layers is 3-5. Adding more layers into the stage may drop the performance. Rethink your tree structure, you can use Konva.Group.');
+ }
+ layer.setSize({ width: this.width(), height: this.height() });
+ // draw layer and append canvas to container
+ layer.draw();
+ if (Konva.isBrowser) {
+ this.content.appendChild(layer.canvas._canvas);
+ }
+ // chainable
+ return this;
+ };
+ Stage.prototype.getParent = function () {
+ return null;
+ };
+ Stage.prototype.getLayer = function () {
+ return null;
+ };
+ Stage.prototype.hasPointerCapture = function (pointerId) {
+ return hasPointerCapture(pointerId, this);
+ };
+ Stage.prototype.setPointerCapture = function (pointerId) {
+ setPointerCapture(pointerId, this);
+ };
+ Stage.prototype.releaseCapture = function (pointerId) {
+ releaseCapture(pointerId);
+ };
+ /**
+ * returns a {@link Konva.Collection} of layers
+ * @method
+ * @name Konva.Stage#getLayers
+ */
+ Stage.prototype.getLayers = function () {
+ return this.getChildren();
+ };
+ Stage.prototype._bindContentEvents = function () {
+ if (!Konva.isBrowser) {
+ return;
+ }
+ for (var n = 0; n < eventsLength; n++) {
+ addEvent(this, EVENTS[n]);
+ }
+ };
+ Stage.prototype._mouseenter = function (evt) {
+ this.setPointersPositions(evt);
+ this._fire(MOUSEENTER$1, { evt: evt, target: this, currentTarget: this });
+ };
+ Stage.prototype._mouseover = function (evt) {
+ this.setPointersPositions(evt);
+ this._fire(CONTENT_MOUSEOVER, { evt: evt });
+ this._fire(MOUSEOVER, { evt: evt, target: this, currentTarget: this });
+ };
+ Stage.prototype._mouseout = function (evt) {
+ var _a;
+ this.setPointersPositions(evt);
+ var targetShape = ((_a = this.targetShape) === null || _a === void 0 ? void 0 : _a.getStage()) ? this.targetShape : null;
+ var eventsEnabled = !DD.isDragging || Konva.hitOnDragEnabled;
+ if (targetShape && eventsEnabled) {
+ targetShape._fireAndBubble(MOUSEOUT, { evt: evt });
+ targetShape._fireAndBubble(MOUSELEAVE$1, { evt: evt });
+ this._fire(MOUSELEAVE$1, { evt: evt, target: this, currentTarget: this });
+ this.targetShape = null;
+ }
+ else if (eventsEnabled) {
+ this._fire(MOUSELEAVE$1, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ });
+ this._fire(MOUSEOUT, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ });
+ }
+ this.pointerPos = undefined;
+ this._pointerPositions = [];
+ this._fire(CONTENT_MOUSEOUT, { evt: evt });
+ };
+ Stage.prototype._mousemove = function (evt) {
+ var _a;
+ // workaround for mobile IE to force touch event when unhandled pointer event elevates into a mouse event
+ if (Konva.UA.ieMobile) {
+ return this._touchmove(evt);
+ }
+ this.setPointersPositions(evt);
+ var pointerId = Util._getFirstPointerId(evt);
+ var shape;
+ var targetShape = ((_a = this.targetShape) === null || _a === void 0 ? void 0 : _a.getStage()) ? this.targetShape : null;
+ var eventsEnabled = !DD.isDragging || Konva.hitOnDragEnabled;
+ if (eventsEnabled) {
+ shape = this.getIntersection(this.getPointerPosition());
+ if (shape && shape.isListening()) {
+ var differentTarget = targetShape !== shape;
+ if (eventsEnabled && differentTarget) {
+ if (targetShape) {
+ targetShape._fireAndBubble(MOUSEOUT, { evt: evt, pointerId: pointerId }, shape);
+ targetShape._fireAndBubble(MOUSELEAVE$1, { evt: evt, pointerId: pointerId }, shape);
+ }
+ shape._fireAndBubble(MOUSEOVER, { evt: evt, pointerId: pointerId }, targetShape);
+ shape._fireAndBubble(MOUSEENTER$1, { evt: evt, pointerId: pointerId }, targetShape);
+ shape._fireAndBubble(MOUSEMOVE, { evt: evt, pointerId: pointerId });
+ this.targetShape = shape;
+ }
+ else {
+ shape._fireAndBubble(MOUSEMOVE, { evt: evt, pointerId: pointerId });
+ }
+ }
+ else {
+ /*
+ * if no shape was detected, clear target shape and try
+ * to run mouseout from previous target shape
+ */
+ if (targetShape && eventsEnabled) {
+ targetShape._fireAndBubble(MOUSEOUT, { evt: evt, pointerId: pointerId });
+ targetShape._fireAndBubble(MOUSELEAVE$1, { evt: evt, pointerId: pointerId });
+ this._fire(MOUSEOVER, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ pointerId: pointerId,
+ });
+ this.targetShape = null;
+ }
+ this._fire(MOUSEMOVE, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ pointerId: pointerId,
+ });
+ }
+ // content event
+ this._fire(CONTENT_MOUSEMOVE, { evt: evt });
+ }
+ // always call preventDefault for desktop events because some browsers
+ // try to drag and drop the canvas element
+ if (evt.cancelable) {
+ evt.preventDefault();
+ }
+ };
+ Stage.prototype._mousedown = function (evt) {
+ // workaround for mobile IE to force touch event when unhandled pointer event elevates into a mouse event
+ if (Konva.UA.ieMobile) {
+ return this._touchstart(evt);
+ }
+ this.setPointersPositions(evt);
+ var pointerId = Util._getFirstPointerId(evt);
+ var shape = this.getIntersection(this.getPointerPosition());
+ DD.justDragged = false;
+ Konva.listenClickTap = true;
+ if (shape && shape.isListening()) {
+ this.clickStartShape = shape;
+ shape._fireAndBubble(MOUSEDOWN, { evt: evt, pointerId: pointerId });
+ }
+ else {
+ this._fire(MOUSEDOWN, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ pointerId: pointerId,
+ });
+ }
+ // content event
+ this._fire(CONTENT_MOUSEDOWN, { evt: evt });
+ // Do not prevent default behavior, because it will prevent listening events outside of window iframe
+ // we used preventDefault for disabling native drag&drop
+ // but userSelect = none style will do the trick
+ // if (evt.cancelable) {
+ // evt.preventDefault();
+ // }
+ };
+ Stage.prototype._mouseup = function (evt) {
+ // workaround for mobile IE to force touch event when unhandled pointer event elevates into a mouse event
+ if (Konva.UA.ieMobile) {
+ return this._touchend(evt);
+ }
+ this.setPointersPositions(evt);
+ var pointerId = Util._getFirstPointerId(evt);
+ var shape = this.getIntersection(this.getPointerPosition()), clickStartShape = this.clickStartShape, clickEndShape = this.clickEndShape, fireDblClick = false;
+ if (Konva.inDblClickWindow) {
+ fireDblClick = true;
+ clearTimeout(this.dblTimeout);
+ // Konva.inDblClickWindow = false;
+ }
+ else if (!DD.justDragged) {
+ // don't set inDblClickWindow after dragging
+ Konva.inDblClickWindow = true;
+ clearTimeout(this.dblTimeout);
+ }
+ this.dblTimeout = setTimeout(function () {
+ Konva.inDblClickWindow = false;
+ }, Konva.dblClickWindow);
+ if (shape && shape.isListening()) {
+ this.clickEndShape = shape;
+ shape._fireAndBubble(MOUSEUP, { evt: evt, pointerId: pointerId });
+ // detect if click or double click occurred
+ if (Konva.listenClickTap &&
+ clickStartShape &&
+ clickStartShape._id === shape._id) {
+ shape._fireAndBubble(CLICK, { evt: evt, pointerId: pointerId });
+ if (fireDblClick && clickEndShape && clickEndShape === shape) {
+ shape._fireAndBubble(DBL_CLICK, { evt: evt, pointerId: pointerId });
+ }
+ }
+ }
+ else {
+ this.clickEndShape = null;
+ this._fire(MOUSEUP, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ pointerId: pointerId,
+ });
+ if (Konva.listenClickTap) {
+ this._fire(CLICK, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ pointerId: pointerId,
+ });
+ }
+ if (fireDblClick) {
+ this._fire(DBL_CLICK, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ pointerId: pointerId,
+ });
+ }
+ }
+ // content events
+ this._fire(CONTENT_MOUSEUP, { evt: evt });
+ if (Konva.listenClickTap) {
+ this._fire(CONTENT_CLICK, { evt: evt });
+ if (fireDblClick) {
+ this._fire(CONTENT_DBL_CLICK, { evt: evt });
+ }
+ }
+ Konva.listenClickTap = false;
+ // always call preventDefault for desktop events because some browsers
+ // try to drag and drop the canvas element
+ if (evt.cancelable) {
+ evt.preventDefault();
+ }
+ };
+ Stage.prototype._contextmenu = function (evt) {
+ this.setPointersPositions(evt);
+ var shape = this.getIntersection(this.getPointerPosition());
+ if (shape && shape.isListening()) {
+ shape._fireAndBubble(CONTEXTMENU, { evt: evt });
+ }
+ else {
+ this._fire(CONTEXTMENU, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ });
+ }
+ this._fire(CONTENT_CONTEXTMENU, { evt: evt });
+ };
+ Stage.prototype._touchstart = function (evt) {
+ var _this = this;
+ this.setPointersPositions(evt);
+ var triggeredOnShape = false;
+ this._changedPointerPositions.forEach(function (pos) {
+ var shape = _this.getIntersection(pos);
+ Konva.listenClickTap = true;
+ DD.justDragged = false;
+ var hasShape = shape && shape.isListening();
+ if (!hasShape) {
+ return;
+ }
+ if (Konva.captureTouchEventsEnabled) {
+ shape.setPointerCapture(pos.id);
+ }
+ _this.tapStartShape = shape;
+ shape._fireAndBubble(TOUCHSTART, { evt: evt, pointerId: pos.id }, _this);
+ triggeredOnShape = true;
+ // only call preventDefault if the shape is listening for events
+ if (shape.isListening() && shape.preventDefault() && evt.cancelable) {
+ evt.preventDefault();
+ }
+ });
+ if (!triggeredOnShape) {
+ this._fire(TOUCHSTART, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ pointerId: this._changedPointerPositions[0].id,
+ });
+ }
+ // content event
+ this._fire(CONTENT_TOUCHSTART, { evt: evt });
+ };
+ Stage.prototype._touchmove = function (evt) {
+ var _this = this;
+ this.setPointersPositions(evt);
+ var eventsEnabled = !DD.isDragging || Konva.hitOnDragEnabled;
+ if (eventsEnabled) {
+ var triggeredOnShape = false;
+ var processedShapesIds = {};
+ this._changedPointerPositions.forEach(function (pos) {
+ var shape = getCapturedShape(pos.id) || _this.getIntersection(pos);
+ var hasShape = shape && shape.isListening();
+ if (!hasShape) {
+ return;
+ }
+ if (processedShapesIds[shape._id]) {
+ return;
+ }
+ processedShapesIds[shape._id] = true;
+ shape._fireAndBubble(TOUCHMOVE, { evt: evt, pointerId: pos.id });
+ triggeredOnShape = true;
+ // only call preventDefault if the shape is listening for events
+ if (shape.isListening() && shape.preventDefault() && evt.cancelable) {
+ evt.preventDefault();
+ }
+ });
+ if (!triggeredOnShape) {
+ this._fire(TOUCHMOVE, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ pointerId: this._changedPointerPositions[0].id,
+ });
+ }
+ this._fire(CONTENT_TOUCHMOVE, { evt: evt });
+ }
+ if (DD.isDragging && DD.node.preventDefault() && evt.cancelable) {
+ evt.preventDefault();
+ }
+ };
+ Stage.prototype._touchend = function (evt) {
+ var _this = this;
+ this.setPointersPositions(evt);
+ var tapEndShape = this.tapEndShape, fireDblClick = false;
+ if (Konva.inDblClickWindow) {
+ fireDblClick = true;
+ clearTimeout(this.dblTimeout);
+ // Konva.inDblClickWindow = false;
+ }
+ else if (!DD.justDragged) {
+ Konva.inDblClickWindow = true;
+ clearTimeout(this.dblTimeout);
+ }
+ this.dblTimeout = setTimeout(function () {
+ Konva.inDblClickWindow = false;
+ }, Konva.dblClickWindow);
+ var triggeredOnShape = false;
+ var processedShapesIds = {};
+ var tapTriggered = false;
+ var dblTapTriggered = false;
+ this._changedPointerPositions.forEach(function (pos) {
+ var shape = getCapturedShape(pos.id) ||
+ _this.getIntersection(pos);
+ if (shape) {
+ shape.releaseCapture(pos.id);
+ }
+ var hasShape = shape && shape.isListening();
+ if (!hasShape) {
+ return;
+ }
+ if (processedShapesIds[shape._id]) {
+ return;
+ }
+ processedShapesIds[shape._id] = true;
+ _this.tapEndShape = shape;
+ shape._fireAndBubble(TOUCHEND, { evt: evt, pointerId: pos.id });
+ triggeredOnShape = true;
+ // detect if tap or double tap occurred
+ if (Konva.listenClickTap && shape === _this.tapStartShape) {
+ tapTriggered = true;
+ shape._fireAndBubble(TAP, { evt: evt, pointerId: pos.id });
+ if (fireDblClick && tapEndShape && tapEndShape === shape) {
+ dblTapTriggered = true;
+ shape._fireAndBubble(DBL_TAP, { evt: evt, pointerId: pos.id });
+ }
+ }
+ // only call preventDefault if the shape is listening for events
+ if (shape.isListening() && shape.preventDefault() && evt.cancelable) {
+ evt.preventDefault();
+ }
+ });
+ if (!triggeredOnShape) {
+ this._fire(TOUCHEND, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ pointerId: this._changedPointerPositions[0].id,
+ });
+ }
+ if (Konva.listenClickTap && !tapTriggered) {
+ this.tapEndShape = null;
+ this._fire(TAP, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ pointerId: this._changedPointerPositions[0].id,
+ });
+ }
+ if (fireDblClick && !dblTapTriggered) {
+ this._fire(DBL_TAP, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ pointerId: this._changedPointerPositions[0].id,
+ });
+ }
+ // content events
+ this._fire(CONTENT_TOUCHEND, { evt: evt });
+ if (Konva.listenClickTap) {
+ this._fire(CONTENT_TAP, { evt: evt });
+ if (fireDblClick) {
+ this._fire(CONTENT_DBL_TAP, { evt: evt });
+ }
+ }
+ if (this.preventDefault() && evt.cancelable) {
+ evt.preventDefault();
+ }
+ Konva.listenClickTap = false;
+ };
+ Stage.prototype._wheel = function (evt) {
+ this.setPointersPositions(evt);
+ var shape = this.getIntersection(this.getPointerPosition());
+ if (shape && shape.isListening()) {
+ shape._fireAndBubble(WHEEL, { evt: evt });
+ }
+ else {
+ this._fire(WHEEL, {
+ evt: evt,
+ target: this,
+ currentTarget: this,
+ });
+ }
+ this._fire(CONTENT_WHEEL, { evt: evt });
+ };
+ Stage.prototype._pointerdown = function (evt) {
+ if (!Konva._pointerEventsEnabled) {
+ return;
+ }
+ this.setPointersPositions(evt);
+ var shape = getCapturedShape(evt.pointerId) ||
+ this.getIntersection(this.getPointerPosition());
+ if (shape) {
+ shape._fireAndBubble(POINTERDOWN, createEvent(evt));
+ }
+ };
+ Stage.prototype._pointermove = function (evt) {
+ if (!Konva._pointerEventsEnabled) {
+ return;
+ }
+ this.setPointersPositions(evt);
+ var shape = getCapturedShape(evt.pointerId) ||
+ this.getIntersection(this.getPointerPosition());
+ if (shape) {
+ shape._fireAndBubble(POINTERMOVE, createEvent(evt));
+ }
+ };
+ Stage.prototype._pointerup = function (evt) {
+ if (!Konva._pointerEventsEnabled) {
+ return;
+ }
+ this.setPointersPositions(evt);
+ var shape = getCapturedShape(evt.pointerId) ||
+ this.getIntersection(this.getPointerPosition());
+ if (shape) {
+ shape._fireAndBubble(POINTERUP, createEvent(evt));
+ }
+ releaseCapture(evt.pointerId);
+ };
+ Stage.prototype._pointercancel = function (evt) {
+ if (!Konva._pointerEventsEnabled) {
+ return;
+ }
+ this.setPointersPositions(evt);
+ var shape = getCapturedShape(evt.pointerId) ||
+ this.getIntersection(this.getPointerPosition());
+ if (shape) {
+ shape._fireAndBubble(POINTERUP, createEvent(evt));
+ }
+ releaseCapture(evt.pointerId);
+ };
+ Stage.prototype._lostpointercapture = function (evt) {
+ releaseCapture(evt.pointerId);
+ };
+ /**
+ * manually register pointers positions (mouse/touch) in the stage.
+ * So you can use stage.getPointerPosition(). Usually you don't need to use that method
+ * because all internal events are automatically registered. It may be useful if event
+ * is triggered outside of the stage, but you still want to use Konva methods to get pointers position.
+ * @method
+ * @name Konva.Stage#setPointersPositions
+ * @param {Object} event Event object
+ * @example
+ *
+ * window.addEventListener('mousemove', (e) => {
+ * stage.setPointersPositions(e);
+ * });
+ */
+ Stage.prototype.setPointersPositions = function (evt) {
+ var _this = this;
+ var contentPosition = this._getContentPosition(), x = null, y = null;
+ evt = evt ? evt : window.event;
+ // touch events
+ if (evt.touches !== undefined) {
+ // touchlist has not support for map method
+ // so we have to iterate
+ this._pointerPositions = [];
+ this._changedPointerPositions = [];
+ Collection.prototype.each.call(evt.touches, function (touch) {
+ _this._pointerPositions.push({
+ id: touch.identifier,
+ x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,
+ y: (touch.clientY - contentPosition.top) / contentPosition.scaleY,
+ });
+ });
+ Collection.prototype.each.call(evt.changedTouches || evt.touches, function (touch) {
+ _this._changedPointerPositions.push({
+ id: touch.identifier,
+ x: (touch.clientX - contentPosition.left) / contentPosition.scaleX,
+ y: (touch.clientY - contentPosition.top) / contentPosition.scaleY,
+ });
+ });
+ }
+ else {
+ // mouse events
+ x = (evt.clientX - contentPosition.left) / contentPosition.scaleX;
+ y = (evt.clientY - contentPosition.top) / contentPosition.scaleY;
+ this.pointerPos = {
+ x: x,
+ y: y,
+ };
+ this._pointerPositions = [{ x: x, y: y, id: Util._getFirstPointerId(evt) }];
+ this._changedPointerPositions = [
+ { x: x, y: y, id: Util._getFirstPointerId(evt) },
+ ];
+ }
+ };
+ Stage.prototype._setPointerPosition = function (evt) {
+ Util.warn('Method _setPointerPosition is deprecated. Use "stage.setPointersPositions(event)" instead.');
+ this.setPointersPositions(evt);
+ };
+ Stage.prototype._getContentPosition = function () {
+ if (!this.content || !this.content.getBoundingClientRect) {
+ return {
+ top: 0,
+ left: 0,
+ scaleX: 1,
+ scaleY: 1,
+ };
+ }
+ var rect = this.content.getBoundingClientRect();
+ return {
+ top: rect.top,
+ left: rect.left,
+ // sometimes clientWidth can be equals to 0
+ // i saw it in react-konva test, looks like it is because of hidden testing element
+ scaleX: rect.width / this.content.clientWidth || 1,
+ scaleY: rect.height / this.content.clientHeight || 1,
+ };
+ };
+ Stage.prototype._buildDOM = function () {
+ this.bufferCanvas = new SceneCanvas({
+ width: this.width(),
+ height: this.height(),
+ });
+ this.bufferHitCanvas = new HitCanvas({
+ pixelRatio: 1,
+ width: this.width(),
+ height: this.height(),
+ });
+ if (!Konva.isBrowser) {
+ return;
+ }
+ var container = this.container();
+ if (!container) {
+ throw 'Stage has no container. A container is required.';
+ }
+ // clear content inside container
+ container.innerHTML = EMPTY_STRING$1;
+ // content
+ this.content = document.createElement('div');
+ this.content.style.position = RELATIVE;
+ this.content.style.userSelect = 'none';
+ this.content.className = KONVA_CONTENT;
+ this.content.setAttribute('role', 'presentation');
+ container.appendChild(this.content);
+ this._resizeDOM();
+ };
+ // currently cache function is now working for stage, because stage has no its own canvas element
+ Stage.prototype.cache = function () {
+ Util.warn('Cache function is not allowed for stage. You may use cache only for layers, groups and shapes.');
+ return this;
+ };
+ Stage.prototype.clearCache = function () {
+ return this;
+ };
+ /**
+ * batch draw
+ * @method
+ * @name Konva.Layer#batchDraw
+ * @return {Konva.Stage} this
+ */
+ Stage.prototype.batchDraw = function () {
+ this.children.each(function (layer) {
+ layer.batchDraw();
+ });
+ return this;
+ };
+ return Stage;
+ }(Container));
+ Stage.prototype.nodeType = STAGE$1;
+ _registerNode(Stage);
+ /**
+ * get/set container DOM element
+ * @method
+ * @name Konva.Stage#container
+ * @returns {DomElement} container
+ * @example
+ * // get container
+ * var container = stage.container();
+ * // set container
+ * var container = document.createElement('div');
+ * body.appendChild(container);
+ * stage.container(container);
+ */
+ Factory.addGetterSetter(Stage, 'container');
+
+ var HAS_SHADOW = 'hasShadow';
+ var SHADOW_RGBA = 'shadowRGBA';
+ var patternImage = 'patternImage';
+ var linearGradient = 'linearGradient';
+ var radialGradient = 'radialGradient';
+ var dummyContext;
+ function getDummyContext() {
+ if (dummyContext) {
+ return dummyContext;
+ }
+ dummyContext = Util.createCanvasElement().getContext('2d');
+ return dummyContext;
+ }
+ var shapes = {};
+ // TODO: idea - use only "remove" (or destroy method)
+ // how? on add, check that every inner shape has reference in konva store with color
+ // on remove - clear that reference
+ // the approach is good. But what if we want to cache the shape before we add it into the stage
+ // what color to use for hit test?
+ function _fillFunc(context) {
+ context.fill();
+ }
+ function _strokeFunc(context) {
+ context.stroke();
+ }
+ function _fillFuncHit(context) {
+ context.fill();
+ }
+ function _strokeFuncHit(context) {
+ context.stroke();
+ }
+ function _clearHasShadowCache() {
+ this._clearCache(HAS_SHADOW);
+ }
+ function _clearGetShadowRGBACache() {
+ this._clearCache(SHADOW_RGBA);
+ }
+ function _clearFillPatternCache() {
+ this._clearCache(patternImage);
+ }
+ function _clearLinearGradientCache() {
+ this._clearCache(linearGradient);
+ }
+ function _clearRadialGradientCache() {
+ this._clearCache(radialGradient);
+ }
+ /**
+ * Shape constructor. Shapes are primitive objects such as rectangles,
+ * circles, text, lines, etc.
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Node
+ * @param {Object} config
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var customShape = new Konva.Shape({
+ * x: 5,
+ * y: 10,
+ * fill: 'red',
+ * // a Konva.Canvas renderer is passed into the sceneFunc function
+ * sceneFunc (context, shape) {
+ * context.beginPath();
+ * context.moveTo(200, 50);
+ * context.lineTo(420, 80);
+ * context.quadraticCurveTo(300, 100, 260, 170);
+ * context.closePath();
+ * // Konva specific method
+ * context.fillStrokeShape(shape);
+ * }
+ *});
+ */
+ var Shape = /** @class */ (function (_super) {
+ __extends(Shape, _super);
+ function Shape(config) {
+ var _this = _super.call(this, config) || this;
+ // set colorKey
+ var key;
+ while (true) {
+ key = Util.getRandomColor();
+ if (key && !(key in shapes)) {
+ break;
+ }
+ }
+ _this.colorKey = key;
+ shapes[key] = _this;
+ _this.on('shadowColorChange.konva shadowBlurChange.konva shadowOffsetChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearHasShadowCache);
+ _this.on('shadowColorChange.konva shadowOpacityChange.konva shadowEnabledChange.konva', _clearGetShadowRGBACache);
+ _this.on('fillPriorityChange.konva fillPatternImageChange.konva fillPatternRepeatChange.konva fillPatternScaleXChange.konva fillPatternScaleYChange.konva', _clearFillPatternCache);
+ _this.on('fillPriorityChange.konva fillLinearGradientColorStopsChange.konva fillLinearGradientStartPointXChange.konva fillLinearGradientStartPointYChange.konva fillLinearGradientEndPointXChange.konva fillLinearGradientEndPointYChange.konva', _clearLinearGradientCache);
+ _this.on('fillPriorityChange.konva fillRadialGradientColorStopsChange.konva fillRadialGradientStartPointXChange.konva fillRadialGradientStartPointYChange.konva fillRadialGradientEndPointXChange.konva fillRadialGradientEndPointYChange.konva fillRadialGradientStartRadiusChange.konva fillRadialGradientEndRadiusChange.konva', _clearRadialGradientCache);
+ return _this;
+ }
+ /**
+ * get canvas context tied to the layer
+ * @method
+ * @name Konva.Shape#getContext
+ * @returns {Konva.Context}
+ */
+ Shape.prototype.getContext = function () {
+ return this.getLayer().getContext();
+ };
+ /**
+ * get canvas renderer tied to the layer. Note that this returns a canvas renderer, not a canvas element
+ * @method
+ * @name Konva.Shape#getCanvas
+ * @returns {Konva.Canvas}
+ */
+ Shape.prototype.getCanvas = function () {
+ return this.getLayer().getCanvas();
+ };
+ Shape.prototype.getSceneFunc = function () {
+ return this.attrs.sceneFunc || this['_sceneFunc'];
+ };
+ Shape.prototype.getHitFunc = function () {
+ return this.attrs.hitFunc || this['_hitFunc'];
+ };
+ /**
+ * returns whether or not a shadow will be rendered
+ * @method
+ * @name Konva.Shape#hasShadow
+ * @returns {Boolean}
+ */
+ Shape.prototype.hasShadow = function () {
+ return this._getCache(HAS_SHADOW, this._hasShadow);
+ };
+ Shape.prototype._hasShadow = function () {
+ return (this.shadowEnabled() &&
+ this.shadowOpacity() !== 0 &&
+ !!(this.shadowColor() ||
+ this.shadowBlur() ||
+ this.shadowOffsetX() ||
+ this.shadowOffsetY()));
+ };
+ Shape.prototype._getFillPattern = function () {
+ return this._getCache(patternImage, this.__getFillPattern);
+ };
+ Shape.prototype.__getFillPattern = function () {
+ if (this.fillPatternImage()) {
+ var ctx = getDummyContext();
+ var pattern = ctx.createPattern(this.fillPatternImage(), this.fillPatternRepeat() || 'repeat');
+ // TODO: how to enable it? It doesn't work in FF...
+ // pattern.setTransform({
+ // a: this.fillPatternScaleX(), // Horizontal scaling. A value of 1 results in no scaling.
+ // b: 0, // Vertical skewing.
+ // c: 0, // Horizontal skewing.
+ // d: this.fillPatternScaleY(), // Vertical scaling. A value of 1 results in no scaling.
+ // e: 0, // Horizontal translation (moving).
+ // f: 0 // Vertical translation (moving).
+ // });
+ return pattern;
+ }
+ };
+ Shape.prototype._getLinearGradient = function () {
+ return this._getCache(linearGradient, this.__getLinearGradient);
+ };
+ Shape.prototype.__getLinearGradient = function () {
+ var colorStops = this.fillLinearGradientColorStops();
+ if (colorStops) {
+ var ctx = getDummyContext();
+ var start = this.fillLinearGradientStartPoint();
+ var end = this.fillLinearGradientEndPoint();
+ var grd = ctx.createLinearGradient(start.x, start.y, end.x, end.y);
+ // build color stops
+ for (var n = 0; n < colorStops.length; n += 2) {
+ grd.addColorStop(colorStops[n], colorStops[n + 1]);
+ }
+ return grd;
+ }
+ };
+ Shape.prototype._getRadialGradient = function () {
+ return this._getCache(radialGradient, this.__getRadialGradient);
+ };
+ Shape.prototype.__getRadialGradient = function () {
+ var colorStops = this.fillRadialGradientColorStops();
+ if (colorStops) {
+ var ctx = getDummyContext();
+ var start = this.fillRadialGradientStartPoint();
+ var end = this.fillRadialGradientEndPoint();
+ var grd = ctx.createRadialGradient(start.x, start.y, this.fillRadialGradientStartRadius(), end.x, end.y, this.fillRadialGradientEndRadius());
+ // build color stops
+ for (var n = 0; n < colorStops.length; n += 2) {
+ grd.addColorStop(colorStops[n], colorStops[n + 1]);
+ }
+ return grd;
+ }
+ };
+ Shape.prototype.getShadowRGBA = function () {
+ return this._getCache(SHADOW_RGBA, this._getShadowRGBA);
+ };
+ Shape.prototype._getShadowRGBA = function () {
+ if (this.hasShadow()) {
+ var rgba = Util.colorToRGBA(this.shadowColor());
+ return ('rgba(' +
+ rgba.r +
+ ',' +
+ rgba.g +
+ ',' +
+ rgba.b +
+ ',' +
+ rgba.a * (this.shadowOpacity() || 1) +
+ ')');
+ }
+ };
+ /**
+ * returns whether or not the shape will be filled
+ * @method
+ * @name Konva.Shape#hasFill
+ * @returns {Boolean}
+ */
+ Shape.prototype.hasFill = function () {
+ var _this = this;
+ return this._calculate('hasFill', [
+ 'fillEnabled',
+ 'fill',
+ 'fillPatternImage',
+ 'fillLinearGradientColorStops',
+ 'fillRadialGradientColorStops',
+ ], function () {
+ return (_this.fillEnabled() &&
+ !!(_this.fill() ||
+ _this.fillPatternImage() ||
+ _this.fillLinearGradientColorStops() ||
+ _this.fillRadialGradientColorStops()));
+ });
+ };
+ /**
+ * returns whether or not the shape will be stroked
+ * @method
+ * @name Konva.Shape#hasStroke
+ * @returns {Boolean}
+ */
+ Shape.prototype.hasStroke = function () {
+ var _this = this;
+ return this._calculate('hasStroke', [
+ 'strokeEnabled',
+ 'strokeWidth',
+ 'stroke',
+ 'strokeLinearGradientColorStops',
+ ], function () {
+ return (_this.strokeEnabled() &&
+ _this.strokeWidth() &&
+ !!(_this.stroke() || _this.strokeLinearGradientColorStops())
+ // this.getStrokeRadialGradientColorStops()
+ );
+ });
+ // return (
+ // this.strokeEnabled() &&
+ // this.strokeWidth() &&
+ // !!(this.stroke() || this.strokeLinearGradientColorStops())
+ // // this.getStrokeRadialGradientColorStops()
+ // );
+ };
+ Shape.prototype.hasHitStroke = function () {
+ var width = this.hitStrokeWidth();
+ // on auto just check by stroke
+ if (width === 'auto') {
+ return this.hasStroke();
+ }
+ // we should enable hit stroke if stroke is enabled
+ // and we have some value from width
+ return this.strokeEnabled() && !!width;
+ };
+ /**
+ * determines if point is in the shape, regardless if other shapes are on top of it. Note: because
+ * this method clears a temporary canvas and then redraws the shape, it performs very poorly if executed many times
+ * consecutively. Please use the {@link Konva.Stage#getIntersection} method if at all possible
+ * because it performs much better
+ * @method
+ * @name Konva.Shape#intersects
+ * @param {Object} point
+ * @param {Number} point.x
+ * @param {Number} point.y
+ * @returns {Boolean}
+ */
+ Shape.prototype.intersects = function (point) {
+ var stage = this.getStage(), bufferHitCanvas = stage.bufferHitCanvas, p;
+ bufferHitCanvas.getContext().clear();
+ this.drawHit(bufferHitCanvas);
+ p = bufferHitCanvas.context.getImageData(Math.round(point.x), Math.round(point.y), 1, 1).data;
+ return p[3] > 0;
+ };
+ Shape.prototype.destroy = function () {
+ Node.prototype.destroy.call(this);
+ delete shapes[this.colorKey];
+ delete this.colorKey;
+ return this;
+ };
+ // why do we need buffer canvas?
+ // it give better result when a shape has
+ // stroke with fill and with some opacity
+ Shape.prototype._useBufferCanvas = function (forceFill) {
+ // image and sprite still has "fill" as image
+ // so they use that method with forced fill
+ // it probably will be simpler, then copy/paste the code
+ var _a;
+ // buffer canvas is available only inside the stage
+ if (!this.getStage()) {
+ return false;
+ }
+ // force skip buffer canvas
+ var perfectDrawEnabled = (_a = this.attrs.perfectDrawEnabled) !== null && _a !== void 0 ? _a : true;
+ if (!perfectDrawEnabled) {
+ return false;
+ }
+ var hasFill = forceFill || this.hasFill();
+ var hasStroke = this.hasStroke();
+ var isTransparent = this.getAbsoluteOpacity() !== 1;
+ if (hasFill && hasStroke && isTransparent) {
+ return true;
+ }
+ var hasShadow = this.hasShadow();
+ var strokeForShadow = this.shadowForStrokeEnabled();
+ if (hasFill && hasStroke && hasShadow && strokeForShadow) {
+ return true;
+ }
+ return false;
+ };
+ Shape.prototype.setStrokeHitEnabled = function (val) {
+ Util.warn('strokeHitEnabled property is deprecated. Please use hitStrokeWidth instead.');
+ if (val) {
+ this.hitStrokeWidth('auto');
+ }
+ else {
+ this.hitStrokeWidth(0);
+ }
+ };
+ Shape.prototype.getStrokeHitEnabled = function () {
+ if (this.hitStrokeWidth() === 0) {
+ return false;
+ }
+ else {
+ return true;
+ }
+ };
+ /**
+ * return self rectangle (x, y, width, height) of shape.
+ * This method are not taken into account transformation and styles.
+ * @method
+ * @name Konva.Shape#getSelfRect
+ * @returns {Object} rect with {x, y, width, height} properties
+ * @example
+ *
+ * rect.getSelfRect(); // return {x:0, y:0, width:rect.width(), height:rect.height()}
+ * circle.getSelfRect(); // return {x: - circle.width() / 2, y: - circle.height() / 2, width:circle.width(), height:circle.height()}
+ *
+ */
+ Shape.prototype.getSelfRect = function () {
+ var size = this.size();
+ return {
+ x: this._centroid ? -size.width / 2 : 0,
+ y: this._centroid ? -size.height / 2 : 0,
+ width: size.width,
+ height: size.height,
+ };
+ };
+ Shape.prototype.getClientRect = function (attrs) {
+ attrs = attrs || {};
+ var skipTransform = attrs.skipTransform;
+ var relativeTo = attrs.relativeTo;
+ var fillRect = this.getSelfRect();
+ var applyStroke = !attrs.skipStroke && this.hasStroke();
+ var strokeWidth = (applyStroke && this.strokeWidth()) || 0;
+ var fillAndStrokeWidth = fillRect.width + strokeWidth;
+ var fillAndStrokeHeight = fillRect.height + strokeWidth;
+ var applyShadow = !attrs.skipShadow && this.hasShadow();
+ var shadowOffsetX = applyShadow ? this.shadowOffsetX() : 0;
+ var shadowOffsetY = applyShadow ? this.shadowOffsetY() : 0;
+ var preWidth = fillAndStrokeWidth + Math.abs(shadowOffsetX);
+ var preHeight = fillAndStrokeHeight + Math.abs(shadowOffsetY);
+ var blurRadius = (applyShadow && this.shadowBlur()) || 0;
+ var width = preWidth + blurRadius * 2;
+ var height = preHeight + blurRadius * 2;
+ // if stroke, for example = 3
+ // we need to set x to 1.5, but after Math.round it will be 2
+ // as we have additional offset we need to increase width and height by 1 pixel
+ var roundingOffset = 0;
+ if (Math.round(strokeWidth / 2) !== strokeWidth / 2) {
+ roundingOffset = 1;
+ }
+ var rect = {
+ width: width + roundingOffset,
+ height: height + roundingOffset,
+ x: -Math.round(strokeWidth / 2 + blurRadius) +
+ Math.min(shadowOffsetX, 0) +
+ fillRect.x,
+ y: -Math.round(strokeWidth / 2 + blurRadius) +
+ Math.min(shadowOffsetY, 0) +
+ fillRect.y,
+ };
+ if (!skipTransform) {
+ return this._transformedRect(rect, relativeTo);
+ }
+ return rect;
+ };
+ Shape.prototype.drawScene = function (can, top) {
+ // basically there are 3 drawing modes
+ // 1 - simple drawing when nothing is cached.
+ // 2 - when we are caching current
+ // 3 - when node is cached and we need to draw it into layer
+ var layer = this.getLayer(), canvas = can || layer.getCanvas(), context = canvas.getContext(), cachedCanvas = this._getCanvasCache(), drawFunc = this.getSceneFunc(), hasShadow = this.hasShadow(), stage, bufferCanvas, bufferContext;
+ var caching = canvas.isCache;
+ var skipBuffer = canvas.isCache;
+ var cachingSelf = top === this;
+ if (!this.isVisible() && !caching) {
+ return this;
+ }
+ // if node is cached we just need to draw from cache
+ if (cachedCanvas) {
+ context.save();
+ var m = this.getAbsoluteTransform(top).getMatrix();
+ context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
+ this._drawCachedSceneCanvas(context);
+ context.restore();
+ return this;
+ }
+ if (!drawFunc) {
+ return this;
+ }
+ context.save();
+ // if buffer canvas is needed
+ if (this._useBufferCanvas() && !skipBuffer) {
+ stage = this.getStage();
+ bufferCanvas = stage.bufferCanvas;
+ bufferContext = bufferCanvas.getContext();
+ bufferContext.clear();
+ bufferContext.save();
+ bufferContext._applyLineJoin(this);
+ // layer might be undefined if we are using cache before adding to layer
+ var o = this.getAbsoluteTransform(top).getMatrix();
+ bufferContext.transform(o[0], o[1], o[2], o[3], o[4], o[5]);
+ drawFunc.call(this, bufferContext, this);
+ bufferContext.restore();
+ var ratio = bufferCanvas.pixelRatio;
+ if (hasShadow) {
+ context._applyShadow(this);
+ }
+ context._applyOpacity(this);
+ context._applyGlobalCompositeOperation(this);
+ context.drawImage(bufferCanvas._canvas, 0, 0, bufferCanvas.width / ratio, bufferCanvas.height / ratio);
+ }
+ else {
+ context._applyLineJoin(this);
+ if (!cachingSelf) {
+ var o = this.getAbsoluteTransform(top).getMatrix();
+ context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);
+ context._applyOpacity(this);
+ context._applyGlobalCompositeOperation(this);
+ }
+ if (hasShadow) {
+ context._applyShadow(this);
+ }
+ drawFunc.call(this, context, this);
+ }
+ context.restore();
+ return this;
+ };
+ Shape.prototype.drawHit = function (can, top) {
+ if (!this.shouldDrawHit(top)) {
+ return this;
+ }
+ var layer = this.getLayer(), canvas = can || layer.hitCanvas, context = canvas && canvas.getContext(), drawFunc = this.hitFunc() || this.sceneFunc(), cachedCanvas = this._getCanvasCache(), cachedHitCanvas = cachedCanvas && cachedCanvas.hit;
+ if (!this.colorKey) {
+ console.log(this);
+ Util.warn('Looks like your canvas has a destroyed shape in it. Do not reuse shape after you destroyed it. See the shape in logs above. If you want to reuse shape you should call remove() instead of destroy()');
+ }
+ if (cachedHitCanvas) {
+ context.save();
+ var m = this.getAbsoluteTransform(top).getMatrix();
+ context.transform(m[0], m[1], m[2], m[3], m[4], m[5]);
+ this._drawCachedHitCanvas(context);
+ context.restore();
+ return this;
+ }
+ if (!drawFunc) {
+ return this;
+ }
+ context.save();
+ context._applyLineJoin(this);
+ var selfCache = this === top;
+ if (!selfCache) {
+ var o = this.getAbsoluteTransform(top).getMatrix();
+ context.transform(o[0], o[1], o[2], o[3], o[4], o[5]);
+ }
+ drawFunc.call(this, context, this);
+ context.restore();
+ return this;
+ };
+ /**
+ * draw hit graph using the cached scene canvas
+ * @method
+ * @name Konva.Shape#drawHitFromCache
+ * @param {Integer} alphaThreshold alpha channel threshold that determines whether or not
+ * a pixel should be drawn onto the hit graph. Must be a value between 0 and 255.
+ * The default is 0
+ * @returns {Konva.Shape}
+ * @example
+ * shape.cache();
+ * shape.drawHitFromCache();
+ */
+ Shape.prototype.drawHitFromCache = function (alphaThreshold) {
+ if (alphaThreshold === void 0) { alphaThreshold = 0; }
+ var cachedCanvas = this._getCanvasCache(), sceneCanvas = this._getCachedSceneCanvas(), hitCanvas = cachedCanvas.hit, hitContext = hitCanvas.getContext(), hitWidth = hitCanvas.getWidth(), hitHeight = hitCanvas.getHeight(), hitImageData, hitData, len, rgbColorKey, i, alpha;
+ hitContext.clear();
+ hitContext.drawImage(sceneCanvas._canvas, 0, 0, hitWidth, hitHeight);
+ try {
+ hitImageData = hitContext.getImageData(0, 0, hitWidth, hitHeight);
+ hitData = hitImageData.data;
+ len = hitData.length;
+ rgbColorKey = Util._hexToRgb(this.colorKey);
+ // replace non transparent pixels with color key
+ for (i = 0; i < len; i += 4) {
+ alpha = hitData[i + 3];
+ if (alpha > alphaThreshold) {
+ hitData[i] = rgbColorKey.r;
+ hitData[i + 1] = rgbColorKey.g;
+ hitData[i + 2] = rgbColorKey.b;
+ hitData[i + 3] = 255;
+ }
+ else {
+ hitData[i + 3] = 0;
+ }
+ }
+ hitContext.putImageData(hitImageData, 0, 0);
+ }
+ catch (e) {
+ Util.error('Unable to draw hit graph from cached scene canvas. ' + e.message);
+ }
+ return this;
+ };
+ Shape.prototype.hasPointerCapture = function (pointerId) {
+ return hasPointerCapture(pointerId, this);
+ };
+ Shape.prototype.setPointerCapture = function (pointerId) {
+ setPointerCapture(pointerId, this);
+ };
+ Shape.prototype.releaseCapture = function (pointerId) {
+ releaseCapture(pointerId);
+ };
+ return Shape;
+ }(Node));
+ Shape.prototype._fillFunc = _fillFunc;
+ Shape.prototype._strokeFunc = _strokeFunc;
+ Shape.prototype._fillFuncHit = _fillFuncHit;
+ Shape.prototype._strokeFuncHit = _strokeFuncHit;
+ Shape.prototype._centroid = false;
+ Shape.prototype.nodeType = 'Shape';
+ _registerNode(Shape);
+ // add getters and setters
+ Factory.addGetterSetter(Shape, 'stroke', undefined, getStringValidator());
+ /**
+ * get/set stroke color
+ * @name Konva.Shape#stroke
+ * @method
+ * @param {String} color
+ * @returns {String}
+ * @example
+ * // get stroke color
+ * var stroke = shape.stroke();
+ *
+ * // set stroke color with color string
+ * shape.stroke('green');
+ *
+ * // set stroke color with hex
+ * shape.stroke('#00ff00');
+ *
+ * // set stroke color with rgb
+ * shape.stroke('rgb(0,255,0)');
+ *
+ * // set stroke color with rgba and make it 50% opaque
+ * shape.stroke('rgba(0,255,0,0.5');
+ */
+ Factory.addGetterSetter(Shape, 'strokeWidth', 2, getNumberValidator());
+ /**
+ * get/set stroke width
+ * @name Konva.Shape#strokeWidth
+ * @method
+ * @param {Number} strokeWidth
+ * @returns {Number}
+ * @example
+ * // get stroke width
+ * var strokeWidth = shape.strokeWidth();
+ *
+ * // set stroke width
+ * shape.strokeWidth(10);
+ */
+ Factory.addGetterSetter(Shape, 'hitStrokeWidth', 'auto', getNumberOrAutoValidator());
+ /**
+ * get/set stroke width for hit detection. Default value is "auto", it means it will be equals to strokeWidth
+ * @name Konva.Shape#hitStrokeWidth
+ * @method
+ * @param {Number} hitStrokeWidth
+ * @returns {Number}
+ * @example
+ * // get stroke width
+ * var hitStrokeWidth = shape.hitStrokeWidth();
+ *
+ * // set hit stroke width
+ * shape.hitStrokeWidth(20);
+ * // set hit stroke width always equals to scene stroke width
+ * shape.hitStrokeWidth('auto');
+ */
+ Factory.addGetterSetter(Shape, 'strokeHitEnabled', true, getBooleanValidator());
+ /**
+ * **deprecated, use hitStrokeWidth instead!** get/set strokeHitEnabled property. Useful for performance optimization.
+ * You may set `shape.strokeHitEnabled(false)`. In this case stroke will be no draw on hit canvas, so hit area
+ * of shape will be decreased (by lineWidth / 2). Remember that non closed line with `strokeHitEnabled = false`
+ * will be not drawn on hit canvas, that is mean line will no trigger pointer events (like mouseover)
+ * Default value is true.
+ * @name Konva.Shape#strokeHitEnabled
+ * @method
+ * @param {Boolean} strokeHitEnabled
+ * @returns {Boolean}
+ * @example
+ * // get strokeHitEnabled
+ * var strokeHitEnabled = shape.strokeHitEnabled();
+ *
+ * // set strokeHitEnabled
+ * shape.strokeHitEnabled();
+ */
+ Factory.addGetterSetter(Shape, 'perfectDrawEnabled', true, getBooleanValidator());
+ /**
+ * get/set perfectDrawEnabled. If a shape has fill, stroke and opacity you may set `perfectDrawEnabled` to false to improve performance.
+ * See http://konvajs.org/docs/performance/Disable_Perfect_Draw.html for more information.
+ * Default value is true
+ * @name Konva.Shape#perfectDrawEnabled
+ * @method
+ * @param {Boolean} perfectDrawEnabled
+ * @returns {Boolean}
+ * @example
+ * // get perfectDrawEnabled
+ * var perfectDrawEnabled = shape.perfectDrawEnabled();
+ *
+ * // set perfectDrawEnabled
+ * shape.perfectDrawEnabled();
+ */
+ Factory.addGetterSetter(Shape, 'shadowForStrokeEnabled', true, getBooleanValidator());
+ /**
+ * get/set shadowForStrokeEnabled. Useful for performance optimization.
+ * You may set `shape.shadowForStrokeEnabled(false)`. In this case stroke will no effect shadow.
+ * Remember if you set `shadowForStrokeEnabled = false` for non closed line - that line will have no shadow!.
+ * Default value is true
+ * @name Konva.Shape#shadowForStrokeEnabled
+ * @method
+ * @param {Boolean} shadowForStrokeEnabled
+ * @returns {Boolean}
+ * @example
+ * // get shadowForStrokeEnabled
+ * var shadowForStrokeEnabled = shape.shadowForStrokeEnabled();
+ *
+ * // set shadowForStrokeEnabled
+ * shape.shadowForStrokeEnabled();
+ */
+ Factory.addGetterSetter(Shape, 'lineJoin');
+ /**
+ * get/set line join. Can be miter, round, or bevel. The
+ * default is miter
+ * @name Konva.Shape#lineJoin
+ * @method
+ * @param {String} lineJoin
+ * @returns {String}
+ * @example
+ * // get line join
+ * var lineJoin = shape.lineJoin();
+ *
+ * // set line join
+ * shape.lineJoin('round');
+ */
+ Factory.addGetterSetter(Shape, 'lineCap');
+ /**
+ * get/set line cap. Can be butt, round, or square
+ * @name Konva.Shape#lineCap
+ * @method
+ * @param {String} lineCap
+ * @returns {String}
+ * @example
+ * // get line cap
+ * var lineCap = shape.lineCap();
+ *
+ * // set line cap
+ * shape.lineCap('round');
+ */
+ Factory.addGetterSetter(Shape, 'sceneFunc');
+ /**
+ * get/set scene draw function. That function is used to draw the shape on a canvas.
+ * Also that function will be used to draw hit area of the shape, in case if hitFunc is not defined.
+ * @name Konva.Shape#sceneFunc
+ * @method
+ * @param {Function} drawFunc drawing function
+ * @returns {Function}
+ * @example
+ * // get scene draw function
+ * var sceneFunc = shape.sceneFunc();
+ *
+ * // set scene draw function
+ * shape.sceneFunc(function(context, shape) {
+ * context.beginPath();
+ * context.rect(0, 0, shape.width(), shape.height());
+ * context.closePath();
+ * // important Konva method that fill and stroke shape from its properties
+ * // like stroke and fill
+ * context.fillStrokeShape(shape);
+ * });
+ */
+ Factory.addGetterSetter(Shape, 'hitFunc');
+ /**
+ * get/set hit draw function. That function is used to draw custom hit area of a shape.
+ * @name Konva.Shape#hitFunc
+ * @method
+ * @param {Function} drawFunc drawing function
+ * @returns {Function}
+ * @example
+ * // get hit draw function
+ * var hitFunc = shape.hitFunc();
+ *
+ * // set hit draw function
+ * shape.hitFunc(function(context) {
+ * context.beginPath();
+ * context.rect(0, 0, shape.width(), shape.height());
+ * context.closePath();
+ * // important Konva method that fill and stroke shape from its properties
+ * context.fillStrokeShape(shape);
+ * });
+ */
+ Factory.addGetterSetter(Shape, 'dash');
+ /**
+ * get/set dash array for stroke.
+ * @name Konva.Shape#dash
+ * @method
+ * @param {Array} dash
+ * @returns {Array}
+ * @example
+ * // apply dashed stroke that is 10px long and 5 pixels apart
+ * line.dash([10, 5]);
+ * // apply dashed stroke that is made up of alternating dashed
+ * // lines that are 10px long and 20px apart, and dots that have
+ * // a radius of 5px and are 20px apart
+ * line.dash([10, 20, 0.001, 20]);
+ */
+ Factory.addGetterSetter(Shape, 'dashOffset', 0, getNumberValidator());
+ /**
+ * get/set dash offset for stroke.
+ * @name Konva.Shape#dash
+ * @method
+ * @param {Number} dash offset
+ * @returns {Number}
+ * @example
+ * // apply dashed stroke that is 10px long and 5 pixels apart with an offset of 5px
+ * line.dash([10, 5]);
+ * line.dashOffset(5);
+ */
+ Factory.addGetterSetter(Shape, 'shadowColor', undefined, getStringValidator());
+ /**
+ * get/set shadow color
+ * @name Konva.Shape#shadowColor
+ * @method
+ * @param {String} color
+ * @returns {String}
+ * @example
+ * // get shadow color
+ * var shadow = shape.shadowColor();
+ *
+ * // set shadow color with color string
+ * shape.shadowColor('green');
+ *
+ * // set shadow color with hex
+ * shape.shadowColor('#00ff00');
+ *
+ * // set shadow color with rgb
+ * shape.shadowColor('rgb(0,255,0)');
+ *
+ * // set shadow color with rgba and make it 50% opaque
+ * shape.shadowColor('rgba(0,255,0,0.5');
+ */
+ Factory.addGetterSetter(Shape, 'shadowBlur', 0, getNumberValidator());
+ /**
+ * get/set shadow blur
+ * @name Konva.Shape#shadowBlur
+ * @method
+ * @param {Number} blur
+ * @returns {Number}
+ * @example
+ * // get shadow blur
+ * var shadowBlur = shape.shadowBlur();
+ *
+ * // set shadow blur
+ * shape.shadowBlur(10);
+ */
+ Factory.addGetterSetter(Shape, 'shadowOpacity', 1, getNumberValidator());
+ /**
+ * get/set shadow opacity. must be a value between 0 and 1
+ * @name Konva.Shape#shadowOpacity
+ * @method
+ * @param {Number} opacity
+ * @returns {Number}
+ * @example
+ * // get shadow opacity
+ * var shadowOpacity = shape.shadowOpacity();
+ *
+ * // set shadow opacity
+ * shape.shadowOpacity(0.5);
+ */
+ Factory.addComponentsGetterSetter(Shape, 'shadowOffset', ['x', 'y']);
+ /**
+ * get/set shadow offset
+ * @name Konva.Shape#shadowOffset
+ * @method
+ * @param {Object} offset
+ * @param {Number} offset.x
+ * @param {Number} offset.y
+ * @returns {Object}
+ * @example
+ * // get shadow offset
+ * var shadowOffset = shape.shadowOffset();
+ *
+ * // set shadow offset
+ * shape.shadowOffset({
+ * x: 20,
+ * y: 10
+ * });
+ */
+ Factory.addGetterSetter(Shape, 'shadowOffsetX', 0, getNumberValidator());
+ /**
+ * get/set shadow offset x
+ * @name Konva.Shape#shadowOffsetX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get shadow offset x
+ * var shadowOffsetX = shape.shadowOffsetX();
+ *
+ * // set shadow offset x
+ * shape.shadowOffsetX(5);
+ */
+ Factory.addGetterSetter(Shape, 'shadowOffsetY', 0, getNumberValidator());
+ /**
+ * get/set shadow offset y
+ * @name Konva.Shape#shadowOffsetY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get shadow offset y
+ * var shadowOffsetY = shape.shadowOffsetY();
+ *
+ * // set shadow offset y
+ * shape.shadowOffsetY(5);
+ */
+ Factory.addGetterSetter(Shape, 'fillPatternImage');
+ /**
+ * get/set fill pattern image
+ * @name Konva.Shape#fillPatternImage
+ * @method
+ * @param {Image} image object
+ * @returns {Image}
+ * @example
+ * // get fill pattern image
+ * var fillPatternImage = shape.fillPatternImage();
+ *
+ * // set fill pattern image
+ * var imageObj = new Image();
+ * imageObj.onload = function() {
+ * shape.fillPatternImage(imageObj);
+ * };
+ * imageObj.src = 'path/to/image/jpg';
+ */
+ Factory.addGetterSetter(Shape, 'fill', undefined, getStringValidator());
+ /**
+ * get/set fill color
+ * @name Konva.Shape#fill
+ * @method
+ * @param {String} color
+ * @returns {String}
+ * @example
+ * // get fill color
+ * var fill = shape.fill();
+ *
+ * // set fill color with color string
+ * shape.fill('green');
+ *
+ * // set fill color with hex
+ * shape.fill('#00ff00');
+ *
+ * // set fill color with rgb
+ * shape.fill('rgb(0,255,0)');
+ *
+ * // set fill color with rgba and make it 50% opaque
+ * shape.fill('rgba(0,255,0,0.5');
+ *
+ * // shape without fill
+ * shape.fill(null);
+ */
+ Factory.addGetterSetter(Shape, 'fillPatternX', 0, getNumberValidator());
+ /**
+ * get/set fill pattern x
+ * @name Konva.Shape#fillPatternX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get fill pattern x
+ * var fillPatternX = shape.fillPatternX();
+ * // set fill pattern x
+ * shape.fillPatternX(20);
+ */
+ Factory.addGetterSetter(Shape, 'fillPatternY', 0, getNumberValidator());
+ /**
+ * get/set fill pattern y
+ * @name Konva.Shape#fillPatternY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get fill pattern y
+ * var fillPatternY = shape.fillPatternY();
+ * // set fill pattern y
+ * shape.fillPatternY(20);
+ */
+ Factory.addGetterSetter(Shape, 'fillLinearGradientColorStops');
+ /**
+ * get/set fill linear gradient color stops
+ * @name Konva.Shape#fillLinearGradientColorStops
+ * @method
+ * @param {Array} colorStops
+ * @returns {Array} colorStops
+ * @example
+ * // get fill linear gradient color stops
+ * var colorStops = shape.fillLinearGradientColorStops();
+ *
+ * // create a linear gradient that starts with red, changes to blue
+ * // halfway through, and then changes to green
+ * shape.fillLinearGradientColorStops(0, 'red', 0.5, 'blue', 1, 'green');
+ */
+ Factory.addGetterSetter(Shape, 'strokeLinearGradientColorStops');
+ /**
+ * get/set stroke linear gradient color stops
+ * @name Konva.Shape#strokeLinearGradientColorStops
+ * @method
+ * @param {Array} colorStops
+ * @returns {Array} colorStops
+ * @example
+ * // get stroke linear gradient color stops
+ * var colorStops = shape.strokeLinearGradientColorStops();
+ *
+ * // create a linear gradient that starts with red, changes to blue
+ * // halfway through, and then changes to green
+ * shape.strokeLinearGradientColorStops([0, 'red', 0.5, 'blue', 1, 'green']);
+ */
+ Factory.addGetterSetter(Shape, 'fillRadialGradientStartRadius', 0);
+ /**
+ * get/set fill radial gradient start radius
+ * @name Konva.Shape#fillRadialGradientStartRadius
+ * @method
+ * @param {Number} radius
+ * @returns {Number}
+ * @example
+ * // get radial gradient start radius
+ * var startRadius = shape.fillRadialGradientStartRadius();
+ *
+ * // set radial gradient start radius
+ * shape.fillRadialGradientStartRadius(0);
+ */
+ Factory.addGetterSetter(Shape, 'fillRadialGradientEndRadius', 0);
+ /**
+ * get/set fill radial gradient end radius
+ * @name Konva.Shape#fillRadialGradientEndRadius
+ * @method
+ * @param {Number} radius
+ * @returns {Number}
+ * @example
+ * // get radial gradient end radius
+ * var endRadius = shape.fillRadialGradientEndRadius();
+ *
+ * // set radial gradient end radius
+ * shape.fillRadialGradientEndRadius(100);
+ */
+ Factory.addGetterSetter(Shape, 'fillRadialGradientColorStops');
+ /**
+ * get/set fill radial gradient color stops
+ * @name Konva.Shape#fillRadialGradientColorStops
+ * @method
+ * @param {Number} colorStops
+ * @returns {Array}
+ * @example
+ * // get fill radial gradient color stops
+ * var colorStops = shape.fillRadialGradientColorStops();
+ *
+ * // create a radial gradient that starts with red, changes to blue
+ * // halfway through, and then changes to green
+ * shape.fillRadialGradientColorStops(0, 'red', 0.5, 'blue', 1, 'green');
+ */
+ Factory.addGetterSetter(Shape, 'fillPatternRepeat', 'repeat');
+ /**
+ * get/set fill pattern repeat. Can be 'repeat', 'repeat-x', 'repeat-y', or 'no-repeat'. The default is 'repeat'
+ * @name Konva.Shape#fillPatternRepeat
+ * @method
+ * @param {String} repeat
+ * @returns {String}
+ * @example
+ * // get fill pattern repeat
+ * var repeat = shape.fillPatternRepeat();
+ *
+ * // repeat pattern in x direction only
+ * shape.fillPatternRepeat('repeat-x');
+ *
+ * // do not repeat the pattern
+ * shape.fillPatternRepeat('no-repeat');
+ */
+ Factory.addGetterSetter(Shape, 'fillEnabled', true);
+ /**
+ * get/set fill enabled flag
+ * @name Konva.Shape#fillEnabled
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get fill enabled flag
+ * var fillEnabled = shape.fillEnabled();
+ *
+ * // disable fill
+ * shape.fillEnabled(false);
+ *
+ * // enable fill
+ * shape.fillEnabled(true);
+ */
+ Factory.addGetterSetter(Shape, 'strokeEnabled', true);
+ /**
+ * get/set stroke enabled flag
+ * @name Konva.Shape#strokeEnabled
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get stroke enabled flag
+ * var strokeEnabled = shape.strokeEnabled();
+ *
+ * // disable stroke
+ * shape.strokeEnabled(false);
+ *
+ * // enable stroke
+ * shape.strokeEnabled(true);
+ */
+ Factory.addGetterSetter(Shape, 'shadowEnabled', true);
+ /**
+ * get/set shadow enabled flag
+ * @name Konva.Shape#shadowEnabled
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get shadow enabled flag
+ * var shadowEnabled = shape.shadowEnabled();
+ *
+ * // disable shadow
+ * shape.shadowEnabled(false);
+ *
+ * // enable shadow
+ * shape.shadowEnabled(true);
+ */
+ Factory.addGetterSetter(Shape, 'dashEnabled', true);
+ /**
+ * get/set dash enabled flag
+ * @name Konva.Shape#dashEnabled
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get dash enabled flag
+ * var dashEnabled = shape.dashEnabled();
+ *
+ * // disable dash
+ * shape.dashEnabled(false);
+ *
+ * // enable dash
+ * shape.dashEnabled(true);
+ */
+ Factory.addGetterSetter(Shape, 'strokeScaleEnabled', true);
+ /**
+ * get/set strokeScale enabled flag
+ * @name Konva.Shape#strokeScaleEnabled
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get stroke scale enabled flag
+ * var strokeScaleEnabled = shape.strokeScaleEnabled();
+ *
+ * // disable stroke scale
+ * shape.strokeScaleEnabled(false);
+ *
+ * // enable stroke scale
+ * shape.strokeScaleEnabled(true);
+ */
+ Factory.addGetterSetter(Shape, 'fillPriority', 'color');
+ /**
+ * get/set fill priority. can be color, pattern, linear-gradient, or radial-gradient. The default is color.
+ * This is handy if you want to toggle between different fill types.
+ * @name Konva.Shape#fillPriority
+ * @method
+ * @param {String} priority
+ * @returns {String}
+ * @example
+ * // get fill priority
+ * var fillPriority = shape.fillPriority();
+ *
+ * // set fill priority
+ * shape.fillPriority('linear-gradient');
+ */
+ Factory.addComponentsGetterSetter(Shape, 'fillPatternOffset', ['x', 'y']);
+ /**
+ * get/set fill pattern offset
+ * @name Konva.Shape#fillPatternOffset
+ * @method
+ * @param {Object} offset
+ * @param {Number} offset.x
+ * @param {Number} offset.y
+ * @returns {Object}
+ * @example
+ * // get fill pattern offset
+ * var patternOffset = shape.fillPatternOffset();
+ *
+ * // set fill pattern offset
+ * shape.fillPatternOffset({
+ * x: 20,
+ * y: 10
+ * });
+ */
+ Factory.addGetterSetter(Shape, 'fillPatternOffsetX', 0, getNumberValidator());
+ /**
+ * get/set fill pattern offset x
+ * @name Konva.Shape#fillPatternOffsetX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get fill pattern offset x
+ * var patternOffsetX = shape.fillPatternOffsetX();
+ *
+ * // set fill pattern offset x
+ * shape.fillPatternOffsetX(20);
+ */
+ Factory.addGetterSetter(Shape, 'fillPatternOffsetY', 0, getNumberValidator());
+ /**
+ * get/set fill pattern offset y
+ * @name Konva.Shape#fillPatternOffsetY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get fill pattern offset y
+ * var patternOffsetY = shape.fillPatternOffsetY();
+ *
+ * // set fill pattern offset y
+ * shape.fillPatternOffsetY(10);
+ */
+ Factory.addComponentsGetterSetter(Shape, 'fillPatternScale', ['x', 'y']);
+ /**
+ * get/set fill pattern scale
+ * @name Konva.Shape#fillPatternScale
+ * @method
+ * @param {Object} scale
+ * @param {Number} scale.x
+ * @param {Number} scale.y
+ * @returns {Object}
+ * @example
+ * // get fill pattern scale
+ * var patternScale = shape.fillPatternScale();
+ *
+ * // set fill pattern scale
+ * shape.fillPatternScale({
+ * x: 2,
+ * y: 2
+ * });
+ */
+ Factory.addGetterSetter(Shape, 'fillPatternScaleX', 1, getNumberValidator());
+ /**
+ * get/set fill pattern scale x
+ * @name Konva.Shape#fillPatternScaleX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get fill pattern scale x
+ * var patternScaleX = shape.fillPatternScaleX();
+ *
+ * // set fill pattern scale x
+ * shape.fillPatternScaleX(2);
+ */
+ Factory.addGetterSetter(Shape, 'fillPatternScaleY', 1, getNumberValidator());
+ /**
+ * get/set fill pattern scale y
+ * @name Konva.Shape#fillPatternScaleY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get fill pattern scale y
+ * var patternScaleY = shape.fillPatternScaleY();
+ *
+ * // set fill pattern scale y
+ * shape.fillPatternScaleY(2);
+ */
+ Factory.addComponentsGetterSetter(Shape, 'fillLinearGradientStartPoint', [
+ 'x',
+ 'y',
+ ]);
+ /**
+ * get/set fill linear gradient start point
+ * @name Konva.Shape#fillLinearGradientStartPoint
+ * @method
+ * @param {Object} startPoint
+ * @param {Number} startPoint.x
+ * @param {Number} startPoint.y
+ * @returns {Object}
+ * @example
+ * // get fill linear gradient start point
+ * var startPoint = shape.fillLinearGradientStartPoint();
+ *
+ * // set fill linear gradient start point
+ * shape.fillLinearGradientStartPoint({
+ * x: 20,
+ * y: 10
+ * });
+ */
+ Factory.addComponentsGetterSetter(Shape, 'strokeLinearGradientStartPoint', [
+ 'x',
+ 'y',
+ ]);
+ /**
+ * get/set stroke linear gradient start point
+ * @name Konva.Shape#strokeLinearGradientStartPoint
+ * @method
+ * @param {Object} startPoint
+ * @param {Number} startPoint.x
+ * @param {Number} startPoint.y
+ * @returns {Object}
+ * @example
+ * // get stroke linear gradient start point
+ * var startPoint = shape.strokeLinearGradientStartPoint();
+ *
+ * // set stroke linear gradient start point
+ * shape.strokeLinearGradientStartPoint({
+ * x: 20,
+ * y: 10
+ * });
+ */
+ Factory.addGetterSetter(Shape, 'fillLinearGradientStartPointX', 0);
+ /**
+ * get/set fill linear gradient start point x
+ * @name Konva.Shape#fillLinearGradientStartPointX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get fill linear gradient start point x
+ * var startPointX = shape.fillLinearGradientStartPointX();
+ *
+ * // set fill linear gradient start point x
+ * shape.fillLinearGradientStartPointX(20);
+ */
+ Factory.addGetterSetter(Shape, 'strokeLinearGradientStartPointX', 0);
+ /**
+ * get/set stroke linear gradient start point x
+ * @name Konva.Shape#linearLinearGradientStartPointX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get stroke linear gradient start point x
+ * var startPointX = shape.strokeLinearGradientStartPointX();
+ *
+ * // set stroke linear gradient start point x
+ * shape.strokeLinearGradientStartPointX(20);
+ */
+ Factory.addGetterSetter(Shape, 'fillLinearGradientStartPointY', 0);
+ /**
+ * get/set fill linear gradient start point y
+ * @name Konva.Shape#fillLinearGradientStartPointY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get fill linear gradient start point y
+ * var startPointY = shape.fillLinearGradientStartPointY();
+ *
+ * // set fill linear gradient start point y
+ * shape.fillLinearGradientStartPointY(20);
+ */
+ Factory.addGetterSetter(Shape, 'strokeLinearGradientStartPointY', 0);
+ /**
+ * get/set stroke linear gradient start point y
+ * @name Konva.Shape#strokeLinearGradientStartPointY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get stroke linear gradient start point y
+ * var startPointY = shape.strokeLinearGradientStartPointY();
+ *
+ * // set stroke linear gradient start point y
+ * shape.strokeLinearGradientStartPointY(20);
+ */
+ Factory.addComponentsGetterSetter(Shape, 'fillLinearGradientEndPoint', [
+ 'x',
+ 'y',
+ ]);
+ /**
+ * get/set fill linear gradient end point
+ * @name Konva.Shape#fillLinearGradientEndPoint
+ * @method
+ * @param {Object} endPoint
+ * @param {Number} endPoint.x
+ * @param {Number} endPoint.y
+ * @returns {Object}
+ * @example
+ * // get fill linear gradient end point
+ * var endPoint = shape.fillLinearGradientEndPoint();
+ *
+ * // set fill linear gradient end point
+ * shape.fillLinearGradientEndPoint({
+ * x: 20,
+ * y: 10
+ * });
+ */
+ Factory.addComponentsGetterSetter(Shape, 'strokeLinearGradientEndPoint', [
+ 'x',
+ 'y',
+ ]);
+ /**
+ * get/set stroke linear gradient end point
+ * @name Konva.Shape#strokeLinearGradientEndPoint
+ * @method
+ * @param {Object} endPoint
+ * @param {Number} endPoint.x
+ * @param {Number} endPoint.y
+ * @returns {Object}
+ * @example
+ * // get stroke linear gradient end point
+ * var endPoint = shape.strokeLinearGradientEndPoint();
+ *
+ * // set stroke linear gradient end point
+ * shape.strokeLinearGradientEndPoint({
+ * x: 20,
+ * y: 10
+ * });
+ */
+ Factory.addGetterSetter(Shape, 'fillLinearGradientEndPointX', 0);
+ /**
+ * get/set fill linear gradient end point x
+ * @name Konva.Shape#fillLinearGradientEndPointX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get fill linear gradient end point x
+ * var endPointX = shape.fillLinearGradientEndPointX();
+ *
+ * // set fill linear gradient end point x
+ * shape.fillLinearGradientEndPointX(20);
+ */
+ Factory.addGetterSetter(Shape, 'strokeLinearGradientEndPointX', 0);
+ /**
+ * get/set fill linear gradient end point x
+ * @name Konva.Shape#strokeLinearGradientEndPointX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get stroke linear gradient end point x
+ * var endPointX = shape.strokeLinearGradientEndPointX();
+ *
+ * // set stroke linear gradient end point x
+ * shape.strokeLinearGradientEndPointX(20);
+ */
+ Factory.addGetterSetter(Shape, 'fillLinearGradientEndPointY', 0);
+ /**
+ * get/set fill linear gradient end point y
+ * @name Konva.Shape#fillLinearGradientEndPointY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get fill linear gradient end point y
+ * var endPointY = shape.fillLinearGradientEndPointY();
+ *
+ * // set fill linear gradient end point y
+ * shape.fillLinearGradientEndPointY(20);
+ */
+ Factory.addGetterSetter(Shape, 'strokeLinearGradientEndPointY', 0);
+ /**
+ * get/set stroke linear gradient end point y
+ * @name Konva.Shape#strokeLinearGradientEndPointY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get stroke linear gradient end point y
+ * var endPointY = shape.strokeLinearGradientEndPointY();
+ *
+ * // set stroke linear gradient end point y
+ * shape.strokeLinearGradientEndPointY(20);
+ */
+ Factory.addComponentsGetterSetter(Shape, 'fillRadialGradientStartPoint', [
+ 'x',
+ 'y',
+ ]);
+ /**
+ * get/set fill radial gradient start point
+ * @name Konva.Shape#fillRadialGradientStartPoint
+ * @method
+ * @param {Object} startPoint
+ * @param {Number} startPoint.x
+ * @param {Number} startPoint.y
+ * @returns {Object}
+ * @example
+ * // get fill radial gradient start point
+ * var startPoint = shape.fillRadialGradientStartPoint();
+ *
+ * // set fill radial gradient start point
+ * shape.fillRadialGradientStartPoint({
+ * x: 20,
+ * y: 10
+ * });
+ */
+ Factory.addGetterSetter(Shape, 'fillRadialGradientStartPointX', 0);
+ /**
+ * get/set fill radial gradient start point x
+ * @name Konva.Shape#fillRadialGradientStartPointX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get fill radial gradient start point x
+ * var startPointX = shape.fillRadialGradientStartPointX();
+ *
+ * // set fill radial gradient start point x
+ * shape.fillRadialGradientStartPointX(20);
+ */
+ Factory.addGetterSetter(Shape, 'fillRadialGradientStartPointY', 0);
+ /**
+ * get/set fill radial gradient start point y
+ * @name Konva.Shape#fillRadialGradientStartPointY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get fill radial gradient start point y
+ * var startPointY = shape.fillRadialGradientStartPointY();
+ *
+ * // set fill radial gradient start point y
+ * shape.fillRadialGradientStartPointY(20);
+ */
+ Factory.addComponentsGetterSetter(Shape, 'fillRadialGradientEndPoint', [
+ 'x',
+ 'y',
+ ]);
+ /**
+ * get/set fill radial gradient end point
+ * @name Konva.Shape#fillRadialGradientEndPoint
+ * @method
+ * @param {Object} endPoint
+ * @param {Number} endPoint.x
+ * @param {Number} endPoint.y
+ * @returns {Object}
+ * @example
+ * // get fill radial gradient end point
+ * var endPoint = shape.fillRadialGradientEndPoint();
+ *
+ * // set fill radial gradient end point
+ * shape.fillRadialGradientEndPoint({
+ * x: 20,
+ * y: 10
+ * });
+ */
+ Factory.addGetterSetter(Shape, 'fillRadialGradientEndPointX', 0);
+ /**
+ * get/set fill radial gradient end point x
+ * @name Konva.Shape#fillRadialGradientEndPointX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get fill radial gradient end point x
+ * var endPointX = shape.fillRadialGradientEndPointX();
+ *
+ * // set fill radial gradient end point x
+ * shape.fillRadialGradientEndPointX(20);
+ */
+ Factory.addGetterSetter(Shape, 'fillRadialGradientEndPointY', 0);
+ /**
+ * get/set fill radial gradient end point y
+ * @name Konva.Shape#fillRadialGradientEndPointY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get fill radial gradient end point y
+ * var endPointY = shape.fillRadialGradientEndPointY();
+ *
+ * // set fill radial gradient end point y
+ * shape.fillRadialGradientEndPointY(20);
+ */
+ Factory.addGetterSetter(Shape, 'fillPatternRotation', 0);
+ /**
+ * get/set fill pattern rotation in degrees
+ * @name Konva.Shape#fillPatternRotation
+ * @method
+ * @param {Number} rotation
+ * @returns {Konva.Shape}
+ * @example
+ * // get fill pattern rotation
+ * var patternRotation = shape.fillPatternRotation();
+ *
+ * // set fill pattern rotation
+ * shape.fillPatternRotation(20);
+ */
+ Factory.backCompat(Shape, {
+ dashArray: 'dash',
+ getDashArray: 'getDash',
+ setDashArray: 'getDash',
+ drawFunc: 'sceneFunc',
+ getDrawFunc: 'getSceneFunc',
+ setDrawFunc: 'setSceneFunc',
+ drawHitFunc: 'hitFunc',
+ getDrawHitFunc: 'getHitFunc',
+ setDrawHitFunc: 'setHitFunc',
+ });
+ Collection.mapMethods(Shape);
+
+ // constants
+ var HASH$1 = '#', BEFORE_DRAW = 'beforeDraw', DRAW = 'draw',
+ /*
+ * 2 - 3 - 4
+ * | |
+ * 1 - 0 5
+ * |
+ * 8 - 7 - 6
+ */
+ INTERSECTION_OFFSETS = [
+ { x: 0, y: 0 },
+ { x: -1, y: -1 },
+ { x: 1, y: -1 },
+ { x: 1, y: 1 },
+ { x: -1, y: 1 },
+ ], INTERSECTION_OFFSETS_LEN = INTERSECTION_OFFSETS.length;
+ /**
+ * Layer constructor. Layers are tied to their own canvas element and are used
+ * to contain groups or shapes.
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Container
+ * @param {Object} config
+ * @param {Boolean} [config.clearBeforeDraw] set this property to false if you don't want
+ * to clear the canvas before each layer draw. The default value is true.
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * * @param {Object} [config.clip] set clip
+ * @param {Number} [config.clipX] set clip x
+ * @param {Number} [config.clipY] set clip y
+ * @param {Number} [config.clipWidth] set clip width
+ * @param {Number} [config.clipHeight] set clip height
+ * @param {Function} [config.clipFunc] set clip func
+
+ * @example
+ * var layer = new Konva.Layer();
+ * stage.add(layer);
+ * // now you can add shapes, groups into the layer
+ */
+ var Layer = /** @class */ (function (_super) {
+ __extends(Layer, _super);
+ function Layer(config) {
+ var _this = _super.call(this, config) || this;
+ _this.canvas = new SceneCanvas();
+ _this.hitCanvas = new HitCanvas({
+ pixelRatio: 1,
+ });
+ _this._waitingForDraw = false;
+ _this.on('visibleChange.konva', _this._checkVisibility);
+ _this._checkVisibility();
+ _this.on('imageSmoothingEnabledChange.konva', _this._setSmoothEnabled);
+ _this._setSmoothEnabled();
+ return _this;
+ }
+ // for nodejs?
+ Layer.prototype.createPNGStream = function () {
+ var c = this.canvas._canvas;
+ return c.createPNGStream();
+ };
+ /**
+ * get layer canvas wrapper
+ * @method
+ * @name Konva.Layer#getCanvas
+ */
+ Layer.prototype.getCanvas = function () {
+ return this.canvas;
+ };
+ /**
+ * get layer hit canvas
+ * @method
+ * @name Konva.Layer#getHitCanvas
+ */
+ Layer.prototype.getHitCanvas = function () {
+ return this.hitCanvas;
+ };
+ /**
+ * get layer canvas context
+ * @method
+ * @name Konva.Layer#getContext
+ */
+ Layer.prototype.getContext = function () {
+ return this.getCanvas().getContext();
+ };
+ /**
+ * clear scene and hit canvas contexts tied to the layer.
+ * This function doesn't remove any nodes. It just clear canvas element.
+ * @method
+ * @name Konva.Layer#clear
+ * @param {Object} [bounds]
+ * @param {Number} [bounds.x]
+ * @param {Number} [bounds.y]
+ * @param {Number} [bounds.width]
+ * @param {Number} [bounds.height]
+ * @example
+ * layer.clear();
+ * layer.clear({
+ * x : 0,
+ * y : 0,
+ * width : 100,
+ * height : 100
+ * });
+ */
+ Layer.prototype.clear = function (bounds) {
+ this.getContext().clear(bounds);
+ this.getHitCanvas().getContext().clear(bounds);
+ return this;
+ };
+ // extend Node.prototype.setZIndex
+ Layer.prototype.setZIndex = function (index) {
+ _super.prototype.setZIndex.call(this, index);
+ var stage = this.getStage();
+ if (stage) {
+ stage.content.removeChild(this.getCanvas()._canvas);
+ if (index < stage.children.length - 1) {
+ stage.content.insertBefore(this.getCanvas()._canvas, stage.children[index + 1].getCanvas()._canvas);
+ }
+ else {
+ stage.content.appendChild(this.getCanvas()._canvas);
+ }
+ }
+ return this;
+ };
+ Layer.prototype.moveToTop = function () {
+ Node.prototype.moveToTop.call(this);
+ var stage = this.getStage();
+ if (stage) {
+ stage.content.removeChild(this.getCanvas()._canvas);
+ stage.content.appendChild(this.getCanvas()._canvas);
+ }
+ return true;
+ };
+ Layer.prototype.moveUp = function () {
+ var moved = Node.prototype.moveUp.call(this);
+ if (!moved) {
+ return false;
+ }
+ var stage = this.getStage();
+ if (!stage) {
+ return false;
+ }
+ stage.content.removeChild(this.getCanvas()._canvas);
+ if (this.index < stage.children.length - 1) {
+ stage.content.insertBefore(this.getCanvas()._canvas, stage.children[this.index + 1].getCanvas()._canvas);
+ }
+ else {
+ stage.content.appendChild(this.getCanvas()._canvas);
+ }
+ return true;
+ };
+ // extend Node.prototype.moveDown
+ Layer.prototype.moveDown = function () {
+ if (Node.prototype.moveDown.call(this)) {
+ var stage = this.getStage();
+ if (stage) {
+ var children = stage.children;
+ stage.content.removeChild(this.getCanvas()._canvas);
+ stage.content.insertBefore(this.getCanvas()._canvas, children[this.index + 1].getCanvas()._canvas);
+ }
+ return true;
+ }
+ return false;
+ };
+ // extend Node.prototype.moveToBottom
+ Layer.prototype.moveToBottom = function () {
+ if (Node.prototype.moveToBottom.call(this)) {
+ var stage = this.getStage();
+ if (stage) {
+ var children = stage.children;
+ stage.content.removeChild(this.getCanvas()._canvas);
+ stage.content.insertBefore(this.getCanvas()._canvas, children[1].getCanvas()._canvas);
+ }
+ return true;
+ }
+ return false;
+ };
+ Layer.prototype.getLayer = function () {
+ return this;
+ };
+ Layer.prototype.remove = function () {
+ var _canvas = this.getCanvas()._canvas;
+ Node.prototype.remove.call(this);
+ if (_canvas && _canvas.parentNode && Util._isInDocument(_canvas)) {
+ _canvas.parentNode.removeChild(_canvas);
+ }
+ return this;
+ };
+ Layer.prototype.getStage = function () {
+ return this.parent;
+ };
+ Layer.prototype.setSize = function (_a) {
+ var width = _a.width, height = _a.height;
+ this.canvas.setSize(width, height);
+ this.hitCanvas.setSize(width, height);
+ this._setSmoothEnabled();
+ return this;
+ };
+ Layer.prototype._validateAdd = function (child) {
+ var type = child.getType();
+ if (type !== 'Group' && type !== 'Shape') {
+ Util.throw('You may only add groups and shapes to a layer.');
+ }
+ };
+ Layer.prototype._toKonvaCanvas = function (config) {
+ config = config || {};
+ config.width = config.width || this.getWidth();
+ config.height = config.height || this.getHeight();
+ config.x = config.x !== undefined ? config.x : this.x();
+ config.y = config.y !== undefined ? config.y : this.y();
+ return Node.prototype._toKonvaCanvas.call(this, config);
+ };
+ Layer.prototype._checkVisibility = function () {
+ var visible = this.visible();
+ if (visible) {
+ this.canvas._canvas.style.display = 'block';
+ }
+ else {
+ this.canvas._canvas.style.display = 'none';
+ }
+ };
+ Layer.prototype._setSmoothEnabled = function () {
+ this.getContext()._context.imageSmoothingEnabled = this.imageSmoothingEnabled();
+ };
+ /**
+ * get/set width of layer. getter return width of stage. setter doing nothing.
+ * if you want change width use `stage.width(value);`
+ * @name Konva.Layer#width
+ * @method
+ * @returns {Number}
+ * @example
+ * var width = layer.width();
+ */
+ Layer.prototype.getWidth = function () {
+ if (this.parent) {
+ return this.parent.width();
+ }
+ };
+ Layer.prototype.setWidth = function () {
+ Util.warn('Can not change width of layer. Use "stage.width(value)" function instead.');
+ };
+ /**
+ * get/set height of layer.getter return height of stage. setter doing nothing.
+ * if you want change height use `stage.height(value);`
+ * @name Konva.Layer#height
+ * @method
+ * @returns {Number}
+ * @example
+ * var height = layer.height();
+ */
+ Layer.prototype.getHeight = function () {
+ if (this.parent) {
+ return this.parent.height();
+ }
+ };
+ Layer.prototype.setHeight = function () {
+ Util.warn('Can not change height of layer. Use "stage.height(value)" function instead.');
+ };
+ /**
+ * batch draw. this function will not do immediate draw
+ * but it will schedule drawing to next tick (requestAnimFrame)
+ * @method
+ * @name Konva.Layer#batchDraw
+ * @return {Konva.Layer} this
+ */
+ Layer.prototype.batchDraw = function () {
+ var _this = this;
+ if (!this._waitingForDraw) {
+ this._waitingForDraw = true;
+ Util.requestAnimFrame(function () {
+ _this.draw();
+ _this._waitingForDraw = false;
+ });
+ }
+ return this;
+ };
+ /**
+ * get visible intersection shape. This is the preferred
+ * method for determining if a point intersects a shape or not
+ * also you may pass optional selector parameter to return ancestor of intersected shape
+ * @method
+ * @name Konva.Layer#getIntersection
+ * @param {Object} pos
+ * @param {Number} pos.x
+ * @param {Number} pos.y
+ * @param {String} [selector]
+ * @returns {Konva.Node}
+ * @example
+ * var shape = layer.getIntersection({x: 50, y: 50});
+ * // or if you interested in shape parent:
+ * var group = layer.getIntersection({x: 50, y: 50}, 'Group');
+ */
+ Layer.prototype.getIntersection = function (pos, selector) {
+ var obj, i, intersectionOffset, shape;
+ if (!this.isListening() || !this.isVisible()) {
+ return null;
+ }
+ // in some cases antialiased area may be bigger than 1px
+ // it is possible if we will cache node, then scale it a lot
+ var spiralSearchDistance = 1;
+ var continueSearch = false;
+ while (true) {
+ for (i = 0; i < INTERSECTION_OFFSETS_LEN; i++) {
+ intersectionOffset = INTERSECTION_OFFSETS[i];
+ obj = this._getIntersection({
+ x: pos.x + intersectionOffset.x * spiralSearchDistance,
+ y: pos.y + intersectionOffset.y * spiralSearchDistance,
+ });
+ shape = obj.shape;
+ if (shape && selector) {
+ return shape.findAncestor(selector, true);
+ }
+ else if (shape) {
+ return shape;
+ }
+ // we should continue search if we found antialiased pixel
+ // that means our node somewhere very close
+ continueSearch = !!obj.antialiased;
+ // stop search if found empty pixel
+ if (!obj.antialiased) {
+ break;
+ }
+ }
+ // if no shape, and no antialiased pixel, we should end searching
+ if (continueSearch) {
+ spiralSearchDistance += 1;
+ }
+ else {
+ return null;
+ }
+ }
+ };
+ Layer.prototype._getIntersection = function (pos) {
+ var ratio = this.hitCanvas.pixelRatio;
+ var p = this.hitCanvas.context.getImageData(Math.round(pos.x * ratio), Math.round(pos.y * ratio), 1, 1).data, p3 = p[3], colorKey, shape;
+ // fully opaque pixel
+ if (p3 === 255) {
+ colorKey = Util._rgbToHex(p[0], p[1], p[2]);
+ shape = shapes[HASH$1 + colorKey];
+ if (shape) {
+ return {
+ shape: shape,
+ };
+ }
+ return {
+ antialiased: true,
+ };
+ }
+ else if (p3 > 0) {
+ // antialiased pixel
+ return {
+ antialiased: true,
+ };
+ }
+ // empty pixel
+ return {};
+ };
+ Layer.prototype.drawScene = function (can, top) {
+ var layer = this.getLayer(), canvas = can || (layer && layer.getCanvas());
+ this._fire(BEFORE_DRAW, {
+ node: this,
+ });
+ if (this.clearBeforeDraw()) {
+ canvas.getContext().clear();
+ }
+ Container.prototype.drawScene.call(this, canvas, top);
+ this._fire(DRAW, {
+ node: this,
+ });
+ return this;
+ };
+ Layer.prototype.drawHit = function (can, top) {
+ var layer = this.getLayer(), canvas = can || (layer && layer.hitCanvas);
+ if (layer && layer.clearBeforeDraw()) {
+ layer.getHitCanvas().getContext().clear();
+ }
+ Container.prototype.drawHit.call(this, canvas, top);
+ return this;
+ };
+ /**
+ * enable hit graph. **DEPRECATED!** Use `layer.listening(true)` instead.
+ * @name Konva.Layer#enableHitGraph
+ * @method
+ * @returns {Layer}
+ */
+ Layer.prototype.enableHitGraph = function () {
+ this.hitGraphEnabled(true);
+ return this;
+ };
+ /**
+ * disable hit graph. **DEPRECATED!** Use `layer.listening(false)` instead.
+ * @name Konva.Layer#disableHitGraph
+ * @method
+ * @returns {Layer}
+ */
+ Layer.prototype.disableHitGraph = function () {
+ this.hitGraphEnabled(false);
+ return this;
+ };
+ Layer.prototype.setHitGraphEnabled = function (val) {
+ Util.warn('hitGraphEnabled method is deprecated. Please use layer.listening() instead.');
+ this.listening(val);
+ };
+ Layer.prototype.getHitGraphEnabled = function (val) {
+ Util.warn('hitGraphEnabled method is deprecated. Please use layer.listening() instead.');
+ return this.listening();
+ };
+ /**
+ * Show or hide hit canvas over the stage. May be useful for debugging custom hitFunc
+ * @name Konva.Layer#toggleHitCanvas
+ * @method
+ */
+ Layer.prototype.toggleHitCanvas = function () {
+ if (!this.parent) {
+ return;
+ }
+ var parent = this.parent;
+ var added = !!this.hitCanvas._canvas.parentNode;
+ if (added) {
+ parent.content.removeChild(this.hitCanvas._canvas);
+ }
+ else {
+ parent.content.appendChild(this.hitCanvas._canvas);
+ }
+ };
+ return Layer;
+ }(Container));
+ Layer.prototype.nodeType = 'Layer';
+ _registerNode(Layer);
+ /**
+ * get/set imageSmoothingEnabled flag
+ * For more info see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled
+ * @name Konva.Layer#imageSmoothingEnabled
+ * @method
+ * @param {Boolean} imageSmoothingEnabled
+ * @returns {Boolean}
+ * @example
+ * // get imageSmoothingEnabled flag
+ * var imageSmoothingEnabled = layer.imageSmoothingEnabled();
+ *
+ * layer.imageSmoothingEnabled(false);
+ *
+ * layer.imageSmoothingEnabled(true);
+ */
+ Factory.addGetterSetter(Layer, 'imageSmoothingEnabled', true);
+ /**
+ * get/set clearBeforeDraw flag which determines if the layer is cleared or not
+ * before drawing
+ * @name Konva.Layer#clearBeforeDraw
+ * @method
+ * @param {Boolean} clearBeforeDraw
+ * @returns {Boolean}
+ * @example
+ * // get clearBeforeDraw flag
+ * var clearBeforeDraw = layer.clearBeforeDraw();
+ *
+ * // disable clear before draw
+ * layer.clearBeforeDraw(false);
+ *
+ * // enable clear before draw
+ * layer.clearBeforeDraw(true);
+ */
+ Factory.addGetterSetter(Layer, 'clearBeforeDraw', true);
+ Factory.addGetterSetter(Layer, 'hitGraphEnabled', true, getBooleanValidator());
+ /**
+ * get/set hitGraphEnabled flag. **DEPRECATED!** Use `layer.listening(false)` instead.
+ * Disabling the hit graph will greatly increase
+ * draw performance because the hit graph will not be redrawn each time the layer is
+ * drawn. This, however, also disables mouse/touch event detection
+ * @name Konva.Layer#hitGraphEnabled
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get hitGraphEnabled flag
+ * var hitGraphEnabled = layer.hitGraphEnabled();
+ *
+ * // disable hit graph
+ * layer.hitGraphEnabled(false);
+ *
+ * // enable hit graph
+ * layer.hitGraphEnabled(true);
+ */
+ Collection.mapMethods(Layer);
+
+ /**
+ * FastLayer constructor. **DEPRECATED!** Please use `Konva.Layer({ listening: false})` instead. Layers are tied to their own canvas element and are used
+ * to contain shapes only. If you don't need node nesting, mouse and touch interactions,
+ * or event pub/sub, you should use FastLayer instead of Layer to create your layers.
+ * It renders about 2x faster than normal layers.
+ *
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Layer
+ * * @param {Object} [config.clip] set clip
+ * @param {Number} [config.clipX] set clip x
+ * @param {Number} [config.clipY] set clip y
+ * @param {Number} [config.clipWidth] set clip width
+ * @param {Number} [config.clipHeight] set clip height
+ * @param {Function} [config.clipFunc] set clip func
+
+ * @example
+ * var layer = new Konva.FastLayer();
+ */
+ var FastLayer = /** @class */ (function (_super) {
+ __extends(FastLayer, _super);
+ function FastLayer(attrs) {
+ var _this = _super.call(this, attrs) || this;
+ _this.listening(false);
+ Util.warn('Konva.Fast layer is deprecated. Please use "new Konva.Layer({ listening: false })" instead.');
+ return _this;
+ }
+ return FastLayer;
+ }(Layer));
+ FastLayer.prototype.nodeType = 'FastLayer';
+ _registerNode(FastLayer);
+ Collection.mapMethods(FastLayer);
+
+ /**
+ * Group constructor. Groups are used to contain shapes or other groups.
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Container
+ * @param {Object} config
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * * @param {Object} [config.clip] set clip
+ * @param {Number} [config.clipX] set clip x
+ * @param {Number} [config.clipY] set clip y
+ * @param {Number} [config.clipWidth] set clip width
+ * @param {Number} [config.clipHeight] set clip height
+ * @param {Function} [config.clipFunc] set clip func
+
+ * @example
+ * var group = new Konva.Group();
+ */
+ var Group = /** @class */ (function (_super) {
+ __extends(Group, _super);
+ function Group() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Group.prototype._validateAdd = function (child) {
+ var type = child.getType();
+ if (type !== 'Group' && type !== 'Shape') {
+ Util.throw('You may only add groups and shapes to groups.');
+ }
+ };
+ return Group;
+ }(Container));
+ Group.prototype.nodeType = 'Group';
+ _registerNode(Group);
+ Collection.mapMethods(Group);
+
+ var now = (function () {
+ if (glob.performance && glob.performance.now) {
+ return function () {
+ return glob.performance.now();
+ };
+ }
+ return function () {
+ return new Date().getTime();
+ };
+ })();
+ /**
+ * Animation constructor.
+ * @constructor
+ * @memberof Konva
+ * @param {AnimationFn} func function executed on each animation frame. The function is passed a frame object, which contains
+ * timeDiff, lastTime, time, and frameRate properties. The timeDiff property is the number of milliseconds that have passed
+ * since the last animation frame. The time property is the time in milliseconds that elapsed from the moment the animation started
+ * to the current animation frame. The lastTime property is a `time` value from the previous frame. The frameRate property is the current frame rate in frames / second.
+ * Return false from function, if you don't need to redraw layer/layers on some frames.
+ * @param {Konva.Layer|Array} [layers] layer(s) to be redrawn on each animation frame. Can be a layer, an array of layers, or null.
+ * Not specifying a node will result in no redraw.
+ * @example
+ * // move a node to the right at 50 pixels / second
+ * var velocity = 50;
+ *
+ * var anim = new Konva.Animation(function(frame) {
+ * var dist = velocity * (frame.timeDiff / 1000);
+ * node.move({x: dist, y: 0});
+ * }, layer);
+ *
+ * anim.start();
+ */
+ var Animation = /** @class */ (function () {
+ function Animation(func, layers) {
+ this.id = Animation.animIdCounter++;
+ this.frame = {
+ time: 0,
+ timeDiff: 0,
+ lastTime: now(),
+ frameRate: 0
+ };
+ this.func = func;
+ this.setLayers(layers);
+ }
+ /**
+ * set layers to be redrawn on each animation frame
+ * @method
+ * @name Konva.Animation#setLayers
+ * @param {Konva.Layer|Array} [layers] layer(s) to be redrawn. Can be a layer, an array of layers, or null. Not specifying a node will result in no redraw.
+ * @return {Konva.Animation} this
+ */
+ Animation.prototype.setLayers = function (layers) {
+ var lays = [];
+ // if passing in no layers
+ if (!layers) {
+ lays = [];
+ }
+ else if (layers.length > 0) {
+ // if passing in an array of Layers
+ // NOTE: layers could be an array or Konva.Collection. for simplicity, I'm just inspecting
+ // the length property to check for both cases
+ lays = layers;
+ }
+ else {
+ // if passing in a Layer
+ lays = [layers];
+ }
+ this.layers = lays;
+ return this;
+ };
+ /**
+ * get layers
+ * @method
+ * @name Konva.Animation#getLayers
+ * @return {Array} Array of Konva.Layer
+ */
+ Animation.prototype.getLayers = function () {
+ return this.layers;
+ };
+ /**
+ * add layer. Returns true if the layer was added, and false if it was not
+ * @method
+ * @name Konva.Animation#addLayer
+ * @param {Konva.Layer} layer to add
+ * @return {Bool} true if layer is added to animation, otherwise false
+ */
+ Animation.prototype.addLayer = function (layer) {
+ var layers = this.layers, len = layers.length, n;
+ // don't add the layer if it already exists
+ for (n = 0; n < len; n++) {
+ if (layers[n]._id === layer._id) {
+ return false;
+ }
+ }
+ this.layers.push(layer);
+ return true;
+ };
+ /**
+ * determine if animation is running or not. returns true or false
+ * @method
+ * @name Konva.Animation#isRunning
+ * @return {Bool} is animation running?
+ */
+ Animation.prototype.isRunning = function () {
+ var a = Animation, animations = a.animations, len = animations.length, n;
+ for (n = 0; n < len; n++) {
+ if (animations[n].id === this.id) {
+ return true;
+ }
+ }
+ return false;
+ };
+ /**
+ * start animation
+ * @method
+ * @name Konva.Animation#start
+ * @return {Konva.Animation} this
+ */
+ Animation.prototype.start = function () {
+ this.stop();
+ this.frame.timeDiff = 0;
+ this.frame.lastTime = now();
+ Animation._addAnimation(this);
+ return this;
+ };
+ /**
+ * stop animation
+ * @method
+ * @name Konva.Animation#stop
+ * @return {Konva.Animation} this
+ */
+ Animation.prototype.stop = function () {
+ Animation._removeAnimation(this);
+ return this;
+ };
+ Animation.prototype._updateFrameObject = function (time) {
+ this.frame.timeDiff = time - this.frame.lastTime;
+ this.frame.lastTime = time;
+ this.frame.time += this.frame.timeDiff;
+ this.frame.frameRate = 1000 / this.frame.timeDiff;
+ };
+ Animation._addAnimation = function (anim) {
+ this.animations.push(anim);
+ this._handleAnimation();
+ };
+ Animation._removeAnimation = function (anim) {
+ var id = anim.id, animations = this.animations, len = animations.length, n;
+ for (n = 0; n < len; n++) {
+ if (animations[n].id === id) {
+ this.animations.splice(n, 1);
+ break;
+ }
+ }
+ };
+ Animation._runFrames = function () {
+ var layerHash = {}, animations = this.animations, anim, layers, func, n, i, layersLen, layer, key, needRedraw;
+ /*
+ * loop through all animations and execute animation
+ * function. if the animation object has specified node,
+ * we can add the node to the nodes hash to eliminate
+ * drawing the same node multiple times. The node property
+ * can be the stage itself or a layer
+ */
+ /*
+ * WARNING: don't cache animations.length because it could change while
+ * the for loop is running, causing a JS error
+ */
+ for (n = 0; n < animations.length; n++) {
+ anim = animations[n];
+ layers = anim.layers;
+ func = anim.func;
+ anim._updateFrameObject(now());
+ layersLen = layers.length;
+ // if animation object has a function, execute it
+ if (func) {
+ // allow anim bypassing drawing
+ needRedraw = func.call(anim, anim.frame) !== false;
+ }
+ else {
+ needRedraw = true;
+ }
+ if (!needRedraw) {
+ continue;
+ }
+ for (i = 0; i < layersLen; i++) {
+ layer = layers[i];
+ if (layer._id !== undefined) {
+ layerHash[layer._id] = layer;
+ }
+ }
+ }
+ for (key in layerHash) {
+ if (!layerHash.hasOwnProperty(key)) {
+ continue;
+ }
+ layerHash[key].draw();
+ }
+ };
+ Animation._animationLoop = function () {
+ var Anim = Animation;
+ if (Anim.animations.length) {
+ Anim._runFrames();
+ requestAnimationFrame(Anim._animationLoop);
+ }
+ else {
+ Anim.animRunning = false;
+ }
+ };
+ Animation._handleAnimation = function () {
+ if (!this.animRunning) {
+ this.animRunning = true;
+ requestAnimationFrame(this._animationLoop);
+ }
+ };
+ Animation.animations = [];
+ Animation.animIdCounter = 0;
+ Animation.animRunning = false;
+ return Animation;
+ }());
+
+ var blacklist = {
+ node: 1,
+ duration: 1,
+ easing: 1,
+ onFinish: 1,
+ yoyo: 1
+ }, PAUSED = 1, PLAYING = 2, REVERSING = 3, idCounter$1 = 0, colorAttrs = ['fill', 'stroke', 'shadowColor'];
+ var TweenEngine = /** @class */ (function () {
+ function TweenEngine(prop, propFunc, func, begin, finish, duration, yoyo) {
+ this.prop = prop;
+ this.propFunc = propFunc;
+ this.begin = begin;
+ this._pos = begin;
+ this.duration = duration;
+ this._change = 0;
+ this.prevPos = 0;
+ this.yoyo = yoyo;
+ this._time = 0;
+ this._position = 0;
+ this._startTime = 0;
+ this._finish = 0;
+ this.func = func;
+ this._change = finish - this.begin;
+ this.pause();
+ }
+ TweenEngine.prototype.fire = function (str) {
+ var handler = this[str];
+ if (handler) {
+ handler();
+ }
+ };
+ TweenEngine.prototype.setTime = function (t) {
+ if (t > this.duration) {
+ if (this.yoyo) {
+ this._time = this.duration;
+ this.reverse();
+ }
+ else {
+ this.finish();
+ }
+ }
+ else if (t < 0) {
+ if (this.yoyo) {
+ this._time = 0;
+ this.play();
+ }
+ else {
+ this.reset();
+ }
+ }
+ else {
+ this._time = t;
+ this.update();
+ }
+ };
+ TweenEngine.prototype.getTime = function () {
+ return this._time;
+ };
+ TweenEngine.prototype.setPosition = function (p) {
+ this.prevPos = this._pos;
+ this.propFunc(p);
+ this._pos = p;
+ };
+ TweenEngine.prototype.getPosition = function (t) {
+ if (t === undefined) {
+ t = this._time;
+ }
+ return this.func(t, this.begin, this._change, this.duration);
+ };
+ TweenEngine.prototype.play = function () {
+ this.state = PLAYING;
+ this._startTime = this.getTimer() - this._time;
+ this.onEnterFrame();
+ this.fire('onPlay');
+ };
+ TweenEngine.prototype.reverse = function () {
+ this.state = REVERSING;
+ this._time = this.duration - this._time;
+ this._startTime = this.getTimer() - this._time;
+ this.onEnterFrame();
+ this.fire('onReverse');
+ };
+ TweenEngine.prototype.seek = function (t) {
+ this.pause();
+ this._time = t;
+ this.update();
+ this.fire('onSeek');
+ };
+ TweenEngine.prototype.reset = function () {
+ this.pause();
+ this._time = 0;
+ this.update();
+ this.fire('onReset');
+ };
+ TweenEngine.prototype.finish = function () {
+ this.pause();
+ this._time = this.duration;
+ this.update();
+ this.fire('onFinish');
+ };
+ TweenEngine.prototype.update = function () {
+ this.setPosition(this.getPosition(this._time));
+ };
+ TweenEngine.prototype.onEnterFrame = function () {
+ var t = this.getTimer() - this._startTime;
+ if (this.state === PLAYING) {
+ this.setTime(t);
+ }
+ else if (this.state === REVERSING) {
+ this.setTime(this.duration - t);
+ }
+ };
+ TweenEngine.prototype.pause = function () {
+ this.state = PAUSED;
+ this.fire('onPause');
+ };
+ TweenEngine.prototype.getTimer = function () {
+ return new Date().getTime();
+ };
+ return TweenEngine;
+ }());
+ /**
+ * Tween constructor. Tweens enable you to animate a node between the current state and a new state.
+ * You can play, pause, reverse, seek, reset, and finish tweens. By default, tweens are animated using
+ * a linear easing. For more tweening options, check out {@link Konva.Easings}
+ * @constructor
+ * @memberof Konva
+ * @example
+ * // instantiate new tween which fully rotates a node in 1 second
+ * var tween = new Konva.Tween({
+ * node: node,
+ * rotationDeg: 360,
+ * duration: 1,
+ * easing: Konva.Easings.EaseInOut
+ * });
+ *
+ * // play tween
+ * tween.play();
+ *
+ * // pause tween
+ * tween.pause();
+ */
+ var Tween = /** @class */ (function () {
+ function Tween(config) {
+ var that = this, node = config.node, nodeId = node._id, duration, easing = config.easing || Easings.Linear, yoyo = !!config.yoyo, key;
+ if (typeof config.duration === 'undefined') {
+ duration = 0.3;
+ }
+ else if (config.duration === 0) {
+ // zero is bad value for duration
+ duration = 0.001;
+ }
+ else {
+ duration = config.duration;
+ }
+ this.node = node;
+ this._id = idCounter$1++;
+ var layers = node.getLayer() ||
+ (node instanceof Konva['Stage'] ? node.getLayers() : null);
+ if (!layers) {
+ Util.error('Tween constructor have `node` that is not in a layer. Please add node into layer first.');
+ }
+ this.anim = new Animation(function () {
+ that.tween.onEnterFrame();
+ }, layers);
+ this.tween = new TweenEngine(key, function (i) {
+ that._tweenFunc(i);
+ }, easing, 0, 1, duration * 1000, yoyo);
+ this._addListeners();
+ // init attrs map
+ if (!Tween.attrs[nodeId]) {
+ Tween.attrs[nodeId] = {};
+ }
+ if (!Tween.attrs[nodeId][this._id]) {
+ Tween.attrs[nodeId][this._id] = {};
+ }
+ // init tweens map
+ if (!Tween.tweens[nodeId]) {
+ Tween.tweens[nodeId] = {};
+ }
+ for (key in config) {
+ if (blacklist[key] === undefined) {
+ this._addAttr(key, config[key]);
+ }
+ }
+ this.reset();
+ // callbacks
+ this.onFinish = config.onFinish;
+ this.onReset = config.onReset;
+ }
+ Tween.prototype._addAttr = function (key, end) {
+ var node = this.node, nodeId = node._id, start, diff, tweenId, n, len, trueEnd, trueStart, endRGBA;
+ // remove conflict from tween map if it exists
+ tweenId = Tween.tweens[nodeId][key];
+ if (tweenId) {
+ delete Tween.attrs[nodeId][tweenId][key];
+ }
+ // add to tween map
+ start = node.getAttr(key);
+ if (Util._isArray(end)) {
+ diff = [];
+ len = Math.max(end.length, start.length);
+ if (key === 'points' && end.length !== start.length) {
+ // before tweening points we need to make sure that start.length === end.length
+ // Util._prepareArrayForTween thinking that end.length > start.length
+ if (end.length > start.length) {
+ // so in this case we will increase number of starting points
+ trueStart = start;
+ start = Util._prepareArrayForTween(start, end, node.closed());
+ }
+ else {
+ // in this case we will increase number of eding points
+ trueEnd = end;
+ end = Util._prepareArrayForTween(end, start, node.closed());
+ }
+ }
+ if (key.indexOf('fill') === 0) {
+ for (n = 0; n < len; n++) {
+ if (n % 2 === 0) {
+ diff.push(end[n] - start[n]);
+ }
+ else {
+ var startRGBA = Util.colorToRGBA(start[n]);
+ endRGBA = Util.colorToRGBA(end[n]);
+ start[n] = startRGBA;
+ diff.push({
+ r: endRGBA.r - startRGBA.r,
+ g: endRGBA.g - startRGBA.g,
+ b: endRGBA.b - startRGBA.b,
+ a: endRGBA.a - startRGBA.a
+ });
+ }
+ }
+ }
+ else {
+ for (n = 0; n < len; n++) {
+ diff.push(end[n] - start[n]);
+ }
+ }
+ }
+ else if (colorAttrs.indexOf(key) !== -1) {
+ start = Util.colorToRGBA(start);
+ endRGBA = Util.colorToRGBA(end);
+ diff = {
+ r: endRGBA.r - start.r,
+ g: endRGBA.g - start.g,
+ b: endRGBA.b - start.b,
+ a: endRGBA.a - start.a
+ };
+ }
+ else {
+ diff = end - start;
+ }
+ Tween.attrs[nodeId][this._id][key] = {
+ start: start,
+ diff: diff,
+ end: end,
+ trueEnd: trueEnd,
+ trueStart: trueStart
+ };
+ Tween.tweens[nodeId][key] = this._id;
+ };
+ Tween.prototype._tweenFunc = function (i) {
+ var node = this.node, attrs = Tween.attrs[node._id][this._id], key, attr, start, diff, newVal, n, len, end;
+ for (key in attrs) {
+ attr = attrs[key];
+ start = attr.start;
+ diff = attr.diff;
+ end = attr.end;
+ if (Util._isArray(start)) {
+ newVal = [];
+ len = Math.max(start.length, end.length);
+ if (key.indexOf('fill') === 0) {
+ for (n = 0; n < len; n++) {
+ if (n % 2 === 0) {
+ newVal.push((start[n] || 0) + diff[n] * i);
+ }
+ else {
+ newVal.push('rgba(' +
+ Math.round(start[n].r + diff[n].r * i) +
+ ',' +
+ Math.round(start[n].g + diff[n].g * i) +
+ ',' +
+ Math.round(start[n].b + diff[n].b * i) +
+ ',' +
+ (start[n].a + diff[n].a * i) +
+ ')');
+ }
+ }
+ }
+ else {
+ for (n = 0; n < len; n++) {
+ newVal.push((start[n] || 0) + diff[n] * i);
+ }
+ }
+ }
+ else if (colorAttrs.indexOf(key) !== -1) {
+ newVal =
+ 'rgba(' +
+ Math.round(start.r + diff.r * i) +
+ ',' +
+ Math.round(start.g + diff.g * i) +
+ ',' +
+ Math.round(start.b + diff.b * i) +
+ ',' +
+ (start.a + diff.a * i) +
+ ')';
+ }
+ else {
+ newVal = start + diff * i;
+ }
+ node.setAttr(key, newVal);
+ }
+ };
+ Tween.prototype._addListeners = function () {
+ var _this = this;
+ // start listeners
+ this.tween.onPlay = function () {
+ _this.anim.start();
+ };
+ this.tween.onReverse = function () {
+ _this.anim.start();
+ };
+ // stop listeners
+ this.tween.onPause = function () {
+ _this.anim.stop();
+ };
+ this.tween.onFinish = function () {
+ var node = _this.node;
+ // after tweening points of line we need to set original end
+ var attrs = Tween.attrs[node._id][_this._id];
+ if (attrs.points && attrs.points.trueEnd) {
+ node.setAttr('points', attrs.points.trueEnd);
+ }
+ if (_this.onFinish) {
+ _this.onFinish.call(_this);
+ }
+ };
+ this.tween.onReset = function () {
+ var node = _this.node;
+ // after tweening points of line we need to set original start
+ var attrs = Tween.attrs[node._id][_this._id];
+ if (attrs.points && attrs.points.trueStart) {
+ node.points(attrs.points.trueStart);
+ }
+ if (_this.onReset) {
+ _this.onReset();
+ }
+ };
+ };
+ /**
+ * play
+ * @method
+ * @name Konva.Tween#play
+ * @returns {Tween}
+ */
+ Tween.prototype.play = function () {
+ this.tween.play();
+ return this;
+ };
+ /**
+ * reverse
+ * @method
+ * @name Konva.Tween#reverse
+ * @returns {Tween}
+ */
+ Tween.prototype.reverse = function () {
+ this.tween.reverse();
+ return this;
+ };
+ /**
+ * reset
+ * @method
+ * @name Konva.Tween#reset
+ * @returns {Tween}
+ */
+ Tween.prototype.reset = function () {
+ this.tween.reset();
+ return this;
+ };
+ /**
+ * seek
+ * @method
+ * @name Konva.Tween#seek(
+ * @param {Integer} t time in seconds between 0 and the duration
+ * @returns {Tween}
+ */
+ Tween.prototype.seek = function (t) {
+ this.tween.seek(t * 1000);
+ return this;
+ };
+ /**
+ * pause
+ * @method
+ * @name Konva.Tween#pause
+ * @returns {Tween}
+ */
+ Tween.prototype.pause = function () {
+ this.tween.pause();
+ return this;
+ };
+ /**
+ * finish
+ * @method
+ * @name Konva.Tween#finish
+ * @returns {Tween}
+ */
+ Tween.prototype.finish = function () {
+ this.tween.finish();
+ return this;
+ };
+ /**
+ * destroy
+ * @method
+ * @name Konva.Tween#destroy
+ */
+ Tween.prototype.destroy = function () {
+ var nodeId = this.node._id, thisId = this._id, attrs = Tween.tweens[nodeId], key;
+ this.pause();
+ for (key in attrs) {
+ delete Tween.tweens[nodeId][key];
+ }
+ delete Tween.attrs[nodeId][thisId];
+ };
+ Tween.attrs = {};
+ Tween.tweens = {};
+ return Tween;
+ }());
+ /**
+ * Tween node properties. Shorter usage of {@link Konva.Tween} object.
+ *
+ * @method Konva.Node#to
+ * @param {Object} [params] tween params
+ * @example
+ *
+ * circle.to({
+ * x : 50,
+ * duration : 0.5,
+ * onFinish: () => {
+ * console.log('finished');
+ * }
+ * });
+ */
+ Node.prototype.to = function (params) {
+ var onFinish = params.onFinish;
+ params.node = this;
+ params.onFinish = function () {
+ this.destroy();
+ if (onFinish) {
+ onFinish();
+ }
+ };
+ var tween = new Tween(params);
+ tween.play();
+ };
+ /*
+ * These eases were ported from an Adobe Flash tweening library to JavaScript
+ * by Xaric
+ */
+ /**
+ * @namespace Easings
+ * @memberof Konva
+ */
+ var Easings = {
+ /**
+ * back ease in
+ * @function
+ * @memberof Konva.Easings
+ */
+ BackEaseIn: function (t, b, c, d) {
+ var s = 1.70158;
+ return c * (t /= d) * t * ((s + 1) * t - s) + b;
+ },
+ /**
+ * back ease out
+ * @function
+ * @memberof Konva.Easings
+ */
+ BackEaseOut: function (t, b, c, d) {
+ var s = 1.70158;
+ return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;
+ },
+ /**
+ * back ease in out
+ * @function
+ * @memberof Konva.Easings
+ */
+ BackEaseInOut: function (t, b, c, d) {
+ var s = 1.70158;
+ if ((t /= d / 2) < 1) {
+ return (c / 2) * (t * t * (((s *= 1.525) + 1) * t - s)) + b;
+ }
+ return (c / 2) * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2) + b;
+ },
+ /**
+ * elastic ease in
+ * @function
+ * @memberof Konva.Easings
+ */
+ ElasticEaseIn: function (t, b, c, d, a, p) {
+ // added s = 0
+ var s = 0;
+ if (t === 0) {
+ return b;
+ }
+ if ((t /= d) === 1) {
+ return b + c;
+ }
+ if (!p) {
+ p = d * 0.3;
+ }
+ if (!a || a < Math.abs(c)) {
+ a = c;
+ s = p / 4;
+ }
+ else {
+ s = (p / (2 * Math.PI)) * Math.asin(c / a);
+ }
+ return (-(a *
+ Math.pow(2, 10 * (t -= 1)) *
+ Math.sin(((t * d - s) * (2 * Math.PI)) / p)) + b);
+ },
+ /**
+ * elastic ease out
+ * @function
+ * @memberof Konva.Easings
+ */
+ ElasticEaseOut: function (t, b, c, d, a, p) {
+ // added s = 0
+ var s = 0;
+ if (t === 0) {
+ return b;
+ }
+ if ((t /= d) === 1) {
+ return b + c;
+ }
+ if (!p) {
+ p = d * 0.3;
+ }
+ if (!a || a < Math.abs(c)) {
+ a = c;
+ s = p / 4;
+ }
+ else {
+ s = (p / (2 * Math.PI)) * Math.asin(c / a);
+ }
+ return (a * Math.pow(2, -10 * t) * Math.sin(((t * d - s) * (2 * Math.PI)) / p) +
+ c +
+ b);
+ },
+ /**
+ * elastic ease in out
+ * @function
+ * @memberof Konva.Easings
+ */
+ ElasticEaseInOut: function (t, b, c, d, a, p) {
+ // added s = 0
+ var s = 0;
+ if (t === 0) {
+ return b;
+ }
+ if ((t /= d / 2) === 2) {
+ return b + c;
+ }
+ if (!p) {
+ p = d * (0.3 * 1.5);
+ }
+ if (!a || a < Math.abs(c)) {
+ a = c;
+ s = p / 4;
+ }
+ else {
+ s = (p / (2 * Math.PI)) * Math.asin(c / a);
+ }
+ if (t < 1) {
+ return (-0.5 *
+ (a *
+ Math.pow(2, 10 * (t -= 1)) *
+ Math.sin(((t * d - s) * (2 * Math.PI)) / p)) +
+ b);
+ }
+ return (a *
+ Math.pow(2, -10 * (t -= 1)) *
+ Math.sin(((t * d - s) * (2 * Math.PI)) / p) *
+ 0.5 +
+ c +
+ b);
+ },
+ /**
+ * bounce ease out
+ * @function
+ * @memberof Konva.Easings
+ */
+ BounceEaseOut: function (t, b, c, d) {
+ if ((t /= d) < 1 / 2.75) {
+ return c * (7.5625 * t * t) + b;
+ }
+ else if (t < 2 / 2.75) {
+ return c * (7.5625 * (t -= 1.5 / 2.75) * t + 0.75) + b;
+ }
+ else if (t < 2.5 / 2.75) {
+ return c * (7.5625 * (t -= 2.25 / 2.75) * t + 0.9375) + b;
+ }
+ else {
+ return c * (7.5625 * (t -= 2.625 / 2.75) * t + 0.984375) + b;
+ }
+ },
+ /**
+ * bounce ease in
+ * @function
+ * @memberof Konva.Easings
+ */
+ BounceEaseIn: function (t, b, c, d) {
+ return c - Easings.BounceEaseOut(d - t, 0, c, d) + b;
+ },
+ /**
+ * bounce ease in out
+ * @function
+ * @memberof Konva.Easings
+ */
+ BounceEaseInOut: function (t, b, c, d) {
+ if (t < d / 2) {
+ return Easings.BounceEaseIn(t * 2, 0, c, d) * 0.5 + b;
+ }
+ else {
+ return Easings.BounceEaseOut(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;
+ }
+ },
+ /**
+ * ease in
+ * @function
+ * @memberof Konva.Easings
+ */
+ EaseIn: function (t, b, c, d) {
+ return c * (t /= d) * t + b;
+ },
+ /**
+ * ease out
+ * @function
+ * @memberof Konva.Easings
+ */
+ EaseOut: function (t, b, c, d) {
+ return -c * (t /= d) * (t - 2) + b;
+ },
+ /**
+ * ease in out
+ * @function
+ * @memberof Konva.Easings
+ */
+ EaseInOut: function (t, b, c, d) {
+ if ((t /= d / 2) < 1) {
+ return (c / 2) * t * t + b;
+ }
+ return (-c / 2) * (--t * (t - 2) - 1) + b;
+ },
+ /**
+ * strong ease in
+ * @function
+ * @memberof Konva.Easings
+ */
+ StrongEaseIn: function (t, b, c, d) {
+ return c * (t /= d) * t * t * t * t + b;
+ },
+ /**
+ * strong ease out
+ * @function
+ * @memberof Konva.Easings
+ */
+ StrongEaseOut: function (t, b, c, d) {
+ return c * ((t = t / d - 1) * t * t * t * t + 1) + b;
+ },
+ /**
+ * strong ease in out
+ * @function
+ * @memberof Konva.Easings
+ */
+ StrongEaseInOut: function (t, b, c, d) {
+ if ((t /= d / 2) < 1) {
+ return (c / 2) * t * t * t * t * t + b;
+ }
+ return (c / 2) * ((t -= 2) * t * t * t * t + 2) + b;
+ },
+ /**
+ * linear
+ * @function
+ * @memberof Konva.Easings
+ */
+ Linear: function (t, b, c, d) {
+ return (c * t) / d + b;
+ }
+ };
+
+ // what is core parts of Konva?
+ var Konva$1 = Util._assign(Konva, {
+ Collection: Collection,
+ Util: Util,
+ Transform: Transform,
+ Node: Node,
+ ids: ids,
+ names: names,
+ Container: Container,
+ Stage: Stage,
+ stages: stages,
+ Layer: Layer,
+ FastLayer: FastLayer,
+ Group: Group,
+ DD: DD,
+ Shape: Shape,
+ shapes: shapes,
+ Animation: Animation,
+ Tween: Tween,
+ Easings: Easings,
+ Context: Context,
+ Canvas: Canvas
+ });
+
+ /**
+ * Arc constructor
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {Number} config.angle in degrees
+ * @param {Number} config.innerRadius
+ * @param {Number} config.outerRadius
+ * @param {Boolean} [config.clockwise]
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * // draw a Arc that's pointing downwards
+ * var arc = new Konva.Arc({
+ * innerRadius: 40,
+ * outerRadius: 80,
+ * fill: 'red',
+ * stroke: 'black'
+ * strokeWidth: 5,
+ * angle: 60,
+ * rotationDeg: -120
+ * });
+ */
+ var Arc = /** @class */ (function (_super) {
+ __extends(Arc, _super);
+ function Arc() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Arc.prototype._sceneFunc = function (context) {
+ var angle = Konva.getAngle(this.angle()), clockwise = this.clockwise();
+ context.beginPath();
+ context.arc(0, 0, this.outerRadius(), 0, angle, clockwise);
+ context.arc(0, 0, this.innerRadius(), angle, 0, !clockwise);
+ context.closePath();
+ context.fillStrokeShape(this);
+ };
+ Arc.prototype.getWidth = function () {
+ return this.outerRadius() * 2;
+ };
+ Arc.prototype.getHeight = function () {
+ return this.outerRadius() * 2;
+ };
+ Arc.prototype.setWidth = function (width) {
+ this.outerRadius(width / 2);
+ };
+ Arc.prototype.setHeight = function (height) {
+ this.outerRadius(height / 2);
+ };
+ return Arc;
+ }(Shape));
+ Arc.prototype._centroid = true;
+ Arc.prototype.className = 'Arc';
+ Arc.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];
+ _registerNode(Arc);
+ // add getters setters
+ Factory.addGetterSetter(Arc, 'innerRadius', 0, getNumberValidator());
+ /**
+ * get/set innerRadius
+ * @name Konva.Arc#innerRadius
+ * @method
+ * @param {Number} innerRadius
+ * @returns {Number}
+ * @example
+ * // get inner radius
+ * var innerRadius = arc.innerRadius();
+ *
+ * // set inner radius
+ * arc.innerRadius(20);
+ */
+ Factory.addGetterSetter(Arc, 'outerRadius', 0, getNumberValidator());
+ /**
+ * get/set outerRadius
+ * @name Konva.Arc#outerRadius
+ * @method
+ * @param {Number} outerRadius
+ * @returns {Number}
+ * @example
+ * // get outer radius
+ * var outerRadius = arc.outerRadius();
+ *
+ * // set outer radius
+ * arc.outerRadius(20);
+ */
+ Factory.addGetterSetter(Arc, 'angle', 0, getNumberValidator());
+ /**
+ * get/set angle in degrees
+ * @name Konva.Arc#angle
+ * @method
+ * @param {Number} angle
+ * @returns {Number}
+ * @example
+ * // get angle
+ * var angle = arc.angle();
+ *
+ * // set angle
+ * arc.angle(20);
+ */
+ Factory.addGetterSetter(Arc, 'clockwise', false, getBooleanValidator());
+ /**
+ * get/set clockwise flag
+ * @name Konva.Arc#clockwise
+ * @method
+ * @param {Boolean} clockwise
+ * @returns {Boolean}
+ * @example
+ * // get clockwise flag
+ * var clockwise = arc.clockwise();
+ *
+ * // draw arc counter-clockwise
+ * arc.clockwise(false);
+ *
+ * // draw arc clockwise
+ * arc.clockwise(true);
+ */
+ Collection.mapMethods(Arc);
+
+ /**
+ * Line constructor. Lines are defined by an array of points and
+ * a tension
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {Array} config.points Flat array of points coordinates. You should define them as [x1, y1, x2, y2, x3, y3].
+ * @param {Number} [config.tension] Higher values will result in a more curvy line. A value of 0 will result in no interpolation.
+ * The default is 0
+ * @param {Boolean} [config.closed] defines whether or not the line shape is closed, creating a polygon or blob
+ * @param {Boolean} [config.bezier] if no tension is provided but bezier=true, we draw the line as a bezier using the passed points
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var line = new Konva.Line({
+ * x: 100,
+ * y: 50,
+ * points: [73, 70, 340, 23, 450, 60, 500, 20],
+ * stroke: 'red',
+ * tension: 1
+ * });
+ */
+ var Line = /** @class */ (function (_super) {
+ __extends(Line, _super);
+ function Line(config) {
+ var _this = _super.call(this, config) || this;
+ _this.on('pointsChange.konva tensionChange.konva closedChange.konva bezierChange.konva', function () {
+ this._clearCache('tensionPoints');
+ });
+ return _this;
+ }
+ Line.prototype._sceneFunc = function (context) {
+ var points = this.points(), length = points.length, tension = this.tension(), closed = this.closed(), bezier = this.bezier(), tp, len, n;
+ if (!length) {
+ return;
+ }
+ context.beginPath();
+ context.moveTo(points[0], points[1]);
+ // tension
+ if (tension !== 0 && length > 4) {
+ tp = this.getTensionPoints();
+ len = tp.length;
+ n = closed ? 0 : 4;
+ if (!closed) {
+ context.quadraticCurveTo(tp[0], tp[1], tp[2], tp[3]);
+ }
+ while (n < len - 2) {
+ context.bezierCurveTo(tp[n++], tp[n++], tp[n++], tp[n++], tp[n++], tp[n++]);
+ }
+ if (!closed) {
+ context.quadraticCurveTo(tp[len - 2], tp[len - 1], points[length - 2], points[length - 1]);
+ }
+ }
+ else if (bezier) {
+ // no tension but bezier
+ n = 2;
+ while (n < length) {
+ context.bezierCurveTo(points[n++], points[n++], points[n++], points[n++], points[n++], points[n++]);
+ }
+ }
+ else {
+ // no tension
+ for (n = 2; n < length; n += 2) {
+ context.lineTo(points[n], points[n + 1]);
+ }
+ }
+ // closed e.g. polygons and blobs
+ if (closed) {
+ context.closePath();
+ context.fillStrokeShape(this);
+ }
+ else {
+ // open e.g. lines and splines
+ context.strokeShape(this);
+ }
+ };
+ Line.prototype.getTensionPoints = function () {
+ return this._getCache('tensionPoints', this._getTensionPoints);
+ };
+ Line.prototype._getTensionPoints = function () {
+ if (this.closed()) {
+ return this._getTensionPointsClosed();
+ }
+ else {
+ return Util._expandPoints(this.points(), this.tension());
+ }
+ };
+ Line.prototype._getTensionPointsClosed = function () {
+ var p = this.points(), len = p.length, tension = this.tension(), firstControlPoints = Util._getControlPoints(p[len - 2], p[len - 1], p[0], p[1], p[2], p[3], tension), lastControlPoints = Util._getControlPoints(p[len - 4], p[len - 3], p[len - 2], p[len - 1], p[0], p[1], tension), middle = Util._expandPoints(p, tension), tp = [firstControlPoints[2], firstControlPoints[3]]
+ .concat(middle)
+ .concat([
+ lastControlPoints[0],
+ lastControlPoints[1],
+ p[len - 2],
+ p[len - 1],
+ lastControlPoints[2],
+ lastControlPoints[3],
+ firstControlPoints[0],
+ firstControlPoints[1],
+ p[0],
+ p[1]
+ ]);
+ return tp;
+ };
+ Line.prototype.getWidth = function () {
+ return this.getSelfRect().width;
+ };
+ Line.prototype.getHeight = function () {
+ return this.getSelfRect().height;
+ };
+ // overload size detection
+ Line.prototype.getSelfRect = function () {
+ var points = this.points();
+ if (points.length < 4) {
+ return {
+ x: points[0] || 0,
+ y: points[1] || 0,
+ width: 0,
+ height: 0
+ };
+ }
+ if (this.tension() !== 0) {
+ points = __spreadArrays([
+ points[0],
+ points[1]
+ ], this._getTensionPoints(), [
+ points[points.length - 2],
+ points[points.length - 1]
+ ]);
+ }
+ else {
+ points = this.points();
+ }
+ var minX = points[0];
+ var maxX = points[0];
+ var minY = points[1];
+ var maxY = points[1];
+ var x, y;
+ for (var i = 0; i < points.length / 2; i++) {
+ x = points[i * 2];
+ y = points[i * 2 + 1];
+ minX = Math.min(minX, x);
+ maxX = Math.max(maxX, x);
+ minY = Math.min(minY, y);
+ maxY = Math.max(maxY, y);
+ }
+ return {
+ x: minX,
+ y: minY,
+ width: maxX - minX,
+ height: maxY - minY
+ };
+ };
+ return Line;
+ }(Shape));
+ Line.prototype.className = 'Line';
+ Line.prototype._attrsAffectingSize = ['points', 'bezier', 'tension'];
+ _registerNode(Line);
+ // add getters setters
+ Factory.addGetterSetter(Line, 'closed', false);
+ /**
+ * get/set closed flag. The default is false
+ * @name Konva.Line#closed
+ * @method
+ * @param {Boolean} closed
+ * @returns {Boolean}
+ * @example
+ * // get closed flag
+ * var closed = line.closed();
+ *
+ * // close the shape
+ * line.closed(true);
+ *
+ * // open the shape
+ * line.closed(false);
+ */
+ Factory.addGetterSetter(Line, 'bezier', false);
+ /**
+ * get/set bezier flag. The default is false
+ * @name Konva.Line#bezier
+ * @method
+ * @param {Boolean} bezier
+ * @returns {Boolean}
+ * @example
+ * // get whether the line is a bezier
+ * var isBezier = line.bezier();
+ *
+ * // set whether the line is a bezier
+ * line.bezier(true);
+ */
+ Factory.addGetterSetter(Line, 'tension', 0, getNumberValidator());
+ /**
+ * get/set tension
+ * @name Konva.Line#tension
+ * @method
+ * @param {Number} tension Higher values will result in a more curvy line. A value of 0 will result in no interpolation. The default is 0
+ * @returns {Number}
+ * @example
+ * // get tension
+ * var tension = line.tension();
+ *
+ * // set tension
+ * line.tension(3);
+ */
+ Factory.addGetterSetter(Line, 'points', [], getNumberArrayValidator());
+ /**
+ * get/set points array. Points is a flat array [x1, y1, x2, y2]. It is flat for performance reasons.
+ * @name Konva.Line#points
+ * @method
+ * @param {Array} points
+ * @returns {Array}
+ * @example
+ * // get points
+ * var points = line.points();
+ *
+ * // set points
+ * line.points([10, 20, 30, 40, 50, 60]);
+ *
+ * // push a new point
+ * line.points(line.points().concat([70, 80]));
+ */
+ Collection.mapMethods(Line);
+
+ /**
+ * Arrow constructor
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Line
+ * @param {Object} config
+ * @param {Array} config.points Flat array of points coordinates. You should define them as [x1, y1, x2, y2, x3, y3].
+ * @param {Number} [config.tension] Higher values will result in a more curvy line. A value of 0 will result in no interpolation.
+ * The default is 0
+ * @param {Number} config.pointerLength Arrow pointer length. Default value is 10.
+ * @param {Number} config.pointerWidth Arrow pointer width. Default value is 10.
+ * @param {Boolean} config.pointerAtBeginning Do we need to draw pointer on both sides?. Default false.
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var line = new Konva.Line({
+ * points: [73, 70, 340, 23, 450, 60, 500, 20],
+ * stroke: 'red',
+ * tension: 1,
+ * pointerLength : 10,
+ * pointerWidth : 12
+ * });
+ */
+ var Arrow = /** @class */ (function (_super) {
+ __extends(Arrow, _super);
+ function Arrow() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Arrow.prototype._sceneFunc = function (ctx) {
+ _super.prototype._sceneFunc.call(this, ctx);
+ var PI2 = Math.PI * 2;
+ var points = this.points();
+ var tp = points;
+ var fromTension = this.tension() !== 0 && points.length > 4;
+ if (fromTension) {
+ tp = this.getTensionPoints();
+ }
+ var n = points.length;
+ var dx, dy;
+ if (fromTension) {
+ dx = points[n - 2] - (tp[tp.length - 2] + tp[tp.length - 4]) / 2;
+ dy = points[n - 1] - (tp[tp.length - 1] + tp[tp.length - 3]) / 2;
+ }
+ else {
+ dx = points[n - 2] - points[n - 4];
+ dy = points[n - 1] - points[n - 3];
+ }
+ var radians = (Math.atan2(dy, dx) + PI2) % PI2;
+ var length = this.pointerLength();
+ var width = this.pointerWidth();
+ ctx.save();
+ ctx.beginPath();
+ ctx.translate(points[n - 2], points[n - 1]);
+ ctx.rotate(radians);
+ ctx.moveTo(0, 0);
+ ctx.lineTo(-length, width / 2);
+ ctx.lineTo(-length, -width / 2);
+ ctx.closePath();
+ ctx.restore();
+ if (this.pointerAtBeginning()) {
+ ctx.save();
+ ctx.translate(points[0], points[1]);
+ if (fromTension) {
+ dx = (tp[0] + tp[2]) / 2 - points[0];
+ dy = (tp[1] + tp[3]) / 2 - points[1];
+ }
+ else {
+ dx = points[2] - points[0];
+ dy = points[3] - points[1];
+ }
+ ctx.rotate((Math.atan2(-dy, -dx) + PI2) % PI2);
+ ctx.moveTo(0, 0);
+ ctx.lineTo(-length, width / 2);
+ ctx.lineTo(-length, -width / 2);
+ ctx.closePath();
+ ctx.restore();
+ }
+ // here is a tricky part
+ // we need to disable dash for arrow pointers
+ var isDashEnabled = this.dashEnabled();
+ if (isDashEnabled) {
+ // manually disable dash for head
+ // it is better not to use setter here,
+ // because it will trigger attr change event
+ this.attrs.dashEnabled = false;
+ ctx.setLineDash([]);
+ }
+ ctx.fillStrokeShape(this);
+ // restore old value
+ if (isDashEnabled) {
+ this.attrs.dashEnabled = true;
+ }
+ };
+ Arrow.prototype.getSelfRect = function () {
+ var lineRect = _super.prototype.getSelfRect.call(this);
+ var offset = this.pointerWidth() / 2;
+ return {
+ x: lineRect.x - offset,
+ y: lineRect.y - offset,
+ width: lineRect.width + offset * 2,
+ height: lineRect.height + offset * 2
+ };
+ };
+ return Arrow;
+ }(Line));
+ Arrow.prototype.className = 'Arrow';
+ _registerNode(Arrow);
+ /**
+ * get/set pointerLength
+ * @name Konva.Arrow#pointerLength
+ * @method
+ * @param {Number} Length of pointer of arrow. The default is 10.
+ * @returns {Number}
+ * @example
+ * // get length
+ * var pointerLength = line.pointerLength();
+ *
+ * // set length
+ * line.pointerLength(15);
+ */
+ Factory.addGetterSetter(Arrow, 'pointerLength', 10, getNumberValidator());
+ /**
+ * get/set pointerWidth
+ * @name Konva.Arrow#pointerWidth
+ * @method
+ * @param {Number} Width of pointer of arrow.
+ * The default is 10.
+ * @returns {Number}
+ * @example
+ * // get width
+ * var pointerWidth = line.pointerWidth();
+ *
+ * // set width
+ * line.pointerWidth(15);
+ */
+ Factory.addGetterSetter(Arrow, 'pointerWidth', 10, getNumberValidator());
+ /**
+ * get/set pointerAtBeginning
+ * @name Konva.Arrow#pointerAtBeginning
+ * @method
+ * @param {Number} Should pointer displayed at beginning of arrow. The default is false.
+ * @returns {Boolean}
+ * @example
+ * // get value
+ * var pointerAtBeginning = line.pointerAtBeginning();
+ *
+ * // set value
+ * line.pointerAtBeginning(true);
+ */
+ Factory.addGetterSetter(Arrow, 'pointerAtBeginning', false);
+ Collection.mapMethods(Arrow);
+
+ /**
+ * Circle constructor
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {Number} config.radius
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * // create circle
+ * var circle = new Konva.Circle({
+ * radius: 40,
+ * fill: 'red',
+ * stroke: 'black',
+ * strokeWidth: 5
+ * });
+ */
+ var Circle = /** @class */ (function (_super) {
+ __extends(Circle, _super);
+ function Circle() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Circle.prototype._sceneFunc = function (context) {
+ context.beginPath();
+ context.arc(0, 0, this.radius(), 0, Math.PI * 2, false);
+ context.closePath();
+ context.fillStrokeShape(this);
+ };
+ Circle.prototype.getWidth = function () {
+ return this.radius() * 2;
+ };
+ Circle.prototype.getHeight = function () {
+ return this.radius() * 2;
+ };
+ Circle.prototype.setWidth = function (width) {
+ if (this.radius() !== width / 2) {
+ this.radius(width / 2);
+ }
+ };
+ Circle.prototype.setHeight = function (height) {
+ if (this.radius() !== height / 2) {
+ this.radius(height / 2);
+ }
+ };
+ return Circle;
+ }(Shape));
+ Circle.prototype._centroid = true;
+ Circle.prototype.className = 'Circle';
+ Circle.prototype._attrsAffectingSize = ['radius'];
+ _registerNode(Circle);
+ /**
+ * get/set radius
+ * @name Konva.Arrow#radius
+ * @method
+ * @param {Number} radius
+ * @returns {Number}
+ * @example
+ * // get radius
+ * var radius = circle.radius();
+ *
+ * // set radius
+ * circle.radius(10);
+ */
+ Factory.addGetterSetter(Circle, 'radius', 0, getNumberValidator());
+ Collection.mapMethods(Circle);
+
+ /**
+ * Ellipse constructor
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {Object} config.radius defines x and y radius
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var ellipse = new Konva.Ellipse({
+ * radius : {
+ * x : 50,
+ * y : 50
+ * },
+ * fill: 'red'
+ * });
+ */
+ var Ellipse = /** @class */ (function (_super) {
+ __extends(Ellipse, _super);
+ function Ellipse() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Ellipse.prototype._sceneFunc = function (context) {
+ var rx = this.radiusX(), ry = this.radiusY();
+ context.beginPath();
+ context.save();
+ if (rx !== ry) {
+ context.scale(1, ry / rx);
+ }
+ context.arc(0, 0, rx, 0, Math.PI * 2, false);
+ context.restore();
+ context.closePath();
+ context.fillStrokeShape(this);
+ };
+ Ellipse.prototype.getWidth = function () {
+ return this.radiusX() * 2;
+ };
+ Ellipse.prototype.getHeight = function () {
+ return this.radiusY() * 2;
+ };
+ Ellipse.prototype.setWidth = function (width) {
+ this.radiusX(width / 2);
+ };
+ Ellipse.prototype.setHeight = function (height) {
+ this.radiusY(height / 2);
+ };
+ return Ellipse;
+ }(Shape));
+ Ellipse.prototype.className = 'Ellipse';
+ Ellipse.prototype._centroid = true;
+ Ellipse.prototype._attrsAffectingSize = ['radiusX', 'radiusY'];
+ _registerNode(Ellipse);
+ // add getters setters
+ Factory.addComponentsGetterSetter(Ellipse, 'radius', ['x', 'y']);
+ /**
+ * get/set radius
+ * @name Konva.Ellipse#radius
+ * @method
+ * @param {Object} radius
+ * @param {Number} radius.x
+ * @param {Number} radius.y
+ * @returns {Object}
+ * @example
+ * // get radius
+ * var radius = ellipse.radius();
+ *
+ * // set radius
+ * ellipse.radius({
+ * x: 200,
+ * y: 100
+ * });
+ */
+ Factory.addGetterSetter(Ellipse, 'radiusX', 0, getNumberValidator());
+ /**
+ * get/set radius x
+ * @name Konva.Ellipse#radiusX
+ * @method
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get radius x
+ * var radiusX = ellipse.radiusX();
+ *
+ * // set radius x
+ * ellipse.radiusX(200);
+ */
+ Factory.addGetterSetter(Ellipse, 'radiusY', 0, getNumberValidator());
+ /**
+ * get/set radius y
+ * @name Konva.Ellipse#radiusY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get radius y
+ * var radiusY = ellipse.radiusY();
+ *
+ * // set radius y
+ * ellipse.radiusY(200);
+ */
+ Collection.mapMethods(Ellipse);
+
+ /**
+ * Image constructor
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {Image} config.image
+ * @param {Object} [config.crop]
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var imageObj = new Image();
+ * imageObj.onload = function() {
+ * var image = new Konva.Image({
+ * x: 200,
+ * y: 50,
+ * image: imageObj,
+ * width: 100,
+ * height: 100
+ * });
+ * };
+ * imageObj.src = '/path/to/image.jpg'
+ */
+ var Image = /** @class */ (function (_super) {
+ __extends(Image, _super);
+ function Image() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Image.prototype._useBufferCanvas = function () {
+ return _super.prototype._useBufferCanvas.call(this, true);
+ };
+ Image.prototype._sceneFunc = function (context) {
+ var width = this.getWidth(), height = this.getHeight(), image = this.attrs.image, cropWidth, cropHeight, params;
+ if (image) {
+ cropWidth = this.attrs.cropWidth;
+ cropHeight = this.attrs.cropHeight;
+ if (cropWidth && cropHeight) {
+ params = [
+ image,
+ this.cropX(),
+ this.cropY(),
+ cropWidth,
+ cropHeight,
+ 0,
+ 0,
+ width,
+ height,
+ ];
+ }
+ else {
+ params = [image, 0, 0, width, height];
+ }
+ }
+ if (this.hasFill() || this.hasStroke()) {
+ context.beginPath();
+ context.rect(0, 0, width, height);
+ context.closePath();
+ context.fillStrokeShape(this);
+ }
+ if (image) {
+ context.drawImage.apply(context, params);
+ }
+ };
+ Image.prototype._hitFunc = function (context) {
+ var width = this.width(), height = this.height();
+ context.beginPath();
+ context.rect(0, 0, width, height);
+ context.closePath();
+ context.fillStrokeShape(this);
+ };
+ Image.prototype.getWidth = function () {
+ var _a, _b;
+ return (_a = this.attrs.width) !== null && _a !== void 0 ? _a : (((_b = this.image()) === null || _b === void 0 ? void 0 : _b.width) || 0);
+ };
+ Image.prototype.getHeight = function () {
+ var _a, _b;
+ return (_a = this.attrs.height) !== null && _a !== void 0 ? _a : (((_b = this.image()) === null || _b === void 0 ? void 0 : _b.height) || 0);
+ };
+ /**
+ * load image from given url and create `Konva.Image` instance
+ * @method
+ * @memberof Konva.Image
+ * @param {String} url image source
+ * @param {Function} callback with Konva.Image instance as first argument
+ * @example
+ * Konva.Image.fromURL(imageURL, function(image){
+ * // image is Konva.Image instance
+ * layer.add(image);
+ * layer.draw();
+ * });
+ */
+ Image.fromURL = function (url, callback) {
+ var img = Util.createImageElement();
+ img.onload = function () {
+ var image = new Image({
+ image: img,
+ });
+ callback(image);
+ };
+ img.crossOrigin = 'Anonymous';
+ img.src = url;
+ };
+ return Image;
+ }(Shape));
+ Image.prototype.className = 'Image';
+ _registerNode(Image);
+ /**
+ * get/set image source. It can be image, canvas or video element
+ * @name Konva.Image#image
+ * @method
+ * @param {Object} image source
+ * @returns {Object}
+ * @example
+ * // get value
+ * var image = shape.image();
+ *
+ * // set value
+ * shape.image(img);
+ */
+ Factory.addGetterSetter(Image, 'image');
+ Factory.addComponentsGetterSetter(Image, 'crop', ['x', 'y', 'width', 'height']);
+ /**
+ * get/set crop
+ * @method
+ * @name Konva.Image#crop
+ * @param {Object} crop
+ * @param {Number} crop.x
+ * @param {Number} crop.y
+ * @param {Number} crop.width
+ * @param {Number} crop.height
+ * @returns {Object}
+ * @example
+ * // get crop
+ * var crop = image.crop();
+ *
+ * // set crop
+ * image.crop({
+ * x: 20,
+ * y: 20,
+ * width: 20,
+ * height: 20
+ * });
+ */
+ Factory.addGetterSetter(Image, 'cropX', 0, getNumberValidator());
+ /**
+ * get/set crop x
+ * @method
+ * @name Konva.Image#cropX
+ * @param {Number} x
+ * @returns {Number}
+ * @example
+ * // get crop x
+ * var cropX = image.cropX();
+ *
+ * // set crop x
+ * image.cropX(20);
+ */
+ Factory.addGetterSetter(Image, 'cropY', 0, getNumberValidator());
+ /**
+ * get/set crop y
+ * @name Konva.Image#cropY
+ * @method
+ * @param {Number} y
+ * @returns {Number}
+ * @example
+ * // get crop y
+ * var cropY = image.cropY();
+ *
+ * // set crop y
+ * image.cropY(20);
+ */
+ Factory.addGetterSetter(Image, 'cropWidth', 0, getNumberValidator());
+ /**
+ * get/set crop width
+ * @name Konva.Image#cropWidth
+ * @method
+ * @param {Number} width
+ * @returns {Number}
+ * @example
+ * // get crop width
+ * var cropWidth = image.cropWidth();
+ *
+ * // set crop width
+ * image.cropWidth(20);
+ */
+ Factory.addGetterSetter(Image, 'cropHeight', 0, getNumberValidator());
+ /**
+ * get/set crop height
+ * @name Konva.Image#cropHeight
+ * @method
+ * @param {Number} height
+ * @returns {Number}
+ * @example
+ * // get crop height
+ * var cropHeight = image.cropHeight();
+ *
+ * // set crop height
+ * image.cropHeight(20);
+ */
+ Collection.mapMethods(Image);
+
+ // constants
+ var ATTR_CHANGE_LIST = [
+ 'fontFamily',
+ 'fontSize',
+ 'fontStyle',
+ 'padding',
+ 'lineHeight',
+ 'text',
+ 'width'
+ ], CHANGE_KONVA = 'Change.konva', NONE = 'none', UP = 'up', RIGHT = 'right', DOWN = 'down', LEFT = 'left',
+ // cached variables
+ attrChangeListLen = ATTR_CHANGE_LIST.length;
+ /**
+ * Label constructor. Labels are groups that contain a Text and Tag shape
+ * @constructor
+ * @memberof Konva
+ * @param {Object} config
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * // create label
+ * var label = new Konva.Label({
+ * x: 100,
+ * y: 100,
+ * draggable: true
+ * });
+ *
+ * // add a tag to the label
+ * label.add(new Konva.Tag({
+ * fill: '#bbb',
+ * stroke: '#333',
+ * shadowColor: 'black',
+ * shadowBlur: 10,
+ * shadowOffset: [10, 10],
+ * shadowOpacity: 0.2,
+ * lineJoin: 'round',
+ * pointerDirection: 'up',
+ * pointerWidth: 20,
+ * pointerHeight: 20,
+ * cornerRadius: 5
+ * }));
+ *
+ * // add text to the label
+ * label.add(new Konva.Text({
+ * text: 'Hello World!',
+ * fontSize: 50,
+ * lineHeight: 1.2,
+ * padding: 10,
+ * fill: 'green'
+ * }));
+ */
+ var Label = /** @class */ (function (_super) {
+ __extends(Label, _super);
+ function Label(config) {
+ var _this = _super.call(this, config) || this;
+ _this.on('add.konva', function (evt) {
+ this._addListeners(evt.child);
+ this._sync();
+ });
+ return _this;
+ }
+ /**
+ * get Text shape for the label. You need to access the Text shape in order to update
+ * the text properties
+ * @name Konva.Label#getText
+ * @method
+ * @example
+ * label.getText().fill('red')
+ */
+ Label.prototype.getText = function () {
+ return this.find('Text')[0];
+ };
+ /**
+ * get Tag shape for the label. You need to access the Tag shape in order to update
+ * the pointer properties and the corner radius
+ * @name Konva.Label#getTag
+ * @method
+ */
+ Label.prototype.getTag = function () {
+ return this.find('Tag')[0];
+ };
+ Label.prototype._addListeners = function (text) {
+ var that = this, n;
+ var func = function () {
+ that._sync();
+ };
+ // update text data for certain attr changes
+ for (n = 0; n < attrChangeListLen; n++) {
+ text.on(ATTR_CHANGE_LIST[n] + CHANGE_KONVA, func);
+ }
+ };
+ Label.prototype.getWidth = function () {
+ return this.getText().width();
+ };
+ Label.prototype.getHeight = function () {
+ return this.getText().height();
+ };
+ Label.prototype._sync = function () {
+ var text = this.getText(), tag = this.getTag(), width, height, pointerDirection, pointerWidth, x, y, pointerHeight;
+ if (text && tag) {
+ width = text.width();
+ height = text.height();
+ pointerDirection = tag.pointerDirection();
+ pointerWidth = tag.pointerWidth();
+ pointerHeight = tag.pointerHeight();
+ x = 0;
+ y = 0;
+ switch (pointerDirection) {
+ case UP:
+ x = width / 2;
+ y = -1 * pointerHeight;
+ break;
+ case RIGHT:
+ x = width + pointerWidth;
+ y = height / 2;
+ break;
+ case DOWN:
+ x = width / 2;
+ y = height + pointerHeight;
+ break;
+ case LEFT:
+ x = -1 * pointerWidth;
+ y = height / 2;
+ break;
+ }
+ tag.setAttrs({
+ x: -1 * x,
+ y: -1 * y,
+ width: width,
+ height: height
+ });
+ text.setAttrs({
+ x: -1 * x,
+ y: -1 * y
+ });
+ }
+ };
+ return Label;
+ }(Group));
+ Label.prototype.className = 'Label';
+ _registerNode(Label);
+ Collection.mapMethods(Label);
+ /**
+ * Tag constructor. A Tag can be configured
+ * to have a pointer element that points up, right, down, or left
+ * @constructor
+ * @memberof Konva
+ * @param {Object} config
+ * @param {String} [config.pointerDirection] can be up, right, down, left, or none; the default
+ * is none. When a pointer is present, the positioning of the label is relative to the tip of the pointer.
+ * @param {Number} [config.pointerWidth]
+ * @param {Number} [config.pointerHeight]
+ * @param {Number} [config.cornerRadius]
+ */
+ var Tag = /** @class */ (function (_super) {
+ __extends(Tag, _super);
+ function Tag() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Tag.prototype._sceneFunc = function (context) {
+ var width = this.width(), height = this.height(), pointerDirection = this.pointerDirection(), pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), cornerRadius = Math.min(this.cornerRadius(), width / 2, height / 2);
+ context.beginPath();
+ if (!cornerRadius) {
+ context.moveTo(0, 0);
+ }
+ else {
+ context.moveTo(cornerRadius, 0);
+ }
+ if (pointerDirection === UP) {
+ context.lineTo((width - pointerWidth) / 2, 0);
+ context.lineTo(width / 2, -1 * pointerHeight);
+ context.lineTo((width + pointerWidth) / 2, 0);
+ }
+ if (!cornerRadius) {
+ context.lineTo(width, 0);
+ }
+ else {
+ context.lineTo(width - cornerRadius, 0);
+ context.arc(width - cornerRadius, cornerRadius, cornerRadius, (Math.PI * 3) / 2, 0, false);
+ }
+ if (pointerDirection === RIGHT) {
+ context.lineTo(width, (height - pointerHeight) / 2);
+ context.lineTo(width + pointerWidth, height / 2);
+ context.lineTo(width, (height + pointerHeight) / 2);
+ }
+ if (!cornerRadius) {
+ context.lineTo(width, height);
+ }
+ else {
+ context.lineTo(width, height - cornerRadius);
+ context.arc(width - cornerRadius, height - cornerRadius, cornerRadius, 0, Math.PI / 2, false);
+ }
+ if (pointerDirection === DOWN) {
+ context.lineTo((width + pointerWidth) / 2, height);
+ context.lineTo(width / 2, height + pointerHeight);
+ context.lineTo((width - pointerWidth) / 2, height);
+ }
+ if (!cornerRadius) {
+ context.lineTo(0, height);
+ }
+ else {
+ context.lineTo(cornerRadius, height);
+ context.arc(cornerRadius, height - cornerRadius, cornerRadius, Math.PI / 2, Math.PI, false);
+ }
+ if (pointerDirection === LEFT) {
+ context.lineTo(0, (height + pointerHeight) / 2);
+ context.lineTo(-1 * pointerWidth, height / 2);
+ context.lineTo(0, (height - pointerHeight) / 2);
+ }
+ if (cornerRadius) {
+ context.lineTo(0, cornerRadius);
+ context.arc(cornerRadius, cornerRadius, cornerRadius, Math.PI, (Math.PI * 3) / 2, false);
+ }
+ context.closePath();
+ context.fillStrokeShape(this);
+ };
+ Tag.prototype.getSelfRect = function () {
+ var x = 0, y = 0, pointerWidth = this.pointerWidth(), pointerHeight = this.pointerHeight(), direction = this.pointerDirection(), width = this.width(), height = this.height();
+ if (direction === UP) {
+ y -= pointerHeight;
+ height += pointerHeight;
+ }
+ else if (direction === DOWN) {
+ height += pointerHeight;
+ }
+ else if (direction === LEFT) {
+ // ARGH!!! I have no idea why should I used magic 1.5!!!!!!!!!
+ x -= pointerWidth * 1.5;
+ width += pointerWidth;
+ }
+ else if (direction === RIGHT) {
+ width += pointerWidth * 1.5;
+ }
+ return {
+ x: x,
+ y: y,
+ width: width,
+ height: height
+ };
+ };
+ return Tag;
+ }(Shape));
+ Tag.prototype.className = 'Tag';
+ _registerNode(Tag);
+ /**
+ * get/set pointer direction
+ * @name Konva.Tag#pointerDirection
+ * @method
+ * @param {String} pointerDirection can be up, right, down, left, or none. The default is none.
+ * @returns {String}
+ * @example
+ * tag.pointerDirection('right');
+ */
+ Factory.addGetterSetter(Tag, 'pointerDirection', NONE);
+ /**
+ * get/set pointer width
+ * @name Konva.Tag#pointerWidth
+ * @method
+ * @param {Number} pointerWidth
+ * @returns {Number}
+ * @example
+ * tag.pointerWidth(20);
+ */
+ Factory.addGetterSetter(Tag, 'pointerWidth', 0, getNumberValidator());
+ /**
+ * get/set pointer height
+ * @method
+ * @name Konva.Tag#pointerHeight
+ * @param {Number} pointerHeight
+ * @returns {Number}
+ * @example
+ * tag.pointerHeight(20);
+ */
+ Factory.addGetterSetter(Tag, 'pointerHeight', 0, getNumberValidator());
+ /**
+ * get/set cornerRadius
+ * @name Konva.Tag#cornerRadius
+ * @method
+ * @param {Number} cornerRadius
+ * @returns {Number}
+ * @example
+ * tag.cornerRadius(20);
+ */
+ Factory.addGetterSetter(Tag, 'cornerRadius', 0, getNumberValidator());
+ Collection.mapMethods(Tag);
+
+ /**
+ * Path constructor.
+ * @author Jason Follas
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {String} config.data SVG data string
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var path = new Konva.Path({
+ * x: 240,
+ * y: 40,
+ * data: 'M12.582,9.551C3.251,16.237,0.921,29.021,7.08,38.564l-2.36,1.689l4.893,2.262l4.893,2.262l-0.568-5.36l-0.567-5.359l-2.365,1.694c-4.657-7.375-2.83-17.185,4.352-22.33c7.451-5.338,17.817-3.625,23.156,3.824c5.337,7.449,3.625,17.813-3.821,23.152l2.857,3.988c9.617-6.893,11.827-20.277,4.935-29.896C35.591,4.87,22.204,2.658,12.582,9.551z',
+ * fill: 'green',
+ * scaleX: 2,
+ * scaleY: 2
+ * });
+ */
+ var Path = /** @class */ (function (_super) {
+ __extends(Path, _super);
+ function Path(config) {
+ var _this = _super.call(this, config) || this;
+ _this.dataArray = [];
+ _this.pathLength = 0;
+ _this.dataArray = Path.parsePathData(_this.data());
+ _this.pathLength = 0;
+ for (var i = 0; i < _this.dataArray.length; ++i) {
+ _this.pathLength += _this.dataArray[i].pathLength;
+ }
+ _this.on('dataChange.konva', function () {
+ this.dataArray = Path.parsePathData(this.data());
+ this.pathLength = 0;
+ for (var i = 0; i < this.dataArray.length; ++i) {
+ this.pathLength += this.dataArray[i].pathLength;
+ }
+ });
+ return _this;
+ }
+ Path.prototype._sceneFunc = function (context) {
+ var ca = this.dataArray;
+ // context position
+ context.beginPath();
+ var isClosed = false;
+ for (var n = 0; n < ca.length; n++) {
+ var c = ca[n].command;
+ var p = ca[n].points;
+ switch (c) {
+ case 'L':
+ context.lineTo(p[0], p[1]);
+ break;
+ case 'M':
+ context.moveTo(p[0], p[1]);
+ break;
+ case 'C':
+ context.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]);
+ break;
+ case 'Q':
+ context.quadraticCurveTo(p[0], p[1], p[2], p[3]);
+ break;
+ case 'A':
+ var cx = p[0], cy = p[1], rx = p[2], ry = p[3], theta = p[4], dTheta = p[5], psi = p[6], fs = p[7];
+ var r = rx > ry ? rx : ry;
+ var scaleX = rx > ry ? 1 : rx / ry;
+ var scaleY = rx > ry ? ry / rx : 1;
+ context.translate(cx, cy);
+ context.rotate(psi);
+ context.scale(scaleX, scaleY);
+ context.arc(0, 0, r, theta, theta + dTheta, 1 - fs);
+ context.scale(1 / scaleX, 1 / scaleY);
+ context.rotate(-psi);
+ context.translate(-cx, -cy);
+ break;
+ case 'z':
+ isClosed = true;
+ context.closePath();
+ break;
+ }
+ }
+ if (!isClosed && !this.hasFill()) {
+ context.strokeShape(this);
+ }
+ else {
+ context.fillStrokeShape(this);
+ }
+ };
+ Path.prototype.getSelfRect = function () {
+ var points = [];
+ this.dataArray.forEach(function (data) {
+ if (data.command === 'A') {
+ // Approximates by breaking curve into line segments
+ var start = data.points[4];
+ // 4 = theta
+ var dTheta = data.points[5];
+ // 5 = dTheta
+ var end = data.points[4] + dTheta;
+ var inc = Math.PI / 180.0;
+ // 1 degree resolution
+ if (Math.abs(start - end) < inc) {
+ inc = Math.abs(start - end);
+ }
+ if (dTheta < 0) {
+ // clockwise
+ for (var t = start - inc; t > end; t -= inc) {
+ var point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);
+ points.push(point.x, point.y);
+ }
+ }
+ else {
+ // counter-clockwise
+ for (var t = start + inc; t < end; t += inc) {
+ var point = Path.getPointOnEllipticalArc(data.points[0], data.points[1], data.points[2], data.points[3], t, 0);
+ points.push(point.x, point.y);
+ }
+ }
+ }
+ else if (data.command === 'C') {
+ // Approximates by breaking curve into 100 line segments
+ for (var t = 0.0; t <= 1; t += 0.01) {
+ var point = Path.getPointOnCubicBezier(t, data.start.x, data.start.y, data.points[0], data.points[1], data.points[2], data.points[3], data.points[4], data.points[5]);
+ points.push(point.x, point.y);
+ }
+ }
+ else {
+ // TODO: how can we calculate bezier curves better?
+ points = points.concat(data.points);
+ }
+ });
+ var minX = points[0];
+ var maxX = points[0];
+ var minY = points[1];
+ var maxY = points[1];
+ var x, y;
+ for (var i = 0; i < points.length / 2; i++) {
+ x = points[i * 2];
+ y = points[i * 2 + 1];
+ // skip bad values
+ if (!isNaN(x)) {
+ minX = Math.min(minX, x);
+ maxX = Math.max(maxX, x);
+ }
+ if (!isNaN(y)) {
+ minY = Math.min(minY, y);
+ maxY = Math.max(maxY, y);
+ }
+ }
+ return {
+ x: Math.round(minX),
+ y: Math.round(minY),
+ width: Math.round(maxX - minX),
+ height: Math.round(maxY - minY)
+ };
+ };
+ /**
+ * Return length of the path.
+ * @method
+ * @name Konva.Path#getLength
+ * @returns {Number} length
+ * @example
+ * var length = path.getLength();
+ */
+ Path.prototype.getLength = function () {
+ return this.pathLength;
+ };
+ /**
+ * Get point on path at specific length of the path
+ * @method
+ * @name Konva.Path#getPointAtLength
+ * @param {Number} length length
+ * @returns {Object} point {x,y} point
+ * @example
+ * var point = path.getPointAtLength(10);
+ */
+ Path.prototype.getPointAtLength = function (length) {
+ var point, i = 0, ii = this.dataArray.length;
+ if (!ii) {
+ return null;
+ }
+ while (i < ii && length > this.dataArray[i].pathLength) {
+ length -= this.dataArray[i].pathLength;
+ ++i;
+ }
+ if (i === ii) {
+ point = this.dataArray[i - 1].points.slice(-2);
+ return {
+ x: point[0],
+ y: point[1]
+ };
+ }
+ if (length < 0.01) {
+ point = this.dataArray[i].points.slice(0, 2);
+ return {
+ x: point[0],
+ y: point[1]
+ };
+ }
+ var cp = this.dataArray[i];
+ var p = cp.points;
+ switch (cp.command) {
+ case 'L':
+ return Path.getPointOnLine(length, cp.start.x, cp.start.y, p[0], p[1]);
+ case 'C':
+ return Path.getPointOnCubicBezier(length / cp.pathLength, cp.start.x, cp.start.y, p[0], p[1], p[2], p[3], p[4], p[5]);
+ case 'Q':
+ return Path.getPointOnQuadraticBezier(length / cp.pathLength, cp.start.x, cp.start.y, p[0], p[1], p[2], p[3]);
+ case 'A':
+ var cx = p[0], cy = p[1], rx = p[2], ry = p[3], theta = p[4], dTheta = p[5], psi = p[6];
+ theta += (dTheta * length) / cp.pathLength;
+ return Path.getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi);
+ }
+ return null;
+ };
+ Path.getLineLength = function (x1, y1, x2, y2) {
+ return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
+ };
+ Path.getPointOnLine = function (dist, P1x, P1y, P2x, P2y, fromX, fromY) {
+ if (fromX === undefined) {
+ fromX = P1x;
+ }
+ if (fromY === undefined) {
+ fromY = P1y;
+ }
+ var m = (P2y - P1y) / (P2x - P1x + 0.00000001);
+ var run = Math.sqrt((dist * dist) / (1 + m * m));
+ if (P2x < P1x) {
+ run *= -1;
+ }
+ var rise = m * run;
+ var pt;
+ if (P2x === P1x) {
+ // vertical line
+ pt = {
+ x: fromX,
+ y: fromY + rise
+ };
+ }
+ else if ((fromY - P1y) / (fromX - P1x + 0.00000001) === m) {
+ pt = {
+ x: fromX + run,
+ y: fromY + rise
+ };
+ }
+ else {
+ var ix, iy;
+ var len = this.getLineLength(P1x, P1y, P2x, P2y);
+ if (len < 0.00000001) {
+ return undefined;
+ }
+ var u = (fromX - P1x) * (P2x - P1x) + (fromY - P1y) * (P2y - P1y);
+ u = u / (len * len);
+ ix = P1x + u * (P2x - P1x);
+ iy = P1y + u * (P2y - P1y);
+ var pRise = this.getLineLength(fromX, fromY, ix, iy);
+ var pRun = Math.sqrt(dist * dist - pRise * pRise);
+ run = Math.sqrt((pRun * pRun) / (1 + m * m));
+ if (P2x < P1x) {
+ run *= -1;
+ }
+ rise = m * run;
+ pt = {
+ x: ix + run,
+ y: iy + rise
+ };
+ }
+ return pt;
+ };
+ Path.getPointOnCubicBezier = function (pct, P1x, P1y, P2x, P2y, P3x, P3y, P4x, P4y) {
+ function CB1(t) {
+ return t * t * t;
+ }
+ function CB2(t) {
+ return 3 * t * t * (1 - t);
+ }
+ function CB3(t) {
+ return 3 * t * (1 - t) * (1 - t);
+ }
+ function CB4(t) {
+ return (1 - t) * (1 - t) * (1 - t);
+ }
+ var x = P4x * CB1(pct) + P3x * CB2(pct) + P2x * CB3(pct) + P1x * CB4(pct);
+ var y = P4y * CB1(pct) + P3y * CB2(pct) + P2y * CB3(pct) + P1y * CB4(pct);
+ return {
+ x: x,
+ y: y
+ };
+ };
+ Path.getPointOnQuadraticBezier = function (pct, P1x, P1y, P2x, P2y, P3x, P3y) {
+ function QB1(t) {
+ return t * t;
+ }
+ function QB2(t) {
+ return 2 * t * (1 - t);
+ }
+ function QB3(t) {
+ return (1 - t) * (1 - t);
+ }
+ var x = P3x * QB1(pct) + P2x * QB2(pct) + P1x * QB3(pct);
+ var y = P3y * QB1(pct) + P2y * QB2(pct) + P1y * QB3(pct);
+ return {
+ x: x,
+ y: y
+ };
+ };
+ Path.getPointOnEllipticalArc = function (cx, cy, rx, ry, theta, psi) {
+ var cosPsi = Math.cos(psi), sinPsi = Math.sin(psi);
+ var pt = {
+ x: rx * Math.cos(theta),
+ y: ry * Math.sin(theta)
+ };
+ return {
+ x: cx + (pt.x * cosPsi - pt.y * sinPsi),
+ y: cy + (pt.x * sinPsi + pt.y * cosPsi)
+ };
+ };
+ /*
+ * get parsed data array from the data
+ * string. V, v, H, h, and l data are converted to
+ * L data for the purpose of high performance Path
+ * rendering
+ */
+ Path.parsePathData = function (data) {
+ // Path Data Segment must begin with a moveTo
+ //m (x y)+ Relative moveTo (subsequent points are treated as lineTo)
+ //M (x y)+ Absolute moveTo (subsequent points are treated as lineTo)
+ //l (x y)+ Relative lineTo
+ //L (x y)+ Absolute LineTo
+ //h (x)+ Relative horizontal lineTo
+ //H (x)+ Absolute horizontal lineTo
+ //v (y)+ Relative vertical lineTo
+ //V (y)+ Absolute vertical lineTo
+ //z (closepath)
+ //Z (closepath)
+ //c (x1 y1 x2 y2 x y)+ Relative Bezier curve
+ //C (x1 y1 x2 y2 x y)+ Absolute Bezier curve
+ //q (x1 y1 x y)+ Relative Quadratic Bezier
+ //Q (x1 y1 x y)+ Absolute Quadratic Bezier
+ //t (x y)+ Shorthand/Smooth Relative Quadratic Bezier
+ //T (x y)+ Shorthand/Smooth Absolute Quadratic Bezier
+ //s (x2 y2 x y)+ Shorthand/Smooth Relative Bezier curve
+ //S (x2 y2 x y)+ Shorthand/Smooth Absolute Bezier curve
+ //a (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+ Relative Elliptical Arc
+ //A (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+ Absolute Elliptical Arc
+ // return early if data is not defined
+ if (!data) {
+ return [];
+ }
+ // command string
+ var cs = data;
+ // command chars
+ var cc = [
+ 'm',
+ 'M',
+ 'l',
+ 'L',
+ 'v',
+ 'V',
+ 'h',
+ 'H',
+ 'z',
+ 'Z',
+ 'c',
+ 'C',
+ 'q',
+ 'Q',
+ 't',
+ 'T',
+ 's',
+ 'S',
+ 'a',
+ 'A'
+ ];
+ // convert white spaces to commas
+ cs = cs.replace(new RegExp(' ', 'g'), ',');
+ // create pipes so that we can split the data
+ for (var n = 0; n < cc.length; n++) {
+ cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);
+ }
+ // create array
+ var arr = cs.split('|');
+ var ca = [];
+ var coords = [];
+ // init context point
+ var cpx = 0;
+ var cpy = 0;
+ var re = /([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:e[-+]?\d+)?)/gi;
+ var match;
+ for (n = 1; n < arr.length; n++) {
+ var str = arr[n];
+ var c = str.charAt(0);
+ str = str.slice(1);
+ coords.length = 0;
+ while ((match = re.exec(str))) {
+ coords.push(match[0]);
+ }
+ // while ((match = re.exec(str))) {
+ // coords.push(match[0]);
+ // }
+ var p = [];
+ for (var j = 0, jlen = coords.length; j < jlen; j++) {
+ var parsed = parseFloat(coords[j]);
+ if (!isNaN(parsed)) {
+ p.push(parsed);
+ }
+ else {
+ p.push(0);
+ }
+ }
+ while (p.length > 0) {
+ if (isNaN(p[0])) {
+ // case for a trailing comma before next command
+ break;
+ }
+ var cmd = null;
+ var points = [];
+ var startX = cpx, startY = cpy;
+ // Move var from within the switch to up here (jshint)
+ var prevCmd, ctlPtx, ctlPty; // Ss, Tt
+ var rx, ry, psi, fa, fs, x1, y1; // Aa
+ // convert l, H, h, V, and v to L
+ switch (c) {
+ // Note: Keep the lineTo's above the moveTo's in this switch
+ case 'l':
+ cpx += p.shift();
+ cpy += p.shift();
+ cmd = 'L';
+ points.push(cpx, cpy);
+ break;
+ case 'L':
+ cpx = p.shift();
+ cpy = p.shift();
+ points.push(cpx, cpy);
+ break;
+ // Note: lineTo handlers need to be above this point
+ case 'm':
+ var dx = p.shift();
+ var dy = p.shift();
+ cpx += dx;
+ cpy += dy;
+ cmd = 'M';
+ // After closing the path move the current position
+ // to the the first point of the path (if any).
+ if (ca.length > 2 && ca[ca.length - 1].command === 'z') {
+ for (var idx = ca.length - 2; idx >= 0; idx--) {
+ if (ca[idx].command === 'M') {
+ cpx = ca[idx].points[0] + dx;
+ cpy = ca[idx].points[1] + dy;
+ break;
+ }
+ }
+ }
+ points.push(cpx, cpy);
+ c = 'l';
+ // subsequent points are treated as relative lineTo
+ break;
+ case 'M':
+ cpx = p.shift();
+ cpy = p.shift();
+ cmd = 'M';
+ points.push(cpx, cpy);
+ c = 'L';
+ // subsequent points are treated as absolute lineTo
+ break;
+ case 'h':
+ cpx += p.shift();
+ cmd = 'L';
+ points.push(cpx, cpy);
+ break;
+ case 'H':
+ cpx = p.shift();
+ cmd = 'L';
+ points.push(cpx, cpy);
+ break;
+ case 'v':
+ cpy += p.shift();
+ cmd = 'L';
+ points.push(cpx, cpy);
+ break;
+ case 'V':
+ cpy = p.shift();
+ cmd = 'L';
+ points.push(cpx, cpy);
+ break;
+ case 'C':
+ points.push(p.shift(), p.shift(), p.shift(), p.shift());
+ cpx = p.shift();
+ cpy = p.shift();
+ points.push(cpx, cpy);
+ break;
+ case 'c':
+ points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift());
+ cpx += p.shift();
+ cpy += p.shift();
+ cmd = 'C';
+ points.push(cpx, cpy);
+ break;
+ case 'S':
+ ctlPtx = cpx;
+ ctlPty = cpy;
+ prevCmd = ca[ca.length - 1];
+ if (prevCmd.command === 'C') {
+ ctlPtx = cpx + (cpx - prevCmd.points[2]);
+ ctlPty = cpy + (cpy - prevCmd.points[3]);
+ }
+ points.push(ctlPtx, ctlPty, p.shift(), p.shift());
+ cpx = p.shift();
+ cpy = p.shift();
+ cmd = 'C';
+ points.push(cpx, cpy);
+ break;
+ case 's':
+ ctlPtx = cpx;
+ ctlPty = cpy;
+ prevCmd = ca[ca.length - 1];
+ if (prevCmd.command === 'C') {
+ ctlPtx = cpx + (cpx - prevCmd.points[2]);
+ ctlPty = cpy + (cpy - prevCmd.points[3]);
+ }
+ points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift());
+ cpx += p.shift();
+ cpy += p.shift();
+ cmd = 'C';
+ points.push(cpx, cpy);
+ break;
+ case 'Q':
+ points.push(p.shift(), p.shift());
+ cpx = p.shift();
+ cpy = p.shift();
+ points.push(cpx, cpy);
+ break;
+ case 'q':
+ points.push(cpx + p.shift(), cpy + p.shift());
+ cpx += p.shift();
+ cpy += p.shift();
+ cmd = 'Q';
+ points.push(cpx, cpy);
+ break;
+ case 'T':
+ ctlPtx = cpx;
+ ctlPty = cpy;
+ prevCmd = ca[ca.length - 1];
+ if (prevCmd.command === 'Q') {
+ ctlPtx = cpx + (cpx - prevCmd.points[0]);
+ ctlPty = cpy + (cpy - prevCmd.points[1]);
+ }
+ cpx = p.shift();
+ cpy = p.shift();
+ cmd = 'Q';
+ points.push(ctlPtx, ctlPty, cpx, cpy);
+ break;
+ case 't':
+ ctlPtx = cpx;
+ ctlPty = cpy;
+ prevCmd = ca[ca.length - 1];
+ if (prevCmd.command === 'Q') {
+ ctlPtx = cpx + (cpx - prevCmd.points[0]);
+ ctlPty = cpy + (cpy - prevCmd.points[1]);
+ }
+ cpx += p.shift();
+ cpy += p.shift();
+ cmd = 'Q';
+ points.push(ctlPtx, ctlPty, cpx, cpy);
+ break;
+ case 'A':
+ rx = p.shift();
+ ry = p.shift();
+ psi = p.shift();
+ fa = p.shift();
+ fs = p.shift();
+ x1 = cpx;
+ y1 = cpy;
+ cpx = p.shift();
+ cpy = p.shift();
+ cmd = 'A';
+ points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);
+ break;
+ case 'a':
+ rx = p.shift();
+ ry = p.shift();
+ psi = p.shift();
+ fa = p.shift();
+ fs = p.shift();
+ x1 = cpx;
+ y1 = cpy;
+ cpx += p.shift();
+ cpy += p.shift();
+ cmd = 'A';
+ points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);
+ break;
+ }
+ ca.push({
+ command: cmd || c,
+ points: points,
+ start: {
+ x: startX,
+ y: startY
+ },
+ pathLength: this.calcLength(startX, startY, cmd || c, points)
+ });
+ }
+ if (c === 'z' || c === 'Z') {
+ ca.push({
+ command: 'z',
+ points: [],
+ start: undefined,
+ pathLength: 0
+ });
+ }
+ }
+ return ca;
+ };
+ Path.calcLength = function (x, y, cmd, points) {
+ var len, p1, p2, t;
+ var path = Path;
+ switch (cmd) {
+ case 'L':
+ return path.getLineLength(x, y, points[0], points[1]);
+ case 'C':
+ // Approximates by breaking curve into 100 line segments
+ len = 0.0;
+ p1 = path.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);
+ for (t = 0.01; t <= 1; t += 0.01) {
+ p2 = path.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);
+ len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);
+ p1 = p2;
+ }
+ return len;
+ case 'Q':
+ // Approximates by breaking curve into 100 line segments
+ len = 0.0;
+ p1 = path.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);
+ for (t = 0.01; t <= 1; t += 0.01) {
+ p2 = path.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);
+ len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);
+ p1 = p2;
+ }
+ return len;
+ case 'A':
+ // Approximates by breaking curve into line segments
+ len = 0.0;
+ var start = points[4];
+ // 4 = theta
+ var dTheta = points[5];
+ // 5 = dTheta
+ var end = points[4] + dTheta;
+ var inc = Math.PI / 180.0;
+ // 1 degree resolution
+ if (Math.abs(start - end) < inc) {
+ inc = Math.abs(start - end);
+ }
+ // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi
+ p1 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);
+ if (dTheta < 0) {
+ // clockwise
+ for (t = start - inc; t > end; t -= inc) {
+ p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);
+ len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);
+ p1 = p2;
+ }
+ }
+ else {
+ // counter-clockwise
+ for (t = start + inc; t < end; t += inc) {
+ p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);
+ len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);
+ p1 = p2;
+ }
+ }
+ p2 = path.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);
+ len += path.getLineLength(p1.x, p1.y, p2.x, p2.y);
+ return len;
+ }
+ return 0;
+ };
+ Path.convertEndpointToCenterParameterization = function (x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) {
+ // Derived from: http://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes
+ var psi = psiDeg * (Math.PI / 180.0);
+ var xp = (Math.cos(psi) * (x1 - x2)) / 2.0 + (Math.sin(psi) * (y1 - y2)) / 2.0;
+ var yp = (-1 * Math.sin(psi) * (x1 - x2)) / 2.0 +
+ (Math.cos(psi) * (y1 - y2)) / 2.0;
+ var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);
+ if (lambda > 1) {
+ rx *= Math.sqrt(lambda);
+ ry *= Math.sqrt(lambda);
+ }
+ var f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) /
+ (rx * rx * (yp * yp) + ry * ry * (xp * xp)));
+ if (fa === fs) {
+ f *= -1;
+ }
+ if (isNaN(f)) {
+ f = 0;
+ }
+ var cxp = (f * rx * yp) / ry;
+ var cyp = (f * -ry * xp) / rx;
+ var cx = (x1 + x2) / 2.0 + Math.cos(psi) * cxp - Math.sin(psi) * cyp;
+ var cy = (y1 + y2) / 2.0 + Math.sin(psi) * cxp + Math.cos(psi) * cyp;
+ var vMag = function (v) {
+ return Math.sqrt(v[0] * v[0] + v[1] * v[1]);
+ };
+ var vRatio = function (u, v) {
+ return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));
+ };
+ var vAngle = function (u, v) {
+ return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));
+ };
+ var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);
+ var u = [(xp - cxp) / rx, (yp - cyp) / ry];
+ var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];
+ var dTheta = vAngle(u, v);
+ if (vRatio(u, v) <= -1) {
+ dTheta = Math.PI;
+ }
+ if (vRatio(u, v) >= 1) {
+ dTheta = 0;
+ }
+ if (fs === 0 && dTheta > 0) {
+ dTheta = dTheta - 2 * Math.PI;
+ }
+ if (fs === 1 && dTheta < 0) {
+ dTheta = dTheta + 2 * Math.PI;
+ }
+ return [cx, cy, rx, ry, theta, dTheta, psi, fs];
+ };
+ return Path;
+ }(Shape));
+ Path.prototype.className = 'Path';
+ Path.prototype._attrsAffectingSize = ['data'];
+ _registerNode(Path);
+ /**
+ * get/set SVG path data string. This method
+ * also automatically parses the data string
+ * into a data array. Currently supported SVG data:
+ * M, m, L, l, H, h, V, v, Q, q, T, t, C, c, S, s, A, a, Z, z
+ * @name Konva.Path#data
+ * @method
+ * @param {String} data svg path string
+ * @returns {String}
+ * @example
+ * // get data
+ * var data = path.data();
+ *
+ * // set data
+ * path.data('M200,100h100v50z');
+ */
+ Factory.addGetterSetter(Path, 'data');
+ Collection.mapMethods(Path);
+
+ /**
+ * Rect constructor
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {Number} [config.cornerRadius]
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var rect = new Konva.Rect({
+ * width: 100,
+ * height: 50,
+ * fill: 'red',
+ * stroke: 'black',
+ * strokeWidth: 5
+ * });
+ */
+ var Rect = /** @class */ (function (_super) {
+ __extends(Rect, _super);
+ function Rect() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Rect.prototype._sceneFunc = function (context) {
+ var cornerRadius = this.cornerRadius(), width = this.width(), height = this.height();
+ context.beginPath();
+ if (!cornerRadius) {
+ // simple rect - don't bother doing all that complicated maths stuff.
+ context.rect(0, 0, width, height);
+ }
+ else {
+ var topLeft = 0;
+ var topRight = 0;
+ var bottomLeft = 0;
+ var bottomRight = 0;
+ if (typeof cornerRadius === 'number') {
+ topLeft = topRight = bottomLeft = bottomRight = Math.min(cornerRadius, width / 2, height / 2);
+ }
+ else {
+ topLeft = Math.min(cornerRadius[0], width / 2, height / 2);
+ topRight = Math.min(cornerRadius[1], width / 2, height / 2);
+ bottomRight = Math.min(cornerRadius[2], width / 2, height / 2);
+ bottomLeft = Math.min(cornerRadius[3], width / 2, height / 2);
+ }
+ context.moveTo(topLeft, 0);
+ context.lineTo(width - topRight, 0);
+ context.arc(width - topRight, topRight, topRight, (Math.PI * 3) / 2, 0, false);
+ context.lineTo(width, height - bottomRight);
+ context.arc(width - bottomRight, height - bottomRight, bottomRight, 0, Math.PI / 2, false);
+ context.lineTo(bottomLeft, height);
+ context.arc(bottomLeft, height - bottomLeft, bottomLeft, Math.PI / 2, Math.PI, false);
+ context.lineTo(0, topLeft);
+ context.arc(topLeft, topLeft, topLeft, Math.PI, (Math.PI * 3) / 2, false);
+ }
+ context.closePath();
+ context.fillStrokeShape(this);
+ };
+ return Rect;
+ }(Shape));
+ Rect.prototype.className = 'Rect';
+ _registerNode(Rect);
+ /**
+ * get/set corner radius
+ * @method
+ * @name Konva.Rect#cornerRadius
+ * @param {Number} cornerRadius
+ * @returns {Number}
+ * @example
+ * // get corner radius
+ * var cornerRadius = rect.cornerRadius();
+ *
+ * // set corner radius
+ * rect.cornerRadius(10);
+ *
+ * // set different corner radius values
+ * // top-left, top-right, bottom-right, bottom-left
+ * rect.cornerRadius([0, 10, 20, 30]);
+ */
+ Factory.addGetterSetter(Rect, 'cornerRadius', 0);
+ Collection.mapMethods(Rect);
+
+ /**
+ * RegularPolygon constructor. Examples include triangles, squares, pentagons, hexagons, etc.
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {Number} config.sides
+ * @param {Number} config.radius
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var hexagon = new Konva.RegularPolygon({
+ * x: 100,
+ * y: 200,
+ * sides: 6,
+ * radius: 70,
+ * fill: 'red',
+ * stroke: 'black',
+ * strokeWidth: 4
+ * });
+ */
+ var RegularPolygon = /** @class */ (function (_super) {
+ __extends(RegularPolygon, _super);
+ function RegularPolygon() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ RegularPolygon.prototype._sceneFunc = function (context) {
+ var sides = this.sides(), radius = this.radius(), n, x, y;
+ context.beginPath();
+ context.moveTo(0, 0 - radius);
+ for (n = 1; n < sides; n++) {
+ x = radius * Math.sin((n * 2 * Math.PI) / sides);
+ y = -1 * radius * Math.cos((n * 2 * Math.PI) / sides);
+ context.lineTo(x, y);
+ }
+ context.closePath();
+ context.fillStrokeShape(this);
+ };
+ RegularPolygon.prototype.getWidth = function () {
+ return this.radius() * 2;
+ };
+ RegularPolygon.prototype.getHeight = function () {
+ return this.radius() * 2;
+ };
+ RegularPolygon.prototype.setWidth = function (width) {
+ this.radius(width / 2);
+ };
+ RegularPolygon.prototype.setHeight = function (height) {
+ this.radius(height / 2);
+ };
+ return RegularPolygon;
+ }(Shape));
+ RegularPolygon.prototype.className = 'RegularPolygon';
+ RegularPolygon.prototype._centroid = true;
+ RegularPolygon.prototype._attrsAffectingSize = ['radius'];
+ _registerNode(RegularPolygon);
+ /**
+ * get/set radius
+ * @method
+ * @name Konva.RegularPolygon#radius
+ * @param {Number} radius
+ * @returns {Number}
+ * @example
+ * // get radius
+ * var radius = shape.radius();
+ *
+ * // set radius
+ * shape.radius(10);
+ */
+ Factory.addGetterSetter(RegularPolygon, 'radius', 0, getNumberValidator());
+ /**
+ * get/set sides
+ * @method
+ * @name Konva.RegularPolygon#sides
+ * @param {Number} sides
+ * @returns {Number}
+ * @example
+ * // get sides
+ * var sides = shape.sides();
+ *
+ * // set sides
+ * shape.sides(10);
+ */
+ Factory.addGetterSetter(RegularPolygon, 'sides', 0, getNumberValidator());
+ Collection.mapMethods(RegularPolygon);
+
+ var PIx2 = Math.PI * 2;
+ /**
+ * Ring constructor
+ * @constructor
+ * @augments Konva.Shape
+ * @memberof Konva
+ * @param {Object} config
+ * @param {Number} config.innerRadius
+ * @param {Number} config.outerRadius
+ * @param {Boolean} [config.clockwise]
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var ring = new Konva.Ring({
+ * innerRadius: 40,
+ * outerRadius: 80,
+ * fill: 'red',
+ * stroke: 'black',
+ * strokeWidth: 5
+ * });
+ */
+ var Ring = /** @class */ (function (_super) {
+ __extends(Ring, _super);
+ function Ring() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Ring.prototype._sceneFunc = function (context) {
+ context.beginPath();
+ context.arc(0, 0, this.innerRadius(), 0, PIx2, false);
+ context.moveTo(this.outerRadius(), 0);
+ context.arc(0, 0, this.outerRadius(), PIx2, 0, true);
+ context.closePath();
+ context.fillStrokeShape(this);
+ };
+ Ring.prototype.getWidth = function () {
+ return this.outerRadius() * 2;
+ };
+ Ring.prototype.getHeight = function () {
+ return this.outerRadius() * 2;
+ };
+ Ring.prototype.setWidth = function (width) {
+ this.outerRadius(width / 2);
+ };
+ Ring.prototype.setHeight = function (height) {
+ this.outerRadius(height / 2);
+ };
+ return Ring;
+ }(Shape));
+ Ring.prototype.className = 'Ring';
+ Ring.prototype._centroid = true;
+ Ring.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];
+ _registerNode(Ring);
+ /**
+ * get/set innerRadius
+ * @method
+ * @name Konva.Ring#innerRadius
+ * @param {Number} innerRadius
+ * @returns {Number}
+ * @example
+ * // get inner radius
+ * var innerRadius = ring.innerRadius();
+ *
+ * // set inner radius
+ * ring.innerRadius(20);
+ */
+ Factory.addGetterSetter(Ring, 'innerRadius', 0, getNumberValidator());
+ /**
+ * get/set outerRadius
+ * @name Konva.Ring#outerRadius
+ * @method
+ * @param {Number} outerRadius
+ * @returns {Number}
+ * @example
+ * // get outer radius
+ * var outerRadius = ring.outerRadius();
+ *
+ * // set outer radius
+ * ring.outerRadius(20);
+ */
+ Factory.addGetterSetter(Ring, 'outerRadius', 0, getNumberValidator());
+ Collection.mapMethods(Ring);
+
+ /**
+ * Sprite constructor
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {String} config.animation animation key
+ * @param {Object} config.animations animation map
+ * @param {Integer} [config.frameIndex] animation frame index
+ * @param {Image} config.image image object
+ * @param {Integer} [config.frameRate] animation frame rate
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var imageObj = new Image();
+ * imageObj.onload = function() {
+ * var sprite = new Konva.Sprite({
+ * x: 200,
+ * y: 100,
+ * image: imageObj,
+ * animation: 'standing',
+ * animations: {
+ * standing: [
+ * // x, y, width, height (6 frames)
+ * 0, 0, 49, 109,
+ * 52, 0, 49, 109,
+ * 105, 0, 49, 109,
+ * 158, 0, 49, 109,
+ * 210, 0, 49, 109,
+ * 262, 0, 49, 109
+ * ],
+ * kicking: [
+ * // x, y, width, height (6 frames)
+ * 0, 109, 45, 98,
+ * 45, 109, 45, 98,
+ * 95, 109, 63, 98,
+ * 156, 109, 70, 98,
+ * 229, 109, 60, 98,
+ * 287, 109, 41, 98
+ * ]
+ * },
+ * frameRate: 7,
+ * frameIndex: 0
+ * });
+ * };
+ * imageObj.src = '/path/to/image.jpg'
+ */
+ var Sprite = /** @class */ (function (_super) {
+ __extends(Sprite, _super);
+ function Sprite(config) {
+ var _this = _super.call(this, config) || this;
+ _this._updated = true;
+ _this.anim = new Animation(function () {
+ // if we don't need to redraw layer we should return false
+ var updated = _this._updated;
+ _this._updated = false;
+ return updated;
+ });
+ _this.on('animationChange.konva', function () {
+ // reset index when animation changes
+ this.frameIndex(0);
+ });
+ _this.on('frameIndexChange.konva', function () {
+ this._updated = true;
+ });
+ // smooth change for frameRate
+ _this.on('frameRateChange.konva', function () {
+ if (!this.anim.isRunning()) {
+ return;
+ }
+ clearInterval(this.interval);
+ this._setInterval();
+ });
+ return _this;
+ }
+ Sprite.prototype._sceneFunc = function (context) {
+ var anim = this.animation(), index = this.frameIndex(), ix4 = index * 4, set = this.animations()[anim], offsets = this.frameOffsets(), x = set[ix4 + 0], y = set[ix4 + 1], width = set[ix4 + 2], height = set[ix4 + 3], image = this.image();
+ if (this.hasFill() || this.hasStroke()) {
+ context.beginPath();
+ context.rect(0, 0, width, height);
+ context.closePath();
+ context.fillStrokeShape(this);
+ }
+ if (image) {
+ if (offsets) {
+ var offset = offsets[anim], ix2 = index * 2;
+ context.drawImage(image, x, y, width, height, offset[ix2 + 0], offset[ix2 + 1], width, height);
+ }
+ else {
+ context.drawImage(image, x, y, width, height, 0, 0, width, height);
+ }
+ }
+ };
+ Sprite.prototype._hitFunc = function (context) {
+ var anim = this.animation(), index = this.frameIndex(), ix4 = index * 4, set = this.animations()[anim], offsets = this.frameOffsets(), width = set[ix4 + 2], height = set[ix4 + 3];
+ context.beginPath();
+ if (offsets) {
+ var offset = offsets[anim];
+ var ix2 = index * 2;
+ context.rect(offset[ix2 + 0], offset[ix2 + 1], width, height);
+ }
+ else {
+ context.rect(0, 0, width, height);
+ }
+ context.closePath();
+ context.fillShape(this);
+ };
+ Sprite.prototype._useBufferCanvas = function () {
+ return _super.prototype._useBufferCanvas.call(this, true);
+ };
+ Sprite.prototype._setInterval = function () {
+ var that = this;
+ this.interval = setInterval(function () {
+ that._updateIndex();
+ }, 1000 / this.frameRate());
+ };
+ /**
+ * start sprite animation
+ * @method
+ * @name Konva.Sprite#start
+ */
+ Sprite.prototype.start = function () {
+ if (this.isRunning()) {
+ return;
+ }
+ var layer = this.getLayer();
+ /*
+ * animation object has no executable function because
+ * the updates are done with a fixed FPS with the setInterval
+ * below. The anim object only needs the layer reference for
+ * redraw
+ */
+ this.anim.setLayers(layer);
+ this._setInterval();
+ this.anim.start();
+ };
+ /**
+ * stop sprite animation
+ * @method
+ * @name Konva.Sprite#stop
+ */
+ Sprite.prototype.stop = function () {
+ this.anim.stop();
+ clearInterval(this.interval);
+ };
+ /**
+ * determine if animation of sprite is running or not. returns true or false
+ * @method
+ * @name Konva.Sprite#isRunning
+ * @returns {Boolean}
+ */
+ Sprite.prototype.isRunning = function () {
+ return this.anim.isRunning();
+ };
+ Sprite.prototype._updateIndex = function () {
+ var index = this.frameIndex(), animation = this.animation(), animations = this.animations(), anim = animations[animation], len = anim.length / 4;
+ if (index < len - 1) {
+ this.frameIndex(index + 1);
+ }
+ else {
+ this.frameIndex(0);
+ }
+ };
+ return Sprite;
+ }(Shape));
+ Sprite.prototype.className = 'Sprite';
+ _registerNode(Sprite);
+ // add getters setters
+ Factory.addGetterSetter(Sprite, 'animation');
+ /**
+ * get/set animation key
+ * @name Konva.Sprite#animation
+ * @method
+ * @param {String} anim animation key
+ * @returns {String}
+ * @example
+ * // get animation key
+ * var animation = sprite.animation();
+ *
+ * // set animation key
+ * sprite.animation('kicking');
+ */
+ Factory.addGetterSetter(Sprite, 'animations');
+ /**
+ * get/set animations map
+ * @name Konva.Sprite#animations
+ * @method
+ * @param {Object} animations
+ * @returns {Object}
+ * @example
+ * // get animations map
+ * var animations = sprite.animations();
+ *
+ * // set animations map
+ * sprite.animations({
+ * standing: [
+ * // x, y, width, height (6 frames)
+ * 0, 0, 49, 109,
+ * 52, 0, 49, 109,
+ * 105, 0, 49, 109,
+ * 158, 0, 49, 109,
+ * 210, 0, 49, 109,
+ * 262, 0, 49, 109
+ * ],
+ * kicking: [
+ * // x, y, width, height (6 frames)
+ * 0, 109, 45, 98,
+ * 45, 109, 45, 98,
+ * 95, 109, 63, 98,
+ * 156, 109, 70, 98,
+ * 229, 109, 60, 98,
+ * 287, 109, 41, 98
+ * ]
+ * });
+ */
+ Factory.addGetterSetter(Sprite, 'frameOffsets');
+ /**
+ * get/set offsets map
+ * @name Konva.Sprite#offsets
+ * @method
+ * @param {Object} offsets
+ * @returns {Object}
+ * @example
+ * // get offsets map
+ * var offsets = sprite.offsets();
+ *
+ * // set offsets map
+ * sprite.offsets({
+ * standing: [
+ * // x, y (6 frames)
+ * 0, 0,
+ * 0, 0,
+ * 5, 0,
+ * 0, 0,
+ * 0, 3,
+ * 2, 0
+ * ],
+ * kicking: [
+ * // x, y (6 frames)
+ * 0, 5,
+ * 5, 0,
+ * 10, 0,
+ * 0, 0,
+ * 2, 1,
+ * 0, 0
+ * ]
+ * });
+ */
+ Factory.addGetterSetter(Sprite, 'image');
+ /**
+ * get/set image
+ * @name Konva.Sprite#image
+ * @method
+ * @param {Image} image
+ * @returns {Image}
+ * @example
+ * // get image
+ * var image = sprite.image();
+ *
+ * // set image
+ * sprite.image(imageObj);
+ */
+ Factory.addGetterSetter(Sprite, 'frameIndex', 0, getNumberValidator());
+ /**
+ * set/set animation frame index
+ * @name Konva.Sprite#frameIndex
+ * @method
+ * @param {Integer} frameIndex
+ * @returns {Integer}
+ * @example
+ * // get animation frame index
+ * var frameIndex = sprite.frameIndex();
+ *
+ * // set animation frame index
+ * sprite.frameIndex(3);
+ */
+ Factory.addGetterSetter(Sprite, 'frameRate', 17, getNumberValidator());
+ /**
+ * get/set frame rate in frames per second. Increase this number to make the sprite
+ * animation run faster, and decrease the number to make the sprite animation run slower
+ * The default is 17 frames per second
+ * @name Konva.Sprite#frameRate
+ * @method
+ * @param {Integer} frameRate
+ * @returns {Integer}
+ * @example
+ * // get frame rate
+ * var frameRate = sprite.frameRate();
+ *
+ * // set frame rate to 2 frames per second
+ * sprite.frameRate(2);
+ */
+ Factory.backCompat(Sprite, {
+ index: 'frameIndex',
+ getIndex: 'getFrameIndex',
+ setIndex: 'setFrameIndex',
+ });
+ Collection.mapMethods(Sprite);
+
+ /**
+ * Star constructor
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {Integer} config.numPoints
+ * @param {Number} config.innerRadius
+ * @param {Number} config.outerRadius
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var star = new Konva.Star({
+ * x: 100,
+ * y: 200,
+ * numPoints: 5,
+ * innerRadius: 70,
+ * outerRadius: 70,
+ * fill: 'red',
+ * stroke: 'black',
+ * strokeWidth: 4
+ * });
+ */
+ var Star = /** @class */ (function (_super) {
+ __extends(Star, _super);
+ function Star() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Star.prototype._sceneFunc = function (context) {
+ var innerRadius = this.innerRadius(), outerRadius = this.outerRadius(), numPoints = this.numPoints();
+ context.beginPath();
+ context.moveTo(0, 0 - outerRadius);
+ for (var n = 1; n < numPoints * 2; n++) {
+ var radius = n % 2 === 0 ? outerRadius : innerRadius;
+ var x = radius * Math.sin((n * Math.PI) / numPoints);
+ var y = -1 * radius * Math.cos((n * Math.PI) / numPoints);
+ context.lineTo(x, y);
+ }
+ context.closePath();
+ context.fillStrokeShape(this);
+ };
+ Star.prototype.getWidth = function () {
+ return this.outerRadius() * 2;
+ };
+ Star.prototype.getHeight = function () {
+ return this.outerRadius() * 2;
+ };
+ Star.prototype.setWidth = function (width) {
+ this.outerRadius(width / 2);
+ };
+ Star.prototype.setHeight = function (height) {
+ this.outerRadius(height / 2);
+ };
+ return Star;
+ }(Shape));
+ Star.prototype.className = 'Star';
+ Star.prototype._centroid = true;
+ Star.prototype._attrsAffectingSize = ['innerRadius', 'outerRadius'];
+ _registerNode(Star);
+ /**
+ * get/set number of points
+ * @name Konva.Ring#numPoints
+ * @method
+ * @param {Number} numPoints
+ * @returns {Number}
+ * @example
+ * // get inner radius
+ * var numPoints = ring.numPoints();
+ *
+ * // set inner radius
+ * ring.numPoints(20);
+ */
+ Factory.addGetterSetter(Star, 'numPoints', 5, getNumberValidator());
+ /**
+ * get/set innerRadius
+ * @name Konva.Ring#innerRadius
+ * @method
+ * @param {Number} innerRadius
+ * @returns {Number}
+ * @example
+ * // get inner radius
+ * var innerRadius = ring.innerRadius();
+ *
+ * // set inner radius
+ * ring.innerRadius(20);
+ */
+ Factory.addGetterSetter(Star, 'innerRadius', 0, getNumberValidator());
+ /**
+ * get/set outerRadius
+ * @name Konva.Ring#outerRadius
+ * @method
+ * @param {Number} outerRadius
+ * @returns {Number}
+ * @example
+ * // get inner radius
+ * var outerRadius = ring.outerRadius();
+ *
+ * // set inner radius
+ * ring.outerRadius(20);
+ */
+ Factory.addGetterSetter(Star, 'outerRadius', 0, getNumberValidator());
+ Collection.mapMethods(Star);
+
+ // constants
+ var AUTO = 'auto',
+ //CANVAS = 'canvas',
+ CENTER = 'center', JUSTIFY = 'justify', CHANGE_KONVA$1 = 'Change.konva', CONTEXT_2D = '2d', DASH = '-', LEFT$1 = 'left', TEXT = 'text', TEXT_UPPER = 'Text', TOP = 'top', BOTTOM = 'bottom', MIDDLE = 'middle', NORMAL = 'normal', PX_SPACE = 'px ', SPACE$1 = ' ', RIGHT$1 = 'right', WORD = 'word', CHAR = 'char', NONE$1 = 'none', ELLIPSIS = '…', ATTR_CHANGE_LIST$1 = [
+ 'fontFamily',
+ 'fontSize',
+ 'fontStyle',
+ 'fontVariant',
+ 'padding',
+ 'align',
+ 'verticalAlign',
+ 'lineHeight',
+ 'text',
+ 'width',
+ 'height',
+ 'wrap',
+ 'ellipsis',
+ 'letterSpacing',
+ ],
+ // cached variables
+ attrChangeListLen$1 = ATTR_CHANGE_LIST$1.length;
+ function normalizeFontFamily(fontFamily) {
+ return fontFamily
+ .split(',')
+ .map(function (family) {
+ family = family.trim();
+ var hasSpace = family.indexOf(' ') >= 0;
+ var hasQuotes = family.indexOf('"') >= 0 || family.indexOf("'") >= 0;
+ if (hasSpace && !hasQuotes) {
+ family = "\"" + family + "\"";
+ }
+ return family;
+ })
+ .join(', ');
+ }
+ var dummyContext$1;
+ function getDummyContext$1() {
+ if (dummyContext$1) {
+ return dummyContext$1;
+ }
+ dummyContext$1 = Util.createCanvasElement().getContext(CONTEXT_2D);
+ return dummyContext$1;
+ }
+ function _fillFunc$1(context) {
+ context.fillText(this._partialText, this._partialTextX, this._partialTextY);
+ }
+ function _strokeFunc$1(context) {
+ context.strokeText(this._partialText, this._partialTextX, this._partialTextY);
+ }
+ function checkDefaultFill(config) {
+ config = config || {};
+ // set default color to black
+ if (!config.fillLinearGradientColorStops &&
+ !config.fillRadialGradientColorStops &&
+ !config.fillPatternImage) {
+ config.fill = config.fill || 'black';
+ }
+ return config;
+ }
+ /**
+ * Text constructor
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {String} [config.fontFamily] default is Arial
+ * @param {Number} [config.fontSize] in pixels. Default is 12
+ * @param {String} [config.fontStyle] can be normal, bold, or italic. Default is normal
+ * @param {String} [config.fontVariant] can be normal or small-caps. Default is normal
+ * @param {String} [config.textDecoration] can be line-through, underline or empty string. Default is empty string.
+ * @param {String} config.text
+ * @param {String} [config.align] can be left, center, or right
+ * @param {String} [config.verticalAlign] can be top, middle or bottom
+ * @param {Number} [config.padding]
+ * @param {Number} [config.lineHeight] default is 1
+ * @param {String} [config.wrap] can be "word", "char", or "none". Default is word
+ * @param {Boolean} [config.ellipsis] can be true or false. Default is false. if Konva.Text config is set to wrap="none" and ellipsis=true, then it will add "..." to the end
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var text = new Konva.Text({
+ * x: 10,
+ * y: 15,
+ * text: 'Simple Text',
+ * fontSize: 30,
+ * fontFamily: 'Calibri',
+ * fill: 'green'
+ * });
+ */
+ var Text = /** @class */ (function (_super) {
+ __extends(Text, _super);
+ function Text(config) {
+ var _this = _super.call(this, checkDefaultFill(config)) || this;
+ _this._partialTextX = 0;
+ _this._partialTextY = 0;
+ // update text data for certain attr changes
+ for (var n = 0; n < attrChangeListLen$1; n++) {
+ _this.on(ATTR_CHANGE_LIST$1[n] + CHANGE_KONVA$1, _this._setTextData);
+ }
+ _this._setTextData();
+ return _this;
+ }
+ Text.prototype._sceneFunc = function (context) {
+ var padding = this.padding(), fontSize = this.fontSize(), lineHeightPx = this.lineHeight() * fontSize, textArr = this.textArr, textArrLen = textArr.length, verticalAlign = this.verticalAlign(), alignY = 0, align = this.align(), totalWidth = this.getWidth(), letterSpacing = this.letterSpacing(), fill = this.fill(), textDecoration = this.textDecoration(), shouldUnderline = textDecoration.indexOf('underline') !== -1, shouldLineThrough = textDecoration.indexOf('line-through') !== -1, n;
+ var translateY = 0;
+ var translateY = lineHeightPx / 2;
+ var lineTranslateX = 0;
+ var lineTranslateY = 0;
+ context.setAttr('font', this._getContextFont());
+ context.setAttr('textBaseline', MIDDLE);
+ context.setAttr('textAlign', LEFT$1);
+ // handle vertical alignment
+ if (verticalAlign === MIDDLE) {
+ alignY = (this.getHeight() - textArrLen * lineHeightPx - padding * 2) / 2;
+ }
+ else if (verticalAlign === BOTTOM) {
+ alignY = this.getHeight() - textArrLen * lineHeightPx - padding * 2;
+ }
+ context.translate(padding, alignY + padding);
+ // draw text lines
+ for (n = 0; n < textArrLen; n++) {
+ var lineTranslateX = 0;
+ var lineTranslateY = 0;
+ var obj = textArr[n], text = obj.text, width = obj.width, lastLine = n !== textArrLen - 1, spacesNumber, oneWord, lineWidth;
+ // horizontal alignment
+ context.save();
+ if (align === RIGHT$1) {
+ lineTranslateX += totalWidth - width - padding * 2;
+ }
+ else if (align === CENTER) {
+ lineTranslateX += (totalWidth - width - padding * 2) / 2;
+ }
+ if (shouldUnderline) {
+ context.save();
+ context.beginPath();
+ context.moveTo(lineTranslateX, translateY + lineTranslateY + Math.round(fontSize / 2));
+ spacesNumber = text.split(' ').length - 1;
+ oneWord = spacesNumber === 0;
+ lineWidth =
+ align === JUSTIFY && lastLine && !oneWord
+ ? totalWidth - padding * 2
+ : width;
+ context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY + Math.round(fontSize / 2));
+ // I have no idea what is real ratio
+ // just /15 looks good enough
+ context.lineWidth = fontSize / 15;
+ context.strokeStyle = fill;
+ context.stroke();
+ context.restore();
+ }
+ if (shouldLineThrough) {
+ context.save();
+ context.beginPath();
+ context.moveTo(lineTranslateX, translateY + lineTranslateY);
+ spacesNumber = text.split(' ').length - 1;
+ oneWord = spacesNumber === 0;
+ lineWidth =
+ align === JUSTIFY && lastLine && !oneWord
+ ? totalWidth - padding * 2
+ : width;
+ context.lineTo(lineTranslateX + Math.round(lineWidth), translateY + lineTranslateY);
+ context.lineWidth = fontSize / 15;
+ context.strokeStyle = fill;
+ context.stroke();
+ context.restore();
+ }
+ if (letterSpacing !== 0 || align === JUSTIFY) {
+ // var words = text.split(' ');
+ spacesNumber = text.split(' ').length - 1;
+ for (var li = 0; li < text.length; li++) {
+ var letter = text[li];
+ // skip justify for the last line
+ if (letter === ' ' && n !== textArrLen - 1 && align === JUSTIFY) {
+ lineTranslateX += (totalWidth - padding * 2 - width) / spacesNumber;
+ // context.translate(
+ // Math.floor((totalWidth - padding * 2 - width) / spacesNumber),
+ // 0
+ // );
+ }
+ this._partialTextX = lineTranslateX;
+ this._partialTextY = translateY + lineTranslateY;
+ this._partialText = letter;
+ context.fillStrokeShape(this);
+ lineTranslateX += this.measureSize(letter).width + letterSpacing;
+ }
+ }
+ else {
+ this._partialTextX = lineTranslateX;
+ this._partialTextY = translateY + lineTranslateY;
+ this._partialText = text;
+ context.fillStrokeShape(this);
+ }
+ context.restore();
+ if (textArrLen > 1) {
+ translateY += lineHeightPx;
+ }
+ }
+ };
+ Text.prototype._hitFunc = function (context) {
+ var width = this.getWidth(), height = this.getHeight();
+ context.beginPath();
+ context.rect(0, 0, width, height);
+ context.closePath();
+ context.fillStrokeShape(this);
+ };
+ Text.prototype.setText = function (text) {
+ var str = Util._isString(text)
+ ? text
+ : text === null || text === undefined
+ ? ''
+ : text + '';
+ this._setAttr(TEXT, str);
+ return this;
+ };
+ Text.prototype.getWidth = function () {
+ var isAuto = this.attrs.width === AUTO || this.attrs.width === undefined;
+ return isAuto ? this.getTextWidth() + this.padding() * 2 : this.attrs.width;
+ };
+ Text.prototype.getHeight = function () {
+ var isAuto = this.attrs.height === AUTO || this.attrs.height === undefined;
+ return isAuto
+ ? this.fontSize() * this.textArr.length * this.lineHeight() +
+ this.padding() * 2
+ : this.attrs.height;
+ };
+ /**
+ * get pure text width without padding
+ * @method
+ * @name Konva.Text#getTextWidth
+ * @returns {Number}
+ */
+ Text.prototype.getTextWidth = function () {
+ return this.textWidth;
+ };
+ Text.prototype.getTextHeight = function () {
+ Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');
+ return this.textHeight;
+ };
+ /**
+ * measure string with the font of current text shape.
+ * That method can't handle multiline text.
+ * @method
+ * @name Konva.Text#measureSize
+ * @param {String} [text] text to measure
+ * @returns {Object} { width , height} of measured text
+ */
+ Text.prototype.measureSize = function (text) {
+ var _context = getDummyContext$1(), fontSize = this.fontSize(), metrics;
+ _context.save();
+ _context.font = this._getContextFont();
+ metrics = _context.measureText(text);
+ _context.restore();
+ return {
+ width: metrics.width,
+ height: fontSize,
+ };
+ };
+ Text.prototype._getContextFont = function () {
+ // IE don't want to work with usual font style
+ // bold was not working
+ // removing font variant will solve
+ // fix for: https://github.com/konvajs/konva/issues/94
+ if (Konva.UA.isIE) {
+ return (this.fontStyle() +
+ SPACE$1 +
+ this.fontSize() +
+ PX_SPACE +
+ this.fontFamily());
+ }
+ return (this.fontStyle() +
+ SPACE$1 +
+ this.fontVariant() +
+ SPACE$1 +
+ (this.fontSize() + PX_SPACE) +
+ // wrap font family into " so font families with spaces works ok
+ normalizeFontFamily(this.fontFamily()));
+ };
+ Text.prototype._addTextLine = function (line) {
+ if (this.align() === JUSTIFY) {
+ line = line.trim();
+ }
+ var width = this._getTextWidth(line);
+ return this.textArr.push({ text: line, width: width });
+ };
+ Text.prototype._getTextWidth = function (text) {
+ var letterSpacing = this.letterSpacing();
+ var length = text.length;
+ return (getDummyContext$1().measureText(text).width +
+ (length ? letterSpacing * (length - 1) : 0));
+ };
+ Text.prototype._setTextData = function () {
+ var lines = this.text().split('\n'), fontSize = +this.fontSize(), textWidth = 0, lineHeightPx = this.lineHeight() * fontSize, width = this.attrs.width, height = this.attrs.height, fixedWidth = width !== AUTO && width !== undefined, fixedHeight = height !== AUTO && height !== undefined, padding = this.padding(), maxWidth = width - padding * 2, maxHeightPx = height - padding * 2, currentHeightPx = 0, wrap = this.wrap(),
+ // align = this.align(),
+ shouldWrap = wrap !== NONE$1, wrapAtWord = wrap !== CHAR && shouldWrap, shouldAddEllipsis = this.ellipsis() && !shouldWrap;
+ this.textArr = [];
+ getDummyContext$1().font = this._getContextFont();
+ var additionalWidth = shouldAddEllipsis ? this._getTextWidth(ELLIPSIS) : 0;
+ for (var i = 0, max = lines.length; i < max; ++i) {
+ var line = lines[i];
+ var lineWidth = this._getTextWidth(line);
+ if (fixedWidth && lineWidth > maxWidth) {
+ /*
+ * if width is fixed and line does not fit entirely
+ * break the line into multiple fitting lines
+ */
+ while (line.length > 0) {
+ /*
+ * use binary search to find the longest substring that
+ * that would fit in the specified width
+ */
+ var low = 0, high = line.length, match = '', matchWidth = 0;
+ while (low < high) {
+ var mid = (low + high) >>> 1, substr = line.slice(0, mid + 1), substrWidth = this._getTextWidth(substr) + additionalWidth;
+ if (substrWidth <= maxWidth) {
+ low = mid + 1;
+ match = substr + (shouldAddEllipsis ? ELLIPSIS : '');
+ matchWidth = substrWidth;
+ }
+ else {
+ high = mid;
+ }
+ }
+ /*
+ * 'low' is now the index of the substring end
+ * 'match' is the substring
+ * 'matchWidth' is the substring width in px
+ */
+ if (match) {
+ // a fitting substring was found
+ if (wrapAtWord) {
+ // try to find a space or dash where wrapping could be done
+ var wrapIndex;
+ var nextChar = line[match.length];
+ var nextIsSpaceOrDash = nextChar === SPACE$1 || nextChar === DASH;
+ if (nextIsSpaceOrDash && matchWidth <= maxWidth) {
+ wrapIndex = match.length;
+ }
+ else {
+ wrapIndex =
+ Math.max(match.lastIndexOf(SPACE$1), match.lastIndexOf(DASH)) +
+ 1;
+ }
+ if (wrapIndex > 0) {
+ // re-cut the substring found at the space/dash position
+ low = wrapIndex;
+ match = match.slice(0, low);
+ matchWidth = this._getTextWidth(match);
+ }
+ }
+ // if (align === 'right') {
+ match = match.trimRight();
+ // }
+ this._addTextLine(match);
+ textWidth = Math.max(textWidth, matchWidth);
+ currentHeightPx += lineHeightPx;
+ if (!shouldWrap ||
+ (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx)) {
+ /*
+ * stop wrapping if wrapping is disabled or if adding
+ * one more line would overflow the fixed height
+ */
+ break;
+ }
+ line = line.slice(low);
+ line = line.trimLeft();
+ if (line.length > 0) {
+ // Check if the remaining text would fit on one line
+ lineWidth = this._getTextWidth(line);
+ if (lineWidth <= maxWidth) {
+ // if it does, add the line and break out of the loop
+ this._addTextLine(line);
+ currentHeightPx += lineHeightPx;
+ textWidth = Math.max(textWidth, lineWidth);
+ break;
+ }
+ }
+ }
+ else {
+ // not even one character could fit in the element, abort
+ break;
+ }
+ }
+ }
+ else {
+ // element width is automatically adjusted to max line width
+ this._addTextLine(line);
+ currentHeightPx += lineHeightPx;
+ textWidth = Math.max(textWidth, lineWidth);
+ }
+ // if element height is fixed, abort if adding one more line would overflow
+ if (fixedHeight && currentHeightPx + lineHeightPx > maxHeightPx) {
+ break;
+ }
+ }
+ this.textHeight = fontSize;
+ // var maxTextWidth = 0;
+ // for(var j = 0; j < this.textArr.length; j++) {
+ // maxTextWidth = Math.max(maxTextWidth, this.textArr[j].width);
+ // }
+ this.textWidth = textWidth;
+ };
+ // for text we can't disable stroke scaling
+ // if we do, the result will be unexpected
+ Text.prototype.getStrokeScaleEnabled = function () {
+ return true;
+ };
+ return Text;
+ }(Shape));
+ Text.prototype._fillFunc = _fillFunc$1;
+ Text.prototype._strokeFunc = _strokeFunc$1;
+ Text.prototype.className = TEXT_UPPER;
+ Text.prototype._attrsAffectingSize = [
+ 'text',
+ 'fontSize',
+ 'padding',
+ 'wrap',
+ 'lineHeight',
+ ];
+ _registerNode(Text);
+ /**
+ * get/set width of text area, which includes padding.
+ * @name Konva.Text#width
+ * @method
+ * @param {Number} width
+ * @returns {Number}
+ * @example
+ * // get width
+ * var width = text.width();
+ *
+ * // set width
+ * text.width(20);
+ *
+ * // set to auto
+ * text.width('auto');
+ * text.width() // will return calculated width, and not "auto"
+ */
+ Factory.overWriteSetter(Text, 'width', getNumberOrAutoValidator());
+ /**
+ * get/set the height of the text area, which takes into account multi-line text, line heights, and padding.
+ * @name Konva.Text#height
+ * @method
+ * @param {Number} height
+ * @returns {Number}
+ * @example
+ * // get height
+ * var height = text.height();
+ *
+ * // set height
+ * text.height(20);
+ *
+ * // set to auto
+ * text.height('auto');
+ * text.height() // will return calculated height, and not "auto"
+ */
+ Factory.overWriteSetter(Text, 'height', getNumberOrAutoValidator());
+ /**
+ * get/set font family
+ * @name Konva.Text#fontFamily
+ * @method
+ * @param {String} fontFamily
+ * @returns {String}
+ * @example
+ * // get font family
+ * var fontFamily = text.fontFamily();
+ *
+ * // set font family
+ * text.fontFamily('Arial');
+ */
+ Factory.addGetterSetter(Text, 'fontFamily', 'Arial');
+ /**
+ * get/set font size in pixels
+ * @name Konva.Text#fontSize
+ * @method
+ * @param {Number} fontSize
+ * @returns {Number}
+ * @example
+ * // get font size
+ * var fontSize = text.fontSize();
+ *
+ * // set font size to 22px
+ * text.fontSize(22);
+ */
+ Factory.addGetterSetter(Text, 'fontSize', 12, getNumberValidator());
+ /**
+ * get/set font style. Can be 'normal', 'italic', or 'bold'. 'normal' is the default.
+ * @name Konva.Text#fontStyle
+ * @method
+ * @param {String} fontStyle
+ * @returns {String}
+ * @example
+ * // get font style
+ * var fontStyle = text.fontStyle();
+ *
+ * // set font style
+ * text.fontStyle('bold');
+ */
+ Factory.addGetterSetter(Text, 'fontStyle', NORMAL);
+ /**
+ * get/set font variant. Can be 'normal' or 'small-caps'. 'normal' is the default.
+ * @name Konva.Text#fontVariant
+ * @method
+ * @param {String} fontVariant
+ * @returns {String}
+ * @example
+ * // get font variant
+ * var fontVariant = text.fontVariant();
+ *
+ * // set font variant
+ * text.fontVariant('small-caps');
+ */
+ Factory.addGetterSetter(Text, 'fontVariant', NORMAL);
+ /**
+ * get/set padding
+ * @name Konva.Text#padding
+ * @method
+ * @param {Number} padding
+ * @returns {Number}
+ * @example
+ * // get padding
+ * var padding = text.padding();
+ *
+ * // set padding to 10 pixels
+ * text.padding(10);
+ */
+ Factory.addGetterSetter(Text, 'padding', 0, getNumberValidator());
+ /**
+ * get/set horizontal align of text. Can be 'left', 'center', 'right' or 'justify'
+ * @name Konva.Text#align
+ * @method
+ * @param {String} align
+ * @returns {String}
+ * @example
+ * // get text align
+ * var align = text.align();
+ *
+ * // center text
+ * text.align('center');
+ *
+ * // align text to right
+ * text.align('right');
+ */
+ Factory.addGetterSetter(Text, 'align', LEFT$1);
+ /**
+ * get/set vertical align of text. Can be 'top', 'middle', 'bottom'.
+ * @name Konva.Text#verticalAlign
+ * @method
+ * @param {String} verticalAlign
+ * @returns {String}
+ * @example
+ * // get text vertical align
+ * var verticalAlign = text.verticalAlign();
+ *
+ * // center text
+ * text.verticalAlign('middle');
+ */
+ Factory.addGetterSetter(Text, 'verticalAlign', TOP);
+ /**
+ * get/set line height. The default is 1.
+ * @name Konva.Text#lineHeight
+ * @method
+ * @param {Number} lineHeight
+ * @returns {Number}
+ * @example
+ * // get line height
+ * var lineHeight = text.lineHeight();
+ *
+ * // set the line height
+ * text.lineHeight(2);
+ */
+ Factory.addGetterSetter(Text, 'lineHeight', 1, getNumberValidator());
+ /**
+ * get/set wrap. Can be "word", "char", or "none". Default is "word".
+ * In "word" wrapping any word still can be wrapped if it can't be placed in the required width
+ * without breaks.
+ * @name Konva.Text#wrap
+ * @method
+ * @param {String} wrap
+ * @returns {String}
+ * @example
+ * // get wrap
+ * var wrap = text.wrap();
+ *
+ * // set wrap
+ * text.wrap('word');
+ */
+ Factory.addGetterSetter(Text, 'wrap', WORD);
+ /**
+ * get/set ellipsis. Can be true or false. Default is false.
+ * if Konva.Text config is set to wrap="none" and ellipsis=true, then it will add "..." to the end
+ * @name Konva.Text#ellipsis
+ * @method
+ * @param {Boolean} ellipsis
+ * @returns {Boolean}
+ * @example
+ * // get ellipsis
+ * var ellipsis = text.ellipsis();
+ *
+ * // set ellipsis
+ * text.ellipsis(true);
+ */
+ Factory.addGetterSetter(Text, 'ellipsis', false);
+ /**
+ * set letter spacing property. Default value is 0.
+ * @name Konva.Text#letterSpacing
+ * @method
+ * @param {Number} letterSpacing
+ */
+ Factory.addGetterSetter(Text, 'letterSpacing', 0, getNumberValidator());
+ /**
+ * get/set text
+ * @name Konva.Text#text
+ * @method
+ * @param {String} text
+ * @returns {String}
+ * @example
+ * // get text
+ * var text = text.text();
+ *
+ * // set text
+ * text.text('Hello world!');
+ */
+ Factory.addGetterSetter(Text, 'text', '', getStringValidator());
+ /**
+ * get/set text decoration of a text. Possible values are 'underline', 'line-through' or combination of these values separated by space
+ * @name Konva.Text#textDecoration
+ * @method
+ * @param {String} textDecoration
+ * @returns {String}
+ * @example
+ * // get text decoration
+ * var textDecoration = text.textDecoration();
+ *
+ * // underline text
+ * text.textDecoration('underline');
+ *
+ * // strike text
+ * text.textDecoration('line-through');
+ *
+ * // underline and strike text
+ * text.textDecoration('underline line-through');
+ */
+ Factory.addGetterSetter(Text, 'textDecoration', '');
+ Collection.mapMethods(Text);
+
+ var EMPTY_STRING$2 = '', NORMAL$1 = 'normal';
+ function _fillFunc$2(context) {
+ context.fillText(this.partialText, 0, 0);
+ }
+ function _strokeFunc$2(context) {
+ context.strokeText(this.partialText, 0, 0);
+ }
+ /**
+ * Path constructor.
+ * @author Jason Follas
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {String} [config.fontFamily] default is Calibri
+ * @param {Number} [config.fontSize] default is 12
+ * @param {String} [config.fontStyle] can be normal, bold, or italic. Default is normal
+ * @param {String} [config.fontVariant] can be normal or small-caps. Default is normal
+ * @param {String} [config.textBaseline] Can be 'top', 'bottom', 'middle', 'alphabetic', 'hanging'. Default is middle
+ * @param {String} config.text
+ * @param {String} config.data SVG data string
+ * @param {Function} config.getKerning a getter for kerning values for the specified characters
+ * @param {Function} config.kerningFunc a getter for kerning values for the specified characters
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * var kerningPairs = {
+ * 'A': {
+ * ' ': -0.05517578125,
+ * 'T': -0.07421875,
+ * 'V': -0.07421875
+ * }
+ * 'V': {
+ * ',': -0.091796875,
+ * ":": -0.037109375,
+ * ";": -0.037109375,
+ * "A": -0.07421875
+ * }
+ * }
+ * var textpath = new Konva.TextPath({
+ * x: 100,
+ * y: 50,
+ * fill: '#333',
+ * fontSize: '24',
+ * fontFamily: 'Arial',
+ * text: 'All the world\'s a stage, and all the men and women merely players.',
+ * data: 'M10,10 C0,0 10,150 100,100 S300,150 400,50',
+ * kerningFunc(leftChar, rightChar) {
+ * return kerningPairs.hasOwnProperty(leftChar) ? pairs[leftChar][rightChar] || 0 : 0
+ * }
+ * });
+ */
+ var TextPath = /** @class */ (function (_super) {
+ __extends(TextPath, _super);
+ function TextPath(config) {
+ var _this =
+ // call super constructor
+ _super.call(this, config) || this;
+ _this.dummyCanvas = Util.createCanvasElement();
+ _this.dataArray = [];
+ _this.dataArray = Path.parsePathData(_this.attrs.data);
+ _this.on('dataChange.konva', function () {
+ this.dataArray = Path.parsePathData(this.attrs.data);
+ this._setTextData();
+ });
+ // update text data for certain attr changes
+ _this.on('textChange.konva alignChange.konva letterSpacingChange.konva kerningFuncChange.konva', _this._setTextData);
+ if (config && config['getKerning']) {
+ Util.warn('getKerning TextPath API is deprecated. Please use "kerningFunc" instead.');
+ _this.kerningFunc(config['getKerning']);
+ }
+ _this._setTextData();
+ return _this;
+ }
+ TextPath.prototype._sceneFunc = function (context) {
+ context.setAttr('font', this._getContextFont());
+ context.setAttr('textBaseline', this.textBaseline());
+ context.setAttr('textAlign', 'left');
+ context.save();
+ var textDecoration = this.textDecoration();
+ var fill = this.fill();
+ var fontSize = this.fontSize();
+ var glyphInfo = this.glyphInfo;
+ if (textDecoration === 'underline') {
+ context.beginPath();
+ }
+ for (var i = 0; i < glyphInfo.length; i++) {
+ context.save();
+ var p0 = glyphInfo[i].p0;
+ context.translate(p0.x, p0.y);
+ context.rotate(glyphInfo[i].rotation);
+ this.partialText = glyphInfo[i].text;
+ context.fillStrokeShape(this);
+ if (textDecoration === 'underline') {
+ if (i === 0) {
+ context.moveTo(0, fontSize / 2 + 1);
+ }
+ context.lineTo(fontSize, fontSize / 2 + 1);
+ }
+ context.restore();
+ //// To assist with debugging visually, uncomment following
+ //
+ // if (i % 2) context.strokeStyle = 'cyan';
+ // else context.strokeStyle = 'green';
+ // var p1 = glyphInfo[i].p1;
+ // context.moveTo(p0.x, p0.y);
+ // context.lineTo(p1.x, p1.y);
+ // context.stroke();
+ }
+ if (textDecoration === 'underline') {
+ context.strokeStyle = fill;
+ context.lineWidth = fontSize / 20;
+ context.stroke();
+ }
+ context.restore();
+ };
+ TextPath.prototype._hitFunc = function (context) {
+ context.beginPath();
+ var glyphInfo = this.glyphInfo;
+ if (glyphInfo.length >= 1) {
+ var p0 = glyphInfo[0].p0;
+ context.moveTo(p0.x, p0.y);
+ }
+ for (var i = 0; i < glyphInfo.length; i++) {
+ var p1 = glyphInfo[i].p1;
+ context.lineTo(p1.x, p1.y);
+ }
+ context.setAttr('lineWidth', this.fontSize());
+ context.setAttr('strokeStyle', this.colorKey);
+ context.stroke();
+ };
+ /**
+ * get text width in pixels
+ * @method
+ * @name Konva.TextPath#getTextWidth
+ */
+ TextPath.prototype.getTextWidth = function () {
+ return this.textWidth;
+ };
+ TextPath.prototype.getTextHeight = function () {
+ Util.warn('text.getTextHeight() method is deprecated. Use text.height() - for full height and text.fontSize() - for one line height.');
+ return this.textHeight;
+ };
+ TextPath.prototype.setText = function (text) {
+ return Text.prototype.setText.call(this, text);
+ };
+ TextPath.prototype._getContextFont = function () {
+ return Text.prototype._getContextFont.call(this);
+ };
+ TextPath.prototype._getTextSize = function (text) {
+ var dummyCanvas = this.dummyCanvas;
+ var _context = dummyCanvas.getContext('2d');
+ _context.save();
+ _context.font = this._getContextFont();
+ var metrics = _context.measureText(text);
+ _context.restore();
+ return {
+ width: metrics.width,
+ height: parseInt(this.attrs.fontSize, 10)
+ };
+ };
+ TextPath.prototype._setTextData = function () {
+ var that = this;
+ var size = this._getTextSize(this.attrs.text);
+ var letterSpacing = this.letterSpacing();
+ var align = this.align();
+ var kerningFunc = this.kerningFunc();
+ this.textWidth = size.width;
+ this.textHeight = size.height;
+ var textFullWidth = Math.max(this.textWidth + ((this.attrs.text || '').length - 1) * letterSpacing, 0);
+ this.glyphInfo = [];
+ var fullPathWidth = 0;
+ for (var l = 0; l < that.dataArray.length; l++) {
+ if (that.dataArray[l].pathLength > 0) {
+ fullPathWidth += that.dataArray[l].pathLength;
+ }
+ }
+ var offset = 0;
+ if (align === 'center') {
+ offset = Math.max(0, fullPathWidth / 2 - textFullWidth / 2);
+ }
+ if (align === 'right') {
+ offset = Math.max(0, fullPathWidth - textFullWidth);
+ }
+ var charArr = this.text().split('');
+ var spacesNumber = this.text().split(' ').length - 1;
+ var p0, p1, pathCmd;
+ var pIndex = -1;
+ var currentT = 0;
+ // var sumLength = 0;
+ // for(var j = 0; j < that.dataArray.length; j++) {
+ // if(that.dataArray[j].pathLength > 0) {
+ //
+ // if (sumLength + that.dataArray[j].pathLength > offset) {}
+ // fullPathWidth += that.dataArray[j].pathLength;
+ // }
+ // }
+ var getNextPathSegment = function () {
+ currentT = 0;
+ var pathData = that.dataArray;
+ for (var j = pIndex + 1; j < pathData.length; j++) {
+ if (pathData[j].pathLength > 0) {
+ pIndex = j;
+ return pathData[j];
+ }
+ else if (pathData[j].command === 'M') {
+ p0 = {
+ x: pathData[j].points[0],
+ y: pathData[j].points[1]
+ };
+ }
+ }
+ return {};
+ };
+ var findSegmentToFitCharacter = function (c) {
+ var glyphWidth = that._getTextSize(c).width + letterSpacing;
+ if (c === ' ' && align === 'justify') {
+ glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;
+ }
+ var currLen = 0;
+ var attempts = 0;
+ p1 = undefined;
+ while (Math.abs(glyphWidth - currLen) / glyphWidth > 0.01 &&
+ attempts < 25) {
+ attempts++;
+ var cumulativePathLength = currLen;
+ while (pathCmd === undefined) {
+ pathCmd = getNextPathSegment();
+ if (pathCmd &&
+ cumulativePathLength + pathCmd.pathLength < glyphWidth) {
+ cumulativePathLength += pathCmd.pathLength;
+ pathCmd = undefined;
+ }
+ }
+ if (pathCmd === {} || p0 === undefined) {
+ return undefined;
+ }
+ var needNewSegment = false;
+ switch (pathCmd.command) {
+ case 'L':
+ if (Path.getLineLength(p0.x, p0.y, pathCmd.points[0], pathCmd.points[1]) > glyphWidth) {
+ p1 = Path.getPointOnLine(glyphWidth, p0.x, p0.y, pathCmd.points[0], pathCmd.points[1], p0.x, p0.y);
+ }
+ else {
+ pathCmd = undefined;
+ }
+ break;
+ case 'A':
+ var start = pathCmd.points[4];
+ // 4 = theta
+ var dTheta = pathCmd.points[5];
+ // 5 = dTheta
+ var end = pathCmd.points[4] + dTheta;
+ if (currentT === 0) {
+ currentT = start + 0.00000001;
+ }
+ else if (glyphWidth > currLen) {
+ // Just in case start is 0
+ currentT += ((Math.PI / 180.0) * dTheta) / Math.abs(dTheta);
+ }
+ else {
+ currentT -= ((Math.PI / 360.0) * dTheta) / Math.abs(dTheta);
+ }
+ // Credit for bug fix: @therth https://github.com/ericdrowell/KonvaJS/issues/249
+ // Old code failed to render text along arc of this path: "M 50 50 a 150 50 0 0 1 250 50 l 50 0"
+ if ((dTheta < 0 && currentT < end) ||
+ (dTheta >= 0 && currentT > end)) {
+ currentT = end;
+ needNewSegment = true;
+ }
+ p1 = Path.getPointOnEllipticalArc(pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3], currentT, pathCmd.points[6]);
+ break;
+ case 'C':
+ if (currentT === 0) {
+ if (glyphWidth > pathCmd.pathLength) {
+ currentT = 0.00000001;
+ }
+ else {
+ currentT = glyphWidth / pathCmd.pathLength;
+ }
+ }
+ else if (glyphWidth > currLen) {
+ currentT += (glyphWidth - currLen) / pathCmd.pathLength;
+ }
+ else {
+ currentT -= (currLen - glyphWidth) / pathCmd.pathLength;
+ }
+ if (currentT > 1.0) {
+ currentT = 1.0;
+ needNewSegment = true;
+ }
+ p1 = Path.getPointOnCubicBezier(currentT, pathCmd.start.x, pathCmd.start.y, pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3], pathCmd.points[4], pathCmd.points[5]);
+ break;
+ case 'Q':
+ if (currentT === 0) {
+ currentT = glyphWidth / pathCmd.pathLength;
+ }
+ else if (glyphWidth > currLen) {
+ currentT += (glyphWidth - currLen) / pathCmd.pathLength;
+ }
+ else {
+ currentT -= (currLen - glyphWidth) / pathCmd.pathLength;
+ }
+ if (currentT > 1.0) {
+ currentT = 1.0;
+ needNewSegment = true;
+ }
+ p1 = Path.getPointOnQuadraticBezier(currentT, pathCmd.start.x, pathCmd.start.y, pathCmd.points[0], pathCmd.points[1], pathCmd.points[2], pathCmd.points[3]);
+ break;
+ }
+ if (p1 !== undefined) {
+ currLen = Path.getLineLength(p0.x, p0.y, p1.x, p1.y);
+ }
+ if (needNewSegment) {
+ needNewSegment = false;
+ pathCmd = undefined;
+ }
+ }
+ };
+ // fake search for offset, this is the best approach
+ var testChar = 'C';
+ var glyphWidth = that._getTextSize(testChar).width + letterSpacing;
+ var lettersInOffset = offset / glyphWidth - 1;
+ // the idea is simple
+ // try to draw testChar until we fill offset
+ for (var k = 0; k < lettersInOffset; k++) {
+ findSegmentToFitCharacter(testChar);
+ if (p0 === undefined || p1 === undefined) {
+ break;
+ }
+ p0 = p1;
+ }
+ for (var i = 0; i < charArr.length; i++) {
+ // Find p1 such that line segment between p0 and p1 is approx. width of glyph
+ findSegmentToFitCharacter(charArr[i]);
+ if (p0 === undefined || p1 === undefined) {
+ break;
+ }
+ var width = Path.getLineLength(p0.x, p0.y, p1.x, p1.y);
+ var kern = 0;
+ if (kerningFunc) {
+ try {
+ // getKerning is a user provided getter. Make sure it never breaks our logic
+ kern = kerningFunc(charArr[i - 1], charArr[i]) * this.fontSize();
+ }
+ catch (e) {
+ kern = 0;
+ }
+ }
+ p0.x += kern;
+ p1.x += kern;
+ this.textWidth += kern;
+ var midpoint = Path.getPointOnLine(kern + width / 2.0, p0.x, p0.y, p1.x, p1.y);
+ var rotation = Math.atan2(p1.y - p0.y, p1.x - p0.x);
+ this.glyphInfo.push({
+ transposeX: midpoint.x,
+ transposeY: midpoint.y,
+ text: charArr[i],
+ rotation: rotation,
+ p0: p0,
+ p1: p1
+ });
+ p0 = p1;
+ }
+ };
+ TextPath.prototype.getSelfRect = function () {
+ if (!this.glyphInfo.length) {
+ return {
+ x: 0,
+ y: 0,
+ width: 0,
+ height: 0
+ };
+ }
+ var points = [];
+ this.glyphInfo.forEach(function (info) {
+ points.push(info.p0.x);
+ points.push(info.p0.y);
+ points.push(info.p1.x);
+ points.push(info.p1.y);
+ });
+ var minX = points[0] || 0;
+ var maxX = points[0] || 0;
+ var minY = points[1] || 0;
+ var maxY = points[1] || 0;
+ var x, y;
+ for (var i = 0; i < points.length / 2; i++) {
+ x = points[i * 2];
+ y = points[i * 2 + 1];
+ minX = Math.min(minX, x);
+ maxX = Math.max(maxX, x);
+ minY = Math.min(minY, y);
+ maxY = Math.max(maxY, y);
+ }
+ var fontSize = this.fontSize();
+ return {
+ x: minX - fontSize / 2,
+ y: minY - fontSize / 2,
+ width: maxX - minX + fontSize,
+ height: maxY - minY + fontSize
+ };
+ };
+ return TextPath;
+ }(Shape));
+ TextPath.prototype._fillFunc = _fillFunc$2;
+ TextPath.prototype._strokeFunc = _strokeFunc$2;
+ TextPath.prototype._fillFuncHit = _fillFunc$2;
+ TextPath.prototype._strokeFuncHit = _strokeFunc$2;
+ TextPath.prototype.className = 'TextPath';
+ TextPath.prototype._attrsAffectingSize = ['text', 'fontSize', 'data'];
+ _registerNode(TextPath);
+ /**
+ * get/set SVG path data string. This method
+ * also automatically parses the data string
+ * into a data array. Currently supported SVG data:
+ * M, m, L, l, H, h, V, v, Q, q, T, t, C, c, S, s, A, a, Z, z
+ * @name Konva.TextPath#data
+ * @method
+ * @param {String} data svg path string
+ * @returns {String}
+ * @example
+ * // get data
+ * var data = shape.data();
+ *
+ * // set data
+ * shape.data('M200,100h100v50z');
+ */
+ Factory.addGetterSetter(TextPath, 'data');
+ /**
+ * get/set font family
+ * @name Konva.TextPath#fontFamily
+ * @method
+ * @param {String} fontFamily
+ * @returns {String}
+ * @example
+ * // get font family
+ * var fontFamily = shape.fontFamily();
+ *
+ * // set font family
+ * shape.fontFamily('Arial');
+ */
+ Factory.addGetterSetter(TextPath, 'fontFamily', 'Arial');
+ /**
+ * get/set font size in pixels
+ * @name Konva.TextPath#fontSize
+ * @method
+ * @param {Number} fontSize
+ * @returns {Number}
+ * @example
+ * // get font size
+ * var fontSize = shape.fontSize();
+ *
+ * // set font size to 22px
+ * shape.fontSize(22);
+ */
+ Factory.addGetterSetter(TextPath, 'fontSize', 12, getNumberValidator());
+ /**
+ * get/set font style. Can be 'normal', 'italic', or 'bold'. 'normal' is the default.
+ * @name Konva.TextPath#fontStyle
+ * @method
+ * @param {String} fontStyle
+ * @returns {String}
+ * @example
+ * // get font style
+ * var fontStyle = shape.fontStyle();
+ *
+ * // set font style
+ * shape.fontStyle('bold');
+ */
+ Factory.addGetterSetter(TextPath, 'fontStyle', NORMAL$1);
+ /**
+ * get/set horizontal align of text. Can be 'left', 'center', 'right' or 'justify'
+ * @name Konva.Text#align
+ * @method
+ * @param {String} align
+ * @returns {String}
+ * @example
+ * // get text align
+ * var align = text.align();
+ *
+ * // center text
+ * text.align('center');
+ *
+ * // align text to right
+ * text.align('right');
+ */
+ Factory.addGetterSetter(TextPath, 'align', 'left');
+ /**
+ * get/set letter spacing. The default is 0.
+ * @name Konva.TextPath#letterSpacing
+ * @method
+ * @param {Number} letterSpacing
+ * @returns {Number}
+ * @example
+ * // get line height
+ * var letterSpacing = shape.letterSpacing();
+ *
+ * // set the line height
+ * shape.letterSpacing(2);
+ */
+ Factory.addGetterSetter(TextPath, 'letterSpacing', 0, getNumberValidator());
+ /**
+ * get/set text baseline. The default is 'middle'. Can be 'top', 'bottom', 'middle', 'alphabetic', 'hanging'
+ * @name Konva.TextPath#textBaseline
+ * @method
+ * @param {String} textBaseline
+ * @returns {String}
+ * @example
+ * // get line height
+ * var textBaseline = shape.textBaseline();
+ *
+ * // set the line height
+ * shape.textBaseline('top');
+ */
+ Factory.addGetterSetter(TextPath, 'textBaseline', 'middle');
+ /**
+ * get/set font variant. Can be 'normal' or 'small-caps'. 'normal' is the default.
+ * @name Konva.TextPath#fontVariant
+ * @method
+ * @param {String} fontVariant
+ * @returns {String}
+ * @example
+ * // get font variant
+ * var fontVariant = shape.fontVariant();
+ *
+ * // set font variant
+ * shape.fontVariant('small-caps');
+ */
+ Factory.addGetterSetter(TextPath, 'fontVariant', NORMAL$1);
+ /**
+ * get/set text
+ * @name Konva.TextPath#getText
+ * @method
+ * @param {String} text
+ * @returns {String}
+ * @example
+ * // get text
+ * var text = text.text();
+ *
+ * // set text
+ * text.text('Hello world!');
+ */
+ Factory.addGetterSetter(TextPath, 'text', EMPTY_STRING$2);
+ /**
+ * get/set text decoration of a text. Can be '' or 'underline'.
+ * @name Konva.TextPath#textDecoration
+ * @method
+ * @param {String} textDecoration
+ * @returns {String}
+ * @example
+ * // get text decoration
+ * var textDecoration = shape.textDecoration();
+ *
+ * // underline text
+ * shape.textDecoration('underline');
+ */
+ Factory.addGetterSetter(TextPath, 'textDecoration', null);
+ /**
+ * get/set kerning function.
+ * @name Konva.TextPath#kerningFunc
+ * @method
+ * @param {String} kerningFunc
+ * @returns {String}
+ * @example
+ * // get text decoration
+ * var kerningFunc = text.kerningFunc();
+ *
+ * // center text
+ * text.kerningFunc(function(leftChar, rightChar) {
+ * return 1;
+ * });
+ */
+ Factory.addGetterSetter(TextPath, 'kerningFunc', null);
+ Collection.mapMethods(TextPath);
+
+ var EVENTS_NAME = 'tr-konva';
+ var ATTR_CHANGE_LIST$2 = [
+ 'resizeEnabledChange',
+ 'rotateAnchorOffsetChange',
+ 'rotateEnabledChange',
+ 'enabledAnchorsChange',
+ 'anchorSizeChange',
+ 'borderEnabledChange',
+ 'borderStrokeChange',
+ 'borderStrokeWidthChange',
+ 'borderDashChange',
+ 'anchorStrokeChange',
+ 'anchorStrokeWidthChange',
+ 'anchorFillChange',
+ 'anchorCornerRadiusChange',
+ 'ignoreStrokeChange',
+ ]
+ .map(function (e) { return e + ("." + EVENTS_NAME); })
+ .join(' ');
+ var NODES_RECT = 'nodesRect';
+ var TRANSFORM_CHANGE_STR$1 = [
+ 'widthChange',
+ 'heightChange',
+ 'scaleXChange',
+ 'scaleYChange',
+ 'skewXChange',
+ 'skewYChange',
+ 'rotationChange',
+ 'offsetXChange',
+ 'offsetYChange',
+ 'transformsEnabledChange',
+ 'strokeWidthChange',
+ ]
+ .map(function (e) { return e + ("." + EVENTS_NAME); })
+ .join(' ');
+ var ANGLES = {
+ 'top-left': -45,
+ 'top-center': 0,
+ 'top-right': 45,
+ 'middle-right': -90,
+ 'middle-left': 90,
+ 'bottom-left': -135,
+ 'bottom-center': 180,
+ 'bottom-right': 135,
+ };
+ var TOUCH_DEVICE = 'ontouchstart' in Konva._global;
+ function getCursor(anchorName, rad) {
+ if (anchorName === 'rotater') {
+ return 'crosshair';
+ }
+ rad += Util._degToRad(ANGLES[anchorName] || 0);
+ var angle = ((Util._radToDeg(rad) % 360) + 360) % 360;
+ if (Util._inRange(angle, 315 + 22.5, 360) || Util._inRange(angle, 0, 22.5)) {
+ // TOP
+ return 'ns-resize';
+ }
+ else if (Util._inRange(angle, 45 - 22.5, 45 + 22.5)) {
+ // TOP - RIGHT
+ return 'nesw-resize';
+ }
+ else if (Util._inRange(angle, 90 - 22.5, 90 + 22.5)) {
+ // RIGHT
+ return 'ew-resize';
+ }
+ else if (Util._inRange(angle, 135 - 22.5, 135 + 22.5)) {
+ // BOTTOM - RIGHT
+ return 'nwse-resize';
+ }
+ else if (Util._inRange(angle, 180 - 22.5, 180 + 22.5)) {
+ // BOTTOM
+ return 'ns-resize';
+ }
+ else if (Util._inRange(angle, 225 - 22.5, 225 + 22.5)) {
+ // BOTTOM - LEFT
+ return 'nesw-resize';
+ }
+ else if (Util._inRange(angle, 270 - 22.5, 270 + 22.5)) {
+ // RIGHT
+ return 'ew-resize';
+ }
+ else if (Util._inRange(angle, 315 - 22.5, 315 + 22.5)) {
+ // BOTTOM - RIGHT
+ return 'nwse-resize';
+ }
+ else {
+ // how can we can there?
+ Util.error('Transformer has unknown angle for cursor detection: ' + angle);
+ return 'pointer';
+ }
+ }
+ var ANCHORS_NAMES = [
+ 'top-left',
+ 'top-center',
+ 'top-right',
+ 'middle-right',
+ 'middle-left',
+ 'bottom-left',
+ 'bottom-center',
+ 'bottom-right',
+ ];
+ var MAX_SAFE_INTEGER = 100000000;
+ function getCenter(shape) {
+ return {
+ x: shape.x +
+ (shape.width / 2) * Math.cos(shape.rotation) +
+ (shape.height / 2) * Math.sin(-shape.rotation),
+ y: shape.y +
+ (shape.height / 2) * Math.cos(shape.rotation) +
+ (shape.width / 2) * Math.sin(shape.rotation),
+ };
+ }
+ function rotateAroundPoint(shape, angleRad, point) {
+ var x = point.x +
+ (shape.x - point.x) * Math.cos(angleRad) -
+ (shape.y - point.y) * Math.sin(angleRad);
+ var y = point.y +
+ (shape.x - point.x) * Math.sin(angleRad) +
+ (shape.y - point.y) * Math.cos(angleRad);
+ return __assign(__assign({}, shape), { rotation: shape.rotation + angleRad, x: x,
+ y: y });
+ }
+ function rotateAroundCenter(shape, deltaRad) {
+ var center = getCenter(shape);
+ return rotateAroundPoint(shape, deltaRad, center);
+ }
+ function getSnap(snaps, newRotationRad, tol) {
+ var snapped = newRotationRad;
+ for (var i = 0; i < snaps.length; i++) {
+ var angle = Konva.getAngle(snaps[i]);
+ var absDiff = Math.abs(angle - newRotationRad) % (Math.PI * 2);
+ var dif = Math.min(absDiff, Math.PI * 2 - absDiff);
+ if (dif < tol) {
+ snapped = angle;
+ }
+ }
+ return snapped;
+ }
+ /**
+ * Transformer constructor. Transformer is a special type of group that allow you transform Konva
+ * primitives and shapes. Transforming tool is not changing `width` and `height` properties of nodes
+ * when you resize them. Instead it changes `scaleX` and `scaleY` properties.
+ * @constructor
+ * @memberof Konva
+ * @param {Object} config
+ * @param {Boolean} [config.resizeEnabled] Default is true
+ * @param {Boolean} [config.rotateEnabled] Default is true
+ * @param {Array} [config.rotationSnaps] Array of angles for rotation snaps. Default is []
+ * @param {Number} [config.rotationSnapTolerance] Snapping tolerance. If closer than this it will snap. Default is 5
+ * @param {Number} [config.rotateAnchorOffset] Default is 50
+ * @param {Number} [config.padding] Default is 0
+ * @param {Boolean} [config.borderEnabled] Should we draw border? Default is true
+ * @param {String} [config.borderStroke] Border stroke color
+ * @param {Number} [config.borderStrokeWidth] Border stroke size
+ * @param {Array} [config.borderDash] Array for border dash.
+ * @param {String} [config.anchorFill] Anchor fill color
+ * @param {String} [config.anchorStroke] Anchor stroke color
+ * @param {String} [config.anchorCornerRadius] Anchor corner radius
+ * @param {Number} [config.anchorStrokeWidth] Anchor stroke size
+ * @param {Number} [config.anchorSize] Default is 10
+ * @param {Boolean} [config.keepRatio] Should we keep ratio when we are moving edges? Default is true
+ * @param {Boolean} [config.centeredScaling] Should we resize relative to node's center? Default is false
+ * @param {Array} [config.enabledAnchors] Array of names of enabled handles
+ * @param {Function} [config.boundBoxFunc] Bounding box function
+ * @param {Function} [config.ignoreStroke] Should we ignore stroke size? Default is false
+ *
+ * @example
+ * var transformer = new Konva.Transformer({
+ * nodes: [rectangle],
+ * rotateAnchorOffset: 60,
+ * enabledAnchors: ['top-left', 'top-right', 'bottom-left', 'bottom-right']
+ * });
+ * layer.add(transformer);
+ */
+ var Transformer = /** @class */ (function (_super) {
+ __extends(Transformer, _super);
+ function Transformer(config) {
+ var _this =
+ // call super constructor
+ _super.call(this, config) || this;
+ _this._transforming = false;
+ _this._createElements();
+ // bindings
+ _this._handleMouseMove = _this._handleMouseMove.bind(_this);
+ _this._handleMouseUp = _this._handleMouseUp.bind(_this);
+ _this.update = _this.update.bind(_this);
+ // update transformer data for certain attr changes
+ _this.on(ATTR_CHANGE_LIST$2, _this.update);
+ if (_this.getNode()) {
+ _this.update();
+ }
+ return _this;
+ }
+ /**
+ * alias to `tr.nodes([shape])`/ This method is deprecated and will be removed soon.
+ * @method
+ * @name Konva.Transformer#attachTo
+ * @returns {Konva.Transformer}
+ * @example
+ * transformer.attachTo(shape);
+ */
+ Transformer.prototype.attachTo = function (node) {
+ this.setNode(node);
+ return this;
+ };
+ Transformer.prototype.setNode = function (node) {
+ Util.warn('tr.setNode(shape), tr.node(shape) and tr.attachTo(shape) methods are deprecated. Please use tr.nodes(nodesArray) instead.');
+ return this.setNodes([node]);
+ };
+ Transformer.prototype.getNode = function () {
+ return this._nodes && this._nodes[0];
+ };
+ Transformer.prototype.setNodes = function (nodes) {
+ var _this = this;
+ if (nodes === void 0) { nodes = []; }
+ if (this._nodes && this._nodes.length) {
+ this.detach();
+ }
+ this._nodes = nodes;
+ if (nodes.length === 1) {
+ this.rotation(nodes[0].rotation());
+ }
+ else {
+ this.rotation(0);
+ }
+ this._nodes.forEach(function (node) {
+ var additionalEvents = node._attrsAffectingSize
+ .map(function (prop) { return prop + 'Change.' + EVENTS_NAME; })
+ .join(' ');
+ var onChange = function () {
+ _this._resetTransformCache();
+ if (!_this._transforming) {
+ _this.update();
+ }
+ };
+ node.on(additionalEvents, onChange);
+ node.on(TRANSFORM_CHANGE_STR$1, onChange);
+ node.on("_clearTransformCache." + EVENTS_NAME, onChange);
+ node.on("xChange." + EVENTS_NAME + " yChange." + EVENTS_NAME, onChange);
+ _this._proxyDrag(node);
+ });
+ this._resetTransformCache();
+ // we may need it if we set node in initial props
+ // so elements are not defined yet
+ var elementsCreated = !!this.findOne('.top-left');
+ if (elementsCreated) {
+ this.update();
+ }
+ return this;
+ };
+ Transformer.prototype._proxyDrag = function (node) {
+ var _this = this;
+ var lastPos;
+ node.on("dragstart." + EVENTS_NAME, function (e) {
+ lastPos = node.getAbsolutePosition();
+ // actual dragging of Transformer doesn't make sense
+ // but we need to proxy drag events
+ if (!_this.isDragging() && node !== _this.findOne('.back')) {
+ _this.startDrag();
+ }
+ });
+ node.on("dragmove." + EVENTS_NAME, function (e) {
+ if (!lastPos) {
+ return;
+ }
+ var abs = node.getAbsolutePosition();
+ var dx = abs.x - lastPos.x;
+ var dy = abs.y - lastPos.y;
+ _this.nodes().forEach(function (otherNode) {
+ if (otherNode === node) {
+ return;
+ }
+ if (otherNode.isDragging()) {
+ return;
+ }
+ var otherAbs = otherNode.getAbsolutePosition();
+ otherNode.setAbsolutePosition({
+ x: otherAbs.x + dx,
+ y: otherAbs.y + dy,
+ });
+ otherNode.startDrag();
+ });
+ lastPos = null;
+ });
+ };
+ Transformer.prototype.getNodes = function () {
+ return this._nodes;
+ };
+ /**
+ * return the name of current active anchor
+ * @method
+ * @name Konva.Transformer#getActiveAnchor
+ * @returns {String | Null}
+ * @example
+ * transformer.getActiveAnchor();
+ */
+ Transformer.prototype.getActiveAnchor = function () {
+ return this._movingAnchorName;
+ };
+ /**
+ * detach transformer from an attached node
+ * @method
+ * @name Konva.Transformer#detach
+ * @returns {Konva.Transformer}
+ * @example
+ * transformer.detach();
+ */
+ Transformer.prototype.detach = function () {
+ // remove events
+ if (this._nodes) {
+ this._nodes.forEach(function (node) {
+ node.off('.' + EVENTS_NAME);
+ });
+ }
+ this._nodes = [];
+ this._resetTransformCache();
+ };
+ Transformer.prototype._resetTransformCache = function () {
+ this._clearCache(NODES_RECT);
+ this._clearCache('transform');
+ this._clearSelfAndDescendantCache('absoluteTransform');
+ };
+ Transformer.prototype._getNodeRect = function () {
+ return this._getCache(NODES_RECT, this.__getNodeRect);
+ };
+ // return absolute rotated bounding rectangle
+ Transformer.prototype.__getNodeShape = function (node, rot, relative) {
+ if (rot === void 0) { rot = this.rotation(); }
+ var rect = node.getClientRect({
+ skipTransform: true,
+ skipShadow: true,
+ skipStroke: this.ignoreStroke(),
+ });
+ var absScale = node.getAbsoluteScale(relative);
+ var absPos = node.getAbsolutePosition(relative);
+ var dx = rect.x * absScale.x - node.offsetX() * absScale.x;
+ var dy = rect.y * absScale.y - node.offsetY() * absScale.y;
+ var rotation = (Konva.getAngle(node.getAbsoluteRotation()) + Math.PI * 2) %
+ (Math.PI * 2);
+ var box = {
+ x: absPos.x + dx * Math.cos(rotation) + dy * Math.sin(-rotation),
+ y: absPos.y + dy * Math.cos(rotation) + dx * Math.sin(rotation),
+ width: rect.width * absScale.x,
+ height: rect.height * absScale.y,
+ rotation: rotation,
+ };
+ return rotateAroundPoint(box, -Konva.getAngle(rot), {
+ x: 0,
+ y: 0,
+ });
+ };
+ // returns box + rotation of all shapes
+ Transformer.prototype.__getNodeRect = function () {
+ var _this = this;
+ var node = this.getNode();
+ if (!node) {
+ return {
+ x: -MAX_SAFE_INTEGER,
+ y: -MAX_SAFE_INTEGER,
+ width: 0,
+ height: 0,
+ rotation: 0,
+ };
+ }
+ var totalPoints = [];
+ this.nodes().map(function (node) {
+ var box = node.getClientRect({
+ skipTransform: true,
+ skipShadow: true,
+ skipStroke: _this.ignoreStroke(),
+ });
+ var points = [
+ { x: box.x, y: box.y },
+ { x: box.x + box.width, y: box.y },
+ { x: box.x + box.width, y: box.y + box.height },
+ { x: box.x, y: box.y + box.height },
+ ];
+ var trans = node.getAbsoluteTransform();
+ points.forEach(function (point) {
+ var transformed = trans.point(point);
+ totalPoints.push(transformed);
+ });
+ });
+ var tr = new Transform();
+ tr.rotate(-Konva.getAngle(this.rotation()));
+ var minX, minY, maxX, maxY;
+ totalPoints.forEach(function (point) {
+ var transformed = tr.point(point);
+ if (minX === undefined) {
+ minX = maxX = transformed.x;
+ minY = maxY = transformed.y;
+ }
+ minX = Math.min(minX, transformed.x);
+ minY = Math.min(minY, transformed.y);
+ maxX = Math.max(maxX, transformed.x);
+ maxY = Math.max(maxY, transformed.y);
+ });
+ tr.invert();
+ var p = tr.point({ x: minX, y: minY });
+ return {
+ x: p.x,
+ y: p.y,
+ width: maxX - minX,
+ height: maxY - minY,
+ rotation: Konva.getAngle(this.rotation()),
+ };
+ // const shapes = this.nodes().map(node => {
+ // return this.__getNodeShape(node);
+ // });
+ // const box = getShapesRect(shapes);
+ // return rotateAroundPoint(box, Konva.getAngle(this.rotation()), {
+ // x: 0,
+ // y: 0
+ // });
+ };
+ Transformer.prototype.getX = function () {
+ return this._getNodeRect().x;
+ };
+ Transformer.prototype.getY = function () {
+ return this._getNodeRect().y;
+ };
+ Transformer.prototype.getWidth = function () {
+ return this._getNodeRect().width;
+ };
+ Transformer.prototype.getHeight = function () {
+ return this._getNodeRect().height;
+ };
+ Transformer.prototype._createElements = function () {
+ this._createBack();
+ ANCHORS_NAMES.forEach(function (name) {
+ this._createAnchor(name);
+ }.bind(this));
+ this._createAnchor('rotater');
+ };
+ Transformer.prototype._createAnchor = function (name) {
+ var _this = this;
+ var anchor = new Rect({
+ stroke: 'rgb(0, 161, 255)',
+ fill: 'white',
+ strokeWidth: 1,
+ name: name + ' _anchor',
+ dragDistance: 0,
+ // make it draggable,
+ // so activating the anchror will not start drag&drop of any parent
+ draggable: true,
+ hitStrokeWidth: TOUCH_DEVICE ? 10 : 'auto',
+ });
+ var self = this;
+ anchor.on('mousedown touchstart', function (e) {
+ self._handleMouseDown(e);
+ });
+ anchor.on('dragstart', function (e) {
+ anchor.stopDrag();
+ e.cancelBubble = true;
+ });
+ anchor.on('dragend', function (e) {
+ e.cancelBubble = true;
+ });
+ // add hover styling
+ anchor.on('mouseenter', function () {
+ var rad = Konva.getAngle(_this.rotation());
+ var cursor = getCursor(name, rad);
+ anchor.getStage().content.style.cursor = cursor;
+ _this._cursorChange = true;
+ });
+ anchor.on('mouseout', function () {
+ anchor.getStage().content.style.cursor = '';
+ _this._cursorChange = false;
+ });
+ this.add(anchor);
+ };
+ Transformer.prototype._createBack = function () {
+ var _this = this;
+ var back = new Shape({
+ name: 'back',
+ width: 0,
+ height: 0,
+ draggable: true,
+ sceneFunc: function (ctx) {
+ var tr = this.getParent();
+ var padding = tr.padding();
+ ctx.beginPath();
+ ctx.rect(-padding, -padding, this.width() + padding * 2, this.height() + padding * 2);
+ ctx.moveTo(this.width() / 2, -padding);
+ if (tr.rotateEnabled()) {
+ ctx.lineTo(this.width() / 2, -tr.rotateAnchorOffset() * Util._sign(this.height()) - padding);
+ }
+ ctx.fillStrokeShape(this);
+ },
+ hitFunc: function (ctx, shape) {
+ if (!_this.shouldOverdrawWholeArea()) {
+ return;
+ }
+ var padding = _this.padding();
+ ctx.beginPath();
+ ctx.rect(-padding, -padding, shape.width() + padding * 2, shape.height() + padding * 2);
+ ctx.fillStrokeShape(shape);
+ },
+ });
+ this.add(back);
+ this._proxyDrag(back);
+ };
+ Transformer.prototype._handleMouseDown = function (e) {
+ this._movingAnchorName = e.target.name().split(' ')[0];
+ // var node = this.getNode();
+ var attrs = this._getNodeRect();
+ var width = attrs.width;
+ var height = attrs.height;
+ var hypotenuse = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));
+ this.sin = Math.abs(height / hypotenuse);
+ this.cos = Math.abs(width / hypotenuse);
+ window.addEventListener('mousemove', this._handleMouseMove);
+ window.addEventListener('touchmove', this._handleMouseMove);
+ window.addEventListener('mouseup', this._handleMouseUp, true);
+ window.addEventListener('touchend', this._handleMouseUp, true);
+ this._transforming = true;
+ var ap = e.target.getAbsolutePosition();
+ var pos = e.target.getStage().getPointerPosition();
+ this._anchorDragOffset = {
+ x: pos.x - ap.x,
+ y: pos.y - ap.y,
+ };
+ this._fire('transformstart', { evt: e, target: this.getNode() });
+ this.getNode()._fire('transformstart', { evt: e, target: this.getNode() });
+ };
+ Transformer.prototype._handleMouseMove = function (e) {
+ var x, y, newHypotenuse;
+ var anchorNode = this.findOne('.' + this._movingAnchorName);
+ var stage = anchorNode.getStage();
+ stage.setPointersPositions(e);
+ var pp = stage.getPointerPosition();
+ var newNodePos = {
+ x: pp.x - this._anchorDragOffset.x,
+ y: pp.y - this._anchorDragOffset.y,
+ };
+ var oldAbs = anchorNode.getAbsolutePosition();
+ anchorNode.setAbsolutePosition(newNodePos);
+ var newAbs = anchorNode.getAbsolutePosition();
+ if (oldAbs.x === newAbs.x && oldAbs.y === newAbs.y) {
+ return;
+ }
+ // rotater is working very differently, so do it first
+ if (this._movingAnchorName === 'rotater') {
+ var attrs = this._getNodeRect();
+ x = anchorNode.x() - attrs.width / 2;
+ y = -anchorNode.y() + attrs.height / 2;
+ // hor angle is changed?
+ var delta = Math.atan2(-y, x) + Math.PI / 2;
+ if (attrs.height < 0) {
+ delta -= Math.PI;
+ }
+ var oldRotation = Konva.getAngle(this.rotation());
+ var newRotation = oldRotation + delta;
+ var tol = Konva.getAngle(this.rotationSnapTolerance());
+ var snappedRot = getSnap(this.rotationSnaps(), newRotation, tol);
+ var diff = snappedRot - attrs.rotation;
+ var shape = rotateAroundCenter(attrs, diff);
+ this._fitNodesInto(shape, e);
+ return;
+ }
+ var keepProportion = this.keepRatio() || e.shiftKey;
+ var centeredScaling = this.centeredScaling() || e.altKey;
+ if (this._movingAnchorName === 'top-left') {
+ if (keepProportion) {
+ var comparePoint = centeredScaling
+ ? {
+ x: this.width() / 2,
+ y: this.height() / 2,
+ }
+ : {
+ x: this.findOne('.bottom-right').x(),
+ y: this.findOne('.bottom-right').y(),
+ };
+ newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +
+ Math.pow(comparePoint.y - anchorNode.y(), 2));
+ var reverseX = this.findOne('.top-left').x() > comparePoint.x ? -1 : 1;
+ var reverseY = this.findOne('.top-left').y() > comparePoint.y ? -1 : 1;
+ x = newHypotenuse * this.cos * reverseX;
+ y = newHypotenuse * this.sin * reverseY;
+ this.findOne('.top-left').x(comparePoint.x - x);
+ this.findOne('.top-left').y(comparePoint.y - y);
+ }
+ }
+ else if (this._movingAnchorName === 'top-center') {
+ this.findOne('.top-left').y(anchorNode.y());
+ }
+ else if (this._movingAnchorName === 'top-right') {
+ if (keepProportion) {
+ var comparePoint = centeredScaling
+ ? {
+ x: this.width() / 2,
+ y: this.height() / 2,
+ }
+ : {
+ x: this.findOne('.bottom-left').x(),
+ y: this.findOne('.bottom-left').y(),
+ };
+ newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +
+ Math.pow(comparePoint.y - anchorNode.y(), 2));
+ var reverseX = this.findOne('.top-right').x() < comparePoint.x ? -1 : 1;
+ var reverseY = this.findOne('.top-right').y() > comparePoint.y ? -1 : 1;
+ x = newHypotenuse * this.cos * reverseX;
+ y = newHypotenuse * this.sin * reverseY;
+ this.findOne('.top-right').x(comparePoint.x + x);
+ this.findOne('.top-right').y(comparePoint.y - y);
+ }
+ var pos = anchorNode.position();
+ this.findOne('.top-left').y(pos.y);
+ this.findOne('.bottom-right').x(pos.x);
+ }
+ else if (this._movingAnchorName === 'middle-left') {
+ this.findOne('.top-left').x(anchorNode.x());
+ }
+ else if (this._movingAnchorName === 'middle-right') {
+ this.findOne('.bottom-right').x(anchorNode.x());
+ }
+ else if (this._movingAnchorName === 'bottom-left') {
+ if (keepProportion) {
+ var comparePoint = centeredScaling
+ ? {
+ x: this.width() / 2,
+ y: this.height() / 2,
+ }
+ : {
+ x: this.findOne('.top-right').x(),
+ y: this.findOne('.top-right').y(),
+ };
+ newHypotenuse = Math.sqrt(Math.pow(comparePoint.x - anchorNode.x(), 2) +
+ Math.pow(anchorNode.y() - comparePoint.y, 2));
+ var reverseX = comparePoint.x < anchorNode.x() ? -1 : 1;
+ var reverseY = anchorNode.y() < comparePoint.y ? -1 : 1;
+ x = newHypotenuse * this.cos * reverseX;
+ y = newHypotenuse * this.sin * reverseY;
+ anchorNode.x(comparePoint.x - x);
+ anchorNode.y(comparePoint.y + y);
+ }
+ pos = anchorNode.position();
+ this.findOne('.top-left').x(pos.x);
+ this.findOne('.bottom-right').y(pos.y);
+ }
+ else if (this._movingAnchorName === 'bottom-center') {
+ this.findOne('.bottom-right').y(anchorNode.y());
+ }
+ else if (this._movingAnchorName === 'bottom-right') {
+ if (keepProportion) {
+ var comparePoint = centeredScaling
+ ? {
+ x: this.width() / 2,
+ y: this.height() / 2,
+ }
+ : {
+ x: this.findOne('.top-left').x(),
+ y: this.findOne('.top-left').y(),
+ };
+ newHypotenuse = Math.sqrt(Math.pow(anchorNode.x() - comparePoint.x, 2) +
+ Math.pow(anchorNode.y() - comparePoint.y, 2));
+ var reverseX = this.findOne('.bottom-right').x() < comparePoint.x ? -1 : 1;
+ var reverseY = this.findOne('.bottom-right').y() < comparePoint.y ? -1 : 1;
+ x = newHypotenuse * this.cos * reverseX;
+ y = newHypotenuse * this.sin * reverseY;
+ this.findOne('.bottom-right').x(comparePoint.x + x);
+ this.findOne('.bottom-right').y(comparePoint.y + y);
+ }
+ }
+ else {
+ console.error(new Error('Wrong position argument of selection resizer: ' +
+ this._movingAnchorName));
+ }
+ var centeredScaling = this.centeredScaling() || e.altKey;
+ if (centeredScaling) {
+ var topLeft = this.findOne('.top-left');
+ var bottomRight = this.findOne('.bottom-right');
+ var topOffsetX = topLeft.x();
+ var topOffsetY = topLeft.y();
+ var bottomOffsetX = this.getWidth() - bottomRight.x();
+ var bottomOffsetY = this.getHeight() - bottomRight.y();
+ bottomRight.move({
+ x: -topOffsetX,
+ y: -topOffsetY,
+ });
+ topLeft.move({
+ x: bottomOffsetX,
+ y: bottomOffsetY,
+ });
+ }
+ var absPos = this.findOne('.top-left').getAbsolutePosition();
+ x = absPos.x;
+ y = absPos.y;
+ var width = this.findOne('.bottom-right').x() - this.findOne('.top-left').x();
+ var height = this.findOne('.bottom-right').y() - this.findOne('.top-left').y();
+ this._fitNodesInto({
+ x: x,
+ y: y,
+ width: width,
+ height: height,
+ rotation: Konva.getAngle(this.rotation()),
+ }, e);
+ };
+ Transformer.prototype._handleMouseUp = function (e) {
+ this._removeEvents(e);
+ };
+ Transformer.prototype.getAbsoluteTransform = function () {
+ return this.getTransform();
+ };
+ Transformer.prototype._removeEvents = function (e) {
+ if (this._transforming) {
+ this._transforming = false;
+ window.removeEventListener('mousemove', this._handleMouseMove);
+ window.removeEventListener('touchmove', this._handleMouseMove);
+ window.removeEventListener('mouseup', this._handleMouseUp, true);
+ window.removeEventListener('touchend', this._handleMouseUp, true);
+ var node = this.getNode();
+ this._fire('transformend', { evt: e, target: node });
+ if (node) {
+ node.fire('transformend', { evt: e, target: node });
+ }
+ this._movingAnchorName = null;
+ }
+ };
+ Transformer.prototype._fitNodesInto = function (newAttrs, evt) {
+ var _this = this;
+ var oldAttrs = this._getNodeRect();
+ var minSize = 1;
+ if (Util._inRange(newAttrs.width, -this.padding() * 2 - minSize, minSize)) {
+ this.update();
+ return;
+ }
+ if (Util._inRange(newAttrs.height, -this.padding() * 2 - minSize, minSize)) {
+ this.update();
+ return;
+ }
+ var t = new Transform();
+ t.rotate(Konva.getAngle(this.rotation()));
+ if (this._movingAnchorName &&
+ newAttrs.width < 0 &&
+ this._movingAnchorName.indexOf('left') >= 0) {
+ var offset = t.point({
+ x: -this.padding() * 2,
+ y: 0,
+ });
+ newAttrs.x += offset.x;
+ newAttrs.y += offset.y;
+ newAttrs.width += this.padding() * 2;
+ this._movingAnchorName = this._movingAnchorName.replace('left', 'right');
+ this._anchorDragOffset.x -= offset.x;
+ this._anchorDragOffset.y -= offset.y;
+ }
+ else if (this._movingAnchorName &&
+ newAttrs.width < 0 &&
+ this._movingAnchorName.indexOf('right') >= 0) {
+ var offset = t.point({
+ x: this.padding() * 2,
+ y: 0,
+ });
+ this._movingAnchorName = this._movingAnchorName.replace('right', 'left');
+ this._anchorDragOffset.x -= offset.x;
+ this._anchorDragOffset.y -= offset.y;
+ newAttrs.width += this.padding() * 2;
+ }
+ if (this._movingAnchorName &&
+ newAttrs.height < 0 &&
+ this._movingAnchorName.indexOf('top') >= 0) {
+ var offset = t.point({
+ x: 0,
+ y: -this.padding() * 2,
+ });
+ newAttrs.x += offset.x;
+ newAttrs.y += offset.y;
+ this._movingAnchorName = this._movingAnchorName.replace('top', 'bottom');
+ this._anchorDragOffset.x -= offset.x;
+ this._anchorDragOffset.y -= offset.y;
+ newAttrs.height += this.padding() * 2;
+ }
+ else if (this._movingAnchorName &&
+ newAttrs.height < 0 &&
+ this._movingAnchorName.indexOf('bottom') >= 0) {
+ var offset = t.point({
+ x: 0,
+ y: this.padding() * 2,
+ });
+ this._movingAnchorName = this._movingAnchorName.replace('bottom', 'top');
+ this._anchorDragOffset.x -= offset.x;
+ this._anchorDragOffset.y -= offset.y;
+ newAttrs.height += this.padding() * 2;
+ }
+ if (this.boundBoxFunc()) {
+ var bounded = this.boundBoxFunc()(oldAttrs, newAttrs);
+ if (bounded) {
+ newAttrs = bounded;
+ }
+ else {
+ Util.warn('boundBoxFunc returned falsy. You should return new bound rect from it!');
+ }
+ }
+ // base size value doesn't really matter
+ // we just need to think about bounding boxes as transforms
+ // but how?
+ // the idea is that we have a transformed rectangle with the size of "baseSize"
+ var baseSize = 10000000;
+ var oldTr = new Transform();
+ oldTr.translate(oldAttrs.x, oldAttrs.y);
+ oldTr.rotate(oldAttrs.rotation);
+ oldTr.scale(oldAttrs.width / baseSize, oldAttrs.height / baseSize);
+ var newTr = new Transform();
+ newTr.translate(newAttrs.x, newAttrs.y);
+ newTr.rotate(newAttrs.rotation);
+ newTr.scale(newAttrs.width / baseSize, newAttrs.height / baseSize);
+ // now lets think we had [old transform] and now we have [new transform]
+ // Now, the questions is: how can we transform "parent" to go from [old transform] into [new transform]
+ // in equation it will be:
+ // [delta transform] * [old transform] = [new transform]
+ // that means that
+ // [delta transform] = [new transform] * [old transform inverted]
+ var delta = newTr.multiply(oldTr.invert());
+ this._nodes.forEach(function (node) {
+ // for each node we have the same [delta transform]
+ // the equations is
+ // [delta transform] * [parent transform] * [old local transform] = [parent transform] * [new local transform]
+ // and we need to find [new local transform]
+ // [new local] = [parent inverted] * [delta] * [parent] * [old local]
+ var parentTransform = node.getParent().getAbsoluteTransform();
+ var localTransform = node.getTransform().copy();
+ // skip offset:
+ localTransform.translate(node.offsetX(), node.offsetY());
+ var newLocalTransform = new Transform();
+ newLocalTransform
+ .multiply(parentTransform.copy().invert())
+ .multiply(delta)
+ .multiply(parentTransform)
+ .multiply(localTransform);
+ var attrs = newLocalTransform.decompose();
+ node.setAttrs(attrs);
+ _this._fire('transform', { evt: evt, target: node });
+ node._fire('transform', { evt: evt, target: node });
+ });
+ this.rotation(Util._getRotation(newAttrs.rotation));
+ this._resetTransformCache();
+ this.update();
+ this.getLayer().batchDraw();
+ };
+ /**
+ * force update of Konva.Transformer.
+ * Use it when you updated attached Konva.Group and now you need to reset transformer size
+ * @method
+ * @name Konva.Transformer#forceUpdate
+ */
+ Transformer.prototype.forceUpdate = function () {
+ this._resetTransformCache();
+ this.update();
+ };
+ Transformer.prototype._batchChangeChild = function (selector, attrs) {
+ var anchor = this.findOne(selector);
+ anchor.setAttrs(attrs);
+ };
+ Transformer.prototype.update = function () {
+ var _this = this;
+ var attrs = this._getNodeRect();
+ this.rotation(Util._getRotation(attrs.rotation));
+ var width = attrs.width;
+ var height = attrs.height;
+ var enabledAnchors = this.enabledAnchors();
+ var resizeEnabled = this.resizeEnabled();
+ var padding = this.padding();
+ var anchorSize = this.anchorSize();
+ this.find('._anchor').each(function (node) {
+ node.setAttrs({
+ width: anchorSize,
+ height: anchorSize,
+ offsetX: anchorSize / 2,
+ offsetY: anchorSize / 2,
+ stroke: _this.anchorStroke(),
+ strokeWidth: _this.anchorStrokeWidth(),
+ fill: _this.anchorFill(),
+ cornerRadius: _this.anchorCornerRadius(),
+ });
+ });
+ this._batchChangeChild('.top-left', {
+ x: 0,
+ y: 0,
+ offsetX: anchorSize / 2 + padding,
+ offsetY: anchorSize / 2 + padding,
+ visible: resizeEnabled && enabledAnchors.indexOf('top-left') >= 0,
+ });
+ this._batchChangeChild('.top-center', {
+ x: width / 2,
+ y: 0,
+ offsetY: anchorSize / 2 + padding,
+ visible: resizeEnabled && enabledAnchors.indexOf('top-center') >= 0,
+ });
+ this._batchChangeChild('.top-right', {
+ x: width,
+ y: 0,
+ offsetX: anchorSize / 2 - padding,
+ offsetY: anchorSize / 2 + padding,
+ visible: resizeEnabled && enabledAnchors.indexOf('top-right') >= 0,
+ });
+ this._batchChangeChild('.middle-left', {
+ x: 0,
+ y: height / 2,
+ offsetX: anchorSize / 2 + padding,
+ visible: resizeEnabled && enabledAnchors.indexOf('middle-left') >= 0,
+ });
+ this._batchChangeChild('.middle-right', {
+ x: width,
+ y: height / 2,
+ offsetX: anchorSize / 2 - padding,
+ visible: resizeEnabled && enabledAnchors.indexOf('middle-right') >= 0,
+ });
+ this._batchChangeChild('.bottom-left', {
+ x: 0,
+ y: height,
+ offsetX: anchorSize / 2 + padding,
+ offsetY: anchorSize / 2 - padding,
+ visible: resizeEnabled && enabledAnchors.indexOf('bottom-left') >= 0,
+ });
+ this._batchChangeChild('.bottom-center', {
+ x: width / 2,
+ y: height,
+ offsetY: anchorSize / 2 - padding,
+ visible: resizeEnabled && enabledAnchors.indexOf('bottom-center') >= 0,
+ });
+ this._batchChangeChild('.bottom-right', {
+ x: width,
+ y: height,
+ offsetX: anchorSize / 2 - padding,
+ offsetY: anchorSize / 2 - padding,
+ visible: resizeEnabled && enabledAnchors.indexOf('bottom-right') >= 0,
+ });
+ this._batchChangeChild('.rotater', {
+ x: width / 2,
+ y: -this.rotateAnchorOffset() * Util._sign(height) - padding,
+ visible: this.rotateEnabled(),
+ });
+ this._batchChangeChild('.back', {
+ width: width,
+ height: height,
+ visible: this.borderEnabled(),
+ stroke: this.borderStroke(),
+ strokeWidth: this.borderStrokeWidth(),
+ dash: this.borderDash(),
+ x: 0,
+ y: 0,
+ });
+ };
+ /**
+ * determine if transformer is in active transform
+ * @method
+ * @name Konva.Transformer#isTransforming
+ * @returns {Boolean}
+ */
+ Transformer.prototype.isTransforming = function () {
+ return this._transforming;
+ };
+ /**
+ * Stop active transform action
+ * @method
+ * @name Konva.Transformer#stopTransform
+ * @returns {Boolean}
+ */
+ Transformer.prototype.stopTransform = function () {
+ if (this._transforming) {
+ this._removeEvents();
+ var anchorNode = this.findOne('.' + this._movingAnchorName);
+ if (anchorNode) {
+ anchorNode.stopDrag();
+ }
+ }
+ };
+ Transformer.prototype.destroy = function () {
+ if (this.getStage() && this._cursorChange) {
+ this.getStage().content.style.cursor = '';
+ }
+ Group.prototype.destroy.call(this);
+ this.detach();
+ this._removeEvents();
+ return this;
+ };
+ // do not work as a container
+ // we will recreate inner nodes manually
+ Transformer.prototype.toObject = function () {
+ return Node.prototype.toObject.call(this);
+ };
+ return Transformer;
+ }(Group));
+ function validateAnchors(val) {
+ if (!(val instanceof Array)) {
+ Util.warn('enabledAnchors value should be an array');
+ }
+ if (val instanceof Array) {
+ val.forEach(function (name) {
+ if (ANCHORS_NAMES.indexOf(name) === -1) {
+ Util.warn('Unknown anchor name: ' +
+ name +
+ '. Available names are: ' +
+ ANCHORS_NAMES.join(', '));
+ }
+ });
+ }
+ return val || [];
+ }
+ Transformer.prototype.className = 'Transformer';
+ _registerNode(Transformer);
+ /**
+ * get/set enabled handlers
+ * @name Konva.Transformer#enabledAnchors
+ * @method
+ * @param {Array} array
+ * @returns {Array}
+ * @example
+ * // get list of handlers
+ * var enabledAnchors = transformer.enabledAnchors();
+ *
+ * // set handlers
+ * transformer.enabledAnchors(['top-left', 'top-center', 'top-right', 'middle-right', 'middle-left', 'bottom-left', 'bottom-center', 'bottom-right']);
+ */
+ Factory.addGetterSetter(Transformer, 'enabledAnchors', ANCHORS_NAMES, validateAnchors);
+ /**
+ * get/set resize ability. If false it will automatically hide resizing handlers
+ * @name Konva.Transformer#resizeEnabled
+ * @method
+ * @param {Array} array
+ * @returns {Array}
+ * @example
+ * // get
+ * var resizeEnabled = transformer.resizeEnabled();
+ *
+ * // set
+ * transformer.resizeEnabled(false);
+ */
+ Factory.addGetterSetter(Transformer, 'resizeEnabled', true);
+ /**
+ * get/set anchor size. Default is 10
+ * @name Konva.Transformer#validateAnchors
+ * @method
+ * @param {Number} 10
+ * @returns {Number}
+ * @example
+ * // get
+ * var anchorSize = transformer.anchorSize();
+ *
+ * // set
+ * transformer.anchorSize(20)
+ */
+ Factory.addGetterSetter(Transformer, 'anchorSize', 10, getNumberValidator());
+ /**
+ * get/set ability to rotate.
+ * @name Konva.Transformer#rotateEnabled
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get
+ * var rotateEnabled = transformer.rotateEnabled();
+ *
+ * // set
+ * transformer.rotateEnabled(false);
+ */
+ Factory.addGetterSetter(Transformer, 'rotateEnabled', true);
+ /**
+ * get/set rotation snaps angles.
+ * @name Konva.Transformer#rotationSnaps
+ * @method
+ * @param {Array} array
+ * @returns {Array}
+ * @example
+ * // get
+ * var rotationSnaps = transformer.rotationSnaps();
+ *
+ * // set
+ * transformer.rotationSnaps([0, 90, 180, 270]);
+ */
+ Factory.addGetterSetter(Transformer, 'rotationSnaps', []);
+ /**
+ * get/set distance for rotation handler
+ * @name Konva.Transformer#rotateAnchorOffset
+ * @method
+ * @param {Number} offset
+ * @returns {Number}
+ * @example
+ * // get
+ * var rotateAnchorOffset = transformer.rotateAnchorOffset();
+ *
+ * // set
+ * transformer.rotateAnchorOffset(100);
+ */
+ Factory.addGetterSetter(Transformer, 'rotateAnchorOffset', 50, getNumberValidator());
+ /**
+ * get/set distance for rotation tolerance
+ * @name Konva.Transformer#rotationSnapTolerance
+ * @method
+ * @param {Number} tolerance
+ * @returns {Number}
+ * @example
+ * // get
+ * var rotationSnapTolerance = transformer.rotationSnapTolerance();
+ *
+ * // set
+ * transformer.rotationSnapTolerance(100);
+ */
+ Factory.addGetterSetter(Transformer, 'rotationSnapTolerance', 5, getNumberValidator());
+ /**
+ * get/set visibility of border
+ * @name Konva.Transformer#borderEnabled
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get
+ * var borderEnabled = transformer.borderEnabled();
+ *
+ * // set
+ * transformer.borderEnabled(false);
+ */
+ Factory.addGetterSetter(Transformer, 'borderEnabled', true);
+ /**
+ * get/set anchor stroke color
+ * @name Konva.Transformer#anchorStroke
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get
+ * var anchorStroke = transformer.anchorStroke();
+ *
+ * // set
+ * transformer.anchorStroke('red');
+ */
+ Factory.addGetterSetter(Transformer, 'anchorStroke', 'rgb(0, 161, 255)');
+ /**
+ * get/set anchor stroke width
+ * @name Konva.Transformer#anchorStrokeWidth
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get
+ * var anchorStrokeWidth = transformer.anchorStrokeWidth();
+ *
+ * // set
+ * transformer.anchorStrokeWidth(3);
+ */
+ Factory.addGetterSetter(Transformer, 'anchorStrokeWidth', 1, getNumberValidator());
+ /**
+ * get/set anchor fill color
+ * @name Konva.Transformer#anchorFill
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get
+ * var anchorFill = transformer.anchorFill();
+ *
+ * // set
+ * transformer.anchorFill('red');
+ */
+ Factory.addGetterSetter(Transformer, 'anchorFill', 'white');
+ /**
+ * get/set anchor corner radius
+ * @name Konva.Transformer#anchorCornerRadius
+ * @method
+ * @param {Number} enabled
+ * @returns {Number}
+ * @example
+ * // get
+ * var anchorCornerRadius = transformer.anchorCornerRadius();
+ *
+ * // set
+ * transformer.anchorCornerRadius(3);
+ */
+ Factory.addGetterSetter(Transformer, 'anchorCornerRadius', 0, getNumberValidator());
+ /**
+ * get/set border stroke color
+ * @name Konva.Transformer#borderStroke
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get
+ * var borderStroke = transformer.borderStroke();
+ *
+ * // set
+ * transformer.borderStroke('red');
+ */
+ Factory.addGetterSetter(Transformer, 'borderStroke', 'rgb(0, 161, 255)');
+ /**
+ * get/set border stroke width
+ * @name Konva.Transformer#borderStrokeWidth
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get
+ * var borderStrokeWidth = transformer.borderStrokeWidth();
+ *
+ * // set
+ * transformer.borderStrokeWidth(3);
+ */
+ Factory.addGetterSetter(Transformer, 'borderStrokeWidth', 1, getNumberValidator());
+ /**
+ * get/set border dash array
+ * @name Konva.Transformer#borderDash
+ * @method
+ * @param {Boolean} enabled
+ * @returns {Boolean}
+ * @example
+ * // get
+ * var borderDash = transformer.borderDash();
+ *
+ * // set
+ * transformer.borderDash([2, 2]);
+ */
+ Factory.addGetterSetter(Transformer, 'borderDash');
+ /**
+ * get/set should we keep ratio while resize anchors at corners
+ * @name Konva.Transformer#keepRatio
+ * @method
+ * @param {Boolean} keepRatio
+ * @returns {Boolean}
+ * @example
+ * // get
+ * var keepRatio = transformer.keepRatio();
+ *
+ * // set
+ * transformer.keepRatio(false);
+ */
+ Factory.addGetterSetter(Transformer, 'keepRatio', true);
+ /**
+ * get/set should we resize relative to node's center?
+ * @name Konva.Transformer#centeredScaling
+ * @method
+ * @param {Boolean} centeredScaling
+ * @returns {Boolean}
+ * @example
+ * // get
+ * var centeredScaling = transformer.centeredScaling();
+ *
+ * // set
+ * transformer.centeredScaling(true);
+ */
+ Factory.addGetterSetter(Transformer, 'centeredScaling', false);
+ /**
+ * get/set should we think about stroke while resize? Good to use when a shape has strokeScaleEnabled = false
+ * default is false
+ * @name Konva.Transformer#ignoreStroke
+ * @method
+ * @param {Boolean} ignoreStroke
+ * @returns {Boolean}
+ * @example
+ * // get
+ * var ignoreStroke = transformer.ignoreStroke();
+ *
+ * // set
+ * transformer.ignoreStroke(true);
+ */
+ Factory.addGetterSetter(Transformer, 'ignoreStroke', false);
+ /**
+ * get/set padding
+ * @name Konva.Transformer#padding
+ * @method
+ * @param {Number} padding
+ * @returns {Number}
+ * @example
+ * // get
+ * var padding = transformer.padding();
+ *
+ * // set
+ * transformer.padding(10);
+ */
+ Factory.addGetterSetter(Transformer, 'padding', 0, getNumberValidator());
+ Factory.addGetterSetter(Transformer, 'node');
+ /**
+ * get/set attached nodes of the Transformer. Transformer will adapt to their size and listen to their events
+ * @method
+ * @name Konva.Transformer#nodes
+ * @returns {Konva.Node}
+ * @example
+ * // get
+ * const nodes = transformer.nodes();
+ *
+ * // set
+ * transformer.nodes([rect, circle]);
+ *
+ * // push new item:
+ * const oldNodes = transformer.nodes();
+ * const newNodes = oldNodes.concat([newShape]);
+ * // it is important to set new array instance (and concat method above will create it)
+ * transformer.nodes(newNodes);
+ */
+ Factory.addGetterSetter(Transformer, 'nodes');
+ /**
+ * get/set bounding box function. **IMPORTANT!** boundBondFunc operates in absolute coordinates.
+ * @name Konva.Transformer#boundBoxFunc
+ * @method
+ * @param {Function} func
+ * @returns {Function}
+ * @example
+ * // get
+ * var boundBoxFunc = transformer.boundBoxFunc();
+ *
+ * // set
+ * transformer.boundBoxFunc(function(oldBox, newBox) {
+ * // width and height of the boxes are corresponding to total absolute width and height of all nodes combined
+ * // so it includes scale of the node.
+ * if (newBox.width > 200) {
+ * return oldBox;
+ * }
+ * return newBox;
+ * });
+ */
+ Factory.addGetterSetter(Transformer, 'boundBoxFunc');
+ Factory.addGetterSetter(Transformer, 'shouldOverdrawWholeArea', false);
+ Factory.backCompat(Transformer, {
+ lineEnabled: 'borderEnabled',
+ rotateHandlerOffset: 'rotateAnchorOffset',
+ enabledHandlers: 'enabledAnchors',
+ });
+ Collection.mapMethods(Transformer);
+
+ /**
+ * Wedge constructor
+ * @constructor
+ * @memberof Konva
+ * @augments Konva.Shape
+ * @param {Object} config
+ * @param {Number} config.angle in degrees
+ * @param {Number} config.radius
+ * @param {Boolean} [config.clockwise]
+ * @param {String} [config.fill] fill color
+ * @param {Image} [config.fillPatternImage] fill pattern image
+ * @param {Number} [config.fillPatternX]
+ * @param {Number} [config.fillPatternY]
+ * @param {Object} [config.fillPatternOffset] object with x and y component
+ * @param {Number} [config.fillPatternOffsetX]
+ * @param {Number} [config.fillPatternOffsetY]
+ * @param {Object} [config.fillPatternScale] object with x and y component
+ * @param {Number} [config.fillPatternScaleX]
+ * @param {Number} [config.fillPatternScaleY]
+ * @param {Number} [config.fillPatternRotation]
+ * @param {String} [config.fillPatternRepeat] can be "repeat", "repeat-x", "repeat-y", or "no-repeat". The default is "no-repeat"
+ * @param {Object} [config.fillLinearGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientStartPointX]
+ * @param {Number} [config.fillLinearGradientStartPointY]
+ * @param {Object} [config.fillLinearGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillLinearGradientEndPointX]
+ * @param {Number} [config.fillLinearGradientEndPointY]
+ * @param {Array} [config.fillLinearGradientColorStops] array of color stops
+ * @param {Object} [config.fillRadialGradientStartPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientStartPointX]
+ * @param {Number} [config.fillRadialGradientStartPointY]
+ * @param {Object} [config.fillRadialGradientEndPoint] object with x and y component
+ * @param {Number} [config.fillRadialGradientEndPointX]
+ * @param {Number} [config.fillRadialGradientEndPointY]
+ * @param {Number} [config.fillRadialGradientStartRadius]
+ * @param {Number} [config.fillRadialGradientEndRadius]
+ * @param {Array} [config.fillRadialGradientColorStops] array of color stops
+ * @param {Boolean} [config.fillEnabled] flag which enables or disables the fill. The default value is true
+ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration
+ * @param {String} [config.stroke] stroke color
+ * @param {Number} [config.strokeWidth] stroke width
+ * @param {Number} [config.hitStrokeWidth] size of the stroke on hit canvas. The default is "auto" - equals to strokeWidth
+ * @param {Boolean} [config.strokeHitEnabled] flag which enables or disables stroke hit region. The default is true
+ * @param {Boolean} [config.perfectDrawEnabled] flag which enables or disables using buffer canvas. The default is true
+ * @param {Boolean} [config.shadowForStrokeEnabled] flag which enables or disables shadow for stroke. The default is true
+ * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true
+ * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true
+ * @param {String} [config.lineJoin] can be miter, round, or bevel. The default
+ * is miter
+ * @param {String} [config.lineCap] can be butt, round, or square. The default
+ * is butt
+ * @param {String} [config.shadowColor]
+ * @param {Number} [config.shadowBlur]
+ * @param {Object} [config.shadowOffset] object with x and y component
+ * @param {Number} [config.shadowOffsetX]
+ * @param {Number} [config.shadowOffsetY]
+ * @param {Number} [config.shadowOpacity] shadow opacity. Can be any real number
+ * between 0 and 1
+ * @param {Boolean} [config.shadowEnabled] flag which enables or disables the shadow. The default value is true
+ * @param {Array} [config.dash]
+ * @param {Boolean} [config.dashEnabled] flag which enables or disables the dashArray. The default value is true
+
+ * @param {Number} [config.x]
+ * @param {Number} [config.y]
+ * @param {Number} [config.width]
+ * @param {Number} [config.height]
+ * @param {Boolean} [config.visible]
+ * @param {Boolean} [config.listening] whether or not the node is listening for events
+ * @param {String} [config.id] unique id
+ * @param {String} [config.name] non-unique name
+ * @param {Number} [config.opacity] determines node opacity. Can be any number between 0 and 1
+ * @param {Object} [config.scale] set scale
+ * @param {Number} [config.scaleX] set scale x
+ * @param {Number} [config.scaleY] set scale y
+ * @param {Number} [config.rotation] rotation in degrees
+ * @param {Object} [config.offset] offset from center point and rotation point
+ * @param {Number} [config.offsetX] set offset x
+ * @param {Number} [config.offsetY] set offset y
+ * @param {Boolean} [config.draggable] makes the node draggable. When stages are draggable, you can drag and drop
+ * the entire stage by dragging any portion of the stage
+ * @param {Number} [config.dragDistance]
+ * @param {Function} [config.dragBoundFunc]
+ * @example
+ * // draw a wedge that's pointing downwards
+ * var wedge = new Konva.Wedge({
+ * radius: 40,
+ * fill: 'red',
+ * stroke: 'black'
+ * strokeWidth: 5,
+ * angleDeg: 60,
+ * rotationDeg: -120
+ * });
+ */
+ var Wedge = /** @class */ (function (_super) {
+ __extends(Wedge, _super);
+ function Wedge() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Wedge.prototype._sceneFunc = function (context) {
+ context.beginPath();
+ context.arc(0, 0, this.radius(), 0, Konva.getAngle(this.angle()), this.clockwise());
+ context.lineTo(0, 0);
+ context.closePath();
+ context.fillStrokeShape(this);
+ };
+ Wedge.prototype.getWidth = function () {
+ return this.radius() * 2;
+ };
+ Wedge.prototype.getHeight = function () {
+ return this.radius() * 2;
+ };
+ Wedge.prototype.setWidth = function (width) {
+ this.radius(width / 2);
+ };
+ Wedge.prototype.setHeight = function (height) {
+ this.radius(height / 2);
+ };
+ return Wedge;
+ }(Shape));
+ Wedge.prototype.className = 'Wedge';
+ Wedge.prototype._centroid = true;
+ Wedge.prototype._attrsAffectingSize = ['radius'];
+ _registerNode(Wedge);
+ /**
+ * get/set radius
+ * @name Konva.Wedge#radius
+ * @method
+ * @param {Number} radius
+ * @returns {Number}
+ * @example
+ * // get radius
+ * var radius = wedge.radius();
+ *
+ * // set radius
+ * wedge.radius(10);
+ */
+ Factory.addGetterSetter(Wedge, 'radius', 0, getNumberValidator());
+ /**
+ * get/set angle in degrees
+ * @name Konva.Wedge#angle
+ * @method
+ * @param {Number} angle
+ * @returns {Number}
+ * @example
+ * // get angle
+ * var angle = wedge.angle();
+ *
+ * // set angle
+ * wedge.angle(20);
+ */
+ Factory.addGetterSetter(Wedge, 'angle', 0, getNumberValidator());
+ /**
+ * get/set clockwise flag
+ * @name Konva.Wedge#clockwise
+ * @method
+ * @param {Number} clockwise
+ * @returns {Number}
+ * @example
+ * // get clockwise flag
+ * var clockwise = wedge.clockwise();
+ *
+ * // draw wedge counter-clockwise
+ * wedge.clockwise(false);
+ *
+ * // draw wedge clockwise
+ * wedge.clockwise(true);
+ */
+ Factory.addGetterSetter(Wedge, 'clockwise', false);
+ Factory.backCompat(Wedge, {
+ angleDeg: 'angle',
+ getAngleDeg: 'getAngle',
+ setAngleDeg: 'setAngle'
+ });
+ Collection.mapMethods(Wedge);
+
+ /*
+ the Gauss filter
+ master repo: https://github.com/pavelpower/kineticjsGaussFilter
+ */
+ /*
+
+ StackBlur - a fast almost Gaussian Blur For Canvas
+
+ Version: 0.5
+ Author: Mario Klingemann
+ Contact: mario@quasimondo.com
+ Website: http://www.quasimondo.com/StackBlurForCanvas
+ Twitter: @quasimondo
+
+ In case you find this class useful - especially in commercial projects -
+ I am not totally unhappy for a small donation to my PayPal account
+ mario@quasimondo.de
+
+ Or support me on flattr:
+ https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript
+
+ Copyright (c) 2010 Mario Klingemann
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+ */
+ function BlurStack() {
+ this.r = 0;
+ this.g = 0;
+ this.b = 0;
+ this.a = 0;
+ this.next = null;
+ }
+ var mul_table = [
+ 512,
+ 512,
+ 456,
+ 512,
+ 328,
+ 456,
+ 335,
+ 512,
+ 405,
+ 328,
+ 271,
+ 456,
+ 388,
+ 335,
+ 292,
+ 512,
+ 454,
+ 405,
+ 364,
+ 328,
+ 298,
+ 271,
+ 496,
+ 456,
+ 420,
+ 388,
+ 360,
+ 335,
+ 312,
+ 292,
+ 273,
+ 512,
+ 482,
+ 454,
+ 428,
+ 405,
+ 383,
+ 364,
+ 345,
+ 328,
+ 312,
+ 298,
+ 284,
+ 271,
+ 259,
+ 496,
+ 475,
+ 456,
+ 437,
+ 420,
+ 404,
+ 388,
+ 374,
+ 360,
+ 347,
+ 335,
+ 323,
+ 312,
+ 302,
+ 292,
+ 282,
+ 273,
+ 265,
+ 512,
+ 497,
+ 482,
+ 468,
+ 454,
+ 441,
+ 428,
+ 417,
+ 405,
+ 394,
+ 383,
+ 373,
+ 364,
+ 354,
+ 345,
+ 337,
+ 328,
+ 320,
+ 312,
+ 305,
+ 298,
+ 291,
+ 284,
+ 278,
+ 271,
+ 265,
+ 259,
+ 507,
+ 496,
+ 485,
+ 475,
+ 465,
+ 456,
+ 446,
+ 437,
+ 428,
+ 420,
+ 412,
+ 404,
+ 396,
+ 388,
+ 381,
+ 374,
+ 367,
+ 360,
+ 354,
+ 347,
+ 341,
+ 335,
+ 329,
+ 323,
+ 318,
+ 312,
+ 307,
+ 302,
+ 297,
+ 292,
+ 287,
+ 282,
+ 278,
+ 273,
+ 269,
+ 265,
+ 261,
+ 512,
+ 505,
+ 497,
+ 489,
+ 482,
+ 475,
+ 468,
+ 461,
+ 454,
+ 447,
+ 441,
+ 435,
+ 428,
+ 422,
+ 417,
+ 411,
+ 405,
+ 399,
+ 394,
+ 389,
+ 383,
+ 378,
+ 373,
+ 368,
+ 364,
+ 359,
+ 354,
+ 350,
+ 345,
+ 341,
+ 337,
+ 332,
+ 328,
+ 324,
+ 320,
+ 316,
+ 312,
+ 309,
+ 305,
+ 301,
+ 298,
+ 294,
+ 291,
+ 287,
+ 284,
+ 281,
+ 278,
+ 274,
+ 271,
+ 268,
+ 265,
+ 262,
+ 259,
+ 257,
+ 507,
+ 501,
+ 496,
+ 491,
+ 485,
+ 480,
+ 475,
+ 470,
+ 465,
+ 460,
+ 456,
+ 451,
+ 446,
+ 442,
+ 437,
+ 433,
+ 428,
+ 424,
+ 420,
+ 416,
+ 412,
+ 408,
+ 404,
+ 400,
+ 396,
+ 392,
+ 388,
+ 385,
+ 381,
+ 377,
+ 374,
+ 370,
+ 367,
+ 363,
+ 360,
+ 357,
+ 354,
+ 350,
+ 347,
+ 344,
+ 341,
+ 338,
+ 335,
+ 332,
+ 329,
+ 326,
+ 323,
+ 320,
+ 318,
+ 315,
+ 312,
+ 310,
+ 307,
+ 304,
+ 302,
+ 299,
+ 297,
+ 294,
+ 292,
+ 289,
+ 287,
+ 285,
+ 282,
+ 280,
+ 278,
+ 275,
+ 273,
+ 271,
+ 269,
+ 267,
+ 265,
+ 263,
+ 261,
+ 259
+ ];
+ var shg_table = [
+ 9,
+ 11,
+ 12,
+ 13,
+ 13,
+ 14,
+ 14,
+ 15,
+ 15,
+ 15,
+ 15,
+ 16,
+ 16,
+ 16,
+ 16,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 18,
+ 18,
+ 18,
+ 18,
+ 18,
+ 18,
+ 18,
+ 18,
+ 18,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24
+ ];
+ function filterGaussBlurRGBA(imageData, radius) {
+ var pixels = imageData.data, width = imageData.width, height = imageData.height;
+ var x, y, i, p, yp, yi, yw, r_sum, g_sum, b_sum, a_sum, r_out_sum, g_out_sum, b_out_sum, a_out_sum, r_in_sum, g_in_sum, b_in_sum, a_in_sum, pr, pg, pb, pa, rbs;
+ var div = radius + radius + 1, widthMinus1 = width - 1, heightMinus1 = height - 1, radiusPlus1 = radius + 1, sumFactor = (radiusPlus1 * (radiusPlus1 + 1)) / 2, stackStart = new BlurStack(), stackEnd = null, stack = stackStart, stackIn = null, stackOut = null, mul_sum = mul_table[radius], shg_sum = shg_table[radius];
+ for (i = 1; i < div; i++) {
+ stack = stack.next = new BlurStack();
+ if (i === radiusPlus1) {
+ stackEnd = stack;
+ }
+ }
+ stack.next = stackStart;
+ yw = yi = 0;
+ for (y = 0; y < height; y++) {
+ r_in_sum = g_in_sum = b_in_sum = a_in_sum = r_sum = g_sum = b_sum = a_sum = 0;
+ r_out_sum = radiusPlus1 * (pr = pixels[yi]);
+ g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);
+ b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);
+ a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);
+ r_sum += sumFactor * pr;
+ g_sum += sumFactor * pg;
+ b_sum += sumFactor * pb;
+ a_sum += sumFactor * pa;
+ stack = stackStart;
+ for (i = 0; i < radiusPlus1; i++) {
+ stack.r = pr;
+ stack.g = pg;
+ stack.b = pb;
+ stack.a = pa;
+ stack = stack.next;
+ }
+ for (i = 1; i < radiusPlus1; i++) {
+ p = yi + ((widthMinus1 < i ? widthMinus1 : i) << 2);
+ r_sum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - i);
+ g_sum += (stack.g = pg = pixels[p + 1]) * rbs;
+ b_sum += (stack.b = pb = pixels[p + 2]) * rbs;
+ a_sum += (stack.a = pa = pixels[p + 3]) * rbs;
+ r_in_sum += pr;
+ g_in_sum += pg;
+ b_in_sum += pb;
+ a_in_sum += pa;
+ stack = stack.next;
+ }
+ stackIn = stackStart;
+ stackOut = stackEnd;
+ for (x = 0; x < width; x++) {
+ pixels[yi + 3] = pa = (a_sum * mul_sum) >> shg_sum;
+ if (pa !== 0) {
+ pa = 255 / pa;
+ pixels[yi] = ((r_sum * mul_sum) >> shg_sum) * pa;
+ pixels[yi + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;
+ pixels[yi + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;
+ }
+ else {
+ pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;
+ }
+ r_sum -= r_out_sum;
+ g_sum -= g_out_sum;
+ b_sum -= b_out_sum;
+ a_sum -= a_out_sum;
+ r_out_sum -= stackIn.r;
+ g_out_sum -= stackIn.g;
+ b_out_sum -= stackIn.b;
+ a_out_sum -= stackIn.a;
+ p = (yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1)) << 2;
+ r_in_sum += stackIn.r = pixels[p];
+ g_in_sum += stackIn.g = pixels[p + 1];
+ b_in_sum += stackIn.b = pixels[p + 2];
+ a_in_sum += stackIn.a = pixels[p + 3];
+ r_sum += r_in_sum;
+ g_sum += g_in_sum;
+ b_sum += b_in_sum;
+ a_sum += a_in_sum;
+ stackIn = stackIn.next;
+ r_out_sum += pr = stackOut.r;
+ g_out_sum += pg = stackOut.g;
+ b_out_sum += pb = stackOut.b;
+ a_out_sum += pa = stackOut.a;
+ r_in_sum -= pr;
+ g_in_sum -= pg;
+ b_in_sum -= pb;
+ a_in_sum -= pa;
+ stackOut = stackOut.next;
+ yi += 4;
+ }
+ yw += width;
+ }
+ for (x = 0; x < width; x++) {
+ g_in_sum = b_in_sum = a_in_sum = r_in_sum = g_sum = b_sum = a_sum = r_sum = 0;
+ yi = x << 2;
+ r_out_sum = radiusPlus1 * (pr = pixels[yi]);
+ g_out_sum = radiusPlus1 * (pg = pixels[yi + 1]);
+ b_out_sum = radiusPlus1 * (pb = pixels[yi + 2]);
+ a_out_sum = radiusPlus1 * (pa = pixels[yi + 3]);
+ r_sum += sumFactor * pr;
+ g_sum += sumFactor * pg;
+ b_sum += sumFactor * pb;
+ a_sum += sumFactor * pa;
+ stack = stackStart;
+ for (i = 0; i < radiusPlus1; i++) {
+ stack.r = pr;
+ stack.g = pg;
+ stack.b = pb;
+ stack.a = pa;
+ stack = stack.next;
+ }
+ yp = width;
+ for (i = 1; i <= radius; i++) {
+ yi = (yp + x) << 2;
+ r_sum += (stack.r = pr = pixels[yi]) * (rbs = radiusPlus1 - i);
+ g_sum += (stack.g = pg = pixels[yi + 1]) * rbs;
+ b_sum += (stack.b = pb = pixels[yi + 2]) * rbs;
+ a_sum += (stack.a = pa = pixels[yi + 3]) * rbs;
+ r_in_sum += pr;
+ g_in_sum += pg;
+ b_in_sum += pb;
+ a_in_sum += pa;
+ stack = stack.next;
+ if (i < heightMinus1) {
+ yp += width;
+ }
+ }
+ yi = x;
+ stackIn = stackStart;
+ stackOut = stackEnd;
+ for (y = 0; y < height; y++) {
+ p = yi << 2;
+ pixels[p + 3] = pa = (a_sum * mul_sum) >> shg_sum;
+ if (pa > 0) {
+ pa = 255 / pa;
+ pixels[p] = ((r_sum * mul_sum) >> shg_sum) * pa;
+ pixels[p + 1] = ((g_sum * mul_sum) >> shg_sum) * pa;
+ pixels[p + 2] = ((b_sum * mul_sum) >> shg_sum) * pa;
+ }
+ else {
+ pixels[p] = pixels[p + 1] = pixels[p + 2] = 0;
+ }
+ r_sum -= r_out_sum;
+ g_sum -= g_out_sum;
+ b_sum -= b_out_sum;
+ a_sum -= a_out_sum;
+ r_out_sum -= stackIn.r;
+ g_out_sum -= stackIn.g;
+ b_out_sum -= stackIn.b;
+ a_out_sum -= stackIn.a;
+ p =
+ (x +
+ ((p = y + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width) <<
+ 2;
+ r_sum += r_in_sum += stackIn.r = pixels[p];
+ g_sum += g_in_sum += stackIn.g = pixels[p + 1];
+ b_sum += b_in_sum += stackIn.b = pixels[p + 2];
+ a_sum += a_in_sum += stackIn.a = pixels[p + 3];
+ stackIn = stackIn.next;
+ r_out_sum += pr = stackOut.r;
+ g_out_sum += pg = stackOut.g;
+ b_out_sum += pb = stackOut.b;
+ a_out_sum += pa = stackOut.a;
+ r_in_sum -= pr;
+ g_in_sum -= pg;
+ b_in_sum -= pb;
+ a_in_sum -= pa;
+ stackOut = stackOut.next;
+ yi += width;
+ }
+ }
+ }
+ /**
+ * Blur Filter
+ * @function
+ * @name Blur
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Blur]);
+ * node.blurRadius(10);
+ */
+ var Blur = function Blur(imageData) {
+ var radius = Math.round(this.blurRadius());
+ if (radius > 0) {
+ filterGaussBlurRGBA(imageData, radius);
+ }
+ };
+ Factory.addGetterSetter(Node, 'blurRadius', 0, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set blur radius. Use with {@link Konva.Filters.Blur} filter
+ * @name Konva.Node#blurRadius
+ * @method
+ * @param {Integer} radius
+ * @returns {Integer}
+ */
+
+ /**
+ * Brighten Filter.
+ * @function
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Brighten]);
+ * node.brightness(0.8);
+ */
+ var Brighten = function (imageData) {
+ var brightness = this.brightness() * 255, data = imageData.data, len = data.length, i;
+ for (i = 0; i < len; i += 4) {
+ // red
+ data[i] += brightness;
+ // green
+ data[i + 1] += brightness;
+ // blue
+ data[i + 2] += brightness;
+ }
+ };
+ Factory.addGetterSetter(Node, 'brightness', 0, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set filter brightness. The brightness is a number between -1 and 1. Positive values
+ * brighten the pixels and negative values darken them. Use with {@link Konva.Filters.Brighten} filter.
+ * @name Konva.Node#brightness
+ * @method
+
+ * @param {Number} brightness value between -1 and 1
+ * @returns {Number}
+ */
+
+ /**
+ * Contrast Filter.
+ * @function
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Contrast]);
+ * node.contrast(10);
+ */
+ var Contrast = function (imageData) {
+ var adjust = Math.pow((this.contrast() + 100) / 100, 2);
+ var data = imageData.data, nPixels = data.length, red = 150, green = 150, blue = 150, i;
+ for (i = 0; i < nPixels; i += 4) {
+ red = data[i];
+ green = data[i + 1];
+ blue = data[i + 2];
+ //Red channel
+ red /= 255;
+ red -= 0.5;
+ red *= adjust;
+ red += 0.5;
+ red *= 255;
+ //Green channel
+ green /= 255;
+ green -= 0.5;
+ green *= adjust;
+ green += 0.5;
+ green *= 255;
+ //Blue channel
+ blue /= 255;
+ blue -= 0.5;
+ blue *= adjust;
+ blue += 0.5;
+ blue *= 255;
+ red = red < 0 ? 0 : red > 255 ? 255 : red;
+ green = green < 0 ? 0 : green > 255 ? 255 : green;
+ blue = blue < 0 ? 0 : blue > 255 ? 255 : blue;
+ data[i] = red;
+ data[i + 1] = green;
+ data[i + 2] = blue;
+ }
+ };
+ /**
+ * get/set filter contrast. The contrast is a number between -100 and 100.
+ * Use with {@link Konva.Filters.Contrast} filter.
+ * @name Konva.Node#contrast
+ * @method
+ * @param {Number} contrast value between -100 and 100
+ * @returns {Number}
+ */
+ Factory.addGetterSetter(Node, 'contrast', 0, getNumberValidator(), Factory.afterSetFilter);
+
+ /**
+ * Emboss Filter.
+ * Pixastic Lib - Emboss filter - v0.1.0
+ * Copyright (c) 2008 Jacob Seidelin, jseidelin@nihilogic.dk, http://blog.nihilogic.dk/
+ * License: [http://www.pixastic.com/lib/license.txt]
+ * @function
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Emboss]);
+ * node.embossStrength(0.8);
+ * node.embossWhiteLevel(0.3);
+ * node.embossDirection('right');
+ * node.embossBlend(true);
+ */
+ var Emboss = function (imageData) {
+ // pixastic strength is between 0 and 10. I want it between 0 and 1
+ // pixastic greyLevel is between 0 and 255. I want it between 0 and 1. Also,
+ // a max value of greyLevel yields a white emboss, and the min value yields a black
+ // emboss. Therefore, I changed greyLevel to whiteLevel
+ var strength = this.embossStrength() * 10, greyLevel = this.embossWhiteLevel() * 255, direction = this.embossDirection(), blend = this.embossBlend(), dirY = 0, dirX = 0, data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4, y = h;
+ switch (direction) {
+ case 'top-left':
+ dirY = -1;
+ dirX = -1;
+ break;
+ case 'top':
+ dirY = -1;
+ dirX = 0;
+ break;
+ case 'top-right':
+ dirY = -1;
+ dirX = 1;
+ break;
+ case 'right':
+ dirY = 0;
+ dirX = 1;
+ break;
+ case 'bottom-right':
+ dirY = 1;
+ dirX = 1;
+ break;
+ case 'bottom':
+ dirY = 1;
+ dirX = 0;
+ break;
+ case 'bottom-left':
+ dirY = 1;
+ dirX = -1;
+ break;
+ case 'left':
+ dirY = 0;
+ dirX = -1;
+ break;
+ default:
+ Util.error('Unknown emboss direction: ' + direction);
+ }
+ do {
+ var offsetY = (y - 1) * w4;
+ var otherY = dirY;
+ if (y + otherY < 1) {
+ otherY = 0;
+ }
+ if (y + otherY > h) {
+ otherY = 0;
+ }
+ var offsetYOther = (y - 1 + otherY) * w * 4;
+ var x = w;
+ do {
+ var offset = offsetY + (x - 1) * 4;
+ var otherX = dirX;
+ if (x + otherX < 1) {
+ otherX = 0;
+ }
+ if (x + otherX > w) {
+ otherX = 0;
+ }
+ var offsetOther = offsetYOther + (x - 1 + otherX) * 4;
+ var dR = data[offset] - data[offsetOther];
+ var dG = data[offset + 1] - data[offsetOther + 1];
+ var dB = data[offset + 2] - data[offsetOther + 2];
+ var dif = dR;
+ var absDif = dif > 0 ? dif : -dif;
+ var absG = dG > 0 ? dG : -dG;
+ var absB = dB > 0 ? dB : -dB;
+ if (absG > absDif) {
+ dif = dG;
+ }
+ if (absB > absDif) {
+ dif = dB;
+ }
+ dif *= strength;
+ if (blend) {
+ var r = data[offset] + dif;
+ var g = data[offset + 1] + dif;
+ var b = data[offset + 2] + dif;
+ data[offset] = r > 255 ? 255 : r < 0 ? 0 : r;
+ data[offset + 1] = g > 255 ? 255 : g < 0 ? 0 : g;
+ data[offset + 2] = b > 255 ? 255 : b < 0 ? 0 : b;
+ }
+ else {
+ var grey = greyLevel - dif;
+ if (grey < 0) {
+ grey = 0;
+ }
+ else if (grey > 255) {
+ grey = 255;
+ }
+ data[offset] = data[offset + 1] = data[offset + 2] = grey;
+ }
+ } while (--x);
+ } while (--y);
+ };
+ Factory.addGetterSetter(Node, 'embossStrength', 0.5, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set emboss strength. Use with {@link Konva.Filters.Emboss} filter.
+ * @name Konva.Node#embossStrength
+ * @method
+ * @param {Number} level between 0 and 1. Default is 0.5
+ * @returns {Number}
+ */
+ Factory.addGetterSetter(Node, 'embossWhiteLevel', 0.5, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set emboss white level. Use with {@link Konva.Filters.Emboss} filter.
+ * @name Konva.Node#embossWhiteLevel
+ * @method
+ * @param {Number} embossWhiteLevel between 0 and 1. Default is 0.5
+ * @returns {Number}
+ */
+ Factory.addGetterSetter(Node, 'embossDirection', 'top-left', null, Factory.afterSetFilter);
+ /**
+ * get/set emboss direction. Use with {@link Konva.Filters.Emboss} filter.
+ * @name Konva.Node#embossDirection
+ * @method
+ * @param {String} embossDirection can be top-left, top, top-right, right, bottom-right, bottom, bottom-left or left
+ * The default is top-left
+ * @returns {String}
+ */
+ Factory.addGetterSetter(Node, 'embossBlend', false, null, Factory.afterSetFilter);
+ /**
+ * get/set emboss blend. Use with {@link Konva.Filters.Emboss} filter.
+ * @name Konva.Node#embossBlend
+ * @method
+ * @param {Boolean} embossBlend
+ * @returns {Boolean}
+ */
+
+ function remap(fromValue, fromMin, fromMax, toMin, toMax) {
+ // Compute the range of the data
+ var fromRange = fromMax - fromMin, toRange = toMax - toMin, toValue;
+ // If either range is 0, then the value can only be mapped to 1 value
+ if (fromRange === 0) {
+ return toMin + toRange / 2;
+ }
+ if (toRange === 0) {
+ return toMin;
+ }
+ // (1) untranslate, (2) unscale, (3) rescale, (4) retranslate
+ toValue = (fromValue - fromMin) / fromRange;
+ toValue = toRange * toValue + toMin;
+ return toValue;
+ }
+ /**
+ * Enhance Filter. Adjusts the colors so that they span the widest
+ * possible range (ie 0-255). Performs w*h pixel reads and w*h pixel
+ * writes.
+ * @function
+ * @name Enhance
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @author ippo615
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Enhance]);
+ * node.enhance(0.4);
+ */
+ var Enhance = function (imageData) {
+ var data = imageData.data, nSubPixels = data.length, rMin = data[0], rMax = rMin, r, gMin = data[1], gMax = gMin, g, bMin = data[2], bMax = bMin, b, i;
+ // If we are not enhancing anything - don't do any computation
+ var enhanceAmount = this.enhance();
+ if (enhanceAmount === 0) {
+ return;
+ }
+ // 1st Pass - find the min and max for each channel:
+ for (i = 0; i < nSubPixels; i += 4) {
+ r = data[i + 0];
+ if (r < rMin) {
+ rMin = r;
+ }
+ else if (r > rMax) {
+ rMax = r;
+ }
+ g = data[i + 1];
+ if (g < gMin) {
+ gMin = g;
+ }
+ else if (g > gMax) {
+ gMax = g;
+ }
+ b = data[i + 2];
+ if (b < bMin) {
+ bMin = b;
+ }
+ else if (b > bMax) {
+ bMax = b;
+ }
+ //a = data[i + 3];
+ //if (a < aMin) { aMin = a; } else
+ //if (a > aMax) { aMax = a; }
+ }
+ // If there is only 1 level - don't remap
+ if (rMax === rMin) {
+ rMax = 255;
+ rMin = 0;
+ }
+ if (gMax === gMin) {
+ gMax = 255;
+ gMin = 0;
+ }
+ if (bMax === bMin) {
+ bMax = 255;
+ bMin = 0;
+ }
+ var rMid, rGoalMax, rGoalMin, gMid, gGoalMax, gGoalMin, bMid, bGoalMax, bGoalMin;
+ // If the enhancement is positive - stretch the histogram
+ if (enhanceAmount > 0) {
+ rGoalMax = rMax + enhanceAmount * (255 - rMax);
+ rGoalMin = rMin - enhanceAmount * (rMin - 0);
+ gGoalMax = gMax + enhanceAmount * (255 - gMax);
+ gGoalMin = gMin - enhanceAmount * (gMin - 0);
+ bGoalMax = bMax + enhanceAmount * (255 - bMax);
+ bGoalMin = bMin - enhanceAmount * (bMin - 0);
+ // If the enhancement is negative - compress the histogram
+ }
+ else {
+ rMid = (rMax + rMin) * 0.5;
+ rGoalMax = rMax + enhanceAmount * (rMax - rMid);
+ rGoalMin = rMin + enhanceAmount * (rMin - rMid);
+ gMid = (gMax + gMin) * 0.5;
+ gGoalMax = gMax + enhanceAmount * (gMax - gMid);
+ gGoalMin = gMin + enhanceAmount * (gMin - gMid);
+ bMid = (bMax + bMin) * 0.5;
+ bGoalMax = bMax + enhanceAmount * (bMax - bMid);
+ bGoalMin = bMin + enhanceAmount * (bMin - bMid);
+ }
+ // Pass 2 - remap everything, except the alpha
+ for (i = 0; i < nSubPixels; i += 4) {
+ data[i + 0] = remap(data[i + 0], rMin, rMax, rGoalMin, rGoalMax);
+ data[i + 1] = remap(data[i + 1], gMin, gMax, gGoalMin, gGoalMax);
+ data[i + 2] = remap(data[i + 2], bMin, bMax, bGoalMin, bGoalMax);
+ //data[i + 3] = remap(data[i + 3], aMin, aMax, aGoalMin, aGoalMax);
+ }
+ };
+ /**
+ * get/set enhance. Use with {@link Konva.Filters.Enhance} filter. -1 to 1 values
+ * @name Konva.Node#enhance
+ * @method
+ * @param {Float} amount
+ * @returns {Float}
+ */
+ Factory.addGetterSetter(Node, 'enhance', 0, getNumberValidator(), Factory.afterSetFilter);
+
+ /**
+ * Grayscale Filter
+ * @function
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Grayscale]);
+ */
+ var Grayscale = function (imageData) {
+ var data = imageData.data, len = data.length, i, brightness;
+ for (i = 0; i < len; i += 4) {
+ brightness = 0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2];
+ // red
+ data[i] = brightness;
+ // green
+ data[i + 1] = brightness;
+ // blue
+ data[i + 2] = brightness;
+ }
+ };
+
+ Factory.addGetterSetter(Node, 'hue', 0, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set hsv hue in degrees. Use with {@link Konva.Filters.HSV} or {@link Konva.Filters.HSL} filter.
+ * @name Konva.Node#hue
+ * @method
+ * @param {Number} hue value between 0 and 359
+ * @returns {Number}
+ */
+ Factory.addGetterSetter(Node, 'saturation', 0, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set hsv saturation. Use with {@link Konva.Filters.HSV} or {@link Konva.Filters.HSL} filter.
+ * @name Konva.Node#saturation
+ * @method
+ * @param {Number} saturation 0 is no change, -1.0 halves the saturation, 1.0 doubles, etc..
+ * @returns {Number}
+ */
+ Factory.addGetterSetter(Node, 'luminance', 0, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set hsl luminance. Use with {@link Konva.Filters.HSL} filter.
+ * @name Konva.Node#luminance
+ * @method
+ * @param {Number} value from -1 to 1
+ * @returns {Number}
+ */
+ /**
+ * HSL Filter. Adjusts the hue, saturation and luminance (or lightness)
+ * @function
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @author ippo615
+ * @example
+ * image.filters([Konva.Filters.HSL]);
+ * image.luminance(0.2);
+ */
+ var HSL = function (imageData) {
+ var data = imageData.data, nPixels = data.length, v = 1, s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360, l = this.luminance() * 127, i;
+ // Basis for the technique used:
+ // http://beesbuzz.biz/code/hsv_color_transforms.php
+ // V is the value multiplier (1 for none, 2 for double, 0.5 for half)
+ // S is the saturation multiplier (1 for none, 2 for double, 0.5 for half)
+ // H is the hue shift in degrees (0 to 360)
+ // vsu = V*S*cos(H*PI/180);
+ // vsw = V*S*sin(H*PI/180);
+ //[ .299V+.701vsu+.168vsw .587V-.587vsu+.330vsw .114V-.114vsu-.497vsw ] [R]
+ //[ .299V-.299vsu-.328vsw .587V+.413vsu+.035vsw .114V-.114vsu+.292vsw ]*[G]
+ //[ .299V-.300vsu+1.25vsw .587V-.588vsu-1.05vsw .114V+.886vsu-.203vsw ] [B]
+ // Precompute the values in the matrix:
+ var vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);
+ // (result spot)(source spot)
+ var rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;
+ var gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;
+ var br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;
+ var r, g, b, a;
+ for (i = 0; i < nPixels; i += 4) {
+ r = data[i + 0];
+ g = data[i + 1];
+ b = data[i + 2];
+ a = data[i + 3];
+ data[i + 0] = rr * r + rg * g + rb * b + l;
+ data[i + 1] = gr * r + gg * g + gb * b + l;
+ data[i + 2] = br * r + bg * g + bb * b + l;
+ data[i + 3] = a; // alpha
+ }
+ };
+
+ /**
+ * HSV Filter. Adjusts the hue, saturation and value
+ * @function
+ * @name HSV
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @author ippo615
+ * @example
+ * image.filters([Konva.Filters.HSV]);
+ * image.value(200);
+ */
+ var HSV = function (imageData) {
+ var data = imageData.data, nPixels = data.length, v = Math.pow(2, this.value()), s = Math.pow(2, this.saturation()), h = Math.abs(this.hue() + 360) % 360, i;
+ // Basis for the technique used:
+ // http://beesbuzz.biz/code/hsv_color_transforms.php
+ // V is the value multiplier (1 for none, 2 for double, 0.5 for half)
+ // S is the saturation multiplier (1 for none, 2 for double, 0.5 for half)
+ // H is the hue shift in degrees (0 to 360)
+ // vsu = V*S*cos(H*PI/180);
+ // vsw = V*S*sin(H*PI/180);
+ //[ .299V+.701vsu+.168vsw .587V-.587vsu+.330vsw .114V-.114vsu-.497vsw ] [R]
+ //[ .299V-.299vsu-.328vsw .587V+.413vsu+.035vsw .114V-.114vsu+.292vsw ]*[G]
+ //[ .299V-.300vsu+1.25vsw .587V-.588vsu-1.05vsw .114V+.886vsu-.203vsw ] [B]
+ // Precompute the values in the matrix:
+ var vsu = v * s * Math.cos((h * Math.PI) / 180), vsw = v * s * Math.sin((h * Math.PI) / 180);
+ // (result spot)(source spot)
+ var rr = 0.299 * v + 0.701 * vsu + 0.167 * vsw, rg = 0.587 * v - 0.587 * vsu + 0.33 * vsw, rb = 0.114 * v - 0.114 * vsu - 0.497 * vsw;
+ var gr = 0.299 * v - 0.299 * vsu - 0.328 * vsw, gg = 0.587 * v + 0.413 * vsu + 0.035 * vsw, gb = 0.114 * v - 0.114 * vsu + 0.293 * vsw;
+ var br = 0.299 * v - 0.3 * vsu + 1.25 * vsw, bg = 0.587 * v - 0.586 * vsu - 1.05 * vsw, bb = 0.114 * v + 0.886 * vsu - 0.2 * vsw;
+ var r, g, b, a;
+ for (i = 0; i < nPixels; i += 4) {
+ r = data[i + 0];
+ g = data[i + 1];
+ b = data[i + 2];
+ a = data[i + 3];
+ data[i + 0] = rr * r + rg * g + rb * b;
+ data[i + 1] = gr * r + gg * g + gb * b;
+ data[i + 2] = br * r + bg * g + bb * b;
+ data[i + 3] = a; // alpha
+ }
+ };
+ Factory.addGetterSetter(Node, 'hue', 0, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set hsv hue in degrees. Use with {@link Konva.Filters.HSV} or {@link Konva.Filters.HSL} filter.
+ * @name Konva.Node#hue
+ * @method
+ * @param {Number} hue value between 0 and 359
+ * @returns {Number}
+ */
+ Factory.addGetterSetter(Node, 'saturation', 0, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set hsv saturation. Use with {@link Konva.Filters.HSV} or {@link Konva.Filters.HSL} filter.
+ * @name Konva.Node#saturation
+ * @method
+ * @param {Number} saturation 0 is no change, -1.0 halves the saturation, 1.0 doubles, etc..
+ * @returns {Number}
+ */
+ Factory.addGetterSetter(Node, 'value', 0, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set hsv value. Use with {@link Konva.Filters.HSV} filter.
+ * @name Konva.Node#value
+ * @method
+ * @param {Number} value 0 is no change, -1.0 halves the value, 1.0 doubles, etc..
+ * @returns {Number}
+ */
+
+ /**
+ * Invert Filter
+ * @function
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Invert]);
+ */
+ var Invert = function (imageData) {
+ var data = imageData.data, len = data.length, i;
+ for (i = 0; i < len; i += 4) {
+ // red
+ data[i] = 255 - data[i];
+ // green
+ data[i + 1] = 255 - data[i + 1];
+ // blue
+ data[i + 2] = 255 - data[i + 2];
+ }
+ };
+
+ /*
+ * ToPolar Filter. Converts image data to polar coordinates. Performs
+ * w*h*4 pixel reads and w*h pixel writes. The r axis is placed along
+ * what would be the y axis and the theta axis along the x axis.
+ * @function
+ * @author ippo615
+ * @memberof Konva.Filters
+ * @param {ImageData} src, the source image data (what will be transformed)
+ * @param {ImageData} dst, the destination image data (where it will be saved)
+ * @param {Object} opt
+ * @param {Number} [opt.polarCenterX] horizontal location for the center of the circle,
+ * default is in the middle
+ * @param {Number} [opt.polarCenterY] vertical location for the center of the circle,
+ * default is in the middle
+ */
+ var ToPolar = function (src, dst, opt) {
+ var srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2, i, x, y, r = 0, g = 0, b = 0, a = 0;
+ // Find the largest radius
+ var rad, rMax = Math.sqrt(xMid * xMid + yMid * yMid);
+ x = xSize - xMid;
+ y = ySize - yMid;
+ rad = Math.sqrt(x * x + y * y);
+ rMax = rad > rMax ? rad : rMax;
+ // We'll be uisng y as the radius, and x as the angle (theta=t)
+ var rSize = ySize, tSize = xSize, radius, theta;
+ // We want to cover all angles (0-360) and we need to convert to
+ // radians (*PI/180)
+ var conversion = ((360 / tSize) * Math.PI) / 180, sin, cos;
+ // var x1, x2, x1i, x2i, y1, y2, y1i, y2i, scale;
+ for (theta = 0; theta < tSize; theta += 1) {
+ sin = Math.sin(theta * conversion);
+ cos = Math.cos(theta * conversion);
+ for (radius = 0; radius < rSize; radius += 1) {
+ x = Math.floor(xMid + ((rMax * radius) / rSize) * cos);
+ y = Math.floor(yMid + ((rMax * radius) / rSize) * sin);
+ i = (y * xSize + x) * 4;
+ r = srcPixels[i + 0];
+ g = srcPixels[i + 1];
+ b = srcPixels[i + 2];
+ a = srcPixels[i + 3];
+ // Store it
+ //i = (theta * xSize + radius) * 4;
+ i = (theta + radius * xSize) * 4;
+ dstPixels[i + 0] = r;
+ dstPixels[i + 1] = g;
+ dstPixels[i + 2] = b;
+ dstPixels[i + 3] = a;
+ }
+ }
+ };
+ /*
+ * FromPolar Filter. Converts image data from polar coordinates back to rectangular.
+ * Performs w*h*4 pixel reads and w*h pixel writes.
+ * @function
+ * @author ippo615
+ * @memberof Konva.Filters
+ * @param {ImageData} src, the source image data (what will be transformed)
+ * @param {ImageData} dst, the destination image data (where it will be saved)
+ * @param {Object} opt
+ * @param {Number} [opt.polarCenterX] horizontal location for the center of the circle,
+ * default is in the middle
+ * @param {Number} [opt.polarCenterY] vertical location for the center of the circle,
+ * default is in the middle
+ * @param {Number} [opt.polarRotation] amount to rotate the image counterclockwis,
+ * 0 is no rotation, 360 degrees is a full rotation
+ */
+ var FromPolar = function (src, dst, opt) {
+ var srcPixels = src.data, dstPixels = dst.data, xSize = src.width, ySize = src.height, xMid = opt.polarCenterX || xSize / 2, yMid = opt.polarCenterY || ySize / 2, i, x, y, dx, dy, r = 0, g = 0, b = 0, a = 0;
+ // Find the largest radius
+ var rad, rMax = Math.sqrt(xMid * xMid + yMid * yMid);
+ x = xSize - xMid;
+ y = ySize - yMid;
+ rad = Math.sqrt(x * x + y * y);
+ rMax = rad > rMax ? rad : rMax;
+ // We'll be uisng x as the radius, and y as the angle (theta=t)
+ var rSize = ySize, tSize = xSize, radius, theta, phaseShift = opt.polarRotation || 0;
+ // We need to convert to degrees and we need to make sure
+ // it's between (0-360)
+ // var conversion = tSize/360*180/Math.PI;
+ //var conversion = tSize/360*180/Math.PI;
+ var x1, y1;
+ for (x = 0; x < xSize; x += 1) {
+ for (y = 0; y < ySize; y += 1) {
+ dx = x - xMid;
+ dy = y - yMid;
+ radius = (Math.sqrt(dx * dx + dy * dy) * rSize) / rMax;
+ theta = ((Math.atan2(dy, dx) * 180) / Math.PI + 360 + phaseShift) % 360;
+ theta = (theta * tSize) / 360;
+ x1 = Math.floor(theta);
+ y1 = Math.floor(radius);
+ i = (y1 * xSize + x1) * 4;
+ r = srcPixels[i + 0];
+ g = srcPixels[i + 1];
+ b = srcPixels[i + 2];
+ a = srcPixels[i + 3];
+ // Store it
+ i = (y * xSize + x) * 4;
+ dstPixels[i + 0] = r;
+ dstPixels[i + 1] = g;
+ dstPixels[i + 2] = b;
+ dstPixels[i + 3] = a;
+ }
+ }
+ };
+ //Konva.Filters.ToPolar = Util._FilterWrapDoubleBuffer(ToPolar);
+ //Konva.Filters.FromPolar = Util._FilterWrapDoubleBuffer(FromPolar);
+ // create a temporary canvas for working - shared between multiple calls
+ /*
+ * Kaleidoscope Filter.
+ * @function
+ * @name Kaleidoscope
+ * @author ippo615
+ * @memberof Konva.Filters
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Kaleidoscope]);
+ * node.kaleidoscopePower(3);
+ * node.kaleidoscopeAngle(45);
+ */
+ var Kaleidoscope = function (imageData) {
+ var xSize = imageData.width, ySize = imageData.height;
+ var x, y, xoff, i, r, g, b, a, srcPos, dstPos;
+ var power = Math.round(this.kaleidoscopePower());
+ var angle = Math.round(this.kaleidoscopeAngle());
+ var offset = Math.floor((xSize * (angle % 360)) / 360);
+ if (power < 1) {
+ return;
+ }
+ // Work with our shared buffer canvas
+ var tempCanvas = Util.createCanvasElement();
+ tempCanvas.width = xSize;
+ tempCanvas.height = ySize;
+ var scratchData = tempCanvas
+ .getContext('2d')
+ .getImageData(0, 0, xSize, ySize);
+ // Convert thhe original to polar coordinates
+ ToPolar(imageData, scratchData, {
+ polarCenterX: xSize / 2,
+ polarCenterY: ySize / 2
+ });
+ // Determine how big each section will be, if it's too small
+ // make it bigger
+ var minSectionSize = xSize / Math.pow(2, power);
+ while (minSectionSize <= 8) {
+ minSectionSize = minSectionSize * 2;
+ power -= 1;
+ }
+ minSectionSize = Math.ceil(minSectionSize);
+ var sectionSize = minSectionSize;
+ // Copy the offset region to 0
+ // Depending on the size of filter and location of the offset we may need
+ // to copy the section backwards to prevent it from rewriting itself
+ var xStart = 0, xEnd = sectionSize, xDelta = 1;
+ if (offset + minSectionSize > xSize) {
+ xStart = sectionSize;
+ xEnd = 0;
+ xDelta = -1;
+ }
+ for (y = 0; y < ySize; y += 1) {
+ for (x = xStart; x !== xEnd; x += xDelta) {
+ xoff = Math.round(x + offset) % xSize;
+ srcPos = (xSize * y + xoff) * 4;
+ r = scratchData.data[srcPos + 0];
+ g = scratchData.data[srcPos + 1];
+ b = scratchData.data[srcPos + 2];
+ a = scratchData.data[srcPos + 3];
+ dstPos = (xSize * y + x) * 4;
+ scratchData.data[dstPos + 0] = r;
+ scratchData.data[dstPos + 1] = g;
+ scratchData.data[dstPos + 2] = b;
+ scratchData.data[dstPos + 3] = a;
+ }
+ }
+ // Perform the actual effect
+ for (y = 0; y < ySize; y += 1) {
+ sectionSize = Math.floor(minSectionSize);
+ for (i = 0; i < power; i += 1) {
+ for (x = 0; x < sectionSize + 1; x += 1) {
+ srcPos = (xSize * y + x) * 4;
+ r = scratchData.data[srcPos + 0];
+ g = scratchData.data[srcPos + 1];
+ b = scratchData.data[srcPos + 2];
+ a = scratchData.data[srcPos + 3];
+ dstPos = (xSize * y + sectionSize * 2 - x - 1) * 4;
+ scratchData.data[dstPos + 0] = r;
+ scratchData.data[dstPos + 1] = g;
+ scratchData.data[dstPos + 2] = b;
+ scratchData.data[dstPos + 3] = a;
+ }
+ sectionSize *= 2;
+ }
+ }
+ // Convert back from polar coordinates
+ FromPolar(scratchData, imageData, { polarRotation: 0 });
+ };
+ /**
+ * get/set kaleidoscope power. Use with {@link Konva.Filters.Kaleidoscope} filter.
+ * @name Konva.Node#kaleidoscopePower
+ * @method
+ * @param {Integer} power of kaleidoscope
+ * @returns {Integer}
+ */
+ Factory.addGetterSetter(Node, 'kaleidoscopePower', 2, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set kaleidoscope angle. Use with {@link Konva.Filters.Kaleidoscope} filter.
+ * @name Konva.Node#kaleidoscopeAngle
+ * @method
+ * @param {Integer} degrees
+ * @returns {Integer}
+ */
+ Factory.addGetterSetter(Node, 'kaleidoscopeAngle', 0, getNumberValidator(), Factory.afterSetFilter);
+
+ function pixelAt(idata, x, y) {
+ var idx = (y * idata.width + x) * 4;
+ var d = [];
+ d.push(idata.data[idx++], idata.data[idx++], idata.data[idx++], idata.data[idx++]);
+ return d;
+ }
+ function rgbDistance(p1, p2) {
+ return Math.sqrt(Math.pow(p1[0] - p2[0], 2) +
+ Math.pow(p1[1] - p2[1], 2) +
+ Math.pow(p1[2] - p2[2], 2));
+ }
+ function rgbMean(pTab) {
+ var m = [0, 0, 0];
+ for (var i = 0; i < pTab.length; i++) {
+ m[0] += pTab[i][0];
+ m[1] += pTab[i][1];
+ m[2] += pTab[i][2];
+ }
+ m[0] /= pTab.length;
+ m[1] /= pTab.length;
+ m[2] /= pTab.length;
+ return m;
+ }
+ function backgroundMask(idata, threshold) {
+ var rgbv_no = pixelAt(idata, 0, 0);
+ var rgbv_ne = pixelAt(idata, idata.width - 1, 0);
+ var rgbv_so = pixelAt(idata, 0, idata.height - 1);
+ var rgbv_se = pixelAt(idata, idata.width - 1, idata.height - 1);
+ var thres = threshold || 10;
+ if (rgbDistance(rgbv_no, rgbv_ne) < thres &&
+ rgbDistance(rgbv_ne, rgbv_se) < thres &&
+ rgbDistance(rgbv_se, rgbv_so) < thres &&
+ rgbDistance(rgbv_so, rgbv_no) < thres) {
+ // Mean color
+ var mean = rgbMean([rgbv_ne, rgbv_no, rgbv_se, rgbv_so]);
+ // Mask based on color distance
+ var mask = [];
+ for (var i = 0; i < idata.width * idata.height; i++) {
+ var d = rgbDistance(mean, [
+ idata.data[i * 4],
+ idata.data[i * 4 + 1],
+ idata.data[i * 4 + 2]
+ ]);
+ mask[i] = d < thres ? 0 : 255;
+ }
+ return mask;
+ }
+ }
+ function applyMask(idata, mask) {
+ for (var i = 0; i < idata.width * idata.height; i++) {
+ idata.data[4 * i + 3] = mask[i];
+ }
+ }
+ function erodeMask(mask, sw, sh) {
+ var weights = [1, 1, 1, 1, 0, 1, 1, 1, 1];
+ var side = Math.round(Math.sqrt(weights.length));
+ var halfSide = Math.floor(side / 2);
+ var maskResult = [];
+ for (var y = 0; y < sh; y++) {
+ for (var x = 0; x < sw; x++) {
+ var so = y * sw + x;
+ var a = 0;
+ for (var cy = 0; cy < side; cy++) {
+ for (var cx = 0; cx < side; cx++) {
+ var scy = y + cy - halfSide;
+ var scx = x + cx - halfSide;
+ if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {
+ var srcOff = scy * sw + scx;
+ var wt = weights[cy * side + cx];
+ a += mask[srcOff] * wt;
+ }
+ }
+ }
+ maskResult[so] = a === 255 * 8 ? 255 : 0;
+ }
+ }
+ return maskResult;
+ }
+ function dilateMask(mask, sw, sh) {
+ var weights = [1, 1, 1, 1, 1, 1, 1, 1, 1];
+ var side = Math.round(Math.sqrt(weights.length));
+ var halfSide = Math.floor(side / 2);
+ var maskResult = [];
+ for (var y = 0; y < sh; y++) {
+ for (var x = 0; x < sw; x++) {
+ var so = y * sw + x;
+ var a = 0;
+ for (var cy = 0; cy < side; cy++) {
+ for (var cx = 0; cx < side; cx++) {
+ var scy = y + cy - halfSide;
+ var scx = x + cx - halfSide;
+ if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {
+ var srcOff = scy * sw + scx;
+ var wt = weights[cy * side + cx];
+ a += mask[srcOff] * wt;
+ }
+ }
+ }
+ maskResult[so] = a >= 255 * 4 ? 255 : 0;
+ }
+ }
+ return maskResult;
+ }
+ function smoothEdgeMask(mask, sw, sh) {
+ var weights = [1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9, 1 / 9];
+ var side = Math.round(Math.sqrt(weights.length));
+ var halfSide = Math.floor(side / 2);
+ var maskResult = [];
+ for (var y = 0; y < sh; y++) {
+ for (var x = 0; x < sw; x++) {
+ var so = y * sw + x;
+ var a = 0;
+ for (var cy = 0; cy < side; cy++) {
+ for (var cx = 0; cx < side; cx++) {
+ var scy = y + cy - halfSide;
+ var scx = x + cx - halfSide;
+ if (scy >= 0 && scy < sh && scx >= 0 && scx < sw) {
+ var srcOff = scy * sw + scx;
+ var wt = weights[cy * side + cx];
+ a += mask[srcOff] * wt;
+ }
+ }
+ }
+ maskResult[so] = a;
+ }
+ }
+ return maskResult;
+ }
+ /**
+ * Mask Filter
+ * @function
+ * @name Mask
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Mask]);
+ * node.threshold(200);
+ */
+ var Mask = function (imageData) {
+ // Detect pixels close to the background color
+ var threshold = this.threshold(), mask = backgroundMask(imageData, threshold);
+ if (mask) {
+ // Erode
+ mask = erodeMask(mask, imageData.width, imageData.height);
+ // Dilate
+ mask = dilateMask(mask, imageData.width, imageData.height);
+ // Gradient
+ mask = smoothEdgeMask(mask, imageData.width, imageData.height);
+ // Apply mask
+ applyMask(imageData, mask);
+ }
+ return imageData;
+ };
+ Factory.addGetterSetter(Node, 'threshold', 0, getNumberValidator(), Factory.afterSetFilter);
+
+ /**
+ * Noise Filter. Randomly adds or substracts to the color channels
+ * @function
+ * @name Noise
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @author ippo615
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Noise]);
+ * node.noise(0.8);
+ */
+ var Noise = function (imageData) {
+ var amount = this.noise() * 255, data = imageData.data, nPixels = data.length, half = amount / 2, i;
+ for (i = 0; i < nPixels; i += 4) {
+ data[i + 0] += half - 2 * half * Math.random();
+ data[i + 1] += half - 2 * half * Math.random();
+ data[i + 2] += half - 2 * half * Math.random();
+ }
+ };
+ Factory.addGetterSetter(Node, 'noise', 0.2, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set noise amount. Must be a value between 0 and 1. Use with {@link Konva.Filters.Noise} filter.
+ * @name Konva.Node#noise
+ * @method
+ * @param {Number} noise
+ * @returns {Number}
+ */
+
+ /*eslint-disable max-depth */
+ /**
+ * Pixelate Filter. Averages groups of pixels and redraws
+ * them as larger pixels
+ * @function
+ * @name Pixelate
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @author ippo615
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Pixelate]);
+ * node.pixelSize(10);
+ */
+ var Pixelate = function (imageData) {
+ var pixelSize = Math.ceil(this.pixelSize()), width = imageData.width, height = imageData.height, x, y, i,
+ //pixelsPerBin = pixelSize * pixelSize,
+ red, green, blue, alpha, nBinsX = Math.ceil(width / pixelSize), nBinsY = Math.ceil(height / pixelSize), xBinStart, xBinEnd, yBinStart, yBinEnd, xBin, yBin, pixelsInBin, data = imageData.data;
+ if (pixelSize <= 0) {
+ Util.error('pixelSize value can not be <= 0');
+ return;
+ }
+ for (xBin = 0; xBin < nBinsX; xBin += 1) {
+ for (yBin = 0; yBin < nBinsY; yBin += 1) {
+ // Initialize the color accumlators to 0
+ red = 0;
+ green = 0;
+ blue = 0;
+ alpha = 0;
+ // Determine which pixels are included in this bin
+ xBinStart = xBin * pixelSize;
+ xBinEnd = xBinStart + pixelSize;
+ yBinStart = yBin * pixelSize;
+ yBinEnd = yBinStart + pixelSize;
+ // Add all of the pixels to this bin!
+ pixelsInBin = 0;
+ for (x = xBinStart; x < xBinEnd; x += 1) {
+ if (x >= width) {
+ continue;
+ }
+ for (y = yBinStart; y < yBinEnd; y += 1) {
+ if (y >= height) {
+ continue;
+ }
+ i = (width * y + x) * 4;
+ red += data[i + 0];
+ green += data[i + 1];
+ blue += data[i + 2];
+ alpha += data[i + 3];
+ pixelsInBin += 1;
+ }
+ }
+ // Make sure the channels are between 0-255
+ red = red / pixelsInBin;
+ green = green / pixelsInBin;
+ blue = blue / pixelsInBin;
+ alpha = alpha / pixelsInBin;
+ // Draw this bin
+ for (x = xBinStart; x < xBinEnd; x += 1) {
+ if (x >= width) {
+ continue;
+ }
+ for (y = yBinStart; y < yBinEnd; y += 1) {
+ if (y >= height) {
+ continue;
+ }
+ i = (width * y + x) * 4;
+ data[i + 0] = red;
+ data[i + 1] = green;
+ data[i + 2] = blue;
+ data[i + 3] = alpha;
+ }
+ }
+ }
+ }
+ };
+ Factory.addGetterSetter(Node, 'pixelSize', 8, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set pixel size. Use with {@link Konva.Filters.Pixelate} filter.
+ * @name Konva.Node#pixelSize
+ * @method
+ * @param {Integer} pixelSize
+ * @returns {Integer}
+ */
+
+ /**
+ * Posterize Filter. Adjusts the channels so that there are no more
+ * than n different values for that channel. This is also applied
+ * to the alpha channel.
+ * @function
+ * @name Posterize
+ * @author ippo615
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Posterize]);
+ * node.levels(0.8); // between 0 and 1
+ */
+ var Posterize = function (imageData) {
+ // level must be between 1 and 255
+ var levels = Math.round(this.levels() * 254) + 1, data = imageData.data, len = data.length, scale = 255 / levels, i;
+ for (i = 0; i < len; i += 1) {
+ data[i] = Math.floor(data[i] / scale) * scale;
+ }
+ };
+ Factory.addGetterSetter(Node, 'levels', 0.5, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set levels. Must be a number between 0 and 1. Use with {@link Konva.Filters.Posterize} filter.
+ * @name Konva.Node#levels
+ * @method
+ * @param {Number} level between 0 and 1
+ * @returns {Number}
+ */
+
+ /**
+ * RGB Filter
+ * @function
+ * @name RGB
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @author ippo615
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.RGB]);
+ * node.blue(120);
+ * node.green(200);
+ */
+ var RGB = function (imageData) {
+ var data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), i, brightness;
+ for (i = 0; i < nPixels; i += 4) {
+ brightness =
+ (0.34 * data[i] + 0.5 * data[i + 1] + 0.16 * data[i + 2]) / 255;
+ data[i] = brightness * red; // r
+ data[i + 1] = brightness * green; // g
+ data[i + 2] = brightness * blue; // b
+ data[i + 3] = data[i + 3]; // alpha
+ }
+ };
+ Factory.addGetterSetter(Node, 'red', 0, function (val) {
+ this._filterUpToDate = false;
+ if (val > 255) {
+ return 255;
+ }
+ else if (val < 0) {
+ return 0;
+ }
+ else {
+ return Math.round(val);
+ }
+ });
+ /**
+ * get/set filter red value. Use with {@link Konva.Filters.RGB} filter.
+ * @name red
+ * @method
+ * @memberof Konva.Node.prototype
+ * @param {Integer} red value between 0 and 255
+ * @returns {Integer}
+ */
+ Factory.addGetterSetter(Node, 'green', 0, function (val) {
+ this._filterUpToDate = false;
+ if (val > 255) {
+ return 255;
+ }
+ else if (val < 0) {
+ return 0;
+ }
+ else {
+ return Math.round(val);
+ }
+ });
+ /**
+ * get/set filter green value. Use with {@link Konva.Filters.RGB} filter.
+ * @name green
+ * @method
+ * @memberof Konva.Node.prototype
+ * @param {Integer} green value between 0 and 255
+ * @returns {Integer}
+ */
+ Factory.addGetterSetter(Node, 'blue', 0, RGBComponent, Factory.afterSetFilter);
+ /**
+ * get/set filter blue value. Use with {@link Konva.Filters.RGB} filter.
+ * @name blue
+ * @method
+ * @memberof Konva.Node.prototype
+ * @param {Integer} blue value between 0 and 255
+ * @returns {Integer}
+ */
+
+ /**
+ * RGBA Filter
+ * @function
+ * @name RGBA
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @author codefo
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.RGBA]);
+ * node.blue(120);
+ * node.green(200);
+ * node.alpha(0.3);
+ */
+ var RGBA = function (imageData) {
+ var data = imageData.data, nPixels = data.length, red = this.red(), green = this.green(), blue = this.blue(), alpha = this.alpha(), i, ia;
+ for (i = 0; i < nPixels; i += 4) {
+ ia = 1 - alpha;
+ data[i] = red * alpha + data[i] * ia; // r
+ data[i + 1] = green * alpha + data[i + 1] * ia; // g
+ data[i + 2] = blue * alpha + data[i + 2] * ia; // b
+ }
+ };
+ Factory.addGetterSetter(Node, 'red', 0, function (val) {
+ this._filterUpToDate = false;
+ if (val > 255) {
+ return 255;
+ }
+ else if (val < 0) {
+ return 0;
+ }
+ else {
+ return Math.round(val);
+ }
+ });
+ /**
+ * get/set filter red value. Use with {@link Konva.Filters.RGBA} filter.
+ * @name red
+ * @method
+ * @memberof Konva.Node.prototype
+ * @param {Integer} red value between 0 and 255
+ * @returns {Integer}
+ */
+ Factory.addGetterSetter(Node, 'green', 0, function (val) {
+ this._filterUpToDate = false;
+ if (val > 255) {
+ return 255;
+ }
+ else if (val < 0) {
+ return 0;
+ }
+ else {
+ return Math.round(val);
+ }
+ });
+ /**
+ * get/set filter green value. Use with {@link Konva.Filters.RGBA} filter.
+ * @name green
+ * @method
+ * @memberof Konva.Node.prototype
+ * @param {Integer} green value between 0 and 255
+ * @returns {Integer}
+ */
+ Factory.addGetterSetter(Node, 'blue', 0, RGBComponent, Factory.afterSetFilter);
+ /**
+ * get/set filter blue value. Use with {@link Konva.Filters.RGBA} filter.
+ * @name blue
+ * @method
+ * @memberof Konva.Node.prototype
+ * @param {Integer} blue value between 0 and 255
+ * @returns {Integer}
+ */
+ Factory.addGetterSetter(Node, 'alpha', 1, function (val) {
+ this._filterUpToDate = false;
+ if (val > 1) {
+ return 1;
+ }
+ else if (val < 0) {
+ return 0;
+ }
+ else {
+ return val;
+ }
+ });
+ /**
+ * get/set filter alpha value. Use with {@link Konva.Filters.RGBA} filter.
+ * @name alpha
+ * @method
+ * @memberof Konva.Node.prototype
+ * @param {Float} alpha value between 0 and 1
+ * @returns {Float}
+ */
+
+ // based on https://stackoverflow.com/questions/1061093/how-is-a-sepia-tone-created
+ /**
+ * @function
+ * @name Sepia
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Sepia]);
+ */
+ var Sepia = function (imageData) {
+ var data = imageData.data, nPixels = data.length, i, r, g, b;
+ for (i = 0; i < nPixels; i += 4) {
+ r = data[i + 0];
+ g = data[i + 1];
+ b = data[i + 2];
+ data[i + 0] = Math.min(255, r * 0.393 + g * 0.769 + b * 0.189);
+ data[i + 1] = Math.min(255, r * 0.349 + g * 0.686 + b * 0.168);
+ data[i + 2] = Math.min(255, r * 0.272 + g * 0.534 + b * 0.131);
+ }
+ };
+
+ /**
+ * Solarize Filter
+ * Pixastic Lib - Solarize filter - v0.1.0
+ * Copyright (c) 2008 Jacob Seidelin, jseidelin@nihilogic.dk, http://blog.nihilogic.dk/
+ * License: [http://www.pixastic.com/lib/license.txt]
+ * @function
+ * @name Solarize
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Solarize]);
+ */
+ var Solarize = function (imageData) {
+ var data = imageData.data, w = imageData.width, h = imageData.height, w4 = w * 4, y = h;
+ do {
+ var offsetY = (y - 1) * w4;
+ var x = w;
+ do {
+ var offset = offsetY + (x - 1) * 4;
+ var r = data[offset];
+ var g = data[offset + 1];
+ var b = data[offset + 2];
+ if (r > 127) {
+ r = 255 - r;
+ }
+ if (g > 127) {
+ g = 255 - g;
+ }
+ if (b > 127) {
+ b = 255 - b;
+ }
+ data[offset] = r;
+ data[offset + 1] = g;
+ data[offset + 2] = b;
+ } while (--x);
+ } while (--y);
+ };
+
+ /**
+ * Threshold Filter. Pushes any value above the mid point to
+ * the max and any value below the mid point to the min.
+ * This affects the alpha channel.
+ * @function
+ * @name Threshold
+ * @memberof Konva.Filters
+ * @param {Object} imageData
+ * @author ippo615
+ * @example
+ * node.cache();
+ * node.filters([Konva.Filters.Threshold]);
+ * node.threshold(0.1);
+ */
+ var Threshold = function (imageData) {
+ var level = this.threshold() * 255, data = imageData.data, len = data.length, i;
+ for (i = 0; i < len; i += 1) {
+ data[i] = data[i] < level ? 0 : 255;
+ }
+ };
+ Factory.addGetterSetter(Node, 'threshold', 0.5, getNumberValidator(), Factory.afterSetFilter);
+ /**
+ * get/set threshold. Must be a value between 0 and 1. Use with {@link Konva.Filters.Threshold} or {@link Konva.Filters.Mask} filter.
+ * @name threshold
+ * @method
+ * @memberof Konva.Node.prototype
+ * @param {Number} threshold
+ * @returns {Number}
+ */
+
+ // we need to import core of the Konva and then extend it with all additional objects
+ var Konva$2 = Konva$1.Util._assign(Konva$1, {
+ Arc: Arc,
+ Arrow: Arrow,
+ Circle: Circle,
+ Ellipse: Ellipse,
+ Image: Image,
+ Label: Label,
+ Tag: Tag,
+ Line: Line,
+ Path: Path,
+ Rect: Rect,
+ RegularPolygon: RegularPolygon,
+ Ring: Ring,
+ Sprite: Sprite,
+ Star: Star,
+ Text: Text,
+ TextPath: TextPath,
+ Transformer: Transformer,
+ Wedge: Wedge,
+ /**
+ * @namespace Filters
+ * @memberof Konva
+ */
+ Filters: {
+ Blur: Blur,
+ Brighten: Brighten,
+ Contrast: Contrast,
+ Emboss: Emboss,
+ Enhance: Enhance,
+ Grayscale: Grayscale,
+ HSL: HSL,
+ HSV: HSV,
+ Invert: Invert,
+ Kaleidoscope: Kaleidoscope,
+ Mask: Mask,
+ Noise: Noise,
+ Pixelate: Pixelate,
+ Posterize: Posterize,
+ RGB: RGB,
+ RGBA: RGBA,
+ Sepia: Sepia,
+ Solarize: Solarize,
+ Threshold: Threshold
+ }
+ });
+
+ // main entry for umd build for rollup
+
+ return Konva$2;
+
+ })));
\ No newline at end of file
diff --git a/MessagesMap/js/leaflet-src.esm.js b/MessagesMap/js/leaflet-src.esm.js
new file mode 100644
index 000000000..024614794
--- /dev/null
+++ b/MessagesMap/js/leaflet-src.esm.js
@@ -0,0 +1,13968 @@
+/* @preserve
+ * Leaflet 1.6.0+Detached: bd88f73e8ddb90eb945a28bc1de9eb07f7386118.bd88f73, a JS library for interactive maps. http://leafletjs.com
+ * (c) 2010-2019 Vladimir Agafonkin, (c) 2010-2011 CloudMade
+ */
+
+var version = "1.6.0";
+
+/*
+ * @namespace Util
+ *
+ * Various utility functions, used by Leaflet internally.
+ */
+
+// @function extend(dest: Object, src?: Object): Object
+// Merges the properties of the `src` object (or multiple objects) into `dest` object and returns the latter. Has an `L.extend` shortcut.
+function extend(dest) {
+ var i, j, len, src;
+
+ for (j = 1, len = arguments.length; j < len; j++) {
+ src = arguments[j];
+ for (i in src) {
+ dest[i] = src[i];
+ }
+ }
+ return dest;
+}
+
+// @function create(proto: Object, properties?: Object): Object
+// Compatibility polyfill for [Object.create](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/create)
+var create = Object.create || (function () {
+ function F() {}
+ return function (proto) {
+ F.prototype = proto;
+ return new F();
+ };
+})();
+
+// @function bind(fn: Function, …): Function
+// Returns a new function bound to the arguments passed, like [Function.prototype.bind](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).
+// Has a `L.bind()` shortcut.
+function bind(fn, obj) {
+ var slice = Array.prototype.slice;
+
+ if (fn.bind) {
+ return fn.bind.apply(fn, slice.call(arguments, 1));
+ }
+
+ var args = slice.call(arguments, 2);
+
+ return function () {
+ return fn.apply(obj, args.length ? args.concat(slice.call(arguments)) : arguments);
+ };
+}
+
+// @property lastId: Number
+// Last unique ID used by [`stamp()`](#util-stamp)
+var lastId = 0;
+
+// @function stamp(obj: Object): Number
+// Returns the unique ID of an object, assigning it one if it doesn't have it.
+function stamp(obj) {
+ /*eslint-disable */
+ obj._leaflet_id = obj._leaflet_id || ++lastId;
+ return obj._leaflet_id;
+ /* eslint-enable */
+}
+
+// @function throttle(fn: Function, time: Number, context: Object): Function
+// Returns a function which executes function `fn` with the given scope `context`
+// (so that the `this` keyword refers to `context` inside `fn`'s code). The function
+// `fn` will be called no more than one time per given amount of `time`. The arguments
+// received by the bound function will be any arguments passed when binding the
+// function, followed by any arguments passed when invoking the bound function.
+// Has an `L.throttle` shortcut.
+function throttle(fn, time, context) {
+ var lock, args, wrapperFn, later;
+
+ later = function () {
+ // reset lock and call if queued
+ lock = false;
+ if (args) {
+ wrapperFn.apply(context, args);
+ args = false;
+ }
+ };
+
+ wrapperFn = function () {
+ if (lock) {
+ // called too soon, queue to call later
+ args = arguments;
+
+ } else {
+ // call and lock until later
+ fn.apply(context, arguments);
+ setTimeout(later, time);
+ lock = true;
+ }
+ };
+
+ return wrapperFn;
+}
+
+// @function wrapNum(num: Number, range: Number[], includeMax?: Boolean): Number
+// Returns the number `num` modulo `range` in such a way so it lies within
+// `range[0]` and `range[1]`. The returned value will be always smaller than
+// `range[1]` unless `includeMax` is set to `true`.
+function wrapNum(x, range, includeMax) {
+ var max = range[1],
+ min = range[0],
+ d = max - min;
+ return x === max && includeMax ? x : ((x - min) % d + d) % d + min;
+}
+
+// @function falseFn(): Function
+// Returns a function which always returns `false`.
+function falseFn() { return false; }
+
+// @function formatNum(num: Number, digits?: Number): Number
+// Returns the number `num` rounded to `digits` decimals, or to 6 decimals by default.
+function formatNum(num, digits) {
+ var pow = Math.pow(10, (digits === undefined ? 6 : digits));
+ return Math.round(num * pow) / pow;
+}
+
+// @function trim(str: String): String
+// Compatibility polyfill for [String.prototype.trim](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)
+function trim(str) {
+ return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, '');
+}
+
+// @function splitWords(str: String): String[]
+// Trims and splits the string on whitespace and returns the array of parts.
+function splitWords(str) {
+ return trim(str).split(/\s+/);
+}
+
+// @function setOptions(obj: Object, options: Object): Object
+// Merges the given properties to the `options` of the `obj` object, returning the resulting options. See `Class options`. Has an `L.setOptions` shortcut.
+function setOptions(obj, options) {
+ if (!Object.prototype.hasOwnProperty.call(obj, 'options')) {
+ obj.options = obj.options ? create(obj.options) : {};
+ }
+ for (var i in options) {
+ obj.options[i] = options[i];
+ }
+ return obj.options;
+}
+
+// @function getParamString(obj: Object, existingUrl?: String, uppercase?: Boolean): String
+// Converts an object into a parameter URL string, e.g. `{a: "foo", b: "bar"}`
+// translates to `'?a=foo&b=bar'`. If `existingUrl` is set, the parameters will
+// be appended at the end. If `uppercase` is `true`, the parameter names will
+// be uppercased (e.g. `'?A=foo&B=bar'`)
+function getParamString(obj, existingUrl, uppercase) {
+ var params = [];
+ for (var i in obj) {
+ params.push(encodeURIComponent(uppercase ? i.toUpperCase() : i) + '=' + encodeURIComponent(obj[i]));
+ }
+ return ((!existingUrl || existingUrl.indexOf('?') === -1) ? '?' : '&') + params.join('&');
+}
+
+var templateRe = /\{ *([\w_-]+) *\}/g;
+
+// @function template(str: String, data: Object): String
+// Simple templating facility, accepts a template string of the form `'Hello {a}, {b}'`
+// and a data object like `{a: 'foo', b: 'bar'}`, returns evaluated string
+// `('Hello foo, bar')`. You can also specify functions instead of strings for
+// data values — they will be evaluated passing `data` as an argument.
+function template(str, data) {
+ return str.replace(templateRe, function (str, key) {
+ var value = data[key];
+
+ if (value === undefined) {
+ throw new Error('No value provided for variable ' + str);
+
+ } else if (typeof value === 'function') {
+ value = value(data);
+ }
+ return value;
+ });
+}
+
+// @function isArray(obj): Boolean
+// Compatibility polyfill for [Array.isArray](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)
+var isArray = Array.isArray || function (obj) {
+ return (Object.prototype.toString.call(obj) === '[object Array]');
+};
+
+// @function indexOf(array: Array, el: Object): Number
+// Compatibility polyfill for [Array.prototype.indexOf](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)
+function indexOf(array, el) {
+ for (var i = 0; i < array.length; i++) {
+ if (array[i] === el) { return i; }
+ }
+ return -1;
+}
+
+// @property emptyImageUrl: String
+// Data URI string containing a base64-encoded empty GIF image.
+// Used as a hack to free memory from unused images on WebKit-powered
+// mobile devices (by setting image `src` to this string).
+var emptyImageUrl = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';
+
+// inspired by http://paulirish.com/2011/requestanimationframe-for-smart-animating/
+
+function getPrefixed(name) {
+ return window['webkit' + name] || window['moz' + name] || window['ms' + name];
+}
+
+var lastTime = 0;
+
+// fallback for IE 7-8
+function timeoutDefer(fn) {
+ var time = +new Date(),
+ timeToCall = Math.max(0, 16 - (time - lastTime));
+
+ lastTime = time + timeToCall;
+ return window.setTimeout(fn, timeToCall);
+}
+
+var requestFn = window.requestAnimationFrame || getPrefixed('RequestAnimationFrame') || timeoutDefer;
+var cancelFn = window.cancelAnimationFrame || getPrefixed('CancelAnimationFrame') ||
+ getPrefixed('CancelRequestAnimationFrame') || function (id) { window.clearTimeout(id); };
+
+// @function requestAnimFrame(fn: Function, context?: Object, immediate?: Boolean): Number
+// Schedules `fn` to be executed when the browser repaints. `fn` is bound to
+// `context` if given. When `immediate` is set, `fn` is called immediately if
+// the browser doesn't have native support for
+// [`window.requestAnimationFrame`](https://developer.mozilla.org/docs/Web/API/window/requestAnimationFrame),
+// otherwise it's delayed. Returns a request ID that can be used to cancel the request.
+function requestAnimFrame(fn, context, immediate) {
+ if (immediate && requestFn === timeoutDefer) {
+ fn.call(context);
+ } else {
+ return requestFn.call(window, bind(fn, context));
+ }
+}
+
+// @function cancelAnimFrame(id: Number): undefined
+// Cancels a previous `requestAnimFrame`. See also [window.cancelAnimationFrame](https://developer.mozilla.org/docs/Web/API/window/cancelAnimationFrame).
+function cancelAnimFrame(id) {
+ if (id) {
+ cancelFn.call(window, id);
+ }
+}
+
+var Util = ({
+ extend: extend,
+ create: create,
+ bind: bind,
+ get lastId () { return lastId; },
+ stamp: stamp,
+ throttle: throttle,
+ wrapNum: wrapNum,
+ falseFn: falseFn,
+ formatNum: formatNum,
+ trim: trim,
+ splitWords: splitWords,
+ setOptions: setOptions,
+ getParamString: getParamString,
+ template: template,
+ isArray: isArray,
+ indexOf: indexOf,
+ emptyImageUrl: emptyImageUrl,
+ requestFn: requestFn,
+ cancelFn: cancelFn,
+ requestAnimFrame: requestAnimFrame,
+ cancelAnimFrame: cancelAnimFrame
+});
+
+// @class Class
+// @aka L.Class
+
+// @section
+// @uninheritable
+
+// Thanks to John Resig and Dean Edwards for inspiration!
+
+function Class() {}
+
+Class.extend = function (props) {
+
+ // @function extend(props: Object): Function
+ // [Extends the current class](#class-inheritance) given the properties to be included.
+ // Returns a Javascript function that is a class constructor (to be called with `new`).
+ var NewClass = function () {
+
+ // call the constructor
+ if (this.initialize) {
+ this.initialize.apply(this, arguments);
+ }
+
+ // call all constructor hooks
+ this.callInitHooks();
+ };
+
+ var parentProto = NewClass.__super__ = this.prototype;
+
+ var proto = create(parentProto);
+ proto.constructor = NewClass;
+
+ NewClass.prototype = proto;
+
+ // inherit parent's statics
+ for (var i in this) {
+ if (Object.prototype.hasOwnProperty.call(this, i) && i !== 'prototype' && i !== '__super__') {
+ NewClass[i] = this[i];
+ }
+ }
+
+ // mix static properties into the class
+ if (props.statics) {
+ extend(NewClass, props.statics);
+ delete props.statics;
+ }
+
+ // mix includes into the prototype
+ if (props.includes) {
+ checkDeprecatedMixinEvents(props.includes);
+ extend.apply(null, [proto].concat(props.includes));
+ delete props.includes;
+ }
+
+ // merge options
+ if (proto.options) {
+ props.options = extend(create(proto.options), props.options);
+ }
+
+ // mix given properties into the prototype
+ extend(proto, props);
+
+ proto._initHooks = [];
+
+ // add method for calling all hooks
+ proto.callInitHooks = function () {
+
+ if (this._initHooksCalled) { return; }
+
+ if (parentProto.callInitHooks) {
+ parentProto.callInitHooks.call(this);
+ }
+
+ this._initHooksCalled = true;
+
+ for (var i = 0, len = proto._initHooks.length; i < len; i++) {
+ proto._initHooks[i].call(this);
+ }
+ };
+
+ return NewClass;
+};
+
+
+// @function include(properties: Object): this
+// [Includes a mixin](#class-includes) into the current class.
+Class.include = function (props) {
+ extend(this.prototype, props);
+ return this;
+};
+
+// @function mergeOptions(options: Object): this
+// [Merges `options`](#class-options) into the defaults of the class.
+Class.mergeOptions = function (options) {
+ extend(this.prototype.options, options);
+ return this;
+};
+
+// @function addInitHook(fn: Function): this
+// Adds a [constructor hook](#class-constructor-hooks) to the class.
+Class.addInitHook = function (fn) { // (Function) || (String, args...)
+ var args = Array.prototype.slice.call(arguments, 1);
+
+ var init = typeof fn === 'function' ? fn : function () {
+ this[fn].apply(this, args);
+ };
+
+ this.prototype._initHooks = this.prototype._initHooks || [];
+ this.prototype._initHooks.push(init);
+ return this;
+};
+
+function checkDeprecatedMixinEvents(includes) {
+ if (typeof L === 'undefined' || !L || !L.Mixin) { return; }
+
+ includes = isArray(includes) ? includes : [includes];
+
+ for (var i = 0; i < includes.length; i++) {
+ if (includes[i] === L.Mixin.Events) {
+ console.warn('Deprecated include of L.Mixin.Events: ' +
+ 'this property will be removed in future releases, ' +
+ 'please inherit from L.Evented instead.', new Error().stack);
+ }
+ }
+}
+
+/*
+ * @class Evented
+ * @aka L.Evented
+ * @inherits Class
+ *
+ * A set of methods shared between event-powered classes (like `Map` and `Marker`). Generally, events allow you to execute some function when something happens with an object (e.g. the user clicks on the map, causing the map to fire `'click'` event).
+ *
+ * @example
+ *
+ * ```js
+ * map.on('click', function(e) {
+ * alert(e.latlng);
+ * } );
+ * ```
+ *
+ * Leaflet deals with event listeners by reference, so if you want to add a listener and then remove it, define it as a function:
+ *
+ * ```js
+ * function onClick(e) { ... }
+ *
+ * map.on('click', onClick);
+ * map.off('click', onClick);
+ * ```
+ */
+
+var Events = {
+ /* @method on(type: String, fn: Function, context?: Object): this
+ * Adds a listener function (`fn`) to a particular event type of the object. You can optionally specify the context of the listener (object the this keyword will point to). You can also pass several space-separated types (e.g. `'click dblclick'`).
+ *
+ * @alternative
+ * @method on(eventMap: Object): this
+ * Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`
+ */
+ on: function (types, fn, context) {
+
+ // types can be a map of types/handlers
+ if (typeof types === 'object') {
+ for (var type in types) {
+ // we don't process space-separated events here for performance;
+ // it's a hot path since Layer uses the on(obj) syntax
+ this._on(type, types[type], fn);
+ }
+
+ } else {
+ // types can be a string of space-separated words
+ types = splitWords(types);
+
+ for (var i = 0, len = types.length; i < len; i++) {
+ this._on(types[i], fn, context);
+ }
+ }
+
+ return this;
+ },
+
+ /* @method off(type: String, fn?: Function, context?: Object): this
+ * Removes a previously added listener function. If no function is specified, it will remove all the listeners of that particular event from the object. Note that if you passed a custom context to `on`, you must pass the same context to `off` in order to remove the listener.
+ *
+ * @alternative
+ * @method off(eventMap: Object): this
+ * Removes a set of type/listener pairs.
+ *
+ * @alternative
+ * @method off: this
+ * Removes all listeners to all events on the object. This includes implicitly attached events.
+ */
+ off: function (types, fn, context) {
+
+ if (!types) {
+ // clear all listeners if called without arguments
+ delete this._events;
+
+ } else if (typeof types === 'object') {
+ for (var type in types) {
+ this._off(type, types[type], fn);
+ }
+
+ } else {
+ types = splitWords(types);
+
+ for (var i = 0, len = types.length; i < len; i++) {
+ this._off(types[i], fn, context);
+ }
+ }
+
+ return this;
+ },
+
+ // attach listener (without syntactic sugar now)
+ _on: function (type, fn, context) {
+ this._events = this._events || {};
+
+ /* get/init listeners for type */
+ var typeListeners = this._events[type];
+ if (!typeListeners) {
+ typeListeners = [];
+ this._events[type] = typeListeners;
+ }
+
+ if (context === this) {
+ // Less memory footprint.
+ context = undefined;
+ }
+ var newListener = {fn: fn, ctx: context},
+ listeners = typeListeners;
+
+ // check if fn already there
+ for (var i = 0, len = listeners.length; i < len; i++) {
+ if (listeners[i].fn === fn && listeners[i].ctx === context) {
+ return;
+ }
+ }
+
+ listeners.push(newListener);
+ },
+
+ _off: function (type, fn, context) {
+ var listeners,
+ i,
+ len;
+
+ if (!this._events) { return; }
+
+ listeners = this._events[type];
+
+ if (!listeners) {
+ return;
+ }
+
+ if (!fn) {
+ // Set all removed listeners to noop so they are not called if remove happens in fire
+ for (i = 0, len = listeners.length; i < len; i++) {
+ listeners[i].fn = falseFn;
+ }
+ // clear all listeners for a type if function isn't specified
+ delete this._events[type];
+ return;
+ }
+
+ if (context === this) {
+ context = undefined;
+ }
+
+ if (listeners) {
+
+ // find fn and remove it
+ for (i = 0, len = listeners.length; i < len; i++) {
+ var l = listeners[i];
+ if (l.ctx !== context) { continue; }
+ if (l.fn === fn) {
+
+ // set the removed listener to noop so that's not called if remove happens in fire
+ l.fn = falseFn;
+
+ if (this._firingCount) {
+ /* copy array in case events are being fired */
+ this._events[type] = listeners = listeners.slice();
+ }
+ listeners.splice(i, 1);
+
+ return;
+ }
+ }
+ }
+ },
+
+ // @method fire(type: String, data?: Object, propagate?: Boolean): this
+ // Fires an event of the specified type. You can optionally provide an data
+ // object — the first argument of the listener function will contain its
+ // properties. The event can optionally be propagated to event parents.
+ fire: function (type, data, propagate) {
+ if (!this.listens(type, propagate)) { return this; }
+
+ var event = extend({}, data, {
+ type: type,
+ target: this,
+ sourceTarget: data && data.sourceTarget || this
+ });
+
+ if (this._events) {
+ var listeners = this._events[type];
+
+ if (listeners) {
+ this._firingCount = (this._firingCount + 1) || 1;
+ for (var i = 0, len = listeners.length; i < len; i++) {
+ var l = listeners[i];
+ l.fn.call(l.ctx || this, event);
+ }
+
+ this._firingCount--;
+ }
+ }
+
+ if (propagate) {
+ // propagate the event to parents (set with addEventParent)
+ this._propagateEvent(event);
+ }
+
+ return this;
+ },
+
+ // @method listens(type: String): Boolean
+ // Returns `true` if a particular event type has any listeners attached to it.
+ listens: function (type, propagate) {
+ var listeners = this._events && this._events[type];
+ if (listeners && listeners.length) { return true; }
+
+ if (propagate) {
+ // also check parents for listeners if event propagates
+ for (var id in this._eventParents) {
+ if (this._eventParents[id].listens(type, propagate)) { return true; }
+ }
+ }
+ return false;
+ },
+
+ // @method once(…): this
+ // Behaves as [`on(…)`](#evented-on), except the listener will only get fired once and then removed.
+ once: function (types, fn, context) {
+
+ if (typeof types === 'object') {
+ for (var type in types) {
+ this.once(type, types[type], fn);
+ }
+ return this;
+ }
+
+ var handler = bind(function () {
+ this
+ .off(types, fn, context)
+ .off(types, handler, context);
+ }, this);
+
+ // add a listener that's executed once and removed after that
+ return this
+ .on(types, fn, context)
+ .on(types, handler, context);
+ },
+
+ // @method addEventParent(obj: Evented): this
+ // Adds an event parent - an `Evented` that will receive propagated events
+ addEventParent: function (obj) {
+ this._eventParents = this._eventParents || {};
+ this._eventParents[stamp(obj)] = obj;
+ return this;
+ },
+
+ // @method removeEventParent(obj: Evented): this
+ // Removes an event parent, so it will stop receiving propagated events
+ removeEventParent: function (obj) {
+ if (this._eventParents) {
+ delete this._eventParents[stamp(obj)];
+ }
+ return this;
+ },
+
+ _propagateEvent: function (e) {
+ for (var id in this._eventParents) {
+ this._eventParents[id].fire(e.type, extend({
+ layer: e.target,
+ propagatedFrom: e.target
+ }, e), true);
+ }
+ }
+};
+
+// aliases; we should ditch those eventually
+
+// @method addEventListener(…): this
+// Alias to [`on(…)`](#evented-on)
+Events.addEventListener = Events.on;
+
+// @method removeEventListener(…): this
+// Alias to [`off(…)`](#evented-off)
+
+// @method clearAllEventListeners(…): this
+// Alias to [`off()`](#evented-off)
+Events.removeEventListener = Events.clearAllEventListeners = Events.off;
+
+// @method addOneTimeEventListener(…): this
+// Alias to [`once(…)`](#evented-once)
+Events.addOneTimeEventListener = Events.once;
+
+// @method fireEvent(…): this
+// Alias to [`fire(…)`](#evented-fire)
+Events.fireEvent = Events.fire;
+
+// @method hasEventListeners(…): Boolean
+// Alias to [`listens(…)`](#evented-listens)
+Events.hasEventListeners = Events.listens;
+
+var Evented = Class.extend(Events);
+
+/*
+ * @class Point
+ * @aka L.Point
+ *
+ * Represents a point with `x` and `y` coordinates in pixels.
+ *
+ * @example
+ *
+ * ```js
+ * var point = L.point(200, 300);
+ * ```
+ *
+ * All Leaflet methods and options that accept `Point` objects also accept them in a simple Array form (unless noted otherwise), so these lines are equivalent:
+ *
+ * ```js
+ * map.panBy([200, 300]);
+ * map.panBy(L.point(200, 300));
+ * ```
+ *
+ * Note that `Point` does not inherit from Leaflet's `Class` object,
+ * which means new classes can't inherit from it, and new methods
+ * can't be added to it with the `include` function.
+ */
+
+function Point(x, y, round) {
+ // @property x: Number; The `x` coordinate of the point
+ this.x = (round ? Math.round(x) : x);
+ // @property y: Number; The `y` coordinate of the point
+ this.y = (round ? Math.round(y) : y);
+}
+
+var trunc = Math.trunc || function (v) {
+ return v > 0 ? Math.floor(v) : Math.ceil(v);
+};
+
+Point.prototype = {
+
+ // @method clone(): Point
+ // Returns a copy of the current point.
+ clone: function () {
+ return new Point(this.x, this.y);
+ },
+
+ // @method add(otherPoint: Point): Point
+ // Returns the result of addition of the current and the given points.
+ add: function (point) {
+ // non-destructive, returns a new point
+ return this.clone()._add(toPoint(point));
+ },
+
+ _add: function (point) {
+ // destructive, used directly for performance in situations where it's safe to modify existing point
+ this.x += point.x;
+ this.y += point.y;
+ return this;
+ },
+
+ // @method subtract(otherPoint: Point): Point
+ // Returns the result of subtraction of the given point from the current.
+ subtract: function (point) {
+ return this.clone()._subtract(toPoint(point));
+ },
+
+ _subtract: function (point) {
+ this.x -= point.x;
+ this.y -= point.y;
+ return this;
+ },
+
+ // @method divideBy(num: Number): Point
+ // Returns the result of division of the current point by the given number.
+ divideBy: function (num) {
+ return this.clone()._divideBy(num);
+ },
+
+ _divideBy: function (num) {
+ this.x /= num;
+ this.y /= num;
+ return this;
+ },
+
+ // @method multiplyBy(num: Number): Point
+ // Returns the result of multiplication of the current point by the given number.
+ multiplyBy: function (num) {
+ return this.clone()._multiplyBy(num);
+ },
+
+ _multiplyBy: function (num) {
+ this.x *= num;
+ this.y *= num;
+ return this;
+ },
+
+ // @method scaleBy(scale: Point): Point
+ // Multiply each coordinate of the current point by each coordinate of
+ // `scale`. In linear algebra terms, multiply the point by the
+ // [scaling matrix](https://en.wikipedia.org/wiki/Scaling_%28geometry%29#Matrix_representation)
+ // defined by `scale`.
+ scaleBy: function (point) {
+ return new Point(this.x * point.x, this.y * point.y);
+ },
+
+ // @method unscaleBy(scale: Point): Point
+ // Inverse of `scaleBy`. Divide each coordinate of the current point by
+ // each coordinate of `scale`.
+ unscaleBy: function (point) {
+ return new Point(this.x / point.x, this.y / point.y);
+ },
+
+ // @method round(): Point
+ // Returns a copy of the current point with rounded coordinates.
+ round: function () {
+ return this.clone()._round();
+ },
+
+ _round: function () {
+ this.x = Math.round(this.x);
+ this.y = Math.round(this.y);
+ return this;
+ },
+
+ // @method floor(): Point
+ // Returns a copy of the current point with floored coordinates (rounded down).
+ floor: function () {
+ return this.clone()._floor();
+ },
+
+ _floor: function () {
+ this.x = Math.floor(this.x);
+ this.y = Math.floor(this.y);
+ return this;
+ },
+
+ // @method ceil(): Point
+ // Returns a copy of the current point with ceiled coordinates (rounded up).
+ ceil: function () {
+ return this.clone()._ceil();
+ },
+
+ _ceil: function () {
+ this.x = Math.ceil(this.x);
+ this.y = Math.ceil(this.y);
+ return this;
+ },
+
+ // @method trunc(): Point
+ // Returns a copy of the current point with truncated coordinates (rounded towards zero).
+ trunc: function () {
+ return this.clone()._trunc();
+ },
+
+ _trunc: function () {
+ this.x = trunc(this.x);
+ this.y = trunc(this.y);
+ return this;
+ },
+
+ // @method distanceTo(otherPoint: Point): Number
+ // Returns the cartesian distance between the current and the given points.
+ distanceTo: function (point) {
+ point = toPoint(point);
+
+ var x = point.x - this.x,
+ y = point.y - this.y;
+
+ return Math.sqrt(x * x + y * y);
+ },
+
+ // @method equals(otherPoint: Point): Boolean
+ // Returns `true` if the given point has the same coordinates.
+ equals: function (point) {
+ point = toPoint(point);
+
+ return point.x === this.x &&
+ point.y === this.y;
+ },
+
+ // @method contains(otherPoint: Point): Boolean
+ // Returns `true` if both coordinates of the given point are less than the corresponding current point coordinates (in absolute values).
+ contains: function (point) {
+ point = toPoint(point);
+
+ return Math.abs(point.x) <= Math.abs(this.x) &&
+ Math.abs(point.y) <= Math.abs(this.y);
+ },
+
+ // @method toString(): String
+ // Returns a string representation of the point for debugging purposes.
+ toString: function () {
+ return 'Point(' +
+ formatNum(this.x) + ', ' +
+ formatNum(this.y) + ')';
+ }
+};
+
+// @factory L.point(x: Number, y: Number, round?: Boolean)
+// Creates a Point object with the given `x` and `y` coordinates. If optional `round` is set to true, rounds the `x` and `y` values.
+
+// @alternative
+// @factory L.point(coords: Number[])
+// Expects an array of the form `[x, y]` instead.
+
+// @alternative
+// @factory L.point(coords: Object)
+// Expects a plain object of the form `{x: Number, y: Number}` instead.
+function toPoint(x, y, round) {
+ if (x instanceof Point) {
+ return x;
+ }
+ if (isArray(x)) {
+ return new Point(x[0], x[1]);
+ }
+ if (x === undefined || x === null) {
+ return x;
+ }
+ if (typeof x === 'object' && 'x' in x && 'y' in x) {
+ return new Point(x.x, x.y);
+ }
+ return new Point(x, y, round);
+}
+
+/*
+ * @class Bounds
+ * @aka L.Bounds
+ *
+ * Represents a rectangular area in pixel coordinates.
+ *
+ * @example
+ *
+ * ```js
+ * var p1 = L.point(10, 10),
+ * p2 = L.point(40, 60),
+ * bounds = L.bounds(p1, p2);
+ * ```
+ *
+ * All Leaflet methods that accept `Bounds` objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:
+ *
+ * ```js
+ * otherBounds.intersects([[10, 10], [40, 60]]);
+ * ```
+ *
+ * Note that `Bounds` does not inherit from Leaflet's `Class` object,
+ * which means new classes can't inherit from it, and new methods
+ * can't be added to it with the `include` function.
+ */
+
+function Bounds(a, b) {
+ if (!a) { return; }
+
+ var points = b ? [a, b] : a;
+
+ for (var i = 0, len = points.length; i < len; i++) {
+ this.extend(points[i]);
+ }
+}
+
+Bounds.prototype = {
+ // @method extend(point: Point): this
+ // Extends the bounds to contain the given point.
+ extend: function (point) { // (Point)
+ point = toPoint(point);
+
+ // @property min: Point
+ // The top left corner of the rectangle.
+ // @property max: Point
+ // The bottom right corner of the rectangle.
+ if (!this.min && !this.max) {
+ this.min = point.clone();
+ this.max = point.clone();
+ } else {
+ this.min.x = Math.min(point.x, this.min.x);
+ this.max.x = Math.max(point.x, this.max.x);
+ this.min.y = Math.min(point.y, this.min.y);
+ this.max.y = Math.max(point.y, this.max.y);
+ }
+ return this;
+ },
+
+ // @method getCenter(round?: Boolean): Point
+ // Returns the center point of the bounds.
+ getCenter: function (round) {
+ return new Point(
+ (this.min.x + this.max.x) / 2,
+ (this.min.y + this.max.y) / 2, round);
+ },
+
+ // @method getBottomLeft(): Point
+ // Returns the bottom-left point of the bounds.
+ getBottomLeft: function () {
+ return new Point(this.min.x, this.max.y);
+ },
+
+ // @method getTopRight(): Point
+ // Returns the top-right point of the bounds.
+ getTopRight: function () { // -> Point
+ return new Point(this.max.x, this.min.y);
+ },
+
+ // @method getTopLeft(): Point
+ // Returns the top-left point of the bounds (i.e. [`this.min`](#bounds-min)).
+ getTopLeft: function () {
+ return this.min; // left, top
+ },
+
+ // @method getBottomRight(): Point
+ // Returns the bottom-right point of the bounds (i.e. [`this.max`](#bounds-max)).
+ getBottomRight: function () {
+ return this.max; // right, bottom
+ },
+
+ // @method getSize(): Point
+ // Returns the size of the given bounds
+ getSize: function () {
+ return this.max.subtract(this.min);
+ },
+
+ // @method contains(otherBounds: Bounds): Boolean
+ // Returns `true` if the rectangle contains the given one.
+ // @alternative
+ // @method contains(point: Point): Boolean
+ // Returns `true` if the rectangle contains the given point.
+ contains: function (obj) {
+ var min, max;
+
+ if (typeof obj[0] === 'number' || obj instanceof Point) {
+ obj = toPoint(obj);
+ } else {
+ obj = toBounds(obj);
+ }
+
+ if (obj instanceof Bounds) {
+ min = obj.min;
+ max = obj.max;
+ } else {
+ min = max = obj;
+ }
+
+ return (min.x >= this.min.x) &&
+ (max.x <= this.max.x) &&
+ (min.y >= this.min.y) &&
+ (max.y <= this.max.y);
+ },
+
+ // @method intersects(otherBounds: Bounds): Boolean
+ // Returns `true` if the rectangle intersects the given bounds. Two bounds
+ // intersect if they have at least one point in common.
+ intersects: function (bounds) { // (Bounds) -> Boolean
+ bounds = toBounds(bounds);
+
+ var min = this.min,
+ max = this.max,
+ min2 = bounds.min,
+ max2 = bounds.max,
+ xIntersects = (max2.x >= min.x) && (min2.x <= max.x),
+ yIntersects = (max2.y >= min.y) && (min2.y <= max.y);
+
+ return xIntersects && yIntersects;
+ },
+
+ // @method overlaps(otherBounds: Bounds): Boolean
+ // Returns `true` if the rectangle overlaps the given bounds. Two bounds
+ // overlap if their intersection is an area.
+ overlaps: function (bounds) { // (Bounds) -> Boolean
+ bounds = toBounds(bounds);
+
+ var min = this.min,
+ max = this.max,
+ min2 = bounds.min,
+ max2 = bounds.max,
+ xOverlaps = (max2.x > min.x) && (min2.x < max.x),
+ yOverlaps = (max2.y > min.y) && (min2.y < max.y);
+
+ return xOverlaps && yOverlaps;
+ },
+
+ isValid: function () {
+ return !!(this.min && this.max);
+ }
+};
+
+
+// @factory L.bounds(corner1: Point, corner2: Point)
+// Creates a Bounds object from two corners coordinate pairs.
+// @alternative
+// @factory L.bounds(points: Point[])
+// Creates a Bounds object from the given array of points.
+function toBounds(a, b) {
+ if (!a || a instanceof Bounds) {
+ return a;
+ }
+ return new Bounds(a, b);
+}
+
+/*
+ * @class LatLngBounds
+ * @aka L.LatLngBounds
+ *
+ * Represents a rectangular geographical area on a map.
+ *
+ * @example
+ *
+ * ```js
+ * var corner1 = L.latLng(40.712, -74.227),
+ * corner2 = L.latLng(40.774, -74.125),
+ * bounds = L.latLngBounds(corner1, corner2);
+ * ```
+ *
+ * All Leaflet methods that accept LatLngBounds objects also accept them in a simple Array form (unless noted otherwise), so the bounds example above can be passed like this:
+ *
+ * ```js
+ * map.fitBounds([
+ * [40.712, -74.227],
+ * [40.774, -74.125]
+ * ]);
+ * ```
+ *
+ * Caution: if the area crosses the antimeridian (often confused with the International Date Line), you must specify corners _outside_ the [-180, 180] degrees longitude range.
+ *
+ * Note that `LatLngBounds` does not inherit from Leaflet's `Class` object,
+ * which means new classes can't inherit from it, and new methods
+ * can't be added to it with the `include` function.
+ */
+
+function LatLngBounds(corner1, corner2) { // (LatLng, LatLng) or (LatLng[])
+ if (!corner1) { return; }
+
+ var latlngs = corner2 ? [corner1, corner2] : corner1;
+
+ for (var i = 0, len = latlngs.length; i < len; i++) {
+ this.extend(latlngs[i]);
+ }
+}
+
+LatLngBounds.prototype = {
+
+ // @method extend(latlng: LatLng): this
+ // Extend the bounds to contain the given point
+
+ // @alternative
+ // @method extend(otherBounds: LatLngBounds): this
+ // Extend the bounds to contain the given bounds
+ extend: function (obj) {
+ var sw = this._southWest,
+ ne = this._northEast,
+ sw2, ne2;
+
+ if (obj instanceof LatLng) {
+ sw2 = obj;
+ ne2 = obj;
+
+ } else if (obj instanceof LatLngBounds) {
+ sw2 = obj._southWest;
+ ne2 = obj._northEast;
+
+ if (!sw2 || !ne2) { return this; }
+
+ } else {
+ return obj ? this.extend(toLatLng(obj) || toLatLngBounds(obj)) : this;
+ }
+
+ if (!sw && !ne) {
+ this._southWest = new LatLng(sw2.lat, sw2.lng);
+ this._northEast = new LatLng(ne2.lat, ne2.lng);
+ } else {
+ sw.lat = Math.min(sw2.lat, sw.lat);
+ sw.lng = Math.min(sw2.lng, sw.lng);
+ ne.lat = Math.max(ne2.lat, ne.lat);
+ ne.lng = Math.max(ne2.lng, ne.lng);
+ }
+
+ return this;
+ },
+
+ // @method pad(bufferRatio: Number): LatLngBounds
+ // Returns bounds created by extending or retracting the current bounds by a given ratio in each direction.
+ // For example, a ratio of 0.5 extends the bounds by 50% in each direction.
+ // Negative values will retract the bounds.
+ pad: function (bufferRatio) {
+ var sw = this._southWest,
+ ne = this._northEast,
+ heightBuffer = Math.abs(sw.lat - ne.lat) * bufferRatio,
+ widthBuffer = Math.abs(sw.lng - ne.lng) * bufferRatio;
+
+ return new LatLngBounds(
+ new LatLng(sw.lat - heightBuffer, sw.lng - widthBuffer),
+ new LatLng(ne.lat + heightBuffer, ne.lng + widthBuffer));
+ },
+
+ // @method getCenter(): LatLng
+ // Returns the center point of the bounds.
+ getCenter: function () {
+ return new LatLng(
+ (this._southWest.lat + this._northEast.lat) / 2,
+ (this._southWest.lng + this._northEast.lng) / 2);
+ },
+
+ // @method getSouthWest(): LatLng
+ // Returns the south-west point of the bounds.
+ getSouthWest: function () {
+ return this._southWest;
+ },
+
+ // @method getNorthEast(): LatLng
+ // Returns the north-east point of the bounds.
+ getNorthEast: function () {
+ return this._northEast;
+ },
+
+ // @method getNorthWest(): LatLng
+ // Returns the north-west point of the bounds.
+ getNorthWest: function () {
+ return new LatLng(this.getNorth(), this.getWest());
+ },
+
+ // @method getSouthEast(): LatLng
+ // Returns the south-east point of the bounds.
+ getSouthEast: function () {
+ return new LatLng(this.getSouth(), this.getEast());
+ },
+
+ // @method getWest(): Number
+ // Returns the west longitude of the bounds
+ getWest: function () {
+ return this._southWest.lng;
+ },
+
+ // @method getSouth(): Number
+ // Returns the south latitude of the bounds
+ getSouth: function () {
+ return this._southWest.lat;
+ },
+
+ // @method getEast(): Number
+ // Returns the east longitude of the bounds
+ getEast: function () {
+ return this._northEast.lng;
+ },
+
+ // @method getNorth(): Number
+ // Returns the north latitude of the bounds
+ getNorth: function () {
+ return this._northEast.lat;
+ },
+
+ // @method contains(otherBounds: LatLngBounds): Boolean
+ // Returns `true` if the rectangle contains the given one.
+
+ // @alternative
+ // @method contains (latlng: LatLng): Boolean
+ // Returns `true` if the rectangle contains the given point.
+ contains: function (obj) { // (LatLngBounds) or (LatLng) -> Boolean
+ if (typeof obj[0] === 'number' || obj instanceof LatLng || 'lat' in obj) {
+ obj = toLatLng(obj);
+ } else {
+ obj = toLatLngBounds(obj);
+ }
+
+ var sw = this._southWest,
+ ne = this._northEast,
+ sw2, ne2;
+
+ if (obj instanceof LatLngBounds) {
+ sw2 = obj.getSouthWest();
+ ne2 = obj.getNorthEast();
+ } else {
+ sw2 = ne2 = obj;
+ }
+
+ return (sw2.lat >= sw.lat) && (ne2.lat <= ne.lat) &&
+ (sw2.lng >= sw.lng) && (ne2.lng <= ne.lng);
+ },
+
+ // @method intersects(otherBounds: LatLngBounds): Boolean
+ // Returns `true` if the rectangle intersects the given bounds. Two bounds intersect if they have at least one point in common.
+ intersects: function (bounds) {
+ bounds = toLatLngBounds(bounds);
+
+ var sw = this._southWest,
+ ne = this._northEast,
+ sw2 = bounds.getSouthWest(),
+ ne2 = bounds.getNorthEast(),
+
+ latIntersects = (ne2.lat >= sw.lat) && (sw2.lat <= ne.lat),
+ lngIntersects = (ne2.lng >= sw.lng) && (sw2.lng <= ne.lng);
+
+ return latIntersects && lngIntersects;
+ },
+
+ // @method overlaps(otherBounds: LatLngBounds): Boolean
+ // Returns `true` if the rectangle overlaps the given bounds. Two bounds overlap if their intersection is an area.
+ overlaps: function (bounds) {
+ bounds = toLatLngBounds(bounds);
+
+ var sw = this._southWest,
+ ne = this._northEast,
+ sw2 = bounds.getSouthWest(),
+ ne2 = bounds.getNorthEast(),
+
+ latOverlaps = (ne2.lat > sw.lat) && (sw2.lat < ne.lat),
+ lngOverlaps = (ne2.lng > sw.lng) && (sw2.lng < ne.lng);
+
+ return latOverlaps && lngOverlaps;
+ },
+
+ // @method toBBoxString(): String
+ // Returns a string with bounding box coordinates in a 'southwest_lng,southwest_lat,northeast_lng,northeast_lat' format. Useful for sending requests to web services that return geo data.
+ toBBoxString: function () {
+ return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(',');
+ },
+
+ // @method equals(otherBounds: LatLngBounds, maxMargin?: Number): Boolean
+ // Returns `true` if the rectangle is equivalent (within a small margin of error) to the given bounds. The margin of error can be overridden by setting `maxMargin` to a small number.
+ equals: function (bounds, maxMargin) {
+ if (!bounds) { return false; }
+
+ bounds = toLatLngBounds(bounds);
+
+ return this._southWest.equals(bounds.getSouthWest(), maxMargin) &&
+ this._northEast.equals(bounds.getNorthEast(), maxMargin);
+ },
+
+ // @method isValid(): Boolean
+ // Returns `true` if the bounds are properly initialized.
+ isValid: function () {
+ return !!(this._southWest && this._northEast);
+ }
+};
+
+// TODO International date line?
+
+// @factory L.latLngBounds(corner1: LatLng, corner2: LatLng)
+// Creates a `LatLngBounds` object by defining two diagonally opposite corners of the rectangle.
+
+// @alternative
+// @factory L.latLngBounds(latlngs: LatLng[])
+// Creates a `LatLngBounds` object defined by the geographical points it contains. Very useful for zooming the map to fit a particular set of locations with [`fitBounds`](#map-fitbounds).
+function toLatLngBounds(a, b) {
+ if (a instanceof LatLngBounds) {
+ return a;
+ }
+ return new LatLngBounds(a, b);
+}
+
+/* @class LatLng
+ * @aka L.LatLng
+ *
+ * Represents a geographical point with a certain latitude and longitude.
+ *
+ * @example
+ *
+ * ```
+ * var latlng = L.latLng(50.5, 30.5);
+ * ```
+ *
+ * All Leaflet methods that accept LatLng objects also accept them in a simple Array form and simple object form (unless noted otherwise), so these lines are equivalent:
+ *
+ * ```
+ * map.panTo([50, 30]);
+ * map.panTo({lon: 30, lat: 50});
+ * map.panTo({lat: 50, lng: 30});
+ * map.panTo(L.latLng(50, 30));
+ * ```
+ *
+ * Note that `LatLng` does not inherit from Leaflet's `Class` object,
+ * which means new classes can't inherit from it, and new methods
+ * can't be added to it with the `include` function.
+ */
+
+function LatLng(lat, lng, alt) {
+ if (isNaN(lat) || isNaN(lng)) {
+ throw new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');
+ }
+
+ // @property lat: Number
+ // Latitude in degrees
+ this.lat = +lat;
+
+ // @property lng: Number
+ // Longitude in degrees
+ this.lng = +lng;
+
+ // @property alt: Number
+ // Altitude in meters (optional)
+ if (alt !== undefined) {
+ this.alt = +alt;
+ }
+}
+
+LatLng.prototype = {
+ // @method equals(otherLatLng: LatLng, maxMargin?: Number): Boolean
+ // Returns `true` if the given `LatLng` point is at the same position (within a small margin of error). The margin of error can be overridden by setting `maxMargin` to a small number.
+ equals: function (obj, maxMargin) {
+ if (!obj) { return false; }
+
+ obj = toLatLng(obj);
+
+ var margin = Math.max(
+ Math.abs(this.lat - obj.lat),
+ Math.abs(this.lng - obj.lng));
+
+ return margin <= (maxMargin === undefined ? 1.0E-9 : maxMargin);
+ },
+
+ // @method toString(): String
+ // Returns a string representation of the point (for debugging purposes).
+ toString: function (precision) {
+ return 'LatLng(' +
+ formatNum(this.lat, precision) + ', ' +
+ formatNum(this.lng, precision) + ')';
+ },
+
+ // @method distanceTo(otherLatLng: LatLng): Number
+ // Returns the distance (in meters) to the given `LatLng` calculated using the [Spherical Law of Cosines](https://en.wikipedia.org/wiki/Spherical_law_of_cosines).
+ distanceTo: function (other) {
+ return Earth.distance(this, toLatLng(other));
+ },
+
+ // @method wrap(): LatLng
+ // Returns a new `LatLng` object with the longitude wrapped so it's always between -180 and +180 degrees.
+ wrap: function () {
+ return Earth.wrapLatLng(this);
+ },
+
+ // @method toBounds(sizeInMeters: Number): LatLngBounds
+ // Returns a new `LatLngBounds` object in which each boundary is `sizeInMeters/2` meters apart from the `LatLng`.
+ toBounds: function (sizeInMeters) {
+ var latAccuracy = 180 * sizeInMeters / 40075017,
+ lngAccuracy = latAccuracy / Math.cos((Math.PI / 180) * this.lat);
+
+ return toLatLngBounds(
+ [this.lat - latAccuracy, this.lng - lngAccuracy],
+ [this.lat + latAccuracy, this.lng + lngAccuracy]);
+ },
+
+ clone: function () {
+ return new LatLng(this.lat, this.lng, this.alt);
+ }
+};
+
+
+
+// @factory L.latLng(latitude: Number, longitude: Number, altitude?: Number): LatLng
+// Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude).
+
+// @alternative
+// @factory L.latLng(coords: Array): LatLng
+// Expects an array of the form `[Number, Number]` or `[Number, Number, Number]` instead.
+
+// @alternative
+// @factory L.latLng(coords: Object): LatLng
+// Expects an plain object of the form `{lat: Number, lng: Number}` or `{lat: Number, lng: Number, alt: Number}` instead.
+
+function toLatLng(a, b, c) {
+ if (a instanceof LatLng) {
+ return a;
+ }
+ if (isArray(a) && typeof a[0] !== 'object') {
+ if (a.length === 3) {
+ return new LatLng(a[0], a[1], a[2]);
+ }
+ if (a.length === 2) {
+ return new LatLng(a[0], a[1]);
+ }
+ return null;
+ }
+ if (a === undefined || a === null) {
+ return a;
+ }
+ if (typeof a === 'object' && 'lat' in a) {
+ return new LatLng(a.lat, 'lng' in a ? a.lng : a.lon, a.alt);
+ }
+ if (b === undefined) {
+ return null;
+ }
+ return new LatLng(a, b, c);
+}
+
+/*
+ * @namespace CRS
+ * @crs L.CRS.Base
+ * Object that defines coordinate reference systems for projecting
+ * geographical points into pixel (screen) coordinates and back (and to
+ * coordinates in other units for [WMS](https://en.wikipedia.org/wiki/Web_Map_Service) services). See
+ * [spatial reference system](http://en.wikipedia.org/wiki/Coordinate_reference_system).
+ *
+ * Leaflet defines the most usual CRSs by default. If you want to use a
+ * CRS not defined by default, take a look at the
+ * [Proj4Leaflet](https://github.com/kartena/Proj4Leaflet) plugin.
+ *
+ * Note that the CRS instances do not inherit from Leaflet's `Class` object,
+ * and can't be instantiated. Also, new classes can't inherit from them,
+ * and methods can't be added to them with the `include` function.
+ */
+
+var CRS = {
+ // @method latLngToPoint(latlng: LatLng, zoom: Number): Point
+ // Projects geographical coordinates into pixel coordinates for a given zoom.
+ latLngToPoint: function (latlng, zoom) {
+ var projectedPoint = this.projection.project(latlng),
+ scale = this.scale(zoom);
+
+ return this.transformation._transform(projectedPoint, scale);
+ },
+
+ // @method pointToLatLng(point: Point, zoom: Number): LatLng
+ // The inverse of `latLngToPoint`. Projects pixel coordinates on a given
+ // zoom into geographical coordinates.
+ pointToLatLng: function (point, zoom) {
+ var scale = this.scale(zoom),
+ untransformedPoint = this.transformation.untransform(point, scale);
+
+ return this.projection.unproject(untransformedPoint);
+ },
+
+ // @method project(latlng: LatLng): Point
+ // Projects geographical coordinates into coordinates in units accepted for
+ // this CRS (e.g. meters for EPSG:3857, for passing it to WMS services).
+ project: function (latlng) {
+ return this.projection.project(latlng);
+ },
+
+ // @method unproject(point: Point): LatLng
+ // Given a projected coordinate returns the corresponding LatLng.
+ // The inverse of `project`.
+ unproject: function (point) {
+ return this.projection.unproject(point);
+ },
+
+ // @method scale(zoom: Number): Number
+ // Returns the scale used when transforming projected coordinates into
+ // pixel coordinates for a particular zoom. For example, it returns
+ // `256 * 2^zoom` for Mercator-based CRS.
+ scale: function (zoom) {
+ return 256 * Math.pow(2, zoom);
+ },
+
+ // @method zoom(scale: Number): Number
+ // Inverse of `scale()`, returns the zoom level corresponding to a scale
+ // factor of `scale`.
+ zoom: function (scale) {
+ return Math.log(scale / 256) / Math.LN2;
+ },
+
+ // @method getProjectedBounds(zoom: Number): Bounds
+ // Returns the projection's bounds scaled and transformed for the provided `zoom`.
+ getProjectedBounds: function (zoom) {
+ if (this.infinite) { return null; }
+
+ var b = this.projection.bounds,
+ s = this.scale(zoom),
+ min = this.transformation.transform(b.min, s),
+ max = this.transformation.transform(b.max, s);
+
+ return new Bounds(min, max);
+ },
+
+ // @method distance(latlng1: LatLng, latlng2: LatLng): Number
+ // Returns the distance between two geographical coordinates.
+
+ // @property code: String
+ // Standard code name of the CRS passed into WMS services (e.g. `'EPSG:3857'`)
+ //
+ // @property wrapLng: Number[]
+ // An array of two numbers defining whether the longitude (horizontal) coordinate
+ // axis wraps around a given range and how. Defaults to `[-180, 180]` in most
+ // geographical CRSs. If `undefined`, the longitude axis does not wrap around.
+ //
+ // @property wrapLat: Number[]
+ // Like `wrapLng`, but for the latitude (vertical) axis.
+
+ // wrapLng: [min, max],
+ // wrapLat: [min, max],
+
+ // @property infinite: Boolean
+ // If true, the coordinate space will be unbounded (infinite in both axes)
+ infinite: false,
+
+ // @method wrapLatLng(latlng: LatLng): LatLng
+ // Returns a `LatLng` where lat and lng has been wrapped according to the
+ // CRS's `wrapLat` and `wrapLng` properties, if they are outside the CRS's bounds.
+ wrapLatLng: function (latlng) {
+ var lng = this.wrapLng ? wrapNum(latlng.lng, this.wrapLng, true) : latlng.lng,
+ lat = this.wrapLat ? wrapNum(latlng.lat, this.wrapLat, true) : latlng.lat,
+ alt = latlng.alt;
+
+ return new LatLng(lat, lng, alt);
+ },
+
+ // @method wrapLatLngBounds(bounds: LatLngBounds): LatLngBounds
+ // Returns a `LatLngBounds` with the same size as the given one, ensuring
+ // that its center is within the CRS's bounds.
+ // Only accepts actual `L.LatLngBounds` instances, not arrays.
+ wrapLatLngBounds: function (bounds) {
+ var center = bounds.getCenter(),
+ newCenter = this.wrapLatLng(center),
+ latShift = center.lat - newCenter.lat,
+ lngShift = center.lng - newCenter.lng;
+
+ if (latShift === 0 && lngShift === 0) {
+ return bounds;
+ }
+
+ var sw = bounds.getSouthWest(),
+ ne = bounds.getNorthEast(),
+ newSw = new LatLng(sw.lat - latShift, sw.lng - lngShift),
+ newNe = new LatLng(ne.lat - latShift, ne.lng - lngShift);
+
+ return new LatLngBounds(newSw, newNe);
+ }
+};
+
+/*
+ * @namespace CRS
+ * @crs L.CRS.Earth
+ *
+ * Serves as the base for CRS that are global such that they cover the earth.
+ * Can only be used as the base for other CRS and cannot be used directly,
+ * since it does not have a `code`, `projection` or `transformation`. `distance()` returns
+ * meters.
+ */
+
+var Earth = extend({}, CRS, {
+ wrapLng: [-180, 180],
+
+ // Mean Earth Radius, as recommended for use by
+ // the International Union of Geodesy and Geophysics,
+ // see http://rosettacode.org/wiki/Haversine_formula
+ R: 6371000,
+
+ // distance between two geographical points using spherical law of cosines approximation
+ distance: function (latlng1, latlng2) {
+ var rad = Math.PI / 180,
+ lat1 = latlng1.lat * rad,
+ lat2 = latlng2.lat * rad,
+ sinDLat = Math.sin((latlng2.lat - latlng1.lat) * rad / 2),
+ sinDLon = Math.sin((latlng2.lng - latlng1.lng) * rad / 2),
+ a = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon,
+ c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
+ return this.R * c;
+ }
+});
+
+/*
+ * @namespace Projection
+ * @projection L.Projection.SphericalMercator
+ *
+ * Spherical Mercator projection — the most common projection for online maps,
+ * used by almost all free and commercial tile providers. Assumes that Earth is
+ * a sphere. Used by the `EPSG:3857` CRS.
+ */
+
+var earthRadius = 6378137;
+
+var SphericalMercator = {
+
+ R: earthRadius,
+ MAX_LATITUDE: 85.0511287798,
+
+ project: function (latlng) {
+ var d = Math.PI / 180,
+ max = this.MAX_LATITUDE,
+ lat = Math.max(Math.min(max, latlng.lat), -max),
+ sin = Math.sin(lat * d);
+
+ return new Point(
+ this.R * latlng.lng * d,
+ this.R * Math.log((1 + sin) / (1 - sin)) / 2);
+ },
+
+ unproject: function (point) {
+ var d = 180 / Math.PI;
+
+ return new LatLng(
+ (2 * Math.atan(Math.exp(point.y / this.R)) - (Math.PI / 2)) * d,
+ point.x * d / this.R);
+ },
+
+ bounds: (function () {
+ var d = earthRadius * Math.PI;
+ return new Bounds([-d, -d], [d, d]);
+ })()
+};
+
+/*
+ * @class Transformation
+ * @aka L.Transformation
+ *
+ * Represents an affine transformation: a set of coefficients `a`, `b`, `c`, `d`
+ * for transforming a point of a form `(x, y)` into `(a*x + b, c*y + d)` and doing
+ * the reverse. Used by Leaflet in its projections code.
+ *
+ * @example
+ *
+ * ```js
+ * var transformation = L.transformation(2, 5, -1, 10),
+ * p = L.point(1, 2),
+ * p2 = transformation.transform(p), // L.point(7, 8)
+ * p3 = transformation.untransform(p2); // L.point(1, 2)
+ * ```
+ */
+
+
+// factory new L.Transformation(a: Number, b: Number, c: Number, d: Number)
+// Creates a `Transformation` object with the given coefficients.
+function Transformation(a, b, c, d) {
+ if (isArray(a)) {
+ // use array properties
+ this._a = a[0];
+ this._b = a[1];
+ this._c = a[2];
+ this._d = a[3];
+ return;
+ }
+ this._a = a;
+ this._b = b;
+ this._c = c;
+ this._d = d;
+}
+
+Transformation.prototype = {
+ // @method transform(point: Point, scale?: Number): Point
+ // Returns a transformed point, optionally multiplied by the given scale.
+ // Only accepts actual `L.Point` instances, not arrays.
+ transform: function (point, scale) { // (Point, Number) -> Point
+ return this._transform(point.clone(), scale);
+ },
+
+ // destructive transform (faster)
+ _transform: function (point, scale) {
+ scale = scale || 1;
+ point.x = scale * (this._a * point.x + this._b);
+ point.y = scale * (this._c * point.y + this._d);
+ return point;
+ },
+
+ // @method untransform(point: Point, scale?: Number): Point
+ // Returns the reverse transformation of the given point, optionally divided
+ // by the given scale. Only accepts actual `L.Point` instances, not arrays.
+ untransform: function (point, scale) {
+ scale = scale || 1;
+ return new Point(
+ (point.x / scale - this._b) / this._a,
+ (point.y / scale - this._d) / this._c);
+ }
+};
+
+// factory L.transformation(a: Number, b: Number, c: Number, d: Number)
+
+// @factory L.transformation(a: Number, b: Number, c: Number, d: Number)
+// Instantiates a Transformation object with the given coefficients.
+
+// @alternative
+// @factory L.transformation(coefficients: Array): Transformation
+// Expects an coefficients array of the form
+// `[a: Number, b: Number, c: Number, d: Number]`.
+
+function toTransformation(a, b, c, d) {
+ return new Transformation(a, b, c, d);
+}
+
+/*
+ * @namespace CRS
+ * @crs L.CRS.EPSG3857
+ *
+ * The most common CRS for online maps, used by almost all free and commercial
+ * tile providers. Uses Spherical Mercator projection. Set in by default in
+ * Map's `crs` option.
+ */
+
+var EPSG3857 = extend({}, Earth, {
+ code: 'EPSG:3857',
+ projection: SphericalMercator,
+
+ transformation: (function () {
+ var scale = 0.5 / (Math.PI * SphericalMercator.R);
+ return toTransformation(scale, 0.5, -scale, 0.5);
+ }())
+});
+
+var EPSG900913 = extend({}, EPSG3857, {
+ code: 'EPSG:900913'
+});
+
+// @namespace SVG; @section
+// There are several static functions which can be called without instantiating L.SVG:
+
+// @function create(name: String): SVGElement
+// Returns a instance of [SVGElement](https://developer.mozilla.org/docs/Web/API/SVGElement),
+// corresponding to the class name passed. For example, using 'line' will return
+// an instance of [SVGLineElement](https://developer.mozilla.org/docs/Web/API/SVGLineElement).
+function svgCreate(name) {
+ return document.createElementNS('http://www.w3.org/2000/svg', name);
+}
+
+// @function pointsToPath(rings: Point[], closed: Boolean): String
+// Generates a SVG path string for multiple rings, with each ring turning
+// into "M..L..L.." instructions
+function pointsToPath(rings, closed) {
+ var str = '',
+ i, j, len, len2, points, p;
+
+ for (i = 0, len = rings.length; i < len; i++) {
+ points = rings[i];
+
+ for (j = 0, len2 = points.length; j < len2; j++) {
+ p = points[j];
+ str += (j ? 'L' : 'M') + p.x + ' ' + p.y;
+ }
+
+ // closes the ring for polygons; "x" is VML syntax
+ str += closed ? (svg ? 'z' : 'x') : '';
+ }
+
+ // SVG complains about empty path strings
+ return str || 'M0 0';
+}
+
+/*
+ * @namespace Browser
+ * @aka L.Browser
+ *
+ * A namespace with static properties for browser/feature detection used by Leaflet internally.
+ *
+ * @example
+ *
+ * ```js
+ * if (L.Browser.ielt9) {
+ * alert('Upgrade your browser, dude!');
+ * }
+ * ```
+ */
+
+var style$1 = document.documentElement.style;
+
+// @property ie: Boolean; `true` for all Internet Explorer versions (not Edge).
+var ie = 'ActiveXObject' in window;
+
+// @property ielt9: Boolean; `true` for Internet Explorer versions less than 9.
+var ielt9 = ie && !document.addEventListener;
+
+// @property edge: Boolean; `true` for the Edge web browser.
+var edge = 'msLaunchUri' in navigator && !('documentMode' in document);
+
+// @property webkit: Boolean;
+// `true` for webkit-based browsers like Chrome and Safari (including mobile versions).
+var webkit = userAgentContains('webkit');
+
+// @property android: Boolean
+// `true` for any browser running on an Android platform.
+var android = userAgentContains('android');
+
+// @property android23: Boolean; `true` for browsers running on Android 2 or Android 3.
+var android23 = userAgentContains('android 2') || userAgentContains('android 3');
+
+/* See https://stackoverflow.com/a/17961266 for details on detecting stock Android */
+var webkitVer = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10); // also matches AppleWebKit
+// @property androidStock: Boolean; `true` for the Android stock browser (i.e. not Chrome)
+var androidStock = android && userAgentContains('Google') && webkitVer < 537 && !('AudioNode' in window);
+
+// @property opera: Boolean; `true` for the Opera browser
+var opera = !!window.opera;
+
+// @property chrome: Boolean; `true` for the Chrome browser.
+var chrome = !edge && userAgentContains('chrome');
+
+// @property gecko: Boolean; `true` for gecko-based browsers like Firefox.
+var gecko = userAgentContains('gecko') && !webkit && !opera && !ie;
+
+// @property safari: Boolean; `true` for the Safari browser.
+var safari = !chrome && userAgentContains('safari');
+
+var phantom = userAgentContains('phantom');
+
+// @property opera12: Boolean
+// `true` for the Opera browser supporting CSS transforms (version 12 or later).
+var opera12 = 'OTransition' in style$1;
+
+// @property win: Boolean; `true` when the browser is running in a Windows platform
+var win = navigator.platform.indexOf('Win') === 0;
+
+// @property ie3d: Boolean; `true` for all Internet Explorer versions supporting CSS transforms.
+var ie3d = ie && ('transition' in style$1);
+
+// @property webkit3d: Boolean; `true` for webkit-based browsers supporting CSS transforms.
+var webkit3d = ('WebKitCSSMatrix' in window) && ('m11' in new window.WebKitCSSMatrix()) && !android23;
+
+// @property gecko3d: Boolean; `true` for gecko-based browsers supporting CSS transforms.
+var gecko3d = 'MozPerspective' in style$1;
+
+// @property any3d: Boolean
+// `true` for all browsers supporting CSS transforms.
+var any3d = !window.L_DISABLE_3D && (ie3d || webkit3d || gecko3d) && !opera12 && !phantom;
+
+// @property mobile: Boolean; `true` for all browsers running in a mobile device.
+var mobile = typeof orientation !== 'undefined' || userAgentContains('mobile');
+
+// @property mobileWebkit: Boolean; `true` for all webkit-based browsers in a mobile device.
+var mobileWebkit = mobile && webkit;
+
+// @property mobileWebkit3d: Boolean
+// `true` for all webkit-based browsers in a mobile device supporting CSS transforms.
+var mobileWebkit3d = mobile && webkit3d;
+
+// @property msPointer: Boolean
+// `true` for browsers implementing the Microsoft touch events model (notably IE10).
+var msPointer = !window.PointerEvent && window.MSPointerEvent;
+
+// @property pointer: Boolean
+// `true` for all browsers supporting [pointer events](https://msdn.microsoft.com/en-us/library/dn433244%28v=vs.85%29.aspx).
+var pointer = !!(window.PointerEvent || msPointer);
+
+// @property touch: Boolean
+// `true` for all browsers supporting [touch events](https://developer.mozilla.org/docs/Web/API/Touch_events).
+// This does not necessarily mean that the browser is running in a computer with
+// a touchscreen, it only means that the browser is capable of understanding
+// touch events.
+var touch = !window.L_NO_TOUCH && (pointer || 'ontouchstart' in window ||
+ (window.DocumentTouch && document instanceof window.DocumentTouch));
+
+// @property mobileOpera: Boolean; `true` for the Opera browser in a mobile device.
+var mobileOpera = mobile && opera;
+
+// @property mobileGecko: Boolean
+// `true` for gecko-based browsers running in a mobile device.
+var mobileGecko = mobile && gecko;
+
+// @property retina: Boolean
+// `true` for browsers on a high-resolution "retina" screen or on any screen when browser's display zoom is more than 100%.
+var retina = (window.devicePixelRatio || (window.screen.deviceXDPI / window.screen.logicalXDPI)) > 1;
+
+// @property passiveEvents: Boolean
+// `true` for browsers that support passive events.
+var passiveEvents = (function () {
+ var supportsPassiveOption = false;
+ try {
+ var opts = Object.defineProperty({}, 'passive', {
+ get: function () { // eslint-disable-line getter-return
+ supportsPassiveOption = true;
+ }
+ });
+ window.addEventListener('testPassiveEventSupport', falseFn, opts);
+ window.removeEventListener('testPassiveEventSupport', falseFn, opts);
+ } catch (e) {
+ // Errors can safely be ignored since this is only a browser support test.
+ }
+ return supportsPassiveOption;
+}());
+
+// @property canvas: Boolean
+// `true` when the browser supports [`
`](https://developer.mozilla.org/docs/Web/API/Canvas_API).
+var canvas = (function () {
+ return !!document.createElement('canvas').getContext;
+}());
+
+// @property svg: Boolean
+// `true` when the browser supports [SVG](https://developer.mozilla.org/docs/Web/SVG).
+var svg = !!(document.createElementNS && svgCreate('svg').createSVGRect);
+
+// @property vml: Boolean
+// `true` if the browser supports [VML](https://en.wikipedia.org/wiki/Vector_Markup_Language).
+var vml = !svg && (function () {
+ try {
+ var div = document.createElement('div');
+ div.innerHTML = ' ';
+
+ var shape = div.firstChild;
+ shape.style.behavior = 'url(#default#VML)';
+
+ return shape && (typeof shape.adj === 'object');
+
+ } catch (e) {
+ return false;
+ }
+}());
+
+
+function userAgentContains(str) {
+ return navigator.userAgent.toLowerCase().indexOf(str) >= 0;
+}
+
+var Browser = ({
+ ie: ie,
+ ielt9: ielt9,
+ edge: edge,
+ webkit: webkit,
+ android: android,
+ android23: android23,
+ androidStock: androidStock,
+ opera: opera,
+ chrome: chrome,
+ gecko: gecko,
+ safari: safari,
+ phantom: phantom,
+ opera12: opera12,
+ win: win,
+ ie3d: ie3d,
+ webkit3d: webkit3d,
+ gecko3d: gecko3d,
+ any3d: any3d,
+ mobile: mobile,
+ mobileWebkit: mobileWebkit,
+ mobileWebkit3d: mobileWebkit3d,
+ msPointer: msPointer,
+ pointer: pointer,
+ touch: touch,
+ mobileOpera: mobileOpera,
+ mobileGecko: mobileGecko,
+ retina: retina,
+ passiveEvents: passiveEvents,
+ canvas: canvas,
+ svg: svg,
+ vml: vml
+});
+
+/*
+ * Extends L.DomEvent to provide touch support for Internet Explorer and Windows-based devices.
+ */
+
+
+var POINTER_DOWN = msPointer ? 'MSPointerDown' : 'pointerdown';
+var POINTER_MOVE = msPointer ? 'MSPointerMove' : 'pointermove';
+var POINTER_UP = msPointer ? 'MSPointerUp' : 'pointerup';
+var POINTER_CANCEL = msPointer ? 'MSPointerCancel' : 'pointercancel';
+
+var _pointers = {};
+var _pointerDocListener = false;
+
+// Provides a touch events wrapper for (ms)pointer events.
+// ref http://www.w3.org/TR/pointerevents/ https://www.w3.org/Bugs/Public/show_bug.cgi?id=22890
+
+function addPointerListener(obj, type, handler, id) {
+ if (type === 'touchstart') {
+ _addPointerStart(obj, handler, id);
+
+ } else if (type === 'touchmove') {
+ _addPointerMove(obj, handler, id);
+
+ } else if (type === 'touchend') {
+ _addPointerEnd(obj, handler, id);
+ }
+
+ return this;
+}
+
+function removePointerListener(obj, type, id) {
+ var handler = obj['_leaflet_' + type + id];
+
+ if (type === 'touchstart') {
+ obj.removeEventListener(POINTER_DOWN, handler, false);
+
+ } else if (type === 'touchmove') {
+ obj.removeEventListener(POINTER_MOVE, handler, false);
+
+ } else if (type === 'touchend') {
+ obj.removeEventListener(POINTER_UP, handler, false);
+ obj.removeEventListener(POINTER_CANCEL, handler, false);
+ }
+
+ return this;
+}
+
+function _addPointerStart(obj, handler, id) {
+ var onDown = bind(function (e) {
+ // IE10 specific: MsTouch needs preventDefault. See #2000
+ if (e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH) {
+ preventDefault(e);
+ }
+
+ _handlePointer(e, handler);
+ });
+
+ obj['_leaflet_touchstart' + id] = onDown;
+ obj.addEventListener(POINTER_DOWN, onDown, false);
+
+ // need to keep track of what pointers and how many are active to provide e.touches emulation
+ if (!_pointerDocListener) {
+ // we listen document as any drags that end by moving the touch off the screen get fired there
+ document.addEventListener(POINTER_DOWN, _globalPointerDown, true);
+ document.addEventListener(POINTER_MOVE, _globalPointerMove, true);
+ document.addEventListener(POINTER_UP, _globalPointerUp, true);
+ document.addEventListener(POINTER_CANCEL, _globalPointerUp, true);
+
+ _pointerDocListener = true;
+ }
+}
+
+function _globalPointerDown(e) {
+ _pointers[e.pointerId] = e;
+}
+
+function _globalPointerMove(e) {
+ if (_pointers[e.pointerId]) {
+ _pointers[e.pointerId] = e;
+ }
+}
+
+function _globalPointerUp(e) {
+ delete _pointers[e.pointerId];
+}
+
+function _handlePointer(e, handler) {
+ e.touches = [];
+ for (var i in _pointers) {
+ e.touches.push(_pointers[i]);
+ }
+ e.changedTouches = [e];
+
+ handler(e);
+}
+
+function _addPointerMove(obj, handler, id) {
+ var onMove = function (e) {
+ // don't fire touch moves when mouse isn't down
+ if ((e.pointerType === (e.MSPOINTER_TYPE_MOUSE || 'mouse')) && e.buttons === 0) {
+ return;
+ }
+
+ _handlePointer(e, handler);
+ };
+
+ obj['_leaflet_touchmove' + id] = onMove;
+ obj.addEventListener(POINTER_MOVE, onMove, false);
+}
+
+function _addPointerEnd(obj, handler, id) {
+ var onUp = function (e) {
+ _handlePointer(e, handler);
+ };
+
+ obj['_leaflet_touchend' + id] = onUp;
+ obj.addEventListener(POINTER_UP, onUp, false);
+ obj.addEventListener(POINTER_CANCEL, onUp, false);
+}
+
+/*
+ * Extends the event handling code with double tap support for mobile browsers.
+ */
+
+var _touchstart = msPointer ? 'MSPointerDown' : pointer ? 'pointerdown' : 'touchstart';
+var _touchend = msPointer ? 'MSPointerUp' : pointer ? 'pointerup' : 'touchend';
+var _pre = '_leaflet_';
+
+// inspired by Zepto touch code by Thomas Fuchs
+function addDoubleTapListener(obj, handler, id) {
+ var last, touch$$1,
+ doubleTap = false,
+ delay = 250;
+
+ function onTouchStart(e) {
+
+ if (pointer) {
+ if (!e.isPrimary) { return; }
+ if (e.pointerType === 'mouse') { return; } // mouse fires native dblclick
+ } else if (e.touches.length > 1) {
+ return;
+ }
+
+ var now = Date.now(),
+ delta = now - (last || now);
+
+ touch$$1 = e.touches ? e.touches[0] : e;
+ doubleTap = (delta > 0 && delta <= delay);
+ last = now;
+ }
+
+ function onTouchEnd(e) {
+ if (doubleTap && !touch$$1.cancelBubble) {
+ if (pointer) {
+ if (e.pointerType === 'mouse') { return; }
+ // work around .type being readonly with MSPointer* events
+ var newTouch = {},
+ prop, i;
+
+ for (i in touch$$1) {
+ prop = touch$$1[i];
+ newTouch[i] = prop && prop.bind ? prop.bind(touch$$1) : prop;
+ }
+ touch$$1 = newTouch;
+ }
+ touch$$1.type = 'dblclick';
+ touch$$1.button = 0;
+ handler(touch$$1);
+ last = null;
+ }
+ }
+
+ obj[_pre + _touchstart + id] = onTouchStart;
+ obj[_pre + _touchend + id] = onTouchEnd;
+ obj[_pre + 'dblclick' + id] = handler;
+
+ obj.addEventListener(_touchstart, onTouchStart, passiveEvents ? {passive: false} : false);
+ obj.addEventListener(_touchend, onTouchEnd, passiveEvents ? {passive: false} : false);
+
+ // On some platforms (notably, chrome<55 on win10 + touchscreen + mouse),
+ // the browser doesn't fire touchend/pointerup events but does fire
+ // native dblclicks. See #4127.
+ // Edge 14 also fires native dblclicks, but only for pointerType mouse, see #5180.
+ obj.addEventListener('dblclick', handler, false);
+
+ return this;
+}
+
+function removeDoubleTapListener(obj, id) {
+ var touchstart = obj[_pre + _touchstart + id],
+ touchend = obj[_pre + _touchend + id],
+ dblclick = obj[_pre + 'dblclick' + id];
+
+ obj.removeEventListener(_touchstart, touchstart, passiveEvents ? {passive: false} : false);
+ obj.removeEventListener(_touchend, touchend, passiveEvents ? {passive: false} : false);
+ obj.removeEventListener('dblclick', dblclick, false);
+
+ return this;
+}
+
+/*
+ * @namespace DomUtil
+ *
+ * Utility functions to work with the [DOM](https://developer.mozilla.org/docs/Web/API/Document_Object_Model)
+ * tree, used by Leaflet internally.
+ *
+ * Most functions expecting or returning a `HTMLElement` also work for
+ * SVG elements. The only difference is that classes refer to CSS classes
+ * in HTML and SVG classes in SVG.
+ */
+
+
+// @property TRANSFORM: String
+// Vendor-prefixed transform style name (e.g. `'webkitTransform'` for WebKit).
+var TRANSFORM = testProp(
+ ['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']);
+
+// webkitTransition comes first because some browser versions that drop vendor prefix don't do
+// the same for the transitionend event, in particular the Android 4.1 stock browser
+
+// @property TRANSITION: String
+// Vendor-prefixed transition style name.
+var TRANSITION = testProp(
+ ['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']);
+
+// @property TRANSITION_END: String
+// Vendor-prefixed transitionend event name.
+var TRANSITION_END =
+ TRANSITION === 'webkitTransition' || TRANSITION === 'OTransition' ? TRANSITION + 'End' : 'transitionend';
+
+
+// @function get(id: String|HTMLElement): HTMLElement
+// Returns an element given its DOM id, or returns the element itself
+// if it was passed directly.
+function get(id) {
+ return typeof id === 'string' ? document.getElementById(id) : id;
+}
+
+// @function getStyle(el: HTMLElement, styleAttrib: String): String
+// Returns the value for a certain style attribute on an element,
+// including computed values or values set through CSS.
+function getStyle(el, style) {
+ var value = el.style[style] || (el.currentStyle && el.currentStyle[style]);
+
+ if ((!value || value === 'auto') && document.defaultView) {
+ var css = document.defaultView.getComputedStyle(el, null);
+ value = css ? css[style] : null;
+ }
+ return value === 'auto' ? null : value;
+}
+
+// @function create(tagName: String, className?: String, container?: HTMLElement): HTMLElement
+// Creates an HTML element with `tagName`, sets its class to `className`, and optionally appends it to `container` element.
+function create$1(tagName, className, container) {
+ var el = document.createElement(tagName);
+ el.className = className || '';
+
+ if (container) {
+ container.appendChild(el);
+ }
+ return el;
+}
+
+// @function remove(el: HTMLElement)
+// Removes `el` from its parent element
+function remove(el) {
+ var parent = el.parentNode;
+ if (parent) {
+ parent.removeChild(el);
+ }
+}
+
+// @function empty(el: HTMLElement)
+// Removes all of `el`'s children elements from `el`
+function empty(el) {
+ while (el.firstChild) {
+ el.removeChild(el.firstChild);
+ }
+}
+
+// @function toFront(el: HTMLElement)
+// Makes `el` the last child of its parent, so it renders in front of the other children.
+function toFront(el) {
+ var parent = el.parentNode;
+ if (parent && parent.lastChild !== el) {
+ parent.appendChild(el);
+ }
+}
+
+// @function toBack(el: HTMLElement)
+// Makes `el` the first child of its parent, so it renders behind the other children.
+function toBack(el) {
+ var parent = el.parentNode;
+ if (parent && parent.firstChild !== el) {
+ parent.insertBefore(el, parent.firstChild);
+ }
+}
+
+// @function hasClass(el: HTMLElement, name: String): Boolean
+// Returns `true` if the element's class attribute contains `name`.
+function hasClass(el, name) {
+ if (el.classList !== undefined) {
+ return el.classList.contains(name);
+ }
+ var className = getClass(el);
+ return className.length > 0 && new RegExp('(^|\\s)' + name + '(\\s|$)').test(className);
+}
+
+// @function addClass(el: HTMLElement, name: String)
+// Adds `name` to the element's class attribute.
+function addClass(el, name) {
+ if (el.classList !== undefined) {
+ var classes = splitWords(name);
+ for (var i = 0, len = classes.length; i < len; i++) {
+ el.classList.add(classes[i]);
+ }
+ } else if (!hasClass(el, name)) {
+ var className = getClass(el);
+ setClass(el, (className ? className + ' ' : '') + name);
+ }
+}
+
+// @function removeClass(el: HTMLElement, name: String)
+// Removes `name` from the element's class attribute.
+function removeClass(el, name) {
+ if (el.classList !== undefined) {
+ el.classList.remove(name);
+ } else {
+ setClass(el, trim((' ' + getClass(el) + ' ').replace(' ' + name + ' ', ' ')));
+ }
+}
+
+// @function setClass(el: HTMLElement, name: String)
+// Sets the element's class.
+function setClass(el, name) {
+ if (el.className.baseVal === undefined) {
+ el.className = name;
+ } else {
+ // in case of SVG element
+ el.className.baseVal = name;
+ }
+}
+
+// @function getClass(el: HTMLElement): String
+// Returns the element's class.
+function getClass(el) {
+ // Check if the element is an SVGElementInstance and use the correspondingElement instead
+ // (Required for linked SVG elements in IE11.)
+ if (el.correspondingElement) {
+ el = el.correspondingElement;
+ }
+ return el.className.baseVal === undefined ? el.className : el.className.baseVal;
+}
+
+// @function setOpacity(el: HTMLElement, opacity: Number)
+// Set the opacity of an element (including old IE support).
+// `opacity` must be a number from `0` to `1`.
+function setOpacity(el, value) {
+ if ('opacity' in el.style) {
+ el.style.opacity = value;
+ } else if ('filter' in el.style) {
+ _setOpacityIE(el, value);
+ }
+}
+
+function _setOpacityIE(el, value) {
+ var filter = false,
+ filterName = 'DXImageTransform.Microsoft.Alpha';
+
+ // filters collection throws an error if we try to retrieve a filter that doesn't exist
+ try {
+ filter = el.filters.item(filterName);
+ } catch (e) {
+ // don't set opacity to 1 if we haven't already set an opacity,
+ // it isn't needed and breaks transparent pngs.
+ if (value === 1) { return; }
+ }
+
+ value = Math.round(value * 100);
+
+ if (filter) {
+ filter.Enabled = (value !== 100);
+ filter.Opacity = value;
+ } else {
+ el.style.filter += ' progid:' + filterName + '(opacity=' + value + ')';
+ }
+}
+
+// @function testProp(props: String[]): String|false
+// Goes through the array of style names and returns the first name
+// that is a valid style name for an element. If no such name is found,
+// it returns false. Useful for vendor-prefixed styles like `transform`.
+function testProp(props) {
+ var style = document.documentElement.style;
+
+ for (var i = 0; i < props.length; i++) {
+ if (props[i] in style) {
+ return props[i];
+ }
+ }
+ return false;
+}
+
+// @function setTransform(el: HTMLElement, offset: Point, scale?: Number)
+// Resets the 3D CSS transform of `el` so it is translated by `offset` pixels
+// and optionally scaled by `scale`. Does not have an effect if the
+// browser doesn't support 3D CSS transforms.
+function setTransform(el, offset, scale) {
+ var pos = offset || new Point(0, 0);
+
+ el.style[TRANSFORM] =
+ (ie3d ?
+ 'translate(' + pos.x + 'px,' + pos.y + 'px)' :
+ 'translate3d(' + pos.x + 'px,' + pos.y + 'px,0)') +
+ (scale ? ' scale(' + scale + ')' : '');
+}
+
+// @function setPosition(el: HTMLElement, position: Point)
+// Sets the position of `el` to coordinates specified by `position`,
+// using CSS translate or top/left positioning depending on the browser
+// (used by Leaflet internally to position its layers).
+function setPosition(el, point) {
+
+ /*eslint-disable */
+ el._leaflet_pos = point;
+ /* eslint-enable */
+
+ if (any3d) {
+ setTransform(el, point);
+ } else {
+ el.style.left = point.x + 'px';
+ el.style.top = point.y + 'px';
+ }
+}
+
+// @function getPosition(el: HTMLElement): Point
+// Returns the coordinates of an element previously positioned with setPosition.
+function getPosition(el) {
+ // this method is only used for elements previously positioned using setPosition,
+ // so it's safe to cache the position for performance
+
+ return el._leaflet_pos || new Point(0, 0);
+}
+
+// @function disableTextSelection()
+// Prevents the user from generating `selectstart` DOM events, usually generated
+// when the user drags the mouse through a page with text. Used internally
+// by Leaflet to override the behaviour of any click-and-drag interaction on
+// the map. Affects drag interactions on the whole document.
+
+// @function enableTextSelection()
+// Cancels the effects of a previous [`L.DomUtil.disableTextSelection`](#domutil-disabletextselection).
+var disableTextSelection;
+var enableTextSelection;
+var _userSelect;
+if ('onselectstart' in document) {
+ disableTextSelection = function () {
+ on(window, 'selectstart', preventDefault);
+ };
+ enableTextSelection = function () {
+ off(window, 'selectstart', preventDefault);
+ };
+} else {
+ var userSelectProperty = testProp(
+ ['userSelect', 'WebkitUserSelect', 'OUserSelect', 'MozUserSelect', 'msUserSelect']);
+
+ disableTextSelection = function () {
+ if (userSelectProperty) {
+ var style = document.documentElement.style;
+ _userSelect = style[userSelectProperty];
+ style[userSelectProperty] = 'none';
+ }
+ };
+ enableTextSelection = function () {
+ if (userSelectProperty) {
+ document.documentElement.style[userSelectProperty] = _userSelect;
+ _userSelect = undefined;
+ }
+ };
+}
+
+// @function disableImageDrag()
+// As [`L.DomUtil.disableTextSelection`](#domutil-disabletextselection), but
+// for `dragstart` DOM events, usually generated when the user drags an image.
+function disableImageDrag() {
+ on(window, 'dragstart', preventDefault);
+}
+
+// @function enableImageDrag()
+// Cancels the effects of a previous [`L.DomUtil.disableImageDrag`](#domutil-disabletextselection).
+function enableImageDrag() {
+ off(window, 'dragstart', preventDefault);
+}
+
+var _outlineElement, _outlineStyle;
+// @function preventOutline(el: HTMLElement)
+// Makes the [outline](https://developer.mozilla.org/docs/Web/CSS/outline)
+// of the element `el` invisible. Used internally by Leaflet to prevent
+// focusable elements from displaying an outline when the user performs a
+// drag interaction on them.
+function preventOutline(element) {
+ while (element.tabIndex === -1) {
+ element = element.parentNode;
+ }
+ if (!element.style) { return; }
+ restoreOutline();
+ _outlineElement = element;
+ _outlineStyle = element.style.outline;
+ element.style.outline = 'none';
+ on(window, 'keydown', restoreOutline);
+}
+
+// @function restoreOutline()
+// Cancels the effects of a previous [`L.DomUtil.preventOutline`]().
+function restoreOutline() {
+ if (!_outlineElement) { return; }
+ _outlineElement.style.outline = _outlineStyle;
+ _outlineElement = undefined;
+ _outlineStyle = undefined;
+ off(window, 'keydown', restoreOutline);
+}
+
+// @function getSizedParentNode(el: HTMLElement): HTMLElement
+// Finds the closest parent node which size (width and height) is not null.
+function getSizedParentNode(element) {
+ do {
+ element = element.parentNode;
+ } while ((!element.offsetWidth || !element.offsetHeight) && element !== document.body);
+ return element;
+}
+
+// @function getScale(el: HTMLElement): Object
+// Computes the CSS scale currently applied on the element.
+// Returns an object with `x` and `y` members as horizontal and vertical scales respectively,
+// and `boundingClientRect` as the result of [`getBoundingClientRect()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect).
+function getScale(element) {
+ var rect = element.getBoundingClientRect(); // Read-only in old browsers.
+
+ return {
+ x: rect.width / element.offsetWidth || 1,
+ y: rect.height / element.offsetHeight || 1,
+ boundingClientRect: rect
+ };
+}
+
+var DomUtil = ({
+ TRANSFORM: TRANSFORM,
+ TRANSITION: TRANSITION,
+ TRANSITION_END: TRANSITION_END,
+ get: get,
+ getStyle: getStyle,
+ create: create$1,
+ remove: remove,
+ empty: empty,
+ toFront: toFront,
+ toBack: toBack,
+ hasClass: hasClass,
+ addClass: addClass,
+ removeClass: removeClass,
+ setClass: setClass,
+ getClass: getClass,
+ setOpacity: setOpacity,
+ testProp: testProp,
+ setTransform: setTransform,
+ setPosition: setPosition,
+ getPosition: getPosition,
+ get disableTextSelection () { return disableTextSelection; },
+ get enableTextSelection () { return enableTextSelection; },
+ disableImageDrag: disableImageDrag,
+ enableImageDrag: enableImageDrag,
+ preventOutline: preventOutline,
+ restoreOutline: restoreOutline,
+ getSizedParentNode: getSizedParentNode,
+ getScale: getScale
+});
+
+/*
+ * @namespace DomEvent
+ * Utility functions to work with the [DOM events](https://developer.mozilla.org/docs/Web/API/Event), used by Leaflet internally.
+ */
+
+// Inspired by John Resig, Dean Edwards and YUI addEvent implementations.
+
+// @function on(el: HTMLElement, types: String, fn: Function, context?: Object): this
+// Adds a listener function (`fn`) to a particular DOM event type of the
+// element `el`. You can optionally specify the context of the listener
+// (object the `this` keyword will point to). You can also pass several
+// space-separated types (e.g. `'click dblclick'`).
+
+// @alternative
+// @function on(el: HTMLElement, eventMap: Object, context?: Object): this
+// Adds a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`
+function on(obj, types, fn, context) {
+
+ if (typeof types === 'object') {
+ for (var type in types) {
+ addOne(obj, type, types[type], fn);
+ }
+ } else {
+ types = splitWords(types);
+
+ for (var i = 0, len = types.length; i < len; i++) {
+ addOne(obj, types[i], fn, context);
+ }
+ }
+
+ return this;
+}
+
+var eventsKey = '_leaflet_events';
+
+// @function off(el: HTMLElement, types: String, fn: Function, context?: Object): this
+// Removes a previously added listener function.
+// Note that if you passed a custom context to on, you must pass the same
+// context to `off` in order to remove the listener.
+
+// @alternative
+// @function off(el: HTMLElement, eventMap: Object, context?: Object): this
+// Removes a set of type/listener pairs, e.g. `{click: onClick, mousemove: onMouseMove}`
+function off(obj, types, fn, context) {
+
+ if (typeof types === 'object') {
+ for (var type in types) {
+ removeOne(obj, type, types[type], fn);
+ }
+ } else if (types) {
+ types = splitWords(types);
+
+ for (var i = 0, len = types.length; i < len; i++) {
+ removeOne(obj, types[i], fn, context);
+ }
+ } else {
+ for (var j in obj[eventsKey]) {
+ removeOne(obj, j, obj[eventsKey][j]);
+ }
+ delete obj[eventsKey];
+ }
+
+ return this;
+}
+
+function browserFiresNativeDblClick() {
+ // See https://github.com/w3c/pointerevents/issues/171
+ if (pointer) {
+ return !(edge || safari);
+ }
+}
+
+var mouseSubst = {
+ mouseenter: 'mouseover',
+ mouseleave: 'mouseout',
+ wheel: !('onwheel' in window) && 'mousewheel'
+};
+
+function addOne(obj, type, fn, context) {
+ var id = type + stamp(fn) + (context ? '_' + stamp(context) : '');
+
+ if (obj[eventsKey] && obj[eventsKey][id]) { return this; }
+
+ var handler = function (e) {
+ return fn.call(context || obj, e || window.event);
+ };
+
+ var originalHandler = handler;
+
+ if (pointer && type.indexOf('touch') === 0) {
+ // Needs DomEvent.Pointer.js
+ addPointerListener(obj, type, handler, id);
+
+ } else if (touch && (type === 'dblclick') && !browserFiresNativeDblClick()) {
+ addDoubleTapListener(obj, handler, id);
+
+ } else if ('addEventListener' in obj) {
+
+ if (type === 'touchstart' || type === 'touchmove' || type === 'wheel' || type === 'mousewheel') {
+ obj.addEventListener(mouseSubst[type] || type, handler, passiveEvents ? {passive: false} : false);
+
+ } else if (type === 'mouseenter' || type === 'mouseleave') {
+ handler = function (e) {
+ e = e || window.event;
+ if (isExternalTarget(obj, e)) {
+ originalHandler(e);
+ }
+ };
+ obj.addEventListener(mouseSubst[type], handler, false);
+
+ } else {
+ obj.addEventListener(type, originalHandler, false);
+ }
+
+ } else if ('attachEvent' in obj) {
+ obj.attachEvent('on' + type, handler);
+ }
+
+ obj[eventsKey] = obj[eventsKey] || {};
+ obj[eventsKey][id] = handler;
+}
+
+function removeOne(obj, type, fn, context) {
+
+ var id = type + stamp(fn) + (context ? '_' + stamp(context) : ''),
+ handler = obj[eventsKey] && obj[eventsKey][id];
+
+ if (!handler) { return this; }
+
+ if (pointer && type.indexOf('touch') === 0) {
+ removePointerListener(obj, type, id);
+
+ } else if (touch && (type === 'dblclick') && !browserFiresNativeDblClick()) {
+ removeDoubleTapListener(obj, id);
+
+ } else if ('removeEventListener' in obj) {
+
+ obj.removeEventListener(mouseSubst[type] || type, handler, false);
+
+ } else if ('detachEvent' in obj) {
+ obj.detachEvent('on' + type, handler);
+ }
+
+ obj[eventsKey][id] = null;
+}
+
+// @function stopPropagation(ev: DOMEvent): this
+// Stop the given event from propagation to parent elements. Used inside the listener functions:
+// ```js
+// L.DomEvent.on(div, 'click', function (ev) {
+// L.DomEvent.stopPropagation(ev);
+// });
+// ```
+function stopPropagation(e) {
+
+ if (e.stopPropagation) {
+ e.stopPropagation();
+ } else if (e.originalEvent) { // In case of Leaflet event.
+ e.originalEvent._stopped = true;
+ } else {
+ e.cancelBubble = true;
+ }
+ skipped(e);
+
+ return this;
+}
+
+// @function disableScrollPropagation(el: HTMLElement): this
+// Adds `stopPropagation` to the element's `'wheel'` events (plus browser variants).
+function disableScrollPropagation(el) {
+ addOne(el, 'wheel', stopPropagation);
+ return this;
+}
+
+// @function disableClickPropagation(el: HTMLElement): this
+// Adds `stopPropagation` to the element's `'click'`, `'doubleclick'`,
+// `'mousedown'` and `'touchstart'` events (plus browser variants).
+function disableClickPropagation(el) {
+ on(el, 'mousedown touchstart dblclick', stopPropagation);
+ addOne(el, 'click', fakeStop);
+ return this;
+}
+
+// @function preventDefault(ev: DOMEvent): this
+// Prevents the default action of the DOM Event `ev` from happening (such as
+// following a link in the href of the a element, or doing a POST request
+// with page reload when a `