Compare commits
3948
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f20a020fd | ||
|
|
c4216d2272 | ||
|
|
431dad7551 | ||
|
|
7a5025d9d9 | ||
|
|
cc2959249e | ||
|
|
86a1695286 | ||
|
|
4c1cbbe8fe | ||
|
|
5081153db9 | ||
|
|
846ed05f76 | ||
|
|
3e9afea40a | ||
|
|
cfa35fb5ce | ||
|
|
9e221cabc3 | ||
|
|
23c83c0fb6 | ||
|
|
5368f25ed8 | ||
|
|
bee76289ca | ||
|
|
1fcfc2886c | ||
|
|
83c35f55a3 | ||
|
|
2f9f0108ef | ||
|
|
75a1165923 | ||
|
|
2d394b77f4 | ||
|
|
59e5727f71 | ||
|
|
f5d2e98d4f | ||
|
|
481f33c462 | ||
|
|
513bbeeaae | ||
|
|
0cade21f1d | ||
|
|
7b284b40f7 | ||
|
|
e1b6971667 | ||
|
|
ecbae62d07 | ||
|
|
8182b4b289 | ||
|
|
a644174601 | ||
|
|
cf34c13f03 | ||
|
|
126e84e4e8 | ||
|
|
5ffc83a237 | ||
|
|
3082f5c8d9 | ||
|
|
f1cde451d8 | ||
|
|
6f0e0e5172 | ||
|
|
b2d5ab5e03 | ||
|
|
c3e098e27d | ||
|
|
a930d2165a | ||
|
|
05cdfce9ce | ||
|
|
61c9d6b2d6 | ||
|
|
7545d3fd5c | ||
|
|
04e0297e86 | ||
|
|
562706b968 | ||
|
|
4195207a71 | ||
|
|
71eb89b6a1 | ||
|
|
94e4a0b725 | ||
|
|
40d1fe20e3 | ||
|
|
2ed23159ca | ||
|
|
faa8438adf | ||
|
|
0b35c2ccde | ||
|
|
98eea0ef09 | ||
|
|
4bf237aebe | ||
|
|
da927adef4 | ||
|
|
cf587e26d5 | ||
|
|
9e4354fb55 | ||
|
|
e6bb4c73a8 | ||
|
|
e43a2a4818 | ||
|
|
cde0f44b7d | ||
|
|
b07a1e2c74 | ||
|
|
8376fce5fe | ||
|
|
d9e5c846c2 | ||
|
|
65736c13ef | ||
|
|
071c28e925 | ||
|
|
8355e3e1be | ||
|
|
f9a6e0963c | ||
|
|
b2879837c6 | ||
|
|
0d03ddb009 | ||
|
|
a6dfa4ae80 | ||
|
|
e66ec82ba8 | ||
|
|
9ce5e971c6 | ||
|
|
3e7cc49ebb | ||
|
|
d07e68b6e2 | ||
|
|
619ece2313 | ||
|
|
1dda9566f3 | ||
|
|
3704d1ed16 | ||
|
|
a524ca02a5 | ||
|
|
3c97f2552b | ||
|
|
15b1d55ef1 | ||
|
|
4e42c9f01b | ||
|
|
76775f821a | ||
|
|
e7088f6b1c | ||
|
|
f2c3ff4be6 | ||
|
|
1fb42ade59 | ||
|
|
129650e9d4 | ||
|
|
170a44ac04 | ||
|
|
7e04f02327 | ||
|
|
abda2dbf97 | ||
|
|
ad1a45cf49 | ||
|
|
e9abdd0ff2 | ||
|
|
9254002318 | ||
|
|
596780b7f4 | ||
|
|
7ba061ac20 | ||
|
|
f8e6b73714 | ||
|
|
c01593d119 | ||
|
|
dd53c149c0 | ||
|
|
04b4efe1e1 | ||
|
|
81bafbe68d | ||
|
|
7ee95c55ab | ||
|
|
87d67feff4 | ||
|
|
d21ceddbb6 | ||
|
|
4434df3d09 | ||
|
|
35916881c8 | ||
|
|
5230d6bab5 | ||
|
|
68c3418c04 | ||
|
|
7bce9f8a7f | ||
|
|
a5b988738f | ||
|
|
53a4b61884 | ||
|
|
7be111dc36 | ||
|
|
0c5bd66cca | ||
|
|
b699c5a310 | ||
|
|
af8850f4c0 | ||
|
|
10e359d6b5 | ||
|
|
b360881b8b | ||
|
|
b250dc31d3 | ||
|
|
995df189ae | ||
|
|
93739e7010 | ||
|
|
bc42498d61 | ||
|
|
2b95507c49 | ||
|
|
ca8c3a18d7 | ||
|
|
e49066ffa7 | ||
|
|
e3cd910acd | ||
|
|
cb47177b8e | ||
|
|
fba00c9d51 | ||
|
|
af0b7d9146 | ||
|
|
e0a8c476f6 | ||
|
|
5acb8100de | ||
|
|
1c133e87e7 | ||
|
|
8a8419576d | ||
|
|
4a28723adb | ||
|
|
e482408f29 | ||
|
|
4dcc98ab1f | ||
|
|
ace0fc35a2 | ||
|
|
c7d1eb00dc | ||
|
|
949c8e0a32 | ||
|
|
c2419b491a | ||
|
|
786322f397 | ||
|
|
09e2a1764f | ||
|
|
a780668bce | ||
|
|
5b79aeaa14 | ||
|
|
049c006b5f | ||
|
|
6fdc344472 | ||
|
|
cb09b93553 | ||
|
|
21447d32e5 | ||
|
|
28b03e1cd2 | ||
|
|
a7acb89c15 | ||
|
|
35289710ba | ||
|
|
4677acfb39 | ||
|
|
ac05d0d69e | ||
|
|
25a9b6b433 | ||
|
|
b78713ad0d | ||
|
|
1f3d0e879c | ||
|
|
baad4dc68e | ||
|
|
ef7c0c7a30 | ||
|
|
3b3c4a2a35 | ||
|
|
ef9fc66a31 | ||
|
|
212d9c853b | ||
|
|
7815b18b6b | ||
|
|
05126074d4 | ||
|
|
3611d2c1f3 | ||
|
|
b5ad4b8104 | ||
|
|
43d7c0a2b5 | ||
|
|
12e361cec7 | ||
|
|
a4b0f026f4 | ||
|
|
59f65c32d8 | ||
|
|
ccec77f7d1 | ||
|
|
1deeb85d22 | ||
|
|
648a32147a | ||
|
|
806ddfc156 | ||
|
|
05b5f22204 | ||
|
|
4f09d2cff1 | ||
|
|
e1234fe583 | ||
|
|
aa64dacd65 | ||
|
|
10b062ebce | ||
|
|
e057057173 | ||
|
|
82cec2672a | ||
|
|
50184cd6ff | ||
|
|
e64dc49a64 | ||
|
|
010bd53723 | ||
|
|
50ae7ca7f9 | ||
|
|
995bbef878 | ||
|
|
8c325e30be | ||
|
|
6bb9b24210 | ||
|
|
df1c558c33 | ||
|
|
357d245a4c | ||
|
|
d43863ab59 | ||
|
|
89188acc7d | ||
|
|
86a9fc0c83 | ||
|
|
15579acd2a | ||
|
|
411009c996 | ||
|
|
17a4cce68b | ||
|
|
adb36795a8 | ||
|
|
691545b71a | ||
|
|
31c7fa4f2c | ||
|
|
86009c3cdb | ||
|
|
c9392dd306 | ||
|
|
ac8a6094fb | ||
|
|
6dbe497013 | ||
|
|
274aa9b17d | ||
|
|
d47e61ca57 | ||
|
|
3078b918d2 | ||
|
|
95e9a6e8aa | ||
|
|
1a3cf1dbea | ||
|
|
0d705eed1f | ||
|
|
1d28526792 | ||
|
|
3ecf3dd048 | ||
|
|
64ff79a38d | ||
|
|
aba478f3dc | ||
|
|
1025881ec8 | ||
|
|
6d95a645e3 | ||
|
|
4769f66eea | ||
|
|
82c126362d | ||
|
|
fd2ba70031 | ||
|
|
ab410c339f | ||
|
|
9093c72646 | ||
|
|
3a220b8320 | ||
|
|
ac20f7c9dd | ||
|
|
578146905e | ||
|
|
7f07f5a69b | ||
|
|
3dd7d0999e | ||
|
|
5076770d15 | ||
|
|
791446c514 | ||
|
|
66370bd541 | ||
|
|
cce8973e87 | ||
|
|
37dcd32c6b | ||
|
|
d772958272 | ||
|
|
c85e221e9f | ||
|
|
28e95df5c6 | ||
|
|
8d84355d57 | ||
|
|
5c25f9a3e5 | ||
|
|
c0980809c5 | ||
|
|
e946c6427e | ||
|
|
58ccbe2b19 | ||
|
|
7519c0b63a | ||
|
|
947c071cee | ||
|
|
54018fcce7 | ||
|
|
4b85eb33f8 | ||
|
|
592cf54e94 | ||
|
|
b8368bf9fa | ||
|
|
7d19ea84ab | ||
|
|
14651341c4 | ||
|
|
681fbc6915 | ||
|
|
37d7f51d19 | ||
|
|
48eb0a2c9b | ||
|
|
6d2cd54deb | ||
|
|
2ec956b430 | ||
|
|
4f22ae04fe | ||
|
|
7da82d8444 | ||
|
|
d8611536ee | ||
|
|
c94ffd1a56 | ||
|
|
cddf081e19 | ||
|
|
94071b4889 | ||
|
|
d7518cffe1 | ||
|
|
fa26ecaf67 | ||
|
|
c2eaf00aaa | ||
|
|
74be3ec9b9 | ||
|
|
967e3100d2 | ||
|
|
b1d1243eae | ||
|
|
72edd99cb0 | ||
|
|
a512460396 | ||
|
|
48ff593c2e | ||
|
|
d8fc99bca4 | ||
|
|
6a04759fe8 | ||
|
|
2cc07b71bd | ||
|
|
40bf117f6c | ||
|
|
20209ef429 | ||
|
|
c30a7a29fd | ||
|
|
c6ae2ea038 | ||
|
|
f95715beec | ||
|
|
0e85f4b9d5 | ||
|
|
ab78ae867a | ||
|
|
5e60f38b9b | ||
|
|
8f4b4be6db | ||
|
|
696195aefd | ||
|
|
36f0a544e9 | ||
|
|
f23242b18c | ||
|
|
75dd6d659b | ||
|
|
a23d8228b4 | ||
|
|
59f3d54597 | ||
|
|
8b3166582d | ||
|
|
fd13316b8e | ||
|
|
5991ab03ec | ||
|
|
b9bc6184d4 | ||
|
|
aab3e836c3 | ||
|
|
ed0fc60900 | ||
|
|
6764ae268e | ||
|
|
6d3d9ddacf | ||
|
|
ccd76ec284 | ||
|
|
d52ea0e997 | ||
|
|
15e23fe486 | ||
|
|
d9e5b11026 | ||
|
|
21c19c94c2 | ||
|
|
c31d9d6c72 | ||
|
|
a7e89b075b | ||
|
|
c0bb26e56f | ||
|
|
1e3e57b990 | ||
|
|
f50430e9e2 | ||
|
|
4891250959 | ||
|
|
ad1b89ff88 | ||
|
|
49053d31c2 | ||
|
|
651ebdbb41 | ||
|
|
0b50d5b5f0 | ||
|
|
9e3f16d8bc | ||
|
|
a3f194d708 | ||
|
|
d21de803f6 | ||
|
|
bb81151392 | ||
|
|
2b277b84a2 | ||
|
|
2bf4502d06 | ||
|
|
94d1b9d784 | ||
|
|
ceee66d5f2 | ||
|
|
2e9a968752 | ||
|
|
6c2989b139 | ||
|
|
6c2bfee616 | ||
|
|
30c5ea7fb2 | ||
|
|
a6831b5548 | ||
|
|
b42943fe8d | ||
|
|
06c833e96c | ||
|
|
9aff02b225 | ||
|
|
4229a523a8 | ||
|
|
82e9e6b6bf | ||
|
|
904a6db1d0 | ||
|
|
2a9f03741e | ||
|
|
fd3de056c1 | ||
|
|
978a1e8566 | ||
|
|
36e1771579 | ||
|
|
0d23fd50f5 | ||
|
|
367c9c1c7c | ||
|
|
78f5526ce7 | ||
|
|
a1d7ebd260 | ||
|
|
3fda1cb369 | ||
|
|
2c2a68022b | ||
|
|
bb321926bc | ||
|
|
45c35ba1b2 | ||
|
|
77c61d5e3f | ||
|
|
12962ed5ca | ||
|
|
f472db002c | ||
|
|
6939f32f69 | ||
|
|
0107d934e5 | ||
|
|
ce9880a9b1 | ||
|
|
317f17d7da | ||
|
|
7da128da6b | ||
|
|
f603866860 | ||
|
|
dc2d525955 | ||
|
|
e97335189a | ||
|
|
81ce58268f | ||
|
|
7dace3fc1d | ||
|
|
f4794bea33 | ||
|
|
b044ff3b2a | ||
|
|
cd7856c46e | ||
|
|
3be0ee6072 | ||
|
|
198d26fda1 | ||
|
|
8b26ac4456 | ||
|
|
d6f172e953 | ||
|
|
91ee9b739a | ||
|
|
b568128180 | ||
|
|
53a87530ee | ||
|
|
450de301a9 | ||
|
|
462b0f4eda | ||
|
|
17402ce94a | ||
|
|
b7fae8a6f5 | ||
|
|
4058a98290 | ||
|
|
06d7693ed6 | ||
|
|
2b01f3d902 | ||
|
|
d231ee50b7 | ||
|
|
815546d5ab | ||
|
|
3fda0e4427 | ||
|
|
a1eec029ac | ||
|
|
2bbe92dbab | ||
|
|
b3d0040faa | ||
|
|
c3e924be17 | ||
|
|
dc5574e660 | ||
|
|
5c19b391b1 | ||
|
|
79cb3162f2 | ||
|
|
e49254356a | ||
|
|
3192ef5561 | ||
|
|
8158bcb4f3 | ||
|
|
b03cb94d60 | ||
|
|
0f968c65b6 | ||
|
|
6b92773e87 | ||
|
|
870e1b7301 | ||
|
|
477a2f6da3 | ||
|
|
85fe84406d | ||
|
|
e8096a4db9 | ||
|
|
e68e673835 | ||
|
|
53274e865a | ||
|
|
64df20cb36 | ||
|
|
1977ad8ad4 | ||
|
|
a7e63d02e9 | ||
|
|
593be8d069 | ||
|
|
f7e173f902 | ||
|
|
7eefae4c42 | ||
|
|
7bb0951169 | ||
|
|
787fb879d2 | ||
|
|
c23dafcb89 | ||
|
|
111278b63b | ||
|
|
2008478378 | ||
|
|
d5de60bc21 | ||
|
|
76172d0a5f | ||
|
|
1893df1f5c | ||
|
|
a07fa26bfe | ||
|
|
41447067a2 | ||
|
|
1dd3d39a21 | ||
|
|
4f772a1d57 | ||
|
|
97bd49d221 | ||
|
|
b4374cec6b | ||
|
|
7e5c1218a3 | ||
|
|
475970659c | ||
|
|
e0706dde01 | ||
|
|
986ea74e63 | ||
|
|
fa0e6f7c10 | ||
|
|
ea5156122c | ||
|
|
97b974a31f | ||
|
|
ef98682620 | ||
|
|
d70eb158c4 | ||
|
|
6fc34e922a | ||
|
|
fe65554c7a | ||
|
|
78d9b678a8 | ||
|
|
88302c9470 | ||
|
|
ac6c9e5c46 | ||
|
|
b1de323151 | ||
|
|
24e57872ce | ||
|
|
ddd3f301b3 | ||
|
|
7007fc9d6b | ||
|
|
7ca407fc42 | ||
|
|
5217e8801e | ||
|
|
ddd50cd916 | ||
|
|
9ae3ababfa | ||
|
|
753cac0e7a | ||
|
|
6c3c9ebbcb | ||
|
|
3aaa25a3e8 | ||
|
|
3fc0bce1de | ||
|
|
fdb4544cb5 | ||
|
|
f5741d8095 | ||
|
|
539d1cfeae | ||
|
|
c1ed79757c | ||
|
|
c37727f482 | ||
|
|
b25cd39481 | ||
|
|
5f93bed074 | ||
|
|
bf87c46fcd | ||
|
|
222d4b266e | ||
|
|
d593eaf058 | ||
|
|
ef9502c81b | ||
|
|
4b2c2de990 | ||
|
|
79dc76c5df | ||
|
|
eaa6493ce1 | ||
|
|
9fd0df2a13 | ||
|
|
fdbc64dfc5 | ||
|
|
d272612c6c | ||
|
|
77408c8c5e | ||
|
|
09958eb333 | ||
|
|
fdb7bbdac2 | ||
|
|
a7f24e84e4 | ||
|
|
7e5c71f337 | ||
|
|
62c20c96b4 | ||
|
|
6b491ec209 | ||
|
|
d009deea0e | ||
|
|
bed6feae3f | ||
|
|
d508d34a3a | ||
|
|
5904bab03e | ||
|
|
fc9519cde3 | ||
|
|
2dc823a6ac | ||
|
|
390d901463 | ||
|
|
ae9366f44a | ||
|
|
db344656e5 | ||
|
|
ac31deed5b | ||
|
|
a0bd207d93 | ||
|
|
d62f88691c | ||
|
|
b7c018b664 | ||
|
|
55d021ccb1 | ||
|
|
60cde0712f | ||
|
|
83127523b9 | ||
|
|
86c824e28d | ||
|
|
0349ff95bf | ||
|
|
c20f017069 | ||
|
|
f62c867a20 | ||
|
|
b403cacb93 | ||
|
|
4499a3751f | ||
|
|
6d887cb72f | ||
|
|
10e13dd51d | ||
|
|
5122038d21 | ||
|
|
3039df56a0 | ||
|
|
85edf68ff0 | ||
|
|
259ac99cdd | ||
|
|
39c3a34158 | ||
|
|
dde8223052 | ||
|
|
4dc675eb9c | ||
|
|
2548f27527 | ||
|
|
ff03f092f5 | ||
|
|
53ef67869b | ||
|
|
d48f34d109 | ||
|
|
a2d9c39325 | ||
|
|
0c4f684036 | ||
|
|
e587c8dbd7 | ||
|
|
069ab45164 | ||
|
|
7b7de6f8fc | ||
|
|
9ed3b2aecb | ||
|
|
ecf3f922df | ||
|
|
1aa283fc8c | ||
|
|
bfbf640986 | ||
|
|
b6cd470ca6 | ||
|
|
d826cff9d7 | ||
|
|
ff65a5ca5b | ||
|
|
9e012a2b3a | ||
|
|
a6f1c51539 | ||
|
|
655f27543b | ||
|
|
762baca586 | ||
|
|
ec769b49f6 | ||
|
|
5153e8725c | ||
|
|
f79f2cc5b9 | ||
|
|
cdf4f341d4 | ||
|
|
f649c26304 | ||
|
|
3a8d759a26 | ||
|
|
29ca6e98fb | ||
|
|
328dd9b2d3 | ||
|
|
a1e58e5498 | ||
|
|
ef43aebc5d | ||
|
|
9a3304201e | ||
|
|
cd88710385 | ||
|
|
2b3e4a4579 | ||
|
|
05731cb9a2 | ||
|
|
01eeadaf42 | ||
|
|
b4721882ec | ||
|
|
3e894d0e27 | ||
|
|
4e42125398 | ||
|
|
664cc37a03 | ||
|
|
f4a0da3518 | ||
|
|
cc8c181728 | ||
|
|
5339d4ff93 | ||
|
|
a31368f08d | ||
|
|
136938ba1e | ||
|
|
09316b630d | ||
|
|
99a661089f | ||
|
|
f26cb80e5f | ||
|
|
dde8524ecb | ||
|
|
cda3d18838 | ||
|
|
fae0325e87 | ||
|
|
118ca7248d | ||
|
|
afa194ac54 | ||
|
|
3538712692 | ||
|
|
604c34384c | ||
|
|
c18f1baafa | ||
|
|
8e04920ab9 | ||
|
|
aa3147a4a6 | ||
|
|
f7ab968e1b | ||
|
|
5ce3d9d1a9 | ||
|
|
e2a9c91d3f | ||
|
|
78a8652e7a | ||
|
|
e9c536df96 | ||
|
|
94429a1fbc | ||
|
|
f2728dcf78 | ||
|
|
cbfd18c371 | ||
|
|
60a31eb102 | ||
|
|
7c1e95d35d | ||
|
|
90a046d539 | ||
|
|
935a6f846c | ||
|
|
b02f814c65 | ||
|
|
8c42aa93a2 | ||
|
|
357bc5ad44 | ||
|
|
07fb9e8eb7 | ||
|
|
d641eba252 | ||
|
|
9f9fc4c8ab | ||
|
|
2aef052398 | ||
|
|
1c2027506a | ||
|
|
c3274b2008 | ||
|
|
99aef9e86e | ||
|
|
77697f4312 | ||
|
|
247d8b7ee8 | ||
|
|
06bed8747f | ||
|
|
8e9233022e | ||
|
|
954dc582dc | ||
|
|
df510f0e3b | ||
|
|
ef9b3b0544 | ||
|
|
b8b3a57e8e | ||
|
|
d18020a45c | ||
|
|
e652c1cd24 | ||
|
|
8f5d6ccd51 | ||
|
|
cbe4a488b9 | ||
|
|
8ce3ef69d0 | ||
|
|
ab9fab13d9 | ||
|
|
309b0e64b2 | ||
|
|
a6324a9aa2 | ||
|
|
64417a6867 | ||
|
|
8e16dcde0d | ||
|
|
2d8f6df0e2 | ||
|
|
10199fb7ad | ||
|
|
6f6ac2866c | ||
|
|
46837facbf | ||
|
|
4916211301 | ||
|
|
1d8c4a0954 | ||
|
|
64601914b2 | ||
|
|
b3ca5f133e | ||
|
|
9c3397d367 | ||
|
|
b3dfce9f91 | ||
|
|
590d0028c2 | ||
|
|
67cf817aa9 | ||
|
|
35811512a4 | ||
|
|
c13c85ed44 | ||
|
|
5c85dabad8 | ||
|
|
c134b0f5ca | ||
|
|
d92ad7e2b6 | ||
|
|
4547d8cec1 | ||
|
|
402a1f50f2 | ||
|
|
bada16ade7 | ||
|
|
9794465d88 | ||
|
|
1f163615c5 | ||
|
|
4304d7f786 | ||
|
|
38a5d95df9 | ||
|
|
4897195629 | ||
|
|
1416f05fbd | ||
|
|
ac1f64c3f5 | ||
|
|
8fa82840be | ||
|
|
af92b8922f | ||
|
|
f3d1569cb3 | ||
|
|
da41a23c0e | ||
|
|
e79aebbc8a | ||
|
|
fcd6038d5d | ||
|
|
d1fe0a03b5 | ||
|
|
cfdca08cfe | ||
|
|
d400bf6263 | ||
|
|
fa438db001 | ||
|
|
31dd34522f | ||
|
|
f5221910c8 | ||
|
|
6e7e1980f5 | ||
|
|
11e884e166 | ||
|
|
88943f0857 | ||
|
|
a5459a3aff | ||
|
|
e8fa4f23c6 | ||
|
|
df82c0790b | ||
|
|
81f1d91f5b | ||
|
|
abf0d45784 | ||
|
|
556e2ab99e | ||
|
|
4b60fb5141 | ||
|
|
5eb9c57ba1 | ||
|
|
e08b80afee | ||
|
|
9b8e5896a2 | ||
|
|
55e8c60a0b | ||
|
|
a30b026c9d | ||
|
|
cb79cbeb45 | ||
|
|
0e101aaf8b | ||
|
|
e8244595f3 | ||
|
|
37512eb8d6 | ||
|
|
567db063f3 | ||
|
|
cc1484a81e | ||
|
|
0dc278eed5 | ||
|
|
43ba30365a | ||
|
|
02ac95404d | ||
|
|
8388bdf1ec | ||
|
|
019c3dd8db | ||
|
|
481380f883 | ||
|
|
7c66260ff1 | ||
|
|
ad465b593f | ||
|
|
00d702f998 | ||
|
|
872f55d6c3 | ||
|
|
84f4c38336 | ||
|
|
b9b907490a | ||
|
|
8c6835a919 | ||
|
|
3a6bda4e08 | ||
|
|
60f76344c2 | ||
|
|
1fff7d5bcd | ||
|
|
d77d3ab6c7 | ||
|
|
4c91538f22 | ||
|
|
2eca4f7f14 | ||
|
|
053fa461a2 | ||
|
|
aa997466f0 | ||
|
|
fdf4fce5fa | ||
|
|
5746460e8d | ||
|
|
569ac8e3e0 | ||
|
|
d9efbb879d | ||
|
|
92ff4198ef | ||
|
|
48bd3ab49a | ||
|
|
9c7fc000e5 | ||
|
|
d2454b6b85 | ||
|
|
b4cda81535 | ||
|
|
2d0fae0cbe | ||
|
|
5515404062 | ||
|
|
24c4dc1861 | ||
|
|
3b1a2357cc | ||
|
|
35371fe971 | ||
|
|
365394f28b | ||
|
|
88c70a3ea0 | ||
|
|
b0eb1175c1 | ||
|
|
e90d627125 | ||
|
|
c1190d4ef9 | ||
|
|
67487415ad | ||
|
|
dcf80d7067 | ||
|
|
99a778811a | ||
|
|
eb76f0a6c5 | ||
|
|
b8de813859 | ||
|
|
6b480afd43 | ||
|
|
40d21542ae | ||
|
|
a8af5d2523 | ||
|
|
bfd12aed63 | ||
|
|
76936ea50d | ||
|
|
6947aea35e | ||
|
|
34be51c648 | ||
|
|
56b68b9a24 | ||
|
|
84e6f010d7 | ||
|
|
b360f953db | ||
|
|
320427c9c5 | ||
|
|
5e8543902e | ||
|
|
edae3c9ab7 | ||
|
|
fd9892c6b6 | ||
|
|
51c89fb8cc | ||
|
|
45668baaf8 | ||
|
|
305cc0e01c | ||
|
|
f0f365538b | ||
|
|
f9bba0baed | ||
|
|
306c18065a | ||
|
|
ded674d87c | ||
|
|
c64c71c98c | ||
|
|
7de87c1c25 | ||
|
|
12716bb6e1 | ||
|
|
8e68d573ff | ||
|
|
dd66e94bfd | ||
|
|
d399f75648 | ||
|
|
937173dd2f | ||
|
|
f1f7a40fba | ||
|
|
5522d364d4 | ||
|
|
3a218d246e | ||
|
|
bafc28e3bc | ||
|
|
6d1eb474c4 | ||
|
|
d172f4ffab | ||
|
|
c527b6e84f | ||
|
|
b8c7abd6b3 | ||
|
|
fea8e184c1 | ||
|
|
44a7bc0de9 | ||
|
|
4bad9ef183 | ||
|
|
590835c627 | ||
|
|
997766df92 | ||
|
|
cdbf66cd6c | ||
|
|
4c90eed59e | ||
|
|
d260f8ce2c | ||
|
|
12d0afb215 | ||
|
|
a9040f5f8f | ||
|
|
6e6acb5a71 | ||
|
|
256697d5b0 | ||
|
|
be9067b22e | ||
|
|
a5874a59f0 | ||
|
|
e8405e5638 | ||
|
|
ab70c9dfb1 | ||
|
|
1e4d8584c7 | ||
|
|
29eef77099 | ||
|
|
c50e89ae78 | ||
|
|
89917713d6 | ||
|
|
1e0ac46e07 | ||
|
|
6279b8f5f5 | ||
|
|
4007c87e20 | ||
|
|
ec0f42e76c | ||
|
|
99f63c2a6f | ||
|
|
12ac20f756 | ||
|
|
9d36d74005 | ||
|
|
da2cc977a0 | ||
|
|
84e7bdb586 | ||
|
|
b062a229c8 | ||
|
|
8680b3d815 | ||
|
|
6ab0e4c5a7 | ||
|
|
867bcf97d0 | ||
|
|
360bf9b37e | ||
|
|
4d85106fbf | ||
|
|
64a253b581 | ||
|
|
5f379c1356 | ||
|
|
76c80383ce | ||
|
|
e5a6ea80f0 | ||
|
|
b921e644df | ||
|
|
1c3fb8c192 | ||
|
|
d530d86a30 | ||
|
|
9d9229ef56 | ||
|
|
6f6f3c0800 | ||
|
|
7b234044f6 | ||
|
|
d46c82f34c | ||
|
|
4d5af610f0 | ||
|
|
1e94466f24 | ||
|
|
3210c0bce4 | ||
|
|
849f4ac579 | ||
|
|
6d56f67697 | ||
|
|
c0289719e7 | ||
|
|
a32e969b39 | ||
|
|
f5899e7781 | ||
|
|
ed07c956a7 | ||
|
|
2022ee5a07 | ||
|
|
a0bc1e8691 | ||
|
|
c1951ac49a | ||
|
|
e159e0e77b | ||
|
|
6bbd4134ec | ||
|
|
8a72b2150a | ||
|
|
e4d5d1eeb2 | ||
|
|
6bf2726b63 | ||
|
|
a63af0cb46 | ||
|
|
b2a7e1d2ed | ||
|
|
32a38b3b5a | ||
|
|
8533bcf0a7 | ||
|
|
e00eae1129 | ||
|
|
95595c4cbf | ||
|
|
aad36a4972 | ||
|
|
cc03f47d70 | ||
|
|
5c5e5c23ef | ||
|
|
4b531a2a1a | ||
|
|
35530bec0b | ||
|
|
5853bb2436 | ||
|
|
bfdf45d30d | ||
|
|
a330bc5020 | ||
|
|
66f68ef3ec | ||
|
|
d6e651129b | ||
|
|
d4a59b8253 | ||
|
|
569f1460a4 | ||
|
|
2f369dbd57 | ||
|
|
444e486862 | ||
|
|
b42504d827 | ||
|
|
18ac85a454 | ||
|
|
788a1a06c5 | ||
|
|
787b485bce | ||
|
|
788df0e888 | ||
|
|
916532f7c5 | ||
|
|
3c511bb177 | ||
|
|
49f13755c6 | ||
|
|
dcb4b1ae7e | ||
|
|
2152b48fe2 | ||
|
|
b6f2f99f21 | ||
|
|
c44df8ec06 | ||
|
|
493f082d6d | ||
|
|
bbe76b2709 | ||
|
|
ce8eda24fc | ||
|
|
9f9113bf9a | ||
|
|
a199595938 | ||
|
|
83de5fac75 | ||
|
|
c688657d53 | ||
|
|
a5c62c66b1 | ||
|
|
6d595d18ee | ||
|
|
946e8f1c47 | ||
|
|
b765c3756d | ||
|
|
54dc7bf6c3 | ||
|
|
6142a08db6 | ||
|
|
ca59976e00 | ||
|
|
7f7a160916 | ||
|
|
c8eb51c303 | ||
|
|
4160233a58 | ||
|
|
c5f79f754b | ||
|
|
5f568d681a | ||
|
|
83a2147428 | ||
|
|
9dd2cee6d9 | ||
|
|
57365013bd | ||
|
|
3d55ef075b | ||
|
|
14da6461b1 | ||
|
|
e84d3df024 | ||
|
|
ed38fe0ce9 | ||
|
|
b5daee3bcf | ||
|
|
f5c8c29f5a | ||
|
|
89fa2eae50 | ||
|
|
41b8c9238c | ||
|
|
28b66306da | ||
|
|
0bdbc1897a | ||
|
|
c3d9443a89 | ||
|
|
400db13a78 | ||
|
|
1d7d5858d5 | ||
|
|
8792f24c5d | ||
|
|
76d35b16eb | ||
|
|
81f7fe72ab | ||
|
|
649ba11edb | ||
|
|
2fc6d7c262 | ||
|
|
45421eedce | ||
|
|
8ecb3118e4 | ||
|
|
3fdb10890d | ||
|
|
2a6224c88d | ||
|
|
8d6ddc8250 | ||
|
|
6cc8590a1c | ||
|
|
063d908775 | ||
|
|
93565f0ebf | ||
|
|
1d7fcf5d18 | ||
|
|
897d20f12f | ||
|
|
a928925252 | ||
|
|
4088affa15 | ||
|
|
7def6aacd2 | ||
|
|
94ae1780cd | ||
|
|
2c65c4376b | ||
|
|
68bb3dbfa1 | ||
|
|
82a73693a6 | ||
|
|
612cd4a4c8 | ||
|
|
b3828dfc53 | ||
|
|
01f26567ed | ||
|
|
90d21c9c15 | ||
|
|
6351c1340e | ||
|
|
18cdddf76d | ||
|
|
b14c8bb1ac | ||
|
|
ceff286120 | ||
|
|
59aa4677e8 | ||
|
|
996cd4c856 | ||
|
|
9287149c26 | ||
|
|
306b56a999 | ||
|
|
812cf0a43f | ||
|
|
2c539fd833 | ||
|
|
334295ed67 | ||
|
|
c157b9cdfd | ||
|
|
8280b7a815 | ||
|
|
fb7f982c65 | ||
|
|
75b50d93e8 | ||
|
|
865bdac9df | ||
|
|
ebe5f468d7 | ||
|
|
1bc8d886f4 | ||
|
|
38e352e0d3 | ||
|
|
f6079e7031 | ||
|
|
8c51488190 | ||
|
|
9aad08ada6 | ||
|
|
2d3d11ba59 | ||
|
|
6087953185 | ||
|
|
851654c8a5 | ||
|
|
57a4745e29 | ||
|
|
32cd00895e | ||
|
|
dee5f2684f | ||
|
|
f639a526cf | ||
|
|
d168d8712e | ||
|
|
78a9605383 | ||
|
|
a713b1018e | ||
|
|
9f626dd10c | ||
|
|
8ec7fdd60a | ||
|
|
ffb2245ae6 | ||
|
|
21051c9a0b | ||
|
|
1c8bd34144 | ||
|
|
f614fb7e7d | ||
|
|
b222cd3e55 | ||
|
|
4f2be64813 | ||
|
|
bfb73ffc5a | ||
|
|
9bb7025752 | ||
|
|
bbfbd0b691 | ||
|
|
5628e96a90 | ||
|
|
ef517b7554 | ||
|
|
ba06af327d | ||
|
|
b8b03172bc | ||
|
|
fb5c3c1e6e | ||
|
|
faaa7b11d4 | ||
|
|
92a0467e1e | ||
|
|
3bb2025ea2 | ||
|
|
f2730ff0d7 | ||
|
|
7fcff9e5b4 | ||
|
|
51f83f4880 | ||
|
|
88cb510aea | ||
|
|
452c642af0 | ||
|
|
3fafc5004e | ||
|
|
fd8e502140 | ||
|
|
b499a5c38b | ||
|
|
2320383b16 | ||
|
|
59b3e73330 | ||
|
|
9d9a1b86c4 | ||
|
|
21cc2cefbf | ||
|
|
904df4260d | ||
|
|
af785d5d0b | ||
|
|
1d796856ca | ||
|
|
35f0d5a53f | ||
|
|
2b2fdd2b94 | ||
|
|
9e4539a902 | ||
|
|
a76c8ffd98 | ||
|
|
d7474cb8da | ||
|
|
890a23a537 | ||
|
|
ab17eee260 | ||
|
|
acadc3bd7c | ||
|
|
8701fb7132 | ||
|
|
89fcb3092b | ||
|
|
c9856b96ae | ||
|
|
04477a4b7c | ||
|
|
99371a2ead | ||
|
|
70487a8ef7 | ||
|
|
44c419fdaf | ||
|
|
5eb151f9a0 | ||
|
|
855a939c51 | ||
|
|
7071d9b961 | ||
|
|
adf14491bc | ||
|
|
7e0e8f2801 | ||
|
|
4a37e2d6a6 | ||
|
|
12b2371a69 | ||
|
|
c19d173983 | ||
|
|
203164f372 | ||
|
|
6f69f1c2e2 | ||
|
|
ad1a585b5c | ||
|
|
f29e367ec7 | ||
|
|
18127383f0 | ||
|
|
b450c757c9 | ||
|
|
836683bcbe | ||
|
|
c271af30d8 | ||
|
|
31fab94208 | ||
|
|
a9b5067d7a | ||
|
|
7a31b025a2 | ||
|
|
31897a1b2e | ||
|
|
f93bc592cb | ||
|
|
6ca2753951 | ||
|
|
470ca0093e | ||
|
|
7e1715964f | ||
|
|
39e929a614 | ||
|
|
a9aa06f275 | ||
|
|
54510c9e59 | ||
|
|
cb56429f04 | ||
|
|
ac8147cc0f | ||
|
|
82ac189ac9 | ||
|
|
5721ff78b6 | ||
|
|
7afd2947f1 | ||
|
|
c3e3862c5f | ||
|
|
bf2dc9ecca | ||
|
|
e0e188a02c | ||
|
|
79ba1654d3 | ||
|
|
2aab0d18a5 | ||
|
|
312c8ded11 | ||
|
|
3f86779da6 | ||
|
|
716d3b8482 | ||
|
|
24f6dbc4f0 | ||
|
|
3e943fa35e | ||
|
|
457f878b41 | ||
|
|
ac2b2d042a | ||
|
|
829d2cdbf6 | ||
|
|
3cd9693b36 | ||
|
|
2b52ecf2ef | ||
|
|
faab60cbc1 | ||
|
|
b6be0d649d | ||
|
|
2a65c45d21 | ||
|
|
dc6ae2ac29 | ||
|
|
df4250c33a | ||
|
|
53504ef6f0 | ||
|
|
10afb1af06 | ||
|
|
a9149dfa87 | ||
|
|
5afa6695e7 | ||
|
|
d2a6d54090 | ||
|
|
794ac25c01 | ||
|
|
37214e9480 | ||
|
|
90ab551778 | ||
|
|
9a4ec46440 | ||
|
|
c86d283755 | ||
|
|
941956c1b5 | ||
|
|
67e3d22104 | ||
|
|
7e41c93f9a | ||
|
|
086ccbb3fa | ||
|
|
329ddc576d | ||
|
|
1faef425ab | ||
|
|
bb068cf6b2 | ||
|
|
f7cade41c6 | ||
|
|
47afd3a911 | ||
|
|
ef80d2a41d | ||
|
|
44ef080e9f | ||
|
|
fef8d2c413 | ||
|
|
201746e561 | ||
|
|
8e375a0b7f | ||
|
|
045f3dc060 | ||
|
|
6b6012236d | ||
|
|
9cee798939 | ||
|
|
c79bdb12e0 | ||
|
|
bce77d65de | ||
|
|
0db814ef2d | ||
|
|
31b5ec4bd3 | ||
|
|
e15cdfd76e | ||
|
|
eb150ba82c | ||
|
|
d763275179 | ||
|
|
2b96a8a5c4 | ||
|
|
31866c76b7 | ||
|
|
a2da946e03 | ||
|
|
528bab34e7 | ||
|
|
776b9e4f94 | ||
|
|
168d328e97 | ||
|
|
f871dbd230 | ||
|
|
1662b56ea0 | ||
|
|
f3302dbac0 | ||
|
|
181072f3e7 | ||
|
|
f654312123 | ||
|
|
c46d97646a | ||
|
|
41742359e9 | ||
|
|
024723925e | ||
|
|
76b834768e | ||
|
|
89284bea87 | ||
|
|
532154640b | ||
|
|
ab8468d498 | ||
|
|
84b0332778 | ||
|
|
20b601f290 | ||
|
|
47002cae4c | ||
|
|
eaaffe369a | ||
|
|
7292a31c00 | ||
|
|
389d762a93 | ||
|
|
9704ebf096 | ||
|
|
de320338ca | ||
|
|
668dfd9130 | ||
|
|
a2960b23a8 | ||
|
|
55744edc25 | ||
|
|
7ece5d18cb | ||
|
|
8005ac8635 | ||
|
|
c00a71fdfa | ||
|
|
197c915968 | ||
|
|
6d77a07bbe | ||
|
|
adfb560dd1 | ||
|
|
508d20e4e0 | ||
|
|
72457619f7 | ||
|
|
18d5b83a95 | ||
|
|
653362b947 | ||
|
|
b7477b8f93 | ||
|
|
105f1fceaf | ||
|
|
cb65489ab7 | ||
|
|
96772727df | ||
|
|
960a618fe1 | ||
|
|
505cd37225 | ||
|
|
a5f66b8ac6 | ||
|
|
2021f29f62 | ||
|
|
9ccf3e0f87 | ||
|
|
7cfc53eba8 | ||
|
|
f9d269c750 | ||
|
|
67d5161fd1 | ||
|
|
d6e9bbce71 | ||
|
|
76ec2c0fa2 | ||
|
|
e82a2c9402 | ||
|
|
60ce106e24 | ||
|
|
1eb4952422 | ||
|
|
3043582889 | ||
|
|
f604db6517 | ||
|
|
f95b0c19d7 | ||
|
|
655bf87e92 | ||
|
|
6d06a1920d | ||
|
|
70af51e163 | ||
|
|
2c17fe334e | ||
|
|
5eca2cd3ac | ||
|
|
4b5ff8cad4 | ||
|
|
89d5b25cc7 | ||
|
|
3e10d403b4 | ||
|
|
1ebf06d49a | ||
|
|
2be857a851 | ||
|
|
1de22a82e8 | ||
|
|
f275308cc8 | ||
|
|
79de0dd4d8 | ||
|
|
5cedf74406 | ||
|
|
e5de6b4ad7 | ||
|
|
e467195de1 | ||
|
|
913a5b4a7e | ||
|
|
feb8bd9b79 | ||
|
|
846ecfa776 | ||
|
|
d98fb399a8 | ||
|
|
4a1c1d023a | ||
|
|
43cba548f4 | ||
|
|
772910ffe5 | ||
|
|
767179caf7 | ||
|
|
ee4a9150b8 | ||
|
|
58914fa703 | ||
|
|
ba40e7044a | ||
|
|
010d0073fe | ||
|
|
40210ce42e | ||
|
|
59cdafba21 | ||
|
|
fe6226baa5 | ||
|
|
45987c7652 | ||
|
|
a18ce97fb4 | ||
|
|
13d5080bbc | ||
|
|
9f07a36d1d | ||
|
|
bc2e7f428a | ||
|
|
53bfbdd349 | ||
|
|
174eac9a59 | ||
|
|
3775b86d9e | ||
|
|
5e1c6d6209 | ||
|
|
0d0fb036ab | ||
|
|
f8668802ab | ||
|
|
c22a1382a1 | ||
|
|
941a0d91cc | ||
|
|
60456e4225 | ||
|
|
440e28489a | ||
|
|
3da0f4eedc | ||
|
|
497abfb443 | ||
|
|
7b04a7849b | ||
|
|
e14b1e0b07 | ||
|
|
2121ce2841 | ||
|
|
c22e99941e | ||
|
|
3da646dc8a | ||
|
|
fca675d43f | ||
|
|
a30523744d | ||
|
|
80f5117c34 | ||
|
|
f77f73ec36 | ||
|
|
2385cf0d1b | ||
|
|
bc778ad5bb | ||
|
|
acb9c35d3b | ||
|
|
b8473e2632 | ||
|
|
61b4696574 | ||
|
|
91a79a5d96 | ||
|
|
23927edf46 | ||
|
|
6c03e605b8 | ||
|
|
2e201159d8 | ||
|
|
5d56a8e440 | ||
|
|
7097c85555 | ||
|
|
bf4c8e252f | ||
|
|
866cf33cd4 | ||
|
|
4561560b46 | ||
|
|
bbadbf8e16 | ||
|
|
68d8659115 | ||
|
|
dd008962a7 | ||
|
|
e856e7e58f | ||
|
|
634d8e1aeb | ||
|
|
eaa9376577 | ||
|
|
3fb70fd645 | ||
|
|
b793c75aa8 | ||
|
|
cb26b9af39 | ||
|
|
f8059cc87e | ||
|
|
07fe19ecdc | ||
|
|
a292fe87e1 | ||
|
|
03d915b55c | ||
|
|
cc318535e9 | ||
|
|
9d245f3243 | ||
|
|
6d7f95ac8e | ||
|
|
9d9df76f4e | ||
|
|
a850082f44 | ||
|
|
521150a73b | ||
|
|
ed5f3fe740 | ||
|
|
fd6fdd9768 | ||
|
|
73bf104e9f | ||
|
|
24640e65b1 | ||
|
|
eadfc38a69 | ||
|
|
098ee36c3a | ||
|
|
f4ed4d38f1 | ||
|
|
2ed3eaa325 | ||
|
|
3a7a02244b | ||
|
|
79258b9404 | ||
|
|
6376802d04 | ||
|
|
2784e7652d | ||
|
|
5b3925fae0 | ||
|
|
077f6050f3 | ||
|
|
791dd62b67 | ||
|
|
2364cda362 | ||
|
|
aca4365e8d | ||
|
|
cac857a3a7 | ||
|
|
ed38ce958d | ||
|
|
ed4b9b7426 | ||
|
|
e4468f056d | ||
|
|
4b580b407e | ||
|
|
b575612b07 | ||
|
|
b506b971a4 | ||
|
|
c50f322dc1 | ||
|
|
3a61f4d81d | ||
|
|
a2b2de9783 | ||
|
|
b2a6927b4b | ||
|
|
80dec4e1e2 | ||
|
|
77c7802496 | ||
|
|
cec2687085 | ||
|
|
ac118993d5 | ||
|
|
7634ecf730 | ||
|
|
309d1fa287 | ||
|
|
9231a91fb4 | ||
|
|
f6f928a693 | ||
|
|
467216439b | ||
|
|
c63e73ab7c | ||
|
|
74fcacd800 | ||
|
|
c1c46f01ab | ||
|
|
77083a1fa6 | ||
|
|
5303f290b1 | ||
|
|
895871c94b | ||
|
|
3bff50b764 | ||
|
|
86b7802b3b | ||
|
|
4ff9aaf037 | ||
|
|
99f7827e7e | ||
|
|
b67ac5c849 | ||
|
|
0777f01607 | ||
|
|
222dbf5443 | ||
|
|
9434f61030 | ||
|
|
9199594756 | ||
|
|
fc9318a831 | ||
|
|
e3fc28f082 | ||
|
|
9cb7b84f57 | ||
|
|
2689ed806d | ||
|
|
5999e7856f | ||
|
|
96ad67b020 | ||
|
|
47d5b95e13 | ||
|
|
12108e6046 | ||
|
|
021bdb8c23 | ||
|
|
470f6c0988 | ||
|
|
c8b87b4f79 | ||
|
|
9d7e16fbf7 | ||
|
|
5a45d5e12a | ||
|
|
c793ec78a2 | ||
|
|
7b2b7c5854 | ||
|
|
327615c9ac | ||
|
|
8e5d94b5e7 | ||
|
|
bd76a1f260 | ||
|
|
1df2695f50 | ||
|
|
67d33a3315 | ||
|
|
c49cd3a06e | ||
|
|
6c0545f566 | ||
|
|
f0eee365f9 | ||
|
|
274db506a9 | ||
|
|
1e5c56f3a7 | ||
|
|
871c7a131f | ||
|
|
7642d73f39 | ||
|
|
ef69dfa646 | ||
|
|
377be5030f | ||
|
|
896af55e79 | ||
|
|
b9a4a2c148 | ||
|
|
e9f6d096cf | ||
|
|
25d4c54284 | ||
|
|
e4291e1c51 | ||
|
|
5c11708728 | ||
|
|
73a301192f | ||
|
|
d972564d34 | ||
|
|
e66a2d4663 | ||
|
|
f92e13d898 | ||
|
|
3d0698b326 | ||
|
|
1e0ab86a24 | ||
|
|
caa29b9513 | ||
|
|
c793768918 | ||
|
|
0132a0cff6 | ||
|
|
f83b6ee898 | ||
|
|
dc071dfa56 | ||
|
|
fbfd601270 | ||
|
|
9b5aea2458 | ||
|
|
904ef92ece | ||
|
|
74e950d459 | ||
|
|
e99caef2dc | ||
|
|
855e4a6ed8 | ||
|
|
311b956461 | ||
|
|
b3b308cd9d | ||
|
|
a8480a34ba | ||
|
|
3312637b8d | ||
|
|
e6f7a82fb1 | ||
|
|
5b934de69a | ||
|
|
0f78982f57 | ||
|
|
18abbfc502 | ||
|
|
c3ae4c6dc5 | ||
|
|
9b012649cd | ||
|
|
c126091155 | ||
|
|
c2fee56496 | ||
|
|
5461dc77aa | ||
|
|
1b2a1c3fe3 | ||
|
|
a83a4fdd4f | ||
|
|
4d4ee1f57c | ||
|
|
2bec4ae09f | ||
|
|
e3b91909a6 | ||
|
|
116ba3f629 | ||
|
|
0ce6f8e6a2 | ||
|
|
9447cb67d2 | ||
|
|
92dacc5c3c | ||
|
|
766dfe9dd3 | ||
|
|
84ecb54efd | ||
|
|
6ff8855dba | ||
|
|
7f349cfa71 | ||
|
|
948b23addc | ||
|
|
7031bb6fbe | ||
|
|
15a04a1870 | ||
|
|
741c6d360a | ||
|
|
c4f3ca26ef | ||
|
|
3403adc1ff | ||
|
|
410d3aaf20 | ||
|
|
34905f6053 | ||
|
|
6a16d419af | ||
|
|
cd23c1a5a1 | ||
|
|
18793f8cd9 | ||
|
|
c008147674 | ||
|
|
47323c51c3 | ||
|
|
91f58620ac | ||
|
|
91aeccb2ae | ||
|
|
82864a609d | ||
|
|
828b1ca0c2 | ||
|
|
6b740ece39 | ||
|
|
84f18288e0 | ||
|
|
cf9e5862ed | ||
|
|
4ca2b5f4d2 | ||
|
|
da2894512d | ||
|
|
55e9487203 | ||
|
|
19fb08e7ff | ||
|
|
193b1025ad | ||
|
|
8fa2a925cd | ||
|
|
526daa9647 | ||
|
|
43bcc9fe02 | ||
|
|
51d6066420 | ||
|
|
0b11b83eb5 | ||
|
|
a53dfd14b1 | ||
|
|
cc0380d8f1 | ||
|
|
0a01d22e72 | ||
|
|
e9f1c72198 | ||
|
|
14af8823ed | ||
|
|
5900ce7d12 | ||
|
|
33e0a6bb46 | ||
|
|
ca3bc5059e | ||
|
|
bd108dfe35 | ||
|
|
8a96c7441e | ||
|
|
4eea3194fd | ||
|
|
dace332ac5 | ||
|
|
af816bb905 | ||
|
|
195c24ffef | ||
|
|
92ad17aa19 | ||
|
|
eabc4bee4c | ||
|
|
0ed9142cf0 | ||
|
|
1639683b43 | ||
|
|
05afb08c5d | ||
|
|
c674e44c60 | ||
|
|
e104c78471 | ||
|
|
3d8ec63bd7 | ||
|
|
99670c9d28 | ||
|
|
56126e19a7 | ||
|
|
05e8363504 | ||
|
|
884741062b | ||
|
|
63c77966fa | ||
|
|
31745d9f0d | ||
|
|
78897ed608 | ||
|
|
5712bcdc57 | ||
|
|
8e0a027584 | ||
|
|
12f88b5303 | ||
|
|
b119cad8a9 | ||
|
|
f30210e4e1 | ||
|
|
a8d6a104c3 | ||
|
|
13df0c8638 | ||
|
|
fb70aa6514 | ||
|
|
37fd1d424e | ||
|
|
bdbbcb05dc | ||
|
|
9cd5d0890f | ||
|
|
7b1fa849ef | ||
|
|
a8b5cf81ee | ||
|
|
bc62d4b359 | ||
|
|
4413580212 | ||
|
|
8b653ef133 | ||
|
|
b1f8ac7e22 | ||
|
|
a11c23d718 | ||
|
|
9feceb9fdb | ||
|
|
bad6464fe9 | ||
|
|
a6007ca362 | ||
|
|
05348b01ae | ||
|
|
abfabe3e21 | ||
|
|
83e0da446a | ||
|
|
85a48e71d1 | ||
|
|
0671117660 | ||
|
|
654c5b3074 | ||
|
|
aee5e54c14 | ||
|
|
e5df037992 | ||
|
|
06b9586eb6 | ||
|
|
79716dfdba | ||
|
|
02b6b5d078 | ||
|
|
403e8d2947 | ||
|
|
25e9c37987 | ||
|
|
99b58cf2bf | ||
|
|
78155cfbdf | ||
|
|
1ba980d69f | ||
|
|
ef155aaedf | ||
|
|
22c4b528cb | ||
|
|
fd71c6ac7a | ||
|
|
019fa134cb | ||
|
|
4a40bd3364 | ||
|
|
68229b2474 | ||
|
|
8727ed6ccd | ||
|
|
8ee3d5b8ad | ||
|
|
98ee43aa27 | ||
|
|
92291e3f9f | ||
|
|
1abb41a0d5 | ||
|
|
0993195f03 | ||
|
|
c2a7c6f994 | ||
|
|
48900cf5a0 | ||
|
|
57fbb36808 | ||
|
|
5c45384c34 | ||
|
|
f9aa162e2a | ||
|
|
013d17c386 | ||
|
|
ad250c3883 | ||
|
|
2c9e0012e2 | ||
|
|
2516f23e37 | ||
|
|
d3a7bd48c2 | ||
|
|
4aeb7490e3 | ||
|
|
265beef715 | ||
|
|
a58bf83a9a | ||
|
|
9da1a4a2de | ||
|
|
8a98e38e73 | ||
|
|
3044f4a0b1 | ||
|
|
5104ae1742 | ||
|
|
987ec14da2 | ||
|
|
24c6e0df97 | ||
|
|
23d5d18b28 | ||
|
|
0a38c241af | ||
|
|
5b0d79ad17 | ||
|
|
833187559d | ||
|
|
527066e4c8 | ||
|
|
bad30a49bf | ||
|
|
24f40dd652 | ||
|
|
dce61183dd | ||
|
|
aeb81a9e86 | ||
|
|
81aea15988 | ||
|
|
3e393208ab | ||
|
|
0674accd05 | ||
|
|
0f0d8df572 | ||
|
|
0afd06be9c | ||
|
|
1539bfa8b1 | ||
|
|
a2336be143 | ||
|
|
7d65befc7e | ||
|
|
916b28bc16 | ||
|
|
fb3447a6b4 | ||
|
|
2fa9b2e0e5 | ||
|
|
a66d3fb28a | ||
|
|
6be017d35b | ||
|
|
ef24e5164f | ||
|
|
a7f36b2361 | ||
|
|
3d404002a0 | ||
|
|
1922a1b49c | ||
|
|
ca4ec7025c | ||
|
|
7dcfa709d5 | ||
|
|
aa254142e8 | ||
|
|
b00b12bed2 | ||
|
|
dd7168a687 | ||
|
|
97b665733a | ||
|
|
4a6d3e3042 | ||
|
|
f65cf43e21 | ||
|
|
f971d4db51 | ||
|
|
8cd79c0372 | ||
|
|
9bc346e84a | ||
|
|
88d2e1756f | ||
|
|
dc09c45330 | ||
|
|
47e5b57789 | ||
|
|
c1ad8ed4b2 | ||
|
|
3589b5c9a8 | ||
|
|
fbaf15ad34 | ||
|
|
ee1d02991c | ||
|
|
2450cb028e | ||
|
|
ec1182f059 | ||
|
|
7797d8255f | ||
|
|
a4780ecac7 | ||
|
|
32643990ee | ||
|
|
5746e6267a | ||
|
|
501ec81405 | ||
|
|
714f4fe995 | ||
|
|
ead71a5618 | ||
|
|
eaf6e4ba28 | ||
|
|
bef2c9310e | ||
|
|
7b3e0d4a59 | ||
|
|
ea0705e7e4 | ||
|
|
7b9310f595 | ||
|
|
a31f775de8 | ||
|
|
f061630789 | ||
|
|
5d442125b0 | ||
|
|
e600f444f8 | ||
|
|
a8ae4d6655 | ||
|
|
a885fa7065 | ||
|
|
65665dc384 | ||
|
|
a8992edf88 | ||
|
|
1b7dd28c2f | ||
|
|
ae692432a2 | ||
|
|
c779b31a90 | ||
|
|
cb4bf8f5f4 | ||
|
|
96cd807720 | ||
|
|
07c3150d2a | ||
|
|
c66a405e6d | ||
|
|
0558381bcb | ||
|
|
1db47684b7 | ||
|
|
e16abd2e8b | ||
|
|
f7adc84f0e | ||
|
|
3acd51b247 | ||
|
|
6caab9c017 | ||
|
|
97c61d2a4f | ||
|
|
4f6a0061fe | ||
|
|
5b201069e8 | ||
|
|
8b5d79847f | ||
|
|
2d112a86af | ||
|
|
8806a62af7 | ||
|
|
01748ee847 | ||
|
|
6f1fb24a31 | ||
|
|
c30459115e | ||
|
|
7cdfcbf6dc | ||
|
|
acf140e670 | ||
|
|
df4a18e887 | ||
|
|
dc3836065a | ||
|
|
3df7ab194c | ||
|
|
c0af8460a2 | ||
|
|
85d94a84a8 | ||
|
|
6ad6a361f9 | ||
|
|
2a5dcab60f | ||
|
|
02b97d594f | ||
|
|
5e1cac251b | ||
|
|
3639638bf2 | ||
|
|
e255e054d4 | ||
|
|
8c9d8e7089 | ||
|
|
f0e069d348 | ||
|
|
4f32c8469e | ||
|
|
b2679ecb60 | ||
|
|
e0537267a2 | ||
|
|
3440afd0d6 | ||
|
|
cab65a0aaf | ||
|
|
910908b43e | ||
|
|
cf1c1e6df1 | ||
|
|
ff9b4f5b2f | ||
|
|
01899428e3 | ||
|
|
ff75ade140 | ||
|
|
25d5f36645 | ||
|
|
5c5f042cac | ||
|
|
7da0b32838 | ||
|
|
389896be07 | ||
|
|
f55323afca | ||
|
|
0d5313d263 | ||
|
|
bc676b9731 | ||
|
|
0313a90196 | ||
|
|
fca1c62a55 | ||
|
|
2dcb0d6177 | ||
|
|
e2eea4bca7 | ||
|
|
9218184ef1 | ||
|
|
a9ec9e87be | ||
|
|
f650ff3ccf | ||
|
|
b2640d2203 | ||
|
|
c3b05d27f1 | ||
|
|
9b3a706328 | ||
|
|
290392553e | ||
|
|
07838553a6 | ||
|
|
824ce8b172 | ||
|
|
6ecccdee7f | ||
|
|
96d58942d0 | ||
|
|
9c33405383 | ||
|
|
a8a5fc3672 | ||
|
|
0178716b01 | ||
|
|
9c6327160d | ||
|
|
5975e1bfb1 | ||
|
|
5a0c70c301 | ||
|
|
b21c6f45b7 | ||
|
|
73596546bf | ||
|
|
6bf83c9e72 | ||
|
|
9385176bb5 | ||
|
|
64240c5f3b | ||
|
|
32c4d05106 | ||
|
|
65afb81f33 | ||
|
|
21a4673a1f | ||
|
|
03c13e37db | ||
|
|
e8dfbe1d01 | ||
|
|
cd576793f7 | ||
|
|
736cb21e4d | ||
|
|
d32efe90b9 | ||
|
|
f873675628 | ||
|
|
65cb5e434b | ||
|
|
272fd35699 | ||
|
|
838546b497 | ||
|
|
a17fcb50c4 | ||
|
|
70def3ce72 | ||
|
|
627d307781 | ||
|
|
b96cdafc71 | ||
|
|
f9f6fa6233 | ||
|
|
d8dd9ce4a2 | ||
|
|
07a349e0d2 | ||
|
|
65e23373cd | ||
|
|
6698188e00 | ||
|
|
0242d964b2 | ||
|
|
c1d2fc6ead | ||
|
|
74bb094582 | ||
|
|
9e14595458 | ||
|
|
fdb90a689a | ||
|
|
a1b3fbf3e9 | ||
|
|
fccaa23d1f | ||
|
|
df789fed2e | ||
|
|
c254b982a2 | ||
|
|
78adea7bcb | ||
|
|
5085874b86 | ||
|
|
8631b85e42 | ||
|
|
f9449f5fa6 | ||
|
|
0cef0ce4e5 | ||
|
|
bac62f99ea | ||
|
|
017a788933 | ||
|
|
224b518a60 | ||
|
|
f98f6380c4 | ||
|
|
9a8b156443 | ||
|
|
a269b8efe1 | ||
|
|
b609a290db | ||
|
|
ccdc033c60 | ||
|
|
ed864cae5d | ||
|
|
1dec925c73 | ||
|
|
9c5856f247 | ||
|
|
024572c35c | ||
|
|
4e6ae49f26 | ||
|
|
1aa57a2f6f | ||
|
|
33e2f4b6ff | ||
|
|
44603c0b4c | ||
|
|
f9c79d5b44 | ||
|
|
771258eeb7 | ||
|
|
d37e82d200 | ||
|
|
fb2fd21417 | ||
|
|
98362c7eb9 | ||
|
|
128bc3c391 | ||
|
|
c294406934 | ||
|
|
3825ce80eb | ||
|
|
01d6731929 | ||
|
|
dff088fe37 | ||
|
|
2c4a203109 | ||
|
|
c1b717d8de | ||
|
|
5fb5a67210 | ||
|
|
72ca24de18 | ||
|
|
dbb3cfc7cc | ||
|
|
2229abdc36 | ||
|
|
552836eafc | ||
|
|
17af19661c | ||
|
|
6bd2d9cd90 | ||
|
|
d5c3c64a18 | ||
|
|
f27fa7de8e | ||
|
|
f568691731 | ||
|
|
7506576138 | ||
|
|
60fa83273c | ||
|
|
0f6ee88075 | ||
|
|
99b1241fdb | ||
|
|
6ffc3d4cad | ||
|
|
4b2eda6a24 | ||
|
|
1a72533934 | ||
|
|
f539a533e6 | ||
|
|
1e693af08f | ||
|
|
7916417b71 | ||
|
|
46c38a0ff7 | ||
|
|
9d8f65adc0 | ||
|
|
1618784c0f | ||
|
|
6b0f87bd31 | ||
|
|
e754ce0ec4 | ||
|
|
38caa7f892 | ||
|
|
dd1d9b5df8 | ||
|
|
cb8a23c73f | ||
|
|
41a072d4d2 | ||
|
|
0905ea8c26 | ||
|
|
a0ca0e5fd0 | ||
|
|
e00015dccf | ||
|
|
865a12213c | ||
|
|
b779014c13 | ||
|
|
4c04a78c79 | ||
|
|
32b769bdaa | ||
|
|
4c507aae4e | ||
|
|
8a17adb49d | ||
|
|
09aeef03a6 | ||
|
|
e020cca9d2 | ||
|
|
f86ba4f8fd | ||
|
|
d6e724a47a | ||
|
|
a64a794a97 | ||
|
|
9d5202c49c | ||
|
|
cea0591a77 | ||
|
|
927ee4626e | ||
|
|
47a0649de3 | ||
|
|
2a50990849 | ||
|
|
03d89de6b9 | ||
|
|
884a79e13a | ||
|
|
47ce487162 | ||
|
|
957172f282 | ||
|
|
8d081e0c45 | ||
|
|
991822bede | ||
|
|
8b7b76a337 | ||
|
|
af12d5bba1 | ||
|
|
c2c80271a3 | ||
|
|
110faefc96 | ||
|
|
4cf8959b13 | ||
|
|
e3b6c9829a | ||
|
|
ffdd0fcff7 | ||
|
|
527cea74d3 | ||
|
|
1fcd19c029 | ||
|
|
6bf2c297d7 | ||
|
|
2489a2ce0c | ||
|
|
6d5e9eb94e | ||
|
|
7ff2850b2d | ||
|
|
f70c2d4653 | ||
|
|
d7a91bed10 | ||
|
|
f7178f3fa7 | ||
|
|
77060841cb | ||
|
|
701649cb9b | ||
|
|
3a598479fc | ||
|
|
4ca3f6b2f2 | ||
|
|
f30f0876a9 | ||
|
|
5c04f52be9 | ||
|
|
0c4cafcf87 | ||
|
|
d72e9ad2a6 | ||
|
|
c0f7c28bda | ||
|
|
511955c173 | ||
|
|
20c914492e | ||
|
|
1807e02416 | ||
|
|
04b1b0ce4e | ||
|
|
de2eb433b6 | ||
|
|
cb10a5e99e | ||
|
|
133034ad07 | ||
|
|
29f43464fa | ||
|
|
0b7902029a | ||
|
|
d514f9ed15 | ||
|
|
5b0a056183 | ||
|
|
7f3c7ed376 | ||
|
|
09760d29d5 | ||
|
|
d5574ad90f | ||
|
|
354984404a | ||
|
|
45b41a9ab8 | ||
|
|
fddcb58555 | ||
|
|
614552fdad | ||
|
|
552b7dda0a | ||
|
|
3da7741f24 | ||
|
|
a08dd1e22d | ||
|
|
27399b3dbe | ||
|
|
4d9e7ca6e8 | ||
|
|
2f2abe840a | ||
|
|
3506c65895 | ||
|
|
5d185c51ba | ||
|
|
b1e7865904 | ||
|
|
cc3e769afe | ||
|
|
d9cc74cc78 | ||
|
|
887a39da1a | ||
|
|
8b384849f5 | ||
|
|
1a66fcafb5 | ||
|
|
a39fba8042 | ||
|
|
9f61999ce9 | ||
|
|
1a0d2e59ab | ||
|
|
7d66d7847f | ||
|
|
b4c65bdde3 | ||
|
|
8bd003d21e | ||
|
|
11bb41bbb6 | ||
|
|
ebefc65b69 | ||
|
|
045029bfb4 | ||
|
|
f66ab59f0d | ||
|
|
4c608eec0e | ||
|
|
2d6864b191 | ||
|
|
1545458c76 | ||
|
|
d23a390bf6 | ||
|
|
9e34cb3d61 | ||
|
|
170f526617 | ||
|
|
17e0b37882 | ||
|
|
cbe3c1939e | ||
|
|
251b014604 | ||
|
|
fe416e726a | ||
|
|
4dcf296af2 | ||
|
|
0a8a3bf6f2 | ||
|
|
174a7baaf4 | ||
|
|
0e41b88bdf | ||
|
|
822dc0794a | ||
|
|
f644a3392b | ||
|
|
8634386862 | ||
|
|
e4a84d343a | ||
|
|
7b0a7f7107 | ||
|
|
11f345f3cd | ||
|
|
17f10b2450 | ||
|
|
18e26515de | ||
|
|
ee9d68c0e7 | ||
|
|
f019163b35 | ||
|
|
b86b9b474f | ||
|
|
a7372fdcf6 | ||
|
|
59c5fd1256 | ||
|
|
8fc55951eb | ||
|
|
1e60c2fc78 | ||
|
|
b6256244d3 | ||
|
|
e872106c5c | ||
|
|
fc18d58681 | ||
|
|
7845b3fdc1 | ||
|
|
4b27bbe490 | ||
|
|
3cd0c4073e | ||
|
|
a7803877e9 | ||
|
|
0c4010baab | ||
|
|
c6a1b7bc0d | ||
|
|
ee74548daa | ||
|
|
e6c5afa8b2 | ||
|
|
260d5ddbbe | ||
|
|
ec53038042 | ||
|
|
3dfbc2635a | ||
|
|
293fc233f7 | ||
|
|
a99f95853a | ||
|
|
a3378a188a | ||
|
|
7d7ccc67e0 | ||
|
|
1fa17d63a2 | ||
|
|
a743500a37 | ||
|
|
0a6f2d5adb | ||
|
|
96e6c0dfb5 | ||
|
|
775918468d | ||
|
|
05101cfcd4 | ||
|
|
2de48c0550 | ||
|
|
07004179a3 | ||
|
|
05401a4c98 | ||
|
|
ba678777b1 | ||
|
|
532c461d17 | ||
|
|
b98e1ff9dd | ||
|
|
bc7ca707c9 | ||
|
|
292b131a4c | ||
|
|
e2ca78008e | ||
|
|
85757050bf | ||
|
|
8ecbfb935d | ||
|
|
753a56ce95 | ||
|
|
39d7ab0b76 | ||
|
|
95f638175d | ||
|
|
6c6bf492b0 | ||
|
|
2fdce0280a | ||
|
|
dfa18c632e | ||
|
|
f8276adaa7 | ||
|
|
f184dd5743 | ||
|
|
21da6c813c | ||
|
|
2601519e8b | ||
|
|
97cce473e8 | ||
|
|
227a977697 | ||
|
|
c1a59eba47 | ||
|
|
1034ac8fe1 | ||
|
|
5602fc0b1b | ||
|
|
332c32893c | ||
|
|
9ee52c0827 | ||
|
|
ad0c4b25a5 | ||
|
|
14af01182c | ||
|
|
ac22ed553e | ||
|
|
310c7fa4a3 | ||
|
|
be3daae175 | ||
|
|
fdc4e59d09 | ||
|
|
8af07756ef | ||
|
|
b522b9875e | ||
|
|
8059ebfad1 | ||
|
|
5aa3de21bb | ||
|
|
230e02014c | ||
|
|
be8bc54e46 | ||
|
|
c8d37c2dfc | ||
|
|
21300a858c | ||
|
|
c97887993f | ||
|
|
198311c7c4 | ||
|
|
1db24a8b72 | ||
|
|
9ef492acdc | ||
|
|
f8a74bbcbd | ||
|
|
eade3d0ee3 | ||
|
|
c65c16f476 | ||
|
|
6fa7b3cb88 | ||
|
|
e5a8209127 | ||
|
|
aa768fabc0 | ||
|
|
0c94dbd32c | ||
|
|
89df1b5836 | ||
|
|
c8d682c0b9 | ||
|
|
088c5bc0b9 | ||
|
|
6cbe93a9bb | ||
|
|
1d6e90a429 | ||
|
|
6fb842c619 | ||
|
|
6d90b6079e | ||
|
|
084cbfcef6 | ||
|
|
45a773fc69 | ||
|
|
3c147e7079 | ||
|
|
1c4e574512 | ||
|
|
6901fe07d7 | ||
|
|
d1bf278bf2 | ||
|
|
0d0f670629 | ||
|
|
7c85a226d9 | ||
|
|
b18ae91f37 | ||
|
|
025a5f49e3 | ||
|
|
146a136cd5 | ||
|
|
8e8c532750 | ||
|
|
5b973a2462 | ||
|
|
5bcd00d499 | ||
|
|
cf9591ae83 | ||
|
|
64a5c44726 | ||
|
|
bbae90059e | ||
|
|
1d953c31eb | ||
|
|
49164aef3a | ||
|
|
2cc8810830 | ||
|
|
f8813bda36 | ||
|
|
98f3c5c433 | ||
|
|
65a6317527 | ||
|
|
925c301cbe | ||
|
|
b6ac345ee6 | ||
|
|
b3bc3ca18d | ||
|
|
568d9da42f | ||
|
|
37fef31ed6 | ||
|
|
4d1c0869f1 | ||
|
|
3ed16ff186 | ||
|
|
8a30fdd4c5 | ||
|
|
a9b4881e7b | ||
|
|
f76e3968f8 | ||
|
|
eb777fd14f | ||
|
|
fffae3b519 | ||
|
|
2aaa729ae9 | ||
|
|
c2d6046a1f | ||
|
|
7b4d5766ef | ||
|
|
17978d2306 | ||
|
|
aadbef2a99 | ||
|
|
53e9d90bf9 | ||
|
|
9df339c4a7 | ||
|
|
7c26572c0b | ||
|
|
67f26d4318 | ||
|
|
cd3d1ab2f4 | ||
|
|
9314911cc8 | ||
|
|
67dc07c4f5 | ||
|
|
331e35cd42 | ||
|
|
40890f9ad2 | ||
|
|
cb7606edca | ||
|
|
abab98cea6 | ||
|
|
d271e2a3ef | ||
|
|
579e2a7a93 | ||
|
|
0ac028c546 | ||
|
|
c6b374a934 | ||
|
|
eeddde332e | ||
|
|
9b9926502c | ||
|
|
a0e772885c | ||
|
|
a0384c6d33 | ||
|
|
d18242e0f2 | ||
|
|
2177451371 | ||
|
|
5adb85582a | ||
|
|
35a2074de4 | ||
|
|
de43f14552 | ||
|
|
d675ae17da | ||
|
|
0ae61d3e82 | ||
|
|
c6c7350dad | ||
|
|
75efd7a2d5 | ||
|
|
aaebf3b4fb | ||
|
|
76adc09b16 | ||
|
|
5b26252d25 | ||
|
|
db813a8191 | ||
|
|
4e0740d7b4 | ||
|
|
5c74814b95 | ||
|
|
504aadac16 | ||
|
|
f12e8deeab | ||
|
|
fa9ab9c033 | ||
|
|
d5dd63d528 | ||
|
|
4d2b3d4a77 | ||
|
|
5f2da9421b | ||
|
|
dcea38d038 | ||
|
|
f97538edf2 | ||
|
|
dff3cd1424 | ||
|
|
62fb9bd74d | ||
|
|
5ac5ecb55e | ||
|
|
e6d16b419b | ||
|
|
23fa1bd0bc | ||
|
|
e7350b2528 | ||
|
|
4e5bf8f3c1 | ||
|
|
1b9ac61588 | ||
|
|
616818aa52 | ||
|
|
3481a36735 | ||
|
|
ad530c242d | ||
|
|
fef2b64933 | ||
|
|
fac10e0da7 | ||
|
|
e7295ccf9a | ||
|
|
d4be0e7ef6 | ||
|
|
15beef99f9 | ||
|
|
3524ad56ee | ||
|
|
d7bfdf4397 | ||
|
|
d1edb41b9d | ||
|
|
ad5b32319c | ||
|
|
d646b4b54f | ||
|
|
7e710870ec | ||
|
|
b902fc372f | ||
|
|
e9caab16ba | ||
|
|
3c8ece1eee | ||
|
|
7d1fe3098a | ||
|
|
a8f642ebd7 | ||
|
|
cc85c658d9 | ||
|
|
fbeb65b53b | ||
|
|
66e312c2b8 | ||
|
|
b1300eb52a | ||
|
|
4c34a532ce | ||
|
|
4e3a02c31b | ||
|
|
30fa5891e9 | ||
|
|
53b6c19565 | ||
|
|
cd19cbf0b4 | ||
|
|
8958507385 | ||
|
|
730174b6ff | ||
|
|
cee79afc23 | ||
|
|
79c55793af | ||
|
|
43d614dde2 | ||
|
|
fde11dc4a3 | ||
|
|
36a84d28e2 | ||
|
|
6f7e2ab201 | ||
|
|
fe7097771b | ||
|
|
5a81c223c1 | ||
|
|
8a4e90e1be | ||
|
|
9d0cc5ef91 | ||
|
|
10bd10fbf1 | ||
|
|
21aefed58f | ||
|
|
13133053f6 | ||
|
|
b41f321723 | ||
|
|
a90f6badfd | ||
|
|
92feb60ec5 | ||
|
|
8561944900 | ||
|
|
2ca7b3bf7a | ||
|
|
032acffb03 | ||
|
|
8c7c7b6af5 | ||
|
|
3a6e55a5ea | ||
|
|
fb8ea23744 | ||
|
|
1ce44e3bd9 | ||
|
|
d329b1c88d | ||
|
|
13dbc0826d | ||
|
|
f34a41d19c | ||
|
|
6198bc2a64 | ||
|
|
1f40818dda | ||
|
|
1df7b51be9 | ||
|
|
e45f186cd9 | ||
|
|
6874c8f6b9 | ||
|
|
b03979cf65 | ||
|
|
d5d6605a41 | ||
|
|
139c0d2c51 | ||
|
|
25faf081fc | ||
|
|
cf1a5ada49 | ||
|
|
7986bff968 | ||
|
|
6b305f0593 | ||
|
|
1de81e35f9 | ||
|
|
6714e47d4c | ||
|
|
23e8294502 | ||
|
|
27079865e2 | ||
|
|
2f8e9e9859 | ||
|
|
d3c4772d59 | ||
|
|
e4c13622f0 | ||
|
|
a5ffdd5180 | ||
|
|
f0d86b92fb | ||
|
|
b67d2a45d0 | ||
|
|
6d1bad8b8c | ||
|
|
092f8fc371 | ||
|
|
15c2d416a8 | ||
|
|
c68c4ea9c9 | ||
|
|
eacfd5c8fe | ||
|
|
65304e6003 | ||
|
|
1a51a2e7a7 | ||
|
|
8ddfa65f5f | ||
|
|
15ca25bf6d | ||
|
|
bc0689b529 | ||
|
|
43a5e27e8f | ||
|
|
486e4c7113 | ||
|
|
83773d1335 | ||
|
|
f0b8d3d44f | ||
|
|
26e1d6e939 | ||
|
|
e6f5e437b7 | ||
|
|
22a3325d0c | ||
|
|
caa17b0073 | ||
|
|
e3128c11a2 | ||
|
|
f06c1a86ea | ||
|
|
fbccc80c77 | ||
|
|
73183aa007 | ||
|
|
0d49c4c0fe | ||
|
|
9f2627869b | ||
|
|
13139e6943 | ||
|
|
08e9157f17 | ||
|
|
076302a6b0 | ||
|
|
4c4c748be6 | ||
|
|
76dfd02aa8 | ||
|
|
452a3eb698 | ||
|
|
adb88708fc | ||
|
|
b399a1f9fb | ||
|
|
f2d000a91a | ||
|
|
9f28ef19ef | ||
|
|
85c0e7780f | ||
|
|
145cf2d975 | ||
|
|
9d8dba23b9 | ||
|
|
5a2c5e4c9a | ||
|
|
2480575e67 | ||
|
|
d9337e1086 | ||
|
|
4a0fe9a19b | ||
|
|
0c73900f57 | ||
|
|
f66749ee25 | ||
|
|
043a9ecb4a | ||
|
|
f240b562ff | ||
|
|
a91ce93d43 | ||
|
|
7819c1175a | ||
|
|
2ef66bc91f | ||
|
|
ea8bad4ece | ||
|
|
9ef529ab6c | ||
|
|
fdb848eecb | ||
|
|
beecbbeb61 | ||
|
|
58aa01de1b | ||
|
|
b8bcc4a5f4 | ||
|
|
1cc00a9577 | ||
|
|
5eb1db7dd7 | ||
|
|
c09b4e5ef4 | ||
|
|
d86d621d38 | ||
|
|
0ee03a0d30 | ||
|
|
533a5c8f4a | ||
|
|
521e988b3a | ||
|
|
8786b48f33 | ||
|
|
3f2d90c0ac | ||
|
|
9b563e3dcb | ||
|
|
a210e063f0 | ||
|
|
9055a6facb | ||
|
|
8f3ee23f6c | ||
|
|
29870ae7b0 | ||
|
|
7403155a88 | ||
|
|
4af73414cf | ||
|
|
6110a70b32 | ||
|
|
ed5e0a54cb | ||
|
|
082b6aa86d | ||
|
|
18fb15dec4 | ||
|
|
bf6658a265 | ||
|
|
02728ddc56 | ||
|
|
31bb4c418e | ||
|
|
c0e75c2de2 | ||
|
|
62bf1d069c | ||
|
|
9091d50690 | ||
|
|
0544e21c97 | ||
|
|
e9bb8201ed | ||
|
|
75f8963ecd | ||
|
|
e769926429 | ||
|
|
e09d4d24ba | ||
|
|
ed0924df02 | ||
|
|
cd6fcacc4f | ||
|
|
16bf52e193 | ||
|
|
df5aecd102 | ||
|
|
75c0fee5bf | ||
|
|
5c251f4126 | ||
|
|
ccff827008 | ||
|
|
160769ea60 | ||
|
|
16ecaa91b0 | ||
|
|
2614f91353 | ||
|
|
2a9a041a36 | ||
|
|
c37ce8fab9 | ||
|
|
3f38654652 | ||
|
|
d54c6fe710 | ||
|
|
1ac8ceebe1 | ||
|
|
8cc72e6c96 | ||
|
|
90ecb3c016 | ||
|
|
b3db213b1a | ||
|
|
e389770e55 | ||
|
|
4d19101d01 | ||
|
|
88d0f425d2 | ||
|
|
5a205304bb | ||
|
|
723442227c | ||
|
|
d4c867a835 | ||
|
|
fd271b992a | ||
|
|
f880399c4c | ||
|
|
b1d3acb9f7 | ||
|
|
68848a74a4 | ||
|
|
9b7ac8d6eb | ||
|
|
493262c99a | ||
|
|
d9ff44cc93 | ||
|
|
5e3530faef | ||
|
|
c5ca47396b | ||
|
|
2c21d4ddad | ||
|
|
8d5cae835f | ||
|
|
84221fe0d8 | ||
|
|
644613749d | ||
|
|
c2a783ce96 | ||
|
|
23d645473c | ||
|
|
0f43de79e1 | ||
|
|
eb86db3ef6 | ||
|
|
263c0503dc | ||
|
|
47cef95b11 | ||
|
|
5a71cb4ac6 | ||
|
|
0c3b3e9aa6 | ||
|
|
09a5343daa | ||
|
|
254dcff1f6 | ||
|
|
2891e01de1 | ||
|
|
f42568bed4 | ||
|
|
a28f667df5 | ||
|
|
ff1d561f7b | ||
|
|
94a91215fb | ||
|
|
dccb50d269 | ||
|
|
6ca7d3904d | ||
|
|
0f81af3095 | ||
|
|
1ae124f0b2 | ||
|
|
e83c466bf2 | ||
|
|
9a63cfa956 | ||
|
|
18250a98f7 | ||
|
|
d18547806e | ||
|
|
03b475add1 | ||
|
|
b35c43b55c | ||
|
|
48862f2b8d | ||
|
|
41714fe3f2 | ||
|
|
f9db93e41a | ||
|
|
6573985bea | ||
|
|
77dfe79d95 | ||
|
|
1679dc61a1 | ||
|
|
07afba0b9e | ||
|
|
c018f86671 | ||
|
|
7eb8f0d685 | ||
|
|
2e7bdbcac5 | ||
|
|
66f7474d62 | ||
|
|
1ed3008c1c | ||
|
|
b3dbc041b5 | ||
|
|
7bc5385783 | ||
|
|
02513a8779 | ||
|
|
27100e2e2d | ||
|
|
4860d0cb3d | ||
|
|
a0ce1b361f | ||
|
|
7ede27e90b | ||
|
|
0cfb27feba | ||
|
|
85c567ffc5 | ||
|
|
694309f80b | ||
|
|
0a6a4c35fa | ||
|
|
923d9ee512 | ||
|
|
f2671ea4ba | ||
|
|
0d3e27932a | ||
|
|
cc81fd3244 | ||
|
|
014effef90 | ||
|
|
903e59a814 | ||
|
|
7e2b21602a | ||
|
|
aee394a792 | ||
|
|
e5e20af1f7 | ||
|
|
2d09a1ce33 | ||
|
|
e0f9e0c48c | ||
|
|
f4f67d4289 | ||
|
|
ce68617d86 | ||
|
|
ba53334a7c | ||
|
|
91925f9ec6 | ||
|
|
6b9b8ac403 | ||
|
|
01d9af0bb2 | ||
|
|
63549fd3e2 | ||
|
|
e3cd1e9fc3 | ||
|
|
d0ceed37b5 | ||
|
|
849adc5d7c | ||
|
|
317fc93c76 | ||
|
|
3ff6c725a3 | ||
|
|
205953d928 | ||
|
|
8a01969796 | ||
|
|
38d94663cf | ||
|
|
c85ef44a1b | ||
|
|
648a30ecf8 | ||
|
|
fc7237c7b9 | ||
|
|
936a3b624b | ||
|
|
fc4fa3893c | ||
|
|
e34a2f5195 | ||
|
|
ce98e862c3 | ||
|
|
930357d11c | ||
|
|
43c3584dd2 | ||
|
|
c0def90173 | ||
|
|
0d918510fd | ||
|
|
06141850fa | ||
|
|
8eab9a3f15 | ||
|
|
a7b7c45657 | ||
|
|
15004f2762 | ||
|
|
be8242c7ac | ||
|
|
601fd98508 | ||
|
|
c8bf9b41e4 | ||
|
|
8d73cef4b2 | ||
|
|
6f4a0f7ce4 | ||
|
|
a67056fbc9 | ||
|
|
cc67c3ced1 | ||
|
|
edb2f1bac2 | ||
|
|
264ce8ddc4 | ||
|
|
17642ca84b | ||
|
|
f46d91a57e | ||
|
|
8d145c9075 | ||
|
|
78403a0baf | ||
|
|
353b2fd7e0 | ||
|
|
ec1e1fda92 | ||
|
|
da5331d8ca | ||
|
|
939f44b48c | ||
|
|
5939df9345 | ||
|
|
c366b9f4c8 | ||
|
|
d23baec6d9 | ||
|
|
835e0f50ca | ||
|
|
ff4f338898 | ||
|
|
113871a150 | ||
|
|
c31b5cf2b4 | ||
|
|
7d75a6c3a9 | ||
|
|
3995351b54 | ||
|
|
795942d8a9 | ||
|
|
f4be975fec | ||
|
|
b7a0cc5c24 | ||
|
|
8a666ae397 | ||
|
|
2cc8e519d8 | ||
|
|
48cd21aa46 | ||
|
|
531fbb63be | ||
|
|
6f3945cced | ||
|
|
9dc3c32769 | ||
|
|
3f2f19f73c | ||
|
|
9a013d783e | ||
|
|
6ea217b674 | ||
|
|
0356221066 | ||
|
|
50a0ed3823 | ||
|
|
1686d41c0c | ||
|
|
65f2efa9a0 | ||
|
|
84e9cf5261 | ||
|
|
dd256409e9 | ||
|
|
1e68c047ea | ||
|
|
56340fcc60 | ||
|
|
af639286e1 | ||
|
|
bf32b6262d | ||
|
|
f2dd283751 | ||
|
|
c27cd8ca54 | ||
|
|
75c86f7b69 | ||
|
|
2e1d65fa33 | ||
|
|
5cdd2629bf | ||
|
|
026bf6fb07 | ||
|
|
9054049ebf | ||
|
|
d7a044c894 | ||
|
|
2da8895f3e | ||
|
|
1e1a5897bc | ||
|
|
d3a635b156 | ||
|
|
f08c8a51ad | ||
|
|
2f08e92a5e | ||
|
|
336b009f24 | ||
|
|
e027454a36 | ||
|
|
af968c2c58 | ||
|
|
25a954b13c | ||
|
|
a45d8761e5 | ||
|
|
e1d9ca6325 | ||
|
|
d3853ddbf8 | ||
|
|
7efa62c994 | ||
|
|
9284bf5b14 | ||
|
|
88ebf9f86f | ||
|
|
85ab9d98de | ||
|
|
b8278bb310 | ||
|
|
00ef27bf8c | ||
|
|
d090a6d851 | ||
|
|
573b5e1c62 | ||
|
|
f6b1cf7c3a | ||
|
|
08643c8af1 | ||
|
|
b2b8c083a6 | ||
|
|
fa882d5472 | ||
|
|
8760481153 | ||
|
|
33338d2a0a | ||
|
|
5b85c20d32 | ||
|
|
bbf8decd0a | ||
|
|
d5315054a2 | ||
|
|
6e7aa3fe9a | ||
|
|
48b42bf41f | ||
|
|
e2f7c2ef20 | ||
|
|
27294822ef | ||
|
|
f0250338eb | ||
|
|
7ee3ef4737 | ||
|
|
03a1cf0395 | ||
|
|
5ad70b83d6 | ||
|
|
8eba500d1b | ||
|
|
0a3d361621 | ||
|
|
fd5f54d8c9 | ||
|
|
957daf5392 | ||
|
|
c4953590bc | ||
|
|
578d6c8518 | ||
|
|
54bcff0b8f | ||
|
|
9f74e57a05 | ||
|
|
a58298edb9 | ||
|
|
c7e2905255 | ||
|
|
799126f06a | ||
|
|
1d041357aa | ||
|
|
d53bfb70ff | ||
|
|
e4a9636583 | ||
|
|
3c744e9678 | ||
|
|
28cfa69a23 | ||
|
|
e4c8437f1f | ||
|
|
b5668d9534 | ||
|
|
e756fece66 | ||
|
|
80c2c58a5a | ||
|
|
047aa43880 | ||
|
|
e0d33e6099 | ||
|
|
f60a55815d | ||
|
|
33bde966b7 | ||
|
|
77210f7c90 | ||
|
|
058f32c941 | ||
|
|
979f06e6d0 | ||
|
|
595b77c3c6 | ||
|
|
2788ea31ff | ||
|
|
94d9601d23 | ||
|
|
51520e0e0a | ||
|
|
6bb8da9a36 | ||
|
|
cde3f7900f | ||
|
|
357d4625fa | ||
|
|
51b37abae7 | ||
|
|
cca7ded152 | ||
|
|
3d9aa58ac1 | ||
|
|
695d7e4f74 | ||
|
|
7bec8a103b | ||
|
|
3be4c57530 | ||
|
|
70d0ed54a4 | ||
|
|
36ac807635 | ||
|
|
430a9b38ef | ||
|
|
e3574e9d23 | ||
|
|
6591ed7a3c | ||
|
|
5f292ae46a | ||
|
|
bd9f5ff862 | ||
|
|
69614a158e | ||
|
|
cf8ec8bbad | ||
|
|
91c3d820fc | ||
|
|
f435203794 | ||
|
|
b4c013f4da | ||
|
|
37ecb69379 | ||
|
|
d1643e9a09 | ||
|
|
0456d837d8 | ||
|
|
b493b17602 | ||
|
|
206386b263 | ||
|
|
51d336405a | ||
|
|
e068a3807a | ||
|
|
f585f54016 | ||
|
|
cf3b87d3aa | ||
|
|
3164c0fd56 | ||
|
|
bdfed43b01 | ||
|
|
1e794aaa12 | ||
|
|
1297b97b2d | ||
|
|
ca80857607 | ||
|
|
417e331e8e | ||
|
|
8602da1753 | ||
|
|
0c9af3ffee | ||
|
|
12ba2a2724 | ||
|
|
e892b8b3e5 | ||
|
|
8d91d597fe | ||
|
|
b8f146364b | ||
|
|
3866f8709f | ||
|
|
0eeffd1984 | ||
|
|
b15973b00c | ||
|
|
ddf65972c0 | ||
|
|
c10bf44bfc | ||
|
|
4bf9be860b | ||
|
|
e0313958b3 | ||
|
|
cda4c522fd | ||
|
|
38bd2ac74c | ||
|
|
36da47f66e | ||
|
|
805efc912e | ||
|
|
3642dbcd86 | ||
|
|
d3cfe1f6e1 | ||
|
|
88acbdd8b9 | ||
|
|
214f2667f2 | ||
|
|
7b16cc9d7b | ||
|
|
9035ed453f | ||
|
|
b0affc8611 | ||
|
|
09fb35c80b | ||
|
|
6badc8099f | ||
|
|
8520add970 | ||
|
|
058b4d0020 | ||
|
|
68db9e1254 | ||
|
|
0cddda43f2 | ||
|
|
077ce786cb | ||
|
|
46de6b8d8b | ||
|
|
1aea4beffe | ||
|
|
38a5341d08 | ||
|
|
17752dcce1 | ||
|
|
1aedac39fd | ||
|
|
1cfb7ee6a4 | ||
|
|
290b5d9da2 | ||
|
|
b66241b006 | ||
|
|
cf615efcd0 | ||
|
|
c57b832305 | ||
|
|
e5c3ae1f9f | ||
|
|
e9232e3bae | ||
|
|
f4bb9544d4 | ||
|
|
28aaf22ea8 | ||
|
|
de49920af7 | ||
|
|
e05c01fc77 | ||
|
|
9f6dc5da11 | ||
|
|
84c9eb87e6 | ||
|
|
9f290b550b | ||
|
|
6e4950ec1c | ||
|
|
c727389f53 | ||
|
|
20e8ac2910 | ||
|
|
7e59145102 | ||
|
|
5e01a37b6e | ||
|
|
95d2363435 | ||
|
|
82332bf92f | ||
|
|
042c451bd6 | ||
|
|
3e66c3e5db | ||
|
|
a6f3852846 | ||
|
|
1f622b0c1e | ||
|
|
48aaf9de6c | ||
|
|
8b5e86c1ba | ||
|
|
2a975c95b2 | ||
|
|
b89555a2e2 | ||
|
|
166ab7d299 | ||
|
|
d2bf8f1b53 | ||
|
|
e363840937 | ||
|
|
d8fb275b20 | ||
|
|
13719170c9 | ||
|
|
2c4db5bf02 | ||
|
|
7e957527ac | ||
|
|
b94a1d943f | ||
|
|
3efb4da14b | ||
|
|
9c53f4b949 | ||
|
|
35d395fc35 | ||
|
|
cf19a63aac | ||
|
|
6456060a6c | ||
|
|
702547a88b | ||
|
|
2447da3c08 | ||
|
|
8df420c37c | ||
|
|
d18a345b5b | ||
|
|
1770274dd0 | ||
|
|
746dd506f8 | ||
|
|
78be0004af | ||
|
|
333a378230 | ||
|
|
5e8f776334 | ||
|
|
5470a82b94 | ||
|
|
7959c96bcd | ||
|
|
aeb4bec02d | ||
|
|
b92df15594 | ||
|
|
86089ec3b4 | ||
|
|
2cffaa9d73 | ||
|
|
94da28c5cc | ||
|
|
86b7f30e0e | ||
|
|
e5b01ad92f | ||
|
|
9d381c2848 | ||
|
|
f81c0280e4 | ||
|
|
b13ffff044 | ||
|
|
d068ac40ec | ||
|
|
db5e428709 | ||
|
|
77396111aa | ||
|
|
7af05e3f4a | ||
|
|
8665ad24c1 | ||
|
|
72e6e11238 | ||
|
|
3468201f32 | ||
|
|
fb7496aaf2 | ||
|
|
9193653773 | ||
|
|
a80641f8f4 | ||
|
|
eb7f1ba9ee | ||
|
|
39820205ce | ||
|
|
2cffcb4e25 | ||
|
|
2d2c664ce9 | ||
|
|
ca4e477f56 | ||
|
|
3ec36c4db1 | ||
|
|
d593696df2 | ||
|
|
45de55a552 | ||
|
|
17d20bac8b | ||
|
|
f42137d86c | ||
|
|
456177af30 | ||
|
|
41374d62ea | ||
|
|
25395fcac3 | ||
|
|
9b49c66136 | ||
|
|
36bfc9e770 | ||
|
|
2a04341b3b | ||
|
|
c0a7f1b3fe | ||
|
|
66e1b94d1b | ||
|
|
25e07d0a60 | ||
|
|
2731f2b287 | ||
|
|
5140cb1c2c | ||
|
|
e11566537c | ||
|
|
b884dc910e | ||
|
|
35cefe3b89 | ||
|
|
96af106a9d | ||
|
|
ac5d961a70 | ||
|
|
8f4e529766 | ||
|
|
19a7e2898e | ||
|
|
0ef29c181a | ||
|
|
81d3d5f11d | ||
|
|
c4e0518228 | ||
|
|
121b7df59e | ||
|
|
6740f6b1fb | ||
|
|
5a7a267daf | ||
|
|
fb1040fb2c | ||
|
|
ecad5518eb | ||
|
|
4361e2277a | ||
|
|
7d7e25fd25 | ||
|
|
8f0cfe2c2a | ||
|
|
c470c5f161 | ||
|
|
2302e5f37e | ||
|
|
fc1b84f966 | ||
|
|
25ad869030 | ||
|
|
a35559da30 | ||
|
|
0103abbec3 | ||
|
|
ee725747ad | ||
|
|
ef0f044e8d | ||
|
|
d42b72ea79 | ||
|
|
f177441d07 | ||
|
|
939c6442be | ||
|
|
33dad3db73 | ||
|
|
ef296d4b1c | ||
|
|
58fbb8e04f | ||
|
|
0200b53c3e | ||
|
|
cdaef11761 | ||
|
|
853d9f8ddd | ||
|
|
61aac1f1b2 | ||
|
|
48f33e7e4c | ||
|
|
216ebb2454 | ||
|
|
5c36f21f06 | ||
|
|
66360844b2 | ||
|
|
8eae549af3 | ||
|
|
721bc6d68f | ||
|
|
b7d7b3dceb | ||
|
|
d3ad5ee823 | ||
|
|
c119b4b6ef | ||
|
|
9aa5e6435d | ||
|
|
b4eced0cd3 | ||
|
|
1f159aacf0 | ||
|
|
d2ed70b6dd | ||
|
|
76be885a60 | ||
|
|
f7173cd477 | ||
|
|
b448db51f4 | ||
|
|
a413b2401b | ||
|
|
37a673d336 | ||
|
|
37cb60a777 | ||
|
|
18fc857b78 | ||
|
|
aa4912bba9 | ||
|
|
7eff7f89d1 | ||
|
|
9010003a0d | ||
|
|
9a0bc05b8b | ||
|
|
0e4327c3f9 | ||
|
|
cc9b4b874c | ||
|
|
333609d23a | ||
|
|
1f7e682900 | ||
|
|
635d4196f1 | ||
|
|
3f7ce90cef | ||
|
|
1c8859ced6 | ||
|
|
04257535e1 | ||
|
|
ae71fb9c33 | ||
|
|
8f68e5afaf | ||
|
|
23160f7843 | ||
|
|
2788e39cd6 | ||
|
|
e536cae63a | ||
|
|
e6b96b3fc3 | ||
|
|
6d357c8d22 | ||
|
|
02dcd57817 | ||
|
|
7a2c5425a1 | ||
|
|
8b667e056c | ||
|
|
125fe90aaf | ||
|
|
c7a4d08372 | ||
|
|
d2bae92e92 | ||
|
|
9ff4c81a11 | ||
|
|
bda105c550 | ||
|
|
df36b6d24f | ||
|
|
b34ef9283d | ||
|
|
7e13e8cb67 | ||
|
|
a51f96cc6f | ||
|
|
99ea103944 | ||
|
|
3b2e5e5d95 | ||
|
|
e06ce66513 | ||
|
|
738862cb22 | ||
|
|
de063e51f0 | ||
|
|
8f21a77150 | ||
|
|
a27321df2e | ||
|
|
0fb7ba5987 | ||
|
|
a0a508e64f | ||
|
|
d8a80419eb | ||
|
|
862df2efb6 | ||
|
|
9dcbab9628 | ||
|
|
ae7b25e120 | ||
|
|
bb1e7df7a9 | ||
|
|
b620d33f98 | ||
|
|
19b5004920 | ||
|
|
337fb2ae45 | ||
|
|
e87d4a796a | ||
|
|
a419ee9ed1 | ||
|
|
2fe6e3dcab | ||
|
|
262b6352a6 | ||
|
|
a18d29b66a | ||
|
|
b464b9ab88 | ||
|
|
8bf8b6b36e | ||
|
|
cbd10c7a7c | ||
|
|
a6bfa8f976 | ||
|
|
8850d7d188 | ||
|
|
9b62a70c8f | ||
|
|
950887851a | ||
|
|
6f5c41ca14 | ||
|
|
5223529af1 | ||
|
|
2632d7ea9f | ||
|
|
de60a0abd1 | ||
|
|
c4e4ff57d8 | ||
|
|
b6f108f7ea | ||
|
|
96c39e68ee | ||
|
|
a3d5e63fb6 | ||
|
|
c1be834e54 | ||
|
|
caf0914b4d | ||
|
|
0fc522f8c2 | ||
|
|
a247f7e396 | ||
|
|
03d5047798 | ||
|
|
391b8ece7a | ||
|
|
7d75654cf0 | ||
|
|
6a46ad2b0e | ||
|
|
e413ad216e | ||
|
|
d582005d64 | ||
|
|
02fa07552b | ||
|
|
b032926581 | ||
|
|
189cb66daf | ||
|
|
36f1df58f0 | ||
|
|
8489eda3a6 | ||
|
|
3e189a751d | ||
|
|
b2f6be6d10 | ||
|
|
b656632e86 | ||
|
|
22cf50282c | ||
|
|
7650e15a52 | ||
|
|
235d6ecd2f | ||
|
|
c9a0d4489b | ||
|
|
c6697b82fe | ||
|
|
e0231c7dd5 | ||
|
|
f3bcbf85dd | ||
|
|
7e04f9a5b3 | ||
|
|
1835d490a3 | ||
|
|
36bf94aad9 | ||
|
|
468df062c3 | ||
|
|
544a9212cf | ||
|
|
822f43c5a1 | ||
|
|
85106cb293 | ||
|
|
ebd0fa4809 | ||
|
|
43f4fe2011 | ||
|
|
ffcebdf94a | ||
|
|
0e7b104c76 | ||
|
|
f0b76f244c | ||
|
|
e4dc9103e1 | ||
|
|
afb88122ad | ||
|
|
18a0fa7fb9 | ||
|
|
b491b2b4cd | ||
|
|
4b1e9afe28 | ||
|
|
abb9a56761 | ||
|
|
09505b2005 | ||
|
|
e3a9adbf3f | ||
|
|
9aafed66c0 | ||
|
|
a259aa8419 | ||
|
|
4daf6e127e | ||
|
|
1ac36e932e | ||
|
|
23b038a6a7 | ||
|
|
e2069c8584 | ||
|
|
525cf4652e | ||
|
|
6eb3595294 | ||
|
|
8c421d0726 | ||
|
|
870c69b834 | ||
|
|
4f39307b9b | ||
|
|
b687e339a4 | ||
|
|
8623f2369f | ||
|
|
7eade56042 | ||
|
|
1091c983f9 | ||
|
|
533ca3e601 | ||
|
|
e4b8594d44 | ||
|
|
22e5a53e32 | ||
|
|
6c5f5116b4 | ||
|
|
b5e455ff75 | ||
|
|
03cd5c164f | ||
|
|
c4aa99636e | ||
|
|
ed0eb9be19 | ||
|
|
d155f8ed12 | ||
|
|
ffcfe3cf9c | ||
|
|
d848a15217 | ||
|
|
951f8e9442 | ||
|
|
f10f46b811 | ||
|
|
d7e80a1303 | ||
|
|
de0d6c5891 | ||
|
|
4e7c0122d7 | ||
|
|
cb75e46161 | ||
|
|
6954f5842f | ||
|
|
cbc1cc6b5b | ||
|
|
3cc2cf0783 | ||
|
|
b3e7bcf2e1 | ||
|
|
dd3c33387d | ||
|
|
84a8f11846 | ||
|
|
4d2ba5fc41 | ||
|
|
b980e39ebb | ||
|
|
0dc97dd2d9 | ||
|
|
cef6815e5c | ||
|
|
4e84b7d789 | ||
|
|
f632fa2e50 | ||
|
|
1919440a83 | ||
|
|
1a43dafb2e | ||
|
|
bd54f19bdb | ||
|
|
5f2e98beed | ||
|
|
f7ea0cd254 | ||
|
|
af1ab49219 | ||
|
|
2ac74c5e29 | ||
|
|
fb42df3117 | ||
|
|
443dacaefb | ||
|
|
0d5b3d9018 | ||
|
|
cc75c46b1a | ||
|
|
1ee60f743e | ||
|
|
dc8fd8baef | ||
|
|
67b6884200 | ||
|
|
03a81280f4 | ||
|
|
34675696f3 | ||
|
|
0e1687c853 | ||
|
|
ccf8a8e492 | ||
|
|
a0d0a30ad3 | ||
|
|
ff02801000 | ||
|
|
590ca3892d | ||
|
|
1674486dc0 | ||
|
|
dc5301f8b0 | ||
|
|
436f7eefe9 | ||
|
|
258d4a3fc1 | ||
|
|
c53f6425cd | ||
|
|
fd8bd63f55 | ||
|
|
64b42aef99 | ||
|
|
1d323ddc37 | ||
|
|
c1331df2fe | ||
|
|
cb1946a8d0 | ||
|
|
09c043b11f | ||
|
|
6df3dce95d | ||
|
|
9787f2ed8e | ||
|
|
654f79b42d | ||
|
|
1840120af8 | ||
|
|
b90ac3d629 | ||
|
|
e846420f9d | ||
|
|
87a7fca75c | ||
|
|
a9c07ec770 | ||
|
|
fc2bd8230a | ||
|
|
36c2b7b952 | ||
|
|
fb3f843309 | ||
|
|
12eef87fb0 | ||
|
|
4c066859c4 | ||
|
|
b4716db99d | ||
|
|
07f13de58e | ||
|
|
92bdb06ceb | ||
|
|
256b1aeb59 | ||
|
|
9b20c2a230 | ||
|
|
78c3617749 | ||
|
|
9a041af544 | ||
|
|
8687de6fa2 | ||
|
|
c7a4bb461a | ||
|
|
c96f142709 | ||
|
|
6367375ac6 | ||
|
|
0530e50a04 | ||
|
|
afd05f3c7c | ||
|
|
fff7faab90 | ||
|
|
e4c36c8470 | ||
|
|
11527282c8 | ||
|
|
085764b9a4 | ||
|
|
96e3c3b9ac | ||
|
|
2c9893c524 | ||
|
|
cbf444d5ed | ||
|
|
25e52df136 | ||
|
|
85afd6966c | ||
|
|
724df36bdc | ||
|
|
afb0cdfbaf | ||
|
|
2de4ec6ebe | ||
|
|
70ca670955 | ||
|
|
acea32f618 | ||
|
|
be11f93de7 | ||
|
|
067ec9b2b9 | ||
|
|
398397ca7f | ||
|
|
3599fa2b0c | ||
|
|
f650177758 | ||
|
|
56227b77d2 | ||
|
|
9deaf6bc6d | ||
|
|
0f4d5a7047 | ||
|
|
b82004cf26 | ||
|
|
59a0eba902 | ||
|
|
e979fc86b2 | ||
|
|
b28ba12146 | ||
|
|
4cfd4bec24 | ||
|
|
d9aa4eea38 | ||
|
|
fefe716d2f | ||
|
|
c6c0dc21e2 | ||
|
|
cd6bdb1576 | ||
|
|
9266e919b6 | ||
|
|
116131f0a8 | ||
|
|
7fb644ee3e | ||
|
|
321550d418 | ||
|
|
4234087c34 | ||
|
|
bdac6bc3fa | ||
|
|
524e83c595 | ||
|
|
f9b2f413d7 | ||
|
|
d2f21c4b36 | ||
|
|
95d8d8a42d | ||
|
|
63a2ba032d | ||
|
|
e8ccd265ca | ||
|
|
2c2968fe1a | ||
|
|
2df07f446b | ||
|
|
a906eb951e | ||
|
|
50f3e39b2f | ||
|
|
7c730f7b96 | ||
|
|
7bb19d446d | ||
|
|
8887962d6f | ||
|
|
2f032def09 | ||
|
|
426781a839 | ||
|
|
65b3addfdb | ||
|
|
b104326036 | ||
|
|
74267bbba9 | ||
|
|
5f454bcd6e | ||
|
|
c300bdcac9 | ||
|
|
b85604097d | ||
|
|
89d9585ad8 | ||
|
|
8e992a6979 | ||
|
|
51a4aabc09 | ||
|
|
b423872e66 | ||
|
|
a5ef9fd3cb | ||
|
|
a48686ce11 | ||
|
|
440a68cb9b | ||
|
|
480fd57ea4 | ||
|
|
f07e018fbd | ||
|
|
95a2093dc3 | ||
|
|
e3ec53c3f3 | ||
|
|
6d679f302b | ||
|
|
85fa61768f | ||
|
|
447d1a3997 | ||
|
|
a5520204f5 | ||
|
|
9b8ebe32d4 | ||
|
|
7914ed4147 | ||
|
|
a851dc6bb5 | ||
|
|
c9d9ab9a20 | ||
|
|
84e75c28e5 | ||
|
|
1e6829afc7 | ||
|
|
1d23955868 | ||
|
|
aebe59a69f | ||
|
|
0b125e3299 | ||
|
|
46b4fab4ed | ||
|
|
2d6ca5a347 | ||
|
|
145cf2b482 | ||
|
|
0a94c729e5 | ||
|
|
a31331be0c | ||
|
|
67ab58a99b | ||
|
|
3835824d36 | ||
|
|
02f98accd3 | ||
|
|
d84119ca6a | ||
|
|
c39fb79fda | ||
|
|
d6a5a4023b | ||
|
|
8b0a0269ec | ||
|
|
334493c1be | ||
|
|
71bae99c38 | ||
|
|
3d1ab364dc | ||
|
|
46820eecff | ||
|
|
4bc5f07815 | ||
|
|
c78731e033 | ||
|
|
f063d7ecbd | ||
|
|
f67071708d | ||
|
|
09d7d996cd | ||
|
|
a143d851f2 | ||
|
|
a25f089810 | ||
|
|
862d2a7ee8 | ||
|
|
408ae423c6 | ||
|
|
0e1da96e52 | ||
|
|
d0aa686693 | ||
|
|
317da795ec | ||
|
|
07887e60c5 | ||
|
|
a2a7859a04 | ||
|
|
d69aee25f9 | ||
|
|
87e855086d | ||
|
|
e918521266 | ||
|
|
969a3fd843 | ||
|
|
4adfe5708a | ||
|
|
d270f60c2c | ||
|
|
192f6ef390 | ||
|
|
df552e27d6 | ||
|
|
4850d279f6 | ||
|
|
29896b5ca4 | ||
|
|
710e05b029 | ||
|
|
f627bf9238 | ||
|
|
8a59948fe5 | ||
|
|
5de34a52bd | ||
|
|
511b9551e3 | ||
|
|
8ddaaac244 | ||
|
|
ff0d0a2592 | ||
|
|
919d5eb880 | ||
|
|
2e65f52802 | ||
|
|
048f170727 | ||
|
|
bef915fd56 | ||
|
|
4f493aaf29 | ||
|
|
6b91e28d40 | ||
|
|
895e3eebdd | ||
|
|
2fed9da9fa | ||
|
|
f6641e2ed1 | ||
|
|
e5579871b5 | ||
|
|
e7a68a2ab3 | ||
|
|
0a58d69083 | ||
|
|
ed1915582c | ||
|
|
5ea147efec | ||
|
|
f1c5ba93d3 | ||
|
|
e741b33810 | ||
|
|
044b331d27 | ||
|
|
9f3124793a | ||
|
|
f7c33b5eee | ||
|
|
d1fc809553 | ||
|
|
e305ad124e | ||
|
|
f68458a0f8 | ||
|
|
b33251fc64 | ||
|
|
695e484fd7 | ||
|
|
281c1d1919 | ||
|
|
62ad17011e | ||
|
|
52420a1256 | ||
|
|
9a2ff85669 | ||
|
|
76e0bced60 | ||
|
|
e9cdb26d46 | ||
|
|
e780ba5867 | ||
|
|
e5d77593d1 | ||
|
|
6580f3883b | ||
|
|
5e825b70d2 | ||
|
|
2e13820e28 | ||
|
|
24c06c5492 | ||
|
|
ad8ac601ce | ||
|
|
fc21544cf2 | ||
|
|
a66eae66bb | ||
|
|
af6636b44b | ||
|
|
7ab55a2fe6 | ||
|
|
973cc1195a | ||
|
|
ef849f04a4 | ||
|
|
f1b91625e2 | ||
|
|
1100d8e1cd | ||
|
|
18bcd7e911 | ||
|
|
5a4e3f5acc | ||
|
|
efacf2986f | ||
|
|
1f6255f751 | ||
|
|
79d03c73d7 | ||
|
|
2905a80138 | ||
|
|
5cbab11310 | ||
|
|
51edfb5d61 | ||
|
|
7324c160f8 | ||
|
|
cb6f67f689 | ||
|
|
6cfd1cd070 | ||
|
|
d732b7d691 | ||
|
|
588319478e | ||
|
|
814b9f810b | ||
|
|
f41f2e5d55 | ||
|
|
4d592b1c3b | ||
|
|
1a1de31457 | ||
|
|
38b800981b | ||
|
|
89ef56f131 | ||
|
|
2400f5b91c | ||
|
|
85c3ba0fa3 | ||
|
|
c6822be685 | ||
|
|
cb81b0e53e | ||
|
|
180d776929 | ||
|
|
332f98b3a7 | ||
|
|
08a65a290d | ||
|
|
8bb5301fbb | ||
|
|
51d402fbd5 | ||
|
|
6e5f2f1a49 | ||
|
|
3a73b6cb9e | ||
|
|
64f35f869e | ||
|
|
67d9758ad2 | ||
|
|
bcf4a04409 | ||
|
|
3be5afc08b | ||
|
|
637a8f1efc | ||
|
|
00f9c9ec2e | ||
|
|
722750faeb | ||
|
|
74d10749b7 | ||
|
|
9dd96b05e2 | ||
|
|
e927b35586 | ||
|
|
e1fb9319a0 | ||
|
|
684b7d54b6 | ||
|
|
925997947f | ||
|
|
dcbd86c1f5 | ||
|
|
2f45ee3fe3 | ||
|
|
0d4888111d | ||
|
|
a062dbe321 | ||
|
|
6ab0824532 | ||
|
|
385de5108e | ||
|
|
c25310c491 | ||
|
|
0fb6bc72a4 | ||
|
|
88039a4c83 | ||
|
|
fd1ac28302 | ||
|
|
e8c6a2ad1c | ||
|
|
1ee21c8d3e | ||
|
|
c5388b07f9 | ||
|
|
a165d6d193 | ||
|
|
77f02d81d5 | ||
|
|
fc8620939f | ||
|
|
d319c7ddb8 | ||
|
|
24df444584 | ||
|
|
6984676e7f | ||
|
|
6356cf68f8 | ||
|
|
8ef76590a1 | ||
|
|
724eea5403 | ||
|
|
96cf8dcfac | ||
|
|
5add27a107 | ||
|
|
2683bb6c34 | ||
|
|
8bdce09aec | ||
|
|
a732e926a9 | ||
|
|
2fdec04336 | ||
|
|
3199689772 | ||
|
|
69efd022bd | ||
|
|
1604beb3f8 | ||
|
|
0ad57ef290 | ||
|
|
376c250802 | ||
|
|
cf1191bf0a | ||
|
|
e1a8870dda | ||
|
|
7991b8e8bd | ||
|
|
198d52eca1 | ||
|
|
707c8fbd41 | ||
|
|
299bf7b4da | ||
|
|
1fb1af7132 | ||
|
|
ce2a6d3b2f | ||
|
|
271e14ae5b | ||
|
|
110af7795e | ||
|
|
617b4e2bba | ||
|
|
5f9705cbdb | ||
|
|
54333ccb7b | ||
|
|
5049212af5 | ||
|
|
a5a1f87528 | ||
|
|
f83d57fc0c | ||
|
|
e2f4fc83a2 | ||
|
|
2bb246262c | ||
|
|
ed3cc43e59 | ||
|
|
4c505f58c5 | ||
|
|
47ac6c5dd3 | ||
|
|
e889d0835f | ||
|
|
01ce2211f3 | ||
|
|
ffc39be466 | ||
|
|
dcfada0b81 | ||
|
|
ee03de52b7 | ||
|
|
2fc3a797eb | ||
|
|
419dc355e3 | ||
|
|
ec994a93e7 | ||
|
|
679330ba53 | ||
|
|
87d0f93043 | ||
|
|
7e85f390b3 | ||
|
|
ef18b37fd3 | ||
|
|
ef016bfafc | ||
|
|
9824ef7686 | ||
|
|
2f21e73d8d | ||
|
|
22f4a7a324 | ||
|
|
6bf4966fb3 | ||
|
|
0e552bbcad | ||
|
|
4a6b14caa4 | ||
|
|
519d08cb78 | ||
|
|
e89b4206f9 | ||
|
|
4adbe82e1e | ||
|
|
18b7f71020 | ||
|
|
86e631ae3e | ||
|
|
87bc9b2d25 | ||
|
|
c7b65ac062 | ||
|
|
cb07fc1cb7 | ||
|
|
5f489a33f7 | ||
|
|
a22e3efb64 | ||
|
|
fc51a03a70 | ||
|
|
090a9dfb17 | ||
|
|
ad5000d835 | ||
|
|
abd1651034 | ||
|
|
8d94794cdb | ||
|
|
ab6ffebe20 | ||
|
|
0698aa90b3 | ||
|
|
00deda50ec | ||
|
|
c914d97376 | ||
|
|
b574de32ae | ||
|
|
ab6be7624e | ||
|
|
300ba5a16e | ||
|
|
9da7784b1b | ||
|
|
8b2046a4c4 | ||
|
|
a5b9e40b53 | ||
|
|
6c6dd86c02 | ||
|
|
109a12412a | ||
|
|
10edd13593 | ||
|
|
d7014ce172 | ||
|
|
27aa43f44d | ||
|
|
19e087aa69 | ||
|
|
899218ccf6 | ||
|
|
5fbd5b8804 | ||
|
|
8a564c38e9 | ||
|
|
5758b56296 | ||
|
|
da8c8c271a | ||
|
|
26a0508e03 | ||
|
|
80294f9f37 | ||
|
|
c408825a8d | ||
|
|
5cdc4f5a66 | ||
|
|
d5bc1a0acb | ||
|
|
0f8ae1e345 | ||
|
|
6bcd13f30c | ||
|
|
a330ecf24d | ||
|
|
8df3bf38cd | ||
|
|
9e1f72df94 | ||
|
|
b615a6105a | ||
|
|
5c9595f4a6 | ||
|
|
efa8aa297d | ||
|
|
47b45d2a53 | ||
|
|
cf3eae1311 | ||
|
|
f197077e78 | ||
|
|
0240be755a | ||
|
|
0c69024f7a | ||
|
|
15be25a382 | ||
|
|
3047cc2570 | ||
|
|
4369cb61fe | ||
|
|
04c4674582 | ||
|
|
504ef84da3 | ||
|
|
8cc564da96 | ||
|
|
2abc69fd7c | ||
|
|
87d0498c23 | ||
|
|
ecb3893370 | ||
|
|
f974d90eaa | ||
|
|
6a4e06873b | ||
|
|
3b235efd3f | ||
|
|
2f8436e131 | ||
|
|
e801951820 | ||
|
|
2b61e65bf5 | ||
|
|
f5fe552cd9 | ||
|
|
6b529d0f7e | ||
|
|
4c3ad827c5 | ||
|
|
6b09e18948 | ||
|
|
9103a00f20 | ||
|
|
7a7588f8d9 | ||
|
|
7ee0068ff0 | ||
|
|
9b586b2ae2 | ||
|
|
09f7879c83 | ||
|
|
d80e27f989 | ||
|
|
45f9e53f10 | ||
|
|
e2d11cb59b | ||
|
|
d0b923339d | ||
|
|
9deb6182d0 | ||
|
|
4c4e870c67 | ||
|
|
167c8c23a0 | ||
|
|
3f3b481654 | ||
|
|
0fa870ea40 | ||
|
|
2b3b551898 | ||
|
|
ad4d97c17e | ||
|
|
c941105502 | ||
|
|
174743cdb6 | ||
|
|
a752ad0cbc | ||
|
|
477e33eb81 | ||
|
|
052268f052 | ||
|
|
27294f125d | ||
|
|
d235f4be41 | ||
|
|
e80c634bd1 | ||
|
|
37f33778e1 | ||
|
|
c540fdd11f | ||
|
|
e7f9e98f0a | ||
|
|
253586fc79 | ||
|
|
ec43dbd82d | ||
|
|
f07998d6a6 | ||
|
|
9d0c99a17b | ||
|
|
58992eb893 | ||
|
|
a471670a91 | ||
|
|
96e1d25ca4 | ||
|
|
d4bb88dbfe | ||
|
|
bbc2277bae | ||
|
|
d54861a9d0 | ||
|
|
a5d98a32b6 | ||
|
|
b3dc2cdcd4 | ||
|
|
a2ea2239da | ||
|
|
5e56a66171 | ||
|
|
fa0674a657 | ||
|
|
2eb2b07f8f | ||
|
|
b7f15986ad | ||
|
|
3e0cdde714 | ||
|
|
3334f1b709 | ||
|
|
29e080da71 | ||
|
|
927cd60d41 | ||
|
|
7c5cb5b7f7 | ||
|
|
9f84f7215c | ||
|
|
14fd296aa2 | ||
|
|
470f94f6e1 | ||
|
|
9bfd33320e | ||
|
|
f7a2693952 | ||
|
|
d573447d64 | ||
|
|
ccd7d29501 | ||
|
|
291699fb9b | ||
|
|
056e0f8aa7 | ||
|
|
45ed583d46 | ||
|
|
54a2131b20 | ||
|
|
a4bbb6c88b | ||
|
|
e6c2ceb931 | ||
|
|
c43ec4a56d | ||
|
|
b871cc4e09 | ||
|
|
6aec729b6a | ||
|
|
025625e0b9 | ||
|
|
0963aee137 | ||
|
|
5c5bc243d2 | ||
|
|
0d0af32b85 | ||
|
|
46c2d2e916 | ||
|
|
ff6d0f0e1b | ||
|
|
86ca092f18 | ||
|
|
ec3d642cee | ||
|
|
7489d70c95 | ||
|
|
81bb5404cb | ||
|
|
a0155beb83 | ||
|
|
c2f8e92b10 | ||
|
|
7ae0142dff | ||
|
|
780b74fc56 | ||
|
|
78bc14348d | ||
|
|
52bc0f1a17 | ||
|
|
c52c24c3f2 | ||
|
|
0d9277bf6a | ||
|
|
761797dc24 | ||
|
|
39a560c394 | ||
|
|
b4f01da8d8 | ||
|
|
f7ca1efdb8 | ||
|
|
1b4ed339d6 | ||
|
|
5af89e0124 | ||
|
|
1fddbf1cca | ||
|
|
1cd1a23c80 | ||
|
|
b987ec6a8a | ||
|
|
f509026815 | ||
|
|
557b658146 | ||
|
|
e3c4960622 | ||
|
|
350b4307dc | ||
|
|
762ca47a59 | ||
|
|
79b83ba494 | ||
|
|
51f5155a1a | ||
|
|
d0b3124813 | ||
|
|
29128dd014 | ||
|
|
9e8f5809c3 | ||
|
|
7e2001744c | ||
|
|
f5b83efade | ||
|
|
aedb9d2ae1 | ||
|
|
5ccd28d84d | ||
|
|
3320888fc8 | ||
|
|
456e9bf357 | ||
|
|
275a757eb7 | ||
|
|
d51d170891 | ||
|
|
87d138740f | ||
|
|
625f165a63 | ||
|
|
8421ed0ae9 | ||
|
|
2a03eb323d | ||
|
|
cac6a9cd53 | ||
|
|
a148b8fdcb | ||
|
|
d635e8a978 | ||
|
|
7aadd38934 | ||
|
|
b63b11982b | ||
|
|
88a4d2ed80 | ||
|
|
26bdef7ddd | ||
|
|
db0ffba8ed | ||
|
|
a274a214b4 | ||
|
|
bbcfa3c75a | ||
|
|
89229d65f1 | ||
|
|
0e75cde409 | ||
|
|
42fa6dfaff | ||
|
|
400143c84d | ||
|
|
e915945880 | ||
|
|
ca6673e98f | ||
|
|
479f3dccff | ||
|
|
9601ebab20 | ||
|
|
c272d8a8c2 | ||
|
|
b344ab3377 | ||
|
|
ae3080b031 | ||
|
|
f0464331cb | ||
|
|
0648b618bf | ||
|
|
59282b8c70 | ||
|
|
34a86009ce | ||
|
|
0ad9ae9001 | ||
|
|
a296e1e772 | ||
|
|
7f53d8b161 | ||
|
|
fbd8bbd4a8 | ||
|
|
3da52b350f | ||
|
|
243d6827d4 | ||
|
|
00221f9bd9 | ||
|
|
a6171ae405 | ||
|
|
be5d01a797 | ||
|
|
e5d9d324bf | ||
|
|
c34dee9d96 | ||
|
|
e5a98aab41 | ||
|
|
10cd35372b | ||
|
|
ad4515be39 | ||
|
|
ff4d87dd6b | ||
|
|
8ddde3f9da | ||
|
|
51093dc3a5 | ||
|
|
5d5db9ad9f | ||
|
|
fca808fe0d | ||
|
|
07d14f877b | ||
|
|
5ea6dccdd4 | ||
|
|
ac956a5c02 | ||
|
|
1fba09cf94 | ||
|
|
0baa6b875e | ||
|
|
cdacc2d4d4 | ||
|
|
1433541947 | ||
|
|
1070ca7ace | ||
|
|
56fa27dd7e | ||
|
|
d87b522bc6 | ||
|
|
166cb03782 | ||
|
|
40bad84c48 | ||
|
|
c3786d9d64 | ||
|
|
9080e3124b | ||
|
|
d9c536124a | ||
|
|
7de6b2907e | ||
|
|
75f017e9f8 | ||
|
|
7757ab3ea0 | ||
|
|
3186dd383c | ||
|
|
45f751c9c6 | ||
|
|
e4d3774980 | ||
|
|
eedb3ce05d | ||
|
|
6a7d38c0fd | ||
|
|
7f9967834d | ||
|
|
31ccbfcd19 | ||
|
|
c2abf90cc4 | ||
|
|
8dc4735248 | ||
|
|
d940d9f11d | ||
|
|
1e0c75c6c7 | ||
|
|
fbaa17bc40 | ||
|
|
38e3cd6197 | ||
|
|
3bb9961af4 | ||
|
|
da8088fd8d | ||
|
|
748a65f671 | ||
|
|
66d80136bd | ||
|
|
10386311d4 | ||
|
|
629a7f8130 | ||
|
|
81189bb2cc | ||
|
|
e5681a50f2 | ||
|
|
69fe4569e3 | ||
|
|
faedb0a49e | ||
|
|
c7caf66f9c | ||
|
|
14504f4a94 | ||
|
|
5b601a4016 | ||
|
|
e3207b921a | ||
|
|
d148255917 | ||
|
|
98db8e61a5 | ||
|
|
45aa75e8bb | ||
|
|
b2471d45b2 | ||
|
|
11e2df8c76 | ||
|
|
cba6852655 | ||
|
|
5eeaedde26 | ||
|
|
b63052dbaa | ||
|
|
29f5bc798e | ||
|
|
04603acbb9 | ||
|
|
bc6890055e | ||
|
|
ea94c09c78 | ||
|
|
00b1d3c51c | ||
|
|
e3c3bc78fc | ||
|
|
a11d390dcd | ||
|
|
7c74a961d4 | ||
|
|
5db21ad2ca | ||
|
|
b68c963b5e | ||
|
|
a43070f812 | ||
|
|
f703dabdfe | ||
|
|
237d3eea4b | ||
|
|
e009316bfb | ||
|
|
5528efd2d2 | ||
|
|
818bdec130 | ||
|
|
09f91735fe | ||
|
|
d9fc18547b | ||
|
|
d257cf2c77 | ||
|
|
079f46404f | ||
|
|
f6b5ab040c | ||
|
|
86ddf3078d | ||
|
|
bc4fe19bdb | ||
|
|
edcc73e934 | ||
|
|
5905ca3e92 | ||
|
|
bb259b128a | ||
|
|
bc7ac8523b | ||
|
|
0c4c2b7231 | ||
|
|
420351c093 | ||
|
|
f69e6b89c5 | ||
|
|
c3e22e4b23 | ||
|
|
32b7b7f40d | ||
|
|
1d443531fd | ||
|
|
54e5a68730 | ||
|
|
880c95d92b | ||
|
|
40956c5335 | ||
|
|
44aba08978 | ||
|
|
e7da6dd79e | ||
|
|
8bf78aa880 | ||
|
|
1c44165181 | ||
|
|
8165ec0e3d | ||
|
|
7d1ec5b82a | ||
|
|
02e7fb1ee0 | ||
|
|
c0ea6943e1 | ||
|
|
4c914a2d48 | ||
|
|
0ee86f2dd4 | ||
|
|
00bf3c7f47 | ||
|
|
b61e18d10e | ||
|
|
90b2607f86 | ||
|
|
e452697088 | ||
|
|
1988443497 | ||
|
|
3f33627f00 | ||
|
|
0610612ae6 | ||
|
|
efcf78bb95 | ||
|
|
03678e79a5 | ||
|
|
c15a364496 | ||
|
|
d8ec713dc5 | ||
|
|
daaa7311a0 | ||
|
|
f893af1930 | ||
|
|
6ec413c516 | ||
|
|
a2a0d88a81 | ||
|
|
7a4dca9589 | ||
|
|
b21cd12cea | ||
|
|
ec0b726751 | ||
|
|
9ec1c8fdae | ||
|
|
a9f2b4ad9a | ||
|
|
9cb3a21e5a | ||
|
|
3231ffb343 | ||
|
|
8d7f1738cf | ||
|
|
60d4dd87fd | ||
|
|
3a7eeda70e | ||
|
|
712146e028 | ||
|
|
9101214e66 | ||
|
|
f381d536d6 | ||
|
|
d8d5f3b93c | ||
|
|
1d4dc47a62 | ||
|
|
482c300b72 | ||
|
|
59774ccbb5 | ||
|
|
fcb6c9b8d9 | ||
|
|
69ad995ba9 | ||
|
|
0b26ec1132 | ||
|
|
3de494c80f | ||
|
|
c6b2e2f21e | ||
|
|
2eac97c1a9 | ||
|
|
b4b0e10f29 | ||
|
|
7deb25dd1c | ||
|
|
7a29ae1a83 | ||
|
|
6da893128c | ||
|
|
2cb458af2d | ||
|
|
04db38d627 | ||
|
|
a144b03361 | ||
|
|
9c89a9a47e | ||
|
|
007af71bb2 | ||
|
|
7cfe8f4214 | ||
|
|
24f8e66953 | ||
|
|
90fc6d901f | ||
|
|
38d9db4a90 | ||
|
|
a216d1cc81 | ||
|
|
f8395c11b5 | ||
|
|
2b0e46ed38 | ||
|
|
5f3b243265 | ||
|
|
c9ce2d18bf | ||
|
|
7b563ba66c | ||
|
|
6a679ff78c | ||
|
|
3e1be70923 | ||
|
|
aadd7df6c6 | ||
|
|
aba3f21020 | ||
|
|
8206132a37 | ||
|
|
f8b3fd2e14 | ||
|
|
fede19fd11 | ||
|
|
8b17ee72ff | ||
|
|
0508858859 | ||
|
|
3fa8dbf112 | ||
|
|
77ae4703b3 | ||
|
|
31ed473999 | ||
|
|
673805a7f4 | ||
|
|
91422449e9 | ||
|
|
438089a1cd | ||
|
|
6a186d1d7e | ||
|
|
9d831a2569 | ||
|
|
d47cf1a54e | ||
|
|
8c9f669e72 | ||
|
|
f5bda11797 | ||
|
|
1841a75fec | ||
|
|
34cdaeec93 | ||
|
|
3230fb9e48 | ||
|
|
888b4e22c0 | ||
|
|
534ce5a8ec | ||
|
|
c2b9ac57dc | ||
|
|
2783361325 | ||
|
|
46d35131d7 | ||
|
|
3b95154c04 | ||
|
|
e840b9617f | ||
|
|
19ee603413 | ||
|
|
1a6b918853 | ||
|
|
bc22605a25 | ||
|
|
f3d28add1c | ||
|
|
a28bfa1175 | ||
|
|
4e4a48283d | ||
|
|
63d260a6f8 | ||
|
|
7a761d00ce | ||
|
|
968be6a99a | ||
|
|
9b4a63b4a8 | ||
|
|
03404eb3f1 | ||
|
|
ff1a970982 | ||
|
|
ed890b4d84 | ||
|
|
e87003cc41 | ||
|
|
bc06037843 | ||
|
|
a502c365e5 | ||
|
|
c4c7cebfc5 | ||
|
|
f18bcd2995 | ||
|
|
a6a1b6ac53 | ||
|
|
fdacd8b543 | ||
|
|
3d1de9a0c7 | ||
|
|
b2b3fa5949 | ||
|
|
86ecf69820 | ||
|
|
8c3da4e43c | ||
|
|
06b955dceb | ||
|
|
e75d15146c | ||
|
|
cb07384c9f | ||
|
|
fc9e502539 | ||
|
|
fcbf3388c0 | ||
|
|
899bea940f | ||
|
|
14b7509607 | ||
|
|
8f537a8fda | ||
|
|
01b9ff6b47 | ||
|
|
2609663d3e | ||
|
|
25668e8df0 | ||
|
|
fd89241611 | ||
|
|
a69118c5d3 | ||
|
|
5accd0e2b4 | ||
|
|
df5ad61cd2 | ||
|
|
4a7674eb29 | ||
|
|
5a458287f4 | ||
|
|
5921f9f6b5 | ||
|
|
4c73a63ae8 | ||
|
|
42b1c921a8 | ||
|
|
fab3334b1e | ||
|
|
7239dd3ade | ||
|
|
dd4c8eb649 | ||
|
|
76a29bdc8a | ||
|
|
06d708f3ea | ||
|
|
e2f70cbc19 | ||
|
|
9d54e47a03 | ||
|
|
5345ba8ff8 | ||
|
|
faccdf581e | ||
|
|
515ed5aabd | ||
|
|
1a64714a54 | ||
|
|
3ba6792a85 | ||
|
|
c32a7f1d62 | ||
|
|
12e068a3d1 | ||
|
|
10e75f30e6 | ||
|
|
20eac19c4f | ||
|
|
8c0765a2c7 | ||
|
|
8268599893 | ||
|
|
7a1f88e813 | ||
|
|
3420f14c8a | ||
|
|
9bf05973bd | ||
|
|
86277dfbfe | ||
|
|
4839e464c6 | ||
|
|
dc2ad071a9 | ||
|
|
65e49992f9 | ||
|
|
afbb9ae92d | ||
|
|
ff088142d9 | ||
|
|
93b7cf346b | ||
|
|
f0edeadd50 | ||
|
|
cea4d05bc4 | ||
|
|
8ee9b84488 | ||
|
|
e3648f5373 | ||
|
|
facd3a9d81 | ||
|
|
84969cb481 | ||
|
|
6d521e77db | ||
|
|
82c49f8f49 | ||
|
|
e074309da1 | ||
|
|
2d622a5f39 | ||
|
|
d51d20e84c | ||
|
|
2ccdef9dc5 | ||
|
|
42e62a30bf | ||
|
|
0b7208784b | ||
|
|
c233c607fa | ||
|
|
462cb930f7 | ||
|
|
059ccbdab6 | ||
|
|
2c0f920422 | ||
|
|
5ee26065ca | ||
|
|
550a4e8d50 | ||
|
|
99b8221efc | ||
|
|
19e74c30f8 | ||
|
|
26693a4c98 | ||
|
|
d8bdb69a7c | ||
|
|
6d357a74e1 | ||
|
|
73f4e4814c | ||
|
|
312bc4be15 | ||
|
|
a0c3ba449a | ||
|
|
d5a2a7f3f0 | ||
|
|
eda8c94def | ||
|
|
9a8e80e149 | ||
|
|
6a7e3d739d | ||
|
|
e6b8274813 | ||
|
|
9783520c62 | ||
|
|
7e7f0bc37f | ||
|
|
75eaf8c3d4 | ||
|
|
b9e2ecdffa | ||
|
|
f1c021a474 | ||
|
|
6fda54ffa1 | ||
|
|
bdb0adc16c | ||
|
|
4b19b0ea14 | ||
|
|
fab1b4dd0f | ||
|
|
f3ed3075cf | ||
|
|
742af36b93 | ||
|
|
c573b5fbb2 | ||
|
|
2d6d4af594 | ||
|
|
1e8fcd794f | ||
|
|
2dcfad979c | ||
|
|
726329c4bf | ||
|
|
2d01f3f0f4 | ||
|
|
2a595c0fd7 | ||
|
|
ba7e35649e | ||
|
|
5f9866c9e8 | ||
|
|
6365378947 | ||
|
|
cda4a870b7 | ||
|
|
b3a8564365 | ||
|
|
1e0114a4cf | ||
|
|
3a6e95ef05 | ||
|
|
78f1cf88e0 | ||
|
|
4877436877 | ||
|
|
78d238fdfb | ||
|
|
1b43124756 | ||
|
|
6875263743 | ||
|
|
eac828f323 | ||
|
|
1635d6f649 | ||
|
|
a1feb3fddf | ||
|
|
2da535e9ff | ||
|
|
024328bf8b | ||
|
|
d90fa1a1e8 | ||
|
|
a98be44a40 | ||
|
|
6210ac2ee6 | ||
|
|
3e817d4fb0 | ||
|
|
80d7e34bf1 | ||
|
|
cfebab0488 | ||
|
|
eacd766359 | ||
|
|
8fb8f8ff58 | ||
|
|
f4b22816a2 | ||
|
|
8ab69c919b | ||
|
|
99531bcfa0 | ||
|
|
6bd516d4f2 | ||
|
|
1029a464d7 | ||
|
|
fd8b8e03ea | ||
|
|
1a1d771e1b | ||
|
|
050fcf7c6e | ||
|
|
41cf66a943 | ||
|
|
1c57c9a012 | ||
|
|
8ccab66120 | ||
|
|
e2b2f7ec9c | ||
|
|
b3c897bf0f | ||
|
|
87c9f54c8b | ||
|
|
df56b76ab6 | ||
|
|
28ff13db11 | ||
|
|
2957075769 | ||
|
|
a6477824a8 | ||
|
|
aa6d453d5b | ||
|
|
112c78e50b | ||
|
|
17431f5ac0 | ||
|
|
41ec7fb668 | ||
|
|
b19bf2fd26 | ||
|
|
c5f7477521 | ||
|
|
8708f02fe0 | ||
|
|
752fb2bc4a | ||
|
|
6efb78ecf9 | ||
|
|
75c1970aef | ||
|
|
c2583518d7 | ||
|
|
14323e7964 | ||
|
|
aadeae3201 | ||
|
|
b72e8aed02 | ||
|
|
39db9b1bd7 | ||
|
|
8792871387 | ||
|
|
68a593af7b | ||
|
|
0820cc3e9a | ||
|
|
b1ba9a1315 | ||
|
|
17c2321a82 | ||
|
|
0affc8a942 | ||
|
|
ce36ea4109 | ||
|
|
991a199d06 | ||
|
|
39ce4323a1 | ||
|
|
7c29a3d1d8 | ||
|
|
d9fcd290d9 | ||
|
|
90bc20575a | ||
|
|
cb268f505a | ||
|
|
dfd93b836b | ||
|
|
9d045f65d2 | ||
|
|
05939b02c5 | ||
|
|
28e9c66675 | ||
|
|
aa91638fe4 | ||
|
|
c0520d6a31 | ||
|
|
1c0cd176a1 | ||
|
|
1018ae387a | ||
|
|
065fc54f73 | ||
|
|
1ba6e3280c | ||
|
|
3a6f50dfea | ||
|
|
d711f99548 | ||
|
|
07ace80871 | ||
|
|
93c6277bfc | ||
|
|
7ac9d05ae2 | ||
|
|
95fb13f58b | ||
|
|
4eb2931cb8 | ||
|
|
5326015a48 | ||
|
|
fcbe319470 | ||
|
|
5ad21c88b2 | ||
|
|
5a4b31ccc0 | ||
|
|
fb568aab39 | ||
|
|
64416de10d | ||
|
|
46953cb639 | ||
|
|
7e68a235ee | ||
|
|
3a9c1d557b | ||
|
|
85f2285ac0 | ||
|
|
70e0979836 | ||
|
|
08bdd9c8c7 | ||
|
|
1f80c3366e | ||
|
|
886b606093 | ||
|
|
b70510b614 | ||
|
|
6db9a227b1 | ||
|
|
a819eb921d | ||
|
|
6fb5b83249 | ||
|
|
95830fafdf | ||
|
|
af4317a7f9 | ||
|
|
5edd7d5467 | ||
|
|
60d2cb5bc1 | ||
|
|
f26e3d27c4 | ||
|
|
d68b03bb91 | ||
|
|
e7062ce01e | ||
|
|
31dab6ca09 | ||
|
|
1498bf17bb | ||
|
|
1cafe23bd0 | ||
|
|
25290df798 | ||
|
|
20ca48e365 | ||
|
|
78dfb03b8e | ||
|
|
19e66a1c32 | ||
|
|
a1f71153c8 | ||
|
|
b1d260d98c | ||
|
|
a81aafefe0 | ||
|
|
454330e360 | ||
|
|
995159b365 | ||
|
|
fd1a33e9d2 | ||
|
|
e9615bc3aa | ||
|
|
b1b1597686 | ||
|
|
bc2eb65c0a | ||
|
|
7baa7ca8a1 | ||
|
|
9bbc73b48c | ||
|
|
b07a379ee1 | ||
|
|
af2c6174e8 | ||
|
|
6e5444709d | ||
|
|
831aa43f0e | ||
|
|
50a8592e5e | ||
|
|
cb7b6ef5cd | ||
|
|
b7c72d1607 | ||
|
|
cb2747528b | ||
|
|
52ad4ad2c9 | ||
|
|
93c81089f6 | ||
|
|
d7d23a7a93 | ||
|
|
5525e35d1a | ||
|
|
cdd7856ba0 | ||
|
|
7a6de46b17 | ||
|
|
1fcccc674a | ||
|
|
c0e6b5556d | ||
|
|
8aa2a7e44e | ||
|
|
0303d999ed | ||
|
|
914a817ddb | ||
|
|
4873e523a9 | ||
|
|
672ef518e2 | ||
|
|
d22cb150f6 | ||
|
|
8605b4f11f | ||
|
|
20eb661fb0 | ||
|
|
fad1ca2b6e | ||
|
|
747a687fe5 | ||
|
|
e34c63382c | ||
|
|
4b5c744ba5 | ||
|
|
932738f98e | ||
|
|
1426b00e83 | ||
|
|
e724409b58 | ||
|
|
9cf828e9a4 | ||
|
|
41408fb609 | ||
|
|
4c21e32838 | ||
|
|
385f3ea402 | ||
|
|
8d6d8cab18 | ||
|
|
01615f824a | ||
|
|
c6779ddc90 | ||
|
|
46eff65435 | ||
|
|
cb0dfa50b3 | ||
|
|
2429e6019c | ||
|
|
e0bb48b0c7 | ||
|
|
a38b0dbc79 | ||
|
|
73065ab48a | ||
|
|
bd07c96504 | ||
|
|
dc4033875a | ||
|
|
130794c538 | ||
|
|
b1743f0b1c | ||
|
|
33492c9131 | ||
|
|
d434778a82 | ||
|
|
4c6cc9b3e0 | ||
|
|
6aaeddb7e9 | ||
|
|
1685a13994 | ||
|
|
54633dd6db | ||
|
|
510f163e5b | ||
|
|
ee4779da73 | ||
|
|
28e98259f6 | ||
|
|
8e6a17cd0c | ||
|
|
17b314ea3a | ||
|
|
cbde36e9e0 | ||
|
|
6fc20924bd | ||
|
|
381b8064fc | ||
|
|
fc1a3ff7dc | ||
|
|
5fd3d13cfe | ||
|
|
1b38822459 | ||
|
|
8b7ecc430b | ||
|
|
d9d7a08fd6 | ||
|
|
2383c00bb9 | ||
|
|
dcce738d53 | ||
|
|
0daa3e0685 | ||
|
|
82bc402216 | ||
|
|
ff70e9694b | ||
|
|
e06daa349c | ||
|
|
525d0eda30 | ||
|
|
e9e85b44c9 | ||
|
|
13aa693da1 | ||
|
|
f8afa7fc57 | ||
|
|
2f6a66a2ce | ||
|
|
b4674a9120 | ||
|
|
d76eb1153b | ||
|
|
0934c0014d | ||
|
|
19da3e1390 | ||
|
|
2654b2e446 | ||
|
|
61d0ae5257 | ||
|
|
ebea6a8f50 | ||
|
|
f0b3baaf3f | ||
|
|
956837d3f3 | ||
|
|
be45938b51 | ||
|
|
663f9ecc52 | ||
|
|
b80f96fa5e | ||
|
|
b7dea6817c | ||
|
|
c6cd5fcf93 | ||
|
|
177b96b453 | ||
|
|
292f66a774 | ||
|
|
8c837f9f64 | ||
|
|
85f97ae552 | ||
|
|
7ca0d10eb0 | ||
|
|
ca8aed1f2b | ||
|
|
a5f27d0d35 | ||
|
|
ce7ff0d14f | ||
|
|
d08571e862 | ||
|
|
b32d63fcda | ||
|
|
54d9d5e2f3 | ||
|
|
e713210030 | ||
|
|
c057bf18f6 | ||
|
|
17a0bef824 | ||
|
|
9180c48b67 | ||
|
|
01acbe08f5 | ||
|
|
8a47cd4821 | ||
|
|
03050d9b07 | ||
|
|
9178878880 | ||
|
|
f38b1c7af9 | ||
|
|
45cd958b1e | ||
|
|
4d49c8f030 | ||
|
|
b2227ce37b | ||
|
|
a4694462ed | ||
|
|
f404b0e936 | ||
|
|
2df1e94fb3 | ||
|
|
acd0d7c343 | ||
|
|
1e8a7f09dd | ||
|
|
b65d50a9c7 | ||
|
|
909b4b6cfe | ||
|
|
2fbc238ecc | ||
|
|
7c73024919 | ||
|
|
0d85aa1644 | ||
|
|
df16acc4af | ||
|
|
7ad0c23704 | ||
|
|
e85e0322e3 | ||
|
|
1a6a31c857 | ||
|
|
65b09c6802 | ||
|
|
148dae32d5 | ||
|
|
9c116fa3d6 | ||
|
|
2eba014203 | ||
|
|
37d022251e | ||
|
|
04cc1da4d9 | ||
|
|
56bba90fdb | ||
|
|
a95841b0e9 | ||
|
|
9c6be9e87c | ||
|
|
7c830786ef | ||
|
|
9eb9047249 | ||
|
|
f7847b7767 | ||
|
|
ae720e4966 | ||
|
|
3b77bc99b6 | ||
|
|
b69a0c245e | ||
|
|
14bcef4c0e | ||
|
|
a23fe74cdc | ||
|
|
7b48f71dec | ||
|
|
c334c1f636 | ||
|
|
8572ff273f | ||
|
|
e6ddc71c75 | ||
|
|
81a0f9193d |
No files matched your search
@@ -1 +1,11 @@
|
||||
IndentWidth: 3
|
||||
BinPackArguments: true
|
||||
BinPackParameters: false
|
||||
AlignAfterOpenBracket: AlwaysBreak
|
||||
AlwaysBreakTemplateDeclarations: true
|
||||
PenaltyReturnTypeOnItsOwnLine: 140
|
||||
ReflowComments: false
|
||||
---
|
||||
Language: Proto
|
||||
IndentWidth: 2
|
||||
AllowShortFunctionsOnASingleLine: None
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"version": 1,
|
||||
"isRoot": true,
|
||||
"tools": {
|
||||
"dotnet-format": {
|
||||
"version": "5.1.225507",
|
||||
"commands": [
|
||||
"dotnet-format"
|
||||
]
|
||||
},
|
||||
"fable": {
|
||||
"version": "4.0.6",
|
||||
"commands": [
|
||||
"fable"
|
||||
]
|
||||
},
|
||||
"fantomas": {
|
||||
"version": "5.2.2",
|
||||
"commands": [
|
||||
"fantomas"
|
||||
]
|
||||
},
|
||||
"fake-cli": {
|
||||
"version": "6.0.0",
|
||||
"commands": [
|
||||
"fake"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
+251
@@ -0,0 +1,251 @@
|
||||
# Remove the line below if you want to inherit .editorconfig settings from higher directories
|
||||
root = true
|
||||
|
||||
# C# files
|
||||
[*.cs]
|
||||
|
||||
#### Core EditorConfig Options ####
|
||||
|
||||
# Indentation and spacing
|
||||
indent_size = 3
|
||||
indent_style = space
|
||||
tab_width = 3
|
||||
|
||||
# New line preferences
|
||||
end_of_line = crlf
|
||||
insert_final_newline = true
|
||||
|
||||
#### .NET Coding Conventions ####
|
||||
|
||||
# Organize usings
|
||||
dotnet_separate_import_directive_groups = true
|
||||
dotnet_sort_system_directives_first = false
|
||||
file_header_template = unset
|
||||
|
||||
# this. and Me. preferences
|
||||
dotnet_style_qualification_for_event = false:silent
|
||||
dotnet_style_qualification_for_field = false:silent
|
||||
dotnet_style_qualification_for_method = false:silent
|
||||
dotnet_style_qualification_for_property = false:silent
|
||||
|
||||
# Language keywords vs BCL types preferences
|
||||
dotnet_style_predefined_type_for_locals_parameters_members = true:silent
|
||||
dotnet_style_predefined_type_for_member_access = true:silent
|
||||
|
||||
# Parentheses preferences
|
||||
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent
|
||||
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
|
||||
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent
|
||||
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
|
||||
|
||||
# Modifier preferences
|
||||
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent
|
||||
|
||||
# Expression-level preferences
|
||||
dotnet_style_coalesce_expression = true:suggestion
|
||||
dotnet_style_collection_initializer = true:suggestion
|
||||
dotnet_style_explicit_tuple_names = true:suggestion
|
||||
dotnet_style_null_propagation = true:suggestion
|
||||
dotnet_style_object_initializer = true:suggestion
|
||||
dotnet_style_operator_placement_when_wrapping = beginning_of_line
|
||||
dotnet_style_prefer_auto_properties = true:silent
|
||||
dotnet_style_prefer_compound_assignment = true:suggestion
|
||||
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
|
||||
dotnet_style_prefer_conditional_expression_over_return = true:silent
|
||||
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
|
||||
dotnet_style_prefer_inferred_tuple_names = true:suggestion
|
||||
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
|
||||
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
|
||||
dotnet_style_prefer_simplified_interpolation = true:suggestion
|
||||
|
||||
# Field preferences
|
||||
dotnet_style_readonly_field = true:suggestion
|
||||
|
||||
# Parameter preferences
|
||||
dotnet_code_quality_unused_parameters = all:suggestion
|
||||
|
||||
# Suppression preferences
|
||||
dotnet_remove_unnecessary_suppression_exclusions = none
|
||||
|
||||
#### C# Coding Conventions ####
|
||||
|
||||
# var preferences
|
||||
csharp_style_var_elsewhere = false:silent
|
||||
csharp_style_var_for_built_in_types = false:silent
|
||||
csharp_style_var_when_type_is_apparent = false:silent
|
||||
|
||||
# Expression-bodied members
|
||||
csharp_style_expression_bodied_accessors = true:silent
|
||||
csharp_style_expression_bodied_constructors = false:silent
|
||||
csharp_style_expression_bodied_indexers = true:silent
|
||||
csharp_style_expression_bodied_lambdas = true:silent
|
||||
csharp_style_expression_bodied_local_functions = false:silent
|
||||
csharp_style_expression_bodied_methods = false:silent
|
||||
csharp_style_expression_bodied_operators = false:silent
|
||||
csharp_style_expression_bodied_properties = true:silent
|
||||
|
||||
# Pattern matching preferences
|
||||
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
|
||||
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
|
||||
csharp_style_prefer_not_pattern = true:suggestion
|
||||
csharp_style_prefer_pattern_matching = true:silent
|
||||
csharp_style_prefer_switch_expression = true:suggestion
|
||||
|
||||
# Null-checking preferences
|
||||
csharp_style_conditional_delegate_call = true:suggestion
|
||||
|
||||
# Modifier preferences
|
||||
csharp_prefer_static_local_function = true:suggestion
|
||||
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent
|
||||
|
||||
# Code-block preferences
|
||||
csharp_prefer_braces = true:silent
|
||||
csharp_prefer_simple_using_statement = true:suggestion
|
||||
|
||||
# Expression-level preferences
|
||||
csharp_prefer_simple_default_expression = true:suggestion
|
||||
csharp_style_deconstructed_variable_declaration = true:suggestion
|
||||
csharp_style_inlined_variable_declaration = true:suggestion
|
||||
csharp_style_pattern_local_over_anonymous_function = true:suggestion
|
||||
csharp_style_prefer_index_operator = true:suggestion
|
||||
csharp_style_prefer_range_operator = true:suggestion
|
||||
csharp_style_throw_expression = true:suggestion
|
||||
csharp_style_unused_value_assignment_preference = discard_variable:suggestion
|
||||
csharp_style_unused_value_expression_statement_preference = discard_variable:silent
|
||||
|
||||
# 'using' directive preferences
|
||||
csharp_using_directive_placement = inside_namespace:silent
|
||||
|
||||
#### C# Formatting Rules ####
|
||||
|
||||
# New line preferences
|
||||
csharp_new_line_before_catch = false
|
||||
csharp_new_line_before_else = false
|
||||
csharp_new_line_before_finally = false
|
||||
csharp_new_line_before_members_in_anonymous_types = true
|
||||
csharp_new_line_before_members_in_object_initializers = true
|
||||
csharp_new_line_before_open_brace = none
|
||||
csharp_new_line_between_query_expression_clauses = true
|
||||
|
||||
# Indentation preferences
|
||||
csharp_indent_block_contents = true
|
||||
csharp_indent_braces = false
|
||||
csharp_indent_case_contents = true
|
||||
csharp_indent_case_contents_when_block = true
|
||||
csharp_indent_labels = one_less_than_current
|
||||
csharp_indent_switch_labels = true
|
||||
|
||||
# Space preferences
|
||||
csharp_space_after_cast = false
|
||||
csharp_space_after_colon_in_inheritance_clause = true
|
||||
csharp_space_after_comma = true
|
||||
csharp_space_after_dot = false
|
||||
csharp_space_after_keywords_in_control_flow_statements = true
|
||||
csharp_space_after_semicolon_in_for_statement = true
|
||||
csharp_space_around_binary_operators = before_and_after
|
||||
csharp_space_around_declaration_statements = false
|
||||
csharp_space_before_colon_in_inheritance_clause = true
|
||||
csharp_space_before_comma = false
|
||||
csharp_space_before_dot = false
|
||||
csharp_space_before_open_square_brackets = false
|
||||
csharp_space_before_semicolon_in_for_statement = false
|
||||
csharp_space_between_empty_square_brackets = false
|
||||
csharp_space_between_method_call_empty_parameter_list_parentheses = false
|
||||
csharp_space_between_method_call_name_and_opening_parenthesis = false
|
||||
csharp_space_between_method_call_parameter_list_parentheses = false
|
||||
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
|
||||
csharp_space_between_method_declaration_name_and_open_parenthesis = false
|
||||
csharp_space_between_method_declaration_parameter_list_parentheses = false
|
||||
csharp_space_between_parentheses = false
|
||||
csharp_space_between_square_brackets = false
|
||||
|
||||
# Wrapping preferences
|
||||
csharp_preserve_single_line_blocks = true
|
||||
csharp_preserve_single_line_statements = true
|
||||
|
||||
#### Naming styles ####
|
||||
|
||||
# Naming rules
|
||||
|
||||
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
|
||||
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
|
||||
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
|
||||
|
||||
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
|
||||
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
|
||||
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
|
||||
|
||||
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
|
||||
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
|
||||
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
|
||||
|
||||
# Symbol specifications
|
||||
|
||||
dotnet_naming_symbols.interface.applicable_kinds = interface
|
||||
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
|
||||
dotnet_naming_symbols.interface.required_modifiers =
|
||||
|
||||
# user types
|
||||
dotnet_naming_symbols.user_types.applicable_kinds = class, struct, interface, enum
|
||||
dotnet_naming_symbols.user_types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
|
||||
dotnet_naming_symbols.user_types.required_modifiers =
|
||||
|
||||
# non_field_members
|
||||
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
|
||||
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
|
||||
dotnet_naming_symbols.non_field_members.required_modifiers =
|
||||
|
||||
# public symbols
|
||||
dotnet_naming_symbols.public_symbols.applicable_kinds = property,method,field,event,delegate
|
||||
dotnet_naming_symbols.public_symbols.applicable_accessibilities = public,internal
|
||||
|
||||
# parameters
|
||||
dotnet_naming_symbols.parameters.applicable_kinds = parameter
|
||||
dotnet_naming_symbols.parameters.applicable_accessibilities = public,internal,protected,private,protected_internal,private_internal
|
||||
|
||||
# private symbols
|
||||
dotnet_naming_symbols.private_symbols.applicable_kinds = property,method,field,event,delegate
|
||||
dotnet_naming_symbols.private_symbols.applicable_accessibilities = protected,private
|
||||
|
||||
# Naming styles
|
||||
|
||||
dotnet_naming_style.snake_case.required_prefix =
|
||||
dotnet_naming_style.snake_case.required_suffix =
|
||||
dotnet_naming_style.snake_case.word_separator = _
|
||||
dotnet_naming_style.snake_case.capitalization = all_lower
|
||||
|
||||
dotnet_naming_style.private_snake_case.required_prefix = _
|
||||
dotnet_naming_style.private_snake_case.required_suffix =
|
||||
dotnet_naming_style.private_snake_case.word_separator = _
|
||||
dotnet_naming_style.private_snake_case.capitalization = all_lower
|
||||
|
||||
dotnet_naming_style.user_types.required_prefix =
|
||||
dotnet_naming_style.user_types.required_suffix =
|
||||
dotnet_naming_style.user_types.word_separator =
|
||||
dotnet_naming_style.user_types.capitalization = pascal_case
|
||||
|
||||
dotnet_naming_style.interface.required_prefix = I
|
||||
dotnet_naming_style.interface.required_suffix =
|
||||
dotnet_naming_style.interface.word_separator =
|
||||
dotnet_naming_style.interface.capitalization = pascal_case
|
||||
|
||||
# rules
|
||||
dotnet_naming_rule.user_types.symbols = user_types
|
||||
dotnet_naming_rule.user_types.style = user_types
|
||||
dotnet_naming_rule.user_types.severity = suggestion
|
||||
|
||||
dotnet_naming_rule.interfaces.symbols = interface
|
||||
dotnet_naming_rule.interfaces.style = interface_style
|
||||
dotnet_naming_rule.interfaces.severity = suggestion
|
||||
|
||||
dotnet_naming_rule.public_members_snake_case.symbols = public_symbols
|
||||
dotnet_naming_rule.public_members_snake_case.style = snake_case
|
||||
dotnet_naming_rule.public_members_snake_case.severity = suggestion
|
||||
|
||||
dotnet_naming_rule.private_members_snake_case.symbols = private_symbols
|
||||
dotnet_naming_rule.private_members_snake_case.style = private_snake_case
|
||||
dotnet_naming_rule.private_members_snake_case.severity = suggestion
|
||||
|
||||
dotnet_naming_rule.parameters.symbols = parameters
|
||||
dotnet_naming_rule.parameters.style = snake_case
|
||||
dotnet_naming_rule.parameters.severity = suggestion
|
||||
+24
-3
@@ -1,11 +1,14 @@
|
||||
nohup.out
|
||||
build/
|
||||
build/**
|
||||
install/**
|
||||
.build_proxy/
|
||||
cmake-build-debug/
|
||||
.cache/
|
||||
.ipynb_checkpoints/
|
||||
.idea/
|
||||
.dir-locals.el
|
||||
*.pyc
|
||||
.vscode/*
|
||||
!.vscode/*.json
|
||||
**.vscode
|
||||
.vs
|
||||
obj/
|
||||
*.csproj.user
|
||||
@@ -17,10 +20,13 @@ vcxproj.user
|
||||
src/client/spark/Properties/launchSettings.json
|
||||
compile_commands.json
|
||||
.cquery_cached_index/
|
||||
.cache/*
|
||||
.clangd/*
|
||||
src/client/sparkcmd/Properties/launchSettings.json
|
||||
node_modules
|
||||
paket-files
|
||||
project.lock.json
|
||||
src/.clang-format
|
||||
src/server/sparkd/orderman/perf_analysis/data
|
||||
src/server/sparkd/orderman/perf_analysis/logs/
|
||||
src/server/sparkd/orderman/perf_analysis/trace_data/
|
||||
@@ -34,3 +40,18 @@ trace_data/
|
||||
/doc/user/public/*
|
||||
.ionide/*
|
||||
/.ignore
|
||||
*.rej
|
||||
.clangd/
|
||||
*CMakeDeps.cmake
|
||||
/sniper.ipynb
|
||||
/src/.clang-format
|
||||
/src/server/sparkd/cmds/spartan/analysis/.ipynb_checkpoints
|
||||
/src/server/sparkd/cmds/spartan/analysis/data
|
||||
*.tmp/*
|
||||
/.venv*/*
|
||||
.cache/
|
||||
/src/Spark.Admin.WebApp/tsconfig.*.g.json
|
||||
/src/Spark.Admin.WebApp/src/bin/
|
||||
**/CMakeDeps.cmake
|
||||
**/CMakeDeps_win.cmake
|
||||
**/devcontainer.json
|
||||
@@ -1,9 +1,3 @@
|
||||
[submodule "externals"]
|
||||
path = externals
|
||||
url = git@bitbucket.org:bluetradesys/externals.git
|
||||
[submodule "docker/linux"]
|
||||
path = docker/linux
|
||||
url = git@bitbucket.org:bluetradesys/linux_docker.git
|
||||
[submodule "docker/windows"]
|
||||
path = docker/windows
|
||||
url = git@bitbucket.org:bluetradesys/windows_docker.git
|
||||
+148
-56
@@ -1,65 +1,157 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
project(spark)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
if(WIN32)
|
||||
set(platform "windows")
|
||||
else()
|
||||
set(platform "linux")
|
||||
endif()
|
||||
|
||||
set(
|
||||
EXTERNALS_ROOT
|
||||
"${CMAKE_SOURCE_DIR}/externals/${platform}"
|
||||
CACHE
|
||||
STRING
|
||||
"External dependencies root folder (should contain folders: lib, bin, include")
|
||||
set(SPARK_BIN "${EXTERNALS_ROOT}/bin")
|
||||
set(SPARK_INCLUDE "${EXTERNALS_ROOT}/include")
|
||||
set(SPARK_LIB "${EXTERNALS_ROOT}/lib/$<CONFIG>")
|
||||
set(BUILD_API_SERVER OFF CACHE BOOL "Build the api server")
|
||||
set(BUILD_DOCS OFF CACHE BOOL "Build documentation")
|
||||
set(BUILD_SDK OFF CACHE BOOL "Build the sdk")
|
||||
if (WIN32)
|
||||
set (platform "windows")
|
||||
else ()
|
||||
set (platform "linux")
|
||||
endif ()
|
||||
set(BUILD_SPARKD OFF CACHE BOOL "Build sparkd")
|
||||
set(BUILD_ADMIN_WEB_APP OFF CACHE BOOL "Build the Admin WebApp")
|
||||
else()
|
||||
set(BUILD_SPARKD ON CACHE BOOL "Build sparkd")
|
||||
set(BUILD_ADMIN_WEB_APP ON CACHE BOOL "Build the Admin WebApp")
|
||||
endif()
|
||||
|
||||
include_directories(BEFORE SYSTEM ${SPARK_INCLUDE} ${EXTERNALS_ROOT}/include/zlib)
|
||||
link_directories(${SPARK_LIB})
|
||||
|
||||
if(BUILD_API_SERVER)
|
||||
add_compile_definitions(SPARK_ENABLE_API_SERVER)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
add_compile_definitions(SHARED_MEMORY_PREFIX="spark")
|
||||
add_compile_definitions(APP_DATA_DIR="\$\{APPDATA\}/bts/")
|
||||
# subdirs
|
||||
add_subdirectory(src/lib)
|
||||
else()
|
||||
# make sparkd look for libspark.so in its directory
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
set(CMAKE_INSTALL_RPATH ".")
|
||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/install")
|
||||
set(SPARK_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/$<CONFIG>")
|
||||
|
||||
if(BUILD_API_SERVER)
|
||||
add_compile_definitions(APP_DATA_DIR="\$\{HOME\}/spark_api/")
|
||||
add_compile_definitions(SHARED_MEMORY_PREFIX="spark_api")
|
||||
elseif(BUILD_SPARKD)
|
||||
add_compile_definitions(SHARED_MEMORY_PREFIX="sparkd")
|
||||
add_compile_definitions(APP_DATA_DIR="\$\{HOME\}/sparkdata/")
|
||||
|
||||
# Note: All macros that begin w/ 'CCAPI' are ccapi's macros (defined and/or
|
||||
# read by their code). We override some below.
|
||||
add_compile_definitions(SPARK_ENABLE_CCAPI)
|
||||
|
||||
# This allows us to override hardcoded exchange-urls with ones read from
|
||||
# config (i.e., resolved at runtime rather than compile-time)
|
||||
add_compile_definitions(CCAPI_EXPOSE_INTERNAL)
|
||||
|
||||
# Enable ccapi services
|
||||
add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA)
|
||||
add_compile_definitions(CCAPI_ENABLE_SERVICE_EXECUTION_MANAGEMENT)
|
||||
# Enable ccapi exchanges
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BINANCE)
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BINANCE_COIN_FUTURES)
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BINANCE_US)
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BINANCE_USDS_FUTURES)
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_COINBASE)
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_DERIBIT)
|
||||
add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX)
|
||||
|
||||
set (EXTERNALS_ROOT "${CMAKE_SOURCE_DIR}/externals/${platform}")
|
||||
set (SPARK_PYTHON "${EXTERNALS_ROOT}/python")
|
||||
set (SPARK_BIN "${EXTERNALS_ROOT}/bin")
|
||||
set (SPARK_INCLUDE "${EXTERNALS_ROOT}/include")
|
||||
set (SPARK_LIB "${EXTERNALS_ROOT}/lib/${CMAKE_BUILD_TYPE}")
|
||||
set(CCAPI_LOG_LEVEL
|
||||
"Warn"
|
||||
CACHE STRING "<Fatal|Error|Warn|Info|Debug|Trace> Log level for ccapi")
|
||||
string(TOUPPER "${CCAPI_LOG_LEVEL}" _ccapi_log_level_upper)
|
||||
add_compile_definitions("CCAPI_ENABLE_LOG_${_ccapi_log_level_upper}")
|
||||
|
||||
include_directories (BEFORE SYSTEM ${SPARK_INCLUDE} ${EXTERNALS_ROOT}/include/zlib)
|
||||
link_directories (${SPARK_LIB})
|
||||
# ** Binance **
|
||||
add_compile_definitions(CCAPI_BINANCE_URL_REST_BASE="https://api.binance.com")
|
||||
add_compile_definitions(BINANCE_INSTRUMENTS_PATH="/api/v3/exchangeInfo")
|
||||
add_compile_definitions(BINANCE_PRICE_STATS_PATH="/api/v3/ticker/24hr")
|
||||
|
||||
if (WIN32)
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} \
|
||||
/MP \
|
||||
/WX /wd4251 /wd4250 /wd4251 /wd4244 /wd4267 /wd4355 /wd4275 /wd4345 \
|
||||
/DCURL_STATICLIB \
|
||||
/D_WINSOCK_DEPRECATED_NO_WARNINGS \
|
||||
/D__TBB_NO_IMPLICIT_LINKAGE \
|
||||
/DBOOST_ALL_NO_LIB \
|
||||
/D_SCL_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS /D_WIN32_WINNT=0x0600")
|
||||
|
||||
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_DEBUG} /MT")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF /LTCG")
|
||||
# ** Binance US **
|
||||
add_compile_definitions(BINANCE_US_INSTRUMENTS_PATH="/api/v3/exchangeInfo")
|
||||
add_compile_definitions(BINANCE_US_PRICE_STATS_PATH="/api/v3/ticker/24hr")
|
||||
|
||||
# ** Binance USDS Futures **
|
||||
add_compile_definitions(CCAPI_BINANCE_USDS_FUTURES_URL_REST_BASE="https://dapi.binance.com")
|
||||
add_compile_definitions(BINANCE_USDS_FUTURES_INSTRUMENTS_PATH="/dapi/v1/exchangeInfo")
|
||||
add_compile_definitions(BINANCE_USDS_FUTURES_PRICE_STATS_PATH="/dapi/v1/ticker/24hr")
|
||||
|
||||
# ** Deribit **
|
||||
add_compile_definitions(DERIBIT_INSTRUMENT_PATH="/api/v2/public/get_instrument")
|
||||
add_compile_definitions(DERIBIT_INSTRUMENTS_PATH="/api/v2/public/get_instruments")
|
||||
add_compile_definitions(DERIBIT_COMBOS_PATH="/api/v2/public/get_combos")
|
||||
add_compile_definitions(DERIBIT_TICKER_PATH="/api/v2/public/ticker")
|
||||
add_compile_definitions(DERIBIT_CURRENCIES_METHOD="public/get_currencies")
|
||||
add_compile_definitions(DERIBIT_INSTRUMENT_METHOD="public/get_instrument")
|
||||
add_compile_definitions(DERIBIT_INSTRUMENTS_METHOD="public/get_instruments")
|
||||
add_compile_definitions(DERIBIT_COMBO_DETAILS_METHOD="public/get_combo_details")
|
||||
add_compile_definitions(DERIBIT_COMBOS_METHOD="public/get_combos")
|
||||
|
||||
# ** Okx **
|
||||
add_compile_definitions(OKX_INSTRUMENTS_PATH="/api/v5/public/instruments")
|
||||
add_compile_definitions(OKX_UNDERLYING_PATH="/api/v5/public/underlying")
|
||||
endif()
|
||||
|
||||
# subdirs
|
||||
if (BUILD_SPARKD)
|
||||
add_subdirectory(src/server/sparkd)
|
||||
add_subdirectory(src/data_files)
|
||||
endif()
|
||||
add_subdirectory(src/lib)
|
||||
else ()
|
||||
# so that sparkd looks for libspark.so in its directory
|
||||
set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
set (CMAKE_INSTALL_RPATH ".")
|
||||
|
||||
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} \
|
||||
-fPIC -Wall -pedantic -Wextra -Werror \
|
||||
-Wno-missing-braces -Wno-ignored-qualifiers \
|
||||
--std=c++17 -fdiagnostics-color")
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -DNDEBUG -O3")
|
||||
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wno-undef")
|
||||
add_subdirectory(src/server/sparkd)
|
||||
add_subdirectory(src/lib)
|
||||
add_subdirectory(src/web)
|
||||
add_subdirectory(doc/user)
|
||||
add_subdirectory(src/sdk)
|
||||
add_subdirectory(src/data_files)
|
||||
|
||||
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/src/server/sparkd/sparkd ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/web ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/data_files ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/src/lib/libspark.so ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${EXTERNALS_ROOT}/lib/Release/libOnixS.IceImpactMulticastPriceFeedHandlerCpp.so.3.13.0.0 ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${EXTERNALS_ROOT}/lib/Release/libACE-5.7.5.so ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND mkdir ARGS -p ${CMAKE_BINARY_DIR}/server/plugins
|
||||
COMMENT "Creating server runtime layout"
|
||||
DEPENDS sparkd data_files_dir)
|
||||
|
||||
add_custom_target(server_layout ALL DEPENDS ${CMAKE_BINARY_DIR}/server)
|
||||
if (BUILD_ADMIN_WEB_APP)
|
||||
add_subdirectory(src/Spark.Admin.WebApp)
|
||||
endif()
|
||||
if(BUILD_DOCS)
|
||||
add_subdirectory(doc/user)
|
||||
endif()
|
||||
if(BUILD_SDK)
|
||||
add_subdirectory(src/sdk)
|
||||
endif()
|
||||
|
||||
if(BUILD_SPARKD)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/src/server/sparkd/sparkd ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/data_files ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${CMAKE_BINARY_DIR}/src/lib/libspark.so ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND
|
||||
ln ARGS -sf
|
||||
${EXTERNALS_ROOT}/lib/Release/libOnixS.IceImpactMulticastPriceFeedHandlerCpp.so.3.16.0.0
|
||||
${CMAKE_BINARY_DIR}/server
|
||||
COMMAND ln ARGS -sf ${EXTERNALS_ROOT}/lib/Release/libACE-5.7.5.so ${CMAKE_BINARY_DIR}/server
|
||||
COMMAND mkdir ARGS -p ${CMAKE_BINARY_DIR}/server/plugins
|
||||
COMMENT "Creating server runtime layout"
|
||||
DEPENDS sparkd data_files_dir)
|
||||
|
||||
add_custom_target(server_layout ALL DEPENDS ${CMAKE_BINARY_DIR}/server)
|
||||
|
||||
install(
|
||||
DIRECTORY "${CMAKE_BINARY_DIR}/server/plugins"
|
||||
DESTINATION "${SPARK_INSTALL_PREFIX}/bin")
|
||||
install(
|
||||
FILES
|
||||
"${SPARK_LIB}/libACE-5.7.5.so"
|
||||
"${SPARK_LIB}/libOnixS.IceImpactMulticastPriceFeedHandlerCpp.so.3.16.0.0"
|
||||
"${CMAKE_SOURCE_DIR}/externals/src/emumba/sparkd.lic"
|
||||
DESTINATION "${SPARK_INSTALL_PREFIX}/bin")
|
||||
endif()
|
||||
endif()
|
||||
@@ -0,0 +1,383 @@
|
||||
{
|
||||
"version": 4,
|
||||
"cmakeMinimumRequired": {
|
||||
"major": 3,
|
||||
"minor": 23,
|
||||
"patch": 0
|
||||
},
|
||||
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "spark",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Windows"
|
||||
},
|
||||
"generator": "Visual Studio 17 2022",
|
||||
"binaryDir": "${sourceDir}/build",
|
||||
"environment": {
|
||||
"SPARK_CMAKE_CXX_FLAGS": "/MP /WX /wd4250 /wd4251 /wd4244 /wd4267 /wd4355 /wd4275 /wd4345 /bigobj /EHsc /DCURL_STATICLIB /D_WINSOCK_DEPRECATED_NO_WARNINGS /D__TBB_NO_IMPLICIT_LINKAGE /DBOOST_ALL_NO_LIB /std:c++20 /D_SCL_SECURE_NO_WARNINGS /D_CRT_SECURE_NO_WARNINGS /D_WIN32_WINNT=0x0600"
|
||||
},
|
||||
"cacheVariables": {
|
||||
"CMAKE_CXX_FLAGS": "$env{SPARK_CMAKE_CXX_FLAGS}",
|
||||
"CMAKE_CXX_FLAGS_DEBUG": "$env{SPARK_CMAKE_CXX_FLAGS} /MTd",
|
||||
"CMAKE_CXX_FLAGS_RELEASE": "$env{SPARK_CMAKE_CXX_FLAGS} /MT",
|
||||
"CMAKE_CXX_STANDARD": "20",
|
||||
"CMAKE_SHARED_LINKER_FLAGS_DEBUG": "/DEBUG",
|
||||
"CMAKE_SHARED_LINKER_FLAGS_RELEASE": "/OPT:REF /OPT:ICF /LTCG",
|
||||
"EXTERNALS_ROOT": "${sourceDir}/externals/windows",
|
||||
"CONFIG_DEFAULTS_PATH": "config/profiles/default/*.conf",
|
||||
"DOTNET_BINARY_DIR": "${sourceDir}/build/$<CONFIG>/bin/net7.0",
|
||||
"DOTNET_WINDOWS_BINARY_DIR": "${sourceDir}/build/$<CONFIG>/bin/net7.0-windows"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Linux"
|
||||
},
|
||||
"hidden": true,
|
||||
"generator": "Ninja",
|
||||
"binaryDir": "${sourceDir}/build/${presetName}",
|
||||
"cacheVariables": {
|
||||
"platform": "",
|
||||
"CMAKE_BUILD_WITH_INSTALL_RPATH": {
|
||||
"type": "BOOL",
|
||||
"value": "ON"
|
||||
},
|
||||
"CMAKE_CXX_STANDARD": "20",
|
||||
"CMAKE_INSTALL_RPATH": ".",
|
||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/${presetName}/sparkd",
|
||||
"CMAKE_EXE_LINKER_FLAGS": "-Wno-undef",
|
||||
"EXTERNALS_ROOT": "${sourceDir}/externals/linux",
|
||||
"BUILD_SDK": {
|
||||
"type": "BOOL",
|
||||
"value": "OFF"
|
||||
},
|
||||
"BUILD_ADMIN_WEB_APP": {
|
||||
"type": "BOOL",
|
||||
"value": "ON"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-debug",
|
||||
"inherits": "sparkd",
|
||||
"hidden": true,
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Debug",
|
||||
"CMAKE_EXPORT_COMPILE_COMMANDS": {
|
||||
"type": "BOOL",
|
||||
"value": "ON"
|
||||
},
|
||||
"CCAPI_LOG_LEVEL": "Info",
|
||||
"CONFIG_DEFAULTS_PATH": "config/profiles/md_dev/*.conf;config/profiles/default/*.conf"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-release",
|
||||
"inherits": "sparkd",
|
||||
"hidden": true,
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Release",
|
||||
"CCAPI_LOG_LEVEL": "Warn",
|
||||
"CONFIG_DEFAULTS_PATH": "config/profiles/md_prod/*.conf;config/profiles/default/*.conf"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-debug-clang",
|
||||
"inherits": "sparkd-debug",
|
||||
"displayName": "Debug (clang)",
|
||||
"description": "Debug build compiled w/ clang",
|
||||
"binaryDir": "${sourceDir}/build/clang/debug",
|
||||
"cacheVariables": {
|
||||
"CMAKE_C_COMPILER": "clang",
|
||||
"CMAKE_CXX_COMPILER": "clang++",
|
||||
"CMAKE_CXX_FLAGS_DEBUG": "-g -fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -DDEBUG",
|
||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/clang/debug/sparkd"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-debug-gcc",
|
||||
"inherits": "sparkd-debug",
|
||||
"displayName": "Debug (gcc)",
|
||||
"description": "Debug build compiled w/ gcc",
|
||||
"binaryDir": "${sourceDir}/build/gcc/debug",
|
||||
"cacheVariables": {
|
||||
"CMAKE_C_COMPILER": "gcc",
|
||||
"CMAKE_CXX_COMPILER": "g++",
|
||||
"CMAKE_CXX_FLAGS_DEBUG": "-g -fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -Wno-stringop-overread -DDEBUG",
|
||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/gcc/debug/sparkd"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-release-clang",
|
||||
"inherits": "sparkd-release",
|
||||
"displayName": "Release (clang)",
|
||||
"description": "Release build compiled w/ clang",
|
||||
"binaryDir": "${sourceDir}/build/clang/release",
|
||||
"cacheVariables": {
|
||||
"CMAKE_C_COMPILER": "clang",
|
||||
"CMAKE_CXX_COMPILER": "clang++",
|
||||
"CMAKE_CXX_FLAGS_RELEASE": "-fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -fno-omit-frame-pointer -DNDEBUG -O3",
|
||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/clang/release/sparkd"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-release-gcc",
|
||||
"inherits": "sparkd-release",
|
||||
"displayName": "Release (gcc)",
|
||||
"description": "Release build compiled w/ gcc",
|
||||
"binaryDir": "${sourceDir}/build/gcc/release",
|
||||
"cacheVariables": {
|
||||
"CMAKE_C_COMPILER": "gcc",
|
||||
"CMAKE_CXX_COMPILER": "g++",
|
||||
"CMAKE_CXX_FLAGS_RELEASE": "-fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -Wno-stringop-overread -Wno-maybe-uninitialized -fno-omit-frame-pointer -DNDEBUG -O3",
|
||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/gcc/release/sparkd"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-base",
|
||||
"hidden": true,
|
||||
"binaryDir": "${sourceDir}/build/${presetName}",
|
||||
"cacheVariables": {
|
||||
"BUILD_API_SERVER": {
|
||||
"type": "bool",
|
||||
"value": "ON"
|
||||
},
|
||||
"CONFIG_DEFAULTS_PATH": "config/profiles/md_dev/*.conf;config/profiles/default/*.conf"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-windows",
|
||||
"inherits": "spark",
|
||||
"displayName": "Spark Api Server",
|
||||
"cacheVariables": {
|
||||
"BUILD_API_SERVER": {
|
||||
"type": "bool",
|
||||
"value": "ON"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-linux",
|
||||
"inherits": "sparkd",
|
||||
"displayName": "Spark Api Server",
|
||||
"generator": "Ninja Multi-Config",
|
||||
"cacheVariables": {
|
||||
"BUILD_ADMIN_WEB_APP": {
|
||||
"type": "BOOL",
|
||||
"value": "OFF"
|
||||
},
|
||||
"BUILD_API_SERVER": {
|
||||
"type": "bool",
|
||||
"value": "ON"
|
||||
},
|
||||
"BUILD_SPARKD": {
|
||||
"type": "BOOL",
|
||||
"value": "OFF"
|
||||
},
|
||||
"CMAKE_C_COMPILER": "clang",
|
||||
"CMAKE_CXX_COMPILER": "clang++",
|
||||
"CMAKE_CXX_FLAGS_DEBUG": "-g -fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -DDEBUG",
|
||||
"CMAKE_CXX_FLAGS_RELEASE": "-fPIC -Wall -pedantic -Wextra -Werror -Wno-missing-braces -Wno-ignored-qualifiers --std=c++20 -fdiagnostics-color -fno-omit-frame-pointer -DNDEBUG -O3",
|
||||
"CMAKE_INSTALL_PREFIX": "${sourceDir}/install/${presetName}",
|
||||
"CONFIG_DEFAULTS_PATH": "config/profiles/default/*.conf",
|
||||
"DOTNET_BINARY_DIR": "${sourceDir}/build/$<CONFIG>/bin/net7.0"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-publish",
|
||||
"inherits": "sparkd-release-gcc",
|
||||
"displayName": "Publish",
|
||||
"description": "Production build compiled w/ gcc and ready to ship"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-ccapi-diag",
|
||||
"inherits": "sparkd-debug-clang",
|
||||
"displayName": "Debug (ccapi diag)",
|
||||
"description": "Debug build w/ ccapi log level 'Trace'",
|
||||
"binaryDir": "${sourceDir}/build/${presetName}",
|
||||
"cacheVariables": {
|
||||
"CCAPI_LOG_LEVEL": "Trace"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"name": "data-stream-suite",
|
||||
"inherits": "spark",
|
||||
"displayName": "Data Stream Suite",
|
||||
"description": "Data Stream utils ported over from Edge",
|
||||
"binaryDir": "${sourceDir}/build/${presetName}"
|
||||
}
|
||||
],
|
||||
|
||||
"buildPresets": [
|
||||
{
|
||||
"name": "spark",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Windows"
|
||||
},
|
||||
"hidden": true
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-debug",
|
||||
"displayName": "Debug",
|
||||
"inherits": "spark",
|
||||
"configurePreset": "spark",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-release",
|
||||
"displayName": "Release",
|
||||
"inherits": "spark",
|
||||
"configurePreset": "spark",
|
||||
"configuration": "Release"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Linux"
|
||||
},
|
||||
"hidden": true,
|
||||
"targets": [
|
||||
"data_files_dir",
|
||||
"admin_web_app_bundle",
|
||||
"install",
|
||||
"libspark",
|
||||
"rapidjson_project",
|
||||
"server_layout",
|
||||
"sparkd"
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-debug-clang",
|
||||
"configurePreset": "sparkd-debug-clang",
|
||||
"displayName": "Debug (clang)",
|
||||
"inherits": "sparkd"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-debug-gcc",
|
||||
"configurePreset": "sparkd-debug-gcc",
|
||||
"displayName": "Debug (gcc)",
|
||||
"inherits": "sparkd"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-release-clang",
|
||||
"configurePreset": "sparkd-release-clang",
|
||||
"displayName": "Release (clang)",
|
||||
"inherits": "sparkd"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-release-gcc",
|
||||
"configurePreset": "sparkd-release-gcc",
|
||||
"displayName": "Release (gcc)",
|
||||
"inherits": "sparkd"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-windows",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Windows"
|
||||
},
|
||||
"hidden": true,
|
||||
"configurePreset": "spark-api-server-windows"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-windows-debug",
|
||||
"displayName": "Spark Api Server (Debug)",
|
||||
"inherits": "spark-api-server-windows",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-windows-release",
|
||||
"displayName": "Spark Api Server (Debug)",
|
||||
"inherits": "spark-api-server-windows",
|
||||
"configuration": "Release"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-linux",
|
||||
"condition": {
|
||||
"type": "equals",
|
||||
"lhs": "${hostSystemName}",
|
||||
"rhs": "Linux"
|
||||
},
|
||||
"hidden": true,
|
||||
"configurePreset": "spark-api-server-linux"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-linux-debug",
|
||||
"inherits": "spark-api-server-linux",
|
||||
"displayName": "Spark Api Server (Debug)",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "spark-api-server-linux-release",
|
||||
"inherits": "spark-api-server-linux",
|
||||
"displayName": "Spark Api Server (Release)",
|
||||
"configuration": "Release"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-publish",
|
||||
"configurePreset": "sparkd-publish",
|
||||
"displayName": "Publish",
|
||||
"inherits": "sparkd",
|
||||
"targets": "install"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "sparkd-ccapi-diag",
|
||||
"configurePreset": "sparkd-ccapi-diag",
|
||||
"displayName": "Debug (ccapi diag)",
|
||||
"inherits": "sparkd"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "data-stream-suite-debug",
|
||||
"displayName": "DataStreamSuite (Debug)",
|
||||
"configurePreset": "data-stream-suite",
|
||||
"configuration": "Debug"
|
||||
},
|
||||
|
||||
{
|
||||
"name": "data-stream-suite-release",
|
||||
"displayName": "DataStreamSuite (Release)",
|
||||
"configurePreset": "data-stream-suite",
|
||||
"configuration": "Release"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.3.32922.545
|
||||
MinimumVisualStudioVersion = 15.0.26124.0
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api", "src\client\spark_api\spark_api.csproj", "{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_core", "src\client\spark_core\spark_core.csproj", "{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_websocket", "src\client\spark_websocket\spark_websocket.csproj", "{3201359D-C071-4089-9EDE-B04D759F1508}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api_server", "src\client\spark_api_server\spark_api_server.csproj", "{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "spark_test", "src\client\spark_test\spark_test.csproj", "{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spark.Console", "src\client\Spark.Console\Spark.Console.csproj", "{89D666E6-B500-498F-B026-4D167F68ADFC}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
MinSizeRel|x64 = MinSizeRel|x64
|
||||
Release|x64 = Release|x64
|
||||
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.Build.0 = Debug|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.Build.0 = Debug|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Debug|x64.Build.0 = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Release|x64.ActiveCfg = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Release|x64.Build.0 = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Debug|x64.Build.0 = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Release|x64.ActiveCfg = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Release|x64.Build.0 = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.Debug|x64.Build.0 = Debug|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.Release|x64.ActiveCfg = Release|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.Release|x64.Build.0 = Release|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.RelWithDebInfo|x64.ActiveCfg = Debug|x64
|
||||
{EFC9FC4D-E92B-4C6D-9B97-26D38EAA118D}.RelWithDebInfo|x64.Build.0 = Debug|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.Debug|x64.Build.0 = Debug|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.Release|x64.ActiveCfg = Release|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.Release|x64.Build.0 = Release|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.RelWithDebInfo|x64.ActiveCfg = Debug|x64
|
||||
{89D666E6-B500-498F-B026-4D167F68ADFC}.RelWithDebInfo|x64.Build.0 = Debug|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {422D1620-0166-4C26-9A81-CA8A2EB1AB58}
|
||||
EndGlobalSection
|
||||
GlobalSection(Performance) = preSolution
|
||||
HasPerformanceSessions = true
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,12 @@
|
||||
function(print_list var)
|
||||
set(CMAKE_MESSAGE_INDENT "")
|
||||
set(_var_str "")
|
||||
foreach(item IN LISTS ${var})
|
||||
set(_var_str "${_var_str}\n ${item}")
|
||||
endforeach()
|
||||
if ("${ARGN}" STREQUAL "VERBOSE")
|
||||
message(VERBOSE "***${var}:${_var_str}")
|
||||
else()
|
||||
message("***${var}:${_var_str}")
|
||||
endif()
|
||||
endfunction()
|
||||
@@ -0,0 +1,145 @@
|
||||
set(Protobuf_PROTOC_EXECUTABLE "${SPARK_BIN}/protoc")
|
||||
set(PROTOBUF_INCLUDE_DIRS "${SPARK_INCLUDE}")
|
||||
set(PROTOBUF_STATIC_LIB "libprotobuf")
|
||||
|
||||
function(Protobuf_Generate_Cpp SRCS HDRS)
|
||||
set(${SRCS})
|
||||
set(${HDRS})
|
||||
|
||||
foreach(FIL ${ARGN})
|
||||
get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
|
||||
get_filename_component(FIL_WE ${FIL} NAME_WE)
|
||||
get_filename_component(FIL_DIR ${FIL} DIRECTORY)
|
||||
if(FIL_DIR)
|
||||
set(FIL_WE "${FIL_DIR}/${FIL_WE}")
|
||||
endif()
|
||||
|
||||
list(APPEND ${SRCS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.cc")
|
||||
list(APPEND ${HDRS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h")
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h"
|
||||
COMMAND
|
||||
${Protobuf_PROTOC_EXECUTABLE} ARGS --cpp_out=${CMAKE_BINARY_DIR}/src -I
|
||||
${PROTOBUF_INCLUDE_DIRS} -I ${CMAKE_SOURCE_DIR}/src ${ABS_FIL}
|
||||
DEPENDS ${ABS_FIL}
|
||||
COMMENT "Running C++ protocol buffer compiler on ${FIL}"
|
||||
VERBATIM)
|
||||
endforeach()
|
||||
|
||||
set_source_files_properties(${${SRCS}} ${${HDRS}} PROPERTIES GENERATED TRUE)
|
||||
|
||||
# remove some warnings from protobuf generated files
|
||||
if(WIN32)
|
||||
set_source_files_properties(${${SRCS}} PROPERTIES COMPILE_FLAGS
|
||||
"/wd4309 /wd4838")
|
||||
else()
|
||||
set_source_files_properties(
|
||||
${${SRCS}}
|
||||
PROPERTIES
|
||||
COMPILE_FLAGS
|
||||
"-Wno-unused-parameter -Wno-effc++ -Wno-pedantic -Wno-sign-compare -Wno-uninitialized"
|
||||
)
|
||||
endif()
|
||||
|
||||
set(${SRCS}
|
||||
${${SRCS}}
|
||||
PARENT_SCOPE)
|
||||
set(${HDRS}
|
||||
${${HDRS}}
|
||||
PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(Service_Compiler_Generate_Cpp SRCS HDRS)
|
||||
set(${SRCS})
|
||||
set(${HDRS})
|
||||
|
||||
foreach(FIL ${ARGN})
|
||||
get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
|
||||
get_filename_component(FIL_WE ${FIL} NAME_WE)
|
||||
get_filename_component(FIL_DIR ${FIL} DIRECTORY)
|
||||
if(FIL_DIR)
|
||||
set(FIL_WE "${FIL_DIR}/${FIL_WE}")
|
||||
endif()
|
||||
|
||||
list(APPEND ${SRCS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.cc")
|
||||
list(APPEND ${HDRS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h")
|
||||
|
||||
list(APPEND ${SRCS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.client.pb.cc")
|
||||
list(APPEND ${HDRS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.client.pb.h")
|
||||
|
||||
list(APPEND ${SRCS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.server.pb.cc")
|
||||
list(APPEND ${HDRS} "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.server.pb.h")
|
||||
|
||||
set(TEMPLATES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/api/service_compiler/templates/cpp/client.pb.cc
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/api/service_compiler/templates/cpp/client.pb.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/api/service_compiler/templates/cpp/server.pb.cc
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/api/service_compiler/templates/cpp/server.pb.h
|
||||
)
|
||||
|
||||
if(WIN32)
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.client.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.client.pb.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.server.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.server.pb.h"
|
||||
COMMAND SET PYTHONPATH=${SPARK_PYTHON}
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/.venv/Scripts/activate.bat
|
||||
COMMAND
|
||||
${Protobuf_PROTOC_EXECUTABLE} ARGS --cpp_out=${CMAKE_BINARY_DIR}/src
|
||||
--plugin=protoc-gen-service=${CMAKE_SOURCE_DIR}/src/lib/api/service_compiler/plugin.cmd
|
||||
--service_out=lang=cpp:${CMAKE_BINARY_DIR}/src -I
|
||||
${PROTOBUF_INCLUDE_DIRS} -I ${CMAKE_SOURCE_DIR}/src ${ABS_FIL}
|
||||
DEPENDS ${ABS_FIL} ${TEMPLATES}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/api/service_compiler/plugin.py
|
||||
COMMENT "Running C++ service compiler on ${FIL}"
|
||||
VERBATIM)
|
||||
else()
|
||||
add_custom_command(
|
||||
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.pb.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.client.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.client.pb.h"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.server.pb.cc"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/${FIL_WE}.server.pb.h"
|
||||
COMMAND ${CMAKE_SOURCE_DIR}/tools/venv_exec.sh
|
||||
ARGS
|
||||
${Protobuf_PROTOC_EXECUTABLE}
|
||||
--cpp_out=${CMAKE_BINARY_DIR}/src
|
||||
--plugin=protoc-gen-service=${CMAKE_SOURCE_DIR}/src/lib/api/service_compiler/plugin.py
|
||||
--service_out=lang=cpp,make_file_name=${ABS_FIL}:${CMAKE_BINARY_DIR}/src
|
||||
-I ${PROTOBUF_INCLUDE_DIRS} -I ${CMAKE_SOURCE_DIR}/src ${ABS_FIL}
|
||||
DEPENDS ${ABS_FIL} ${TEMPLATES}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/api/service_compiler/plugin.py
|
||||
COMMENT "Running C++ service compiler on ${FIL}"
|
||||
VERBATIM)
|
||||
endif()
|
||||
|
||||
endforeach()
|
||||
|
||||
# remove some warnings from protobuf generated files
|
||||
if(WIN32)
|
||||
set_source_files_properties(${${SRCS}} PROPERTIES COMPILE_FLAGS
|
||||
"/wd4309 /wd4838")
|
||||
else()
|
||||
set_source_files_properties(
|
||||
${${SRCS}}
|
||||
PROPERTIES
|
||||
COMPILE_FLAGS
|
||||
"-Wno-unused-parameter -Wno-effc++ -Wno-pedantic -Wno-sign-compare -Wno-uninitialized"
|
||||
)
|
||||
endif()
|
||||
|
||||
set(${SRCS}
|
||||
${${SRCS}}
|
||||
PARENT_SCOPE)
|
||||
set(${HDRS}
|
||||
${${HDRS}}
|
||||
PARENT_SCOPE)
|
||||
|
||||
endfunction()
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
# inspired by https://stackoverflow.com/questions/1027247/specify-source-files-globally-with-glob
|
||||
|
||||
# Compare the new contents with the existing file, if it exists and is the same we don't want to
|
||||
# trigger a make by changing its timestamp.
|
||||
function(update_file path content)
|
||||
set(old_content "")
|
||||
if(EXISTS "${path}")
|
||||
file(READ "${path}" old_content)
|
||||
endif()
|
||||
if(NOT old_content STREQUAL content)
|
||||
file(WRITE "${path}" "${content}")
|
||||
endif()
|
||||
endfunction(update_file)
|
||||
|
||||
# Creates a file called CMakeDeps.cmake next to your CMakeLists.txt with the list of dependencies in
|
||||
# it - this file should be treated as part of CMakeLists.txt (source controlled, etc.).
|
||||
function(update_deps_file deps)
|
||||
if(WIN32)
|
||||
set(deps_file "CMakeDeps_win.cmake")
|
||||
else()
|
||||
set(deps_file "CMakeDeps.cmake")
|
||||
endif()
|
||||
|
||||
# Normalize the list so it's the same on every machine
|
||||
list(REMOVE_DUPLICATES deps)
|
||||
list(SORT deps)
|
||||
# Update the deps file
|
||||
set(content "set(sources ${deps})")
|
||||
update_file(${deps_file} "${content}")
|
||||
# Include the file so it's tracked as a generation dependency we don't need the content.
|
||||
include(${deps_file})
|
||||
endfunction(update_deps_file)
|
||||
@@ -0,0 +1,24 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
# Explicitly set policy to convert relative paths to absolute (although this is a default policy,
|
||||
# setting it explicitly prevents a compile-warning)
|
||||
cmake_policy(SET CMP0076 NEW)
|
||||
|
||||
# add protos to the library to facilitate source_group
|
||||
target_sources(libspark PUBLIC ${Config_Protos} ${NonConfig_Protos} ${Service_Protos})
|
||||
|
||||
function(assign_source_group)
|
||||
foreach(_source IN ITEMS ${ARGN})
|
||||
if(IS_ABSOLUTE "${_source}")
|
||||
file(RELATIVE_PATH _source_rel "${CMAKE_CURRENT_SOURCE_DIR}" "${_source}")
|
||||
else()
|
||||
set(_source_rel "${_source}")
|
||||
endif()
|
||||
get_filename_component(_source_path "${_source_rel}" PATH)
|
||||
string(REPLACE "/" "\\" _source_path_msvc "${_source_path}")
|
||||
source_group("${_source_path_msvc}" FILES "${_source}")
|
||||
set(SOURCE_FILES "${_source}")
|
||||
endforeach()
|
||||
endfunction(assign_source_group)
|
||||
|
||||
assign_source_group(${SparkLib_Sources} ${Config_Protos} ${NonConfig_Protos} ${Service_Protos})
|
||||
+224
@@ -0,0 +1,224 @@
|
||||
[cmake]: https://cmake.org/
|
||||
[cmake ext]: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cmake-tools
|
||||
[cmake presets]: https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html
|
||||
[cpp ext]: https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
|
||||
[clangd ext]: https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd
|
||||
[dotnet]: https://dotnet.microsoft.com/en-us/download/dotnet
|
||||
[ninja build]: https://ninja-build.org/
|
||||
[ninja generator]: https://cmake.org/cmake/help/latest/generator/Ninja.html
|
||||
[ninja multi-config generator]: https://cmake.org/cmake/help/latest/generator/Ninja%20Multi-Config.html
|
||||
[python]: https://www.python.org/
|
||||
[py venv]: https://docs.python.org/3/library/venv.html
|
||||
[visual studio]: https://visualstudio.microsoft.com/
|
||||
[visual studio generator]: https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2017%202022.html
|
||||
|
||||
# C++ Intellisense for Spark on Windows (VS Code)
|
||||
**Steps**
|
||||
1. Install the **[C++ extension][cpp ext]**
|
||||
2. Install the **[CMake extension][cmake ext]**
|
||||
3. Copy `c_cpp_properties.json` from this folder to `$workspaceFolder/.vscode/`
|
||||
4. In the VS Code Command Palette, run **CMake: Select Configure Preset**, then
|
||||
select '**spark**' from the dropdown
|
||||
|
||||
**Notes**
|
||||
* Intellisense won't work for generated files/types until you build libspark
|
||||
|
||||
# C++ Intellisense for Sparkd on Linux (VS Code)
|
||||
1. Install the **[CMake extension][cmake ext]**
|
||||
2. Install the **[Clangd extension][clangd ext]**
|
||||
3. (Optional) Install the **[C++ extension][cpp ext]** (*needed for debugging,
|
||||
but intellisense should work without it*).
|
||||
4. If the **[C++ extension][cpp ext]** is installed, disable its intellisense in
|
||||
your workspace settings (*Clangd intellisense is better*)
|
||||
```
|
||||
"C_Cpp.intelliSenseEngine": "disabled"
|
||||
```
|
||||
5. In the VS Code Command Palette, run **CMake: Select Configure Preset**, then select the
|
||||
**[preset][cmake presets]** you wish to build from the dropdown
|
||||
* *The **Clang** presets may work best with the **Clangd** extension*
|
||||
* *Intellisense won't work for generated files/types until you build libspark*
|
||||
|
||||
# Build Spark on Windows
|
||||
### Dependencies
|
||||
* **[CMake][cmake]** (version >= 3.23)
|
||||
* **[Python][python]** (version >= 3.9)
|
||||
* **[Visual Studio][visual studio]** (2022)
|
||||
* **[Dotnet][dotnet]** (sdk version >= 7.0.0)
|
||||
|
||||
### References
|
||||
* **[CMakePresets][cmake presets]**
|
||||
* **[Visual Studio 17 2022 (CMake generator)][visual studio generator]**
|
||||
* **[Python Virtual Environment][py venv]**
|
||||
|
||||
### Notes
|
||||
* *Run commands from the repo root dir unless otherwise noted*
|
||||
|
||||
1. Set up the **[Python virtual environment][py venv]**<br>
|
||||
```
|
||||
# Create the virtual environment
|
||||
python3 -m venv .venv
|
||||
|
||||
# Activate the virtual environment
|
||||
.venv\bin\activate.bat
|
||||
|
||||
# Update pip
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
# Install packages
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
2. Build
|
||||
* *Run commands in python virtual environment*
|
||||
```
|
||||
# Configure
|
||||
cmake --preset spark
|
||||
|
||||
# Build Debug
|
||||
cmake --build --preset spark-debug
|
||||
dotnet build spark_client.sln --configuration Debug
|
||||
|
||||
# Build Release
|
||||
cmake --build --preset spark-release
|
||||
dotnet build spark_client.sln --configuration Release
|
||||
```
|
||||
|
||||
# Build Sparkd on Linux
|
||||
### **Dependencies**
|
||||
* **[CMake][cmake]** (version >= 3.23)
|
||||
* **[Ninja Build][ninja build]**
|
||||
* **[Python][python]** (version >= 3.9)
|
||||
|
||||
### **References**
|
||||
* **[CMakePresets][cmake presets]**
|
||||
* **[Ninja (CMake generator)][ninja generator]**
|
||||
* **[Python Virtual Environment][py venv]**
|
||||
* **[Devcontainer](devcontainer)**
|
||||
|
||||
### Prerequisites
|
||||
* Open repository in a VS Code [Devcontainer](../docker/sparkd/dev/README.md), or
|
||||
create your own [docker container](../docker/sparkd/dev/README.md) in which to build
|
||||
|
||||
### Notes
|
||||
* *Run commands from the repo root dir unless otherwise noted*<br>
|
||||
|
||||
1. Set up the **[Python virtual environment][py venv]**
|
||||
```
|
||||
# Create the virtual environment
|
||||
python3 -m venv .venv
|
||||
|
||||
# Activate the virtual environment
|
||||
. .venv/bin/activate
|
||||
|
||||
# Update pip
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
# Install packages
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
2. Build
|
||||
* *Run commands in python virtual environment*
|
||||
```
|
||||
# Configure clang debug
|
||||
cmake --preset sparkd-clang-debug
|
||||
|
||||
# Build clang debug
|
||||
cmake --build --preset spark-clang-debug
|
||||
|
||||
# Configure gcc release
|
||||
cmake --build --preset sparkd-gcc-release
|
||||
|
||||
# Build gcc release
|
||||
cmake --build --preset sparkd-gcc-release
|
||||
```
|
||||
|
||||
# Build Spark Api Server on Windows
|
||||
### **Dependencies**
|
||||
* **[CMake][cmake]** (version >= 3.23)
|
||||
* **[Python][python]** (version >= 3.9)
|
||||
* **[Visual Studio][visual studio]** (version)
|
||||
* **[Dotnet][dotnet]** (sdk version >= 7.0.0)
|
||||
|
||||
### **References**
|
||||
* **[CMakePresets][cmake presets]**
|
||||
* **[Visual Studio 17 2022 (CMake generator)][visual studio generator]**
|
||||
* **[Python Virtual Environment][py venv]**
|
||||
|
||||
### Notes
|
||||
* *Run commands from the repo root dir unless otherwise noted*
|
||||
|
||||
1. Set up the **[Python Virtual Environment][py venv]**
|
||||
```
|
||||
# Create the virtual environment
|
||||
python3 -m venv .venv
|
||||
|
||||
# Activate the virtual environment
|
||||
.venv\bin\activate.bat
|
||||
|
||||
# Update pip
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
# Install packages
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
2. Build
|
||||
* *Run in python virtual environment*
|
||||
```
|
||||
# Configure
|
||||
cmake --preset spark-api-server-windows
|
||||
|
||||
# Build debug
|
||||
cmake --build --preset spark-api-server-windows-debug
|
||||
dotnet build Spark.Api.Server.sln --configuration Debug
|
||||
|
||||
# Build release
|
||||
cmake --build --preset spark-api-server-windows-release
|
||||
dotnet build Spark.Api.Server.sln --configuration Release
|
||||
```
|
||||
|
||||
# Build Spark Api Server on Linux
|
||||
### **Dependencies**
|
||||
* **[CMake][cmake]** (version >= 3.23)
|
||||
* **[Ninja Build][ninja build]**
|
||||
* **[Python][python]** (version >= 3.9)
|
||||
* **[Dotnet][dotnet]** (sdk version >= 7.0.0)
|
||||
|
||||
### **References**
|
||||
* **[CMakePresets][cmake presets]**
|
||||
* **[Ninja Multi-Config (CMake generator)][ninja multi-config generator]**
|
||||
* **[Python Virtual Environment][py venv]**
|
||||
|
||||
### Prerequisites
|
||||
* Open repository in a VS Code [Devcontainer](../docker/sparkd/dev/README.md), or
|
||||
create your own [docker container](../docker/sparkd/dev/README.md) in which to build
|
||||
|
||||
### Notes
|
||||
* *Run commands from the repo root dir unless otherwise noted*
|
||||
|
||||
1. Set up the **[Python Virtual Environment][py venv]**
|
||||
```
|
||||
# Create the virtual environment
|
||||
python3 -m venv .venv
|
||||
|
||||
# Activate the virtual environment
|
||||
. .venv/bin/activate
|
||||
|
||||
# Update pip
|
||||
python -m pip install --upgrade pip
|
||||
|
||||
# Install packages
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
2. Build
|
||||
* *Run in python virtual environment*
|
||||
```
|
||||
# Configure
|
||||
cmake --preset spark-api-server-linux
|
||||
|
||||
# Build debug
|
||||
cmake --build --preset spark-api-server-linux-debug
|
||||
dotnet build Spark.Api.Server.sln --configuration Debug
|
||||
|
||||
# Build release
|
||||
cmake --build --preset spark-api-server-linux-release
|
||||
dotnet build Spark.Api.Server.sln --configuration Release
|
||||
```
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"version": 4,
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Windows",
|
||||
"intelliSenseMode": "windows-msvc-x64",
|
||||
"includePath": [
|
||||
"${workspaceFolder}/src/",
|
||||
"${workspaceFolder}/build/src/",
|
||||
"${workspaceFolder}/externals/windows/include/"
|
||||
],
|
||||
"defines": ["_WIN32", "__x86_64__"],
|
||||
"browse": {
|
||||
"path": [
|
||||
"${workspaceRoot}/src",
|
||||
"${workspaceRoot}/build/src"
|
||||
],
|
||||
"limitSymbolsToIncludedHeaders": true
|
||||
},
|
||||
"cStandard": "c17",
|
||||
"cppStandard": "c++17",
|
||||
"configurationProvider": "ms-vscode.cmake-tools",
|
||||
"compilerPath": "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.34.31933/bin/Hostx64/x64/cl.exe",
|
||||
"mergeConfigurations": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"FormattingOptions": {
|
||||
"NewLine": "\n",
|
||||
"UseTabs": false,
|
||||
"TabSize": 3,
|
||||
"IndentationSize": 3,
|
||||
"SpacingAfterMethodDeclarationName": false,
|
||||
"SpaceWithinMethodDeclarationParenthesis": false,
|
||||
"SpaceBetweenEmptyMethodDeclarationParentheses": false,
|
||||
"SpaceAfterMethodCallName": false,
|
||||
"SpaceWithinMethodCallParentheses": false,
|
||||
"SpaceBetweenEmptyMethodCallParentheses": false,
|
||||
"SpaceAfterControlFlowStatementKeyword": true,
|
||||
"SpaceWithinExpressionParentheses": false,
|
||||
"SpaceWithinCastParentheses": false,
|
||||
"SpaceWithinOtherParentheses": false,
|
||||
"SpaceAfterCast": false,
|
||||
"SpacesIgnoreAroundVariableDeclaration": false,
|
||||
"SpaceBeforeOpenSquareBracket": false,
|
||||
"SpaceBetweenEmptySquareBrackets": false,
|
||||
"SpaceWithinSquareBrackets": false,
|
||||
"SpaceAfterColonInBaseTypeDeclaration": true,
|
||||
"SpaceAfterComma": true,
|
||||
"SpaceAfterDot": false,
|
||||
"SpaceAfterSemicolonsInForStatement": true,
|
||||
"SpaceBeforeColonInBaseTypeDeclaration": true,
|
||||
"SpaceBeforeComma": false,
|
||||
"SpaceBeforeDot": false,
|
||||
"SpaceBeforeSemicolonsInForStatement": false,
|
||||
"SpacingAroundBinaryOperator": "single",
|
||||
"IndentBraces": false,
|
||||
"IndentBlock": true,
|
||||
"IndentSwitchSection": true,
|
||||
"IndentSwitchCaseSection": true,
|
||||
"LabelPositioning": "oneLess",
|
||||
"WrappingPreserveSingleLine": true,
|
||||
"WrappingKeepStatementsOnSingleLine": true,
|
||||
"NewLinesForBracesInTypes": false,
|
||||
"NewLinesForBracesInMethods": false,
|
||||
"NewLinesForBracesInProperties": false,
|
||||
"NewLinesForBracesInAccessors": false,
|
||||
"NewLinesForBracesInAnonymousMethods": false,
|
||||
"NewLinesForBracesInControlBlocks": false,
|
||||
"NewLinesForBracesInAnonymousTypes": false,
|
||||
"NewLinesForBracesInObjectCollectionArrayInitializers": false,
|
||||
"NewLinesForBracesInLambdaExpressionBody": false,
|
||||
"NewLineForElse": false,
|
||||
"NewLineForCatch": false,
|
||||
"NewLineForFinally": false,
|
||||
"NewLineForMembersInObjectInit": true,
|
||||
"NewLineForMembersInAnonymousTypes": true,
|
||||
"NewLineForClausesInQuery": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
FROM spark-crypto_18.04
|
||||
|
||||
RUN \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& apt-get install -y \
|
||||
htop \
|
||||
locales \
|
||||
source-highlight \
|
||||
powerline \
|
||||
fonts-powerline
|
||||
|
||||
|
||||
# Hide these in the .docker directory to avoid conflicts with existing repos on
|
||||
# this computer (in case a parent dir, such as $HOME, is mounted inside a
|
||||
# container)
|
||||
ARG repo_root="/home/john/Documents/repos/.docker"
|
||||
|
||||
# Create dirs for public/private repos
|
||||
USER john
|
||||
RUN \
|
||||
mkdir -p $repo_root/public \
|
||||
&& mkdir -p $repo_root/private
|
||||
|
||||
|
||||
## Get latest fish (build from source)
|
||||
# 1) get build deps
|
||||
USER root
|
||||
RUN \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& apt-get install -y software-properties-common
|
||||
RUN \
|
||||
apt-add-repository ppa:fish-shell/release-3 \
|
||||
&& sed -i "s/^# deb/deb/g" /etc/apt/sources.list
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get build-dep -y fish
|
||||
|
||||
|
||||
# 2) Clone repo
|
||||
USER john
|
||||
RUN \
|
||||
cd $repo_root/public \
|
||||
&& git clone https://github.com/fish-shell/fish-shell.git
|
||||
|
||||
RUN \
|
||||
cd $repo_root/public/fish-shell \
|
||||
&& mkdir build \
|
||||
&& cd build \
|
||||
&& cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_DOCS=0 .. \
|
||||
&& cmake --build .
|
||||
|
||||
# Switch to root, rather than running inline w/ sudo cmd, to avoid having to
|
||||
# enter a password
|
||||
USER root
|
||||
RUN \
|
||||
cd $repo_root/public/fish-shell/build \
|
||||
&& make install
|
||||
USER john
|
||||
|
||||
|
||||
## Get oh-my-fish
|
||||
RUN \
|
||||
cd $repo_root/public \
|
||||
&& git clone https://github.com/oh-my-fish/oh-my-fish.git
|
||||
|
||||
RUN \
|
||||
cd $repo_root/public/oh-my-fish \
|
||||
&& ./bin/install --noninteractive --yes
|
||||
|
||||
|
||||
## Get my fish config
|
||||
RUN \
|
||||
cd $repo_root/private \
|
||||
&& git clone https://github.com/johncolvin-og/myfishconfig
|
||||
|
||||
RUN \
|
||||
cd $repo_root/private/myfishconfig \
|
||||
&& cp src/config.fish /home/john/.config/fish/ \
|
||||
&& cp src/aliases.fish /home/john/.config/fish/ \
|
||||
&& cp -r src/functions /home/john/.config/fish/ \
|
||||
&& cp -r src/themes/johncolvin /home/john/.local/share/omf/themes/ \
|
||||
&& fish --command "omf theme johncolvin"
|
||||
|
||||
|
||||
## Get my bash config (back up existing)
|
||||
RUN \
|
||||
cd $repo_root/private \
|
||||
&& git clone https://github.com/johncolvin-og/mybashconfig \
|
||||
&& cd mybashconfig \
|
||||
&& cp src/* /home/john/
|
||||
|
||||
|
||||
# Get vim files/tools
|
||||
USER root
|
||||
RUN \
|
||||
DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& apt-get install -y curl
|
||||
USER john
|
||||
RUN curl -fLo home/john/.vim/autoload/plug.vim --create-dirs \
|
||||
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||
|
||||
|
||||
# Some fonts look sketchy if the language isn't set to english:
|
||||
# * The powerline git glyphs in the fish prompt are all displayed as question
|
||||
# marks.
|
||||
#
|
||||
# * The shell confuses the position of the cursor, so characters are left
|
||||
# around when they should have been cleared, and the cursor's home position
|
||||
# is pushed one or two places to the right.
|
||||
#
|
||||
# * Most likely, the bad cursor position is caused by some dependencies the
|
||||
# interpretation of escape sequences have on the language setting. At this
|
||||
# point I don't even care anymore (literally took 8 hours to figure this
|
||||
# out). I just know this shit is needed to make the prompt work correctly.
|
||||
USER root
|
||||
RUN locale-gen "en_US.UTF-8"
|
||||
USER john
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LANGUAGE en_US:en
|
||||
ENV LC_ALL en_US.UTF-8
|
||||
RUN fc-cache -vf
|
||||
Executable
+16
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
set this_dir (realpath (dirname (status -f)))
|
||||
set image_working_dir (realpath "$this_dir/../..")
|
||||
|
||||
set image_name $argv[1]
|
||||
if test (count $argv) -eq 0
|
||||
set image_name_cmd "$this_dir/docker_image_name.fish"
|
||||
set image_name (eval $image_name_cmd)
|
||||
end
|
||||
|
||||
docker build \
|
||||
-f "$this_dir/Dockerfile" \
|
||||
-t "$image_name" \
|
||||
"$image_working_dir"
|
||||
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
if test (count $argv) -gt 0
|
||||
echo $argv
|
||||
exit 0
|
||||
end
|
||||
|
||||
set image_name_cmd (realpath (dirname (status -f)))"/docker_image_name.fish"
|
||||
set image_name (eval $image_name_cmd)
|
||||
echo $image_name
|
||||
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
echo "$USER""s_"(basename (git rev-parse --show-toplevel))"-dev"
|
||||
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
set inst_name $argv[1]
|
||||
if test (count $argv) -eq 0
|
||||
set script_dir (realpath (dirname (status -f)))
|
||||
set inst_name (eval $script_dir"/docker_container_name.fish")
|
||||
end
|
||||
|
||||
set working_dir (realpath (pwd))
|
||||
echo $inst_name
|
||||
docker exec -w $working_dir -it "$inst_name" bash
|
||||
|
||||
Executable
+148
@@ -0,0 +1,148 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
function print_help_and_exit
|
||||
echo "\
|
||||
Usage: setup_builds.sh [OPTIONS] compiler build-type
|
||||
|
||||
Positionals:
|
||||
gcc Compile with gcc
|
||||
clang Compile with clang
|
||||
debug Build debug
|
||||
release Build release
|
||||
|
||||
Options:
|
||||
--compiler <clang|gcc> Specify the compiler
|
||||
--type <debug|release> Specify the type of build
|
||||
-f,--force Overwrite existing build directories
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
"
|
||||
exit $argv[1]
|
||||
end
|
||||
|
||||
function assert_dir
|
||||
if test ! -d "$argv[1]"
|
||||
if test -n "$argv[2]"
|
||||
echo "Invalid variable "$argv[2]": '"$argv[1]"' is not a directory"
|
||||
else
|
||||
echo "'"$argv[1]"' is not a directory"
|
||||
end
|
||||
exit 1
|
||||
end
|
||||
end
|
||||
|
||||
# common variables
|
||||
|
||||
set tools_path (realpath (dirname (status -f)))
|
||||
set spartan_path_cmd $tools_path/spartan_path.fish
|
||||
set repo_root (eval $spartan_path_cmd "repo-root")
|
||||
set build_root "$repo_root"/"build"
|
||||
mkdir -p "$build_root"
|
||||
|
||||
# Initialize the build directory. Expected arguments: <compiler>, <build_type>
|
||||
# Note: this method assumes the variables 'repot_root' and 'build_root' have
|
||||
# already been properly initialized
|
||||
function setup_build
|
||||
assert_dir $repo_root
|
||||
assert_dir $build_root
|
||||
set compiler "$argv[1]"
|
||||
set c_compiler (which cc)
|
||||
set build_type "$argv[2]"
|
||||
|
||||
if test \( -z "$build_type" \) -o \( \( "$build_type" != debug \) -a \( "$build_type" != release \) \)
|
||||
print_help_and_exit 1
|
||||
end
|
||||
|
||||
if test "$build_type" = debug
|
||||
set build_type_arg Debug
|
||||
if test "$compiler" = gcc
|
||||
set compiler_arg "/usr/lib/ccache/g++"
|
||||
else
|
||||
# set compiler_arg "/usr/lib/ccache/clang++"
|
||||
set compiler_arg "clang++"
|
||||
set c_compiler (which clang)
|
||||
end
|
||||
else if test "$build_type" = release
|
||||
set build_type_arg Release
|
||||
if test "$compiler" = gcc
|
||||
set compiler_arg "g++"
|
||||
else
|
||||
set compiler_arg "clang++"
|
||||
end
|
||||
end
|
||||
|
||||
if test \( -z "$compiler" \) -o \( \( "$compiler" != gcc \) -a \( "$compiler" != clang \) \)
|
||||
print_help_and_exit 1
|
||||
end
|
||||
|
||||
set build_dest $build_root"/"$compiler"/"$build_type
|
||||
|
||||
echo "Set up build: "$compiler" "$build_type
|
||||
|
||||
if test \( -z "$force" \) -a \( -d $build_dest \)
|
||||
echo "The build directory '"$build_dest"' already exists (use -f to overwrite)"
|
||||
return 1
|
||||
end
|
||||
|
||||
rm -rf "$build_dest"
|
||||
mkdir -p "$build_dest"
|
||||
cd "$build_dest"
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=$build_type_arg -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_C_COMPILER=$c_compiler -DCMAKE_CXX_COMPILER=$compiler_arg $repo_root
|
||||
end
|
||||
|
||||
# The while loop below removes arguments (via shift) as it parses them.
|
||||
# Additional information that needs to be extracted from the arguments must be
|
||||
# done so before the loop is executed.
|
||||
|
||||
set i 1
|
||||
while test $i -le (count $argv)
|
||||
switch $argv[$i]
|
||||
case --compiler
|
||||
set i (math "$i + 1")
|
||||
set compiler $argv[$i]
|
||||
case clang
|
||||
set compiler clang
|
||||
case gcc
|
||||
set compiler gcc
|
||||
case --type
|
||||
set i (math "$i + 1")
|
||||
set build_type $argv[$i]
|
||||
case release
|
||||
set build_type release
|
||||
case debug
|
||||
set build_type debug
|
||||
case -f
|
||||
set force 1
|
||||
case --force
|
||||
set force 1
|
||||
case -h
|
||||
print_help_and_exit 0
|
||||
case --help
|
||||
print_help_and_exit 0
|
||||
case '*'
|
||||
print_help_and_exit 1
|
||||
end
|
||||
set i (math "$i + 1")
|
||||
end
|
||||
|
||||
echo "compiler in "$compiler
|
||||
echo "build type in "$build_type
|
||||
if test -n "$compiler"
|
||||
if test -n "$build_type"
|
||||
setup_build $compiler $build_type
|
||||
else
|
||||
# all builds for the specified compiler
|
||||
setup_build $compiler debug
|
||||
setup_build $compiler release
|
||||
end
|
||||
else if test -n "$build_type"
|
||||
# all builds for the specified build type
|
||||
setup_build gcc $build_type
|
||||
setup_build clang $build_type
|
||||
else
|
||||
# all builds
|
||||
setup_build gcc debug
|
||||
setup_build gcc release
|
||||
setup_build clang debug
|
||||
setup_build clang release
|
||||
end
|
||||
Executable
+153
@@ -0,0 +1,153 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
function print_help_and_exit
|
||||
echo "\
|
||||
Usage: setup_builds.sh [OPTIONS] compiler build-type
|
||||
|
||||
Positionals:
|
||||
gcc Compile with gcc
|
||||
clang Compile with clang
|
||||
debug Build debug
|
||||
release Build release
|
||||
|
||||
Options:
|
||||
--compiler <clang|gcc> Specify the compiler
|
||||
--type <debug|release> Specify the type of build
|
||||
-f,--force Overwrite existing build directories
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
"
|
||||
exit $argv[1]
|
||||
end
|
||||
|
||||
function assert_dir
|
||||
if test ! -d "$argv[1]"
|
||||
if test -n "$argv[2]"
|
||||
echo "Invalid variable "$argv[2]": '"$argv[1]"' is not a directory"
|
||||
else
|
||||
echo "'"$argv[1]"' is not a directory"
|
||||
end
|
||||
exit 1
|
||||
end
|
||||
end
|
||||
|
||||
# common variables
|
||||
|
||||
#set tools_path (readlink -f (pwd))
|
||||
#set tools_path (cd (dirname (status --current-filename)); and pwd)
|
||||
set tools_path (realpath (dirname (status -f)))
|
||||
set spartan_path_cmd $tools_path/spartan_path.fish
|
||||
set repo_root (eval $spartan_path_cmd "repo-root")
|
||||
# Don't call 'spartan_path_cmd "build"' bc it returns specific build path
|
||||
# (i.e., for a particular compiler/build type), not the root build path
|
||||
# set build_root (eval $spartan_path_cmd "build")
|
||||
set build_root "$repo_root"/"build"
|
||||
mkdir -p "$build_root"
|
||||
|
||||
# Initialize the build directory. Expected arguments: <compiler>, <build_type>
|
||||
# Note: this method assumes the variables 'repot_root' and 'build_root' have
|
||||
# already been properly initialized
|
||||
function setup_build
|
||||
assert_dir $repo_root
|
||||
assert_dir $build_root
|
||||
set compiler "$argv[1]"
|
||||
set build_type "$argv[2]"
|
||||
|
||||
if test \( -z "$build_type" \) -o \( \( "$build_type" != "debug" \) -a \( "$build_type" != "release" \) \)
|
||||
print_help_and_exit 1
|
||||
end
|
||||
|
||||
if test "$build_type" = "debug"
|
||||
set build_type_arg "Debug"
|
||||
if test "$compiler" = "gcc"
|
||||
set compiler_arg "/usr/lib/ccache/g++"
|
||||
else
|
||||
set compiler_arg "/usr/lib/ccache/clang++"
|
||||
end
|
||||
else if test "$build_type" = "release"
|
||||
set build_type_arg "Release"
|
||||
if test "$compiler" = "gcc"
|
||||
set compiler_arg "g++"
|
||||
else
|
||||
set compiler_arg "clang++"
|
||||
end
|
||||
end
|
||||
|
||||
if test \( -z "$compiler" \) -o \( \( "$compiler" != "gcc" \) -a \( "$compiler" != "clang" \) \)
|
||||
print_help_and_exit 1
|
||||
end
|
||||
|
||||
set build_dest $build_root"/"$compiler"/"$build_type
|
||||
set conan_dest $repo_root"/conan/"$compiler"_"$build_type
|
||||
|
||||
echo "Set up build: "$compiler" "$build_type
|
||||
|
||||
if test \( -z "$force" \) -a \( -d $build_dest \)
|
||||
echo "The build directory '"$build_dest"' already exists (use -f to overwrite)"
|
||||
return 1
|
||||
end
|
||||
|
||||
rm -rf "$build_dest"
|
||||
mkdir -p "$build_dest"
|
||||
mkdir -p "$conan_dest"
|
||||
cd "$build_dest"
|
||||
conan install --build missing --profile $conan_dest $repo_root
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=$build_type_arg -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_CXX_COMPILER=$compiler_arg $repo_root
|
||||
end
|
||||
|
||||
# The while loop below removes arguments (via shift) as it parses them.
|
||||
# Additional information that needs to be extracted from the arguments must be
|
||||
# done so before the loop is executed.
|
||||
|
||||
set i 1
|
||||
while test $i -le (count $argv)
|
||||
switch $argv[$i]
|
||||
case '--compiler'
|
||||
set i (math "$i + 1")
|
||||
set compiler $argv[$i]
|
||||
case 'clang'
|
||||
set compiler 'clang'
|
||||
case 'gcc'
|
||||
set compiler 'gcc'
|
||||
case '--type'
|
||||
set i (math "$i + 1")
|
||||
set build_type $argv[$i]
|
||||
case 'release'
|
||||
set build_type 'release'
|
||||
case 'debug'
|
||||
set build_type 'debug'
|
||||
case '-f'
|
||||
set force 1
|
||||
case '--force'
|
||||
set force 1
|
||||
case '-h'
|
||||
print_help_and_exit 0
|
||||
case '--help'
|
||||
print_help_and_exit 0
|
||||
case '*'
|
||||
print_help_and_exit 1
|
||||
end
|
||||
set i (math "$i + 1")
|
||||
end
|
||||
|
||||
echo "compiler in "$compiler
|
||||
echo "build type in "$build_type
|
||||
if test -n "$compiler"
|
||||
if test -n "$build_type"
|
||||
setup_build $compiler $build_type
|
||||
else
|
||||
# all builds for the specified compiler
|
||||
setup_build $compiler "debug"
|
||||
setup_build $compiler "release"
|
||||
end
|
||||
else if test -n "$build_type"
|
||||
# all builds for the specified build type
|
||||
setup_build "gcc" $build_type
|
||||
setup_build "clang" $build_type
|
||||
else
|
||||
# all builds
|
||||
setup_build "gcc" "debug"
|
||||
setup_build "gcc" "release"
|
||||
setup_build "clang" "debug"
|
||||
setup_build "clang" "release"
|
||||
end
|
||||
Executable
+92
@@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
#basename (git rev-parse --show-toplevel)
|
||||
|
||||
function print_help_and_exit
|
||||
echo "\
|
||||
Print paths to core parts of the repository
|
||||
Usage: sparkd_path.sh SUBCOMMAND
|
||||
|
||||
Subcommands:
|
||||
build Print build path
|
||||
repo-root Print repo root path
|
||||
|
||||
"
|
||||
exit $argv[1]
|
||||
end
|
||||
|
||||
function print_build_help_and_exit
|
||||
echo "\
|
||||
Print build path
|
||||
Usage: sparkd_path.sh build [OPTIONS] compiler build-type
|
||||
|
||||
Positionals:
|
||||
gcc Print gcc build path
|
||||
clang Print clang build path
|
||||
debug Print debug build path
|
||||
release Print release build path
|
||||
|
||||
Options:
|
||||
--compiler <clang|gcc> Specify the compiler
|
||||
--type <debug|release> Specify the type of build
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
"
|
||||
exit $argv[1]
|
||||
end
|
||||
|
||||
function print_repo_root
|
||||
git rev-parse --show-toplevel
|
||||
end
|
||||
|
||||
function run_repo_root
|
||||
print_repo_root
|
||||
end
|
||||
|
||||
function run_build
|
||||
set compiler "gcc"
|
||||
set build_type "release"
|
||||
set i 1
|
||||
while test $i -lt (count $argv)
|
||||
switch $argv[$i]
|
||||
case '--compiler'
|
||||
set i (math "$i + 1")
|
||||
set compiler $argv[$i]
|
||||
case 'clang'
|
||||
set compiler 'clang'
|
||||
case 'gcc'
|
||||
set compiler 'gcc'
|
||||
case '--type'
|
||||
set i (math "$i + 1")
|
||||
set build_type $argv[$i]
|
||||
case 'release'
|
||||
set build_type 'release'
|
||||
case 'debug'
|
||||
set build_type 'debug'
|
||||
'-h'
|
||||
print_build_help_and_exit 0
|
||||
'--help'
|
||||
print_build_help_and_exit 0
|
||||
'*'
|
||||
print_build_help_and_exit 1
|
||||
end
|
||||
set i (math "$i + 1")
|
||||
end
|
||||
if test \( $compiler = "clang" \) -o \( $compiler = "gcc" \)
|
||||
set comp_path $compiler
|
||||
else
|
||||
print_build_help_and_exit 1
|
||||
end
|
||||
set src_root (print_repo_root)
|
||||
set build_root (readlink -f "$src_root""/build")
|
||||
set build_dest $build_root"/"$compiler"/"$build_type
|
||||
echo $build_dest
|
||||
end
|
||||
|
||||
if test "$argv[1]" = "repo-root"
|
||||
print_repo_root $argv[2..-1]
|
||||
else if test "$argv[1]" = "build"
|
||||
run_build $argv[2..-1]
|
||||
else
|
||||
print_help_and_exit 1
|
||||
end
|
||||
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
set image_name $argv[1]
|
||||
set cont_name $argv[2]
|
||||
|
||||
if test (count $argv) -lt 2
|
||||
if test (count $argv) -lt 1
|
||||
set image_name_cmd (realpath (dirname (status -f)))"/docker_image_name.fish"
|
||||
set image_name (eval $image_name_cmd)
|
||||
end
|
||||
set cont_name_cmd (realpath (dirname (status -f)))"/docker_container_name.fish "$image_name
|
||||
set cont_name (eval $cont_name_cmd)
|
||||
end
|
||||
|
||||
set working_dir (realpath (pwd))
|
||||
|
||||
set home_path /home/john
|
||||
set repo_path (git rev-parse --show-toplevel)
|
||||
set repo_path_out /home/john/Documents/repos/bts/(basename $repo_path)
|
||||
set working_dir $repo_path_out
|
||||
|
||||
echo "starting docker instance '"$cont_name"' (image '"$image_name"')"
|
||||
echo "working dir "$working_dir
|
||||
|
||||
docker run \
|
||||
--rm \
|
||||
--net host \
|
||||
-h (hostname) \
|
||||
-e "TZ=America/New_York" \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--security-opt seccomp=unconfined \
|
||||
--name $cont_name \
|
||||
-v $repo_path:$repo_path_out \
|
||||
-u (id -u $USER) \
|
||||
-w $working_dir \
|
||||
--shm-size=4024m \
|
||||
-t \
|
||||
-i \
|
||||
-d \
|
||||
-e DISPLAY="$DISPLAY" \
|
||||
"$image_name" \
|
||||
bash
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
"includePath": [
|
||||
"/usr/include",
|
||||
"/usr/local/include",
|
||||
"${workspaceRoot}"
|
||||
"${workspaceRoot}",
|
||||
"${workspaceFolder}/src",
|
||||
"${workspaceRoot}/externals/linux/include"
|
||||
],
|
||||
"defines": [],
|
||||
"intelliSenseMode": "clang-x64",
|
||||
@@ -13,13 +15,16 @@
|
||||
"path": [
|
||||
"/usr/include",
|
||||
"/usr/local/include",
|
||||
"${workspaceRoot}"
|
||||
"${workspaceRoot}",
|
||||
"${workspaceFolder}/src",
|
||||
"${workspaceRoot}/externals/linux/include"
|
||||
],
|
||||
"limitSymbolsToIncludedHeaders": true,
|
||||
"databaseFilename": ""
|
||||
},
|
||||
"cStandard": "c11",
|
||||
"cppStandard": "c++17"
|
||||
"cppStandard": "c++17",
|
||||
"compileCommands": "${workspaceFolder}/build/ninja_debug/compile_commands.json"
|
||||
},
|
||||
{
|
||||
"name": "Windows",
|
||||
@@ -0,0 +1,513 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Spark Local",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"run",
|
||||
"test",
|
||||
"-a",
|
||||
"OutrightVanillaOrder"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceRoot}/build/gcc/debug/server/",
|
||||
"environment": [
|
||||
{
|
||||
"name": "TZ",
|
||||
"value": "America/Chicago"
|
||||
}
|
||||
],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "SparkVM Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"-a",
|
||||
"[ilink3]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Skip STL",
|
||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "LD LIBRARY",
|
||||
"text": "set env LD_LIBRARY_PATH=.",
|
||||
"ignoreFailures": false
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "(gdb) Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/gcc/debug/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"run"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceRoot}/build/gcc/debug/src/server/sparkd",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Client Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark.exe",
|
||||
"args": [],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "SDK Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark_sdk.exe",
|
||||
"args": [
|
||||
"md",
|
||||
"GLBX",
|
||||
"Future",
|
||||
"CL",
|
||||
"CLZ9",
|
||||
"--user=bts",
|
||||
"--pass="
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Excel Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "C:/Program Files/Microsoft Office/Office14/EXCEL.EXE",
|
||||
"args": [
|
||||
"${workspaceRoot}/build/Debug/bin/net471/spark_excel-addin64-packed.xll"
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Client Tests",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/sparkcmd.exe",
|
||||
"args": [
|
||||
"test",
|
||||
"ApiUpdateTests"
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Client Attach",
|
||||
"type": "clr",
|
||||
"request": "attach",
|
||||
"processId": "${command:pickProcess}"
|
||||
},
|
||||
{
|
||||
"name": "Spreader Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[spreader]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MD Synthetic Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[md][synthetic]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Spartan Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[spartan_md]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Matcher Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[matcher]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Admin Service Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/src/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[admin_service]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/src/server/sparkd/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Limiter Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/src/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[limiter]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/src/server/sparkd/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MD Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[algo]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Skip STL",
|
||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SparkVM attach",
|
||||
"type": "cppdbg",
|
||||
"request": "attach",
|
||||
"program": "/home/bts/spark/build/gcc/debug/src/server/sparkd/sparkd",
|
||||
"processId": "${command:pickRemoteProcess}",
|
||||
"MIMode": "gdb",
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Python",
|
||||
"type": "python",
|
||||
"request": "launch",
|
||||
"stopOnEntry": false,
|
||||
"python": "${command:python.interpreterPath}",
|
||||
"program": "${file}",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"env": {},
|
||||
"envFile": "${workspaceRoot}/.env",
|
||||
"args": [
|
||||
"DEBUG"
|
||||
],
|
||||
"debugOptions": [
|
||||
"WaitOnAbnormalExit",
|
||||
"WaitOnNormalExit",
|
||||
"RedirectOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Remote Attach",
|
||||
"type": "coreclr",
|
||||
"request": "attach",
|
||||
"processId": "${command:pickRemoteProcess}",
|
||||
"pipeTransport": {
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": true
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Remote Launch",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"program": "/usr/bin/dotnet",
|
||||
"args": [
|
||||
"sparkcmd.dll",
|
||||
"test",
|
||||
"test_join_create_and_takeout_market"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server",
|
||||
"pipeTransport": {
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": false
|
||||
},
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,941 @@
|
||||
{
|
||||
"$schema": "vscode://schemas/color-theme",
|
||||
"type": "dark",
|
||||
"colors": {
|
||||
"activityBar.background": "#111111",
|
||||
"activityBar.border": "#111111",
|
||||
"activityBar.foreground": "#888888",
|
||||
"activityBarBadge.background": "#88cc44",
|
||||
"activityBarBadge.foreground": "#222222",
|
||||
"badge.background": "#88cc44",
|
||||
"badge.foreground": "#222222",
|
||||
"button.background": "#333333",
|
||||
"button.foreground": "#888888",
|
||||
"button.hoverBackground": "#222222",
|
||||
"debugExceptionWidget.background": "#333333",
|
||||
"debugExceptionWidget.border": "#222222",
|
||||
"debugToolBar.background": "#111111",
|
||||
"diffEditor.insertedTextBackground": "#ffdd440c",
|
||||
"diffEditor.insertedTextBorder": "#ffdd44",
|
||||
"diffEditor.removedTextBackground": "#88bbff0c",
|
||||
"diffEditor.removedTextBorder": "#88bbff",
|
||||
"dropdown.background": "#222222",
|
||||
"dropdown.border": "#222222",
|
||||
"dropdown.foreground": "#888888",
|
||||
"editor.background": "#222222",
|
||||
"editor.findMatchBackground": "#44446655",
|
||||
"editor.findMatchHighlightBackground": "#444466aa",
|
||||
"editor.foreground": "#ffffff",
|
||||
"editor.hoverHighlightBackground": "#44446655",
|
||||
"editor.inactiveSelectionBackground": "#44446655",
|
||||
"editor.lineHighlightBackground": "#00000066",
|
||||
"editor.lineHighlightBorder": "#00000000",
|
||||
"editor.rangeHighlightBackground": "#333333",
|
||||
"editor.selectionBackground": "#444466",
|
||||
"editor.selectionHighlightBackground": "#44446655",
|
||||
"editor.wordHighlightBackground": "#44446655",
|
||||
"editor.wordHighlightStrongBackground": "#44446655",
|
||||
"editorBracketMatch.background": "#222222",
|
||||
"editorBracketMatch.border": "#666666",
|
||||
"editorCodeLens.foreground": "#666666",
|
||||
"editorCursor.foreground": "#ffffff",
|
||||
"editorError.foreground": "#ee5500",
|
||||
"editorGroup.border": "#111111",
|
||||
"editorGroup.dropBackground": "#111111bb",
|
||||
"editorGroupHeader.noTabsBackground": "#111111",
|
||||
"editorGroupHeader.tabsBackground": "#111111",
|
||||
"editorGroupHeader.tabsBorder": "#222222",
|
||||
"editorGutter.addedBackground": "#ffdd44",
|
||||
"editorGutter.background": "#222222",
|
||||
"editorGutter.deletedBackground": "#88bbff",
|
||||
"editorGutter.modifiedBackground": "#88bbff",
|
||||
"editorHoverWidget.background": "#333333",
|
||||
"editorHoverWidget.border": "#222222",
|
||||
"editorIndentGuide.background": "#333333",
|
||||
"editorLineNumber.foreground": "#555555",
|
||||
"editorLink.activeForeground": "#bba0ff",
|
||||
"editorMarkerNavigation.background": "#333333",
|
||||
"editorMarkerNavigationError.background": "#88bbff",
|
||||
"editorMarkerNavigationWarning.background": "#88bbff",
|
||||
"editorOverviewRuler.addedForeground": "#ffdd44",
|
||||
"editorOverviewRuler.border": "#222222",
|
||||
"editorOverviewRuler.currentContentForeground": "#333333",
|
||||
"editorOverviewRuler.deletedForeground": "#88bbff",
|
||||
"editorOverviewRuler.errorForeground": "#88bbff",
|
||||
"editorOverviewRuler.findMatchForeground": "#555555",
|
||||
"editorOverviewRuler.incomingContentForeground": "#333333",
|
||||
"editorOverviewRuler.infoForeground": "#bba0ff",
|
||||
"editorOverviewRuler.modifiedForeground": "#88bbff",
|
||||
"editorOverviewRuler.rangeHighlightForeground": "#333333",
|
||||
"editorOverviewRuler.selectionHighlightForeground": "#555555",
|
||||
"editorOverviewRuler.warningForeground": "#88bbff",
|
||||
"editorOverviewRuler.wordHighlightForeground": "#333333",
|
||||
"editorOverviewRuler.wordHighlightStrongForeground": "#555555",
|
||||
"editorRuler.foreground": "#ffffff",
|
||||
"editorSuggestWidget.background": "#333333",
|
||||
"editorSuggestWidget.border": "#333333",
|
||||
"editorSuggestWidget.foreground": "#888888",
|
||||
"editorSuggestWidget.highlightForeground": "#ffffff",
|
||||
"editorSuggestWidget.selectedBackground": "#666666",
|
||||
"editorWarning.border": "#00000000",
|
||||
"editorWarning.foreground": "#88bbff",
|
||||
"editorWhitespace.foreground": "#333333",
|
||||
"editorWidget.background": "#333333",
|
||||
"editorWidget.border": "#333333",
|
||||
"errorForeground": "#88bbff",
|
||||
"extensionButton.prominentBackground": "#333333",
|
||||
"extensionButton.prominentForeground": "#ffffff",
|
||||
"extensionButton.prominentHoverBackground": "#555555",
|
||||
"focusBorder": "#666666",
|
||||
"foreground": "#ffffff",
|
||||
"gitDecoration.modifiedResourceForeground": "#cccccc",
|
||||
"gitDecoration.untrackedResourceForeground": "#cccccc",
|
||||
"input.background": "#333333",
|
||||
"input.border": "#333333",
|
||||
"input.foreground": "#ffffff",
|
||||
"input.placeholderForeground": "#555555",
|
||||
"inputOption.activeBorder": "#555555",
|
||||
"inputValidation.errorBackground": "#333333",
|
||||
"inputValidation.errorBorder": "#88bbff",
|
||||
"inputValidation.infoBackground": "#333333",
|
||||
"inputValidation.infoBorder": "#bba0ff",
|
||||
"inputValidation.warningBackground": "#333333",
|
||||
"inputValidation.warningBorder": "#88bbff",
|
||||
"list.activeSelectionBackground": "#111111",
|
||||
"list.activeSelectionForeground": "#ffffff",
|
||||
"list.dropBackground": "#111111bf",
|
||||
"list.focusBackground": "#222222",
|
||||
"list.focusForeground": "#ffffff",
|
||||
"list.highlightForeground": "#ffffff",
|
||||
"list.hoverBackground": "#333333",
|
||||
"list.hoverForeground": "#ffffff",
|
||||
"list.inactiveSelectionBackground": "#000000",
|
||||
"list.inactiveSelectionForeground": "#ffffff",
|
||||
"menu.background": "#333333",
|
||||
"menu.foreground": "#ffffff",
|
||||
"merge.border": "#222222",
|
||||
"merge.currentContentBackground": "#333333",
|
||||
"merge.currentHeaderBackground": "#555555",
|
||||
"merge.incomingContentBackground": "#555555",
|
||||
"merge.incomingHeaderBackground": "#666666",
|
||||
"panel.background": "#111111",
|
||||
"panel.border": "#111111",
|
||||
"panelTitle.activeBorder": "#ffffff",
|
||||
"panelTitle.activeForeground": "#ffffff",
|
||||
"panelTitle.inactiveForeground": "#888888",
|
||||
"peekView.border": "#222222",
|
||||
"peekViewEditor.background": "#333333",
|
||||
"peekViewEditor.matchHighlightBackground": "#555555",
|
||||
"peekViewEditorGutter.background": "#333333",
|
||||
"peekViewResult.background": "#333333",
|
||||
"peekViewResult.fileForeground": "#888888",
|
||||
"peekViewResult.lineForeground": "#888888",
|
||||
"peekViewResult.matchHighlightBackground": "#555555",
|
||||
"peekViewResult.selectionBackground": "#333333",
|
||||
"peekViewResult.selectionForeground": "#ffffff",
|
||||
"peekViewTitle.background": "#333333",
|
||||
"peekViewTitleDescription.foreground": "#888888",
|
||||
"peekViewTitleLabel.foreground": "#ffffff",
|
||||
"pickerGroup.border": "#222222",
|
||||
"pickerGroup.foreground": "#555555",
|
||||
"progressBar.background": "#333333",
|
||||
"scrollbar.shadow": "#191919",
|
||||
"scrollbarSlider.activeBackground": "#ffffff12",
|
||||
"scrollbarSlider.background": "#ffffff12",
|
||||
"scrollbarSlider.hoverBackground": "#ffffff12",
|
||||
"selection.background": "#2255aa",
|
||||
"sideBar.background": "#111111",
|
||||
"sideBar.border": "#111111",
|
||||
"sideBar.foreground": "#888888",
|
||||
"sideBarSectionHeader.background": "#111111",
|
||||
"sideBarSectionHeader.foreground": "#666666",
|
||||
"sideBarTitle.foreground": "#555555",
|
||||
"statusBar.background": "#111111",
|
||||
"statusBar.border": "#111111",
|
||||
"statusBar.debuggingBackground": "#666666",
|
||||
"statusBar.debuggingForeground": "#ffffff",
|
||||
"statusBar.foreground": "#666666",
|
||||
"statusBar.noFolderBackground": "#111111",
|
||||
"statusBar.noFolderForeground": "#666666",
|
||||
"statusBarItem.activeBackground": "#222222",
|
||||
"statusBarItem.hoverBackground": "#222222",
|
||||
"statusBarItem.prominentBackground": "#333333",
|
||||
"statusBarItem.prominentHoverBackground": "#444444",
|
||||
"tab.activeBackground": "#222222",
|
||||
"tab.border": "#111111",
|
||||
"tab.inactiveBackground": "#111111",
|
||||
"tab.inactiveForeground": "#888888",
|
||||
"tab.unfocusedActiveBorder": "#888888",
|
||||
"tab.unfocusedActiveForeground": "#888888",
|
||||
"tab.unfocusedInactiveForeground": "#888888",
|
||||
"terminal.ansiBlack": "#333333",
|
||||
"terminal.ansiBlue": "#88bbff",
|
||||
"terminal.ansiBrightBlack": "#666666",
|
||||
"terminal.ansiBrightBlue": "#88bbff",
|
||||
"terminal.ansiBrightCyan": "#bba0ff",
|
||||
"terminal.ansiBrightGreen": "#ffdd44",
|
||||
"terminal.ansiBrightMagenta": "#88bbff",
|
||||
"terminal.ansiBrightRed": "#88bbff",
|
||||
"terminal.ansiBrightWhite": "#ffffff",
|
||||
"terminal.ansiBrightYellow": "#88cc44",
|
||||
"terminal.ansiCyan": "#bba0ff",
|
||||
"terminal.ansiGreen": "#ffdd44",
|
||||
"terminal.ansiMagenta": "#88bbff",
|
||||
"terminal.ansiRed": "#88bbff",
|
||||
"terminal.ansiWhite": "#ffffff",
|
||||
"terminal.ansiYellow": "#88cc44",
|
||||
"terminal.background": "#151515",
|
||||
"terminal.foreground": "#ffffff",
|
||||
"titleBar.activeBackground": "#111111",
|
||||
"titleBar.activeForeground": "#888888",
|
||||
"titleBar.inactiveBackground": "#111111",
|
||||
"titleBar.inactiveForeground": "#555555",
|
||||
"walkThrough.embeddedEditorBackground": "#111111",
|
||||
"widget.shadow": "#111111",
|
||||
//"activityBar.activeBorder": "#888888",
|
||||
//"activityBar.dropBorder": "#888888",
|
||||
//"activityBar.inactiveForeground": "#88888866",
|
||||
//"banner.background": "#111111",
|
||||
//"banner.foreground": "#ffffff",
|
||||
//"banner.iconForeground": "#3794ff",
|
||||
//"bookmarks.lineBackground": "#00000000",
|
||||
//"bookmarks.lineBorder": "#00000000",
|
||||
//"bookmarks.overviewRuler": "#157efb88",
|
||||
//"breadcrumb.activeSelectionForeground": "#ffffff",
|
||||
//"breadcrumb.background": "#222222",
|
||||
//"breadcrumb.focusForeground": "#ffffff",
|
||||
//"breadcrumb.foreground": "#ffffffcc",
|
||||
//"breadcrumbPicker.background": "#333333",
|
||||
//"button.secondaryBackground": "#3a3d41",
|
||||
//"button.secondaryForeground": "#ffffff",
|
||||
//"button.secondaryHoverBackground": "#45494e",
|
||||
//"charts.blue": "#3794ff",
|
||||
//"charts.foreground": "#ffffff",
|
||||
//"charts.green": "#89d185",
|
||||
//"charts.lines": "#ffffff80",
|
||||
//"charts.orange": "#d18616",
|
||||
//"charts.purple": "#b180d7",
|
||||
//"charts.red": "#ee5500",
|
||||
//"charts.yellow": "#88bbff",
|
||||
//"checkbox.background": "#222222",
|
||||
//"checkbox.border": "#222222",
|
||||
//"checkbox.foreground": "#888888",
|
||||
//"debugConsole.errorForeground": "#88bbff",
|
||||
//"debugConsole.infoForeground": "#3794ff",
|
||||
//"debugConsole.sourceForeground": "#ffffff",
|
||||
//"debugConsole.warningForeground": "#88bbff",
|
||||
//"debugConsoleInputIcon.foreground": "#ffffff",
|
||||
//"debugIcon.breakpointCurrentStackframeForeground": "#ffcc00",
|
||||
//"debugIcon.breakpointDisabledForeground": "#848484",
|
||||
//"debugIcon.breakpointForeground": "#e51400",
|
||||
//"debugIcon.breakpointStackframeForeground": "#89d185",
|
||||
//"debugIcon.breakpointUnverifiedForeground": "#848484",
|
||||
//"debugIcon.continueForeground": "#75beff",
|
||||
//"debugIcon.disconnectForeground": "#f48771",
|
||||
//"debugIcon.pauseForeground": "#75beff",
|
||||
//"debugIcon.restartForeground": "#89d185",
|
||||
//"debugIcon.startForeground": "#89d185",
|
||||
//"debugIcon.stepBackForeground": "#75beff",
|
||||
//"debugIcon.stepIntoForeground": "#75beff",
|
||||
//"debugIcon.stepOutForeground": "#75beff",
|
||||
//"debugIcon.stepOverForeground": "#75beff",
|
||||
//"debugIcon.stopForeground": "#f48771",
|
||||
//"debugTokenExpression.boolean": "#4e94ce",
|
||||
//"debugTokenExpression.error": "#f48771",
|
||||
//"debugTokenExpression.name": "#c586c0",
|
||||
//"debugTokenExpression.number": "#b5cea8",
|
||||
//"debugTokenExpression.string": "#ce9178",
|
||||
//"debugTokenExpression.value": "#cccccc99",
|
||||
//"debugView.exceptionLabelBackground": "#6c2022",
|
||||
//"debugView.exceptionLabelForeground": "#ffffff",
|
||||
//"debugView.stateLabelBackground": "#88888844",
|
||||
//"debugView.stateLabelForeground": "#ffffff",
|
||||
//"debugView.valueChangedHighlight": "#569cd6",
|
||||
//"descriptionForeground": "#ffffffb3",
|
||||
//"diffEditor.diagonalFill": "#cccccc33",
|
||||
//"editor.findRangeHighlightBackground": "#3a3d4166",
|
||||
//"editor.focusedStackFrameHighlightBackground": "#7abd7a4d",
|
||||
//"editor.foldBackground": "#4444664d",
|
||||
//"editor.inlineValuesBackground": "#ffc80033",
|
||||
//"editor.inlineValuesForeground": "#ffffff80",
|
||||
//"editor.linkedEditingBackground": "#ff00004d",
|
||||
//"editor.snippetFinalTabstopHighlightBorder": "#525252",
|
||||
//"editor.snippetTabstopHighlightBackground": "#7c7c7c4d",
|
||||
//"editor.stackFrameHighlightBackground": "#ffff0033",
|
||||
//"editor.symbolHighlightBackground": "#444466aa",
|
||||
//"editorActiveLineNumber.foreground": "#c6c6c6",
|
||||
//"editorBracketHighlight.foreground1": "#ffd700",
|
||||
//"editorBracketHighlight.foreground2": "#da70d6",
|
||||
//"editorBracketHighlight.foreground3": "#179fff",
|
||||
//"editorBracketHighlight.foreground4": "#00000000",
|
||||
//"editorBracketHighlight.foreground5": "#00000000",
|
||||
//"editorBracketHighlight.foreground6": "#00000000",
|
||||
//"editorBracketHighlight.unexpectedBracket.foreground": "#ff1212cc",
|
||||
//"editorBracketPairGuide.activeBackground1": "#00000000",
|
||||
//"editorBracketPairGuide.activeBackground2": "#00000000",
|
||||
//"editorBracketPairGuide.activeBackground3": "#00000000",
|
||||
//"editorBracketPairGuide.activeBackground4": "#00000000",
|
||||
//"editorBracketPairGuide.activeBackground5": "#00000000",
|
||||
//"editorBracketPairGuide.activeBackground6": "#00000000",
|
||||
//"editorBracketPairGuide.background1": "#00000000",
|
||||
//"editorBracketPairGuide.background2": "#00000000",
|
||||
//"editorBracketPairGuide.background3": "#00000000",
|
||||
//"editorBracketPairGuide.background4": "#00000000",
|
||||
//"editorBracketPairGuide.background5": "#00000000",
|
||||
//"editorBracketPairGuide.background6": "#00000000",
|
||||
//"editorGhostText.foreground": "#ffffff56",
|
||||
//"editorGutter.commentRangeForeground": "#c5c5c5",
|
||||
//"editorGutter.foldingControlForeground": "#c5c5c5",
|
||||
//"editorHint.foreground": "#eeeeeeb3",
|
||||
//"editorHoverWidget.foreground": "#ffffff",
|
||||
//"editorHoverWidget.highlightForeground": "#ffffff",
|
||||
//"editorHoverWidget.statusBarBackground": "#3d3d3d",
|
||||
//"editorIndentGuide.activeBackground": "#333333",
|
||||
//"editorInfo.foreground": "#3794ff",
|
||||
//"editorInlayHint.background": "#88cc4499",
|
||||
//"editorInlayHint.foreground": "#222222cc",
|
||||
//"editorInlayHint.parameterBackground": "#88cc4499",
|
||||
//"editorInlayHint.parameterForeground": "#222222cc",
|
||||
//"editorInlayHint.typeBackground": "#88cc4499",
|
||||
//"editorInlayHint.typeForeground": "#222222cc",
|
||||
//"editorLightBulb.foreground": "#ffcc00",
|
||||
//"editorLightBulbAutoFix.foreground": "#75beff",
|
||||
//"editorLineNumber.activeForeground": "#c6c6c6",
|
||||
//"editorMarkerNavigationError.headerBackground": "#88bbff1a",
|
||||
//"editorMarkerNavigationInfo.background": "#3794ff",
|
||||
//"editorMarkerNavigationInfo.headerBackground": "#3794ff1a",
|
||||
//"editorMarkerNavigationWarning.headerBackground": "#88bbff1a",
|
||||
//"editorOverviewRuler.bracketMatchForeground": "#a0a0a0",
|
||||
//"editorOverviewRuler.commonContentForeground": "#60606066",
|
||||
//"editorOverviewRuler.unicodeForeground": "#d186167e",
|
||||
//"editorPane.background": "#222222",
|
||||
//"editorSuggestWidget.focusHighlightForeground": "#ffffff",
|
||||
//"editorSuggestWidget.selectedForeground": "#ffffff",
|
||||
//"editorSuggestWidgetStatus.foreground": "#88888880",
|
||||
//"editorUnicodeHighlight.border": "#bd9b03",
|
||||
//"editorUnnecessaryCode.opacity": "#000000aa",
|
||||
//"editorWidget.foreground": "#ffffff",
|
||||
//"extensionBadge.remoteBackground": "#88cc44",
|
||||
//"extensionBadge.remoteForeground": "#222222",
|
||||
//"extensionIcon.preReleaseForeground": "#1d9271",
|
||||
//"extensionIcon.starForeground": "#ff8e00",
|
||||
//"extensionIcon.verifiedForeground": "#3794ff",
|
||||
//"gitDecoration.addedResourceForeground": "#81b88b",
|
||||
//"gitDecoration.conflictingResourceForeground": "#e4676b",
|
||||
//"gitDecoration.deletedResourceForeground": "#c74e39",
|
||||
//"gitDecoration.ignoredResourceForeground": "#8c8c8c",
|
||||
//"gitDecoration.renamedResourceForeground": "#73c991",
|
||||
//"gitDecoration.stageDeletedResourceForeground": "#c74e39",
|
||||
//"gitDecoration.stageModifiedResourceForeground": "#e2c08d",
|
||||
//"gitDecoration.submoduleResourceForeground": "#8db9e2",
|
||||
//"gitlens.closedAutolinkedIssueIconColor": "#a371f7",
|
||||
//"gitlens.closedPullRequestIconColor": "#f85149",
|
||||
//"gitlens.decorations.addedForegroundColor": "#81b88b",
|
||||
//"gitlens.decorations.branchAheadForegroundColor": "#35b15e",
|
||||
//"gitlens.decorations.branchBehindForegroundColor": "#b15e35",
|
||||
//"gitlens.decorations.branchDivergedForegroundColor": "#d8af1b",
|
||||
//"gitlens.decorations.branchMissingUpstreamForegroundColor": "#c74e39",
|
||||
//"gitlens.decorations.branchUnpublishedForegroundColor": "#35b15e",
|
||||
//"gitlens.decorations.branchUpToDateForegroundColor": "#888888",
|
||||
//"gitlens.decorations.copiedForegroundColor": "#73c991",
|
||||
//"gitlens.decorations.deletedForegroundColor": "#c74e39",
|
||||
//"gitlens.decorations.ignoredForegroundColor": "#8c8c8c",
|
||||
//"gitlens.decorations.modifiedForegroundColor": "#cccccc",
|
||||
//"gitlens.decorations.renamedForegroundColor": "#73c991",
|
||||
//"gitlens.decorations.untrackedForegroundColor": "#cccccc",
|
||||
//"gitlens.gutterBackgroundColor": "#ffffff13",
|
||||
//"gitlens.gutterForegroundColor": "#bebebe",
|
||||
//"gitlens.gutterUncommittedForegroundColor": "#00bcf299",
|
||||
//"gitlens.lineHighlightBackgroundColor": "#00bcf233",
|
||||
//"gitlens.lineHighlightOverviewRulerColor": "#00bcf299",
|
||||
//"gitlens.mergedPullRequestIconColor": "#a371f7",
|
||||
//"gitlens.openAutolinkedIssueIconColor": "#3fb950",
|
||||
//"gitlens.openPullRequestIconColor": "#3fb950",
|
||||
//"gitlens.trailingLineBackgroundColor": "#00000000",
|
||||
//"gitlens.trailingLineForegroundColor": "#99999959",
|
||||
//"gitlens.unpublishedCommitIconColor": "#35b15e",
|
||||
//"gitlens.unpulledChangesIconColor": "#b15e35",
|
||||
//"gitlens.unpushlishedChangesIconColor": "#35b15e",
|
||||
//"icon.foreground": "#c5c5c5",
|
||||
//"inputOption.activeBackground": "#66666666",
|
||||
//"inputOption.activeForeground": "#ffffff",
|
||||
//"inputOption.hoverBackground": "#5a5d5e80",
|
||||
//"interactive.activeCodeBorder": "#222222",
|
||||
//"interactive.inactiveCodeBorder": "#000000",
|
||||
//"keybindingLabel.background": "#8080802b",
|
||||
//"keybindingLabel.border": "#33333399",
|
||||
//"keybindingLabel.bottomBorder": "#44444499",
|
||||
//"keybindingLabel.foreground": "#cccccc",
|
||||
//"keybindingTable.headerBackground": "#ffffff0a",
|
||||
//"keybindingTable.rowsBackground": "#ffffff0a",
|
||||
//"list.deemphasizedForeground": "#8c8c8c",
|
||||
//"list.errorForeground": "#f88070",
|
||||
//"list.filterMatchBackground": "#444466aa",
|
||||
//"list.focusHighlightForeground": "#ffffff",
|
||||
//"list.focusOutline": "#666666",
|
||||
//"list.invalidItemForeground": "#b89500",
|
||||
//"list.warningForeground": "#cca700",
|
||||
//"listFilterWidget.background": "#653723",
|
||||
//"listFilterWidget.noMatchesOutline": "#be1100",
|
||||
//"listFilterWidget.outline": "#00000000",
|
||||
//"menu.selectionBackground": "#111111",
|
||||
//"menu.selectionForeground": "#ffffff",
|
||||
//"menu.separatorBackground": "#bbbbbb",
|
||||
//"menubar.selectionBackground": "#ffffff1a",
|
||||
//"menubar.selectionForeground": "#888888",
|
||||
//"merge.commonContentBackground": "#60606029",
|
||||
//"merge.commonHeaderBackground": "#60606066",
|
||||
//"minimap.errorHighlight": "#ff1212b3",
|
||||
//"minimap.findMatchHighlight": "#d18616",
|
||||
//"minimap.foregroundOpacity": "#000000",
|
||||
//"minimap.selectionHighlight": "#264f78",
|
||||
//"minimap.selectionOccurrenceHighlight": "#676767",
|
||||
//"minimap.unicodeHighlight": "#d18616",
|
||||
//"minimap.warningHighlight": "#88bbff",
|
||||
//"minimapGutter.addedBackground": "#587c0c",
|
||||
//"minimapGutter.deletedBackground": "#94151b",
|
||||
//"minimapGutter.modifiedBackground": "#0c7d9d",
|
||||
//"minimapSlider.activeBackground": "#ffffff09",
|
||||
//"minimapSlider.background": "#ffffff09",
|
||||
//"minimapSlider.hoverBackground": "#ffffff09",
|
||||
//"notebook.cellBorderColor": "#000000",
|
||||
//"notebook.cellEditorBackground": "#111111",
|
||||
//"notebook.cellInsertionIndicator": "#666666",
|
||||
//"notebook.cellStatusBarItemHoverBackground": "#ffffff26",
|
||||
//"notebook.cellToolbarSeparator": "#80808059",
|
||||
//"notebook.focusedCellBorder": "#666666",
|
||||
//"notebook.focusedEditorBorder": "#666666",
|
||||
//"notebook.inactiveFocusedCellBorder": "#000000",
|
||||
//"notebook.selectedCellBackground": "#000000",
|
||||
//"notebook.selectedCellBorder": "#000000",
|
||||
//"notebook.symbolHighlightBackground": "#ffffff0b",
|
||||
//"notebookScrollbarSlider.activeBackground": "#ffffff12",
|
||||
//"notebookScrollbarSlider.background": "#ffffff12",
|
||||
//"notebookScrollbarSlider.hoverBackground": "#ffffff12",
|
||||
//"notebookStatusErrorIcon.foreground": "#88bbff",
|
||||
//"notebookStatusRunningIcon.foreground": "#ffffff",
|
||||
//"notebookStatusSuccessIcon.foreground": "#89d185",
|
||||
//"notificationCenterHeader.background": "#424242",
|
||||
//"notificationLink.foreground": "#3794ff",
|
||||
//"notifications.background": "#333333",
|
||||
//"notifications.border": "#424242",
|
||||
//"notifications.foreground": "#ffffff",
|
||||
//"notificationsErrorIcon.foreground": "#ee5500",
|
||||
//"notificationsInfoIcon.foreground": "#3794ff",
|
||||
//"notificationsWarningIcon.foreground": "#88bbff",
|
||||
//"panel.dropBorder": "#ffffff",
|
||||
//"panelSection.border": "#111111",
|
||||
//"panelSection.dropBackground": "#111111bb",
|
||||
//"panelSectionHeader.background": "#80808033",
|
||||
//"ports.iconRunningProcessForeground": "#88cc44",
|
||||
//"problemsErrorIcon.foreground": "#ee5500",
|
||||
//"problemsInfoIcon.foreground": "#3794ff",
|
||||
//"problemsWarningIcon.foreground": "#88bbff",
|
||||
//"quickInput.background": "#333333",
|
||||
//"quickInput.foreground": "#ffffff",
|
||||
//"quickInputList.focusBackground": "#111111",
|
||||
//"quickInputList.focusForeground": "#ffffff",
|
||||
//"quickInputTitle.background": "#ffffff1b",
|
||||
//"sash.hoverBorder": "#666666",
|
||||
//"scm.providerBorder": "#454545",
|
||||
//"searchEditor.findMatchBackground": "#44446670",
|
||||
//"searchEditor.textInputBorder": "#333333",
|
||||
//"settings.checkboxBackground": "#222222",
|
||||
//"settings.checkboxBorder": "#222222",
|
||||
//"settings.checkboxForeground": "#888888",
|
||||
//"settings.dropdownBackground": "#222222",
|
||||
//"settings.dropdownBorder": "#222222",
|
||||
//"settings.dropdownForeground": "#888888",
|
||||
//"settings.dropdownListBorder": "#333333",
|
||||
//"settings.focusedRowBackground": "#80808024",
|
||||
//"settings.focusedRowBorder": "#ffffff1f",
|
||||
//"settings.headerForeground": "#e7e7e7",
|
||||
//"settings.modifiedItemIndicator": "#0c7d9d",
|
||||
//"settings.numberInputBackground": "#333333",
|
||||
//"settings.numberInputBorder": "#333333",
|
||||
//"settings.numberInputForeground": "#ffffff",
|
||||
//"settings.rowHoverBackground": "#80808012",
|
||||
//"settings.textInputBackground": "#333333",
|
||||
//"settings.textInputBorder": "#333333",
|
||||
//"settings.textInputForeground": "#ffffff",
|
||||
//"sideBar.dropBackground": "#111111bb",
|
||||
//"sideBySideEditor.horizontalBorder": "#111111",
|
||||
//"sideBySideEditor.verticalBorder": "#111111",
|
||||
//"statusBar.debuggingBorder": "#111111",
|
||||
//"statusBar.noFolderBorder": "#111111",
|
||||
//"statusBarItem.compactHoverBackground": "#ffffff33",
|
||||
//"statusBarItem.errorBackground": "#0066eb",
|
||||
//"statusBarItem.errorForeground": "#ffffff",
|
||||
//"statusBarItem.prominentForeground": "#666666",
|
||||
//"statusBarItem.remoteBackground": "#88cc44",
|
||||
//"statusBarItem.remoteForeground": "#222222",
|
||||
//"statusBarItem.warningBackground": "#0066eb",
|
||||
//"statusBarItem.warningForeground": "#ffffff",
|
||||
//"symbolIcon.arrayForeground": "#ffffff",
|
||||
//"symbolIcon.booleanForeground": "#ffffff",
|
||||
//"symbolIcon.classForeground": "#ee9d28",
|
||||
//"symbolIcon.colorForeground": "#ffffff",
|
||||
//"symbolIcon.constantForeground": "#ffffff",
|
||||
//"symbolIcon.constructorForeground": "#b180d7",
|
||||
//"symbolIcon.enumeratorForeground": "#ee9d28",
|
||||
//"symbolIcon.enumeratorMemberForeground": "#75beff",
|
||||
//"symbolIcon.eventForeground": "#ee9d28",
|
||||
//"symbolIcon.fieldForeground": "#75beff",
|
||||
//"symbolIcon.fileForeground": "#ffffff",
|
||||
//"symbolIcon.folderForeground": "#ffffff",
|
||||
//"symbolIcon.functionForeground": "#b180d7",
|
||||
//"symbolIcon.interfaceForeground": "#75beff",
|
||||
//"symbolIcon.keyForeground": "#ffffff",
|
||||
//"symbolIcon.keywordForeground": "#ffffff",
|
||||
//"symbolIcon.methodForeground": "#b180d7",
|
||||
//"symbolIcon.moduleForeground": "#ffffff",
|
||||
//"symbolIcon.namespaceForeground": "#ffffff",
|
||||
//"symbolIcon.nullForeground": "#ffffff",
|
||||
//"symbolIcon.numberForeground": "#ffffff",
|
||||
//"symbolIcon.objectForeground": "#ffffff",
|
||||
//"symbolIcon.operatorForeground": "#ffffff",
|
||||
//"symbolIcon.packageForeground": "#ffffff",
|
||||
//"symbolIcon.propertyForeground": "#ffffff",
|
||||
//"symbolIcon.referenceForeground": "#ffffff",
|
||||
//"symbolIcon.snippetForeground": "#ffffff",
|
||||
//"symbolIcon.stringForeground": "#ffffff",
|
||||
//"symbolIcon.structForeground": "#ffffff",
|
||||
//"symbolIcon.textForeground": "#ffffff",
|
||||
//"symbolIcon.typeParameterForeground": "#ffffff",
|
||||
//"symbolIcon.unitForeground": "#ffffff",
|
||||
//"symbolIcon.variableForeground": "#75beff",
|
||||
//"tab.activeForeground": "#ffffff",
|
||||
//"tab.activeModifiedBorder": "#3399cc",
|
||||
//"tab.inactiveModifiedBorder": "#3399cc80",
|
||||
//"tab.lastPinnedBorder": "#585858",
|
||||
//"tab.unfocusedActiveBackground": "#222222",
|
||||
//"tab.unfocusedActiveModifiedBorder": "#3399cc80",
|
||||
//"tab.unfocusedInactiveBackground": "#111111",
|
||||
//"tab.unfocusedInactiveModifiedBorder": "#3399cc40",
|
||||
//"terminal.border": "#111111",
|
||||
//"terminal.dropBackground": "#111111bb",
|
||||
//"terminal.selectionBackground": "#ffffff40",
|
||||
//"testing.iconErrored": "#f14c4c",
|
||||
//"testing.iconFailed": "#f14c4c",
|
||||
//"testing.iconPassed": "#73c991",
|
||||
//"testing.iconQueued": "#cca700",
|
||||
//"testing.iconSkipped": "#848484",
|
||||
//"testing.iconUnset": "#848484",
|
||||
//"testing.message.error.decorationForeground": "#ee5500",
|
||||
//"testing.message.error.lineBackground": "#ff000033",
|
||||
//"testing.message.info.decorationForeground": "#ffffff80",
|
||||
//"testing.peekBorder": "#ee5500",
|
||||
//"testing.peekHeaderBackground": "#ee55001a",
|
||||
//"testing.runAction": "#73c991",
|
||||
//"textBlockQuote.background": "#7f7f7f1a",
|
||||
//"textBlockQuote.border": "#007acc80",
|
||||
//"textCodeBlock.background": "#0a0a0a66",
|
||||
//"textLink.activeForeground": "#3794ff",
|
||||
//"textLink.foreground": "#3794ff",
|
||||
//"textPreformat.foreground": "#d7ba7d",
|
||||
//"textSeparator.foreground": "#ffffff2e",
|
||||
//"toolbar.activeBackground": "#63666750",
|
||||
//"toolbar.hoverBackground": "#5a5d5e50",
|
||||
//"tree.indentGuidesStroke": "#585858",
|
||||
//"tree.tableColumnsBorder": "#cccccc20",
|
||||
//"tree.tableOddRowsBackground": "#ffffff0a",
|
||||
//"welcomePage.progress.background": "#333333",
|
||||
//"welcomePage.progress.foreground": "#3794ff",
|
||||
//"welcomePage.tileBackground": "#333333",
|
||||
//"welcomePage.tileHoverBackground": "#3d3d3d",
|
||||
//"welcomePage.tileShadow": "#111111",
|
||||
//"activityBar.activeBackground": null,
|
||||
//"activityBar.activeFocusBorder": null,
|
||||
//"button.border": null,
|
||||
//"contrastActiveBorder": null,
|
||||
//"contrastBorder": null,
|
||||
//"debugToolBar.border": null,
|
||||
//"diffEditor.border": null,
|
||||
//"dropdown.listBackground": null,
|
||||
//"editor.findMatchBorder": null,
|
||||
//"editor.findMatchHighlightBorder": null,
|
||||
//"editor.findRangeHighlightBorder": null,
|
||||
//"editor.rangeHighlightBorder": null,
|
||||
//"editor.selectionForeground": null,
|
||||
//"editor.selectionHighlightBorder": null,
|
||||
//"editor.snippetFinalTabstopHighlightBackground": null,
|
||||
//"editor.snippetTabstopHighlightBorder": null,
|
||||
//"editor.symbolHighlightBorder": null,
|
||||
//"editor.wordHighlightBorder": null,
|
||||
//"editor.wordHighlightStrongBorder": null,
|
||||
//"editorCursor.background": null,
|
||||
//"editorError.background": null,
|
||||
//"editorError.border": null,
|
||||
//"editorGhostText.background": null,
|
||||
//"editorGhostText.border": null,
|
||||
//"editorGroup.emptyBackground": null,
|
||||
//"editorGroup.focusedEmptyBorder": null,
|
||||
//"editorGroupHeader.border": null,
|
||||
//"editorHint.border": null,
|
||||
//"editorInfo.background": null,
|
||||
//"editorInfo.border": null,
|
||||
//"editorOverviewRuler.background": null,
|
||||
//"editorSuggestWidget.selectedIconForeground": null,
|
||||
//"editorUnnecessaryCode.border": null,
|
||||
//"editorWarning.background": null,
|
||||
//"editorWidget.resizeBorder": null,
|
||||
//"inputValidation.errorForeground": null,
|
||||
//"inputValidation.infoForeground": null,
|
||||
//"inputValidation.warningForeground": null,
|
||||
//"list.activeSelectionIconForeground": null,
|
||||
//"list.filterMatchBorder": null,
|
||||
//"list.inactiveFocusBackground": null,
|
||||
//"list.inactiveFocusOutline": null,
|
||||
//"list.inactiveSelectionIconForeground": null,
|
||||
//"menu.border": null,
|
||||
//"menu.selectionBorder": null,
|
||||
//"menubar.selectionBorder": null,
|
||||
//"minimap.background": null,
|
||||
//"notebook.cellHoverBackground": null,
|
||||
//"notebook.focusedCellBackground": null,
|
||||
//"notebook.inactiveSelectedCellBorder": null,
|
||||
//"notebook.outputContainerBackgroundColor": null,
|
||||
//"notebook.outputContainerBorderColor": null,
|
||||
//"notificationCenter.border": null,
|
||||
//"notificationCenterHeader.foreground": null,
|
||||
//"notificationToast.border": null,
|
||||
//"panelInput.border": null,
|
||||
//"panelSectionHeader.border": null,
|
||||
//"panelSectionHeader.foreground": null,
|
||||
//"peekViewEditor.matchHighlightBorder": null,
|
||||
//"quickInput.list.focusBackground": null,
|
||||
//"quickInputList.focusIconForeground": null,
|
||||
//"searchEditor.findMatchBorder": null,
|
||||
//"sideBarSectionHeader.border": null,
|
||||
//"tab.activeBorder": null,
|
||||
//"tab.activeBorderTop": null,
|
||||
//"tab.hoverBackground": null,
|
||||
//"tab.hoverBorder": null,
|
||||
//"tab.hoverForeground": null,
|
||||
//"tab.unfocusedActiveBorderTop": null,
|
||||
//"tab.unfocusedHoverBackground": null,
|
||||
//"tab.unfocusedHoverBorder": null,
|
||||
//"tab.unfocusedHoverForeground": null,
|
||||
//"terminal.tab.activeBorder": null,
|
||||
//"terminalCursor.background": null,
|
||||
//"terminalCursor.foreground": null,
|
||||
//"testing.message.info.lineBackground": null,
|
||||
//"titleBar.border": null,
|
||||
//"toolbar.hoverOutline": null,
|
||||
//"welcomePage.background": null,
|
||||
//"window.activeBorder": null,
|
||||
//"window.inactiveBorder": null
|
||||
},
|
||||
"tokenColors": [
|
||||
{
|
||||
"scope": [
|
||||
"variable.language.this"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.bold",
|
||||
"settings": {
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"invalid",
|
||||
"markup.italic",
|
||||
"markup.quote"
|
||||
],
|
||||
"settings": {
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "markup.underline",
|
||||
"settings": {
|
||||
"fontStyle": "underline"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"source.js.jsx punctuation.section.embedded",
|
||||
"entity.name.tag",
|
||||
"string.other.link.description.title",
|
||||
"support.constant",
|
||||
"support.variable",
|
||||
"support.type",
|
||||
"variable.other.class",
|
||||
"support.class.builtin.js",
|
||||
"support.class.console.js",
|
||||
"meta.property-value",
|
||||
"variable.parameter.keyframe-list",
|
||||
"meta.at-rule.keyframes entity.name.function",
|
||||
"expression.embedded.vue punctuation.definition"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#BBA0FF",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.other.attribute-name.pseudo-class.css",
|
||||
"entity.name.type.object.console",
|
||||
"variable.language",
|
||||
"variable.parameter.function.language.special.self.python",
|
||||
"storage.type",
|
||||
"entity.other.attribute-name.pseudo-element.css"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#BBA0FF",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"punctuation.definition.string.template"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#BBA0FF",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.other.attribute-name.class.css",
|
||||
"entity.other.attribute-name.parent-selector-suffix.css",
|
||||
"entity.other.attribute-name.parent-selector-suffix.css punctuation.definition.entity.css",
|
||||
"meta.definition.function",
|
||||
"markup.underline.link",
|
||||
"markup.inserted",
|
||||
"meta.function-call",
|
||||
"meta.instance.constructor",
|
||||
"meta.attribute-with-value.class string",
|
||||
"string.other.ref",
|
||||
"string.other.restructuredtext.ref",
|
||||
"variable.function",
|
||||
"entity.name.type",
|
||||
"entity.name.function",
|
||||
"variable.other.object.property",
|
||||
"punctuation.separator.key-value",
|
||||
"meta.definition.function.js",
|
||||
"support.class.component.js",
|
||||
"entity.other.inherited-class",
|
||||
"support.class",
|
||||
"support.function.misc",
|
||||
"support.function",
|
||||
"entity.other.attribute-name.id.css",
|
||||
"entity.other.attribute-name.id.css punctuation",
|
||||
"entity.other.attribute-name.class.css punctuation",
|
||||
"meta.function-call support.function.construct",
|
||||
"entity.other.attribute-name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FFDD44"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "storage.type.function.arrow",
|
||||
"settings": {
|
||||
"foreground": "#FFDD44",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"entity.name.section",
|
||||
"constant.numeric.line-number.match.find-in-files",
|
||||
"markup.heading",
|
||||
"markup.changed",
|
||||
"meta.attribute-with-value.id string",
|
||||
"string",
|
||||
"punctuation.definition.string.begin",
|
||||
"punctuation.definition.string.end",
|
||||
"meta.attribute-selector"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#88CC44"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"keyword",
|
||||
"keyword.control",
|
||||
"constant",
|
||||
"constant.numeric",
|
||||
"constant.language",
|
||||
"constant.other.property",
|
||||
"constant.character.escape",
|
||||
"comment keyword.codetag.notation",
|
||||
"keyword.other.template.begin",
|
||||
"keyword.other.template.end",
|
||||
"markup.raw",
|
||||
"markup.deleted",
|
||||
"meta.property-list.css variable.other",
|
||||
"entity.name.constant.preprocessor",
|
||||
"meta.preprocessor",
|
||||
"punctuation.section.embedded",
|
||||
"punctuation.template-string.element.begin",
|
||||
"punctuation.template-string.element.end",
|
||||
"string.quoted.template punctuation.definition.string.begin",
|
||||
"string.quoted.template punctuation.definition.string.end",
|
||||
"meta.paragraph.markdown meta.dummy.line-break",
|
||||
"meta.paragraph.markdown meta.hard-line-break.markdown",
|
||||
"storage",
|
||||
"storage.class.restructuredtext.ref",
|
||||
"string.other.link.title",
|
||||
"string.other.link.description",
|
||||
"string.regexp punctuation.definition.string.begin",
|
||||
"string.regexp punctuation.definition.string.end",
|
||||
"variable.language.arguments",
|
||||
"storage.modifier",
|
||||
"keyword.operator.new",
|
||||
"keyword.operator",
|
||||
"keyword.operator.spread",
|
||||
"punctuation.section.embedded.end.php source.php",
|
||||
"support.function.construct",
|
||||
"meta.at-rule.keyframes",
|
||||
"meta.at-rule.keyframes entity.other.attribute-name"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#88BBFF"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable.other.substitution"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#88BBFF",
|
||||
"fontStyle": "bold"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"meta.function-call meta.function-call.arguments",
|
||||
"meta.function-call meta.arguments",
|
||||
"meta.function-call meta.group",
|
||||
"source.json meta.structure.dictionary",
|
||||
"meta.object.member",
|
||||
"punctuation.definition.group",
|
||||
"string.unquoted.label",
|
||||
"variable.other.member",
|
||||
"entity.name.class",
|
||||
"entity.name.namespace",
|
||||
"constant.other",
|
||||
"variable",
|
||||
"variable.other",
|
||||
"variable.other.constant.js",
|
||||
"text.find-in-files",
|
||||
"source",
|
||||
"entity.name.type.module",
|
||||
"source.sql support.function",
|
||||
"support.other.namespace.php"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FFFFFF",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable.parameter",
|
||||
"parameters variable.function"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#FFFFFF",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"variable.other.property",
|
||||
"support.variable.property",
|
||||
"punctuation.separator.key-value",
|
||||
"meta.object-literal.key",
|
||||
"variable.other.object.property",
|
||||
"variable.object.property",
|
||||
"text.html.basic",
|
||||
"text.html.vue-html",
|
||||
"text.html.php",
|
||||
"text.html.derivative",
|
||||
"punctuation.definition.variable",
|
||||
"punctuation.definition.keyword.scss",
|
||||
"meta.jsx.children.js",
|
||||
"meta.tag.attributes keyword.operator.assignment",
|
||||
"support.type.vendored.property-name.css",
|
||||
"support.type.property-name.json",
|
||||
"variable.other.constant.property"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#BBBBCC"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "meta.property-name support.type",
|
||||
"settings": {
|
||||
"foreground": "#BBBBCC",
|
||||
"fontStyle": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"keyword.other.substitution",
|
||||
"keyword.operator.heading.restructuredtext",
|
||||
"keyword.operator.table.row.restructuredtext",
|
||||
"keyword.operator.table.data.restructuredtext",
|
||||
"punctuation",
|
||||
"markup.ignored",
|
||||
"markup.untracked",
|
||||
"meta.brace.round",
|
||||
"meta.brace.square",
|
||||
"meta.brace.curly",
|
||||
"meta.delimiter.comma.js",
|
||||
"meta.function-call.without-arguments.js",
|
||||
"meta.function-call.method.without-arguments.js",
|
||||
"source.scss",
|
||||
"string source punctuation.section.embedded",
|
||||
"punctuation.definition.tag.begin source",
|
||||
"source.php"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#9999AA"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": [
|
||||
"comment",
|
||||
"comment punctuation"
|
||||
],
|
||||
"settings": {
|
||||
"foreground": "#888899",
|
||||
"fontStyle": "italic"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.info-token",
|
||||
"settings": {
|
||||
"foreground": "#6796E6"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.warn-token",
|
||||
"settings": {
|
||||
"foreground": "#CD9731"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.error-token",
|
||||
"settings": {
|
||||
"foreground": "#F44747"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "token.debug-token",
|
||||
"settings": {
|
||||
"foreground": "#B267E6"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"utility": "cpp",
|
||||
"initializer_list": "cpp",
|
||||
"list": "cpp",
|
||||
"type_traits": "cpp",
|
||||
"vector": "cpp",
|
||||
"xhash": "cpp",
|
||||
"xstring": "cpp",
|
||||
"system_error": "cpp",
|
||||
"array": "cpp",
|
||||
"string_view": "cpp",
|
||||
"xutility": "cpp",
|
||||
"*.ipp": "cpp"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
// for the documentation about the tasks.json format
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Touch CMakeLists.txt",
|
||||
"type": "process",
|
||||
"promptOnClose": false,
|
||||
"isBackground": true,
|
||||
"command": "touch",
|
||||
"args": ["${workspaceRoot}/CMakeLists.txt"],
|
||||
"problemMatcher": [],
|
||||
"presentation": {
|
||||
"echo": false,
|
||||
"revealProblems": "onProblem",
|
||||
"reveal": "silent",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": false,
|
||||
"clear": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"id": "build_configuration",
|
||||
"type": "pickString",
|
||||
"default": "debug",
|
||||
"description": "Configuration:",
|
||||
"options": ["debug", "release"]
|
||||
},
|
||||
{
|
||||
"id": "compiler",
|
||||
"type": "pickString",
|
||||
"default": "gcc",
|
||||
"description": "Compiler",
|
||||
"options": ["clang", "gcc"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Spark Client",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/build/Debug/bin/net6.0-windows/Spark.exe",
|
||||
"cwd": "${workspaceFolder}/build/Debug/bin/net6.0-windows",
|
||||
"enableStepFiltering": false,
|
||||
"console": "internalConsole",
|
||||
"stopAtEntry": false
|
||||
},
|
||||
{
|
||||
"name": "Spark Test",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/build/Debug/bin/net6.0/sparkcmd.exe",
|
||||
"args": ["test", "${input:test}"],
|
||||
"cwd": "${workspaceFolder}/build/Debug/bin/net6.0-windows",
|
||||
"enableStepFiltering": false,
|
||||
"console": "internalConsole",
|
||||
"stopAtEntry": false
|
||||
},
|
||||
{
|
||||
"name": "Attach (.NET Core)",
|
||||
"type": "coreclr",
|
||||
"request": "attach"
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"id": "test",
|
||||
"description": "The test(s) to run",
|
||||
"type": "promptString"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"cmake.configureOnOpen": false,
|
||||
"workbench.colorTheme": "Default Dark+",
|
||||
"C_Cpp.intelliSenseEngine": "Disabled",
|
||||
"files.associations": {
|
||||
"*.js": "javascript",
|
||||
"*.conf": "jsonc",
|
||||
"array": "cpp",
|
||||
"xtree": "cpp",
|
||||
"chrono": "cpp",
|
||||
"*.ipp": "cpp",
|
||||
"optional": "cpp",
|
||||
"regex": "cpp",
|
||||
"system_error": "cpp",
|
||||
"format": "cpp",
|
||||
"future": "cpp",
|
||||
"istream": "cpp",
|
||||
"memory": "cpp",
|
||||
"tuple": "cpp",
|
||||
"type_traits": "cpp",
|
||||
"utility": "cpp",
|
||||
"variant": "cpp",
|
||||
"xlocmes": "cpp",
|
||||
"xlocmon": "cpp",
|
||||
"xlocnum": "cpp",
|
||||
"xloctime": "cpp",
|
||||
"xutility": "cpp",
|
||||
"xstring": "cpp",
|
||||
"string": "cpp",
|
||||
"cstdint": "cpp"
|
||||
},
|
||||
|
||||
"files.exclude": {
|
||||
"**/.g.cs": true,
|
||||
"**/.g.i.cs": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "Build Spark Client",
|
||||
"type": "process",
|
||||
"command": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\Tools\\VsDevCmd.bat",
|
||||
"args": [
|
||||
"-arch=x64",
|
||||
"-host_arch=x64",
|
||||
"&&",
|
||||
"${workspaceRoot}\\tools\\buildspark.cmd"
|
||||
],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "new",
|
||||
"showReuseMessage": false,
|
||||
"clear": false,
|
||||
"close": false
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"label": "Run Spark Client",
|
||||
"type": "process",
|
||||
"command": "${workspaceRoot}\\build\\Debug\\bin\\net6.0-windows\\Spark.exe",
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared",
|
||||
"showReuseMessage": true,
|
||||
"clear": false
|
||||
},
|
||||
"problemMatcher": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Linux",
|
||||
"includePath": [
|
||||
"/usr/include",
|
||||
"/usr/local/include",
|
||||
"${workspaceRoot}",
|
||||
"${workspaceFolder}/src",
|
||||
"${workspaceRoot}/externals/linux/include"
|
||||
],
|
||||
"defines": [],
|
||||
"intelliSenseMode": "clang-x64",
|
||||
"browse": {
|
||||
"path": [
|
||||
"/usr/include",
|
||||
"/usr/local/include",
|
||||
"${workspaceRoot}",
|
||||
"${workspaceFolder}/src",
|
||||
"${workspaceRoot}/externals/linux/include"
|
||||
],
|
||||
"limitSymbolsToIncludedHeaders": true,
|
||||
"databaseFilename": ""
|
||||
},
|
||||
"cStandard": "c11",
|
||||
"cppStandard": "c++17",
|
||||
"compileCommands": "${workspaceFolder}/build/ninja_debug/compile_commands.json"
|
||||
},
|
||||
{
|
||||
"name": "Windows",
|
||||
"intelliSenseMode": "clang-x64",
|
||||
"includePath": [
|
||||
"${workspaceRoot}/src",
|
||||
"${workspaceRoot}/build/src",
|
||||
"${workspaceRoot}/build/ninja_debug/src",
|
||||
"${workspaceRoot}/externals/windows/include",
|
||||
"${workspaceRoot}/externals/linux/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu/c++/6",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6/backward",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/local/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include"
|
||||
],
|
||||
"defines": [
|
||||
"__linux__",
|
||||
"__x86_64__"
|
||||
],
|
||||
"browse": {
|
||||
"path": [
|
||||
"${workspaceRoot}/src",
|
||||
"${workspaceRoot}/build/src",
|
||||
"${workspaceRoot}/build/ninja_debug/src",
|
||||
"${workspaceRoot}/externals/windows/include",
|
||||
"${workspaceRoot}/externals/linux/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu/c++/6",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6/backward",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/local/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/*"
|
||||
],
|
||||
"limitSymbolsToIncludedHeaders": true,
|
||||
"databaseFilename": ""
|
||||
},
|
||||
"cStandard": "c11",
|
||||
"cppStandard": "c++17"
|
||||
},
|
||||
{
|
||||
"name": "WindowsQuick",
|
||||
"intelliSenseMode": "clang-x64",
|
||||
"includePath": [
|
||||
"${workspaceRoot}/src",
|
||||
"${workspaceRoot}/build/src",
|
||||
"${workspaceRoot}/build/ninja_debug/src",
|
||||
"${workspaceRoot}/externals/windows/include",
|
||||
"${workspaceRoot}/externals/linux/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu/c++/6",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/c++/6/backward",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/local/include",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include/x86_64-linux-gnu",
|
||||
"${workspaceRoot}/externals/windows/vscode/usr/include"
|
||||
],
|
||||
"defines": [
|
||||
"__linux__",
|
||||
"__x86_64__"
|
||||
],
|
||||
"browse": {
|
||||
"path": [
|
||||
"${workspaceRoot}/src"
|
||||
],
|
||||
"limitSymbolsToIncludedHeaders": true,
|
||||
"databaseFilename": "${workspaceRoot}/.vscode/browse.vc.db"
|
||||
},
|
||||
"cStandard": "c11",
|
||||
"cppStandard": "c++17"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
||||
@@ -1,371 +1,402 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "SparkVM Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
|
||||
"args": [
|
||||
"run"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Skip STL",
|
||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "LD LIBRARY",
|
||||
"text": "set env LD_LIBRARY_PATH=.",
|
||||
"ignoreFailures": false
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "(gdb) Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/ninja_debug/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"run"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceRoot}/build/ninja_debug/src/server/sparkd",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Client Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark.exe",
|
||||
"args": [],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "SDK Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark_sdk.exe",
|
||||
"args": [
|
||||
"md",
|
||||
"GLBX",
|
||||
"Future",
|
||||
"CL",
|
||||
"CLZ9",
|
||||
"--user=bts",
|
||||
"--pass="
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Excel Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "C:/Program Files/Microsoft Office/Office14/EXCEL.EXE",
|
||||
"args": [
|
||||
"${workspaceRoot}/build/Debug/bin/net471/spark_excel-addin64-packed.xll"
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Client Tests",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/sparkcmd.exe",
|
||||
"args": [
|
||||
"test",
|
||||
"ApiUpdateTests"
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Client Attach",
|
||||
"type": "clr",
|
||||
"request": "attach",
|
||||
"processId": "${command:pickProcess}"
|
||||
},
|
||||
{
|
||||
"name": "Spreader Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[spreader]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Admin Service Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[admin_service]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Limiter Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[limiter]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MD Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[algo]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Skip STL",
|
||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SparkVM attach",
|
||||
"type": "cppdbg",
|
||||
"request": "attach",
|
||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||
"processId": "${command:pickRemoteProcess}",
|
||||
"MIMode": "gdb",
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Python",
|
||||
"type": "python",
|
||||
"request": "launch",
|
||||
"stopOnEntry": false,
|
||||
"pythonPath": "${config:python.pythonPath}",
|
||||
"program": "${file}",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"env": {},
|
||||
"envFile": "${workspaceRoot}/.env",
|
||||
"args": [
|
||||
"DEBUG"
|
||||
],
|
||||
"debugOptions": [
|
||||
"WaitOnAbnormalExit",
|
||||
"WaitOnNormalExit",
|
||||
"RedirectOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Remote Attach",
|
||||
"type": "coreclr",
|
||||
"request": "attach",
|
||||
"processId": "${command:pickRemoteProcess}",
|
||||
"pipeTransport": {
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": true
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Remote Launch",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"program": "/usr/bin/dotnet",
|
||||
"args": [
|
||||
"sparkcmd.dll",
|
||||
"test",
|
||||
"test_join_create_and_takeout_market"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/server",
|
||||
"pipeTransport": {
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": false
|
||||
},
|
||||
]
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Spark Local",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"run",
|
||||
"test",
|
||||
"-a",
|
||||
"OutrightVanillaOrder"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceRoot}/build/gcc/debug/server/",
|
||||
"environment": [
|
||||
{
|
||||
"name": "TZ",
|
||||
"value": "America/Chicago"
|
||||
}
|
||||
],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "SparkVM Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"-a",
|
||||
"[ilink3]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Skip STL",
|
||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "LD LIBRARY",
|
||||
"text": "set env LD_LIBRARY_PATH=.",
|
||||
"ignoreFailures": false
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "(gdb) Launch",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/gcc/debug/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"run"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${workspaceRoot}/build/ninja_debug/src/server/sparkd",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Client Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark.exe",
|
||||
"args": [],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "SDK Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/spark_sdk.exe",
|
||||
"args": [
|
||||
"md",
|
||||
"GLBX",
|
||||
"Future",
|
||||
"CL",
|
||||
"CLZ9",
|
||||
"--user=bts",
|
||||
"--pass="
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Excel Launch",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "C:/Program Files/Microsoft Office/Office14/EXCEL.EXE",
|
||||
"args": [
|
||||
"${workspaceRoot}/build/Debug/bin/net471/spark_excel-addin64-packed.xll"
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Client Tests",
|
||||
"type": "clr",
|
||||
"request": "launch",
|
||||
"program": "${workspaceRoot}/build/Debug/bin/net471/sparkcmd.exe",
|
||||
"args": [
|
||||
"test",
|
||||
"ApiUpdateTests"
|
||||
],
|
||||
"cwd": "${workspaceRoot}",
|
||||
"stopAtEntry": false,
|
||||
"externalConsole": true,
|
||||
"requireExactSource": false
|
||||
},
|
||||
{
|
||||
"name": "Client Attach",
|
||||
"type": "clr",
|
||||
"request": "attach",
|
||||
"processId": "${command:pickProcess}"
|
||||
},
|
||||
{
|
||||
"name": "Spreader Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[spreader]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Admin Service Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[admin_service]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Limiter Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[limiter]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/ninja_debug/src/server/sparkd/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "enable pretty-printer",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MD Tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "/home/bts/spark/build/gcc/debug/server/sparkd",
|
||||
"args": [
|
||||
"test",
|
||||
"[algo]"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server/",
|
||||
"environment": [],
|
||||
"externalConsole": true,
|
||||
"MIMode": "gdb",
|
||||
"preLaunchTask": "",
|
||||
"logging": {
|
||||
"engineLogging": false
|
||||
},
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Skip STL",
|
||||
"text": "skip -gfi /usr/include/c++/7/bits/*.h",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "SparkVM attach",
|
||||
"type": "cppdbg",
|
||||
"request": "attach",
|
||||
"program": "/home/bts/spark/build/ninja_debug/src/server/sparkd/sparkd",
|
||||
"processId": "${command:pickRemoteProcess}",
|
||||
"MIMode": "gdb",
|
||||
"pipeTransport": {
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/usr/bin/gdb"
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Python",
|
||||
"type": "python",
|
||||
"request": "launch",
|
||||
"stopOnEntry": false,
|
||||
"pythonPath": "${config:python.pythonPath}",
|
||||
"program": "${file}",
|
||||
"cwd": "${workspaceRoot}",
|
||||
"env": {},
|
||||
"envFile": "${workspaceRoot}/.env",
|
||||
"args": [
|
||||
"DEBUG"
|
||||
],
|
||||
"debugOptions": [
|
||||
"WaitOnAbnormalExit",
|
||||
"WaitOnNormalExit",
|
||||
"RedirectOutput"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Remote Attach",
|
||||
"type": "coreclr",
|
||||
"request": "attach",
|
||||
"processId": "${command:pickRemoteProcess}",
|
||||
"pipeTransport": {
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": true
|
||||
},
|
||||
{
|
||||
"name": ".NET Core Remote Launch",
|
||||
"type": "coreclr",
|
||||
"request": "launch",
|
||||
"program": "/usr/bin/dotnet",
|
||||
"args": [
|
||||
"sparkcmd.dll",
|
||||
"test",
|
||||
"test_join_create_and_takeout_market"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "/home/bts/spark/build/gcc/debug/server",
|
||||
"pipeTransport": {
|
||||
"pipeProgram": "c:\\program files\\git\\usr\\bin\\ssh.exe",
|
||||
"pipeArgs": [
|
||||
"bts@sparkvm"
|
||||
],
|
||||
"debuggerPath": "/home/bts/vsdbg/vsdbg",
|
||||
"pipeCwd": "${workspaceRoot}",
|
||||
"quoteArgs": true
|
||||
},
|
||||
"sourceFileMap": {
|
||||
"/home/bts/spark/": "${workspaceRoot}"
|
||||
},
|
||||
"justMyCode": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -7,9 +7,9 @@
|
||||
"vector": "cpp",
|
||||
"xhash": "cpp",
|
||||
"xstring": "cpp",
|
||||
"system_error": "cpp",
|
||||
"array": "cpp",
|
||||
"string_view": "cpp"
|
||||
"system_error": "cpp",
|
||||
"array": "cpp",
|
||||
"string_view": "cpp"
|
||||
"xutility": "cpp",
|
||||
"*.ipp": "cpp"
|
||||
}
|
||||
@@ -14,24 +14,21 @@
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
},
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
}
|
||||
"group": "build"
|
||||
},
|
||||
{
|
||||
"label": "server_build",
|
||||
"label": "server_build",
|
||||
"type": "shell",
|
||||
"command": ".\\tools\\buildsparkd.cmd",
|
||||
"problemMatcher": {
|
||||
"base": "$gcc",
|
||||
"problemMatcher": {
|
||||
"base": "$gcc",
|
||||
"owner": "cpp",
|
||||
"fileLocation": [
|
||||
"relative",
|
||||
"${workspaceFolder}"
|
||||
"${workspaceFolder}"
|
||||
],
|
||||
"pattern": {
|
||||
"regexp": "(.?)(home)(.?)(bts)(.?)(spark)(.?)(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)",
|
||||
"regexp": "(.?)(home)(.?)(bts)(.?)(spark)(.?)(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)",
|
||||
"file": 8,
|
||||
"line": 9,
|
||||
"column": 10,
|
||||
@@ -49,6 +46,18 @@
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "linux build (Debug)",
|
||||
"type": "shell",
|
||||
"command": "cd build/ninja_debug; time ninja",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"problemMatcher": [
|
||||
"$gcc"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
+++
|
||||
title="Client API"
|
||||
template="client.html"
|
||||
redirect_to = "client/getting-started/overview/"
|
||||
sort_by="weight"
|
||||
+++
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
+++
|
||||
title="Getting Started"
|
||||
template="client.html"
|
||||
sort_by="weight"
|
||||
weight = 1
|
||||
+++
|
||||
|
||||
@@ -1,9 +1,25 @@
|
||||
+++
|
||||
title = "Install Prerequisites"
|
||||
template="client.html"
|
||||
weight = 1
|
||||
weight = 10
|
||||
+++
|
||||
|
||||
## Coming Soon
|
||||
# C#/.NET
|
||||
|
||||
We target [.NET Standard 2.0](https://docs.microsoft.com/en-us/dotnet/standard/net-standard) so you can use .NET Framework 4.6.1+ or .NET Core 2.0+. Simply add a reference to the [Spark Nuget package](https://www.nuget.org/packages/spark_sdk/) to get started.
|
||||
|
||||
```
|
||||
dotnet new console -lang c#
|
||||
dotnet add package spark_sdk
|
||||
dotnet build
|
||||
```
|
||||
|
||||
# C++
|
||||
|
||||
The easiest way to get started with C++ is to use the Spark Server SDK to develop your application. Follow the instructions to [download and install the Spark Server SDK](/server/getting-started/install) and open the client_sdk sample project. If you want to run your C++ Client SDK application on Windows [contact us](mailto://api@bluetradesys.com) to get the required headers and binaries.
|
||||
|
||||
# JavaScript
|
||||
|
||||
We use JavaScript internally with the Spark Client API over a websocket connection but the documentation and packaging isn't ready yet. If this is something you're interested in get in touch with us at [api@bluetradesys.com](mailto:api@bluetradesys.com).
|
||||
|
||||
|
||||
|
||||
* Install .net core
|
||||
@@ -0,0 +1,31 @@
|
||||
+++
|
||||
title = "Overview"
|
||||
weight = 1
|
||||
+++
|
||||
|
||||
The Spark Client SDK is a high level command and control API which can be used to build scripts or integrate Spark into your existing ecosystem. The API is divided into several independent **"services"** responsible for different aspects of the system. A Service can define both [remote procedure call (RPC)](/client/getting-started/services#rpc) and incremental [streaming](/client/getting-started/services#streams) data.
|
||||
|
||||
The [Spark Desktop](https://www.bluetradingsystems.com/bts-spark/) is built on top of this API so you can be assured that it is complete and well tested.
|
||||
|
||||
Spark uses [Google Protocol Buffers](https://developers.google.com/protocol-buffers/) as an interface definition language similar to [GRPC](https://grpc.io) but backed by our custom high-performance TCP protocol. We currently support C#/.NET and C++ <!--and Javascript--> but the architecture is designed for easy extension so contact us about your specific business needs.
|
||||
|
||||
## Orders
|
||||
|
||||
Use the [OrderService](/client/services/orderservice) to send and manage orders including native exchange orders, spreader orders, and custom Algo orders created using the [Spark Server SDK](https://api.bluetradesys.com/server/).
|
||||
|
||||
## Spreader
|
||||
|
||||
Use the [SyntheticSecurityService](/client/services/syntheticsecurityservice) to create and manage synthetic spreads. Once created these spreads show up in the security and market data feeds just like exchange listed spreads.
|
||||
|
||||
## Position
|
||||
|
||||
Use the [PositionService](/client/services/positionservice) to get your position and P&L reports or add fills manually to keep the Spark system up to date with an external system.
|
||||
|
||||
## Administration
|
||||
|
||||
Use the [AdminService](/client/services/adminservice) to manage users and control limits.
|
||||
|
||||
## Market Data
|
||||
|
||||
For .NET subscribe to market data though the high level MarketDataClient interface. From C++ or JavaScript use the MarketDataRelay service directly.
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
+++
|
||||
title = "Services"
|
||||
weight = 20
|
||||
+++
|
||||
|
||||
The Spark Client SDK uses [Google Protocol Buffers](https://developers.google.com/protocol-buffers/) to define the interface for each service in a language independent manner. Services have both functions which return a single result and streams of data which return values continuously while subscribed. This page describes the mapping from the Protocol Buffer definition to the concrete definition in each supported language.
|
||||
|
||||
# ServiceContext
|
||||
|
||||
To connect your client to the Spark Server you need to get or create a `ServiceContext` instance. A `ServiceContext` represents a connection to the Spark Server and a background thread for handling messages on that connection. Generally there should be a single `ServiceContext` per process. All of the methods on the `ServiceContext` are safe thread safe.
|
||||
|
||||
Construct a ServiceContext by calling the default constructor. The ServiceContext will find the Spark Server by loading the server configuration over an HTTP connection. To determine the URL it will search the following locations and use the first one that is present.
|
||||
|
||||
* A command line argument `-configserver <url>`
|
||||
* An environment variable `BTSCONFIG`
|
||||
* `%APPDATA%/bts/conf/spark.conf` (Windows)
|
||||
* /sparkdata/conf/spark.conf (Linux)
|
||||
* $HOME/sparkdata/conf/spark.conf (Linux)
|
||||
|
||||
If your application is running on a system with the BTS Client installed this will probably work without any further configuration. If you plan to run your client application on a separate machine we recommend setting the `BTSCONFIG` environment variable.
|
||||
|
||||
<div class="info">
|
||||
<i class="fa fa-lightbulb-o fa-fw" aria-hidden="true"></i>
|
||||
If you are using the Spark Server SDK to run a local copy of the Spark server set <p><strong>BTSCONFIG = http://localhost:9000/config/</strong></p>
|
||||
</div>
|
||||
|
||||
To get a proxy for a given service call ServiceContext.locate<T>("qualifier") where T is the type of the service and "qualifier" is an optional qualifier used to disambiguate between 2 instances of the same service. The locate call cannot fail but it may return a disconnected proxy. When you make a call on the proxy you should check the call result to see if the method call succeeded.
|
||||
|
||||
# RPC
|
||||
|
||||
Here is the OrderService reduced to a single method definition. A RPC method always takes exactly 1 argument and returns 1 value. In this example the `create_order` call takes a `Create` instance and returns a `Response`.
|
||||
|
||||
```C
|
||||
service OrderService {
|
||||
rpc create_order(Create) returns (Response);
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
The `Create` and `Response` types are also defined as protocol buffer messages. Each field can either be a primitive type another message or a list or map.
|
||||
|
||||
```C
|
||||
message Create {
|
||||
OrderDefinition new_order = 1;
|
||||
double price = 2;
|
||||
uint32 quantity = 3;
|
||||
}
|
||||
|
||||
message Response {
|
||||
uint32 order_key = 1;
|
||||
OrderError error_code = 2;
|
||||
string msg = 3;
|
||||
}
|
||||
```
|
||||
|
||||
Each RPC call generates both synchronous (blocking) and asynchronous variants. In C# the asynchronous calls have the `_async` suffix and return a `Task`. In C++ the call is overloaded to either return a value synchronously or accept a callback function to be called on the ServiceContext thread when the call completes. <!-- In Javascript only async methods returning a Promise are generated because it never makes sense to make a blocking call in the browser. -->
|
||||
|
||||
To call the resulting service locate a proxy using the [ServiceContext](#servicecontext) and then call `cancel_order` or `cancel_order_async`. If you are calling the Spark API from a GUI application you should always prefer the `_async` version of the calls.
|
||||
|
||||
|
||||
### C# example
|
||||
```c#
|
||||
var ctx = new ServiceContext();
|
||||
var orders = ctx.locate<OrderService>();
|
||||
var response =
|
||||
await orders.create_order_async(
|
||||
new Create { price = 2.25, quantity = 42 });
|
||||
if (response.success) {
|
||||
Console.WriteLine($"success: {response.value}");
|
||||
}
|
||||
else {
|
||||
Console.WriteLine($"Error: {response.error_message}");
|
||||
}
|
||||
```
|
||||
### C++ example
|
||||
```cpp
|
||||
auto ctx = ServiceContext{};
|
||||
auto orders = ctx.locate<OrderService>();
|
||||
Create c;
|
||||
c.set_price(2.25);
|
||||
c.set_quantity(42);
|
||||
// Instead of providing an _async method C++ uses overloading.
|
||||
// To make a syncronous call simply omit the callback
|
||||
orders.create_order(c, [=](const Result<Response>& response) {
|
||||
if(response.success()) {
|
||||
std::cout << "success.";
|
||||
}
|
||||
else {
|
||||
std::cout << "error: " << response.error_message();
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
# Streams
|
||||
|
||||
Streams allow you to subscribe to live updating data. Each stream represents a changing collection of protocol buffer objects. Similar to a database row each item has an `id` which uniquely identifies it within the collection. Updates from the Spark server can add, remove or replace entries in the collection. Since only the changed items are sent over the wire the stream can remain responsive even when it represents a large collection.
|
||||
|
||||
Streams are implemented using the language bindings for [ReativeX](http://reactivex.io/) which provide utility functions to drill down to the specific data your application needs. In C# we provide both mutable and immutable versions of the generated data types (C++ users can rely on `const`).
|
||||
|
||||
When defined in a proto file streams use the `stream` keyword on the result type.
|
||||
```C
|
||||
service OrderService {
|
||||
...
|
||||
rpc fills (FillsSub) returns (stream Fill);
|
||||
}
|
||||
```
|
||||
|
||||
### C# example
|
||||
```c#
|
||||
var sc = new ServiceContext();
|
||||
var orders = sc.locate<OrderService>();
|
||||
var fills_observable = orders.subscribei_fills();
|
||||
var unsub = fills_observable.Subscribe(update => {
|
||||
Console.WriteLine(
|
||||
"Added {0} items, Removed {1} items, Updated {2} items. Total items {3}",
|
||||
update.added.Count(),
|
||||
update.removed.Count(),
|
||||
update.changes.Count(),
|
||||
update.all.Count());
|
||||
});
|
||||
|
||||
Thread.Sleep(TimeSpan.FromMinutes(5));
|
||||
unsub.Dispose();
|
||||
```
|
||||
### C++ Example
|
||||
```cpp
|
||||
#include "lib/api/public/ServiceContext.h"
|
||||
#include "lib/api/services/OrderService.client.pb.h"
|
||||
using namespace bts::api;
|
||||
ServiceContext ctx;
|
||||
auto orders = ctx.locate<orderman::OrderService>();
|
||||
auto unsub = orders.subscribe_fills().subscribe([](const auto& update) {
|
||||
std::cout
|
||||
<< "Added " << update.added().size() << " items, "
|
||||
<< "Removed " << update.removed().size() << " items, "
|
||||
<< "Updated " << update.updated().size() << " items, "
|
||||
<< "Total items " << update.all().size() << std::endl;
|
||||
});
|
||||
std::this_thread::sleep_for(std::chrono::minutes(5));
|
||||
```
|
||||
@@ -0,0 +1,6 @@
|
||||
+++
|
||||
title="Samples"
|
||||
sort_by="weight"
|
||||
weight = 30
|
||||
+++
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
+++
|
||||
title = "AdminService"
|
||||
+++
|
||||
@@ -0,0 +1,3 @@
|
||||
+++
|
||||
title = "OrderService"
|
||||
+++
|
||||
@@ -0,0 +1,3 @@
|
||||
+++
|
||||
title = "PositionService"
|
||||
+++
|
||||
@@ -0,0 +1,3 @@
|
||||
+++
|
||||
title = "SyntheticService"
|
||||
+++
|
||||
@@ -0,0 +1,6 @@
|
||||
+++
|
||||
title="Services"
|
||||
#sort_by="weight"
|
||||
weight = 10
|
||||
+++
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
+++
|
||||
title = "Market Data"
|
||||
+++
|
||||
|
||||
|
||||
Use the MarketDataService to subscribe enumerate all available securities.
|
||||
|
||||
```cs
|
||||
using System;
|
||||
using System.Threading;
|
||||
using bts.api;
|
||||
using bts.api.core;
|
||||
|
||||
namespace sample {
|
||||
class Program {
|
||||
static void Main(string[] args) {
|
||||
using var context = new ServiceContext();
|
||||
var md = context.locate<MarketDataService>();
|
||||
using var sub = md.subscribe_securities().Subscribe(update => {
|
||||
foreach (var security in update.added) {
|
||||
Console.WriteLine($"Added security {security.Id}: {security.Symbol}");
|
||||
}
|
||||
});
|
||||
|
||||
Thread.Sleep(TimeSpan.FromMinutes(5));
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```cpp
|
||||
#include "lib/api/public/ServiceContext.h"
|
||||
#include "spark/lib/domain_model/Security.h"
|
||||
#include "lib/api/services/MarketDataService.client.pb.h"
|
||||
#include <thread>
|
||||
|
||||
using namespace bts::api;
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
ServiceContext ctx;
|
||||
auto md_service = ctx.locate<bts::api::MarketDataService>();
|
||||
auto sub = md_service.subscribe_securities().subscribe([](const auto& update) {
|
||||
for (const auto& s : update.added()) {
|
||||
std::cout << "Added security: " << s->id() << ": " << s->symbol() << std::endl;
|
||||
}
|
||||
});
|
||||
|
||||
std::this_thread::sleep_for(std::chrono::minutes(5));
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
@@ -1,6 +1,5 @@
|
||||
+++
|
||||
title="Algo API"
|
||||
template="documentation.html"
|
||||
redirect_to = "server/getting-started/overview/"
|
||||
sort_by="weight"
|
||||
+++
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
+++
|
||||
title="Getting Started"
|
||||
template="documentation.html"
|
||||
sort_by="weight"
|
||||
weight = 1
|
||||
+++
|
||||
|
||||
@@ -5,7 +5,7 @@ weight = 2
|
||||
|
||||
## Request Access 🔑
|
||||
|
||||
To start using the Server SDK you will need to request access though our sales department. Please email <a href="mailto:info@bluetradesys.com">info@bluetradesys.com</a> or call <a href="tel:919-913-0850">(919) 913-0850</a> and we will provide download credentials.
|
||||
To start using the Server SDK you will need to request access though our sales department. Please email <a href="mailto:api@bluetradesys.com">api@bluetradesys.com</a> or call <a href="tel:919-913-0850">(919) 913-0850</a> and we will provide download credentials.
|
||||
|
||||
## Download
|
||||
|
||||
@@ -68,12 +68,21 @@ To update your Spark SDK simply download an unzip a new [spark_sdk.zip](https://
|
||||
|
||||
To preserve the old image so you can go back to it later run `docker tag spark_sdk spark_sdk:your_custom_tag` before loading the new SDK image.
|
||||
|
||||
<!--
|
||||
Then stop, remove and restart spark_sdk.
|
||||
### Re-build the Dev Container
|
||||
|
||||
If you are using Visual Studio Code you also need to rebuild the dev-container so it picks up the new image.
|
||||
|
||||
#### Inside VSCode
|
||||
To re-build from inside Visual Studio Code. Click the 'Remote Explorer' icon on the left hand side.
|
||||
You should see your spark_sdk project listed under the Containers section. Right click on it and select **rebuild-container**.
|
||||
|
||||
#### Command Line
|
||||
To re-build from the command line run `docker ps -a` and find the row with the spark_sdk image.
|
||||
```
|
||||
c:\bts> docker stop spark_sdk
|
||||
c:\bts> docker rm spark_sdk
|
||||
c:\bts> docker run -d -v %cd%:/sdk --name spark_sdk bluetradingsytems/spark_sdk
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
54d96cfa3888 spark_sdk "/bin/sh -c 'echo Co…" About a minute ago Up About a minute 127.0.0.1:9000-9001->9000-9001/tcp quizzical_lichterman
|
||||
```
|
||||
Then run `docker rm 54d96cfa3888` (use your container id instead of 54d96cfa3888) or `docker rm quizzical_lichterman` (use your container name).
|
||||
|
||||
|
||||
``` -->
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
+++
|
||||
title="Reference"
|
||||
template="documentation.html"
|
||||
sort_by="weight"
|
||||
weight = 2
|
||||
+++
|
||||
|
||||
@@ -6,3 +6,9 @@ weight = 40
|
||||
## I need to make a call that might take a few seconds. What is the best way to do this?
|
||||
|
||||
Create a background thread in [do_before_launch](/server/ref/initialization#before-launch) or [do_launch](/server/ref/initialization#launch-launch-attached) to do the work. Use [on_timer](/server/ref/subscriptions#timer) to poll until the result is available.
|
||||
|
||||
## I don't see the header files in the .zip file. Where are they?
|
||||
|
||||
The SDK headers are baked into the docker image along with the build tools. Once you've loaded the image with `docker load < spark_sdk.img` you can run this command to copy them out to your local file system `docker run --rm -it -v $PWD:/out spark_sdk /bin/tar -cvf /out/headers.tar /sdk/include` This will copy the headers to the current directory in headers.tar. We still recommend doing the actual build inside the docker environment but having a copy of the headers can be useful for setting up your development environment.
|
||||
|
||||
|
||||
File renamed without changes.
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
@@ -1,6 +1,5 @@
|
||||
+++
|
||||
title="Samples"
|
||||
template="documentation.html"
|
||||
sort_by="weight"
|
||||
weight = 3
|
||||
+++
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
{% extends "index.html" %}
|
||||
|
||||
{% block extra_nav_class %}{% endblock extra_nav_class %}
|
||||
{% block extra_content_class %}content--reversed{% endblock extra_content_class %}
|
||||
|
||||
{% block content %}
|
||||
{% set section = get_section(path="client/_index.md") %}
|
||||
<div class="documentation">
|
||||
<aside class="documentation__sidebar">
|
||||
<ul>
|
||||
{% for p in section.subsections %}
|
||||
{% set subsection = get_section(path=p) %}
|
||||
<li>
|
||||
<span class="documentation__sidebar__title">{{ subsection.title }}</span>
|
||||
<ul>
|
||||
{% for page in subsection.pages %}
|
||||
<li class="{% if current_path == page.path %}active{% endif %}">
|
||||
<a href="{{page.permalink}}">{{page.title}}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</aside>
|
||||
<div class="documentation__content">
|
||||
{% block doc_content %}
|
||||
{% endblock doc_content %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -1,36 +0,0 @@
|
||||
{% extends "index.html" %}
|
||||
|
||||
{% block extra_nav_class %}{% endblock extra_nav_class %}
|
||||
{% block extra_content_class %}content--reversed{% endblock extra_content_class %}
|
||||
|
||||
{% block content %}
|
||||
{%if page.extra.section %}
|
||||
{% set section = get_section(path="{{page.extra.section}}/_index.md") %}
|
||||
{% else %}
|
||||
{% set section = get_section(path="server/_index.md") %}
|
||||
{% endif %}
|
||||
<div class="documentation">
|
||||
<aside class="documentation__sidebar">
|
||||
<ul>
|
||||
{% for p in section.subsections %}
|
||||
{% set subsection = get_section(path=p) %}
|
||||
<li>
|
||||
<span class="documentation__sidebar__title">{{ subsection.title }}</span>
|
||||
<ul>
|
||||
{% for page in subsection.pages %}
|
||||
<li class="{% if current_path == page.path %}active{% endif %}">
|
||||
<a href="{{page.permalink}}">{{page.title}}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</aside>
|
||||
<div class="documentation__content">
|
||||
{% block doc_content %}
|
||||
{% endblock doc_content %}
|
||||
{% block next_link %} {% endblock next_link %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-gb">
|
||||
<html lang="en-us">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
@@ -14,6 +14,7 @@
|
||||
<link rel="stylesheet" href="{{ get_url(path="site.css") }}"/>
|
||||
<link rel="icon" href="{{ get_url(path="favicon.ico") }}">
|
||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
<script> dataLayer = [{ 'visitorType': 'geek' }]; </script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -36,13 +37,13 @@
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<div class="content {% block extra_content_class %}{% endblock extra_content_class %}">
|
||||
<div class="content content--reversed">
|
||||
{% block content %}
|
||||
<div class="hero">
|
||||
<h1>Spark SDK</h1>
|
||||
<p class="hero__tagline">
|
||||
Spark consists of a client UI
|
||||
(<a class="white" href="https://www.bluetradingsystems.com/bts-spark#ladder-algo-screen">Spark Client</a>),
|
||||
(<a href="https://www.bluetradingsystems.com/bts-spark#ladder-algo-screen">Spark Client</a>),
|
||||
a high-performance professional futures front end, connected via our proprietary protocol over TCP to our Spark Server, which in turn connects to execution venues via their native protocols.
|
||||
Use the Spark SDK to extend Spark Server with your custom Algos, then use the Client SDK to launch and control them.
|
||||
</p>
|
||||
@@ -64,7 +65,7 @@
|
||||
<a href="{{ get_url(path="@/server/_index.md") }}" class="button">Get started</a>
|
||||
</div>
|
||||
|
||||
<div class="selling-point disabled">
|
||||
<div class="selling-point">
|
||||
<h2>
|
||||
Client SDK
|
||||
<i class="fa fa-gamepad" aria-hidden="true"></i>
|
||||
@@ -72,19 +73,9 @@
|
||||
<p>
|
||||
The Spark client SDK allows you to integrate spark with your existing ecosystem. The Spark Client is built entirely on this simple, powerful API.
|
||||
</p>
|
||||
<a href="" class="button" disabled>Get started</a>
|
||||
<a href="{{ get_url(path="@/client/_index.md") }}" class="button">Get started</a>
|
||||
</div>
|
||||
|
||||
<!-- <div class="selling-point disabled">
|
||||
<h2>
|
||||
Microsoft Excel
|
||||
<i class="fa fa-table" aria-hidden="true"></i>
|
||||
</h2>
|
||||
<p>
|
||||
More of your business is built on excel than probably should be. Continue this worrying trend with the Spark Excel API.
|
||||
</p>
|
||||
<a href="" class="button" disabled>Get started</a>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -94,6 +85,15 @@
|
||||
© Blue Trading Systems
|
||||
</footer>
|
||||
|
||||
<script>
|
||||
if (location.hostname == "api.bluetradesys.com") {
|
||||
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
|
||||
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
|
||||
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
|
||||
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
|
||||
})(window,document,'script','dataLayer','GTM-56FHG8R');
|
||||
}
|
||||
</script>
|
||||
<script type="text/javascript" src="{{ get_url(path="elasticlunr.min.js") }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="search_index.en.js") }}"></script>
|
||||
<script type="text/javascript" src="{{ get_url(path="search.js") }}"></script>
|
||||
|
||||
@@ -1,13 +1,39 @@
|
||||
{% extends "documentation.html" %}
|
||||
{% extends "index.html" %}
|
||||
{# this has access to the "page" variable but documentation.html does not #}
|
||||
|
||||
{% block title %}{{ page.title }} | {{ super() }} {% endblock title %}
|
||||
{% block doc_content %}
|
||||
<h1>{{page.title}}</h1>
|
||||
{{page.content | safe}}
|
||||
{% endblock doc_content %}
|
||||
|
||||
{% block next_link %}
|
||||
<p>
|
||||
{% endblock next_link %}
|
||||
|
||||
{% block content %}
|
||||
{% set section = get_section(path=page.ancestors[1]) %}
|
||||
{#
|
||||
{#<div>{{ section.title }} </div>#}
|
||||
<div class="documentation">
|
||||
<aside class="documentation__sidebar">
|
||||
<ul>
|
||||
{% for p in section.subsections %}
|
||||
{% set subsection = get_section(path=p) %}
|
||||
<li>
|
||||
<span class="documentation__sidebar__title">{{ subsection.title }}</span>
|
||||
<ul>
|
||||
{% for page in subsection.pages %}
|
||||
<li class="{% if current_path == page.path %}active{% endif %}">
|
||||
<a href="{{page.permalink}}">{{page.title}}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</aside>
|
||||
<div class="documentation__content">
|
||||
<h1>{{page.title}}</h1>
|
||||
{{page.content | safe}}
|
||||
|
||||
{# next/pre links #}
|
||||
<p>
|
||||
{% if page.lighter %}
|
||||
<a href="{{ page.lighter.permalink }}">
|
||||
<i class="fa fa-chevron-left fa-fw" aria-hidden="true"></i>
|
||||
@@ -21,5 +47,7 @@
|
||||
<i class="fa fa-chevron-right fa-fw" aria-hidden="true"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
</p>
|
||||
{% endblock next_link %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -1 +0,0 @@
|
||||
set(sources /home/ppinto/Dropbox/bts/spark/doc/user/build.sh;content/_index.md;content/bts_spark/Glossary/_index.md;content/bts_spark/Help/_index.md;content/bts_spark/Help/about_spark.png;content/bts_spark/Help/image39.png;content/bts_spark/Help/image58.png;content/bts_spark/Launcher/_index.md;content/bts_spark/Launcher/image38.png;content/bts_spark/Launcher/image68.png;content/bts_spark/Logging-In-to-the-System/_index.md;content/bts_spark/Logging-In-to-the-System/image3.png;content/bts_spark/Logging-In-to-the-System/image64.png;content/bts_spark/Market/_index.md;content/bts_spark/Market/change_securities.png;content/bts_spark/Market/image11.png;content/bts_spark/Market/image14.png;content/bts_spark/Market/image20.png;content/bts_spark/Market/image21.png;content/bts_spark/Market/image23.png;content/bts_spark/Market/image24.png;content/bts_spark/Market/image34.png;content/bts_spark/Market/image49.png;content/bts_spark/Market/image53.png;content/bts_spark/Market/image66.png;content/bts_spark/Market/image69.png;content/bts_spark/Market/market_view.png;content/bts_spark/Market/settings_icon.png;content/bts_spark/Market/time_and_sales.png;content/bts_spark/My-Windows/_index.md;content/bts_spark/My-Windows/image15.png;content/bts_spark/My-Windows/image16.png;content/bts_spark/My-Windows/image37.png;content/bts_spark/Settings/_index.md;content/bts_spark/Settings/image51.png;content/bts_spark/Settings/image9.png;content/bts_spark/Spreader/_index.md;content/bts_spark/Spreader/image10.png;content/bts_spark/Spreader/image13.png;content/bts_spark/Spreader/image18.png;content/bts_spark/Spreader/image19.png;content/bts_spark/Spreader/image28.png;content/bts_spark/Spreader/image29.png;content/bts_spark/Spreader/image31.png;content/bts_spark/Spreader/image35.png;content/bts_spark/Spreader/image40.png;content/bts_spark/Spreader/image43.png;content/bts_spark/Spreader/image54.png;content/bts_spark/Spreader/image55.png;content/bts_spark/Spreader/image56.png;content/bts_spark/Spreader/image6.png;content/bts_spark/Spreader/image7.png;content/bts_spark/Spreader/image70.png;content/bts_spark/Spreader/image72.png;content/bts_spark/Spreader/image8.png;content/bts_spark/Trading/OrderTypes/index.md;content/bts_spark/Trading/_index.md;content/bts_spark/Trading/algo_studio.png;content/bts_spark/Trading/collapse_all_icon.png;content/bts_spark/Trading/cover_algo_control.png;content/bts_spark/Trading/expand_all_icon.png;content/bts_spark/Trading/image1.png;content/bts_spark/Trading/image17.png;content/bts_spark/Trading/image2.png;content/bts_spark/Trading/image25.png;content/bts_spark/Trading/image27.png;content/bts_spark/Trading/image33.png;content/bts_spark/Trading/image42.png;content/bts_spark/Trading/image44.png;content/bts_spark/Trading/image47.png;content/bts_spark/Trading/image48.png;content/bts_spark/Trading/image5.png;content/bts_spark/Trading/image50.png;content/bts_spark/Trading/image52.png;content/bts_spark/Trading/image57.png;content/bts_spark/Trading/image59.png;content/bts_spark/Trading/image60.png;content/bts_spark/Trading/image61.png;content/bts_spark/Trading/image62.png;content/bts_spark/Trading/image73.png;content/bts_spark/Trading/image74.png;content/bts_spark/Trading/join_algo_control.png;content/bts_spark/Trading/ladder.png;content/bts_spark/Trading/ladder_badges.png;content/bts_spark/Trading/ladder_main_part.png;content/bts_spark/Trading/lean_algo_control.png;content/bts_spark/Trading/mini_orderbook.png;content/bts_spark/Trading/oco_algo_control.png;content/bts_spark/Trading/offset_algo_control.png;content/bts_spark/Trading/pnl_calculation.png;content/bts_spark/Trading/pnl_window.png;content/bts_spark/Trading/recreate_icon.png;content/bts_spark/Trading/settings_icon.png;content/bts_spark/Trading/spark_menu_order_book.png;content/bts_spark/Trading/top_algo_control.png;content/bts_spark/Trading/trigger_algo_control.png;content/bts_spark/_index.md;content/release_notes/_index.md;content/system_requirements/_index.md;static/book.js;static/favicon.ico;static/image.js;templates/index.html;templates/page.html;templates/section.html;templates/shortcodes/back_button.html)
|
||||
@@ -1,8 +1,8 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project(doc)
|
||||
|
||||
include(${CMAKE_SOURCE_DIR}/tools/safe_dep_glob.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/tools/Protobuf.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/safe_dep_glob.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/Protobuf.cmake)
|
||||
|
||||
# DEPENDENCIES
|
||||
set(DOC_GLOBS
|
||||
|
||||
@@ -1,9 +1,38 @@
|
||||
+++
|
||||
+++
|
||||
title = "Release notes"
|
||||
weight = 3
|
||||
sort_by = "weight"
|
||||
insert_anchor_links = "right"
|
||||
+++
|
||||
## 2.16.2
|
||||
### User Visible Change
|
||||
- Synthetic creation dialog has a "fractional" checkbox next to the tick settings. Users may uncheck this box to enter integer tick sizes, so the synthetic security's prices will be displayed without decimals, or fractional units.
|
||||
## 2.16.1
|
||||
### Bug Fixes
|
||||
- OrderBook's algo state parameters (in the panel on the right side) are sorted alphabetically
|
||||
## 2.16.0
|
||||
### Bug Fixes
|
||||
- Solved an issue that could result in incorrect ladder levels
|
||||
- Solved an issue that could lead to incorrect routing of orders in the event of certain MSGW changes
|
||||
### API Changes
|
||||
- Add C# client side API samples for order entry, position monitoring and market data observation
|
||||
|
||||
## 2.15.10
|
||||
### Bug Fixes
|
||||
- Solved an issue that could cause the user interface to fail when playing some alert sounds
|
||||
### API Changes
|
||||
- Added settlement and position information to the API
|
||||
- Added the ability for user algos to report custom state to the user interface
|
||||
- Added the ability for algos to discover all active securities
|
||||
## 2.15.3
|
||||
### Bug Fixes
|
||||
- Fixed a bug where some CME currency spreads exhibited incorrect tick values
|
||||
## 2.15.2
|
||||
### User Visible Changes
|
||||
- Excel RTD plugin can now receive ICE market data
|
||||
## 2.15.1
|
||||
### Bug Fixes
|
||||
- Fixed a FIX log parsing issue that resulted in exchange gateway logon problems
|
||||
## 2.15.0
|
||||
### User Visible Changes
|
||||
- Added ability to hide Ladder status messages via Ladder Settings -> Left Panel tab -> Show/Hide groupbox -> Status Message
|
||||
@@ -699,3 +728,4 @@ insert_anchor_links = "right"
|
||||
- Start, Day and Total PnL columns are painted with a red or green background color based on if the pnl value is negative or positive respectively
|
||||
- Corrected cash per point values, used in pnl calculations, for a number of products
|
||||
- PnL report will now remember any customizations you make to filtering and/or sorting criteria
|
||||
|
||||
-1
Submodule docker/linux deleted from 68f43cef8d.
@@ -0,0 +1,103 @@
|
||||
FROM ubuntu:22.10
|
||||
|
||||
RUN \
|
||||
apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
clang-13 \
|
||||
clang-format-13 \
|
||||
clangd-13 \
|
||||
clang-15 \
|
||||
clang-format-15 \
|
||||
clangd-15 \
|
||||
cmake \
|
||||
curl \
|
||||
dotnet7 \
|
||||
fish \
|
||||
g++-11 \
|
||||
g++-12 \
|
||||
gnupg \
|
||||
liblttng-ust-dev \
|
||||
libssh2-1-dev \
|
||||
libpcap0.8-dev \
|
||||
locales \
|
||||
ninja-build \
|
||||
nodejs \
|
||||
npm \
|
||||
openssh-server \
|
||||
python3-pip \
|
||||
python3-venv \
|
||||
rapidjson-dev \
|
||||
software-properties-common \
|
||||
sqlite3 \
|
||||
sudo \
|
||||
tar \
|
||||
vim \
|
||||
wget
|
||||
|
||||
# this is done here so that ccache sees clang++ installed, not clang-10
|
||||
RUN \
|
||||
apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y ccache
|
||||
|
||||
# emumba deps
|
||||
RUN \
|
||||
apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
|
||||
tzdata \
|
||||
build-essential \
|
||||
cmake-curses-gui \
|
||||
git-all \
|
||||
doxygen \
|
||||
python3-sphinx \
|
||||
graphviz \
|
||||
libgtest-dev \
|
||||
libssl-dev \
|
||||
libboost-filesystem-dev \
|
||||
libboost-program-options-dev \
|
||||
libboost-test-dev \
|
||||
libboost-date-time-dev \
|
||||
zlib1g-dev \
|
||||
netcat-traditional \
|
||||
net-tools \
|
||||
gdb gdbserver \
|
||||
pkg-config
|
||||
|
||||
# set up default executables (update-alternatives)
|
||||
RUN \
|
||||
update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-13 100; \
|
||||
update-alternatives --install /usr/bin/clang clang /usr/bin/clang-13 100; \
|
||||
update-alternatives --install /usr/bin/clang-format clang-format /usr/bin/clang-format-13 100; \
|
||||
update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-13 100; \
|
||||
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100; \
|
||||
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
|
||||
|
||||
# Add compiler symlinks for ccache
|
||||
RUN \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/clang; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/clang++; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/clang-13; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/clang++-13; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/clang-15; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/clang++-15; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/gcc; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/g++; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/gcc-11; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/g++-11; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/gcc-12; \
|
||||
ln -s /usr/bin/ccache /usr/local/bin/g++-12
|
||||
|
||||
RUN locale-gen en_US.UTF-8
|
||||
|
||||
ARG docker_user="bts"
|
||||
ARG docker_uid="1000"
|
||||
ARG docker_pass="bts"
|
||||
|
||||
RUN \
|
||||
groupadd -g "$docker_uid" "$docker_user" \
|
||||
&& useradd \
|
||||
-m \
|
||||
-u "$docker_uid" \
|
||||
-g "$docker_uid" \
|
||||
-G sudo \
|
||||
--password "$(openssl passwd -1 "$docker_pass")" \
|
||||
"$docker_user"
|
||||
@@ -0,0 +1,64 @@
|
||||
[dev containers]: https://code.visualstudio.com/docs/devcontainers/containers
|
||||
[dev containers ext]: https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
|
||||
[docker repo sparkd-dev]: https://hub.docker.com/repository/docker/bluetradingsystems/sparkd-dev/general
|
||||
# Sparkd Dev Container
|
||||
## How to create a VS Code [Dev Container][dev containers]
|
||||
|
||||
1. Make sure the **[Dev Containers][dev containers ext]** extension is installed
|
||||
1. Make sure your Docker image is up to date
|
||||
```
|
||||
docker pull bluetradingsystems/sparkd-dev:latest
|
||||
```
|
||||
1. Copy **devcontainer.json** from this folder to **$workspaceFolder/.devcontainer/**.
|
||||
|
||||
1. In the VS Code Command Palette, run **Dev Containers: Reopen in Container**
|
||||
|
||||
---
|
||||
## How to create a Sparkd Container in the terminal (without VS Code)
|
||||
|
||||
1. Make sure your Docker image is up to date
|
||||
```
|
||||
docker pull bluetradingsystems/sparkd-dev:latest
|
||||
```
|
||||
2. Start the container
|
||||
```
|
||||
# Replace <cont_name> with a name for the container. The container's
|
||||
# "$HOME" dir will be mounted to "$HOME/.sparkd-dev/mounts/<cont_name> on
|
||||
# the host
|
||||
|
||||
./start_docker.sh --container <cont_name> --mount-existing
|
||||
```
|
||||
* *Replace <cont_name> with a name for the container*
|
||||
* *The container's `$HOME` dir will be mounted to
|
||||
`$HOME/.sparkd-dev/mounts<cont_name>` on the host*<br>
|
||||
* *Run: `./start_docker.sh --help` to see additional options*
|
||||
3. *(Optional) Attach VS Code to the running container.*<br>
|
||||
Run **Dev Containers: Attach to Running Container** from the command palette,
|
||||
then select your container in the dropdown
|
||||
|
||||
---
|
||||
## How to update the Docker image
|
||||
|
||||
1. Change the image by modifying the Dockerfile (don't tag arbitrary
|
||||
images on your machine and push them to our repo on Docker Hub)
|
||||
|
||||
1. After modifying the Dockerfile, (re)build the image
|
||||
```
|
||||
# Run in this dir
|
||||
docker build -t bluetradingsystems/sparkd-dev:latest .
|
||||
```
|
||||
***Note:** Your docker login must have write permissions to push to the
|
||||
[sparkd-dev][docker repo sparkd-dev] repository*
|
||||
|
||||
2. Commit the changes to Dockerfile in git
|
||||
|
||||
3. Push the new image to Docker Hub
|
||||
|
||||
```
|
||||
docker push johncolvin/bluetradingsystems:sparkd-dev
|
||||
```
|
||||
***Note:** The image doesn't have to be on Docker Hub, we can simply build
|
||||
it from scratch on our local machines (with the Dockerfile). However, this
|
||||
takes time. It is significantly quicker to download a prebuilt image, so we
|
||||
store it on a remote repository to save time when setting up a new dev
|
||||
machine.*
|
||||
@@ -0,0 +1,123 @@
|
||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||
# for examples
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
|
||||
# don't put duplicate lines or lines starting with space in the history.
|
||||
# See bash(1) for more options
|
||||
HISTCONTROL=ignoreboth
|
||||
|
||||
# append to the history file, don't overwrite it
|
||||
shopt -s histappend
|
||||
|
||||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||
HISTSIZE=1000
|
||||
HISTFILESIZE=2000
|
||||
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
shopt -s checkwinsize
|
||||
|
||||
# If set, the pattern "**" used in a pathname expansion context will
|
||||
# match all files and zero or more directories and subdirectories.
|
||||
#shopt -s globstar
|
||||
|
||||
# make less more friendly for non-text input files, see lesspipe(1)
|
||||
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||
|
||||
# set variable identifying the chroot you work in (used in the prompt below)
|
||||
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||
debian_chroot=$(cat /etc/debian_chroot)
|
||||
fi
|
||||
|
||||
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||
case "$TERM" in
|
||||
xterm-color|*-256color) color_prompt=yes;;
|
||||
esac
|
||||
|
||||
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||
# off by default to not distract the user: the focus in a terminal window
|
||||
# should be on the output of commands, not on the prompt
|
||||
#force_color_prompt=yes
|
||||
|
||||
if [ -n "$force_color_prompt" ]; then
|
||||
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||
# We have color support; assume it's compliant with Ecma-48
|
||||
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||
# a case would tend to support setf rather than setaf.)
|
||||
color_prompt=yes
|
||||
else
|
||||
color_prompt=
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$color_prompt" = yes ]; then
|
||||
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||
else
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
fi
|
||||
unset color_prompt force_color_prompt
|
||||
|
||||
# If this is an xterm set the title to user@host:dir
|
||||
case "$TERM" in
|
||||
xterm*|rxvt*)
|
||||
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
#alias dir='dir --color=auto'
|
||||
#alias vdir='vdir --color=auto'
|
||||
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
fi
|
||||
|
||||
# colored GCC warnings and errors
|
||||
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
||||
|
||||
# some more ls aliases
|
||||
alias ll='ls -alF'
|
||||
alias la='ls -A'
|
||||
alias l='ls -CF'
|
||||
|
||||
# Add an "alert" alias for long running commands. Use like so:
|
||||
# sleep 10; alert
|
||||
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||
|
||||
# Alias definitions.
|
||||
# You may want to put all your additions into a separate file like
|
||||
# ~/.bash_aliases, instead of adding them here directly.
|
||||
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||
|
||||
if [ -f ~/.bash_aliases ]; then
|
||||
. ~/.bash_aliases
|
||||
fi
|
||||
|
||||
# enable programmable completion features (you don't need to enable
|
||||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||
# sources /etc/bash.bashrc).
|
||||
if ! shopt -oq posix; then
|
||||
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||
. /usr/share/bash-completion/bash_completion
|
||||
elif [ -f /etc/bash_completion ]; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ! -v XDG_CONFIG_HOME ]]; then
|
||||
export XDG_CONFIG_HOME="$HOME/.config"
|
||||
fi
|
||||
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
@@ -0,0 +1,25 @@
|
||||
if ! set -q XDG_CONFIG_HOME
|
||||
set -g XDG_CONFIG_HOME "$HOME/.config"
|
||||
end
|
||||
set fish_config_home $XDG_CONFIG_HOME/fish
|
||||
if test -f "$fish_config_home/aliases.fish"
|
||||
source "$fish_config_home/aliases.fish"
|
||||
end
|
||||
# enable general colors and case insensitive search in 'less'
|
||||
set -x LESS "$LESS -R -Q -I"
|
||||
set -x LC_ALL en_US.UTF-8
|
||||
# enable syntax highlighting in 'less'
|
||||
# set highlight color scheme in 'less' (fg)(bg)
|
||||
set -g LESS_TERMCAP_md (tput bold)(tput setaf 36)
|
||||
set -g LESS_TERMCAP_me (tput sgr0)
|
||||
set -g LESS_TERMCAP_so (tput setaf 232)(tput setab 49)
|
||||
|
||||
set -q TERM
|
||||
if test $status != 0; or test $TERM = 'xterm'
|
||||
set -g TERM 'xterm-256color'
|
||||
end
|
||||
|
||||
# Fix impossible-to-see navy blue command text color
|
||||
set fish_color_command F8F8F2
|
||||
|
||||
set -g PATH "$HOME/.local/bin" "$PATH"
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"image": "bluetradingsystems/sparkd-dev:latest",
|
||||
"initializeCommand": "${localWorkspaceFolder}/docker/sparkd/dev/devcontainer_initialize.sh",
|
||||
"hostRequirements": {
|
||||
"memory": "4gb",
|
||||
"storage": "6gb"
|
||||
},
|
||||
"postCreateCommand": "/home/bts/spark/docker/sparkd/dev/devcontainer_post_create.sh",
|
||||
"containerUser": "bts",
|
||||
"workspaceMount": "source=${localWorkspaceFolder},target=/home/bts/spark,type=bind",
|
||||
"workspaceFolder": "/home/bts/spark",
|
||||
"updateRemoteUserUID": true,
|
||||
"shutdownAction": "none",
|
||||
// Note: If running multiple containers on the same host, each must use a
|
||||
// unique set of ports. Usually we just add 1000 to each port as needed. For
|
||||
// example, if 8000-8003 is taken, go with 9000-9003, then 10000-10003, etc.
|
||||
"runArgs": [
|
||||
"--shm-size",
|
||||
"2gb",
|
||||
"-p",
|
||||
"8000:8000",
|
||||
"-p",
|
||||
"8001:8001",
|
||||
"-p",
|
||||
"8002:8002",
|
||||
"-p",
|
||||
"8003:8003"
|
||||
],
|
||||
"mounts": [
|
||||
"source=${localEnv:HOME}/.sparkd-dev/mounts/sparkd-dev,target=/home/bts,type=bind"
|
||||
]
|
||||
}
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
mkdir -p "$HOME/.sparkd-dev/mounts/sparkd-dev"
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
this_dir="$(realpath "$(dirname "${BASH_SOURCE[0]}")")"
|
||||
repo_dir="$(cd "$this_dir" && git rev-parse --show-toplevel)"
|
||||
tools_dir="$repo_dir/tools"
|
||||
gen_tag="GENERATED BY $(basename "${BASH_SOURCE[0]}")"
|
||||
|
||||
function copy_if_not_exist() {
|
||||
src="$1"
|
||||
dest="$2"
|
||||
if [[ ! -e "$src" ]]; then
|
||||
echo "Unable to copy $src to $dest. Source file doesn't exist"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -e "$dest" ]]; then
|
||||
cp "$src" "$dest"
|
||||
fi
|
||||
}
|
||||
|
||||
# Init bashrc
|
||||
echo "Initializing bashrc"
|
||||
copy_if_not_exist "$this_dir/bashrc" "$HOME/.bashrc"
|
||||
|
||||
# Init fish config
|
||||
echo "Initializing fish config"
|
||||
fish_cfg_dir="$HOME/.config/fish/"
|
||||
mkdir -p "$fish_cfg_dir"
|
||||
exec "$tools_dir/write_tag_block.sh" \
|
||||
--tag "$gen_tag" \
|
||||
--replace \
|
||||
--in-place \
|
||||
--file "$fish_cfg_dir/config.fish" \
|
||||
--text "$(cat "$this_dir/config.fish")"
|
||||
Executable
+250
@@ -0,0 +1,250 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function _exit() {
|
||||
if [[ "$#" -gt 1 ]]; then
|
||||
# When there are multiple args, the last arg is the exit code.
|
||||
echo "${@:1:($# - 1)}"
|
||||
exit "${@: -1}"
|
||||
fi
|
||||
echo "$1"
|
||||
exit 0
|
||||
}
|
||||
|
||||
help_text="\
|
||||
Add or update a user's uid
|
||||
|
||||
This script is intended to be run in a Docker container as a means to obtain
|
||||
file permissions in mounted directories owned by the specified UID.
|
||||
|
||||
Usage: set_user.sh [OPTIONS] USER UID
|
||||
|
||||
Positionals:
|
||||
USER The name of the user
|
||||
|
||||
Options:
|
||||
--user USER The name of the user (defaults to 'bts')
|
||||
--uid UID The new uid to give USER (defaults to '1000')
|
||||
--group GROUP The primary group to give USER (defaults to USER)
|
||||
--gid GID The primary gid to give USER (defaults to UID)
|
||||
--pass PASSWORD The password to give USER (defaults to USER, only applies
|
||||
if USER hasn't been created yet)
|
||||
--modify-existing Update UID/GID even if USER already exists
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
"
|
||||
|
||||
function _add_group() {
|
||||
if [[ "$#" -ne 2 ]]; then
|
||||
_exit "'_add_group' requires exactly 2 args (group, gid). Received $#." 1
|
||||
fi
|
||||
local group="$1"
|
||||
local gid="$2"
|
||||
# Check if gid already exists
|
||||
local existing_group=""
|
||||
existing_group="$(getent group "$gid" | cut -d : -f 1)"
|
||||
if [[ -n "$existing_group" ]]; then
|
||||
if [[ "$existing_group" != "$group" ]]; then
|
||||
echo "\
|
||||
The gid '$gid' is already in use by group '$existing_group' (will not rename \
|
||||
the group)"
|
||||
fi
|
||||
return
|
||||
fi
|
||||
|
||||
# Check if group with same name already exists
|
||||
local existing_gid=""
|
||||
existing_gid="$(getent group "$group" | cut -d : -f 3)"
|
||||
if [[ -n "$existing_gid" ]]; then
|
||||
# The group already exists. Only modify if --modify-existing was specified.
|
||||
if [[ "$modify_existing" -eq 0 ]]; then
|
||||
_exit "\
|
||||
The group '$group' already exists with gid '$existing_gid'.
|
||||
Specify --modify-existing to change the gid anyways." 1
|
||||
fi
|
||||
echo "Changing gid for group '$group' from '$existing_gid' to '$gid'"
|
||||
groupmod -g "$gid" "$group"
|
||||
else
|
||||
# The group doesn't exist. Add it
|
||||
echo "Adding group '$group:$gid'"
|
||||
groupadd -g "$gid" "$group"
|
||||
fi
|
||||
}
|
||||
|
||||
function _add_user() {
|
||||
local user="$1"
|
||||
local uid="$2"
|
||||
local group="$3"
|
||||
local gid="$4"
|
||||
local pass="$5"
|
||||
if [[ "$#" -ne 5 ]]; then
|
||||
_exit "'_add_user' requires exactly 5 args (user, uid, group, gid, pass). \
|
||||
Received $#." 1
|
||||
fi
|
||||
|
||||
# Check if uid is being used by another user
|
||||
local existing_user=""
|
||||
existing_user="$(getent passwd "$uid" | cut -d : -f 1)"
|
||||
if [[ -n "$existing_user" ]]; then
|
||||
if [[ "$existing_user" != "$user" ]]; then
|
||||
_exit "The uid '$uid' is already in use by user '$existing_user'." 1
|
||||
fi
|
||||
|
||||
echo "The user '$user' already has the specified uid '$uid'."
|
||||
# Modify gid if necessary
|
||||
local existing_gid=""
|
||||
existing_gid="$(id -g "$user" 2> /dev/null)"
|
||||
if [[ "$existing_gid" = "$gid" ]]; then
|
||||
echo "The user '$user' already has the specified gid '$gid'."
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ "$modify_existing" -eq 0 ]]; then
|
||||
_exit "\
|
||||
The user '$user' is associated with the primary group '$existing_gid'.
|
||||
Specify --modify-existing to change the gid anyways." 1
|
||||
fi
|
||||
|
||||
echo "Changing primary group for '$user' from '$existing_gid' to '$gid'."
|
||||
usermod -g "$gid" "$user"
|
||||
return
|
||||
fi
|
||||
|
||||
# Check if user with same name already exists
|
||||
local existing_uid=""
|
||||
existing_uid="$(id -u "$user" 2> /dev/null)"
|
||||
if [[ -n "$existing_uid" ]]; then
|
||||
if [[ "$existing_uid" = "$uid" ]]; then
|
||||
_exit "The user '$user' already has the specified uid '$uid'" 0
|
||||
fi
|
||||
|
||||
if [[ "$modify_existing" -eq 0 ]]; then
|
||||
_exit "\
|
||||
User '$user' already exists with uid '$existing_uid'.
|
||||
Specify --modify-existing to change the uid anyways." 1
|
||||
fi
|
||||
|
||||
echo "Changing uid for user '$user' from '$existing_uid' to '$uid'"
|
||||
if ! usermod -u "$uid" -g "$gid" "$user"; then
|
||||
_exit "usermod exited with code $?" 1
|
||||
fi
|
||||
return
|
||||
fi
|
||||
|
||||
# The user doesn't exist. Add it
|
||||
echo "Adding user '$user:$uid' (group='$group:$gid', password='$pass')"
|
||||
useradd -m -u "$uid" -g "$gid" -G sudo --password "$(openssl passwd -1 "$pass")" "$user"
|
||||
}
|
||||
|
||||
function _update_fish_dir_perms() {
|
||||
local user="$1"
|
||||
local uid="$2"
|
||||
local gid="$3"
|
||||
# When a fish shell session starts, a temp dir named '/tmp/fish.<user>' is
|
||||
# created with the user's current uid/gid. If such a dir exists for the
|
||||
# specified USER, make sure the uid/gid match the new values.
|
||||
fish_dir="/tmp/fish.$user"
|
||||
if [[ -d "$fish_dir" ]]; then
|
||||
perms="$uid:$gid"
|
||||
existing_perms="$(stat -c %u:%g "$fish_dir")"
|
||||
if [[ "$existing_perms" != "$perms" ]]; then
|
||||
echo "Changing uid:gid for dir '$fish_dir' from '$existing_perms' to '$perms'"
|
||||
chown -R "$perms" "$fish_dir"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
user=""
|
||||
group=""
|
||||
pass=""
|
||||
declare -i uid=0
|
||||
declare -i gid=0
|
||||
declare -i modify_existing=0
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--user)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "USER (--user) must be non-empty" 1
|
||||
elif [[ "$2" = "root" ]]; then
|
||||
_exit "USER (--user) cannot be 'root'" 1
|
||||
fi
|
||||
user="$2"
|
||||
shift 2
|
||||
;;
|
||||
--group)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "GROUP (--group) must be non-empty" 1
|
||||
elif [[ "$2" = "root" ]]; then
|
||||
_exit "GROUP (--group) cannot be 'root'" 1
|
||||
fi
|
||||
group="$2"
|
||||
shift 2
|
||||
;;
|
||||
--uid)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "UID (--uid) must be non-empty" 1
|
||||
fi
|
||||
uid="$2"
|
||||
shift 2
|
||||
;;
|
||||
--gid)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "GID (--gid) must be non-empty" 1
|
||||
fi
|
||||
gid="$2"
|
||||
shift 2
|
||||
;;
|
||||
--pass)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "PASS (--pass) must be non-empty" 1
|
||||
fi
|
||||
pass="$2"
|
||||
shift 2
|
||||
;;
|
||||
--modify-existing)
|
||||
modify_existing=1
|
||||
shift 1
|
||||
;;
|
||||
-h)
|
||||
;&
|
||||
--help)
|
||||
_exit "$help_text" 0
|
||||
;;
|
||||
*)
|
||||
if [[ -z "$1" ]]; then
|
||||
_exit "Invalid positional argument '$1'" 1
|
||||
elif [[ -z "$user" ]]; then
|
||||
user="$1"
|
||||
elif [[ -z "$uid" ]]; then
|
||||
uid="$1"
|
||||
else
|
||||
_exit "Unexpected argument '$1'" 1
|
||||
fi
|
||||
shift 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -z "$user" ]]; then
|
||||
user="bts"
|
||||
fi
|
||||
|
||||
if [[ $uid -eq 0 ]]; then
|
||||
uid=1000
|
||||
fi
|
||||
|
||||
# In general, a user's primary group/gid matches the user's name/uid.
|
||||
# If group/gid args weren't specified, set them to name/uid.
|
||||
if [[ -z "$group" ]]; then
|
||||
group="$user"
|
||||
fi
|
||||
if [[ $gid -eq 0 ]]; then
|
||||
gid=$uid
|
||||
fi
|
||||
if [[ -z "$pass" ]]; then
|
||||
pass="$user"
|
||||
fi
|
||||
|
||||
_add_group "$group" "$gid"
|
||||
_add_user "$user" "$uid" "$group" "$gid" "$pass"
|
||||
_update_fish_dir_perms "$user" "$uid" "$gid"
|
||||
Executable
+230
@@ -0,0 +1,230 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function _exit() {
|
||||
if [[ "$#" -gt 1 ]]; then
|
||||
# When there are multiple args, the last arg is the exit code.
|
||||
echo "${@:1:($# - 1)}"
|
||||
exit "${@: -1}"
|
||||
fi
|
||||
echo "$1"
|
||||
exit 0
|
||||
}
|
||||
|
||||
help_text="\
|
||||
Start a docker dev container
|
||||
Usage: start_docker.sh [OPTIONS] image container
|
||||
|
||||
Positionals:
|
||||
image The image to instantiate
|
||||
container The name for the container
|
||||
|
||||
Options:
|
||||
-u,--user USER The user to add in the container (defaults to 'bts')
|
||||
-p,--pass PASS The password for USER in the container (defaults to USER)
|
||||
-i,--image IMAGE The image to instantiate (defaults to 'bluetradingsystems/sparkd-dev:latest')
|
||||
-c,--container CONT The name for the container
|
||||
-m,--mount MOUNT The name for the folder (outside the container) to create/mount to the home
|
||||
directory in the container. Mount folders are added here: $mount_prefix
|
||||
--mount-existing Mount the specified dir even if it already exists
|
||||
--port <cont_port>:<host_port> OR [<cont_port>:<host_port>,...] Port mapping(s). May be
|
||||
specified multiple times.
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
"
|
||||
|
||||
mount_prefix="$HOME/.sparkd-dev/mounts"
|
||||
declare docker_user=""
|
||||
declare docker_pass=""
|
||||
declare image_name=""
|
||||
declare cont_name=""
|
||||
declare mount_name=""
|
||||
declare -i mount_existing=0
|
||||
declare -a port_mappings=()
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
-u)
|
||||
;&
|
||||
--user)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "User (-u,--user) must be non-empty" 1
|
||||
fi
|
||||
docker_user="$2"
|
||||
shift 2
|
||||
;;
|
||||
-p)
|
||||
;&
|
||||
--pass)
|
||||
if [[ -z "$2" ]]; then
|
||||
_exit "Password (-p,--pass) must be non-empty" 1
|
||||
fi
|
||||
docker_pass="$2"
|
||||
shift 2
|
||||
;;
|
||||
-i)
|
||||
;&
|
||||
--image)
|
||||
if [[ -n "$image_name" ]]; then
|
||||
_exit "Unexpected argument '$1'" 1
|
||||
elif [[ -z "$2" ]]; then
|
||||
_exit "Image (-i,--image) must be non-empty" 1
|
||||
fi
|
||||
image_name="$2"
|
||||
shift 2
|
||||
;;
|
||||
-c)
|
||||
;&
|
||||
--container)
|
||||
if [[ -n "$cont_name" ]]; then
|
||||
_exit "Unexpected argument '$1'" 1
|
||||
elif [[ -z "$2" ]]; then
|
||||
_exit "Container (-c,--container) must be non-empty" 1
|
||||
fi
|
||||
cont_name="$2"
|
||||
shift 2
|
||||
;;
|
||||
--port)
|
||||
# Parse port(s) arg, and append the result to 'port_mappings'
|
||||
# Note: port(s) may be specified in bracketed notation:
|
||||
# [a:b,c:d,...,y:z]
|
||||
next_ports="$(echo "$2" | sed -e 's/\[//g' -e 's/\]//g' -e 's/,/ /g')"
|
||||
if [[ "${#port_mappings[@]}" -gt 0 ]]; then
|
||||
next_ports=" $next_ports"
|
||||
fi
|
||||
port_mappings+=("$next_ports")
|
||||
shift 2
|
||||
;;
|
||||
-m)
|
||||
;&
|
||||
--mount)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "Mount (-m,--mount) must be non-empty"
|
||||
fi
|
||||
mount_name="$2"
|
||||
shift 2
|
||||
;;
|
||||
--mount-existing)
|
||||
mount_existing=1
|
||||
shift 1
|
||||
;;
|
||||
-h)
|
||||
;&
|
||||
--help)
|
||||
_exit "$help_text" 0
|
||||
;;
|
||||
*)
|
||||
if [[ -z "$1" ]]; then
|
||||
_exit "Invalid positional argument '$1'" "$help_text" 1
|
||||
elif [[ -z "$image_name" ]]; then
|
||||
image_name="$1"
|
||||
elif [[ -z "$cont_name" ]]; then
|
||||
cont_name="$1"
|
||||
else
|
||||
_exit "Unexpected argument '$1'" "$help_text" 1
|
||||
fi
|
||||
shift 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
if [[ -z "$image_name" ]]; then
|
||||
image_name="bluetradingsystems/sparkd-dev:latest"
|
||||
fi
|
||||
|
||||
host_name="$(hostname)"
|
||||
if [[ -n "$cont_name" ]]; then
|
||||
host_name="$host_name.$cont_name"
|
||||
fi
|
||||
|
||||
if [[ -z "$mount_name" ]]; then
|
||||
mount_name="$cont_name"
|
||||
fi
|
||||
|
||||
if [[ -z "$mount_name" && -z "$cont_name" ]]; then
|
||||
_exit "Please specify mount (-m,--mount) and/or container (-c,--container)" 1
|
||||
fi
|
||||
|
||||
if [[ -z "$docker_user" ]]; then
|
||||
docker_user="bts"
|
||||
fi
|
||||
|
||||
if [[ "$docker_user" = "root" ]]; then
|
||||
_exit "USER (--user) cannot be 'root'" 1
|
||||
fi
|
||||
|
||||
cont_home="/home/$docker_user"
|
||||
home_src="$mount_prefix/$mount_name"
|
||||
home_tgt="$cont_home"
|
||||
this_dir="$(dirname "$(realpath "${BASH_SOURCE[0]}")")"
|
||||
repo_src="$(cd "$this_dir" && git rev-parse --show-toplevel)"
|
||||
repo_tgt="$cont_home/spark"
|
||||
working_dir="$cont_home"
|
||||
|
||||
if [[ $mount_existing -eq 0 && -e "$home_src" ]]; then
|
||||
# Don't overwrite existing dir (might be mounted in another container)
|
||||
_exit "Mount dir '$home_src' already exists (use --mount-existing to mount \
|
||||
an existing directory)" 1
|
||||
fi
|
||||
|
||||
mkdir -p "$home_src"
|
||||
|
||||
if [[ "${#port_mappings[@]}" -eq 0 ]]; then
|
||||
port_mappings=("8000:8000" "8001:8001" "8002:8002" "8003:8003")
|
||||
fi
|
||||
|
||||
# Adapt port_mappings into args for `docker run` by prepending "-p " to each
|
||||
# item
|
||||
declare -a docker_port_args=()
|
||||
for port_mapping in "${port_mappings[@]}"; do
|
||||
docker_port_args+=("-p $port_mapping")
|
||||
done
|
||||
|
||||
echo "Starting container '$cont_name'
|
||||
image_name : $image_name
|
||||
cont_name : $cont_name
|
||||
home_src : $home_src
|
||||
home_tgt : $home_tgt
|
||||
repo_src : $repo_src
|
||||
repo_tgt : $repo_tgt
|
||||
working dir : $working_dir
|
||||
ports : ${port_mappings[*]}
|
||||
"
|
||||
|
||||
# DON'T wrap $docker_port_args in quotes. We want bash to split args by
|
||||
# whitespace
|
||||
docker run \
|
||||
--net bridge \
|
||||
-h "$host_name" \
|
||||
-e "TZ=America/New_York" \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--security-opt seccomp=unconfined \
|
||||
--name "$cont_name" \
|
||||
-v "$home_src:$home_tgt" \
|
||||
-v "$repo_src:$repo_tgt" \
|
||||
-w "$working_dir" \
|
||||
${docker_port_args[*]} \
|
||||
--shm-size=4024m \
|
||||
-t \
|
||||
-i \
|
||||
-d \
|
||||
-e DISPLAY="$DISPLAY" \
|
||||
"$image_name"
|
||||
|
||||
# Add user w/ same uid and gid as the current user outside of docker, so the
|
||||
# user inside the docker has file permissions in the mounted dir.
|
||||
docker_group="$docker_user"
|
||||
docker_uid="$(id -u "$USER")"
|
||||
docker_gid="$(id -g "$USER")"
|
||||
if [[ -z "$docker_pass" ]]; then
|
||||
docker_pass="$docker_user"
|
||||
fi
|
||||
docker exec -u root -it "$cont_name" "$repo_tgt/docker/sparkd/dev/set_user.sh" \
|
||||
--user "$docker_user" \
|
||||
--uid "$docker_uid" \
|
||||
--group "$docker_group" \
|
||||
--gid "$docker_gid" \
|
||||
--pass "$docker_pass"
|
||||
|
||||
# Run same script VS Code runs to initialize the container
|
||||
docker exec -u "$docker_user" -it "$cont_name" "$repo_tgt/docker/sparkd/dev/devcontainer_post_create.sh"
|
||||
Executable
+64
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function print_help_and_exit() {
|
||||
cat <<EOF
|
||||
Open a shell inside the docker container
|
||||
Usage: docker_shell.sh [OPTIONS] [CONTAINER]
|
||||
|
||||
Options:
|
||||
-u,--user The user to login with in the container (defaults to the current user)
|
||||
-c,--container The container name (may also be specified as positional arg)
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
EOF
|
||||
exit "$1"
|
||||
}
|
||||
|
||||
|
||||
declare docker_user=""
|
||||
declare cont_name=""
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
-u)
|
||||
;&
|
||||
--user)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "User (-u,--user) must be non-empty"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
docker_user="$2"
|
||||
shift 2
|
||||
;;
|
||||
-h)
|
||||
;&
|
||||
--help)
|
||||
print_help_and_exit 0
|
||||
;;
|
||||
-c)
|
||||
;&
|
||||
--container)
|
||||
shift 1
|
||||
;&
|
||||
*)
|
||||
if [[ ! -z "$cont_name" ]]; then
|
||||
echo "Unexpected argument '$1'"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
cont_name="$1"
|
||||
shift 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
if [[ -z "$cont_name" ]]; then
|
||||
echo "Please specify the container ([-c,--container])"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$docker_user" ]]; then
|
||||
docker_user="$USER"
|
||||
fi
|
||||
|
||||
docker exec -u "$docker_user" -it "$cont_name" bash
|
||||
Executable
+233
@@ -0,0 +1,233 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
mount_prefix="$HOME/.spark-dev/mounts"
|
||||
|
||||
function print_help_and_exit() {
|
||||
cat <<EOF
|
||||
Start a docker dev container
|
||||
Usage: start_docker.sh [OPTIONS] image container
|
||||
|
||||
Positionals:
|
||||
image The image to instantiate
|
||||
container The name for the container
|
||||
|
||||
Options:
|
||||
-u,--user USER The user to add in the container (defaults to the current user)
|
||||
-p,--pass PASS The password for USER in the container (defaults to USER)
|
||||
-i,--image IMAGE The image to instantiate
|
||||
-c,--container CONT The name for the container
|
||||
-m,--mount MOUNT The name for the folder (outside the container) to create/mount to the home
|
||||
directory in the container. Mount folders are added here: $mount_prefix
|
||||
--mount-existing Mount the specified dir even if it already exists
|
||||
--port <cont_port>:<host_port> OR [<cont_port>:<host_port>,...] Port mapping(s). May be
|
||||
specified multiple times.
|
||||
-h,--help Print this help message and exit
|
||||
|
||||
EOF
|
||||
exit "$1"
|
||||
}
|
||||
|
||||
|
||||
declare docker_user=""
|
||||
declare docker_pass=""
|
||||
declare image_name=""
|
||||
declare cont_name=""
|
||||
declare mount_name=""
|
||||
declare -i mount_existing=0
|
||||
declare -a port_mappings=()
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
-u)
|
||||
;&
|
||||
--user)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "User (-u,--user) must be non-empty"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
docker_user="$2"
|
||||
shift 2
|
||||
;;
|
||||
-p)
|
||||
;&
|
||||
--pass)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "Password (-p,--pass) must be non-empty"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
docker_pass="$2"
|
||||
shift 2
|
||||
;;
|
||||
-i)
|
||||
;&
|
||||
--image)
|
||||
if [[ -n "$image_name" ]]; then
|
||||
echo "Unexpected argument '$1'"
|
||||
print_help_and_exit 1
|
||||
elif [[ -z "$2" ]]; then
|
||||
echo "Image (-i,--image) must be non-empty"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
image_name="$2"
|
||||
shift 2
|
||||
;;
|
||||
-c)
|
||||
;&
|
||||
--container)
|
||||
if [[ -n "$cont_name" ]]; then
|
||||
echo "Unexpected argument '$1'"
|
||||
print_help_and_exit 1
|
||||
elif [[ -z "$2" ]]; then
|
||||
echo "Container (-c,--container) must be non-empty"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
cont_name="$2"
|
||||
shift 2
|
||||
;;
|
||||
--port)
|
||||
# Parse port(s) arg, and append the result to 'port_mappings'
|
||||
# Note: port(s) may be specified in bracketed notation:
|
||||
# [a:b,c:d,...,y:z]
|
||||
next_ports="$(echo "$2" | sed -e 's/\[//g' -e 's/\]//g' -e 's/,/ /g')"
|
||||
if [[ "${#port_mappings[@]}" -gt 0 ]]; then
|
||||
next_ports=" $next_ports"
|
||||
fi
|
||||
port_mappings+=("$next_ports")
|
||||
shift 2
|
||||
;;
|
||||
-m)
|
||||
;&
|
||||
--mount)
|
||||
if [[ -z "$2" ]]; then
|
||||
echo "Mount (-m,--mount) must be non-empty"
|
||||
fi
|
||||
mount_name="$2"
|
||||
shift 2
|
||||
;;
|
||||
--mount-existing)
|
||||
mount_existing=1
|
||||
shift 1
|
||||
;;
|
||||
-h)
|
||||
;&
|
||||
--help)
|
||||
print_help_and_exit 0
|
||||
;;
|
||||
*)
|
||||
if [[ -z "$1" ]]; then
|
||||
echo "Invalid positional argument '$1'"
|
||||
print_help_and_exit 1
|
||||
elif [[ -z "$image_name" ]]; then
|
||||
image_name="$1"
|
||||
elif [[ -z "$cont_name" ]]; then
|
||||
cont_name="$1"
|
||||
else
|
||||
echo "Unexpected argument '$1'"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
shift 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
if [[ -z "$image_name" ]]; then
|
||||
image_name="bluetradingsystems/spark-crypto-dev"
|
||||
fi
|
||||
|
||||
host_name="$(hostname)"
|
||||
if [[ -n "$cont_name" ]]; then
|
||||
host_name="$host_name.$cont_name"
|
||||
fi
|
||||
|
||||
if [[ -z "$mount_name" ]]; then
|
||||
mount_name="$cont_name"
|
||||
fi
|
||||
|
||||
if [[ -z "$mount_name" && -z "$cont_name" ]]; then
|
||||
echo "Please specify mount (-m,--mount) and/or container (-c,--container)"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "$docker_user" ]]; then
|
||||
docker_user="$USER"
|
||||
fi
|
||||
|
||||
home_src=$mount_prefix/$mount_name
|
||||
home_tgt=$HOME
|
||||
repo_src=$(git rev-parse --show-superproject-working-tree)
|
||||
repo_tgt=$HOME/$(basename "$repo_src")
|
||||
working_dir=$HOME
|
||||
|
||||
if [[ $mount_existing -eq 0 && -e "$home_src" ]]; then
|
||||
# Don't overwrite existing dir (might be mounted in another container)
|
||||
echo "Mount dir '$home_src' already exists (use --mount-existing to mount an existing directory)"
|
||||
print_help_and_exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "$home_src"
|
||||
|
||||
if [[ "${#port_mappings[@]}" -eq 0 ]]; then
|
||||
port_mappings=("8000:8000" "8001:8001" "8002:8002" "8003:8003")
|
||||
fi
|
||||
|
||||
# Adapt port_mappings into args for `docker run` by prepending "-p " to each
|
||||
# item
|
||||
declare -a docker_port_args=()
|
||||
for port_mapping in "${port_mappings[@]}"; do
|
||||
docker_port_args+=("-p $port_mapping")
|
||||
done
|
||||
|
||||
echo "Starting container '$cont_name'
|
||||
image_name : $image_name
|
||||
cont_name : $cont_name
|
||||
home_src : $home_src
|
||||
home_tgt : $home_tgt
|
||||
repo_src : $repo_src
|
||||
repo_tgt : $repo_tgt
|
||||
working dir : $working_dir
|
||||
ports : ${port_mappings[*]}
|
||||
"
|
||||
|
||||
# DON'T wrap $docker_port_args in quotes. We want bash to split args by
|
||||
# whitespace
|
||||
docker run \
|
||||
--net bridge \
|
||||
-h "$host_name" \
|
||||
-e "TZ=America/New_York" \
|
||||
--cap-add=SYS_PTRACE \
|
||||
--security-opt seccomp=unconfined \
|
||||
--name "$cont_name" \
|
||||
-v "$home_src:$home_tgt" \
|
||||
-v "$repo_src:$repo_tgt" \
|
||||
-w "$working_dir" \
|
||||
${docker_port_args[*]} \
|
||||
--shm-size=4024m \
|
||||
-t \
|
||||
-i \
|
||||
-d \
|
||||
-e DISPLAY="$DISPLAY" \
|
||||
"$image_name" \
|
||||
bash
|
||||
|
||||
# Add user w/ same uid and gid as the current user outside of docker, so the
|
||||
# user inside the docker has file permissions in the mounted dir.
|
||||
docker_group="$docker_user"
|
||||
docker_user_uid="$(id -u "$USER")"
|
||||
docker_user_gid="$(id -g "$USER")"
|
||||
|
||||
echo "Adding user in container '$cont_name'
|
||||
name : $docker_user
|
||||
uid : $docker_user_uid
|
||||
gid : $docker_user_gid"
|
||||
|
||||
if [[ -z "$docker_pass" ]]; then
|
||||
docker_pass="$docker_user"
|
||||
echo "Giving user '$docker_user' a secure password: $docker_pass"
|
||||
fi
|
||||
|
||||
docker exec -u root -it "$cont_name" groupadd -g "$docker_user_gid" "$docker_group"
|
||||
docker exec -u root -it "$cont_name" useradd -u "$docker_user_uid" -g "$docker_user_gid" "$docker_user"
|
||||
docker exec -u root -it "$cont_name" usermod --password "$(openssl passwd -1 "$docker_pass")" "$docker_user"
|
||||
docker exec -u root -it "$cont_name" usermod -aG sudo "$docker_user"
|
||||
docker exec -u root -it "$cont_name" "$repo_tgt/externals/src/emumba/install_emumba-deribit-connector.sh"
|
||||
Submodule docker/windows deleted from de7d40c09d.
+1
-1
Submodule externals updated: 6d8f64ca5c...de4b394a29.
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"sdk": {
|
||||
"version": "6.0.200",
|
||||
"rollForward": "latestMajor"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"FormattingOptions": {
|
||||
"NewLineForCatch": false,
|
||||
"NewLineForClausesInQuery": true,
|
||||
"NewLineForElse": false,
|
||||
"NewLineForFinally": false,
|
||||
"NewLineForMembersInAnonymousTypes": true,
|
||||
"NewLineForMembersInObjectInit": true,
|
||||
"NewLinesForBracesInAccessors": false,
|
||||
"NewLinesForBracesInAnonymousMethods": false,
|
||||
"NewLinesForBracesInAnonymousTypes": false,
|
||||
"NewLinesForBracesInControlBlocks": false,
|
||||
"NewLinesForBracesInLambdaExpressionBody": false,
|
||||
"NewLinesForBracesInMethods": false,
|
||||
"NewLinesForBracesInObjectCollectionArrayInitializers": false,
|
||||
"NewLinesForBracesInProperties": false,
|
||||
"NewLinesForBracesInTypes": false,
|
||||
"TabSize": 3
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
astroid==2.7.3
|
||||
autopep8==1.5.7
|
||||
certifi==2023.5.7
|
||||
charset-normalizer==3.1.0
|
||||
colorama==0.4.4
|
||||
idna==3.4
|
||||
isort==5.9.3
|
||||
lazy-object-proxy==1.6.0
|
||||
mccabe==0.6.1
|
||||
platformdirs==2.3.0
|
||||
protobuf==4.21.12
|
||||
pybars3==0.9.7
|
||||
pycodestyle==2.7.0
|
||||
pycparser==2.20
|
||||
pylint==2.10.2
|
||||
PyMeta3==0.5.1
|
||||
requests==2.31.0
|
||||
termcolor==1.1.0
|
||||
toml==0.10.2
|
||||
urllib3==2.0.3
|
||||
wrapt==1.12.1
|
||||
yapf==0.31.0
|
||||
+39
-168
@@ -1,224 +1,95 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.27130.2024
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.3.32922.545
|
||||
MinimumVisualStudioVersion = 15.0.26124.0
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api", "src\client\spark_api\spark_api.csproj", "{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspark", "build\src\lib\libspark.vcxproj", "{3335AAF0-489D-359D-8305-9B7A44E2C760}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spark", "src\client\spark\Spark.csproj", "{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "sparkcmd", "src\client\sparkcmd\sparkcmd.csproj", "{387566C6-C6F6-412C-A30C-9855BBCB4816}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spark.Console", "src\client\Spark.Console\Spark.Console.csproj", "{387566C6-C6F6-412C-A30C-9855BBCB4816}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_core", "src\client\spark_core\spark_core.csproj", "{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZERO_CHECK", "build\ZERO_CHECK.vcxproj", "{2256015B-E7D5-3614-8F39-814CA68A4444}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_sdk", "src\client\spark_sdk\spark_sdk.csproj", "{6963C314-83C4-4667-B0D0-C2F7AE208C29}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760} = {3335AAF0-489D-359D-8305-9B7A44E2C760}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_test", "src\client\spark_test\spark_test.csproj", "{ECD78CC5-138F-4809-A764-2358C2AC2E82}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_excel", "src\client\spark_excel\spark_excel.csproj", "{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_websocket", "src\client\spark_websocket\spark_websocket.csproj", "{3201359D-C071-4089-9EDE-B04D759F1508}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "spark_api_server", "src\client\spark_api_server\spark_api_server.csproj", "{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
MinSizeRel|Any CPU = MinSizeRel|Any CPU
|
||||
MinSizeRel|x64 = MinSizeRel|x64
|
||||
MinSizeRel|x86 = MinSizeRel|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
RelWithDebInfo|Any CPU = RelWithDebInfo|Any CPU
|
||||
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
||||
RelWithDebInfo|x86 = RelWithDebInfo|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x64.Build.0 = Debug|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.MinSizeRel|x86.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x64.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.Release|x86.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||
{DC9A8975-8211-4FC9-A9BA-C8B9D26AD481}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Debug|x64.Build.0 = Debug|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.MinSizeRel|Any CPU.ActiveCfg = MinSizeRel|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Release|x64.ActiveCfg = Release|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Release|x64.Build.0 = Release|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.Release|x86.ActiveCfg = Release|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.RelWithDebInfo|Any CPU.ActiveCfg = RelWithDebInfo|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{3335AAF0-489D-359D-8305-9B7A44E2C760}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|x64.Build.0 = Debug|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.MinSizeRel|x86.Build.0 = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|x64.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|x64.Build.0 = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.Release|x86.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||
{9A4D4D07-1AB6-4B2B-B111-A4F34D6C267E}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x86.Build.0 = Debug|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x64.Build.0 = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x86.Build.0 = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Debug|x64.Build.0 = Debug|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x64.ActiveCfg = Release|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.Release|x64.Build.0 = Release|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{387566C6-C6F6-412C-A30C-9855BBCB4816}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x64.Build.0 = Debug|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.MinSizeRel|x86.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.Release|x86.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||
{6E449EB6-20AC-4FA6-B8D9-10F4BB7E1FEE}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Debug|x64.Build.0 = Debug|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.MinSizeRel|Any CPU.ActiveCfg = MinSizeRel|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.MinSizeRel|x86.ActiveCfg = MinSizeRel|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Release|x64.ActiveCfg = Release|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Release|x64.Build.0 = Release|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.Release|x86.ActiveCfg = Release|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.RelWithDebInfo|Any CPU.ActiveCfg = RelWithDebInfo|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{2256015B-E7D5-3614-8F39-814CA68A4444}.RelWithDebInfo|x86.ActiveCfg = RelWithDebInfo|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|x64.Build.0 = Debug|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.MinSizeRel|x86.Build.0 = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|x64.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|x64.Build.0 = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.Release|x86.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||
{6963C314-83C4-4667-B0D0-C2F7AE208C29}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x86.Build.0 = Debug|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x64.Build.0 = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x86.Build.0 = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Debug|Any CPU.ActiveCfg = Debug|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Debug|x64.Build.0 = Debug|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Debug|x86.ActiveCfg = Debug|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|Any CPU.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|Any CPU.Build.0 = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|x86.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.MinSizeRel|x86.Build.0 = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Release|Any CPU.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Release|x64.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Release|x64.Build.0 = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.Release|x86.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|Any CPU.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|Any CPU.Build.0 = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|x86.ActiveCfg = Release|x64
|
||||
{BE9F27C3-B583-47DF-95FA-1F8BBC89DCCB}.RelWithDebInfo|x86.Build.0 = Release|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Debug|x64.Build.0 = Debug|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x64.ActiveCfg = Release|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.Release|x64.Build.0 = Release|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{ECD78CC5-138F-4809-A764-2358C2AC2E82}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Debug|x64.Build.0 = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Release|x64.ActiveCfg = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.Release|x64.Build.0 = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{3201359D-C071-4089-9EDE-B04D759F1508}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Debug|x64.Build.0 = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.MinSizeRel|x64.ActiveCfg = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.MinSizeRel|x64.Build.0 = Debug|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Release|x64.ActiveCfg = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.Release|x64.Build.0 = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{2B8C5D01-FF78-4BFA-B332-5E430586DAF9}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26730.10
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sparkd", "src\server\sparkd\sparkd.vcxproj", "{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspark", "build\src\lib\libspark.vcxproj", "{502FD050-679A-3B50-B438-098500700919}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
MinSizeRel|x64 = MinSizeRel|x64
|
||||
Release|x64 = Release|x64
|
||||
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.Debug|x64.Build.0 = Debug|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.MinSizeRel|x64.ActiveCfg = Release|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.MinSizeRel|x64.Build.0 = Release|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.Release|x64.ActiveCfg = Release|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.Release|x64.Build.0 = Release|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.RelWithDebInfo|x64.ActiveCfg = Release|x64
|
||||
{BBBAFD38-312D-4A8D-9AF0-F2BDEE72CE6F}.RelWithDebInfo|x64.Build.0 = Release|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.Debug|x64.Build.0 = Debug|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.Release|x64.ActiveCfg = Release|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.Release|x64.Build.0 = Release|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{502FD050-679A-3B50-B438-098500700919}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {6A7249D7-B40C-4656-9347-60072D0B8FDB}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
Vendored
-17
@@ -1,17 +0,0 @@
|
||||
{
|
||||
"files.associations": {
|
||||
"chrono": "cpp",
|
||||
"future": "cpp",
|
||||
"system_error": "cpp",
|
||||
"ios": "cpp",
|
||||
"utility": "cpp",
|
||||
"iosfwd": "cpp",
|
||||
"xhash": "cpp",
|
||||
"xstring": "cpp",
|
||||
"xtree": "cpp",
|
||||
"xutility": "cpp",
|
||||
"exception": "cpp",
|
||||
"bitset": "cpp",
|
||||
"xlocale": "cpp"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="NUnit" Version="3.13.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Tools">
|
||||
<HintPath>$(Externals)\bin\cstools\Tools.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="$(DataStreamGrammarDir)\BooleanExpressionTokens.lexer.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="$(DataStreamGrammarDir)\BooleanExpressionSyntax.parser.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,289 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
public delegate bool BooleanEval(object arg1,
|
||||
object arg2,
|
||||
IDictionary bindings);
|
||||
|
||||
public class BooleanExpressionException : Exception
|
||||
{
|
||||
public BooleanExpressionException(string format, params object[] args)
|
||||
: base(String.Format(format, args))
|
||||
{ }
|
||||
}
|
||||
|
||||
public abstract class BooleanExpressionValue
|
||||
{
|
||||
public abstract object getValue(IDictionary bindings);
|
||||
}
|
||||
|
||||
public class BooleanExpressionConstant : BooleanExpressionValue
|
||||
{
|
||||
public BooleanExpressionConstant(object o)
|
||||
{ myObj = o; }
|
||||
public override object getValue(IDictionary bindings)
|
||||
{ return myObj; }
|
||||
private object myObj;
|
||||
}
|
||||
|
||||
public class BooleanExpressionVariable : BooleanExpressionValue
|
||||
{
|
||||
public BooleanExpressionVariable(string id)
|
||||
{ myId = id; }
|
||||
|
||||
public string getId()
|
||||
{ return myId; }
|
||||
|
||||
public override object getValue(IDictionary bindings)
|
||||
{ return bindings[myId]; }
|
||||
private string myId;
|
||||
}
|
||||
|
||||
public delegate object BEFunction(List<object> args);
|
||||
|
||||
public class BooleanExpressionFunction : BooleanExpressionValue
|
||||
{
|
||||
public BooleanExpressionFunction(string fn, ArrayList args)
|
||||
{
|
||||
myFunction = fn;
|
||||
myArgs = args;
|
||||
}
|
||||
|
||||
public string getId()
|
||||
{ return myFunction; }
|
||||
|
||||
public override object getValue(IDictionary bindings)
|
||||
{
|
||||
List<object> argValues = new List<object>();
|
||||
if (myArgs != null)
|
||||
foreach (object o in myArgs)
|
||||
if (o is BooleanExpressionValue)
|
||||
argValues.Add(((BooleanExpressionValue)o).getValue(bindings));
|
||||
else
|
||||
throw new Exception("Unknown arg value type: " + o.ToString());
|
||||
|
||||
string k = BooleanExpressionEvaluator.functionPrefix + myFunction;
|
||||
if (bindings.Contains(k))
|
||||
return ((BEFunction)(bindings[k]))(argValues);
|
||||
else
|
||||
throw new BooleanExpressionException("function {0} is not defined", myFunction);
|
||||
}
|
||||
|
||||
private string myFunction;
|
||||
private ArrayList myArgs;
|
||||
}
|
||||
|
||||
public class BooleanExpressionEvaluator
|
||||
{
|
||||
public const string functionPrefix = "function:";
|
||||
|
||||
public BooleanExpressionEvaluator (object arg1,
|
||||
BooleanEval f)
|
||||
: this (arg1, null, f)
|
||||
{}
|
||||
|
||||
public BooleanExpressionEvaluator (object arg1,
|
||||
object arg2,
|
||||
BooleanEval f)
|
||||
{
|
||||
myArg1 = arg1;
|
||||
myArg2 = arg2;
|
||||
myF = f;
|
||||
|
||||
}
|
||||
|
||||
static BooleanExpressionEvaluator()
|
||||
{
|
||||
myNumberTypes = new Hashtable();
|
||||
|
||||
myNumberTypes[typeof(byte)] = true;
|
||||
myNumberTypes[typeof(sbyte)] = true;
|
||||
|
||||
myNumberTypes[typeof(short)] = true;
|
||||
myNumberTypes[typeof(ushort)] = true;
|
||||
|
||||
myNumberTypes[typeof(int)] = true;
|
||||
myNumberTypes[typeof(uint)] = true;
|
||||
|
||||
myNumberTypes[typeof(long)] = true;
|
||||
myNumberTypes[typeof(ulong)] = true;
|
||||
|
||||
myNumberTypes[typeof(double)] = true;
|
||||
myNumberTypes[typeof(float)] = true;
|
||||
}
|
||||
|
||||
public bool eval (IDictionary bindings)
|
||||
{
|
||||
return
|
||||
myF (myArg1, myArg2,bindings);
|
||||
}
|
||||
|
||||
|
||||
public static bool and (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
(arg1 as BooleanExpressionEvaluator).eval (bindings)
|
||||
&&
|
||||
(arg2 as BooleanExpressionEvaluator).eval (bindings);
|
||||
|
||||
}
|
||||
|
||||
public static bool or (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
(arg1 as BooleanExpressionEvaluator).eval (bindings)
|
||||
||
|
||||
(arg2 as BooleanExpressionEvaluator).eval (bindings);
|
||||
|
||||
}
|
||||
|
||||
public static bool xor (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
(arg1 as BooleanExpressionEvaluator).eval (bindings)
|
||||
!=
|
||||
(arg2 as BooleanExpressionEvaluator).eval (bindings);
|
||||
|
||||
}
|
||||
|
||||
public static bool not (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
!(arg1 as BooleanExpressionEvaluator).eval (bindings);
|
||||
}
|
||||
|
||||
public static bool booleanValue(object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return (bool)(arg1 as BooleanExpressionValue).getValue(bindings);
|
||||
}
|
||||
|
||||
public static bool myIsConversionLegal(Type t1, Type t2)
|
||||
{
|
||||
return
|
||||
myNumberTypes.Contains(t1) &&
|
||||
myNumberTypes.Contains(t2);
|
||||
}
|
||||
|
||||
public static bool smaller (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
object lobj = (arg1 as BooleanExpressionValue).getValue(bindings);
|
||||
object robj = (arg2 as BooleanExpressionValue).getValue(bindings);
|
||||
|
||||
try
|
||||
{
|
||||
if (lobj is DBNull && robj is DBNull)
|
||||
return false;
|
||||
|
||||
// anything is bigger than DBNull
|
||||
if (lobj is DBNull)
|
||||
return true;
|
||||
|
||||
if (robj is DBNull)
|
||||
return false;
|
||||
|
||||
if (lobj is string)
|
||||
lobj = ((string)lobj).Trim();
|
||||
|
||||
if (robj is string)
|
||||
robj = ((string)robj).Trim();
|
||||
|
||||
|
||||
|
||||
if (!lobj.GetType().Equals(robj.GetType()))
|
||||
{
|
||||
if (myIsConversionLegal(lobj.GetType(), robj.GetType()))
|
||||
lobj =
|
||||
Convert.ChangeType(lobj,robj.GetType());
|
||||
else if (myIsConversionLegal(robj.GetType(), lobj.GetType()))
|
||||
robj =
|
||||
Convert.ChangeType(robj,lobj.GetType());
|
||||
}
|
||||
|
||||
IComparable ic = lobj as IComparable;
|
||||
return ic.CompareTo(robj) < 0;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
//BlueEventLog.logEvent(String.Format("Comparison between {0} and {1} failed",
|
||||
// lobj == null? "null" : lobj, robj == null? null : robj),BlueEventLevel.Warning);
|
||||
//BlueEventLog.logEvent(e);
|
||||
throw (e);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool equal (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
!(smaller (arg1, arg2, bindings) )
|
||||
&&
|
||||
!(smaller (arg2, arg1, bindings));
|
||||
}
|
||||
|
||||
public static bool greater (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
smaller (arg2,arg1, bindings);
|
||||
}
|
||||
|
||||
public static bool smallerEqual (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
!greater(arg1, arg2, bindings);
|
||||
}
|
||||
|
||||
public static bool greaterEqual (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
!smaller (arg1, arg2, bindings);
|
||||
}
|
||||
|
||||
public static bool different (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
return
|
||||
!equal (arg1, arg2, bindings);
|
||||
}
|
||||
|
||||
public static bool matches (object arg1, object arg2, IDictionary bindings)
|
||||
{
|
||||
try
|
||||
{
|
||||
object lobj = (arg1 as BooleanExpressionValue).getValue(bindings);
|
||||
object robj = (arg2 as BooleanExpressionValue).getValue(bindings);
|
||||
|
||||
if (DBNull.Value.Equals(lobj) && (robj is string))
|
||||
return false;
|
||||
else if (lobj is string && robj is string)
|
||||
return Regex.IsMatch((string) lobj, (string) robj);
|
||||
else
|
||||
throw new Exception(String.Format("Type mismatch, cannot string match {0} with {1}",
|
||||
lobj.GetType().Name,
|
||||
robj.GetType().Name));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
//BlueEventLog.logEvent(string.Format ("Comparison between {0} and {1} failed",
|
||||
// arg1 == null? "null" : arg1, arg2 == null? null : arg2));
|
||||
//BlueEventLog.logEvent(e);
|
||||
throw (e);
|
||||
}
|
||||
}
|
||||
|
||||
public object getOperand1()
|
||||
{return myArg1;}
|
||||
|
||||
public object getOperand2()
|
||||
{return myArg2;}
|
||||
|
||||
|
||||
private object myArg1;
|
||||
private object myArg2;
|
||||
private BooleanEval myF;
|
||||
|
||||
private static Hashtable myNumberTypes ;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,191 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using NUnit.Framework;
|
||||
using System.Diagnostics;
|
||||
using BCG.Evaluator.BooleanExpression;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
[TestFixture]
|
||||
public class BooleanExpressionsTests
|
||||
{
|
||||
[Test]
|
||||
public void testBooleanExpressions()
|
||||
{
|
||||
BCG.Evaluator.BooleanExpression.syntax parser =
|
||||
new BCG.Evaluator.BooleanExpression.syntax();
|
||||
|
||||
BooleanProgram exp = (BooleanProgram)parser.Parse("a=12/12/1912 and 2 = null or b=2 and not c=1 and b > a");
|
||||
|
||||
Hashtable h = new Hashtable();
|
||||
h["a"] = new DateTime(1912, 12, 12, 0, 0, 1);
|
||||
h["b"] = 2;
|
||||
h["c"] = 2;
|
||||
h["d"] = new DateTime(1912, 12, 12, 0, 0, 2);
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
parser =
|
||||
new BCG.Evaluator.BooleanExpression.syntax();
|
||||
|
||||
exp = (BooleanProgram)parser.Parse("a=1 and (b=2 or b=3)");
|
||||
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
// comparisons
|
||||
|
||||
// >
|
||||
exp = (BooleanProgram)parser.Parse("a>b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
h["a"] = 5;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h["a"] = 1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
// <
|
||||
exp = (BooleanProgram)parser.Parse("a<b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h["a"] = 5;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
h["a"] = 1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
|
||||
// =
|
||||
exp = (BooleanProgram)parser.Parse("a=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
h["a"] = 1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
|
||||
// <=
|
||||
exp = (BooleanProgram)parser.Parse("a<=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h["a"] = 5;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
h["a"] = 1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
// >=
|
||||
exp = (BooleanProgram)parser.Parse("a>=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
h["a"] = 5;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h["a"] = 1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
// <>
|
||||
exp = (BooleanProgram)parser.Parse("a<>b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h["a"] = 1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
// ~= (matches)
|
||||
exp = (BooleanProgram)parser.Parse("a~=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = "test";
|
||||
h["b"] = "test";
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h = new Hashtable();
|
||||
h["a"] = "test";
|
||||
h["b"] = "te.*";
|
||||
|
||||
Assert.That(exp.eval.eval(h));
|
||||
|
||||
h = new Hashtable();
|
||||
h["a"] = "test";
|
||||
h["b"] = "ti.*";
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
h["a"] = DBNull.Value;
|
||||
h["b"] = "1";
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
|
||||
// mixing ints and doubles
|
||||
exp = (BooleanProgram)parser.Parse("a=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1.0;
|
||||
h["b"] = 5;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
exp = (BooleanProgram)parser.Parse("a=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1;
|
||||
h["b"] = 1.0;
|
||||
|
||||
exp = (BooleanProgram)parser.Parse("a=b");
|
||||
h = new Hashtable();
|
||||
h["a"] = 1.1;
|
||||
h["b"] = 1;
|
||||
|
||||
Assert.That(!exp.eval.eval(h));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Collections;
|
||||
|
||||
using BCG.Evaluator.BooleanExpression;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
public class BooleanExpressionsInterpreter
|
||||
{
|
||||
public class ParseTree
|
||||
{
|
||||
public BooleanProgram prog;
|
||||
}
|
||||
|
||||
BooleanExpressionEvaluator myEval;
|
||||
Dictionary<string, FunctionDefinition> myBindings = new Dictionary<string, FunctionDefinition>();
|
||||
|
||||
private string _exp;
|
||||
public BooleanExpressionsInterpreter(string exp, out ParseTree prog)
|
||||
{
|
||||
_exp = exp;
|
||||
myInit(exp, out prog);
|
||||
}
|
||||
|
||||
public BooleanExpressionsInterpreter(string exp)
|
||||
{
|
||||
ParseTree pt;
|
||||
myInit(exp, out pt);
|
||||
}
|
||||
|
||||
private void myInit(string exp, out ParseTree pt)
|
||||
{
|
||||
syntax parser = new syntax();
|
||||
try
|
||||
{
|
||||
pt = new ParseTree();
|
||||
BooleanProgram bp;
|
||||
pt.prog = (BooleanProgram)parser.Parse(exp);
|
||||
if (pt.prog == null)
|
||||
throw new BooleanExpressionsInterpreterException("{0} is not a valid boolean expression", exp);
|
||||
myExtractDefinitions(pt.prog.definitions, myBindings);
|
||||
myEval = pt.prog.eval;
|
||||
}
|
||||
catch (Tools.CSToolsFatalException)
|
||||
{
|
||||
throw new BooleanExpressionsInterpreterException("{0} is not a valid boolean expression", exp);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void myVisitNode(object node, Action<object> a)
|
||||
{
|
||||
a(node);
|
||||
if (node is BooleanExpression)
|
||||
{
|
||||
BooleanExpression be = (BooleanExpression)node;
|
||||
foreach (object child in be.kids)
|
||||
myVisitNode(child, a);
|
||||
}
|
||||
}
|
||||
public void walkParseStree(Action<object> a, ParseTree pt)
|
||||
{
|
||||
foreach (object node in pt.prog.kids)
|
||||
myVisitNode(node, a);
|
||||
}
|
||||
|
||||
public Dictionary<string, bool> getAllIdentifiers(ParseTree pt)
|
||||
{
|
||||
Dictionary<string, bool> bindings = new Dictionary<string, bool>();
|
||||
Action<object> a = (o) =>
|
||||
{
|
||||
if (o is IdentifierValue)
|
||||
{
|
||||
BooleanExpressionValue bev = ((IdentifierValue)o).eval;
|
||||
BooleanExpressionVariable bvar = (BooleanExpressionVariable)bev;
|
||||
bindings[bvar.getId()] = true;
|
||||
}
|
||||
else if (o is FunctionValue)
|
||||
{
|
||||
BooleanExpressionValue bev = ((FunctionValue)o).eval;
|
||||
BooleanExpressionFunction func = (BooleanExpressionFunction)bev;
|
||||
bindings[func.getId()] = false;
|
||||
}
|
||||
};
|
||||
walkParseStree(a, pt);
|
||||
return bindings;
|
||||
}
|
||||
private void myExtractDefinitions(Definitions definitions,
|
||||
Dictionary<string, FunctionDefinition> bindings)
|
||||
{
|
||||
if (definitions != null)
|
||||
{
|
||||
SingleDef d = definitions.def;
|
||||
List<string> args = new List<string>();
|
||||
myExtractArg(d.args, args);
|
||||
|
||||
bindings[functionPrefix + d.id] = new FunctionDefinition
|
||||
{ name = d.id, args = args, evaluator = d.eval };
|
||||
myExtractDefinitions(definitions.next, bindings);
|
||||
}
|
||||
}
|
||||
|
||||
public int nDefinitions()
|
||||
{ return myBindings.Count; }
|
||||
|
||||
private void myExtractArg(DefArgList args, List<string> argList)
|
||||
{
|
||||
if (args != null && args.arg != null)
|
||||
{
|
||||
argList.Add(args.arg);
|
||||
myExtractArg(args.rest, argList);
|
||||
}
|
||||
}
|
||||
|
||||
// there are repeated here so clients do not have to know about BooleanExpressionEvaluator
|
||||
public static string functionPrefix = BooleanExpressionEvaluator.functionPrefix;
|
||||
public delegate object Function(List<object> args);
|
||||
public object makeCBWrapper(Function f)
|
||||
{ return new BEFunction((lst) => { return f(lst); }); }
|
||||
|
||||
|
||||
public bool eval(IDictionary bindings)
|
||||
{ return myEval.eval(new EvaluationEnvironment(bindings, myBindings)); }
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="NUnit" Version="3.13.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\BooleanExpressions\BooleanExpressions.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Tools">
|
||||
<HintPath>$(Externals)\bin\cstools\Tools.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
public class BooleanExpressionsInterpreterException : System.Exception
|
||||
{
|
||||
public BooleanExpressionsInterpreterException(string fmt, params object[] args)
|
||||
: base(String.Format(fmt, args))
|
||||
{ }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,232 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
class EvaluationEnvironment : IDictionary
|
||||
{
|
||||
IDictionary myUserBindings;
|
||||
Dictionary<string, FunctionDefinition> myDefinitions;
|
||||
public EvaluationEnvironment(IDictionary userBindings, Dictionary<string, FunctionDefinition> definitions)
|
||||
{
|
||||
this.myUserBindings = userBindings;
|
||||
this.myDefinitions = definitions;
|
||||
}
|
||||
|
||||
|
||||
class Override : IDictionary
|
||||
{
|
||||
public Override(IDictionary d1, IDictionary d2)
|
||||
{
|
||||
myPrimary = d1;
|
||||
mySecondary = d2;
|
||||
}
|
||||
public bool Contains(object key)
|
||||
{
|
||||
return
|
||||
myPrimary.Contains(key)||
|
||||
mySecondary.Contains(key);
|
||||
}
|
||||
|
||||
public object this[object key]
|
||||
{
|
||||
get
|
||||
{
|
||||
if (myPrimary.Contains(key))
|
||||
return myPrimary[key];
|
||||
else
|
||||
return mySecondary[key];
|
||||
}
|
||||
set
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
IDictionary myPrimary;
|
||||
IDictionary mySecondary;
|
||||
|
||||
#region Useless IDictionary Members
|
||||
public void Add(object key, object value)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public IDictionaryEnumerator GetEnumerator()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool IsFixedSize
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public bool IsReadOnly
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public ICollection Keys
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public void Remove(object key)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public ICollection Values
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public void CopyTo(Array array, int index)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public int Count
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public bool IsSynchronized
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public object SyncRoot
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
public bool Contains(object key)
|
||||
{
|
||||
if (myDefinitions.ContainsKey(key.ToString()))
|
||||
return true;
|
||||
else
|
||||
return myUserBindings.Contains(key);
|
||||
}
|
||||
public object this[object key]
|
||||
{
|
||||
get
|
||||
{
|
||||
if (myDefinitions.ContainsKey(key.ToString()))
|
||||
{
|
||||
FunctionDefinition fd = myDefinitions[key.ToString()];
|
||||
return new BEFunction((args) =>
|
||||
{
|
||||
if (args.Count != fd.args.Count)
|
||||
throw new BooleanExpressionsInterpreterException("Parameter count mismatch for {0}. Expected: {1} Got: {2}",
|
||||
fd.name, fd.args.Count, args.Count);
|
||||
else
|
||||
{
|
||||
Hashtable newBindings = new Hashtable();
|
||||
for (int i = 0; i < args.Count; i++)
|
||||
newBindings[fd.args[i]] = args[i];
|
||||
return fd.evaluator.eval(new EvaluationEnvironment(new Override(newBindings, myUserBindings), myDefinitions));
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
else
|
||||
return myUserBindings[key];
|
||||
}
|
||||
set
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
|
||||
#region Useless IDictionary Members
|
||||
public void Add(object key, object value)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public IDictionaryEnumerator GetEnumerator()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public bool IsFixedSize
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public bool IsReadOnly
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public ICollection Keys
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public void Remove(object key)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public ICollection Values
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public void CopyTo(Array array, int index)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public int Count
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public bool IsSynchronized
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
public object SyncRoot
|
||||
{
|
||||
get { throw new NotImplementedException(); }
|
||||
}
|
||||
|
||||
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
class FunctionDefinition
|
||||
{
|
||||
public string name;
|
||||
public List<string> args;
|
||||
public BooleanExpressionEvaluator evaluator;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using NUnit.Framework;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace BCG
|
||||
{
|
||||
[TestFixture]
|
||||
public class BooleaExpressionTests
|
||||
{
|
||||
[Test]
|
||||
public void baseTest()
|
||||
{
|
||||
var interp =
|
||||
new BooleanExpressionsInterpreter("1=1");
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object>()));
|
||||
|
||||
interp = new BooleanExpressionsInterpreter(@"define a() { true }
|
||||
define f() { a and b and c}
|
||||
define g(a,b,c) { a and b and c}
|
||||
true");
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object>()));
|
||||
|
||||
interp = new BooleanExpressionsInterpreter("id>0");
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object> { { "id", 1 } }));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void getAllIdentifiersWorks()
|
||||
{
|
||||
BooleanExpressionsInterpreter.ParseTree pt;
|
||||
var interp =
|
||||
new BooleanExpressionsInterpreter("a=12/12/1912 and 2 = null or b=2 and not c=1 and b > a and f(1,2) > y(2,3)",out pt);
|
||||
Dictionary<string, bool> ids = interp.getAllIdentifiers(pt);
|
||||
Assert.AreEqual(ids.Count, 5);
|
||||
Assert.IsTrue(ids["a"]);
|
||||
Assert.IsTrue(ids["b"]);
|
||||
Assert.IsTrue(ids["c"]);
|
||||
Assert.IsFalse(ids["f"]);
|
||||
Assert.IsFalse(ids["y"]);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void parameterPassingWorks()
|
||||
{
|
||||
var interp = new BooleanExpressionsInterpreter(@"define inOrder(a,b,c) { a >= b and b >= c}
|
||||
inOrder(x,y,z)");
|
||||
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object>{{"x",3},{"y",2},{"z",1}}));
|
||||
Assert.IsFalse(interp.eval(new Dictionary<string, object> { { "x", 1 }, {"y", 2 }, {"z", 3} }));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void parametersHaveCorretScope()
|
||||
{
|
||||
var interp = new BooleanExpressionsInterpreter(@"define inOrder(z,y,x) { z >= y and y >= x}
|
||||
inOrder(x,y,z)");
|
||||
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object> { { "x", 3 }, { "y", 2 }, { "z", 1 } }));
|
||||
Assert.IsFalse(interp.eval(new Dictionary<string, object> { { "x", 1 }, { "y", 2 }, { "z", 3 } }));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void functionsCanCallOtherFunctions()
|
||||
{
|
||||
var interp = new BooleanExpressionsInterpreter(
|
||||
@"define ascending(x,y,z) { x <= y and y <= z}
|
||||
define descending(x,y,z) { ascending(z,y,x)}
|
||||
descending(x,y,z)");
|
||||
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object> { { "x", 3 }, { "y", 2 }, { "z", 1 } }));
|
||||
Assert.IsFalse(interp.eval(new Dictionary<string, object> { { "x", 1 }, { "y", 2 }, { "z", 3 } }));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void evaluationHasDynamicScope()
|
||||
{
|
||||
var interp = new BooleanExpressionsInterpreter(
|
||||
@"define isEquity(){ group='Equity'}
|
||||
isEquity()");
|
||||
|
||||
Assert.IsTrue(interp.eval(new Dictionary<string, object> { { "group", "Equity" } }));
|
||||
Assert.IsFalse(interp.eval(new Dictionary<string, object> { { "group", "NotEquity" } }));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\BooleanExpressionsInterpreter\BooleanExpressionsInterpreter.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="Tools">
|
||||
<HintPath>$(Externals)\bin\cstools\Tools.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="$(DataStreamGrammarDir)\ArithmeticTokens.lexer.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="$(DataStreamGrammarDir)\ArithmeticSyntax.parser.cs" />
|
||||
<Compile Include="$(DataStreamGrammarDir)\ColumnMapExpressionSyntax.parser.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,14 @@
|
||||
namespace BCG {
|
||||
using System;
|
||||
using System.Collections;
|
||||
|
||||
public class PrimitiveManager {
|
||||
public static PrimitiveManager instance => throw new NotImplementedException();
|
||||
|
||||
public ViewStream build(string friendlyName, ICollection args) =>
|
||||
throw new NotImplementedException();
|
||||
|
||||
public string find(string friendlyName) =>
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
namespace BCG {
|
||||
public class TableStream : ViewStream {
|
||||
public TableStream(string name) {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
namespace BCG {
|
||||
public class ViewStream {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,15 @@
|
||||
%parser ArithmeticTokens.lexer
|
||||
%namespace BCG.ArithmeticExpression
|
||||
|
||||
%left Plus Minus
|
||||
%left Times Div
|
||||
%before Minus
|
||||
%nonassoc Equals
|
||||
|
||||
BindingExpression: BindingExpression Assignment | Assignment;
|
||||
Assignment: Identifier Equals Expression;
|
||||
Expression : Expression Plus Term | Expression Minus Term | Term;
|
||||
Term : Term Times Factor | Term Div Factor | Factor;
|
||||
Factor : Application | Identifier | IntegerConstant | RealConstant | Minus Factor | OpenP Expression CloseP;
|
||||
Application : Identifier OpenP ExpressionList CloseP;
|
||||
ExpressionList : | ExpressionList Comma Expression | Expression;
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,43 @@
|
||||
%lexer
|
||||
%namespace BCG.ArithmeticExpression
|
||||
|
||||
// -------------------------------------------------------------------------------
|
||||
// Literal constants
|
||||
//--------------------------------------------------------------------------------
|
||||
%define TimeConstant [012]?{Digit}:[0-5]{Digit}:[0-5]{Digit}[ ]('AM'|'PM')
|
||||
%define DateConstant ([1-9]|'10'|'11'|'12')\/([1-9]|([1-2][0-9])|'30'|'31')\/{Digit}{Digit}{Digit}*
|
||||
|
||||
%token NumberConstant {
|
||||
public object value;
|
||||
}
|
||||
%token IntegerConstant : NumberConstant {}
|
||||
%token RealConstant : NumberConstant {}
|
||||
|
||||
|
||||
-?{Digit}+ %IntegerConstant {value = Int32.Parse(yytext);}
|
||||
-?{Digit}+\.{Digit}+ %RealConstant {value = Double.Parse(yytext);}
|
||||
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// Identifiers
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
{Letter}({Letter}*{Digit}*_*)* %Identifier
|
||||
|
||||
// --------------------------------------------------------------------------------
|
||||
// Utility tokens
|
||||
// --------------------------------------------------------------------------------
|
||||
|
||||
"(" %OpenP
|
||||
")" %CloseP
|
||||
"-" %Minus
|
||||
"*" %Times
|
||||
"/" %Div
|
||||
"," %Comma
|
||||
"+" %Plus
|
||||
"=" %Equals
|
||||
'\/\/'[^\n\r]* ;
|
||||
[ \t\r\n] ;
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,948 @@
|
||||
using System;using Tools;
|
||||
namespace BCG.ArithmeticExpression {
|
||||
//%+NumberConstant
|
||||
[Serializable] public class NumberConstant : TOKEN{
|
||||
public object value ;
|
||||
|
||||
public override string yyname() { return "NumberConstant"; }
|
||||
public NumberConstant(Lexer yyl):base(yyl){}}
|
||||
//%+IntegerConstant
|
||||
[Serializable] public class IntegerConstant : NumberConstant{
|
||||
|
||||
public override string yyname() { return "IntegerConstant"; }
|
||||
public IntegerConstant(Lexer yyl):base(yyl){}}
|
||||
//%+RealConstant
|
||||
[Serializable] public class RealConstant : NumberConstant{
|
||||
|
||||
public override string yyname() { return "RealConstant"; }
|
||||
public RealConstant(Lexer yyl):base(yyl){}}
|
||||
[Serializable] public class IntegerConstant_1 : IntegerConstant {
|
||||
public IntegerConstant_1(Lexer yym):base(yym) {value = Int32.Parse(yytext);}}
|
||||
[Serializable] public class RealConstant_1 : RealConstant {
|
||||
public RealConstant_1(Lexer yym):base(yym) {value = Double.Parse(yytext);}}
|
||||
//%Identifier
|
||||
[Serializable] public class Identifier : TOKEN{ public override string yyname() { return "Identifier";}
|
||||
public Identifier(Lexer yyl):base(yyl) {}}
|
||||
//%OpenP
|
||||
[Serializable] public class OpenP : TOKEN{ public override string yyname() { return "OpenP";}
|
||||
public OpenP(Lexer yyl):base(yyl) {}}
|
||||
//%CloseP
|
||||
[Serializable] public class CloseP : TOKEN{ public override string yyname() { return "CloseP";}
|
||||
public CloseP(Lexer yyl):base(yyl) {}}
|
||||
//%Minus
|
||||
[Serializable] public class Minus : TOKEN{ public override string yyname() { return "Minus";}
|
||||
public Minus(Lexer yyl):base(yyl) {}}
|
||||
//%Times
|
||||
[Serializable] public class Times : TOKEN{ public override string yyname() { return "Times";}
|
||||
public Times(Lexer yyl):base(yyl) {}}
|
||||
//%Div
|
||||
[Serializable] public class Div : TOKEN{ public override string yyname() { return "Div";}
|
||||
public Div(Lexer yyl):base(yyl) {}}
|
||||
//%Comma
|
||||
[Serializable] public class Comma : TOKEN{ public override string yyname() { return "Comma";}
|
||||
public Comma(Lexer yyl):base(yyl) {}}
|
||||
//%Plus
|
||||
[Serializable] public class Plus : TOKEN{ public override string yyname() { return "Plus";}
|
||||
public Plus(Lexer yyl):base(yyl) {}}
|
||||
//%Equals
|
||||
[Serializable] public class Equals : TOKEN{ public override string yyname() { return "Equals";}
|
||||
public Equals(Lexer yyl):base(yyl) {}}
|
||||
//%|tokens
|
||||
public class yytokens : Tokens {
|
||||
public yytokens(ErrorHandler eh):base(eh) { arr = new byte[] {
|
||||
0,1,0,0,0,255,255,255,255,1,
|
||||
0,0,0,0,0,0,0,4,1,0,0,
|
||||
0,25,83,121,115,116,101,109,46,84,101,
|
||||
120,116,46,65,83,67,73,73,69,110,99,
|
||||
111,100,105,110,103,9,0,0,0,10,109,
|
||||
95,99,111,100,101,80,97,103,101,8,100,
|
||||
97,116,97,73,116,101,109,15,101,110,99,
|
||||
111,100,101,114,70,97,108,108,98,97,99,
|
||||
107,15,100,101,99,111,100,101,114,70,97,
|
||||
108,108,98,97,99,107,19,69,110,99,111,
|
||||
100,105,110,103,43,109,95,99,111,100,101,
|
||||
80,97,103,101,17,69,110,99,111,100,105,
|
||||
110,103,43,100,97,116,97,73,116,101,109,
|
||||
21,69,110,99,111,100,105,110,103,43,109,
|
||||
95,105,115,82,101,97,100,79,110,108,121,
|
||||
24,69,110,99,111,100,105,110,103,43,101,
|
||||
110,99,111,100,101,114,70,97,108,108,98,
|
||||
97,99,107,24,69,110,99,111,100,105,110,
|
||||
103,43,100,101,99,111,100,101,114,70,97,
|
||||
108,108,98,97,99,107,0,3,3,3,0,
|
||||
3,0,3,3,8,37,83,121,115,116,101,
|
||||
109,46,71,108,111,98,97,108,105,122,97,
|
||||
116,105,111,110,46,67,111,100,101,80,97,
|
||||
103,101,68,97,116,97,73,116,101,109,38,
|
||||
83,121,115,116,101,109,46,84,101,120,116,
|
||||
46,69,110,99,111,100,101,114,82,101,112,
|
||||
108,97,99,101,109,101,110,116,70,97,108,
|
||||
108,98,97,99,107,38,83,121,115,116,101,
|
||||
109,46,84,101,120,116,46,68,101,99,111,
|
||||
100,101,114,82,101,112,108,97,99,101,109,
|
||||
101,110,116,70,97,108,108,98,97,99,107,
|
||||
8,37,83,121,115,116,101,109,46,71,108,
|
||||
111,98,97,108,105,122,97,116,105,111,110,
|
||||
46,67,111,100,101,80,97,103,101,68,97,
|
||||
116,97,73,116,101,109,1,38,83,121,115,
|
||||
116,101,109,46,84,101,120,116,46,69,110,
|
||||
99,111,100,101,114,82,101,112,108,97,99,
|
||||
101,109,101,110,116,70,97,108,108,98,97,
|
||||
99,107,38,83,121,115,116,101,109,46,84,
|
||||
101,120,116,46,68,101,99,111,100,101,114,
|
||||
82,101,112,108,97,99,101,109,101,110,116,
|
||||
70,97,108,108,98,97,99,107,159,78,0,
|
||||
0,10,9,2,0,0,0,9,3,0,0,
|
||||
0,159,78,0,0,10,1,9,2,0,0,
|
||||
0,9,3,0,0,0,4,2,0,0,0,
|
||||
38,83,121,115,116,101,109,46,84,101,120,
|
||||
116,46,69,110,99,111,100,101,114,82,101,
|
||||
112,108,97,99,101,109,101,110,116,70,97,
|
||||
108,108,98,97,99,107,3,0,0,0,10,
|
||||
115,116,114,68,101,102,97,117,108,116,27,
|
||||
98,73,115,77,105,99,114,111,115,111,102,
|
||||
116,66,101,115,116,70,105,116,70,97,108,
|
||||
108,98,97,99,107,43,69,110,99,111,100,
|
||||
101,114,70,97,108,108,98,97,99,107,43,
|
||||
98,73,115,77,105,99,114,111,115,111,102,
|
||||
116,66,101,115,116,70,105,116,70,97,108,
|
||||
108,98,97,99,107,1,0,0,1,1,6,
|
||||
6,0,0,0,1,63,0,0,4,3,0,
|
||||
0,0,38,83,121,115,116,101,109,46,84,
|
||||
101,120,116,46,68,101,99,111,100,101,114,
|
||||
82,101,112,108,97,99,101,109,101,110,116,
|
||||
70,97,108,108,98,97,99,107,3,0,0,
|
||||
0,10,115,116,114,68,101,102,97,117,108,
|
||||
116,27,98,73,115,77,105,99,114,111,115,
|
||||
111,102,116,66,101,115,116,70,105,116,70,
|
||||
97,108,108,98,97,99,107,43,68,101,99,
|
||||
111,100,101,114,70,97,108,108,98,97,99,
|
||||
107,43,98,73,115,77,105,99,114,111,115,
|
||||
111,102,116,66,101,115,116,70,105,116,70,
|
||||
97,108,108,98,97,99,107,1,0,0,1,
|
||||
1,9,6,0,0,0,0,0,11,0,1,
|
||||
0,0,0,255,255,255,255,1,0,0,0,
|
||||
0,0,0,0,4,1,0,0,0,14,83,
|
||||
121,115,116,101,109,46,66,111,111,108,101,
|
||||
97,110,1,0,0,0,7,109,95,118,97,
|
||||
108,117,101,0,1,0,11,0,1,0,0,
|
||||
0,255,255,255,255,1,0,0,0,0,0,
|
||||
0,0,4,1,0,0,0,28,83,121,115,
|
||||
116,101,109,46,67,111,108,108,101,99,116,
|
||||
105,111,110,115,46,72,97,115,104,116,97,
|
||||
98,108,101,7,0,0,0,10,76,111,97,
|
||||
100,70,97,99,116,111,114,7,86,101,114,
|
||||
115,105,111,110,8,67,111,109,112,97,114,
|
||||
101,114,16,72,97,115,104,67,111,100,101,
|
||||
80,114,111,118,105,100,101,114,8,72,97,
|
||||
115,104,83,105,122,101,4,75,101,121,115,
|
||||
6,86,97,108,117,101,115,0,0,3,3,
|
||||
0,5,5,11,8,28,83,121,115,116,101,
|
||||
109,46,67,111,108,108,101,99,116,105,111,
|
||||
110,115,46,73,67,111,109,112,97,114,101,
|
||||
114,36,83,121,115,116,101,109,46,67,111,
|
||||
108,108,101,99,116,105,111,110,115,46,73,
|
||||
72,97,115,104,67,111,100,101,80,114,111,
|
||||
118,105,100,101,114,8,236,81,56,63,31,
|
||||
0,0,0,10,10,47,0,0,0,9,2,
|
||||
0,0,0,9,3,0,0,0,16,2,0,
|
||||
0,0,29,0,0,0,9,4,0,0,0,
|
||||
9,5,0,0,0,9,6,0,0,0,9,
|
||||
7,0,0,0,9,8,0,0,0,9,9,
|
||||
0,0,0,9,10,0,0,0,9,11,0,
|
||||
0,0,9,12,0,0,0,9,13,0,0,
|
||||
0,9,14,0,0,0,9,15,0,0,0,
|
||||
9,16,0,0,0,9,17,0,0,0,9,
|
||||
18,0,0,0,9,19,0,0,0,9,20,
|
||||
0,0,0,9,21,0,0,0,9,22,0,
|
||||
0,0,9,23,0,0,0,9,24,0,0,
|
||||
0,9,25,0,0,0,9,26,0,0,0,
|
||||
9,27,0,0,0,9,28,0,0,0,9,
|
||||
29,0,0,0,9,30,0,0,0,9,31,
|
||||
0,0,0,9,32,0,0,0,16,3,0,
|
||||
0,0,29,0,0,0,9,33,0,0,0,
|
||||
9,34,0,0,0,9,35,0,0,0,9,
|
||||
36,0,0,0,9,37,0,0,0,9,38,
|
||||
0,0,0,9,39,0,0,0,9,40,0,
|
||||
0,0,9,41,0,0,0,9,42,0,0,
|
||||
0,9,43,0,0,0,9,44,0,0,0,
|
||||
9,45,0,0,0,9,46,0,0,0,9,
|
||||
47,0,0,0,9,48,0,0,0,9,49,
|
||||
0,0,0,9,50,0,0,0,9,51,0,
|
||||
0,0,9,52,0,0,0,9,53,0,0,
|
||||
0,9,54,0,0,0,9,55,0,0,0,
|
||||
9,56,0,0,0,9,57,0,0,0,9,
|
||||
58,0,0,0,9,59,0,0,0,9,60,
|
||||
0,0,0,9,61,0,0,0,4,4,0,
|
||||
0,0,36,83,121,115,116,101,109,46,71,
|
||||
108,111,98,97,108,105,122,97,116,105,111,
|
||||
110,46,85,110,105,99,111,100,101,67,97,
|
||||
116,101,103,111,114,121,1,0,0,0,7,
|
||||
118,97,108,117,101,95,95,0,8,29,0,
|
||||
0,0,1,5,0,0,0,4,0,0,0,
|
||||
28,0,0,0,1,6,0,0,0,4,0,
|
||||
0,0,27,0,0,0,1,7,0,0,0,
|
||||
4,0,0,0,26,0,0,0,1,8,0,
|
||||
0,0,4,0,0,0,25,0,0,0,1,
|
||||
9,0,0,0,4,0,0,0,24,0,0,
|
||||
0,1,10,0,0,0,4,0,0,0,23,
|
||||
0,0,0,1,11,0,0,0,4,0,0,
|
||||
0,22,0,0,0,1,12,0,0,0,4,
|
||||
0,0,0,21,0,0,0,1,13,0,0,
|
||||
0,4,0,0,0,20,0,0,0,1,14,
|
||||
0,0,0,4,0,0,0,19,0,0,0,
|
||||
1,15,0,0,0,4,0,0,0,18,0,
|
||||
0,0,1,16,0,0,0,4,0,0,0,
|
||||
17,0,0,0,1,17,0,0,0,4,0,
|
||||
0,0,15,0,0,0,1,18,0,0,0,
|
||||
4,0,0,0,14,0,0,0,1,19,0,
|
||||
0,0,4,0,0,0,13,0,0,0,1,
|
||||
20,0,0,0,4,0,0,0,12,0,0,
|
||||
0,1,21,0,0,0,4,0,0,0,11,
|
||||
0,0,0,1,22,0,0,0,4,0,0,
|
||||
0,10,0,0,0,1,23,0,0,0,4,
|
||||
0,0,0,9,0,0,0,1,24,0,0,
|
||||
0,4,0,0,0,8,0,0,0,1,25,
|
||||
0,0,0,4,0,0,0,7,0,0,0,
|
||||
1,26,0,0,0,4,0,0,0,6,0,
|
||||
0,0,1,27,0,0,0,4,0,0,0,
|
||||
5,0,0,0,1,28,0,0,0,4,0,
|
||||
0,0,4,0,0,0,1,29,0,0,0,
|
||||
4,0,0,0,3,0,0,0,1,30,0,
|
||||
0,0,4,0,0,0,2,0,0,0,1,
|
||||
31,0,0,0,4,0,0,0,1,0,0,
|
||||
0,1,32,0,0,0,4,0,0,0,0,
|
||||
0,0,0,12,62,0,0,0,60,84,111,
|
||||
111,108,115,44,32,86,101,114,115,105,111,
|
||||
110,61,48,46,48,46,48,46,48,44,32,
|
||||
67,117,108,116,117,114,101,61,110,101,117,
|
||||
116,114,97,108,44,32,80,117,98,108,105,
|
||||
99,75,101,121,84,111,107,101,110,61,110,
|
||||
117,108,108,5,33,0,0,0,13,84,111,
|
||||
111,108,115,46,67,104,97,114,115,101,116,
|
||||
3,0,0,0,5,109,95,99,97,116,9,
|
||||
109,95,103,101,110,101,114,105,99,7,109,
|
||||
95,99,104,97,114,115,3,0,3,36,83,
|
||||
121,115,116,101,109,46,71,108,111,98,97,
|
||||
108,105,122,97,116,105,111,110,46,85,110,
|
||||
105,99,111,100,101,67,97,116,101,103,111,
|
||||
114,121,3,28,83,121,115,116,101,109,46,
|
||||
67,111,108,108,101,99,116,105,111,110,115,
|
||||
46,72,97,115,104,116,97,98,108,101,62,
|
||||
0,0,0,1,193,255,255,255,4,0,0,
|
||||
0,29,0,0,0,205,176,9,64,0,0,
|
||||
0,1,34,0,0,0,33,0,0,0,1,
|
||||
191,255,255,255,4,0,0,0,28,0,0,
|
||||
0,194,166,9,66,0,0,0,1,35,0,
|
||||
0,0,33,0,0,0,1,189,255,255,255,
|
||||
4,0,0,0,27,0,0,0,94,9,68,
|
||||
0,0,0,1,36,0,0,0,33,0,0,
|
||||
0,1,187,255,255,255,4,0,0,0,26,
|
||||
0,0,0,36,9,70,0,0,0,1,37,
|
||||
0,0,0,33,0,0,0,1,185,255,255,
|
||||
255,4,0,0,0,25,0,0,0,60,9,
|
||||
72,0,0,0,1,38,0,0,0,33,0,
|
||||
0,0,1,183,255,255,255,4,0,0,0,
|
||||
24,0,0,0,33,9,74,0,0,0,1,
|
||||
39,0,0,0,33,0,0,0,1,181,255,
|
||||
255,255,4,0,0,0,23,0,0,0,194,
|
||||
187,9,76,0,0,0,1,40,0,0,0,
|
||||
33,0,0,0,1,179,255,255,255,4,0,
|
||||
0,0,22,0,0,0,194,171,9,78,0,
|
||||
0,0,1,41,0,0,0,33,0,0,0,
|
||||
1,177,255,255,255,4,0,0,0,21,0,
|
||||
0,0,93,9,80,0,0,0,1,42,0,
|
||||
0,0,33,0,0,0,1,175,255,255,255,
|
||||
4,0,0,0,20,0,0,0,91,9,82,
|
||||
0,0,0,1,43,0,0,0,33,0,0,
|
||||
0,1,173,255,255,255,4,0,0,0,19,
|
||||
0,0,0,194,173,9,84,0,0,0,1,
|
||||
44,0,0,0,33,0,0,0,1,171,255,
|
||||
255,255,4,0,0,0,18,0,0,0,226,
|
||||
128,191,9,86,0,0,0,1,45,0,0,
|
||||
0,33,0,0,0,1,169,255,255,255,4,
|
||||
0,0,0,17,0,0,0,238,128,128,9,
|
||||
88,0,0,0,1,46,0,0,0,33,0,
|
||||
0,0,1,167,255,255,255,4,0,0,0,
|
||||
15,0,0,0,216,128,9,90,0,0,0,
|
||||
1,47,0,0,0,33,0,0,0,1,165,
|
||||
255,255,255,4,0,0,0,14,0,0,0,
|
||||
1,9,92,0,0,0,1,48,0,0,0,
|
||||
33,0,0,0,1,163,255,255,255,4,0,
|
||||
0,0,13,0,0,0,226,128,169,9,94,
|
||||
0,0,0,1,49,0,0,0,33,0,0,
|
||||
0,1,161,255,255,255,4,0,0,0,12,
|
||||
0,0,0,226,128,168,9,96,0,0,0,
|
||||
1,50,0,0,0,33,0,0,0,1,159,
|
||||
255,255,255,4,0,0,0,11,0,0,0,
|
||||
194,160,9,98,0,0,0,1,51,0,0,
|
||||
0,33,0,0,0,1,157,255,255,255,4,
|
||||
0,0,0,10,0,0,0,194,178,9,100,
|
||||
0,0,0,1,52,0,0,0,33,0,0,
|
||||
0,1,155,255,255,255,4,0,0,0,9,
|
||||
0,0,0,225,155,174,9,102,0,0,0,
|
||||
1,53,0,0,0,33,0,0,0,1,153,
|
||||
255,255,255,4,0,0,0,8,0,0,0,
|
||||
48,9,104,0,0,0,1,54,0,0,0,
|
||||
33,0,0,0,1,151,255,255,255,4,0,
|
||||
0,0,7,0,0,0,210,136,9,106,0,
|
||||
0,0,1,55,0,0,0,33,0,0,0,
|
||||
1,149,255,255,255,4,0,0,0,6,0,
|
||||
0,0,224,164,131,9,108,0,0,0,1,
|
||||
56,0,0,0,33,0,0,0,1,147,255,
|
||||
255,255,4,0,0,0,5,0,0,0,204,
|
||||
128,9,110,0,0,0,1,57,0,0,0,
|
||||
33,0,0,0,1,145,255,255,255,4,0,
|
||||
0,0,4,0,0,0,198,187,9,112,0,
|
||||
0,0,1,58,0,0,0,33,0,0,0,
|
||||
1,143,255,255,255,4,0,0,0,3,0,
|
||||
0,0,202,176,9,114,0,0,0,1,59,
|
||||
0,0,0,33,0,0,0,1,141,255,255,
|
||||
255,4,0,0,0,2,0,0,0,199,133,
|
||||
9,116,0,0,0,1,60,0,0,0,33,
|
||||
0,0,0,1,139,255,255,255,4,0,0,
|
||||
0,1,0,0,0,97,9,118,0,0,0,
|
||||
1,61,0,0,0,33,0,0,0,1,137,
|
||||
255,255,255,4,0,0,0,0,0,0,0,
|
||||
65,9,120,0,0,0,1,64,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,121,0,0,
|
||||
0,9,122,0,0,0,1,66,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,123,0,0,
|
||||
0,9,124,0,0,0,1,68,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,125,0,0,
|
||||
0,9,126,0,0,0,1,70,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,127,0,0,
|
||||
0,9,128,0,0,0,1,72,0,0,0,
|
||||
1,0,0,0,236,81,56,63,3,0,0,
|
||||
0,10,10,11,0,0,0,9,129,0,0,
|
||||
0,9,130,0,0,0,1,74,0,0,0,
|
||||
1,0,0,0,236,81,56,63,7,0,0,
|
||||
0,10,10,11,0,0,0,9,131,0,0,
|
||||
0,9,132,0,0,0,1,76,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,133,0,0,
|
||||
0,9,134,0,0,0,1,78,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,135,0,0,
|
||||
0,9,136,0,0,0,1,80,0,0,0,
|
||||
1,0,0,0,236,81,56,63,2,0,0,
|
||||
0,10,10,11,0,0,0,9,137,0,0,
|
||||
0,9,138,0,0,0,1,82,0,0,0,
|
||||
1,0,0,0,236,81,56,63,2,0,0,
|
||||
0,10,10,11,0,0,0,9,139,0,0,
|
||||
0,9,140,0,0,0,1,84,0,0,0,
|
||||
1,0,0,0,236,81,56,63,4,0,0,
|
||||
0,10,10,11,0,0,0,9,141,0,0,
|
||||
0,9,142,0,0,0,1,86,0,0,0,
|
||||
1,0,0,0,236,81,56,63,2,0,0,
|
||||
0,10,10,11,0,0,0,9,143,0,0,
|
||||
0,9,144,0,0,0,1,88,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,145,0,0,
|
||||
0,9,146,0,0,0,1,90,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,147,0,0,
|
||||
0,9,148,0,0,0,1,92,0,0,0,
|
||||
1,0,0,0,236,81,56,63,7,0,0,
|
||||
0,10,10,11,0,0,0,9,149,0,0,
|
||||
0,9,150,0,0,0,1,94,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,151,0,0,
|
||||
0,9,152,0,0,0,1,96,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,153,0,0,
|
||||
0,9,154,0,0,0,1,98,0,0,0,
|
||||
1,0,0,0,236,81,56,63,2,0,0,
|
||||
0,10,10,11,0,0,0,9,155,0,0,
|
||||
0,9,156,0,0,0,1,100,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,157,0,0,
|
||||
0,9,158,0,0,0,1,102,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,159,0,0,
|
||||
0,9,160,0,0,0,1,104,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,161,0,0,
|
||||
0,9,162,0,0,0,1,106,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,163,0,0,
|
||||
0,9,164,0,0,0,1,108,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,165,0,0,
|
||||
0,9,166,0,0,0,1,110,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,167,0,0,
|
||||
0,9,168,0,0,0,1,112,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,169,0,0,
|
||||
0,9,170,0,0,0,1,114,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,171,0,0,
|
||||
0,9,172,0,0,0,1,116,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,173,0,0,
|
||||
0,9,174,0,0,0,1,118,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,175,0,0,
|
||||
0,9,176,0,0,0,1,120,0,0,0,
|
||||
1,0,0,0,236,81,56,63,1,0,0,
|
||||
0,10,10,11,0,0,0,9,177,0,0,
|
||||
0,9,178,0,0,0,16,121,0,0,0,
|
||||
1,0,0,0,8,3,205,176,16,122,0,
|
||||
0,0,1,0,0,0,8,1,1,16,123,
|
||||
0,0,0,1,0,0,0,8,3,194,166,
|
||||
16,124,0,0,0,1,0,0,0,8,1,
|
||||
1,16,125,0,0,0,1,0,0,0,8,
|
||||
3,94,16,126,0,0,0,1,0,0,0,
|
||||
8,1,1,16,127,0,0,0,1,0,0,
|
||||
0,8,3,36,16,128,0,0,0,1,0,
|
||||
0,0,8,1,1,16,129,0,0,0,3,
|
||||
0,0,0,8,3,60,8,3,61,8,3,
|
||||
43,16,130,0,0,0,3,0,0,0,8,
|
||||
1,1,8,1,1,8,1,1,16,131,0,
|
||||
0,0,5,0,0,0,8,3,46,8,3,
|
||||
47,8,3,44,8,3,42,8,3,33,16,
|
||||
132,0,0,0,5,0,0,0,8,1,1,
|
||||
8,1,1,8,1,1,8,1,1,8,1,
|
||||
1,16,133,0,0,0,1,0,0,0,8,
|
||||
3,194,187,16,134,0,0,0,1,0,0,
|
||||
0,8,1,1,16,135,0,0,0,1,0,
|
||||
0,0,8,3,194,171,16,136,0,0,0,
|
||||
1,0,0,0,8,1,1,16,137,0,0,
|
||||
0,2,0,0,0,8,3,93,8,3,41,
|
||||
16,138,0,0,0,2,0,0,0,8,1,
|
||||
1,8,1,1,16,139,0,0,0,2,0,
|
||||
0,0,8,3,91,8,3,40,16,140,0,
|
||||
0,0,2,0,0,0,8,1,1,8,1,
|
||||
1,16,141,0,0,0,2,0,0,0,8,
|
||||
3,45,8,3,194,173,16,142,0,0,0,
|
||||
2,0,0,0,8,1,1,8,1,1,16,
|
||||
143,0,0,0,2,0,0,0,8,3,226,
|
||||
128,191,8,3,95,16,144,0,0,0,2,
|
||||
0,0,0,8,1,1,8,1,1,16,145,
|
||||
0,0,0,1,0,0,0,8,3,238,128,
|
||||
128,16,146,0,0,0,1,0,0,0,8,
|
||||
1,1,16,147,0,0,0,1,0,0,0,
|
||||
8,3,216,128,16,148,0,0,0,1,0,
|
||||
0,0,8,1,1,16,149,0,0,0,5,
|
||||
0,0,0,8,3,1,8,3,13,8,3,
|
||||
9,8,3,10,8,3,0,16,150,0,0,
|
||||
0,5,0,0,0,8,1,1,8,1,1,
|
||||
8,1,1,8,1,1,8,1,1,16,151,
|
||||
0,0,0,1,0,0,0,8,3,226,128,
|
||||
169,16,152,0,0,0,1,0,0,0,8,
|
||||
1,1,16,153,0,0,0,1,0,0,0,
|
||||
8,3,226,128,168,16,154,0,0,0,1,
|
||||
0,0,0,8,1,1,16,155,0,0,0,
|
||||
2,0,0,0,8,3,194,160,8,3,32,
|
||||
16,156,0,0,0,2,0,0,0,8,1,
|
||||
1,8,1,1,16,157,0,0,0,1,0,
|
||||
0,0,8,3,194,178,16,158,0,0,0,
|
||||
1,0,0,0,8,1,1,16,159,0,0,
|
||||
0,1,0,0,0,8,3,225,155,174,16,
|
||||
160,0,0,0,1,0,0,0,8,1,1,
|
||||
16,161,0,0,0,1,0,0,0,8,3,
|
||||
48,16,162,0,0,0,1,0,0,0,8,
|
||||
1,1,16,163,0,0,0,1,0,0,0,
|
||||
8,3,210,136,16,164,0,0,0,1,0,
|
||||
0,0,8,1,1,16,165,0,0,0,1,
|
||||
0,0,0,8,3,224,164,131,16,166,0,
|
||||
0,0,1,0,0,0,8,1,1,16,167,
|
||||
0,0,0,1,0,0,0,8,3,204,128,
|
||||
16,168,0,0,0,1,0,0,0,8,1,
|
||||
1,16,169,0,0,0,1,0,0,0,8,
|
||||
3,198,187,16,170,0,0,0,1,0,0,
|
||||
0,8,1,1,16,171,0,0,0,1,0,
|
||||
0,0,8,3,202,176,16,172,0,0,0,
|
||||
1,0,0,0,8,1,1,16,173,0,0,
|
||||
0,1,0,0,0,8,3,199,133,16,174,
|
||||
0,0,0,1,0,0,0,8,1,1,16,
|
||||
175,0,0,0,1,0,0,0,8,3,97,
|
||||
16,176,0,0,0,1,0,0,0,8,1,
|
||||
1,16,177,0,0,0,1,0,0,0,8,
|
||||
3,65,16,178,0,0,0,1,0,0,0,
|
||||
8,1,1,11,0,1,0,0,0,255,255,
|
||||
255,255,1,0,0,0,0,0,0,0,4,
|
||||
1,0,0,0,36,83,121,115,116,101,109,
|
||||
46,71,108,111,98,97,108,105,122,97,116,
|
||||
105,111,110,46,85,110,105,99,111,100,101,
|
||||
67,97,116,101,103,111,114,121,1,0,0,
|
||||
0,7,118,97,108,117,101,95,95,0,8,
|
||||
29,0,0,0,11,0,1,0,0,0,255,
|
||||
255,255,255,1,0,0,0,0,0,0,0,
|
||||
4,1,0,0,0,14,83,121,115,116,101,
|
||||
109,46,66,111,111,108,101,97,110,1,0,
|
||||
0,0,7,109,95,118,97,108,117,101,0,
|
||||
1,0,11,0,1,0,0,0,255,255,255,
|
||||
255,1,0,0,0,0,0,0,0,4,1,
|
||||
0,0,0,28,83,121,115,116,101,109,46,
|
||||
67,111,108,108,101,99,116,105,111,110,115,
|
||||
46,72,97,115,104,116,97,98,108,101,7,
|
||||
0,0,0,10,76,111,97,100,70,97,99,
|
||||
116,111,114,7,86,101,114,115,105,111,110,
|
||||
8,67,111,109,112,97,114,101,114,16,72,
|
||||
97,115,104,67,111,100,101,80,114,111,118,
|
||||
105,100,101,114,8,72,97,115,104,83,105,
|
||||
122,101,4,75,101,121,115,6,86,97,108,
|
||||
117,101,115,0,0,3,3,0,5,5,11,
|
||||
8,28,83,121,115,116,101,109,46,67,111,
|
||||
108,108,101,99,116,105,111,110,115,46,73,
|
||||
67,111,109,112,97,114,101,114,36,83,121,
|
||||
115,116,101,109,46,67,111,108,108,101,99,
|
||||
116,105,111,110,115,46,73,72,97,115,104,
|
||||
67,111,100,101,80,114,111,118,105,100,101,
|
||||
114,8,236,81,56,63,1,0,0,0,10,
|
||||
10,11,0,0,0,9,2,0,0,0,9,
|
||||
3,0,0,0,16,2,0,0,0,1,0,
|
||||
0,0,6,4,0,0,0,9,89,89,73,
|
||||
78,73,84,73,65,76,16,3,0,0,0,
|
||||
1,0,0,0,9,5,0,0,0,12,6,
|
||||
0,0,0,60,84,111,111,108,115,44,32,
|
||||
86,101,114,115,105,111,110,61,48,46,48,
|
||||
46,48,46,48,44,32,67,117,108,116,117,
|
||||
114,101,61,110,101,117,116,114,97,108,44,
|
||||
32,80,117,98,108,105,99,75,101,121,84,
|
||||
111,107,101,110,61,110,117,108,108,5,5,
|
||||
0,0,0,9,84,111,111,108,115,46,68,
|
||||
102,97,4,0,0,0,5,109,95,109,97,
|
||||
112,9,109,95,97,99,116,105,111,110,115,
|
||||
10,109,95,116,111,107,67,108,97,115,115,
|
||||
7,109,95,115,116,97,116,101,3,4,1,
|
||||
0,28,83,121,115,116,101,109,46,67,111,
|
||||
108,108,101,99,116,105,111,110,115,46,72,
|
||||
97,115,104,116,97,98,108,101,16,84,111,
|
||||
111,108,115,46,68,102,97,43,65,99,116,
|
||||
105,111,110,6,0,0,0,8,6,0,0,
|
||||
0,9,7,0,0,0,10,6,8,0,0,
|
||||
0,0,139,0,0,0,1,7,0,0,0,
|
||||
1,0,0,0,236,81,56,63,20,0,0,
|
||||
0,10,10,47,0,0,0,9,9,0,0,
|
||||
0,9,10,0,0,0,16,9,0,0,0,
|
||||
18,0,0,0,8,3,42,8,3,32,8,
|
||||
3,199,133,8,3,44,8,3,61,8,3,
|
||||
9,8,3,41,8,3,48,8,3,43,8,
|
||||
3,65,8,3,13,8,3,97,8,3,45,
|
||||
8,3,40,8,3,202,176,8,3,198,187,
|
||||
8,3,10,8,3,47,16,10,0,0,0,
|
||||
18,0,0,0,9,11,0,0,0,9,12,
|
||||
0,0,0,9,13,0,0,0,9,14,0,
|
||||
0,0,9,15,0,0,0,9,12,0,0,
|
||||
0,9,17,0,0,0,9,18,0,0,0,
|
||||
9,19,0,0,0,9,13,0,0,0,9,
|
||||
12,0,0,0,9,13,0,0,0,9,23,
|
||||
0,0,0,9,24,0,0,0,9,13,0,
|
||||
0,0,9,13,0,0,0,9,12,0,0,
|
||||
0,9,27,0,0,0,1,11,0,0,0,
|
||||
5,0,0,0,9,28,0,0,0,9,29,
|
||||
0,0,0,6,30,0,0,0,5,84,105,
|
||||
109,101,115,158,1,0,0,1,12,0,0,
|
||||
0,5,0,0,0,9,31,0,0,0,9,
|
||||
32,0,0,0,9,8,0,0,0,225,2,
|
||||
0,0,1,13,0,0,0,5,0,0,0,
|
||||
9,34,0,0,0,9,35,0,0,0,6,
|
||||
36,0,0,0,10,73,100,101,110,116,105,
|
||||
102,105,101,114,27,3,0,0,1,14,0,
|
||||
0,0,5,0,0,0,9,37,0,0,0,
|
||||
9,38,0,0,0,6,39,0,0,0,5,
|
||||
67,111,109,109,97,113,1,0,0,1,15,
|
||||
0,0,0,5,0,0,0,9,40,0,0,
|
||||
0,9,41,0,0,0,6,42,0,0,0,
|
||||
6,69,113,117,97,108,115,145,0,0,0,
|
||||
1,17,0,0,0,5,0,0,0,9,43,
|
||||
0,0,0,9,44,0,0,0,6,45,0,
|
||||
0,0,6,67,108,111,115,101,80,207,1,
|
||||
0,0,1,18,0,0,0,5,0,0,0,
|
||||
9,46,0,0,0,9,47,0,0,0,6,
|
||||
48,0,0,0,17,73,110,116,101,103,101,
|
||||
114,67,111,110,115,116,97,110,116,95,49,
|
||||
78,2,0,0,1,19,0,0,0,5,0,
|
||||
0,0,9,49,0,0,0,9,50,0,0,
|
||||
0,6,51,0,0,0,4,80,108,117,115,
|
||||
190,0,0,0,1,23,0,0,0,5,0,
|
||||
0,0,9,52,0,0,0,9,53,0,0,
|
||||
0,6,54,0,0,0,5,77,105,110,117,
|
||||
115,42,2,0,0,1,24,0,0,0,5,
|
||||
0,0,0,9,55,0,0,0,9,56,0,
|
||||
0,0,6,57,0,0,0,5,79,112,101,
|
||||
110,80,253,1,0,0,1,27,0,0,0,
|
||||
5,0,0,0,9,58,0,0,0,9,59,
|
||||
0,0,0,6,60,0,0,0,3,68,105,
|
||||
118,236,0,0,0,1,28,0,0,0,1,
|
||||
0,0,0,236,81,56,63,0,0,0,0,
|
||||
10,10,11,0,0,0,9,61,0,0,0,
|
||||
9,62,0,0,0,5,29,0,0,0,16,
|
||||
84,111,111,108,115,46,68,102,97,43,65,
|
||||
99,116,105,111,110,2,0,0,0,5,97,
|
||||
95,97,99,116,6,97,95,110,101,120,116,
|
||||
0,4,8,16,84,111,111,108,115,46,68,
|
||||
102,97,43,65,99,116,105,111,110,6,0,
|
||||
0,0,6,0,0,0,97,0,0,0,10,
|
||||
1,31,0,0,0,1,0,0,0,236,81,
|
||||
56,63,0,0,0,0,10,10,11,0,0,
|
||||
0,9,63,0,0,0,9,64,0,0,0,
|
||||
1,32,0,0,0,29,0,0,0,136,0,
|
||||
0,0,10,1,34,0,0,0,1,0,0,
|
||||
0,236,81,56,63,7,0,0,0,10,10,
|
||||
11,0,0,0,9,65,0,0,0,9,66,
|
||||
0,0,0,1,35,0,0,0,29,0,0,
|
||||
0,49,0,0,0,10,1,37,0,0,0,
|
||||
1,0,0,0,236,81,56,63,0,0,0,
|
||||
0,10,10,11,0,0,0,9,67,0,0,
|
||||
0,9,68,0,0,0,1,38,0,0,0,
|
||||
29,0,0,0,107,0,0,0,10,1,40,
|
||||
0,0,0,1,0,0,0,236,81,56,63,
|
||||
0,0,0,0,10,10,11,0,0,0,9,
|
||||
69,0,0,0,9,70,0,0,0,1,41,
|
||||
0,0,0,29,0,0,0,117,0,0,0,
|
||||
10,1,43,0,0,0,1,0,0,0,236,
|
||||
81,56,63,0,0,0,0,10,10,11,0,
|
||||
0,0,9,71,0,0,0,9,72,0,0,
|
||||
0,1,44,0,0,0,29,0,0,0,87,
|
||||
0,0,0,10,1,46,0,0,0,1,0,
|
||||
0,0,236,81,56,63,2,0,0,0,10,
|
||||
10,11,0,0,0,9,73,0,0,0,9,
|
||||
74,0,0,0,1,47,0,0,0,29,0,
|
||||
0,0,2,0,0,0,10,1,49,0,0,
|
||||
0,1,0,0,0,236,81,56,63,0,0,
|
||||
0,0,10,10,11,0,0,0,9,75,0,
|
||||
0,0,9,76,0,0,0,1,50,0,0,
|
||||
0,29,0,0,0,112,0,0,0,10,1,
|
||||
52,0,0,0,1,0,0,0,236,81,56,
|
||||
63,1,0,0,0,10,10,11,0,0,0,
|
||||
9,77,0,0,0,9,78,0,0,0,1,
|
||||
53,0,0,0,29,0,0,0,92,0,0,
|
||||
0,10,1,55,0,0,0,1,0,0,0,
|
||||
236,81,56,63,0,0,0,0,10,10,11,
|
||||
0,0,0,9,79,0,0,0,9,80,0,
|
||||
0,0,1,56,0,0,0,29,0,0,0,
|
||||
82,0,0,0,10,1,58,0,0,0,1,
|
||||
0,0,0,236,81,56,63,1,0,0,0,
|
||||
10,10,11,0,0,0,9,81,0,0,0,
|
||||
9,82,0,0,0,1,59,0,0,0,29,
|
||||
0,0,0,102,0,0,0,10,16,61,0,
|
||||
0,0,0,0,0,0,16,62,0,0,0,
|
||||
0,0,0,0,16,63,0,0,0,0,0,
|
||||
0,0,16,64,0,0,0,0,0,0,0,
|
||||
16,65,0,0,0,7,0,0,0,8,3,
|
||||
199,133,8,3,198,187,8,3,48,8,3,
|
||||
202,176,8,3,95,8,3,97,8,3,65,
|
||||
16,66,0,0,0,7,0,0,0,9,83,
|
||||
0,0,0,9,83,0,0,0,9,84,0,
|
||||
0,0,9,83,0,0,0,9,86,0,0,
|
||||
0,9,83,0,0,0,9,83,0,0,0,
|
||||
16,67,0,0,0,0,0,0,0,16,68,
|
||||
0,0,0,0,0,0,0,16,69,0,0,
|
||||
0,0,0,0,0,16,70,0,0,0,0,
|
||||
0,0,0,16,71,0,0,0,0,0,0,
|
||||
0,16,72,0,0,0,0,0,0,0,16,
|
||||
73,0,0,0,2,0,0,0,8,3,46,
|
||||
8,3,48,16,74,0,0,0,2,0,0,
|
||||
0,9,88,0,0,0,9,18,0,0,0,
|
||||
16,75,0,0,0,0,0,0,0,16,76,
|
||||
0,0,0,0,0,0,0,16,77,0,0,
|
||||
0,1,0,0,0,8,3,48,16,78,0,
|
||||
0,0,1,0,0,0,9,18,0,0,0,
|
||||
16,79,0,0,0,0,0,0,0,16,80,
|
||||
0,0,0,0,0,0,0,16,81,0,0,
|
||||
0,1,0,0,0,8,3,47,16,82,0,
|
||||
0,0,1,0,0,0,9,90,0,0,0,
|
||||
1,83,0,0,0,5,0,0,0,9,91,
|
||||
0,0,0,9,92,0,0,0,6,93,0,
|
||||
0,0,10,73,100,101,110,116,105,102,105,
|
||||
101,114,125,3,0,0,1,84,0,0,0,
|
||||
5,0,0,0,9,94,0,0,0,9,95,
|
||||
0,0,0,6,96,0,0,0,10,73,100,
|
||||
101,110,116,105,102,105,101,114,85,3,0,
|
||||
0,1,86,0,0,0,5,0,0,0,9,
|
||||
97,0,0,0,9,98,0,0,0,6,99,
|
||||
0,0,0,10,73,100,101,110,116,105,102,
|
||||
105,101,114,49,3,0,0,1,88,0,0,
|
||||
0,5,0,0,0,9,100,0,0,0,10,
|
||||
9,8,0,0,0,86,2,0,0,1,90,
|
||||
0,0,0,5,0,0,0,9,102,0,0,
|
||||
0,9,103,0,0,0,9,8,0,0,0,
|
||||
245,0,0,0,1,91,0,0,0,1,0,
|
||||
0,0,236,81,56,63,7,0,0,0,10,
|
||||
10,11,0,0,0,9,105,0,0,0,9,
|
||||
106,0,0,0,1,92,0,0,0,29,0,
|
||||
0,0,49,0,0,0,10,1,94,0,0,
|
||||
0,1,0,0,0,236,81,56,63,7,0,
|
||||
0,0,10,10,11,0,0,0,9,107,0,
|
||||
0,0,9,108,0,0,0,1,95,0,0,
|
||||
0,29,0,0,0,49,0,0,0,10,1,
|
||||
97,0,0,0,1,0,0,0,236,81,56,
|
||||
63,7,0,0,0,10,10,11,0,0,0,
|
||||
9,109,0,0,0,9,110,0,0,0,1,
|
||||
98,0,0,0,29,0,0,0,49,0,0,
|
||||
0,10,1,100,0,0,0,1,0,0,0,
|
||||
236,81,56,63,1,0,0,0,10,10,11,
|
||||
0,0,0,9,111,0,0,0,9,112,0,
|
||||
0,0,1,102,0,0,0,1,0,0,0,
|
||||
236,81,56,63,44,0,0,0,10,10,107,
|
||||
0,0,0,9,113,0,0,0,9,114,0,
|
||||
0,0,1,103,0,0,0,29,0,0,0,
|
||||
122,0,0,0,10,16,105,0,0,0,7,
|
||||
0,0,0,8,3,199,133,8,3,198,187,
|
||||
8,3,48,8,3,202,176,8,3,95,8,
|
||||
3,97,8,3,65,16,106,0,0,0,7,
|
||||
0,0,0,9,83,0,0,0,9,83,0,
|
||||
0,0,9,84,0,0,0,9,83,0,0,
|
||||
0,9,86,0,0,0,9,83,0,0,0,
|
||||
9,83,0,0,0,16,107,0,0,0,7,
|
||||
0,0,0,8,3,199,133,8,3,198,187,
|
||||
8,3,48,8,3,202,176,8,3,95,8,
|
||||
3,97,8,3,65,16,108,0,0,0,7,
|
||||
0,0,0,9,83,0,0,0,9,83,0,
|
||||
0,0,9,84,0,0,0,9,83,0,0,
|
||||
0,9,86,0,0,0,9,83,0,0,0,
|
||||
9,83,0,0,0,16,109,0,0,0,7,
|
||||
0,0,0,8,3,199,133,8,3,198,187,
|
||||
8,3,48,8,3,202,176,8,3,95,8,
|
||||
3,97,8,3,65,16,110,0,0,0,7,
|
||||
0,0,0,9,83,0,0,0,9,83,0,
|
||||
0,0,9,84,0,0,0,9,83,0,0,
|
||||
0,9,86,0,0,0,9,83,0,0,0,
|
||||
9,83,0,0,0,16,111,0,0,0,1,
|
||||
0,0,0,8,3,48,16,112,0,0,0,
|
||||
1,0,0,0,9,128,0,0,0,16,113,
|
||||
0,0,0,41,0,0,0,8,3,226,128,
|
||||
191,8,3,205,176,8,3,32,8,3,36,
|
||||
8,3,216,128,8,3,40,8,3,42,8,
|
||||
3,44,8,3,46,8,3,48,8,3,60,
|
||||
8,3,194,171,8,3,194,173,8,3,202,
|
||||
176,8,3,194,187,8,3,210,136,8,3,
|
||||
225,155,174,8,3,94,8,3,226,128,168,
|
||||
8,3,1,8,3,9,8,3,198,187,8,
|
||||
3,204,128,8,3,238,128,128,8,3,224,
|
||||
164,131,8,3,199,133,8,3,33,8,3,
|
||||
41,8,3,43,8,3,45,8,3,47,8,
|
||||
3,194,160,8,3,194,166,8,3,61,8,
|
||||
3,65,8,3,194,178,8,3,91,8,3,
|
||||
93,8,3,95,8,3,97,8,3,226,128,
|
||||
169,16,114,0,0,0,41,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,9,129,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,9,129,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,9,129,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,1,128,0,0,0,
|
||||
5,0,0,0,9,130,0,0,0,9,131,
|
||||
0,0,0,6,132,0,0,0,14,82,101,
|
||||
97,108,67,111,110,115,116,97,110,116,95,
|
||||
49,122,2,0,0,1,129,0,0,0,5,
|
||||
0,0,0,9,133,0,0,0,9,134,0,
|
||||
0,0,9,8,0,0,0,246,0,0,0,
|
||||
1,130,0,0,0,1,0,0,0,236,81,
|
||||
56,63,1,0,0,0,10,10,11,0,0,
|
||||
0,9,136,0,0,0,9,137,0,0,0,
|
||||
1,131,0,0,0,29,0,0,0,19,0,
|
||||
0,0,10,1,133,0,0,0,1,0,0,
|
||||
0,236,81,56,63,44,0,0,0,10,10,
|
||||
107,0,0,0,9,138,0,0,0,9,139,
|
||||
0,0,0,1,134,0,0,0,29,0,0,
|
||||
0,122,0,0,0,10,16,136,0,0,0,
|
||||
1,0,0,0,8,3,48,16,137,0,0,
|
||||
0,1,0,0,0,9,128,0,0,0,16,
|
||||
138,0,0,0,41,0,0,0,8,3,226,
|
||||
128,191,8,3,205,176,8,3,32,8,3,
|
||||
36,8,3,216,128,8,3,40,8,3,42,
|
||||
8,3,44,8,3,46,8,3,48,8,3,
|
||||
60,8,3,194,171,8,3,194,173,8,3,
|
||||
202,176,8,3,194,187,8,3,210,136,8,
|
||||
3,225,155,174,8,3,94,8,3,226,128,
|
||||
168,8,3,1,8,3,9,8,3,198,187,
|
||||
8,3,204,128,8,3,238,128,128,8,3,
|
||||
224,164,131,8,3,199,133,8,3,33,8,
|
||||
3,41,8,3,43,8,3,45,8,3,47,
|
||||
8,3,194,160,8,3,194,166,8,3,61,
|
||||
8,3,65,8,3,194,178,8,3,91,8,
|
||||
3,93,8,3,95,8,3,97,8,3,226,
|
||||
128,169,16,139,0,0,0,41,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,9,129,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,9,129,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,9,129,0,0,
|
||||
0,9,129,0,0,0,9,129,0,0,0,
|
||||
9,129,0,0,0,9,129,0,0,0,9,
|
||||
129,0,0,0,9,129,0,0,0,9,129,
|
||||
0,0,0,9,129,0,0,0,9,129,0,
|
||||
0,0,9,129,0,0,0,11,0,1,0,
|
||||
0,0,255,255,255,255,1,0,0,0,0,
|
||||
0,0,0,4,1,0,0,0,28,83,121,
|
||||
115,116,101,109,46,67,111,108,108,101,99,
|
||||
116,105,111,110,115,46,72,97,115,104,116,
|
||||
97,98,108,101,7,0,0,0,10,76,111,
|
||||
97,100,70,97,99,116,111,114,7,86,101,
|
||||
114,115,105,111,110,8,67,111,109,112,97,
|
||||
114,101,114,16,72,97,115,104,67,111,100,
|
||||
101,80,114,111,118,105,100,101,114,8,72,
|
||||
97,115,104,83,105,122,101,4,75,101,121,
|
||||
115,6,86,97,108,117,101,115,0,0,3,
|
||||
3,0,5,5,11,8,28,83,121,115,116,
|
||||
101,109,46,67,111,108,108,101,99,116,105,
|
||||
111,110,115,46,73,67,111,109,112,97,114,
|
||||
101,114,36,83,121,115,116,101,109,46,67,
|
||||
111,108,108,101,99,116,105,111,110,115,46,
|
||||
73,72,97,115,104,67,111,100,101,80,114,
|
||||
111,118,105,100,101,114,8,236,81,56,63,
|
||||
15,0,0,0,10,10,23,0,0,0,9,
|
||||
2,0,0,0,9,3,0,0,0,16,2,
|
||||
0,0,0,14,0,0,0,6,4,0,0,
|
||||
0,6,67,108,111,115,101,80,6,5,0,
|
||||
0,0,14,78,117,109,98,101,114,67,111,
|
||||
110,115,116,97,110,116,6,6,0,0,0,
|
||||
5,79,112,101,110,80,6,7,0,0,0,
|
||||
6,69,113,117,97,108,115,6,8,0,0,
|
||||
0,12,82,101,97,108,67,111,110,115,116,
|
||||
97,110,116,6,9,0,0,0,5,67,111,
|
||||
109,109,97,6,10,0,0,0,5,77,105,
|
||||
110,117,115,6,11,0,0,0,3,68,105,
|
||||
118,6,12,0,0,0,10,73,100,101,110,
|
||||
116,105,102,105,101,114,6,13,0,0,0,
|
||||
17,73,110,116,101,103,101,114,67,111,110,
|
||||
115,116,97,110,116,95,49,6,14,0,0,
|
||||
0,15,73,110,116,101,103,101,114,67,111,
|
||||
110,115,116,97,110,116,6,15,0,0,0,
|
||||
14,82,101,97,108,67,111,110,115,116,97,
|
||||
110,116,95,49,6,16,0,0,0,5,84,
|
||||
105,109,101,115,6,17,0,0,0,4,80,
|
||||
108,117,115,16,3,0,0,0,14,0,0,
|
||||
0,9,18,0,0,0,9,19,0,0,0,
|
||||
9,20,0,0,0,9,21,0,0,0,9,
|
||||
22,0,0,0,9,23,0,0,0,9,24,
|
||||
0,0,0,9,25,0,0,0,9,26,0,
|
||||
0,0,9,27,0,0,0,9,28,0,0,
|
||||
0,9,29,0,0,0,9,30,0,0,0,
|
||||
9,31,0,0,0,12,32,0,0,0,60,
|
||||
84,111,111,108,115,44,32,86,101,114,115,
|
||||
105,111,110,61,48,46,48,46,48,46,48,
|
||||
44,32,67,117,108,116,117,114,101,61,110,
|
||||
101,117,116,114,97,108,44,32,80,117,98,
|
||||
108,105,99,75,101,121,84,111,107,101,110,
|
||||
61,110,117,108,108,5,18,0,0,0,17,
|
||||
84,111,111,108,115,46,84,111,107,67,108,
|
||||
97,115,115,68,101,102,4,0,0,0,6,
|
||||
109,95,110,97,109,101,10,109,95,114,101,
|
||||
102,84,111,107,101,110,16,109,95,105,110,
|
||||
105,116,105,97,108,105,115,97,116,105,111,
|
||||
110,11,109,95,105,109,112,108,101,109,101,
|
||||
110,116,1,1,1,1,32,0,0,0,9,
|
||||
4,0,0,0,6,34,0,0,0,5,84,
|
||||
79,75,69,78,6,35,0,0,0,0,9,
|
||||
35,0,0,0,1,19,0,0,0,18,0,
|
||||
0,0,9,5,0,0,0,9,34,0,0,
|
||||
0,9,35,0,0,0,9,35,0,0,0,
|
||||
1,20,0,0,0,18,0,0,0,9,6,
|
||||
0,0,0,9,34,0,0,0,9,35,0,
|
||||
0,0,9,35,0,0,0,1,21,0,0,
|
||||
0,18,0,0,0,9,7,0,0,0,9,
|
||||
34,0,0,0,9,35,0,0,0,9,35,
|
||||
0,0,0,1,22,0,0,0,18,0,0,
|
||||
0,9,8,0,0,0,6,46,0,0,0,
|
||||
14,78,117,109,98,101,114,67,111,110,115,
|
||||
116,97,110,116,9,35,0,0,0,9,35,
|
||||
0,0,0,1,23,0,0,0,18,0,0,
|
||||
0,9,9,0,0,0,9,34,0,0,0,
|
||||
9,35,0,0,0,9,35,0,0,0,1,
|
||||
24,0,0,0,18,0,0,0,9,10,0,
|
||||
0,0,9,34,0,0,0,9,35,0,0,
|
||||
0,9,35,0,0,0,1,25,0,0,0,
|
||||
18,0,0,0,9,11,0,0,0,9,34,
|
||||
0,0,0,9,35,0,0,0,9,35,0,
|
||||
0,0,1,26,0,0,0,18,0,0,0,
|
||||
9,12,0,0,0,9,34,0,0,0,9,
|
||||
35,0,0,0,9,35,0,0,0,1,27,
|
||||
0,0,0,18,0,0,0,9,13,0,0,
|
||||
0,9,14,0,0,0,6,62,0,0,0,
|
||||
32,32,32,123,118,97,108,117,101,32,61,
|
||||
32,73,110,116,51,50,46,80,97,114,115,
|
||||
101,40,121,121,116,101,120,116,41,59,125,
|
||||
9,35,0,0,0,1,28,0,0,0,18,
|
||||
0,0,0,9,14,0,0,0,6,65,0,
|
||||
0,0,14,78,117,109,98,101,114,67,111,
|
||||
110,115,116,97,110,116,9,35,0,0,0,
|
||||
9,35,0,0,0,1,29,0,0,0,18,
|
||||
0,0,0,9,15,0,0,0,9,8,0,
|
||||
0,0,6,69,0,0,0,34,9,32,32,
|
||||
123,118,97,108,117,101,32,61,32,68,111,
|
||||
117,98,108,101,46,80,97,114,115,101,40,
|
||||
121,121,116,101,120,116,41,59,125,9,35,
|
||||
0,0,0,1,30,0,0,0,18,0,0,
|
||||
0,9,16,0,0,0,9,34,0,0,0,
|
||||
9,35,0,0,0,9,35,0,0,0,1,
|
||||
31,0,0,0,18,0,0,0,9,17,0,
|
||||
0,0,9,34,0,0,0,9,35,0,0,
|
||||
0,9,35,0,0,0,11,0};
|
||||
new Tfactory(this,"CloseP",new TCreator(CloseP_factory));
|
||||
new Tfactory(this,"NumberConstant",new TCreator(NumberConstant_factory));
|
||||
new Tfactory(this,"OpenP",new TCreator(OpenP_factory));
|
||||
new Tfactory(this,"Equals",new TCreator(Equals_factory));
|
||||
new Tfactory(this,"RealConstant",new TCreator(RealConstant_factory));
|
||||
new Tfactory(this,"Comma",new TCreator(Comma_factory));
|
||||
new Tfactory(this,"Minus",new TCreator(Minus_factory));
|
||||
new Tfactory(this,"Div",new TCreator(Div_factory));
|
||||
new Tfactory(this,"Identifier",new TCreator(Identifier_factory));
|
||||
new Tfactory(this,"IntegerConstant_1",new TCreator(IntegerConstant_1_factory));
|
||||
new Tfactory(this,"IntegerConstant",new TCreator(IntegerConstant_factory));
|
||||
new Tfactory(this,"RealConstant_1",new TCreator(RealConstant_1_factory));
|
||||
new Tfactory(this,"Times",new TCreator(Times_factory));
|
||||
new Tfactory(this,"Plus",new TCreator(Plus_factory));
|
||||
}
|
||||
public static object CloseP_factory(Lexer yyl) { return new CloseP(yyl);}
|
||||
public static object NumberConstant_factory(Lexer yyl) { return new NumberConstant(yyl);}
|
||||
public static object OpenP_factory(Lexer yyl) { return new OpenP(yyl);}
|
||||
public static object Equals_factory(Lexer yyl) { return new Equals(yyl);}
|
||||
public static object RealConstant_factory(Lexer yyl) { return new RealConstant(yyl);}
|
||||
public static object Comma_factory(Lexer yyl) { return new Comma(yyl);}
|
||||
public static object Minus_factory(Lexer yyl) { return new Minus(yyl);}
|
||||
public static object Div_factory(Lexer yyl) { return new Div(yyl);}
|
||||
public static object Identifier_factory(Lexer yyl) { return new Identifier(yyl);}
|
||||
public static object IntegerConstant_1_factory(Lexer yyl) { return new IntegerConstant_1(yyl);}
|
||||
public static object IntegerConstant_factory(Lexer yyl) { return new IntegerConstant(yyl);}
|
||||
public static object RealConstant_1_factory(Lexer yyl) { return new RealConstant_1(yyl);}
|
||||
public static object Times_factory(Lexer yyl) { return new Times(yyl);}
|
||||
public static object Plus_factory(Lexer yyl) { return new Plus(yyl);}
|
||||
public override TOKEN OldAction(Lexer yym,string yytext, int action, ref bool reject) {
|
||||
switch(action) {
|
||||
case -1: break;
|
||||
case 136: ;
|
||||
break;
|
||||
case 122: ;
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}}
|
||||
public class tokens:Lexer {
|
||||
public tokens():base(new yytokens(new ErrorHandler(false))) {}
|
||||
public tokens(ErrorHandler eh):base(new yytokens(eh)) {}
|
||||
public tokens(Tokens tks):base(tks){}
|
||||
|
||||
}
|
||||
}
|
||||
Loaded 100 of 4204 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user