nemesis-shield 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 8e3261ce1ca6eb75be91cc58f82412fa5280a1ea99bab663c731d2febe643a8a
4
+ data.tar.gz: 5b8028e72aa2836b34daa0da860ef8f9fd0a1cda55b107c7690173bb7012f454
5
+ SHA512:
6
+ metadata.gz: 3a1454ba4d794b24b87500788acf506fed322a68fa717230cc6c9494b536e511d8443e439e4f18bb3b753c4d9fbeccfd3708d281b931def6ee32e6ecc738ddfe
7
+ data.tar.gz: 120624a050c429c246b140f4c361d50ed7afb3ef2ccd8aa6fb94e5ea09aeafe6aeeb9b4c5ab1cc7a2ba005d9cc78ebb574d43e86355bb9c075280e260eb1b5aa
data/README.md ADDED
@@ -0,0 +1,70 @@
1
+ # Nemesis Shield — Ruby
2
+
3
+ Native Ruby SDK for [Nemesis Shield](https://shield.nemesislabs.xyz). Learns your app's normal
4
+ behavior; in **enforce mode BLOCKS off-baseline requests** (auth bypass, path traversal, scanners,
5
+ unusual methods) before your app runs. One Rack middleware works with **Rails, Sinatra and any Rack
6
+ app**. Positive-security, fail-open, privacy-preserving.
7
+
8
+ **Rails** — `config/application.rb`:
9
+ ```ruby
10
+ require "nemesis_shield"
11
+ config.middleware.use NemesisShield::Middleware, token: ENV["NEMESIS_TOKEN"]
12
+ ```
13
+
14
+ **Sinatra**:
15
+ ```ruby
16
+ require "nemesis_shield"
17
+ use NemesisShield::Middleware, token: ENV["NEMESIS_TOKEN"]
18
+ ```
19
+
20
+ **Rack** (`config.ru`):
21
+ ```ruby
22
+ require "nemesis_shield"
23
+ use NemesisShield::Middleware, token: ENV["NEMESIS_TOKEN"]
24
+ run MyApp
25
+ ```
26
+
27
+ Observe (default) → learn & approve behaviors in the console → flip to **enforce** (the SDK polls the
28
+ policy in the background, no redeploy) → off-baseline requests get `403 blocked_by_nemesis_shield`.
29
+ Verified end-to-end (learn → enforce → attack) on Rails, Sinatra and Rack: legit passes (200);
30
+ attacks blocked (403).
31
+
32
+ ## LLM Guard (OWASP LLM Top 10)
33
+
34
+ The same HashLR ML classifier every Nemesis Shield SDK ships — catches obfuscated/paraphrased prompt
35
+ injection signature rules miss, scored identically in every language.
36
+
37
+ ```ruby
38
+ require "nemesis_shield_llm"
39
+
40
+ v = NemesisShield::LLM.guard_llm(user_prompt, enforce: true)
41
+ refuse! if v[:blocked] # v[:kind], v[:score], v[:owasp] ("LLM01")
42
+
43
+ score = NemesisShield::LLM.ml_injection_score(user_prompt) # 0..1
44
+ ```
45
+
46
+ Regex first, then ML. Blocks at ≥ 0.85 (high), flags at ≥ 0.45.
47
+
48
+ ## Full coverage & safe-unlock
49
+
50
+ **Mount it first / outermost** so *every* route is inspected (not just API routes — attackers hit any path):
51
+
52
+ ```
53
+ use NemesisShield::Middleware, token: ENV["NEMESIS_TOKEN"] # top of the Rack stack
54
+ ```
55
+
56
+ **What's inspected** (privacy-preserving): method + normalized route + **query-param structure** (names + kinds, never values) + auth flag + status. An off-baseline route, **param structure**, method, or auth state is blocked in enforce mode. Path-traversal segments normalize to `{traversal}`.
57
+
58
+ **Safe-unlock (break-glass):** the login/auth path is never blocked, so a still-learning baseline can't lock you out. Defaults: `/login /signin /sign-in /auth /oauth /session /wp-login.php /wp-admin`. Override:
59
+
60
+ ```bash
61
+ export NEMESIS_SHIELD_BOOTSTRAP="/login,/admin,/healthz"
62
+ ```
63
+
64
+ **Verify coverage** — in observe mode, hit a normal route, a param, and a scanner path, then confirm all three appear in the console (Activity / Behaviors):
65
+
66
+ ```bash
67
+ curl -s "http://localhost:8080/" >/dev/null
68
+ curl -s "http://localhost:8080/search?q=shoes" >/dev/null
69
+ curl -s "http://localhost:8080/.env" >/dev/null # shows up as an off-baseline behavior
70
+ ```
data/ml_weights.json ADDED
@@ -0,0 +1 @@
1
+ {"version":1,"dim":8192,"bias":-1.29914,"blockThreshold":0.85,"flagThreshold":0.45,"weights":{"4":-0.10762,"5":0.09576,"6":-0.04289,"8":0.09296,"9":-0.03982,"10":-0.02296,"12":-0.0934,"14":0.0929,"17":0.12797,"18":0.08103,"19":-0.0676,"22":0.11204,"24":0.04749,"25":0.42502,"28":0.20653,"29":0.05891,"31":0.06236,"33":-0.10627,"37":-0.06831,"39":-0.14477,"41":0.17431,"43":-0.105,"44":-0.05931,"51":0.02991,"54":0.20174,"55":0.09052,"57":-0.05129,"58":-0.08523,"59":-0.03891,"60":0.06753,"64":0.26616,"65":0.09767,"69":0.03094,"71":0.10327,"73":0.17845,"78":-0.0563,"79":-0.12086,"80":-0.2969,"81":-0.08549,"82":0.13882,"83":-0.06386,"85":-0.14088,"88":-0.18713,"90":0.02974,"91":-0.02188,"92":-0.28358,"94":-0.17901,"95":-0.16728,"98":-0.133,"99":-0.02188,"102":-0.06111,"104":0.31484,"106":-0.06476,"107":-0.11732,"108":0.09223,"114":-0.02786,"117":0.1344,"118":0.04359,"122":-0.31194,"124":0.14619,"126":-0.20148,"127":-0.03028,"129":0.09465,"132":0.06928,"135":0.09445,"138":0.06992,"141":0.02911,"143":0.04264,"144":0.0779,"145":-0.05034,"146":-0.06513,"147":-0.06295,"150":0.06448,"151":0.05396,"152":-0.06155,"154":0.06989,"157":-0.06167,"158":-0.19896,"159":0.04256,"163":-0.02439,"167":-0.0676,"169":0.13295,"170":0.04256,"171":0.10007,"172":0.04106,"173":0.13163,"178":-0.38355,"179":0.06364,"180":-0.04727,"182":-0.22972,"184":-0.02797,"185":-0.1931,"187":-0.30204,"188":0.04967,"191":0.18047,"192":-0.06078,"193":0.27417,"198":-0.16307,"200":0.09485,"203":-0.0934,"204":-0.03263,"206":0.09767,"208":-0.10627,"209":0.10129,"210":0.05989,"211":0.08718,"212":-0.06008,"213":0.04973,"214":-0.05706,"216":-0.04289,"217":-0.16728,"219":-0.14155,"220":0.05268,"222":-0.04381,"223":-0.06917,"225":-0.09412,"228":0.08613,"229":0.31739,"230":0.07373,"231":0.10089,"232":-0.12784,"234":-0.12134,"236":0.16567,"238":-0.05364,"239":-0.19882,"241":0.04425,"242":0.21152,"243":-0.04206,"246":-0.03067,"248":0.02334,"249":-0.06619,"250":-0.14381,"253":0.03647,"258":-0.22358,"260":-0.07011,"263":0.05396,"266":0.11112,"267":-0.03788,"269":-0.04266,"270":-0.02382,"271":-0.29287,"272":0.05781,"273":0.2638,"274":0.04248,"275":0.15534,"283":-0.05566,"284":0.04069,"285":-0.10684,"286":0.04424,"290":-0.06675,"293":0.13314,"294":-0.18633,"296":-0.04727,"297":-0.11349,"299":-0.16743,"301":-0.31933,"304":0.09856,"307":0.03094,"308":0.02991,"310":-0.17901,"312":0.02666,"313":0.08795,"314":0.09117,"315":-0.0342,"317":0.09767,"318":0.03391,"322":-0.0814,"324":-0.16213,"326":-0.09975,"327":0.0829,"328":-0.04536,"329":0.15548,"330":0.25652,"334":0.05605,"335":0.30152,"336":0.25034,"345":0.04904,"347":-0.2072,"350":-0.25663,"352":0.05396,"355":0.0972,"357":-0.07426,"358":0.17579,"361":0.15677,"364":-0.3635,"365":0.07793,"369":0.17394,"370":-0.05422,"371":0.20766,"372":-0.18263,"375":-0.19742,"377":-0.13535,"379":-0.10627,"380":0.04935,"381":0.1002,"382":0.04189,"383":0.08631,"384":0.20766,"386":0.04064,"389":0.08427,"390":-0.09718,"391":0.04967,"393":0.02961,"394":0.10027,"396":0.03223,"397":-0.21029,"398":0.20236,"399":-0.06723,"401":-0.32866,"404":0.03157,"406":0.07443,"408":-0.08535,"412":-0.07544,"413":0.03526,"414":-0.12541,"415":-0.06167,"416":0.11958,"418":0.11097,"419":0.04092,"420":0.04964,"421":-0.14174,"424":-0.0676,"425":-0.04718,"426":-0.11388,"427":0.05344,"429":0.09816,"431":0.22229,"433":-0.02818,"436":-0.09011,"437":-0.13535,"441":0.06753,"446":-0.16761,"447":-0.0386,"450":-0.05064,"454":-0.05534,"455":0.18396,"458":0.15622,"459":-0.21453,"460":-0.36082,"462":0.26318,"463":-0.28669,"467":0.06069,"471":0.22791,"473":-0.04797,"474":-0.05726,"475":0.08391,"476":-0.06386,"478":0.04256,"479":0.05739,"480":-0.11298,"481":-0.06078,"483":0.20569,"484":0.02242,"485":-0.29872,"486":-0.20595,"487":0.18805,"488":-0.03032,"489":-0.12204,"490":0.19016,"491":-0.17274,"496":-0.12415,"497":0.05852,"498":-0.17907,"500":-0.15195,"501":-0.11632,"504":-0.04727,"505":0.05396,"506":0.12436,"507":-0.05504,"508":-0.20464,"510":0.10084,"513":0.11543,"514":0.07941,"515":0.07293,"516":-0.15686,"517":0.05808,"519":-0.09011,"520":-0.04966,"521":-0.04381,"522":0.05681,"524":-0.25992,"525":-0.08535,"526":-0.18633,"531":0.03555,"532":0.12525,"536":0.07623,"538":-0.14509,"539":0.05396,"540":-0.09975,"543":0.09866,"546":0.14904,"547":0.03273,"549":-0.24776,"550":-0.10531,"552":0.15057,"553":0.34816,"554":-0.17901,"556":-0.25093,"557":-0.02382,"563":0.0309,"564":-0.11882,"567":0.14755,"569":0.051,"572":-0.20068,"573":0.06682,"576":0.62723,"577":-0.20028,"579":-0.03454,"580":-0.08515,"581":0.05739,"584":-0.07277,"585":-0.0934,"586":-0.18232,"590":0.02347,"594":0.08027,"595":-0.03957,"596":-0.13535,"597":-0.02382,"599":-0.07652,"600":-0.05907,"602":-0.23135,"603":-0.06909,"605":-0.16691,"606":0.05268,"607":0.05013,"609":0.07595,"610":-0.06386,"612":0.04106,"613":-0.04381,"615":-0.06661,"620":-0.18633,"621":-0.14703,"622":-0.05064,"623":0.13748,"624":0.08204,"629":0.09439,"631":0.03576,"632":-0.06661,"633":-0.1497,"634":-0.02152,"636":0.26489,"637":0.0544,"638":-0.07111,"640":-0.05246,"641":-0.04794,"642":-0.0483,"646":0.03185,"647":0.16025,"648":-0.0729,"649":0.03018,"650":-0.1232,"651":0.02464,"653":-0.05792,"654":0.22734,"658":-0.12154,"659":-0.06619,"662":-0.12583,"663":-0.04905,"664":-0.10205,"669":0.29364,"670":0.1065,"674":-0.22483,"675":-0.06124,"676":-0.12385,"678":0.08527,"679":0.1124,"681":0.18008,"684":-0.18527,"687":-0.04197,"690":-0.09011,"692":0.10349,"695":-0.06078,"698":-0.04901,"700":-0.09971,"702":-0.03268,"703":0.09223,"704":-0.03876,"708":-0.05534,"709":0.08163,"710":-0.07614,"713":0.18266,"714":0.10156,"715":-0.11542,"716":-0.04381,"717":0.14714,"718":-0.0331,"720":-0.3076,"721":-0.09975,"722":0.07499,"727":-0.05534,"728":0.17257,"729":-0.04727,"730":0.07826,"731":-0.02371,"732":-0.11845,"737":-0.10627,"738":0.10576,"739":0.0584,"746":-0.0968,"748":-0.03105,"751":0.416,"755":0.11729,"758":-0.05831,"759":0.09485,"761":0.17691,"763":-0.0523,"767":-0.12679,"771":-0.06167,"772":-0.09685,"774":0.23123,"777":0.28391,"786":-0.06661,"791":-0.21216,"792":0.10481,"793":0.11689,"794":0.1065,"796":0.38703,"797":0.14788,"799":-0.04217,"800":0.03765,"801":-0.07111,"803":0.03095,"806":0.15677,"807":-0.09011,"809":-0.0926,"811":0.09767,"812":-0.04197,"814":-0.06409,"815":-0.13572,"819":0.04425,"821":0.09223,"824":0.08014,"825":0.06753,"826":-0.25006,"828":-0.10086,"830":0.14755,"831":0.05009,"832":-0.13114,"833":0.07265,"834":-0.06008,"836":-0.14155,"840":-0.2796,"844":0.02716,"845":-0.14964,"847":0.11409,"848":-0.04574,"849":0.11038,"850":0.09439,"851":0.17115,"852":0.08967,"854":-0.08535,"855":0.04066,"857":-0.13808,"858":-0.06269,"859":0.05913,"860":-0.08474,"863":0.02391,"865":0.10064,"869":0.06753,"870":0.15886,"872":-0.1931,"873":-0.08334,"874":0.09223,"876":-0.06661,"877":-0.22577,"878":0.04069,"879":-0.04197,"880":0.09223,"881":0.0779,"888":0.04129,"889":0.09767,"891":0.05739,"893":0.21783,"895":0.07065,"897":0.06069,"900":0.04382,"901":0.26851,"903":-0.16728,"906":-0.09279,"907":-0.06661,"908":0.04659,"909":-0.23116,"910":-0.04085,"911":-0.09915,"915":-0.02124,"917":-0.1716,"918":0.02349,"919":-0.09386,"921":0.10992,"922":-0.06386,"925":-0.10627,"926":-0.0676,"927":-0.06008,"928":-0.18376,"933":-0.0447,"934":0.05299,"938":-0.10149,"940":0.09767,"944":-0.08086,"948":0.05116,"957":-0.06048,"958":-0.02967,"961":-0.07111,"965":-0.0676,"969":0.15523,"970":0.04256,"971":0.03901,"972":0.26512,"975":-0.04422,"976":-0.22634,"977":0.10122,"979":-0.16563,"980":-0.03058,"981":-0.05043,"982":-0.06386,"983":-0.11564,"984":-0.21505,"986":0.1065,"989":0.09767,"990":-0.14832,"992":-0.10817,"993":0.06069,"994":0.05705,"996":0.0829,"997":0.09223,"998":-0.19896,"999":0.07415,"1000":0.03436,"1003":-0.12511,"1004":-0.19782,"1005":0.0762,"1006":0.05738,"1011":0.07447,"1012":0.0758,"1016":-0.07069,"1017":0.08442,"1019":0.02286,"1021":-0.15365,"1022":0.05739,"1023":-0.05534,"1024":-0.20761,"1026":-0.19495,"1028":-0.19422,"1037":-0.07592,"1038":-0.27282,"1039":-0.35986,"1041":0.05415,"1042":0.10143,"1043":0.16091,"1044":0.20863,"1045":0.12257,"1047":-0.13356,"1050":0.09052,"1051":-0.0934,"1056":0.07652,"1059":0.05396,"1061":0.08389,"1062":-0.07111,"1063":0.09865,"1064":0.13408,"1066":-0.10627,"1068":0.04248,"1069":-0.08538,"1072":-0.03225,"1073":0.12436,"1077":-0.23412,"1079":-0.08619,"1082":-0.15082,"1085":0.0384,"1087":0.10173,"1089":-0.37144,"1090":0.04779,"1091":-0.05573,"1093":-0.18633,"1094":0.05816,"1098":-0.13853,"1099":0.18827,"1101":0.12297,"1103":-0.06008,"1105":-0.12464,"1106":0.03271,"1107":-0.04084,"1109":-0.20641,"1112":-0.08955,"1114":0.0499,"1116":-0.06008,"1117":-0.17168,"1118":-0.05534,"1121":0.0339,"1123":-0.3544,"1125":-0.06661,"1126":0.06243,"1127":-0.04641,"1128":0.05779,"1129":-0.08658,"1130":-0.23917,"1132":0.22734,"1134":0.18909,"1137":-0.06008,"1140":-0.18633,"1144":0.07737,"1147":-0.03237,"1149":0.04857,"1151":-0.15103,"1153":0.05009,"1154":0.03427,"1155":0.38281,"1157":0.05907,"1158":0.11739,"1159":0.06284,"1160":0.05299,"1162":0.08001,"1163":0.12861,"1164":0.19909,"1168":-0.10407,"1173":0.05808,"1174":-0.06666,"1175":-0.22459,"1176":0.04697,"1177":0.05132,"1178":-0.08535,"1180":-0.0617,"1181":-0.04727,"1182":-0.3016,"1184":0.05986,"1185":0.21396,"1186":-0.07301,"1187":-0.0385,"1188":-0.16053,"1191":-0.08049,"1192":-0.19896,"1195":0.08528,"1199":0.0585,"1200":-0.06971,"1202":-0.04002,"1204":0.19945,"1205":-0.161,"1207":-0.07222,"1209":0.14755,"1213":-0.15261,"1214":0.06212,"1215":-0.16652,"1216":0.0905,"1217":-0.03798,"1218":-0.23658,"1220":0.05299,"1222":0.0213,"1223":-0.07466,"1224":0.08204,"1225":0.11367,"1227":-0.05838,"1228":0.04457,"1231":-0.54785,"1233":0.15303,"1234":0.07897,"1235":-0.05534,"1237":-0.16053,"1239":0.17991,"1240":0.25014,"1241":0.20445,"1244":-0.02371,"1246":0.24013,"1248":-0.09975,"1249":0.10505,"1250":0.11517,"1251":-0.1319,"1252":-0.05534,"1254":0.02229,"1255":-0.06386,"1256":0.07447,"1258":0.21839,"1260":0.10587,"1261":-0.12998,"1263":-0.03067,"1264":0.09767,"1265":0.06928,"1266":0.09163,"1272":0.2059,"1273":0.07357,"1274":0.09627,"1275":0.0472,"1277":-0.02188,"1278":-0.06536,"1282":0.05781,"1283":0.0829,"1284":-0.20049,"1286":0.11894,"1287":-0.19544,"1288":0.06168,"1293":0.09795,"1294":-0.02464,"1295":0.35531,"1299":0.03815,"1301":-0.2121,"1302":0.0779,"1303":-0.30882,"1304":0.12736,"1311":0.04446,"1312":0.13508,"1313":0.10129,"1314":0.17783,"1316":0.02161,"1317":-0.19896,"1319":0.09223,"1320":-0.05534,"1323":0.10021,"1324":0.09327,"1325":0.09465,"1327":-0.23062,"1328":0.03018,"1331":0.05909,"1332":0.03576,"1333":0.38238,"1336":0.04069,"1341":0.02991,"1343":0.05781,"1346":0.04248,"1347":-0.09016,"1348":-0.06078,"1349":0.02235,"1353":-0.09975,"1354":-0.21846,"1355":0.22734,"1359":0.0285,"1360":0.06989,"1363":-0.03268,"1364":-0.03268,"1367":0.09767,"1368":-0.07494,"1369":-0.02058,"1372":-0.35791,"1373":0.06753,"1374":-0.07494,"1376":-0.06008,"1377":0.13131,"1378":0.13088,"1379":-0.04044,"1380":-0.19896,"1382":0.09342,"1383":0.11521,"1385":-0.06208,"1386":0.06051,"1388":0.04842,"1389":-0.29875,"1393":-0.06803,"1395":0.45191,"1396":0.07719,"1398":-0.10375,"1399":-0.07267,"1400":0.06753,"1401":0.03687,"1402":0.17254,"1405":-0.03268,"1407":-0.06167,"1408":-0.07518,"1409":0.09052,"1410":0.20766,"1411":0.20415,"1412":-0.16372,"1416":-0.16652,"1419":-0.1644,"1421":0.18819,"1424":-0.03989,"1425":-0.05064,"1427":-0.16636,"1429":0.09764,"1432":-0.09668,"1433":0.18482,"1434":-0.07111,"1436":0.06069,"1437":-0.09479,"1439":0.09052,"1440":-0.16728,"1442":-0.06386,"1443":0.18093,"1446":-0.37099,"1448":0.10192,"1453":-0.13767,"1456":-0.06125,"1460":0.04659,"1461":0.14199,"1467":0.15005,"1468":-0.06078,"1469":0.07108,"1470":0.04349,"1474":0.047,"1475":0.08827,"1477":0.14755,"1479":-0.07726,"1485":-0.18633,"1490":0.05314,"1491":0.07403,"1492":-0.13535,"1494":0.05739,"1497":-0.14477,"1498":-0.02335,"1499":0.0355,"1502":-0.05534,"1504":0.14755,"1508":-0.05639,"1509":-0.14964,"1511":0.06025,"1512":-0.02261,"1514":0.04672,"1515":0.21962,"1519":0.09052,"1520":0.06989,"1522":0.03446,"1523":-0.07494,"1526":-0.03498,"1529":-0.07494,"1532":-0.24093,"1533":-0.10186,"1534":-0.05982,"1536":0.0779,"1538":-0.03087,"1539":-0.13535,"1541":-0.07494,"1544":0.10455,"1545":0.03499,"1549":0.05808,"1551":0.06244,"1552":0.05991,"1553":0.12797,"1554":-0.16075,"1556":-0.02188,"1557":-0.13511,"1558":0.14439,"1561":0.13198,"1563":-0.10627,"1564":-0.04197,"1565":-0.06972,"1566":0.15677,"1567":-0.0385,"1569":-0.10627,"1571":0.11563,"1572":-0.15032,"1574":-0.09407,"1577":0.03243,"1578":-0.10627,"1581":-0.18464,"1582":-0.23835,"1583":-0.07111,"1585":0.03094,"1590":-0.18633,"1592":0.05009,"1594":-0.29946,"1596":-0.03537,"1598":0.11652,"1599":0.74196,"1600":-0.05534,"1602":0.10407,"1604":-0.10694,"1606":0.02537,"1609":-0.03268,"1610":-0.04085,"1611":0.03417,"1615":-0.05874,"1616":0.08204,"1617":0.05268,"1620":-0.17128,"1622":0.20474,"1623":0.06753,"1624":-0.20773,"1625":0.05548,"1626":-0.0374,"1627":-0.03121,"1629":0.06989,"1630":0.07465,"1632":-0.21262,"1633":0.08329,"1634":-0.14381,"1635":0.28139,"1636":-0.15195,"1638":0.09767,"1639":0.06753,"1642":-0.06972,"1644":0.13504,"1645":0.03458,"1646":0.04232,"1648":-0.03909,"1651":-0.03891,"1653":0.05009,"1655":-0.22492,"1656":0.11563,"1657":-0.13356,"1658":0.11563,"1659":0.03062,"1660":0.07626,"1661":-0.0934,"1662":-0.14964,"1663":-0.0286,"1664":0.04351,"1665":-0.11813,"1667":-0.23746,"1668":-0.03791,"1671":-0.0523,"1673":-0.14964,"1675":-0.06355,"1676":-0.16976,"1677":-0.19809,"1678":-0.04727,"1679":0.06992,"1684":0.09649,"1686":-0.21053,"1687":0.11976,"1688":-0.13356,"1691":-0.15348,"1693":-0.16307,"1694":0.04248,"1695":-0.16728,"1696":-0.07741,"1697":-0.08437,"1698":0.15663,"1700":-0.12565,"1702":-0.13172,"1705":-0.07366,"1708":0.20002,"1709":-0.12317,"1710":0.04825,"1714":-0.04854,"1715":-0.0934,"1716":-0.04381,"1718":0.05396,"1725":-0.04266,"1731":-0.15261,"1735":0.23269,"1736":0.08642,"1737":0.1452,"1739":0.21976,"1740":-0.10627,"1744":-0.09975,"1749":-0.15261,"1750":0.04659,"1751":0.06928,"1752":-0.04059,"1753":-0.16728,"1755":-0.14155,"1757":-0.05422,"1758":-0.03067,"1761":0.11652,"1762":-0.06619,"1763":-0.18386,"1764":0.07298,"1765":0.05268,"1766":0.17329,"1767":-0.04949,"1768":0.04369,"1769":0.05951,"1770":-0.06386,"1775":-0.25974,"1776":0.03227,"1777":-0.16728,"1778":0.09216,"1780":-0.04197,"1782":0.27496,"1784":0.02917,"1785":-0.02983,"1786":-0.05181,"1790":-0.18554,"1793":-0.03588,"1794":0.04106,"1796":-0.04853,"1801":0.22734,"1802":0.16888,"1803":0.16917,"1804":-0.15261,"1806":-0.73611,"1809":0.12299,"1810":0.02102,"1811":0.05808,"1812":0.02245,"1813":-0.02237,"1814":-0.26449,"1815":0.06031,"1816":0.05734,"1818":-0.03268,"1822":-0.21481,"1825":0.14788,"1826":0.02212,"1827":0.08471,"1829":-0.02927,"1830":0.0829,"1831":-0.04727,"1835":-0.05095,"1839":-0.14964,"1840":-0.23697,"1842":0.16916,"1845":-0.04599,"1846":0.03044,"1848":0.06928,"1849":0.21909,"1850":-0.05735,"1851":0.20766,"1855":-0.08444,"1856":0.08712,"1857":-0.04863,"1866":0.04184,"1867":0.09219,"1874":-0.09975,"1877":-0.09513,"1878":0.26851,"1879":0.07592,"1883":0.14755,"1885":0.04873,"1892":-0.13535,"1893":-0.05941,"1894":-0.04425,"1896":-0.09078,"1901":-0.14394,"1905":0.08454,"1906":0.15163,"1907":-0.02316,"1908":-0.21503,"1909":0.28423,"1910":0.08985,"1913":0.04262,"1914":0.05268,"1915":-0.22483,"1917":-0.1658,"1918":0.05013,"1919":0.16041,"1920":0.07083,"1923":-0.09011,"1924":0.05299,"1927":0.04572,"1928":0.12114,"1929":-0.10175,"1931":0.11906,"1932":-0.10627,"1934":-0.07178,"1935":0.17156,"1936":-0.05064,"1937":0.19447,"1939":-0.13356,"1942":-0.09011,"1946":0.13497,"1947":-0.05534,"1948":-0.20534,"1950":-0.04376,"1957":0.06309,"1958":-0.078,"1961":0.04551,"1963":-0.06661,"1964":-0.28429,"1967":0.22734,"1968":-0.02371,"1970":0.06928,"1975":0.23568,"1976":-0.05418,"1977":-0.05842,"1980":-0.13593,"1981":0.02011,"1983":-0.08583,"1985":-0.06986,"1986":-0.28881,"1987":-0.05227,"1989":0.09992,"1991":-0.04289,"1995":0.04356,"1996":0.02991,"1997":0.04895,"1998":-0.16652,"1999":0.11689,"2000":-0.06343,"2001":0.11494,"2002":-0.04381,"2003":-0.08131,"2004":-0.19215,"2005":0.02894,"2006":-0.06091,"2007":0.20548,"2009":-0.10275,"2010":0.20766,"2012":-0.08993,"2015":0.06666,"2016":0.09708,"2019":0.23177,"2020":0.09223,"2021":0.03215,"2022":0.05739,"2025":-0.06318,"2027":-0.24216,"2030":-0.05479,"2031":0.02537,"2032":-0.21088,"2033":0.37819,"2035":-0.12911,"2036":0.06989,"2037":0.04097,"2038":-0.07111,"2039":0.25432,"2040":0.20484,"2042":0.05605,"2043":-0.05244,"2045":0.12264,"2047":-0.03286,"2048":0.13924,"2049":0.02537,"2050":0.04967,"2053":-0.13465,"2054":-0.09975,"2056":0.19481,"2057":-0.09634,"2058":0.05534,"2059":0.10511,"2061":0.0293,"2062":-0.05121,"2063":0.13788,"2064":0.06723,"2071":-0.21428,"2072":-0.31666,"2073":-0.08535,"2075":0.15523,"2076":0.08405,"2079":0.0682,"2080":-0.02406,"2082":-0.02028,"2084":-0.06859,"2085":-0.03891,"2087":0.09297,"2093":0.06069,"2094":-0.074,"2097":0.0295,"2098":-0.16603,"2100":0.36586,"2106":0.12112,"2108":0.10365,"2110":0.09364,"2112":-0.07069,"2113":0.02753,"2114":-0.08499,"2115":-0.02234,"2117":-0.06167,"2122":0.03094,"2123":0.48364,"2124":0.15478,"2125":-0.09361,"2126":0.17873,"2127":-0.18765,"2128":0.08387,"2130":0.1719,"2131":0.08267,"2133":-0.05064,"2136":0.05808,"2137":-0.06434,"2138":0.14352,"2139":-0.17035,"2140":-0.21796,"2141":-0.10262,"2144":0.0829,"2145":0.02676,"2147":0.08641,"2148":-0.03589,"2149":0.16722,"2150":0.18889,"2153":0.05548,"2155":-0.18229,"2158":-0.06861,"2159":0.05911,"2161":0.21271,"2163":-0.09636,"2167":-0.03273,"2169":-0.19896,"2171":-0.06964,"2172":-0.25889,"2173":0.12355,"2174":-0.03073,"2176":0.09465,"2177":-0.25383,"2179":0.07623,"2180":-0.18633,"2182":0.06157,"2184":-0.35162,"2186":-0.1931,"2187":0.09223,"2188":-0.10627,"2190":-0.16728,"2191":-0.07494,"2192":0.03347,"2193":-0.20545,"2194":0.0346,"2195":0.05911,"2197":0.06069,"2200":0.06352,"2202":-0.06706,"2212":-0.0385,"2213":-0.06386,"2214":0.12436,"2216":-0.10912,"2217":0.29101,"2220":-0.06386,"2226":-0.16652,"2228":0.07746,"2229":-0.14341,"2230":-0.03067,"2231":-0.03268,"2235":0.20793,"2236":0.09052,"2237":-0.15397,"2239":-0.46083,"2240":-0.11141,"2243":0.08107,"2244":-0.29311,"2245":-0.02385,"2247":-0.03067,"2252":-0.09802,"2254":0.06069,"2258":0.27357,"2259":0.12619,"2260":-0.08535,"2262":-0.05906,"2265":0.08017,"2266":-0.06386,"2268":-0.06078,"2272":0.15523,"2273":0.06069,"2274":-0.04516,"2275":-0.06115,"2281":-0.07494,"2282":-0.14668,"2286":0.0784,"2287":0.05396,"2290":0.26772,"2291":-0.17152,"2294":-0.0447,"2295":-0.23979,"2296":0.13692,"2297":-0.2936,"2298":0.05268,"2299":0.06553,"2300":-0.17901,"2302":-0.18633,"2303":-0.08965,"2305":0.05548,"2306":-0.05437,"2307":-0.02052,"2309":-0.0385,"2310":0.09439,"2312":0.15829,"2313":-0.09975,"2314":-0.08535,"2316":-0.24463,"2318":-0.11765,"2321":-0.16477,"2322":0.14543,"2327":-0.03891,"2330":0.5344,"2331":-0.14921,"2333":0.12794,"2334":-0.10774,"2336":-0.06171,"2337":-0.02939,"2341":-0.08463,"2342":-0.05534,"2343":0.05808,"2344":0.04492,"2349":0.05009,"2350":0.18843,"2353":0.02405,"2354":-0.10146,"2361":-0.10627,"2362":-0.25489,"2363":0.03226,"2365":-0.04381,"2366":0.14755,"2367":0.04727,"2369":-0.12039,"2370":-0.06827,"2371":-0.06008,"2373":0.15376,"2375":0.06753,"2376":0.06753,"2380":0.04841,"2382":-0.10084,"2383":-0.06298,"2384":0.04659,"2388":0.07263,"2389":0.21158,"2392":-0.02188,"2394":0.12005,"2395":0.05781,"2396":-0.28051,"2398":-0.04197,"2399":-0.06971,"2400":0.09439,"2402":-0.09011,"2404":0.09669,"2405":0.16675,"2406":-0.08168,"2407":0.15512,"2410":0.15886,"2411":0.14166,"2412":0.05299,"2413":-0.04727,"2414":0.34059,"2417":0.14755,"2422":-0.06558,"2428":-0.11623,"2432":0.02542,"2433":-0.05534,"2435":-0.03605,"2436":-0.13354,"2438":0.18567,"2439":0.05396,"2441":-0.04437,"2450":-0.04197,"2453":0.02262,"2454":-0.13502,"2455":-0.09011,"2457":0.21512,"2459":-0.0638,"2460":-0.0634,"2464":-0.37631,"2469":-0.03364,"2471":0.24679,"2474":0.03387,"2475":0.35761,"2477":-0.23109,"2481":0.04256,"2484":-0.0523,"2485":0.0584,"2486":0.06753,"2487":-0.13646,"2488":0.06928,"2489":0.04233,"2494":0.02716,"2495":-0.07093,"2497":-0.0676,"2498":0.17683,"2499":-0.14605,"2500":0.03517,"2502":0.02079,"2503":0.12107,"2505":0.04256,"2508":-0.13356,"2509":0.06753,"2510":-0.40451,"2511":-0.11896,"2515":0.12996,"2516":-0.09335,"2519":0.05738,"2520":-0.20993,"2521":-0.07634,"2524":0.04446,"2527":0.02711,"2531":-0.21042,"2533":-0.13356,"2536":0.15886,"2540":-0.03463,"2542":-0.05422,"2544":0.03094,"2545":0.12109,"2548":-0.15739,"2550":-0.17901,"2553":-0.15321,"2555":0.15719,"2557":0.09874,"2558":0.24436,"2559":-0.07494,"2565":-0.03913,"2567":-0.04,"2568":0.13404,"2569":-0.03221,"2571":-0.07111,"2572":0.05548,"2573":-0.06167,"2575":-0.20972,"2577":-0.12818,"2578":-0.05534,"2579":-0.11487,"2580":-0.1601,"2581":-0.22139,"2583":-0.19896,"2588":-0.09656,"2590":0.03426,"2591":0.14069,"2594":0.16875,"2596":0.04456,"2599":0.04659,"2600":0.15595,"2601":0.06947,"2602":0.05739,"2604":0.21746,"2605":-0.0385,"2607":-0.1931,"2612":0.02928,"2613":-0.08802,"2618":0.14755,"2619":-0.0523,"2620":0.09254,"2621":-0.08293,"2623":-0.06078,"2624":0.09223,"2627":-0.10627,"2628":0.0929,"2629":-0.05064,"2630":-0.16728,"2631":0.05031,"2632":-0.09975,"2634":0.1401,"2635":-0.09078,"2636":-0.10223,"2640":0.14755,"2643":-0.04084,"2646":0.06531,"2650":-0.18015,"2651":-0.16728,"2652":0.06119,"2653":-0.21834,"2654":-0.05534,"2655":0.03006,"2657":-0.22483,"2659":-0.06964,"2662":0.20766,"2663":0.04722,"2664":0.04546,"2666":-0.20856,"2667":0.05739,"2668":0.02898,"2670":0.20353,"2671":0.06989,"2674":-0.09454,"2676":0.09485,"2678":0.05013,"2679":0.13896,"2682":0.14755,"2683":-0.19896,"2684":0.02772,"2687":-0.1931,"2688":-0.12567,"2689":-0.17247,"2690":-0.04266,"2693":0.0783,"2696":0.14755,"2697":-0.07426,"2699":0.08817,"2702":-0.03042,"2704":-0.1388,"2706":-0.29872,"2707":0.19003,"2709":-0.23116,"2710":-0.0317,"2712":0.11951,"2714":0.08526,"2715":0.13164,"2718":-0.17057,"2719":-0.14609,"2721":0.26398,"2724":-0.06078,"2727":-0.02188,"2728":-0.03655,"2731":0.08351,"2734":0.05817,"2735":0.3128,"2736":-0.06138,"2737":-0.02382,"2738":-0.04076,"2739":0.07329,"2743":-0.05064,"2744":-0.1931,"2748":0.2325,"2752":0.04914,"2755":-0.14686,"2757":-0.06167,"2760":-0.07427,"2763":-0.20049,"2764":0.09223,"2765":-0.14964,"2768":0.08163,"2774":-0.13416,"2776":0.23598,"2779":0.06477,"2781":-0.41605,"2783":-0.03067,"2784":0.04659,"2785":0.07276,"2786":0.09485,"2787":-0.0385,"2788":-0.04116,"2789":0.1831,"2794":-0.05734,"2805":0.03234,"2806":-0.0236,"2807":-0.26411,"2809":0.06243,"2810":-0.07424,"2812":0.04344,"2819":0.10842,"2820":-0.13535,"2821":-0.10627,"2822":-0.03891,"2823":-0.07426,"2824":0.02082,"2826":-0.1931,"2827":-0.066,"2829":0.19103,"2830":0.09052,"2831":-0.06619,"2832":-0.07494,"2834":-0.25027,"2837":-0.1776,"2839":-0.31108,"2840":-0.13262,"2841":0.0269,"2843":-0.05634,"2844":0.03094,"2845":-0.10412,"2847":0.09887,"2848":0.21639,"2850":-0.05534,"2851":-0.13789,"2852":0.08158,"2855":0.15677,"2856":-0.16652,"2863":0.06069,"2864":-0.08362,"2865":-0.12904,"2867":-0.20357,"2868":-0.0636,"2869":-0.10469,"2871":-0.05064,"2873":-0.16037,"2874":0.0362,"2875":-0.04266,"2879":0.04106,"2880":-0.07707,"2881":0.14693,"2882":0.04248,"2885":0.09767,"2886":0.20766,"2887":0.04935,"2889":-0.26627,"2890":-0.14361,"2891":-0.0385,"2892":0.0779,"2894":-0.02371,"2895":-0.10774,"2896":-0.07069,"2897":-0.18633,"2899":-0.17107,"2900":-0.23116,"2901":-0.02111,"2903":0.08606,"2904":-0.1931,"2905":-0.08307,"2906":-0.16652,"2908":-0.1931,"2909":-0.1232,"2910":-0.13418,"2914":-0.18915,"2915":0.0512,"2918":-0.07494,"2919":-0.15543,"2923":-0.08294,"2924":-0.05422,"2925":-0.17901,"2933":-0.06706,"2935":0.39737,"2937":-0.20437,"2940":-0.07791,"2942":0.07598,"2943":0.13212,"2945":-0.06386,"2947":0.12996,"2950":-0.04072,"2951":0.1056,"2953":0.11407,"2955":-0.06386,"2957":-0.15261,"2960":0.33191,"2961":0.04753,"2963":-0.1338,"2964":0.05705,"2967":0.08346,"2969":0.19287,"2970":0.05607,"2971":0.17691,"2972":-0.04558,"2973":-0.15983,"2974":0.0995,"2975":0.02381,"2976":-0.21788,"2978":0.05396,"2980":0.12797,"2982":0.19605,"2983":-0.13356,"2984":-0.05422,"2985":-0.06008,"2986":0.05009,"2988":-0.0385,"2991":-0.07803,"2992":-0.05913,"2995":-0.03268,"2996":-0.05104,"2997":-0.0385,"2998":0.0301,"3000":-0.0715,"3001":0.05548,"3003":-0.06619,"3005":-0.24742,"3012":0.06069,"3013":0.20766,"3014":0.14755,"3015":-0.03067,"3016":0.09439,"3021":-0.10774,"3023":0.0757,"3024":-0.07426,"3027":0.14755,"3028":0.20353,"3031":-0.05534,"3033":0.02216,"3034":-0.42868,"3035":0.14319,"3036":-0.12903,"3037":-0.02699,"3038":-0.03826,"3041":-0.09011,"3043":-0.0216,"3044":-0.06568,"3048":-0.03067,"3049":-0.06078,"3050":-0.02351,"3051":0.08447,"3055":0.0311,"3058":-0.14964,"3065":-0.3772,"3070":0.04084,"3071":0.06992,"3074":-0.04694,"3075":-0.05342,"3078":-0.34861,"3079":-0.15323,"3080":0.18156,"3081":0.11025,"3082":-0.05422,"3083":0.04813,"3084":0.11521,"3087":0.06321,"3095":-0.08535,"3101":-0.0286,"3103":-0.45946,"3106":-0.09975,"3107":0.06928,"3109":0.04562,"3112":-0.0934,"3114":-0.23116,"3115":0.07679,"3117":-0.24083,"3118":-0.15261,"3121":0.13341,"3122":-0.09899,"3125":-0.16311,"3127":0.09052,"3128":-0.04266,"3129":-0.10518,"3135":0.24429,"3136":0.24964,"3137":0.1074,"3139":-0.0966,"3140":0.0214,"3142":0.06992,"3151":-0.08883,"3154":0.09163,"3158":-0.03339,"3160":0.17254,"3165":-0.09975,"3166":0.04138,"3169":-0.14964,"3171":-0.05534,"3172":0.36455,"3173":0.38251,"3174":-0.05534,"3180":-0.15647,"3182":-0.0523,"3184":-0.14565,"3187":-0.07992,"3189":0.05009,"3191":-0.26145,"3192":0.17555,"3194":0.05396,"3195":0.09052,"3198":-0.31014,"3203":-0.11783,"3205":0.11757,"3207":-0.0658,"3208":-0.10948,"3210":-0.09757,"3211":0.13329,"3212":0.08872,"3213":-0.03268,"3214":0.09486,"3215":0.0784,"3217":0.17115,"3219":0.2025,"3221":-0.03693,"3223":0.1835,"3224":-0.05064,"3225":-0.09647,"3227":-0.14823,"3229":-0.02628,"3230":0.0829,"3231":-0.06386,"3232":0.18326,"3236":-0.07494,"3238":-0.13845,"3239":-0.11779,"3241":0.03295,"3242":-0.24791,"3244":0.18008,"3248":-0.0865,"3249":-0.05064,"3250":-0.08999,"3251":-0.0523,"3252":-0.37303,"3254":-0.12021,"3256":-0.04932,"3258":-0.13827,"3261":-0.16307,"3263":-0.05064,"3264":-0.12195,"3268":-0.06661,"3269":0.19016,"3270":0.17439,"3271":0.04409,"3273":-0.16611,"3274":0.13341,"3275":0.06753,"3276":-0.03588,"3278":0.13735,"3279":-0.10774,"3280":0.18698,"3284":-0.13535,"3288":0.08512,"3289":-0.09234,"3290":0.1609,"3291":-0.04381,"3294":0.09767,"3297":0.22423,"3300":0.14547,"3301":-0.05064,"3304":-0.0831,"3305":-0.05534,"3309":0.11216,"3311":0.04543,"3312":-0.18633,"3314":0.0779,"3315":-0.2208,"3317":0.28771,"3318":-0.08455,"3320":0.05808,"3322":0.03616,"3324":-0.06386,"3325":0.18008,"3326":0.14996,"3327":0.06215,"3331":0.08832,"3339":0.05517,"3341":0.05268,"3342":-0.12317,"3343":-0.09824,"3345":-0.0523,"3346":-0.09011,"3347":0.33726,"3348":-0.14964,"3349":0.06215,"3350":0.05886,"3352":0.1165,"3356":-0.17901,"3358":0.0779,"3360":0.08226,"3361":0.02537,"3362":-0.10805,"3363":-0.04095,"3364":-0.35956,"3366":0.02615,"3368":0.33119,"3370":0.23524,"3371":-0.15261,"3375":0.15756,"3377":-0.05657,"3378":-0.04727,"3379":-0.03067,"3387":0.03905,"3390":0.04069,"3393":-0.40159,"3394":-0.29779,"3395":-0.02397,"3396":-0.09016,"3398":-0.04266,"3399":-0.17395,"3400":-0.25431,"3402":0.34899,"3404":-0.43974,"3405":-0.03067,"3406":0.15756,"3408":0.18008,"3410":-0.06386,"3415":0.02951,"3416":-0.06661,"3419":0.20353,"3420":0.14693,"3421":0.03094,"3422":-0.04653,"3423":-0.04381,"3426":0.0211,"3427":-0.07494,"3428":-0.09466,"3430":-0.0934,"3431":-0.08663,"3432":0.09795,"3433":-0.0523,"3434":-0.03928,"3436":0.20766,"3437":0.02565,"3438":-0.02327,"3441":-0.09834,"3444":0.16717,"3447":-0.23116,"3450":-0.04266,"3452":-0.09011,"3454":-0.3159,"3456":0.05325,"3457":-0.14537,"3458":0.11185,"3459":0.05413,"3460":0.05396,"3461":-0.06078,"3462":-0.25548,"3463":0.06069,"3466":-0.07494,"3468":0.09564,"3469":0.04084,"3470":-0.06972,"3471":-0.32169,"3472":-0.05615,"3475":-0.05422,"3478":-0.09011,"3482":-0.05534,"3483":-0.06386,"3490":-0.04197,"3491":-0.06008,"3495":-0.03067,"3500":-0.17732,"3504":-0.03175,"3505":0.10419,"3506":0.0504,"3507":0.06494,"3508":-0.04727,"3511":-0.27627,"3512":-0.17881,"3513":0.04106,"3517":0.14755,"3518":-0.07069,"3519":-0.03268,"3521":-0.18669,"3522":-0.07441,"3524":-0.0679,"3525":0.20766,"3527":-0.02371,"3528":-0.19896,"3532":-0.56515,"3537":0.05781,"3538":0.15677,"3540":-0.04727,"3541":-0.03325,"3543":0.5283,"3544":0.06753,"3545":0.09967,"3547":-0.04954,"3549":-0.02371,"3551":-0.20578,"3553":0.10428,"3554":0.14961,"3559":-0.06078,"3561":0.32662,"3568":0.12436,"3569":-0.19498,"3573":0.03813,"3575":-0.16763,"3576":0.09016,"3579":-0.0523,"3580":-0.05534,"3582":-0.04314,"3584":0.09439,"3588":0.07593,"3592":-0.07426,"3594":0.2113,"3595":-0.10304,"3597":-0.14025,"3598":-0.16451,"3599":0.05631,"3606":-0.14762,"3607":-0.17901,"3609":-0.12799,"3611":-0.04266,"3612":0.14802,"3613":0.04165,"3615":0.02229,"3616":-0.16215,"3618":-0.05308,"3620":0.22734,"3623":-0.19546,"3625":-0.10627,"3630":-0.18767,"3631":0.05474,"3637":0.09767,"3638":0.09702,"3639":0.09673,"3640":-0.08293,"3642":-0.16652,"3645":0.04117,"3646":0.03094,"3647":-0.20049,"3648":0.18761,"3651":0.24474,"3653":-0.07954,"3657":-0.32209,"3661":-0.04197,"3662":-0.06124,"3665":-0.20272,"3666":0.15974,"3670":0.06069,"3673":-0.14106,"3675":-0.13867,"3676":-0.143,"3677":0.10129,"3678":0.02191,"3681":-0.03471,"3683":0.28298,"3684":0.42926,"3685":-0.13356,"3686":0.16753,"3687":0.06989,"3689":0.09367,"3691":0.20824,"3699":0.0779,"3701":0.06654,"3702":-0.04679,"3704":-0.14601,"3705":-0.05064,"3706":0.05066,"3707":0.13139,"3710":0.0673,"3711":-0.0523,"3712":0.08317,"3716":-0.10017,"3717":-0.21882,"3720":0.07285,"3721":-0.25019,"3724":0.19113,"3725":-0.29607,"3726":0.06753,"3727":-0.03769,"3729":0.03094,"3730":-0.3699,"3732":0.05428,"3734":0.14227,"3735":-0.85726,"3738":-0.21273,"3740":-0.06386,"3746":-0.02371,"3753":-0.13952,"3754":-0.15261,"3756":-0.06386,"3758":0.26851,"3759":0.02172,"3762":-0.20849,"3763":-0.15304,"3766":0.03094,"3767":0.06069,"3769":0.03621,"3771":-0.05374,"3772":0.07097,"3774":-0.0385,"3775":0.13842,"3776":0.11367,"3778":-0.04197,"3779":-0.26507,"3781":0.04106,"3786":0.14319,"3787":0.09439,"3789":0.08725,"3790":-0.09975,"3791":-0.1354,"3793":0.09584,"3796":-0.25745,"3797":-0.23788,"3799":-0.15261,"3802":-0.24164,"3803":-0.34414,"3808":-0.07069,"3809":-0.08366,"3810":-0.1342,"3813":0.22704,"3815":-0.10774,"3816":0.05009,"3818":-0.06661,"3819":0.05808,"3822":0.05946,"3825":0.05781,"3827":0.2024,"3829":-0.25395,"3837":0.18521,"3838":0.06069,"3840":0.17788,"3841":-0.10627,"3842":0.13619,"3844":0.20394,"3845":-0.22743,"3847":-0.04381,"3848":-0.0934,"3849":-0.22156,"3850":-0.21099,"3851":-0.04285,"3852":0.05739,"3853":0.09643,"3856":-0.06167,"3857":0.09336,"3858":0.08561,"3859":-0.09975,"3862":0.09728,"3870":-0.02654,"3871":-0.08535,"3872":-0.14921,"3874":-0.06386,"3875":-0.40684,"3876":0.06243,"3879":-0.05534,"3880":-0.20049,"3881":0.04702,"3884":-0.03268,"3885":0.0829,"3887":0.16214,"3890":-0.19896,"3891":-0.03099,"3892":0.19036,"3893":-0.12057,"3896":0.2107,"3897":-0.07426,"3898":-0.13535,"3900":-0.08583,"3902":-0.05534,"3904":-0.12655,"3906":-0.05735,"3908":0.03331,"3909":-0.06008,"3911":0.29865,"3916":0.10129,"3919":-0.12143,"3920":-0.03268,"3921":-0.09975,"3922":-0.20534,"3923":0.162,"3924":0.15393,"3925":0.27851,"3927":-0.06977,"3928":0.22435,"3929":-0.28046,"3931":-0.34557,"3933":-0.20871,"3935":-0.17901,"3936":0.03106,"3937":0.05781,"3939":0.08999,"3940":0.08794,"3942":-0.14964,"3943":-0.06167,"3945":-0.1109,"3946":0.14755,"3948":0.29062,"3950":0.02244,"3954":-0.18389,"3955":0.14755,"3961":-0.11711,"3962":0.05739,"3964":-0.03909,"3966":-0.21455,"3967":-0.06058,"3970":0.08405,"3972":-0.06386,"3974":0.11896,"3976":-0.04045,"3977":-0.20739,"3978":0.05026,"3979":-0.06008,"3982":-0.03713,"3983":-0.20849,"3985":-0.20926,"3986":0.05335,"3988":-0.10205,"3989":-0.18633,"3990":-0.11185,"3991":-0.12236,"3994":-0.19648,"3995":0.05781,"3996":0.05081,"3997":-0.17977,"3998":0.14853,"4002":0.06753,"4003":-0.16451,"4004":0.02214,"4006":-0.20849,"4007":-0.13167,"4011":0.07097,"4013":0.08655,"4015":-0.06528,"4016":0.12075,"4018":0.11896,"4019":-0.05534,"4020":-0.07494,"4022":0.03687,"4023":0.04106,"4026":-0.14464,"4027":-0.02371,"4032":-0.35285,"4035":-0.09011,"4037":-0.15448,"4038":-0.06078,"4043":-0.05253,"4045":0.04106,"4047":-0.15415,"4048":0.06804,"4050":-0.32423,"4052":0.22044,"4053":-0.06511,"4054":0.06063,"4056":-0.05238,"4057":-0.02902,"4060":-0.11225,"4062":-0.09975,"4063":-0.08293,"4066":-0.06386,"4070":0.05347,"4071":0.05781,"4072":-0.13356,"4074":-0.04381,"4076":-0.36817,"4077":-0.06661,"4079":0.13537,"4080":-0.02188,"4081":-0.06859,"4083":-0.09975,"4090":0.0584,"4092":0.02991,"4093":0.13374,"4096":-0.25294,"4098":-0.04381,"4104":0.05396,"4106":-0.07494,"4107":-0.0381,"4108":-0.10914,"4110":0.04667,"4111":-0.0523,"4113":-0.06706,"4117":-0.02515,"4120":-0.0523,"4121":0.3036,"4123":-0.17901,"4124":0.03161,"4125":-0.1931,"4128":-0.23834,"4129":0.02091,"4133":-0.18223,"4137":0.04159,"4138":0.04963,"4142":-0.07008,"4144":-0.32882,"4146":0.04446,"4147":-0.02654,"4148":-0.09177,"4150":-0.16189,"4151":-0.15355,"4159":-0.04696,"4167":-0.29511,"4168":-0.16361,"4170":-0.32868,"4171":0.10952,"4173":0.09101,"4174":0.08377,"4176":-0.09541,"4177":-0.06167,"4178":0.05738,"4180":-0.05514,"4183":-0.21293,"4185":-0.17758,"4192":-0.03252,"4193":-0.12768,"4194":0.07623,"4196":-0.03761,"4197":-0.10627,"4200":-0.34574,"4204":-0.05448,"4207":-0.12507,"4209":0.02121,"4210":-0.09454,"4214":-0.02371,"4218":0.3273,"4219":-0.07995,"4221":0.07453,"4222":0.09767,"4224":-0.04727,"4225":-0.03062,"4228":-0.06386,"4231":-0.19896,"4235":-0.21684,"4236":-0.06791,"4237":0.08791,"4241":-0.09011,"4242":-0.02236,"4245":-0.05534,"4246":0.05781,"4247":0.13341,"4248":-0.05522,"4250":0.27871,"4253":-0.09597,"4255":-0.36586,"4256":0.10223,"4258":-0.0385,"4260":-0.09011,"4261":-0.0934,"4262":0.2423,"4263":0.14834,"4264":-0.08535,"4265":-0.13278,"4267":0.06243,"4269":0.02356,"4270":-0.09975,"4274":0.22943,"4276":-0.13115,"4277":-0.10627,"4279":0.02991,"4280":0.2182,"4283":0.35794,"4284":-0.02747,"4286":-0.06078,"4288":0.02837,"4290":0.03372,"4291":-0.17799,"4292":-0.21716,"4296":-0.21587,"4297":0.04761,"4300":-0.20549,"4301":-0.04381,"4302":0.09223,"4303":-0.1485,"4306":-0.18341,"4311":-0.03971,"4312":-0.03891,"4313":-0.0385,"4315":0.10175,"4319":-0.06386,"4321":-0.16978,"4325":-0.07957,"4326":-0.33598,"4328":0.05739,"4331":0.21252,"4332":-0.1242,"4337":-0.05422,"4340":-0.06386,"4341":-0.06867,"4342":-0.02075,"4345":-0.04096,"4346":-0.04089,"4348":-0.03928,"4349":0.10041,"4350":0.1165,"4353":0.2174,"4355":-0.08557,"4357":-0.117,"4359":0.02273,"4360":-0.02188,"4361":-0.1931,"4370":-0.05614,"4372":-0.11621,"4374":0.05739,"4375":0.05017,"4379":-0.17739,"4381":0.05059,"4382":0.18018,"4384":-0.06037,"4386":0.29867,"4388":-0.15355,"4390":0.05651,"4393":-0.16307,"4395":0.04659,"4396":0.15893,"4399":0.12261,"4400":0.15031,"4404":-0.16728,"4413":-0.14964,"4415":0.09439,"4416":0.18895,"4417":-0.07111,"4418":-0.23307,"4419":0.08052,"4420":-0.03698,"4421":-0.36355,"4422":0.09489,"4423":-0.18915,"4428":0.06594,"4429":-0.05064,"4434":0.119,"4436":0.18859,"4437":0.06886,"4439":-0.06661,"4440":-0.10764,"4443":0.18414,"4444":0.06069,"4445":-0.03067,"4446":-0.29959,"4452":-0.12599,"4453":-0.02902,"4455":0.08163,"4457":-0.18472,"4459":-0.04197,"4460":0.04248,"4462":0.09767,"4463":-0.19781,"4464":0.50265,"4467":-0.04932,"4468":-0.10174,"4470":-0.23775,"4472":0.06192,"4473":-0.06619,"4474":0.03419,"4475":-0.18633,"4476":-0.23542,"4477":0.06069,"4478":0.04019,"4479":0.04233,"4480":0.14755,"4482":0.05009,"4483":0.24904,"4485":0.02054,"4488":0.06069,"4489":-0.05157,"4490":-0.18246,"4491":0.10261,"4492":0.06992,"4493":-0.15649,"4495":-0.0385,"4497":0.05009,"4498":-0.17916,"4499":-0.08229,"4500":-0.04727,"4508":0.06069,"4510":0.07549,"4511":0.09365,"4512":-0.03129,"4515":-0.10146,"4516":-0.10627,"4519":-0.12603,"4522":0.09439,"4524":0.11563,"4525":-0.11108,"4526":-0.03641,"4527":0.08168,"4528":0.09767,"4533":-0.25318,"4535":-0.03874,"4536":-0.27575,"4537":-0.05064,"4540":0.7529,"4541":0.06069,"4543":0.22734,"4544":-0.21751,"4547":0.70187,"4548":0.09052,"4549":0.35707,"4554":-0.04727,"4556":-0.06167,"4559":0.02537,"4561":-0.23135,"4565":0.0586,"4566":0.23883,"4568":-0.13356,"4570":0.03094,"4571":-0.03268,"4573":0.02748,"4576":-0.02997,"4577":-0.07426,"4578":0.15428,"4579":-0.0676,"4580":-0.08139,"4581":0.04846,"4583":0.34066,"4584":0.03095,"4586":-0.19533,"4589":-0.02188,"4591":0.23585,"4592":-0.05064,"4594":-0.13918,"4595":-0.20918,"4596":-0.11276,"4597":-0.17916,"4600":-0.14964,"4601":-0.2355,"4602":-0.04405,"4603":0.03944,"4605":-0.17901,"4608":0.1034,"4609":0.17987,"4610":-0.02904,"4611":0.04425,"4612":0.17443,"4613":-0.0385,"4614":0.06928,"4617":0.1744,"4618":-0.14807,"4619":0.15869,"4620":-0.15261,"4622":0.05396,"4623":-0.03505,"4625":-0.03891,"4627":-0.13356,"4629":0.02005,"4630":-0.06661,"4631":-0.0203,"4632":-0.10241,"4635":0.13641,"4639":0.05781,"4640":-0.03228,"4641":0.12257,"4642":0.04628,"4643":-0.09108,"4644":-0.10627,"4645":0.04865,"4646":0.05907,"4647":0.02899,"4648":0.22035,"4650":-0.31214,"4651":-0.0523,"4654":-0.10627,"4660":-0.07636,"4661":0.05739,"4662":-0.1931,"4663":-0.20534,"4667":0.18428,"4670":-0.18633,"4671":-0.02194,"4672":-0.07477,"4673":-0.17901,"4674":-0.03843,"4675":-0.2796,"4677":0.14615,"4679":-0.02091,"4682":0.02429,"4684":0.2,"4685":-0.16728,"4686":-0.16652,"4690":0.11104,"4693":-0.05505,"4700":-0.03773,"4702":-0.15578,"4703":-0.0385,"4704":-0.0939,"4705":-0.17024,"4711":-0.20093,"4713":-0.04727,"4716":0.05548,"4717":-0.1842,"4718":0.15523,"4719":0.14996,"4723":0.16959,"4725":0.03094,"4727":-0.07069,"4728":-0.08068,"4729":-0.14964,"4730":0.15886,"4732":-0.06008,"4733":-0.15261,"4734":0.03233,"4735":0.04114,"4741":0.07971,"4742":0.05066,"4744":-0.15261,"4745":0.15595,"4747":-0.02657,"4748":-0.04526,"4749":0.15756,"4750":0.03153,"4751":-0.23116,"4754":-0.18915,"4755":0.07097,"4756":-0.15346,"4757":-0.08535,"4760":0.03095,"4762":0.06992,"4766":0.03094,"4767":-0.10627,"4768":0.12822,"4775":0.22461,"4777":0.05739,"4779":-0.09865,"4781":0.02889,"4782":0.0794,"4783":-0.02188,"4784":0.20826,"4787":-0.06078,"4790":0.05128,"4797":-0.14964,"4800":-0.02682,"4804":-0.36333,"4806":0.04443,"4807":-0.09078,"4813":-0.15195,"4815":0.17023,"4816":0.18698,"4818":-0.13208,"4822":0.05089,"4823":0.38152,"4824":0.22299,"4825":-0.07111,"4827":0.06643,"4833":0.14474,"4835":0.15523,"4838":0.18748,"4839":0.0851,"4841":-0.05388,"4846":-0.1931,"4852":-0.17901,"4853":0.09938,"4855":0.05739,"4857":-0.05748,"4858":0.07097,"4860":0.16099,"4861":-0.06308,"4863":0.04069,"4864":-0.17667,"4867":0.04807,"4868":0.10203,"4869":-0.02527,"4870":0.19811,"4871":0.05808,"4872":-0.212,"4874":-0.1842,"4877":0.04298,"4879":-0.09005,"4880":0.37339,"4882":-0.04966,"4883":0.10129,"4884":-0.04197,"4885":0.05009,"4887":0.19755,"4888":-0.11193,"4889":-0.0934,"4890":0.45112,"4891":-0.07983,"4892":0.08794,"4895":0.20863,"4897":-0.06167,"4898":-0.05534,"4900":0.07719,"4901":-0.0676,"4902":-0.18501,"4904":-0.15261,"4907":-0.04197,"4909":-0.07232,"4910":0.06753,"4911":0.0851,"4913":-0.15245,"4914":0.22162,"4915":0.11304,"4916":0.09322,"4917":0.05926,"4921":0.10137,"4922":0.16985,"4924":0.09767,"4925":-0.05422,"4926":0.14755,"4927":-0.03229,"4928":0.09758,"4929":-0.27614,"4930":-0.03944,"4933":0.05929,"4934":-0.04197,"4935":0.13275,"4937":-0.03268,"4944":0.09525,"4945":0.14318,"4946":-0.03891,"4947":0.23462,"4948":0.07329,"4950":-0.17316,"4952":-0.09975,"4954":-0.11177,"4956":-0.02824,"4961":-0.11294,"4965":0.02537,"4966":0.07566,"4968":0.15031,"4970":0.0779,"4971":-0.06386,"4973":0.0823,"4974":-0.42911,"4975":0.06992,"4976":0.04743,"4977":-0.06579,"4982":0.03766,"4983":0.05009,"4987":0.07071,"4989":0.10064,"4991":-0.02041,"4995":0.10129,"4996":-0.19575,"4997":0.14785,"4998":-0.08549,"4999":0.02873,"5000":0.05396,"5002":-0.06336,"5006":0.07106,"5011":0.18474,"5016":0.08163,"5017":-0.0489,"5018":0.05781,"5023":-0.14606,"5024":-0.07277,"5026":0.05268,"5027":-0.0809,"5032":0.21299,"5034":0.02273,"5035":-0.06008,"5037":0.14755,"5038":0.04672,"5040":-0.39676,"5041":-0.06661,"5043":0.21144,"5044":-0.07069,"5048":-0.0616,"5049":0.04106,"5050":-0.03268,"5051":-0.06953,"5052":0.05425,"5053":-0.03067,"5054":-0.22383,"5057":0.05946,"5061":-0.17066,"5062":0.14693,"5065":-0.06078,"5066":-0.12099,"5070":-0.04915,"5071":-0.06124,"5072":0.09052,"5074":-0.14341,"5076":0.05989,"5078":-0.05422,"5081":-0.09192,"5083":-0.08246,"5084":0.09136,"5087":-0.10547,"5090":0.09223,"5094":0.09767,"5095":-0.04381,"5097":0.06128,"5102":0.23117,"5103":-0.03628,"5105":0.16777,"5107":-0.24164,"5110":-0.05422,"5112":-0.09975,"5113":-0.30308,"5114":-0.13853,"5119":-0.05534,"5121":-0.0385,"5122":-0.07494,"5123":-0.18915,"5126":0.04963,"5127":-0.15733,"5128":0.06753,"5130":-0.05534,"5132":0.15523,"5133":0.05739,"5134":0.15005,"5138":-0.32893,"5139":-0.22736,"5140":-0.18633,"5144":-0.15261,"5145":-0.20536,"5146":0.06188,"5147":0.07447,"5151":-0.0523,"5152":0.06069,"5153":0.07349,"5155":-0.13459,"5156":-0.3319,"5157":0.09517,"5158":0.06753,"5161":-0.3206,"5164":0.03392,"5168":-0.14155,"5169":0.0227,"5170":0.25838,"5171":-0.15195,"5173":-0.15195,"5174":0.15093,"5176":0.09223,"5178":0.02212,"5180":0.02036,"5181":0.09187,"5182":-0.06661,"5185":-0.14095,"5186":-0.04266,"5190":-0.13033,"5191":0.05396,"5192":0.20766,"5193":0.12736,"5197":0.02312,"5200":0.1213,"5203":0.07231,"5204":-0.03302,"5207":-0.04197,"5208":-0.03067,"5209":-0.22106,"5215":0.14015,"5216":0.13275,"5220":0.05071,"5223":-0.06635,"5225":0.08794,"5226":0.18843,"5227":0.18008,"5229":-0.06386,"5230":-0.03891,"5233":-0.17768,"5234":-0.12589,"5238":0.06069,"5239":0.2053,"5240":-0.17901,"5241":0.26183,"5242":0.03326,"5244":-0.19896,"5246":-0.18633,"5247":-0.07401,"5248":-0.11691,"5250":-0.03268,"5253":0.03094,"5255":0.14755,"5256":-0.09343,"5260":-0.06318,"5262":0.04651,"5263":0.12879,"5265":-0.02188,"5266":-0.07494,"5267":0.05728,"5268":0.14932,"5270":0.10746,"5271":0.20766,"5273":-0.13535,"5274":0.036,"5280":0.43942,"5282":0.08335,"5283":0.0906,"5284":-0.14334,"5288":-0.16263,"5290":-0.04335,"5291":0.22229,"5293":0.05808,"5294":-0.13634,"5295":-0.0676,"5297":-0.21803,"5302":0.12257,"5303":-0.24608,"5304":-0.03178,"5305":-0.18915,"5307":-0.04136,"5309":-0.06268,"5312":0.08098,"5314":-0.12907,"5315":0.18159,"5316":0.13759,"5317":0.59018,"5319":0.14795,"5321":-0.0385,"5324":0.3147,"5325":-0.04085,"5326":-0.15261,"5327":-0.20017,"5330":-0.02903,"5332":0.06989,"5333":-0.12179,"5335":-0.05534,"5337":-0.06708,"5341":0.05739,"5342":0.13302,"5344":-0.14964,"5345":0.18819,"5346":-0.07727,"5350":-0.03891,"5354":-0.05663,"5359":0.10048,"5360":0.02268,"5361":-0.0441,"5363":-0.06229,"5365":0.07714,"5367":0.09999,"5368":0.04248,"5371":0.05808,"5376":0.23861,"5378":-0.05938,"5379":-0.19896,"5383":-0.06655,"5385":-0.02967,"5387":0.05781,"5388":-0.06008,"5389":-0.03398,"5391":-0.31413,"5392":-0.0523,"5395":0.0309,"5396":-0.03743,"5398":0.09223,"5400":0.1238,"5401":-0.10552,"5404":-0.44841,"5408":-0.29586,"5409":-0.09304,"5411":-0.13952,"5414":-0.04381,"5415":0.09767,"5416":-0.20907,"5421":0.07597,"5423":-0.18713,"5425":-0.06661,"5427":-0.06008,"5428":0.02991,"5429":-0.02797,"5430":-0.15261,"5433":-0.0393,"5438":0.21968,"5439":-0.06078,"5441":-0.26069,"5442":0.06666,"5443":0.05548,"5445":-0.09943,"5447":0.07623,"5448":0.06928,"5449":0.03193,"5452":0.14608,"5454":0.12095,"5457":0.18003,"5458":0.09676,"5459":-0.06129,"5460":0.31439,"5462":0.26745,"5464":0.04606,"5465":0.16722,"5467":-0.06078,"5469":-0.13853,"5470":-0.1915,"5471":0.0829,"5472":-0.1883,"5473":0.08044,"5474":-0.02057,"5475":-0.02493,"5479":-0.08293,"5481":0.05808,"5483":-0.2278,"5486":-0.24164,"5487":0.09655,"5488":-0.17801,"5489":-0.02028,"5490":-0.05438,"5492":0.23908,"5493":-0.03665,"5494":0.05808,"5497":0.17262,"5498":-0.14063,"5499":-0.02371,"5505":0.0779,"5509":0.16916,"5511":-0.07426,"5512":-0.08096,"5514":-0.15195,"5516":-0.20471,"5522":0.15364,"5524":0.07035,"5526":0.06989,"5527":0.06753,"5529":-0.04266,"5530":-0.07426,"5533":-0.33921,"5538":-0.21379,"5540":-0.25598,"5541":-0.26286,"5543":-0.03778,"5545":0.24618,"5546":-0.34882,"5547":0.20384,"5548":0.04559,"5549":-0.05928,"5551":-0.19896,"5552":-0.0989,"5553":0.14755,"5554":0.02916,"5555":0.05482,"5556":-0.21029,"5558":0.04033,"5560":-0.06078,"5563":-0.05578,"5564":0.04464,"5567":-0.05465,"5568":-0.07426,"5569":0.08262,"5571":-0.08836,"5573":-0.04266,"5574":-0.07062,"5575":-0.14033,"5578":-0.1931,"5579":-0.03067,"5585":-0.15195,"5588":-0.12388,"5591":0.04356,"5593":-0.14773,"5595":-0.08495,"5596":0.20766,"5598":0.15886,"5599":0.12257,"5602":0.05268,"5604":-0.06386,"5609":0.05284,"5610":-0.28198,"5611":0.14599,"5618":-0.07494,"5619":0.09485,"5621":-0.04381,"5622":0.09445,"5625":0.03726,"5627":-0.09598,"5628":0.06225,"5631":0.11203,"5632":-0.13241,"5634":-0.29231,"5635":0.11432,"5637":-0.06661,"5638":0.09746,"5640":-0.02797,"5642":-0.13895,"5643":-0.06221,"5645":0.09563,"5647":0.30078,"5651":0.09052,"5654":0.05313,"5655":0.32313,"5657":0.11076,"5659":-0.04381,"5660":-0.17901,"5661":0.06992,"5662":-0.04197,"5664":-0.27199,"5666":0.02857,"5667":-0.0385,"5668":0.06753,"5671":-0.13352,"5675":-0.07615,"5681":0.15381,"5685":0.12568,"5687":0.03744,"5689":-0.07211,"5690":-0.02371,"5691":-0.17528,"5692":0.07137,"5694":0.22606,"5695":0.09333,"5696":0.02936,"5697":0.11307,"5699":0.04628,"5702":0.15355,"5704":0.02536,"5705":-0.42599,"5706":0.14233,"5707":-0.18633,"5708":0.09223,"5709":0.11896,"5710":0.05026,"5711":0.07555,"5713":0.09223,"5714":-0.08735,"5715":-0.19896,"5716":0.05808,"5718":0.51589,"5721":-0.05737,"5722":0.0402,"5725":-0.07335,"5726":0.04858,"5728":-0.10627,"5729":0.05396,"5730":0.10713,"5733":0.18522,"5734":-0.02476,"5735":0.18827,"5736":-0.17988,"5738":0.0779,"5740":0.03094,"5741":-0.05064,"5742":0.03094,"5745":-0.07957,"5748":-0.41711,"5749":0.03754,"5750":-0.05855,"5753":-0.19896,"5755":-0.14395,"5756":0.23991,"5757":-0.17112,"5758":-0.1515,"5759":-0.03743,"5760":0.06747,"5761":0.03094,"5764":-0.18633,"5766":-0.20049,"5768":-0.0385,"5770":0.12899,"5771":-0.0385,"5772":-0.19896,"5774":-0.02734,"5778":-0.18915,"5779":0.12268,"5782":-0.68118,"5783":-0.02238,"5787":-0.0934,"5789":-0.10735,"5790":-0.07111,"5791":0.15589,"5792":0.06124,"5794":-0.04045,"5796":-0.18633,"5798":-0.15093,"5801":-0.02188,"5802":-0.02914,"5804":0.10044,"5805":-0.02501,"5810":-0.14169,"5811":-0.07426,"5812":0.09914,"5814":-0.14964,"5815":-0.04197,"5816":-0.05936,"5818":-0.1931,"5820":0.30328,"5821":0.20162,"5823":0.05738,"5824":-0.07426,"5825":0.06753,"5828":-0.07494,"5830":0.07857,"5831":-0.06008,"5833":0.10558,"5840":0.07675,"5841":-0.19993,"5844":-0.29921,"5845":0.05443,"5846":-0.02629,"5850":-0.15261,"5851":0.04106,"5853":0.40261,"5854":0.05348,"5855":-0.04598,"5857":-0.03067,"5858":0.0226,"5860":-0.04043,"5863":0.04106,"5865":-0.07426,"5866":-0.05166,"5872":0.04248,"5874":0.20863,"5876":-0.07127,"5877":0.0779,"5879":-0.17463,"5881":-0.04437,"5882":-0.10694,"5884":0.15886,"5886":0.16023,"5888":0.06753,"5892":0.02846,"5895":-0.06087,"5899":-0.07117,"5900":-0.09122,"5901":-0.04289,"5903":-0.02124,"5904":0.13632,"5905":0.08946,"5906":-0.05422,"5907":0.06753,"5914":-0.19896,"5915":-0.16728,"5919":-0.10547,"5920":0.13949,"5921":-0.06619,"5923":0.34624,"5924":0.11976,"5926":-0.30204,"5927":-0.0385,"5928":-0.1931,"5930":0.10808,"5931":0.02621,"5932":-0.03891,"5933":-0.04381,"5936":-0.12553,"5938":-0.20156,"5939":-0.13189,"5941":0.05231,"5942":-0.14964,"5943":-0.41011,"5944":-0.07931,"5945":0.18827,"5946":-0.10461,"5947":-0.10627,"5953":-0.07493,"5954":-0.21524,"5955":-0.06201,"5957":-0.0385,"5958":-0.25541,"5959":0.05738,"5961":-0.04727,"5962":0.09321,"5963":-0.08535,"5964":0.11778,"5968":-0.19317,"5972":-0.0453,"5973":0.14755,"5974":0.09767,"5975":-0.18633,"5977":0.04248,"5979":-0.25112,"5981":-0.18713,"5982":0.02432,"5983":0.04084,"5984":-0.16622,"5985":-0.04434,"5987":-0.09752,"5988":-0.06008,"5990":0.06989,"5991":0.08175,"5992":-0.13259,"5993":-0.19143,"5994":-0.06079,"5999":0.07629,"6000":-0.05534,"6001":-0.37265,"6003":0.04286,"6004":-0.10627,"6005":0.07623,"6008":-0.06299,"6009":0.06753,"6012":-0.16932,"6013":0.07231,"6017":0.02501,"6018":-0.02599,"6019":-0.09692,"6021":-0.04788,"6024":-0.02914,"6025":0.22034,"6026":1.16239,"6027":-0.06078,"6028":0.27951,"6029":-0.17534,"6030":-0.1889,"6033":0.37967,"6034":-0.04381,"6036":-0.14875,"6037":-0.10627,"6038":0.04857,"6040":-0.0908,"6043":-0.20483,"6044":-0.13535,"6045":-0.19576,"6047":-0.02188,"6048":0.05781,"6049":0.11329,"6052":-0.09278,"6057":0.14755,"6058":0.03119,"6064":-0.04156,"6065":0.05267,"6066":-0.03067,"6068":-0.06167,"6071":0.03385,"6072":0.09767,"6073":0.03094,"6076":0.45545,"6078":0.03701,"6080":0.09052,"6081":-0.09636,"6082":-0.02188,"6083":-0.14791,"6087":0.15523,"6089":0.04389,"6090":-0.04727,"6096":-0.13356,"6100":0.14529,"6102":0.03588,"6105":-0.19384,"6107":0.05946,"6108":-0.05934,"6114":-0.17077,"6115":0.18008,"6119":-0.10627,"6120":-0.03375,"6123":0.16515,"6125":0.06992,"6129":0.03295,"6130":-0.04578,"6133":0.16041,"6136":-0.22108,"6138":-0.18223,"6141":-0.03891,"6143":-0.15691,"6146":0.11367,"6147":-0.04197,"6149":0.06928,"6150":-0.13535,"6152":-0.19874,"6153":0.50265,"6154":-0.11853,"6158":0.03101,"6160":-0.07426,"6161":-0.10342,"6163":0.05584,"6164":0.26851,"6167":0.03576,"6168":0.03789,"6170":0.07623,"6171":-0.22915,"6173":0.12237,"6175":-0.20641,"6177":-0.09052,"6180":0.04106,"6182":-0.06386,"6183":-0.19896,"6185":0.06708,"6191":-0.07111,"6193":-0.06386,"6194":0.23423,"6197":0.05738,"6198":0.09895,"6200":-0.03268,"6201":0.11773,"6204":0.02716,"6205":0.14755,"6207":0.11627,"6208":-0.17363,"6213":-0.03067,"6215":-0.10174,"6216":-0.20829,"6219":-0.07494,"6220":-0.10016,"6223":0.17691,"6228":0.10129,"6230":-0.03891,"6233":-0.19184,"6234":-0.06926,"6235":0.05781,"6236":-0.07365,"6237":-0.12956,"6240":-0.09384,"6241":0.15548,"6242":0.04531,"6244":-0.05422,"6245":-0.11628,"6247":-0.22033,"6250":-0.08535,"6254":0.09251,"6255":-0.06078,"6256":-0.07905,"6257":-0.06862,"6258":0.0971,"6259":-0.13853,"6262":-0.07252,"6263":-0.15418,"6264":0.026,"6266":-0.09975,"6267":0.04421,"6268":-0.03819,"6269":-0.11894,"6270":-0.04734,"6273":0.09767,"6274":0.05009,"6275":0.05009,"6276":0.14687,"6279":0.02465,"6280":-0.07065,"6283":0.02537,"6284":0.14099,"6285":0.07591,"6286":-0.03589,"6288":-0.03503,"6289":-0.06386,"6291":-0.07765,"6293":-0.11052,"6297":-0.04042,"6298":-0.02964,"6302":-0.20049,"6303":0.16777,"6307":0.08953,"6309":0.06054,"6312":-0.06167,"6313":-0.16728,"6315":-0.04559,"6316":0.07777,"6325":0.04069,"6326":-0.05064,"6327":0.05396,"6328":0.06954,"6329":0.19018,"6331":-0.04484,"6332":-0.06386,"6335":-0.02088,"6336":-0.14964,"6339":0.21429,"6340":-0.19767,"6341":0.04248,"6344":-0.04153,"6345":-0.10758,"6346":0.04798,"6347":-0.19315,"6351":-0.19162,"6357":0.04233,"6358":0.17053,"6359":0.08678,"6362":-0.12558,"6363":0.07441,"6364":-0.12608,"6366":-0.21803,"6368":-0.18633,"6369":-0.03671,"6374":-0.10439,"6378":0.05268,"6380":-0.16189,"6382":-0.13535,"6383":0.03925,"6384":0.12403,"6385":-0.09682,"6388":-0.04868,"6393":0.09223,"6394":-0.1065,"6395":0.16221,"6396":-0.04304,"6397":-0.12385,"6399":-0.10627,"6400":-0.06556,"6402":0.02145,"6403":-0.04646,"6404":0.1065,"6407":-0.20155,"6408":-0.18264,"6409":0.03095,"6410":-0.04381,"6413":-0.06106,"6414":0.0829,"6415":-0.38373,"6416":0.26077,"6418":-0.37847,"6419":0.07382,"6420":-0.41034,"6421":-0.04197,"6422":-0.14964,"6424":-0.02832,"6425":0.03418,"6426":0.04174,"6427":-0.06618,"6430":0.04229,"6433":0.02031,"6434":0.20832,"6437":-0.14964,"6438":-0.04381,"6439":0.04069,"6441":-0.07668,"6446":-0.21803,"6447":0.15401,"6450":-0.02728,"6452":0.0779,"6458":0.10892,"6461":-0.09127,"6462":-0.05757,"6464":-0.09558,"6465":0.02703,"6466":-0.05534,"6470":-0.11069,"6472":-0.05134,"6473":0.07623,"6476":0.05396,"6477":-0.20585,"6483":0.20766,"6484":-0.06908,"6485":-0.05147,"6488":-0.13298,"6491":0.17254,"6492":-0.0676,"6494":0.05452,"6495":0.08584,"6497":0.08911,"6498":-0.07985,"6499":-0.04084,"6501":0.02747,"6502":0.07571,"6503":-0.1931,"6505":0.03348,"6506":0.0829,"6507":0.02089,"6512":-0.10209,"6513":0.14755,"6514":-0.06414,"6516":-0.26414,"6517":0.19521,"6519":0.07958,"6521":-0.04048,"6524":0.03094,"6525":0.13343,"6526":0.03094,"6527":-0.06595,"6530":0.21102,"6531":0.39927,"6532":-0.07143,"6533":-0.05067,"6534":-0.13535,"6535":-0.18708,"6539":0.09874,"6540":-0.057,"6546":0.14755,"6547":-0.19053,"6548":-0.10992,"6550":-0.02144,"6553":0.04248,"6554":0.06623,"6555":-0.13896,"6558":-0.15261,"6560":0.06069,"6562":-0.07143,"6564":-0.02797,"6566":0.05978,"6569":0.03776,"6570":-0.09975,"6573":0.12797,"6577":-0.15237,"6578":-0.06225,"6579":0.04786,"6580":0.05268,"6583":-0.0676,"6585":0.07518,"6587":-0.16652,"6588":-0.04678,"6589":0.15836,"6594":-0.04381,"6596":-0.14921,"6597":-0.08555,"6598":-0.20549,"6599":-0.02239,"6602":0.33353,"6604":-0.26198,"6606":0.15326,"6609":0.34076,"6611":-0.20295,"6612":-0.20678,"6613":-0.10627,"6616":-0.18705,"6617":-0.20796,"6621":0.02344,"6625":0.11072,"6626":0.15982,"6628":-0.16728,"6631":0.02537,"6633":0.05946,"6634":-0.08535,"6636":-0.07989,"6639":0.12039,"6641":-0.06167,"6643":0.04394,"6646":-0.05064,"6647":-0.04727,"6649":-0.08673,"6650":0.04069,"6654":0.0829,"6657":-0.09002,"6659":0.16281,"6660":-0.06054,"6661":-0.1688,"6662":-0.05379,"6663":-0.23418,"6664":-0.04412,"6665":0.06069,"6671":-0.06386,"6672":0.03141,"6673":0.04929,"6674":0.06776,"6675":-0.16728,"6676":-0.06764,"6679":0.1065,"6680":0.06992,"6681":-0.13535,"6682":0.41489,"6687":0.04849,"6688":-0.0385,"6690":-0.05534,"6691":-0.18589,"6692":0.06928,"6693":0.10315,"6694":-0.23398,"6696":0.05396,"6698":-0.2135,"6699":-0.06661,"6707":-0.02371,"6708":0.19287,"6710":0.06044,"6711":-0.05534,"6712":-0.37394,"6713":0.06753,"6720":0.09646,"6723":0.11009,"6724":-0.06008,"6725":0.0402,"6727":0.06662,"6731":-0.19896,"6732":-0.15988,"6733":0.03005,"6734":0.05369,"6735":-0.03891,"6737":-0.2022,"6738":0.08576,"6743":0.06989,"6744":0.0829,"6745":-0.20499,"6747":-0.04431,"6749":-0.0956,"6750":-0.17901,"6751":0.09439,"6754":-0.04088,"6756":0.05781,"6757":0.09496,"6758":-0.14279,"6759":-0.20507,"6760":0.11361,"6761":-0.06167,"6763":0.0779,"6765":-0.04317,"6767":0.09683,"6771":-0.18633,"6774":0.05796,"6775":-0.0934,"6776":-0.03747,"6778":0.09728,"6779":0.07515,"6783":-0.16652,"6784":0.05946,"6786":0.03656,"6789":-0.13356,"6791":0.11051,"6793":0.12448,"6794":-0.06661,"6795":0.06069,"6796":0.15355,"6800":0.26076,"6804":0.08902,"6805":0.04574,"6808":-0.24168,"6812":-0.02353,"6813":0.0829,"6814":-0.12724,"6823":0.17262,"6824":0.05792,"6827":-0.0651,"6829":-0.03946,"6831":-0.07345,"6837":0.08114,"6838":-0.56443,"6839":0.05666,"6841":-0.17916,"6843":-0.05486,"6844":0.15523,"6845":-0.03723,"6847":0.69664,"6849":-0.02589,"6851":0.16465,"6852":0.11769,"6853":-0.05625,"6854":-0.04727,"6855":-0.09543,"6856":0.07358,"6857":-0.1035,"6859":-0.1839,"6861":-0.10774,"6863":-0.06124,"6864":-0.03407,"6865":-0.05422,"6869":-0.07304,"6870":-0.04727,"6871":-0.02188,"6872":0.23542,"6875":0.1426,"6877":-0.07494,"6880":0.13403,"6881":-0.0231,"6882":0.09002,"6886":-0.02388,"6887":0.05976,"6889":-0.04381,"6890":-0.16728,"6893":-0.29697,"6895":0.07278,"6897":0.16914,"6898":0.1322,"6899":-0.0676,"6904":-0.03067,"6905":-0.15004,"6907":-0.10502,"6909":-0.14964,"6910":0.09767,"6914":0.09837,"6915":-0.18704,"6916":0.05268,"6917":-0.27554,"6921":-0.06661,"6926":0.28176,"6927":0.05885,"6928":-0.28289,"6929":-0.07859,"6930":-0.12768,"6933":-0.06386,"6940":0.16985,"6942":-0.10772,"6944":0.02273,"6945":0.20332,"6946":0.09439,"6948":0.02621,"6950":-0.09011,"6952":-0.04974,"6953":0.18017,"6957":0.1375,"6958":0.05282,"6963":0.24835,"6964":-0.10058,"6967":-0.02121,"6969":0.1397,"6970":-0.04746,"6972":-0.1438,"6973":0.21089,"6975":-0.18915,"6976":0.09223,"6977":-0.09647,"6980":-0.05064,"6982":-0.18633,"6983":0.10841,"6984":0.08478,"6985":-0.05534,"6986":0.10449,"6987":-0.05734,"6988":0.06069,"6989":0.05651,"6990":-0.06224,"6991":0.04159,"6992":-0.14067,"6993":0.06605,"6994":-0.14964,"6995":0.11275,"6997":-0.25745,"7002":0.10081,"7003":0.05739,"7004":-0.03067,"7007":-0.14205,"7010":-0.10552,"7012":-0.15261,"7014":-0.04727,"7016":0.32491,"7017":0.05548,"7020":-0.2494,"7022":0.26679,"7025":-0.16728,"7029":0.08318,"7030":0.12436,"7033":-0.19868,"7034":-0.22358,"7036":-0.15146,"7037":-0.0676,"7041":-0.07375,"7044":0.03191,"7046":0.23476,"7048":0.19367,"7049":0.07933,"7050":-0.06237,"7051":-0.13356,"7052":0.04616,"7054":0.09223,"7055":0.09223,"7059":0.30313,"7063":0.06295,"7066":0.02478,"7068":0.02791,"7071":-0.16728,"7074":0.18218,"7081":0.16014,"7082":0.06753,"7086":-0.03891,"7087":-0.10844,"7089":0.09808,"7093":0.27609,"7094":0.11177,"7096":-0.0934,"7097":-0.15444,"7099":-0.07111,"7100":-0.03067,"7102":0.10129,"7104":0.06992,"7105":0.27531,"7110":-0.10047,"7111":0.08451,"7112":0.30591,"7114":-0.12644,"7117":-0.26169,"7118":-0.10774,"7120":0.02904,"7122":-0.17916,"7123":-0.22427,"7125":0.11237,"7129":-0.1388,"7132":-0.03067,"7134":0.03398,"7135":0.05739,"7137":0.03944,"7138":-0.18915,"7139":0.11521,"7140":-0.03891,"7142":0.25631,"7143":-0.04841,"7145":0.20766,"7146":-0.68857,"7147":-0.02188,"7149":0.20353,"7150":0.07623,"7151":0.24086,"7152":-0.07466,"7153":0.27173,"7154":0.14755,"7157":-0.09956,"7162":-0.04197,"7166":0.0477,"7167":0.19146,"7171":0.18249,"7173":-0.21679,"7174":-0.06443,"7176":-0.18633,"7180":-0.0934,"7181":-0.22219,"7190":-0.02954,"7193":0.16788,"7194":-0.04341,"7197":0.04069,"7206":-0.30183,"7208":-0.161,"7209":-0.13482,"7211":0.20766,"7212":-0.08535,"7213":-0.25393,"7214":-0.15008,"7215":-0.06008,"7218":0.04759,"7219":0.04248,"7220":-0.10627,"7225":0.05268,"7227":0.02841,"7228":-0.06008,"7231":0.11417,"7232":0.14755,"7237":0.08394,"7242":-0.13932,"7245":0.14671,"7246":0.0523,"7247":-0.07111,"7249":0.11125,"7250":0.06813,"7251":-0.02935,"7253":0.05766,"7254":-0.06167,"7255":-0.04085,"7259":-0.71092,"7260":0.20353,"7262":0.10069,"7264":-0.03274,"7267":-0.1495,"7268":-0.15261,"7270":0.14755,"7271":-0.14964,"7272":-0.08861,"7273":0.0584,"7274":0.11367,"7278":-0.69062,"7279":0.05808,"7282":-0.15249,"7283":-0.06619,"7288":0.09767,"7289":0.38016,"7290":0.05396,"7292":0.09767,"7293":0.05268,"7297":-0.03268,"7298":-0.1923,"7300":0.05009,"7301":0.14128,"7303":0.25513,"7304":0.20895,"7306":0.05781,"7307":-0.03492,"7308":0.06228,"7309":-0.04197,"7310":-0.14441,"7311":0.04601,"7314":-0.06733,"7317":0.06646,"7318":-0.14964,"7319":0.0426,"7320":0.12736,"7321":0.06306,"7324":-0.15418,"7325":-0.05944,"7326":0.13264,"7328":0.06738,"7331":-0.15914,"7333":-0.09975,"7334":-0.20194,"7335":-0.20929,"7336":-0.14964,"7337":0.06783,"7339":-0.11114,"7340":-0.0385,"7341":-0.18054,"7343":-0.15982,"7345":0.10143,"7347":0.0829,"7351":0.18008,"7353":0.13341,"7359":-0.07482,"7360":-0.3722,"7361":-0.09229,"7362":0.08605,"7364":0.04034,"7367":0.16334,"7368":0.31531,"7370":-0.08274,"7371":-0.1771,"7373":0.04659,"7376":-0.2207,"7379":-0.07111,"7382":0.03106,"7383":0.09465,"7384":0.04256,"7385":-0.07494,"7388":-0.13146,"7390":-0.06725,"7391":0.07231,"7392":-0.02188,"7394":-0.04063,"7399":-0.14756,"7400":-0.05989,"7404":0.03196,"7405":-0.08535,"7406":-0.03577,"7407":0.05268,"7408":-0.17479,"7410":-0.05109,"7411":0.04106,"7413":-0.15273,"7416":-0.18195,"7421":-0.04696,"7423":0.12736,"7428":0.06006,"7429":-0.0934,"7430":-0.31779,"7431":0.09223,"7432":-0.03268,"7433":-0.05422,"7434":-0.16652,"7435":-0.02627,"7436":0.06127,"7437":-0.03067,"7438":0.09439,"7440":0.23323,"7442":-0.07321,"7443":0.10467,"7445":0.10366,"7446":0.05548,"7448":-0.10456,"7449":0.05268,"7450":-0.05422,"7452":0.06866,"7454":0.09517,"7456":0.15031,"7457":0.09311,"7462":0.40423,"7464":-0.14612,"7465":0.04659,"7466":-0.03053,"7473":0.17975,"7474":0.0829,"7478":-0.17793,"7479":-0.06067,"7480":-0.04226,"7481":-0.15261,"7484":-0.0764,"7485":-0.16728,"7486":-0.14155,"7487":0.11171,"7488":0.04248,"7490":-0.14155,"7491":0.0239,"7492":0.10663,"7493":0.16081,"7495":0.0661,"7497":0.04084,"7498":-0.27364,"7500":-0.05152,"7501":0.04256,"7502":-0.15623,"7504":0.11521,"7511":0.30814,"7516":-0.06167,"7518":-0.03543,"7522":-0.03268,"7523":0.04709,"7525":-0.17013,"7526":-0.06661,"7528":-0.0676,"7530":0.04659,"7531":-0.18633,"7532":0.05681,"7533":0.05627,"7534":0.24489,"7538":-0.07426,"7540":-0.03345,"7541":0.05009,"7542":0.15523,"7544":0.11563,"7547":0.02472,"7548":-0.2483,"7549":0.12866,"7551":-0.02527,"7552":-0.1489,"7554":0.15134,"7558":0.0779,"7559":0.08752,"7560":-0.06167,"7561":-0.08535,"7563":0.08753,"7565":-0.08456,"7566":-0.07287,"7569":-0.17699,"7572":-0.05064,"7575":-0.14069,"7576":0.14802,"7578":-0.17916,"7582":-0.04727,"7583":0.09795,"7584":0.18018,"7588":-0.06661,"7589":-0.0447,"7593":0.03094,"7596":-0.1257,"7599":0.26693,"7600":-0.03823,"7601":0.07447,"7603":0.02845,"7606":0.32608,"7609":0.1865,"7610":0.14755,"7611":-0.12345,"7612":0.41684,"7613":0.16968,"7614":-0.05983,"7615":0.09998,"7619":-0.05364,"7620":-0.23792,"7622":-0.07111,"7624":0.15523,"7626":0.20543,"7628":0.09767,"7629":0.04106,"7630":-0.14018,"7631":0.07684,"7636":0.04958,"7638":-0.07433,"7640":0.11877,"7642":0.04718,"7643":0.04779,"7645":-0.28069,"7648":-0.02371,"7651":-0.02188,"7655":-0.09362,"7656":-0.1851,"7657":-0.04381,"7658":-0.0282,"7659":0.05059,"7662":0.19906,"7665":0.20847,"7667":0.07035,"7669":-0.25221,"7671":-0.0385,"7673":0.1656,"7674":-0.1931,"7675":-0.0201,"7676":0.04963,"7677":-0.14543,"7679":-0.07111,"7680":-0.14356,"7682":-0.06386,"7683":-0.06167,"7685":0.06928,"7688":0.18008,"7690":0.05081,"7692":0.06069,"7693":-0.07111,"7694":0.11358,"7695":-0.55,"7696":-0.05534,"7699":-0.15121,"7701":-0.03289,"7703":0.12436,"7704":-0.13535,"7705":-0.20498,"7706":0.24206,"7707":-0.24305,"7708":0.46885,"7714":0.0946,"7716":-0.14086,"7718":-0.04064,"7721":0.18273,"7722":-0.41516,"7723":-0.13379,"7726":-0.17901,"7728":-0.0934,"7730":-0.03891,"7732":-0.10658,"7733":-0.14146,"7734":-0.27221,"7735":0.13997,"7737":0.05548,"7739":-0.05534,"7741":0.17228,"7742":-0.05545,"7743":-0.05534,"7744":-0.16652,"7746":0.21478,"7747":-0.05534,"7750":-0.17901,"7751":0.12793,"7752":0.27624,"7753":-0.30428,"7754":-0.13853,"7755":-0.19896,"7758":0.22563,"7760":-0.13763,"7764":-0.08651,"7765":-0.06386,"7767":0.14483,"7768":-0.17324,"7770":0.09223,"7771":-0.51787,"7772":-0.13716,"7773":-0.18224,"7774":-0.0336,"7775":-0.6387,"7777":-0.04266,"7780":0.05278,"7785":0.14705,"7787":0.14996,"7792":0.03562,"7795":0.0474,"7797":0.10813,"7798":-0.07776,"7801":0.05341,"7802":0.12193,"7803":-0.16931,"7809":0.11852,"7812":0.03735,"7814":-0.25739,"7816":0.06928,"7817":0.20734,"7819":-0.10349,"7821":-0.03807,"7822":-0.2496,"7826":0.08735,"7828":0.05781,"7831":-0.04932,"7832":-0.10205,"7834":-0.07426,"7835":-0.28491,"7840":-0.05253,"7841":-0.10627,"7845":0.03094,"7846":0.02172,"7847":-0.22925,"7848":0.09938,"7850":0.12446,"7852":-0.17765,"7858":-0.48685,"7861":-0.14964,"7863":0.08694,"7864":0.09223,"7869":0.03536,"7873":-0.05422,"7874":0.02991,"7875":0.02512,"7876":0.03944,"7877":0.22966,"7879":-0.04399,"7882":-0.11012,"7883":0.08902,"7888":0.08559,"7890":0.02608,"7893":-0.04197,"7898":0.04163,"7902":0.11976,"7903":0.2387,"7904":0.15886,"7905":0.05627,"7907":-0.0523,"7910":0.1743,"7911":0.06989,"7918":-0.17308,"7922":-0.05534,"7924":0.25033,"7926":0.10207,"7927":-0.0385,"7928":-0.09002,"7929":0.0223,"7930":0.07231,"7932":0.06928,"7933":0.05739,"7934":-0.1931,"7935":0.03552,"7936":-0.1987,"7940":-0.15203,"7942":0.1027,"7946":-0.19896,"7947":0.188,"7951":-0.19629,"7952":0.1948,"7958":0.14359,"7959":-0.12908,"7963":-0.10174,"7967":-0.05326,"7969":0.05457,"7972":-0.17885,"7973":-0.03701,"7974":0.10129,"7975":0.02991,"7977":-0.05198,"7978":0.11521,"7979":0.1135,"7980":0.14124,"7982":0.26406,"7986":0.05314,"7987":-0.02371,"7988":0.16519,"7989":-0.25576,"7991":-0.05196,"7992":-0.12634,"7994":0.15523,"7995":0.02026,"7996":0.08299,"7997":-0.12753,"7998":-0.03891,"8000":-0.09948,"8002":0.06003,"8004":0.21931,"8005":0.05911,"8006":0.14619,"8007":-0.03425,"8009":0.0838,"8010":-0.04197,"8013":-0.36289,"8014":-0.08678,"8015":0.14855,"8020":-0.05757,"8024":-0.16728,"8026":0.22734,"8030":0.02955,"8032":-0.13082,"8036":-0.18633,"8041":0.04106,"8043":-0.23116,"8044":-0.05534,"8047":-0.04197,"8049":0.07456,"8050":-0.03998,"8051":0.02729,"8052":-0.18633,"8055":-0.07179,"8057":-0.27546,"8062":-0.07343,"8063":0.11085,"8064":-0.18256,"8065":0.09052,"8067":-0.06198,"8069":0.05268,"8070":0.13441,"8072":-0.16652,"8073":0.05396,"8074":-0.14964,"8075":-0.06167,"8076":-0.1948,"8077":-0.12508,"8079":-0.07494,"8080":-0.07484,"8083":-0.05993,"8084":0.02491,"8086":-0.04266,"8089":0.10044,"8093":0.06988,"8094":-0.03501,"8095":-0.09005,"8100":0.14755,"8104":-0.11193,"8107":-0.19472,"8109":-0.06564,"8110":0.09038,"8113":0.04321,"8115":0.05264,"8116":-0.04381,"8118":0.03576,"8122":0.05373,"8124":-0.11719,"8126":0.15575,"8128":-0.03761,"8132":0.15548,"8134":0.07154,"8135":0.02991,"8137":-0.0523,"8138":0.06992,"8139":-0.10974,"8140":0.15655,"8141":-0.06799,"8143":-0.05534,"8145":0.12797,"8148":-0.09653,"8150":0.02903,"8152":0.1103,"8153":-0.07015,"8156":-0.09975,"8157":-0.03067,"8158":-0.0934,"8159":0.06989,"8160":0.07385,"8161":0.02967,"8164":0.14994,"8165":0.05739,"8166":-0.09142,"8168":-0.12336,"8169":-0.11126,"8171":-0.06008,"8172":-0.10774,"8174":0.19003,"8178":0.04478,"8179":-0.25745,"8181":-0.06619,"8182":0.0247,"8183":0.0942,"8190":-0.05422},"_note":"HashLR prompt-injection model. buckets = int(fnv1a(feature),16) % dim. Retrain: packages/shared/ml/train_hashlr.py"}
data/nemesis_shield.rb ADDED
@@ -0,0 +1,213 @@
1
+ # Nemesis Shield — Sentinel SDK for Ruby (native: local shape + policy cache + inline blocking).
2
+ # Learns your app's normal behavior; in enforce mode blocks off-baseline requests (auth bypass, path
3
+ # traversal, scanners, unusual methods) before your app runs. Works with any Rack app — Rails,
4
+ # Sinatra, Hanami, raw Rack. Fail-open, privacy-preserving.
5
+ #
6
+ # # Rails (config/application.rb): config.middleware.use NemesisShield::Middleware, token: ENV["NEMESIS_TOKEN"]
7
+ # # Sinatra: use NemesisShield::Middleware, token: ENV["NEMESIS_TOKEN"]
8
+ require "net/http"
9
+ require "json"
10
+ require "uri"
11
+ require "thread"
12
+
13
+ module NemesisShield
14
+ DEFAULT_ENDPOINT = "https://shield.nemesislabs.xyz/api/v1/sketches".freeze
15
+ # Canonical value taxonomy — must match the shared engine (tokenize.ts) byte-for-byte so a Ruby
16
+ # app and a Node/Python app produce identical shape hashes.
17
+ UUID = /\A[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\z/i
18
+ EMAIL = /\A[^@\s]+@[^@\s]+\.[^@\s]+\z/
19
+ URLRE = /\Ahttps?:\/\/\S+\z/i
20
+ IPV4 = /\A(\d{1,3}\.){3}\d{1,3}\z/
21
+ IPV6 = /\A[0-9a-f:]+:[0-9a-f:]+\z/i
22
+ INT = /\A-?\d+\z/
23
+ FLOATRE = /\A-?\d*\.\d+\z/
24
+ DATE = /\A\d{4}-\d{2}-\d{2}([T ]\d{2}:\d{2}(:\d{2})?)?/
25
+ JWT = /\A[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\z/
26
+ HEX = /\A[0-9a-f]+\z/i
27
+ B64 = /\A[A-Za-z0-9+\/]+={0,2}\z/
28
+ ALPHA = /\A[A-Za-z]+\z/
29
+ ALNUM = /\A[A-Za-z0-9]+\z/
30
+
31
+ module_function
32
+
33
+ def normalize_path(path)
34
+ clean = path.to_s.split("?", 2).first.to_s.split("#", 2).first.to_s
35
+ out = clean.split("/").map do |seg|
36
+ next seg if seg.empty?
37
+ next "{traversal}" if seg.include?("..") # path-traversal segment (keeps ".." out of telemetry)
38
+ case kind_of(seg)
39
+ when "int", "float" then "{int}"
40
+ when "uuid" then "{uuid}"
41
+ when "hex" then "{hex}"
42
+ when "base64" then "{token}"
43
+ when "alnum" then seg.length >= 12 ? "{id}" : seg
44
+ else seg end
45
+ end.join("/")
46
+ out.empty? ? "/" : out
47
+ end
48
+
49
+ def kind_of(v)
50
+ return "bool" if v == true || v == false
51
+ return "empty" if v.nil?
52
+ s = v.to_s
53
+ return "empty" if s.empty?
54
+ return "uuid" if s =~ UUID
55
+ return "email" if s =~ EMAIL
56
+ return "url" if s =~ URLRE
57
+ return "ipv4" if s =~ IPV4
58
+ return "ipv6" if s =~ IPV6
59
+ return "jwt" if s =~ JWT
60
+ return "date" if s =~ DATE
61
+ return "int" if s =~ INT
62
+ return "float" if s =~ FLOATRE
63
+ return "hex" if s.length >= 16 && s =~ HEX
64
+ return "base64" if s.length >= 16 && s =~ B64
65
+ return "alpha" if s =~ ALPHA
66
+ return "alnum" if s =~ ALNUM
67
+ "string"
68
+ end
69
+
70
+ def fnv1a(str)
71
+ h = 0x811c9dc5
72
+ str.each_byte { |b| h ^= b; h = (h * 0x01000193) & 0xffffffff }
73
+ format("%08x", h)
74
+ end
75
+
76
+ # Request signature (method + route + query param kinds + auth). Excludes status by design.
77
+ def build_sketch(method:, path:, query: {}, authed: false, status: 0)
78
+ route = normalize_path(path)
79
+ params = (query || {}).keys.sort.map { |k| v = query[k]; { name: k.to_s, kind: kind_of(v.is_a?(Array) ? v.first : v), nested: v.is_a?(Array) } }
80
+ # canonical shape input: keys sorted (auth, method, params, route); params are [name, kind, nested];
81
+ # status is intentionally excluded so enforcement can decide BEFORE the response exists.
82
+ canon = JSON.generate({ auth: authed ? 1 : 0, method: method.to_s.upcase, params: params.map { |p| [p[:name], p[:kind], p[:nested] ? 1 : 0] }, route: route })
83
+ { route: route, method: method.to_s.upcase, authenticated: authed, status: status, params: params, shape: fnv1a(canon) }
84
+ end
85
+
86
+ # Safe-unlock (break-glass): paths never blocked, so a still-learning baseline can't lock operators
87
+ # out of the doors they need to fix it. Prefix-matched. Override with the NEMESIS_SHIELD_BOOTSTRAP
88
+ # env (comma-separated) or the `bootstrap:` option.
89
+ DEFAULT_BOOTSTRAP = ["/login", "/signin", "/sign-in", "/auth", "/oauth", "/session", "/wp-login.php", "/wp-admin"].freeze
90
+
91
+ def resolve_bootstrap(cfg)
92
+ return cfg.map(&:to_s) if cfg.is_a?(Array)
93
+ env = ENV["NEMESIS_SHIELD_BOOTSTRAP"].to_s
94
+ return env.split(",").map(&:strip).reject(&:empty?) unless env.strip.empty?
95
+ DEFAULT_BOOTSTRAP.dup
96
+ end
97
+ module_function :resolve_bootstrap
98
+
99
+ class Client
100
+ def initialize(token, endpoint: DEFAULT_ENDPOINT, flush_interval: 2, bootstrap: nil)
101
+ @token = token
102
+ @uri = URI(endpoint)
103
+ @mode = "observe"
104
+ @shapes = {}
105
+ @known_bad = []
106
+ @baseline = false
107
+ @buffer = []
108
+ @bootstrap = NemesisShield.resolve_bootstrap(bootstrap)
109
+ @mu = Mutex.new
110
+ if token && flush_interval && flush_interval > 0
111
+ refresh
112
+ Thread.new do
113
+ loop { sleep flush_interval; flush; refresh }
114
+ end
115
+ end
116
+ end
117
+
118
+ def enforcing?
119
+ @mu.synchronize { @mode == "enforce" }
120
+ end
121
+
122
+ # Break-glass: is this path on the never-block bootstrap allow-list? Prefix match.
123
+ def never_block(path)
124
+ p = path.to_s.split("?").first.to_s.split("#").first.to_s.downcase
125
+ @bootstrap.any? { |b| !b.empty? && p.start_with?(b.downcase) }
126
+ end
127
+
128
+ def decide(sketch)
129
+ @mu.synchronize do
130
+ per = @shapes[sketch[:shape]]
131
+ return [false, nil] if per == "allow"
132
+ return [true, "policy: blocked shape"] if per == "block"
133
+ return [true, "global threat intelligence"] if @known_bad.include?(sketch[:shape])
134
+ return [true, "off-baseline: unapproved behavior"] if @baseline
135
+ [false, nil]
136
+ end
137
+ end
138
+
139
+ def record(sketch)
140
+ flush_now = false
141
+ @mu.synchronize { @buffer << sketch; flush_now = @buffer.size >= 50 }
142
+ flush if flush_now
143
+ end
144
+
145
+ def flush
146
+ batch = @mu.synchronize { b = @buffer; @buffer = []; b }
147
+ send_batch(batch) unless batch.empty?
148
+ end
149
+
150
+ def refresh
151
+ send_batch([])
152
+ end
153
+
154
+ def send_batch(batch)
155
+ http = Net::HTTP.new(@uri.host, @uri.port)
156
+ http.use_ssl = @uri.scheme == "https"
157
+ http.open_timeout = 2
158
+ http.read_timeout = 3
159
+ req = Net::HTTP::Post.new(@uri, "Authorization" => "Bearer #{@token}", "Content-Type" => "application/json")
160
+ req.body = JSON.generate({ sketches: batch })
161
+ res = http.request(req)
162
+ return unless res.is_a?(Net::HTTPSuccess)
163
+ data = JSON.parse(res.body)
164
+ @mu.synchronize do
165
+ @mode = data["mode"] if data["mode"]
166
+ pol = data["policy"] || {}
167
+ if pol["shapes"]
168
+ @shapes = pol["shapes"]
169
+ @baseline = true unless @shapes.empty?
170
+ end
171
+ @known_bad = pol["knownBad"] if pol["knownBad"]
172
+ end
173
+ rescue StandardError
174
+ nil # fail-open
175
+ end
176
+ end
177
+
178
+ # Rack middleware (Rails / Sinatra / any Rack app).
179
+ class Middleware
180
+ def initialize(app, token:, endpoint: DEFAULT_ENDPOINT, **kw)
181
+ @app = app
182
+ @client = Client.new(token, endpoint: endpoint, **kw)
183
+ end
184
+
185
+ def call(env)
186
+ method = env["REQUEST_METHOD"]
187
+ path = env["PATH_INFO"].to_s
188
+ authed = !env["HTTP_AUTHORIZATION"].nil? || !env["HTTP_COOKIE"].nil? || !env["HTTP_X_API_KEY"].nil?
189
+ query = begin
190
+ require "rack/utils"
191
+ Rack::Utils.parse_query(env["QUERY_STRING"].to_s)
192
+ rescue StandardError
193
+ # stdlib fallback so query-param STRUCTURE is still fed when rack isn't loaded
194
+ begin
195
+ URI.decode_www_form(env["QUERY_STRING"].to_s).to_h
196
+ rescue StandardError
197
+ {}
198
+ end
199
+ end
200
+ if @client.enforcing? && !@client.never_block(path)
201
+ block, reason = @client.decide(NemesisShield.build_sketch(method: method, path: path, query: query, authed: authed))
202
+ if block
203
+ @client.record(NemesisShield.build_sketch(method: method, path: path, query: query, authed: authed, status: 403))
204
+ body = JSON.generate({ error: "blocked_by_nemesis_shield", reason: reason })
205
+ return [403, { "content-type" => "application/json" }, [body]]
206
+ end
207
+ end
208
+ status, headers, response = @app.call(env)
209
+ @client.record(NemesisShield.build_sketch(method: method, path: path, query: query, authed: authed, status: status))
210
+ [status, headers, response]
211
+ end
212
+ end
213
+ end
@@ -0,0 +1,110 @@
1
+ # LLM Guard for Ruby — OWASP-LLM-Top-10 detection with the HashLR ML classifier shared across every
2
+ # Nemesis Shield SDK. Feature buckets are fnv1a(feature) % dim (the same hash used for HTTP sketches),
3
+ # so scores match every other language. Char n-grams over a canonicalized (de-leetspeaked, ASCII-alnum)
4
+ # form catch obfuscation the regex layer misses.
5
+ require "json"
6
+ require "set"
7
+ require_relative "nemesis_shield"
8
+
9
+ module NemesisShield
10
+ module LLM
11
+ MODEL = JSON.parse(File.read(File.join(__dir__, "ml_weights.json"))).freeze
12
+ DIM = MODEL["dim"] # feature space is fixed across versions — only weights/bias/thresholds swap
13
+ # Swappable model state (module ivars so refresh_model can hot-swap a newer published version).
14
+ @bias = MODEL["bias"]
15
+ @weights = MODEL["weights"]
16
+ @block = MODEL.fetch("blockThreshold", 0.85)
17
+ @flag = MODEL.fetch("flagThreshold", 0.45)
18
+ @version = MODEL.fetch("version", 1)
19
+ # Ed25519 public key (hex) that signs published models. Cloud pulls MUST carry a valid signature
20
+ # over the exact bytes; unsigned or tampered bundles are rejected and the embedded model is kept.
21
+ MODEL_PUBLIC_KEY_HEX = "79d81a3b41966b379a9ba719155b8713f70bb341c3e8fab09fd5563a59893d28"
22
+ LEET = { "0" => "o", "1" => "i", "3" => "e", "4" => "a", "5" => "s", "7" => "t", "@" => "a", "$" => "s", "8" => "b", "|" => "i" }.freeze
23
+ INJECTION = [
24
+ /ignore\s+(all\s+)?(previous|prior|above)\s+(instructions|prompts?|context)/i,
25
+ /disregard\s+(the\s+)?(above|previous|system)/i,
26
+ /(reveal|show|print|repeat)\s+(your|the)\s+(system\s+)?(prompt|instructions)/i,
27
+ /\bDAN\b|do\s+anything\s+now|developer\s+mode|jailbreak/i,
28
+ /(bypass|ignore|disable)\s+(your\s+)?(safety|content\s+policy|guardrails?)/i,
29
+ ].freeze
30
+
31
+ module_function
32
+
33
+ def canon(text)
34
+ text.downcase.chars.map { |c| LEET[c] || c }.select { |c| c =~ /[a-z0-9]/ }.join
35
+ end
36
+
37
+ def bucket(s)
38
+ NemesisShield.fnv1a(s).to_i(16) % DIM
39
+ end
40
+
41
+ def features(text)
42
+ b = Set.new
43
+ ws = text.downcase.scan(/[a-z0-9']+/)
44
+ ws.each { |w| b << bucket("w:" + w) }
45
+ (0...(ws.length - 1)).each { |i| b << bucket("b:" + ws[i] + " " + ws[i + 1]) }
46
+ c = canon(text)
47
+ [3, 4, 5].each { |n| (0..(c.length - n)).each { |i| b << bucket("c#{n}:" + c[i, n]) } }
48
+ b << bucket("e:long") if text.length > 2000
49
+ b << bucket("e:nonascii") if text.each_char.count { |ch| ch.ord > 127 } > 3
50
+ b
51
+ end
52
+
53
+ def ml_injection_score(text)
54
+ z = @bias + features(text).sum { |bk| @weights[bk.to_s] || 0.0 }
55
+ return 0.0 if z < -30
56
+ return 1.0 if z > 30
57
+ 1.0 / (1.0 + Math.exp(-z))
58
+ end
59
+
60
+ # Returns { blocked:, severity:, kind:, score:, owasp: }. Regex first, then ML for obfuscation.
61
+ def guard_llm(prompt, enforce: false)
62
+ return { blocked: enforce, severity: "high", kind: "prompt_injection", score: 1.0, owasp: "LLM01" } if INJECTION.any? { |re| prompt =~ re }
63
+ s = ml_injection_score(prompt)
64
+ return { blocked: enforce, severity: "high", kind: "ml_prompt_injection", score: s, owasp: "LLM01" } if s >= @block
65
+ return { blocked: false, severity: "medium", kind: "ml_prompt_injection", score: s, owasp: "LLM01" } if s >= @flag
66
+ { blocked: false, severity: "none", score: s }
67
+ end
68
+
69
+ def model_version
70
+ @version
71
+ end
72
+
73
+ def verify_model_signature(raw, sig_b64)
74
+ require "openssl"
75
+ require "base64"
76
+ return true if MODEL_PUBLIC_KEY_HEX.empty? # no key pinned — version gate + HTTPS apply
77
+ return false if sig_b64.nil? || sig_b64.empty? # key pinned but bundle unsigned — reject
78
+ pk = OpenSSL::PKey.new_raw_public_key("ED25519", [MODEL_PUBLIC_KEY_HEX].pack("H*"))
79
+ pk.verify(nil, Base64.strict_decode64(sig_b64), raw)
80
+ rescue StandardError
81
+ false
82
+ end
83
+
84
+ # Hot-swap the HashLR model from a cloud URL if a newer signed version is published, so the model
85
+ # can be retrained and pushed centrally without redeploying the SDK. Returns the new version number
86
+ # if updated, else nil. Fail-safe: on any error the current (embedded) model is kept.
87
+ # URL defaults to env NEMESIS_MODEL_URL.
88
+ def refresh_model(url = ENV["NEMESIS_MODEL_URL"], timeout: 5.0)
89
+ return nil if url.nil? || url.empty?
90
+ require "net/http"
91
+ require "uri"
92
+ uri = URI(url)
93
+ res = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https",
94
+ open_timeout: timeout, read_timeout: timeout) { |h| h.get(uri.request_uri) }
95
+ return nil unless res.is_a?(Net::HTTPSuccess)
96
+ raw = res.body
97
+ return nil unless verify_model_signature(raw, res["x-model-signature"]) # integrity gate
98
+ m = JSON.parse(raw)
99
+ return nil if m["version"].to_i <= @version.to_i || (m["dim"] && m["dim"].to_i != DIM) # version/dim gate
100
+ @weights = m["weights"]
101
+ @bias = m["bias"]
102
+ @version = m["version"].to_i
103
+ @block = m.fetch("blockThreshold", @block)
104
+ @flag = m.fetch("flagThreshold", @flag)
105
+ @version
106
+ rescue StandardError
107
+ nil
108
+ end
109
+ end
110
+ end
metadata ADDED
@@ -0,0 +1,53 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nemesis-shield
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Autogon Inc.
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies: []
12
+ description: Learn your app's normal behavior, then block off-baseline requests (auth
13
+ bypass, path traversal, scanners, unusual methods) in enforce mode. Rack/Rails/Sinatra
14
+ middleware plus an OWASP-LLM prompt-injection guard backed by an embedded ML model
15
+ (byte-identical across all Nemesis Shield SDKs). Privacy-preserving, fail-open,
16
+ no runtime deps.
17
+ email:
18
+ - support@nemesislabs.xyz
19
+ executables: []
20
+ extensions: []
21
+ extra_rdoc_files: []
22
+ files:
23
+ - README.md
24
+ - ml_weights.json
25
+ - nemesis_shield.rb
26
+ - nemesis_shield_llm.rb
27
+ homepage: https://nemesislabs.xyz
28
+ licenses:
29
+ - MIT
30
+ metadata:
31
+ source_code_uri: https://github.com/eobi/nemesis_shield_sdks/tree/main/ruby
32
+ homepage_uri: https://nemesislabs.xyz
33
+ documentation_uri: https://github.com/eobi/nemesis_shield_sdks/blob/main/ruby/README.md
34
+ changelog_uri: https://github.com/eobi/nemesis_shield_sdks/releases
35
+ rdoc_options: []
36
+ require_paths:
37
+ - "."
38
+ required_ruby_version: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '2.7'
43
+ required_rubygems_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ requirements: []
49
+ rubygems_version: 4.0.16
50
+ specification_version: 4
51
+ summary: Nemesis Shield — Sentinel SDK for Ruby (positive-security middleware + LLM
52
+ guard)
53
+ test_files: []